/* ======================================================
   ELITE MAKE UP — design tokens
   Palette derived from the gold/cream logo:
   cream bg, warm gold accents, deep coffee black
====================================================== */
:root{
  --bg: #F2E7D2;                /* warm cream from logo */
  --bg-2: #E9DBC0;              /* deeper cream */
  --bg-3: #F8F1E2;              /* highlight cream */
  --ink: #1B1612;               /* coffee black (logo "M") */
  --ink-2: #2C241D;
  --ink-soft: #5b4a3c;
  --gold: #B8884A;              /* primary gold */
  --gold-2: #D7B47C;            /* light gold */
  --gold-3: #8A6230;            /* deep gold */
  --gold-hair: rgba(184,136,74,.35);
  --line: rgba(27,22,18,.14);
  --line-strong: rgba(27,22,18,.32);

  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --display: 'Italiana', 'Cormorant Garamond', serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;

  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --w: 1380px;
}

*{ box-sizing: border-box; margin:0; padding:0;}
html{ scroll-behavior: smooth;}
body{
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  line-height: 1.55;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img{ display:block; max-width:100%;}
a{ color:inherit; text-decoration:none;}
button{ font: inherit; background:none; border:none; color:inherit; cursor:pointer;}

::selection{ background: var(--gold); color: var(--bg-3);}

/* film grain */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:5;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.10 0 0 0 0 0.08 0 0 0 0 0.06 0 0 0 0.7 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.18'/></svg>");
  mix-blend-mode: multiply;
  opacity:.22;
}

/* ===================== PRELOADER ===================== */
.preloader{
  position: fixed; inset:0; z-index:100;
  background: var(--bg);
  display:grid; place-items:center;
  transition: opacity .8s var(--ease), visibility .8s;
}
.preloader.is-gone{ opacity:0; visibility:hidden; pointer-events:none;}
.preloader__inner{ position:relative; display:grid; place-items:center; gap: 28px;}
.preloader__ring{
  width: 180px; height: 180px; border-radius: 50%;
  border: 1px solid var(--gold);
  position:absolute; top: -20px; left:50%; transform: translateX(-50%);
  animation: ringIn 1.2s var(--ease-out) both;
}
.preloader__mark{
  font-family: var(--serif);
  font-size: 96px; font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1;
  display:flex; align-items:flex-end;
  animation: markIn 1.1s var(--ease-out) .15s both;
}
.preloader__mark .g{
  color: var(--gold);
  background: linear-gradient(180deg, var(--gold-2), var(--gold-3));
  -webkit-background-clip: text; background-clip:text; -webkit-text-fill-color: transparent;
}
.preloader__mark .b{
  color: var(--ink); font-style: italic; margin-left: -.12em;
  font-family: 'Cormorant Infant', var(--serif);
  font-weight: 300;
}
.preloader__label{
  font-family: var(--display);
  letter-spacing: .42em; font-size: 12px;
  color: var(--ink-soft); text-transform: uppercase;
  animation: fadeUp .8s var(--ease-out) .5s both;
}
@keyframes ringIn{
  from { transform: translateX(-50%) scale(.6); opacity:0;}
  to   { transform: translateX(-50%) scale(1);   opacity:1;}
}
@keyframes markIn{
  from { letter-spacing: -.2em; opacity:0;}
  to   { letter-spacing: -.04em; opacity:1;}
}
@keyframes fadeUp{
  from { transform: translateY(8px); opacity:0;}
  to   { transform: translateY(0); opacity:1;}
}

/* ===================== SCROLL PROGRESS ===================== */
.scroll-progress{
  position: fixed; top:0; left:0; height: 2px; width: 0%;
  background: linear-gradient(90deg, var(--gold-2), var(--gold), var(--gold-3));
  z-index: 30;
  transition: width .12s linear;
}

