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

/* ── Tokens ──────────────────────────────────────────────────────── */
:root{
  --cream:#F5EFE6;
  --paper:#FFFFFF;
  --mint:#5DCAA5;
  --mint-ink:#1F7A66;
  --mint-wash:#EAF7F1;
  --mint-line:#CDE9DF;
  --teal:#2D7D6F;
  --teal-deep:#276E62;
  --ink:#26201B;
  --body:#5C5047;
  --soft:#5E544B;
  --line:#EBE4DB;
  --line-2:#E0D8CD;
  --maxw:1160px;
  --z-nav:100;
  /* Type scale (Refactoring UI: limit your choices) */
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;
  --text-md:18px;
  --text-lg:22px;
  --text-xl:26px;
  --text-2xl:32px;
  --text-3xl:48px;
  --text-4xl:72px;
  --text-display:96px;
  --text-lead:clamp(16px,1.4vw,20px);
  /* Radius scale */
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  /* Shadow scale */
  --shadow-sm:0 1px 2px color-mix(in srgb, var(--teal) 20%, transparent),0 8px 20px -12px color-mix(in srgb, var(--teal) 50%, transparent);
  --shadow-md:0 12px 32px color-mix(in srgb, var(--ink) 10%, transparent);
  --shadow-lg:0 20px 48px color-mix(in srgb, var(--ink) 16%, transparent);
  --shadow-xl:0 28px 72px color-mix(in srgb, var(--ink) 18%, transparent),0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent);
  /* Spacing scale */
  --space-xs:4px;
  --space-sm:8px;
  --space-md:16px;
  --space-lg:24px;
  --space-xl:32px;
  /* Text on teal (opaque, hand-picked) */
  --on-teal:#E8F4F0;
}

/* ── Base ────────────────────────────────────────────────────────── */
html{font-size:var(--text-base);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--cream);color:var(--ink);
  font-family:'Inter',-apple-system,system-ui,sans-serif;
  line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
::selection{background:color-mix(in srgb, var(--mint) 28%, transparent)}
:focus-visible{outline:2.5px solid var(--teal);outline-offset:3px;border-radius:var(--radius-sm)}
.skip-nav{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:999}
.skip-nav:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;padding:12px 20px;background:var(--teal);color:#fff;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;text-decoration:none;z-index:9999}

/* ── Utility ─────────────────────────────────────────────────────── */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:clamp(20px,5vw,44px)}

/* ── Type roles ──────────────────────────────────────────────────── */
.logo-type{font-family:'Newsreader',Georgia,serif;font-weight:500;letter-spacing:-0.02em}
.voice{font-family:'Newsreader',Georgia,serif;font-weight:400}
.display{font-weight:700;letter-spacing:-.035em;line-height:1.04;color:var(--ink);text-wrap:balance}

/* ── Buttons ─────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:'Inter',sans-serif;font-size:var(--text-base);font-weight:600;text-decoration:none;border-radius:var(--radius-md);padding:13px 24px;cursor:pointer;border:1px solid transparent;transition:transform .16s cubic-bezier(.22,1,.36,1),background .16s,box-shadow .2s ease-out,border-color .16s,color .16s}
.btn-primary{background:var(--teal);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--teal-deep);transform:translateY(-2px);box-shadow:0 0 0 5px color-mix(in srgb, var(--teal) 16%, transparent),0 14px 32px -10px color-mix(in srgb, var(--teal) 60%, transparent)}
.btn-primary svg{width:17px;height:17px;fill:currentColor}
.btn-ghost{background:var(--paper);color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--mint);color:var(--mint-ink);transform:translateY(-1px)}

/* ── Nav ─────────────────────────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:var(--z-nav);background:rgba(245,239,230,.78);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;color:var(--ink)}
.brand img{height:34px;width:auto}
.brand .logo-type{font-size:var(--text-xl);letter-spacing:-0.02em}
.nav-links{display:flex;align-items:center;gap:var(--space-lg)}
.nav-link{font-size:var(--text-sm);font-weight:500;color:var(--body);text-decoration:none;transition:color .16s}
.nav-link:hover{color:var(--ink)}
.nav .btn{padding:10px 20px;font-size:var(--text-sm)}

/* ── Footer ──────────────────────────────────────────────────────── */
.footer{background:var(--ink);border-top:1px solid var(--ink);padding:34px 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-lg)}
.footer-brand{display:flex;align-items:center;gap:var(--space-sm);color:#F5F0E8}
.footer-brand .logo-type{font-size:var(--text-md)}
.footer-links{display:flex;gap:var(--space-lg);flex-wrap:wrap}
.footer-links a{font-size:var(--text-sm);font-weight:500;color:#F0EBDD;text-decoration:none;transition:color .16s}
.footer-links a:hover{color:#FFFFFF}
.footer-copy{font-size:var(--text-xs);color:#C9C3B4}
.footer-social{display:flex;gap:var(--space-md);align-items:center}
.footer-social a{color:#F0EBDD;transition:color .16s}
.footer-social a:hover{color:#FFFFFF}
.footer-social svg{width:18px;height:18px;fill:currentColor}

/* ── Mobile nav ──────────────────────────────────────────────────── */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--ink)}
.nav-toggle svg{width:22px;height:22px;display:block}
@media(max-width:767px){
  .nav-inner{height:58px}
  .nav-toggle{display:flex;align-items:center;order:0}
  .nav-links{position:fixed;top:58px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;padding:20px clamp(20px,5vw,44px) 28px;gap:0;transform:translateY(calc(-100% - 58px));transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:calc(var(--z-nav) - 1);box-shadow:var(--shadow-md)}
  .nav-links.open{transform:translateY(0)}
  .nav-link{display:block;padding:14px 0;font-size:var(--text-base);border-bottom:1px solid var(--line);width:100%}
  .nav-link:last-of-type{border-bottom:none}
  .nav-links .btn{margin-top:var(--space-sm);width:100%;justify-content:center;padding:13px 24px;font-size:var(--text-base)}
  .btn{padding:9px 18px;font-size:var(--text-sm)}
}
