:root{
  --paper:#EEF0E5;
  --paper-2:#E4E6D8;
  --ink:#1B2620;
  --teal:#14524F;
  --coral:#E0592F;
  --gold:#B98A1E;
  --line:#CBC7B3;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#12211F; --ink:#EAEAE0; --paper-2:#193029; --line:#2C4A42;
    --teal:#7FCFC3; --coral:#FF8A5C; --gold:#E2B94B;
  }
}
:root[data-theme="dark"]{
  --paper:#12211F; --ink:#EAEAE0; --paper-2:#193029; --line:#2C4A42;
  --teal:#7FCFC3; --coral:#FF8A5C; --gold:#E2B94B;
}
html{scroll-padding-top:env(safe-area-inset-top,0px);}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Source Serif 4', serif; font-weight:600; margin:0 0 .4em; letter-spacing:-.01em;}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:840px; margin:0 auto; padding:0 24px;}

/* ---- header / nav ---- */
.site-header{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:50;
  background:var(--paper); border-bottom:1px solid var(--line);
}
.nav-row{
  max-width:840px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.brand{
  font-family:'Source Serif 4', serif; font-weight:600; font-size:1.15rem;
  text-decoration:none; color:var(--ink); white-space:nowrap;
}
.brand span{color:var(--teal);}
nav.menu{display:flex; gap:22px; align-items:center;}
nav.menu a{
  text-decoration:none; font-size:.95rem; font-weight:500; opacity:.8;
  padding:6px 0; border-bottom:2px solid transparent;
}
nav.menu a:hover, nav.menu a[aria-current="page"]{opacity:1; border-color:var(--coral);}
.nav-toggle{display:none;}
.nav-toggle-label{display:none; cursor:pointer;}

@media (max-width:760px){
  nav.menu{
    position:absolute; top:100%; left:0; right:0; background:var(--paper);
    flex-direction:column; align-items:flex-start; gap:2px; padding:8px 24px 18px;
    border-bottom:1px solid var(--line);
    display:none;
  }
  nav.menu a{padding:10px 0; width:100%; border-bottom:1px solid var(--line);}
  .nav-toggle:checked ~ nav.menu{display:flex;}
  .nav-toggle-label{
    display:block; font-size:1.4rem; line-height:1; background:none; border:none;
    color:var(--ink);
  }
}

/* ---- buttons ---- */
.btn{
  display:inline-block; padding:13px 22px; border-radius:3px;
  font-weight:600; text-decoration:none; border:1px solid var(--ink);
  font-size:.95rem;
}
.btn.primary{background:var(--teal); color:var(--paper); border-color:var(--teal);}
.btn.accent{background:var(--coral); color:#fff; border-color:var(--coral);}
.btn.ghost{background:transparent; color:var(--ink);}
.cta-row{display:flex; gap:14px; margin-top:26px; flex-wrap:wrap;}

/* ---- hero ---- */
header.hero{padding:56px 24px 48px; border-bottom:1px solid var(--line);}
.kicker{color:var(--teal); font-weight:600; margin-bottom:14px;}
.hero h1{font-size:clamp(1.8rem,5.5vw,2.8rem); max-width:16ch;}
.hero p{max-width:56ch; font-size:1.05rem; opacity:.85;}

/* ---- page sections ---- */
section.block{padding:48px 24px; border-bottom:1px solid var(--line);}
section.block:nth-child(even){background:var(--paper-2);}
.block-inner{max-width:840px; margin:0 auto;}
.block h2{font-size:1.5rem; max-width:24ch;}
.block p{max-width:60ch; opacity:.9;}
.block ul{margin:14px 0 0; padding-left:18px; max-width:60ch;}
.block li{margin-bottom:6px;}

.pole-grid{display:grid; grid-template-columns:56px 1fr; gap:20px;}
.pole-mark{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Source Serif 4', serif; font-size:1.1rem; font-weight:600;
  border:2px solid currentColor; color:var(--teal);
}
.note{
  margin-top:14px; font-size:.9rem; padding:10px 14px;
  border-left:3px solid var(--coral); opacity:.85;
}

.card-list{display:grid; gap:18px; margin-top:24px;}
.card{border:1px solid var(--line); padding:20px; border-radius:3px; background:var(--paper);}
.card h3{font-size:1.05rem; margin-bottom:6px;}
.card p{margin:0; font-size:.95rem; opacity:.85;}

/* ---- forms ---- */
form.contact{display:grid; gap:14px; max-width:480px; margin-top:20px;}
form.contact label{font-size:.9rem; font-weight:500; display:block; margin-bottom:5px;}
form.contact input, form.contact select, form.contact textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:3px;
  background:var(--paper); color:var(--ink); font-family:inherit; font-size:.95rem;
}
form.contact textarea{min-height:120px; resize:vertical;}

/* ---- footer ---- */
footer.site-footer{padding:40px 24px 56px;}
.footer-grid{display:grid; gap:24px; grid-template-columns:1.2fr 1fr 1fr;}
.footer-grid h4{font-size:.85rem; text-transform:none; margin:0 0 10px; opacity:.7;}
.footer-grid ul{list-style:none; margin:0; padding:0;}
.footer-grid li{margin-bottom:6px; font-size:.92rem;}
.footer-grid a{text-decoration:none; opacity:.85;}
.footer-bottom{margin-top:30px; font-size:.85rem; opacity:.6;}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr;}}
