/* A festival identity built around the physical booth, its panels and printed strips. */
.faq { padding-block: 95px; background: #f5eee5; border-top: 1px solid #dfd2c9; }
.faq > .wrap > .section-label > span:last-child { color: var(--accent-dark); }
.faq-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 7vw; align-items: end; margin-bottom: 40px; }
.faq-heading .headline { font-size: clamp(43px,5.1vw,74px); }
.faq-heading > div { max-width: 340px; padding-bottom: 4px; }
.faq-heading p { color: var(--muted); font-size: 14px; margin: 0 0 22px; }
.faq-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 22px; }
.faq-tab { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 22px 24px 18px; background: transparent; border: 1px solid #b5a79e; color: var(--ink); min-width: 0; position: relative; transition: background .25s,color .25s,translate .25s; }
.faq-tab-number { font-size: 8px; letter-spacing: .1em; font-weight: 800; }
.faq-tab > strong { font: 400 clamp(21px,2.1vw,30px)/1.2 var(--display); text-transform: uppercase; margin: 22px 0 19px; max-width: 185px; }
.faq-tab-bottom { margin-top: auto; display: flex; align-items: center; justify-content: space-between; width: 100%; font-size: 10px; }
.faq-tab-bottom i { font-style: normal; font-size: 24px; line-height: 1; }
.faq-tab[aria-selected=true] { background: var(--ink); color: var(--paper); border-color: var(--ink); box-shadow: inset 0 -4px var(--acid); }
.faq-tab[aria-selected=true] .faq-tab-number, .faq-tab[aria-selected=true] .faq-tab-bottom { color: #ff9c73; }
.faq-tab:hover:not([aria-selected=true]) { background: #f7d2be; }
.faq-tab:focus-visible { outline-color: var(--accent-dark); outline-offset: 3px; }
.faq-topics { border: 1px solid #b5a79e; background: #fffaf3; overflow-anchor: none; }
.faq-tab, .faq-question summary { touch-action: manipulation; }
.faq-topic { display: grid; grid-template-columns: .65fr 1.35fr; gap: 5vw; padding: 35px; scroll-margin-top: 115px; }
.faq-topic + .faq-topic { border-top: 1px solid #b5a79e; }
.faq-topic[role=tabpanel] { border-top: 0; }
.faq-topic:focus-visible { outline-offset: 4px; }
.faq-topic-index { font: 400 72px/1 var(--display); color: var(--accent-dark); }
.faq-topic-intro h3 { font: 400 28px/1.2 var(--display); text-transform: uppercase; margin: 20px 0 13px; }
.faq-topic-intro p { color: var(--muted); font-size: 12px; margin: 0; max-width: 270px; }
.faq-questions { min-width: 0; }
.faq-question { border-bottom: 1px solid #d9cbc1; }
.faq-question:last-child { border-bottom: 0; }
.faq-question summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 14px; line-height: 1.6; font-weight: 800; padding: 20px 0; cursor: pointer; }
.faq-question:first-child summary { padding-top: 3px; }
.faq-question summary::-webkit-details-marker { display: none; }
.faq-question summary::marker { content: ''; }
.faq-question-icon { width: 30px; height: 30px; flex: 0 0 30px; position: relative; border: 1px solid #ac9787; border-radius: 50%; transition: background .2s; }
.faq-question-icon::before,.faq-question-icon::after { content: ''; position: absolute; top: 14px; left: 9px; width: 10px; height: 1px; background: var(--ink); }
.faq-question-icon::after { rotate: 90deg; transition: rotate .2s; }
.faq-question[open] .faq-question-icon { background: var(--acid); border-color: var(--acid); }
.faq-question[open] .faq-question-icon::after { rotate: 0deg; }
.faq-answer p { color: #62534c; font-size: 13px; line-height: 1.8; margin: 0; padding: 0 48px 22px 0; }
.faq-contact { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #cbb7a7; padding-top: 23px; margin-top: 28px; font-size: 12px; color: var(--muted); }
.faq-contact a { display: inline-flex; gap: 20px; align-items: center; color: var(--ink); font-weight: 800; }
.faq-contact a > span { color: var(--accent-dark); font-size: 25px; }
@media(max-width:1000px) {
  .faq-tab { padding: 19px 16px; }
  .faq-tab > strong { font-size: 24px; }
  .faq-topic { grid-template-columns: .7fr 1.3fr; padding: 28px; gap: 30px; }
}
@media(max-width:700px) {
  .faq { padding-block: 65px; }
  .faq > .wrap > .section-label > span:last-child { display: none; }
  .faq-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 30px; }
  .faq-heading .headline { font-size: clamp(35px,9vw,54px); }
  .faq-heading p { font-size: 13px; margin-bottom: 16px; }
  .faq-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .faq-tab { padding: 16px; }
  .faq-tab > strong { font-size: 24px; margin-block: 14px; }
  .faq-tab-number { font-size: 7px; }
  .faq-tab-bottom { font-size: 9px; }
  .faq-topic { grid-template-columns: 1fr; padding: 22px 19px; gap: 25px; }
  .faq-topic-intro { display: grid; grid-template-columns: 45px 1fr; column-gap: 15px; align-items: center; }
  .faq-topic-index { grid-row: 1/3; align-self: start; font-size: 45px; }
  .faq-topic-intro h3 { font-size: 24px; margin: 0 0 9px; }
  .faq-topic-intro p { grid-column: 2; font-size: 11px; max-width: none; }
  .faq-question summary { font-size: 13px; gap: 12px; padding-block: 19px; }
  .faq-answer p { font-size: 12px; padding-right: 0; }
  .faq-contact { flex-direction: column; align-items: flex-start; gap: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  .faq-tab,.faq-question-icon,.faq-question-icon::after { transition: none; }
}
.proof-track > div { flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: 28px 24px; gap: 10px; }
.proof-track strong { font: 800 20px/1.35 Manrope,Arial,sans-serif; letter-spacing: -.025em; white-space: normal; }
.proof-track span { max-width: 290px; font-size: 13px; line-height: 1.65; color: #382119; }
.proof-track > div + div::before { top: 28px; bottom: 28px; height: auto; }
@media(max-width:1100px) {
  .proof-track { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .proof-track > div:nth-child(n+3) { border-top: 1px solid #18171940; }
  .proof-track > div:nth-child(3)::before { display: none; }
}
@media(max-width:600px) {
  .proof-strip { padding-inline: 19px; }
  .proof-track { grid-template-columns: 1fr; }
  .proof-track > div { padding: 21px 0; gap: 7px; }
  .proof-track > div + div { border-top: 1px solid #18171940; }
  .proof-track > div + div::before { display: none; }
  .proof-track strong { font-size: 19px; }
  .proof-track span { font-size: 13px; max-width: none; }
}
.site-header::after { content: ''; position: absolute; inset: auto 0 -1px; height: 3px; background: var(--acid); transform: scaleX(var(--page-progress,0)); transform-origin: left; pointer-events: none; }
.hero-branding-link { position: absolute; bottom: 23px; right: 5%; font-size: 10px; color: var(--paper); display: flex; align-items: center; gap: 20px; }
.hero-branding-link span { color: var(--acid); font-size: 20px; }
.hero-branding-link:hover { color: var(--acid); }
.festival-head > p { color: var(--ink); font-size: 15px; font-weight: 500; line-height: 1.8; }
.benefit-card { background: #fffaf3; color: var(--ink); border-color: var(--ink); box-shadow: 4px 4px 0 #18171920; transition: translate .3s, box-shadow .3s; }
.benefit-card .card-tag { color: #51443c; font-size: 11px; font-weight: 800; letter-spacing: .07em; }
.benefit-card > p:last-child { color: #332b27; font-size: 14px; font-weight: 500; line-height: 1.8; }
.benefit-card.accent .card-tag { color: #ffad8a; }
.benefit-card.accent > p:last-child { color: #f6f3eb; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .benefit-card:hover { translate: 0 -7px; box-shadow: 7px 9px 0 #18171930; }
  .hero-media { animation: poster-arrive 1s cubic-bezier(.2,.7,.2,1) both; }
}
@keyframes poster-arrive { from { opacity: .3; translate: 0 30px; rotate: -3deg; } to { opacity: 1; translate: 0 0; rotate: 0deg; } }

/* The interchangeable branding is explained with the original artwork, not a crop. */
.branding-story { margin-top: 100px; padding-top: 60px; border-top: 1px solid var(--line-dark); }
.branding-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: end; }
.branding-heading .eyebrow { color: var(--accent-dark); font-size: 9px; }
.branding-heading > p { margin: 0 0 8px; color: var(--muted); font-size: 14px; }
.branding-figure { margin: 38px 0 30px; }
.branding-expand { display: block; position: relative; background: #101116; border: 8px solid #181719; box-shadow: 10px 12px 0 #e6d9dc; }
.branding-expand img { height: auto; }
.branding-expand > span { position: absolute; right: 15px; bottom: 15px; background: var(--paper); color: var(--ink); padding: 10px 14px; font-size: 10px; display: flex; gap: 20px; align-items: center; box-shadow: 0 3px 15px #0006; }
.branding-expand > span b { font-size: 20px; }
.branding-figure figcaption { font-size: 10px; color: var(--muted); margin-top: 22px; }
.branding-expand::after { content: ''; position: absolute; pointer-events: none; border: 2px solid var(--acid); box-shadow: 0 0 0 4px #ff743d30; opacity: 0; transition: inset .5s, opacity .3s; }
.branding-figure[data-detail=plates] .branding-expand::after { inset: 32% 87% 16% 5%; opacity: 1; }
.branding-figure[data-detail=roof] .branding-expand::after { inset: 5% 62% 76% 24%; opacity: 1; }
.branding-figure[data-detail=style] .branding-expand::after { inset: 35% 1% 14% 63%; opacity: 1; }
.panel-selector { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--ink); }
.panel-selector button { display: flex; align-items: center; gap: 12px; text-align: left; background: transparent; border: 0; padding: 22px; font-size: 13px; font-weight: 800; }
.panel-selector button + button { border-left: 1px solid var(--ink); }
.panel-selector button > span { font-size: 10px; font-weight: 500; }
.panel-selector button > i { margin-left: auto; font-size: 22px; font-style: normal; }
.panel-selector button[aria-pressed=true] { background: var(--ink); color: var(--paper); }
.panel-selector button[aria-pressed=true] > span, .panel-selector button[aria-pressed=true] > i { color: var(--acid); }
.panel-explanation { display: grid; grid-template-columns: .9fr 1.1fr; gap: 5vw; padding: 30px 0; min-height: 145px; }
.panel-explanation strong { font: 400 30px/1.2 var(--display); text-transform: uppercase; }
.panel-explanation p { color: var(--muted); font-size: 13px; margin: 0; max-width: 650px; }

/* A mixing desk for the inputs. A printed festival ticket for the result. */
.flow-demo { margin-top: 90px; padding-top: 55px; border-top: 1px solid var(--line-dark); }
.flow-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 6vw; align-items: end; }
.flow-heading .headline { font-size: clamp(37px,4.2vw,61px); }
.flow-heading .eyebrow { color: var(--accent-dark); }
.flow-heading > div > p:not(.eyebrow) { font-size: 14px; color: var(--muted); margin: 0 0 20px; }
.flow-replay { display: inline-flex; justify-content: space-between; align-items: center; gap: 22px; padding: 12px 17px; border: 1px solid var(--ink); background: transparent; font-size: 11px; font-weight: 800; }
.flow-replay > span { font-size: 23px; line-height: 1; }
.flow-replay:hover { background: var(--ink); color: var(--paper); }
.flow-stage { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 35px; border: 1px solid var(--ink); color: var(--paper); background: var(--ink); overflow: hidden; }
.flow-stop { min-width: 0; position: relative; padding: 25px 26px 120px; }
.flow-stop + .flow-stop { border-left: 1px dashed #ffffff45; }
.flow-stop > span { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; color: #c9becd; }
.flow-stop strong { display: block; margin-top: 10px; font: 400 30px/1.2 var(--display); text-transform: uppercase; }
.flow-stop > i { position: absolute; right: -12px; top: 51px; font-size: 23px; font-style: normal; color: var(--acid); background: var(--ink); z-index: 1; line-height: 1; }
.flow-group { position: absolute; bottom: 27px; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: 14px; width: 132px; height: 57px; font-size: 13px; font-weight: 800; border: 1px solid #181719; border-radius: 3px; color: var(--ink); }
.flow-group-a { left: 83.3333%; background: var(--coral); }
.flow-group-b { left: 50%; background: var(--acid); }
.flow-group > i { position: relative; width: 9px; height: 9px; margin: -9px 3px 0; border-radius: 50%; background: var(--ink); }
.flow-group > i::after { content: ''; position: absolute; width: 15px; height: 9px; left: -3px; top: 11px; border-radius: 7px 7px 2px 2px; background: var(--ink); }
.flow-caption { font-size: 11px; color: var(--muted); margin: 15px 0 0; }
.flow-extras { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 30px; }
.flow-extras article { display: flex; align-items: flex-start; gap: 22px; padding: 25px; background: #eee7e9; border-top: 3px solid var(--accent-dark); }
.flow-extras h4 { font: 400 26px/1.2 var(--display); text-transform: uppercase; margin: 0 0 12px; }
.flow-extras p { font-size: 12px; color: var(--muted); margin: 0; }
.detail-icon { flex: 0 0 35px; height: 35px; color: var(--accent-dark); }
.camera-detail { position: relative; border: 2px solid currentColor; height: 25px; border-radius: 5px; margin-top: 5px; }
.camera-detail::before { content: ''; width: 10px; height: 10px; border: 2px solid currentColor; border-radius: 50%; position: absolute; left: 10px; top: 5px; }
.camera-detail::after { content: ''; width: 14px; height: 5px; background: currentColor; position: absolute; left: 8px; top: -6px; border-radius: 2px 2px 0 0; }
.print-detail { border: 2px solid currentColor; display: grid; place-items: center; font-size: 26px; line-height: 1; box-shadow: 4px 4px 0 #eee7e9,5px 5px 0 currentColor; }
.flow-demo.is-playing .flow-group-a { animation: flow-first 4.2s cubic-bezier(.4,0,.2,1) both; }
.flow-demo.is-playing .flow-group-b { animation: flow-next 4.2s cubic-bezier(.4,0,.2,1) both; }
@keyframes flow-first { 0%,20% { left: 50%; } 60%,100% { left: 83.3333%; } }
@keyframes flow-next { 0%,42% { left: 16.6667%; } 85%,100% { left: 50%; } }
.button-acid { position: relative; overflow: hidden; isolation: isolate; }
.button-acid::before { content: ''; position: absolute; inset: -100% auto -100% -70%; width: 35%; transform: skewX(-25deg); background: linear-gradient(90deg,transparent,#ffffff50,transparent); pointer-events: none; z-index: -1; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .button-acid:hover::before { animation: cta-sweep .65s ease-out; }
  .hotspot:hover, .hotspot:focus-visible { scale: 1.1; box-shadow: 0 0 0 6px #ff743d35; }
  .hotspot { transition: scale .25s,box-shadow .25s; }
  .panel-selector button { transition: background .25s,color .25s; }
  .panel-selector button:hover:not([aria-pressed=true]) { background: #f7d5c2; }
  .footer-signature > i { transition: rotate .35s; }
  .site-footer:hover .footer-signature > i { rotate: -12deg; }
}
@keyframes cta-sweep { to { left: 140%; } }
@media(max-width:900px) {
  .flow-heading { grid-template-columns: 1fr; gap: 25px; }
  .flow-heading > div > p:not(.eyebrow) { max-width: 600px; }
  .flow-stop { padding: 20px 15px 110px; }
  .flow-stop strong { font-size: 26px; }
  .flow-extras { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .flow-demo { margin-top: 60px; padding-top: 40px; }
  .flow-heading .headline { font-size: clamp(32px,9vw,47px); }
  .flow-heading > div > p:not(.eyebrow) { font-size: 13px; }
  .flow-stop { padding: 16px 10px 95px; }
  .flow-stop > span { font-size: 7px; letter-spacing: 0; }
  .flow-stop strong { font-size: 21px; line-height: 1.2; }
  .flow-stop > i { top: 45px; font-size: 18px; right: -9px; }
  .flow-group { width: 82px; height: 45px; font-size: 10px; gap: 7px; bottom: 25px; }
  .flow-group > i { scale: .75; margin-inline: 0; }
  .flow-extras article { padding: 22px 18px; gap: 17px; }
  .flow-extras h4 { font-size: 24px; }
  .flow-caption { font-size: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  .flow-demo.is-playing .flow-group { animation: none !important; }
  .flow-replay { display: none; }
}
.profit-lab { color: var(--paper); background: #171519; overflow: clip; background-image: radial-gradient(ellipse at 5% 60%,#ff743d18,transparent 55%),repeating-linear-gradient(90deg,transparent 0 79px,#ffffff03 79px 80px); }
.profit-lab > .wrap > .section-label { color: #c9becd; }
.profit-lab .section-label i { background: #ffffff30; }
.profit-lab .section-label span:last-child { color: var(--acid); }
.lab-heading { display: grid; grid-template-columns: 1.1fr .8fr; align-items: end; gap: 8vw; margin-bottom: 50px; }
.lab-heading .headline { font-size: clamp(58px,7vw,100px); }
.lab-heading .headline em { color: var(--acid); }
.lab-heading > p { font-size: 15px; max-width: 360px; color: #c9becd; margin: 0 0 8px; }
.calculator-card { display: grid; grid-template-columns: 1.05fr 1fr; padding: 0; border: 1px solid #ffffff30; border-radius: 0; background: #242027; box-shadow: 0 35px 75px #0004; color: var(--paper); }
.calculator-controls { min-width: 0; padding: 38px; display: flex; flex-direction: column; }
.calculator-top { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding-bottom: 24px; border-color: #ffffff30; }
.calculator-top i { color: #d5c7d7; font-size: 8px; }
.calculator-top i b { background: var(--acid); box-shadow: 0 0 8px #ff743d88; }
.scenario-presets { display: flex; gap: 8px; margin-top: 26px; }
.scenario-presets button { flex: 1; min-width: 0; border: 1px solid #716474; padding: 12px 8px; background: transparent; color: var(--paper); font-size: 13px; font-weight: 800; border-radius: 2px; transition: background .2s,color .2s; }
.scenario-presets button span { display: block; font-size: 9px; font-weight: 400; margin-top: 4px; }
.scenario-presets button[aria-pressed=true] { background: var(--acid); color: var(--ink); border-color: var(--acid); }
.scenario-presets button:hover { border-color: var(--acid); }
.calculator-controls :focus-visible { outline-color: var(--acid); }
.range-field { margin-top: 32px; }
.range-heading > label { font-size: 12px; color: #d6ccd8; }
.visitor-entry { gap: 18px; margin: 12px 0; }
.visitor-entry input { width: min(250px,72%); font-size: clamp(53px,5.8vw,82px); line-height: 1.15; color: var(--paper); }
.visitor-entry > span { color: #c4b6c7; font-size: 10px; }
#calc-visitors { height: 9px; background: linear-gradient(90deg,var(--acid) var(--range-fill,16%),#5c505f var(--range-fill,16%)); margin: 24px 0 20px; }
#calc-visitors::-webkit-slider-thumb { width: 28px; height: 28px; background: var(--paper); border: 6px solid var(--acid); box-shadow: 0 0 0 5px #ff743d25; }
#calc-visitors::-moz-range-thumb { width: 16px; height: 16px; background: var(--paper); border: 6px solid var(--acid); box-shadow: 0 0 0 5px #ff743d25; }
.range-scale { color: #c4b6c7; font-size: 10px; }
.calc-options { grid-template-columns: .9fr 1.1fr; gap: 20px; margin-top: 28px; }
.calc-options.calc-options-three { grid-template-columns: repeat(2,minmax(0,1fr)); }
.calc-options.calc-options-three .calc-formula { grid-column: 1 / -1; }
.calc-options > label { font-size: 11px; color: #d6ccd8; }
.calc-options select { margin-top: 5px; color: var(--paper); background: #332d36; border-color: #716474; height: 48px; border-radius: 2px; }
.calc-formula { margin: 0 0 2px; line-height: 1.5; }
.calc-formula strong { font: 400 27px/1.2 var(--display); color: var(--coral); }
.calc-formula span { display: block; color: #c4b6c7; font-size: 8px; margin-top: 8px; }
.booth-recommendation { min-height: 160px; border-color: #ffffff30; padding: 26px 0 20px; margin: 30px 0 12px; gap: 15px; }
.booth-recommendation-copy > span, .booth-recommendation-copy p { color: #c4b6c7; }
.booth-recommendation-copy > strong { font: 400 44px/1.4 var(--display); text-transform: uppercase; }
.booth-recommendation-copy > strong b { color: var(--acid); }
.booth-recommendation-copy p { max-width: 200px; }
.booth-fleet { max-width: 52%; gap: 6px; flex-wrap: wrap; justify-content: flex-end; overflow: visible; }
.mini-booth { width: 37px; height: 51px; background: #ff743d; border-color: #ffae8b; box-shadow: 3px 4px 0 #0007; animation: booth-pop .4s both; animation-delay: var(--booth-delay,0ms); }
.mini-booth::before { background: linear-gradient(90deg,#19151c 0 35%,#ffc4a6 35% 65%,#19151c 65%); }
.mini-booth::after { background: #fff3db; }
.mini-booth i { background: var(--paper); top: -7px; width: 21px; height: 12px; left: 24%; border: 1px solid #181719; }
@keyframes booth-pop { from { opacity: 0; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }
.capacity-note { color: #c4b6c7; font-size: 10px; margin: 0 0 20px; }
.calc-mobile-live { display: none; }
.calculator-extras { margin-top: auto; padding-top: 22px; display: flex; gap: 15px; }
.calculator-extras > span { font: 400 38px/1 var(--display); color: var(--coral); }
.calculator-extras p { color: #c4b6c7; font-size: 11px; margin: 0; }
.calculator-extras strong { display: block; color: var(--paper); font-size: 13px; margin-bottom: 6px; }
.calculator-receipt { position: relative; min-width: 0; margin: 20px 20px 30px 0; padding: 30px; color: var(--ink); background: #fff3e2; box-shadow: 7px 9px 0 #0005; }
.calculator-receipt::after { content: ''; position: absolute; inset: auto 0 -10px; height: 11px; background: linear-gradient(135deg,#fff3e2 25%,transparent 25%) -10px 0/20px 20px,linear-gradient(225deg,#fff3e2 25%,transparent 25%) -10px 0/20px 20px; }
.receipt-top { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed #8d7463; padding-bottom: 16px; gap: 15px; }
.receipt-top > span { font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.receipt-top > strong { font: 400 33px/1 var(--display); }
.calc-results { border: 0; border-radius: 0; background: none; gap: 0; overflow: visible; }
.calc-results > div { background: transparent; padding: 17px 0; gap: 8px; border-bottom: 1px solid #cbb9a9; }
.calc-results > div:nth-child(even) { padding-right: 10px; }
.calc-results > div > span { color: #67554b; font-size: 10px; }
.calc-results > div > strong { color: var(--ink); font-size: 31px; font-variant-numeric: tabular-nums; }
.calc-results .calc-highlight { color: var(--ink); background: transparent; padding: 28px 0 22px; gap: 12px; border-bottom: 2px solid var(--ink); }
.calc-highlight > span > span { color: var(--ink); font-size: 12px; font-weight: 700; }
.calc-results .calc-highlight > strong { color: var(--ink); font-size: clamp(60px,7vw,100px); line-height: 1.07; letter-spacing: -.03em; white-space: nowrap; }
.calc-results > div > strong { font-size: clamp(22px,2.1vw,31px); }
.calc-results .calc-highlight > strong { font-size: clamp(43px,5vw,72px); }
.calc-highlight small { color: #67554b; font-size: 11px; max-width: 320px; }
.calc-results .advert-exclusion { display: block; align-self: flex-start; color: var(--ink); background: #ffc29c; padding: 6px 9px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
.calculator-receipt .proposal-note { border: 0; background: transparent; padding: 0; margin: 23px 0; font-size: 10px; }
.calculator-receipt .proposal-note p { color: #67554b; }
.calculator-receipt .calc-cta { font-size: 11px; min-height: 54px; }
.receipt-footnote { font-size: 9px; text-align: center; color: #67554b; margin: 12px 0 24px; }
.receipt-barcode { width: 65%; height: 25px; margin: auto; background: repeating-linear-gradient(90deg,#181719 0 2px,transparent 2px 5px,#181719 5px 6px,transparent 6px 9px,#181719 9px 13px,transparent 13px 16px); }
.profit-lab .calc-disclaimer { color: #c4b6c7; max-width: 850px; margin: 32px auto 0; text-align: center; font-size: 10px; }
@media(max-width:1100px) {
  .calculator-controls { padding: 28px; }
  .calculator-receipt { padding: 26px; }
  .calculator-top i { display: none; }
  .panel-selector button { padding: 20px 15px; font-size: 11px; }
}
@media(max-width:900px) {
  .calc-mobile-live { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 22px; padding: 14px 12px; border: 1px solid #9d7481; background: #3a2b35; }
  .calc-mobile-live > span { font-size: 11px; line-height: 1.5; }
  .calc-mobile-live small { display: block; color: #d2bdce; font-size: 8px; margin-top: 5px; }
  .calc-mobile-live strong { font: 400 clamp(30px,8vw,46px)/1.1 var(--display); color: var(--coral); white-space: nowrap; }
  .calculator-card { grid-template-columns: 1fr; }
  .calculator-controls { padding: 32px; }
  .calculator-receipt { margin: 0 24px 35px; padding: 32px; }
  .visitor-entry input { font-size: 76px; }
  .calc-results .calc-highlight > strong { font-size: 90px; }
  .booth-recommendation { min-height: 140px; }
  .calculator-top i { display: inline-flex; }
  .panel-selector { grid-template-columns: 1fr; }
  .panel-selector button + button { border-left: 0; border-top: 1px solid var(--ink); }
  .panel-explanation { grid-template-columns: 1fr; gap: 15px; min-height: 170px; }
}
@media(max-width:600px) {
  .hero-branding-link { display: none; }
  .marquee-group > span { padding-block: 20px; }
  .branding-story { margin-top: 65px; padding-top: 40px; }
  .branding-heading { grid-template-columns: 1fr; gap: 22px; }
  .branding-heading .eyebrow { font-size: 8px; line-height: 1.7; }
  .branding-heading > p { font-size: 13px; }
  .branding-figure { margin-top: 25px; }
  .branding-expand { border-width: 3px; box-shadow: 5px 7px 0 #e6d9dc; }
  .branding-expand > span { position: static; justify-content: space-between; padding: 8px 12px; background: var(--ink); color: var(--paper); box-shadow: none; }
  .branding-figure figcaption { font-size: 9px; margin-top: 17px; }
  .branding-expand::after { display: none; }
  .panel-selector button { padding: 17px; font-size: 12px; }
  .panel-explanation { min-height: 205px; padding-block: 25px; }
  .panel-explanation strong { font-size: 28px; }
  .panel-explanation p { font-size: 12px; }
  .profit-lab .section-label span:last-child { display: none; }
  .lab-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 30px; }
  .lab-heading .headline { font-size: clamp(56px,15vw,80px); }
  .lab-heading > p { font-size: 13px; }
  .calculator-controls { padding: 22px 18px; }
  .calculator-top { font-size: 9px; }
  .calculator-top i { font-size: 7px; }
  .scenario-presets { gap: 6px; }
  .scenario-presets button { font-size: 12px; padding-inline: 5px; }
  .scenario-presets button span { font-size: 8px; }
  .range-heading > label { font-size: 11px; }
  .visitor-entry input { font-size: 62px; }
  .visitor-entry { gap: 12px; }
  .visitor-entry > span { font-size: 9px; }
  .calc-options, .calc-options.calc-options-three { gap: 12px; grid-template-columns: 1fr 1fr; }
  .calc-options .calc-formula { grid-column: 1 / -1; }
  .calc-options select { font-size: 16px; }
  .calc-formula strong { font-size: 22px; }
  .calc-formula span { font-size: 8px; }
  .booth-recommendation-copy > strong { font-size: 36px; }
  .mini-booth { width: 26px; height: 40px; }
  .mini-booth i { width: 18px; left: 14%; }
  .booth-fleet { gap: 5px; }
  .calculator-receipt { margin: 0 10px 25px; padding: 22px 18px; }
  .receipt-top > span { font-size: 8px; }
  .calc-results .calc-highlight > strong { font-size: clamp(38px,11vw,58px); }
  .calc-results > div > strong { font-size: 28px; }
  .calc-results .advert-exclusion { font-size: 8px; }
  .calculator-receipt .calc-cta { font-size: 10px; padding-inline: 14px; gap: 12px; }
  .profit-lab .calc-disclaimer { text-align: left; }
}
@media(prefers-reduced-motion:reduce) {
  .marquee-track.is-ready, .mini-booth { animation: none !important; }
  .benefit-card, .branding-expand::after { transition: none; }
}
/* The complete memory package, shown as tangible festival deliverables. */
.experience .experience-heading > p { color: #38212e; font-size: 15px; }
.experience-showcase { --memory-brand: #ff743d; --memory-brand-ink: #181719; margin-top: 44px; }
.experience-showcase[data-memory-style=rave] { --memory-brand: #5427a0; --memory-brand-ink: #fffaf3; }
.experience-flow { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; padding: 32px; background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.showcase-kicker { font-size: 10px; text-transform: uppercase; letter-spacing: .09em; font-weight: 800; }
.experience-flow .showcase-kicker { color: #ffad8a; }
.experience-flow h3 { font: 400 clamp(26px,3vw,40px)/1.12 var(--display); text-transform: uppercase; margin: 13px 0; }
.experience-flow p { color: #e9e0e7; font-size: 13px; max-width: 390px; }
.experience-flow a { display: inline-flex; align-items: center; gap: 24px; color: #ffad8a; font-size: 12px; font-weight: 800; margin-top: 8px; }
.experience-route { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-self: center; list-style: none; padding: 0; margin: 0; gap: 12px; }
.experience-route li { position: relative; min-height: 155px; padding: 22px 15px; border: 1px solid #796b77; display: flex; flex-direction: column; justify-content: space-between; }
.experience-route li:nth-child(2) { background: var(--coral); color: var(--ink); border-color: var(--coral); }
.experience-route span { font-size: 10px; font-weight: 700; }
.experience-route strong { font: 400 clamp(22px,2.2vw,30px)/1.15 var(--display); text-transform: uppercase; }
.experience-route i { position: absolute; right: -17px; top: 45%; z-index: 1; width: 22px; height: 22px; border-radius: 50%; background: var(--acid); color: var(--ink); font-style: normal; display: grid; place-items: center; line-height: 1; }
.memory-toolbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin: 40px 0 22px; }
.memory-toolbar p { font-size: 15px; margin: 0; }
.memory-style-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.memory-style-picker > span { font-size: 11px; margin-right: 6px; }
.memory-style-picker button { background: transparent; color: var(--ink); border: 1px solid var(--ink); border-radius: 30px; padding: 10px 15px; font-size: 11px; font-weight: 800; }
.memory-style-picker button[aria-pressed=true] { background: var(--ink); color: var(--paper); }
.experience :focus-visible { outline-color: var(--ink); }
.experience-flow :focus-visible { outline-color: var(--coral); }
.memory-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 18px; }
.memory-card { min-width: 0; background: #fffaf3; border: 1px solid var(--ink); display: flex; flex-direction: column; box-shadow: 5px 5px 0 #18171920; }
.memory-card-top { padding: 21px 24px 0; display: flex; align-items: center; justify-content: space-between; }
.memory-card-top > span { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
.memory-card-top > strong { font: 400 44px/1 var(--display); }
.memory-card-copy { padding: 26px 24px 28px; border-top: 1px solid #d3c3b6; flex: 1; }
.memory-card-copy h3 { font: 400 clamp(27px,2.5vw,35px)/1.12 var(--display); text-transform: uppercase; margin: 0 0 15px; }
.memory-card-copy p { color: #44382f; font-size: 13px; line-height: 1.8; margin: 0; }
.print-preview,.digital-preview,.video-preview { height: 345px; position: relative; overflow: hidden; }
.print-preview { padding: 32px 20px; display: flex; align-items: center; }
.print-preview img { width: 100%; height: auto; border: 7px solid white; transform: rotate(-5deg); box-shadow: 6px 8px 0 #181719; }
.print-extra { position: absolute; right: 12px; bottom: 17px; background: var(--acid); color: var(--ink); padding: 12px 16px; transform: rotate(4deg); font-size: 11px; line-height: 1.7; border: 1px solid var(--ink); }
.digital-preview { isolation: isolate; }
.digital-photo { position: absolute; top: 46px; left: calc(50% - 95px); width: 190px; background: var(--memory-brand); color: var(--memory-brand-ink); padding: 8px; box-shadow: 4px 7px 15px #18171925; border: 1px solid #18171950; transition: background .3s,color .3s,transform .4s; }
.digital-photo > span { display: block; padding: 14px 0 6px; font-size: 11px; font-weight: 800; text-align: center; }
.memory-photo { background-image: url('assets/festival-fotostrips.webp'); background-repeat: no-repeat; background-size: 620% auto; background-color: #4b423d; }
.digital-photo .memory-photo { height: 165px; }
.photo-one { background-position: 28% 18%; }
.photo-two { background-position: 66% 18%; }
.photo-three { background-position: 30% 48%; }
.digital-photo-back { transform: translate(32px,-7px) rotate(14deg); }
.digital-photo-middle { transform: translate(-27px,14px) rotate(-13deg); }
.digital-photo-front { transform: translate(0,29px) rotate(2deg); }
.digital-format { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; font-size: 11px; font-weight: 700; }
.video-preview { display: flex; flex-direction: column; align-items: center; padding-top: 12px; gap: 8px; }
.memory-phone { position: relative; width: 153px; height: 260px; padding: 26px 8px 10px; border: 5px solid var(--ink); border-radius: 24px; background: var(--memory-brand); color: var(--memory-brand-ink); box-shadow: 6px 7px 0 #18171922; overflow: hidden; transition: background .3s,color .3s; }
.phone-island { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); width: 49px; height: 10px; border-radius: 20px; background: var(--ink); }
.phone-brand { position: relative; display: block; z-index: 1; font: 400 21px/1.05 var(--display); margin-bottom: 7px; }
.phone-photo { height: 97px; border: 2px solid #fffaf3; }
.phone-caption { font-size: 8px; font-weight: 800; display: block; text-align: center; margin-top: 8px; }
.phone-share { font-size: 9px; font-weight: 800; text-align: center; background: #fffaf3; color: var(--ink); padding: 6px 3px; border-radius: 20px; margin-top: 8px; }
.phone-progress { position: absolute; left: 12px; right: 12px; bottom: 6px; height: 2px; background: #ffffff60; }
.phone-progress i { display: block; width: 100%; height: 100%; background: currentColor; transform-origin: left; }
.memory-play { display: inline-flex; align-items: center; gap: 9px; border: 1px solid var(--ink); border-radius: 25px; background: var(--ink); color: #fffaf3; font-size: 10px; font-weight: 700; padding: 8px 12px; }
.video-preview-note { font-size: 9px; color: #62534c; }
.memory-phone.is-playing .phone-photo { animation: memory-storyboard 4.2s steps(1) both; }
.memory-phone.is-playing .phone-progress i { animation: memory-progress 4.2s linear both; }
@keyframes memory-storyboard { 0%,100% { background-position: 66% 18%; } 33% { background-position: 28% 18%; } 66% { background-position: 30% 48%; } }
@keyframes memory-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.memory-takeaway { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-top: 34px; padding-top: 28px; border-top: 1px solid #18171950; }
.memory-takeaway p { font-size: clamp(18px,2vw,25px); line-height: 1.5; margin: 12px 0 0; }
.memory-price { display: flex; align-items: center; gap: 20px; max-width: 400px; }
.memory-price strong { font: 400 60px/1 var(--display); white-space: nowrap; }
.memory-price span { font-size: 11px; line-height: 1.8; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .memory-digital:hover .digital-photo-back { transform: translate(42px,-10px) rotate(20deg); }
 .memory-digital:hover .digital-photo-middle { transform: translate(-35px,15px) rotate(-19deg); }
}
@media(max-width:1050px) {
 .experience-flow { grid-template-columns: 1fr; gap: 25px; }
 .experience-flow-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
 .experience-flow-copy .showcase-kicker { grid-column: 1/-1; }
 .experience-flow-copy p { grid-column: 2; grid-row: 2/4; }
 .experience-route li { min-height: 125px; }
 .memory-toolbar { flex-wrap: wrap; }
 .memory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .memory-print { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; }
 .memory-print .memory-card-top { grid-column: 2; align-self: end; }
 .memory-print .print-preview { grid-column: 1; grid-row: 1/3; }
 .memory-print .memory-card-copy { grid-column: 2; border: 0; align-self: start; }
}
@media(max-width:600px) {
 .experience-showcase { margin-top: 28px; }
 .experience-flow { padding: 24px 18px; }
 .experience-flow-copy { display: block; }
 .experience-flow h3 { font-size: 31px; }
 .experience-route { grid-template-columns: 1fr; gap: 10px; }
 .experience-route li { min-height: 73px; flex-direction: row; align-items: center; gap: 10px; padding: 16px; }
 .experience-route strong { font-size: 23px; }
 .experience-route i { right: 24px; top: auto; bottom: -17px; rotate: 90deg; }
 .memory-toolbar { margin-top: 28px; gap: 16px; }
 .memory-toolbar p { font-size: 14px; }
 .memory-style-picker > span { flex-basis: 100%; margin-bottom: 3px; }
 .memory-grid { grid-template-columns: 1fr; gap: 20px; }
 .memory-print { display: flex; }
 .memory-print .memory-card-top { align-self: stretch; }
 .memory-print .memory-card-copy { border-top: 1px solid #d3c3b6; }
 .memory-card-copy h3 { font-size: 32px; }
 .memory-card-top { padding-top: 22px; }
 .print-preview { height: 320px; }
 .memory-takeaway { flex-direction: column; align-items: flex-start; }
 .memory-price strong { font-size: 49px; }
}
@media(prefers-reduced-motion:reduce) {
 .digital-photo,.memory-phone { transition: none; }
 .memory-phone.is-playing .phone-progress i { animation: none; }
}

/* Consistent content scale: full-width section backgrounds, controlled inner blocks. */
@media (min-width:901px) {
 .benefit-grid,.model-banner,.experience-heading,.experience-showcase,.booth-layout,.flow-disclosure,.branding-story,.lab-heading,.calculator-card,.brand-head,.takeover-stage,.screen-revenue-pitch,.screen-commercial-note,.production-heading,.production-grid,.onsite-note,.faq-heading,.faq-tabs,.faq-topics,.faq-contact,.request-grid { width:min(100%,1120px); margin-left:auto; margin-right:auto; }
 .experience-showcase { margin-top:40px; }
 .booth-layout { gap:55px; }
 .branding-story { margin-top:72px; padding-top:45px; }
 .calculator-card { margin-top:34px; }
 .takeover-stage { margin-top:34px; padding:32px; }
 .screen-revenue-pitch { margin-top:30px; }
 .production-grid { margin-top:32px; }
 .onsite-note { margin-top:30px; }
 .faq-tabs { margin-top:35px; }
 .request-grid { grid-template-columns:.8fr 1.2fr; gap:55px; }
}

/* Dense presentation on wide, low laptop screens; content stays complete. */
.branding-heading { scroll-margin-top:110px; }
.branding-figure { width:min(100%,1120px); margin:32px auto 26px; }
.branding-expand > span { padding:9px 12px; }
@media (min-width:901px) and (max-width:1600px) and (max-height:950px) {
 .section { padding-block:68px; }
 .calculator-card { width:min(100%,1120px); margin:30px auto 0; grid-template-columns:1fr 1fr; }
 .calculator-controls { padding:24px 26px; }
 .calculator-top { padding-bottom:15px; }
 .scenario-presets { margin-top:16px; }
 .scenario-presets button { padding-block:9px; }
 .range-field { margin-top:19px; }
 .visitor-entry { margin-block:7px 10px; }
 .visitor-entry input { font-size:clamp(49px,5vw,66px); }
 .calc-options { margin-top:17px; padding-top:16px; }
 .booth-recommendation { min-height:104px; margin:18px 0 8px; padding:15px 0; }
 .booth-recommendation-copy > strong { font-size:36px; }
 .mini-booth { width:29px; height:42px; }
 .capacity-note { margin-bottom:10px; }
 .calculator-extras { margin-top:8px; padding-top:13px; }
 .calculator-extras > span { font-size:29px; }
 .calculator-receipt { margin:14px 14px 22px 0; padding:22px 24px; }
 .receipt-top { padding-bottom:10px; }
 .calc-results > div { padding-block:10px; }
 .calc-results .calc-highlight { padding:17px 0 15px; gap:7px; }
 .calc-results .calc-highlight > strong { font-size:clamp(42px,4.2vw,58px); }
 .calculator-receipt .proposal-note { margin:14px 0; }
 .calculator-receipt .calc-cta { min-height:47px; padding-block:11px; }
 .receipt-footnote { margin:8px 0 0; }
 .receipt-barcode { display:none; }
 .profit-lab .calc-disclaimer { margin-top:20px; }
 .memory-grid { gap:14px; }
 .print-preview,.digital-preview,.video-preview { height:285px; }
 .memory-card-top { padding:17px 19px 0; }
 .memory-card-copy { padding:20px 19px 22px; }
 .memory-card-copy h3 { font-size:clamp(25px,2.2vw,31px); margin-bottom:10px; }
 .memory-card-copy p { font-size:12px; line-height:1.65; }
 .branding-figure { width:min(100%,1040px); margin:28px auto 24px; }
 .takeover-stage { margin-top:32px; padding:30px; }
 .form-shell { padding:25px; }
}

/* Cases stay card-sized instead of stretching with the available row width. */
.cases > .wrap { width:min(90vw,1120px); }
.cases-head { grid-template-columns:1fr 1fr; gap:55px; align-items:end; }
.cases-head .headline { font-size:clamp(42px,4.2vw,64px); }
.cases-total strong { font-size:clamp(66px,6.3vw,94px); }
.cases-total > span { margin-top:8px; font-size:10px; }
.cases-total p { font-size:13px; line-height:1.6; }
.case-grid { grid-template-columns:repeat(auto-fill,minmax(160px,185px)); justify-content:center; gap:12px; margin-top:34px; }
.case-card,.case-main { width:100%; min-height:190px; }
@media(max-width:700px) {
 .cases > .wrap { width:calc(100% - 38px); }
 .cases-head { grid-template-columns:1fr; gap:20px; }
 .cases-head .headline { font-size:clamp(36px,10vw,50px); }
 .cases-total strong { font-size:clamp(62px,20vw,86px); }
 .case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); justify-content:stretch; }
}
@media(max-width:430px) {
 .case-grid { grid-template-columns:1fr; }
}

/* Final desktop scale pass: supporting modules must not compete with the hero. */
@media(min-width:901px) {
 .experience-heading,.lab-heading,.brand-head,.production-heading,.faq-heading { width:min(100%,1000px); }
 .benefit-grid,.model-banner,.experience-showcase,.booth-layout,.flow-disclosure,.production-grid,.onsite-note,.faq-tabs,.faq-topics,.faq-contact,.request-grid { width:min(100%,1000px); }
 .branding-story { width:min(100%,960px); }
 .branding-figure { width:min(100%,900px); }
 .calculator-card,.takeover-stage,.screen-revenue-pitch,.screen-commercial-note { width:min(100%,1000px); }
 .experience-showcase { margin-top:32px; }
 .experience-flow { padding:28px; }
 .experience-route li { min-height:105px; padding:16px 12px; }
 .memory-grid { gap:12px; }
 .memory-card-top { padding:14px 16px 0; }
 .memory-card-top strong { font-size:43px; }
 .print-preview,.digital-preview,.video-preview { height:230px; }
 .print-preview { padding:20px 14px; }
 .memory-phone { width:115px; height:195px; padding:21px 6px 7px; border-width:4px; border-radius:20px; }
 .phone-island { top:5px; width:38px; height:8px; }
 .phone-brand { font-size:16px; margin-bottom:5px; }
 .phone-photo { height:65px; }
 .phone-caption { font-size:6px; margin-top:5px; }
 .phone-share { font-size:7px; padding:4px 2px; margin-top:5px; }
 .memory-card-copy { padding:17px 16px 19px; }
 .memory-card-copy h3 { font-size:25px; margin-bottom:9px; }
 .memory-card-copy p { font-size:11px; line-height:1.6; }
 .memory-takeaway { padding:24px 26px; }
 .booth-layout { grid-template-columns:.9fr 1.1fr; gap:42px; }
 .booth-copy .headline { font-size:clamp(40px,3.7vw,56px); }
 .booth-copy > p { font-size:13px; line-height:1.75; }
 .booth-visual { padding:12px; }
 .branding-story { margin-top:58px; padding-top:38px; }
 .branding-heading { gap:55px; }
 .branding-heading .headline { font-size:clamp(40px,3.7vw,56px); }
 .branding-figure { margin-block:24px 20px; }
 .panel-selector button { padding:16px; }
 .panel-explanation { min-height:0; padding-block:20px; }
 .takeover-stage { padding:26px; }
 .screen-outside { height:300px; }
 .screen-inside { height:205px; }
 .production-card { padding-top:18px; }
 .form-shell { padding:24px; }
}

/* Unified desktop rhythm: one width, one heading scale, predictable alignment. */
@media(min-width:901px) {
 :root { --wrap:min(calc(100vw - 96px),1120px); }
 .section { padding-block:72px; }
 .section-label { margin-bottom:34px; }
 .headline,.intro .headline,.festival-head .headline,.lab-heading .headline { font-size:clamp(40px,3.6vw,58px); line-height:1.06; }
 .display { font-size:clamp(68px,5.4vw,104px); }
 .intro-grid,.festival-head,.cases-head,.experience-heading,.branding-heading,.lab-heading,.brand-head,.production-heading { grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
 .intro-copy,.festival-head > p,.experience-value,.branding-heading > p,.lab-heading > p,.brand-copy,.production-heading > p { max-width:500px; }
 .intro-copy > p,.festival-head > p,.branding-heading > p,.lab-heading > p,.brand-copy p,.production-heading > p { font-size:13px; line-height:1.7; }
 .cases > .wrap,.cases-head,.experience-heading,.experience-showcase,.booth-layout,.flow-disclosure,.branding-story,.lab-heading,.calculator-card,.brand-head,.takeover-stage,.screen-revenue-pitch,.screen-commercial-note,.production-heading,.production-grid,.onsite-note,.faq-heading,.faq-tabs,.faq-topics,.faq-contact,.request-grid { width:var(--wrap); max-width:100%; }
 .cases-head { gap:56px; }
 .cases-head .headline { font-size:clamp(40px,3.6vw,58px); }
 .cases-total strong { font-size:clamp(64px,5.5vw,86px); }
 .experience-showcase { margin-top:30px; }
 .booth-layout { grid-template-columns:1fr 1.15fr; gap:48px; align-items:start; }
 .booth-copy { padding-top:24px; }
 .booth-copy .headline,.branding-heading .headline { font-size:clamp(40px,3.6vw,58px); }
 .branding-story { margin-top:58px; }
 .branding-figure { width:min(100%,900px); }
 .calculator-card,.takeover-stage { width:min(var(--wrap),1000px); }
 .production-grid { grid-template-columns:1fr 1fr; }
 .request-grid { grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start; }
}
@media(min-width:1600px) and (min-height:951px) {
 :root { --wrap:min(calc(100vw - 160px),1200px); }
 .section { padding-block:82px; }
 .headline,.intro .headline,.festival-head .headline,.lab-heading .headline,.cases-head .headline,.booth-copy .headline,.branding-heading .headline { font-size:clamp(48px,3.3vw,64px); }
}

/* Calculator is a compact decision tool, not another hero panel. */
@media(min-width:901px) {
 .calculator-card { width:min(var(--wrap),860px); grid-template-columns:1fr 1fr; margin-top:26px; }
 .calculator-controls { padding:18px 20px; }
 .calculator-top { padding-bottom:11px; font-size:9px; }
 .scenario-presets { margin-top:12px; gap:6px; }
 .scenario-presets button { padding:7px 6px; font-size:11px; }
 .range-field { margin-top:14px; }
 .range-heading > label { font-size:10px; }
 .visitor-entry { margin:5px 0 7px; }
 .visitor-entry input { width:190px; font-size:48px; }
 .range-scale { margin-top:5px; }
 .calc-options { margin-top:12px; padding-top:12px; gap:12px; }
 .calc-formula strong { font-size:22px; }
 .booth-recommendation { min-height:78px; margin:12px 0 6px; padding:10px 0; }
 .booth-recommendation-copy > strong { font-size:30px; }
 .booth-recommendation-copy p { font-size:8px; line-height:1.45; }
 .mini-booth { width:23px; height:34px; }
 .capacity-note { margin-bottom:7px; font-size:8px; }
 .calculator-extras { margin-top:5px; padding-top:8px; gap:10px; }
 .calculator-extras > span { font-size:24px; }
 .calculator-extras strong { font-size:11px; margin-bottom:3px; }
 .calculator-extras p { font-size:9px; line-height:1.5; }
 .calculator-receipt { margin:10px 10px 17px 0; padding:17px 19px; }
 .receipt-top { padding-bottom:8px; }
 .calc-results > div { padding:8px 0; }
 .calc-results > div > span { font-size:8px; }
 .calc-results > div > strong { font-size:21px; }
 .calc-results .calc-highlight { padding:12px 0 11px; gap:5px; }
 .calc-highlight > span > span { font-size:10px; }
 .calc-results .calc-highlight > strong { font-size:44px; }
 .calc-highlight small { font-size:8px; }
 .calc-results .advert-exclusion { padding:4px 6px; font-size:7px; }
 .calculator-receipt .proposal-note { margin:9px 0; font-size:9px; line-height:1.5; }
 .calculator-receipt .proposal-note p { margin-top:3px; }
 .calculator-receipt .calc-cta { min-height:41px; padding:8px 12px; font-size:9px; }
 .receipt-footnote { margin-top:6px; font-size:8px; }
 .profit-lab .calc-disclaimer { width:min(100%,760px); margin-top:16px; }
}
