@import "tailwindcss";

:root { --cranberry:#94161a; --cranberry-dark:#741014; --cream:#f7f2e8; --paper:#fff; --charcoal:#302b28; --soft:#59514c; --sage:#66705b; --line:rgba(48,43,40,.18); --shadow:0 16px 42px rgba(48,43,40,.09); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { min-width:320px; margin:0; background:var(--cream); color:var(--charcoal); font-family:Arial,Helvetica,sans-serif; font-size:18px; line-height:1.6; text-rendering:optimizeLegibility; }
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
:focus-visible { outline:3px solid var(--cranberry); outline-offset:4px; }
.skip-link { position:fixed; z-index:100; top:10px; left:10px; padding:10px 16px; background:var(--charcoal); color:white; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }

.site-header { position:sticky; z-index:30; top:0; display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:175px; padding:0 clamp(20px,5vw,72px); border-bottom:1px solid var(--line); background:rgba(247,242,232,.97); backdrop-filter:blur(12px); }
.brand-link { border-radius:8px; }
.brand-lockup { display:inline-flex; align-items:center; justify-content:center; padding:22px; line-height:1; }
.brand-logo-image { width:220px; height:220px; object-fit:contain; }
.brand-lockup--compact { padding:15px; }
.brand-lockup--compact .brand-logo-image { width:145px; height:145px; }
.site-header nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(6px,1.5vw,22px); }
.site-header nav a { min-height:44px; display:inline-flex; align-items:center; padding:7px 8px; color:var(--soft); font-size:16px; font-weight:700; white-space:nowrap; border-radius:999px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.site-header nav a:hover { color:var(--cranberry); }
.site-header .nav-shop { padding-inline:18px; background:var(--cranberry); color:white; text-decoration:none; }
.site-header .nav-shop:hover { background:var(--cranberry-dark); color:white; }

.landing-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,500px); align-items:center; gap:clamp(38px,7vw,100px); padding:clamp(52px,7vw,90px) clamp(22px,7vw,110px); }
.landing-copy { max-width:690px; }
.landing-copy>.brand-lockup { margin:0 0 28px -22px; }
.eyebrow { margin:0 0 16px; color:var(--cranberry); font-size:.78rem; font-weight:850; letter-spacing:.16em; line-height:1.4; text-transform:uppercase; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; line-height:1.12; }
.landing-hero h1 { max-width:650px; margin:0; font-size:clamp(2rem,4vw,2.5rem); font-weight:500; letter-spacing:-.02em; }
.welcome-copy { max-width:640px; margin:26px 0 0; color:var(--soft); font-size:clamp(1.08rem,1.8vw,1.32rem); }
.hero-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:34px; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; gap:8px; border:2px solid transparent; border-radius:999px; padding:11px 24px; font-weight:800; }
.button--primary { background:var(--cranberry); color:white; }
.button--primary:hover { background:var(--cranberry-dark); }
.button--secondary { border-color:var(--cranberry); color:var(--cranberry); }
.text-link,.card-action,.rss-link,.back-link { color:var(--cranberry); font-weight:800; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.landing-art { margin:0; border-radius:50% 50% 24px 24px; overflow:hidden; background:var(--paper); box-shadow:var(--shadow); }
.landing-art img { width:100%; height:auto; }

.simple-links { padding:clamp(64px,9vw,120px) clamp(22px,7vw,110px); background:var(--paper); }
.section-intro { max-width:720px; margin-bottom:38px; }
.section-intro h2,.newsletter-section h2,.journal-heading h1 { margin:0; font-size:clamp(1.8rem,3.5vw,2.5rem); font-weight:500; }
.link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.link-card { display:flex; min-height:290px; flex-direction:column; padding:clamp(24px,3vw,38px); border:1px solid var(--line); border-radius:18px; background:white; transition:transform .18s ease,box-shadow .18s ease; }
.link-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.link-kicker { color:var(--sage); font-size:.78rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.link-card h3 { margin:18px 0 12px; font-size:1.65rem; font-weight:600; }
.link-card p { margin:0 0 22px; color:var(--soft); }
.link-card .card-action { margin-top:auto; }

.newsletter-section { display:grid; grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr); gap:clamp(36px,8vw,100px); padding:clamp(64px,10vw,130px) clamp(22px,7vw,110px); scroll-margin-top:110px; }
.newsletter-copy p:last-child { max-width:580px; color:var(--soft); }
.signup-form { min-width:0; padding:clamp(24px,4vw,42px); border:1px solid var(--line); border-radius:18px; background:var(--paper); box-shadow:var(--shadow); }
.signup-form .ml-embedded { min-height:280px; color:var(--charcoal); }
.signup-form .ml-embedded label { color:var(--charcoal)!important; font-size:1rem!important; line-height:1.5!important; }
.signup-form .ml-embedded input[type="checkbox"] { min-width:20px; min-height:20px; accent-color:var(--cranberry); }
.signup-form .formkit-form { margin:0!important; max-width:none!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.signup-form .formkit-input { min-height:52px!important; border:1px solid var(--line)!important; border-radius:9px!important; color:var(--charcoal)!important; background:white!important; }
.signup-form .formkit-submit { min-height:52px!important; border-radius:9px!important; background:var(--cranberry)!important; color:white!important; }
.signup-fallback { color:var(--cranberry); font-weight:800; text-decoration:underline; }
.form-note { margin:12px 0 0; color:var(--soft); font-size:.82rem; }

.journal-page,.article-page { min-height:65vh; padding:clamp(54px,8vw,100px) clamp(22px,9vw,140px); }
.journal-heading { max-width:760px; }
.journal-heading>p { max-width:690px; color:var(--soft); font-size:1.15rem; }
.rss-link { display:inline-block; margin-top:10px; }
.article-list { display:grid; gap:18px; max-width:880px; margin-top:52px; }
.article-preview { padding:28px; border:1px solid var(--line); border-radius:16px; background:var(--paper); }
.article-preview time,.article-page time { color:var(--sage); font-size:.82rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.article-preview h2 { margin:8px 0; font-size:1.7rem; }
.article-preview p { color:var(--soft); }
.journal-empty { max-width:700px; margin-top:50px; padding:clamp(28px,5vw,52px); border-left:5px solid var(--cranberry); background:var(--paper); }
.journal-empty h2 { margin-top:0; font-size:1.8rem; }
.journal-empty .button { margin-top:12px; }
.article-page>article { max-width:780px; margin:0 auto; }
.article-page header { margin:48px 0; }
.article-page h1 { margin:0 0 18px; font-size:clamp(2rem,4vw,2.5rem); font-weight:500; }
.article-description { color:var(--soft); font-size:1.2rem; }
.article-body h2 { margin:42px 0 12px; font-size:1.8rem; }
.article-body p { margin:0 0 22px; }
.share-panel { margin-top:54px; padding-top:28px; border-top:1px solid var(--line); }
.share-panel h2 { font-size:1.35rem; }
.share-links { display:flex; gap:12px; flex-wrap:wrap; }
.share-links a { padding:8px 14px; border:1px solid var(--line); border-radius:999px; font-weight:750; }

.site-footer { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:32px; padding:34px clamp(22px,5vw,72px); border-top:1px solid var(--line); background:var(--paper); }
.site-footer nav { display:flex; justify-content:center; gap:18px; flex-wrap:wrap; }
.site-footer nav a { font-size:.9rem; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.site-footer p { margin:0; color:var(--soft); font-size:.82rem; }

.analytics-consent { position:fixed; z-index:1000; right:18px; bottom:18px; left:18px; display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:920px; margin:0 auto; padding:20px 22px; border:2px solid var(--cranberry); border-radius:14px; background:var(--cream); color:var(--charcoal); box-shadow:0 18px 50px rgba(48,43,40,.2); }
.analytics-consent h2 { margin:0 0 4px; font-size:1.25rem; }
.analytics-consent p { margin:0; font-size:.9rem; line-height:1.45; }
.analytics-consent a,.privacy-choice-button { color:var(--cranberry); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.analytics-consent-actions { display:flex; gap:10px; flex-shrink:0; }
.analytics-consent button,.privacy-choice-button { min-height:44px; padding:8px 14px; border:1px solid var(--cranberry); border-radius:999px; background:transparent; cursor:pointer; }
.analytics-consent .analytics-consent-allow { background:var(--cranberry); color:white; }

@media (max-width:700px) { .analytics-consent { align-items:stretch; flex-direction:column; } .analytics-consent-actions { width:100%; } .analytics-consent-actions button { flex:1; } }

/* Existing butterfly printable route */
.printable-page-header,.printable-page-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px clamp(20px,6vw,72px); background:var(--paper); border-bottom:1px solid var(--line); }
.printable-page-footer { border-top:1px solid var(--line); border-bottom:0; }
.printable-back-link,.printable-brand,.printable-page-footer a { color:var(--cranberry); font-weight:800; }
.printable-page { padding:clamp(40px,7vw,84px) clamp(20px,7vw,100px); }
.printable-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,440px); align-items:center; gap:clamp(30px,7vw,90px); }
.printable-hero h1 { margin:0; font-size:clamp(2rem,4vw,2.5rem); font-weight:500; }
.printable-hero-copy>p { color:var(--soft); }
.printable-age { display:inline-block; margin:10px 0 24px; padding:6px 12px; border-radius:999px; background:white; font-weight:800; }
.printable-preview { margin:0; text-align:center; }
.printable-preview img { width:100%; border-radius:12px; box-shadow:var(--shadow); }
.printable-preview figcaption { margin-top:10px; color:var(--soft); font-size:.82rem; }
.printable-instructions { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:60px; }
.printable-panel,.printable-safety-note,.printable-final-download { padding:clamp(24px,4vw,40px); border:1px solid var(--line); border-radius:16px; background:var(--paper); }
.printable-panel h2,.printable-safety-note h2,.printable-final-download h2 { margin-top:0; font-size:1.7rem; }
.printable-panel li { margin-bottom:10px; }
.printable-safety-note { margin-top:22px; border-left:5px solid var(--cranberry); }
.printable-final-download { margin-top:22px; text-align:center; }
.printable-etsy-link { display:block; margin-top:20px; color:var(--cranberry); font-weight:800; text-decoration:underline; }

@media (max-width:880px) {
  .site-header { position:static; flex-direction:column; align-items:stretch; padding-block:14px; }
  .brand-link { align-self:center; }
  .site-header nav { justify-content:center; flex-wrap:wrap; }
  .landing-hero,.newsletter-section,.printable-hero { grid-template-columns:1fr; }
  .landing-hero { min-height:auto; }
  .landing-art { max-width:520px; }
  .link-grid { grid-template-columns:1fr; }
  .link-card { min-height:auto; }
  .site-footer { grid-template-columns:1fr; text-align:center; }
  .site-footer>.brand-lockup { justify-self:center; }
  .printable-instructions { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  body { font-size:16px; }
  .site-header nav a { font-size:14px; }
  .site-header .nav-shop { width:100%; justify-content:center; }
  .landing-copy>.brand-lockup { margin-left:0; }
  .hero-actions { align-items:stretch; flex-direction:column; }
  .hero-actions .text-link { text-align:center; }
  .button { width:100%; }
  .printable-page-header,.printable-page-footer { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }

/* Approved horizontal wordmark on retained public pages. */
.brand-logo-image,.brand-lockup--compact .brand-logo-image{width:300px;height:auto;aspect-ratio:2000/175;object-fit:contain}.brand-lockup{max-width:100%}
