/* =========================================================
   AURA BARBERSHOP — interior matched design system
   Palette: architectural black, warm white, soft concrete gray,
   natural brass gold, and warm oak inspired neutrals.
   Type: Cormorant Garamond (display) + Jost (body/utility)
   ========================================================= */

:root{
  --espresso: #121416;
  --espresso-2: #1D2022;
  --cream: #F2F0EB;
  --cream-2: #FCFBF8;
  --rose: #A89D8D;
  --rose-deep: #887C6C;
  --wine: #25282A;
  --gold: #C7A15B;
  --gold-light: #E2C27C;
  --gold-deep: #9A7436;
  --ink: #191B1C;
  --ink-soft: #626466;
  --line: rgba(25,27,28,0.13);
  --line-on-dark: rgba(226,194,124,0.28);

  --display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --body: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --container: 1240px;
  --radius-arch: 220px 220px 8px 8px;
  --shadow-soft: 0 18px 40px rgba(42,33,29,0.14);
  --shadow-card: 0 10px 28px rgba(42,33,29,0.10);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

body{
  margin: 0;
  font-family: var(--body);
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
ul{ margin: 0; padding: 0; list-style: none; }
h1,h2,h3,h4{ font-family: var(--display); font-weight: 600; margin: 0; color: var(--ink); }
p{ margin: 0; }
button{ font-family: var(--body); cursor: pointer; }

:focus-visible{
  outline: 2px solid var(--gold-deep);
  outline-offset: 3px;
}

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}

.eyebrow{
  font-family: var(--body);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--gold-deep);
  font-weight: 500;
}

.section{ padding: 108px 0; }
.section.tight{ padding: 72px 0; }
.section.on-dark{ background: var(--espresso); color: var(--cream-2); }
.section.on-dark h2, .section.on-dark h3{ color: var(--cream-2); }
.section.on-rose{ background: var(--rose); color: #fff; }
.section.on-rose h2, .section.on-rose h3{ color: var(--ink); }

.center{ text-align: center; }
.mx-auto{ margin-left: auto; margin-right: auto; }

.lede{
  font-size: 19px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 620px;
}
.on-dark .lede{ color: rgba(251,247,241,0.78); }

/* ---------- Buttons ---------- */
.btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  border-radius: 2px;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 500;
  border: 1px solid transparent;
  transition: transform .35s ease, background .35s ease, color .35s ease, border-color .35s ease;
}
.btn.primary{
  background: linear-gradient(120deg, var(--gold-light), var(--gold-deep));
  color: var(--espresso);
}
.btn.primary:hover{ transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.btn.ghost{
  border-color: var(--line-on-dark);
  color: inherit;
  background: transparent;
}
.btn.ghost:hover{ border-color: var(--gold); background: rgba(228,192,142,0.08); }
.btn.wine{
  background: var(--wine);
  color: #fff;
}
.btn.wine:hover{ background: #59202D; transform: translateY(-2px); }
.btn.block{ width: 100%; justify-content: center; }

/* =========================================================
   HEADER  (tone A: espresso)
   ========================================================= */
.site-header{
  background: var(--espresso);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--line-on-dark);
}
.site-header .container{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 108px;
}
.brand-mark{ display: inline-flex; align-items: center; height: 66px; width: auto; line-height: 0; }
.brand-mark img{ height: 100%; width: auto; display: block; }

.main-nav{ display: flex; align-items: center; gap: 40px; }
.main-nav ul{ display: flex; gap: 34px; }
.main-nav a{
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(251,247,241,0.82);
  padding-bottom: 6px;
  border-bottom: 1px solid transparent;
  transition: color .3s ease, border-color .3s ease;
}
.main-nav a:hover, .main-nav a[aria-current="page"]{
  color: var(--gold-light);
  border-color: var(--gold);
}
.header-cta{ display:flex; align-items:center; gap: 22px; }
.header-phone{
  font-family: var(--display);
  font-size: 22px;
  font-weight: 600;
  color: var(--cream-2);
  letter-spacing: 0.03em;
}
.header-phone span{ display:block; font-family: var(--body); font-size: 10.5px; letter-spacing: 0.2em; color: var(--gold); text-transform: uppercase; margin-top: 2px; }

.nav-toggle{
  display: none;
  background: none;
  border: 1px solid var(--line-on-dark);
  padding: 8px 10px;
  border-radius: 2px;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content: "";
  display: block;
  width: 20px;
  height: 1.5px;
  background: var(--cream-2);
  position: relative;
  transition: transform .3s ease;
}
.nav-toggle span::before{ position:absolute; top:-7px; }
.nav-toggle span::after{ position:absolute; top:7px; }

/* =========================================================
   FOOTER  (tone B: dusty rose)
   ========================================================= */
.site-footer{
  background: #2B2E30;
  color: var(--cream-2);
  padding: 80px 0 28px;
}
.footer-grid{
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 52px;
  border-bottom: 1px solid rgba(255,255,255,0.28);
}
.footer-brand{ padding-right: 24px; }
.footer-brand .brand-mark{ height: 44px; margin-bottom: 20px; }
.footer-brand p{ color: rgba(255,255,255,0.85); line-height: 1.7; max-width: 300px; }
.footer-col h4{
  font-family: var(--body);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 20px;
  font-weight: 500;
}
.footer-col ul{ display: flex; flex-direction: column; gap: 12px; }
.footer-col li{ color: rgba(255,255,255,0.86); font-size: 14.5px; line-height: 1.5; }
.footer-col a:hover{ color: var(--gold-light); }
.footer-bottom{
  display:flex;
  justify-content: space-between;
  align-items:center;
  padding-top: 24px;
  font-size: 12.5px;
  color: rgba(255,255,255,0.75);
  flex-wrap: wrap;
  gap: 10px;
}
.footer-bottom a:hover{ color: #fff; }

/* =========================================================
   ARCH FRAME — signature visual device (echoes the salon's
   arched mirrors) used for every spotlighted photo.
   ========================================================= */
.arch-frame{
  position: relative;
  border-radius: var(--radius-arch);
  overflow: hidden;
  background: var(--espresso);
  box-shadow: var(--shadow-card);
}
.arch-frame::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--radius-arch);
  border: 1px solid rgba(228,192,142,0.55);
  pointer-events: none;
}
.arch-frame img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.arch-frame:hover img{ transform: scale(1.06); }