/* ===================== NAV ===================== */
.nav{
  position: fixed; top:0; left:0; right:0; z-index: 20;
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 36px;
  transition: background .35s var(--ease), backdrop-filter .35s var(--ease), padding .35s var(--ease), border-color .35s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled{
  background: rgba(242,231,210,.78);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  padding: 12px 36px;
  border-bottom-color: var(--gold-hair);
}
.nav__brand{ display:flex; align-items:center; gap:10px;}
.nav__mark{
  width: 36px; height:36px; border-radius:50%;
  border: 1px solid var(--gold);
  display:grid; place-items:center;
  font-family: var(--serif); font-size: 20px; line-height:1;
  position:relative; overflow:hidden;
}
.nav__mark .g{ color: var(--gold-3);}
.nav__mark .b{ color: var(--ink); font-style:italic; margin-left:-.1em; font-family:'Cormorant Infant', var(--serif); font-weight:300;}
.nav__name{
  font-family: var(--display);
  font-size: 15px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--ink);
}
.nav__links{ display:flex; gap: 32px;}
.nav__links a{
  font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  position:relative; padding: 8px 0;
}
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom: 2px; height:1px;
  background: var(--gold); transform: scaleX(0); transform-origin: right;
  transition: transform .4s var(--ease);
}
.nav__links a:hover::after{ transform: scaleX(1); transform-origin: left;}
.nav__cta{
  display:inline-flex; align-items:center; gap:10px;
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  padding: 12px 18px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: var(--ink); color: var(--bg);
  transition: background .3s var(--ease), color .3s var(--ease), gap .3s var(--ease);
}
.nav__cta:hover{ background: var(--gold-3); border-color: var(--gold-3); gap: 14px;}
@media (max-width: 880px){
  .nav__links{ display:none;}
  .nav{ padding: 14px 18px;}
  .nav.is-scrolled{ padding: 10px 18px;}
  .nav__name{ font-size: 12px; letter-spacing: .24em;}
}

/* ===================== TYPE / GLOBAL ===================== */
.eyebrow{
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .42em;
  font-size: 12px;
  color: var(--gold-3);
}
.display{
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(40px, 6vw, 88px);
  line-height: .98;
  letter-spacing: -.015em;
  color: var(--ink);
}
.display em{
  font-style: italic;
  font-family: 'Cormorant Infant', var(--serif);
  font-weight: 300;
  color: var(--gold-3);
}
.section-head{
  max-width: 880px; margin: 0 auto 64px;
  text-align: center;
  display:flex; flex-direction:column; gap:18px; align-items:center;
}
.section-head .sub{
  font-size: 16px; color: var(--ink-soft); max-width: 560px;
}
.section-head--light .display{ color: var(--bg);}
.section-head--light .eyebrow{ color: var(--gold-2);}
.section-head--light .sub{ color: rgba(248,241,226,.6);}

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap: 10px;
  padding: 16px 26px;
  border-radius: 999px;
  font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
  transition: all .35s var(--ease);
  white-space: nowrap;
}
.btn--gold{ background: var(--ink); color: var(--bg-3); border:1px solid var(--ink);}
.btn--gold:hover{ background: var(--gold-3); border-color: var(--gold-3); transform: translateY(-2px);}
.btn--ghost{ background: transparent; color: var(--ink); border:1px solid var(--ink);}
.btn--ghost:hover{ background: var(--ink); color: var(--bg-3);}
.btn--gold-outline{ border:1px solid var(--gold-2); color: var(--gold-2);}
.btn--gold-outline:hover{ background: var(--gold-2); color: var(--ink);}

/* reveal animation */
.reveal{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
}
.reveal.is-in{ opacity:1; transform: translateY(0);}

/* split lines */
.split-up{
  opacity: 0; transform: translateY(20px);
  transition: opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
.in-view .split-up{ opacity:1; transform: translateY(0);}
.in-view .hero__overline{ transition-delay: .9s;}
.in-view .hero__sub .split-up{ transition-delay: 1.6s;}
.in-view .hero__actions{ transition-delay: 1.85s;}

/* ===================== HERO ===================== */
.hero{
  position: relative;
  min-height: 100vh;
  padding: 140px 36px 60px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align: center;
  background:
    radial-gradient(ellipse 60% 50% at 50% 30%, rgba(215,180,124,.35), transparent 60%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(184,136,74,.18), transparent 60%),
    linear-gradient(180deg, #F8F1E2 0%, var(--bg) 60%, var(--bg-2) 100%);
  overflow: hidden;
}
.hero__grain{
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.6), transparent 30%),
    radial-gradient(circle at 80% 80%, rgba(184,136,74,.18), transparent 35%);
  pointer-events:none;
}
.hero__ornament{
  position:absolute; width: 420px; height:420px; color: var(--gold-hair);
  opacity:.5; pointer-events:none;
  animation: drift 24s linear infinite;
}
.hero__ornament--tl{ top: -160px; left:-160px;}
.hero__ornament--br{ bottom: -200px; right:-200px; animation-direction: reverse;}
@keyframes drift{
  from { transform: rotate(0deg);}
  to   { transform: rotate(360deg);}
}

