/* ============================================================
   Dr. Prateek Porwal — editorial medical homepage
   Single-file, no Elementor, no jQuery, no bloat.
   ============================================================ */

:root{
  --bg:            #f6f1e8;   /* warm paper */
  --bg-alt:        #efe7d7;
  --ink:           #141518;   /* near-black, neutral ink */
  --ink-soft:      #3e4048;
  --rule:          #d8ccb4;
  --accent:        #1e3a6b;   /* deep navy blue */
  --accent-hot:    #2863b5;   /* bright blue - used surgically */
  --accent-2:      #3a5a8a;   /* muted navy secondary */

  --f-display: "Fraunces", "Iowan Old Style", "Palatino", Georgia, serif;
  --f-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --maxw: 1240px;
  --pad:  clamp(1.2rem, 3.5vw, 2.2rem);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* Skip link */
.skip{
  position:absolute; left:-9999px; top:0;
  background:var(--ink); color:#fff; padding:.7rem 1rem; z-index:999;
}
.skip:focus{ left:.5rem; top:.5rem; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }

/* ================== TOP BAR ================== */
.topbar{
  background:var(--ink);
  color:#e6e2d4;
  font-size:13px;
  letter-spacing:.02em;
}
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-top:.55rem; padding-bottom:.55rem; flex-wrap:wrap; }
.topbar a{ color:#e6e2d4; }
.topbar a:hover{ color:#fff; }
.topbar .sep{ opacity:.4; }

/* ================== HEADER ================== */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(246,241,232,.96);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--rule);
}
header.site .wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding-top:.7rem; padding-bottom:.7rem;
  flex-wrap:nowrap;
  position:relative;
  /* Allow header to use full viewport width — the 1240px maxw is for content, not header */
  max-width:none;
}
.brand{
  display:flex; align-items:center; gap:.75rem;
  font-family:var(--f-display); font-weight:500; font-size:1.05rem;
  color:var(--ink); line-height:1.15;
  flex-shrink:0;
  white-space:nowrap;
  max-width:200px;
}
.brand > span{ display:flex; flex-direction:column; }
.brand:hover{ text-decoration:none; }
.brand-mark{
  width:40px; height:40px; border-radius:50%;
  background:var(--accent); color:#f6f1e8;
  display:grid; place-items:center;
  font-family:var(--f-display); font-style:italic; font-weight:400;
  font-size:1.15rem;
  box-shadow:0 4px 14px rgba(15,58,58,.25);
  flex-shrink:0;
}
/* Custom logo: hard-cap both height AND width — !important to override WP defaults */
.brand .custom-logo-link,
.brand .custom-logo-link img,
.brand img.custom-logo,
header.site .brand img,
header.site .custom-logo-link img,
header.site .wp-custom-logo{
  max-height:48px !important;
  max-width:170px !important;
  width:auto !important;
  height:auto !important;
  display:block !important;
  object-fit:contain !important;
}
.brand--has-logo{ gap:0 !important; max-width:200px !important; max-height:60px !important; overflow:hidden !important; }
.brand--has-logo .custom-logo-link{ display:block; max-height:60px; overflow:hidden; }
.brand small{ display:block; font-family:var(--f-body); font-size:.7rem; font-weight:400; color:var(--ink-soft); letter-spacing:.06em; text-transform:uppercase; margin-top:2px; white-space:nowrap; }

nav.primary{ flex:0 1 auto; min-width:0; display:flex; justify-content:center; overflow:hidden; }
nav.primary ul{ list-style:none; margin:0; padding:0; display:flex; gap:1.1rem; flex-wrap:nowrap; }
nav.primary a{ color:var(--ink); font-size:.88rem; font-weight:500; white-space:nowrap; }
nav.primary a:hover{ color:var(--accent-hot); text-decoration:none; }

header.site .cta{ flex-shrink:0; white-space:nowrap; }

.cta{
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--accent); color:#f6f1e8;
  padding:.7rem 1.15rem; border-radius:999px;
  font-weight:500; font-size:.88rem; letter-spacing:.02em;
  transition:transform .2s ease, background .2s ease;
  border:none; cursor:pointer;
}
.cta:hover{ background:var(--ink); color:#fff; text-decoration:none; transform:translateY(-1px); }
.cta.hot{ background:var(--accent-hot); }
.cta.hot:hover{ background:#16315a; color:#fff; }

.burger{
  display:none; background:none; border:1px solid var(--rule);
  padding:.5rem .7rem; border-radius:8px; cursor:pointer;
  color:var(--ink); font-size:1.1rem;
  flex-shrink:0;
}

/* 1601-1900px: tighten gap and font slightly so 10 items + logo + CTA fit cleanly */
@media (max-width:1900px) and (min-width:1601px){
  nav.primary ul{ gap:.95rem; }
  nav.primary a{ font-size:.85rem; }
}

/* 1500-1600px: tighter still */
@media (max-width:1600px) and (min-width:1501px){
  nav.primary ul{ gap:.8rem; }
  nav.primary a{ font-size:.82rem; }
}

/* Below 1500px: switch to burger — the 10-item menu cannot fit cleanly */
@media (max-width:1500px){
  nav.primary{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:var(--bg); border-bottom:1px solid var(--rule);
    padding:1rem var(--pad);
    flex-direction:column;
    z-index:49;
    box-shadow:0 8px 24px rgba(0,0,0,.06);
    overflow:visible;
  }
  nav.primary.open{ display:flex; }
  nav.primary ul{ flex-direction:column; gap:.9rem; align-items:flex-start; width:100%; }
  nav.primary a{ font-size:.95rem; padding:.4rem 0; display:block; }
  .burger{ display:inline-flex; align-items:center; }
  /* Keep CTA visible at tablet+ sizes */
  header.site .cta{ display:inline-flex; }
}

@media (max-width:680px){
  header.site .cta{ display:none; }
  .brand{ font-size:.95rem; gap:.55rem; max-width:160px; }
  .brand small{ font-size:.62rem; letter-spacing:.04em; }
  .brand .custom-logo-link,
  .brand .custom-logo-link img,
  .brand img.custom-logo{ max-height:40px; max-width:140px; }
  .brand--has-logo{ max-width:160px; }
}

/* ================== HERO ================== */
.hero{
  position:relative; overflow:hidden;
  padding:clamp(3rem, 7vw, 5.5rem) 0 clamp(3rem, 7vw, 5.5rem);
  background:
    radial-gradient(ellipse at 85% 20%, rgba(194,82,26,.10), transparent 55%),
    radial-gradient(ellipse at 10% 90%, rgba(15,58,58,.08), transparent 50%),
    var(--bg);
}
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.067  0 0 0 0 0.125  0 0 0 0 0.122  0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  pointer-events:none; opacity:.55; mix-blend-mode:multiply;
}
.hero .wrap{ position:relative; z-index:1; display:grid; grid-template-columns: 1.15fr .85fr; gap:clamp(2rem, 5vw, 4rem); align-items:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-hot); font-weight:500;
  margin-bottom:1.2rem;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

h1.hero-h{
  font-family:var(--f-display);
  font-weight:400;
  font-size:clamp(2.4rem, 5.6vw, 4.4rem);
  line-height:1.02;
  letter-spacing:-0.018em;
  margin:0 0 1.4rem;
  color:var(--ink);
}
h1.hero-h em{
  font-style:italic; color:var(--accent-hot); font-weight:400;
}
h1.hero-h .plain{ font-size:.78em; display:block; color:var(--ink-soft); font-family:var(--f-body); font-weight:400; letter-spacing:0; margin-top:.5rem; }

.lede{
  font-size:clamp(1.02rem, 1.2vw, 1.15rem);
  color:var(--ink-soft);
  max-width:52ch;
  margin:0 0 2rem;
}

.hero-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:2rem; }
.btn-ghost{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.75rem 1.1rem;
  border:1px solid var(--ink); border-radius:999px;
  color:var(--ink); font-weight:500; font-size:.9rem;
  background:transparent;
}
.btn-ghost:hover{ background:var(--ink); color:#f6f1e8; text-decoration:none; }

.hero-meta{
  display:flex; gap:2.2rem; flex-wrap:wrap;
  padding-top:1.4rem; border-top:1px solid var(--rule);
  font-size:.85rem;
}
.hero-meta div strong{ display:block; font-family:var(--f-display); font-size:1.6rem; color:var(--accent); font-weight:500; line-height:1; margin-bottom:.2rem; }
.hero-meta div span{ color:var(--ink-soft); }

.hero-img{
  position:relative;
  aspect-ratio: 4/5;
  border-radius:8px;
  overflow:hidden;
  box-shadow: 0 30px 60px -20px rgba(17,32,31,.35), 0 10px 20px -10px rgba(17,32,31,.25);
}
.hero-img img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.hero-img::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(17,32,31,.35));
}
.hero-badge{
  position:absolute; bottom:1.2rem; left:1.2rem; right:1.2rem;
  background:var(--bg); color:var(--ink);
  padding:.9rem 1.1rem; border-radius:6px;
  font-size:.82rem; line-height:1.4;
  border-left:3px solid var(--accent-hot);
  z-index:2;
}
.hero-badge strong{ font-family:var(--f-display); font-weight:500; display:block; margin-bottom:.15rem; }

@media (max-width: 820px){
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-img{ aspect-ratio: 3/4; max-width:420px; margin:0 auto; }
}

/* ================== MARQUEE / CREDENTIAL STRIP ================== */
.strip{
  background:var(--ink); color:#e6e2d4;
  padding:.9rem 0; font-family:var(--f-display); font-weight:400;
  font-size:clamp(.95rem, 1.4vw, 1.15rem); letter-spacing:.01em;
  overflow:hidden; border-top:1px solid #24252a; border-bottom:1px solid #24252a;
}
.strip-track{
  display:flex; gap:3rem; white-space:nowrap;
  animation:slide 38s linear infinite;
  will-change:transform;
}
.strip-track span{ display:inline-flex; align-items:center; gap:.7rem; }
.strip-track span::before{ content:"◆"; color:var(--accent-hot); font-size:.6em; }
@keyframes slide{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion: reduce){ .strip-track{ animation:none; } }

