/*
Theme Name: FortuneScouts
Theme URI: https://fortunescouts.com
Author: FortuneScouts
Author URI: https://fortunescouts.com
Description: The FortuneScouts privateer casino-guide theme. Wood-and-gold branding, parchment content cards, semantic component classes (quick answer, steps, moves, callouts, payout compare, FAQ accordions), auto-generated table of contents, sticky sidebar on desktop, swipeable card rows and a sticky action bar on mobile, and scroll-reveal animations that respect reduced-motion settings.
Version: 1.7.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fortunescouts
Tags: blog, news, custom-menu, featured-images, sticky-post, two-columns
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */
:root{
  --wood:#6B4226; --wood-dark:#4A2E19; --wood-darker:#38220F;
  --gold:#E8C547; --gold-dark:#B8942E; --gold-pale:#F5E29A;
  --green:#2E7D4F; --green-dark:#1F5A38;
  --navy:#3A5A8C; --navy-dark:#27406B;
  --crimson:#B03A2E; --crimson-dark:#7A241E;
  --cream:#F2E9D8; --cream-dark:#D8C9A8; --paper:#FAF4E7; --ink:#2b1c10;
  --font-display:'Pirata One',serif;
  --font-body:'Alegreya',serif;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important;transition:none !important;}
}
body{
  font-family:var(--font-body);color:var(--ink);font-size:19px;line-height:1.6;
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,.12) 0 2px, transparent 2px 46px),
    linear-gradient(180deg, #503018, var(--wood-darker));
}
a{color:var(--crimson-dark);}
a:hover{color:var(--crimson);}
img{max-width:100%;height:auto;}

/* ==========================================================================
   3. Header / navigation
   ========================================================================== */
.topbar{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg, var(--wood-darker), #2c1a0b);
  border-bottom:3px solid var(--gold-dark);
  padding:14px 40px;display:flex;align-items:center;gap:34px;
}
.logo{font-family:var(--font-display);font-size:34px;color:var(--gold);text-decoration:none;
  text-shadow:0 2px 0 var(--gold-dark);letter-spacing:.02em;}
