/* Responsive composition: overrides the earlier desktop art-direction rules. */
.hero-inner>*,.experience-grid>*,.events-layout>*,.flavors-top>*,.booking-invitation>*{min-width:0}
.social-swipe-hint{display:none}

@media(max-width:1180px){
  :root{--gutter:32px}
  .wrap{width:calc(100% - var(--gutter)*2)}
  .header-inner{height:78px;gap:20px}
  .brand{width:110px;height:62px;flex-shrink:0}
  .brand img{width:auto;height:58px;max-width:100%;object-fit:contain}
  .header-inner>.button{min-height:46px;font-size:.8125rem;padding:11px 18px;gap:14px}
  .header-inner>.menu-toggle{width:46px;min-width:46px;height:46px}
  .hero-inner{display:grid;grid-template-columns:1.07fr .93fr;gap:24px;align-items:center;min-height:0;padding-block:28px 38px}
  .hero-copy{width:auto;max-width:none}
  .hero h1{font-size:clamp(2.4rem,5.15vw,3.8rem);line-height:1.07;letter-spacing:-.055em}
  .hero-description{font-size:.96875rem;line-height:1.75;max-width:490px;padding:0;margin-top:20px}
  .hero-actions{gap:12px 20px;margin-top:24px}
  .hero-actions .button{min-height:52px;font-size:.8125rem;padding:14px 19px}
  .hero-actions .text-link{min-height:44px;font-size:.8125rem}
  .hero-art{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1/1.15;margin:0;inset:auto}
  .hero-cup{width:70%;left:2%;right:auto;top:8%;bottom:auto}
  .hero-cone{width:36%;left:auto;right:3%;top:2%;bottom:auto}
  .hero-shape{inset:4% 0 0;width:auto;height:auto}
  .hero-shape-soft{inset:27% 0 0;width:auto;height:auto}
  .hero-orbit{left:1%;top:6%;width:98%;height:89%}
  .hero-biscuit{width:13%;right:1%;top:64%;bottom:auto}
  .hero-nut{width:5%;left:64%;top:6%;bottom:auto}
  .hero-crumbs{width:8%;right:1%;top:41%;bottom:auto}
  .hero-chunk{width:5%;left:0;top:54%;bottom:auto}
  .experience-grid{grid-template-columns:1fr 1fr;gap:32px;align-items:center}
  .cart-picture{padding:0;align-self:center;width:100%}
  .cart-picture>img{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1600/1066;object-fit:contain;border-radius:20px}
  .experience-copy{padding:0}
  .experience-copy h2{font-size:clamp(2.1rem,3.6vw,3rem);line-height:1.12;margin-top:16px}
  .experience-copy .lead{font-size:1rem;margin-block:18px 14px}
  .service-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;font-size:.8125rem;line-height:1.6;margin-block:20px}
  .service-details li{padding-top:10px}
  .section-heading h2,.process-heading h2{font-size:clamp(2.2rem,4.2vw,3.2rem);line-height:1.12}
  .events-layout{grid-template-columns:.85fr 1.15fr;gap:32px}
  .event-tabs button{font-size:clamp(1rem,1.8vw,1.3rem);padding-block:18px;min-height:66px;gap:12px}
  .event-panel figure{height:auto;aspect-ratio:4/3;border-radius:20px}
  .event-panel figure>img{width:100%;height:100%;object-fit:cover}
  .event-caption{min-height:0;margin-top:18px}
  .event-caption h3{font-size:1.5rem;margin-bottom:10px}
  .event-caption p{font-size:.9375rem;line-height:1.7}
  .events-extra{gap:24px}
  .events-extra>.button{flex-shrink:0}
  .flavors-top{display:grid;grid-template-columns:1fr 1.08fr;gap:28px;min-height:0;align-items:center}
  .flavors-copy h2{font-size:clamp(2rem,3.65vw,2.9rem);line-height:1.13;margin-block:17px 20px;max-width:none}
  .flavors-copy>p:not(.eyebrow){font-size:.9375rem;line-height:1.75}
  .flavors-copy>.text-link{font-size:.8125rem;min-height:44px;gap:12px}
  /* The film determines the height of all three rows, preserving its ratio. */
  .flavors-art{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr)) auto;column-gap:14px;row-gap:0;width:100%;max-width:530px;height:auto;aspect-ratio:auto;margin:0 auto}
  .flavor-film{position:relative;inset:auto;grid-column:2;grid-row:1/span 3;align-self:start;width:100%;height:auto;max-width:none;aspect-ratio:9/16;border-radius:80px 80px 18px 18px}
  .flavor-film>video{width:100%;height:100%;aspect-ratio:9/16;object-fit:contain}
  .flavor-film>.ambient-control{max-width:calc(100% - 16px);min-height:44px;font-size:.75rem;padding:8px 12px;bottom:10px}
  .flavor-pair{position:relative;inset:auto;grid-column:1;width:100%;height:100%;min-height:0}
  .flavor-pair-strawberry{grid-row:1}.flavor-pair-brownie{grid-row:2}.flavor-pair-lemon{grid-row:3}
  .flavor-pair .gelato-scoop{inset:12px 6px;width:calc(100% - 12px);height:calc(100% - 24px)}
  .flavor-pair .ingredient{left:3px;right:3px;width:calc(100% - 6px)}
  .flavor-caption{position:static;grid-column:2;grid-row:4;margin-top:12px;font-size:.75rem;line-height:1.5}
  .flavor-halo{inset:4% -1% 2% 0}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px}
  .steps>li{padding-top:20px}.steps>li>span{font-size:2.7rem;margin-bottom:17px}
  .steps h3{font-size:1.35rem}.steps p{font-size:.9375rem;line-height:1.75}
  .process-bottom{gap:28px;align-items:center}
  .process-bottom>.button{flex-shrink:0}
  .gallery-heading{gap:24px}
  .gallery-heading h2{font-size:clamp(2.2rem,4.1vw,3rem)}
  .social-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:820px;margin-inline:auto}
  .social-gallery .social-media-frame{width:100%;height:auto;max-height:none;aspect-ratio:4/5}
  .social-gallery figcaption{min-height:54px;gap:10px}
  .social-gallery figcaption>span{min-width:0}
  .booking-invitation{grid-template-columns:1.1fr 1fr}
  .booking-invite-copy{padding:30px 28px}
  .booking-invite-copy h2{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.14}
  .booking-invite-copy>.button{font-size:.8125rem;gap:14px;padding-inline:19px}
  .booking-dialog{width:min(580px,100vw);height:100dvh;max-height:100dvh;overscroll-behavior:contain}
  .dialog-shell{padding:24px 32px calc(30px + env(safe-area-inset-bottom))}
  .form-intro h2{font-size:2.5rem;line-height:1.12}
  .form-buttons>.button{min-width:0;white-space:normal}
}

