/* ============================================================
   The Wedding Ledger — production stylesheet
   "Bright, Airy & Sure" — white leads; muted-sage anchor;
   champagne accent; soft romantic tints. Self-contained:
   one <link> per page. Derived from the Wedding Ledger
   Design System (tokens + components).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Hanken+Grotesk:wght@400;500;600;700;800&family=Spline+Sans+Mono:wght@400;500;600&display=swap');

:root{
  /* foundation */
  --white:#FFFFFF; --ivory:#FBF8F2; --cream:#FCFAF5; --paper:#FFFFFF; --sand:#F2ECE0;
  /* anchor sage (token names kept) */
  --pine-900:#2C352E; --pine-800:#36423A; --pine-700:#415046; --pine-600:#4C5E50;
  --pine-500:#647665; --pine-300:#9DB29F; --pine-200:#C4D2C2; --pine-100:#E0E8DD; --pine-50:#EFF3EA;
  /* champagne */
  --brass-700:#9C7C44; --brass-600:#B8975A; --brass-500:#CBAE74; --brass-300:#E2CFA3; --brass-100:#F1E7CF; --brass-50:#F9F2E1;
  /* soft accents */
  --blush-500:#E6B6AD; --blush-400:#F0CDC6; --blush-200:#F7E3DE; --blush-100:#FBF0ED;
  --rose-600:#BC8278; --rose-500:#CD9A90; --rose-300:#E3BDB5; --rose-100:#F4E2DD;
  --sky-600:#7FA3A6; --sky-500:#9FBEC0; --sky-300:#C4D8D9; --sky-100:#E6EFEF;
  /* ink */
  --ink-900:#232A24; --ink-800:#2E372F; --ink-700:#444E46; --ink-600:#59635B;
  --ink-500:#6E776F; --ink-400:#8A938B; --ink-300:#A9B1AA; --ink-200:#CDD3CD;
  /* lines */
  --line:#E8E2D6; --line-soft:#F0EBE0; --line-pine:#D6E0D3;
  /* semantic */
  --ok-600:#5C8268; --ok-100:#E2EDE3; --warn-600:#BE9248; --warn-100:#F4E9CF;
  --over-600:#C07A66; --over-100:#F6E2DA; --info-600:#6E9B9B; --info-100:#E2EDED;
  /* aliases */
  --bg-page:var(--ivory); --text-strong:var(--ink-800); --text-body:var(--ink-600);
  --text-muted:var(--ink-400); --text-brand:var(--pine-700); --text-accent:var(--brass-700);
  --text-on-brand:#F4F1E8; --text-on-accent:#3A2E12;
  /* type */
  --font-display:"Cormorant Garamond","Hoefler Text",Georgia,serif;
  --font-sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Spline Sans Mono",ui-monospace,Menlo,monospace;
  /* radius / shadow / motion */
  --r-sm:9px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-pill:999px;
  --shadow-sm:0 2px 8px -3px rgba(46,55,47,.06);
  --shadow-md:0 10px 30px -12px rgba(46,55,47,.10);
  --shadow-lg:0 24px 56px -22px rgba(46,55,47,.15);
  --shadow-pine:0 14px 32px -16px rgba(76,94,80,.40);
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --dur-fast:120ms; --dur-base:220ms;
  --ring:0 0 0 3px rgba(138,167,146,.45);
  --container:1120px; --container-narrow:760px;
  --gutter:clamp(1.25rem,4vw,2.5rem); --section-y:clamp(3.5rem,8vw,7rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.55;color:var(--text-body);background:var(--bg-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;color:var(--text-strong);font-weight:600;line-height:1.3;letter-spacing:-.015em}
p{margin:0}
img{max-width:100%}
a{color:var(--text-brand);text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:var(--blush-200);color:var(--ink-900)}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:5px}

