/* Public portfolio and imported case studies. Presentation only: CMS copy/media stay intact. */
.story-page .nav.story-nav .nav-logo { display:flex; align-items:center; }
.story-page .nav.story-nav .nav-logo img { display:block; }

/* Portfolio: plum opening, a light gallery, original client identities. */
.story-page .fabulab-stories { background:#f8f3f8; color:#351536; }
.story-page .fabulab-stories .fabulab-archive-hero { min-height:auto; background:#351536; color:#fff; }
.story-page .fabulab-stories .fabulab-stories-hero-grid { position:relative; z-index:2; padding-block:clamp(68px,8vw,120px)!important; gap:48px; }
.story-page .fabulab-stories .h-display { max-width:16ch; line-height:1.06; font-weight:600; }
.story-page .fabulab-stories .fabulab-archive-hero::before { background:url('/assets/brand/balloon.svg') 85% 45%/min(1100px,100vw) auto no-repeat; opacity:.5; mask-image:none; }
.story-page .fabulab-stories .fabulab-archive-hero::after { display:none; }
.story-page .fabulab-stories .eyebrow { color:#ff9fc9; }
.story-page .fabulab-stories-orbit p { color:#f6d3e5; font-size:13px; letter-spacing:.08em; }
.story-page .fabulab-stories-orbit p b { color:#ff9fc9; }
.story-page .fabulab-stories .fabulab-archive-content { padding-block:clamp(42px,6vw,88px); }
.story-page .fabulab-stories .fabulab-archive-search { max-width:none; background:#fff; border-color:#dac6db; box-shadow:none; }
.story-page .fabulab-stories .fabulab-archive-search label { color:#625368; font-size:12px; }
.story-page .fabulab-stories .fabulab-archive-search input { color:#351536; font-size:17px; }
.story-page .fabulab-stories .fabulab-archive-search input::placeholder { color:#766378; }
.story-page .fabulab-stories .fabulab-archive-search input:focus-visible { outline:2px solid #a80049; outline-offset:0; border-radius:8px; }
.story-page .fabulab-stories .fabulab-archive-search button { min-height:46px; font-size:16px; }
.story-page .fabulab-stories .fabulab-tag-filter { max-width:none; gap:10px; }
.story-page .fabulab-stories :is(.fabulab-tag-filter a,.fabulab-card-tag) { color:#625368; background:transparent; border-color:#dac6db; font-size:13px; letter-spacing:0; padding:7px 13px; }
.story-page .fabulab-stories .fabulab-tag-filter a:is(:hover,.is-active) { color:#fff; background:#a80049; border-color:#a80049; }
.story-page .fabulab-stories .fabulab-results-heading { margin-top:48px; border-color:#dac6db; }
.story-page .fabulab-stories .fabulab-results-count { color:#351536; font-size:14px; }
.story-page .fabulab-stories .fabulab-results-heading>p:last-child { color:#625368; font-size:16px; }
.story-page .fabulab-stories .fabulab-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; grid-auto-flow:row; }
.story-page .fabulab-stories .fabulab-story-card:nth-child(n) { grid-column:auto; min-height:0; background:#fff; border:1px solid #e7d9e8; border-radius:28px 28px 8px 28px; box-shadow:0 10px 30px #35153608; }
.story-page .fabulab-stories .fabulab-story-card:hover { transform:none; border-color:#c991b1; box-shadow:0 20px 45px #35153615; }
.story-page .fabulab-stories .fabulab-story-card:nth-child(n) .fabulab-card-media { min-height:0; aspect-ratio:1.85; padding:36px; background:radial-gradient(ellipse at 80% 15%,#723365,transparent 70%),#351536; }
.story-page .fabulab-stories .fabulab-story-card:nth-child(3n+2) .fabulab-card-media { background:radial-gradient(ellipse at 90% 10%,#754378,transparent 70%),#422346; }
.story-page .fabulab-stories .fabulab-story-card:nth-child(3n) .fabulab-card-media { background:radial-gradient(ellipse at 90% 10%,#435d8d,transparent 70%),#252d50; }
.story-page .fabulab-stories .fabulab-story-card:nth-child(n) .fabulab-card-media img { width:85%; height:clamp(110px,12vw,180px); filter:none; object-fit:contain; }
.story-page .fabulab-stories .fabulab-story-card .fabulab-card-media::after { border-color:#ffffff14; border-radius:18px 18px 6px 18px; }
.story-page .fabulab-stories .fabulab-card-body { padding:clamp(24px,3vw,38px); }
.story-page .fabulab-stories .fabulab-story-kicker { font-size:12px; color:#a80049; }
.story-page .fabulab-stories .fabulab-story-kicker b { color:#8b6a8c; }
.story-page .fabulab-stories .fabulab-story-card h2 { font:600 clamp(25px,2.4vw,36px)/1.15 var(--font-sans); letter-spacing:-.025em; margin:18px 0; }
.story-page .fabulab-stories .fabulab-story-card h2 a { color:#351536; }
.story-page .fabulab-stories .fabulab-story-card h2 a:hover { color:#a80049; }
.story-page .fabulab-stories .fabulab-story-card .fabulab-card-body>p { display:block; overflow:visible; color:#625368; font-size:17px; line-height:1.55; }
.story-page .fabulab-stories .fabulab-story-link { color:#a80049; font-size:15px; }
.story-page .fabulab-stories .fabulab-pagination { color:#625368; }
.story-page .fabulab-stories .fabulab-pagination a { border-radius:999px; }

/* Undo fixed desktop offsets and inline type imported from the previous site.
   Keep column proportions, text nodes, image URLs, forms and link targets. */
.story-page.fabulab-case-page .bz-page { background:#351536; }
.story-page.fabulab-case-page .bz-page>.fabulab-case-rail { font:400 13px/1.4 var(--font-sans); letter-spacing:.03em; padding-block:22px; gap:20px; flex-wrap:wrap; }
.story-page.fabulab-case-page .bz-page .bz-section { width:100%!important; margin:0!important; min-height:0; }
.story-page.fabulab-case-page .bz-page .bz-section-inner { padding:0!important; width:100%; gap:clamp(24px,4vw,64px)!important; align-items:center!important; }
.story-page.fabulab-case-page .bz-page .bz-section .bz-section { padding:0!important; background-color:transparent!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:nth-of-type(n) { padding:clamp(56px,7vw,104px) var(--gutter)!important; border-color:#e4d6e5!important; background-color:#fff!important; color:#351536; }
/* One white reading surface for every imported case, independent of section order.
   Legacy background artwork stays in the CMS; it does not tint the reading area. */
.story-page.fabulab-case-page .bz-page>.bz-section:not(:first-of-type):nth-of-type(n) { background:#fff!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:not(:first-of-type) :is(.bz-section,.bz-section-inner,.bz-column) { background:transparent!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:not(:first-of-type)::before { display:none; }
.story-page.fabulab-case-page .bz-page>.bz-section[style*="background-image"]::before { background:linear-gradient(110deg,#fcf8fcfa,#f6eef6ef); }
.story-page.fabulab-case-page .bz-column { min-width:0!important; }
.story-page.fabulab-case-page .bz-page :is(.bz-text,.bz-heading,.bz-icon-box,.bz-button) { margin:0!important; padding:0!important; max-width:100%; }
.story-page.fabulab-case-page .bz-column>.bz-block+.bz-block { margin-top:24px!important; }
.story-page.fabulab-case-page .bz-page :is(.bz-text,.bz-heading,.bz-button-link,.bz-icon-box-content,p,li,blockquote,label,input,textarea,select) { font-family:var(--font-sans)!important; }
.story-page.fabulab-case-page .bz-page .bz-text { font-size:clamp(18px,1.45vw,21px)!important; line-height:1.65!important; color:#625368!important; text-align:left!important; }
.story-page.fabulab-case-page .bz-page :is(.bz-text p,.bz-text li,.bz-text span,.bz-text div,.bz-heading span,.bz-icon-box-content span) { font-family:inherit!important; font-size:inherit!important; line-height:inherit!important; color:inherit!important; background-color:transparent!important; letter-spacing:inherit!important; }
.story-page.fabulab-case-page .bz-text p+p { margin-top:1em; }
.story-page.fabulab-case-page .bz-page :is(p,li,blockquote) { color:#625368; }
.story-page.fabulab-case-page .bz-page>.bz-section:not(.video_head_case) :is(h2,h3) { color:#351536!important; font:600 clamp(25px,2.8vw,39px)/1.18 var(--font-sans)!important; letter-spacing:-.025em!important; text-transform:none; text-align:left!important; }
.story-page.fabulab-case-page .bz-heading::before { content:""; display:block; width:42px; height:4px; border-radius:999px; background:#d6005a; margin-bottom:22px; transition:width .3s; }
.story-page.fabulab-case-page .bz-heading[data-brand-current]::before { width:76px; }
.story-page.fabulab-case-page .bz-page .bz-image { margin:0!important; }
.story-page.fabulab-case-page .bz-page .bz-image img { display:block; max-width:100%; width:100%; height:auto; max-height:480px; object-fit:contain; padding:clamp(18px,3vw,40px); border:1px solid #e4d6e5; border-radius:28px 28px 8px 28px; background:#f0e5f0; box-shadow:none; }
.story-page.fabulab-case-page .bz-page .bz-icon-box { min-height:64px; padding:16px 0!important; border-bottom:1px solid #dfcfe1!important; color:#351536!important; }
.story-page.fabulab-case-page .bz-icon-box-mark { flex-shrink:0; border-radius:50% 50% 8% 50%; border-color:#dcb7cf!important; background:#f6e4ef; color:#a80049!important; }
.story-page.fabulab-case-page .bz-icon-box-content { color:#625368; font:400 18px/1.5 var(--font-sans); }
.story-page.fabulab-case-page .bz-page .bz-button { background:transparent!important; border:0!important; }
.story-page.fabulab-case-page .bz-page .bz-button-link { display:inline-flex; padding:14px 24px!important; border-radius:999px!important; background:#a80049!important; color:#fff!important; font-size:15px!important; line-height:1.4!important; letter-spacing:0; }
/* Standard case hero, plus the older standalone landing-page template. */
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type { position:relative; isolation:isolate; overflow:hidden; background-color:#351536!important; border:0!important; padding-block:clamp(56px,7vw,104px)!important; min-height:0; }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg,#351536f5,#351536c9 65%,#3515368c); }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type::after { content:""; position:absolute; inset:-35% -20%; width:auto; height:auto; z-index:-1; background:url('/assets/brand/balloon.svg') right center/65% auto no-repeat; opacity:.32; border:0; box-shadow:none; border-radius:0; pointer-events:none; }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type>.bz-section-inner { position:relative; z-index:2; }
.story-page.fabulab-case-page .video_head_case>.bz-section-inner>.bz-column:first-child { display:block!important; margin-bottom:30px; }
.story-page.fabulab-case-page .video_head_case>.bz-section-inner>.bz-column:last-child { margin-left:0; max-width:1080px; }
.story-page.fabulab-case-page .video_head_case .bz-heading::before { display:none; }
.story-page.fabulab-case-page .video_head_case h3 { font:400 clamp(15px,1.35vw,19px)/1.45 var(--font-sans)!important; letter-spacing:.04em!important; color:#ffadd1!important; text-transform:none; }
.story-page.fabulab-case-page .video_head_case h2 { font:600 clamp(38px,5.3vw,78px)/1.09 var(--font-sans)!important; letter-spacing:-.035em!important; max-width:23ch; }
.story-page.fabulab-case-page .video_head_case .bz-button-link { background:#ffffff0c!important; border:1px solid #ffffff40; font-size:12px!important; }
.story-page.fabulab-case-page .video_head_case .bz-button-link::before { color:#ffadd1; }
/* Recover visual hierarchy where legacy headings were saved as styled text. */
.story-page.fabulab-case-page .bz-page .bz-text:is([style*="font-size:40px"],[style*="font-size:50px"],[style*="font-size:70px"]) { font-size:clamp(28px,3.5vw,48px)!important; font-weight:600!important; line-height:1.2!important; letter-spacing:-.025em; color:#351536!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type .bz-text { color:#f6dff0!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type .bz-text[style*="font-size:70px"] { font-size:clamp(38px,5.3vw,78px)!important; line-height:1.09!important; color:#fff!important; }
.story-page.fabulab-case-page .bz-page>.bz-section:first-of-type .bz-text[style*="font-size:40px"] { font-size:clamp(22px,2.4vw,34px)!important; font-weight:400!important; }
/* Many nested 240px gutters in the legacy landing otherwise crush the columns. */
.story-page.fabulab-case-page .bz-page:not(:has(.video_head_case)) .bz-section-inner { flex-wrap:wrap!important; gap:24px!important; }
.story-page.fabulab-case-page .bz-page:not(:has(.video_head_case)) .bz-column { flex:1 1 220px!important; }
.story-page.fabulab-case-page .bz-page:not(:has(.video_head_case)) .bz-text { max-width:75ch; }
.story-page.fabulab-case-page .bz-page:not(:has(.video_head_case)) .bz-section-inner:has(>.bz-column:nth-child(8)) { align-items:flex-start!important; }
/* Existing form stays operational, with the same fields and submission handler. */
.story-page.fabulab-case-page .bz-page .cms-inline-form { width:min(860px,100%); background:#fff; border:1px solid #dfcfe1; border-radius:32px 32px 8px 32px; box-shadow:0 16px 50px #35153609; color:#351536; }
.story-page.fabulab-case-page .cms-inline-form .fb-field label { color:#625368; font-size:15px; }
.story-page.fabulab-case-page .cms-inline-form .fb-field :is(input,textarea,select) { color:#351536; background:#fcf8fc; border:1px solid #d5bed7; border-radius:12px; font-size:16px; color-scheme:light; }
.story-page.fabulab-case-page .cms-inline-form .fb-submit { background:#a80049; border-color:#a80049; border-radius:999px; min-height:48px; }
.story-page.fabulab-case-page .bz-page .cms-form-message { color:#17582c; background:#eefaf1; }
.story-page.fabulab-case-page .bz-page .cms-form-message[data-error="true"] { color:#8a183c; background:#fff0f4; }
/* Shared closing speech bubble. */
.story-page .fabulab-stories-cta,.story-page.fabulab-case-page .bz-page>.fabulab-case-next { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(125deg,#67163f,#401843 60%,#4e2e71); border:0; border-top-right-radius:80px; color:#fff; padding-block:clamp(72px,9vw,130px); }
.story-page .fabulab-stories-cta::before,.story-page.fabulab-case-page .fabulab-case-next::before { content:""; position:absolute; inset:-40% -15%; width:auto; aspect-ratio:auto; transform:rotate(155deg); border:0; background:url('/assets/brand/balloon.svg') 20% 70%/900px auto no-repeat; opacity:.35; z-index:-1; pointer-events:none; }
.story-page .fabulab-stories-cta h2,.story-page.fabulab-case-page .bz-page>.fabulab-case-next h2 { font:600 clamp(34px,4.7vw,66px)/1.1 var(--font-sans)!important; letter-spacing:-.035em; }
.story-page.fabulab-case-page .bz-page>.fabulab-case-next p { color:#f6dff0; font-size:19px!important; line-height:1.5; }
.story-page.fabulab-case-page .bz-page>.fabulab-case-next .eyebrow { color:#ffadd1; font-size:12px!important; }
@media(max-width:920px) {
 .story-page.fabulab-case-page .bz-page .bz-section-inner { flex-direction:column!important; gap:30px!important; }
 .story-page.fabulab-case-page .bz-page .bz-section-inner>.bz-column { flex:none!important; width:100%!important; max-width:100%!important; }
 .story-page.fabulab-case-page .bz-page .bz-section-inner .bz-section-inner { gap:26px!important; }
}
@media(max-width:680px) {
 .story-page .fabulab-stories .fabulab-archive-grid { grid-template-columns:1fr; gap:24px; }
 .story-page .fabulab-stories .fabulab-story-card:nth-child(n) .fabulab-card-media { aspect-ratio:1.7; padding:28px; }
 .story-page .fabulab-stories .fabulab-story-card:nth-child(n) .fabulab-card-media img { height:130px; }
 .story-page .fabulab-stories .fabulab-archive-search { padding:10px; border-radius:20px; grid-template-columns:minmax(0,1fr) auto; gap:4px; }
 .story-page .fabulab-stories .fabulab-archive-search label { grid-column:1/-1; padding:4px 12px 0; }
 .story-page .fabulab-stories .fabulab-archive-search input { font-size:16px; padding-inline:12px; }
 .story-page .fabulab-stories .fabulab-archive-search button { padding-inline:18px; }
 .story-page .fabulab-stories .fabulab-results-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .story-page .fabulab-stories .fabulab-results-heading>p:last-child { text-align:left; }
 .story-page.fabulab-case-page .bz-page>.fabulab-case-rail { font-size:11px; gap:14px; }
 .story-page.fabulab-case-page .bz-page>.bz-section:nth-of-type(n) { padding-block:48px!important; }
 .story-page.fabulab-case-page .bz-page .bz-image img { padding:22px; max-height:360px; }
 .story-page.fabulab-case-page .bz-page .cms-inline-form { padding:24px 18px; }
 .story-page .fabulab-stories-cta,.story-page.fabulab-case-page .bz-page>.fabulab-case-next { border-top-right-radius:48px; }
}
@media(prefers-reduced-motion:reduce) {
 .story-page .fabulab-story-card:hover .fabulab-card-media img,.story-page .fabulab-story-card:hover .fabulab-story-link span { transform:none; }
}
.story-page.fabulab-case-page .bz-page .bz-text :is(p,div,span,strong,b,em,i,a) { font-family:inherit!important; text-align:inherit!important; }
.story-page.fabulab-case-page .bz-page .bz-button-link :is(span,strong,b) { font-family:inherit!important; font-size:inherit!important; }
.story-page.fabulab-case-page .bz-page .bz-form-embed { padding:0!important; background:transparent; border:0; border-radius:32px; box-shadow:none; }
/* The original Eventpay calendar remains horizontally scrollable. */
.story-page.fabulab-case-page .sfondo-carosello { gap:20px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; padding-bottom:20px; scrollbar-color:#a80049 #e6dce9; }
.story-page.fabulab-case-page .sfondo-carosello .box-grande { flex:0 0 clamp(260px,30vw,360px); width:auto; min-width:0; max-width:none; height:auto; min-height:390px; padding:24px; margin:0; border:1px solid #dac6db; border-radius:28px 28px 8px 28px; background:#fff; scroll-snap-align:start; }
.story-page.fabulab-case-page .sfondo-carosello :is(h6,.titolo-giorno) { font:600 clamp(30px,3vw,44px)/1.1 var(--font-sans); color:#a80049!important; margin:0 0 24px; }
.story-page.fabulab-case-page .sfondo-carosello .titolo-giorno { margin-left:10px; }
.story-page.fabulab-case-page .sfondo-carosello .immagine-carosello { width:100%; height:150px; object-fit:contain; margin:24px auto; }
.story-page.fabulab-case-page .sfondo-carosello :is(.paragrafo-carosello,.box-elenco-carosello) { margin:24px 0 0; padding:20px; width:auto; height:auto; border-radius:18px 18px 4px 18px; background:#f0e5f0; color:#351536; font-size:16px!important; line-height:1.5; }
.story-page.fabulab-case-page .sfondo-carosello :is(ul,li) { font:400 16px/1.5 var(--font-sans); color:#351536; padding:0; }
