/*
Theme Name:     Willow PR
Theme URI:      https://willowpr.co.uk
Author:         Arrow Development
Author URI:     https://arrowdevelopment.co.uk
Description:    Bespoke custom theme for Willow PR — virtual assistant & business support, Devon/UK. Rose brand (#b76d78), Fraunces + Hanken Grotesk, custom page templates, WooCommerce-ready. Standalone (no parent theme).
Version:        1.3.0
Requires PHP:   7.4
Text Domain:    willowpr
*/

/* =====================================================================
   WILLOW PR — Brand Design System
   Virtual Assistant & PR support, Devon / UK
   Brand rose: #b76d78  ·  Ink charcoal (logo): #2c2a2b
   Headings: Fraunces (editorial serif)  ·  Body: Hanken Grotesk
   Script accent (echoes logo): Pinyon Script
   ===================================================================== */

/* ---------- Tokens ---------- */
:root{
  /* Brand */
  --rose:        #b76d78;   /* primary brand rose            */
  --rose-deep:   #9c5663;   /* hover / pressed               */
  --rose-soft:   #e7c3cb;   /* borders, soft accents         */
  --rose-tint:   #f7ebee;   /* tinted section backgrounds    */
  --rose-wash:   #fcf6f7;   /* faintest blush                */

  /* Ink & neutrals */
  --ink:         #2c2a2b;   /* logo charcoal, headings       */
  --body:        #4a4547;   /* body copy                     */
  --muted:       #8c8487;   /* captions, meta                */
  --line:        #ece6e7;   /* hairlines                     */
  --cream:       #faf6f4;   /* warm off-white section bg     */
  --white:       #ffffff;

  /* Optional whisper of "willow" green — used sparingly */
  --sage:        #7e8d77;

  /* Type */
  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body:    "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --f-script:  "Pinyon Script", "Snell Roundhand", cursive;

  /* Rhythm */
  --container: 1180px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --radius: 18px;
  --radius-sm: 12px;
  --shadow-sm: 0 2px 10px rgba(44,42,43,.05);
  --shadow:    0 18px 50px -22px rgba(44,42,43,.28);
  --shadow-rose: 0 18px 44px -20px rgba(183,109,120,.55);
}

/* ---------- Reset-ish ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--body);
  background:var(--white);
  font-size:clamp(1rem,.97rem + .2vw,1.075rem);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--f-display); color:var(--ink); font-weight:500; line-height:1.1; margin:0 0 .5em; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
::selection{ background:var(--rose); color:#fff; }

/* ---------- Layout helpers ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(3.5rem,7vw,6.5rem); }
.section--tint{ background:var(--rose-tint); }
.section--cream{ background:var(--cream); }
.section--ink{ background:var(--ink); color:#e9e3e4; }
.section--ink h1,.section--ink h2,.section--ink h3{ color:#fff; }
.center{ text-align:center; }
.measure{ max-width:62ch; }
.measure-mx{ max-width:62ch; margin-inline:auto; }

/* Eyebrow / kicker */
.kicker{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--f-body); font-weight:600; font-size:.78rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--rose-deep);
  margin-bottom:1rem;
}
.kicker::before{ content:""; width:26px; height:1px; background:var(--rose); }
.center .kicker::before{ display:none; }

.script{ font-family:var(--f-script); color:var(--rose); font-weight:400; }