/* =========================================================
   HERO (page top banners)
   ========================================================= */
.hero{
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  color: #fff;
  background: var(--espresso);
  overflow: hidden;
}
.hero .hero-bg{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .92;
}
.hero .hero-bg.contain-light{ opacity: .42; }
 .hero::before{
  content:"";
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(12,14,15,0.82) 0%, rgba(12,14,15,0.58) 38%, rgba(12,14,15,0.18) 68%, rgba(12,14,15,0.34) 100%),
    linear-gradient(180deg, rgba(12,14,15,0.10) 0%, rgba(12,14,15,0.36) 100%);
}
.hero-inner{ position: relative; z-index: 2; padding: 120px 0 90px; }
.hero .eyebrow{ color: var(--gold-light); }
.hero h1{
  font-size: clamp(46px, 6.4vw, 92px);
  line-height: 1.02;
  margin: 18px 0 22px;
  color: #fff;
}
.hero h1 em{ font-style: italic; color: var(--gold-light); }
.hero p.lede{ color: rgba(251,247,241,0.86); max-width: 560px; }
.hero-actions{ display: flex; gap: 18px; margin-top: 38px; flex-wrap: wrap; }

.page-hero{ min-height: 46vh; }
.page-hero .hero-inner{ padding: 96px 0 64px; }
.page-hero h1{ font-size: clamp(38px, 5vw, 62px); }


.shop-space-frame{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: var(--espresso);
  box-shadow: var(--shadow-card);
  aspect-ratio: 16 / 9;
}
.shop-space-frame::after{
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(199,161,91,0.42);
  border-radius: 12px;
  pointer-events: none;
}
.shop-space-frame img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.shop-space-frame:hover img{ transform: scale(1.025); }

/* =========================================================
   HOME — intro split
   ========================================================= */
.split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.split .arch-frame{ aspect-ratio: 4 / 5; }
.split h2{ font-size: clamp(32px, 3.6vw, 46px); margin: 14px 0 22px; }
.split .lede{ margin-bottom: 26px; }

.signature-line{
  display:flex; align-items:center; gap: 14px; margin-top: 30px;
}
.signature-line img{ height: 46px; width: auto; }
.signature-line .sig-text{ font-family: var(--display); font-style: italic; font-size: 20px; color: var(--ink-soft); }

/* Features */
.feature-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-top: 56px;
}
.feature-card{
  background: var(--cream-2);
  border: 1px solid var(--line);
  padding: 34px 28px;
  border-radius: 6px;
  transition: transform .35s ease, box-shadow .35s ease;
}
.feature-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-card); }
.feature-card .num{ font-family: var(--display); font-size: 15px; color: var(--gold-deep); letter-spacing: .1em; }
.feature-card h3{ font-size: 22px; margin: 14px 0 10px; }
.feature-card p{ color: var(--ink-soft); font-size: 14.5px; line-height: 1.65; }
.feature-icon{ width: 36px; height: 36px; color: var(--gold-deep); margin-bottom: 6px; }

/* Spotlight strip */
.spotlight-head{
  display:flex; justify-content: space-between; align-items:flex-end; gap: 24px; margin-bottom: 46px; flex-wrap: wrap;
}
.spotlight-row{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.spotlight-row .arch-frame{ aspect-ratio: 3/4; }
.spotlight-cap{ margin-top: 14px; text-align:center; }
.spotlight-cap .name{ font-family: var(--display); font-size: 19px; }
.spotlight-cap .tag{ font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-deep); margin-top: 3px; }

