:root{
  --c-bg: #f8f5f0;
  --c-paper: #ffffff;
  --c-paper-soft: #fbf9f4;
  --c-border: #e8e1d4;
  --c-border-strong: #d4ccba;
  --c-ink: #1a2238;
  --c-ink-soft: #4a5470;
  --c-ink-muted: #8a8fa3;
  --c-deep: #1e3a5f;
  --c-deep-dark: #142844;
  --c-gold: #c2944a;
  --c-gold-dark: #a37a35;
  --c-burgundy: #8b3a3a;
  --c-sage: #6e8b6e;
  --c-info: #3a6a8b;

  --shadow-fine: 0 1px 2px rgba(20,40,68,.04), 0 1px 1px rgba(20,40,68,.03);
  --shadow-soft: 0 4px 14px rgba(20,40,68,.06), 0 1px 3px rgba(20,40,68,.04);
  --shadow-deep: 0 16px 48px rgba(20,40,68,.10), 0 2px 8px rgba(20,40,68,.05);

  --radius-sm: 4px;
  --radius: 8px;
  --radius-lg: 14px;

  --serif: 'Fraunces', Georgia, serif;
  --sans: 'DM Sans', system-ui, -apple-system, sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--c-bg);
  color:var(--c-ink);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-size:16px;
}
a{color:var(--c-deep);text-decoration:none;transition:color .15s}
a:hover{color:var(--c-gold-dark)}
img{max-width:100%;display:block;height:auto}

h1,h2,h3,h4,h5,h6{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-0.015em;
  color:var(--c-ink);
  line-height:1.2;
  font-variation-settings: "opsz" 32;
}
h1{font-size:clamp(2rem,4.5vw,3rem);font-weight:700;letter-spacing:-0.025em}
h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:600}
h3{font-size:1.3rem}
h4{font-size:1.1rem}
p{margin-bottom:1em}

.container{max-width:1180px;margin:0 auto;padding:0 24px}
.container-md{max-width:920px;margin:0 auto;padding:0 24px}
.container-profile{max-width:980px;margin:0 auto;padding:0 24px}
@media(max-width:760px){
  .container,.container-md,.container-profile{padding:0 16px}
}
@media(max-width:480px){
  .container,.container-md,.container-profile{padding:0 12px}
}

/* ====== MASTHEAD (Header) ====== */
.masthead{
  background:var(--c-paper);
  position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(180%) blur(8px);
}
.masthead-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:82px;
}
.masthead-rule{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--c-border-strong) 20%,var(--c-border-strong) 80%,transparent);
}
.brand{display:flex;align-items:center;gap:12px;color:var(--c-deep)}
.brand:hover{color:var(--c-deep)}
.brand-mark{
  width:40px;height:40px;
  display:grid;place-items:center;
  color:var(--c-gold);
}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{
  font-family:var(--serif);font-weight:700;font-size:1.25rem;
  color:var(--c-ink);letter-spacing:-0.015em;
  font-variation-settings: "opsz" 14;
}
.brand-tag{
  font-family:var(--sans);font-size:.72rem;
  color:var(--c-ink-muted);
  text-transform:uppercase;letter-spacing:.12em;
  margin-top:4px;font-weight:500;
}
.primary-nav{display:flex;gap:4px}
.primary-nav a{
  color:var(--c-ink-soft);font-weight:500;padding:10px 16px;
  font-size:.94rem;border-radius:6px;
  transition:color .15s,background .15s;
  position:relative;
}
.primary-nav a:hover{color:var(--c-deep);background:var(--c-paper-soft)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--c-ink);border-radius:2px}

@media(max-width:820px){
  .primary-nav{
    position:absolute;top:82px;left:0;right:0;background:var(--c-paper);
    flex-direction:column;padding:18px;border-bottom:1px solid var(--c-border);
    display:none;gap:0;
  }
  .primary-nav.open{display:flex}
  .primary-nav a{padding:14px 16px}
  .nav-toggle{display:flex}
}

/* ====== MAIN ====== */
.site-main{min-height:calc(100vh - 82px - 380px);padding:0 0 80px}