.logo span{color:var(--cream);font-size:22px;}
/* image logo (Site Identity custom logo) */
.logo.logo-img{display:flex;align-items:center;text-shadow:none;}
.logo.logo-img img{display:block;height:52px;width:auto;max-width:220px;object-fit:contain;}
.nav{display:flex;gap:26px;margin-left:auto;align-items:center;}
.nav ul{display:flex;gap:26px;align-items:center;list-style:none;}
.nav a{color:var(--cream);text-decoration:none;font-weight:500;font-size:18px;letter-spacing:.03em;}
.nav a:hover{color:var(--gold);}
.nav .cta, .actionbar .cta{
  background:linear-gradient(180deg,var(--gold-pale),var(--gold) 55%,var(--gold-dark));
  color:var(--ink);font-weight:800;padding:9px 22px;border-radius:999px;
  box-shadow:0 3px 8px rgba(0,0,0,.4);text-decoration:none;
}
.nav .cta:hover{filter:brightness(1.06);color:var(--ink);}
/* dropdown sub-menus (desktop) */
.nav li{position:relative;}
.nav li.menu-item-has-children>a::after{content:"\25BE";color:var(--gold);font-size:12px;margin-left:6px;display:inline-block;vertical-align:1px;}
.nav ul.sub-menu{
  display:none;position:absolute;top:100%;left:-14px;min-width:230px;
  flex-direction:column;align-items:stretch;gap:0;padding:8px;margin:6px 0 0;
  background:linear-gradient(180deg, var(--wood-darker), #2c1a0b);
  border:2px solid var(--gold-dark);border-radius:12px;
  box-shadow:0 12px 26px rgba(0,0,0,.55);z-index:70;
}
.nav li:hover>.sub-menu, .nav li:focus-within>.sub-menu{display:flex;}
/* invisible hover bridge so the pointer can cross from link to panel */
.nav li.menu-item-has-children>a::before{content:"";position:absolute;left:0;right:0;top:100%;height:16px;}
.nav .sub-menu li{width:100%;}
.nav .sub-menu a{display:block;padding:10px 12px;border-radius:8px;font-size:17px;}
.nav .sub-menu a:hover{background:rgba(232,197,71,.12);color:var(--gold);}
/* mobile hamburger (pure CSS details) */
.menu{position:relative;display:none;}
.menu summary{list-style:none;cursor:pointer;width:46px;height:44px;border-radius:10px;
  border:2px solid var(--gold-dark);display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;
  background:rgba(0,0,0,.25);}
.menu summary::-webkit-details-marker{display:none;}
.menu summary i{display:block;width:22px;height:3px;border-radius:2px;background:var(--gold);}
.menu .panel{
  position:absolute;right:0;top:52px;width:240px;background:var(--paper);
  border:2px solid var(--gold-dark);border-radius:12px;box-shadow:0 10px 26px rgba(0,0,0,.55);
  padding:8px;z-index:60;
}
.menu .panel ul{list-style:none;}
.menu .panel a{display:block;padding:12px 14px;text-decoration:none;color:var(--ink);font-weight:700;
  border-radius:8px;font-size:17px;}
.menu .panel a:hover{background:#f1e4c6;}
.menu .panel ul.sub-menu{margin:0 0 4px 12px;padding-left:8px;border-left:2px solid var(--gold-dark);}
.menu .panel .sub-menu a{font-size:16px;font-weight:600;padding:9px 12px;}

/* ==========================================================================
   4. Hero
   ========================================================================== */
.hero{padding:46px 40px 40px;text-align:center;
  background:radial-gradient(ellipse 110% 80% at 50% 0%, rgba(255,184,77,.12), transparent 60%);}
.crumbs{font-size:16px;color:var(--cream-dark);letter-spacing:.04em;margin-bottom:16px;}
.crumbs a{color:var(--gold);text-decoration:none;}
.crumbs a:hover{text-decoration:underline;}
.hero h1{font-family:var(--font-display);font-weight:400;font-size:60px;line-height:1.08;color:var(--gold);
  text-shadow:0 3px 0 var(--gold-dark), 0 8px 18px rgba(0,0,0,.55);max-width:900px;margin:0 auto;}
.hero .dek{font-size:24px;font-style:italic;color:var(--cream);max-width:760px;margin:14px auto 0;}
.meta{display:flex;flex-wrap:wrap;gap:12px 22px;justify-content:center;margin-top:20px;font-size:16px;color:var(--cream-dark);}
.meta b{color:var(--gold);}

/* ==========================================================================
   5. Layout shell (content + sticky sidebar)
   ========================================================================== */
.shell{max-width:1440px;margin:0 auto;padding:0 40px 70px;display:grid;
  grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start;}
.shell.one-col{grid-template-columns:minmax(0,1040px);justify-content:center;}
main{min-width:0;}
aside.sidebar{position:sticky;top:84px;display:flex;flex-direction:column;gap:22px;
  max-height:calc(100vh - 104px);overflow-y:auto;scrollbar-width:thin;padding-bottom:14px;}

/* ==========================================================================
   6. Content components
   ========================================================================== */
/* --- quick answer (green felt) --- */
.quick{
  background:radial-gradient(ellipse 90% 130% at 50% 0%, rgba(255,255,255,.07), transparent 55%),
    linear-gradient(180deg, var(--green), var(--green-dark));
  border:3px solid var(--gold-dark);border-radius:16px;color:var(--cream);
  padding:24px 28px;box-shadow:inset 0 0 40px rgba(0,0,0,.3), 0 6px 16px rgba(0,0,0,.45);
  margin:0 0 30px;
}
.quick .tag{display:inline-block;background:var(--gold);color:var(--ink);font-weight:800;font-size:14px;
  letter-spacing:.16em;text-transform:uppercase;padding:5px 14px;border-radius:999px;margin-bottom:12px;}
.quick p{font-size:21px;line-height:1.55;margin:0;}
.quick b,.quick strong{color:var(--gold-pale);}

/* --- parchment card sections --- */
.paper, .entry-content{
  background:linear-gradient(180deg,var(--paper), #f1e6cd);
  border:2px solid var(--gold-dark);border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.45);
  padding:30px 34px;margin-bottom:30px;
}
.entry-content .paper{box-shadow:0 4px 12px rgba(0,0,0,.18);} /* nested cards */
.entry-content > *:first-child{margin-top:0;}
.entry-content p{margin:12px 0;}
.lede{font-size:20px;font-style:italic;color:#5a4126;}

/* numbered section headings (auto via CSS counter) */
.entry-content{counter-reset:fs-section;}
.entry-content h2{
  font-family:var(--font-display);font-weight:400;font-size:38px;color:var(--crimson-dark);
  letter-spacing:.02em;margin:34px 0 8px;display:flex;align-items:center;gap:14px;scroll-margin-top:90px;
}
.entry-content h2:first-child{margin-top:0;}
.entry-content h2::before{
  counter-increment:fs-section;content:counter(fs-section);
  flex:0 0 40px;width:40px;height:40px;border-radius:50%;
  font-family:var(--font-body);font-weight:800;font-size:21px;
  background:radial-gradient(circle at 35% 30%, var(--gold-pale), var(--gold) 45%, var(--gold-dark));
  color:var(--ink);display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 8px rgba(0,0,0,.35), inset 0 -3px 0 rgba(0,0,0,.2);
}
.entry-content h2.no-num::before{display:none;}
.entry-content h3{font-size:24px;font-weight:800;color:var(--wood-dark);margin:22px 0 8px;}
/* plain bullet/numbered lists (WordPress adds wp-block-list + the theme JS adds
   fs-reveal, so match by excluding component classes, not by "no class") */
.entry-content :where(ul:not(.glance):not(.check):not(.cross):not(.bars):not(.vals):not(.stats):not(.pay):not(.moves):not(.toc):not(.fs-toc-list):not(.postcards),
  ol:not(.steps)){margin:12px 0 12px 50px;}
.entry-content li{margin:6px 0;}
blockquote{border-left:6px solid var(--gold-dark);background:#faf1d4;border-radius:10px;
  padding:14px 20px;margin:16px 0;font-style:italic;}

/* --- figures --- */
.figure, .entry-content figure{margin:20px 0;border-radius:12px;overflow:hidden;
  border:2px solid var(--gold-dark);box-shadow:0 5px 14px rgba(0,0,0,.35);}
.figure img, .entry-content figure img{display:block;width:100%;height:auto;}
.figure figcaption, .entry-content figcaption{background:var(--wood-dark);color:var(--cream);
  font-size:15px;font-style:italic;padding:8px 14px;text-align:center;}
/* side figure: 300px, floated right on desktop so text wraps around it */
.figure.fig-right, .entry-content figure.fig-right{float:right;width:300px;max-width:45%;
  margin:6px 0 18px 24px;}
.entry-content h2, .entry-content h3{clear:both;}

/* --- value cards (ul.vals) --- */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0;list-style:none;padding:0;}
.vals .val{background:#fff;border:2px solid var(--gold-dark);border-radius:12px;padding:18px 14px;
  text-align:center;box-shadow:0 4px 10px rgba(0,0,0,.15);margin:0;}
.val .g{font-size:34px;font-weight:800;letter-spacing:.05em;}
.val .g .red{color:var(--crimson);}
.val h4{font-size:16px;text-transform:uppercase;letter-spacing:.1em;color:var(--crimson-dark);margin:4px 0 8px;}
.val p{font-size:16.5px;line-height:1.4;margin:0;}

/* --- callouts --- */
.callout{border-radius:12px;padding:16px 20px;margin:18px 0;font-size:18px;border-left:6px solid;}
.callout b:first-child, .callout strong:first-child{display:block;font-size:17px;text-transform:uppercase;
  letter-spacing:.1em;margin-bottom:4px;}
.callout.tip{background:#eef3e6;border-color:var(--green);}
.callout.tip b:first-child,.callout.tip strong:first-child{color:var(--green-dark);}
.callout.warn{background:#f7e8e5;border-color:var(--crimson);}
.callout.warn b:first-child,.callout.warn strong:first-child{color:var(--crimson-dark);}
.callout.gold{background:#faf1d4;border-color:var(--gold-dark);}
.callout.gold b:first-child,.callout.gold strong:first-child{color:var(--gold-dark);}

/* --- steps (ol.steps): 4-across cards on desktop, timeline on mobile --- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 18px;
  list-style:none;padding:0;counter-reset:step;}
.steps .stepc{background:var(--wood-dark);color:var(--cream);border-radius:12px;padding:16px 14px;
  position:relative;border:2px solid var(--gold-dark);margin:0;}
.stepc::before{counter-increment:step;content:counter(step);
  position:absolute;top:-14px;left:12px;width:28px;height:28px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--gold-pale), var(--gold) 45%, var(--gold-dark));
  color:var(--ink);font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;}
.stepc h4{color:var(--gold);font-size:17px;text-transform:uppercase;letter-spacing:.08em;margin:6px 0 6px;}
.stepc p{font-size:15.5px;line-height:1.42;margin:0;color:var(--cream);}
.stepc b,.stepc strong{color:var(--gold-pale);}

/* --- moves (ul.moves): 5-across desktop, swipe row mobile --- */
.swipe-hint{display:none;font-size:13.5px;color:#8a6a3e;font-style:italic;margin:10px 0 6px;text-align:right;}
.moves{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:18px 0;list-style:none;padding:0;}
.moves .movec{background:linear-gradient(180deg,#57371e,var(--wood-dark));border:2px solid var(--gold-dark);
  border-radius:12px;padding:14px 10px;text-align:center;color:var(--cream);margin:0;}
.movec .badge{width:48px;height:28px;border-radius:8px;margin:0 auto 8px;font-weight:800;font-size:19px;color:var(--ink);
  background:radial-gradient(circle at 35% 30%, var(--gold-pale), var(--gold) 55%, var(--gold-dark));
  display:flex;align-items:center;justify-content:center;box-shadow:inset 0 -2px 0 rgba(0,0,0,.2);}
.movec h4{font-family:var(--font-display);font-weight:400;font-size:23px;color:var(--gold);margin-bottom:4px;}
.movec p{font-size:14.5px;line-height:1.35;margin:0;opacity:.95;}

/* --- example verdict boxes --- */
.examples{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0;}
.ex{border:2px solid var(--gold-dark);border-radius:12px;overflow:hidden;background:#fff;margin:12px 0;}
.examples .ex{margin:0;}
.ex .hand{padding:14px 16px;font-size:18px;}
.ex .hand b{font-size:20px;}
.ex .verdict{padding:10px 16px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  font-size:16px;text-align:center;color:#fff;}
.ex .verdict.hit{background:var(--crimson);}
.ex .verdict.stand{background:var(--green-dark);}

/* --- stat tiles (ul.stats) --- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0;list-style:none;padding:0;}
.stats .stat{background:var(--wood-dark);border:2px solid var(--gold-dark);border-radius:12px;
  padding:16px;text-align:center;color:var(--cream);margin:0;}
.stat .v{font-family:var(--font-display);font-size:40px;color:var(--gold);line-height:1;}
.stat .l{font-size:15px;text-transform:uppercase;letter-spacing:.1em;margin-top:6px;opacity:.9;}

/* --- glance chips (ul.glance) --- */
.glance{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;list-style:none;padding:0;}
.glance .chip{background:var(--wood-dark);border:2px solid var(--gold-dark);border-radius:12px;
  padding:10px 16px;text-align:center;color:var(--cream);min-width:118px;margin:0;}
.chip .v{font-family:var(--font-display);font-size:26px;color:var(--gold);line-height:1;}
.chip .l{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-top:4px;opacity:.9;}

/* --- payout compare (ul.pay) --- */
.pay{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0;list-style:none;padding:0;}
.pay .payc{margin:0;}
.payc{border-radius:14px;padding:20px;text-align:center;color:var(--cream);
  box-shadow:0 5px 14px rgba(0,0,0,.3);}
.payc.good{background:linear-gradient(180deg,var(--green),var(--green-dark));border:3px solid var(--gold);}
.payc.bad{background:linear-gradient(180deg,#6e2a22,var(--crimson-dark));border:3px solid var(--crimson);}
.payc .r{font-family:var(--font-display);font-size:44px;line-height:1;}
.payc.good .r{color:var(--gold);}
.payc .m{font-size:19px;margin-top:8px;}
.payc .m b{font-size:24px;color:var(--gold-pale);}
.payc .tag{display:inline-block;margin-top:12px;padding:6px 20px;border-radius:999px;font-weight:800;
  font-size:15px;letter-spacing:.12em;text-transform:uppercase;}
.payc.good .tag{background:var(--gold);color:var(--ink);}
.payc.bad .tag{background:rgba(0,0,0,.35);border:2px solid var(--crimson);color:var(--cream);}

/* --- tables --- */
.entry-content table{width:100%;border-collapse:separate;border-spacing:0;margin:16px 0;background:#fff;
  border-radius:10px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.12);font-size:17.5px;
  border:1.5px solid var(--gold-dark);}
.entry-content caption{caption-side:bottom;background:var(--wood-dark);color:var(--cream);
  font-size:15px;font-style:italic;padding:8px 14px;text-align:center;}
.entry-content thead th{background:var(--wood-dark);color:var(--gold);text-align:left;padding:11px 14px;
  font-size:16px;text-transform:uppercase;letter-spacing:.06em;}
.entry-content td{padding:10px 14px;border-bottom:1.5px solid #eadfc4;}
.entry-content tbody th{padding:10px 14px;border-bottom:1.5px solid #eadfc4;text-align:left;
  background:#f6eed9;color:var(--wood-dark);font-weight:800;}
.entry-content tr:last-child td, .entry-content tbody tr:last-child th{border-bottom:none;}
.entry-content tbody tr:nth-child(even) td{background:#faf5e8;}
/* verdict cells */
.entry-content td.good{color:var(--green-dark);font-weight:800;}
.entry-content td.bad{color:var(--crimson);font-weight:800;}
/* responsive scroll wrapper: keeps wide tables inside the card on small screens */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0;}
.table-scroll table{margin:0;min-width:540px;}

/* --- comparison columns --- */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0;}
.comp{border:2px solid var(--gold-dark);border-radius:12px;padding:18px;background:#fff;margin:12px 0;}
.compare .comp{margin:0;}
.comp h4{font-family:var(--font-display);font-weight:400;font-size:26px;color:var(--crimson-dark);margin-bottom:8px;}
.comp ul{margin:0 0 0 20px;font-size:17px;}
.comp li{margin:6px 0;}
/* versus variants: green "liked/pros" column, crimson "disliked/cons" column */
.comp.good h4{color:var(--green-dark);}
.comp.bad h4{color:var(--crimson);}
.comp .check,.comp .cross{margin:0;}
.comp .check li,.comp .cross li{font-size:17px;}

/* --- session bar chart (ul.bars; li > .bl label, .track > .fill, .bv value) --- */
.bars{list-style:none;margin:18px 0;padding:0;}
.bars li{display:grid;grid-template-columns:minmax(120px,175px) 1fr 56px;gap:12px;align-items:center;
  margin:0;padding:7px 8px;border-radius:8px;}
.bars li:hover{background:rgba(184,148,46,.13);}
.bars .bl{font-size:16px;font-weight:700;color:var(--wood-dark);line-height:1.2;}
.bars .track{display:block;background:#efe6cf;border:1px solid rgba(184,148,46,.45);border-radius:6px;
  height:20px;overflow:hidden;}
.bars .fill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--navy);}
.bars .fill.good{background:var(--green);}
/* losses carry a diagonal hatch so win vs loss never reads by color alone */
.bars .fill.bad{background:var(--crimson);
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.25) 0 4px,transparent 4px 9px);}
.bars .fill.push{background:var(--gold-dark);}
.bars .bv{font-size:16px;font-weight:800;color:var(--wood-dark);text-align:right;font-variant-numeric:tabular-nums;}
.bars li:hover .fill{filter:brightness(1.12);}
/* bars grow in when the scroll-reveal fires (theme.js adds fs-reveal/fs-in) */
.fs-anim .bars .fill{transform-origin:left;}
.fs-anim .bars.fs-reveal .fill{transform:scaleX(0);}
.fs-anim .bars.fs-reveal.fs-in .fill{transform:scaleX(1);transition:transform .8s ease .2s;}

/* --- FAQ accordions --- */
.entry-content details{border:2px solid var(--gold-dark);border-radius:12px;background:#fff;
  margin:12px 0;overflow:hidden;}
.entry-content summary{cursor:pointer;list-style:none;padding:15px 20px;font-weight:800;font-size:19px;
  color:var(--wood-dark);display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;}
.entry-content summary::-webkit-details-marker{display:none;}
.entry-content summary::after{content:"\2304";font-size:22px;color:var(--gold-dark);transition:transform .2s;flex:0 0 auto;}
.entry-content details[open] summary::after{transform:rotate(180deg);}
.entry-content summary:hover{background:#faf3df;}
.entry-content details .a, .entry-content details > p{padding:0 20px 16px;font-size:18px;margin:0;}

/* --- checklist + responsible gambling --- */
.check{list-style:none;margin:14px 0;padding:0;}
.check li{padding:8px 0 8px 34px;position:relative;font-size:19px;border-bottom:1.5px dashed rgba(122,36,30,.2);margin:0;}
.check li:last-child{border-bottom:none;}
.check li::before{content:"\2714";position:absolute;left:4px;color:var(--green-dark);font-weight:800;}
/* cross list: the crimson mirror of .check, for dislikes / cons */
.cross{list-style:none;margin:14px 0;padding:0;}
.cross li{padding:8px 0 8px 34px;position:relative;font-size:19px;border-bottom:1.5px dashed rgba(122,36,30,.2);margin:0;}
.cross li:last-child{border-bottom:none;}
.cross li::before{content:"\2718";position:absolute;left:4px;color:var(--crimson);font-weight:800;}
.rg{background:var(--wood-dark);color:var(--cream);border:2px solid var(--gold-dark);border-radius:12px;
  padding:18px 22px;font-size:17px;margin-top:18px;}
.rg b,.rg strong{color:var(--gold);}

/* ==========================================================================
   7. Sidebar blocks
   ========================================================================== */
.side{background:linear-gradient(180deg,var(--paper),#f1e6cd);border:2px solid var(--gold-dark);
  border-radius:14px;padding:20px 22px;box-shadow:0 5px 14px rgba(0,0,0,.4);}
.side h3, .side .widget-title{font-family:var(--font-display);font-weight:400;font-size:26px;
  color:var(--crimson-dark);margin-bottom:10px;display:block;}
.toc{list-style:none;padding:0;}
.toc li{margin:7px 0;}
.toc a{text-decoration:none;font-size:17px;color:var(--ink);display:block;padding:2px 0;}
.toc a:hover{color:var(--crimson);}
.toc a.is-current{color:var(--crimson);font-weight:800;}
.toc .num{color:var(--gold-dark);font-weight:800;margin-right:8px;}
.side ul:not(.toc){list-style:none;padding:0;}
.side ul:not(.toc) li{margin:8px 0;padding-left:22px;position:relative;font-size:17px;}
.side ul:not(.toc) li::before{content:"\2660";position:absolute;left:0;color:var(--gold-dark);}
.side ul a{text-decoration:none;}
.stat-mini{display:flex;justify-content:space-between;font-size:17px;padding:7px 0;
  border-bottom:1.5px dashed rgba(122,36,30,.2);}
.stat-mini:last-child{border-bottom:none;}
.stat-mini b{color:var(--crimson-dark);}

/* mobile TOC box */
.tocbox{display:none;border:2px solid var(--gold-dark);border-radius:12px;background:var(--paper);
  margin-bottom:16px;overflow:hidden;}
.tocbox summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:800;font-size:18px;
  color:var(--wood-dark);display:flex;justify-content:space-between;align-items:center;min-height:48px;}
.tocbox summary::-webkit-details-marker{display:none;}
.tocbox summary::after{content:"\2304";font-size:22px;color:var(--gold-dark);transition:transform .2s;}
.tocbox[open] summary::after{transform:rotate(180deg);}
.tocbox .toc{padding:0 10px 10px;}
.tocbox .toc a{padding:11px 12px;border-radius:8px;}
.tocbox .toc a:hover{background:#f1e4c6;}

/* floating mobile TOC button + bottom sheet (created by theme.js) */
.fs-toc-fab{display:none;}
.fs-toc-backdrop{position:fixed;inset:0;z-index:65;background:rgba(24,12,4,.55);
  opacity:0;pointer-events:none;transition:opacity .25s ease;}
.fs-toc-backdrop.is-open{opacity:1;pointer-events:auto;}
.fs-toc-sheet{position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:linear-gradient(180deg,var(--paper),#f1e6cd);
  border-top:3px solid var(--gold-dark);border-radius:18px 18px 0 0;
  box-shadow:0 -10px 30px rgba(0,0,0,.55);max-height:70vh;overflow:auto;
  padding:16px 20px calc(18px + env(safe-area-inset-bottom));
  transform:translateY(105%);transition:transform .28s ease;}
.fs-toc-sheet.is-open{transform:none;}
.fs-toc-sheet h3{font-family:var(--font-display);font-weight:400;font-size:26px;
  color:var(--crimson-dark);margin-bottom:6px;}
.fs-toc-sheet .toc a{padding:11px 12px;border-radius:8px;}
.fs-toc-sheet .toc a:hover{background:#f1e4c6;}

/* ==========================================================================
   8. Archive cards
   ========================================================================== */
.postcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;list-style:none;padding:0;}
.postcard{background:linear-gradient(180deg,var(--paper),#f1e6cd);border:2px solid var(--gold-dark);
  border-radius:14px;overflow:hidden;box-shadow:0 5px 14px rgba(0,0,0,.4);
  transition:transform .18s ease, box-shadow .18s ease;}
.postcard:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(0,0,0,.5);}
.postcard img{display:block;width:100%;height:180px;object-fit:cover;border-bottom:2px solid var(--gold-dark);}
.postcard .inner{padding:18px 20px;}
.postcard h2{font-family:var(--font-display);font-weight:400;font-size:27px;line-height:1.15;margin-bottom:6px;}
.postcard h2 a{color:var(--crimson-dark);text-decoration:none;}
.postcard h2 a:hover{color:var(--crimson);}
.postcard p{font-size:16.5px;}
.postcard .more{display:inline-block;margin-top:10px;font-weight:800;font-size:15px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);text-decoration:none;}

/* ==========================================================================
   9. Footer + mobile action bar
   ========================================================================== */
.site-footer{background:linear-gradient(180deg,#2c1a0b,#20130a);border-top:3px solid var(--gold-dark);
  text-align:center;padding:36px 40px;color:var(--cream);}
.site-footer .fbrand{font-family:var(--font-display);font-size:40px;color:var(--gold);
  text-shadow:0 2px 0 var(--gold-dark);}
.site-footer .fsub{font-style:italic;opacity:.85;margin-top:4px;}
.site-footer .flinks{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:center;margin:18px 0 10px;font-size:16px;}
.site-footer .flinks ul{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:center;list-style:none;}
.site-footer .flinks a{color:var(--cream);text-decoration:none;padding:6px 0;}
.site-footer .flinks a:hover{color:var(--gold);}
.site-footer .fine{font-size:13.5px;opacity:.55;max-width:720px;margin:10px auto 0;line-height:1.5;}

.actionbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;gap:10px;align-items:center;
  background:linear-gradient(180deg,#2c1a0b,#20130a);border-top:3px solid var(--gold-dark);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
}
.actionbar .cta{flex:1;text-align:center;font-size:17px;padding:13px 10px;border-radius:12px;}
.actionbar .top:only-child{margin-left:auto;}
.actionbar .top{flex:0 0 48px;height:48px;border-radius:12px;border:2px solid var(--gold-dark);
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  color:var(--gold);font-size:22px;background:rgba(0,0,0,.25);}

/* ==========================================================================
   10. Scroll-reveal animation (JS adds .fs-anim to <html>, .fs-in per element)
   ========================================================================== */
.fs-anim .fs-reveal{opacity:0;transform:translateY(18px);
  transition:opacity .5s ease, transform .5s ease;}
.fs-anim .fs-reveal.fs-in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  .fs-anim .fs-reveal{opacity:1;transform:none;}
}

/* ==========================================================================
   11. WordPress niceties
   ========================================================================== */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);}
.alignleft{float:left;margin:6px 22px 12px 0;}
.alignright{float:right;margin:6px 0 12px 22px;}
.aligncenter{display:block;margin:16px auto;}
.wp-caption{max-width:100%;}
.sticky{}.bypostauthor{}

/* ==========================================================================
   12. Responsive: tablet and mobile
   ========================================================================== */
@media (max-width:980px){
  body{font-size:17.5px;padding-bottom:74px;}
  .topbar{padding:10px 14px;gap:12px;}
  .logo{font-size:26px;flex:1;}
  .logo span{font-size:17px;}
  .logo.logo-img img{height:42px;max-width:170px;}
  .nav{display:none;}
  .menu{display:block;}
  .hero{padding:26px 18px 22px;}
  .hero h1{font-size:36px;}
  .hero .dek{font-size:18px;}
  .meta{font-size:14px;}
  .shell{grid-template-columns:1fr;padding:0 14px 40px;gap:0;}
  aside.sidebar{position:static;margin-top:6px;}
  .paper,.entry-content{padding:20px 18px;margin-bottom:16px;border-radius:14px;}
  .figure.fig-right, .entry-content figure.fig-right{float:none;width:100%;max-width:100%;margin:20px auto;}
  .entry-content h2{font-size:28px;gap:11px;}
  .entry-content h2::before{flex:0 0 34px;width:34px;height:34px;font-size:18px;}
  .quick{padding:18px;margin-bottom:16px;}
  .quick p{font-size:18px;}
  .tocbox{display:block;}
  .sidebar .side.fs-toc-wrap{display:none;}
  aside.sidebar{max-height:none;overflow:visible;padding-bottom:0;}

  /* At A Glance card sits inside the content column here (theme.js moves it
     directly below the quick-answer box) */
  .entry-content .fs-glance{margin:0 0 16px;}

  /* floating TOC button: appears after scrolling past the top TOC box,
     parked above the sticky action bar */
  .fs-toc-fab{position:fixed;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:60;
    width:50px;height:50px;border-radius:50%;border:2px solid var(--gold-dark);
    background:linear-gradient(180deg,var(--wood),var(--wood-dark));color:var(--gold);
    font-size:22px;display:flex;align-items:center;justify-content:center;
    box-shadow:0 5px 14px rgba(0,0,0,.5);cursor:pointer;
    opacity:0;pointer-events:none;transform:translateY(8px);
    transition:opacity .25s ease, transform .25s ease;}
  .fs-toc-fab.is-visible{opacity:1;pointer-events:auto;transform:none;}

  /* glance chips become a swipe row */
  .glance{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:2px 2px 12px;}
  .glance .chip{flex:0 0 auto;scroll-snap-align:start;}
  .glance::-webkit-scrollbar{display:none;}

  /* value cards stack as rows */
  .vals{display:flex;flex-direction:column;gap:12px;}
  .vals .val{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 16px;}
  .val .g{font-size:28px;flex:0 0 86px;text-align:center;}
  .val h4{margin-bottom:2px;font-size:14px;}
  .val p{font-size:15.5px;}

  /* steps become a vertical timeline */
  .steps{display:block;position:relative;padding-left:44px;margin:16px 0 6px;}
  .steps::before{content:"";position:absolute;left:16px;top:8px;bottom:14px;width:3px;
    background:repeating-linear-gradient(180deg, var(--gold-dark) 0 8px, transparent 8px 14px);}
  .steps .stepc{margin-bottom:18px;padding:13px 15px;}
  .stepc::before{top:8px;left:-42px;width:32px;height:32px;font-size:17px;
    box-shadow:0 2px 6px rgba(0,0,0,.45);}

  /* moves become a swipe row */
  .swipe-hint{display:block;}
  .moves{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:4px 2px 14px;}
  .moves::-webkit-scrollbar{display:none;}
  .moves .movec{flex:0 0 160px;scroll-snap-align:start;}

  /* grids stack */
  .examples,.pay,.compare{grid-template-columns:1fr;}
  .bars li{grid-template-columns:minmax(96px,124px) 1fr 46px;gap:8px;padding:6px 4px;}
  .bars .bl{font-size:13.5px;}
  .bars .bv{font-size:14px;}
  .bars .track{height:16px;}
  .stats{grid-template-columns:repeat(3,1fr);gap:10px;}
  .stat .v{font-size:26px;}
  .stat .l{font-size:12px;}

  .site-footer{padding:28px 18px;}
  .site-footer .fbrand{font-size:32px;}
  .actionbar{display:flex;}
}
