/* ══════════════════════════════════════════════════
   SOMERSET HOME PHYSIO  ·  Design System v3
   Palette  : Sage green + slate + warm white
   Fonts    : Plus Jakarta Sans (UI) · Lora (display)
══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --sage:         #4a8072;
  --sage-mid:     #3a6b5f;
  --sage-dark:    #2c5248;
  --sage-light:   #eaf3f0;
  --sage-pale:    #f3f9f7;

  --slate:        #1b2d3e;
  --slate-mid:    #263d52;

  --warm:         #fdfcfa;
  --cream:        #f6f3ee;

  --text:         #1b2d3e;
  --text-mid:     #475569;
  --text-muted:   #718096;

  --border:       #dde5e2;
  --border-light: #edf2f0;

  --sh-xs:  0 1px 3px rgba(27,45,62,.06),0 1px 2px rgba(27,45,62,.04);
  --sh-sm:  0 2px 8px rgba(27,45,62,.08),0 1px 3px rgba(27,45,62,.05);
  --sh-md:  0 4px 20px rgba(27,45,62,.10),0 2px 6px rgba(27,45,62,.06);
  --sh-lg:  0 12px 40px rgba(27,45,62,.13),0 4px 12px rgba(27,45,62,.08);
  --sh-sage:0 4px 24px rgba(74,128,114,.30);

  --r-sm:  6px;
  --r-md:  12px;
  --r-lg:  18px;
  --r-xl:  28px;
  --r-pill:999px;

  --ease: cubic-bezier(.22,1,.36,1);
}

html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

body {
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  color:var(--text);
  background:var(--warm);
  line-height:1.65;
  overflow-x:hidden;
}

a { color:inherit; }
img { max-width:100%; height:auto; }

/* ── Scroll reveal ── */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.d1{transition-delay:.10s} .d2{transition-delay:.20s} .d3{transition-delay:.30s}
.d4{transition-delay:.40s} .d5{transition-delay:.50s}

/* ══════════════════════════════════════════════
   NAV
══════════════════════════════════════════════ */
nav {
  position:sticky; top:0; z-index:300;
  background:rgba(253,252,250,.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s,box-shadow .3s;
}
nav.scrolled { border-color:var(--border-light); box-shadow:var(--sh-sm); }

.nav-inner {
  max-width:1160px; margin:0 auto; padding:0 2rem;
  height:72px; display:flex; align-items:center;
  justify-content:space-between; gap:1.5rem;
}

.nav-logo { display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0; }
.nav-logo img { height:44px; width:auto; transition:opacity .2s; }
.nav-logo:hover img { opacity:.85; }
.nav-brand { font-family:'Lora',serif; font-size:1.25rem; font-weight:600; color:var(--slate); line-height:1.25; letter-spacing:-.01em; }

.nav-links { display:flex; align-items:center; list-style:none; gap:.1rem; }
.nav-links a {
  display:block; text-decoration:none; color:var(--text-mid);
  font-size:.82rem; font-weight:500; padding:.42rem .9rem;
  border-radius:var(--r-pill); transition:color .18s,background .18s; white-space:nowrap;
}
.nav-links a:hover { color:var(--sage); background:var(--sage-pale); }
.nav-links a.active { color:var(--sage); background:var(--sage-light); font-weight:600; }

.nav-cta { flex-shrink:0; }
.nav-cta a {
  display:inline-flex; align-items:center; gap:6px; text-decoration:none;
  background:var(--sage); color:#fff; font-size:.82rem; font-weight:600;
  padding:.5rem 1.15rem; border-radius:var(--r-pill); box-shadow:var(--sh-sage);
  transition:background .2s,transform .15s,box-shadow .2s; white-space:nowrap;
}
.nav-cta a:hover { background:var(--sage-mid); transform:translateY(-1px); box-shadow:0 6px 28px rgba(74,128,114,.38); }

.hamburger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:6px;
  border-radius:var(--r-sm); transition:background .2s;
}
.hamburger:hover { background:var(--sage-pale); }
.hamburger span { display:block; width:20px; height:1.5px; background:var(--slate); border-radius:2px; transition:all .3s var(--ease); }
.hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