/* Testimonial */
.testimonial{
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.testimonial blockquote{
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.5;
  color: #fff;
}
.testimonial cite{ display:block; margin-top: 26px; font-style: normal; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: #6C5632; }

/* CTA banner */
.cta-banner{
  position: relative;
  min-height: 46vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:#fff; overflow:hidden;
}
.cta-banner .hero-bg{ position:absolute; inset:0; background-size:cover; background-position: center 20%; }
.cta-banner::before{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(36,28,24,0.55), rgba(36,28,24,0.86)); }
.cta-banner .inner{ position:relative; z-index:2; max-width: 640px; padding: 0 24px; }
.cta-banner h2{ color:#fff; font-size: clamp(30px,4vw,50px); margin-bottom: 20px; }

/* =========================================================
   SERVICES
   ========================================================= */
.services-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.service-card{
  background: var(--cream-2);
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-card);
  display:flex; flex-direction:column;
}
.service-card .thumb{ aspect-ratio: 16/11; overflow:hidden; }
.service-card .thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.service-card:hover .thumb img{ transform: scale(1.07); }
.service-card .body{ padding: 26px 26px 30px; flex:1; display:flex; flex-direction:column; }
.service-card h3{ font-size: 24px; margin-bottom: 10px; }
.service-card p{ color: var(--ink-soft); font-size: 14.5px; line-height: 1.65; flex:1; }
.service-card .meta{
  margin-top: 18px; padding-top: 16px; border-top: 1px dotted var(--line);
  display:flex; justify-content:space-between; align-items:center;
  font-size: 11.5px; letter-spacing:.14em; text-transform:uppercase; color: var(--gold-deep);
}
.service-card.featured{ grid-column: span 2; }
.service-card.featured .thumb{ aspect-ratio: 21/9; }

.note-strip{
  margin-top: 54px;
  padding: 26px 32px;
  border: 1px dashed var(--gold);
  border-radius: 6px;
  background: rgba(201,166,107,0.08);
  color: var(--ink-soft);
  font-size: 14.5px;
  text-align: center;
}

/* Rates sign on the Services page — styled like a framed price plaque */
.rate-sign{
  margin-top: 90px;
  background: var(--espresso);
  border-radius: 10px;
  padding: 3px;
  background-image: linear-gradient(135deg, rgba(228,192,142,0.55), rgba(139,107,67,0.35));
  box-shadow: var(--shadow-soft);
}
.rate-sign-inner{
  background: var(--espresso);
  border: 1px solid rgba(228,192,142,0.4);
  border-radius: 8px;
  padding: 56px 48px 44px;
  text-align: center;
}
.rate-sign-crest{ height: 30px; width: auto; margin: 0 auto 14px; display: block; opacity: 0.9; }
.rate-sign h2{
  color: var(--cream-2);
  font-size: 32px;
  letter-spacing: .04em;
}
.rate-sign-sub{
  color: var(--gold);
  font-size: 11.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-top: 8px;
}

.rate-menu{
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(5, auto);
  grid-auto-flow: column;
  column-gap: 56px;
  text-align: left;
  max-width: 920px;
  margin: 44px auto 0;
  padding-top: 36px;
  border-top: 1px solid rgba(228,192,142,0.25);
}
.rate-line{
  display: flex;
  align-items: baseline;
  margin-bottom: 22px;
}
.rate-line:last-child{ margin-bottom: 0; }
.rate-name{
  font-family: var(--display);
  font-size: 18px;
  color: var(--cream-2);
  white-space: nowrap;
  flex-shrink: 0;
}
.rate-time{
  display: block;
  font-family: var(--body);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(251,247,241,0.5);
  margin-top: 3px;
}
.rate-leader{
  flex: 1;
  margin: 0 10px;
  align-self: flex-end;
  height: 0;
  border-bottom: 1px dotted rgba(228,192,142,0.4);
  transform: translateY(-6px);
}
.rate-price{
  font-family: var(--display);
  font-size: 19px;
  font-weight: 600;
  color: var(--gold-light);
  flex-shrink: 0;
}

.rate-sign-note{
  max-width: 640px;
  margin: 40px auto 0;
  font-size: 13px;
  color: rgba(251,247,241,0.55);
  line-height: 1.7;
}

@media (max-width: 760px){
  .rate-sign{ margin-top: 56px; }
  .rate-sign-inner{ padding: 40px 22px 34px; }
  .rate-sign h2{ font-size: 26px; }
  .rate-menu{ grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; margin-top: 34px; padding-top: 28px; }
  .rate-line{ margin-bottom: 20px; flex-wrap: wrap; }
  .rate-name{ font-size: 16.5px; white-space: normal; flex: 1 0 100%; }
  .rate-leader{ display: none; }
  .rate-price{ flex-shrink: 0; margin-top: 6px; font-size: 21px; }
}

/* =========================================================
   STYLE / GALLERY page
   ========================================================= */
.gallery-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.gallery-grid.wide{ grid-template-columns: repeat(3, 1fr); }
.gallery-item{ position: relative; }
.gallery-item .arch-frame{ aspect-ratio: 3/4; cursor: zoom-in; }
.gallery-item.tall .arch-frame{ aspect-ratio: 3/4.6; }
.gallery-item.wide-frame .arch-frame{ aspect-ratio: 16/9; border-radius: 14px 14px 8px 8px; }
.gallery-cap{ margin-top: 12px; text-align: center; }
.gallery-cap .name{ font-family: var(--display); font-size: 18px; }
.gallery-cap .tag{ font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-deep); }

.section-divider{
  display:flex; align-items:center; gap: 18px; margin: 90px 0 46px;
}
.section-divider .line{ flex:1; height:1px; background: var(--line); }
.section-divider span{ font-family: var(--display); font-style: italic; font-size: 22px; color: var(--ink-soft); white-space: nowrap; }

/* Lightbox */
.lightbox{
  position: fixed; inset: 0; z-index: 300;
  background: rgba(36,28,24,0.92);
  display: none;
  align-items: center; justify-content: center;
  padding: 40px;
}
.lightbox.open{ display: flex; }
.lightbox figure{ margin:0; max-width: 900px; width: 100%; text-align:center; }
.lightbox img{ max-height: 78vh; margin: 0 auto; border-radius: 10px; }
.lightbox figcaption{ color: var(--cream-2); margin-top: 18px; font-family: var(--display); font-size: 20px; }
.lightbox-close{
  position: absolute; top: 28px; right: 34px;
  background: none; border: 1px solid var(--line-on-dark); color: #fff;
  width: 42px; height: 42px; border-radius: 50%; font-size: 18px;
}
.lightbox-nav{
  background: none; border: 1px solid var(--line-on-dark); color: #fff;
  width: 46px; height: 46px; border-radius: 50%; font-size: 18px; margin: 0 22px;
}

/* =========================================================
   CONTACT
   ========================================================= */
.contact-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.contact-card{
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 44px;
  box-shadow: var(--shadow-card);
}
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field{ margin-bottom: 22px; }
.field label{
  display:block; font-size: 12px; letter-spacing:.12em; text-transform:uppercase;
  color: var(--ink-soft); margin-bottom: 8px;
}
.field input, .field select, .field textarea{
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  padding: 13px 15px;
  font-family: var(--body);
  font-size: 15px;
  color: var(--ink);
  transition: border-color .25s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--gold-deep); }
