/* Brand, semantic surfaces and type roles: shared by both pages. */
:root {
  --coal:#161616; --brown:#29271f; --brand-yellow:#f8c910; --brand-yellow-hover:#edbf00;
  --accent-ink:#756000; --accent-ink-hover:#514200;
  --cream:#fff3bf; --paper:#fcfbf6; --muted:#615f57; --line:#dedcd2;
  --white:#fff; --surface-soft:#f2f1e9; --surface-card:#fffefb; --surface-warm:#f4edce;
  --on-dark:#f4f1e6; --on-dark-muted:#c9c7be;
  --rating:#806600; --rating-empty:#807d73;
  --avatar-warm:#f4edce; --avatar-warm-text:#615000;
  --avatar-green:#e9e9df; --avatar-green-text:#555647;
  --avatar-blue:#e6e7e5; --avatar-blue-text:#535653;
  --display:'DM Serif Display',Georgia,serif; --serif:var(--display); --brand-serif:var(--serif); --sans:'Manrope',Arial,sans-serif;
  --text-body:1rem; --text-control:.875rem; --text-meta:.75rem;
  --container:1240px; --radius-sm:14px; --radius:22px; --radius-lg:32px;
  --header-height:79px; --mobile-bar-space:0px;
  --section-space:120px; --section-heading-space:52px;
  --shadow-soft:0 4px 20px color-mix(in srgb,var(--coal) 12%,transparent);
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px);scroll-padding-bottom:calc(var(--mobile-bar-space) + env(safe-area-inset-bottom) + 12px)}
body {margin:0;background:var(--paper);color:var(--coal);font:var(--text-body)/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
body:has(dialog[open]) {overflow:hidden}
a {color:inherit;text-decoration:none}
button,input,select,textarea {font:inherit;color:inherit}
button,a {-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button {cursor:pointer;border:0;background:none}
img {display:block;width:100%;height:auto}
svg {display:block}
.icon {width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3,p {margin:0}
h1,h2,h3 {font-family:var(--serif);font-weight:400;line-height:1.16;overflow-wrap:anywhere}
h2 {font-size:clamp(2.125rem,3.6vw,3.125rem);letter-spacing:0}
h2 em,h1 em {color:var(--accent-ink);font-style:italic;font-weight:inherit;line-height:inherit}
/* Rounded system: 14px controls, 22px cards, 32px large surfaces; circles for symbols. */
p {color:var(--muted)}
/* A light inner ring and dark outer ring remain visible on both brand surfaces. */
:where(button,a,input,select,textarea,[tabindex]):focus-visible {outline:3px solid var(--coal);outline-offset:3px;box-shadow:0 0 0 3px var(--white)}
:where(button,a,input,select,textarea,iframe,[tabindex]) {scroll-margin-block:8px}
::selection {background:var(--cream);color:var(--accent-ink-hover)}
[hidden] {display:none!important}
.container {width:min(calc(100% - 112px),var(--container));margin-inline:auto}
.section {padding-block:var(--section-space)}
.eyebrow {display:block;font-size:var(--text-meta);font-weight:800;letter-spacing:.12em;color:var(--accent-ink);margin-bottom:19px;line-height:1.5}
.button {display:inline-flex;justify-content:center;align-items:center;gap:20px;min-width:44px;min-height:48px;max-width:100%;padding:14px 22px;border-radius:var(--radius-sm);font-size:var(--text-control);font-weight:700;line-height:1.5;transition:background .2s,transform .2s;text-align:center}
.button-primary {background:var(--brand-yellow);color:var(--coal)}
.button-primary:hover {background:var(--brand-yellow-hover)}
.button-outline {border:1px solid color-mix(in srgb,var(--cream) 55%,transparent);color:var(--white)}
.button-outline:hover {background:color-mix(in srgb,var(--white) 10%,transparent)}
.icon-button {display:grid;place-items:center;min-width:44px;min-height:44px;width:44px;height:44px;padding:0;flex-shrink:0}
.sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link {position:fixed;left:12px;top:-150px;z-index:99;background:var(--cream);padding:10px 20px;border-radius:var(--radius-sm)}
.skip-link:focus {top:10px}

/* Navigation grows with user text settings; JS measures its actual height. */
.site-header {position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner {min-height:78px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding-block:12px}
.brand {display:flex;align-items:center;gap:10px;color:var(--coal);min-width:0;min-height:44px;max-width:100%}
.brand>span {min-width:0}
.brand-logo {width:52px;height:52px;flex-shrink:0;object-fit:contain;border-radius:50%;background:var(--coal)}
.brand strong {display:block;font-family:var(--brand-serif);font-size:1.8rem;line-height:1.15;font-weight:400;letter-spacing:.02em}
.brand small {display:block;font-size:.625rem;letter-spacing:.08em;line-height:1.5;font-weight:800;margin-top:3px}
#main-nav {display:flex;gap:22px;align-items:center;flex-wrap:wrap}
#main-nav a {display:flex;align-items:center;min-width:44px;min-height:44px;font-size:var(--text-control);font-weight:600;padding:10px 0;position:relative}
#main-nav a::after {content:'';position:absolute;bottom:6px;inset-inline:0;height:1px;background:var(--accent-ink);transform:scaleX(0);transform-origin:left;transition:transform .2s}
#main-nav a:hover::after,#main-nav a[aria-current]::after {transform:scaleX(1)}
#main-nav a[aria-current] {color:var(--accent-ink)}
.header-call {padding:10px 18px}
.nav-toggle {display:none;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--brand-yellow);color:var(--coal);transition:background .2s,transform .2s}
.nav-toggle:hover {background:var(--brand-yellow-hover)}
.nav-toggle .icon {width:24px;height:24px;stroke-width:2}

/* Header plus hero equals the viewport; enlarged content stays scrollable. */
.hero {height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));min-height:0;position:relative;overflow:hidden;display:flex;align-items:center;color:var(--white);background:var(--coal);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.hero-image {position:absolute;right:0;top:0;width:75%;height:100%;object-fit:cover;object-position:50% 49%;animation:hero-zoom 12s ease-out both}
.hero-overlay {position:absolute;inset:0;background:linear-gradient(90deg,var(--coal),color-mix(in srgb,var(--coal) 92%,transparent) 20%,color-mix(in srgb,var(--coal) 68%,transparent) 41%,transparent 80%)}
.hero-content {position:relative;padding-block:24px;max-height:100%;min-width:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--brand-yellow) var(--coal)}
.hero h1 {font-family:var(--serif);font-weight:400;font-size:min(clamp(2.75rem,5.8vw,5rem),12dvh);line-height:1.1;letter-spacing:0}
.hero h1 em {color:var(--brand-yellow)}
.hero-content>p {color:var(--on-dark);font-size:var(--text-body);line-height:1.7;margin:24px 0;max-width:48ch}
.hero-actions {display:flex;flex-wrap:wrap;gap:12px}
.hero-location {display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;max-width:100%;min-height:44px;font-size:var(--text-meta);margin-top:20px;color:var(--on-dark);padding-block:8px}
.hero-location .icon {width:18px;height:18px}
.hero-rating-number {font-size:1.375rem;color:var(--paper);font-weight:600;line-height:1}
.hero-location>.rating-stars {color:var(--brand-yellow);letter-spacing:1px;font-size:1rem}
.hero-location>.hero-rating-text {font-size:var(--text-meta)}
.values-strip {background:var(--surface-soft);border-bottom:1px solid var(--line)}
.values-strip .container {display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px;padding-block:20px}
.value-item {display:flex;align-items:center;gap:12px;min-width:0}
.value-icon {display:grid;place-items:center;flex-shrink:0}
.value-label {font-family:var(--serif);font-size:1.25rem;line-height:1.4;min-width:0}
.values-strip .icon {color:var(--accent-ink);width:28px;height:28px;stroke-width:1.65}
.values-strip b {font-weight:400;color:var(--rating);font-size:var(--text-meta)}

/* Content sections. All grid tracks may shrink and all copy may wrap. */
.section-heading {display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-bottom:var(--section-heading-space)}
.section-heading>div {min-width:0}
.section-heading h2 {font-size:clamp(2.125rem,3.3vw,3rem)}
.category-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.category-card {min-width:0}
.category-image {height:320px;position:relative;overflow:hidden;background:var(--cream);margin-bottom:22px;border-radius:var(--radius)}
.category-image::after {content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,color-mix(in srgb,var(--coal) 35%,transparent))}
.category-image>img {height:100%;object-fit:cover;transition:transform .65s}
.category-arrow {position:absolute;bottom:15px;right:15px;width:38px;height:38px;display:grid;place-items:center;z-index:1;background:var(--paper);border-radius:50%;color:var(--accent-ink);transition:background .2s,color .2s}
.category-card:hover .category-arrow {color:var(--coal);background:var(--brand-yellow)}
.category-card h3 {font-size:2.05rem;margin-bottom:8px}
.category-card p {font-size:var(--text-control);line-height:1.6}
.story {background:var(--surface-soft)}
.story-layout {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px;align-items:center}
.story-visual {height:555px;position:relative;margin-right:26px;min-width:0}
.story-visual>img {height:100%;object-fit:cover;object-position:50% 45%;border-radius:var(--radius-lg)}
.story-copy {min-width:0}
.story-copy h2 {margin-bottom:26px;font-size:clamp(2.25rem,3.75vw,3.25rem)}
.story-copy p {font-size:var(--text-body);margin-bottom:18px;max-width:65ch}
.story-copy .lead {font-size:1.125rem;line-height:1.7;color:var(--brown)}
.qr-section {padding-block:var(--section-space);background:var(--paper)}
.qr-layout {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:60px}
.qr-copy {min-width:0}
.qr-copy p {font-size:var(--text-body);margin:24px 0 29px;max-width:65ch}
.qr-art {min-width:0}
.qr-card {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);width:100%;min-height:360px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s}
.qr-card:hover {border-color:var(--accent-ink)}
.qr-card-photo {min-width:0;position:relative;background:var(--cream)}
.qr-card-photo img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% 50%}
.qr-card-body {min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px;gap:20px}
.qr-card-body>strong {font-family:var(--serif);font-size:1.875rem;font-weight:400;line-height:1.2;text-align:center}
.qr-card #menu-qr {width:min(100%,224px);aspect-ratio:1}
.qr-card #menu-qr svg {width:100%;height:auto;aspect-ratio:1}
.qr-card-action {display:flex;align-items:center;justify-content:center;gap:14px;min-height:44px;color:var(--accent-ink);font-size:var(--text-control);font-weight:700}
.qr-card:hover .qr-card-action {color:var(--accent-ink-hover)}

