/* ============================================================
   VitalRoot — Editorial / Organic Aesthetic
   Warm earthy palette · DM Serif Display + Outfit
   ============================================================ */

/* — Fonts (Google, fallback-safe) — */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600;700&display=swap');

/* — Variables — */
:root{
  --c-bg      : #faf8f5;
  --c-surface : #ffffff;
  --c-text    : #2a2622;
  --c-muted   : #6b6560;
  --c-accent  : #4e7a5e;
  --c-accent-l: #deeee3;
  --c-accent-d: #395c44;
  --c-warm    : #bf8c3e;
  --c-warm-l  : #fdf5e8;
  --c-line    : #e6e2dc;
  --c-hero-bg : #2a2622;
  --ff-head   : 'DM Serif Display', Georgia, serif;
  --ff-body   : 'Outfit', 'Segoe UI', sans-serif;
  --max-w     : 1120px;
  --r         : 8px;
  --shadow    : 0 2px 12px rgba(42,38,34,.06);
}

/* — Reset — */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--ff-body);
  font-weight:400;
  color:var(--c-text);
  background:var(--c-bg);
  line-height:1.72;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-accent);text-decoration:none;transition:color .2s}
a:hover{color:var(--c-accent-d)}

.wrap{max-width:var(--max-w);margin:0 auto;padding:0 28px}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  background:var(--c-surface);
  border-bottom:1px solid var(--c-line);
  position:sticky;top:0;z-index:100;
}
.hdr-inner{
  max-width:var(--max-w);margin:0 auto;padding:0 28px;
  display:flex;align-items:center;justify-content:space-between;
  height:64px;
}
.logo{font-family:var(--ff-head);font-size:1.35rem;color:var(--c-accent-d);letter-spacing:-.02em}
.logo em{font-style:italic;color:var(--c-warm)}

.nav ul{list-style:none;display:flex;gap:6px}
.nav a{
  display:block;padding:7px 13px;font-size:.88rem;font-weight:500;
  color:var(--c-muted);border-radius:var(--r);transition:background .18s,color .18s;
}
.nav a:hover,.nav a[aria-current="page"]{background:var(--c-accent-l);color:var(--c-accent-d)}

/* mobile toggle */
.nav-btn{
  display:none;background:none;border:none;cursor:pointer;
  width:30px;height:24px;position:relative;
}
.nav-btn i,.nav-btn i::before,.nav-btn i::after{
  display:block;width:20px;height:2px;background:var(--c-text);
  border-radius:2px;position:absolute;left:5px;transition:transform .2s;
}
.nav-btn i{top:11px}
.nav-btn i::before{content:'';top:-6px}
.nav-btn i::after{content:'';top:6px}

/* ============================================================
   HERO  (homepage only)
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  background:var(--c-hero-bg);
  display:flex;align-items:center;min-height:440px;
}
.hero-bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:.3;
}
.hero-body{position:relative;z-index:2;padding:60px 0;max-width:580px}
.hero h1{font-family:var(--ff-head);font-size:2.6rem;color:#fff;line-height:1.2;margin-bottom:14px}
.hero p{color:rgba(255,255,255,.82);font-size:1.05rem;margin-bottom:28px;font-weight:300}

.btn{
  display:inline-block;padding:12px 30px;border-radius:var(--r);
  font-family:var(--ff-body);font-weight:600;font-size:.92rem;
  border:none;cursor:pointer;transition:background .2s,color .2s;
}
.btn--primary{background:var(--c-accent);color:#fff}
.btn--primary:hover{background:var(--c-accent-d);color:#fff}
.btn--outline{background:transparent;border:2px solid var(--c-accent);color:var(--c-accent)}
.btn--outline:hover{background:var(--c-accent);color:#fff}

/* ============================================================
   SECTIONS
   ============================================================ */
.sec{padding:60px 0}
.sec--alt{background:var(--c-surface)}
.sec-tag{
  display:inline-block;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
  color:var(--c-accent);margin-bottom:6px;
}
.sec-heading{font-family:var(--ff-head);font-size:1.9rem;margin-bottom:10px;line-height:1.25}
.sec-lead{color:var(--c-muted);max-width:600px;margin-bottom:36px}

/* ============================================================
   CARD GRID
   ============================================================ */
.grid{display:grid;gap:26px}
.grid--3{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}
.grid--2{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}