/* ====== HOMEPAGE HERO ====== */
.home-hero{
  padding:80px 0 50px;
  text-align:center;
  position:relative;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;
  color:var(--c-gold-dark);font-weight:600;
  margin-bottom:24px;
}
.hero-eyebrow::before,.hero-eyebrow::after{
  content:'';width:24px;height:1px;background:var(--c-gold);
}
.home-hero h1{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(2.2rem,5vw,3.4rem);
  margin-bottom:20px;
  font-variation-settings: "opsz" 144;
  letter-spacing:-0.03em;
}
.home-hero h1 em{
  font-style:italic;font-weight:500;
  color:var(--c-deep);
}
.hero-lede{
  font-size:1.15rem;color:var(--c-ink-soft);
  max-width:640px;margin:0 auto;
  line-height:1.6;
}
.hero-meta{
  display:inline-flex;align-items:center;gap:24px;
  margin-top:32px;padding:14px 28px;
  background:var(--c-paper);border:1px solid var(--c-border);
  border-radius:100px;
  font-size:.88rem;color:var(--c-ink-soft);
}
.hero-meta strong{color:var(--c-deep);font-weight:600}
.hero-meta-sep{width:1px;height:14px;background:var(--c-border-strong)}

/* ====== SECTION ====== */
.section{padding:40px 0}
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px;gap:20px;flex-wrap:wrap}
.section-head h2{font-family:var(--serif);font-weight:600;letter-spacing:-0.02em}
.section-head h2 em{font-style:italic;color:var(--c-deep);font-weight:500}
.section-head .head-link{font-size:.92rem;color:var(--c-ink-soft);font-weight:500}
.section-head .head-link:hover{color:var(--c-gold-dark)}

/* ====== REVIEW GRID (Homepage card listing) ====== */
.review-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:24px;
}
@media(max-width:480px){
  .review-grid{grid-template-columns:1fr;gap:16px}
}

.review-card{
  display:flex;flex-direction:column;
  background:var(--c-paper);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  padding:0;
  text-decoration:none;color:var(--c-ink);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  overflow:hidden;
  position:relative;
}
.review-card:hover{
  transform:translateY(-3px);
  border-color:var(--c-border-strong);
  box-shadow:var(--shadow-soft);
  color:var(--c-ink);
}
.review-card-head{
  padding:20px 24px 16px;
  border-bottom:1px solid var(--c-border);
  background:linear-gradient(135deg,var(--c-paper-soft),transparent);
  position:relative;
}
.review-card-head::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--c-gold);
  opacity:0;transition:opacity .2s;
}
.review-card:hover .review-card-head::before{opacity:1}
.review-card-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--c-ink-muted);margin-bottom:10px;font-weight:500;
}
.review-card-date::before{content:'·';margin-right:8px;color:var(--c-border-strong)}
.review-card-tag{
  color:var(--c-gold-dark);font-weight:600;
}
.review-card-title{
  font-family:var(--serif);font-weight:600;font-size:1.2rem;
  margin-bottom:0;line-height:1.3;
  color:var(--c-ink);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
  letter-spacing:-0.015em;
}
.review-card-body{
  padding:18px 24px 22px;flex:1;
  display:flex;flex-direction:column;
}
.review-card-excerpt{
  color:var(--c-ink-soft);font-size:.94rem;
  line-height:1.6;margin-bottom:16px;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;
}
.review-card-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:14px;border-top:1px dashed var(--c-border);
  font-size:.82rem;color:var(--c-ink-muted);
}
.review-card-foot .read-more{
  color:var(--c-deep);font-weight:600;
  display:inline-flex;align-items:center;gap:6px;
  transition:gap .15s;
}
.review-card:hover .read-more{gap:10px}
.review-card-stat{color:var(--c-ink-muted)}

/* ====== PROFILE PAGE (slug) ====== */
.profile-wrap{padding:48px 0}
.profile-head{
  margin-bottom:36px;
  padding-bottom:30px;
  border-bottom:1px solid var(--c-border);
}
.profile-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--c-gold-dark);font-weight:600;
  margin-bottom:18px;
}
.profile-eyebrow::before{
  content:'';width:30px;height:1px;background:var(--c-gold);
}
.profile-title{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(2rem,5vw,3rem);
  letter-spacing:-0.025em;
  margin-bottom:14px;
  font-variation-settings: "opsz" 144;
}
.profile-title em{font-style:italic;font-weight:500;color:var(--c-deep)}
.profile-lede{
  font-size:1.1rem;color:var(--c-ink-soft);
  max-width:720px;line-height:1.6;
}
.profile-meta{
  display:flex;gap:24px;align-items:center;flex-wrap:wrap;
  margin-top:24px;font-size:.85rem;color:var(--c-ink-muted);
}
.profile-meta-item{display:inline-flex;align-items:center;gap:6px}
.profile-meta-item strong{color:var(--c-ink-soft);font-weight:600}

