/* Final layout layer: readable touch layouts and complete, equal-size cake cards. */
:root{--header-height:104px}
html{scroll-padding-top:calc(var(--header-height) + 16px)}
section[id],.section-anchor{scroll-margin-top:calc(var(--header-height) + 16px)}
.hero-location{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid #153d2c28;border-radius:99px;font-size:9px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;margin-bottom:13px;color:#153d2c}
.hero .hero-copy .eyebrow{margin-bottom:16px}
.hero .hero-copy .hero-title{margin:0}
.cake-carousel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:15px 0 10px}
.cake-carousel-toolbar>div{display:flex;gap:8px}
.cake-carousel-toolbar .round-button{width:44px;height:44px;min-width:44px}
.cake-carousel-toolbar p{font-size:11px}
.dessert-atelier .cake-carousel{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/4.4);gap:9px;justify-content:start;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#869c79 transparent;padding:5px 5px 14px;margin:-5px;scroll-padding-inline:5px;align-items:stretch}
.dessert-atelier .cake-carousel button{scroll-snap-align:start;min-width:0;min-height:0;gap:6px;border-radius:15px;white-space:normal;display:flex;flex-direction:column;height:100%;padding:5px}
.dessert-atelier .cake-carousel .cake-style-thumb{aspect-ratio:4/5;flex:none}
.dessert-atelier .cake-carousel .cake-style-thumb img{object-fit:contain;object-position:center}
.dessert-atelier .cake-carousel .cake-style-label{font-size:10px;line-height:1.4;min-height:4.2em;flex:1;padding-inline:2px}
.cake-carousel-hint{font-size:11px;line-height:1.6;margin-top:12px}
.cake-visual,.cake-form,.contact-layout>*{min-width:0}
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.faq-list details{background:#f3efe4;border:1px solid #153d2c19;border-radius:20px;overflow:hidden}
.faq-list summary{padding:22px 24px;cursor:pointer;font-size:15px;font-weight:600;line-height:1.5;min-height:60px}
.faq-list details[open]{background:#edf0e2}
.faq-list details p{padding:0 24px 24px;font-size:14px;line-height:1.85}
.round-button:disabled{opacity:.4;cursor:default}
input::placeholder,textarea::placeholder{color:#607162;opacity:1}
.portfolio-modal{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
.portfolio-full{min-height:0}
.event-form input,.event-form select,.event-form textarea,.cake-form input,.cake-form select{scroll-margin-top:calc(var(--header-height) + 22px)}
@media(max-width:1100px){
 .section-heading{gap:28px}
 .section-heading>p{max-width:42%}
 .dessert-atelier .cake-carousel{grid-auto-columns:calc((100% - 27px)/3.4)}
 .hero .hero-copy .hero-title{overflow-wrap:normal}
 .hero .hero-copy p{line-height:1.7}
}
@media(max-width:760px){
 .hero .hero-stage{display:grid;height:auto;min-height:0}
 .hero .hero-slide{position:relative;inset:auto;grid-area:1/1;display:flex;flex-direction:column;min-height:0;padding-bottom:62px;overflow:hidden}
 .hero .hero-slide .hero-copy,.hero .hero-slide[data-slide="0"] .hero-copy{position:relative;inset:auto;order:1;transform:none;translate:none;width:auto;max-width:none;padding:27px 24px 0}
 .hero .hero-copy .hero-title,html[lang=en-CA] .hero .hero-copy .hero-title,.hero .hero-slide[data-slide="0"] .hero-copy .hero-title,html[lang=en-CA] .hero .hero-slide[data-slide="0"] .hero-copy .hero-title{font-size:clamp(36px,9.3vw,52px);line-height:1.06}
 .hero .hero-copy .eyebrow{font-size:9px;line-height:1.5;margin-bottom:13px}
 .hero-location{font-size:9px;margin-bottom:12px}
 .hero .hero-copy p,.hero .hero-slide[data-slide="0"] .hero-copy p,html[lang=en-CA] .hero .hero-copy p{font-size:14px;line-height:1.7;max-width:520px;margin:15px 0 18px}
 .hero .hero-dietary-note{font-size:11px;line-height:1.6}
 .hero .hero-copy .btn,.hero .hero-slide[data-slide="0"] .hero-copy .btn,html[lang=en-CA] .hero .hero-copy .btn{font-size:12px;min-height:48px;max-width:100%;padding-inline:18px}
 .hero .hero-slide[data-slide] .hero-media,.hero .hero-slide:not([data-slide="0"]) .hero-media{position:relative;inset:auto;order:2;translate:none;transform:none;width:100%;height:auto;max-height:none;margin-top:25px;aspect-ratio:4/3;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 95%,transparent);mask-image:linear-gradient(180deg,transparent,#000 7%,#000 95%,transparent);mask-composite:add}
 .hero .hero-slide[data-slide="0"] .hero-media{aspect-ratio:1377/791}
 .hero .hero-slide[data-slide="2"] .hero-media{aspect-ratio:3/2}
 .hero .hero-slide .hero-shade{display:none}
 .hero .hero-bottom{left:20px;right:20px;bottom:14px}
 .hero .hero-controls button{width:44px;height:44px;min-width:44px}
 .hero .hero-dots{gap:7px;align-items:center}
 .hero .hero-dots button{min-height:32px;width:20px}
 .hero .hero-controls{gap:6px}
 .hero .hero-controls>span{font-size:9px;padding-inline:7px}
 .section-heading{display:block}
 .section-heading>p{max-width:100%;font-size:15px;line-height:1.8}
 .intro p,.bars-intro>p,.story-copy>p,.contact-copy>p,.food-note{font-size:15px;line-height:1.8}
 .section{padding-block:70px}
 .site-header .desktop-nav a{min-height:44px}
 .site-header .language-switch a{min-width:30px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .site-header .header-socials a{width:34px;min-height:44px}
 .site-header .brand-logo{width:105px}
 .site-header .nav-wrap{column-gap:7px}
 .event-form input,.event-form select,.event-form textarea,.cake-form input,.cake-form select{font-size:16px;min-height:46px}
 .event-form label,.cake-form label{font-size:12px}
 .event-form .service-checks label{font-size:12px;min-height:44px}
 .contact-layout,.cake-builder{gap:28px}
 .brief-modal{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:24px 20px}
 .brief-modal textarea{max-height:35dvh}
 .faq-list{grid-template-columns:1fr}
 .faq-list summary{padding:19px 20px;font-size:14px}
 .faq-list details p{padding:0 20px 22px;font-size:14px}
 .dessert-atelier .cake-carousel{grid-auto-columns:calc((100% - 18px)/2.5)}
 .cake-carousel-hint{font-size:12px}
 .cake-carousel-toolbar{margin-top:16px}
 .cake-style-label{overflow-wrap:anywhere}
 .site-footer{padding-bottom:calc(25px + env(safe-area-inset-bottom))}
 .site-toast{max-width:calc(100vw - 24px);bottom:calc(16px + env(safe-area-inset-bottom))}
}
@media(max-width:600px){
 .service-grid{grid-template-columns:1fr;gap:20px}
 .service-photo{height:auto;aspect-ratio:3/2}
 .service-copy{padding:36px 24px 24px}
 .service-copy h3{font-size:34px;min-height:0;margin:14px 0}
 .service-copy p{font-size:15px;line-height:1.8;min-height:0}
 .service-copy>.eyebrow{font-size:10px}
 .service-icon{width:48px;height:48px;bottom:-22px;left:24px}
 .service-copy .card-arrow{width:40px;height:40px}
 .food-detail{display:block}
 .food-detail>img{height:250px;width:100%;object-fit:cover;min-height:0}
 .food-detail>div{padding:25px}
 .food-detail p{font-size:14px}
 .food-tabs button,.collection-filters button{font-size:12px;min-height:44px}
 .portfolio-carousel-heading>p{font-size:12px;line-height:1.6}
 .cake-form .field-grid{grid-template-columns:1fr}
 .dessert-choice-buttons button{font-size:13px}
 .dessert-choice-buttons small{font-size:11px;line-height:1.6}
 .classic-menu h4{font-size:22px}
 .classic-menu-choice{min-height:44px}
}
@media(max-width:370px){
 .site-header .brand-logo{width:90px}
 .site-header .nav-wrap{padding-inline:12px;column-gap:5px}
 .site-header .language-switch a{min-width:28px}
 .hero .hero-slide .hero-copy,.hero .hero-slide[data-slide="0"] .hero-copy{padding-inline:20px}
 .hero .hero-bottom{left:12px;right:12px}
 .hero .hero-dots{gap:4px}
 .hero .hero-dots button{width:15px}
 .hero .hero-controls{gap:4px}
 .hero .hero-controls>span{padding-inline:4px}
}
@media(max-height:500px) and (max-width:1100px){.site-header{position:relative}.portfolio-full{height:52dvh}.portfolio-modal{padding:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero .hero-slide{transition:none!important}}