/* Compact, equal-height reviews. */
.reviews-section {border-top:1px solid var(--line)}
.reviews-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;grid-auto-rows:1fr}
.google-summary-card,.review-card {min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--surface-card)}
.review-card {display:flex;flex-direction:column}
.review-author {display:flex;align-items:center;gap:12px;margin-bottom:14px}
.review-avatar {width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:50%;font-size:var(--text-control);font-weight:700;color:var(--avatar-warm-text);background:var(--avatar-warm)}
.avatar-1 {background:var(--avatar-green);color:var(--avatar-green-text)}
.avatar-2 {background:var(--avatar-blue);color:var(--avatar-blue-text)}
.review-author>div {min-width:0}
.review-author h3 {font-family:var(--sans);font-size:var(--text-body);font-weight:800;line-height:1.5}
.review-author>div>span {font-size:var(--text-meta);color:var(--muted)}
.review-source-mark {margin-left:auto;color:var(--muted)}
.review-source-mark .icon {width:19px;height:19px}
.review-stars {color:var(--rating);font-size:1.125rem;letter-spacing:2px;line-height:1.4;margin-bottom:12px}
.empty-stars {color:var(--rating-empty)}
.review-card .review-text {font-size:var(--text-body);line-height:1.7;color:var(--muted);margin:0}
.google-summary-card {display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.google-logo {width:80px;height:26px;object-fit:contain;margin-bottom:15px}
.google-score-line {display:flex;align-items:center;flex-wrap:wrap;gap:16px}
.google-score-line>strong {font-family:var(--serif);font-size:2.75rem;font-weight:400;line-height:1;letter-spacing:-.02em}
.google-summary-stars {font-size:1.125rem;letter-spacing:2px;line-height:1}
.google-summary-stars>span {background:linear-gradient(90deg,var(--rating) 88%,var(--rating-empty) 88%);background-clip:text;-webkit-background-clip:text;color:transparent}
.google-summary-card>p {font-size:var(--text-control);line-height:1.5;margin-top:10px}
.google-summary-link {display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-control);line-height:1.5;margin-top:10px;color:var(--coal);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--muted)}
.google-summary-link:hover {color:var(--accent-ink)}
.gallery-section {background:var(--surface-soft)}
.gallery-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery-item {padding:0;position:relative;height:280px;overflow:hidden;text-align:left;background:var(--cream);border-radius:var(--radius);min-width:0}
.gallery-item>img {height:100%;object-fit:cover;transition:transform .5s}
.gallery-item>.icon {position:absolute;bottom:20px;right:20px;color:var(--white);filter:drop-shadow(0 1px 3px var(--coal))}

