@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-400-italic.woff2) format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-400.woff2) format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-500.woff2) format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-600.woff2) format('woff2');
}
@font-face {
  font-family: 'Great Vibes';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/great-vibes-400.woff2) format('woff2');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/jost-300.woff2) format('woff2');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/jost-400.woff2) format('woff2');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/jost-500.woff2) format('woff2');
}
/* ===== Tokens — taken from the paper menu: ivory paper, bronze ink, script titles ===== */
:root {
  --paper: #F6F0E7;
  --paper-2: #FBF8F3;
  --sand: #EDE2D3;
  --tan: #E2D1BA;
  --line: #D9C5A9;
  --bronze: #8B6542;
  --bronze-dark: #6E4F33;
  --bronze-soft: #B08D67;
  --ink: #3E2E22;
  --ink-2: #6B5644;

  --script: "Great Vibes", cursive;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Jost", system-ui, sans-serif;

  --radius: 14px;
  --arch: 999px 999px 10px 10px;
  --max: 1120px;
  --bar-h: 76px;
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-padding-top: 84px; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  padding-bottom: var(--bar-h);
}
body.modal-open { overflow: hidden; }
img,svg { display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1,h2,h3,h4 { margin: 0; font-weight: 500; }
p { margin: 0; }
.container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 20px; }
.script { font-family: var(--script); font-weight: 400; color: var(--bronze); line-height: 1; }
.eyebrow {
  font-size: 12px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--bronze-soft); font-weight: 500;
}
.icon { width: 18px; height: 18px; flex: none; }
.small { font-size: 14px; color: var(--ink-2); margin-top: 6px; }
/* ===== Buttons ===== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 26px; border-radius: 999px;
  font: 500 15px/1 var(--sans); letter-spacing: .04em; text-decoration: none;
  border: 1px solid var(--bronze); transition: background .2s, color .2s, transform .15s;
}
.btn:active { transform: scale(.98); }
.btn-solid { background: var(--bronze); color: var(--paper-2); }
.btn-solid:hover { background: var(--bronze-dark); border-color: var(--bronze-dark); }
.btn-ghost { background: transparent; color: var(--bronze); }
.btn-ghost:hover { background: var(--sand); }
.btn-sm { min-height: 40px; padding: 0 18px; font-size: 14px; }
.btn:focus-visible,a:focus-visible,button:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }
.link-arrow {
  display: inline-block; margin-top: 14px; color: var(--bronze); font-weight: 500;
  text-decoration: none; border: 0; border-bottom: 1px solid var(--line); padding: 0 0 2px;
  background: none; cursor: pointer;
}
.link-arrow:hover { border-color: var(--bronze); }
/* ===== Header ===== */
.site-header {
  position: sticky; top: 0; z-index: 20;
  /* solid, no backdrop blur: the falling shapes behind it would make the browser re-blur every frame */
  background: var(--paper);
  border-bottom: 1px solid transparent; transition: border-color .2s;
}
.site-header.is-scrolled { border-color: var(--line); }
.header-actions { display: flex; align-items: center; gap: 14px; }
/* short "Open now" / "Closed now" that stays on screen with the sticky header */
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 68px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--bronze); }
.brand-mark { width: auto; height: 40px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-family: var(--serif); font-size: 19px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; }
.brand-city { font-size: 10px; letter-spacing: .4em; text-transform: uppercase; color: var(--bronze-dark); }
.nav { display: none; gap: 32px; }
.nav a { text-decoration: none; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.nav a:hover { color: var(--bronze); }
.site-header .btn-sm span { display: none; }
.site-header .btn-sm { padding: 0; width: 42px; }
/* ===== Hero ===== */
.hero { position: relative; overflow: hidden; padding: 36px 0 56px; }
.hero-inner { display: grid; gap: 40px; align-items: center; }
.hero-copy { text-align: center; position: relative; z-index: 1; }
.hero-sub {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(24px, 5.6vw, 32px); line-height: 1.25; color: var(--ink); margin-top: 14px;
}
.hero-trust {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 18px;
  margin-top: 18px; font-size: 14px; color: var(--ink-2);
}
.trust-rating { color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--line); }
.trust-rating:hover { border-color: var(--bronze); }
.review-nav[hidden] { display: none; }
.hero-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 22px; }
/* ===== Seasonal background layer (built by script.js) ===== */
main,.site-footer { position: relative; z-index: 1; }
.season-layer { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.p {
  position: absolute; top: -40px; left: var(--x); width: var(--s); height: var(--s);
  opacity: var(--o); will-change: transform;
  animation: p-fall var(--d) linear var(--delay) infinite;
}
.p svg { width: 100%; height: 100%; animation: p-sway calc(var(--d) / 4) ease-in-out var(--delay) infinite alternate; }
.p-rise { animation-direction: reverse; }
.season-layer.is-paused .p,.season-layer.is-paused .p svg,.season-layer.is-paused .bat-wing { animation-play-state: paused; }
.season-layer[hidden] {display:none;}
.p-bat {width:calc(var(--s) * 1.4);}
.bat-wing {transform-box:view-box;transform-origin:32px 22px;animation:bat-flap var(--flap) ease-in-out var(--delay) infinite;}
@keyframes bat-flap {
  0%,100% {transform:rotate(12deg) scaleY(.55);}
  45% {transform:rotate(-8deg) scaleY(1);}
  75% {transform:rotate(4deg) scaleY(.8);}
}
@media (prefers-reduced-motion:reduce) {
  .season-layer,.moment {display:none!important;}
}
@keyframes p-fall { to { transform: translateY(calc(100vh + 80px)); } }
@keyframes p-sway {
  from { transform: translateX(calc(var(--sway) * -1)) rotate(calc(var(--r) * -1)); }
  to   { transform: translateX(var(--sway)) rotate(var(--r)); }
}
/* ===== Language ===== */
.lang-banner {
  position: relative; z-index: 41; display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 9px 44px; background: var(--bronze); color: var(--paper-2); font-size: 14px; text-align: center;
}
.lang-banner[hidden] { display: none; }
.lang-banner a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.lang-banner-close {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; border: 0; background: none; color: inherit; font-size: 22px; cursor: pointer;
}
.lang-link { color: var(--bronze); }
/* ===== Section heads ===== */
section { padding: 64px 0; }
.section-head { text-align: center; margin-bottom: 32px; }
.section-head h2 .script { font-size: clamp(48px, 12vw, 72px); display: inline-block; padding: .1em 0 0; }
/* ===== Service tiles ===== */
.services { background: rgba(251, 248, 243, .6); border-block: 1px solid var(--line); }
/* flex so an odd last row stays centered */
.tiles { --cols: 2; --gap: 12px; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); }
.tile {
  flex: 0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px;
  padding: 18px 10px 16px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--line); border-radius: 90px 90px var(--radius) var(--radius);
  transition: border-color .2s, background .2s, transform .2s;
}
.tile:hover { border-color: var(--bronze); background: #FDFBF7; transform: translateY(-2px); }
.tile-arch {
  width: 56px; height: 66px; border-radius: var(--arch); margin-bottom: 8px;
  display: grid; place-items: center; color: var(--bronze-soft); border: 1px solid var(--line);
}
.tile-arch svg { width: 34px; height: 34px; }
.tile-name { font-family: var(--serif); font-size: 20px; font-weight: 600; color: var(--bronze); line-height: 1.15; }
.tile-desc { font-size: 13px; color: var(--ink-2); line-height: 1.35; }
.promo-icon { width: 26px; height: 26px; color: var(--bronze); margin-bottom: 12px; }
/* ===== Reviews ===== */
.reviews { padding-top: 0; }
.rating-line { margin-top: 6px; color: var(--ink-2); font-size: 15px; letter-spacing: .04em; }
.rating-stars { color: var(--bronze); letter-spacing: .12em; margin-right: 6px; }
/* one row of cards: swipe on phones, arrows everywhere; no auto-rotation */
.review-track {
  display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding: 2px 2px 6px; margin: 0 -2px;
}
.review-track::-webkit-scrollbar { display: none; }
.review-track:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }
.review-card {
  flex: 0 0 86%; scroll-snap-align: start; display: flex; flex-direction: column;
  margin: 0; padding: 24px 22px 20px; background: var(--paper-2);
  border: 1px solid var(--line); border-radius: var(--radius);
}
/* a card shows only once its review text has been pasted in */
.review-card:has(blockquote p:empty) { display: none; }
.review-card blockquote { margin: 0; font-family: var(--serif); font-size: 19px; line-height: 1.45; color: var(--ink); }
.review-card blockquote::before { content: "\201C"; display: block; font-size: 44px; line-height: .6; color: var(--bronze-soft); margin-bottom: 4px; }
.review-card figcaption { margin-top: auto; padding-top: 14px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--bronze); font-weight: 500; }
.review-card figcaption span { color: var(--bronze-dark); font-weight: 400; }
.review-nav { display: flex; justify-content: center; gap: 12px; margin-top: 16px; }
.review-arrow {
  width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer;
  border: 1px solid var(--line); border-radius: 50%; background: var(--paper-2); color: var(--bronze);
}
.review-arrow:hover:not(:disabled) { border-color: var(--bronze); }
.review-arrow:disabled { opacity: .35; cursor: default; }
.review-arrow .icon { width: 18px; height: 18px; }
.icon.flip { transform: scaleX(-1); }
/* ===== Visit ===== */
.visit { padding-top: 0; }
.visit-card {
  background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 40px 24px; position: relative;
}
.visit-card::before {
  content: ""; position: absolute; inset: 8px; border: 1px solid var(--sand);
  border-radius: calc(var(--radius) - 4px); pointer-events: none;
}
/* ===== Footer ===== */
.site-footer { text-align: center; padding: 44px 0 36px; border-top: 1px solid var(--line); color: var(--ink-2); }
.footer-script { font-size: clamp(34px, 9vw, 60px); margin-bottom: 6px; }
.footer-nap { margin-top: 14px; font-size: 14px; }
.footer-nap a { color: var(--bronze); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.footer-social { margin-top: 12px; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 22px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.footer-social a { color: var(--bronze); text-decoration: none; border-bottom: 1px solid var(--line); }
.footer-social a:hover { border-color: var(--bronze); }
.footer-meta { margin-top: 10px; font-size: 13px; letter-spacing: .08em; color: var(--bronze-dark); }
/* ===== Sticky call bar (mobile) ===== */
.call-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
  display: grid; grid-template-columns: auto 1fr; gap: 10px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: var(--paper-2); border-top: 1px solid var(--line);
}
.call-bar .btn-solid { padding: 0 14px; font-size: 14px; white-space: nowrap; }
/* small phones: keep header and call bar on one line */
@media (max-width:379.98px) {
 .brand-name { font-size: 17px; }
 .header-inner,.header-actions { gap: 10px; }
}
/* ===== Service menu sheet (dialog) ===== */
.sheet {
  border: 0; padding: 0; color: var(--ink); background: var(--paper-2);
  width: 100%; max-width: 100%; max-height: 88vh; max-height: 88dvh;
  margin: auto auto 0; border-radius: 22px 22px 0 0;
  display: none; flex-direction: column; overflow: hidden;
}
.sheet[open] { display: flex; animation: sheet-up .32s ease; }
.sheet:focus { outline: none; }
.sheet::backdrop { background: rgba(62, 46, 34, .45); }
.sheet[open]::backdrop { animation: fade .32s ease; }
@keyframes sheet-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fade { from { opacity: 0; } }
.sheet-head { position: relative; text-align: center; padding: 22px 56px 10px; border-bottom: 1px solid var(--sand); }
.sheet-head::before {
  content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px;
  margin-left: -20px; border-radius: 4px; background: var(--line);
}
.sheet-head h2 .script { font-size: 46px; display: inline-block; padding-top: .12em; }
.sheet-close {
  position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: var(--paper); border: 1px solid var(--line); color: var(--bronze);
}
.sheet-close:hover { background: var(--sand); }
.sheet-body { overflow-y: auto; padding: 8px 22px 22px; -webkit-overflow-scrolling: touch; }
.sheet-foot { padding: 12px 22px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--sand); display: grid; }
.svc-list { list-style: none; margin: 0; padding: 0; }
.svc-list li { padding: 14px 0; border-bottom: 1px dashed var(--line); }
.svc-list li:last-child { border-bottom: 0; }
.svc-list h3 {
  font-family: var(--serif); font-size: 21px; font-weight: 600; color: var(--bronze);
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; line-height: 1.2;
}
.svc-list p { font-size: 14.5px; color: var(--ink-2); margin-top: 3px; line-height: 1.55; }
.svc-list em { font-family: var(--serif); font-size: 16px; }
.tag {
  font: 500 10px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase;
  background: var(--bronze); color: var(--paper-2); padding: 5px 9px; border-radius: 999px;
}
.sheet-sub {
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--bronze-soft);
  margin: 14px 0 10px; padding-top: 14px; border-top: 1px solid var(--sand);
}
.sheet-sub-first { border-top: 0; padding-top: 6px; }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li span { margin-left: 4px; font-size: 12px; color: var(--ink-2); }
/* Spanish hint on /es/ */
.chips li {
  padding: 7px 14px; border-radius: 999px; font-size: 14px;
  background: var(--paper); border: 1px solid var(--line); color: var(--ink);
}
/* ===== Reveal on scroll ===== */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
/* ===== Tablet / desktop ===== */
/* phones: smaller tile art keeps the seven services on fewer screens */
@media (max-width:639.98px) {
 .tile { padding: 14px 8px 14px; }
 .tile-arch { width: 40px; height: 48px; margin-bottom: 6px; }
 .tile-arch svg { width: 26px; height: 26px; }
}
@media (min-width: 640px) {
 .tiles { --cols: 4; --gap: 16px; }
 .review-card { flex-basis: calc((100% - 14px) / 2); }
 .sheet { width: min(560px, calc(100% - 40px)); margin: auto; border-radius: 22px; max-height: 84vh; }
 .sheet-head::before { display: none; }
 .sheet-head { padding-top: 26px; }
}
@media (min-width: 900px) {
 body { padding-bottom: 0; }
 .call-bar { display: none; }
 .nav { display: flex; }
 .site-header .btn-sm { padding: 0 18px; width: auto; }
 .site-header .btn-sm span { display: inline; }
 .hero { padding: 64px 0 88px; }
 .hero-inner { grid-template-columns: 1.05fr 1fr; gap: 56px; }
 .hero-copy { text-align: left; }
 .hero-cta,.hero-trust { justify-content: flex-start; }
 .review-card { flex-basis: calc((100% - 28px) / 3); }
 .review-card blockquote { font-size: 17px; }
 section { padding: 88px 0; }
 .visit { padding-top: 0; }
 .tile { padding: 26px 14px 22px; }
 .tile-arch { width: 70px; height: 82px; }
 .tile-arch svg { width: 42px; height: 42px; }
 .tile-name { font-size: 23px; }
 .visit-card { padding: 56px 48px; }
}
/* narrow desktops: make room for the full nav */
@media (min-width: 900px) and (max-width:1099.98px) {
 .nav { gap: 20px; }
 .site-header .btn-sm { padding: 0; width: 42px; }
 .site-header .btn-sm span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 .js .reveal { opacity: 1; transform: none; transition: none; }
 .sheet[open],.sheet[open]::backdrop { animation: none; }
}
.proposed-hero {padding:52px 0 58px;}
.proposed-hero .hero-inner {grid-template-columns:1fr 1.03fr;gap:54px;}
.proposed-hero .hero-copy {text-align:left;min-width:0;}
.proposed-hero .hero-sub {font-size:43px;line-height:1.1;margin-top:11px;}
.proposed-hero .hero-trust {justify-content:flex-start;margin-top:21px;}
.proposed-hero .hero-cta {justify-content:flex-start;margin-top:24px;gap:10px;}
.proposed-hero .btn {padding:0 22px;min-height:50px;}
.nearby {margin-top:21px;font-size:14px;line-height:1.7;color:var(--ink);}
.nearby span {color:var(--ink-2);font-size:13px;}
.hero-proof {margin:0;position:relative;align-self:center;}
.hero-proof>img {width:100%;height:auto;aspect-ratio:1.05;object-fit:cover;border-radius:48% 48% 12px 12px / 24% 24% 12px 12px;}
.hero-proof figcaption {display:flex;justify-content:space-between;gap:12px;margin-top:15px;color:var(--ink-2);font-size:12px;}
.hero-proof figcaption span:first-child {font-family:var(--serif);font-style:italic;font-size:18px;color:var(--bronze);}
.proposed-visit {display:grid;grid-template-columns:1fr 1fr;gap:42px;position:relative;align-items:center;}
.storefront {margin:0;}
.storefront img {display:block;width:100%;height:330px;object-fit:cover;border-radius:120px 120px 10px 10px;}
.storefront figcaption {font-size:12px;color:var(--ink-2);text-align:center;margin-top:12px;}
.visit-details h3 {font-family:var(--serif);font-size:32px;line-height:1.15;margin:12px 0 20px;color:var(--ink);}
.visit-details .eyebrow {font-size:10px;letter-spacing:.17em;}
.visit-details .visit-hours {margin-top:17px;color:var(--ink-2);font-size:14px;}
.visit-details .hero-cta {justify-content:flex-start;gap:8px;margin-top:22px;}
.visit-details .btn {padding:0 18px;font-size:13px;}
.proposed-bar {grid-template-columns:1fr 1fr;}
.proposed-bar .btn {min-height:48px;}
@media(max-width:899.98px) {
 .proposed-hero {padding:24px 0 32px;}
 .proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr);gap:24px;}
 .proposed-hero .hero-sub {font-size:32px;margin-top:8px;line-height:1.12;}
 .proposed-hero .hero-trust {font-size:13px;margin-top:15px;}
 .proposed-hero .hero-cta {margin-top:18px;gap:9px;flex-wrap:nowrap;}
 .proposed-hero .btn {padding:0 17px;font-size:14px;min-height:48px;}
 .proposed-hero .eyebrow {font-size:10px;letter-spacing:.18em;}
 .nearby {font-size:13px;margin-top:15px;}
 .nearby span {font-size:12px;}
 .hero-proof>img {aspect-ratio:1.65;border-radius:40% 40% 10px 10px / 18% 18% 10px 10px;object-position:50% 56%;}
 .hero-proof figcaption {margin-top:8px;font-size:11px;align-items:center;}
 .hero-proof figcaption span:first-child {font-size:16px;}
 .proposed-visit {grid-template-columns:1fr;gap:25px;}
 .storefront img {height:220px;}
 .visit-details {text-align:left;}
 .visit-details h3 {font-size:28px;}
 .visit-card {padding:30px 22px;}
}
.proposed-hero .hero-copy {text-align:center;}
.proposed-hero .hero-sub {font-size:32px;line-height:1.25;margin-top:14px;}
.proposed-hero .hero-trust,.proposed-hero .hero-cta {justify-content:center;}
.hero-proof figcaption {flex-direction:column;align-items:center;gap:4px;text-align:center;}
.visit-details {text-align:center;}
.visit-details .hero-cta {justify-content:center;}
@media(max-width:899.98px) {
 .proposed-hero .hero-sub {font-size:clamp(24px,5.6vw,32px);line-height:1.25;margin-top:14px;}
 .nearby {margin-top:10px;}
 .visit-details {text-align:center;}
}
.nearby a {text-decoration:none;}
.nearby a:hover {text-decoration:underline;text-underline-offset:4px;}
@media(max-width:899.98px) {
 .site-header .header-actions>.btn-sm {display:none;}
 .site-header .header-actions {gap:0;flex-shrink:0;}
 .proposed-hero .hero-cta {margin-top:20px;}
 .nearby {margin-top:18px;}
}
@media(max-width:359.98px) {
 .header-inner {gap:8px;}
 .brand {gap:8px;}
 .brand-mark {height:36px;}
 .brand-name {font-size:16px;}
 .brand-city {font-size:9px;}
}
.services .tile {padding:14px 14px 20px;border-radius:110px 110px var(--radius) var(--radius);}
.services .tile-arch.service-photo {display:block;width:100%;max-width:178px;height:156px;overflow:hidden;border-radius:90px 90px 8px 8px;margin-bottom:12px;background:var(--sand);}
.service-photo img {display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;}
.photo-pedicure img {object-position:46% 50%;}
.photo-manicure img {object-position:55% 50%;}
.photo-art img {object-position:45% 50%;}
.photo-dip img,.photo-acrylic img {object-position:100% 50%;}
.photo-wax img {object-position:44% 50%;}
.storefront img {height:auto;aspect-ratio:3/2;object-fit:cover;}
@media(max-width:639.98px) {
 .services .tile {padding:10px 10px 16px;}
 .services .tile-arch.service-photo {height:126px;max-width:178px;margin-bottom:10px;}
 .services .tile-name {font-size:20px;}
}
@media(max-width:359.98px) {
 .services .tile-arch.service-photo {height:110px;}
 .services .tile-name {font-size:19px;}
}
.container {padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));}
.proposed-hero {padding:44px 0 52px;}
.proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);gap:44px;}
.proposed-hero .hero-copy {width:100%;max-width:580px;margin-inline:auto;}
.proposed-hero .hero-sub {font-size:34px;line-height:1.1;margin-top:22px;}
.hero-locality {display:block;font-size:.68em;letter-spacing:.025em;margin-top:6px;}
.proposed-hero .hero-trust {margin-top:20px;}
.proposed-hero .hero-cta {margin-top:20px;}
.proposed-hero .nearby {margin-top:20px;}
.nail-deck {min-width:0;width:100%;padding:6px 8px 0 0;}
.deck-stage {position:relative;isolation:isolate;padding-top:14px;}
.deck-front {position:relative;z-index:3;margin-right:34px;overflow:hidden;border-radius:48% 48% 12px 12px / 24% 24% 12px 12px;background:var(--sand);touch-action:pan-y pinch-zoom;user-select:none;}
.deck-main-photo {display:block;width:100%;height:auto;aspect-ratio:6/5;object-fit:cover;object-position:center;pointer-events:none;}
.deck-back {position:absolute;width:calc(100% - 42px);height:calc(100% - 26px);top:21px;right:9px;border:1px solid var(--line);border-radius:48% 48% 12px 12px / 24% 24% 12px 12px;overflow:hidden;background:var(--sand);padding:0;}
.deck-back-next {z-index:2;transform:rotate(4deg);cursor:pointer;}
.deck-back-next:hover {filter:brightness(1.05);}
.deck-back-far {z-index:1;right:0;top:17px;transform:rotate(7deg);object-fit:cover;}
.deck-footer {margin-right:34px;}
.deck-announcement {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}
.deck-view-all {display:flex;align-items:center;justify-content:center;width:fit-content;min-height:44px;margin:7px auto 0;color:var(--bronze);font-size:13px;text-underline-offset:4px;padding:8px 0;}
.nail-deck button:focus-visible {outline:2px solid var(--bronze);outline-offset:4px;}
@media(max-width:899.98px) {
 body {padding-bottom:calc(76px + env(safe-area-inset-bottom));}
 .call-bar {padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
 .proposed-hero {padding:24px 0 36px;}
 .proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr);gap:26px;}
 .proposed-hero .hero-sub {font-size:28px;margin-top:20px;}
 .proposed-hero .nearby {margin-top:18px;}
 .nail-deck {padding-top:0;max-width:520px;margin:0 auto;}
 .deck-front {margin-right:30px;}
 .deck-main-photo {aspect-ratio:6/5;}
 .deck-back {width:calc(100% - 35px);}
 .deck-footer {margin-right:30px;}
}
@media(min-width:700px) and (max-width:899.98px) {
 .proposed-hero {padding:32px 0 40px;}
 .proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);gap:28px;}
 .proposed-hero .hero-sub {font-size:30px;}
 .section-head h2 .script {font-size:64px;}
}
@media(min-width:520px) and (max-width:899.98px) and (max-height:500.98px) {
 .proposed-hero {padding:20px 0 28px;}
 .proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;}
 .proposed-hero .hero-sub {font-size:26px;margin-top:16px;}
 .proposed-hero .hero-trust {margin-top:15px;}
 .proposed-hero .hero-cta {margin-top:15px;}
 .proposed-hero .nearby {margin-top:15px;}
 .section-head {margin-bottom:24px;}
 section {padding-block:40px;}
 .sheet {max-height:calc(100dvh - 24px);}
 .sheet-head {padding-top:14px;padding-bottom:8px;}
 .sheet-head h2 .script {font-size:38px;}
 .sheet-foot {padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));}
}
.header-language {color:var(--bronze);font-size:13px;text-decoration:underline;text-underline-offset:3px;}
@media(max-width:899.98px) {
 .site-header .header-actions {gap:9px;}
 .header-language {font-size:12px;}
}
@media(min-width:900px) {
 .site-header .header-actions>.header-directions {display:inline-flex;white-space:nowrap;}
 .header-inner {gap:12px;}
}
@media(min-width:900px) and (max-width:1099.98px) {
 .nav {gap:14px;}
 .nav a {font-size:12px;}
 .header-actions {gap:8px;}
}
.proposed-hero .hero-sub {font-size:clamp(36px,4.3vw,64px);line-height:1.02;margin:0;}
.proposed-hero .hero-locality {font-size:.61em;margin-top:7px;}
.hero-walkin {margin:12px 0 0;color:var(--ink-2);font-size:14px;line-height:1.45;}
.hero-walkin strong,.hero-walkin span {display:block;}
.hero-walkin strong {color:var(--ink);font-weight:600;}
.proposed-hero .nearby {margin-top:12px;}
.nearby a {text-decoration:underline;text-underline-offset:4px;}
.deck-stage {display:block;width:100%;padding:14px 0 0;border:0;background:none;cursor:pointer;touch-action:pan-y pinch-zoom;user-select:none;}
.deck-front {display:block;margin-right:47px;}
.deck-back-next {right:10px;width:calc(100% - 55px);}
.deck-back img {display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.deck-back-far {width:calc(100% - 53px);background:var(--paper-2);}
.deck-stage:hover .deck-back-next {filter:brightness(1.05);}
.deck-footer {margin-top:12px;margin-right:47px;}
@media(max-width:899.98px) {
 .deck-front,.deck-footer {margin-right:38px;}
 .deck-back-next,.deck-back-far {width:calc(100% - 44px);}
}
.deck-view-all {margin-top:0;padding-top:0;}
@media (min-width:1024px) {
 .proposed-hero .nail-deck {width:91%;margin-inline:auto;}
 /* Center the copy against the image instead of the Instagram link underneath. */
 .proposed-hero .hero-copy {margin-block-end:42px;}
}
.services,.reviews,.visit {--section-space:48px;--heading-gap:20px;}
.services {padding-block:var(--section-space);}
.reviews {padding-block:28px 24px;}
.visit {padding-block:24px var(--section-space);}
:is(.services,.reviews,.visit) .section-head {margin-bottom:var(--heading-gap);}
.reviews .rating-line {
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;
  gap:6px 16px;margin-top:12px;
}
.reviews-link {color:var(--bronze-dark);font-size:14px;letter-spacing:normal;text-underline-offset:3px;}
.skip-link {
  position:fixed;z-index:100;top:10px;left:max(10px,env(safe-area-inset-left));
  transform:translateY(calc(-100% - 16px));
  padding:9px 14px;border-radius:8px;background:var(--paper-2);color:var(--ink);
}
.skip-link:focus {transform:none;}
.visit-card {padding-block:26px;}
.site-footer {padding-block:36px;}
@media(min-width:900px) {
 .services,.reviews,.visit {--section-space:64px;--heading-gap:24px;}
 .reviews {padding-block:36px 32px;}
 .visit {padding-top:32px;}
 .visit-card {padding-block:40px;}
 .site-footer {padding-block:40px;}
}
@media(max-width:899.98px) and (max-height:500.98px) {
 .services,.reviews,.visit {--section-space:40px;}
}
.tile-menu {display:inline-flex;align-items:center;gap:3px;margin-top:auto;padding-top:6px;color:var(--bronze);font-size:13px;font-weight:600;line-height:1.25;}
.tile-menu .icon {width:14px;height:14px;}
.tile:hover .tile-menu,.tile:focus-visible .tile-menu {text-decoration:underline;text-underline-offset:3px;}
.gift-strip {display:flex;align-items:center;gap:15px;max-width:780px;margin:24px auto 0;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);}
.gift-strip .promo-icon {flex:none;margin:0;}
.gift-strip h3 {margin:0;}
.gift-strip p {margin:2px 0 0;color:var(--ink-2);}
.gift-strip .link-arrow {margin:0 0 0 auto;min-height:44px;display:inline-flex;align-items:center;}
.storefront .visit-photo-front {position:relative;z-index:1;display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:48% 48% 10px 10px / 26% 26% 10px 10px;background:var(--sand);pointer-events:none;}
.storefront .visit-photo-front.is-interior {object-position:50% 52%;}
.visit-photo-stack {position:relative;overflow:hidden;border-radius:48% 48% 10px 10px / 26% 26% 10px 10px;background:var(--sand);}
.storefront .visit-photo-front {border-radius:0;}
.visit-photo-toggle {position:absolute;z-index:2;right:12px;bottom:12px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);color:var(--bronze);font:inherit;font-size:13px;cursor:pointer;}
.visit-photo-toggle:hover {border-color:var(--bronze);}
.visit-photo-toggle[hidden] {display:none;}
.visit-photo-toggle:focus-visible {outline:2px solid var(--bronze);outline-offset:1px;}
.visit-closures {margin-top:6px;}
.js-upcoming-closure:not([hidden]) {display:block;font-weight:600;}
@media(max-width:899.98px) {
 .proposed-hero .hero-sub {font-size:clamp(33px,7vw,47px);}
 .proposed-hero .hero-trust {margin-top:13px;}
 .proposed-hero .hero-cta {margin-top:8px;}
 .proposed-hero .nearby {margin-top:3px;}
}
@media(max-width:560px) {
 .gift-strip {display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 11px;padding:12px 14px;}
 .gift-strip .link-arrow {grid-column:2;margin-left:0;}
}
@media(max-width:359.98px) {
 .header-inner,.site-header .header-actions {gap:6px;}
 .header-inner {padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right));}
 .brand-name {font-size:14px;}
 .brand-mark {height:32px;}
 .brand-city {font-size:9px;}
}
.call-action.btn {display:flex;flex-direction:column;justify-content:center;gap:3px;line-height:1.16;white-space:normal;}
.call-action-label {display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.call-action-label .icon {width:16px;height:16px;flex:none;}
.call-action-status {display:block;font-size:11px;font-weight:500;letter-spacing:.01em;}
.call-action-status[hidden] {display:none!important;}
.call-action-status::before {content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#ffc1b5;vertical-align:1px;}
.call-action-status.is-open::before {background:#c4edb9;}
@media(min-width:900px) {
 .site-header .header-call {min-width:158px;min-height:50px;padding:5px 12px;}
 .site-header .header-call .call-action-label {display:inline-flex;}
 .site-header .header-call .call-action-status {display:block;}
}
@media(max-width:899.98px) {
 body {padding-bottom:calc(88px + env(safe-area-inset-bottom));}
 .proposed-bar {grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);}
 .proposed-bar .btn {min-width:0;padding-inline:8px;font-size:14px;}
 .proposed-bar .mobile-call {min-height:56px;padding:6px 8px;text-align:center;}
 .proposed-bar .call-action-label {white-space:nowrap;}
}
@media (min-width:520px) and (max-width:899.98px) and (max-height:500.98px) and (orientation:landscape) {
 .header-inner {height:52px;}
 .brand-mark {height:32px;}
 .proposed-hero {padding:14px 0 22px;}
 .proposed-hero .hero-inner {align-items:start;gap:20px;}
 .proposed-hero .hero-sub {font-size:clamp(30px,10svh,40px);}
 .proposed-hero .hero-locality {margin-top:4px;}
 .hero-walkin {margin-top:8px;line-height:1.35;}
 .proposed-hero .hero-trust {margin-top:8px;}
 .proposed-hero .hero-cta,.proposed-hero .nearby {margin-top:0;}
 .nail-deck {
    --photo-height:clamp(140px, calc(100svh - 180px), 220px);
    align-self:start;
    width:min(100%,calc(var(--photo-height) * 1.2 + 36px));
    padding:0;
  }
 .deck-stage {padding-top:0;}
 .deck-front,.deck-footer {margin-right:36px;}
 .deck-back {top:5px;width:calc(100% - 40px);height:calc(100% - 12px);}
 .deck-footer {margin-top:4px;}
 .proposed-bar {padding-block:6px calc(6px + env(safe-area-inset-bottom));}
 .proposed-bar .mobile-call {min-height:48px;}
 body {padding-bottom:calc(74px + env(safe-area-inset-bottom));}
}
@media (min-width:520px) and (max-width:899.98px) and (max-height:340px) and (orientation:landscape) {
 .proposed-hero {padding-top:8px;}
 .hero-walkin {margin-top:6px;}
}
/* Header: the three-item nav leaves room for the full Directions button at every desktop width. */
@media(min-width:900px) and (max-width:1099.98px) {
 .nav {gap:32px;}
 .nav a {font-size:14px;}
 .header-actions {gap:14px;}
}
@media(min-width:900px) {
 .site-header .header-directions {width:auto;padding:0 18px;}
}
.header-language {display:inline-flex;align-items:center;min-height:44px;padding-inline:6px;font-size:13px;}
/* Phones only show the logo and Español up top, so the name can use the free space. */
@media(max-width:899.98px) {
 .site-header .header-actions {gap:0;}
 .site-header .header-language {font-size:13px;margin-right:-6px;}
 .site-header .brand {gap:10px;}
 .site-header .brand-mark {height:44px;}
 .site-header .brand-name {font-size:clamp(19px,5.4vw,22px);}
 .site-header .brand-city {font-size:11px;}
}
@media (min-width:520px) and (max-width:899.98px) and (max-height:500.98px) and (orientation:landscape) {
 .site-header .brand-mark {height:34px;}
}
/* Soft paper behind the hero copy keeps falling leaves from crossing the text. */
.proposed-hero .hero-copy::before {
 content:"";position:absolute;inset:-28px -40px;z-index:-1;pointer-events:none;
 background:radial-gradient(closest-side,var(--paper) 72%,rgba(246,240,231,0));
}
/* Two columns: the copy sets the row height and the photo fills it, so both columns start and end together. */
.proposed-hero .hero-inner {align-items:stretch;}
.proposed-hero .hero-copy {align-self:center;margin-block:0;}
.proposed-hero .nail-deck {contain:size;align-self:stretch;display:flex;flex-direction:column;}
.proposed-hero .deck-stage {flex:1 1 auto;min-height:0;display:flex;flex-direction:column;}
.proposed-hero .deck-front {flex:1 1 auto;min-height:0;}
.proposed-hero .deck-main-photo {position:absolute;inset:0;height:100%;aspect-ratio:auto;}
.proposed-hero .deck-footer {flex:none;}
.proposed-hero .deck-view-all {align-items:flex-end;padding-bottom:0;}
/* Two columns whenever the copy column has room (560px and up, any height).
   The headline fills its column so the hero spans the same width as the sections below. */
.proposed-hero .hero-copy {container-type:inline-size;}
@media(min-width:560px) {
 .proposed-hero .hero-inner {grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);}
 .proposed-hero .hero-sub {font-size:min(16.6cqi,88px);}
 .proposed-hero .nail-deck {width:100%;max-width:none;margin:0;padding:0;}
}
@media(min-width:560px) and (max-width:899.98px) {
 .proposed-hero .hero-inner {gap:24px;}
}
@media (min-width:520px) and (max-width:899.98px) and (max-height:500.98px) and (orientation:landscape) {
 .proposed-hero .hero-sub {font-size:min(16.6cqi,clamp(30px,10svh,40px));}
 /* short screens: the photo is only as tall as the copy, so narrow it to keep its shape */
 .proposed-hero .nail-deck {width:min(100%,calc(var(--photo-height) + 36px));justify-self:end;}
}
@media(min-width:900px) {
 .hero-walkin {margin-top:18px;font-size:17px;}
 .proposed-hero .hero-trust {margin-top:22px;font-size:16px;}
 .proposed-hero .hero-cta {margin-top:24px;}
 .proposed-hero .nearby {margin-top:14px;font-size:16px;}
 .proposed-hero .deck-footer {margin-top:6px;}
}
@media(min-width:700px) and (max-width:899.98px) and (min-height:501px) {
 .hero-walkin {margin-top:16px;font-size:16px;}
 .proposed-hero .hero-trust {margin-top:18px;font-size:15px;}
 .proposed-hero .hero-cta {margin-top:12px;}
 .proposed-hero .nearby {margin-top:8px;font-size:15px;}
}
/* One column: copy and photo share one width, sized so the whole hero fits above the call bar. */
@media (max-width:559.98px) {
 .proposed-hero {--hero-w:clamp(220px,calc((100svh - 417px) * .97),min(100vw - 40px,330px));padding:16px 0 20px;}
 .proposed-hero .hero-inner {gap:18px;}
 .proposed-hero .nail-deck {width:var(--hero-w);max-width:none;margin-inline:auto;}
 .proposed-hero .hero-sub {font-size:calc(var(--hero-w) * .17);}
 .proposed-hero .nail-deck {contain:none;display:block;padding:0;}
 .proposed-hero .deck-stage {display:block;padding-top:8px;}
 .proposed-hero .deck-front {aspect-ratio:4/3;}
 .proposed-hero .deck-footer {margin-top:4px;}
}
/* ===== Seasons: greeting, mark beside the name, rare moments, pause button ===== */
.brand-text {position:relative;}
.brand-season {position:absolute;left:100%;top:-9px;width:20px;height:20px;margin-left:2px;transform:rotate(12deg);}
.brand-season[hidden],.motion-toggle[hidden] {display:none;}
/* min-height holds the line even with no greeting, so the hero keeps one shape all year */
.hero-greeting {font-size:min(10cqi,44px);line-height:1.15;min-height:1.15em;margin-bottom:2px;}
/* Address and phone share one row; they stack only when the column is too narrow. */
.proposed-hero .nearby {display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;}
.proposed-hero .nearby a {display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.proposed-hero .nearby .icon {width:15px;height:15px;color:var(--bronze);}
@media(min-width:900px) {
 .proposed-hero .hero-trust {margin-top:26px;}
 .proposed-hero .nearby {margin-top:30px;}
}
/* One column: the photo matters more than the greeting, and the call bar already has the phone. */
@media (max-width:559.98px) {
 .hero-greeting,.proposed-hero .nearby .nearby-phone {display:none;}
 .proposed-hero {--hero-w:clamp(210px,calc((100svh - 376px) * .97),min(100vw - 40px,330px));}
 .proposed-hero .nearby {margin-top:14px;}
}
@media (min-width:520px) and (max-width:899.98px) and (max-height:500.98px) and (orientation:landscape) {
 .hero-greeting {font-size:min(10cqi,26px);}
}
.moment {position:fixed;z-index:15;pointer-events:none;}
.moment-sleigh {left:0;z-index:0;width:clamp(170px,20vw,260px);color:#50351F;animation:sleigh-fly 7.5s linear forwards;}
.moment-sleigh img {display:block;width:100%;height:auto;}
.sleigh-bob {position:relative;animation:sleigh-bob 1.6s ease-in-out infinite alternate;}
@keyframes sleigh-fly {
 from {transform:translate(-100%,22px) rotate(-5deg);}
 50% {transform:translate(calc(50vw - 50%),6px) rotate(-1deg);}
 to {transform:translate(100vw,0) rotate(-4deg);}
}
@keyframes sleigh-bob {to {transform:translateY(-8px);}}
.moment-spider {width:26px;margin-left:-13px;color:var(--ink);animation:spider-drop 7s ease-in-out forwards;}
.moment-spider svg {display:block;width:100%;height:auto;transform-origin:50% 0;animation:spider-sway .6s ease-in-out infinite alternate;}
/* the thread runs up behind the sticky header */
.spider-thread {position:absolute;left:50%;bottom:calc(100% - 10px);width:1px;height:100vh;background:rgba(62,46,34,.5);}
@keyframes spider-drop {
 0% {transform:translateY(-44px);}
 28% {transform:translateY(140px);}
 34% {transform:translateY(122px);}
 40%,75% {transform:translateY(132px);}
 100% {transform:translateY(-44px);}
}
@keyframes spider-sway {from {transform:rotate(-7deg);} to {transform:rotate(7deg);}}
/* A rising gold spark reaches the burst center before the palm-like bloom. */
.moment-fireworks {left:0;top:0;color:#B58A42;}
.burst {position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);}
.burst svg {display:block;width:100%;height:100%;opacity:0;fill:none;stroke:currentColor;stroke-width:.85;stroke-linecap:round;animation:burst-bloom 2.3s cubic-bezier(.16,.65,.3,1) calc(var(--d) + 1.5s) forwards;}
.burst circle {fill:currentColor;stroke:none;}
.burst-launch {position:absolute;left:50%;top:50%;width:2px;height:28px;border-radius:2px;background:linear-gradient(to bottom,currentColor,transparent);opacity:0;transform-origin:50% 0;animation:burst-launch 1.5s cubic-bezier(.18,.45,.4,1) var(--d) both;}
.burst-launch::before {content:"";position:absolute;left:-1px;top:-2px;width:4px;height:4px;border-radius:50%;background:currentColor;}
@keyframes burst-launch {
  0% {opacity:0;transform:translate(-50%,var(--rise)) scaleY(.4);}
  12% {opacity:.95;}
  85% {opacity:1;}
  100% {opacity:0;transform:translate(-50%,0) scaleY(.15);}
}
@keyframes burst-bloom {
  0% {opacity:0;transform:scale(.06);}
  12% {opacity:.95;}
  50% {opacity:.85;transform:scale(.88);}
  100% {opacity:0;transform:translateY(5px) scale(1);}
}
/* Spring: a butterfly flutters across under the header, head first, bobbing like a real one */
.moment-butterfly {left:0;width:44px;animation:butterfly-fly 11s ease-in-out forwards;}
.moment-butterfly svg {display:block;width:100%;height:auto;overflow:visible;}
.moment-butterfly .wing {transform-box:view-box;transform-origin:24px 18px;animation:wing-flap .16s ease-in-out infinite alternate;}
@keyframes wing-flap {to {transform:scaleX(.3);}}
@keyframes butterfly-fly {
 0% {transform:translate(-60px,30px) rotate(80deg);}
 8% {transform:translate(8vw,12px) rotate(100deg);}
 16% {transform:translate(15vw,34px) rotate(75deg);}
 24% {transform:translate(24vw,8px) rotate(95deg);}
 32% {transform:translate(30vw,26px) rotate(110deg);}
 40% {transform:translate(38vw,4px) rotate(80deg);}
 50% {transform:translate(48vw,22px) rotate(98deg);}
 60% {transform:translate(57vw,0) rotate(78deg);}
 70% {transform:translate(66vw,28px) rotate(105deg);}
 80% {transform:translate(76vw,10px) rotate(85deg);}
 90% {transform:translate(88vw,30px) rotate(100deg);}
 100% {transform:translate(calc(100vw + 60px),14px) rotate(90deg);}
}
/* Mother's Day: a bouquet takes the gift icon's place, right beside "Gift cards" */
.gift-strip .gift-bouquet {flex:none;width:40px;height:46px;}
.footer-motion {margin-top:6px;}
.motion-toggle {min-height:44px;padding:0 8px;border:0;background:none;cursor:pointer;font-size:12px;letter-spacing:.08em;color:var(--bronze-dark);text-decoration:underline;text-underline-offset:3px;}
/* Spanish labels run longer: keep the open status on one line and give the header a little room */
.call-action-status {white-space:nowrap;}
@media(min-width:900px) and (max-width:1099.98px) {
 html[lang="es"] .nav {gap:20px;}
}
@media(max-width:359.98px) {
 .proposed-bar .btn {font-size:13px;gap:6px;}
}

/* Hero ornaments: a fine rule with a diamond under the greeting, short fading rules either side of "Walk-ins welcome".
   Sized in em so they scale with the text; the greeting's rule hides with it on one-column screens. */
.hero-greeting::after {
 content:"";display:block;width:5.4em;max-width:100%;aspect-ratio:240/14;margin:.2em auto .12em;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 14'%3E%3Cdefs%3E%3ClinearGradient id='a'%3E%3Cstop offset='0' stop-color='%23B08D67' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23B08D67'/%3E%3C/linearGradient%3E%3ClinearGradient id='b'%3E%3Cstop offset='0' stop-color='%23B08D67'/%3E%3Cstop offset='1' stop-color='%23B08D67' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='4' y='6.5' width='96' height='1' fill='url(%23a)'/%3E%3Crect x='140' y='6.5' width='96' height='1' fill='url(%23b)'/%3E%3Ccircle cx='107' cy='7' r='1.3' fill='%23B08D67'/%3E%3Ccircle cx='133' cy='7' r='1.3' fill='%23B08D67'/%3E%3Cpath d='M120 2.2l4.8 4.8-4.8 4.8-4.8-4.8z' fill='%23C9A45C'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hero-walkin strong {display:flex;align-items:center;justify-content:center;gap:.75em;}
.hero-walkin strong::before,.hero-walkin strong::after {content:"";flex:none;width:2.4em;height:1px;background:linear-gradient(90deg,rgba(176,141,103,0),#B08D67);}
.hero-walkin strong::after {transform:scaleX(-1);}
/* the July 4 flag stands upright on its pole instead of the tilt the other marks use */
html[data-season="july4"] .brand-season {transform:none;top:-5px;width:27px;height:18px;margin-left:4px;}
