/* =========================================================
   Traditional & Classic Caterers
   Palette: black #0b0a08, charcoal #15130f, gold #c9a227,
            gold-light #e8c766, cream #f3ecd8, maroon #6e1423
   ========================================================= */

:root{
  --black:#0b0a08;
  --charcoal:#15130f;
  --charcoal-2:#1d1a13;
  --charcoal-3:#231f17;
  --gold:#c9a227;
  --gold-light:#e8c766;
  --gold-pale:#f3e6c3;
  --cream:#f3ecd8;
  --maroon:#6e1423;
  --maroon-light:#8f2233;
  --green:#1f8f52;
  --line:rgba(201,162,39,0.28);
  --soft-line:rgba(243,236,216,0.12);

  --font-display:'Cormorant Garamond', serif;
  --font-caps:'Marcellus', serif;
  --font-script:'Petit Formal Script', cursive;
  --font-body:'Poppins', sans-serif;

  --radius:4px;
  --container:1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--black);
  color:var(--cream);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
html,
body{ overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3{ font-family:var(--font-display); font-weight:600; margin:0; color:var(--gold-pale); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Ring logo ---------- */
.ring-logo{ width:56px; height:56px; }
.ring-logo--sm{ width:42px; height:42px; }
.ring-outer{ fill:none; stroke:var(--gold); stroke-width:5; stroke-dasharray:3 3.6; }
.ring-inner{ fill:none; stroke:var(--gold-light); stroke-width:1.4; }
.ring-letters{ font-family:var(--font-caps); font-size:34px; fill:var(--gold-pale); }

.ring-divider{ width:64px; height:64px; margin:1.2rem auto 2.4rem; color:var(--gold); opacity:.85; }
.ring-divider--light{ color:var(--gold-light); }
.ring-divider svg{ width:100%; height:100%; }
.spin-slow{ transform-origin:100px 100px; animation:spin 40s linear infinite; }
.spin-slow-rev{ transform-origin:100px 100px; animation:spin 55s linear infinite reverse; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- Top bar ---------- */
.topbar{ background:var(--maroon); font-size:.78rem; letter-spacing:.02em; }
.topbar__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:.5rem 1.5rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.topbar__contact{ display:flex; gap:1.1rem; flex-wrap:wrap; }
.topbar__item,
.topbar__contact{ max-width:100%; }
.topbar__contact a{ white-space:nowrap; }
.topbar a{ opacity:.92; }
.topbar a:hover{ opacity:1; text-decoration:underline; }

@media (max-width:720px){
  .topbar{ font-size:.72rem; }
  .topbar__inner{
    flex-direction:column;
    justify-content:center;
    gap:.3rem;
    padding:.55rem .8rem .65rem;
    text-align:center;
  }
  .topbar__item{ line-height:1.45; }
  .topbar__contact{ width:100%; justify-content:center; gap:.55rem .7rem; }
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(11,10,8,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:.68rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.9rem;
}
.brand{ display:flex; align-items:center; gap:.7rem; min-width:260px; }
.brand__text{ display:flex; flex-direction:column; gap:.18rem; line-height:1.15; }
.brand__name{ font-family:var(--font-caps); font-size:1.08rem; letter-spacing:.03em; color:var(--gold-pale); }
.brand__name em{ font-style:normal; color:var(--gold); }
.brand__tag{ font-size:.68rem; color:var(--gold); }

.nav{ display:flex; align-items:center; gap:.78rem; }
.nav a{
  font-size:.74rem;
  letter-spacing:.02em;
  color:var(--cream);
  opacity:.85;
  position:relative;
  padding:.2rem 0;
  white-space:nowrap;
}
.nav a:hover{ opacity:1; }
.nav a:not(.nav__cta)::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-2px;
  width:0;
  height:1px;
  background:var(--gold);
  transition:width .3s ease;
}
.nav a:not(.nav__cta):hover::after{ width:100%; }
.nav__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:98px;
  padding:.58rem 1rem;
  background:var(--gold);
  color:var(--black) !important;
  border-radius:var(--radius);
  font-weight:600;
  opacity:1 !important;
  text-align:center;
}
.nav__cta:hover{ background:var(--gold-light); }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;
  height:38px;
  background:none;
  border:1px solid var(--line);
  border-radius:var(--radius);
  cursor:pointer;
}
.nav-toggle span{ width:18px; height:2px; background:var(--gold); margin:0 auto; display:block; transition:transform .3s ease, opacity .3s ease; }

@media (max-width:1120px){
  .nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    background:var(--charcoal);
    padding:1rem 1.5rem 1.4rem;
    gap:0;
    border-bottom:1px solid var(--line);
    transform-origin:top;
    transform:scaleY(0);
    opacity:0;
    pointer-events:none;
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav.is-open{ transform:scaleY(1); opacity:1; pointer-events:auto; }
  .nav a{
    width:100%;
    padding:.78rem 0;
    font-size:1rem;
  }
  .nav .nav__cta{
    width:100%;
    max-width:220px;
    min-width:0;
    align-self:flex-start;
    margin-top:.55rem;
    padding:.72rem 1.25rem;
  }
  .nav-toggle{ display:flex; }
  .nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.is-open span:nth-child(2){ opacity:0; }
  .nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

@media (max-width:420px){
  .site-header__inner{ padding:.65rem 1rem; }
  .brand{ min-width:0; gap:.55rem; }
  .ring-logo{ width:48px; height:48px; }
  .brand__name{ font-size:.95rem; }
  .brand__tag{ font-size:.6rem; }
}

section[id]{ scroll-margin-top:0; }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:5.6rem 1.5rem 4.8rem;
  text-align:center;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(201,162,39,0.16), transparent 60%),
    linear-gradient(180deg, var(--black) 0%, var(--charcoal) 100%);
}
.hero__photo{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:.18;
  filter:grayscale(8%);
  mask-image:linear-gradient(180deg, black 0%, black 45%, transparent 94%);
}
.hero__pattern{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.44;
  background-image:radial-gradient(circle, rgba(201,162,39,0.10) 1px, transparent 1.4px);
  background-size:26px 26px;
  mask-image:radial-gradient(ellipse at center, black, transparent 75%);
}
.hero__ring{ position:absolute; color:var(--gold); opacity:.18; }
.hero__ring--one{ width:340px; height:340px; top:-90px; left:-90px; }
.hero__ring--two{ width:260px; height:260px; bottom:-70px; right:-60px; }
.hero__ring svg{ width:100%; height:100%; }
.hero__inner{ position:relative; max-width:860px; margin:0 auto; }
.hero__eyebrow{
  font-family:var(--font-caps);
  color:var(--gold);
  letter-spacing:.2em;
  font-size:.76rem;
  margin:0 0 .75rem;
  text-transform:uppercase;
}
.hero__title{
  font-size:4.3rem;
  line-height:1;
  margin:.2rem 0 .85rem;
  color:var(--gold-pale);
}
.hero__title-line{ display:inline; }
.hero__title em{ color:var(--gold); font-style:italic; }
.hero__service-line{
  margin:0 auto 1rem;
  color:var(--gold-light);
  font-size:.92rem;
  letter-spacing:.03em;
}
.hero__lede{
  max-width:650px;
  margin:0 auto 1.1rem;
  color:rgba(243,236,216,0.82);
  font-size:1.02rem;
}
.hero__motto{
  color:var(--gold-pale);
  font-family:var(--font-display);
  font-size:1.3rem;
  margin:0 auto 2.1rem;
}
.hero__motto span{
  display:block;
  margin-top:.25rem;
  color:rgba(243,236,216,0.72);
  font-family:var(--font-body);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero__actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-bottom:2.7rem; }