.hero__overline{
  display:flex; align-items:center; gap: 14px;
  font-family: var(--display);
  letter-spacing: .42em; text-transform: uppercase;
  font-size: 11px; color: var(--gold-3);
  margin-bottom: 36px;
}
.hero__overline .dot{
  width: 6px; height: 6px; border-radius:50%; background: var(--gold-3);
}

.hero__title{
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(54px, 9.5vw, 168px);
  line-height: .92;
  letter-spacing: -.02em;
  color: var(--ink);
  max-width: 1200px;
}
.hero__title .line{ display:block; overflow:hidden; padding: 4px 0;}
.hero__title .word{
  display: inline-block;
  transform: translateY(110%);
  transition: transform 1.2s var(--ease-out);
}
.hero__title .word.italic{
  font-style: italic;
  font-family: 'Cormorant Infant', var(--serif);
  font-weight: 300;
  color: transparent;
  background: linear-gradient(120deg, var(--gold-3) 10%, var(--gold-2) 55%, var(--gold-3) 95%);
  -webkit-background-clip: text; background-clip:text;
}
.in-view .hero__title .word{ transform: translateY(0);}
.in-view .hero__title .line:nth-child(1) .word:nth-child(1){ transition-delay: 1.0s;}
.in-view .hero__title .line:nth-child(1) .word:nth-child(2){ transition-delay: 1.1s;}
.in-view .hero__title .line:nth-child(2) .word:nth-child(1){ transition-delay: 1.25s;}
.in-view .hero__title .line:nth-child(2) .word:nth-child(2){ transition-delay: 1.35s;}

.hero__sub{ margin: 32px auto 0; max-width: 580px;}
.hero__sub p{ font-size: 17px; color: var(--ink-soft); line-height: 1.6;}
.hero__sub em{
  font-style: italic;
  font-family: 'Cormorant Infant', var(--serif);
  color: var(--gold-3); font-size: 1.1em;
}

.hero__actions{ display:flex; gap: 14px; margin-top: 36px;}