h1{ font-size:clamp(2.4rem,1.6rem + 3.4vw,4rem); }
h2{ font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem); }
h3{ font-size:clamp(1.25rem,1.05rem + .8vw,1.6rem); }
.lead{ font-size:clamp(1.1rem,1.02rem + .45vw,1.3rem); color:var(--body); }
.muted{ color:var(--muted); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--f-body); font-weight:600; font-size:.98rem; line-height:1;
  padding:.95rem 1.7rem; border-radius:100px; cursor:pointer;
  border:1.5px solid transparent; transition:.25s ease; white-space:nowrap;
}
.btn--primary{ background:var(--rose); color:#fff; box-shadow:var(--shadow-rose); }
.btn--primary:hover{ background:var(--rose-deep); transform:translateY(-2px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--rose-soft); }
.btn--ghost:hover{ border-color:var(--rose); color:var(--rose-deep); }
.btn--light{ background:#fff; color:var(--ink); }
.btn--light:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--lg{ padding:1.1rem 2.1rem; font-size:1.05rem; }
.btn-row{ display:flex; gap:.85rem; flex-wrap:wrap; }
.center .btn-row{ justify-content:center; }

.arrowlink{ font-weight:600; color:var(--rose-deep); display:inline-flex; gap:.4rem; align-items:center; }
.arrowlink svg{ transition:transform .25s ease; }
.arrowlink:hover svg{ transform:translateX(4px); }

/* =====================================================================
   HEADER
   ===================================================================== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.82); backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:94px; }
.brand img{ height:66px; width:auto; }
.nav{ display:flex; align-items:center; gap:2rem; }
.nav a{ font-weight:500; font-size:.97rem; color:var(--ink); position:relative; padding-block:.4rem; }
.nav a::after{ content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--rose); transition:width .25s ease; }
.nav a:hover::after,.nav a.active::after{ width:100%; }
.header-cta{ display:flex; align-items:center; gap:1.1rem; }
.header-phone{ font-weight:600; color:var(--ink); font-size:.95rem; }
.nav-toggle{ display:none; background:none; border:0; cursor:pointer; padding:.4rem; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px; transition:.25s; }

/* =====================================================================
   HERO
   ===================================================================== */
.hero{ position:relative; overflow:hidden; background:
    radial-gradient(1100px 520px at 78% -8%, var(--rose-tint), transparent 60%),
    radial-gradient(900px 480px at 0% 110%, var(--rose-wash), transparent 55%),
    var(--white);
}
.hero .container{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; padding-block:clamp(3rem,6vw,5.5rem); }
.hero h1{ margin-bottom:.4em; }
.hero h1 em{ font-style:italic; color:var(--rose); }
.hero .lead{ margin-bottom:1.8rem; max-width:48ch; }
.hero-trust{ display:flex; align-items:center; gap:1rem; margin-top:2rem; font-size:.9rem; color:var(--muted); }
.stars{ color:var(--rose); letter-spacing:2px; }

/* Hero visual */
.hero-art{ position:relative; }
.hero-art .photo{
  border-radius:var(--radius); box-shadow:var(--shadow);
  aspect-ratio:4/5; object-fit:cover; width:100%; background:var(--rose-tint);
}
.hero-badge{
  position:absolute; left:-22px; bottom:34px; background:#fff;
  border-radius:var(--radius-sm); box-shadow:var(--shadow);
  padding:.95rem 1.15rem; display:flex; align-items:center; gap:.8rem;
}
.hero-badge .num{ font-family:var(--f-display); font-size:1.7rem; color:var(--rose); line-height:1; }
.hero-badge small{ color:var(--muted); font-size:.78rem; line-height:1.25; display:block; }
.hero-float{
  position:absolute; right:-14px; top:28px; background:#fff; border:1px solid var(--line);
  border-radius:100px; padding:.55rem 1rem; box-shadow:var(--shadow-sm); font-weight:600; font-size:.85rem;
  display:flex; align-items:center; gap:.5rem;
}
.dot{ width:9px; height:9px; border-radius:50%; background:var(--sage); box-shadow:0 0 0 4px rgba(126,141,119,.18); }

/* =====================================================================
   LOGO / TRUST STRIP
   ===================================================================== */
.trust-strip{ border-block:1px solid var(--line); background:var(--white); }
.trust-strip .container{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; padding-block:1.4rem; }
.trust-item{ display:flex; align-items:center; gap:.6rem; color:var(--body); font-weight:500; font-size:.95rem; }
.trust-item svg{ color:var(--rose); flex:none; }

/* =====================================================================
   STATS
   ===================================================================== */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.stat{ text-align:center; padding:1.5rem 1rem; }
.stat .num{ font-family:var(--f-display); font-size:clamp(2.2rem,1.6rem + 2vw,3.2rem); color:var(--rose); line-height:1; }
.stat .lbl{ color:var(--body); font-weight:500; margin-top:.5rem; font-size:.95rem; }

/* =====================================================================
   SERVICES GRID
   ===================================================================== */
.grid{ display:grid; gap:1.4rem; }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:2rem 1.8rem; transition:.3s ease; position:relative; overflow:hidden;
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--rose-soft); }
.card .ic{
  width:54px; height:54px; border-radius:14px; display:grid; place-items:center;
  background:var(--rose-tint); color:var(--rose-deep); margin-bottom:1.1rem;
}
.card h3{ margin-bottom:.5rem; }
.card p{ margin-bottom:.9rem; font-size:.98rem; }
.card ul{ margin:0; padding:0; list-style:none; }
.card ul li{ position:relative; padding-left:1.4rem; margin-bottom:.35rem; font-size:.92rem; color:var(--body); }
.card ul li::before{ content:""; position:absolute; left:0; top:.6em; width:7px; height:7px; border-radius:50%; background:var(--rose-soft); }