.hero__videos{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
  max-width:760px;
  margin:0 auto 2.6rem;
}
.hero__video-card{
  position:relative;
  overflow:hidden;
  margin:0;
  aspect-ratio:4 / 5;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(11,10,8,0.62);
  box-shadow:0 20px 46px rgba(0,0,0,0.32);
}
.hero__video-card video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero__video-card::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, transparent 48%, rgba(11,10,8,0.82) 100%);
}
.hero__video-card figcaption{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:.95rem;
  z-index:1;
  color:var(--gold-pale);
  font-family:var(--font-caps);
  font-size:.82rem;
  letter-spacing:.12em;
  line-height:1.35;
  text-transform:uppercase;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.85rem 1.65rem;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.02em;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{ background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:var(--black); }
.btn--gold:hover{ background:linear-gradient(135deg, #f3d47c, var(--gold-light)); }
.btn--ghost{ background:transparent; border-color:var(--gold); color:var(--gold-pale); }
.btn--ghost:hover{ background:rgba(201,162,39,0.12); }
.btn--block{ width:100%; margin-top:.5rem; }

.hero__stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1rem;
  border-top:1px solid var(--line);
  padding-top:1.8rem;
}
.hero__stats strong{ display:block; font-family:var(--font-caps); color:var(--gold); font-size:1rem; margin-bottom:.2rem; }
.hero__stats span{ font-size:.76rem; color:rgba(243,236,216,0.65); }

@media (max-width:780px){
  .site-header__inner{ padding:.65rem 1rem; }
  .brand{ min-width:0; gap:.55rem; }
  .brand__name{ font-size:.98rem; }
  .brand__tag{ font-size:.6rem; }
  .hero{ padding:4.2rem 1.1rem 4rem; }
  .hero__title{ font-size:2.42rem; }
  .hero__title-line{ display:block; }
  .hero__eyebrow{
    max-width:440px;
    margin-left:auto;
    margin-right:auto;
    letter-spacing:.14em;
  }
  .hero__actions{ flex-direction:column; align-items:center; }
  .hero__actions .btn{ width:min(100%, 340px); }
  .hero__videos{ max-width:620px; }
  .hero__stats{ grid-template-columns:repeat(2, 1fr); }
}

@media (max-width:480px){
  .hero__title{ font-size:2.24rem; }
  .hero__eyebrow{ letter-spacing:.1em; font-size:.68rem; }
  .hero__service-line{ font-size:.82rem; }
  .hero__actions{ align-items:stretch; }
  .hero__actions .btn{ width:100%; }
  .hero__videos{ grid-template-columns:1fr; max-width:310px; gap:.85rem; }
  .hero__video-card figcaption{ font-size:.76rem; }
  .hero__stats{ grid-template-columns:1fr; }
}

/* ---------- Sections ---------- */
.section{ padding:5rem 1.5rem; }
.section--dark{ background:var(--charcoal); }
.section__inner{ max-width:var(--container); margin:0 auto; text-align:center; }
.section__title{ font-size:2.6rem; line-height:1.12; }
.section__intro{
  max-width:720px;
  margin:.9rem auto 0;
  color:rgba(243,236,216,0.72);
  font-size:.95rem;
}
.eyebrow{
  font-family:var(--font-caps);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
  color:var(--gold);
  margin:0 0 .6rem;
}

@media (max-width:640px){
  .section{ padding:2.6rem 1.1rem 4rem; }
  .section__title{ font-size:2.05rem; }
  .eyebrow{ letter-spacing:.16em; }
}

/* ---------- About strip ---------- */
.strip{ background:var(--charcoal); border-bottom:1px solid var(--line); padding:4.2rem 1.5rem; }
.strip__intro{ max-width:820px; margin:0 auto 2.2rem; text-align:center; }
.strip__intro p:last-child{ margin:1rem auto 0; color:rgba(243,236,216,0.72); max-width:640px; }
.strip__inner{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
  text-align:center;
}
.strip__item{
  border:1px solid var(--line);
  background:rgba(11,10,8,0.22);
  border-radius:var(--radius);
  padding:1.4rem 1.2rem;
}
.strip__icon{ font-size:1.6rem; display:block; margin-bottom:.5rem; }
.strip__item h3{ font-size:1.08rem; color:var(--gold-pale); margin-bottom:.35rem; }
.strip__item p{ font-size:.82rem; color:rgba(243,236,216,0.66); margin:0; }

@media (max-width:900px){ .strip__inner{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){
  .strip{ padding:3.6rem 1.1rem; }
  .strip__inner{ grid-template-columns:1fr; }
}

/* ---------- Services ---------- */
.service-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.3rem;
  text-align:left;
}
.service-card{
  position:relative;
  min-height:260px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.35rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background-size:cover;
  background-position:center;
  transition:border-color .25s ease, transform .25s ease;
}
.service-card:hover{ border-color:var(--gold); transform:translateY(-4px); }
.service-card span{ font-size:1.55rem; margin-bottom:.35rem; }
.service-card h3{ font-size:1.2rem; margin-bottom:.35rem; }
.service-card p{ margin:0; color:rgba(243,236,216,0.76); font-size:.85rem; }

@media (max-width:1100px){ .service-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:900px){ .service-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .service-grid{ grid-template-columns:1fr; } }

/* ---------- Packages ---------- */
.package-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1rem;
  text-align:left;
}
.package-card{
  position:relative;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--charcoal-2);
  padding:1.35rem;
  min-height:300px;
  display:flex;
  flex-direction:column;
}
.package-card--featured{
  border-color:var(--gold);
  background:linear-gradient(180deg, rgba(201,162,39,0.12), rgba(29,26,19,1));
}
.package-card__label{
  color:var(--gold);
  font-family:var(--font-caps);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.76rem;
  margin:0 0 .65rem;
}
.package-card h3{ font-size:1.28rem; margin-bottom:1rem; }