.mobile-menu {
  display:none; flex-direction:column;
  background:var(--warm); border-bottom:1px solid var(--border);
  padding:.75rem 1.5rem 1.25rem; gap:.15rem;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  text-decoration:none; color:var(--text-mid); font-size:.9rem; font-weight:500;
  padding:.6rem .75rem; border-radius:var(--r-sm); transition:background .15s,color .15s;
}
.mobile-menu a:hover { background:var(--sage-pale); color:var(--sage); }
.mobile-menu a.active { color:var(--sage); font-weight:600; background:var(--sage-light); }
.mob-cta { margin-top:.6rem; padding-top:.75rem; border-top:1px solid var(--border-light); }
.mob-cta a { display:block; text-align:center; background:var(--sage)!important; color:#fff!important; font-weight:600!important; border-radius:var(--r-pill)!important; box-shadow:var(--sh-sage); }

/* ══════════════════════════════════════════════
   PAGE HEADER
══════════════════════════════════════════════ */
.page-header {
  background:var(--slate); padding:76px 2rem 64px;
  position:relative; overflow:hidden;
}
.page-header::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 90% at 75% 50%,rgba(74,128,114,.28) 0%,transparent 65%);
  pointer-events:none;
}
.page-header::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);
}
.ph-inner { max-width:1160px; margin:0 auto; position:relative; }

.page-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.72rem; text-transform:uppercase; letter-spacing:.14em;
  color:rgba(255,255,255,.5); font-weight:600; margin-bottom:1rem;
}
.page-tag::before { content:''; width:22px; height:1.5px; background:var(--sage); display:block; }

.page-title {
  font-family:'Lora',serif; font-size:clamp(2rem,4vw,2.8rem);
  font-weight:500; color:#fff; line-height:1.15;
  letter-spacing:-.02em; margin-bottom:.85rem;
}
.page-sub { font-size:1.05rem; color:rgba(255,255,255,.62); max-width:580px; line-height:1.72; }

/* ══════════════════════════════════════════════
   SECTIONS
══════════════════════════════════════════════ */
.section    { padding:92px 2rem; }
.section-sm { padding:60px 2rem; }
.section-inner { max-width:1160px; margin:0 auto; }

.bg-white { background:#fff; }
.bg-warm  { background:var(--warm); }
.bg-pale  { background:var(--sage-pale); }
.bg-cream { background:var(--cream); }
.bg-slate { background:var(--slate); }

.s-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.71rem; text-transform:uppercase; letter-spacing:.14em;
  color:var(--sage); font-weight:700; margin-bottom:.9rem;
}
.s-tag::before { content:''; width:18px; height:1.5px; background:var(--sage); display:block; }
.s-tag.light { color:rgba(255,255,255,.55); }
.s-tag.light::before { background:rgba(255,255,255,.4); }