/* Action box (countdown + visit button) */
.visit-card{
  background:var(--c-paper);
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
  padding:22px 24px;
  margin-bottom:28px;
  box-shadow:var(--shadow-fine);
  position:relative;
  overflow:hidden;
}
.visit-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--c-gold),var(--c-deep));
}
.visit-card-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:16px;margin-bottom:14px;flex-wrap:wrap;
}
.visit-card-label{
  font-family:var(--serif);font-weight:600;font-size:1.02rem;
  color:var(--c-deep);
  font-variation-settings: "opsz" 24;
}
.visit-card-label em{font-style:italic;font-weight:500}
.visit-card-tag{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--c-gold-dark);font-weight:600;
  padding:4px 10px;border:1px solid var(--c-gold);
  border-radius:100px;
}
.visit-card-tag::before{
  content:'';width:6px;height:6px;background:var(--c-gold);border-radius:50%;
}
.countdown-row{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:10px 0;
}
.countdown-num{
  font-family:var(--serif);font-weight:700;font-size:2.4rem;
  color:var(--c-deep);letter-spacing:-0.04em;line-height:1;
  min-width:48px;text-align:center;
  font-variation-settings: "opsz" 144;
}
.countdown-text{
  font-size:.8rem;color:var(--c-ink-muted);
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
  max-width:150px;line-height:1.4;
}
.visit-btn{
  display:flex;width:100%;align-items:center;justify-content:center;gap:9px;
  padding:13px 22px;
  background:var(--c-ink-muted);color:#fff;
  border:none;border-radius:var(--radius);
  font-family:var(--sans);font-weight:600;font-size:.95rem;
  cursor:not-allowed;
  text-decoration:none;
  transition:all .2s;
  letter-spacing:.01em;
}
.visit-btn.is-ready{
  background:var(--c-deep);
  cursor:pointer;
}
.visit-btn.is-ready:hover{
  background:var(--c-deep-dark);
  transform:translateY(-1px);
  box-shadow:var(--shadow-soft);
  color:#fff;
}
.visit-btn svg{transition:transform .2s}
.visit-btn.is-ready:hover svg{transform:translateX(4px)}

/* Intro content (insert before visit card) */
.profile-intro{
  margin-bottom:30px;color:var(--c-ink);
  font-size:1.02rem;line-height:1.7;
}
.profile-intro h2,.profile-intro h3,.profile-intro h4{
  font-family:var(--serif);margin:1.4em 0 .5em;color:var(--c-deep);
}
.profile-intro p{margin-bottom:1em}
.profile-intro img{border-radius:var(--radius-sm);margin:1em 0}
.profile-intro a{color:var(--c-deep);text-decoration:underline}