/* helpers */
.wl-display{font-family:var(--font-display);font-weight:600;line-height:1.12;letter-spacing:-.01em;color:var(--text-strong)}
.wl-eyebrow{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--text-accent);display:inline-block}
.wl-figure{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.wl-cur{color:var(--brass-600)}

/* layout */
.wl-container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.wl-container--narrow{max-width:var(--container-narrow)}

/* buttons */
.wl-btn{--_bg:var(--pine-600);--_fg:var(--text-on-brand);--_bd:transparent;display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-sans);font-weight:600;line-height:1;border:1.5px solid var(--_bd);border-radius:var(--r-pill);background:var(--_bg);color:var(--_fg);cursor:pointer;white-space:nowrap;text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.wl-btn:hover{text-decoration:none}
.wl-btn:active{transform:translateY(1px) scale(.99)}
.wl-btn:focus-visible{box-shadow:var(--ring)}
.wl-btn--sm{font-size:.875rem;padding:.5rem .95rem}
.wl-btn--md{font-size:1rem;padding:.72rem 1.35rem}
.wl-btn--lg{font-size:1.0625rem;padding:.95rem 1.9rem}
.wl-btn--primary{--_bg:var(--pine-600);--_fg:var(--text-on-brand);box-shadow:var(--shadow-pine)}
.wl-btn--primary:hover{--_bg:var(--pine-700)}
.wl-btn--primary:active{--_bg:var(--pine-800)}
.wl-btn--accent{--_bg:var(--brass-500);--_fg:var(--text-on-accent);box-shadow:0 12px 28px -14px rgba(164,124,63,.6)}
.wl-btn--accent:hover{--_bg:var(--brass-600)}
.wl-btn--accent:active{--_bg:var(--brass-700);--_fg:#fff}
.wl-btn--secondary{--_bg:transparent;--_fg:var(--pine-600);--_bd:var(--pine-600)}
.wl-btn--secondary:hover{--_bg:var(--pine-50)}
.wl-btn--onpine{--_bg:var(--cream);--_fg:var(--pine-700);--_bd:transparent}
.wl-btn--onpine:hover{--_bg:#fff}

/* tags + badges */
.wl-tag{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;padding:.32em .8em;border-radius:var(--r-pill);line-height:1.2;border:1px solid var(--line-pine);background:var(--pine-50);color:var(--pine-700);white-space:nowrap}
.wl-tag__dot{width:.5em;height:.5em;border-radius:50%;background:currentColor;opacity:.85}
.wl-badge{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.34em .7em .3em;border-radius:var(--r-sm);line-height:1;white-space:nowrap}
.wl-badge--ok{background:var(--ok-100);color:#2C5C41}
.wl-badge--warn{background:var(--warn-100);color:#8A6020}
.wl-badge--over{background:var(--over-100);color:#8E3E30}

/* cards */
.wl-card{position:relative;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line-soft);box-shadow:var(--shadow-md);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.wl-card--pad{padding:var(--sp,2rem)}
.wl-card--interactive{cursor:default}
.wl-card--interactive:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.wl-card--ribbon::before{content:"";position:absolute;left:1.5rem;right:1.5rem;top:0;height:3px;background:var(--brass-500);border-radius:0 0 var(--r-pill) var(--r-pill)}
.wl-card--blush{background:var(--blush-100);border-color:var(--blush-200);box-shadow:none}

/* header */
.site-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--ivory) 86%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.site-header__in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:72px}
.site-logo img{height:34px;display:block}
@media(max-width:560px){.site-logo img{height:28px}}
.site-nav{display:flex;gap:26px;margin-left:auto;margin-right:6px}
.site-nav a{font-size:14px;font-weight:600;color:var(--ink-600);text-decoration:none}
.site-nav a:hover{color:var(--pine-600);text-decoration:none}
@media(max-width:860px){.site-nav{display:none}}

/* footer */
.site-footer{background:var(--pine-900);color:#B6C6B8;padding:48px 0 40px;margin-top:0}
.site-footer__in{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.site-footer__logo{height:38px;opacity:.95}
.site-footer__tag{font-family:var(--font-display);font-style:italic;font-size:19px;color:var(--brass-300)}
.site-footer__links{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}
.site-footer__links a{color:#B6C6B8;font-size:13px;text-decoration:none}
.site-footer__links a:hover{color:var(--cream);text-decoration:none}
.site-footer__cr{font-family:var(--font-mono);font-size:12px;color:#7E9183;margin-top:6px}

/* prose (articles + legal) */
.prose{padding:48px 0 8px}
.prose h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4vw,2.9rem);line-height:1.12;color:var(--pine-700);margin-bottom:14px}
.prose h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,2.4vw,1.9rem);color:var(--pine-700);margin:38px 0 12px}
.prose p{margin-bottom:16px;line-height:1.7;color:var(--ink-700)}
.prose .meta{color:var(--text-muted);font-size:.95rem;margin-bottom:24px;font-family:var(--font-mono)}
.prose ul{margin:0 0 18px 22px}
.prose li{margin-bottom:7px;line-height:1.6;color:var(--ink-700)}
.prose strong{color:var(--ink-800)}
.prose a{color:var(--pine-600);text-decoration:underline;text-decoration-color:var(--brass-300);text-underline-offset:2px}
.prose a:hover{color:var(--pine-700)}
.callout{background:var(--pine-50);border:1px solid var(--line-pine);border-left:3px solid var(--brass-500);border-radius:var(--r-md);padding:18px 22px;margin:24px 0;line-height:1.65;color:var(--ink-700)}
.prose table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.96rem;font-variant-numeric:tabular-nums}
.prose th,.prose td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-soft)}
.prose thead th,.prose tr:first-child th{background:var(--pine-700);color:var(--cream);font-weight:600}
.prose td:nth-child(2),.prose td:nth-child(3),.prose th:nth-child(2),.prose th:nth-child(3),.prose .r{text-align:right;font-family:var(--font-mono)}
.prose tr:last-child td{font-weight:700;border-top:2px solid var(--brass-300);color:var(--ink-800)}
.article-cta{background:linear-gradient(180deg,var(--pine-50),#fff);border:1px solid var(--line-pine);text-align:center;padding:34px 24px;border-radius:var(--r-lg);margin:34px 0}
.article-cta h2{margin-top:0;color:var(--pine-700)}
.article-cta p{color:var(--ink-600);margin-bottom:18px}

/* consent banner (pine) */
#wl-consent{position:fixed;left:0;right:0;bottom:0;z-index:99999;background:var(--pine-900);color:#EAF0E8;padding:16px 18px;font-size:.9rem;line-height:1.5;box-shadow:0 -2px 18px rgba(44,53,46,.25)}
#wl-consent .wl-consent__in{max-width:1040px;margin:0 auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
#wl-consent a{color:#fff;text-decoration:underline}
#wl-consent .wl-consent__reject{background:transparent;border:1.5px solid #B6C6B8;color:#EAF0E8;padding:9px 20px;border-radius:var(--r-pill);font-weight:600;cursor:pointer}
#wl-consent .wl-consent__accept{background:var(--brass-500);border:none;color:var(--text-on-accent);padding:10px 24px;border-radius:var(--r-pill);font-weight:700;cursor:pointer}