.field textarea{ resize: vertical; min-height: 100px; }
.form-actions{ display:flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.form-note{ font-size: 12.5px; color: var(--ink-soft); margin-top: 16px; line-height: 1.6; }
.field-hint{ font-size: 12.5px; color: var(--ink-soft); margin: 8px 0 0; }
.field select:disabled{ background: rgba(42,33,29,0.04); color: var(--ink-soft); cursor: not-allowed; }

.info-card{
  background: var(--espresso);
  color: var(--cream-2);
  border-radius: 10px;
  padding: 48px 44px;
  margin-bottom: 30px;
}
.info-card h3{
  color:#fff;
  font-size: 26px;
  margin-bottom: 34px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line-on-dark);
}
.info-row{
  display:flex;
  gap: 20px;
  align-items:flex-start;
  padding: 20px 0;
  border-bottom: 1px solid rgba(228,192,142,0.14);
}
.info-row:first-of-type{ padding-top: 0; }
.info-row:last-of-type{ border-bottom: none; padding-bottom: 0; }
.info-row .ic{ width: 24px; height:24px; color: var(--gold-light); margin-top: 2px; flex-shrink:0; }
.info-row .txt{ font-size: 16px; line-height: 1.8; color: rgba(251,247,241,0.88); }
.info-row .txt .label{
  display:block; font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 6px;
}
.info-row a:hover{ color: var(--gold-light); }
.map-frame{ border-radius: 10px; overflow: hidden; border: 1px solid var(--line); }
.map-frame iframe{ width: 100%; height: 300px; border: 0; display:block; }

.hours-list{ display:flex; flex-direction:column; gap: 4px; }
.hours-list li{ font-size: 16px; color: rgba(251,247,241,0.88); line-height: 1.7; }
.hours-list li span:last-child{ color: var(--gold-light); }

/* =========================================================
   Reveal on scroll
   ========================================================= */
.reveal{ opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity: 1; transform: translateY(0); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1080px){
  .feature-grid{ grid-template-columns: repeat(2,1fr); }
  .spotlight-row{ grid-template-columns: repeat(2,1fr); }
  .services-grid{ grid-template-columns: repeat(2,1fr); }
  .service-card.featured{ grid-column: span 2; }
  .gallery-grid{ grid-template-columns: repeat(3,1fr); }
  .gallery-grid.wide{ grid-template-columns: repeat(2,1fr); }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 860px){
  .main-nav{ position: fixed; inset: 108px 0 0 0; background: var(--espresso); flex-direction: column; align-items:flex-start; padding: 34px 32px; gap: 30px; transform: translateX(100%); transition: transform .4s ease; }
  .main-nav.open{ transform: translateX(0); }
  .main-nav ul{ flex-direction: column; gap: 22px; }
  .main-nav a{ font-size: 16px; }
  .nav-toggle{ display: block; }
  .header-phone{ display:none; }
  .split{ grid-template-columns: 1fr; gap: 40px; }
  .split .arch-frame, .split .shop-space-frame{ order: -1; }
  .gallery-grid{ grid-template-columns: repeat(2,1fr); }
  .gallery-grid.wide{ grid-template-columns: 1fr; }
  .spotlight-row{ grid-template-columns: 1fr 1fr; }
  .section{ padding: 76px 0; }
}

@media (max-width: 560px){
  .container{ padding: 0 20px; }
  .feature-grid{ grid-template-columns: 1fr; }
  .services-grid{ grid-template-columns: 1fr; }
  .service-card.featured{ grid-column: span 1; }
  .gallery-grid{ grid-template-columns: repeat(2,1fr); }
  .form-row{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr; gap: 32px; }
  .hero-actions{ flex-direction: column; align-items: stretch; }
  .hero-actions .btn{ justify-content:center; }
}