@media (max-width:980px){ .package-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .package-grid{ grid-template-columns:1fr; } }

/* ---------- Lists ---------- */
.check-list li{ padding:.5rem 0; font-size:.92rem; color:rgba(243,236,216,0.82); }
.check-list li::before{ content:'✓'; color:var(--gold); font-weight:700; margin-right:.6rem; }
.check-list--compact li{ font-size:.84rem; padding:.38rem 0; }

/* ---------- Wedding menu ---------- */
.course-flow{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.55rem;
  margin:0 auto 2rem;
}
.course-flow span{
  border:1px solid var(--line);
  background:rgba(201,162,39,0.06);
  border-radius:var(--radius);
  padding:.55rem .95rem;
  color:var(--gold-pale);
  font-size:.82rem;
}
.menu-category-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  text-align:left;
  align-items:start;
}
.menu-category-grid--full{
  display:block;
  column-count:3;
  column-gap:1rem;
}
.menu-category{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(21,19,15,0.62);
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  break-inside:avoid;
  margin:0 0 1rem;
}
.menu-category h3{ order:1; font-size:1.22rem; margin-bottom:.4rem; color:var(--gold-light); }
.menu-category h4{
  order:3;
  margin:.85rem 0 .3rem;
  color:var(--gold-pale);
  font-family:var(--font-caps);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu-category h4:first-of-type{ margin-top:.2rem; }
.menu-category__rule{
  order:2;
  margin:0 0 .85rem;
  color:var(--gold);
  font-size:.78rem;
  line-height:1.5;
}
.menu-category ul{ order:3; }
.menu-category li{
  padding:.38rem 0;
  border-bottom:1px dashed var(--soft-line);
  color:rgba(243,236,216,0.8);
  font-size:.9rem;
}
.menu-category li:last-child{ border-bottom:0; }

@media (max-width:900px){
  .menu-category-grid{ grid-template-columns:repeat(2, 1fr); }
  .menu-category-grid--full{ column-count:2; }
}
@media (max-width:580px){
  .menu-category-grid{ grid-template-columns:1fr; }
  .menu-category-grid--full{ column-count:1; }
}

/* ---------- Party tabs ---------- */
.menu-tabs{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-bottom:2rem; }
.menu-tab{
  background:transparent;
  border:1px solid var(--line);
  color:var(--cream);
  font-family:var(--font-body);
  font-size:.82rem;
  padding:.62rem 1.05rem;
  border-radius:var(--radius);
  cursor:pointer;
  transition:all .25s ease;
}
.menu-tab:hover{ border-color:var(--gold); }
.menu-tab.is-active{ background:var(--gold); border-color:var(--gold); color:var(--black); font-weight:600; }

.menu-panels{ max-width:900px; margin:0 auto; text-align:left; }
.menu-panel{ display:none; }
.menu-panel.is-active{ display:block; animation:fadeIn .4s ease; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none; } }
.sample-menu{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--charcoal-2);
  padding:1.45rem;
}
.sample-menu h3{ font-size:1.35rem; margin-bottom:.35rem; }
.sample-menu p{ margin:.1rem 0 1.2rem; color:rgba(243,236,216,0.7); font-size:.9rem; }
.menu-list li{
  display:grid;
  grid-template-columns:minmax(150px, .6fr) 1.4fr;
  gap:1rem;
  padding:.9rem 0;
  border-bottom:1px dashed var(--line);
  color:var(--gold-pale);
}
.menu-list li:last-child{ border-bottom:0; }
.menu-list li span{ font-family:var(--font-display); font-size:1.14rem; }
.menu-list li em{
  font-style:normal;
  font-family:var(--font-body);
  font-size:.82rem;
  color:rgba(243,236,216,0.74);
}