/* Main editor content */
.profile-content{
  font-size:1.05rem;line-height:1.78;color:var(--c-ink);
  margin-bottom:36px;
}
.profile-content h2,.profile-content h3,.profile-content h4{
  font-family:var(--serif);
  margin:1.8em 0 .6em;color:var(--c-deep);
  font-variation-settings: "opsz" 24;
}
.profile-content h2{font-size:1.7rem;font-weight:600;letter-spacing:-0.02em}
.profile-content h3{font-size:1.3rem;font-weight:600}
.profile-content p{margin-bottom:1.1em}
.profile-content a{color:var(--c-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.profile-content a:hover{color:var(--c-gold-dark);text-decoration-thickness:2px}
.profile-content ul,.profile-content ol{margin:0 0 1.2em 1.5em}
.profile-content li{margin-bottom:.4em}
.profile-content blockquote{
  border-left:3px solid var(--c-gold);
  padding:0 0 0 24px;margin:1.5em 0;
  font-family:var(--serif);font-style:italic;
  font-size:1.15rem;color:var(--c-deep);
}
.profile-content img{
  border-radius:var(--radius);margin:1.5em 0;
  box-shadow:var(--shadow-fine);
}
.profile-content figure{margin:1.5em 0}
.profile-content figcaption{
  font-size:.85rem;color:var(--c-ink-muted);
  text-align:center;margin-top:8px;font-style:italic;
}

/* ====== STATS PANEL (Profile page) ====== */
.editor-section{
  margin-top:48px;padding-top:36px;
  border-top:1px solid var(--c-border);
}
.editor-section-head{
  display:flex;align-items:baseline;gap:14px;margin-bottom:28px;
}
.editor-section-head h2{
  font-family:var(--serif);font-weight:600;font-size:1.6rem;
  color:var(--c-ink);letter-spacing:-0.02em;
  font-variation-settings: "opsz" 24;
}
.editor-section-head .tag{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
  padding:4px 10px;background:var(--c-paper);
  border:1px solid var(--c-border);border-radius:100px;
  color:var(--c-ink-muted);font-weight:600;
}

.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin-bottom:32px;
}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

.stat-tile{
  background:var(--c-paper);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  padding:18px 16px;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
.stat-tile .num{
  font-family:var(--serif);font-weight:700;font-size:1.7rem;
  color:var(--c-deep);letter-spacing:-0.02em;line-height:1.1;
  font-variation-settings: "opsz" 24;
}
.stat-tile .label{
  font-size:.74rem;color:var(--c-ink-muted);
  text-transform:uppercase;letter-spacing:.08em;
  margin-top:6px;font-weight:600;line-height:1.4;
}

.stats-section{
  background:var(--c-paper);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  padding:22px 24px;margin-top:18px;
}
.stats-section h4{
  font-family:var(--sans);font-weight:600;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.1em;
  color:var(--c-ink-muted);margin-bottom:16px;
}

.stats-bar-table{width:100%;border-collapse:collapse;font-size:.9rem}
.stats-bar-table tr{border-bottom:1px dashed var(--c-border)}
.stats-bar-table tr:last-child{border-bottom:none}
.stats-bar-table td{padding:8px 0;vertical-align:middle}
.stats-bar-table td.lbl{position:relative;width:75%}
.stats-bar-table td.lbl .bar{
  display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);
  height:22px;background:linear-gradient(90deg,rgba(30,58,95,.12),rgba(194,148,74,.08));
  border-radius:3px;z-index:0;
}
.stats-bar-table td.lbl .lbl-text{
  position:relative;z-index:1;padding:0 8px;color:var(--c-ink);font-weight:500;
}
.stats-bar-table td.val{
  text-align:right;color:var(--c-ink-soft);font-weight:600;
  white-space:nowrap;padding-left:14px;
}

.stats-tables{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;margin-top:14px;
}

.daily-bar-list{display:flex;flex-direction:column;gap:6px}
.daily-row{
  display:grid;grid-template-columns:90px 1fr 60px;
  gap:10px;align-items:center;font-size:.86rem;
}
.daily-date{color:var(--c-ink-muted);font-family:var(--sans);font-size:.82rem;font-variant-numeric:tabular-nums}
.daily-bar-wrap{height:16px;background:var(--c-paper-soft);border-radius:3px;overflow:hidden}
.daily-bar{display:block;height:100%;background:linear-gradient(90deg,var(--c-deep),var(--c-gold));border-radius:3px}
.daily-val{text-align:right;color:var(--c-ink);font-weight:600;font-variant-numeric:tabular-nums}

.stats-detail-table{width:100%;border-collapse:collapse;font-size:.9rem}
.stats-detail-table th{
  text-align:left;width:160px;padding:10px 14px;color:var(--c-ink-muted);
  font-weight:500;font-size:.85rem;background:transparent;border:none;
  border-bottom:1px dashed var(--c-border);
}
.stats-detail-table td{
  padding:10px 14px;border-bottom:1px dashed var(--c-border);
  color:var(--c-ink);word-break:break-all;
}
.stats-detail-table tr:last-child th,.stats-detail-table tr:last-child td{border-bottom:none}
@media(max-width:520px){
  .daily-row{grid-template-columns:80px 1fr 50px;font-size:.8rem}
  .stats-detail-table th{width:120px;font-size:.8rem}
}

/* ====== PREV/NEXT ====== */
.prevnext-row{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin-top:48px;padding-top:32px;
  border-top:1px solid var(--c-border);
}
.prevnext-row a{
  display:block;padding:20px 22px;
  background:var(--c-paper);border:1px solid var(--c-border);
  border-radius:var(--radius);
  transition:all .2s;text-decoration:none;
}
.prevnext-row a:hover{
  border-color:var(--c-border-strong);background:var(--c-paper-soft);
  transform:translateY(-2px);
}
.prevnext-row .pn-eyebrow{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--c-ink-muted);margin-bottom:6px;font-weight:600;
}
.prevnext-row .pn-title{
  font-family:var(--serif);font-weight:600;color:var(--c-ink);
  font-size:1.02rem;letter-spacing:-0.01em;
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.prevnext-row .pn-next{text-align:right}
.prevnext-row .disabled{opacity:.4;pointer-events:none}
@media(max-width:600px){
  .prevnext-row{grid-template-columns:1fr}
  .prevnext-row .pn-next{text-align:left}
}

/* ====== RELATED LIST ====== */
.related-block{
  margin-top:48px;
}
.related-block h3{
  font-family:var(--serif);font-weight:600;font-size:1.4rem;
  margin-bottom:20px;letter-spacing:-0.015em;
}
.related-list{display:flex;flex-direction:column;gap:0}
.related-item{
  display:flex;padding:18px 0;border-bottom:1px solid var(--c-border);
  text-decoration:none;transition:padding .15s;
  align-items:flex-start;gap:18px;
}
.related-item:last-child{border-bottom:none}
.related-item:hover{padding-left:8px}
.related-num{
  font-family:var(--serif);font-weight:600;font-size:1.1rem;
  color:var(--c-gold-dark);min-width:24px;
  font-variant-numeric:tabular-nums;
}
.related-body{flex:1;min-width:0}
.related-title{
  font-family:var(--serif);font-weight:600;color:var(--c-ink);
  font-size:1.05rem;line-height:1.35;margin-bottom:4px;
  letter-spacing:-0.01em;
}
.related-excerpt{
  font-size:.88rem;color:var(--c-ink-soft);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
}

/* ====== STATIC PAGES ====== */
.static-wrap{padding:48px 0}
.static-header{margin-bottom:36px;padding-bottom:30px;border-bottom:1px solid var(--c-border)}
.static-header h1{margin-bottom:10px}
.static-header .lede{color:var(--c-ink-soft);font-size:1.05rem}
.static-content{font-size:1.02rem;line-height:1.78;color:var(--c-ink)}
.static-content h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;margin:1.8em 0 .6em;color:var(--c-deep)}
.static-content h3{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin:1.4em 0 .5em}
.static-content p{margin-bottom:1.1em}
.static-content ul,.static-content ol{margin:0 0 1.1em 1.5em}
.static-content li{margin-bottom:.4em}
.static-content a{color:var(--c-deep);text-decoration:underline;text-underline-offset:3px}