.hero__strip{
  position: absolute; bottom: 0; left: 0; right: 0;
  overflow: hidden;
  padding-bottom: 24px;
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.hero__strip-track{
  display:flex; gap: 18px;
  animation: stripScroll 60s linear infinite;
  width: max-content;
}
.hero__strip-track .chip{
  width: 140px; height: 96px; border-radius: 10px; overflow:hidden;
  flex: 0 0 auto;
  box-shadow: 0 12px 28px -16px rgba(27,22,18,.45);
}
.hero__strip-track .chip img{ width:100%; height:100%; object-fit: cover;}
@keyframes stripScroll{
  from { transform: translateX(0);}
  to   { transform: translateX(-50%);}
}

.hero__scroll{
  position: absolute; left: 36px; bottom: 36px;
  display:flex; flex-direction:column; align-items:center; gap: 10px;
  font-family: var(--display); letter-spacing: .42em; text-transform: uppercase;
  font-size: 10px; color: var(--ink-soft);
  z-index: 3;
}
.hero__scroll .line-v{
  width: 1px; height: 56px;
  background: linear-gradient(to bottom, transparent, var(--ink) 50%, transparent);
  animation: lineV 2.2s ease-in-out infinite;
}
@keyframes lineV{
  0%,100% { transform: scaleY(.4); transform-origin: top;}
  50% { transform: scaleY(1); transform-origin: top;}
}
@media (max-width: 700px){
  .hero__scroll{ display:none;}
  .hero__strip-track .chip{ width: 100px; height: 70px;}
  .hero__actions{ flex-direction: column; width: 100%; max-width: 320px;}
  .btn{ justify-content: center;}
}

/* ===================== MARQUEE ===================== */
.marquee{
  background: var(--ink);
  color: var(--bg-3);
  padding: 28px 0;
  overflow: hidden;
  border-top: 1px solid var(--gold-3);
  border-bottom: 1px solid var(--gold-3);
}
.marquee__track{
  display:flex; gap: 36px; align-items:center;
  width: max-content;
  animation: marquee 38s linear infinite;
  font-family: var(--display);
  font-size: clamp(28px, 4vw, 56px);
  letter-spacing: .04em; text-transform: uppercase;
  white-space: nowrap;
}
.marquee__track .dot{ color: var(--gold-2); font-size: .6em;}
@keyframes marquee{
  from { transform: translateX(0);}
  to   { transform: translateX(-50%);}
}

/* ===================== MANIFEST ===================== */
.manifest{
  max-width: var(--w);
  margin: 0 auto;
  padding: 140px 36px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: center;
}
.manifest__col--text{ display:flex; flex-direction:column; gap: 28px;}
.manifest__col--text .display{ font-size: clamp(36px, 5vw, 72px);}
.manifest__col--text p{
  font-size: 17px; color: var(--ink-soft); max-width: 480px; line-height: 1.7;
}
.manifest__sign{
  display:flex; align-items: baseline; gap: 14px;
  margin-top: 12px; padding-top: 24px;
  border-top: 1px solid var(--line);
}
.manifest__sign .sig{
  font-family: 'Cormorant Infant', var(--serif);
  font-style: italic; font-size: 34px;
  color: var(--gold-3);
}
.manifest__sign .role{
  font-size: 12px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ink-soft);
}
.manifest__frame{
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 50px 90px -40px rgba(27,22,18,.5);
}
.manifest__frame img{
  width:100%; height:100%; object-fit: cover;
  transition: transform 1.6s var(--ease-out);
}
.manifest__frame:hover img{ transform: scale(1.04);}
.manifest__badge{
  position: absolute; left: -32px; bottom: 40px;
  background: var(--bg-3); color: var(--ink);
  padding: 22px 26px;
  display:flex; gap: 28px;
  border: 1px solid var(--gold-hair);
  box-shadow: 0 30px 60px -30px rgba(27,22,18,.4);
}
.manifest__badge .num{
  font-family: var(--serif); font-size: 36px; line-height:1; color: var(--gold-3);
}
.manifest__badge .lbl{
  font-size: 10px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ink-soft); margin-top: 6px;
}
@media (max-width: 880px){
  .manifest{ grid-template-columns: 1fr; gap: 60px; padding: 80px 22px;}
  .manifest__badge{ left: 12px;}
}

/* ===================== SERVICES ===================== */
.services{
  padding: 140px 36px 100px;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-3) 100%);
  position: relative;
}
.services__grid{
  max-width: var(--w);
  margin: 0 auto;
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.svc{
  position: relative;
  background: var(--bg-3);
  border: 1px solid var(--gold-hair);
  border-radius: 6px;
  overflow: hidden;
  display:flex; flex-direction:column;
  transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out), border-color .4s var(--ease);
  opacity: 0; transform: translateY(30px);
}
.svc.is-in{ opacity: 1; transform: translateY(0); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);}
.svc:hover{
  transform: translateY(-6px);
  box-shadow: 0 50px 80px -40px rgba(27,22,18,.4);
  border-color: var(--gold-2);
}
.svc__link{ position:absolute; inset:0; z-index:2;}
.svc__img{
  aspect-ratio: 4/5;
  overflow: hidden;
  position: relative;
}
.svc__img::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 50%, rgba(27,22,18,.18) 100%);
  pointer-events: none;
}
.svc__img img{
  width:100%; height:100%; object-fit: cover;
  transition: transform 1.4s var(--ease-out), filter 1.4s var(--ease-out);
  filter: saturate(.95);
}
.svc:hover .svc__img img{ transform: scale(1.06); filter: saturate(1.05);}
.svc__body{ padding: 28px 28px 32px; position: relative;}
.svc__num{
  position: absolute; top: -20px; right: 26px;
  font-family: var(--serif); font-style: italic;
  font-size: 56px; color: var(--gold-3);
  background: var(--bg-3);
  padding: 0 12px;
  line-height: 1;
}
.svc__title{
  font-family: var(--serif);
  font-weight: 400;
  font-size: 42px;
  line-height: 1;
  margin-bottom: 14px;
  color: var(--ink);
}
.svc__desc{ font-size: 15px; color: var(--ink-soft); line-height: 1.6; margin-bottom: 22px;}
.svc__list{
  list-style: none;
  border-top: 1px solid var(--line);
  margin-bottom: 18px;
}
.svc__list li{
  display:flex; justify-content: space-between; align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 14px;
}
.svc__list em{
  font-family: var(--serif); font-style: normal;
  color: var(--gold-3); font-size: 16px;
}
.svc__arrow{
  display:inline-block;
  font-size: 22px; color: var(--gold-3);
  transition: transform .4s var(--ease);
}
.svc:hover .svc__arrow{ transform: translateX(8px);}
@media (max-width: 980px){
  .services__grid{ grid-template-columns: 1fr;}
  .services{ padding: 80px 22px;}
}

