/*
Theme Name: Women's Alphabet
Theme URI: https://womensalphabet.com
Author: Women's Alphabet
Author URI: https://womensalphabet.com
Description: A minimal, fast, reading-first magazine theme for Women's Alphabet. Warm editorial design, dark/light mode, reader text-size controls, Pinterest-friendly in-content images, smart auto-featured post, and a lightweight cookie-consent banner with Google Consent Mode. Built to work cleanly with RankMath, LiteSpeed Cache and Wordfence. No bloat, no built-in SEO.
Version: 1.4.1
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: womens-alphabet
Tags: blog, news, two-columns, custom-menu, featured-images, threaded-comments, translation-ready, editor-style
*/

/* ============================================================
   WOMEN'S ALPHABET — tokens
   One accent (dusty rose), warm paper, ink text. Mobile-first.
   Dark mode via [data-theme="dark"] (default is light).
   Reader text-size affects ONLY the article body via --reading-scale.
   ============================================================ */
:root{
  --reading-scale: 1;

  --paper:#FAF6EF;
  --surface:#FFFCF6;
  --ink:#221C17;
  --ink-soft:#5E544A;
  --line:#E8E0D3;
  --line-strong:#D9CFBF;
  --rose:#A8565E;
  --rose-deep:#7E3A45;
  --rose-tint:#F3E7E4;

  --font-display:'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:'Newsreader', Georgia, serif;
  --font-ui:system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --wrap:1100px;
  --read:38rem;
  --radius:10px;
  --shadow:0 1px 2px rgba(34,28,23,.04), 0 8px 24px -16px rgba(34,28,23,.18);
}
[data-theme="dark"]{
  --paper:#181511;
  --surface:#201C17;
  --ink:#ECE4D7;
  --ink-soft:#A99E8C;
  --line:#322C24;
  --line-strong:#423B31;
  --rose:#D38B8F;
  --rose-deep:#E8A9AC;
  --rose-tint:#2B211F;
  --shadow:0 1px 2px rgba(0,0,0,.25), 0 10px 30px -18px rgba(0,0,0,.6);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:1.19rem; line-height:1.75; font-weight:400;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease, color .25s ease;
}
a{ color:var(--rose-deep); text-underline-offset:.18em; text-decoration-thickness:1px; }
a:hover{ color:var(--rose); }
img{ max-width:100%; height:auto; display:block; }
:focus-visible{ outline:2px solid var(--rose); outline-offset:3px; border-radius:4px; }