/* ====== FAQ ACCORDION ====== */
.faq-item{
  border-bottom:1px solid var(--c-border);
}
.faq-q{
  padding:20px 0;font-family:var(--serif);font-weight:600;
  font-size:1.1rem;cursor:pointer;color:var(--c-ink);
  display:flex;justify-content:space-between;align-items:center;
  letter-spacing:-0.01em;
}
.faq-q::after{
  content:'';width:16px;height:16px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231e3a5f' stroke-width='2'><path d='M3 8h10M8 3v10'/></svg>");
  transition:transform .2s;flex-shrink:0;margin-left:14px;
}
.faq-item.open .faq-q::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231e3a5f' stroke-width='2'><path d='M3 8h10'/></svg>");
}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .25s,padding .2s;
  color:var(--c-ink-soft);
}
.faq-item.open .faq-a{padding:0 0 22px;max-height:1000px}

/* ====== CONTACT FORM ====== */
.form-group{margin-bottom:20px}
.form-label{display:block;font-weight:500;font-size:.92rem;margin-bottom:6px;color:var(--c-ink)}
.form-input,.form-textarea,.form-select{
  width:100%;padding:13px 15px;border:1.5px solid var(--c-border-strong);
  border-radius:var(--radius-sm);font-family:var(--sans);font-size:.95rem;
  background:var(--c-paper);color:var(--c-ink);transition:border-color .15s,box-shadow .15s;
}
.form-input:focus,.form-textarea:focus,.form-select:focus{
  outline:none;border-color:var(--c-deep);
  box-shadow:0 0 0 3px rgba(30,58,95,.1);
}
.form-textarea{min-height:140px;resize:vertical}
.form-hint{font-size:.82rem;color:var(--c-ink-muted);margin-top:4px}