/* Contact and call card. */
.contact-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:80px;align-items:center}
.contact-copy {min-width:0}
.contact-copy>:is(h1,h2) {font-size:clamp(2.25rem,3.6vw,3.125rem);margin-bottom:26px;letter-spacing:-.025em}
.contact-detail {display:flex;gap:17px;margin-bottom:24px}
.contact-detail>div {min-width:0}
.contact-detail>.icon {color:var(--accent-ink);margin-top:4px}
.contact-detail :is(h2,h3) {font-family:var(--sans);font-size:var(--text-body);font-weight:800;line-height:1.5;margin-bottom:6px}
.contact-detail p {font-size:var(--text-body)}
.contact-copy>.button {margin-top:7px}
.map-panel {height:475px;background:var(--cream);position:relative;border-radius:var(--radius-lg);overflow:hidden;min-width:0}
.map-panel iframe {border:0;width:100%;height:100%;filter:saturate(.55)}
.map-label {position:absolute;bottom:23px;left:23px;right:23px;background:var(--paper);padding:17px 21px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-soft);border-radius:var(--radius-sm);min-height:44px}
.map-label>div {min-width:0}
.map-label .brand-logo {width:44px;height:44px}
.map-label strong {font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1.2}
.map-label>.icon {margin-left:auto;color:var(--accent-ink)}
.call-section {padding-top:84px;background:var(--paper)}
.call-card {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:30px;padding:54px 60px;background:var(--coal);color:var(--cream);border-radius:var(--radius-lg)}
.call-card>div {min-width:0}
.call-card h2 {font-size:3rem}
.call-card h2 em {color:var(--brand-yellow)}
.call-number {display:flex;align-items:center;gap:20px;border:1px solid color-mix(in srgb,var(--cream) 30%,transparent);border-radius:var(--radius);padding:24px;max-width:100%;min-width:0;transition:background .2s}
.call-number:hover {background:color-mix(in srgb,var(--white) 5%,transparent)}
.call-number>span:nth-child(2) {min-width:0}
.call-number strong {font-family:var(--serif);font-size:2.25rem;font-weight:400;line-height:1.3;white-space:normal}
.call-icon {display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--white) 5%,transparent);color:var(--brand-yellow);flex-shrink:0}
.call-icon .icon {width:26px;height:26px}
.call-number>.icon {color:var(--brand-yellow)}
.call-section + .instagram-section {margin-top:clamp(56px,7vw,96px)}

