/* Tokens da identidade AUREA. */
:root {
  color-scheme: light;
  --espresso: #211510;
  --deep-brown: #342017;
  --terracotta: #b95638;
  --burnt-orange: #d97545;
  --cream: #f3e9d8;
  --beige: #d8c5ac;
  --warm-white: #fcf8f1;
  --ink: #2d211a;
  --muted: #75675b;
  --line: #d8c9b6;
  --serif: "Bodoni MT", "Didot", "Times New Roman", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif;
  --page-width: 1440px;
  --gutter: clamp(22px, 6.2vw, 96px);
  --section-space: clamp(84px, 10vw, 150px);
  --ease: cubic-bezier(.22, .68, 0, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); font-size: 14px; line-height: 1.7; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { color: var(--warm-white); background: var(--terracotta); }
:focus-visible { outline: 2px solid var(--burnt-orange); outline-offset: 5px; }

.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 10px 15px; color: var(--espresso); background: var(--warm-white); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

/* Navegação leve sobre a fotografia da campanha. */
.site-header { position: absolute; z-index: 10; top: 0; left: 50%; display: flex; width: min(100%, var(--page-width)); height: 90px; align-items: center; gap: clamp(28px, 5vw, 76px); padding-inline: var(--gutter); color: var(--warm-white); transform: translateX(-50%); }
.wordmark { display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; line-height: 1; }
.wordmark-main { font-family: var(--serif); font-size: 25px; letter-spacing: .18em; }
.wordmark-sub { margin-top: 7px; font-size: 7px; letter-spacing: .24em; }
.primary-nav { display: flex; align-items: center; gap: clamp(18px, 3.2vw, 45px); margin-left: auto; }
.primary-nav a, .header-visit { font-size: 10px; letter-spacing: .08em; transition: color .2s ease; }
.primary-nav a:hover, .header-visit:hover { color: #f0a47e; }
.primary-nav .nav-cta { display: none; }
.header-visit { padding-bottom: 7px; border-bottom: 1px solid var(--burnt-orange); }
.header-visit span { margin-left: 8px; color: var(--burnt-orange); }
.menu-toggle { display: none; }

/* HERO: campanha fotográfica, lettering amplo e título deslocado à esquerda. */
.hero { position: relative; display: flex; min-height: max(720px, 100svh); flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 150px var(--gutter) 100px; color: var(--warm-white); background: var(--espresso); }
.hero-image, .hero-shade { position: absolute; inset: 0; }
.hero-image { object-position: center 48%; animation: hero-arrive 1.1s var(--ease) both; }
.hero-shade { background: linear-gradient(90deg, rgba(26,16,11,.76), rgba(26,16,11,.38) 48%, rgba(26,16,11,.08)), linear-gradient(0deg, rgba(26,16,11,.58), transparent 52%); }
.hero-campaign-name { position: absolute; z-index: 1; top: 18%; right: -2vw; color: transparent; font-family: var(--serif); font-size: clamp(190px, 29vw, 440px); letter-spacing: -.09em; line-height: .72; -webkit-text-stroke: 1px rgba(252,248,241,.55); pointer-events: none; }
.hero-topline { position: absolute; z-index: 2; top: 122px; right: var(--gutter); left: var(--gutter); display: flex; justify-content: space-between; color: rgba(252,248,241,.83); font-size: 8px; letter-spacing: .2em; }
.hero-copy { position: relative; z-index: 2; width: min(100%, 1100px); margin: 0 auto; animation: copy-arrive .8s .08s var(--ease) both; }
.eyebrow { margin: 0; color: var(--terracotta); font-size: 9px; font-weight: 600; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; }
.hero .eyebrow { color: #f4ae87; }
.eyebrow-mark { display: inline-block; width: 20px; height: 1px; margin: 0 11px 3px 0; background: currentColor; }
.hero h1, .philosophy h2, .menu-heading h2, .experience h2, .visit h2 { margin: 0; font-family: var(--serif); font-weight: 400; letter-spacing: -.06em; line-height: .87; }
.hero h1 { margin-top: 26px; font-size: clamp(80px, 12.2vw, 176px); }
.hero h1 em, .philosophy h2 em, .menu-heading h2 em, .experience h2 em, .visit h2 em { color: var(--burnt-orange); font-weight: 400; }
.hero-bottomline { display: flex; max-width: 790px; align-items: center; justify-content: space-between; gap: 28px; margin-top: 31px; }
.hero-bottomline p { margin: 0; color: rgba(252,248,241,.9); font-size: 11px; line-height: 1.8; }
.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: space-between; gap: 34px; padding: 0 20px; font-size: 9px; letter-spacing: .1em; transition: color .25s ease, background .25s ease, transform .25s ease; }
.button:hover { transform: translateY(-2px); }
.button span { font-size: 16px; }
.button-light { border: 1px solid rgba(252,248,241,.72); color: var(--warm-white); }
.button-light:hover { color: var(--espresso); background: var(--warm-white); }
.button-dark { color: var(--warm-white); background: var(--espresso); }
.button-dark:hover { background: var(--terracotta); }
.hero-footnote { position: absolute; z-index: 2; right: var(--gutter); bottom: 108px; display: flex; align-items: center; gap: 12px; color: rgba(252,248,241,.9); font-family: var(--serif); font-size: 13px; font-style: italic; }
.hero-footnote-rule { width: 30px; height: 1px; background: var(--burnt-orange); }
.scroll-cue { position: absolute; z-index: 2; bottom: 31px; left: var(--gutter); display: flex; align-items: center; gap: 13px; color: rgba(252,248,241,.83); font-size: 7px; letter-spacing: .17em; }
.scroll-cue span { width: 32px; height: 1px; background: var(--burnt-orange); }

.section-pad { padding-inline: max(var(--gutter), calc((100vw - 1248px) / 2)); }
.section-index { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.section-index > span:first-child { color: var(--terracotta); }
.index-rule { width: 30px; height: 1px; background: var(--terracotta); }

/* SOBRE: fotografia em arco, palavra no fundo e manchete que atravessa a foto. */
.philosophy { padding-top: var(--section-space); padding-bottom: var(--section-space); overflow: hidden; background: var(--cream); }
.philosophy-stage { position: relative; max-width: 1280px; min-height: 720px; margin: 24px auto 0; }
.philosophy-watermark { position: absolute; z-index: 0; top: 30%; left: -5%; color: rgba(185,86,56,.13); font-family: var(--serif); font-size: clamp(150px, 25vw, 340px); letter-spacing: -.1em; line-height: .8; pointer-events: none; }
.philosophy-statement { position: absolute; z-index: 2; top: 58px; left: 4%; }
.philosophy-statement h2 { margin-top: 20px; font-size: clamp(78px, 10vw, 142px); }
.philosophy-statement h2 em { color: var(--terracotta); }
.philosophy-image { position: absolute; top: 6%; left: 43%; width: 37%; height: 83%; margin: 0; overflow: hidden; clip-path: ellipse(48% 49% at 50% 50%); }
.philosophy-image img { object-position: 52% center; }
.philosophy-image figcaption { position: absolute; right: 12%; bottom: 12%; color: var(--warm-white); font-size: 7px; letter-spacing: .16em; writing-mode: vertical-rl; }
.philosophy-copy { position: absolute; z-index: 2; right: 1%; bottom: 12%; width: 27%; }
.copy-index { color: var(--terracotta); font-size: 8px; letter-spacing: .16em; }
.philosophy-copy p { margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.95; }
.text-link { display: inline-flex; align-items: center; gap: 27px; margin-top: 21px; padding-bottom: 7px; border-bottom: 1px solid var(--terracotta); font-size: 9px; letter-spacing: .04em; }
.text-link span { color: var(--terracotta); transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px, -2px); }
.origin-note { position: absolute; right: 4%; bottom: 0; display: flex; align-items: center; gap: 14px; color: var(--terracotta); font-size: 10px; letter-spacing: .06em; line-height: 1.1; }
.origin-note small { display: block; margin-top: 5px; font-size: 7px; letter-spacing: .16em; }
.origin-rule { width: 38px; height: 1px; background: var(--line); }

/* MENU: um produto em escala de campanha; os outros entram como lista editorial. */
.menu-section { max-width: 1600px; margin: auto; padding-top: var(--section-space); padding-bottom: var(--section-space); color: var(--warm-white); background: var(--espresso); }
.menu-topline { display: flex; align-items: center; justify-content: space-between; }
.menu-section .section-index, .menu-edition { color: var(--beige); }
.menu-section .section-index > span:first-child { color: var(--burnt-orange); }
.menu-section .index-rule { background: var(--burnt-orange); }
.menu-edition { font-size: 7px; letter-spacing: .17em; }
.menu-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin: 39px 0 52px; }
.menu-heading .eyebrow { color: #f0a47e; }
.menu-heading h2 { margin-top: 19px; font-size: clamp(62px, 8vw, 112px); }
.menu-heading h2 em { color: var(--burnt-orange); }
.menu-heading > p { max-width: 275px; margin: 0 4% 9px 0; color: var(--beige); font-size: 10px; line-height: 1.9; }
.product-layout { display: grid; grid-template-columns: 1.14fr .86fr; align-items: center; gap: clamp(35px, 7vw, 100px); }
.feature-photo { position: relative; display: block; aspect-ratio: 1.12; overflow: hidden; background: var(--deep-brown); }
.feature-photo::after { position: absolute; inset: 35% 0 0; background: linear-gradient(0deg, rgba(25,15,10,.86), transparent); content: ""; }
.feature-photo img { transition: transform .8s var(--ease); }
.feature-photo:hover img { transform: scale(1.035); }
.feature-number { position: absolute; z-index: 1; top: 17px; left: 19px; color: var(--warm-white); font-size: 7px; letter-spacing: .18em; }
.feature-caption { position: absolute; z-index: 1; bottom: 25px; left: 28px; display: flex; flex-direction: column; color: var(--warm-white); }
.feature-caption > span { color: #f0a47e; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.feature-caption strong { margin-top: 8px; font-family: var(--serif); font-size: clamp(42px, 5vw, 68px); font-weight: 400; letter-spacing: -.05em; line-height: .88; }
.feature-price { position: absolute; z-index: 1; right: 23px; bottom: 31px; color: var(--warm-white); font-size: 11px; }
.product-description { max-width: 470px; margin: 14px 0 0; color: #c7b6a5; font-size: 9px; line-height: 1.8; }
.product-list { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.product-row { display: grid; grid-template-columns: 25px 126px 1fr; align-items: center; gap: 17px; padding: 24px 0; border-bottom: 1px solid rgba(216,197,172,.32); }
.product-row:first-child { border-top: 1px solid rgba(216,197,172,.32); }
.row-number { align-self: start; padding-top: 5px; color: var(--burnt-orange); font-size: 7px; letter-spacing: .12em; }
.row-photo { display: block; width: 126px; height: 137px; overflow: hidden; background: var(--deep-brown); }
.row-photo img { transition: transform .7s var(--ease); }
.row-photo:hover img { transform: scale(1.05); }
.row-copy h3 { margin: 0; font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: 1.2; }
.row-copy p { margin: 8px 0 11px; color: #c7b6a5; font-size: 8px; line-height: 1.7; }
.row-copy > span { color: #f0a47e; font-size: 6px; letter-spacing: .1em; }
.menu-disclaimer { margin: 18px 0 0 42px; color: #b9a695; font-size: 7px; letter-spacing: .06em; }

/* EXPERIÊNCIA: fotografia panorâmica integral com uma legenda em overlay. */
.experience { position: relative; min-height: 690px; overflow: hidden; color: var(--warm-white); background: var(--espresso); }
.experience-image, .experience-shade { position: absolute; inset: 0; }
.experience-image { object-position: center 55%; }
.experience-shade { background: linear-gradient(90deg, rgba(26,16,11,.08) 25%, rgba(26,16,11,.24) 58%, rgba(26,16,11,.72)), linear-gradient(0deg, rgba(26,16,11,.58), transparent 52%); }
.experience-topline { position: absolute; top: 29px; right: var(--gutter); left: var(--gutter); display: flex; justify-content: space-between; color: rgba(252,248,241,.85); font-size: 7px; letter-spacing: .18em; }
.experience-copy { position: absolute; right: max(var(--gutter), calc((100vw - 1248px) / 2)); bottom: 11%; width: min(39%, 460px); }
.experience-copy .eyebrow { color: #f0a47e; }
.experience h2 { margin-top: 18px; font-size: clamp(82px, 10vw, 142px); }
.experience h2 em { color: var(--burnt-orange); }
.experience-copy > p:not(.eyebrow) { max-width: 300px; margin: 21px 0 17px; color: rgba(252,248,241,.91); font-size: 9px; line-height: 1.9; }
.experience-link { display: inline-flex; align-items: center; gap: 20px; padding-bottom: 6px; border-bottom: 1px solid var(--burnt-orange); font-size: 8px; letter-spacing: .08em; }
.experience-link span { color: #f0a47e; }
.experience-caption { position: absolute; bottom: 27px; left: var(--gutter); color: rgba(252,248,241,.85); font-size: 7px; letter-spacing: .18em; }

/* ENCERRAMENTO: localização tipográfica em terracota, sem mapa ou imagem genérica. */
.visit { position: relative; overflow: hidden; padding-top: 92px; padding-bottom: 90px; color: var(--warm-white); background: var(--terracotta); }
.visit-heading { position: relative; z-index: 1; }
.visit .section-index { color: rgba(252,248,241,.78); }
.visit .section-index > span:first-child { color: var(--espresso); }
.visit .index-rule { background: var(--espresso); }
.visit-heading .eyebrow { margin-top: 50px; color: var(--cream); }
.visit h2 { margin-top: 19px; font-size: clamp(80px, 12vw, 165px); }
.visit h2 em { color: var(--espresso); }
.visit-details { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 35px; margin-top: 54px; padding-top: 22px; border-top: 1px solid rgba(252,248,241,.42); }
.detail-label { color: var(--cream); font-size: 7px; letter-spacing: .17em; }
.visit-details p { margin: 10px 0 3px; font-size: 10px; line-height: 1.9; }
.visit-details small { color: rgba(252,248,241,.78); font-size: 7px; }
.visit-hours b { float: right; margin-left: 28px; font-weight: 500; }
.visit-cta { min-width: 185px; margin-bottom: 1px; }
.visit-oversized { position: absolute; right: -1.5vw; bottom: -13vw; color: transparent; font-family: var(--serif); font-size: clamp(220px, 38vw, 520px); letter-spacing: -.1em; line-height: .75; opacity: .13; -webkit-text-stroke: 1px var(--warm-white); pointer-events: none; }

.site-footer { padding: 37px var(--gutter) 19px; color: var(--warm-white); background: var(--espresso); }
.footer-top, .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.footer-top { max-width: var(--page-width); margin: auto; padding-bottom: 31px; }
.footer-mark { align-items: flex-start; }
.footer-mark .wordmark-main { font-size: 27px; }
.footer-manifesto { margin: 0; color: var(--beige); font-family: var(--serif); font-size: 16px; line-height: 1.5; }
.footer-manifesto em { color: var(--burnt-orange); font-weight: 400; }
.back-top { padding-bottom: 7px; border-bottom: 1px solid var(--burnt-orange); font-size: 8px; letter-spacing: .1em; }
.back-top span { margin-left: 13px; color: var(--burnt-orange); }
.footer-bottom { max-width: var(--page-width); margin: auto; padding-top: 15px; border-top: 1px solid rgba(252,248,241,.22); color: #c5b5a7; font-size: 7px; letter-spacing: .13em; }
.footer-bottom a:hover, .back-top:hover { color: #f0a47e; }

/* JavaScript só esconde elementos depois de iniciar o observador de entrada. */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }
@keyframes hero-arrive { from { transform: scale(1.035); } to { transform: scale(1); } }
@keyframes copy-arrive { from { transform: translateY(12px); } to { transform: none; } }

@media (max-width: 980px) {
  :root { --gutter: 5vw; --section-space: 102px; }
  .site-header { gap: 25px; }
  .primary-nav { gap: 19px; }
  .hero { min-height: 780px; }
  .hero h1 { font-size: clamp(82px, 13vw, 132px); }
  .hero-campaign-name { top: 23%; font-size: 35vw; }
  .hero-footnote { display: none; }
  .philosophy-stage { min-height: 650px; }
  .philosophy-statement { top: 70px; left: 1%; }
  .philosophy-statement h2 { font-size: clamp(72px, 10vw, 104px); }
  .philosophy-image { top: 10%; left: 39%; width: 39%; height: 78%; }
  .philosophy-copy { right: 0; bottom: 13%; width: 30%; }
  .product-layout { grid-template-columns: 1fr .95fr; gap: 30px; }
  .product-row { grid-template-columns: 20px 95px 1fr; gap: 11px; padding: 20px 0; }
  .row-photo { width: 95px; height: 116px; }
  .row-copy h3 { font-size: 17px; }
  .experience { min-height: 620px; }
  .experience-copy { width: 42%; }
  .visit-details { gap: 20px; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 18px; }
  .site-header { height: 72px; padding-inline: 22px; gap: 14px; }
  .wordmark-main { font-size: 21px; }
  .wordmark-sub { font-size: 6px; }
  .header-visit { margin-left: auto; font-size: 8px; }
  .header-visit { display: none; }
  .menu-toggle { display: flex; width: 42px; height: 42px; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: 6px; order: 3; border: 0; color: inherit; background: transparent; cursor: pointer; }
  .menu-toggle span { width: 20px; height: 1px; background: currentColor; transition: transform .22s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-nav { position: absolute; top: 71px; right: 0; left: 0; display: flex; max-height: 0; flex-direction: column; align-items: stretch; gap: 0; overflow: hidden; padding: 0 23px; visibility: hidden; opacity: 0; color: var(--ink); background: var(--warm-white); transition: max-height .3s var(--ease), padding .3s ease, opacity .2s ease, visibility 0s linear .3s; }
  .primary-nav.is-open { max-height: 240px; padding: 9px 23px 16px; visibility: visible; opacity: 1; box-shadow: 0 16px 24px rgba(33,21,16,.13); transition-delay: 0s; }
  .primary-nav a { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 11px; }
  .primary-nav .nav-cta { display: block; color: var(--terracotta); font-weight: 600; }
  .hero { min-height: max(700px, 100svh); padding: 130px 24px 88px; justify-content: center; }
  .hero-image { object-position: 57% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(26,16,11,.7), rgba(26,16,11,.2)), linear-gradient(0deg, rgba(26,16,11,.68), transparent 65%); }
  .hero-campaign-name { top: 24%; right: -7vw; font-size: 37vw; -webkit-text-stroke-width: .7px; }
  .hero-topline { top: 103px; right: 24px; left: 24px; font-size: 6px; }
  .hero-copy { margin-top: 68px; }
  .hero h1 { margin-top: 23px; font-size: clamp(64px, 15vw, 100px); }
  .hero-bottomline { align-items: flex-start; flex-direction: column; gap: 19px; margin-top: 25px; }
  .hero-bottomline p { font-size: 9px; }
  .hero-footnote { display: none; }
  .scroll-cue { display: none; }
  .section-pad { padding-inline: 24px; }
  .philosophy { padding-top: 75px; padding-bottom: 78px; }
  .philosophy-stage { min-height: 0; margin-top: 24px; padding-bottom: 0; }
  .philosophy-watermark { top: 20%; left: -10%; font-size: 29vw; }
  .philosophy-statement { position: relative; top: auto; left: auto; z-index: 2; }
  .philosophy-statement h2 { margin-top: 17px; font-size: clamp(67px, 15vw, 94px); }
  .philosophy-image { position: relative; top: auto; left: auto; width: 78%; height: min(112vw, 420px); margin: -4px 0 0 12%; clip-path: ellipse(48% 49% at 50% 50%); }
  .philosophy-image figcaption { right: 10%; bottom: 12%; font-size: 6px; }
  .philosophy-copy { position: relative; right: auto; bottom: auto; width: 76%; margin: -12px 0 0 auto; }
  .philosophy-copy p { font-size: 9px; }
  .origin-note { position: relative; right: auto; bottom: auto; justify-content: flex-end; margin-top: 34px; gap: 10px; font-size: 9px; }
  .origin-rule { width: 23px; }
  .menu-section { padding-top: 75px; padding-bottom: 78px; }
  .menu-edition { font-size: 6px; }
  .menu-heading { align-items: flex-start; flex-direction: column; gap: 17px; margin: 28px 0 31px; }
  .menu-heading h2 { margin-top: 17px; font-size: clamp(57px, 13vw, 78px); }
  .menu-heading > p { max-width: 300px; margin: 0; font-size: 9px; }
  .product-layout { grid-template-columns: 1fr; gap: 30px; }
  .feature-photo { aspect-ratio: .98; }
  .feature-caption { bottom: 22px; left: 20px; }
  .feature-caption strong { font-size: 54px; }
  .feature-price { right: 19px; bottom: 28px; }
  .product-description { font-size: 8px; }
  .product-row { grid-template-columns: 18px 88px 1fr; gap: 11px; padding: 17px 0; }
  .row-photo { width: 88px; height: 102px; }
  .row-copy h3 { font-size: 17px; }
  .row-copy p { margin: 5px 0 8px; font-size: 7px; }
  .row-copy > span { font-size: 5.5px; }
  .menu-disclaimer { margin-left: 29px; }
  .experience { min-height: 0; padding-bottom: 0; }
  .experience-image { position: relative; inset: auto; display: block; width: 100%; height: 71vw; min-height: 350px; max-height: 490px; }
  .experience-shade { background: linear-gradient(0deg, rgba(26,16,11,.48), transparent 60%); }
  .experience-topline { top: 19px; right: 22px; left: 22px; font-size: 6px; }
  .experience-copy { position: relative; right: auto; bottom: auto; width: auto; padding: 45px 25px 42px; background: var(--terracotta); }
  .experience h2 { margin-top: 17px; font-size: clamp(72px, 17vw, 106px); }
  .experience h2 em { color: var(--espresso); }
  .experience-copy > p:not(.eyebrow) { max-width: 300px; font-size: 8px; }
  .experience-link { font-size: 7px; }
  .experience-caption { display: none; }
  .visit { padding-top: 70px; padding-bottom: 50px; }
  .visit-heading .eyebrow { margin-top: 37px; }
  .visit h2 { margin-top: 16px; font-size: clamp(64px, 14vw, 92px); }
  .visit-details { grid-template-columns: 1fr 1fr; gap: 24px 14px; margin-top: 34px; padding-top: 17px; }
  .visit-details p { font-size: 8px; }
  .visit-hours b { margin-left: 10px; }
  .visit-cta { grid-column: 1 / -1; width: max-content; min-height: 47px; }
  .visit-oversized { right: -5vw; bottom: -12vw; font-size: 43vw; }
  .site-footer { padding: 29px 24px 17px; }
  .footer-top { display: grid; grid-template-columns: 1fr auto; gap: 17px 10px; padding-bottom: 23px; }
  .footer-mark .wordmark-main { font-size: 24px; }
  .footer-manifesto { font-size: 13px; text-align: right; }
  .back-top { grid-column: 1 / -1; width: max-content; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 6px; }
  .footer-bottom span:last-child { display: none; }
}

@media (max-width: 380px) {
  .site-header { padding-inline: 16px; }
  .header-visit { font-size: 7px; }
  .section-pad { padding-inline: 19px; }
  .product-row { grid-template-columns: 15px 76px 1fr; gap: 8px; }
  .row-photo { width: 76px; height: 94px; }
  .row-copy h3 { font-size: 15px; }
  .row-copy p { font-size: 6.5px; }
  .visit-details { grid-template-columns: 1fr; }
  .visit-cta { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}