/* ====== ALERTS ====== */
.alert{padding:14px 18px;border-radius:var(--radius);margin-bottom:18px;font-size:.93rem}
.alert-success{background:#eef6ee;border:1px solid #c5dec5;color:#2e5e2e}
.alert-error{background:#fbeeea;border:1px solid #f3c8bd;color:#8a3220}
.alert-warn{background:#fbf4e8;border:1px solid #f0deba;color:#7a5118}
.alert-info{background:#e9f0f4;border:1px solid #c2d4dd;color:#1d4a5c}

/* ====== BUTTONS ====== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;border:none;border-radius:var(--radius);
  font-family:var(--sans);font-weight:600;font-size:.95rem;
  cursor:pointer;transition:all .15s;text-decoration:none;
  letter-spacing:.01em;
}
.btn-primary{background:var(--c-deep);color:#fff}
.btn-primary:hover{background:var(--c-deep-dark);color:#fff;transform:translateY(-1px)}
.btn-gold{background:var(--c-gold);color:#fff}
.btn-gold:hover{background:var(--c-gold-dark);color:#fff;transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--c-deep);border:1.5px solid var(--c-border-strong)}
.btn-outline:hover{border-color:var(--c-deep);background:var(--c-paper)}
.btn-lg{padding:16px 28px;font-size:1rem}
.btn-sm{padding:8px 14px;font-size:.85rem}
.btn-block{width:100%}

/* ====== LISTING PAGE ====== */
.listing-head{
  padding:48px 0 32px;border-bottom:1px solid var(--c-border);
  margin-bottom:36px;
}
.listing-head h1{margin-bottom:10px}
.listing-head p{color:var(--c-ink-soft);font-size:1.02rem}

.listing-pagination{
  display:flex;justify-content:center;align-items:center;
  gap:6px;margin:48px 0 24px;flex-wrap:wrap;
}
.pg-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 14px;
  border-radius:var(--radius);
  background:var(--c-paper);border:1px solid var(--c-border);
  color:var(--c-ink-soft);
  font-weight:500;font-size:.93rem;
  text-decoration:none;transition:all .15s;
  font-variant-numeric:tabular-nums;
}
.pg-link:hover{background:var(--c-paper-soft);border-color:var(--c-border-strong);color:var(--c-deep)}
.pg-link.pg-current{background:var(--c-deep);color:#fff;border-color:var(--c-deep);cursor:default}
.pg-dots{color:var(--c-ink-muted);padding:0 4px}

/* ====== FOOTER ====== */
.site-foot{
  background:var(--c-paper);
  border-top:1px solid var(--c-border);
  margin-top:auto;padding:64px 0 0;
}
.foot-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:48px;padding-bottom:48px;
}
.foot-brand .brand{margin-bottom:18px}
.foot-desc{color:var(--c-ink-soft);font-size:.92rem;max-width:340px;line-height:1.6}
.foot-col h4{
  font-family:var(--sans);font-weight:600;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.14em;
  margin-bottom:18px;color:var(--c-ink);
}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:10px}
.foot-col a{color:var(--c-ink-soft);font-size:.92rem}
.foot-col a:hover{color:var(--c-deep)}
.foot-base{
  border-top:1px solid var(--c-border);padding:24px 0;
  background:var(--c-paper-soft);
}
.foot-base p{margin:0;color:var(--c-ink-muted);font-size:.85rem;text-align:center}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:480px){.foot-grid{grid-template-columns:1fr;gap:30px}}

/* ====== ADMIN ====== */
.admin-body{background:var(--c-bg)}
.admin-shell{display:flex;min-height:100vh}
.admin-sidebar{
  width:260px;background:var(--c-paper);border-right:1px solid var(--c-border);
  padding:24px 0;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;
}
.admin-sidebar .brand{padding:0 22px 24px;border-bottom:1px solid var(--c-border);margin-bottom:18px}
.admin-nav{display:flex;flex-direction:column}
.admin-nav a{
  padding:12px 22px;color:var(--c-ink-soft);font-size:.93rem;
  display:flex;align-items:center;gap:10px;border-left:3px solid transparent;
  text-decoration:none;
}
.admin-nav a:hover{background:var(--c-paper-soft);color:var(--c-deep)}
.admin-nav a.active{background:var(--c-paper-soft);color:var(--c-deep);border-left-color:var(--c-gold);font-weight:600}
.admin-main{flex:1;padding:32px;min-width:0}
.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.admin-header h1{font-family:var(--serif);font-size:1.7rem;font-weight:600;font-variation-settings:"opsz" 32}
.admin-card{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-fine)}
.admin-card h2{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin-bottom:16px;font-variation-settings:"opsz" 24}