/* highlight banner */
.highlight{
  max-width: var(--w); margin: 100px auto 0;
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 0;
  background: var(--ink);
  color: var(--bg-3);
  border-radius: 6px;
  overflow: hidden;
  position: relative;
}
.highlight::before{
  content:""; position:absolute; inset: 16px;
  border: 1px solid var(--gold-3);
  border-radius: 3px;
  pointer-events: none;
}
.highlight__copy{
  padding: 64px 56px;
  display:flex; flex-direction:column; gap: 18px;
  position: relative;
}
.highlight__copy .eyebrow{ color: var(--gold-2);}
.highlight__copy .display{ color: var(--bg-3); font-size: clamp(40px, 4.5vw, 64px);}
.highlight__copy p{ color: rgba(248,241,226,.7); font-size: 16px; max-width: 420px;}
.highlight__copy .btn{ margin-top: 8px; align-self: flex-start;}
.highlight__img{ position: relative; overflow:hidden;}
.highlight__img img{ width:100%; height:100%; object-fit: cover; min-height: 360px;}
@media (max-width: 880px){
  .highlight{ grid-template-columns: 1fr;}
  .highlight__copy{ padding: 40px 24px;}
}

/* ===================== GALLERY ===================== */
.gallery{
  padding: 140px 36px;
  background: var(--bg);
}
.gallery__grid{
  max-width: var(--w); margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 180px;
  gap: 16px;
}
.g-item{
  overflow:hidden;
  position: relative;
  border-radius: 4px;
  background: var(--bg-2);
}
.g-item img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 1.6s var(--ease-out);
}
.g-item:hover img{ transform: scale(1.06);}
.g-item figcaption{
  position:absolute; left: 14px; bottom: 14px;
  background: rgba(248,241,226,.92);
  padding: 6px 12px;
  font-family: var(--display);
  font-size: 10px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ink);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.g-item:hover figcaption{ opacity:1; transform: translateY(0);}

.g-item--a{ grid-column: span 2; grid-row: span 2;}
.g-item--b{ grid-column: span 1; grid-row: span 2;}
.g-item--c{ grid-column: span 1; grid-row: span 1;}
.g-item--d{ grid-column: span 1; grid-row: span 1;}
.g-item--e{ grid-column: span 1; grid-row: span 1;}
.g-item--f{ grid-column: span 1; grid-row: span 1;}
.g-item--g{ grid-column: span 2; grid-row: span 2;}

@media (max-width: 880px){
  .gallery__grid{
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 160px;
  }
  .g-item--a, .g-item--g{ grid-column: span 2; grid-row: span 2;}
  .g-item--b{ grid-row: span 2;}
}