/* =====================================================================
   SPLIT (about / process)
   ===================================================================== */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split--reverse .split-media{ order:2; }
.split-media img{ border-radius:var(--radius); box-shadow:var(--shadow); aspect-ratio:4/5; object-fit:cover; width:100%; background:var(--rose-tint); }
.signature{ font-family:var(--f-script); font-size:2.4rem; color:var(--rose); line-height:1; margin-top:.5rem; }

/* Process steps */
.steps{ counter-reset:step; display:grid; gap:1.4rem; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start; }
.step .n{
  counter-increment:step; width:46px; height:46px; border-radius:50%; flex:none;
  display:grid; place-items:center; font-family:var(--f-display); font-size:1.2rem;
  color:#fff; background:var(--rose);
}
.step .n::before{ content:counter(step,decimal-leading-zero); }
.step h3{ margin-bottom:.25rem; font-size:1.2rem; }
.step p{ margin:0; font-size:.96rem; }

/* =====================================================================
   PLANNERS / PRODUCT TEASER
   ===================================================================== */
.product{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:.3s ease; }
.product:hover{ box-shadow:var(--shadow); transform:translateY(-5px); }
.product .pimg{ aspect-ratio:1/1; background:var(--rose-tint); position:relative; }
.product .ptag{ position:absolute; top:.9rem; left:.9rem; background:#fff; color:var(--rose-deep); font-weight:600; font-size:.75rem; padding:.3rem .7rem; border-radius:100px; box-shadow:var(--shadow-sm); }
.product .pbody{ padding:1.3rem 1.4rem 1.6rem; }
.product h3{ font-size:1.15rem; margin-bottom:.3rem; }
.product .price{ font-family:var(--f-display); color:var(--rose); font-size:1.3rem; }

/* =====================================================================
   TESTIMONIAL
   ===================================================================== */
.quote{ max-width:50ch; margin-inline:auto; text-align:center; }
.quote .mark{ font-family:var(--f-display); font-size:4rem; color:var(--rose-soft); line-height:.6; }
.quote p{ font-family:var(--f-display); font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem); color:var(--ink); font-style:italic; line-height:1.4; }
.quote .who{ font-style:normal; font-family:var(--f-body); font-weight:600; color:var(--rose-deep); font-size:1rem; margin-top:1rem; }

/* =====================================================================
   CTA BAND
   ===================================================================== */
