/* ===== MERIDIAN ELITE — shared styles ===== */
:root{
  --bg:#F4EFE7; --bg-2:#EFE8DD; --ink:#2B2A28; --ink-soft:#5A554E;
  --gold:#A8865C; --gold-soft:#C0A375; --line:#D8CDBC; --card:#FBF8F2;
  --error:#c0392b;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Jost',sans-serif;background:var(--bg);color:var(--ink);font-weight:300;line-height:1.6;overflow-x:hidden}
.serif{font-family:'Cormorant Garamond',serif}
a{color:inherit;text-decoration:none}
.eyebrow{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:400}
.gold{color:var(--gold)}

/* ---- top bar ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
  padding:1.6rem clamp(2.5rem,7vw,7rem) 1.6rem clamp(1.4rem,5vw,5rem);transition:background .4s,padding .4s,box-shadow .4s;
  background:linear-gradient(180deg,rgba(247,243,236,.78),rgba(247,243,236,0))}
.topbar.solid{background:rgba(244,239,231,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line);padding-top:1.1rem;padding-bottom:1.1rem}
.logo{line-height:1}
.logo .name{font-family:'Cormorant Garamond',serif;font-weight:500;letter-spacing:.26em;color:var(--gold);font-size:1.5rem}
.logo .sub{font-size:.56rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-soft);margin-top:.4em;padding-left:.2em}
.nav{display:flex;gap:2.4rem;align-items:center;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:#23211E}
.nav a{position:relative;padding:.45rem .9rem;transition:color .3s;border-radius:2px;
  text-shadow:0 1px 6px rgba(247,243,236,.9)}
.nav a::after{content:'';position:absolute;left:.9rem;bottom:.15rem;width:0;height:1px;background:var(--gold);transition:width .35s}
.nav a:hover,.nav a.active{color:var(--gold)}
.nav a:hover::after,.nav a.active::after{width:calc(100% - 1.8rem)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}
.burger span{width:24px;height:1.5px;background:var(--ink);transition:.3s}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:49;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2rem;
  opacity:0;pointer-events:none;transition:opacity .4s}
.mnav.open{opacity:1;pointer-events:auto}
.mnav a{font-family:'Cormorant Garamond',serif;font-size:2rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.mnav a.active{color:var(--gold)}

/* ---- buttons ---- */
.btn{display:inline-block;background:transparent;border:1px solid var(--gold);color:var(--gold);padding:1rem 2.4rem;font-family:'Jost',sans-serif;
  font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:all .4s}
.btn:hover{background:var(--gold);color:#fff;letter-spacing:.28em}

/* ---- footer ---- */
footer{padding:1.6rem clamp(1.4rem,5vw,5rem);background:transparent;border-top:1px solid var(--line);
  display:flex;justify-content:center;align-items:center;text-align:center}
footer .c{display:flex;flex-direction:column;align-items:center;gap:.32rem}
footer .ftel{display:inline-flex;align-items:center;gap:.5rem;font-size:1rem;letter-spacing:.12em;color:var(--gold);transition:color .3s}
footer .ftel:hover{color:var(--gold-soft)}
footer .ftel .wa-ic{width:1.2em;height:1.2em;fill:currentColor;display:block}
footer .fmail{font-size:.92rem;letter-spacing:.08em;color:var(--gold);transition:color .3s}
footer .fmail:hover{color:var(--gold-soft)}
footer .cc{font-size:.7rem;letter-spacing:.14em;color:var(--ink-soft);margin-top:.55rem}

/* ---- reveal helper (used if JS off) ---- */
.gsap-fade{opacity:0;animation:fadeSafe .01s linear 2.5s forwards}
@keyframes fadeSafe{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.gsap-fade{opacity:1!important}}

@media(max-width:760px){
  .nav{display:none}
  .burger{display:flex}
}

/* form note error state (global) */
.form-note.err{color:var(--error)}