/* ===================== PRICES ===================== */
.prices{
  position: relative;
  padding: 140px 36px;
  background: var(--ink);
  color: var(--bg-3);
  overflow: hidden;
}
.prices__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 80% 0%, rgba(184,136,74,.22), transparent 60%),
    radial-gradient(ellipse 50% 40% at 20% 100%, rgba(184,136,74,.16), transparent 60%);
  pointer-events:none;
}
.prices__tabs{
  position: relative;
  max-width: var(--w); margin: 0 auto 40px;
  display:flex; gap: 6px; flex-wrap: wrap; justify-content:center;
  border-bottom: 1px solid rgba(215,180,124,.18);
  padding-bottom: 20px;
}
.ptab{
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  padding: 12px 18px; border-radius: 999px;
  color: rgba(248,241,226,.55);
  transition: all .3s var(--ease);
  border: 1px solid transparent;
}
.ptab:hover{ color: var(--gold-2);}
.ptab.is-active{
  color: var(--ink); background: var(--gold-2);
  border-color: var(--gold-2);
}

.prices__panels{
  position: relative;
  max-width: var(--w); margin: 0 auto;
}
.ppanel{
  display: none;
  grid-template-columns: repeat(3, 1fr);
  gap: 56px 64px;
}
.ppanel.is-active{ display:grid; animation: panelIn .6s var(--ease-out);}
@keyframes panelIn{
  from { opacity: 0; transform: translateY(12px);}
  to   { opacity: 1; transform: translateY(0);}
}
@media (max-width: 980px){
  .ppanel.is-active{ grid-template-columns: 1fr; gap: 40px;}
}
.pgroup h4{
  font-family: var(--display);
  letter-spacing: .26em; text-transform: uppercase;
  font-size: 12px;
  color: var(--gold-2);
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(215,180,124,.25);
}
.prow{
  display: grid;
  grid-template-columns: max-content 1fr max-content;
  gap: 10px;
  align-items: baseline;
  padding: 10px 0;
  font-size: 15px;
}
.prow span{ color: rgba(248,241,226,.85);}
.prow span em{ font-style: italic; color: rgba(248,241,226,.5); font-size: 13px;}
.prow i{
  display:block; height: 1px;
  border-bottom: 1px dotted rgba(215,180,124,.3);
  align-self: center;
  margin-bottom: 6px;
}
.prow b{
  font-family: var(--serif); font-weight: 400;
  font-size: 18px;
  color: var(--gold-2);
}

.prices__foot{
  max-width: var(--w); margin: 60px auto 0;
  text-align: center;
  display:flex; flex-direction:column; align-items:center; gap: 18px;
  position: relative;
  padding-top: 40px;
  border-top: 1px solid rgba(215,180,124,.18);
}
.prices__foot p{ color: rgba(248,241,226,.65); font-size: 15px;}
.prices__foot .btn--gold{ background: var(--gold-2); color: var(--ink); border-color: var(--gold-2);}
.prices__foot .btn--gold:hover{ background: var(--bg-3); border-color: var(--bg-3);}

/* ===================== QUOTE ===================== */
.quote{
  padding: 140px 36px;
  background: var(--bg-3);
  text-align:center;
}
.quote__inner{
  max-width: 820px; margin: 0 auto;
  display:flex; flex-direction:column; gap: 24px; align-items:center;
}
.quote__mark{ width: 38px; height: 38px; color: var(--gold);}
.quote__text{
  font-family: var(--serif);
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1.3;
  font-style: italic;
  color: var(--ink);
}
.quote__by{
  font-family: var(--display);
  letter-spacing: .3em; text-transform: uppercase;
  font-size: 11px; color: var(--ink-soft);
}

/* ===================== CONTACT ===================== */
.contact{
  max-width: var(--w);
  margin: 0 auto;
  padding: 140px 36px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: stretch;
}
.contact__col--info{ display:flex; flex-direction:column; gap: 30px;}
.contact__col--info .display{ font-size: clamp(40px, 5vw, 72px);}
.contact__list{ list-style:none; display:flex; flex-direction:column; gap: 24px; margin-top: 8px;}
.contact__list li{
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}
.contact__list li:last-child{ border-bottom: 1px solid var(--line);}
.contact__list .lbl{
  font-family: var(--display);
  letter-spacing: .26em; text-transform: uppercase;
  font-size: 11px; color: var(--ink-soft);
}
.contact__list li > a,
.contact__list li > span{
  display:block; color: var(--ink); font-size: 16px;
  line-height: 1.5;
}
.contact__list li > a{
  position: relative; width: max-content;
  transition: color .3s var(--ease);
}
.contact__list li > a:hover{ color: var(--gold-3);}
.contact__list .muted{ color: var(--ink-soft); font-size: 14px;}
.contact__social{ display:flex; gap: 18px; flex-wrap: wrap;}
.contact__social a{ font-size: 14px; color: var(--gold-3) !important;}