.s-heading {
  font-family:'Lora',serif; font-size:clamp(1.85rem,3.2vw,2.6rem);
  font-weight:500; color:var(--slate); line-height:1.18;
  letter-spacing:-.02em; margin-bottom:1rem;
}
.s-heading em { font-style:italic; color:var(--sage); }
.s-heading.light { color:#fff; }

.s-lead { font-size:1.03rem; color:var(--text-mid); line-height:1.78; max-width:600px; }
.s-lead.wide { max-width:740px; }
.s-lead.light { color:rgba(255,255,255,.65); }

/* ══════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  text-decoration:none; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.875rem; font-weight:600; letter-spacing:.01em;
  padding:.82rem 1.8rem; border-radius:var(--r-pill);
  border:1.5px solid transparent; cursor:pointer;
  transition:all .2s var(--ease); white-space:nowrap; line-height:1;
}
.btn:hover  { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }

.btn-primary { background:var(--sage); color:#fff; border-color:var(--sage); box-shadow:var(--sh-sage); }
.btn-primary:hover { background:var(--sage-mid); border-color:var(--sage-mid); box-shadow:0 6px 28px rgba(74,128,114,.38); }

.btn-outline { background:transparent; color:var(--sage); border-color:var(--sage); }
.btn-outline:hover { background:var(--sage-light); }

.btn-white { background:#fff; color:var(--slate); border-color:#fff; box-shadow:var(--sh-sm); }
.btn-white:hover { background:var(--sage-pale); }

.btn-ghost { background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.22); }
.btn-ghost:hover { background:rgba(255,255,255,.18); }

.btn-sm { font-size:.8rem; padding:.55rem 1.2rem; }
.btn-lg { font-size:.95rem; padding:.95rem 2.3rem; }
.btn-row { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; }

/* ══════════════════════════════════════════════
   CHECK LIST
══════════════════════════════════════════════ */
.check-list { list-style:none; display:flex; flex-direction:column; gap:.9rem; }
.check-list li { display:flex; align-items:flex-start; gap:12px; font-size:.97rem; color:var(--text-mid); line-height:1.55; }
.chk {
  width:20px; height:20px; border-radius:50%; background:var(--sage-light);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;
}
.chk svg { width:11px; height:11px; stroke:var(--sage); fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }

/* ══════════════════════════════════════════════
   TRUST BAR
══════════════════════════════════════════════ */
.trust-bar { background:var(--slate); padding:22px 2rem; }
.trust-bar-inner {
  max-width:1160px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
  gap:0; flex-wrap:wrap;
}
.trust-item {
  display:flex; align-items:center; gap:9px; padding:7px 26px;
  color:rgba(255,255,255,.78); font-size:.85rem; font-weight:400; position:relative;
}
.trust-item+.trust-item::before {
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1px; height:18px; background:rgba(255,255,255,.14);
}
.trust-dot { width:6px; height:6px; border-radius:50%; background:var(--sage); flex-shrink:0; }

/* ══════════════════════════════════════════════
   FORMS
══════════════════════════════════════════════ */
.form-field { display:flex; flex-direction:column; gap:.42rem; margin-bottom:1.1rem; }
.form-field label { font-size:.74rem; text-transform:uppercase; letter-spacing:.09em; color:var(--text-mid); font-weight:600; }
.form-field input,.form-field select,.form-field textarea {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.95rem; color:var(--text);
  background:var(--sage-pale); border:1.5px solid var(--border);
  border-radius:var(--r-md); padding:.75rem 1rem; outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s; width:100%;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus {
  border-color:var(--sage); background:#fff; box-shadow:0 0 0 3px rgba(74,128,114,.12);
}
.form-field input::placeholder,.form-field textarea::placeholder { color:var(--text-muted); opacity:.7; }
.form-field textarea { resize:vertical; min-height:130px; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */
footer { background:var(--slate); }
.footer-top {
  max-width:1160px; margin:0 auto; padding:64px 2rem 44px;
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem;
}
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:1rem; }
.footer-logo img { height:38px; filter:brightness(0) invert(1); opacity:.75; }
.footer-brand-name { font-family:'Lora',serif; font-size:1.2rem; color:rgba(255,255,255,.95); font-weight:600; }
.footer-tagline { font-size:.86rem; color:rgba(255,255,255,.42); line-height:1.68; max-width:230px; margin-bottom:1.4rem; }
.footer-contact a,.footer-contact p { display:block; font-size:.85rem; color:rgba(255,255,255,.62); text-decoration:none; margin-bottom:.35rem; transition:color .2s; }
.footer-contact a:hover { color:rgba(255,255,255,.9); }
.footer-col-title { font-size:.7rem; text-transform:uppercase; letter-spacing:.13em; color:rgba(255,255,255,.35); font-weight:700; margin-bottom:1rem; }
.footer-nav-list { list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.footer-nav-list a { text-decoration:none; color:rgba(255,255,255,.58); font-size:.87rem; transition:color .2s; }
.footer-nav-list a:hover { color:rgba(255,255,255,.9); }
.footer-accreds { display:flex; flex-direction:column; gap:.75rem; }
.footer-accreds img { height:42px; width:auto; filter:brightness(0) invert(1); opacity:.4; transition:opacity .2s; }
.footer-accreds img:hover { opacity:.65; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding:1.4rem 2rem; }
.footer-bottom-inner {
  max-width:1160px; margin:0 auto; display:flex;
  justify-content:space-between; align-items:center;
  gap:1rem; flex-wrap:wrap; font-size:.77rem; color:rgba(255,255,255,.3);
}
.footer-social a { color:rgba(255,255,255,.4); text-decoration:none; font-size:.78rem; display:inline-flex; align-items:center; gap:5px; transition:color .2s; }
.footer-social a:hover { color:rgba(255,255,255,.8); }

/* ══════════════════════════════════════════════
   UTILS
══════════════════════════════════════════════ */
.text-center { text-align:center; }
.text-center .s-tag,.text-center .page-tag { justify-content:center; }
.text-center .s-lead { margin-left:auto; margin-right:auto; }
.mt-2{margin-top:1rem} .mt-3{margin-top:1.5rem} .mt-4{margin-top:2rem} .mt-5{margin-top:2.5rem} .mt-6{margin-top:3rem}
.divider { height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent); border:none; margin:0; }

/* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */
@media(max-width:980px) { .footer-top { grid-template-columns:1fr 1fr; } }

@media(max-width:760px) {
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
  .section    { padding:64px 1.25rem; }
  .section-sm { padding:44px 1.25rem; }
  .page-header { padding:54px 1.25rem 44px; }
  .nav-inner  { padding:0 1.25rem; }
  .trust-bar  { padding:16px 1.25rem; }
  .trust-item { padding:6px 14px; font-size:.8rem; }
  .footer-top { grid-template-columns:1fr; padding:44px 1.25rem 32px; gap:2rem; }
  .footer-bottom { padding:1.25rem; }
  .form-row-2 { grid-template-columns:1fr; }
}