.wa-skip{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--surface); color:var(--ink); padding:.6rem 1rem;
  border:1px solid var(--line-strong); border-radius:8px; font-family:var(--font-ui);
}
.wa-skip:focus{ left:.75rem; top:.75rem; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 1.15rem; }
.screen-reader-text{ position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

/* ---------------------- site header ---------------------- */
.site-header{
  position:sticky; top:0; z-index:100;
  border-bottom:1px solid var(--line); background:var(--paper);
  transition:box-shadow .2s ease;
}
.site-header.is-stuck{ box-shadow:0 8px 22px -18px rgba(34,28,23,.5); }
.header-inner{ max-width:var(--wrap); margin:0 auto; padding:.85rem 1.15rem; }
.topbar{ display:flex; align-items:center; gap:.8rem; }

.brand{ display:flex; align-items:center; gap:.6rem; flex:0 1 auto; min-width:0; text-decoration:none; }
.logo-mark{ flex:0 0 auto; width:34px; height:34px; }
.logo-mark img, .logo-mark svg{ width:100%; height:100%; display:block; }
.logo-text{ display:flex; flex-direction:column; line-height:1.05; min-width:0; max-width:7rem; }
.logo-text .mark{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.35rem; line-height:1.05; letter-spacing:.005em; }
.logo-text .mark em{ font-style:italic; }
.logo-text .tagline{ display:none; font-family:var(--font-ui); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:.3rem; }
.custom-logo-link{ display:flex; flex:0 0 auto; }
.custom-logo-link img{ max-height:46px; width:auto; }

.header-tools{ margin-left:auto; flex:0 0 auto; display:flex; align-items:center; gap:.4rem; }
.icon-btn{
  font-family:var(--font-ui); cursor:pointer; color:var(--ink); background:transparent;
  border:1px solid var(--line-strong); border-radius:8px; height:38px; min-width:38px; padding:0 .55rem;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background-color .15s ease, border-color .15s ease;
}
.icon-btn:hover{ background:var(--rose-tint); border-color:var(--rose); }
.icon-btn svg{ width:18px; height:18px; }
.search-btn{ display:inline-flex; }
.fontsize{ display:inline-flex; border:1px solid var(--line-strong); border-radius:8px; overflow:hidden; }
.fontsize button{ font-family:var(--font-display); cursor:pointer; background:transparent; color:var(--ink); border:0; height:38px; width:38px; line-height:1; }
.fontsize button:first-child{ font-size:.85rem; border-right:1px solid var(--line); }
.fontsize button:last-child{ font-size:1.1rem; }
.fontsize button:hover{ background:var(--rose-tint); }

/* primary nav (mobile-first) */
.nav-toggle{ display:inline-flex; }
.main-nav{ display:none; width:100%; border-top:1px solid var(--line); margin-top:.4rem; padding-top:.2rem; }
.main-nav.open{ display:block; }
.main-nav .nav-menu{ list-style:none; margin:0; padding:.2rem 0; display:flex; flex-direction:column; }
.main-nav .nav-menu li{ position:relative; }
.main-nav .nav-menu a{ font-family:var(--font-ui); text-decoration:none; color:var(--ink); padding:.7rem .2rem; border-bottom:1px solid var(--line); font-size:.98rem; display:block; }
.main-nav .nav-menu a:hover{ color:var(--rose); }
.sub-menu{ list-style:none; margin:0; padding:0; }
.sub-menu a{ color:var(--ink-soft)!important; padding:.55rem .2rem .55rem 1.1rem!important; font-size:.92rem!important; }
.sub-menu a:hover{ color:var(--rose)!important; }
.nav-search{ padding:.5rem 0 .9rem; border-bottom:1px solid var(--line); }
.nav-search form{ display:flex; gap:.4rem; }
.nav-search input[type="search"]{ flex:1; font-family:var(--font-body); font-size:1rem; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:8px; padding:.55rem .7rem; }
.nav-search button{ font-family:var(--font-ui); cursor:pointer; background:var(--rose); color:#fff; border:0; border-radius:8px; padding:0 .9rem; font-size:.85rem; }

/* toggleable header search panel (all screens) */
.wa-search-panel{ display:none; padding:.7rem 0 1rem; border-top:1px solid var(--line); margin-top:.4rem; }
.wa-search-panel.open{ display:block; }
.wa-search-panel .search-form{ display:flex; gap:.4rem; max-width:32rem; margin:0 auto; }
.wa-search-panel .search-field{ flex:1; font-family:var(--font-body); font-size:1rem; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:8px; padding:.6rem .8rem; }
.wa-search-panel .search-submit{ font-family:var(--font-ui); cursor:pointer; background:var(--rose); color:#fff; border:0; border-radius:8px; padding:0 1rem; font-size:.88rem; }
.wa-search-panel .search-submit:hover{ background:var(--rose-deep); }

/* ---------------------- shared bits ---------------------- */
.chip{ display:inline-block; font-family:var(--font-ui); font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; color:var(--rose-deep); font-weight:600; text-decoration:none; }
.chip:hover{ color:var(--rose); }
.meta-line{ font-family:var(--font-ui); font-size:.78rem; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; }
.meta-line .dot{ opacity:.5; }
.section-label{ font-family:var(--font-ui); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); padding-bottom:.7rem; margin:2.2rem 0 1.4rem; border-bottom:1px solid var(--line); }

/* placeholder used only when a post has no image */
.thumb-fallback{ aspect-ratio:16/9; border-radius:var(--radius); border:1px solid var(--line); background:radial-gradient(120% 120% at 15% 10%,var(--rose-tint),transparent 60%),var(--surface); }

/* ============================ HOMEPAGE ============================ */
.intro{ padding:2.4rem 0 1.4rem; max-width:34rem; }
.intro h1{ font-family:var(--font-display); font-weight:400; color:var(--ink); font-size:clamp(1.7rem,4.5vw,2.3rem); line-height:1.15; margin:0 0 .6rem; }
.intro p{ color:var(--ink-soft); margin:0; font-size:1.02rem; line-height:1.6; }

.feature{ display:grid; gap:1.1rem; padding-bottom:.5rem; }
.feature > *{ min-width:0; }
.feature .feature-media{ display:block; }
.feature .feature-media img{ width:100%; border-radius:var(--radius); border:1px solid var(--line); aspect-ratio:16/9; object-fit:cover; }
.feature h2{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(1.5rem,5vw,2.05rem); line-height:1.18; margin:.5rem 0 .5rem; }
.feature h2 a{ color:inherit; text-decoration:none; }
.feature h2 a:hover{ color:var(--rose-deep); }
.feature p{ color:var(--ink-soft); margin:0; font-size:1.05rem; line-height:1.6; }
.feature .meta-line{ margin-top:.7rem; }

.grid{ display:grid; gap:1.9rem 1.6rem; grid-template-columns:minmax(0,1fr); padding:.4rem 0 1rem; }
.card{ display:flex; flex-direction:column; min-width:0; }
.card .card-media{ display:block; margin-bottom:.85rem; }
.card .card-media img, .card .card-media .thumb-fallback{ width:100%; border-radius:var(--radius); border:1px solid var(--line); aspect-ratio:16/9; object-fit:cover; }
.card h3{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.32rem; line-height:1.25; margin:.45rem 0 .4rem; }
.card h3 a{ color:inherit; text-decoration:none; }
.card h3 a:hover{ color:var(--rose-deep); }
.card p{ color:var(--ink-soft); font-size:.97rem; line-height:1.55; margin:0 0 .6rem; }
.card h3, .card p, .feature h2, .feature p{ overflow-wrap:break-word; word-wrap:break-word; }

.wa-pagination{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; justify-content:center; margin:2.6rem 0 1rem; }
.wa-pagination .page-numbers{ font-family:var(--font-ui); font-size:.9rem; text-decoration:none; min-width:40px; height:40px; padding:0 .7rem; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line-strong); color:var(--ink); background:var(--surface); }
.wa-pagination a.page-numbers:hover{ background:var(--rose-tint); border-color:var(--rose); }
.wa-pagination .page-numbers.current{ background:var(--rose); border-color:var(--rose); color:#fff; }
.wa-pagination .page-numbers.dots{ border:0; background:transparent; min-width:auto; }

/* ============================ ARCHIVE / SEARCH HEADER ============================ */
.archive-header{ padding:1.8rem 0 1.3rem; border-bottom:1px solid var(--line); margin-bottom:1.7rem; }
.archive-header .eyebrow{ font-family:var(--font-ui); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rose-deep); font-weight:600; }
.archive-header h1{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(1.9rem,5vw,2.6rem); line-height:1.12; margin:.5rem 0 .6rem; }
.archive-header .archive-desc{ color:var(--ink-soft); font-size:1.05rem; line-height:1.6; margin:0 0 .8rem; max-width:42rem; }
.archive-header .count{ font-family:var(--font-ui); font-size:.8rem; color:var(--ink-soft); }
.subcats{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1.8rem; }
.subcats a{ font-family:var(--font-ui); font-size:.82rem; text-decoration:none; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:999px; padding:.4rem .9rem; }
.subcats a:hover{ background:var(--rose-tint); border-color:var(--rose); color:var(--rose-deep); }
.subcats a.active{ background:var(--rose); border-color:var(--rose); color:#fff; }

.search-box{ max-width:32rem; margin:.3rem 0 1.2rem; }
.search-box .search-form{ display:flex; gap:.4rem; }
.search-box .search-field{ flex:1; font-family:var(--font-body); font-size:1rem; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:8px; padding:.6rem .8rem; }
.search-box .search-submit{ font-family:var(--font-ui); cursor:pointer; background:var(--rose); color:#fff; border:0; border-radius:8px; padding:0 1rem; font-size:.88rem; }
.search-box .search-submit:hover{ background:var(--rose-deep); }

/* ============================ AUTHOR ============================ */
.author-header{ display:flex; gap:1.2rem; align-items:flex-start; padding:2rem 0 1.6rem; border-bottom:1px solid var(--line); margin-bottom:1.7rem; }
.author-header .avatar{ flex:0 0 auto; width:72px; height:72px; border-radius:999px; overflow:hidden; background:var(--rose-tint); color:var(--rose-deep); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:1.6rem; border:1px solid var(--line-strong); }
.author-header .avatar img{ width:100%; height:100%; object-fit:cover; }
.author-header .eyebrow{ font-family:var(--font-ui); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rose-deep); font-weight:600; }
.author-header h1{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(1.6rem,4vw,2.1rem); margin:.35rem 0 .5rem; line-height:1.15; }
.author-header p{ color:var(--ink-soft); font-size:1rem; line-height:1.6; margin:0; max-width:42rem; }

/* ============================ SINGLE POST ============================ */
.article{ max-width:var(--read); margin:0 auto; padding:1.8rem 0 1rem; }
.breadcrumb{ font-family:var(--font-ui); font-size:.74rem; color:var(--ink-soft); margin-bottom:1.1rem; letter-spacing:.01em; overflow-wrap:break-word; }
.breadcrumb a{ text-decoration:none; color:var(--ink-soft); }
.breadcrumb a:hover{ color:var(--rose); }
.breadcrumb .bc-sep{ opacity:.45; margin:0 .12rem; }
.breadcrumb .bc-current{ color:var(--ink); }
.entry-title{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(2rem,6vw,2.85rem); line-height:1.12; letter-spacing:-.005em; margin:.6rem 0 1rem; }
.byline{ display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; font-family:var(--font-ui); font-size:.8rem; color:var(--ink-soft); padding-bottom:1.3rem; border-bottom:1px solid var(--line); }
.byline .author{ color:var(--ink); font-weight:600; }
.byline .updated{ color:var(--rose-deep); }
.byline .dot{ opacity:.5; }
.hero-figure{ margin:1.5rem 0 .4rem; }
.hero-figure img{ width:100%; border-radius:var(--radius); border:1px solid var(--line); aspect-ratio:16/9; object-fit:cover; }
.hero-figure figcaption{ font-family:var(--font-ui); font-size:.74rem; color:var(--ink-soft); margin-top:.5rem; line-height:1.5; }

/* the_content — reader body; ONLY this scales with --reading-scale */
.entry-content{ padding-top:1.4rem; font-size:calc(1.21rem * var(--reading-scale)); overflow-wrap:break-word; word-wrap:break-word; }
.entry-content > p{ margin:0 0 1.3rem; }
.entry-content > p:first-of-type::first-letter{ font-family:var(--font-display); font-weight:500; color:var(--rose-deep); float:left; font-size:3em; line-height:.82; padding:.1em .14em 0 0; }
.entry-content h2{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.45em; line-height:1.22; margin:2rem 0 .8rem; }
.entry-content h3{ font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:1.15em; margin:1.6rem 0 .6rem; }
.entry-content ul, .entry-content ol{ margin:0 0 1.3rem; padding-left:1.2rem; }
.entry-content li{ margin:.35rem 0; }
.entry-content li::marker{ color:var(--rose); }
.entry-content a{ color:var(--rose-deep); }
.entry-content strong{ color:var(--ink); }

/* in-content images: centered, capped; featured image is NOT in .entry-content */
.entry-content figure.wp-block-image,
.entry-content p > img{ margin:1.8rem auto; }
.entry-content figure.wp-block-image{ text-align:center; }
.entry-content figure.wp-block-image img{ border-radius:var(--radius); border:1px solid var(--line); display:inline-block; }
.entry-content figcaption{ font-family:var(--font-ui); font-size:.74rem; color:var(--ink-soft); margin-top:.5rem; line-height:1.5; text-align:center; }

/* signature blockquote (rose box) — applies to any quote */
.entry-content blockquote, .wa-quote{
  margin:1.8rem 0; padding:1.1rem 1.3rem; background:var(--rose-tint); border-radius:var(--radius);
  border-left:3px solid var(--rose); font-family:var(--font-display); font-style:italic; font-size:1.1em; line-height:1.5; color:var(--ink);
}
.entry-content blockquote p, .wa-quote p{ margin:0; }
.entry-content blockquote cite, .wa-quote cite{ display:block; margin-top:.5rem; font-style:normal; font-family:var(--font-ui); font-size:.78rem; color:var(--ink-soft); }

/* signature note box */
.wa-note{ margin:2rem 0; padding:1.05rem 1.2rem; border:1px dashed var(--line-strong); border-radius:var(--radius); background:var(--surface); font-family:var(--font-ui); font-size:.92em; line-height:1.55; color:var(--ink-soft); }
.wa-note strong{ color:var(--ink); }
.wa-note p:last-child{ margin-bottom:0; }

/* pinterest save button on in-content images */
.wa-pin-wrap{ position:relative; display:inline-block; max-width:100%; }
.wa-pin{ position:absolute; z-index:2; width:36px; height:36px; border-radius:9px; background:#fff; color:#E60023; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(0,0,0,.22); text-decoration:none; transition:transform .12s ease, background-color .12s ease, color .12s ease; }
.wa-pin:hover{ background:#E60023; color:#fff; transform:scale(1.06); }
.wa-pin svg{ width:18px; height:18px; }
body[data-pin-pos="top-right"] .wa-pin{ top:8px; right:8px; }
body[data-pin-pos="top-left"] .wa-pin{ top:8px; left:8px; }
body[data-pin-pos="bottom-right"] .wa-pin{ bottom:8px; right:8px; }
body[data-pin-pos="bottom-left"] .wa-pin{ bottom:8px; left:8px; }

/* share row */
.share{ margin:2rem 0; padding:1.1rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.share .share-label{ font-family:var(--font-ui); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-soft); margin-right:.2rem; }
.share a, .share button{ width:40px; height:40px; border-radius:999px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line-strong); background:var(--surface); color:var(--ink); text-decoration:none; transition:background-color .15s ease, color .15s ease, border-color .15s ease; }
.share a:hover, .share button:hover{ background:var(--rose); border-color:var(--rose); color:#fff; }
.share svg{ width:18px; height:18px; }

/* author box */
.author-box{ display:flex; gap:1rem; align-items:flex-start; margin:2rem 0; padding:1.3rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.author-box .avatar{ flex:0 0 auto; width:54px; height:54px; border-radius:999px; overflow:hidden; background:var(--rose-tint); color:var(--rose-deep); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:1.15rem; border:1px solid var(--line-strong); }
.author-box .avatar img{ width:100%; height:100%; object-fit:cover; }
.author-box .who{ font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:1.05rem; }
.author-box p{ margin:.3rem 0 0; font-family:var(--font-ui); font-size:.86rem; color:var(--ink-soft); line-height:1.55; }
.author-box .who-link{ font-family:var(--font-ui); font-size:.78rem; display:inline-block; margin-top:.5rem; }

/* comments */
.comments-area{ max-width:var(--read); margin:2.4rem auto 0; }
.comments-area .comments-title{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.5rem; margin:0 0 1.2rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); }
.comment-list{ list-style:none; margin:0; padding:0; }
.comment-list ol.children{ list-style:none; margin:0; padding:0 0 0 2.4rem; }
.comment-body{ position:relative; padding:1.1rem 0 1.1rem 3.4rem; border-bottom:1px solid var(--line); }
.comment-body .avatar{ position:absolute; left:0; top:1.15rem; width:40px; height:40px; border-radius:999px; }
.comment-meta{ font-family:var(--font-ui); font-size:.78rem; color:var(--ink-soft); margin-bottom:.3rem; line-height:1.5; }
.comment-meta .fn{ color:var(--ink); font-weight:600; font-style:normal; }
.comment-meta .says{ display:none; }
.comment-metadata{ display:block; margin-top:.1rem; }
.comment-metadata a{ color:var(--ink-soft); text-decoration:none; }
.comment-metadata a:hover{ color:var(--rose); }
.comment-content{ font-size:1rem; line-height:1.6; }
.comment-content p{ margin:0 0 .6rem; }
.comment-content p:last-child{ margin-bottom:0; }
.reply{ margin-top:.4rem; }
.reply a{ font-family:var(--font-ui); font-size:.74rem; color:var(--rose); text-decoration:none; font-weight:600; }
.reply a:hover{ color:var(--rose-deep); text-decoration:underline; }
.comment-respond{ margin-top:1.6rem; }
.comment-respond .comment-reply-title{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.15rem; margin:0 0 .9rem; }
.comment-form p{ margin:0 0 .9rem; }
.comment-form label{ display:block; font-family:var(--font-ui); font-size:.78rem; color:var(--ink-soft); margin-bottom:.35rem; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea{ width:100%; font-family:var(--font-body); font-size:1rem; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:8px; padding:.7rem .8rem; line-height:1.5; }
.comment-form textarea{ min-height:120px; resize:vertical; }
.comment-form .form-submit input{ font-family:var(--font-ui); cursor:pointer; font-size:.92rem; background:var(--rose); color:#fff; border:0; border-radius:999px; padding:.75rem 1.7rem; }
.comment-form .form-submit input:hover{ background:var(--rose-deep); }

.read-next{ max-width:var(--wrap); margin:3rem auto 0; }

/* page (static) */
.page-content{ padding-top:1.4rem; font-size:1.21rem; }
.page-content h2{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.45em; margin:2rem 0 .8rem; }
.page-content p{ margin:0 0 1.3rem; }
.page-content a{ color:var(--rose-deep); }

/* 404 */
.notfound{ max-width:34rem; margin:0 auto; text-align:center; padding:3rem 0 2rem; }
.notfound .code{ font-family:var(--font-display); font-weight:600; color:var(--rose); font-size:clamp(4rem,16vw,7rem); line-height:1; }
.notfound h1{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(1.5rem,5vw,2rem); margin:.6rem 0 .6rem; }
.notfound p{ color:var(--ink-soft); font-size:1.05rem; line-height:1.6; margin:0 auto 1.4rem; max-width:28rem; }
.notfound .search-box{ margin-inline:auto; }
.notfound .browse{ font-family:var(--font-ui); font-size:.85rem; color:var(--ink-soft); margin-top:1.4rem; }
.notfound .browse a{ color:var(--rose-deep); text-decoration:none; margin:0 .35rem; }

/* ---------------------- footer ---------------------- */
.site-footer{ margin-top:3.5rem; border-top:1px solid var(--line); background:var(--surface); }
.footer-inner{ max-width:var(--wrap); margin:0 auto; padding:2.4rem 1.15rem; display:flex; flex-direction:column; gap:1.4rem; }
.footer-brand{ display:flex; align-items:center; gap:.7rem; }
.footer-brand-link{ display:flex; align-items:center; gap:.7rem; text-decoration:none; color:inherit; }
.footer-brand-link:hover .mark{ color:var(--rose-deep); }
.footer-mark{ flex:0 0 auto; width:38px; height:38px; }
.footer-mark img, .footer-mark svg{ width:100%; height:100%; display:block; }
.footer-brand .footer-text{ display:flex; flex-direction:column; line-height:1.05; }
.footer-brand .mark{ font-family:var(--font-display); font-weight:500; font-size:1.3rem; color:var(--ink); }
.footer-brand .mark em{ font-style:italic; }
.footer-brand .tagline{ font-family:var(--font-ui); font-size:.78rem; color:var(--ink-soft); margin-top:.3rem; }
.footer-nav{ display:flex; gap:1.3rem; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.footer-nav a{ font-family:var(--font-ui); font-size:.85rem; text-decoration:none; color:var(--ink-soft); }
.footer-nav a:hover{ color:var(--rose); }
.footer-bottom{ font-family:var(--font-ui); font-size:.76rem; color:var(--ink-soft); display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:1.2rem; }
.footer-bottom .socials{ display:inline-flex; gap:.5rem; }
.footer-bottom .socials a{ width:34px; height:34px; border-radius:999px; border:1px solid var(--line-strong); display:inline-flex; align-items:center; justify-content:center; color:var(--ink-soft); }
.footer-bottom .socials a:hover{ background:var(--rose); border-color:var(--rose); color:#fff; }
.footer-bottom .socials svg{ width:16px; height:16px; }

/* reading progress bar */
.wa-readbar{ position:fixed; top:0; left:0; height:3px; width:0; background:var(--rose); z-index:300; transition:width .08s linear; }

/* back to top */
.wa-top{ position:fixed; right:18px; bottom:18px; width:44px; height:44px; border-radius:999px; border:1px solid var(--line-strong); background:var(--surface); color:var(--ink); display:none; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow); z-index:120; }
.wa-top.show{ display:inline-flex; }
.wa-top:hover{ background:var(--rose); border-color:var(--rose); color:#fff; }
.wa-top svg{ width:20px; height:20px; }

/* lightbox */
.wa-lightbox{ position:fixed; inset:0; background:rgba(20,17,14,.9); z-index:400; display:none; align-items:center; justify-content:center; padding:1.5rem; cursor:zoom-out; }
.wa-lightbox.open{ display:flex; }
.wa-lightbox img{ max-width:96vw; max-height:92vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.wa-lightbox-close{
  position:absolute; top:14px; right:14px; z-index:401; cursor:pointer;
  width:42px; height:42px; border-radius:999px; border:1px solid rgba(255,255,255,.35);
  background:rgba(20,17,14,.55); color:#FAF6EF; display:inline-flex; align-items:center; justify-content:center;
  transition:background-color .15s ease, border-color .15s ease;
}
.wa-lightbox-close svg{ width:20px; height:20px; }
.wa-lightbox-close:hover{ background:var(--rose); border-color:var(--rose); }
.wa-lightbox-close:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
@media (max-width:759.98px){ .wa-lightbox-close{ top:8px; right:8px; } }

/* cookie consent banner */
.wa-cookie{ position:fixed; left:0; right:0; bottom:0; z-index:350; background:var(--surface); border-top:1px solid var(--line-strong); box-shadow:0 -8px 30px -18px rgba(0,0,0,.4); padding:1rem 1.15rem; display:none; }
.wa-cookie.show{ display:block; }
.wa-cookie-inner{ max-width:var(--wrap); margin:0 auto; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.wa-cookie p{ margin:0; font-family:var(--font-ui); font-size:.85rem; line-height:1.5; color:var(--ink-soft); flex:1 1 18rem; }
.wa-cookie p a{ color:var(--rose-deep); }
.wa-cookie .actions{ display:flex; gap:.5rem; margin-left:auto; }
.wa-cookie button{ font-family:var(--font-ui); cursor:pointer; font-size:.85rem; border-radius:999px; padding:.55rem 1.2rem; border:1px solid var(--line-strong); }
.wa-cookie .accept{ background:var(--rose); border-color:var(--rose); color:#fff; }
.wa-cookie .accept:hover{ background:var(--rose-deep); }
.wa-cookie .reject{ background:transparent; color:var(--ink); }
.wa-cookie .reject:hover{ background:var(--rose-tint); border-color:var(--rose); }

/* contact page card — theme-consistent, reusable via class="wa-contact" */
.wa-contact{ max-width:600px; margin:2.5rem auto; padding:2.6rem 2rem; text-align:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.wa-contact h2{ font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:1.7rem; line-height:1.2; margin:0 0 .8rem; }
.wa-contact p{ font-family:var(--font-body); color:var(--ink-soft); font-size:1.05rem; line-height:1.7; margin:0 0 1.5rem; }
.wa-contact .wa-contact-email{ display:inline-block; font-family:var(--font-display); font-weight:500; font-size:clamp(1rem, 4.6vw, 1.3rem); color:var(--rose-deep); text-decoration:none; border-bottom:1px solid var(--rose); padding-bottom:3px; }
.wa-contact .wa-contact-email:hover{ color:var(--rose); }
@media (max-width:480px){ .wa-contact{ padding:1.8rem 1.25rem; } }

/* toast (copy feedback) */
.wa-toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(20px); background:var(--ink); color:var(--paper); font-family:var(--font-ui); font-size:.85rem; padding:.65rem 1.1rem; border-radius:999px; opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:500; }
.wa-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------------------- mobile refinements ---------------------- */
@media (max-width:759.98px){
  /* The article + read-next are centered with no horizontal padding (fine on
     desktop where they're narrower than the viewport). On phones they span the
     full width, so add side padding to keep text off the edges. */
  .article{ padding-left:1.15rem; padding-right:1.15rem; }
  .read-next{ padding-left:1.15rem; padding-right:1.15rem; }

  /* Single posts add the A-/A+ reader controls to the header. Compact the tool
     buttons so search + A-/A+ + theme + menu all fit beside the logo. The logo
     is deliberately left at its normal size. Other page types keep full-size
     buttons (they have fewer of them). */
  body.single .header-tools{ gap:.3rem; }
  body.single .icon-btn{ height:34px; min-width:34px; padding:0 .4rem; }
  body.single .icon-btn svg{ width:16px; height:16px; }
  body.single .fontsize button{ height:34px; width:32px; }
  body.single .fontsize button:first-child{ font-size:.78rem; }
  body.single .fontsize button:last-child{ font-size:1rem; }
}

/* ---------------------- desktop ---------------------- */
@media (min-width:560px){
  .entry-content figure.wp-block-image:not(.alignwide):not(.alignfull):not(.size-full){ max-width:20rem; }
}
/* Desktop/tablet: keep portrait (2:3) in-content images from running down the
   page. Height-capped + centered; landscape images still fill the column.
   Mobile (<760px) is intentionally left full-width. */
@media (min-width:760px){
  .entry-content img:not(.alignwide):not(.alignfull){
    max-height:28rem; width:auto; max-width:100%; height:auto;
  }
  .entry-content figure.wp-block-image:not(.alignwide):not(.alignfull),
  .entry-content .wa-pin-wrap{ margin-left:auto; margin-right:auto; }
  .entry-content .wa-pin-wrap{ display:block; width:-moz-fit-content; width:fit-content; }
}
@media (min-width:760px){
  body{ font-size:1.21rem; }
  .nav-toggle{ display:none; }
  .search-btn{ display:inline-flex; }
  .nav-search{ display:none; }
  .logo-mark{ width:40px; height:40px; }
  .logo-text{ max-width:none; }
  .logo-text .mark{ font-size:1.5rem; }
  .logo-text .tagline{ display:block; }
  .main-nav{ display:block; margin-top:.6rem; padding-top:0; border-top:1px solid var(--line); }
  .main-nav .nav-menu{ flex-direction:row; gap:1.7rem; padding:.7rem 0 0; }
  .main-nav .nav-menu > li > a{ border-bottom:0; padding:.2rem 0; }
  .menu-item-has-children > a{ display:inline-flex!important; align-items:center; gap:.28rem; }
  .menu-item-has-children > a::after{ content:"\25BE"; font-size:.68em; opacity:.55; }
  .sub-menu{ position:absolute; top:100%; left:-.7rem; min-width:206px; background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:.4rem; opacity:0; visibility:hidden; transform:translateY(5px); transition:opacity .15s ease, transform .15s ease, visibility .15s; z-index:50; }
  .menu-item-has-children:hover > .sub-menu, .menu-item-has-children:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
  .sub-menu a{ border-bottom:0!important; border-radius:7px; padding:.5rem .7rem!important; white-space:nowrap; color:var(--ink)!important; }
  .sub-menu a:hover{ background:var(--rose-tint); color:var(--rose-deep)!important; }
  .author-header .avatar{ width:84px; height:84px; font-size:1.8rem; }
  .feature{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:1.8rem; align-items:center; }
  .feature .feature-media img{ height:100%; }
  .grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2.6rem 2rem; }
  .comment-form .comment-form-author, .comment-form .comment-form-email{ display:inline-block; width:calc(50% - .6rem); }
  .comment-form .comment-form-email{ margin-left:1rem; }
}
@media (min-width:1000px){ .grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (min-width:1280px){ :root{ --read:46rem; } }
@media (prefers-reduced-motion:reduce){ *{ transition:none!important; scroll-behavior:auto!important; } }

/* alignment helpers for block content */
.entry-content .alignwide{ max-width:min(100%, 60rem); margin-left:auto; margin-right:auto; }
.entry-content .alignfull{ max-width:100%; }
.entry-content .aligncenter{ margin-left:auto; margin-right:auto; }
