:root {
  --anthracite: #25272b;
  --bone: #f2f0ea;
  --brown: #303236;
  --espresso: #25272b;
  --ink: #25272b;
  --cream: #e9e7e1;
  --paper: #f2f0ea;
  --olive: #8b8b8c;
  --caramel: #8b8b8c;
  --ochre: #b8b6b0;
}

body { background: var(--paper); color: var(--brown); }
.preloader { background: var(--anthracite, #26282b); color: var(--paper); }
.preloader__curtain { background: #26282b; }
.preloader__crack { background: linear-gradient(transparent, #c2c0bb, var(--paper), #77787a, transparent); box-shadow: 0 0 10px #c2c0bb55; }
.preloader__dust { background: #b5b4b0; }
.preloader__curtain { transition: transform .55s cubic-bezier(.22,.61,.36,1) .05s; }
.preloader__grain { animation-duration: .45s; }
.preloader.is-cracking .preloader__dust { animation: none; opacity: 0; }
.preloader.is-cracking .preloader__crack { animation-duration: .2s; box-shadow: none; }
.site-header { color: var(--paper); }
.nav__cta { border-color: #e9e7e177; }
.hero--cinematic { background: #26282b; color: var(--paper); }
.hero__video { filter: brightness(.86) saturate(.94) contrast(1.02); animation: none; object-position: center center; opacity: 0; transition: opacity .85s ease; }
.hero__video.is-active { opacity: 1; }
.hero__veil { background: linear-gradient(90deg, #1f2124d9 0%, #26282b9c 34%, #26282b4a 59%, #26282b12 82%, transparent 100%), linear-gradient(0deg, #1f212463, transparent 43%); }
.hero .eyebrow, .hero__intro, .hero__note, .hero__text-link, .scroll-cue, .hero__sound-note { color: #e3e1dc; }
.hero h1, .hero h1 em { color: var(--paper); }
.hero h1 em { color: #c4c2bc; }
.hero .button--dark { background: var(--paper); color: var(--anthracite, #26282b); }
.hero__note-line, .scroll-cue__line { background: #c2c0bb; }
.sound-dot { background: #c2c0bb; box-shadow: 0 0 0 5px #c2c0bb33; }
.hero__seal { position: absolute; z-index: 3; top: 19%; right: clamp(26px,7.5vw,112px); display: grid; width: clamp(112px,12vw,154px); aspect-ratio: 1; place-items: center; color: #f2f0ea; border: 1px solid #f2f0ea65; border-radius: 50%; background: #26282b60; transition: transform .22s ease, background .22s ease; }
.hero__seal:hover { transform: scale(1.025); background: #26282ba8; }
.hero__seal svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.hero__seal svg circle { fill: none; stroke: #f2f0ea70; stroke-width: .7; }
.hero__seal svg text { fill: #f2f0ea; font: 600 7.2px var(--sans); letter-spacing: 2.1px; }
.hero__seal-mark { font: italic 500 42px/.9 var(--serif); }
.hero__seal-arrow { position: absolute; right: 24px; bottom: 22px; color: #c4c2bc; font-size: 15px; }
.hero__copy { animation: none; }
.hero__character { animation: none; transform: none; }

.day-ribbon { background: #dfded9; color: #36383b; }
.day-ribbon b { color: #797a7d; }
.manifesto { background: var(--paper); color: var(--brown); }
.manifesto__topline, .manifesto__art-caption { color: #737477; }
.manifesto h2 { color: #303236; }
.manifesto h2 em, .section-heading h2 em, .favorites h2 em, .gallery h2 em, .visit h2 em, .mood h2 em { color: #858588; }
.manifesto__copy>p:not(.eyebrow) { color: #5b5c5f; }
.eyebrow--olive { color: #6c6d70; }
.art-sticker { background: #737477; color: var(--paper); }
.text-link { color: #303236; }

.daybook { background: #f1f1ef; color: #303236; }
.daybook__visual-pin { background: #d7d8da; }
.daybook__visual-pin:before { background: radial-gradient(ellipse at 50% 49%, #f8f8f6 0%, #e5e6e7 72%, #ccced0 100%); }
.daybook__visual-pin:after { border-color: #ffffffb8; }
.daybook__visual-top, .daybook__visual-caption p { color: #36383b; }
.daybook__visual-top i, .daybook__caption-mark, .daybook__caption-rule { color: #777a7e; }
.daybook__caption-rule { background: #777a7e; }
.daybook__orbit { border-color: #55585c32; }
.daybook__art-stage:before { background: #fafaf8b0; box-shadow: 0 0 0 1px #ffffffad, 0 0 0 21px #ffffff5c; }
.daybook__intro .eyebrow, .daybook-chapter__meta { color: #62656a; }
.daybook__intro h2, .daybook-chapter h3 { color: #303236; }
.daybook__intro h2 em, .daybook__caption-mark, .daybook-chapter__meta span:first-child, .daybook-chapter h3 em { color: #85888d; }
.daybook__intro>p:last-child, .daybook-chapter__copy>p { color: #5b5e63; }
.daybook__chapters:before, .daybook-chapter { border-color: #5c5f642b; }
.daybook__chapters:before { background: #71747a58; }
.daybook-chapter:before { border-color: #777a7f; background: #f1f1ef; }
.daybook-chapter.is-active:before { background: #53565b; box-shadow: 0 0 0 5px #53565b26; }
.daybook-chapter__copy>a { color: #36383c; border-color: #777a7f83; }
.daybook-chapter__mobile-art { background: radial-gradient(ellipse, #f8f8f6 0%, #dddee0 76%, transparent 77%); }

.coffee { background: #eceae4; color: #303236; }
.section-heading h2 { color: #303236; }
.section-heading>p { color: #5b5c5f; }

.gallery { background: #303236; color: var(--paper); }
.gallery .eyebrow--olive { color: #c6c4be; }
.gallery h2 { color: var(--paper); }
.gallery h2 em { color: #c4c2bc; }
.gallery__head>p { color: #d5d3cd; }
.gallery-item { background: #494b4f; }
.gallery-item:after { background: linear-gradient(0deg, #1f2124b8, transparent 77%); }
.gallery__bottom { color: #d5d3cd; }
.gallery__star { color: #c2c0b9; }

.visit { background: #26282b; color: var(--paper); }
.visit h2, .visit h2 em { color: var(--paper); }
.visit h2 em { color: #c4c2bc; }
.visit__copy>p:not(.eyebrow) { color: #d6d4ce; }
.visit .eyebrow { color: #c7c5bf; }
.visit-details { border-color: #e9e7e135; }
.visit-details span { color: #c7c5bf; }
.info-placeholder { color: #c7c5bf !important; }
.visit__image-note { background: #e1dfd9; color: #303236; }
.visit__frame-index { color: var(--paper); }
.footer { background: var(--paper); color: #303236; }
.footer__brand img { filter: none; mix-blend-mode: multiply; opacity: 1; }
.footer>p { color: #68696c; }
.footer__bottom { border-color: #30323635; color: #68696c; }
.footer__bottom a { color: #303236; }
.lightbox { background: #26282b; }
.lightbox::backdrop { background: #191b1eeb; }
.lightbox__close { background: #26282baa; color: var(--paper); }
.back-top { background: #e5e3dd; color: #303236; }
.button:focus-visible, .nav a:focus-visible, .menu-tab:focus-visible, .gallery-item:focus-visible, .nav-toggle:focus-visible, .back-top:focus-visible { outline-color: #c6c4be; }

@media (max-width: 700px) {
  .hero--cinematic { height: auto; min-height: 0; padding-top: 118px; padding-bottom: 48px; }
  .hero__copy { padding-bottom: 0; }
  .hero__note { margin-top: 32px; }
}

@media (max-width: 800px) {
  .hero__seal { top: 112px; right: 20px; bottom: auto; width: 78px; }
  .hero__seal-mark { font-size: 25px; }
  .hero__seal-arrow { right: 12px; bottom: 12px; font-size: 11px; }
  .hero__video { object-position: center center; }
  .hero__veil { background: linear-gradient(90deg, #1f2124e8 0%, #26282bb8 42%, #26282b70 70%, #26282b20 100%), linear-gradient(0deg, #1f21249c 0%, #1f212440 37%, transparent 68%); }
  .nav { background: #303236; color: var(--paper); box-shadow: 0 15px 26px #11131570; }
  .nav__cta { border-color: #e9e7e177; }
  .nav-toggle span { background: var(--paper); }
}

@media (prefers-reduced-motion: reduce) {
  .hero__seal, .hero__video, .hero__copy, .hero__character { animation: none; transition: none; }
}

@media (max-width: 700px) {
  .daybook-chapter__mobile-art { background: radial-gradient(ellipse, #f3f1eb 0%, #deddd7 76%, transparent 77%); }
  .visit { background: #26282b; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__visual { background: #26282b url('assets/video/mamoch-hero-poster.jpg') center / cover; }
}

.social-feed { padding: 88px var(--gutter) 82px; background: #f2f0ea; color: #303236; }
.social-feed__head { max-width: 1320px; margin: 0 auto 34px; display: grid; grid-template-columns: 1fr minmax(220px, 340px); align-items: end; gap: 30px; }
.social-feed__head h2 { margin: 0; color: #303236; font: 900 clamp(48px,6vw,78px)/.93 var(--display); letter-spacing: -.065em; }
.social-feed__head h2 em { color: #858588; font: italic 500 .88em/1.1 var(--serif); letter-spacing: -.04em; }
.social-feed__head>p { margin: 0 0 5px; color: #5d5e61; font-size: 13px; line-height: 1.8; }
.social-grid { max-width: 1320px; margin: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.social-post { position: relative; display: block; min-width: 0; aspect-ratio: 1 / 1; overflow: hidden; padding: 0; border: 0; background: #303236; color: var(--paper); cursor: pointer; text-align: left; isolation: isolate; text-decoration: none; }
.social-post:after { content: ""; position: absolute; z-index: 0; inset: 45% 0 0; background: linear-gradient(transparent,#1f2124c9); pointer-events: none; }
.social-post img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.social-post:hover img { transform: scale(1.045); }
.social-post__kind,.social-post__caption { position: absolute; z-index: 1; }
.social-post__kind { top: 13px; right: 13px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid #f2f0ea77; background: #26282b80; color: #f2f0ea; font-size: 8px; letter-spacing: .12em; }
.social-post__caption { left: 16px; right: 16px; bottom: 14px; color: #f2f0ea; font: italic 16px/1.3 var(--serif); }
.social-feed__note { max-width: 1320px; margin: 19px auto 0; color: #6d6e71; font-size: 11px; line-height: 1.6; }
.social-grid--embed { display: flex; justify-content: center; align-items: flex-start; max-width: 900px; min-height: 600px; padding: 14px; background: #e4e2dc; }
.social-grid--embed .instagram-media { box-sizing: border-box; width: min(100%, 720px) !important; min-width: min(320px, 100%) !important; max-width: 720px !important; min-height: 540px; margin: 0 auto !important; border: 0 !important; border-radius: 2px; background: #fff !important; box-shadow: 0 12px 40px #30323612; }
.social-grid--embed .instagram-media a { color: #303236; }
.social-post:focus-visible,.daybook-mobile-reel:focus-visible { outline: 3px solid #8b8b8c; outline-offset: 3px; }

.visit { display: block; padding: 80px var(--gutter) 90px; background: #26282b; color: #f2f0ea; }
.visit__heading,.visit__bottom-grid { max-width: 1320px; margin-inline: auto; }
.visit__heading { margin-bottom: 38px; }
.visit__heading h2 { margin: 0 0 16px; color: #f2f0ea; font: 900 clamp(50px,6vw,78px)/.94 var(--display); letter-spacing: -.06em; }
.visit__heading h2 em { color: #c4c2bc; font: italic 500 .88em/1.1 var(--serif); letter-spacing: -.04em; }
.visit__heading>p:last-child { max-width: 450px; color: #d6d4ce; font-size: 13px; line-height: 1.8; }
.visit__bottom-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); align-items: stretch; gap: 14px; }
.location-card { display: grid; grid-template-columns: minmax(190px,.92fr) minmax(0,1fr); min-width: 0; overflow: hidden; border: 1px solid #f2f0ea2e; background: #303236; }
.location-card__map { position: relative; min-height: 100%; min-height: 350px; overflow: hidden; background: #37393d; }
.location-card__map iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 350px; border: 0; filter: saturate(.72) contrast(.96); }
.location-card__map-label { position: absolute; left: 14px; bottom: 14px; z-index: 1; padding: 9px 11px; color: #f2f0ea; background: #303236e8; font-size: 8px; letter-spacing: .17em; pointer-events: none; }
.location-card__details { padding: 27px clamp(20px,2.5vw,34px); }
.location-card__details h3,.reservation-card h3 { margin: 0 0 13px; font: 800 clamp(28px,3vw,41px)/1 var(--display); letter-spacing: -.05em; }
.location-card__details h3 em,.reservation-card h3 em { color: #c4c2bc; font: italic 500 .83em/1.2 var(--serif); letter-spacing: -.03em; }
.location-card__address { min-height: 43px; margin: 0 0 19px; color: #d5d3cd; font-size: 11px; line-height: 1.7; }
.location-card .visit-details { padding-top: 12px; border-color: #e9e7e135; }
.location-card .visit-details div { min-height: 43px; }
.location-card .visit-details p { min-height: 12px; margin: 6px 0 0; }
.location-card__directions { cursor: pointer; }
.location-card__directions:hover { background: #e1dfd9; }
.reservation-card { padding: 31px clamp(23px,3vw,40px); background: #f2f0ea; color: #303236; }
.reservation-card>.eyebrow { margin: 0 0 13px; color: #6d6e71; }
.reservation-card h3 { color: #303236; font-size: clamp(34px,4vw,49px); }
.reservation-card h3 em { color: #858588; }
.reservation-card__intro { margin: 0 0 9px; color: #515256; font-size: 13px; line-height: 1.65; }
.reservation-card__notice { margin: 0 0 22px; color: #6d6e71; font-size: 11px; line-height: 1.6; }
.reservation-form { display: grid; gap: 14px; }
.reservation-form label { display: grid; gap: 7px; color: #303236; font-size: 11px; font-weight: 600; }
.reservation-form label span { display: inline; color: #77787a; font-weight: 400; }
.reservation-form input,.reservation-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #30323630; border-radius: 1px; background: #fffefa; color: #26282b; font: 400 14px/1.4 var(--sans); }
.reservation-form textarea { min-height: 88px; resize: vertical; }
.reservation-form input:focus,.reservation-form textarea:focus { outline: 2px solid #8b8b8c; outline-offset: 1px; }
.reservation-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.reservation-form .button { justify-content: space-between; width: 100%; min-height: 48px; margin-top: 2px; padding: 13px 16px; border: 0; cursor: pointer; font-size: 10px; }
.reservation-form__preview { width: 100%; min-height: 130px; padding: 12px; border: 1px solid #8b8b8c; background: #fffefa; color: #303236; font: 12px/1.6 var(--sans); resize: vertical; }
.reservation-form__preview[hidden] { display: none; }
.reservation-form__status { min-height: 0; margin: 0; color: #55565a; font-size: 12px; line-height: 1.6; }
.reservation-form__status:empty { display: none; }
.lightbox img[hidden],.lightbox video[hidden] { display: none; }
.lightbox video { display: block; width: min(92vw,900px); max-height: 88vh; object-fit: contain; background: #111; }

@media (max-width: 900px) {
  .visit__bottom-grid { grid-template-columns: 1fr; }
  .location-card { min-height: 375px; }
}
@media (max-width: 700px) {
  .social-feed { padding: 64px 22px 58px; }
  .social-feed__head { display: block; margin-bottom: 23px; }
  .social-feed__head h2 { font-size: 53px; }
  .social-feed__head>p { max-width: 390px; margin-top: 13px; font-size: 12px; }
  .social-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .social-grid--embed { min-height: 540px; padding: 8px; }
  .social-grid--embed .instagram-media { width: min(100%, 540px) !important; min-width: min(280px, 100%) !important; min-height: 500px; }
  .social-post__kind { top: 8px; right: 8px; padding: 6px 7px; font-size: 7px; }
  .social-post__caption { left: 10px; right: 8px; bottom: 10px; font-size: 13px; }
  .social-feed__note { font-size: 10px; }
  .visit { padding: 64px 22px 70px; }
  .visit__heading { margin-bottom: 26px; }
  .visit__heading h2 { font-size: 57px; }
  .visit__heading>p:last-child { font-size: 12px; }
  .location-card { grid-template-columns: 1fr; }
  .location-card__map { min-height: 240px; }
  .location-card__map iframe { min-height: 240px; }
  .location-card__details { padding: 23px 21px; }
  .reservation-card { padding: 26px 21px; }
  .reservation-form { gap: 13px; }
  .reservation-form label { font-size: 12px; }
  .reservation-form input,.reservation-form textarea { font-size: 16px; }
  .reservation-form__row { gap: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-photo img,.social-post img { transition: none!important; animation: none!important; }
}

/* Daybook scene changes crossfade between preloaded artwork layers. */
.daybook-chapter__copy, .daybook-chapter__mobile-art { transition: opacity .36s ease, transform .36s cubic-bezier(.2,.7,.2,1); }
.daybook-chapter:not(.is-active) .daybook-chapter__copy,
.daybook-chapter:not(.is-active) .daybook-chapter__mobile-art { opacity: .66; }

@media (max-width: 700px) {
  .daybook { display: none; }
  .daybook__layout { padding-top: 48px; }
  .daybook-chapter { min-height: 0; display: grid; grid-template-columns: minmax(100px,.68fr) minmax(0,1.32fr); gap: 15px; padding: 23px 0; align-items: center; }
  .daybook-chapter__mobile-art { display: block; width: 100%; aspect-ratio: 1 / 1.12; max-height: 175px; object-fit: contain; }
  .daybook-chapter.is-active .daybook-chapter__copy,
  .daybook-chapter.is-active .daybook-chapter__mobile-art { opacity: 1; transform: translateY(0); }
  .daybook-chapter__copy { transform: translateY(5px); }
}

@media (prefers-reduced-motion: reduce) {
  .daybook__art-stage img,
  .daybook-chapter__copy,
  .daybook-chapter__mobile-art { transition: none !important; animation: none !important; }
}

/* Four distinct, photo-led moments replace the one-size-fits-all menu panel. */
.taste-experience { background: var(--bone); color: var(--anthracite); padding: 104px var(--gutter) 72px; }
.taste-experience .section-heading { max-width: 1320px; margin: 0 auto 35px; display: grid; grid-template-columns: 1fr minmax(250px, 360px); align-items: end; gap: 32px; }
.taste-experience .section-heading h2 { color: var(--anthracite); }
.taste-experience .section-heading h2 em { color: #858588; }
.taste-experience .section-heading > p { color: #55575b; }
.taste-grid { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); grid-template-rows: 360px 300px; gap: 12px; }
.taste-card { position: relative; min-width: 0; overflow: hidden; isolation: isolate; background: #303236; color: var(--bone); }
.taste-card--breakfast { grid-column: span 7; grid-row: 1; }
.taste-card--food { grid-column: span 5; grid-row: 1; }
.taste-card--dessert { grid-column: span 5; grid-row: 2; background: #deddd7; color: var(--anthracite); }
.taste-card--coffee { grid-column: span 7; grid-row: 2; }
.taste-card__photo,.taste-card__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.taste-card__photo { z-index: -2; display: block; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.taste-card--breakfast .taste-card__photo { object-position: center 48%; }
.taste-card--food .taste-card__photo { object-position: center 56%; }
.taste-card--coffee .taste-card__photo { object-position: center 58%; }
.taste-card__shade { z-index: -1; background: linear-gradient(180deg,#17181970 0%,transparent 30%,#171819bd 100%); }
.taste-card__copy { position: absolute; inset: auto 34px 30px; max-width: 560px; }
.taste-card__meta { margin: 0 0 14px; display: flex; align-items: center; gap: 11px; color: #f2f0eacb; font-size: 8px; font-weight: 600; letter-spacing: .16em; }
.taste-card__meta span { color: #f2f0ea; font-family: var(--serif); font-size: 15px; font-style: italic; letter-spacing: 0; }
.taste-card h3 { margin: 0; color: #f2f0ea; font: 900 clamp(34px,4vw,56px)/.92 var(--display); letter-spacing: -.06em; }
.taste-card h3 em { color: #d1d0ca; font: italic 500 .93em/1.1 var(--serif); letter-spacing: -.035em; }
.taste-card__description { margin: 13px 0 0; color: #f2f0eadd; font-size: 12px; line-height: 1.6; }
.taste-card__arrow { position: absolute; right: 24px; top: 24px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #f2f0ea88; border-radius: 50%; color: var(--bone); font-size: 20px; line-height: 1; }
.taste-card--dessert .taste-card__illustration { position: absolute; inset: 0 0 0 auto; width: 70%; display: grid; place-items: center; }
.taste-card--dessert .taste-card__illustration img { width: 112%; height: 100%; object-fit: contain; object-position: center bottom; }
.taste-card--dessert .taste-card__copy { inset: auto auto 25px 28px; width: 58%; z-index: 1; }
.taste-card--dessert .taste-card__meta,.taste-card--dessert .taste-card__meta span { color: #55575b; }
.taste-card--dessert h3 { color: var(--anthracite); font-size: clamp(29px,3.4vw,45px); }
.taste-card--dessert h3 em { color: #858588; }
.taste-card--dessert .taste-card__description { color: #55575b; max-width: 220px; }
.taste-card--dessert .taste-card__arrow { border-color: #30323665; color: var(--anthracite); z-index: 2; }
.taste-card:focus-within { outline: 2px solid var(--anthracite); outline-offset: 3px; }
.taste-footer { max-width: 1320px; margin: 21px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #55575b; font-size: 8px; letter-spacing: .17em; }
.taste-footer .button--cream { background: var(--anthracite); color: var(--bone); border-radius: 1px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .taste-card:hover .taste-card__photo { transform: scale(1.035); } }
@media (max-width: 900px) {
  .taste-experience { padding: 82px 28px 58px; }
  .taste-grid { grid-template-rows: 315px 280px; gap: 10px; }
  .taste-card__copy { inset: auto 23px 23px; }
  .taste-card--dessert .taste-card__copy { inset: auto auto 20px 20px; }
  .taste-card h3 { font-size: clamp(30px,4.6vw,44px); }
  .taste-card--dessert h3 { font-size: clamp(26px,3.4vw,36px); }
}
@media (max-width: 700px) {
  .taste-experience { padding: 72px 22px 50px; }
  .taste-experience .section-heading { display: block; margin-bottom: 23px; }
  .taste-experience .section-heading > p { margin-top: 13px; font-size: 12px; }
  .taste-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 285px 260px 250px; gap: 8px; }
  .taste-card--breakfast,.taste-card--food { grid-column: 1 / -1; }
  .taste-card--breakfast { grid-row: 1; }
  .taste-card--food { grid-row: 2; }
  .taste-card--dessert { grid-column: 1; grid-row: 3; }
  .taste-card--coffee { grid-column: 2; grid-row: 3; }
  .taste-card__copy { inset: auto 19px 20px; }
  .taste-card__meta { gap: 8px; font-size: 7px; letter-spacing: .12em; }
  .taste-card h3 { font-size: 38px; }
  .taste-card--dessert .taste-card__illustration { width: 100%; height: 60%; top: 0; bottom: auto; }
  .taste-card--dessert .taste-card__illustration img { width: 115%; }
  .taste-card--dessert .taste-card__copy { inset: auto 12px 16px; width: auto; }
  .taste-card--dessert h3 { font-size: 25px; }
  .taste-card--dessert .taste-card__meta { gap: 5px; font-size: 6px; }
  .taste-card--dessert .taste-card__description { display: none; }
  .taste-card--coffee .taste-card__copy { inset: auto 12px 16px; }
  .taste-card--coffee h3 { font-size: 25px; }
  .taste-card--coffee .taste-card__description { display: none; }
  .taste-card__arrow { right: 12px; top: 12px; width: 34px; height: 34px; font-size: 17px; }
  .taste-footer { align-items: flex-start; flex-direction: column; margin-top: 18px; font-size: 7px; line-height: 1.5; }
  .taste-footer .button { min-height: 44px; }
}
@media (max-width: 390px) {
  .taste-grid { grid-template-rows: 255px 235px 225px; }
  .taste-card__copy { inset: auto 15px 16px; }
  .taste-card h3 { font-size: 34px; }
  .taste-card--dessert h3,.taste-card--coffee h3 { font-size: 22px; }
  .taste-card--dessert .taste-card__meta { font-size: 5px; }
}
@media (prefers-reduced-motion: reduce) { .taste-card__photo { transition: none; } }

/* Keep the location and reservation block concise while contact details are blank. */
.visit__bottom-grid { align-items: start; }
.location-card { height: 430px; }
.location-card__map,.location-card__map iframe { min-height: 430px; }
.location-card__details { padding: 23px clamp(18px,2.1vw,28px); }
.location-card__address { min-height: 0; margin-bottom: 12px; }
.location-card .visit-details { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding-top: 10px; }
.location-card .visit-details div,.location-card .visit-details p { min-height: 0; }
.location-card__directions { margin-top: 4px; }
.reservation-card { padding: 24px clamp(22px,2.5vw,34px); }
.reservation-card>.eyebrow { margin-bottom: 8px; }
.reservation-card h3 { margin-bottom: 9px; font-size: clamp(32px,3.3vw,42px); }
.reservation-card__intro { margin-bottom: 5px; }
.reservation-card__notice { margin-bottom: 13px; font-size: 10px; }
.reservation-form { gap: 9px; }
.reservation-form label { gap: 4px; }
.reservation-form input { min-height: 40px; }
.reservation-form textarea { min-height: 64px; }
.reservation-form__row--details { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.reservation-form .button { min-height: 44px; margin-top: 0; padding-block: 10px; }
@media (max-width: 900px) {
  .location-card { height: auto; }
  .location-card__map,.location-card__map iframe { min-height: 240px; }
  .reservation-card { padding: 26px 24px; }
}
@media (max-width: 700px) {
  .reservation-form__row--details { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .reservation-form__row--details label:last-child { grid-column: 1 / -1; }
}

/* Give the hero title room to breathe and soften its two calls to action. */
.hero h1 { line-height: 1.02; }
.hero h1 em { display: inline-block; margin-top: .025em; line-height: 1.08; }
.hero__actions { gap: 12px 16px; flex-wrap: wrap; }
.hero .button--dark {
  min-height: 56px;
  padding: 10px 12px 10px 22px;
  gap: 16px;
  border: 1px solid #fff4e8aa;
  border-radius: 999px;
  background: #f4eee3;
  box-shadow: 0 8px 24px #09060532;
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease;
}
.hero .button--dark:hover { transform: translateY(-2px); background: #fffaf1; box-shadow: 0 12px 28px #09060545; }
.hero .button--dark span {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 50%;
  background: #e5d8c5;
  font-size: 15px;
}
.hero__text-link {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  gap: 8px;
  padding: 9px 17px;
  border: 1px solid #f2e4ce66;
  border-radius: 999px;
  background: #f2e4ce14;
  backdrop-filter: blur(8px);
  text-decoration: none;
  transition: background .24s ease, border-color .24s ease, transform .24s ease;
}
.hero__text-link:hover { transform: translateY(-2px); background: #f2e4ce25; border-color: #f2e4ceaa; }
.hero__text-link span {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  background: #f2e4ce20;
}
@media (max-width: 700px) {
  .hero h1 { line-height: .99; }
  .hero h1 em { line-height: 1.06; }
  .hero__actions { gap: 10px; }
}

/* The name's origin: pair the supplied portrait with a short, factual brand story. */
.brand-story {
  display: grid;
  grid-template-columns: minmax(280px,.88fr) minmax(0,1.12fr);
  align-items: center;
  gap: clamp(38px,8vw,128px);
  padding: clamp(72px,9vw,132px) var(--gutter);
  background: #e8e7e2;
  color: #303236;
}
.brand-story__visual {
  position: relative;
  width: min(100%,500px);
  aspect-ratio: .84;
  justify-self: end;
  overflow: hidden;
  background: #d1d0ca;
}
.brand-story__visual::after {
  position: absolute;
  inset: 12px;
  border: 1px solid #f2f0eaaa;
  content: "";
  pointer-events: none;
}
.brand-story__visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 24%; }
.brand-story__photo-note {
  position: absolute;
  z-index: 1;
  left: 25px;
  bottom: 25px;
  color: #f2f0ea;
  font: 600 8px var(--sans);
  letter-spacing: .2em;
  text-shadow: 0 1px 10px #0009;
}
.brand-story__copy { max-width: 670px; padding: 10px 0; }
.brand-story__copy>.eyebrow { margin-bottom: 24px; }
.brand-story__copy h2 {
  margin: 0 0 27px;
  color: #303236;
  font: 900 clamp(48px,6vw,82px)/.96 var(--display);
  letter-spacing: -.06em;
}
.brand-story__copy h2 em {
  color: #858588;
  font: italic 500 .82em/1.08 var(--serif);
  letter-spacing: -.04em;
}
.brand-story__copy>p:not(.eyebrow) { max-width: 570px; color: #56575a; font-size: 14px; line-height: 1.9; }
.brand-story__copy .text-link { display: inline-flex; margin-top: 16px; }
.brand-story__signoff {
  display: block;
  margin-top: 48px;
  color: #858588;
  font: 600 8px var(--sans);
  letter-spacing: .22em;
}
@media (max-width: 800px) {
  .brand-story { grid-template-columns: 1fr; gap: 34px; padding-block: 66px; }
  .brand-story__visual { width: min(100%,440px); aspect-ratio: .92; justify-self: start; }
  .brand-story__copy { padding: 0; }
  .brand-story__copy>.eyebrow { margin-bottom: 17px; }
  .brand-story__copy h2 { margin-bottom: 20px; font-size: clamp(44px,10vw,68px); }
  .brand-story__copy>p:not(.eyebrow) { font-size: 13px; }
  .brand-story__signoff { margin-top: 30px; }
}
