.container{
  width:min(100% - 2.5rem, var(--container));
  margin-inline:auto;
}

.section{
  padding-block:var(--section-y);
  scroll-margin-top:calc(var(--header-h) - var(--section-y) + 2rem);
  position:relative;
}

.section--tint{ background:var(--cream-2); }

.section-head{
  max-width:720px;
  margin:0 auto clamp(1.4rem, 2.4vw, 2rem);
  text-align:center;
}

.section-head h2{ margin-bottom:.28em; }

.section-head p{ color:var(--muted); font-size:1.05rem; }

.eyebrow{
  display:block;
  font-family:var(--ff-body);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.38em;
  text-transform:uppercase;
  color:var(--gold-ink);
  margin-bottom:.55rem;
}

.ornament{
  display:flex; align-items:center; justify-content:center;
  gap:.7rem; margin:0 0 .8rem;
}

.ornament i{
  display:block; width:6px; height:6px;
  background:var(--gold); transform:rotate(45deg);
}

.ornament::before,.ornament::after{
  content:""; height:1px; width:clamp(38px, 8vw, 84px);
  background:linear-gradient(90deg, transparent, var(--gold));
}

.ornament::after{ background:linear-gradient(90deg, var(--gold), transparent); }

.ornament--start{ justify-content:flex-start; }

.ornament--start::before{ display:none; }

.site-header{
  position:fixed; top:0; left:0; right:0; z-index:var(--z-header);
  padding-block:1.15rem;
  background:rgba(251,248,243,.95);
  transition:box-shadow .35s ease;
}

.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}

.brand{ display:flex; align-items:center; gap:.8rem; color:var(--bordeaux-deep); }

.brand-mark{
  width:46px; height:46px; flex:none;
  display:grid; place-items:center;
  border:1px solid var(--gold); border-radius:50%;
  font-family:var(--ff-display); font-size:1.4rem; font-weight:600;
  color:var(--gold); line-height:1;
}

.brand-text{ display:block; line-height:1; }

.brand-text strong{
  display:block; font-family:var(--ff-display);
  font-size:1.45rem; font-weight:600; letter-spacing:.02em;
}

.brand-text small{
  display:block; margin-top:.28rem;
  font-size:.6rem; letter-spacing:.45em; text-transform:uppercase; opacity:.9;
}

.nav{ display:flex; align-items:center; gap:clamp(1rem, 2vw, 2.2rem); }

.nav-list{ display:flex; align-items:center; gap:clamp(.95rem, 1.7vw, 1.9rem); }

.nav-list a{
  position:relative;
  font-size:clamp(.72rem, .85vw, .8rem); font-weight:400;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--bordeaux-deep); padding-block:.35rem;
  transition:color .3s ease;
}

.nav-list a::after{
  content:""; position:absolute; left:0; bottom:0;
  width:100%; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:right;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}

.nav-list a:hover::after,
.nav-list a[aria-current="true"]::after{ transform:scaleX(1); transform-origin:left; }

.nav-list a[aria-current="true"]{ color:var(--bordeaux); }

.site-header.is-scrolled{
  box-shadow:0 10px 40px -28px rgba(43,34,38,.75);
}

.nav-toggle{
  display:none;
  width:46px; height:46px; flex:none;
  align-items:center; justify-content:center;
  flex-direction:column; gap:5px;
  border:1px solid rgba(92,27,46,.3); border-radius:50%;
  transition:border-color .3s ease, background-color .3s ease;
}

.nav-toggle span{
  display:block; width:19px; height:1.5px; background:var(--bordeaux-deep);
  transition:transform .3s ease, opacity .25s ease, background-color .3s ease;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }

.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }

.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.nav-backdrop{
  position:fixed; inset:0; z-index:var(--z-backdrop);
  background:rgba(46,13,24,.55);
  backdrop-filter:blur(3px);
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
}

.nav-backdrop.is-open{ opacity:1; visibility:visible; }

.site-footer{
  background:var(--bordeaux-deep);
  color:rgba(255,255,255,.72);
  padding-top:clamp(3.5rem, 6vw, 5.5rem);
  font-size:.94rem;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1.2fr;
  gap:clamp(2rem, 4vw, 3.5rem);
  padding-bottom:clamp(2.5rem, 5vw, 4rem);
}

.site-footer h4{
  color:var(--gold-2);
  font-family:var(--ff-body);
  font-size:.76rem; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase;
  margin-bottom:1.3rem;
}

.site-footer .brand{ color:#fff; margin-bottom:1.2rem; }

.footer-about p{ color:rgba(255,255,255,.66); max-width:42ch; }

.footer-links{ display:grid; gap:.75rem; }

.footer-links a{
  position:relative; color:rgba(255,255,255,.72);
  transition:color .3s ease, padding-left .3s ease;
}

.footer-links a::before{
  content:""; position:absolute; left:0; top:50%;
  width:0; height:1px; background:var(--gold);
  transform:translateY(-50%); transition:width .3s ease;
}

.footer-links a:hover{ color:#fff; padding-left:1.15rem; }

.footer-links a:hover::before{ width:.8rem; }

.footer-contact{ display:grid; gap:.85rem; }

.footer-contact p{ margin:0; }

.footer-contact .btn{ margin-top:.6rem; align-self:start; }

.footer-contact a:hover{ color:#fff; }

.socials{ display:flex; gap:.7rem; margin-top:1.6rem; }

.social-link{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  border:1px solid rgba(192,160,98,.4);
  color:var(--gold-2);
  transition:background-color .3s ease, color .3s ease, transform .3s ease;
}

.social-link:hover{ background:var(--gold); color:var(--bordeaux-deep); transform:translateY(-3px); }

.social-link svg{ width:18px; height:18px; }

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding-block:1.5rem;
  display:flex; flex-wrap:wrap; gap:.6rem 1.5rem;
  align-items:center; justify-content:space-between;
  font-size:.82rem; color:rgba(255,255,255,.5);
}