@media (max-width:640px){
  .menu-list li{ grid-template-columns:1fr; gap:.15rem; }
}

/* ---------- Live counters ---------- */
.live-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1rem;
}
.live-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.45rem 1.2rem;
  background:linear-gradient(180deg, rgba(201,162,39,0.08), rgba(21,19,15,0.9));
  min-height:180px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.live-card h3{ color:var(--gold-light); font-size:1.3rem; margin-bottom:.5rem; }
.live-card p{ margin:0; color:rgba(243,236,216,0.76); font-size:.9rem; }

@media (max-width:900px){ .live-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .live-grid{ grid-template-columns:1fr; } }

/* ---------- Quality ---------- */
.quality-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem 3rem;
  max-width:720px;
  margin:0 auto 2rem;
  text-align:left;
}
.promise-card{
  display:inline-block;
  max-width:760px;
  border:1px solid var(--gold);
  border-radius:var(--radius);
  padding:1.1rem 1.4rem;
  background:rgba(201,162,39,0.08);
}
.promise-card p{ margin:0; color:var(--gold-pale); font-family:var(--font-display); font-size:1.26rem; }

@media (max-width:640px){
  .quality-grid{
    grid-template-columns:1fr;
    justify-items:center;
    max-width:360px;
    gap:0;
  }

  .quality-grid .check-list{
    width:min(100%, 320px);
  }
}