/* ================== SECTION FRAMING ================== */
section.block{ padding:clamp(3.2rem, 6vw, 5.5rem) 0; }
.section-head{ max-width:760px; margin-bottom:2.8rem; }
.section-kicker{
  font-size:.75rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent-hot); font-weight:500; margin-bottom:.9rem;
}
h2.section-h{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(1.9rem, 3.6vw, 2.8rem);
  line-height:1.1; letter-spacing:-0.015em;
  margin:0 0 1rem; color:var(--ink);
}
h2.section-h em{ font-style:italic; color:var(--accent); }
.section-sub{ color:var(--ink-soft); font-size:1.02rem; max-width:60ch; }

/* ================== CONDITIONS GRID ================== */
.conditions{ background:var(--bg-alt); }
.cond-grid{ display:grid; grid-template-columns:repeat(12, 1fr); gap:1rem; }
.cond{
  grid-column:span 3;
  background:var(--bg); border:1px solid var(--rule); border-radius:6px;
  padding:1.6rem 1.4rem 1.4rem;
  display:flex; flex-direction:column;
  position:relative;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  min-height:240px;
}
.cond:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -20px rgba(17,32,31,.25); border-color:var(--accent); }
.cond .num{
  font-family:var(--f-display); font-style:italic; color:var(--accent-hot);
  font-size:1rem; margin-bottom:.8rem;
}
.cond h3{
  font-family:var(--f-display); font-weight:500;
  font-size:1.25rem; line-height:1.2;
  margin:0 0 .6rem; color:var(--ink);
}
.cond p{ margin:0 0 1.2rem; font-size:.92rem; color:var(--ink-soft); flex:1; }
.cond a.more{
  font-size:.82rem; font-weight:500; letter-spacing:.04em;
  color:var(--accent); display:inline-flex; align-items:center; gap:.4rem;
  align-self:flex-start;
}
.cond a.more::after{ content:"→"; transition:transform .2s; }
.cond a.more:hover{ text-decoration:none; color:var(--accent-hot); }
.cond a.more:hover::after{ transform:translateX(4px); }

@media (max-width:1000px){ .cond{ grid-column:span 6; } }
@media (max-width:560px){ .cond{ grid-column:span 12; min-height:auto; } }

/* ================== ABOUT / CREDENTIALS ================== */
.about-layout{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem, 5vw, 4rem); align-items:start; }
.about-img{
  position:sticky; top:90px;
  border-radius:6px; overflow:hidden;
  aspect-ratio:4/5;
  background:var(--bg-alt);
  box-shadow:0 20px 50px -25px rgba(17,32,31,.35);
}
.about-img img{ width:100%; height:100%; object-fit:cover; }

.about-body h2{ margin-bottom:1.4rem; }
.about-body p.bio{ font-size:1.02rem; color:var(--ink-soft); margin:0 0 1.8rem; max-width:58ch; }

.cred-list{ list-style:none; padding:0; margin:0; border-top:1px solid var(--rule); }
.cred-list li{
  display:grid; grid-template-columns: 100px 1fr; gap:1.2rem;
  padding:1.1rem 0; border-bottom:1px solid var(--rule);
  font-size:.95rem;
}
.cred-list li .k{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:.9rem; padding-top:2px; }
.cred-list li .v strong{ display:block; font-weight:600; color:var(--ink); margin-bottom:.15rem; }
.cred-list li .v span{ color:var(--ink-soft); font-size:.9rem; }

@media (max-width:820px){
  .about-layout{ grid-template-columns:1fr; }
  .about-img{ position:static; max-width:380px; margin:0 auto; }
  .cred-list li{ grid-template-columns:90px 1fr; }
}