@media(max-width:900px){
  :root{--gutter:28px}
  .hero-inner{grid-template-columns:1.06fr .94fr;gap:20px}
  .hero h1{font-size:clamp(2.3rem,5.25vw,3rem)}
  .hero-description{font-size:.9375rem}
  .experience-grid{gap:26px}
  .flavors-top{grid-template-columns:.86fr 1.14fr;gap:24px}
  .flavors-copy h2{font-size:clamp(1.9rem,3.9vw,2.3rem)}
  .gallery-heading>.button{font-size:.8125rem;padding-inline:18px;white-space:normal}
  /* Four independent tracks replace overlapping absolute positions on smaller screens. */
  .story{height:190svh}
  .story .story-sticky{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 130px 24px;gap:14px;padding:18px var(--gutter);min-height:0}
  .story .story-top{position:static;inset:auto;width:100%;transform:none;min-width:0;gap:12px;align-items:center}
  .story .story-top>.eyebrow{max-width:none;font-size:.6875rem;line-height:1.5;letter-spacing:.13em}
  .story .story-top>span:last-child{display:none}
  .story .story-media{position:relative;inset:auto;grid-row:2;justify-self:center;align-self:center;width:auto;height:100%;min-height:0;max-width:100%;aspect-ratio:9/16;transform:none;border-radius:18px;margin:0}
  .story .story-media>video,.story .story-fallback{object-fit:contain;object-position:center}
  .story .story-chapters{position:relative;inset:auto;grid-row:3;justify-self:center;width:100%;max-width:620px;height:130px}
  .story .story-chapter,.story .story-chapter.is-active{inset:0 auto auto 0;width:100%;max-width:none;padding:0;transform:none;text-align:center}
  .story .chapter-numeral{font-size:1rem;margin-bottom:7px;line-height:1}
  .story .story-chapter h2{font-size:clamp(1.5rem,3.8vw,1.95rem);line-height:1.12}
  .story .story-chapter>p{font-size:.8125rem;line-height:1.5;margin:9px auto 0;max-width:100%}
  .story .story-bottom{position:static;inset:auto;grid-row:4;width:100%;transform:none;gap:16px;align-items:center}
  .story .story-counter{font-size:.75rem;line-height:1.2}.story .story-counter>span{font-size:1.25rem}
  .story .story-signature,.story .floating-piece{display:none}
  .story .story-mode{inset:auto auto 10px 50%;transform:translateX(-50%);max-width:calc(100% - 16px);min-height:44px;padding:8px 13px;font-size:.75rem}
}

