/* Freebies: the cards and sign-up forms (home page and /free), and the article pages.
   Same palette as the home page: ivory, sage, linen, fern green and gold. */
:root{
  --fb-ivory:#fbfaf4; --fb-sage:#e9efe7; --fb-linen:#f5f0e4;
  --fb-fern:#1f3d33; --fb-fern-deep:#183429; --fb-lichen:#5c766a;
  --fb-gold:#b8892a; --fb-gold-lit:#e6bf5c; --fb-gold-soft:#f6e7bf; --fb-line:#e1e6dc;
}

/* ---------- cards ---------- */
.fb-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr)); gap:clamp(1rem,2.5vw,1.5rem); margin-top:1.6rem; }
.fb-card{ background:#fff; border:1px solid var(--fb-line); border-radius:20px; overflow:hidden; display:flex; flex-direction:column;
  color:var(--fb-fern); text-decoration:none; transition:border-color .2s, transform .2s, box-shadow .2s; }
a.fb-card:hover{ border-color:var(--fb-gold); transform:translateY(-2px); box-shadow:0 10px 30px rgba(31,61,51,.08); }
.fb-thumb{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--fb-linen); }
.fb-art .fb-thumb{ aspect-ratio:16/9; }
.fb-icon{ width:56px; height:56px; border-radius:50%; border:1px solid var(--fb-gold); display:grid; place-items:center; background:#fffdf7; color:var(--fb-gold); margin-bottom:1rem; }
.fb-icon svg{ width:24px; height:24px; }
.fb-cbody{ padding:1.3rem 1.4rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.fb-tag{ display:inline-block; align-self:flex-start; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--fb-gold); margin-bottom:.55rem; }
.fb-card h3{ font-size:1.22rem; line-height:1.25; margin:0 0 .5rem; font-weight:600; color:var(--fb-fern); }
.fb-card p{ margin:0 0 1rem; font-size:.97rem; line-height:1.6; color:var(--fb-lichen); }
.fb-go{ margin-top:auto; font-weight:500; color:var(--fb-fern); }
a.fb-card:hover .fb-go{ color:var(--fb-gold); }
.fb-card .fb-act{ margin-top:auto; }
.fb-btn{ display:inline-flex; align-items:center; gap:.4rem; font:inherit; font-weight:500; font-size:.98rem; border:0; cursor:pointer; text-decoration:none;
  background:var(--fb-gold-lit); color:#3a2906; border-radius:100px; padding:.7rem 1.35rem; box-shadow:0 6px 18px rgba(184,137,42,.22); transition:filter .2s, transform .2s; }
.fb-btn:hover{ filter:brightness(1.05); transform:translateY(-1px); }
.fb-btn:disabled{ opacity:.6; cursor:default; transform:none; }
.fb-btn.line{ background:none; box-shadow:none; border:1px solid var(--fb-fern); color:var(--fb-fern); }
.fb-btn.line:hover{ background:var(--fb-fern); color:#fff; }
.fb-free{ font-weight:600; color:var(--fb-fern); margin-right:.2rem; }

/* sign-up form inside a card */
.fb-form{ display:grid; gap:.6rem; margin-top:.2rem; }
.fb-form input[type=text], .fb-form input[type=email]{ width:100%; font:inherit; font-size:.97rem; color:var(--fb-fern); background:var(--fb-ivory);
  border:1px solid var(--fb-line); border-radius:12px; padding:.7rem .85rem; }
.fb-form input:focus{ outline:2px solid var(--fb-fern); outline-offset:-1px; }
.fb-check{ display:flex; gap:.55rem; align-items:flex-start; font-size:.9rem; color:var(--fb-lichen); line-height:1.45; cursor:pointer; }
.fb-check input{ margin-top:.2rem; accent-color:var(--fb-fern); width:16px; height:16px; flex-shrink:0; }
.fb-form .fb-btn{ justify-self:start; margin-top:.2rem; }
.fb-err{ color:#a33a2a; font-size:.88rem; margin:0; }
.fb-done{ background:var(--fb-sage); border-radius:12px; padding:.85rem 1rem; font-size:.95rem; color:var(--fb-fern); margin:0; }
.fb-trap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.fb-small{ font-size:.82rem; color:var(--fb-lichen); margin:0; }
.fb-link{ color:var(--fb-fern); font-weight:500; text-decoration:none; border-bottom:1px solid var(--fb-gold); padding-bottom:1px; }
.fb-link:hover{ color:var(--fb-gold); }

/* ---------- the /free page and article pages ---------- */
body.fb-page{ background:var(--fb-ivory); color:var(--fb-fern); font-size:1.0625rem; }
.fb-wrap{ max-width:1080px; margin:0 auto; padding:0 clamp(1.1rem,4vw,2rem); }
.fb-narrow{ max-width:700px; margin:0 auto; padding:0 clamp(1.1rem,4vw,2rem); }
.fb-top{ position:sticky; top:env(safe-area-inset-top,0px); z-index:20; background:rgba(251,250,244,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--fb-line); }
.fb-top .fb-wrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.8rem; }
.fb-top nav{ display:flex; gap:clamp(.9rem,2.5vw,1.6rem); font-size:.95rem; }
.fb-top nav a{ color:var(--fb-fern); text-decoration:none; }
.fb-top nav a:hover{ color:var(--fb-gold); }
.fb-top nav a[hidden]{ display:none; }
.fb-hero{ padding:clamp(2.5rem,7vw,4.5rem) 0 clamp(1.5rem,4vw,2.5rem); background:linear-gradient(180deg,var(--fb-ivory),var(--fb-sage)); }
.fb-hero h1{ font-size:clamp(2.1rem,5.4vw,3.3rem); line-height:1.08; letter-spacing:-.02em; margin:0 0 .8rem; }
.fb-motto{ font-family:var(--font-script,'Caveat',cursive); font-size:clamp(1.5rem,3.2vw,2rem); color:var(--fb-gold); font-weight:600; margin:0 0 .6rem; line-height:1.1; }
.fb-hero .fb-lead{ font-size:clamp(1.05rem,2vw,1.2rem); font-weight:300; line-height:1.7; max-width:40rem; margin:0; }
.fb-section{ padding:clamp(2.2rem,6vw,3.8rem) 0; }
.fb-section.sage{ background:var(--fb-sage); }
.fb-section h2{ font-size:clamp(1.5rem,3.4vw,2rem); margin:0; letter-spacing:-.01em; }
.fb-section .fb-intro{ color:var(--fb-lichen); margin:.4rem 0 0; max-width:38rem; }
.fb-empty{ color:var(--fb-lichen); margin-top:1rem; }

/* article */
.fb-article{ padding:clamp(2.2rem,6vw,4rem) 0 clamp(2rem,5vw,3rem); }
.fb-kicker{ font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--fb-gold); margin:0 0 .8rem; }
.fb-article h1{ font-size:clamp(2rem,5.2vw,3.1rem); line-height:1.1; letter-spacing:-.02em; margin:0 0 .8rem; }
.fb-byline{ color:var(--fb-lichen); font-size:.95rem; margin:0 0 1.4rem; }
.fb-lede{ font-size:clamp(1.12rem,2.2vw,1.3rem); font-weight:300; line-height:1.65; margin:0 0 1.8rem; }
.fb-cover{ max-width:980px; margin:0 auto 2.2rem; padding:0 clamp(0rem,3vw,2rem); }
.fb-cover img{ display:block; width:100%; height:auto; max-height:560px; object-fit:cover; border-radius:clamp(0px,2vw,20px); background:var(--fb-linen); }
.fb-body{ font-size:1.1rem; line-height:1.8; }
.fb-body p{ margin:0 0 1.25rem; }
.fb-body h2{ font-size:clamp(1.4rem,3vw,1.7rem); line-height:1.25; margin:2.4rem 0 .9rem; letter-spacing:-.01em; }
.fb-body h3{ font-size:1.22rem; margin:1.8rem 0 .6rem; }
.fb-body a{ color:var(--fb-fern); text-decoration-color:var(--fb-gold); text-underline-offset:3px; }
.fb-body a:hover{ color:var(--fb-gold); }
.fb-body ul, .fb-body ol{ margin:0 0 1.35rem; padding-left:1.4rem; }
.fb-body li{ margin-bottom:.45rem; }
.fb-body li::marker{ color:var(--fb-gold); }
.fb-body blockquote{ margin:1.8rem 0; padding:.2rem 0 .2rem 1.3rem; border-left:3px solid var(--fb-gold); font-size:1.2rem; font-style:italic; line-height:1.65; }
.fb-body blockquote p{ margin:0; }
.fb-body figure{ margin:2rem 0; }
.fb-body figure img{ display:block; width:100%; height:auto; border-radius:14px; background:var(--fb-linen); }
.fb-body figcaption{ font-size:.9rem; color:var(--fb-lichen); margin-top:.6rem; text-align:center; font-style:italic; }
.fb-sig{ font-family:var(--font-script,'Caveat',cursive); font-size:2rem; color:var(--fb-gold); margin:1.5rem 0 2rem; font-weight:600; }
.fb-draft{ background:var(--fb-gold-soft); color:#6b4d05; border-radius:12px; padding:.7rem 1rem; font-size:.92rem; margin:0 0 1.4rem; }
.fb-pdf{ background:var(--fb-linen); border-radius:20px; padding:clamp(1.3rem,3vw,1.8rem); display:grid; gap:1rem; }
.fb-pdf h2{ font-size:1.25rem; margin:0 0 .3rem; }
.fb-pdf p{ margin:0; color:var(--fb-lichen); }
.fb-pdf .fb-form input[type=text], .fb-pdf .fb-form input[type=email]{ background:#fff; }
.fb-pdf .fb-two{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.6rem; }
.fb-more{ background:var(--fb-sage); padding:clamp(2.2rem,6vw,3.5rem) 0; }
.fb-more h2{ font-size:clamp(1.4rem,3vw,1.8rem); margin:0; }
.fb-foot{ background:var(--fb-fern-deep); color:#a9c9b7; padding:2rem 0 2.4rem; font-size:.88rem; text-align:center; line-height:1.9; }
.fb-foot a{ color:#e3efe6; }