.map{
  position: relative;
  width: 100%; height: 100%;
  min-height: 480px;
  border-radius: 6px; overflow: hidden;
  border: 1px solid var(--gold-hair);
  box-shadow: 0 50px 90px -40px rgba(27,22,18,.4);
}
.map iframe{ width: 100%; height: 100%; border: 0; filter: grayscale(.3) contrast(1.02);}
.map__pin{
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -100%);
  pointer-events: none;
  display:flex; flex-direction:column; align-items:center; gap: 6px;
}
.map__pin-dot{
  width: 16px; height: 16px; border-radius:50%;
  background: var(--gold-3);
  box-shadow: 0 0 0 4px rgba(184,136,74,.35), 0 8px 16px rgba(0,0,0,.3);
  animation: pinPulse 2s ease-in-out infinite;
}
.map__pin-label{
  background: var(--ink); color: var(--bg-3);
  padding: 6px 12px; border-radius: 999px;
  font-family: var(--display); font-size: 11px;
  letter-spacing: .2em; text-transform: uppercase;
  white-space: nowrap;
}
@keyframes pinPulse{
  0%,100% { box-shadow: 0 0 0 4px rgba(184,136,74,.35), 0 8px 16px rgba(0,0,0,.3);}
  50%     { box-shadow: 0 0 0 12px rgba(184,136,74,.0),  0 8px 16px rgba(0,0,0,.3);}
}
@media (max-width: 980px){
  .contact{ grid-template-columns: 1fr; padding: 80px 22px;}
  .contact__list li{ grid-template-columns: 1fr; gap: 6px;}
}

/* ===================== FOOTER ===================== */
.foot{
  background: var(--ink);
  color: var(--bg-3);
  padding: 80px 36px 30px;
  position: relative;
  overflow: hidden;
}
.foot__top{
  max-width: var(--w); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 2fr;
  gap: 80px;
}
.foot__brand{ display:flex; align-items:center; gap: 14px;}
.foot__mark{
  width: 56px; height: 56px; border-radius: 50%;
  border: 1px solid var(--gold);
  display:grid; place-items:center;
  font-family: var(--serif); font-size: 30px; line-height:1;
}
.foot__mark .g{ color: var(--gold-2); }
.foot__mark .b{ font-family: 'Cormorant Infant', var(--serif); font-style: italic; color: var(--bg-3); margin-left: -.1em;}
.foot__name{
  font-family: var(--display);
  letter-spacing: .3em; text-transform: uppercase;
  font-size: 14px;
}
.foot__tag{ font-size: 12px; color: rgba(248,241,226,.5); margin-top: 4px;}
.foot__cols{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.foot__h{
  font-family: var(--display);
  letter-spacing: .26em; text-transform: uppercase;
  font-size: 11px; color: var(--gold-2);
  margin-bottom: 14px;
}
.foot__cols a{
  display:block; font-size: 14px; color: rgba(248,241,226,.75);
  padding: 4px 0;
  transition: color .3s var(--ease), transform .3s var(--ease);
}
.foot__cols a:hover{ color: var(--gold-2); transform: translateX(3px);}

.foot__big{
  font-family: var(--serif);
  font-size: clamp(26px, 11.5vw, 200px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
  text-align: center;
  color: transparent;
  -webkit-text-stroke: 1px rgba(215,180,124,.32);
  margin: 60px 0 24px;
  user-select: none;
  white-space: nowrap;
}
.foot__bottom{
  max-width: var(--w); margin: 0 auto;
  display:flex; justify-content:space-between; align-items:center;
  gap: 18px;
  padding-top: 22px;
  border-top: 1px solid rgba(215,180,124,.12);
  font-size: 12px; color: rgba(248,241,226,.5);
}
@media (max-width: 880px){
  .foot__top{ grid-template-columns: 1fr; gap: 40px;}
  .foot__cols{ grid-template-columns: 1fr 1fr;}
  .foot__bottom{ flex-direction:column; text-align:center;}
}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}