@media(max-width:700px){
  :root{--gutter:20px}
  html{scroll-padding-top:78px}
  .section-pad{padding-block:42px}
  .header-inner{height:68px;gap:14px}
  .brand{width:94px;height:58px}.brand img{height:52px;width:auto}
  .header-inner>.button{display:none}
  .hero-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0;min-height:0;padding-block:22px 28px}
  .hero-copy{display:contents}
  .hero h1{grid-row:1;font-size:clamp(2rem,8.7vw,3.35rem);line-height:1.07;letter-spacing:-.055em;max-width:590px}
  .hero-description{grid-row:2;font-size:.9375rem;line-height:1.7;max-width:540px;margin:16px 0 0;padding:0}
  .hero-art{grid-row:3;justify-self:center;width:min(100%,440px);height:auto;aspect-ratio:1/1.09;min-height:0;margin:18px 0 0;inset:auto}
  .hero-cup{width:70%;left:3%;right:auto;top:7%;bottom:auto}
  .hero-cone{width:35%;right:3%;left:auto;top:3%;bottom:auto}
  .hero-actions{grid-row:4;display:flex;flex-direction:column;gap:4px;width:100%;margin-top:14px;align-items:stretch}
  .hero-actions .button{width:100%;justify-content:space-between;min-height:54px;font-size:.875rem;padding:14px 20px}
  .hero-actions .text-link{align-self:center;min-height:44px;font-size:.8125rem;padding:9px 0}
  .facts-ribbon{margin-top:0;padding-block:24px;border-radius:0}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 0;padding:0}
  .facts>div{padding-inline:10px}.facts dt{font-size:clamp(2rem,8.2vw,2.8rem)}
  .facts dd{font-size:.75rem;line-height:1.5;max-width:145px;margin:5px auto 0}
  .experience{padding-block:38px 42px}
  .experience-grid{display:flex;flex-direction:column;gap:24px}
  .cart-picture{padding:0;align-self:stretch}
  .cart-picture>img{height:auto;min-height:0;max-height:none;aspect-ratio:1600/1066;object-fit:contain;border-radius:16px}
  .experience-copy h2,.section-heading h2,.flavors-copy h2,.process-heading h2,.gallery-heading h2{font-size:clamp(1.95rem,7.8vw,2.7rem);line-height:1.13}
  .experience-copy h2{margin-top:14px}.experience-copy .lead{font-size:.9375rem;margin-block:16px}
  .service-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;font-size:.8125rem;margin-block:18px}
  .experience-copy .text-link{font-size:.8125rem;min-height:44px;gap:20px}
  .story{height:180svh}
  .section-heading{display:block;margin-bottom:22px}.section-heading .eyebrow{margin-bottom:14px}
  .events-layout{display:flex;flex-direction:column;gap:22px}
  .event-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;width:100%;border-top:0}
  .event-tabs button{min-width:0;min-height:52px;font-size:clamp(.8125rem,3.8vw,.9375rem);line-height:1.4;padding-block:13px;gap:8px}
  .event-tabs button>span{min-width:0}.event-tabs .event-index{display:none}.event-tabs button>svg{width:14px}
  .event-tabs button:last-child{grid-column:1/-1}
  .event-panel{width:100%}.event-panel figure{height:auto;aspect-ratio:3/2;border-radius:16px}
  .event-caption{min-height:0;margin-top:16px}.event-caption h3{font-size:1.4rem;line-height:1.2}.event-caption p{font-size:.875rem;line-height:1.7}
  .events-extra{display:block;margin-top:22px;padding-top:20px}
  .events-extra>p{font-size:.8125rem}.events-extra>.button{width:100%;min-height:52px;margin-top:17px;white-space:normal;justify-content:space-between}
  .flavors{padding-block:42px;border-radius:0}
  .flavors-top{display:flex;flex-direction:column;gap:25px;align-items:stretch;min-height:0}
  .flavors-copy{width:100%;max-width:none}.flavors-copy h2{margin-block:14px 18px;max-width:510px}
  .flavors-copy>p:not(.eyebrow){font-size:.9375rem;line-height:1.7;max-width:520px}
  .flavors-copy>.text-link{margin-top:16px;min-height:44px}
  .flavors-art{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr)) auto;gap:0 12px;width:min(100%,440px);max-width:none;height:auto;margin:0 auto}
  .flavor-film{border-radius:70px 70px 16px 16px}
  .flavor-pair .gelato-scoop{inset:9px 4px;width:calc(100% - 8px);height:calc(100% - 18px)}
  .flavor-caption{font-size:.75rem;margin-top:10px}.flavor-caption>span:first-child{font-size:.75rem}
  .process-heading{display:block;margin-bottom:24px}.process-heading h2{margin-top:14px}
  .steps{grid-template-columns:minmax(0,1fr);gap:0}
  .steps>li{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:16px;padding-block:20px}
  .steps>li>span{grid-row:1/span 2;font-size:1.85rem;line-height:1.2;margin:0}
  .steps h3{font-size:1.2rem;line-height:1.25;margin-bottom:7px}.steps h3 br{display:none}
  .steps p{font-size:.875rem;line-height:1.7}
  .process-bottom{display:block;margin-top:0;padding-top:20px}
  .process-bottom .travel-note{font-size:.75rem;line-height:1.8}
  .process-bottom>.button{width:100%;min-height:52px;font-size:.8125rem;justify-content:space-between;margin-top:20px}
  .moments{padding-block:40px}.gallery-heading{display:block;margin-bottom:8px}.gallery-heading h2{margin-top:14px}
  .gallery-heading>.button{margin-top:18px;min-height:50px;font-size:.8125rem;white-space:normal}
  .social-swipe-hint{display:block;font-size:.75rem;color:var(--muted);margin:14px 0}
  .social-gallery{display:flex;gap:16px;max-width:none;width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0;padding-bottom:12px}
  .social-gallery figure,.social-gallery figure:nth-child(even){flex:0 0 86%;max-width:340px;min-width:0;scroll-snap-align:start;margin:0;padding:0}
  .social-gallery .social-media-frame{height:auto;max-height:none;aspect-ratio:4/5;border-radius:16px}
  .social-gallery figcaption{font-size:.75rem;min-height:54px;gap:8px}.social-gallery figcaption>button,.social-gallery figcaption>a{font-size:.75rem;min-height:44px}
  .booking{padding-block:24px}.booking-invitation{display:flex;flex-direction:column-reverse;align-items:stretch;border-radius:18px}
  .booking-invite-copy{padding:28px 22px 18px}.booking-invite-copy h2{font-size:clamp(1.85rem,7.7vw,2.6rem);line-height:1.14}
  .booking-invite-copy>p:not(.eyebrow){font-size:.875rem;line-height:1.75}
  .booking-invite-copy>.button{width:100%;min-height:54px;justify-content:space-between;font-size:.8125rem;gap:12px;margin-top:20px}
  .booking-editorial{padding:6px 12px 20px}.booking-invite-note{font-size:.75rem;line-height:1.5}
  .site-footer{padding:26px var(--gutter) calc(18px + env(safe-area-inset-bottom))}
  .footer-signature>p{font-size:.75rem}.footer-links{gap:0 18px}.footer-links>a{font-size:.75rem}
  .footer-meta{font-size:.75rem}.footer-meta .agency-credit{font-size:.6875rem}
  .mobile-cta{padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom))}
  .mobile-cta>.button{font-size:.875rem;min-height:50px}
  .booking-dialog{inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .dialog-shell{padding:18px 20px calc(24px + env(safe-area-inset-bottom))}
  .dialog-top{margin-bottom:22px}.dialog-top>img{width:86px;height:auto}
  .form-intro h2{font-size:clamp(1.95rem,8.2vw,2.7rem);line-height:1.12;margin-top:15px}
  .form-intro>p:last-child{font-size:.875rem;line-height:1.7;margin-top:14px}
  .form-progress{gap:16px;margin-block:23px 20px;font-size:.8125rem}.form-progress-lines{width:76px;flex-shrink:0}
  .field{margin-bottom:17px}.field label{font-size:.8125rem;line-height:1.5}
  input,select,textarea{font-size:16px;min-height:52px;padding:12px;scroll-margin-block:90px}
  .field-error{font-size:.75rem;line-height:1.5}
  .form-buttons{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center}
  .form-buttons>.button{min-height:56px;font-size:.8125rem;line-height:1.4;padding:12px;gap:8px;white-space:normal}
  .form-buttons>.button svg{width:18px}.back-button{font-size:.8125rem;min-height:48px;padding:0}
  .form-next{min-height:52px;font-size:.875rem}
  .mobile-menu{padding:16px var(--gutter) calc(20px + env(safe-area-inset-bottom));height:100dvh}
  .menu-top{position:sticky;top:0;z-index:2;background:var(--cream);padding-bottom:12px}.menu-top>img{width:86px;height:auto}
  .mobile-menu nav{margin-top:10px}.mobile-menu nav a{font-size:clamp(1.3rem,5.8vw,1.8rem);line-height:1.2;min-height:46px;padding-block:10px}
  .menu-bottom{padding-top:20px}.menu-bottom>.button{min-height:52px;font-size:.8125rem}
  .privacy-dialog{padding:62px 22px 25px;max-height:calc(100dvh - 24px)}
  .privacy-dialog h2{font-size:1.9rem;line-height:1.15}.privacy-dialog p:not(.eyebrow){font-size:.875rem}
}