/* Shared social section and footer. */
.instagram-section {background:var(--brand-yellow);color:var(--coal)}
.instagram-section .button-outline {border-color:var(--coal);color:var(--coal)}
.instagram-section .button-outline:hover {background:color-mix(in srgb,var(--coal) 8%,transparent)}
.instagram-inner {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;padding-block:43px}
.instagram-inner>div {display:flex;align-items:center;gap:20px;min-width:0;max-width:100%}
.instagram-inner .icon {width:34px;height:34px;stroke-width:1}
.instagram-inner h2 {font-size:2.25rem;letter-spacing:0;line-height:1.3;min-width:0}
.instagram-strip {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:0 12px 12px}
.instagram-strip>a {aspect-ratio:4/5;position:relative;overflow:hidden;border-radius:var(--radius);min-width:0}
.instagram-strip img {height:100%;object-fit:cover;transition:transform .5s}
.instagram-strip .icon {position:absolute;bottom:15px;right:15px;color:var(--white);filter:drop-shadow(0 1px 3px var(--coal))}
.site-footer {background:var(--coal);color:var(--on-dark-muted);padding:65px 0 0}
.footer-top {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1.25fr);gap:50px;padding-bottom:50px}
.footer-top>div {min-width:0}
.site-footer .brand {color:var(--brand-yellow)}
.site-footer p {font-size:var(--text-control);line-height:1.8;color:var(--on-dark-muted)}
.footer-about p {margin-top:18px}
.site-footer h3 {font-family:var(--sans);font-size:var(--text-body);font-weight:700;color:var(--on-dark);margin:9px 0 16px;line-height:1.5}
.footer-top>div>a:not(.brand) {display:flex;align-items:center;min-height:44px;font-size:var(--text-control);padding-block:10px;line-height:1.6}
.footer-top>div>a:hover {color:var(--white)}
.footer-about .social-link {gap:9px;margin-top:10px}
.social-link .icon {width:20px;height:20px}
.footer-bottom {border-top:1px solid color-mix(in srgb,var(--white) 15%,transparent);padding-block:22px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;font-size:var(--text-meta);color:var(--on-dark-muted)}
.footer-bottom>span {min-width:0}
.agency-credit {display:inline-flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0;min-height:44px;opacity:.7;transition:opacity .2s}
.agency-credit img {width:58px;height:26px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1)}
.agency-credit:hover {opacity:1}
.mobile-bar {display:none}

