:root{
  --brand-gold: #c9a646;
  --brand-brown: #2b1d10;
  --brand-cream: #f7f3ea;
  --brand-muted: #6c6a63;
  --brand-card: rgba(255,255,255,.92);
  --brand-shadow: 0 10px 30px rgba(0,0,0,.12);
  --nav-height: 76px;

  --font-body: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-heading: 'Marcellus', serif;
}

html{ scroll-behavior:smooth; }
body{
  font-family: var(--font-body);
  background: var(--brand-cream);
  color: var(--brand-brown);
}

a{ color: var(--brand-gold); }
a:hover{ color:#a7832a; }

.text-muted-brand{ color: var(--brand-muted) !important; }


/* Navbar */
.navbar{
  backdrop-filter: blur(10px);
  background: rgba(247,243,234,.88);
  border-bottom: 1px solid rgba(43,29,16,.08);
}
.navbar .nav-link{
  color: var(--brand-brown);
  font-weight: 600;
  opacity: .85;
}
.navbar .nav-link:hover{ opacity:1; }
.navbar .nav-link.active{ color: var(--brand-gold); }

/* Buttons */
.btn-brand{
  background: var(--brand-gold);
  border-color: var(--brand-gold);
  color:#fff;
  font-weight: 800;
}
.btn-brand:hover{
  background:#b38e35;
  border-color:#b38e35;
  color:#fff;
}
.btn-outline-brand{
  border-color: var(--brand-gold);
  color: var(--brand-brown);
  font-weight: 800;
}
.btn-outline-brand:hover{
  background: var(--brand-gold);
  border-color: var(--brand-gold);
  color:#fff;
}

/* Layout helpers */
section{ scroll-margin-top: calc(var(--nav-height) + 18px); }
.section-title{ font-family: var(--font-heading); letter-spacing:.2px; }

/* Cards */
.soft-card{
  background: var(--brand-card);
  border: 1px solid rgba(43,29,16,.08);
  box-shadow: var(--brand-shadow);
  border-radius: 1.25rem;
}

/* Parallax */
.parallax{
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.parallax::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(43,29,16,.72), rgba(43,29,16,.25));
}
.parallax > .container{
  position: relative;
  z-index: 1;
}
@media (min-width: 992px){
  .parallax{ background-attachment: fixed; }
}

/* Hero */
.hero{
  min-height: 78vh;
  display:flex;
  align-items:center;
  padding-top: calc(var(--nav-height) + 24px);
  padding-bottom: 48px;
}
.hero h1{ font-family: var(--font-heading); font-weight: 400; line-height: 1.05; }
.hero .badge{
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  font-weight: 800;
}

.parallax-slim{ padding: 280px 0; }
.parallax-slim::before{
  background: linear-gradient(180deg, rgba(43,29,16,.65), rgba(43,29,16,.35));
}

/* Price table */
.price-table td, .price-table th{
  vertical-align: middle;
  padding: 14px 12px;
}

footer{ border-top: 1px solid rgba(43,29,16,.08); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .parallax{ background-attachment: scroll !important; }
}

/* Typography */
h1, h2, h3, h4, h5, h6,
.section-title,
.navbar-brand span{
  font-family: var(--font-heading);
}

/* Hero heading should look elegant (Marcellus is regular weight) */
.hero h1{
  font-weight: 400;
  letter-spacing: .3px;
}

/* Cookie Banner */
.cookie-banner{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1090;
  background: rgba(255,255,255,.96);
  border-top: 1px solid rgba(43,29,16,.10);
}
.cookie-banner p{ line-height: 1.35; }
.cookie-banner a{ color: var(--brand-gold); font-weight: 700; }
.cookie-banner .btn{ border-radius: 999px; }

@supports (backdrop-filter: blur(10px)){
  .cookie-banner{
    background: rgba(247,243,234,.92);
    backdrop-filter: blur(10px);
  }
}

/* make sure banner doesn't cover content when opened via anchor */
body.cookie-banner-visible{
  padding-bottom: 120px;
}
@media (min-width: 992px){
  body.cookie-banner-visible{ padding-bottom: 92px; }
}