@media(max-width:360px){
  :root{--gutter:16px}
  .hero h1{font-size:2rem}.hero-description{font-size:.875rem}
  .event-tabs button>svg{display:none}
  .dialog-shell{padding-inline:16px}.form-buttons>.button{font-size:.75rem}
  .booking-invite-copy{padding-inline:18px}
}

@media(max-width:900px) and (max-height:650px){
  .story .story-sticky{grid-template-rows:auto minmax(0,1fr) 91px 22px;gap:10px;padding-block:12px}
  .story .story-chapters{height:91px}.story .chapter-numeral{font-size:.875rem;margin-bottom:6px}
  .story .story-chapter h2{font-size:1.4rem}.story .story-chapter>p{display:none}
  .story .story-top>.eyebrow{font-size:.625rem;letter-spacing:.1em}
}
@media(min-width:600px) and (max-width:1180px) and (max-height:560px){
  .story .story-sticky{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:auto minmax(0,1fr) 22px;gap:12px 24px;padding:12px var(--gutter)}
  .story .story-top{position:static;inset:auto;transform:none;width:100%;grid-column:1/-1;grid-row:1}
  .story .story-top>.eyebrow{font-size:.625rem;max-width:none}.story .story-top>span:last-child{display:none}
  .story .story-media{position:relative;inset:auto;transform:none;grid-column:2;grid-row:2;justify-self:center;width:auto;max-width:100%;height:100%;min-height:0;aspect-ratio:9/16}
  .story .story-chapters{position:relative;inset:auto;grid-column:1;grid-row:2;align-self:center;width:100%;height:110px}
  .story .story-chapter,.story .story-chapter.is-active{inset:0 auto auto 0;width:100%;max-width:none;transform:none;text-align:left}
  .story .chapter-numeral{font-size:.9375rem;margin-bottom:9px}.story .story-chapter h2{font-size:clamp(1.2rem,2.6vw,1.6rem);line-height:1.15}
  .story .story-chapter>p,.story .floating-piece,.story .story-signature{display:none}
  .story .story-bottom{position:static;inset:auto;transform:none;width:100%;grid-column:1/-1;grid-row:3;gap:16px}
}
@media(prefers-reduced-motion:reduce) and (max-width:1180px){
  .story{height:auto!important}
  .story .story-sticky{position:relative;inset:auto;display:block;height:auto;padding:30px var(--gutter)}
  .story .story-top{position:static;inset:auto;width:100%;transform:none;margin-bottom:22px}
  .story .story-media{position:relative;inset:auto;transform:none;width:min(72%,300px);height:auto;aspect-ratio:9/16;max-width:100%;margin:0 auto 28px;float:none}
  .story .story-chapters{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;width:100%;height:auto;max-width:none}
  .story .story-chapter{position:static!important;inset:auto;transform:none!important;width:100%;height:auto;text-align:left;margin:0;opacity:1;visibility:visible}
  .story .story-chapter h2{font-size:1.4rem}.story .story-chapter>p{display:block;font-size:.8125rem;margin-top:9px}
  .story .story-bottom,.story .floating-piece{display:none}
}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.story .story-chapters{grid-template-columns:minmax(0,1fr)}}
@media print{.story .story-sticky{display:block;height:auto;padding:25px}.story .story-chapters{height:auto}.story .story-chapter{text-align:left}}