.cta-band{ background:linear-gradient(120deg,var(--rose),var(--rose-deep)); color:#fff; border-radius:calc(var(--radius) + 6px); padding:clamp(2.5rem,5vw,4rem); text-align:center; box-shadow:var(--shadow-rose); }
.cta-band h2{ color:#fff; }
.cta-band p{ color:rgba(255,255,255,.9); max-width:50ch; margin-inline:auto; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.site-footer{ background:var(--ink); color:#c9c1c3; padding-block:clamp(3rem,5vw,4.5rem) 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.5rem; }
.site-footer h4{ color:#fff; font-family:var(--f-body); font-weight:600; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.1rem; }
.site-footer a{ color:#c9c1c3; display:block; margin-bottom:.6rem; font-size:.95rem; transition:.2s; }
.site-footer a:hover{ color:var(--rose-soft); padding-left:3px; }
.footer-brand img{ height:50px; filter:brightness(0) invert(1); opacity:.95; margin-bottom:1rem; }
.footer-brand p{ font-size:.95rem; color:#a89fa2; max-width:32ch; }
.socials{ display:flex; gap:.7rem; margin-top:1.1rem; }
.socials a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.18); display:grid; place-items:center; margin:0; }
.socials a:hover{ background:var(--rose); border-color:var(--rose); padding-left:0; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:2.5rem; padding-top:1.5rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem; color:#9c9396; }
.footer-bottom a{ display:inline; margin:0; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media(max-width:980px){
  .hero .container{ grid-template-columns:1fr; }
  .hero-art{ max-width:440px; margin-inline:auto; }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split-media{ order:0; }
  .grid--3,.grid--2{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2rem; }
  .stats{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:680px){
  .nav,.header-phone{ display:none; }
  .nav-toggle{ display:block; }
  .grid--3,.grid--2{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .trust-strip .container{ justify-content:center; text-align:center; }
  .hero-badge{ left:0; }
}

/* =====================================================================
   INNER PAGE COMPONENTS
   ===================================================================== */
.page-hero{ background:
    radial-gradient(900px 460px at 85% -20%, var(--rose-tint), transparent 60%),
    var(--cream);
  border-bottom:1px solid var(--line); }
.page-hero .container{ padding-block:clamp(2.6rem,5vw,4.2rem); }
.page-hero h1{ margin-bottom:.3em; max-width:18ch; }
.page-hero .lead{ max-width:60ch; }
.crumbs{ font-size:.85rem; color:var(--muted); margin-bottom:1rem; }
.crumbs a{ color:var(--rose-deep); }

/* generic two-col prose + media reuse .split */
.prose p{ margin-bottom:1.1em; }
.prose h3{ margin-top:1.6em; }

/* value tiles */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.value{ padding:1.6rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.value .ic{ width:48px;height:48px;border-radius:12px;background:var(--rose-tint);color:var(--rose-deep);display:grid;place-items:center;margin-bottom:.9rem;font-size:1.2rem;}
.value h3{ font-size:1.15rem; margin-bottom:.35rem; }
.value p{ margin:0; font-size:.95rem; }

/* timeline */
.timeline{ max-width:760px; margin-inline:auto; border-left:2px solid var(--rose-soft); padding-left:2rem; display:grid; gap:1.8rem; }
.tl{ position:relative; }
.tl::before{ content:""; position:absolute; left:-2.62rem; top:.2rem; width:14px;height:14px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 4px var(--rose-tint); }
.tl .yr{ font-family:var(--f-display); color:var(--rose-deep); font-size:1.1rem; }
.tl h3{ font-size:1.15rem; margin:.1rem 0 .3rem; }
.tl p{ margin:0; font-size:.96rem; }

/* pricing cards */
.pricing{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; align-items:start; }
.price-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.8rem; position:relative; transition:.3s; }
.price-card:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.price-card.featured{ border-color:var(--rose); box-shadow:var(--shadow-rose); }
.price-card .tag{ position:absolute;top:-.8rem;left:50%;transform:translateX(-50%);background:var(--rose);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .9rem;border-radius:100px; }
.price-card h3{ font-size:1.3rem; }
.price-card .amt{ font-family:var(--f-display); font-size:2.6rem; color:var(--rose); line-height:1; margin:.3rem 0; }
.price-card .amt small{ font-family:var(--f-body); font-size:.95rem; color:var(--muted); font-weight:500; }
.price-card ul{ list-style:none; padding:0; margin:1.2rem 0 1.6rem; }
.price-card ul li{ padding-left:1.6rem; position:relative; margin-bottom:.6rem; font-size:.95rem; }
.price-card ul li::before{ content:"✓"; position:absolute; left:0; color:var(--rose); font-weight:700; }

/* FAQ (CSS-only) */
.faq{ max-width:780px; margin-inline:auto; }
.faq details{ border:1px solid var(--line); border-radius:var(--radius-sm); margin-bottom:.9rem; background:#fff; overflow:hidden; }
.faq summary{ cursor:pointer; padding:1.1rem 1.3rem; font-family:var(--f-display); font-size:1.1rem; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--rose); font-size:1.5rem; line-height:1; transition:.2s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ padding:0 1.3rem 1.2rem; margin:0; color:var(--body); font-size:.97rem; }

/* pill list */
.pills{ display:flex; flex-wrap:wrap; gap:.6rem; list-style:none; padding:0; margin:1.2rem 0 0; }
.pills li{ background:var(--rose-wash); border:1px solid var(--rose-soft); color:var(--rose-deep); border-radius:100px; padding:.45rem 1rem; font-size:.9rem; font-weight:500; }

/* contact layout */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.contact-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:2rem; box-shadow:var(--shadow-sm); }
.contact-card .row{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.3rem; }
.contact-card .ic{ width:44px;height:44px;border-radius:12px;background:var(--rose-tint);color:var(--rose-deep);display:grid;place-items:center;flex:none; }
.contact-card .row h4{ margin:0 0 .15rem; font-family:var(--f-display); font-size:1.05rem; color:var(--ink); text-transform:none; letter-spacing:0; }
.contact-card .row a,.contact-card .row p{ margin:0; color:var(--body); font-size:.96rem; }
.field{ margin-bottom:1rem; }
.field label{ display:block; font-weight:600; font-size:.88rem; margin-bottom:.35rem; color:var(--ink); }
.field input,.field textarea{ width:100%; padding:.85rem 1rem; border:1px solid var(--line); border-radius:12px; font-family:var(--f-body); font-size:1rem; background:var(--cream); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--rose); background:#fff; }

@media(max-width:980px){
  .values,.pricing{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
}
/* mobile nav open */
@media(max-width:680px){
  .nav.open{ display:flex; position:absolute; top:78px; left:0; right:0; flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line); padding:.5rem 0; }
  .nav.open a{ padding:.9rem var(--gutter); width:100%; }
}

/* =====================================================================
   FIXES & STANDALONE BASE STYLES
   ===================================================================== */
/* Testimonial: white text on the dark/image band */
.section--ink .quote p{ color:#fff; }
.section--ink .quote .who{ color:#fff; }
.section--ink .quote .mark{ color:rgba(255,255,255,.5); }

/* Centre any centred button row (class on the row itself) */
.btn-row.center{ justify-content:center; }

/* ---- Base content styling (blog / pages / WooCommerce) for standalone theme ---- */
.entry,.wp-block-post-content,.entry-content{ font-size:1.05rem; }
.entry-content > *,.page-body > *{ max-width:760px; }
.entry-content > .alignwide{ max-width:1040px; }
.entry-content > .alignfull{ max-width:none; }
.entry-content img,.wp-block-image img{ border-radius:var(--radius-sm); }
.entry-content h2{ margin-top:1.6em; }
.entry-content h3{ margin-top:1.3em; }
.entry-content a{ color:var(--rose-deep); text-decoration:underline; text-underline-offset:3px; }
.entry-content a:hover{ color:var(--rose); }
.entry-content blockquote{ border-left:3px solid var(--rose); padding-left:1.2rem; margin-left:0; font-family:var(--f-display); font-style:italic; color:var(--ink); }
.entry-content ul,.entry-content ol{ padding-left:1.3rem; }
.entry-content li{ margin-bottom:.4rem; }

/* Post cards (blog archive) */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.post-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:.3s; display:flex; flex-direction:column; }
.post-card:hover{ box-shadow:var(--shadow); transform:translateY(-5px); }
.post-card .thumb{ aspect-ratio:16/10; background:var(--rose-tint); object-fit:cover; width:100%; }
.post-card .pc-body{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.post-card .meta{ font-size:.8rem; color:var(--muted); letter-spacing:.04em; text-transform:uppercase; }
.post-card h3{ font-size:1.2rem; margin:0; }
.post-card h3 a{ color:var(--ink); }
.post-card h3 a:hover{ color:var(--rose-deep); }
.post-card .excerpt{ font-size:.95rem; color:var(--body); margin:0; }
.post-card .more{ margin-top:auto; font-weight:600; color:var(--rose-deep); font-size:.9rem; }

/* Single post */
.post-header{ max-width:760px; margin-inline:auto; text-align:center; }
.post-header .meta{ color:var(--muted); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.6rem; }
.post-featured{ max-width:1040px; margin:2rem auto; border-radius:var(--radius); overflow:hidden; }
.post-body{ max-width:760px; margin-inline:auto; }

/* Pagination */
.pagination{ display:flex; gap:.5rem; justify-content:center; margin-top:2.5rem; flex-wrap:wrap; }
.pagination .page-numbers{ padding:.6rem .95rem; border:1px solid var(--line); border-radius:10px; color:var(--ink); font-weight:600; }
.pagination .page-numbers.current{ background:var(--rose); color:#fff; border-color:var(--rose); }
.pagination .page-numbers:hover{ border-color:var(--rose); }

/* WooCommerce light touch-ups */
.woocommerce-page .button,.woocommerce .button,.woocommerce a.button,.woocommerce button.button{ background:var(--rose)!important; color:#fff!important; border-radius:100px!important; padding:.8rem 1.5rem!important; font-weight:600!important; }
.woocommerce-page .button:hover,.woocommerce a.button:hover{ background:var(--rose-deep)!important; }
.woocommerce span.price,.woocommerce-Price-amount{ color:var(--rose-deep); font-weight:600; }
.woocommerce ul.products li.product h2,.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--f-display); }

@media(max-width:900px){ .post-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .post-grid{ grid-template-columns:1fr; } }

/* Pill links (areas hub) */
.pills li a{ color:inherit; display:block; }
.pills li:has(a){ padding:0; }
.pills li:has(a) a{ padding:.45rem 1rem; }
.pills li:hover{ background:var(--rose); border-color:var(--rose); color:#fff; }
.pills li:hover a{ color:#fff; }