/* Gallery dialog is loaded only where the gallery exists. */
dialog {padding:0;border:0;max-width:calc(100% - 32px);max-height:90dvh;box-shadow:0 24px 100px color-mix(in srgb,var(--coal) 30%,transparent);color:var(--coal);background:var(--paper);border-radius:var(--radius)}
dialog::backdrop {background:color-mix(in srgb,var(--coal) 85%,transparent)}
/* Mobile navigation rises from the bottom, above the inert page. */
.mobile-menu {position:fixed;inset:auto 0 calc(8px + env(safe-area-inset-bottom));margin:0 auto;width:min(520px,calc(100% - 16px));max-width:none;max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));padding:20px 24px 24px;border:1px solid var(--line);border-radius:32px;overflow:hidden;background:var(--paper);box-shadow:0 -8px 48px color-mix(in srgb,var(--coal) 18%,transparent)}
.mobile-menu[open] {display:flex;flex-direction:column;animation:menu-rise .3s cubic-bezier(.22,1,.36,1) both}
.mobile-menu::backdrop {background:color-mix(in srgb,var(--coal) 42%,transparent);backdrop-filter:blur(3px)}
.mobile-menu-handle {width:40px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 18px;flex-shrink:0}
.mobile-menu-header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;flex-shrink:0}
.mobile-menu-header h2 {font-family:var(--sans);font-size:1.375rem;font-weight:800;line-height:1.3}
.mobile-menu-close {background:var(--surface-soft);border-radius:50%}
.mobile-menu-links {overflow-y:auto;overscroll-behavior:contain;min-height:0;margin:0 -8px;padding:0 8px;scroll-padding-block:8px}
.mobile-menu-links a {display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:58px;padding:16px 0;border-bottom:1px solid var(--line);font-size:1.125rem;font-weight:600;line-height:1.5}
.mobile-menu-links a[aria-current] {color:var(--accent-ink)}
.mobile-menu-links .icon {width:18px;height:18px;color:var(--muted)}
.mobile-menu-qr {width:100%;margin-top:24px;flex-shrink:0;min-height:52px}
body:has(#mobile-menu[open]) .mobile-bar,body.footer-in-view .mobile-bar {visibility:hidden;pointer-events:none}
@keyframes menu-rise {from{transform:translateY(calc(100% + 24px))}to{transform:translateY(0)}}
.dialog-close {position:absolute;right:12px;top:12px;background:var(--paper);color:var(--accent-ink);z-index:2;border-radius:50%;box-shadow:var(--shadow-soft)}
.lightbox {width:850px;background:var(--coal);color:var(--cream);overflow-y:auto;padding-bottom:18px}
.lightbox-media {position:relative;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.lightbox-media>img {height:min(65dvh,680px);object-fit:contain}
.lightbox-media[aria-busy="true"]>img,.lightbox-media.has-error>img {visibility:hidden}
.lightbox-media>p {position:absolute;inset:40% 20px auto;text-align:center;color:var(--cream)}
.lightbox-retry {position:absolute;top:55%;margin-top:12px}
.lightbox>p {text-align:center;color:var(--cream);margin:15px 55px 0;font-family:var(--serif);font-size:1.75rem;line-height:1.2}
.lightbox-nav {display:flex;align-items:center;justify-content:center;gap:15px;font-size:var(--text-control)}
.lightbox-nav .icon-button {color:var(--cream)}
.noscript-note {padding:15px;text-align:center;background:var(--cream)}
[data-reveal] {transition:opacity .7s,transform .7s}
.reveal-ready {opacity:0;transform:translateY(18px)}
.reveal-ready.is-visible {opacity:1;transform:none}
.reveal-ready:focus-within {opacity:1;transform:none;transition:none}
@keyframes hero-zoom {from{transform:scale(1.045)}to{transform:scale(1)}}
@media(hover:hover) {
  .button:hover {transform:translateY(-2px)}
  .category-card:hover img {transform:scale(1.055)}
  .gallery-item:hover>img,.instagram-strip a:hover img {transform:scale(1.045)}
}
.button:active,.icon-button:active {transform:scale(.98)}
@media(min-width:1550px) {.hero-image{width:70%}}
@media(max-width:1100px) {
  :root{--section-space:96px;--section-heading-space:44px}
  .container{width:calc(100% - 72px)}
  .header-inner{gap:12px}.brand strong{font-size:1.55rem}#main-nav{gap:14px}
  .header-call{gap:10px;padding-inline:14px}
  .category-grid{gap:18px}.category-image{height:265px}
  .story-layout{gap:45px}.story-visual{height:510px;margin-right:0}
  .qr-layout{gap:25px}
  .contact-layout{gap:40px}.footer-top{gap:30px}.call-card{padding:40px}
}
@media(max-width:900px) {
  :root{--header-height:81px;--section-space:80px}
  .container{width:calc(100% - 44px)}
  .header-inner{min-height:80px;flex-wrap:nowrap;gap:12px}.header-inner>.brand{flex:1;min-width:0}
  .brand strong{font-size:1.625rem}.brand-logo{width:48px;height:48px}
  .nav-toggle{display:grid;order:3}
  .site-header #main-nav{display:none}
  .hero-image{width:100%;object-position:62% 49%}
  .hero-overlay{background:linear-gradient(90deg,color-mix(in srgb,var(--coal) 93%,transparent),color-mix(in srgb,var(--coal) 72%,transparent) 60%,color-mix(in srgb,var(--coal) 35%,transparent))}
  .values-strip .container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px;padding-block:28px}.values-strip b{display:none}
  .values-strip .container{gap:24px 16px;padding-block:28px}
  .value-item{flex-direction:column;gap:10px;text-align:center;align-self:start}
  .value-icon{width:52px;height:52px;border-radius:16px;background:var(--cream)}
  .value-label{font-family:var(--sans);font-size:.875rem;font-weight:700;line-height:1.5;max-width:18ch;min-height:3em;text-wrap:balance}
  .values-strip .icon{width:30px;height:30px;stroke-width:1.7}
  .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px}.category-image{height:340px}
  .story-layout{gap:30px}.story-visual{height:480px}
  .qr-layout{grid-template-columns:minmax(0,1fr);gap:35px}.qr-art{width:560px;max-width:100%;margin-inline:auto}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery-item{height:255px}
  .reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .contact-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.map-panel{height:450px}.map-label{left:12px;right:12px;padding:12px}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.footer-top>div:last-child{grid-column:1/-1}
  .call-card{align-items:flex-start;flex-direction:column}.call-number{width:100%}.call-number>.icon{margin-left:auto}
}
/* Floating shortcuts remain visible across mobile and tablet widths. */
@media(max-width:1024px) {
  :root{--mobile-bar-space:102px}
  body{padding-bottom:calc(var(--mobile-bar-space) + env(safe-area-inset-bottom))}
  body.footer-in-view{padding-bottom:0}
  .hero-content{padding-bottom:calc(var(--mobile-bar-space) + 12px)}
  .mobile-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));max-width:520px;margin-inline:auto;border:1px solid var(--line);background:var(--paper);z-index:25;border-radius:22px;padding:6px;box-shadow:0 8px 32px color-mix(in srgb,var(--coal) 20%,transparent);gap:8px}
  .mobile-bar a{min-height:64px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:var(--text-meta);font-weight:700;color:var(--accent-ink);padding:6px 4px;border-radius:16px;line-height:1.4;min-width:0;text-align:center}
  .mobile-bar a>span{max-width:100%;overflow-wrap:anywhere}.mobile-bar a:last-child{background:var(--brand-yellow);color:var(--coal)}
}
@media(max-width:600px) {
  :root{--header-height:77px;--section-space:72px;--section-heading-space:36px}
  .container{width:calc(100% - 36px)}.header-inner{min-height:76px}.header-call{display:none}
  .brand strong{font-size:1.5rem}.brand{gap:8px}
  .hero{border-radius:0 0 24px 24px}.hero h1{font-size:min(3.25rem,13vw,9.5dvh);line-height:1.12}
  .hero-content{padding:20px 0 calc(var(--mobile-bar-space) + 12px)}
  .hero-content>p{margin-block:18px}.hero-content>p br{display:none}.hero-location{margin-top:14px;gap:8px}
  .hero-actions{gap:10px}.hero-actions .button{padding:12px 14px;gap:10px;flex:1}
  .hero-image{object-position:58% 40%}

  .section-heading{align-items:flex-start;flex-direction:column}
  .eyebrow{margin-bottom:14px;letter-spacing:.09em}
  .category-grid{gap:27px 15px}.category-image{height:233px;margin-bottom:16px}.category-card h3{font-size:1.8rem}
  .category-arrow{bottom:12px;right:12px;width:32px;height:32px}.category-arrow .icon{width:16px}
  .story-layout{grid-template-columns:minmax(0,1fr);gap:40px}.story-visual{height:400px}.story-copy h2 br:nth-of-type(2){display:none}
  .qr-copy p br{display:none}.qr-art{width:100%}.qr-card{grid-template-columns:minmax(0,.5fr) minmax(0,1fr);min-height:300px}.qr-card-body{padding:24px 16px;gap:12px}.qr-card-body>strong{font-size:1.625rem}
  .reviews-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:16px}.google-summary-card,.review-card{padding:22px;border-radius:22px}
  .gallery-grid{gap:12px}.gallery-item{height:205px}.gallery-item>.icon{right:12px;bottom:12px}
  .contact-layout{grid-template-columns:minmax(0,1fr);gap:35px}.map-panel{height:370px}.map-label{left:17px;right:17px;bottom:17px;padding:17px}
  .call-section{padding-top:56px}.call-card{padding:30px 24px;gap:25px}.call-card h2{font-size:2.5rem}
  .call-number{padding:18px 12px;gap:12px}.call-number strong{font-size:1.7rem}.call-icon{width:38px;height:38px}.call-icon .icon{width:21px;height:21px}.call-number>.icon{width:18px}
  .instagram-inner{flex-direction:column;align-items:flex-start;padding-block:35px}.instagram-inner>div{gap:12px}.instagram-inner h2{font-size:2rem}
  .instagram-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 8px 8px}.instagram-strip>a{border-radius:16px}.instagram-strip>a:nth-child(n+4){display:none}
  .site-footer{padding-top:45px}.footer-top{gap:27px 20px;padding-bottom:35px}.footer-about{grid-column:1/-1}
  .footer-bottom{align-items:flex-start;font-size:var(--text-meta);padding-block:20px}
  .lightbox-media>img{height:55dvh}.lightbox>p{font-size:1.5rem}
}
@media(max-height:600px) {
  .hero-content{padding-top:12px}.hero-content>p{margin-block:12px;line-height:1.5}.hero-location{margin-top:8px}
}
@media(max-height:480px) and (min-width:601px) {
  .hero h1{font-size:8dvh}.hero-content{padding-top:8px}.hero-content>p{margin-block:8px}.hero-content>p br{display:none}
}
@media(prefers-reduced-motion:reduce) {
  html{scroll-behavior:auto}.hero-image,.mobile-menu[open]{animation:none}
  [data-reveal],.button,.icon-button,.category-image>img,.gallery-item>img,.instagram-strip img{transition:none}
  .button:hover,.button:active,.icon-button:active,.category-card:hover img,.gallery-item:hover>img,.instagram-strip a:hover img{transform:none}
  .reveal-ready{opacity:1;transform:none}
}
@media(forced-colors:active) {.google-summary-stars>span{background:none;color:CanvasText}.button,.map-label,.mobile-bar{border:1px solid ButtonText}}
@media print {
  .site-header,.mobile-bar,.site-footer,.instagram-section{display:none}
  .section{padding:20px 0}.container{width:100%}body{background:var(--white);padding:0}
  .hero{height:auto;color:var(--coal);background:none}.hero-image,.hero-overlay{display:none}.hero-content{max-height:none;overflow:visible}.hero-content>p{color:var(--coal)}
}