/* ---------- Gallery ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:1rem;
}
.gallery-card{
  min-height:240px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  padding:1.1rem;
}
.gallery-card span{
  color:var(--gold-pale);
  font-family:var(--font-display);
  font-size:1.02rem;
  line-height:1.25;
}
.gallery-button{ margin-top:1.5rem; }

@media (max-width:1060px){ .gallery-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:900px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .gallery-grid{ grid-template-columns:1fr; } }

/* ---------- Reviews ---------- */
.review-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  text-align:left;
}
.review-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--charcoal-2);
  padding:1.35rem;
}
.review-card p{ margin:0 0 1rem; color:rgba(243,236,216,0.78); }
.review-card span{ color:var(--gold); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }

@media (max-width:780px){ .review-grid{ grid-template-columns:1fr; } }

/* ---------- Service area ---------- */
.area-grid{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; }
.area-pin{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:.6rem 1.2rem;
  font-size:.88rem;
  background:rgba(201,162,39,0.06);
}
.area-pin--wide{ background:transparent; border-color:var(--gold); color:var(--gold-light); }

/* ---------- CTA banner ---------- */
.cta-banner{
  background:linear-gradient(135deg, var(--maroon), var(--maroon-light));
  padding:3.6rem 1.5rem;
  text-align:center;
}
.cta-banner__inner{ max-width:780px; margin:0 auto; }
.cta-banner__brand{
  margin:0 0 .35rem;
  color:var(--gold-light);
  font-family:var(--font-caps);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.8rem;
}
.cta-banner h2{ color:var(--gold-pale); font-size:2rem; line-height:1.22; margin-bottom:.7rem; }
.cta-banner p{ color:rgba(243,236,216,0.88); margin-bottom:1.45rem; font-size:.92rem; }
.cta-banner__actions{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

@media (max-width:560px){
  .cta-banner h2{ font-size:1.55rem; }
  .cta-banner__actions{ flex-direction:column; align-items:stretch; }
}

/* ---------- Contact ---------- */
.contact-layout{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1.4rem;
  align-items:start;
  text-align:left;
}
.enquiry-form,
.contact-card{
  background:var(--charcoal-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem;
}
.enquiry-form{
  display:grid;
  gap:1.1rem;
}
.form-field{
  display:flex;
  flex-direction:column;
  gap:.42rem;
}
.enquiry-form label{
  display:block;
  color:var(--gold-light);
  font-size:.74rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.14em;
  line-height:1.2;
  margin:0;
}
.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea{
  width:100%;
  border:1px solid rgba(201,162,39,0.34);
  border-radius:var(--radius);
  background:rgba(11,10,8,0.45);
  color:var(--cream);
  font:inherit;
  font-size:.9rem;
  padding:.8rem .9rem;
}
.enquiry-form select{
  padding-right:2.6rem;
  background-image:linear-gradient(45deg, transparent 50%, var(--cream) 50%), linear-gradient(135deg, var(--cream) 50%, transparent 50%);
  background-position:calc(100% - 19px) 50%, calc(100% - 13px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  appearance:none;
  -webkit-appearance:none;
}
.enquiry-form input,
.enquiry-form select{
  min-height:52px;
}
.enquiry-form input[type="date"]::-webkit-calendar-picker-indicator{
  filter:invert(1) brightness(1.2);
  opacity:.9;
}
.enquiry-form textarea{ resize:vertical; min-height:126px; }
.enquiry-form input::placeholder,
.enquiry-form textarea::placeholder{ color:rgba(243,236,216,0.38); }
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.15rem;
}
.enquiry-form .btn--block{ margin-top:.25rem; min-height:54px; }
.contact-card h3{ font-size:1.35rem; margin-bottom:1rem; }
.contact-owner{ font-family:var(--font-display); font-size:1.22rem; color:var(--gold-pale); margin:0 0 1.2rem; }
.contact-owner span{ font-family:var(--font-body); font-size:.78rem; color:var(--gold); }
.contact-list{ margin-bottom:1.3rem; }
.contact-list li{ padding:.42rem 0; font-size:.94rem; border-bottom:1px dashed var(--soft-line); }
.contact-list li:last-child{ border-bottom:0; }
.contact-list a:hover{ color:var(--gold); }
.contact-note{ color:rgba(243,236,216,0.72); font-size:.9rem; margin:0 0 1.3rem; }
.contact-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }

@media (max-width:860px){
  .contact-layout{ grid-template-columns:1fr; }
}

@media (max-width:560px){
  .form-row{ grid-template-columns:1fr; gap:1.1rem; }
  .contact-actions{ flex-direction:column; align-items:stretch; }
}

/* ---------- Footer ---------- */
.footer{ background:var(--black); border-top:1px solid var(--line); padding:2.6rem 1.5rem 2rem; }
.footer__inner{ max-width:var(--container); margin:0 auto; text-align:center; }
.footer__brand{ display:inline-flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.footer__brand > div{ text-align:left; }
.footer__name{ font-family:var(--font-caps); color:var(--gold-pale); margin:0; font-size:1rem; }
.footer__tag{ font-size:.68rem; color:var(--gold); margin:0; }
.footer__area{ font-size:.82rem; color:rgba(243,236,216,0.68); margin:0 0 1rem; }
.footer__copy{ font-size:.72rem; color:rgba(243,236,216,0.42); margin:0; }

/* ---------- Floating actions ---------- */
.to-top{
  position:fixed;
  right:1.2rem;
  bottom:1.2rem;
  width:50px;
  height:50px;
  border-radius:50%;
  background:var(--gold);
  color:var(--black);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.25rem;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease;
  z-index:40;
}
.to-top.is-visible{ opacity:1; pointer-events:auto; transform:none; }
.whatsapp-float{
  display:none;
  position:fixed;
  right:1.2rem;
  bottom:1.2rem;
  width:50px;
  height:50px;
  z-index:41;
  background:var(--green);
  color:#fff;
  border-radius:50%;
  align-items:center;
  justify-content:center;
  box-shadow:0 12px 26px rgba(0,0,0,.36);
  transition:transform .25s ease, background .25s ease;
}
.whatsapp-float:hover{
  background:#20a75d;
  transform:translateY(-2px);
}
.whatsapp-float svg{
  width:100%;
  height:100%;
  display:block;
}

@media (max-width:700px){
  .whatsapp-float{ display:flex; }
  .to-top{ bottom:calc(1.2rem + 50px + .85rem); }
}

/* Visible focus states for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:2px;
}