/* ================== DIAGNOSTICS ================== */
.diag{ background:var(--ink); color:#e6e2d4; position:relative; overflow:hidden; }
.diag::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 80% 30%, rgba(194,82,26,.18), transparent 40%),
    radial-gradient(circle at 20% 80%, rgba(184,137,43,.12), transparent 45%);
}
.diag .wrap{ position:relative; z-index:1; }
.diag .section-kicker{ color:#7ea3dc; }
.diag h2.section-h{ color:#f6f1e8; }
.diag h2.section-h em{ color:#96b4dc; }
.diag .section-sub{ color:#b8b4a6; }

.diag-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2.4rem; }
.diag-card{
  border:1px solid #2f3139; border-radius:6px;
  padding:1.6rem 1.3rem; background:rgba(255,255,255,.02);
  transition:border-color .2s, background .2s;
}
.diag-card:hover{ border-color:#7ea3dc; background:rgba(255,255,255,.04); }
.diag-card .code{ font-family:var(--f-display); font-style:italic; color:#7ea3dc; font-size:.9rem; margin-bottom:.8rem; }
.diag-card h3{ font-family:var(--f-display); font-weight:500; font-size:1.15rem; color:#f6f1e8; margin:0 0 .5rem; line-height:1.2; }
.diag-card p{ margin:0; color:#8e8a7e; font-size:.88rem; line-height:1.55; }

@media (max-width:1000px){ .diag-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .diag-grid{ grid-template-columns:1fr; } }

/* ================== CTA BAND ================== */
.ctaband{
  background:var(--bg-alt);
  padding:clamp(3.5rem, 6vw, 5rem) 0;
  text-align:center;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  position:relative; overflow:hidden;
}
.ctaband h2{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(2.2rem, 5vw, 3.4rem);
  line-height:1.05; letter-spacing:-0.02em;
  margin:0 0 .6rem; color:var(--ink);
}
.ctaband h2 em{ font-style:italic; color:var(--accent-hot); }
.ctaband p{ color:var(--ink-soft); font-size:1.05rem; max-width:52ch; margin:0 auto 2rem; }
.ctaband .tel{
  font-family:var(--f-display); font-size:2rem; color:var(--accent); display:block; margin-top:1rem;
}
.ctaband .tel a{ color:var(--accent); }

/* ================== LOCATIONS ================== */
.locations .loc-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:.6rem; margin-top:1.8rem;
}
.loc-grid a{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  padding:.85rem 1rem; border:1px solid var(--rule); border-radius:4px;
  background:var(--bg); font-size:.88rem; color:var(--ink); font-weight:500;
}
.loc-grid a:hover{ background:var(--accent); color:#f6f1e8; border-color:var(--accent); text-decoration:none; }
.loc-grid a:hover::after{ color:#f6f1e8; }
.loc-grid a::after{ content:"→"; color:var(--ink-soft); font-size:.85rem; }
@media (max-width:1000px){ .locations .loc-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .locations .loc-grid{ grid-template-columns:repeat(2,1fr); } }

/* ================== BLOG / JOURNAL ================== */
.journal{ background:var(--bg-alt); }
.journal-grid{ display:grid; grid-template-columns:repeat(12, 1fr); gap:1.4rem; margin-top:2.4rem; }
.post{
  grid-column:span 4;
  background:var(--bg); border:1px solid var(--rule); border-radius:6px;
  padding:1.6rem 1.4rem;
  display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
}
.post:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -20px rgba(17,32,31,.25); }
.post .post-meta{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:.82rem; margin-bottom:.6rem; display:flex; justify-content:space-between; }
.post .post-meta time{ color:var(--ink-soft); font-style:normal; font-family:var(--f-body); font-size:.78rem; }
.post h3{ font-family:var(--f-display); font-weight:500; font-size:1.18rem; line-height:1.25; margin:0 0 .7rem; }
.post h3 a{ color:var(--ink); }
.post h3 a:hover{ color:var(--accent-hot); text-decoration:none; }
.post p{ font-size:.9rem; color:var(--ink-soft); margin:0 0 1.2rem; flex:1; line-height:1.55; }
.post .readmore{ font-size:.82rem; font-weight:500; color:var(--accent); }

.post.feat{ grid-column:span 8; grid-row:span 2; padding:2.2rem 2rem; }
.post.feat h3{ font-size:1.7rem; }
.post.feat p{ font-size:1rem; }

@media (max-width:1000px){
  .post, .post.feat{ grid-column:span 12; grid-row:auto; }
  .post.feat h3{ font-size:1.4rem; }
}

.journal-cta{ text-align:center; margin-top:2.5rem; }

/* ================== FAQ ================== */
.faq-list{ max-width:820px; margin:2.4rem auto 0; }
details.q{
  border-bottom:1px solid var(--rule);
  padding:1.3rem 0;
}
details.q summary{
  list-style:none; cursor:pointer;
  font-family:var(--f-display); font-weight:500; font-size:1.15rem;
  color:var(--ink); padding-right:2rem; position:relative;
  line-height:1.35;
}
details.q summary::-webkit-details-marker{ display:none; }
details.q summary::after{
  content:"+"; position:absolute; right:0; top:-2px;
  font-family:var(--f-body); font-weight:300; font-size:1.8rem; color:var(--accent-hot);
  transition:transform .2s;
}
details.q[open] summary::after{ content:"−"; }
details.q .ans{ color:var(--ink-soft); margin:.8rem 0 0; font-size:.98rem; max-width:70ch; }

/* ================== CONTACT ================== */
.contact{ background:var(--ink); color:#e6e2d4; }
.contact .section-kicker{ color:#7ea3dc; }
.contact h2.section-h{ color:#f6f1e8; }
.contact h2.section-h em{ color:#96b4dc; }
.contact-layout{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); }
.contact-info{ color:#b8b4a6; font-size:.95rem; line-height:1.7; }
.contact-info h3{ font-family:var(--f-display); font-weight:500; color:#f6f1e8; font-size:1.1rem; margin:1.5rem 0 .3rem; }
.contact-info h3:first-child{ margin-top:0; }
.contact-info a{ color:#96b4dc; }

form.enquiry{ display:grid; gap:1rem; }
form.enquiry label{ display:block; font-size:.78rem; letter-spacing:.15em; text-transform:uppercase; color:#8e8a7e; margin-bottom:.35rem; }
form.enquiry input, form.enquiry textarea{
  width:100%; background:transparent; border:none;
  border-bottom:1px solid #3d4d4b; padding:.6rem 0;
  color:#f6f1e8; font-family:var(--f-body); font-size:1rem;
  outline:none;
}
form.enquiry input:focus, form.enquiry textarea:focus{ border-bottom-color:#96b4dc; }
form.enquiry textarea{ min-height:90px; resize:vertical; }
form.enquiry button{
  margin-top:1rem; background:var(--accent-hot); color:#fff;
  padding:.9rem 1.6rem; border:none; border-radius:999px;
  font-weight:500; font-size:.95rem; cursor:pointer; justify-self:start;
  transition:background .2s;
}
form.enquiry button:hover{ background:#16315a; }

@media (max-width:820px){ .contact-layout{ grid-template-columns:1fr; } }

/* ================== FOOTER ================== */
footer.site{
  background:#0a1716; color:#8a8877; padding:3rem 0 2rem;
  font-size:.88rem;
}
footer.site .foot-grid{ display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap:2rem; margin-bottom:2.4rem; }
footer.site h4{ font-family:var(--f-display); font-weight:500; color:#e6e2d4; font-size:.95rem; margin:0 0 .8rem; }
footer.site ul{ list-style:none; padding:0; margin:0; }
footer.site li{ margin-bottom:.4rem; }
footer.site a{ color:#8a8877; }
footer.site a:hover{ color:#96b4dc; }
footer.site .about p{ margin:.6rem 0; max-width:38ch; line-height:1.6; }
footer.site .brand-mark{ width:34px; height:34px; font-size:1rem; }
footer.site .brand{ color:#e6e2d4; font-size:1rem; margin-bottom:.5rem; }
footer.site .brand small{ color:#8a8877; }
footer.site .legal{
  border-top:1px solid #1a2a28; padding-top:1.4rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-size:.8rem; color:#5c5a4d;
}
@media (max-width:820px){ footer.site .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:500px){ footer.site .foot-grid{ grid-template-columns:1fr; } }

/* ================== FLOATING QUICK-CONTACT BUTTONS ================== */
.floating-actions{
  display:none; position:fixed; bottom:1rem; right:1rem; z-index:60;
  flex-direction:column; gap:.6rem; align-items:flex-end;
}
.floating-call{
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--accent); color:#fff;
  padding:.8rem 1.2rem; border-radius:999px;
  font-weight:500; font-size:.9rem; text-decoration:none;
  box-shadow:0 10px 25px rgba(30,58,107,.35);
  transition:transform .15s, box-shadow .15s;
}
.floating-call:hover{
  transform:translateY(-1px); text-decoration:none;
  box-shadow:0 12px 28px rgba(30,58,107,.45);
}
.floating-wa{
  display:inline-flex; align-items:center; justify-content:center;
  background:#25d366; color:#fff;
  width:52px; height:52px; border-radius:50%;
  box-shadow:0 10px 25px rgba(37,211,102,.4);
  text-decoration:none;
  transition:transform .15s, box-shadow .15s;
}
.floating-wa:hover{
  transform:translateY(-1px) scale(1.05); text-decoration:none;
  box-shadow:0 12px 30px rgba(37,211,102,.55);
}
@media (max-width:820px){ .floating-actions{ display:flex; } }

/* ================== REDUCED MOTION ================== */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Active nav state */
nav.primary a.active{ color:var(--accent-hot); }
nav.primary a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:1px; background:var(--accent-hot); }
nav.primary a{ position:relative; }


/* ==========================================================
   ABOUT PAGE
   ========================================================== */

/* ========== ABOUT PAGE ========== */
.ab-hero{ padding:clamp(2.6rem,5vw,4.2rem) 0 clamp(1.8rem,3vw,2.6rem); border-bottom:1px solid var(--rule); position:relative; }
.ab-hero .wrap{ display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.ab-hero-img{ aspect-ratio:4/5; overflow:hidden; border-radius:4px; background:var(--bg-alt); max-width:440px; position:relative; box-shadow:0 8px 30px rgba(30,58,107,0.08); }
.ab-hero-img img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.ab-hero-img::after{ content:""; position:absolute; inset:0; border:1px solid rgba(30,58,107,0.08); border-radius:4px; pointer-events:none; }
.ab-hero h1{ font-size:clamp(2.4rem,5.4vw,4rem); line-height:1.02; letter-spacing:-0.02em; margin:.8rem 0 1.2rem; color:var(--ink); }
.ab-hero h1 em{ color:var(--accent-hot); font-style:italic; }
.ab-hero .lede{ font-size:1.12rem; line-height:1.62; max-width:54ch; color:var(--ink-soft); }
.ab-hero .quick{ display:flex; gap:2rem; margin-top:1.8rem; padding-top:1.3rem; border-top:1px solid var(--rule); font-size:.85rem; flex-wrap:wrap; }
.ab-hero .quick strong{ font-family:var(--f-display); font-size:1.7rem; font-weight:500; display:block; line-height:1; margin-bottom:.25rem; letter-spacing:-.01em; color:var(--ink); }
.ab-hero .quick strong em{ color:var(--accent-hot); font-style:normal; }
.ab-hero .quick span{ color:var(--ink-soft); }
@media (max-width:820px){ .ab-hero .wrap{ grid-template-columns:1fr; } .ab-hero-img{ margin:0 auto; } }

.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--f-body); font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

/* Long-form bio */
.ab-bio{ padding:clamp(2.5rem,4.5vw,3.8rem) 0; }
.ab-bio .wrap{ display:grid; grid-template-columns:220px 1fr; gap:3rem; align-items:start; }
.ab-bio aside{ position:sticky; top:90px; font-size:.88rem; }
.ab-bio aside h4{ font-family:var(--f-body); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin:0 0 .9rem; }
.ab-bio aside ol{ list-style:none; padding:0; margin:0; border-left:1px solid var(--rule); }
.ab-bio aside li a{ display:block; padding:.45rem 1rem; color:var(--ink-soft); text-decoration:none; border-left:2px solid transparent; margin-left:-1px; font-size:.9rem; }
.ab-bio aside li a:hover{ color:var(--accent); border-left-color:var(--accent); }
.ab-bio article{ max-width:680px; }
.ab-bio h2{ font-family:var(--f-display); font-weight:500; font-size:1.75rem; margin:2.8rem 0 1rem; letter-spacing:-0.01em; color:var(--ink); }
.ab-bio h2:first-child{ margin-top:0; }
.ab-bio p{ font-size:1.05rem; line-height:1.75; color:var(--ink); margin:0 0 1.2rem; }
.ab-bio p.lede{ font-family:var(--f-display); font-style:italic; font-weight:300; font-size:1.32rem; color:var(--ink-soft); line-height:1.45; margin-bottom:2rem; }
.ab-bio article a{ color:var(--accent); border-bottom:1px solid var(--rule); text-decoration:none; transition:border-color .15s; }
.ab-bio article a:hover{ border-bottom-color:var(--accent-hot); color:var(--accent-hot); }
@media (max-width:900px){
  .ab-bio .wrap{ grid-template-columns:1fr; }
  .ab-bio aside{ position:static; padding:1rem 1.2rem; background:var(--bg-alt); border:1px solid var(--rule); border-radius:4px; }
  .ab-bio aside ol{ border:none; display:flex; flex-wrap:wrap; gap:.4rem; }
  .ab-bio aside li a{ padding:.35rem .8rem; border:1px solid var(--rule); background:var(--bg); border-radius:3px; }
}

/* Credentials */
.creds{ padding:clamp(2.5rem,4.5vw,3.8rem) 0; background:var(--bg-alt); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.creds h2.section-h{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); margin:0 0 .6rem; letter-spacing:-.015em; }
.creds h2.section-h em{ color:var(--accent-hot); font-style:italic; }
.creds .section-sub{ color:var(--ink-soft); font-size:1.05rem; max-width:58ch; margin:0 0 2.2rem; }
.cred-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.cred{ background:var(--bg); border:1px solid var(--rule); padding:1.6rem 1.4rem; border-radius:4px; transition:transform .18s, border-color .18s, box-shadow .18s; }
.cred:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:0 6px 20px rgba(30,58,107,0.08); }
.cred .num{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:.92rem; margin-bottom:.65rem; }
.cred h3{ font-family:var(--f-display); font-weight:500; font-size:1.15rem; line-height:1.25; margin:0 0 .35rem; color:var(--ink); }
.cred .sub{ font-size:.86rem; color:var(--ink-soft); margin:0 0 .6rem; font-style:italic; }
.cred p{ font-size:.92rem; color:var(--ink-soft); margin:0; line-height:1.58; }
@media (max-width:900px){ .cred-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .cred-grid{ grid-template-columns:1fr; } }

/* Publications */
.pubs{ padding:clamp(2.5rem,4.5vw,3.8rem) 0; }
.pubs .section-head{ max-width:780px; margin-bottom:2.2rem; }
.pubs h2.section-h{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); margin:.5rem 0 .6rem; letter-spacing:-.015em; }
.pubs h2.section-h em{ color:var(--accent-hot); font-style:italic; }
.pubs .section-sub{ color:var(--ink-soft); font-size:1.05rem; max-width:58ch; margin:0; }
.pub{ display:grid; grid-template-columns:70px 1fr auto; gap:1.4rem; padding:1.3rem 0; border-bottom:1px solid var(--rule); align-items:start; }
.pub .yr{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:1.2rem; padding-top:2px; font-variant-numeric:tabular-nums; }
.pub .main strong{ display:block; font-weight:600; color:var(--ink); margin-bottom:.3rem; font-size:1.02rem; line-height:1.38; }
.pub .main span{ color:var(--ink-soft); font-size:.88rem; font-style:italic; }
.pub .cite{ font-size:.82rem; color:var(--ink-soft); padding:.3rem .8rem; border:1px solid var(--rule); border-radius:3px; font-variant-numeric:tabular-nums; white-space:nowrap; background:var(--bg-alt); }
.pub .cite strong{ color:var(--accent); font-weight:600; }
@media (max-width:700px){ .pub{ grid-template-columns:1fr; gap:.4rem; } .pub .cite{ justify-self:start; } }

/* Bangalore Manoeuvre highlight (dark section — same treatment as homepage .diag) */
.bangalore{ background:var(--ink); color:#e6e2d4; padding:clamp(2.8rem,5vw,4.2rem) 0; position:relative; overflow:hidden; }
.bangalore::before{ content:""; position:absolute; inset:0; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.067  0 0 0 0 0.125  0 0 0 0 0.122  0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); pointer-events:none; opacity:.35; }
.bangalore .wrap{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.bangalore .eyebrow{ color:#7ea3dc; }
.bangalore .eyebrow::before{ background:#7ea3dc; }
.bangalore h2{ color:#f6f1e8; font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.6vw,2.7rem); letter-spacing:-.015em; margin:.7rem 0 1rem; }
.bangalore h2 em{ color:#96b4dc; font-style:italic; }
.bangalore p{ font-size:1.02rem; line-height:1.72; color:#b8b4a6; margin:0 0 1rem; }
.bangalore ul{ list-style:none; padding:0; margin:1.5rem 0 0; }
.bangalore li{ display:grid; grid-template-columns:24px 1fr; gap:.9rem; padding:.55rem 0; border-bottom:1px solid #2f3139; font-size:.94rem; color:#e6e2d4; align-items:baseline; }
.bangalore li::before{ content:"◆"; color:#7ea3dc; font-size:.6em; padding-top:.35rem; }
.bangalore .refcard{ background:rgba(255,255,255,.03); border:1px solid #2f3139; padding:1.8rem; border-radius:4px; backdrop-filter:blur(4px); }
.bangalore .refcard h3{ color:#f6f1e8; font-family:var(--f-display); font-weight:500; font-size:1.2rem; margin:0 0 .5rem; }
.bangalore .refcard p{ color:#b8b4a6; font-size:.93rem; margin:0 0 1rem; line-height:1.6; }
.bangalore .refcard .authors{ font-size:.85rem; color:#8e8a7e; padding-top:.9rem; border-top:1px solid #2f3139; }
.bangalore .refcard .authors strong{ color:#e6e2d4; font-weight:500; }
@media (max-width:820px){ .bangalore .wrap{ grid-template-columns:1fr; } }

/* Societies */
.socs{ padding:clamp(2.5rem,4.5vw,3.8rem) 0; }
.socs .section-head{ max-width:780px; margin-bottom:2rem; }
.socs h2.section-h{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); letter-spacing:-.015em; margin:.5rem 0 .6rem; }
.socs h2.section-h em{ color:var(--accent-hot); font-style:italic; }
.socs .section-sub{ color:var(--ink-soft); font-size:1.05rem; max-width:58ch; margin:0; }
.soc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem; }
.soc{ background:var(--bg); border:1px solid var(--rule); padding:1.4rem 1.3rem; border-radius:4px; transition:border-color .18s, transform .18s; }
.soc:hover{ border-color:var(--accent); transform:translateY(-2px); }
.soc strong{ font-family:var(--f-display); font-weight:500; font-size:1.02rem; display:block; color:var(--ink); margin-bottom:.35rem; letter-spacing:-.01em; }
.soc span{ font-size:.85rem; color:var(--ink-soft); line-height:1.5; }
@media (max-width:900px){ .soc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .soc-grid{ grid-template-columns:1fr; } }

/* Final CTA band (warm) */
.final-cta{ padding:clamp(2.8rem,5vw,4rem) 0; background:var(--bg-alt); border-top:1px solid var(--rule); text-align:center; }
.final-cta h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); margin:.5rem 0 .6rem; letter-spacing:-.015em; color:var(--ink); }
.final-cta h2 em{ color:var(--accent-hot); font-style:italic; }
.final-cta p{ color:var(--ink-soft); max-width:55ch; margin:.5rem auto 1.8rem; font-size:1.02rem; line-height:1.6; }


/* ==========================================================
   BLOG PAGE
   ========================================================== */

/* ========== BLOG INDEX PAGE ========== */
.blog-masthead{ padding:clamp(2.8rem,5vw,4.4rem) 0 clamp(1.8rem,3vw,2.6rem); border-bottom:1px solid var(--rule); }
.blog-masthead .wrap{ display:grid; grid-template-columns:1.7fr 1fr; gap:3rem; align-items:end; }
.blog-masthead h1{ font-size:clamp(2.8rem,6vw,4.8rem); line-height:.98; letter-spacing:-0.025em; margin:1rem 0 0; color:var(--ink); }
.blog-masthead h1 em{ color:var(--accent-hot); font-style:italic; }
.blog-masthead .lede{ font-size:1.08rem; color:var(--ink-soft); line-height:1.55; max-width:58ch; margin-top:1.4rem; }
.blog-masthead .meta{ font-size:.88rem; color:var(--ink-soft); }
.blog-masthead .stats{ display:flex; gap:2rem; padding-top:1.2rem; border-top:1px solid var(--rule); }
.blog-masthead .stats div strong{ font-family:var(--f-display); font-size:1.85rem; font-weight:500; color:var(--ink); display:block; line-height:1; margin-bottom:.25rem; letter-spacing:-.01em; }
.blog-masthead .stats div strong em{ color:var(--accent-hot); font-style:normal; }
.blog-masthead .stats div span{ color:var(--ink-soft); font-size:.82rem; }
@media (max-width:820px){ .blog-masthead .wrap{ grid-template-columns:1fr; gap:1.5rem; } }

.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--f-body); font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

/* Toolbar */
.blog-toolbar{ padding:1.2rem 0; border-bottom:1px solid var(--rule); position:sticky; top:66px; background:rgba(246,241,232,.94); backdrop-filter:saturate(160%) blur(10px); z-index:40; }
.blog-toolbar .wrap{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.cats{ display:flex; gap:.4rem; flex-wrap:wrap; }
.cat{ font-size:.82rem; padding:.5rem .95rem; border:1px solid var(--rule); background:var(--bg); color:var(--ink-soft); text-decoration:none; border-radius:3px; font-weight:500; transition:all .15s; cursor:pointer; font-family:var(--f-body); }
.cat:hover{ border-color:var(--ink); color:var(--ink); }
.cat.on{ background:var(--accent); color:#fff; border-color:var(--accent); }
.search-box{ position:relative; flex:0 1 280px; min-width:200px; }
.search-box input{ width:100%; padding:.6rem 1rem .6rem 2.3rem; border:1px solid var(--rule); background:var(--bg); font-family:var(--f-body); font-size:.9rem; border-radius:3px; color:var(--ink); }
.search-box input:focus{ outline:none; border-color:var(--accent); }
.search-box::before{ content:"⌕"; position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:var(--ink-soft); font-size:1.1rem; }

/* Featured post */
.feat-wrap{ padding:clamp(2rem,4vw,3rem) 0; }
.feat{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(1.8rem,4vw,3.2rem); align-items:center; background:var(--bg-alt); border:1px solid var(--rule); padding:clamp(1.8rem,3vw,2.6rem); border-radius:4px; transition:border-color .2s; }
.feat:hover{ border-color:var(--accent); }
.feat .feat-img{ aspect-ratio:4/3; overflow:hidden; background:var(--bg); border-radius:3px; }
.feat .feat-img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.feat:hover .feat-img img{ transform:scale(1.03); }
.feat .tag{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:.92rem; margin-bottom:.5rem; display:block; }
.feat h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.6rem,3vw,2.3rem); margin:0 0 .9rem; line-height:1.12; letter-spacing:-.015em; }
.feat h2 a{ color:var(--ink); text-decoration:none; border-bottom:2px solid transparent; transition:border-color .2s; }
.feat h2 a:hover{ border-bottom-color:var(--accent-hot); }
.feat p{ color:var(--ink-soft); margin:0 0 1.1rem; font-size:1.02rem; line-height:1.65; }
.feat .byline{ font-size:.85rem; color:var(--ink-soft); }
.feat .byline strong{ color:var(--ink); }
@media (max-width:820px){ .feat{ grid-template-columns:1fr; } }

/* Article grid */
.articles{ padding:clamp(2rem,4vw,3.5rem) 0 1rem; }
.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem 1.8rem; }
.article{ display:flex; flex-direction:column; border-top:1px solid var(--rule); padding-top:1.4rem; text-decoration:none; color:inherit; transition:transform .15s; }
.article:hover{ transform:translateY(-3px); }
.article .thumb{ aspect-ratio:4/3; overflow:hidden; background:var(--bg-alt); margin-bottom:1rem; border-radius:3px; }
.article .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.article:hover .thumb img{ transform:scale(1.04); }
.article .art-meta{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-hot); margin-bottom:.5rem; font-weight:500; display:flex; justify-content:space-between; gap:.5rem; }
.article .art-meta time{ color:var(--ink-soft); letter-spacing:0; text-transform:none; font-weight:400; }
.article h3{ font-family:var(--f-display); font-weight:500; font-size:1.25rem; line-height:1.25; margin:0 0 .55rem; color:var(--ink); letter-spacing:-.01em; }
.article:hover h3{ color:var(--accent); }
.article p{ font-size:.92rem; color:var(--ink-soft); margin:0 0 .8rem; line-height:1.55; flex:1; }
.article .art-foot{ font-size:.78rem; color:var(--ink-soft); }
@media (max-width:1000px){ .article-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .article-grid{ grid-template-columns:1fr; } }

/* Pagination */
.pagination{ display:flex; justify-content:center; align-items:center; gap:.4rem; padding:3rem 0; margin-top:2rem; border-top:1px solid var(--rule); }
.pagination a, .pagination span{ padding:.6rem .9rem; border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; min-width:40px; text-align:center; font-size:.88rem; border-radius:3px; font-variant-numeric:tabular-nums; font-weight:500; }
.pagination a:hover{ border-color:var(--ink); color:var(--ink); }
.pagination .current{ background:var(--accent); color:#fff; border-color:var(--accent); }
.pagination .nav{ font-family:var(--f-display); font-style:italic; }
.pagination .dots{ border:none; padding:.6rem .3rem; }

/* Language strip (dark) */
.lang-strip{ background:var(--ink); color:#b8b4a6; padding:1.3rem 0; font-size:.92rem; }
.lang-strip .wrap{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.lang-strip a{ color:#96b4dc; text-decoration:none; margin-left:.8rem; }
.lang-strip a:hover{ text-decoration:underline; color:#b8ccf0; }


/* ==========================================================
   POST PAGE
   ========================================================== */

/* ========== SINGLE POST ========== */
.progress{ position:fixed; top:0; left:0; height:3px; background:var(--accent-hot); width:0%; z-index:100; transition:width .1s linear; }

.article-head{ padding:clamp(2rem,5vw,4rem) 0 clamp(1.5rem,3vw,2.5rem); border-bottom:1px solid var(--rule); }
.article-head .wrap{ max-width:820px; }
.article-head .cat-line{ font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.article-head h1{ font-family:var(--f-display); font-weight:500; font-size:clamp(2.2rem,5.2vw,3.8rem); line-height:1.04; letter-spacing:-0.02em; margin:0 0 1.4rem; color:var(--ink); }
.article-head h1 em{ font-style:italic; color:var(--accent-hot); }
.article-head .deck{ font-family:var(--f-display); font-weight:300; font-style:italic; font-size:clamp(1.15rem,1.5vw,1.38rem); color:var(--ink-soft); line-height:1.48; margin:0 0 2rem; max-width:60ch; }

.byline{ display:flex; align-items:center; gap:1rem; padding-top:1.5rem; border-top:1px solid var(--rule); font-size:.88rem; }
.byline-img{ width:48px; height:48px; border-radius:50%; background:var(--ink); color:#f6f1e8; display:grid; place-items:center; font-family:var(--f-display); font-size:1.2rem; font-weight:500; flex-shrink:0; }
.byline-text strong{ display:block; color:var(--ink); font-weight:600; }
.byline-text span{ color:var(--ink-soft); }
.byline-right{ margin-left:auto; text-align:right; color:var(--ink-soft); font-size:.82rem; }
.byline-right strong{ color:var(--ink); display:block; }

.article-hero{ padding:clamp(1rem,3vw,2rem) 0; }
.article-hero figure{ max-width:1040px; margin:0 auto; padding:0 var(--pad); }
.article-hero img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:4px; }
.article-hero figcaption{ font-size:.82rem; color:var(--ink-soft); margin-top:.65rem; font-style:italic; text-align:center; }

.article-body{ padding:clamp(2rem,4vw,3.5rem) 0 clamp(3rem,5vw,5rem); }
.article-body .wrap-read{ max-width:720px; margin:0 auto; padding:0 var(--pad); }
.article-body p{ font-size:1.08rem; line-height:1.78; color:var(--ink); margin:0 0 1.3rem; }
.article-body p:first-of-type::first-letter{
  float:left; font-family:var(--f-display); font-weight:400;
  font-size:4.4em; line-height:.88; padding:.2rem .55rem 0 0; color:var(--accent-hot);
}
.article-body h2{ font-family:var(--f-display); font-weight:500; font-size:1.8rem; margin:2.8rem 0 1rem; letter-spacing:-.01em; color:var(--ink); }
.article-body h3{ font-family:var(--f-display); font-weight:500; font-size:1.3rem; margin:2rem 0 .7rem; color:var(--ink); }
.article-body ul, .article-body ol{ padding-left:1.3rem; margin:0 0 1.4rem; }
.article-body li{ font-size:1.06rem; line-height:1.72; margin-bottom:.45rem; color:var(--ink); }
.article-body blockquote{
  margin:2rem 0; padding:1.5rem 1.8rem;
  background:var(--bg-alt); border-left:3px solid var(--accent-hot); border-radius:3px;
  font-family:var(--f-display); font-style:italic; font-size:1.18rem; line-height:1.55;
  color:var(--ink);
}
.article-body blockquote p{ margin:0; font-size:1.18rem; }
.article-body a{ color:var(--accent); border-bottom:1px solid var(--rule); text-decoration:none; transition:all .15s; }
.article-body a:hover{ border-bottom-color:var(--accent-hot); color:var(--accent-hot); }

.toc{ padding:1.3rem 1.5rem; background:var(--bg-alt); border:1px solid var(--rule); border-radius:4px; margin-bottom:2.2rem; }
.toc h4{ font-family:var(--f-body); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin:0 0 .7rem; }
.toc ol{ list-style:none; counter-reset:toc; padding:0; margin:0; }
.toc li{ counter-increment:toc; padding:.3rem 0; font-size:.96rem; }
.toc li::before{ content:counter(toc,decimal-leading-zero); color:var(--accent-hot); font-family:var(--f-display); font-style:italic; margin-right:.7rem; font-size:.88rem; }
.toc a{ color:var(--ink) !important; text-decoration:none !important; border:none !important; }
.toc a:hover{ color:var(--accent-hot) !important; }

.callout{ margin:2.2rem 0; padding:1.5rem 1.7rem; background:var(--bg-alt); border:1px solid var(--rule); border-radius:4px; border-left:3px solid var(--accent); }
.callout .label{ font-family:var(--f-body); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:.5rem; display:block; }
.callout p{ margin:0; font-size:1rem; }
.callout.warn{ border-left-color:#8a5a00; }
.callout.warn .label{ color:#8a5a00; }

.takeaway{ margin:2.5rem 0; padding:1.8rem 2rem; background:var(--ink); color:#e6e2d4; border-radius:4px; position:relative; overflow:hidden; }
.takeaway h3{ color:#f6f1e8; font-family:var(--f-display); font-weight:500; font-size:1.22rem; margin:0 0 .8rem; position:relative; }
.takeaway ul{ margin:0; padding-left:1.3rem; position:relative; }
.takeaway li{ color:#b8b4a6; margin-bottom:.5rem; font-size:.98rem; line-height:1.55; }

.cta-inline{ margin:2.5rem 0; padding:1.8rem 2rem; background:var(--bg-alt); border:1px solid var(--rule); border-left:4px solid var(--accent-hot); border-radius:4px; display:flex; justify-content:space-between; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.cta-inline strong{ font-family:var(--f-display); font-size:1.22rem; font-weight:500; color:var(--ink); display:block; margin-bottom:.3rem; }
.cta-inline p{ margin:0; font-size:.93rem; color:var(--ink-soft); }

.share{ margin:2rem 0; padding:1.3rem 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); font-size:.88rem; color:var(--ink-soft); display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.share strong{ color:var(--ink); margin-right:.5rem; font-weight:600; font-size:.76rem; letter-spacing:.15em; text-transform:uppercase; }
.share a{ color:var(--ink-soft); text-decoration:none; padding:.35rem .8rem; border:1px solid var(--rule); border-radius:3px; font-size:.82rem; background:var(--bg); }
.share a:hover{ border-color:var(--accent); color:var(--accent); }

.author-box{ margin-top:3rem; padding:2rem; background:var(--bg-alt); border:1px solid var(--rule); border-radius:4px; display:grid; grid-template-columns:auto 1fr; gap:1.6rem; align-items:start; }
.author-box .av{ width:74px; height:74px; border-radius:50%; background:var(--ink); color:#f6f1e8; display:grid; place-items:center; font-family:var(--f-display); font-size:1.9rem; font-weight:500; }
.author-box h4{ font-family:var(--f-display); font-weight:500; font-size:1.2rem; margin:0 0 .35rem; color:var(--ink); }
.author-box p{ margin:0 0 .8rem; font-size:.93rem; color:var(--ink-soft); line-height:1.6; }
.author-box .author-cta a{ font-size:.88rem; font-weight:500; color:var(--accent); text-decoration:none; border-bottom:1px solid var(--rule); }
.author-box .author-cta a:hover{ color:var(--accent-hot); border-bottom-color:var(--accent-hot); }
@media (max-width:560px){ .author-box{ grid-template-columns:1fr; } }

.related{ padding:clamp(2.5rem,4vw,3.5rem) 0; background:var(--bg-alt); border-top:1px solid var(--rule); }
.related .section-head{ margin-bottom:1.8rem; }
.related h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.7rem,3vw,2.2rem); margin:.4rem 0 0; color:var(--ink); letter-spacing:-.01em; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.rel{ background:var(--bg); border:1px solid var(--rule); padding:1.4rem 1.3rem; border-radius:4px; text-decoration:none; color:inherit; transition:border-color .2s, transform .2s; }
.rel:hover{ border-color:var(--accent); transform:translateY(-2px); text-decoration:none; }
.rel .art-meta{ font-size:.76rem; color:var(--accent-hot); letter-spacing:.1em; text-transform:uppercase; font-weight:500; margin-bottom:.4rem; }
.rel h3{ font-family:var(--f-display); font-weight:500; font-size:1.1rem; line-height:1.3; margin:0; color:var(--ink); }
.rel:hover h3{ color:var(--accent); }
@media (max-width:900px){ .related-grid{ grid-template-columns:1fr; } }


/* ==========================================================
   FAQ PAGE
   ========================================================== */

/* ========== FAQ PAGE ========== */
.faq-head{ padding:clamp(2.6rem,5vw,4.4rem) 0 clamp(1.8rem,3vw,2.4rem); border-bottom:1px solid var(--rule); }
.faq-head h1{ font-family:var(--f-display); font-weight:500; font-size:clamp(2.8rem,6vw,4.4rem); line-height:1.02; letter-spacing:-0.025em; margin:.8rem 0 1rem; color:var(--ink); }
.faq-head h1 em{ color:var(--accent-hot); font-style:italic; }
.faq-head .lede{ max-width:60ch; font-size:1.08rem; color:var(--ink-soft); line-height:1.55; }

.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--f-body); font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

.faq-toolbar{ padding:1.2rem 0; border-bottom:1px solid var(--rule); position:sticky; top:66px; background:rgba(246,241,232,.94); backdrop-filter:saturate(160%) blur(10px); z-index:40; }
.faq-toolbar .wrap{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.topic-filters{ display:flex; gap:.4rem; flex-wrap:wrap; }
.topic{ font-size:.82rem; padding:.5rem .95rem; border:1px solid var(--rule); background:var(--bg); color:var(--ink-soft); text-decoration:none; border-radius:3px; font-weight:500; cursor:pointer; font-family:var(--f-body); transition:all .15s; }
.topic:hover{ border-color:var(--ink); color:var(--ink); }
.topic.on{ background:var(--accent); color:#fff; border-color:var(--accent); }
.faq-search{ position:relative; flex:0 1 300px; min-width:200px; }
.faq-search input{ width:100%; padding:.6rem 1rem .6rem 2.3rem; border:1px solid var(--rule); background:var(--bg); font-family:var(--f-body); font-size:.9rem; border-radius:3px; color:var(--ink); }
.faq-search input:focus{ outline:none; border-color:var(--accent); }
.faq-search::before{ content:"⌕"; position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:var(--ink-soft); font-size:1.1rem; }

.faq-body{ padding:clamp(2rem,4vw,3.5rem) 0; }
.faq-body .wrap{ display:grid; grid-template-columns:220px 1fr; gap:3rem; align-items:start; }

.faq-toc{ position:sticky; top:160px; font-size:.88rem; }
.faq-toc h4{ font-family:var(--f-body); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin:0 0 .9rem; }
.faq-toc ol{ list-style:none; padding:0; margin:0; border-left:1px solid var(--rule); }
.faq-toc li a{ display:block; padding:.45rem 1rem; color:var(--ink-soft); text-decoration:none; border-left:2px solid transparent; margin-left:-1px; font-size:.9rem; }
.faq-toc li a:hover{ color:var(--accent); border-left-color:var(--accent); }

.faq-sections > section{ padding:0 0 2.8rem; }
.faq-sections h2{ font-family:var(--f-display); font-weight:500; font-size:1.65rem; padding:.5rem 0 1rem; margin:0 0 .5rem; border-bottom:2px solid var(--ink); letter-spacing:-0.01em; color:var(--ink); }
.faq-sections h2 .count{ font-family:var(--f-body); font-size:.78rem; letter-spacing:.1em; color:var(--ink-soft); font-weight:500; margin-left:.8rem; }

details.faq{ border-bottom:1px solid var(--rule); padding:1.25rem 0; }
details.faq summary{ list-style:none; cursor:pointer; font-family:var(--f-display); font-weight:500; font-size:1.12rem; color:var(--ink); padding-right:2rem; position:relative; line-height:1.35; letter-spacing:-.005em; }
details.faq summary::-webkit-details-marker{ display:none; }
details.faq summary::after{ content:"+"; position:absolute; right:0; top:-2px; font-family:var(--f-body); font-weight:300; font-size:1.8rem; color:var(--accent-hot); transition:transform .2s; }
details.faq[open] summary::after{ content:"−"; }
details.faq summary:hover{ color:var(--accent); }
details.faq .ans{ color:var(--ink-soft); margin:.85rem 0 0; font-size:.98rem; max-width:72ch; line-height:1.7; }
details.faq .ans p{ margin:0 0 .7rem; }
details.faq .ans p:last-child{ margin-bottom:0; }

.faq-hidden{ display:none; }

@media (max-width:900px){
  .faq-body .wrap{ grid-template-columns:1fr; gap:1rem; }
  .faq-toc{ position:static; padding:1rem 1.2rem; border:1px solid var(--rule); background:var(--bg-alt); border-radius:4px; }
  .faq-toc ol{ border:none; display:flex; flex-wrap:wrap; gap:.35rem; }
  .faq-toc li a{ padding:.3rem .75rem; border:1px solid var(--rule); background:var(--bg); border-radius:3px; }
}

.faq-end{ background:var(--bg-alt); padding:clamp(2.8rem,5vw,4rem) 0; text-align:center; border-top:1px solid var(--rule); }
.faq-end h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); margin:.5rem 0 .6rem; letter-spacing:-.015em; color:var(--ink); }
.faq-end h2 em{ color:var(--accent-hot); font-style:italic; }
.faq-end p{ color:var(--ink-soft); max-width:55ch; margin:.5rem auto 1.8rem; font-size:1.02rem; }


/* ==========================================================
   CONTACT PAGE
   ========================================================== */

/* ========== CONTACT PAGE ========== */
.contact-head{ padding:clamp(2.6rem,5vw,4.4rem) 0 clamp(1.8rem,3vw,2.4rem); border-bottom:1px solid var(--rule); }
.contact-head h1{ font-family:var(--f-display); font-weight:500; font-size:clamp(2.8rem,6vw,4.4rem); line-height:1.02; letter-spacing:-0.025em; margin:.8rem 0 1rem; color:var(--ink); }
.contact-head h1 em{ color:var(--accent-hot); font-style:italic; }
.contact-head .lede{ max-width:60ch; font-size:1.08rem; color:var(--ink-soft); line-height:1.55; }

.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--f-body); font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

.contact-grid-wrap{ padding:clamp(2.2rem,4vw,3.5rem) 0 clamp(1.8rem,3vw,2.5rem); }
.contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.cc{ background:var(--bg); border:1px solid var(--rule); padding:1.6rem 1.5rem; border-radius:4px; transition:border-color .2s, transform .2s, box-shadow .2s; }
.cc:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:0 6px 20px rgba(30,58,107,.06); }
.cc .label{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin-bottom:.7rem; display:block; font-family:var(--f-body); }
.cc h3{ font-family:var(--f-display); font-weight:500; font-size:1.32rem; margin:0 0 .45rem; color:var(--ink); letter-spacing:-.01em; }
.cc h3 a{ color:var(--ink); text-decoration:none; }
.cc h3 a:hover{ color:var(--accent-hot); }
.cc p{ margin:0; font-size:.92rem; color:var(--ink-soft); line-height:1.55; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .contact-grid{ grid-template-columns:1fr; } }

.map-section{ padding:0 0 clamp(2.5rem,4vw,4rem); }
.map-section .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,2.5rem); align-items:stretch; }
.map-frame{ aspect-ratio:1/1; border:1px solid var(--rule); border-radius:4px; overflow:hidden; background:var(--bg-alt); }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }
.map-info{ padding:1rem 0; }
.map-info h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.7rem,3vw,2.3rem); margin:.4rem 0 1rem; letter-spacing:-.01em; color:var(--ink); }
.map-info h2 em{ color:var(--accent-hot); font-style:italic; }
.map-info p{ color:var(--ink-soft); margin:0 0 1rem; line-height:1.66; font-size:1rem; }
.map-info ul{ list-style:none; padding:0; margin:1.4rem 0 1.8rem; }
.map-info li{ padding:.55rem 0; border-bottom:1px solid var(--rule); font-size:.94rem; color:var(--ink); display:grid; grid-template-columns:120px 1fr; gap:1rem; align-items:baseline; }
.map-info li strong{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
.map-info .btns{ display:flex; gap:.6rem; flex-wrap:wrap; }
@media (max-width:820px){ .map-section .wrap{ grid-template-columns:1fr; } .map-frame{ aspect-ratio:4/3; } }

.form-wrap{ padding:clamp(2.5rem,4.5vw,4rem) 0; background:var(--ink); color:#e6e2d4; position:relative; overflow:hidden; }
.form-wrap::before{ content:""; position:absolute; inset:0; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.067  0 0 0 0 0.125  0 0 0 0 0.122  0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); opacity:.35; pointer-events:none; }
.form-wrap .wrap{ position:relative; display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.form-wrap .eyebrow{ color:#7ea3dc; }
.form-wrap .eyebrow::before{ background:#7ea3dc; }
.form-wrap h2{ color:#f6f1e8; font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.7rem); letter-spacing:-.015em; margin:.5rem 0 1rem; }
.form-wrap h2 em{ color:#96b4dc; font-style:italic; }
.form-wrap .form-lede{ color:#b8b4a6; font-size:1rem; line-height:1.7; margin:0 0 1.2rem; }
.form-wrap .form-lede strong{ color:#e6e2d4; }
.form-wrap .priv{ font-size:.8rem; color:#8e8a7e; margin:1.2rem 0 0; line-height:1.6; font-style:italic; }
.form-wrap form{ display:grid; gap:1rem; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.fld label{ display:block; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:#8e8a7e; margin-bottom:.4rem; font-weight:600; }
.fld label .req{ color:#96b4dc; }
.fld input, .fld select, .fld textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid #2f3139;
  padding:.65rem 0; font-family:var(--f-body); font-size:.96rem; color:#e6e2d4;
  border-radius:0;
}
.fld input:focus, .fld select:focus, .fld textarea:focus{ outline:none; border-bottom-color:#96b4dc; }
.fld select{ appearance:none; background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M0 0l5 6 5-6z' fill='%238e8a7e'/></svg>") no-repeat right .6rem center; }
.fld select option{ background:var(--ink); color:#e6e2d4; }
.fld textarea{ min-height:110px; resize:vertical; line-height:1.5; }
.form-wrap button.submit{
  background:#96b4dc; color:var(--ink); border:none;
  padding:.95rem 1.8rem; font-family:var(--f-body); font-weight:600; font-size:.88rem;
  letter-spacing:.08em; text-transform:uppercase; cursor:pointer; border-radius:3px;
  transition:background .15s; justify-self:start; margin-top:.6rem;
}
.form-wrap button.submit:hover{ background:#f6f1e8; }
@media (max-width:820px){ .form-wrap .wrap, .form-row{ grid-template-columns:1fr; } }

.cities{ padding:clamp(2.5rem,4.5vw,4rem) 0; }
.cities .section-head{ max-width:780px; margin-bottom:2rem; }
.cities h2.section-h{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.9rem,3.5vw,2.6rem); margin:.5rem 0 .6rem; letter-spacing:-.015em; color:var(--ink); }
.cities h2.section-h em{ color:var(--accent-hot); font-style:italic; }
.cities .section-sub{ color:var(--ink-soft); font-size:1.05rem; max-width:58ch; margin:0; line-height:1.6; }
.city-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.city{ background:var(--bg); border:1px solid var(--rule); padding:1.15rem 1.2rem; border-radius:4px; transition:border-color .18s, transform .18s; }
.city:hover{ border-color:var(--accent); transform:translateY(-2px); }
.city strong{ font-family:var(--f-display); font-weight:500; font-size:1.08rem; display:block; color:var(--ink); letter-spacing:-.01em; margin-bottom:.2rem; }
.city .dist{ font-size:.78rem; color:var(--accent-hot); font-family:var(--f-display); font-style:italic; letter-spacing:.03em; margin-bottom:.35rem; }
.city span.note{ font-size:.82rem; color:var(--ink-soft); line-height:1.5; }
@media (max-width:1000px){ .city-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .city-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .city-grid{ grid-template-columns:1fr; } }

.mini-faq{ padding:clamp(2.5rem,4.5vw,4rem) 0; background:var(--bg-alt); border-top:1px solid var(--rule); }
.mini-faq .wrap{ max-width:780px; }
.mini-faq h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.7rem,3vw,2.3rem); margin:.4rem 0 1.5rem; letter-spacing:-.01em; color:var(--ink); }
.mini-faq details{ border-bottom:1px solid var(--rule); padding:1rem 0; }
.mini-faq summary{ list-style:none; cursor:pointer; font-family:var(--f-display); font-weight:500; font-size:1.05rem; color:var(--ink); position:relative; padding-right:2rem; }
.mini-faq summary::-webkit-details-marker{ display:none; }
.mini-faq summary::after{ content:"+"; position:absolute; right:0; top:-2px; color:var(--accent-hot); font-weight:300; font-size:1.6rem; transition:transform .2s; }
.mini-faq details[open] summary::after{ content:"−"; }
.mini-faq details p{ margin:.7rem 0 0; color:var(--ink-soft); font-size:.95rem; line-height:1.65; max-width:72ch; }


/* ==========================================================
   CATEGORY PAGE
   ========================================================== */

/* ========== CATEGORY PAGE ========== */
.cat-head{ padding:clamp(2.6rem,5vw,4.4rem) 0 clamp(1.8rem,3vw,2.4rem); border-bottom:1px solid var(--rule); }
.cat-head .wrap{ display:grid; grid-template-columns:1.5fr 1fr; gap:3rem; align-items:end; }
.cat-head h1{ font-family:var(--f-display); font-weight:500; font-size:clamp(2.6rem,6vw,4.3rem); line-height:1.02; letter-spacing:-0.025em; margin:.8rem 0 1rem; color:var(--ink); }
.cat-head h1 em{ color:var(--accent-hot); font-style:italic; }
.cat-head .lede{ max-width:60ch; font-size:1.08rem; color:var(--ink-soft); line-height:1.55; }
.cat-stats{ display:flex; gap:2rem; padding-top:1.3rem; border-top:1px solid var(--rule); flex-wrap:wrap; }
.cat-stats div strong{ font-family:var(--f-display); font-size:1.85rem; font-weight:500; color:var(--ink); display:block; line-height:1; margin-bottom:.2rem; letter-spacing:-.01em; }
.cat-stats div strong em{ color:var(--accent-hot); font-style:normal; }
.cat-stats div span{ color:var(--ink-soft); font-size:.82rem; }
@media (max-width:820px){ .cat-head .wrap{ grid-template-columns:1fr; gap:1.5rem; } }

.eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--f-body); font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-hot); font-weight:500; margin-bottom:1rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent-hot); }

.cat-nav{ padding:1.2rem 0; border-bottom:1px solid var(--rule); background:var(--bg-alt); }
.cat-nav .wrap{ display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
.cat-nav .cat-label{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin-right:.6rem; }
.cat-pill{ font-size:.86rem; padding:.5rem 1rem; border:1px solid var(--rule); background:var(--bg); color:var(--ink-soft); text-decoration:none; border-radius:3px; font-weight:500; transition:all .15s; font-family:var(--f-body); }
.cat-pill:hover{ border-color:var(--ink); color:var(--ink); text-decoration:none; }
.cat-pill.active{ background:var(--accent); color:#fff; border-color:var(--accent); }

/* Subtopics */
.subtopics{ padding:clamp(2.2rem,4vw,3.5rem) 0; }
.subtopics .section-head{ margin-bottom:2rem; max-width:780px; }
.subtopics h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.7rem,3vw,2.3rem); margin:.4rem 0 0; letter-spacing:-.01em; color:var(--ink); }
.subt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.subt{ background:var(--bg); border:1px solid var(--rule); padding:1.6rem 1.5rem; border-radius:4px; text-decoration:none; color:inherit; transition:border-color .18s, transform .18s, box-shadow .18s; display:flex; flex-direction:column; }
.subt:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:0 6px 20px rgba(30,58,107,.06); }
.subt .num{ font-family:var(--f-display); font-style:italic; color:var(--accent-hot); font-size:.92rem; margin-bottom:.55rem; letter-spacing:.02em; }
.subt h3{ font-family:var(--f-display); font-weight:500; font-size:1.2rem; margin:0 0 .5rem; color:var(--ink); letter-spacing:-.005em; line-height:1.25; }
.subt:hover h3{ color:var(--accent); }
.subt p{ font-size:.92rem; color:var(--ink-soft); margin:0 0 .9rem; line-height:1.58; flex:1; }
.subt .art-count{ font-size:.78rem; color:var(--accent-hot); font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:900px){ .subt-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .subt-grid{ grid-template-columns:1fr; } }

/* Articles */
.cat-articles{ padding:clamp(2.2rem,4vw,3.5rem) 0 1rem; border-top:1px solid var(--rule); }
.cat-articles .section-head{ display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:2rem; flex-wrap:wrap; }
.cat-articles h2{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.7rem,3vw,2.3rem); margin:.4rem 0 0; letter-spacing:-.01em; color:var(--ink); }
.cat-articles .sort{ font-size:.88rem; color:var(--ink-soft); }
.cat-articles .sort select{ font-family:var(--f-body); font-size:.88rem; border:1px solid var(--rule); padding:.45rem .7rem; margin-left:.3rem; background:var(--bg); border-radius:3px; color:var(--ink); }

.art-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem 1.8rem; }
.art{ display:flex; flex-direction:column; border-top:1px solid var(--rule); padding-top:1.4rem; text-decoration:none; color:inherit; transition:transform .15s; }
.art:hover{ transform:translateY(-3px); text-decoration:none; }
.art .thumb{ aspect-ratio:4/3; overflow:hidden; background:var(--bg-alt); margin-bottom:1rem; border-radius:3px; }
.art .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.art:hover .thumb img{ transform:scale(1.04); }
.art .meta{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-hot); margin-bottom:.5rem; font-weight:500; display:flex; justify-content:space-between; gap:.5rem; }
.art .meta time{ color:var(--ink-soft); letter-spacing:0; text-transform:none; font-weight:400; }
.art h3{ font-family:var(--f-display); font-weight:500; font-size:1.22rem; line-height:1.25; margin:0 0 .55rem; color:var(--ink); letter-spacing:-.01em; }
.art:hover h3{ color:var(--accent); }
.art p{ font-size:.92rem; color:var(--ink-soft); margin:0 0 .7rem; line-height:1.55; flex:1; }
.art .read-time{ font-size:.78rem; color:var(--ink-soft); }
@media (max-width:1000px){ .art-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .art-grid{ grid-template-columns:1fr; } }

.pagination{ display:flex; justify-content:center; align-items:center; gap:.4rem; padding:3rem 0; margin-top:2rem; border-top:1px solid var(--rule); }
.pagination a, .pagination span{ padding:.6rem .9rem; border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; min-width:40px; text-align:center; font-size:.88rem; border-radius:3px; font-variant-numeric:tabular-nums; font-weight:500; }
.pagination a:hover{ border-color:var(--ink); color:var(--ink); }
.pagination .current{ background:var(--accent); color:#fff; border-color:var(--accent); }
.pagination .nav{ font-family:var(--f-display); font-style:italic; }
.pagination .dots{ border:none; padding:.6rem .3rem; }

/* Author band */
.author-band{ background:var(--bg-alt); padding:clamp(2.2rem,4vw,3.2rem) 0; border-top:1px solid var(--rule); }
.author-band .wrap{ display:grid; grid-template-columns:auto 1fr auto; gap:1.8rem; align-items:center; }
.author-band .av{ width:74px; height:74px; border-radius:50%; background:var(--ink); color:#f6f1e8; display:grid; place-items:center; font-family:var(--f-display); font-size:1.9rem; font-weight:500; }
.author-band h3{ font-family:var(--f-display); font-weight:500; font-size:1.25rem; margin:0 0 .3rem; color:var(--ink); }
.author-band p{ margin:0; font-size:.94rem; color:var(--ink-soft); line-height:1.55; max-width:60ch; }
@media (max-width:720px){ .author-band .wrap{ grid-template-columns:1fr; text-align:left; } .author-band .av{ margin-bottom:.5rem; } }

/* ==========================================================
   PORTFOLIO PAGE — conference gallery
   ========================================================== */

.pf-head{ padding:clamp(2.6rem,5vw,4.4rem) 0 clamp(1.8rem,3vw,2.4rem); border-bottom:1px solid var(--rule); }
.pf-head .wrap{ display:grid; grid-template-columns:1.5fr 1fr; gap:3rem; align-items:end; }
.pf-head h1{ font-family:var(--f-display); font-weight:500; font-size:clamp(2.6rem,6vw,4.3rem); line-height:1.02; letter-spacing:-0.025em; margin:.8rem 0 1rem; color:var(--ink); }
.pf-head h1 em{ color:var(--accent-hot); font-style:italic; }
.pf-head .lede{ max-width:60ch; font-size:1.08rem; color:var(--ink-soft); line-height:1.55; }
.pf-stats{ display:flex; gap:2rem; padding-top:1.3rem; border-top:1px solid var(--rule); flex-wrap:wrap; }
.pf-stats div strong{ font-family:var(--f-display); font-size:1.85rem; font-weight:500; color:var(--ink); display:block; line-height:1; margin-bottom:.2rem; letter-spacing:-.01em; }
.pf-stats div strong em{ color:var(--accent-hot); font-style:normal; }
.pf-stats div span{ color:var(--ink-soft); font-size:.82rem; }
@media (max-width:820px){ .pf-head .wrap{ grid-template-columns:1fr; gap:1.5rem; } }

.pf-empty{ text-align:center; padding:3rem 2rem; background:var(--bg-alt); border:1px dashed var(--rule); border-radius:4px; }
.pf-empty h2{ font-family:var(--f-display); font-weight:500; font-size:1.5rem; margin:0 0 .8rem; color:var(--ink); }
.pf-empty p{ color:var(--ink-soft); margin:0 0 1.5rem; font-size:1rem; line-height:1.6; }

.pf-body{ padding:clamp(2.2rem,4vw,3.5rem) 0; }

.pf-year{ margin-bottom:clamp(2.5rem,4vw,4rem); }
.pf-year:last-child{ margin-bottom:0; }
.pf-year-head{
  font-family:var(--f-display); font-weight:500;
  font-size:clamp(2rem,3.5vw,2.8rem);
  color:var(--accent); letter-spacing:-.015em;
  padding:.5rem 0 1rem; margin:0 0 1.6rem;
  border-bottom:2px solid var(--ink);
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap;
}
.pf-year-head .pf-count{
  font-family:var(--f-body); font-weight:500;
  font-size:.8rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-soft);
}

.pf-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem 1.4rem; }
@media (max-width:1000px){ .pf-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .pf-grid{ grid-template-columns:1fr; } }

.pf-card{
  background:var(--bg); border:1px solid var(--rule); border-radius:4px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:border-color .18s, transform .18s, box-shadow .18s;
}
.pf-card:hover{ border-color:var(--accent); transform:translateY(-3px); box-shadow:0 8px 24px rgba(30,58,107,.08); }

.pf-thumb{ aspect-ratio:4/3; overflow:hidden; background:var(--bg-alt); }
.pf-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.pf-card:hover .pf-thumb img{ transform:scale(1.03); }
.pf-thumb-placeholder{
  width:100%; height:100%; display:grid; place-items:center;
  background:var(--bg-alt); color:var(--ink-soft);
}
.pf-thumb-placeholder span{ font-size:2.5rem; opacity:.4; }

.pf-body-card{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.pf-role{
  font-family:var(--f-body); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent-hot); font-weight:600;
  margin-bottom:.55rem; display:inline-block;
}
.pf-card h3{
  font-family:var(--f-display); font-weight:500;
  font-size:1.15rem; line-height:1.3; margin:0 0 .55rem;
  color:var(--ink); letter-spacing:-.005em;
}
.pf-meta{
  font-size:.85rem; color:var(--ink-soft);
  margin-bottom:.7rem; display:flex; align-items:center; gap:.45rem; flex-wrap:wrap;
}
.pf-meta .pf-sep{ opacity:.45; }
.pf-meta .pf-loc{ font-style:italic; }
.pf-desc{
  font-size:.9rem; color:var(--ink-soft);
  margin:0; line-height:1.55; flex:1;
}


/* ==========================================================
   CONTACT — 4-card action grid (replaces old form)
   ========================================================== */

.actions-wrap{ padding:clamp(2.5rem,4.5vw,4rem) 0; }

.action-grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1.2rem;
}
@media (max-width:1000px){ .action-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .action-grid{ grid-template-columns:1fr; } }

.action-card{
  background:var(--bg); border:1px solid var(--rule); border-radius:6px;
  padding:1.8rem 1.6rem 1.5rem;
  text-decoration:none; color:inherit;
  display:flex; flex-direction:column;
  transition:border-color .18s, transform .18s, box-shadow .18s;
  position:relative;
}
.action-card:hover{
  border-color:var(--accent);
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(30,58,107,.1);
  text-decoration:none;
}

.action-card .action-icon{
  font-size:2rem; line-height:1;
  margin-bottom:1rem;
  color:var(--accent);
}
.action-card.wa .action-icon{ color:#25d366; }
.action-card.wa:hover{ border-color:#25d366; box-shadow:0 10px 28px rgba(37,211,102,.15); }

.action-card h3{
  font-family:var(--f-display); font-weight:500;
  font-size:1.08rem; margin:0 0 .3rem;
  color:var(--ink); letter-spacing:-.005em;
}

.action-card .action-value{
  font-family:var(--f-body); font-weight:500;
  font-size:.95rem; color:var(--ink);
  margin-bottom:.75rem;
  word-break:break-word;
}

.action-card p{
  margin:0 0 1rem; font-size:.88rem;
  color:var(--ink-soft); line-height:1.55;
  flex:1;
}

.action-card .action-go{
  font-family:var(--f-body); font-weight:500;
  font-size:.82rem; letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent-hot);
  margin-top:auto;
}
.action-card.wa .action-go{ color:#25d366; }

.actions-note{
  margin:2.5rem 0 0; padding:1.2rem 1.4rem;
  background:var(--bg-alt); border:1px solid var(--rule);
  border-left:3px solid var(--accent-hot); border-radius:4px;
  font-size:.92rem; color:var(--ink-soft); line-height:1.55;
}
.actions-note strong{ color:var(--ink); }


/* ==========================================================
   HOMEPAGE CONTACT — split grid (info left, actions right)
   ========================================================== */

.home-contact-grid{
  display:grid; grid-template-columns: 1fr 1.4fr;
  gap: clamp(1.5rem, 3vw, 3rem);
  max-width:1100px; margin:0 auto;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  padding:clamp(1.5rem, 3vw, 2.5rem);
}
@media (max-width:860px){ .home-contact-grid{ grid-template-columns:1fr; } }

.home-contact-info h3{
  font-family:var(--f-display); font-weight:500;
  font-size:.95rem; letter-spacing:.02em;
  color:#e6e2d4; margin:1.2rem 0 .3rem; text-transform:none;
}
.home-contact-info h3:first-child{ margin-top:0; }
.home-contact-info p{
  color:#b8b4a6; font-size:.95rem; line-height:1.55; margin:0;
}
.home-contact-map{
  display:inline-block; margin-top:1.4rem;
  color:#96b4dc; font-weight:500; font-size:.92rem;
  text-decoration:none; border-bottom:1px solid rgba(150,180,220,.3);
  padding-bottom:2px;
}
.home-contact-map:hover{ color:#fff; border-bottom-color:#fff; text-decoration:none; }

.home-contact-actions{
  display:grid; grid-template-columns:1fr 1fr;
  gap:.8rem; align-content:start;
}
@media (max-width:560px){ .home-contact-actions{ grid-template-columns:1fr; } }

.home-action{
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.1rem;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:6px;
  text-decoration:none; color:#e6e2d4;
  transition: all .18s ease;
}
.home-action:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(126,163,220,.4);
  transform: translateY(-1px);
  text-decoration:none; color:#fff;
}
.home-action-ico{
  flex:0 0 auto;
  width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(126,163,220,.1);
  border-radius:50%;
  font-size:1.2rem; color:#96b4dc;
}
.home-action.home-action-wa .home-action-ico{
  background: rgba(37,211,102,.15); color:#25d366;
}
.home-action div{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.home-action strong{
  font-family:var(--f-body); font-weight:500;
  font-size:.98rem; color:#fff;
}
.home-action span{
  font-size:.82rem; color:#b8b4a6;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}


/* ========================================================
   LOGO SIZE — last-line-of-defense rules.
   Placed at end of CSS to win specificity battles.
   Uses :where() and explicit height to override WP HTML attributes.
   ======================================================== */
header.site .brand img,
header.site .custom-logo-link img,
header.site img.custom-logo,
header.site .wp-custom-logo,
.brand img,
.brand .custom-logo-link img{
  max-height: 48px !important;
  max-width: 170px !important;
  width: auto !important;
  height: 48px !important;
  object-fit: contain !important;
  display: block !important;
}

@media (max-width: 680px) {
  header.site .brand img,
  header.site .custom-logo-link img,
  header.site img.custom-logo,
  .brand img,
  .brand .custom-logo-link img{
    max-height: 40px !important;
    max-width: 140px !important;
    height: 40px !important;
  }
}
