/* Vitrina: brand blue, oven gold, Colombian breads. Touch-first enhancement.
   References and rollback are documented in VITRINA-VALIDACION.md. */
:root { --vitrina-cream: #fff8ed; --vitrina-honey: #f3cc88; --vitrina-clay: #d9754b; --ease-drawer: cubic-bezier(.32,.72,0,1); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
button,input,select { font-family:var(--font-body); }

/* A scrollable photographic counter. Native touch momentum, snap and pausable autoplay. */
[data-coverflow] { --cover-width: min(72vw,340px); position:relative; display:flex; gap:22px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:calc((100% - var(--cover-width))/2); padding:30px calc((100% - var(--cover-width))/2) 16px; margin:0; border:0; scrollbar-width:none; overscroll-behavior-x:contain; touch-action:pan-x pan-y; }
[data-coverflow]::-webkit-scrollbar { display:none; }
[data-coverflow].is-dragging { scroll-snap-type:none; cursor:grabbing; user-select:none; }
[data-coverflow] .featured-card { flex:0 0 var(--cover-width); min-width:0; padding:0 0 12px; border:0; scroll-snap-align:center; scroll-snap-stop:always; text-decoration:none; background:transparent; }
[data-coverflow] .featured-card__image { display:block; width:100%; aspect-ratio:1; height:auto; margin:0 0 24px; padding:0; border:1px solid #ffffffb0; border-radius:28px; background:#fff; overflow:hidden; box-shadow:0 14px 25px -18px #53301f65; transform-origin:center; }
[data-coverflow] .featured-card img { width:100%; height:100%; object-fit:cover; pointer-events:none; }
[data-coverflow] .featured-card__title { display:block; margin:0 0 8px; }
[data-coverflow] .featured-card h3 { font-size:clamp(24px,3vw,32px); color:var(--navy); margin:0; }
[data-coverflow] .featured-card>p { font-size:13px; min-height:42px; margin:0; color:var(--ink-soft); }
.featured-card__actions { display:flex; align-items:center; justify-content:space-between; margin:12px 0 4px; }
.featured-card__actions .price { font:650 24px var(--font-display); color:var(--navy); }
.featured-card__category { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:var(--muted); text-decoration:none; }
.featured-card__category:hover { color:var(--navy); }
.coverflow-controls { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:10px; }
.coverflow-controls button { min-height:44px; padding:8px 16px; border:1px solid #003a8d26; border-radius:999px; background:#ffffff75; color:var(--navy); font-size:12px; font-weight:600; }
.coverflow-controls button:disabled { color:var(--muted); opacity:.48; cursor:default; }
.coverflow-controls p { font:600 12px var(--font-body); font-variant-numeric:tabular-nums; margin:0; }
.coverflow-hint { text-align:center; color:var(--navy); font-size:11px; margin:12px 0; }
.availability-note { text-align:center; }
#especialidades,#specialties { position:relative; padding-top:62px; }

/* The entire menu is grouped by category; the first photograph sets each shelf. */
.section--menu { position:relative; isolation:isolate; background:var(--vitrina-cream); }
.section--menu::before { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:radial-gradient(ellipse 75% 560px at 0 160px,#f3cc8845,transparent 75%),radial-gradient(ellipse 60% 580px at 100% 800px,#d9754b16,transparent 75%); }
.menu-intro { gap:30px; margin-bottom:24px; }
.menu-intro h2 { max-width:16ch; }
.menu-tools { position:sticky; top:calc(var(--header-height) - 1px); z-index:24; padding:12px; margin-inline:-12px; border:1px solid #ffffffb0; border-radius:0 0 24px 24px; background:#fff8edeb; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:0 12px 24px -24px #003a8d80; }
.menu-search { display:flex; align-items:center; gap:10px; max-width:460px; padding:0 14px; margin:0 0 10px; border:1px solid #003a8d20; background:#ffffff9e; border-radius:999px; }
.menu-search svg { flex:none; width:20px; height:20px; color:var(--navy); }
.menu-search input { color:var(--ink); width:100%; min-width:0; min-height:44px; border:0; outline:none; background:transparent; font-size:16px; }
.menu-search:focus-within { outline:2px solid var(--navy); outline-offset:2px; }
.menu-search input::placeholder { color:var(--muted); opacity:1; font-size:13px; }
.menu-tools .category-filters { position:relative; top:auto; display:flex; gap:4px; padding:4px 0; border:0; border-radius:0; background:transparent; overflow-x:auto; scrollbar-width:none; isolation:isolate; }
.category-filters::-webkit-scrollbar { display:none; }
.category-filters .filter-button { position:relative; z-index:1; padding:10px 15px; min-height:44px; font-size:12px; white-space:nowrap; border-color:transparent; background:transparent; }
.category-filters .filter-button[aria-pressed=true] { color:white; background:transparent; }
.category-filters .filter-indicator { position:absolute; z-index:0; top:0; left:0; border-radius:999px; background:var(--navy); box-shadow:inset 0 1px 0 #ffffff38; transition:transform 220ms var(--ease-drawer),width 220ms var(--ease-drawer); pointer-events:none; }
.menu-status { margin:20px 0 32px; font-size:11px; }
.product-grid { display:block; }
.catalog-group { margin-bottom:46px; }
.catalog-group__heading { display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:0 2px 18px; }
.catalog-group__heading h3 { font-size:clamp(23px,2.3vw,30px); letter-spacing:-.035em; color:var(--navy); margin:0; }
.catalog-group__heading>span { flex:none; color:var(--muted); font-size:10px; }
.catalog-group__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.product-card { padding:0; border:1px solid #e5d6c25c; border-radius:24px; overflow:hidden; background:#ffffffbf; box-shadow:0 8px 18px -18px #77422270; }
.product-card__visual { position:relative; display:block; width:100%; aspect-ratio:1; padding:0; margin:0; border:0; border-radius:0; background:#f7f0e6; text-align:left; }
.product-card__visual img { display:block; width:100%; height:100%; object-fit:cover; }
.product-card__peek { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:28px; height:28px; border:1px solid #ffffffb0; border-radius:50%; background:#ffffff95; color:var(--navy); font:400 20px var(--font-body); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.product-card .product-card__content { display:flex; flex-direction:column; flex:1; padding:14px; }
.product-card h3 { font-size:17px; margin:0 0 12px; }
.product-card__name { color:var(--ink); background:none; padding:0; border:0; font:inherit; text-align:left; line-height:1.2; }
.product-card__footer { margin-top:auto; gap:8px; }
.product-card .price { font:650 20px var(--font-display); color:var(--navy); }
.price small { font-size:9px; }
.product-card .add-button,.featured-card .add-button { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; width:auto; padding:6px 12px; border-radius:999px; font:500 23px var(--font-body); background:var(--navy); color:white; border:1px solid #003a8d; box-shadow:inset 0 1px 0 #ffffff45; }
.product-card .add-button.is-added,.featured-card .add-button.is-added { font-size:14px; color:var(--navy); background:#fec300b8; border-color:transparent; }






.menu-empty { border:1px dashed #cbbda6; padding:40px 22px; border-radius:24px; text-align:center; }
.menu-empty h3 { font-size:24px; }
.menu-empty p { font-size:14px; }

/* A product opens as a sheet on phones and a photo-led dialog on wide screens. */
.product-dialog { padding:0; border:1px solid #ffffffa0; background:var(--vitrina-cream); color:var(--ink); width:min(900px,calc(100% - 48px)); max-height:calc(100dvh - 48px); border-radius:32px; overflow:auto; box-shadow:0 28px 100px #06142650; overscroll-behavior:contain; }
.product-dialog[open] { display:grid; grid-template-columns:1fr 1fr; }
.product-dialog::backdrop { background:#08172e70; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.product-dialog__handle { display:none; }
.product-dialog__visual { background:#f3ebe0; min-width:0; }
.product-dialog__visual img { width:100%; height:100%; min-height:100%; object-fit:cover; }
.product-dialog__close { position:absolute; z-index:3; top:14px; right:14px; width:44px; height:44px; min-height:44px; padding:0; border:1px solid #ffffffd0; border-radius:50%; background:#ffffffde; color:var(--ink); font:400 26px var(--font-body); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.product-dialog__body { padding:46px 32px 28px; }
.product-dialog__body .section-number { font-size:10px; margin-bottom:14px; padding-right:15px; }
.product-dialog h2 { font-size:32px; color:var(--navy); margin-bottom:16px; }
.product-dialog__description { font-size:14px; line-height:1.7; }
.product-dialog__availability { font-size:11px; color:var(--navy); margin-bottom:10px; }
.product-dialog__allergen { font-size:10px; color:var(--muted); }
.product-dialog__purchase { display:flex; align-items:end; justify-content:space-between; gap:18px; margin:24px 0; }
.product-dialog__quantity>span { font-size:11px; display:block; margin-bottom:8px; font-weight:600; }
.product-dialog .quantity-control { min-height:46px; }
.product-dialog .quantity-control button { min-width:44px; min-height:44px; }
.product-dialog .quantity-control button:disabled { color:#949aa4; cursor:default; }
.product-dialog .price { font:650 27px var(--font-display); color:var(--navy); }
.product-dialog__add { width:100%; min-height:50px; }
body:has(.product-dialog[open]) .whatsapp-float,body:has(.product-dialog[open]) .selection-bar { visibility:hidden; }

/* The map stays visible; interaction is deliberate so it does not trap page swipes. */
.location-map { border:1px solid #ffffff70; border-radius:28px; background:#ffffffed; color:var(--ink); overflow:hidden; box-shadow:0 12px 30px #00265f25; }
.location-map__heading { display:flex; align-items:center; gap:12px; padding:16px 18px; }
.location-map__heading img { width:38px; height:38px; }
.location-map__heading strong { display:block; font-size:14px; color:var(--navy); }
.location-map__heading div>span { display:block; font-size:11px; color:var(--muted); }
.location-map__suite { margin-left:auto; display:grid; place-items:center; flex:none; width:36px; height:36px; background:var(--yellow); color:var(--navy); border-radius:12px; font:700 24px var(--font-display); }
.location-map__canvas { position:relative; height:340px; background:#e6e5da; }
.location-map__canvas iframe { display:block; width:100%; height:100%; border:0; pointer-events:none; }
.location-map.is-active iframe { pointer-events:auto; }
.map-activate { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); min-height:44px; white-space:nowrap; padding:10px 18px; border:1px solid #ffffffb0; border-radius:999px; background:#ffffffee; color:var(--navy); box-shadow:0 4px 20px #00265f30; font-size:12px; font-weight:650; }
.location-map.is-active .map-activate { background:var(--navy); color:white; }
.location-map figcaption { padding:16px 18px; font-size:12px; }
.location-map figcaption strong,.location-map figcaption span { display:block; }
.location-map figcaption span { color:var(--muted); margin-top:3px; font-size:11px; }

.faq { display:block; max-width:850px; }
.faq .section-heading { text-align:center; margin-bottom:32px; }
.faq .section-heading p { margin-inline:auto; }
.faq__list { border:0; display:grid; gap:10px; }
.faq details { border:1px solid #003a8d18; background:#ffffff8a; border-radius:20px; padding-inline:20px; transition:background 160ms; }
.faq details[open] { background:var(--vitrina-cream); border-color:#d9bf8f; }
.faq summary { min-height:68px; padding:16px 0; font-size:14px; }
.faq summary::after { display:grid; place-items:center; flex:none; width:30px; height:30px; background:#003a8d09; border-radius:50%; font-size:22px; }
.faq details p { padding:0 30px 14px 0; margin:0; line-height:1.75; color:var(--ink-soft); }
.faq__contact { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px; margin-top:30px; font-size:13px; }
.site-footer { border-radius:32px 32px 0 0; margin-top:-28px; padding-top:64px; }
.closing { padding-bottom:28px; }

@media(min-width:651px) {
  [data-coverflow] { --cover-width:340px; gap:28px; padding-block:34px 16px; }
  #especialidades,#specialties { padding-bottom:70px; }
  .catalog-group__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
  
  
  .product-card h3 { font-size:19px; }
  .menu-tools { border-radius:0 0 28px 28px; }
}
@media(min-width:1101px) {
  .catalog-group__grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  
  
  
  
  .menu-search { margin-left:auto; }
  .menu-tools { display:flex; align-items:center; flex-wrap:wrap; gap:0 18px; }
  .menu-tools .category-filters { flex:1 1 100%; }
}
@media(max-width:650px) {
  [data-coverflow] { --cover-width:min(72vw,310px); margin-inline:-18px; }
  [data-coverflow] .featured-card__image { border-radius:26px; margin-bottom:20px; }
  [data-coverflow] .featured-card h3 { font-size:25px; }
  .menu-tools { padding:10px 8px; margin-inline:-8px; }
  .menu-intro__copy { font-size:13px; }
  .menu-intro__note { font-size:11px; }
  .catalog-group__grid { gap:12px; }
  .product-card { border-radius:20px; }
  .product-card .product-card__content { padding:12px; }
  .product-card h3 { font-size:16px; }
  .product-card .price { font-size:19px; }
  
  
  
  .product-dialog { width:100%; max-width:none; max-height:calc(100dvh - 16px); margin:auto 0 0; border:0; border-radius:28px 28px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .product-dialog[open] { display:block; }
  .product-dialog__handle { display:block; position:absolute; top:0; left:55px; right:55px; height:28px; z-index:2; touch-action:none; }
  .product-dialog__handle::after { content:""; position:absolute; top:9px; left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:4px; background:#172a3a65; }
  .product-dialog__visual { height:min(36svh,310px); }
  .product-dialog__visual img { min-height:0; object-position:center; }
  .product-dialog__body { padding:24px 22px 22px; }
  .product-dialog h2 { font-size:29px; margin-bottom:12px; }
  .product-dialog__description { font-size:13px; }
  .product-dialog__purchase { margin:18px 0; }
  .product-dialog__close { position:sticky; float:right; margin-right:12px; margin-bottom:-56px; top:12px; }
  .location-map { border-radius:24px; }
  .location-map__canvas { height:310px; }
  .location-map__heading { padding:14px; }
  .location-map__heading strong { font-size:12px; }
  .location-map__heading div>span { font-size:10px; }
  .faq details { padding-inline:16px; border-radius:18px; }
  .faq summary { font-size:13px; gap:10px; }
  .faq details p { font-size:12px; padding-right:0; }
  .faq__contact { flex-direction:column; gap:10px; }
  .site-footer { position:relative; z-index:2; margin-top:-28px; border-radius:28px 28px 0 0; }
}
@media(max-width:360px) {
  .product-card h3 { font-size:15px; }
  .product-card .price { font-size:17px; gap:3px; }
  .product-card .product-card__content { padding:10px; }
  
  
  .product-dialog__body { padding:20px 18px; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .product-card__visual:hover .product-card__peek { background:var(--navy); color:white; }
  .product-card__name:hover { color:var(--navy); }
  .featured-card__image:hover img { transform:scale(1.08); }
  [data-coverflow] { cursor:grab; }
}
@media(prefers-reduced-motion:reduce) {
  [data-coverflow] { scroll-behavior:auto; }
  .category-filters .filter-indicator { transition:none; }
  .product-card.is-revealing .product-card__visual img { animation:none; }
  .product-dialog *, .featured-card img { transition:none; }
}

/* Align the pill with the actual scroller, including small-screen inset rules. */
.menu-tools .category-filters { margin:0; }
.product-card .product-card__footer { flex-direction:row; align-items:center; }
.product-card__footer .add-button { width:auto; }
.text-link { text-decoration:none; }
.section--menu::before { inset:0 0 auto; height:min(800px,100svh); animation:oven-light 16s ease-in-out infinite alternate; animation-play-state:paused; }
.section--menu.is-atmospheric::before { animation-play-state:running; }
@keyframes oven-light { from { opacity:.6; transform:translateY(0); } to { opacity:1; transform:translateY(18px); } }
[data-open-selection] { position:relative; overflow:hidden; isolation:isolate; }
.cart-shine { pointer-events:none; position:absolute; z-index:-1; inset:0; transform:translateX(-160%); background:linear-gradient(105deg,transparent 15%,#ffffff05 30%,#ffffff85 50%,#ffffff05 70%,transparent 85%); }
@media(min-width:1101px) {
  .menu-tools { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:16px; }
  .menu-tools .category-filters { min-width:0; grid-column:1; grid-row:1; }
  .menu-search { width:100%; max-width:none; grid-column:2; grid-row:1; margin:0; }
}
.product-card__peek svg { width:15px; height:15px; }
.product-dialog .quantity-control { grid-template-columns:repeat(3,44px); width:fit-content; }
.site-footer::before,.site-footer::after { border-radius:inherit; }
@media(max-width:650px) {
  [data-coverflow] { padding-inline:calc((100vw - var(--cover-width))/2); }
}

/* Publication refinement: readable, evenly sized product cards. */
.language-pill { min-width:44px; gap:0; }
.catalog-group__grid { grid-template-columns:1fr; gap:16px; }
.product-card { display:grid; grid-template-columns:34% minmax(0,1fr); align-items:stretch; border-radius:24px; }
.product-card__visual { height:100%; aspect-ratio:auto; min-height:190px; overflow:hidden; }
.product-card__visual img { position:absolute; inset:0; height:100%; border-radius:0; }
.product-card .product-card__content { padding:18px; min-width:0; }
.product-card h3 { font-size:19px; margin-bottom:8px; }
.product-card__description { display:block; margin:0 0 14px; font-size:12px; line-height:1.65; color:var(--ink-soft); }
.product-card .product-card__footer { flex-wrap:wrap; gap:8px; margin-top:auto; }
.product-card .price { font-size:22px; white-space:nowrap; }
.product-card .add-button,.featured-card .add-button,
.product-card .add-button.is-added,.featured-card .add-button.is-added { min-height:44px; padding:8px 15px; font-size:12px; font-weight:650; border:1px solid #003a8d30; background:#ffffff90; color:var(--navy); box-shadow:inset 0 1px 0 #fff; }
.product-card .add-button.is-added,.featured-card .add-button.is-added { background:#ffe79e; }
[data-coverflow] .featured-card>p { font-size:13px; line-height:1.7; min-height:88px; }
.featured-card__actions { margin-top:8px; }
.coverflow-controls { gap:10px; flex-wrap:wrap; }
.coverflow-controls [data-coverflow-pause] { border-color:transparent; background:transparent; }
@media(min-width:651px) {
 .catalog-group__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
 .product-card { display:flex; flex-direction:column; }
 .product-card__visual { aspect-ratio:1.45; min-height:0; }
 .product-card .product-card__content { padding:22px; }
 .product-card h3 { font-size:22px; }
 .product-card__description { font-size:13px; }
}
@media(min-width:1001px) { .catalog-group__grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:360px) {
 .product-card { grid-template-columns:31% minmax(0,1fr); }
 .product-card .product-card__content { padding:14px; }
 .product-card h3 { font-size:17px; }
 .product-card__description { font-size:11px; }
 .product-card .price { font-size:20px; }
 .product-card .add-button { padding-inline:12px; }
}
.daily-strip__icon { width:24px; height:24px; flex:none; }
.daily-strip__inner { display:grid; gap:18px; }
.daily-strip__inner>p { font-size:16px; white-space:nowrap; }
.hero__facts { display:grid; margin:0; gap:12px; }
.hero__facts>div { display:grid; grid-template-columns:82px 1fr; align-items:baseline; gap:10px; }
.hero__facts dd { font-size:11px; }
@media(min-width:1101px) {
 .daily-strip__inner { display:flex; justify-content:space-between; gap:20px; }
 .daily-strip__inner>p { font-size:15px; padding:0; border:0; }
 .hero__facts { display:flex; gap:25px; }
 .hero__facts>div { display:flex; gap:10px; }
 .hero__facts dd { white-space:nowrap; font-size:10px; }
 .hero__facts dt { font-size:9px; }
}
@media(max-width:650px) {
 .daily-strip__inner>p { margin:0; padding-bottom:12px; white-space:normal; }
 .hero__facts { grid-template-columns:1fr; }
 .hero__facts dd { font-size:10px; }
}
.oven-copy,.is-enhanced .oven-copy { background:#fff8edbe; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); border:1px solid #ffffffa0; padding:28px; box-shadow:0 12px 32px #352b2315; }
@media(max-width:650px) {
 .oven-copy { background:#10417abf; margin:-28px 14px 18px; position:relative; z-index:1; border-color:#ffffff40; padding:28px 22px; }
}
.story__visual { padding-bottom:70px; isolation:isolate; }
.story__visual>img { object-fit:cover; }
.story__signature { width:72%; max-width:390px; right:-10px; bottom:-20px; }
.visit__grid { grid-template-columns:1fr 1fr; gap:55px; align-items:center; }
.visit__details { display:block; }
.visit__schedule { margin-top:32px; padding-top:24px; border-top:1px solid #ffffff30; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.visit__schedule .hours-card,.visit__schedule .bake-card { padding:0; border:0; }
.visit__schedule .hours-card>strong { font-size:22px; }
.visit__schedule .hours-card p,.visit__schedule .bake-card p { font-size:11px; }
.visit__address>p:not(.section-number) { max-width:100%; }
@media(max-width:650px) {
 .story__signature { width:73%; max-width:280px; right:-6px; bottom:-10px; }
 .visit__grid { gap:28px; }
 .visit__schedule { margin-top:26px; gap:18px; }
}
/* Numbered editorial accordion with a turning chevron and a quiet gold edge. */
.faq { max-width:1120px; display:grid; grid-template-columns:.8fr 1.2fr; gap:32px 60px; }
.faq .section-heading { text-align:left; display:block; }
.faq .section-heading h2 { max-width:10ch; }
.faq .section-heading p { margin-left:0; }
.faq__list { counter-reset:question; gap:8px; }
.faq details { position:relative; counter-increment:question; background:#ffffff75; border-color:transparent; border-radius:18px; padding-inline:20px; overflow:hidden; }
.faq details::before { content:""; position:absolute; inset:14px auto 14px 0; width:3px; border-radius:3px; background:var(--yellow); opacity:0; transition:opacity 180ms; }
.faq details[open] { background:#fff8ed; border-color:#e8dbc4; box-shadow:0 8px 24px #73481608; }
.faq details[open]::before { opacity:1; }
.faq summary { gap:14px; min-height:72px; }
.faq summary::before { content:counter(question,decimal-leading-zero); color:var(--navy); opacity:.5; font-size:11px; font-variant-numeric:tabular-nums; flex:none; }
.faq summary::after,.faq details[open] summary::after { content:""; display:block; flex:none; width:8px; height:8px; margin-left:auto; margin-right:3px; padding:0; background:none; border:solid var(--navy); border-width:0 1.5px 1.5px 0; border-radius:0; transform:rotate(45deg); transition:transform 220ms var(--ease-drawer); }
.faq details[open] summary::after { transform:rotate(225deg); }
.faq details p { padding:0 20px 22px 28px; font-size:13px; }
.faq__contact { grid-column:1/-1; margin:0; }
@media(max-width:650px) {
 .faq { display:block; }
 .faq .section-heading h2 { max-width:none; }
 .faq summary { font-size:13px; gap:10px; }
 .faq details { padding-inline:16px; }
 .faq details p { padding-left:24px; padding-right:0; font-size:12px; }
 .faq__contact { margin-top:24px; }
}
/* Three independent hero layers; the room remains steady. */
.hero__scene { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.hero__scene .hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:none; transform:none; }
.hero__basket,.hero__coffee { position:absolute; height:auto; object-fit:contain; }
.hero__basket { width:47%; right:11%; bottom:10%; }
.hero__coffee { width:26%; right:-3%; bottom:5%; }
@media(prefers-reduced-motion:no-preference) {
 .hero__scene.is-arrived .hero__basket { animation:basket-arrive 1100ms cubic-bezier(.22,1,.36,1) both; }
 .hero__scene.is-arrived .hero__coffee { animation:coffee-arrive 1050ms 150ms cubic-bezier(.22,1,.36,1) both; }
 @keyframes basket-arrive { from { opacity:0; transform:translate(-85px,38px) rotate(-3deg); } to { opacity:1; transform:none; } }
 @keyframes coffee-arrive { from { opacity:0; transform:translate(100px,18px) rotate(3deg); } to { opacity:1; transform:none; } }
 @supports(animation-timeline:view()) {
  .story__visual>img { animation:story-photo-depth linear both; animation-timeline:--story-signature; animation-range:entry 0% exit 100%; }
  @keyframes story-photo-depth { from { transform:translateY(12px) scale(1.03); } to { transform:translateY(-12px) scale(1.03); } }
 }
}
@media(max-width:650px) {
 .hero__scene { position:relative; inset:auto; order:2; z-index:0; width:100%; aspect-ratio:1.6; }
 .hero__scene .hero__image { max-height:none; object-position:75% center; }
 .hero__basket { width:84%; right:14%; bottom:3%; }
 .hero__coffee { width:41%; right:-4%; bottom:0; }
 .hero__scene.is-arrived .hero__basket,.hero__scene.is-arrived .hero__coffee { animation-duration:800ms; }
 @keyframes basket-arrive { from { opacity:0; transform:translate(-30px,12px); } to { opacity:1; transform:none; } }
 @keyframes coffee-arrive { from { opacity:0; transform:translate(35px,8px); } to { opacity:1; transform:none; } }
}
@media(prefers-reduced-motion:reduce) { .hero__basket,.hero__coffee,.story__visual>img { animation:none!important; transform:none!important; } }
@media(min-width:651px) { .product-card__visual { flex:none; } }
.story__visual { view-timeline-name:--story-signature; view-timeline-axis:block; }

/* Motion refinement, September 12: visible categories and photo captions. */
.menu-tools { display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.menu-search { width:100%; max-width:none; margin:0; }
.menu-tools .category-filters { display:flex; flex-wrap:wrap; overflow:visible; gap:4px; width:100%; }
.category-filters .filter-button { min-height:44px; white-space:normal; }
@media(max-width:650px) {
 .menu-tools { position:relative; top:auto; border-radius:22px; }
 .menu-tools .category-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
 .category-filters .filter-button { font-size:10px; padding:8px 5px; line-height:1.35; }
 .category-filters .filter-button:first-of-type { grid-column:1/-1; }
 .nav-toggle { width:44px; height:44px; border-radius:12px; background:#ffdc69; border:1px solid #ffe8a0; gap:5px; }
 .nav-toggle span { width:19px; height:2px; border-radius:2px; background:var(--navy); transition:transform 180ms,opacity 180ms; }
 .nav-toggle[aria-expanded=true] span:first-child { transform:translateY(7px) rotate(45deg); }
 .nav-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
 .nav-toggle[aria-expanded=true] span:last-child { transform:translateY(-7px) rotate(-45deg); }
}
.featured-card__info>p { font-size:13px; line-height:1.7; min-height:88px; margin:0; color:var(--ink-soft); }
@media(min-width:901px) {
 [data-coverflow] { --cover-width:calc((100% - 24px)/2); padding:12px 0 20px; gap:24px; scroll-padding-inline:0; }
 [data-coverflow] .featured-card { scroll-snap-align:start; }

}
@media(min-width:1101px) { [data-coverflow] { --cover-width:calc((100% - 48px)/3); } }
.story__signature { width:48%; max-width:270px; right:-10px; bottom:-14px; }
@media(max-width:650px) { .story__signature { width:49%; max-width:190px; right:0; bottom:-10px; } }
.footer__grid .footer__contacts a { width:40px; height:44px; min-width:40px; flex:none; color:#fff; border:0; background:none; }
.footer__contacts svg { width:22px; height:22px; }
.footer__contacts { flex-wrap:wrap; gap:3px; }
.selection-bar { background:#dcecff9c; color:var(--navy); border-color:#ffffffb0; -webkit-backdrop-filter:blur(20px) saturate(1.2); backdrop-filter:blur(20px) saturate(1.2); box-shadow:0 10px 35px #17345b26; }
.selection-bar [data-selection-total] { color:var(--navy); }
.faq__intro .faq__contact { justify-content:flex-start; align-items:flex-start; flex-direction:column; gap:12px; margin-top:26px; }
.faq__intro .faq__contact .button { max-width:100%; }
@media(max-width:650px) { .faq__intro { margin-bottom:26px; } }
@media(min-width:651px) {
 .product-dialog { width:min(960px,calc(100% - 40px)); }
 .product-dialog[open] { grid-template-columns:1fr 1fr; align-items:start; }
 .product-dialog__visual { aspect-ratio:1; height:auto; min-height:0; align-self:start; position:sticky; top:0; }
 .product-dialog__visual img { display:block; width:100%; height:100%; min-height:0; aspect-ratio:1; object-fit:cover; }
 .product-dialog__body { padding:40px 28px 24px; }
 .product-dialog h2 { font-size:28px; }
}
/* A stationary text card avoids any mid-scroll clipping. */
.oven-stage { min-height:570px; }
.oven-copy,.is-enhanced .oven-copy { left:auto; right:6%; bottom:8%; top:auto; width:min(360px,38%); max-width:none; transform:none; margin:0; padding:26px; box-sizing:border-box; z-index:2; }
.oven-copy .section-number { white-space:normal; overflow-wrap:normal; }
.oven-copy h2,.is-enhanced .oven-copy h2 { font-size:clamp(32px,4vw,46px); line-height:1.12; }
@media(prefers-reduced-motion:no-preference) {
 .oven-sequence.is-enhanced { height:155svh; }
 .is-enhanced .oven-stage { position:sticky; top:var(--header-height); height:calc(100svh - var(--header-height)); max-height:800px; }
 .is-enhanced .oven-layer { position:absolute; inset:0; display:block; aspect-ratio:auto; z-index:-1; }
}
@media(max-width:650px) {
 .oven-stage { display:block; height:620px; min-height:0; isolation:isolate; background:#20362e; }
 .oven-layer--oven { position:absolute; inset:0; z-index:-1; aspect-ratio:auto; }
 .oven-layer img { height:100%; object-fit:cover; object-position:30% center; }
 .oven-layer--table img { object-position:65% center; }
 .oven-copy,.is-enhanced .oven-copy { position:absolute; top:auto; left:16px; right:16px; bottom:22px; width:auto; max-width:none; padding:22px; background:#fff8edcb; color:var(--ink); border:1px solid #ffffffb0; }
 .oven-copy .section-number { color:var(--navy); font-size:10px; margin-bottom:12px; }
 .oven-copy h2,.is-enhanced .oven-copy h2 { color:var(--navy); font-size:32px; margin-bottom:12px; }
 .oven-copy>p:not(.section-number) { color:var(--ink-soft); font-size:13px; margin-bottom:14px; }
 .oven-copy .text-link { color:var(--navy); }
 .oven-sequence.is-enhanced { height:145svh; }
 .is-enhanced .oven-stage { height:calc(100svh - var(--header-height)); min-height:380px; max-height:680px; }
}
/* Gentle arrivals; opacity creates the soft appearance without blurring every frame. */
.hero__basket { width:51%; right:10%; bottom:8%; }
.hero__coffee { width:23%; right:-1%; bottom:5%; }
.hero__steam { position:absolute; z-index:2; width:9%; height:14%; right:6%; bottom:24%; pointer-events:none; }
.hero__steam i { position:absolute; bottom:0; left:25%; width:14px; height:80%; border-radius:50%; border-left:2px solid #fff9ecb0; filter:blur(2px); opacity:0; }
.hero__steam i:nth-child(2) { left:48%; height:65%; }
.hero__steam i:nth-child(3) { left:68%; height:90%; }
@media(prefers-reduced-motion:no-preference) {
 .hero__scene.is-preparing .hero__basket { transform:translate(-36px,18px) rotate(-1deg); }
 .hero__scene.is-preparing .hero__coffee { transform:translate(34px,10px); }
 .hero__scene.is-arrived .hero__basket { animation:basket-soft-arrive 2600ms cubic-bezier(.25,.65,.3,1) both; }
 .hero__scene.is-arrived .hero__coffee { animation:coffee-soft-arrive 2800ms 250ms cubic-bezier(.25,.65,.3,1) both; }
 .hero__scene.is-arrived .hero__steam i { animation:coffee-warmth 5800ms 2200ms ease-in-out infinite; animation-play-state:paused; }
 .hero__scene.is-arrived .hero__steam i:nth-child(2) { animation-delay:3600ms; }
 .hero__scene.is-arrived .hero__steam i:nth-child(3) { animation-delay:4800ms; }
 .hero__scene.is-on-screen .hero__steam i { animation-play-state:running; }
 @keyframes basket-soft-arrive { from { transform:translate(-36px,18px) rotate(-1deg); } to { transform:none; } }
 @keyframes coffee-soft-arrive { from { transform:translate(34px,10px); } to { transform:none; } }
 @keyframes coffee-warmth { 0%,100% { opacity:0; transform:translate(0,10px) scaleX(.8); } 35% { opacity:.48; } 85% { opacity:0; transform:translate(-8px,-28px) scaleX(1.25); } }
}
@media(max-width:650px) {
 .hero__basket { width:87%; right:12%; bottom:3%; }
 .hero__coffee { width:36%; right:-2%; bottom:0; }
 .hero__steam { right:9%; bottom:29%; height:22%; width:13%; }
 .hero__scene.is-arrived .hero__basket { animation-duration:2400ms; }
 .hero__scene.is-arrived .hero__coffee { animation-duration:2600ms; }
}
@media(prefers-reduced-motion:reduce) { .hero__steam { display:none; } }
@media(max-width:650px) {
 .faq { display:flex; flex-direction:column; gap:0; }
 .faq__intro { display:contents; }
 .faq .section-heading { order:0; }
 .faq__list { order:1; }
 .faq__intro .faq__contact { order:2; align-items:center; margin-top:24px; }
}
@media(prefers-reduced-motion:no-preference) {
 .selection-bar:not([hidden]) .cart-shine { animation:cart-reminder 4s ease-in-out infinite; }
 body:has(dialog[open]) .selection-bar:not([hidden]) .cart-shine { animation-play-state:paused; }
 @keyframes cart-reminder {
  0%,70% { transform:translateX(-160%); opacity:0; }
  73% { opacity:.75; }
  94% { transform:translateX(160%); opacity:.75; }
  95%,100% { transform:translateX(160%); opacity:0; }
 }
}
.hero__warmth { position:absolute; z-index:2; width:29%; height:17%; right:17%; bottom:52%; pointer-events:none; opacity:0; background:radial-gradient(ellipse at 25% 75%,#fff7df80,transparent 55%),radial-gradient(ellipse at 70% 65%,#fff9e670,transparent 52%); filter:blur(10px); }
@media(prefers-reduced-motion:no-preference) {
 .hero__scene.is-arrived .hero__warmth { animation:oven-warmth 9s 4s ease-in-out infinite; animation-play-state:paused; }
 .hero__scene.is-on-screen .hero__warmth { animation-play-state:running; }
 @keyframes oven-warmth { 0%,100% { opacity:0; transform:translateY(10px) scaleX(.9); } 40% { opacity:.24; } 85% { opacity:0; transform:translateY(-16px) scaleX(1.08); } }
}
@media(max-width:650px) { .hero__warmth { width:45%; height:20%; right:28%; bottom:56%; } }
@media(prefers-reduced-motion:reduce) { .hero__warmth { display:none; } }

/* Glass belongs to the catalog. The photo occupies the upper part of each card. */
@media(min-width:651px) {
 .product-card { position:relative; display:block; aspect-ratio:4/5; background:#f3eadc; }
 .product-card__visual { height:100%; aspect-ratio:auto; width:100%; }
 .product-card__visual img { inset:0; height:78%; object-fit:cover; object-position:center 42%; }
 .product-card .product-card__content { position:absolute; left:12px; right:12px; bottom:12px; padding:16px; border-radius:20px; background:#fff9edb3; border:1px solid #ffffffb3; box-shadow:0 8px 24px #30211912; -webkit-backdrop-filter:blur(16px) saturate(1.1); backdrop-filter:blur(16px) saturate(1.1); }
 .product-card h3 { font-size:20px; line-height:1.2; margin:0 0 9px; }
 .product-card__description { display:none; }
 .product-card .product-card__footer { flex-wrap:nowrap; }
 .product-card .price { font-size:22px; }
 .product-card .add-button { flex:none; }
}
/* Both scenes put the food on the right, leaving the same quiet space for copy. */
.oven-layer--oven img { transform:scaleX(-1); }
.oven-copy,.is-enhanced .oven-copy { left:5%; right:auto; width:31%; bottom:13%; }
.oven-stage,.is-enhanced .oven-stage { height:clamp(520px,56.25vw,760px); min-height:0; max-height:none; }
.oven-layer img { object-position:center; }
.oven-vapor { position:absolute; width:8%; height:19%; right:9%; top:26%; pointer-events:none; }
.oven-layer--oven .oven-vapor { width:15%; height:23%; right:22%; top:19%; }
.oven-vapor i { position:absolute; bottom:0; left:25%; width:18px; height:80%; border-left:3px solid #fff7e8a8; border-radius:50%; filter:blur(3px); opacity:0; }
.oven-vapor i:nth-child(2) { left:50%; height:90%; }
.oven-vapor i:nth-child(3) { left:72%; height:65%; }
@media(prefers-reduced-motion:no-preference) {
 .oven-vapor i { animation:coffee-warmth 6s cubic-bezier(.45,0,.55,1) infinite; animation-play-state:paused; }
 .oven-vapor i:nth-child(2) { animation-delay:-2s; }
 .oven-vapor i:nth-child(3) { animation-delay:-4s; }
 .oven-sequence.is-in-view .oven-vapor i { animation-play-state:running; }
}
@media(max-width:900px) {
 .oven-stage,.is-enhanced .oven-stage { height:calc(100svh - var(--header-height)); min-height:540px; max-height:800px; background:#f3eadc; }
 .oven-layer,.is-enhanced .oven-layer { bottom:auto; height:55%; }
 .oven-layer img { object-position:70% center; }
 .oven-layer--oven img { object-position:28% center; }
 .oven-copy,.is-enhanced .oven-copy { left:16px; right:16px; top:calc(55% + 12px); bottom:auto; width:auto; padding:18px 22px; margin:0; background:#fff8edb8; }
 .oven-copy .section-number { margin-bottom:10px; font-size:10px; }
 .oven-copy h2,.is-enhanced .oven-copy h2 { font-size:32px; margin-bottom:10px; }
 .oven-copy h2 br,.oven-copy p br { display:none; }
 .oven-copy>p:not(.section-number) { font-size:13px; margin-bottom:12px; }
 .oven-layer--table .oven-vapor { right:10%; top:25%; }
 .oven-layer--oven .oven-vapor { right:35%; top:15%; }
}
@media(prefers-reduced-motion:reduce) { .oven-vapor { display:none; } }

/* Compact catalog caption: product, price and a 44px add target in one strip. */
.catalog-add__symbol { display:none; }
@media(min-width:651px) {
 .product-card__visual img { height:85%; object-position:center 40%; }
 .product-card .product-card__content { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 12px; }
 .product-card h3 { font-size:17px; line-height:1.2; margin:0; }
 .product-card .product-card__footer { display:flex; flex-direction:row; margin:0; gap:9px; }
 .product-card .price { display:flex; flex-direction:column; gap:0; align-items:flex-start; font-size:20px; line-height:1.05; }
 .product-card .price small { font:500 8px/1.3 var(--font-body); }
 .product-card .add-button,.product-card .add-button.is-added { width:44px; height:44px; padding:0; border-radius:50%; font-size:25px; }
 .catalog-add__label { display:none; }
 .catalog-add__symbol { display:block; }
 .product-card .add-button.is-added { font-size:16px; }
}
@media(min-width:1001px) and (max-width:1200px) {
 .catalog-group__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* The opening sharing scene flows into a closer serving scene, food to the left. */
.oven-copy,.is-enhanced .oven-copy { right:5%; left:auto; width:30%; }
.oven-layer--oven .oven-vapor { right:auto; left:10%; top:26%; width:8%; height:19%; }
.oven-layer--table .oven-vapor { right:auto; left:29%; top:7%; width:8%; height:24%; }
@media(max-width:900px) {
 .oven-copy,.is-enhanced .oven-copy { left:16px; right:16px; width:auto; }
 .oven-layer--oven img { object-position:68% center; }
 .oven-layer--table img { object-position:24% center; }
 .oven-layer--oven .oven-vapor { left:14%; }
 .oven-layer--table .oven-vapor { left:44%; top:7%; }
}
/* A single mobile composition, with the headline inside the bakery scene. */
@media(max-width:650px) {
 .hero { display:block; height:620px; min-height:620px; max-height:none; background:#153655; }
 .hero__scene { position:absolute; inset:0; z-index:-1; height:100%; width:100%; aspect-ratio:auto; }
 .hero__scene .hero__image { height:100%; width:100%; object-fit:cover; object-position:62% center; }
 .hero__scene::after { content:""; position:absolute; z-index:0; inset:0; background:linear-gradient(180deg,#122e4ef0 0%,#173958bf 29%,#17395830 56%,transparent 76%); pointer-events:none; }
 .hero__inner { position:relative; z-index:3; padding-block:28px 0; }
 .hero__copy { width:100%; max-width:440px; }
 .hero .eyebrow { color:#fff4dc; font-size:9px; margin-bottom:12px; }
 .hero h1 { color:#fff8ed; font-size:clamp(34px,9.4vw,48px); line-height:1.03; margin-bottom:14px; max-width:14ch; }
 .hero h1 em { color:#ffe07b; }
 .hero__lead { color:#fff8edeb; max-width:340px; font-size:12px; line-height:1.6; }
 .hero__actions { margin-top:16px; gap:9px; }
 .hero__actions .button { min-height:44px; padding:10px 16px; }
 .hero__actions .button--secondary { background:#ffffff20; color:white; border-color:#ffffff90; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
 .hero__basket { z-index:1; width:min(100%,460px); right:4%; bottom:12%; }
 .hero__coffee { z-index:2; width:min(36%,180px); right:-1%; bottom:8%; }
 .hero__steam { z-index:3; right:9%; bottom:23%; height:13%; }
 .hero__warmth { z-index:3; right:30%; bottom:47%; height:12%; }
}
@media(max-width:360px) { .hero h1 { font-size:34px; } .hero__lead { max-width:290px; } }
@media(max-width:650px) and (prefers-reduced-motion:no-preference) {
 .hero__scene.is-arrived .hero__image { animation:mobile-bakery-depth 16s cubic-bezier(.45,0,.55,1) infinite alternate; animation-play-state:paused; }
 .hero__scene.is-on-screen .hero__image { animation-play-state:running; }
 @keyframes mobile-bakery-depth { from { transform:scale(1.02) translateX(-.5%); } to { transform:scale(1.08) translateX(.5%); } }
}
@keyframes signature-depth { from { transform:translateY(42px) rotate(-3deg); } to { transform:translateY(-42px) rotate(2deg); } }
.story__visual.has-scroll-motion>img,.story__visual.has-scroll-motion .story__signature { animation:none; }
@keyframes story-photo-depth { from { transform:translateY(24px) scale(1.05); } to { transform:translateY(-24px) scale(1.05); } }
@media(max-width:650px) {
 .closing { padding-bottom:0; }
 .closing__image { height:360px; object-position:82% center; }
 .site-footer::before { border-radius:0; background-position:80% center; background-size:auto 125%; }
 .site-footer::after { background:#003a8dc4; -webkit-backdrop-filter:blur(5px) saturate(1.2); backdrop-filter:blur(5px) saturate(1.2); }
}

@media(max-width:650px) { .footer__contacts { display:grid; grid-template-columns:repeat(2,40px); gap:4px 8px; } }
