/* Novadent — Dark bold redesign. Farsoun-inspired.
   Palette: near-black bg, white text, teal accent.
   Typography: Inter 800-900 all-caps headlines + Inter 400 body. */

:root{
  /* Dark theme — all old variable names preserved for template compat */
  --blue:#4A8A7C;
  --blue-dark:#3A7A6C;
  --blue-soft:rgba(74,138,124,.15);
  --sage:#4A8A7C;
  --sage-soft:rgba(74,138,124,.12);
  --cream:#0A0A0A;
  --cream-warm:#141414;
  --cream-deep:#1A1A1A;
  --ink:#F5F5F5;
  --ink-soft:#B0B0B0;
  --muted:#6A6A6A;
  --line:rgba(255,255,255,.10);
  --warn:#E06040;
  --ok:#4A8A7C;
}

html,body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--cream);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

/* ── Typography ── */
.font-serif{font-family:'Inter',system-ui,sans-serif;font-weight:600;}
.display{
  font-family:'Inter',system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:.92;
}
.italic-serif{
  font-family:'Inter',system-ui,sans-serif;
  font-style:normal;
  font-weight:300;
  letter-spacing:.01em;
}

/* ── Colour utilities ── */
.text-blue{color:var(--blue);}
.text-blue-dark{color:var(--blue-dark);}
.text-sage{color:var(--sage);}
.text-ink{color:var(--ink);}
.text-ink-soft{color:var(--ink-soft);}
.text-muted{color:var(--muted);}
.text-cream{color:var(--ink);}

.bg-blue{background:var(--blue);}
.bg-blue-soft{background:var(--blue-soft);}
.bg-sage{background:var(--sage);}
.bg-sage-soft{background:var(--sage-soft);}
.bg-cream{background:var(--cream);}
.bg-cream-warm{background:var(--cream-warm);}
.bg-cream-deep{background:var(--cream-deep);}
.bg-ink{background:var(--cream-warm);}

.border-line{border-color:var(--line);}