.card{
  background:var(--c-surface);border:1px solid var(--c-line);
  border-radius:var(--r);overflow:hidden;
  transition:box-shadow .25s,transform .25s;
  text-decoration:none;color:inherit;display:block;
}
.card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}

.card-img{width:100%;height:220px;object-fit:cover}
.card-body{padding:22px 24px 26px}
.card-body h3{font-family:var(--ff-head);font-size:1.12rem;margin-bottom:8px;color:var(--c-text)}
.card-body p{color:var(--c-muted);font-size:.93rem;margin-bottom:14px}
.card-more{font-weight:600;font-size:.87rem;color:var(--c-accent)}

/* ============================================================
   PAGE HEADER  (sub-pages)
   ============================================================ */
.pg-hdr{
  background:linear-gradient(135deg,var(--c-accent-d) 0%,#2d4a36 100%);
  color:#fff;padding:46px 0 38px;
}
.pg-hdr h1{font-family:var(--ff-head);font-size:2rem;margin-bottom:8px}
.pg-hdr p{color:rgba(255,255,255,.78);max-width:540px;font-weight:300}

/* ============================================================
   ARTICLE / CONTENT
   ============================================================ */
.article{padding:48px 0 64px}
.article h2{font-family:var(--ff-head);font-size:1.5rem;margin:38px 0 12px;color:var(--c-text)}
.article h3{font-size:1.1rem;font-weight:600;margin:26px 0 8px}
.article p{margin-bottom:14px}
.article ul,.article ol{margin:0 0 14px 22px}
.article li{margin-bottom:5px}

.article-img{width:100%;border-radius:var(--r);margin:22px 0}

.note{
  background:var(--c-accent-l);border-left:4px solid var(--c-accent);
  padding:18px 22px;margin:22px 0;border-radius:0 var(--r) var(--r) 0;
}
.note p{margin:0;color:var(--c-text)}

.warn{
  background:var(--c-warm-l);border-left:4px solid var(--c-warm);
  padding:16px 20px;margin:28px 0;border-radius:0 var(--r) var(--r) 0;
  font-size:.9rem;color:var(--c-muted);
}

/* ============================================================
   TABLES
   ============================================================ */
.tbl{width:100%;border-collapse:collapse;margin:22px 0;font-size:.93rem}
.tbl th,.tbl td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--c-line)}
.tbl th{background:var(--c-accent-l);font-weight:600;color:var(--c-accent-d)}
.tbl tr:hover td{background:var(--c-bg)}

/* ============================================================
   FORM
   ============================================================ */
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:600px}
.fg{display:flex;flex-direction:column}
.fg--wide{grid-column:1/-1}
.fg label{font-size:.84rem;font-weight:600;margin-bottom:5px}
.fg input,.fg textarea,.fg select{
  padding:10px 13px;border:1px solid var(--c-line);border-radius:var(--r);
  font-family:var(--ff-body);font-size:.93rem;background:var(--c-bg);
  color:var(--c-text);transition:border-color .2s;
}
.fg input:focus,.fg textarea:focus,.fg select:focus{outline:none;border-color:var(--c-accent)}
.fg textarea{resize:vertical;min-height:110px}

/* ============================================================
   VALUES GRID  (about page)
   ============================================================ */
.vals{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px;margin:30px 0}
.val{
  background:var(--c-surface);border:1px solid var(--c-line);
  border-radius:var(--r);padding:26px;
}
.val h3{font-family:var(--ff-head);font-size:1.02rem;margin-bottom:8px;color:var(--c-accent-d)}
.val p{color:var(--c-muted);font-size:.92rem}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:#2a2622;color:rgba(255,255,255,.6);padding:48px 0 28px;font-size:.88rem}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px;margin-bottom:32px}
.ft-brand .logo{color:#fff;margin-bottom:10px;font-size:1.12rem}
.ft-brand p{max-width:300px;line-height:1.6}
.site-footer h4{color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:7px}
.site-footer a{color:rgba(255,255,255,.6)}
.site-footer a:hover{color:#fff}
.ft-copy{border-top:1px solid rgba(255,255,255,.08);padding-top:22px;text-align:center;font-size:.8rem}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:820px){
  .nav-btn{display:block}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--c-surface);border-bottom:1px solid var(--c-line);padding:14px 28px}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:2px}
  .hero h1{font-size:1.9rem}
  .grid--3,.grid--2{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr;gap:24px}
  .hdr-inner{position:relative}
}