.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}
.admin-table th{
  text-align:left;padding:12px 14px;font-weight:600;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.05em;color:var(--c-ink-muted);
  border-bottom:1px solid var(--c-border);background:var(--c-paper-soft);
}
.admin-table td{padding:12px 14px;border-bottom:1px solid var(--c-border);vertical-align:middle}
.admin-table tr:hover td{background:var(--c-paper-soft)}
.admin-table .actions{display:flex;gap:6px;flex-wrap:wrap}

.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.kv-cell{background:var(--c-paper-soft);border:1px solid var(--c-border);border-radius:var(--radius);padding:14px}
.kv-cell .num{font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--c-deep);font-variation-settings:"opsz" 24}
.kv-cell .label{font-size:.78rem;color:var(--c-ink-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}

.login-shell{
  min-height:100vh;display:grid;place-items:center;padding:20px;
  background:
    radial-gradient(ellipse at top left,rgba(30,58,95,.06),transparent 50%),
    radial-gradient(ellipse at bottom right,rgba(194,148,74,.05),transparent 50%),
    var(--c-bg);
}
.login-card{
  background:var(--c-paper);border:1px solid var(--c-border);
  border-radius:var(--radius-lg);padding:40px;max-width:420px;width:100%;
  box-shadow:var(--shadow-deep);
}
.login-card h1{font-family:var(--serif);font-size:1.5rem;margin-bottom:8px;text-align:center;font-weight:600}
.login-card .sub{text-align:center;color:var(--c-ink-muted);margin-bottom:28px;font-size:.92rem}

@media(max-width:900px){
  .admin-sidebar{width:60px}
  .admin-sidebar .brand .brand-text,.admin-nav a span.lbl{display:none}
  .admin-nav a{justify-content:center;padding:14px 0}
}

/* ====== BULK BAR (admin) ====== */
.bulk-bar{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
  background:var(--c-paper-soft);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  padding:12px 16px;margin-bottom:14px;
}
.bulk-left{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.bulk-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bulk-select-all{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--c-ink);font-weight:500}
.bulk-counter{
  display:inline-block;padding:4px 12px;
  background:var(--c-paper);border:1px solid var(--c-border-strong);
  border-radius:100px;font-size:.85rem;color:var(--c-deep);
}
.bulk-counter strong{font-weight:700}
#bulk-submit:disabled{background:#cfc7b9 !important;cursor:not-allowed;opacity:.6}
.row-check{cursor:pointer;width:16px;height:16px}
input[type=checkbox]{accent-color:var(--c-deep)}

/* ====== TAGS / UTILITIES ====== */
.tag{display:inline-block;padding:3px 10px;border-radius:100px;font-size:.78rem;font-weight:500;background:var(--c-paper);border:1px solid var(--c-border);color:var(--c-ink-soft)}
.tag-success{background:#eef6ee;border-color:#c5dec5;color:#2e5e2e}
.tag-warn{background:#fbf4e8;border-color:#f0deba;color:#7a5118}
.tag-info{background:#e9f0f4;border-color:#c2d4dd;color:#1d4a5c}
.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.text-center{text-align:center}
.text-muted{color:var(--c-ink-muted)}
.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