/* ── Eyebrow / chip / badge ── */
.eyebrow{
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.3em;
  color:var(--blue);
  font-weight:700;
}
.chip{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.78rem;
  font-weight:500;
  padding:.35rem .88rem;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#F5F5F5;
  border:1px solid rgba(255,255,255,.15);
}
.chip-sage{background:rgba(74,138,124,.18);color:#7ACFBE;border-color:rgba(74,138,124,.30);}
.chip-outline{background:transparent;border:1px solid var(--line);color:var(--ink-soft);}
.badge{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  font-size:.7rem;
  font-weight:700;
  padding:.2rem .55rem;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.badge-prsi{background:rgba(74,138,124,.18);color:#7ACFBE;}

/* ── Buttons ── */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:inherit;
  font-weight:600;
  font-size:.84rem;
  padding:.85rem 1.8rem;
  border-radius:999px;
  transition:all .22s ease;
  border:1px solid transparent;
  cursor:pointer;
  letter-spacing:.1em;
  text-transform:uppercase;
}
/* Primary: white bg, black text */
.btn-blue{background:#F5F5F5;color:#0A0A0A;border-color:#F5F5F5;}
.btn-blue:hover{background:#fff;border-color:#fff;transform:translateY(-1px);box-shadow:0 12px 32px -10px rgba(0,0,0,.6);}
/* Ghost outline: white border + white text */
.btn-outline{background:transparent;color:#F5F5F5;border-color:rgba(255,255,255,.55);}
.btn-outline:hover{background:rgba(255,255,255,.08);border-color:#fff;}
/* Alias — ghost is same as outline on dark bg */
.btn-ghost{background:transparent;color:#F5F5F5;border-color:rgba(255,255,255,.55);}
.btn-ghost:hover{background:rgba(255,255,255,.10);border-color:#fff;}
/* Dark (used on light surface - booking form submit) */
.btn-dark{background:#F5F5F5;color:#0A0A0A;}
.btn-dark:hover{background:#fff;}

/* ── Nav ── */
.nav-link{
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(245,245,245,.8);
  font-weight:500;
  transition:color .2s;
  padding:.3rem 0;
  position:relative;
}
.nav-link::after{
  content:'';
  position:absolute;
  bottom:-3px;left:0;
  width:0;height:1px;
  background:var(--blue);
  transition:width .25s ease;
}
.nav-link:hover::after,.nav-link.active::after{width:100%;}
.nav-link:hover,.nav-link.active{color:var(--blue);}

.mobile-nav-link{
  display:block;
  font-size:.95rem;
  font-weight:500;
  color:rgba(245,245,245,.75);
  padding:.85rem .65rem;
  border-radius:.6rem;
  transition:color .15s, background .15s;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.78rem;
}
.mobile-nav-link:hover,.mobile-nav-link.active{color:#fff;background:rgba(255,255,255,.06);}

/* ── Scroll-transparent nav ── fully transparent, dark on scroll ── */
#site-header{
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
#site-header.nav-scrolled{
  background:rgba(10,10,10,.94);
  border-bottom-color:rgba(255,255,255,.08);
  backdrop-filter:blur(18px);
}

/* ── Card surfaces ── */
.card{
  background:#141414;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  transition:box-shadow .2s, border-color .2s;
}
.card:hover{border-color:rgba(255,255,255,.22);}
.card-cream{background:#1A1A1A;border-radius:16px;border:1px solid rgba(255,255,255,.08);}

/* ── Form controls ── */
.input{
  width:100%;
  background:#1A1A1A;
  border:1px solid rgba(255,255,255,.14);
  border-radius:1rem;
  padding:.9rem 1.05rem;
  color:#F5F5F5;
  font-family:inherit;
  font-size:.98rem;
  transition:border .15s, box-shadow .15s;
}
.input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,138,124,.20);}
.input::placeholder{color:var(--muted);}
/* Select arrow */
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236A6A6A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;}
select.input option{background:#1A1A1A;color:#F5F5F5;}
.label{
  display:block;
  font-size:.68rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--blue);
  font-weight:700;
  margin-bottom:.5rem;
}
.field-error{color:var(--warn);font-size:.82rem;margin-top:.4rem;}

/* ── Flash banners ── */
.flash{
  border-radius:1rem;
  padding:1rem 1.1rem;
  font-size:.95rem;
  display:flex;
  gap:.7rem;
  align-items:flex-start;
}
.flash-ok{background:rgba(74,138,124,.15);color:#7ACFBE;border:1px solid rgba(74,138,124,.30);}
.flash-err{background:rgba(224,96,64,.12);color:#F0907A;border:1px solid rgba(224,96,64,.28);}

/* ── Stat pulse dot ── */
.stat-pulse{
  display:inline-block;
  width:7px;height:7px;
  background:var(--blue);
  border-radius:50%;
  animation:pulse 2.2s infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

/* ── Dot pattern ── subtle on dark ── */
.dot-pattern{
  background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:24px 24px;
}

/* ── Blob ── */
.blob{border-radius:60% 40% 70% 30%/50% 60% 40% 50%;}

/* ── Marquee ── */
.marquee{display:flex;gap:4rem;animation:marquee-scroll 40s linear infinite;}
@keyframes marquee-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── Fade-in on load ── */
.fade{animation:fade .5s cubic-bezier(.2,.7,.2,1) both;}
@keyframes fade{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

/* ── Scroll-reveal ── */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1);
}
.reveal.visible{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.22s;}
.reveal-delay-3{transition-delay:.32s;}
.reveal-delay-4{transition-delay:.42s;}
.reveal-delay-5{transition-delay:.52s;}

/* ── Pricing table alternating rows ── */
table tbody tr:nth-child(even){background:rgba(255,255,255,.02);}
table tbody tr:hover{background:rgba(255,255,255,.04);}

@media(max-width:768px){.hide-mobile{display:none;}}