/* Simple contact form helpers */
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.form-success{color:#2f6b3b!important;font-weight:600;}
.form-error{color:#9f2734!important;font-weight:600;}

/* Contact send methods, consent, and confirmation */
.privacy-consent{
  margin: 2px 0 18px;
  padding: 16px 18px;
  background: rgba(184,133,72,0.07);
  border: 1px solid var(--line);
  border-radius: 6px;
}
.consent-label{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  cursor: pointer;
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--ink-soft);
}
.consent-label input{
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--gold-deep);
  flex: 0 0 auto;
}
.contact-send-actions .btn{
  min-width: 160px;
  justify-content: center;
}
.contact-modal[hidden]{ display:none!important; }
.contact-modal{
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.contact-modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(28,22,19,0.78);
  backdrop-filter: blur(4px);
}
.contact-modal-panel{
  position: relative;
  z-index: 1;
  width: min(620px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 36px;
  box-shadow: 0 28px 80px rgba(28,22,19,0.34);
}
.contact-modal-panel h2{
  font-size: 34px;
  margin: 4px 0 10px;
}
.contact-modal-panel > p:not(.eyebrow){
  color: var(--ink-soft);
  line-height: 1.7;
}
.contact-modal-close{
  position: absolute;
  top: 16px;
  right: 18px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  font-size: 24px;
  line-height: 1;
}
.contact-modal-summary{
  margin: 24px 0;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.contact-modal-summary-row{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(42,33,29,0.08);
  font-size: 14px;
  line-height: 1.55;
  word-break: break-word;
}
.contact-modal-summary-row:last-child{ border-bottom:0; }
.contact-modal-summary-label{
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.contact-modal-actions{
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.contact-modal-actions .btn:disabled{
  opacity: .62;
  cursor: wait;
}
@media (max-width: 560px){
  .contact-send-actions .btn{ width:100%; }
  .contact-modal{ padding:16px; }
  .contact-modal-panel{ padding:30px 20px 22px; }
  .contact-modal-panel h2{ font-size:28px; }
  .contact-modal-summary-row{ grid-template-columns:1fr; gap:4px; }
  .contact-modal-actions .btn{ width:100%; justify-content:center; }
}


/* V11 IMAGE TEXT LEGIBILITY AND REFINED HERO TYPOGRAPHY */
.hero::before{background:linear-gradient(90deg,rgba(10,12,13,.82) 0%,rgba(10,12,13,.62) 34%,rgba(10,12,13,.22) 64%,rgba(10,12,13,.42) 100%),linear-gradient(180deg,rgba(8,10,11,.16) 0%,rgba(8,10,11,.48) 100%);}
.hero-inner{text-shadow:0 2px 18px rgba(0,0,0,.38);}
.hero .eyebrow{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:rgba(10,12,13,.32);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);text-shadow:0 1px 8px rgba(0,0,0,.55);}
.hero h1{font-weight:500;letter-spacing:-.025em;text-wrap:balance;text-shadow:0 3px 24px rgba(0,0,0,.52);}
.hero h1 em{font-weight:400;letter-spacing:-.02em;}
.hero p.lede{color:rgba(255,255,255,.94);text-shadow:0 2px 12px rgba(0,0,0,.62);}
.home-hero-copy{max-width:690px;padding:30px 34px 32px;margin-left:-34px;border-radius:16px;background:linear-gradient(90deg,rgba(10,12,13,.48),rgba(10,12,13,.24) 70%,rgba(10,12,13,0));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
.hero-title-smooth{font-size:clamp(48px,6vw,86px)!important;line-height:1.01!important;font-weight:400!important;letter-spacing:-.035em!important;}
.hero-title-smooth .soft-accent{color:var(--gold-light);font-style:italic;font-weight:400;}
.page-hero .hero-inner{max-width:850px;}
.page-hero h1{text-shadow:0 3px 22px rgba(0,0,0,.58);}
.cta-banner::before{background:linear-gradient(180deg,rgba(10,12,13,.54),rgba(10,12,13,.86));}
.cta-banner .inner{padding:32px 36px;border-radius:16px;background:rgba(10,12,13,.28);border:1px solid rgba(255,255,255,.10);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);text-shadow:0 2px 14px rgba(0,0,0,.55);}
.cta-banner .inner .eyebrow,.cta-banner .inner p{color:rgba(255,255,255,.94);}
@media(max-width:720px){.home-hero-copy{margin-left:-14px;padding:24px 18px 26px}.hero-title-smooth{font-size:clamp(42px,13vw,64px)!important}.cta-banner .inner{padding:26px 20px}}

/* V12 DIRECT VAGARO BOOKING */
.book-now-btn{white-space:nowrap;box-shadow:0 8px 24px rgba(196,153,83,.20);}
.book-now-btn::after{content:"↗";font-size:.88em;margin-left:8px;line-height:1;}
.book-now-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(196,153,83,.28);}
@media(max-width:760px){.header-cta .book-now-btn{padding:10px 14px;font-size:12px}.book-now-btn::after{margin-left:5px}}


/* V13 CONTACT HERO CONTRAST */
.contact-page-hero::before{
  background:
    linear-gradient(90deg,rgba(8,10,11,.92) 0%,rgba(8,10,11,.78) 38%,rgba(8,10,11,.38) 67%,rgba(8,10,11,.52) 100%),
    linear-gradient(180deg,rgba(8,10,11,.18) 0%,rgba(8,10,11,.58) 100%);
}
.contact-page-hero .hero-bg{opacity:.86;}
.contact-page-hero .hero-inner{max-width:920px;}
.contact-hero-copy{
  max-width:700px;
  padding:30px 34px 32px;
  margin-left:-34px;
  border-radius:18px;
  background:linear-gradient(110deg,rgba(8,10,11,.74),rgba(8,10,11,.46) 70%,rgba(8,10,11,.10));
  border-left:3px solid rgba(216,177,105,.86);
  box-shadow:0 18px 46px rgba(0,0,0,.18);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.contact-page-hero .eyebrow{
  color:#17191a;
  background:linear-gradient(135deg,#ead29d,#c89d52);
  border-color:rgba(255,255,255,.24);
  text-shadow:none;
  font-weight:700;
  letter-spacing:.13em;
}
.contact-page-hero h1{
  margin-top:20px;
  color:#e3be78;
  font-weight:400;
  letter-spacing:-.025em;
  text-shadow:0 3px 24px rgba(0,0,0,.68);
}
.contact-page-hero h1 span{color:#f0d7a4;}
.contact-page-hero h1 em{
  color:#fffaf0;
  font-weight:400;
  text-shadow:0 3px 24px rgba(0,0,0,.78);
}
.contact-page-hero p.lede{
  color:#f4e7cf;
  max-width:620px;
  font-weight:500;
  line-height:1.72;
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}
@media(max-width:720px){
  .contact-page-hero .hero-inner{padding:82px 0 52px;}
  .contact-hero-copy{margin-left:0;padding:24px 20px 26px;border-left-width:2px;}
  .contact-page-hero h1{font-size:clamp(40px,12vw,56px);}
}


/* V14 SERVICES HERO CONTRAST */
.services-page-hero::before{
  background:
    linear-gradient(90deg,rgba(8,10,11,.92) 0%,rgba(8,10,11,.79) 38%,rgba(8,10,11,.34) 68%,rgba(8,10,11,.48) 100%),
    linear-gradient(180deg,rgba(8,10,11,.18) 0%,rgba(8,10,11,.56) 100%);
}
.services-page-hero .hero-bg{opacity:.87;}
.services-page-hero .hero-inner{max-width:920px;}
.services-hero-copy{
  max-width:720px;
  padding:30px 34px 32px;
  margin-left:-34px;
  border-radius:18px;
  background:linear-gradient(110deg,rgba(8,10,11,.76),rgba(8,10,11,.47) 70%,rgba(8,10,11,.10));
  border-left:3px solid rgba(216,177,105,.86);
  box-shadow:0 18px 46px rgba(0,0,0,.18);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.services-page-hero .eyebrow{
  color:#17191a;
  background:linear-gradient(135deg,#ead29d,#c89d52);
  border-color:rgba(255,255,255,.24);
  text-shadow:none;
  font-weight:700;
  letter-spacing:.13em;
}
.services-page-hero h1{
  margin-top:20px;
  color:#e3be78;
  font-weight:400;
  letter-spacing:-.025em;
  text-shadow:0 3px 24px rgba(0,0,0,.68);
}
.services-page-hero h1 span{color:#f0d7a4;}
.services-page-hero h1 em{
  color:#fffaf0;
  font-weight:400;
  text-shadow:0 3px 24px rgba(0,0,0,.78);
}
.services-page-hero p.lede{
  color:#f4e7cf;
  max-width:640px;
  font-weight:500;
  line-height:1.72;
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}
@media(max-width:720px){
  .services-page-hero .hero-inner{padding:82px 0 52px;}
  .services-hero-copy{margin-left:0;padding:24px 20px 26px;border-left-width:2px;}
  .services-page-hero h1{font-size:clamp(40px,12vw,56px);}
}


/* V15 STYLE HERO CONTRAST */
.style-page-hero::before{
  background:
    linear-gradient(90deg,rgba(8,10,11,.92) 0%,rgba(8,10,11,.78) 38%,rgba(8,10,11,.32) 67%,rgba(8,10,11,.50) 100%),
    linear-gradient(180deg,rgba(8,10,11,.16) 0%,rgba(8,10,11,.58) 100%);
}
.style-page-hero .hero-bg{opacity:.88;}
.style-page-hero .hero-inner{max-width:920px;}
.style-hero-copy{
  max-width:700px;
  padding:30px 34px 32px;
  margin-left:-34px;
  border-radius:18px;
  background:linear-gradient(110deg,rgba(8,10,11,.75),rgba(8,10,11,.46) 70%,rgba(8,10,11,.10));
  border-left:3px solid rgba(216,177,105,.86);
  box-shadow:0 18px 46px rgba(0,0,0,.18);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.style-page-hero .eyebrow{
  color:#17191a;
  background:linear-gradient(135deg,#ead29d,#c89d52);
  border-color:rgba(255,255,255,.24);
  text-shadow:none;
  font-weight:700;
  letter-spacing:.13em;
}
.style-page-hero h1{
  margin-top:20px;
  color:#e3be78;
  font-weight:400;
  letter-spacing:-.025em;
  text-shadow:0 3px 24px rgba(0,0,0,.68);
}
.style-page-hero h1 span{color:#f0d7a4;}
.style-page-hero h1 em{
  color:#fffaf0;
  font-weight:400;
  text-shadow:0 3px 24px rgba(0,0,0,.78);
}
.style-page-hero p.lede{
  color:#f4e7cf;
  max-width:620px;
  font-weight:500;
  line-height:1.72;
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}
@media(max-width:720px){
  .style-page-hero .hero-inner{padding:82px 0 52px;}
  .style-hero-copy{margin-left:0;padding:24px 20px 26px;border-left-width:2px;}
  .style-page-hero h1{font-size:clamp(40px,12vw,56px);}
}


/* =========================================================
   V17 SOCIAL MEDIA, REVIEWS AND SHARE
   ========================================================= */
.footer-social{margin-top:24px;}
.footer-social-title{
  margin:0 0 12px !important;
  font-size:11px;
  line-height:1.2 !important;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold-light) !important;
}
.social-icons{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.social-icon{
  width:40px;
  height:40px;
  padding:0;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.92);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease;
}
.social-icon:hover,.social-icon:focus-visible{
  transform:translateY(-2px);
  background:var(--gold);
  border-color:var(--gold-light);
  color:#151719;
  outline:none;
}
.social-icon svg{width:19px;height:19px;fill:currentColor;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.social-icon svg rect,.social-icon svg circle{fill:none;}
.social-icon svg .fill-dot{fill:currentColor;stroke:none;}
.social-icon svg .play-cut{fill:#2B2E30;stroke:none;}
.social-icon:hover svg .play-cut,.social-icon:focus-visible svg .play-cut{fill:var(--gold);}
.footer-social-note{margin-top:10px !important;font-size:12px !important;color:rgba(255,255,255,.62) !important;}
.site-toast{
  position:fixed;
  left:50%;
  bottom:26px;
  transform:translate(-50%,18px);
  max-width:min(92vw,520px);
  padding:12px 16px;
  border-radius:10px;
  background:#17191b;
  color:#fff;
  border:1px solid rgba(228,192,142,.42);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
  font-size:14px;
  line-height:1.45;
  opacity:0;
  pointer-events:none;
  z-index:9999;
  transition:opacity .22s ease,transform .22s ease;
}
.site-toast.show{opacity:1;transform:translate(-50%,0);}
@media(max-width:720px){
  .social-icon{width:42px;height:42px;}
}


/* =========================================================
   V19 MOBILE FRIENDLY AUDIT
   ========================================================= */
.mobile-book-item{display:none;}

body,main,section,header,footer{max-width:100%;}
h1,h2,h3,h4,p,a,span{overflow-wrap:break-word;}
.btn{min-height:44px;}
.nav-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center;}
.social-icon{min-width:44px;min-height:44px;}
input,select,textarea,button{max-width:100%;}

@media (max-width:860px){
  .site-header .container{height:88px;}
  .brand-mark{height:52px;max-width:150px;}
  .header-cta{gap:10px;}
  .main-nav{
    inset:88px 0 0 0;
    height:calc(100dvh - 88px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:32px;
    padding-bottom:max(40px,env(safe-area-inset-bottom));
  }
  .main-nav ul,.main-nav li{width:100%;}
  .main-nav a{
    display:flex;
    align-items:center;
    min-height:48px;
    width:100%;
    padding:10px 0;
  }
  .mobile-book-item{display:block;margin-top:8px;}
  .main-nav .mobile-book-link{
    justify-content:center;
    padding:13px 20px;
    color:var(--espresso);
    background:linear-gradient(120deg,var(--gold-light),var(--gold-deep));
    border:0;
    border-radius:4px;
    font-weight:600;
  }
  body.nav-open{overflow:hidden;}
}

@media (max-width:520px){
  .site-header .container{height:78px;padding-left:16px;padding-right:16px;}
  .brand-mark{height:44px;max-width:124px;}
  .main-nav{inset:78px 0 0 0;height:calc(100dvh - 78px);padding:26px 20px;}
  .header-cta{gap:8px;}
  .header-cta > .book-now-btn{display:none;}
  .nav-toggle{display:flex;padding:9px;}
  .container{padding-left:18px;padding-right:18px;}

  .section{padding:62px 0;}
  .section.tight{padding:52px 0;}

  .hero{min-height:calc(100svh - 78px);}
  .hero-inner{padding:72px 0 58px;}
  .page-hero{min-height:500px;}
  .page-hero .hero-inner{padding:62px 0 44px;}
  .hero .hero-bg{background-position:center center;}
  .hero h1{font-size:clamp(40px,13vw,58px);line-height:1.02;}
  .hero-title-smooth{font-size:clamp(40px,13vw,58px)!important;}
  .hero p.lede{font-size:16.5px;line-height:1.62;}
  .hero-actions{gap:12px;margin-top:28px;}
  .hero-actions .btn{width:100%;}

  .home-hero-copy,
  .contact-hero-copy,
  .services-hero-copy,
  .style-hero-copy{
    width:100%;
    margin-left:0;
    padding:22px 18px 24px;
    border-radius:14px;
  }
  .hero .eyebrow{
    max-width:100%;
    white-space:normal;
    line-height:1.45;
    letter-spacing:.16em;
  }

  .split{gap:30px;}
  .split h2{font-size:34px;}
  .shop-space-frame{aspect-ratio:4/3;}
  .feature-grid{gap:16px;margin-top:36px;}
  .feature-card{padding:26px 22px;}
  .spotlight-head{margin-bottom:30px;}
  .spotlight-row{grid-template-columns:1fr;gap:28px;}
  .spotlight-row .arch-frame{aspect-ratio:4/5;}
  .cta-banner{min-height:430px;}
  .cta-banner .inner{width:calc(100% - 28px);padding:24px 18px;}

  .services-grid{gap:20px;}
  .service-card .body{padding:22px 20px 24px;}
  .service-card .meta{gap:12px;align-items:flex-end;}
  .note-strip{margin-top:36px;padding:22px 18px;}
  .rate-sign-inner{padding:34px 16px 28px;}
  .rate-line{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:end;}
  .rate-name{grid-column:1 / -1;}
  .rate-time{grid-column:1;}
  .rate-price{grid-column:2;grid-row:2;margin-top:0;}

  .gallery-grid,.gallery-grid.wide{grid-template-columns:1fr;gap:28px;}
  .section-divider{margin:58px 0 34px;gap:10px;}
  .section-divider span{font-size:19px;white-space:normal;text-align:center;line-height:1.2;}
  .lightbox{padding:64px 14px 20px;}
  .lightbox figure{max-width:100%;}
  .lightbox img{max-height:68svh;}
  .lightbox-close{top:12px;right:12px;width:44px;height:44px;}
  .lightbox-nav{
    position:absolute;
    bottom:12px;
    width:46px;
    height:46px;
    margin:0;
    background:rgba(18,20,22,.70);
  }
  .lightbox-prev{left:calc(50% - 56px);}
  .lightbox-next{right:calc(50% - 56px);}
  .lightbox figcaption{font-size:18px;padding-bottom:52px;}

  .contact-card{padding:28px 20px;}
  .info-card{padding:32px 22px;}
  .info-row{gap:14px;}
  .info-row .txt{font-size:15px;min-width:0;overflow-wrap:anywhere;}
  .field input,.field select,.field textarea{font-size:16px;min-height:46px;}
  .field textarea{min-height:120px;}
  .privacy-consent{padding:14px;}
  .consent-label{font-size:13px;}
  .form-actions{gap:10px;}
  .form-actions .btn{width:100%;justify-content:center;}
  .map-frame iframe{height:260px;}

  .contact-modal{padding:12px;}
  .contact-modal-panel{max-height:calc(100dvh - 24px);padding:30px 18px 20px;}
  .contact-modal-close{top:10px;right:10px;}

  .site-footer{padding:58px 0 22px;}
  .footer-grid{padding-bottom:38px;}
  .footer-brand{padding-right:0;}
  .footer-brand p{max-width:none;}
  .footer-col h4{margin-bottom:14px;}
  .social-icons{gap:9px;}
  .social-icon{width:44px;height:44px;}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:8px;}

  .site-toast{
    bottom:max(16px,env(safe-area-inset-bottom));
    width:calc(100% - 28px);
    max-width:none;
    font-size:13.5px;
  }
}

@media (max-width:360px){
  .container{padding-left:15px;padding-right:15px;}
  .brand-mark{max-width:112px;}
  .hero h1,.hero-title-smooth{font-size:40px!important;}
  .hero .eyebrow{font-size:10.5px;letter-spacing:.13em;}
  .btn{padding-left:18px;padding-right:18px;}
  .contact-modal{padding:10px;}
  .contact-modal-panel{padding:28px 16px 18px;}
}

@media (max-height:520px) and (orientation:landscape) and (max-width:900px){
  .site-header .container{height:68px;}
  .brand-mark{height:40px;}
  .main-nav{inset:68px 0 0 0;height:calc(100dvh - 68px);padding:18px 28px;}
  .hero{min-height:560px;}
  .page-hero{min-height:440px;}
  .hero-inner,.page-hero .hero-inner{padding:48px 0 40px;}
}


/* V24 Grand Opening promotion */
.promo-ad{position:fixed;z-index:10050;display:grid;grid-template-columns:145px minmax(190px,1fr);width:min(430px,calc(100vw - 32px));min-height:178px;overflow:hidden;border:1px solid rgba(226,194,124,.88);border-radius:15px;background:#121416;color:#fcfbf8;box-shadow:0 20px 55px rgba(0,0,0,.48);transition:transform .55s cubic-bezier(.22,.8,.22,1),opacity .4s ease}
.promo-ad[hidden]{display:none!important}.promo-ad.from-left{left:18px;top:50%;transform:translate(-125%,-50%);opacity:0}.promo-ad.from-right{right:18px;top:50%;transform:translate(125%,-50%);opacity:0}.promo-ad.from-top{top:18px;left:50%;transform:translate(-50%,-125%);opacity:0}.promo-ad.from-bottom{bottom:18px;left:50%;transform:translate(-50%,125%);opacity:0}.promo-ad.is-visible.from-left,.promo-ad.is-visible.from-right{transform:translate(0,-50%);opacity:1}.promo-ad.is-visible.from-top,.promo-ad.is-visible.from-bottom{transform:translate(-50%,0);opacity:1}
.promo-media{position:relative;overflow:hidden;min-height:178px}.promo-media img{width:100%;height:100%;object-fit:cover;object-position:58% center;display:block}.promo-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,#121416 100%)}
.promo-copy{display:flex;flex-direction:column;justify-content:center;padding:20px 38px 20px 14px;line-height:1.15}.promo-kicker{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:25px;color:#e2c27c}.promo-copy strong{font-family:"Cormorant Garamond",serif;font-size:42px;line-height:.95;color:#f4cf80;margin:4px 0}.promo-copy>span:not(.promo-kicker){font-size:12px;text-transform:uppercase;letter-spacing:.12em}.promo-copy small{margin-top:7px;color:rgba(252,251,248,.75);font-size:11px}.promo-book{display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin-top:12px;padding:8px 16px;border-radius:5px;background:linear-gradient(120deg,#e2c27c,#c7a15b);color:#121416!important;font-weight:700;text-decoration:none}.promo-close{position:absolute;z-index:3;right:8px;top:8px;width:34px;height:34px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(18,20,22,.82);color:white;font-size:23px;line-height:1;cursor:pointer}.promo-progress{position:absolute;z-index:4;left:0;bottom:0;height:3px;width:100%;transform-origin:left;background:#e2c27c}.promo-ad.is-visible .promo-progress{animation:promoCountdown 25s linear forwards}@keyframes promoCountdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:700px){.promo-ad,.promo-ad.from-left,.promo-ad.from-right,.promo-ad.from-top,.promo-ad.from-bottom{left:14px;right:14px;top:auto;bottom:max(14px,env(safe-area-inset-bottom));width:auto;grid-template-columns:105px 1fr;min-height:142px;transform:translateY(130%);opacity:0}.promo-ad.is-visible.from-left,.promo-ad.is-visible.from-right,.promo-ad.is-visible.from-top,.promo-ad.is-visible.from-bottom{transform:translateY(0);opacity:1}.promo-media{min-height:142px}.promo-copy{padding:14px 42px 14px 10px}.promo-kicker{font-size:20px}.promo-copy strong{font-size:34px}.promo-book{min-height:44px}}
@media(prefers-reduced-motion:reduce){.promo-ad{transition:none}.promo-ad.is-visible .promo-progress{animation:none}}


/* V25 accepted payment methods */
.payment-panel{margin:44px auto 0;max-width:900px;padding:34px 30px;border:1px solid rgba(199,161,91,.42);border-radius:12px;background:linear-gradient(145deg,#17191b,#0f1113);text-align:center;color:#fcfbf8;box-shadow:0 18px 42px rgba(0,0,0,.12)}
.payment-panel .eyebrow{margin-bottom:8px;color:#e2c27c}.payment-panel h2{margin:0 0 8px;color:#fff}.payment-panel>p:not(.eyebrow){margin:0 auto 24px;color:rgba(255,255,255,.76);max-width:620px}
.payment-methods{display:flex;flex-direction:column;align-items:center;gap:13px}.payment-label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#d8bb7b}.payment-icons{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.payment-chip{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:8px 14px;border:1px solid rgba(226,194,124,.36);border-radius:7px;background:rgba(255,255,255,.055);font-size:13px;font-weight:600;letter-spacing:.02em;color:#fff}.payment-symbol{display:grid;place-items:center;width:27px;height:27px;border:1px solid #d8bb7b;border-radius:5px;color:#e2c27c}.payment-symbol svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.payment-letter{font-family:Jost,sans-serif;font-size:16px;font-weight:700}
.footer-payments{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;margin-top:16px;color:rgba(255,255,255,.78);font-size:12px}.footer-payments-title{flex-basis:100%;color:#e2c27c;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.footer-payments span:not(.footer-payments-title){padding:4px 8px;border:1px solid rgba(226,194,124,.28);border-radius:4px}
@media(max-width:700px){.payment-panel{margin-top:32px;padding:28px 18px}.payment-icons{width:100%;display:grid;grid-template-columns:1fr 1fr}.payment-chip{justify-content:flex-start}.footer-payments{max-width:320px}}
@media(max-width:380px){.payment-icons{grid-template-columns:1fr}}
