
/* ── TOKENS ────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
:root{
  --ink:#1a1f1c; --ink2:#454b47; --ink3:#7a8077;
  --paper:#f8f5f0; --paper2:#f0ece5; --paper3:#e8e3da;
  --white:#fff; --border:#ddd8cf;
  --forest:#16241b; --forest2:#1e3227; --forest-light:#edf3ee;
  --gold:#b47836; --gold2:#d4a44c; --gold-light:#fdf3e3;
  --short:#4a2882; --short-bg:#ede6f9;
  --long:#0d3b6e;  --long-bg:#e3edf8;
  --hist:#0a4a3b;  --hist-bg:#e3f3ee;
  --viva:#7a2e05;  --viva-bg:#f9ece5;
  --ospe:#2e4a10;  --ospe-bg:#edf3e3;
  --nav-h:70px;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --max:1240px; --px:clamp(1.25rem,4vw,3rem);
}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button{font-family:var(--sans);cursor:pointer;border:none;background:none}

/* ── NAV ────────────────────────────────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:800;height:var(--nav-h);background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px);height:100%;display:flex;align-items:center;gap:1.5rem}
.nav-brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.nav-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--forest)}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.2}
.nav-name{font-family:var(--serif);font-size:.9375rem;font-weight:600;color:var(--forest)}
.nav-title{font-size:.625rem;font-weight:600;color:var(--ink3);letter-spacing:.05em}
.nav-links{display:flex;align-items:center;gap:.15rem;flex:1;justify-content:center}
.nav-links a{padding:.42rem .78rem;border-radius:6px;font-size:.8125rem;font-weight:500;color:var(--ink2);transition:all .15s}
.nav-links a:hover{color:var(--ink);background:var(--paper2)}
.nav-links a.active{color:var(--forest);font-weight:700;background:var(--forest-light)}
.nav-classroom{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .75rem;border-radius:6px;background:var(--forest-light);color:var(--forest);font-size:.8125rem;font-weight:700}
.nav-classroom-dot{width:6px;height:6px;border-radius:50%;background:var(--hist);animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.nav-book{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.125rem;border-radius:8px;background:var(--gold);color:#fff;font-size:.8125rem;font-weight:700;transition:background .15s;flex-shrink:0}
.nav-book:hover{background:#9a6628}
.nav-ham{display:none;font-size:1.375rem;color:var(--ink);padding:.25rem}

/* ── BUTTONS ────────────────────────────────────────────────────────────── */
.btn-forest{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:9px;background:var(--forest);color:#fff;font-size:.875rem;font-weight:700;transition:background .15s,transform .15s}
.btn-forest:hover{background:var(--forest2);transform:translateY(-1px)}
.btn-gold{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:9px;background:var(--gold);color:#fff;font-size:.875rem;font-weight:700;transition:background .15s}
.btn-gold:hover{background:#9a6628}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.72rem 1.375rem;border-radius:9px;border:1.5px solid var(--border);color:var(--ink2);font-size:.875rem;font-weight:600;transition:all .15s}
.btn-outline:hover{border-color:var(--ink2);color:var(--ink);background:var(--paper2)}

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero{padding-top:calc(var(--nav-h) + 4rem);padding-bottom:5rem;background:var(--paper);border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 70% at 85% 20%,rgba(180,120,54,.08) 0%,transparent 65%),radial-gradient(ellipse 40% 50% at 5% 85%,rgba(22,36,27,.04) 0%,transparent 60%);pointer-events:none}
.hero::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(28,28,26,.065) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.hero-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:grid;grid-template-columns:1fr 380px;gap:5rem;align-items:center;position:relative;z-index:2}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .9rem;border-radius:999px;border:1px solid rgba(22,36,27,.15);background:rgba(22,36,27,.06);font-size:.6875rem;font-weight:700;letter-spacing:.05em;color:var(--ink2);margin-bottom:1.75rem}
.hero-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--hist);animation:pulse 2s ease infinite}
.hero-name{font-family:var(--serif);font-size:clamp(2.5rem,4.5vw,4rem);font-weight:600;line-height:1.1;letter-spacing:-.025em;color:var(--forest);margin-bottom:.4rem}
.hero-specialty{font-family:var(--serif);font-size:clamp(1.125rem,2vw,1.5rem);font-weight:400;font-style:italic;color:var(--ink3);margin-bottom:2rem;line-height:1.4}
.hero-quals{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.75rem}
.hero-qual{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--ink2)}
.hero-qual::before{content:'';width:18px;height:1px;background:var(--gold);flex-shrink:0}
.hero-qual strong{color:var(--ink);font-weight:600}
.hero-stats{display:flex;gap:0;margin-bottom:2.25rem;background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.hs-item{flex:1;padding:1rem 1.125rem;border-right:1px solid var(--border)}
.hs-item:last-child{border-right:none}
.hs-val{font-family:var(--serif);font-size:1.375rem;font-weight:600;color:var(--forest);line-height:1;margin-bottom:.2rem}
.hs-lbl{font-size:.625rem;font-weight:600;color:var(--ink3);letter-spacing:.05em}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}

/* Portrait */
.hero-portrait{position:relative}
.hp-frame{border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--paper3);border:1px solid var(--border);box-shadow:0 16px 64px rgba(22,36,27,.15),0 2px 8px rgba(22,36,27,.08);position:relative}
.hp-frame img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.hp-frame::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(22,36,27,.55) 0%,transparent 45%);pointer-events:none}
.hp-badge{position:absolute;bottom:1.125rem;left:1.125rem;right:1.125rem;z-index:2;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);border-radius:11px;padding:.75rem;display:flex;align-items:center;gap:.625rem;box-shadow:0 4px 20px rgba(22,36,27,.12)}
.hp-badge-icon{width:34px;height:34px;border-radius:8px;background:var(--forest-light);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.hp-badge-lbl{font-size:.5625rem;color:var(--ink3);font-weight:600;letter-spacing:.04em}
.hp-badge-val{font-size:.8125rem;color:var(--ink);font-weight:700;line-height:1.3}
.hp-tag{position:absolute;top:1.125rem;right:1.125rem;z-index:2;background:var(--forest);color:#fff;border-radius:7px;padding:.35rem .7rem;font-size:.625rem;font-weight:700;letter-spacing:.04em}
.hp-verified{position:absolute;top:1.125rem;left:1.125rem;z-index:2;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-radius:7px;padding:.3rem .6rem;font-size:.6rem;font-weight:700;color:var(--hist);display:flex;align-items:center;gap:.3rem;letter-spacing:.04em}
.hp-vdot{width:5px;height:5px;border-radius:50%;background:var(--hist)}

/* ── CREDENTIALS STRIP ──────────────────────────────────────────────────── */
.cred-strip{background:var(--forest);padding:1.25rem 0}
.cred-strip-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:flex;gap:0;align-items:stretch}
.cred-item{flex:1;display:flex;align-items:center;gap:.625rem;padding:.5rem 1.25rem;border-right:1px solid rgba(255,255,255,.1)}
.cred-item:first-child{padding-left:0}
.cred-item:last-child{border-right:none}
.cred-icon{font-size:1.25rem;flex-shrink:0;opacity:.8}
.cred-text{display:flex;flex-direction:column;gap:.1rem}
.cred-main{font-size:.8125rem;font-weight:700;color:#fff;line-height:1.2}
.cred-sub{font-size:.625rem;color:rgba(255,255,255,.45);font-weight:500;letter-spacing:.04em}

/* ── CHAMBERS ────────────────────────────────────────────────────────────── */
.section{padding:5rem 0}
.section-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px)}
.section-label{font-size:.6875rem;font-weight:700;letter-spacing:.1em;color:var(--ink3);margin-bottom:1rem}
.section-title{font-family:var(--serif);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600;color:var(--ink);letter-spacing:-.015em;line-height:1.2;margin-bottom:.5rem}
.section-title em{font-style:italic;font-weight:500;color:var(--ink3)}
.section-desc{font-size:.9375rem;color:var(--ink2);line-height:1.65;max-width:60ch;margin-bottom:2.5rem}

.chambers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.chamber-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.75rem;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}
.chamber-card:hover{box-shadow:0 8px 40px rgba(22,36,27,.09);transform:translateY(-2px)}
.chamber-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--forest)}
.chamber-status{display:inline-flex;align-items:center;gap:.35rem;font-size:.625rem;font-weight:700;letter-spacing:.05em;padding:.28rem .65rem;border-radius:999px;margin-bottom:1.25rem;align-self:flex-start}
.status-open{background:#dcf5e4;color:#166534}
.status-closed{background:var(--paper2);color:var(--ink3)}
.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.status-open .status-dot{animation:pulse 2s ease infinite}
.chamber-icon{font-size:1.75rem;margin-bottom:1rem}
.chamber-name{font-family:var(--serif);font-size:1.125rem;font-weight:600;color:var(--ink);margin-bottom:.35rem;line-height:1.3}
.chamber-loc{font-size:.8125rem;color:var(--ink2);margin-bottom:1rem;line-height:1.5}
.chamber-schedule{background:var(--paper);border-radius:9px;padding:.875rem 1rem;margin-bottom:1rem}
.cs-row{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;padding:.2rem 0}
.cs-label{color:var(--ink3);font-weight:500}
.cs-value{color:var(--ink);font-weight:600}
.chamber-fee{font-size:.8125rem;color:var(--ink2);margin-bottom:1.25rem;line-height:1.6}
.chamber-fee strong{color:var(--ink);font-weight:700}
.chamber-actions{display:flex;gap:.625rem;margin-top:auto}
.btn-chamber-book{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1rem;border-radius:8px;background:var(--forest);color:#fff;font-size:.8rem;font-weight:700;transition:background .15s}
.btn-chamber-book:hover{background:var(--forest2)}
.btn-chamber-call{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.6rem .875rem;border-radius:8px;border:1.5px solid var(--border);color:var(--ink2);font-size:.8rem;font-weight:600;transition:all .15s}
.btn-chamber-call:hover{border-color:var(--ink2);color:var(--ink)}

/* ── BOOK APPOINTMENT ───────────────────────────────────────────────────── */
.book-section{background:var(--paper2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.book-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:start}
.book-aside{position:sticky;top:calc(var(--nav-h) + 2rem)}
.book-aside-title{font-family:var(--serif);font-size:1.75rem;font-weight:600;color:var(--ink);letter-spacing:-.015em;margin-bottom:.75rem;line-height:1.25}
.book-aside-desc{font-size:.9375rem;color:var(--ink2);line-height:1.7;margin-bottom:1.75rem}
.book-aside-info{display:flex;flex-direction:column;gap:.875rem}
.bai-item{display:flex;align-items:flex-start;gap:.75rem}
.bai-icon{width:36px;height:36px;border-radius:8px;background:var(--forest-light);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;margin-top:.1rem}
.bai-text-lbl{font-size:.6875rem;font-weight:700;color:var(--ink3);letter-spacing:.05em;margin-bottom:.15rem}
.bai-text-val{font-size:.875rem;color:var(--ink);font-weight:600;line-height:1.4}

.booking-form{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:2rem}
.bf-title{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin-bottom:1.5rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.form-group label{font-size:.6875rem;font-weight:700;color:var(--ink2);letter-spacing:.05em}
.form-group input,.form-group select,.form-group textarea{padding:.65rem .9rem;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;font-family:var(--sans);color:var(--ink);background:var(--paper);transition:border-color .15s;outline:none}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--forest)}
.form-group textarea{resize:vertical;min-height:90px;line-height:1.5}
.form-group select{appearance:none;cursor:pointer}
.form-radio-group{display:flex;gap:.75rem;flex-wrap:wrap}
.frd-label{display:flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--ink2);cursor:pointer;padding:.45rem .875rem;border:1.5px solid var(--border);border-radius:8px;transition:all .15s;font-weight:500}
.frd-label:has(input:checked){border-color:var(--forest);background:var(--forest-light);color:var(--forest);font-weight:600}
.frd-label input{display:none}
.form-divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}
.form-note{font-size:.75rem;color:var(--ink3);line-height:1.5;margin-bottom:1.25rem}
.btn-submit{width:100%;padding:.875rem;border-radius:10px;background:var(--forest);color:#fff;font-size:.9375rem;font-weight:700;font-family:var(--sans);cursor:pointer;transition:background .15s,transform .15s;border:none;display:flex;align-items:center;justify-content:center;gap:.5rem}
.btn-submit:hover{background:var(--forest2);transform:translateY(-1px)}

.booking-success{text-align:center;padding:3rem 1.5rem}
.bs-check{width:60px;height:60px;border-radius:50%;background:var(--forest-light);border:2px solid var(--forest);display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin:0 auto 1.25rem}
.bs-title{font-family:var(--serif);font-size:1.375rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}
.bs-serial{display:inline-block;background:var(--forest);color:#fff;border-radius:8px;padding:.5rem 1.25rem;font-size:1.0625rem;font-weight:700;font-family:var(--serif);margin:.75rem 0}
.bs-note{font-size:.875rem;color:var(--ink2);line-height:1.6;max-width:35ch;margin:0 auto}

/* ── VIRTUAL CLASSROOM TAB ──────────────────────────────────────────────── */
.classroom-section{background:var(--forest);padding:5rem 0}
.classroom-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px)}
.classroom-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:.75rem}
.classroom-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .8rem;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7);font-size:.6875rem;font-weight:700;letter-spacing:.06em;margin-bottom:1rem}
.classroom-title{font-family:var(--serif);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600;color:#fff;letter-spacing:-.015em;line-height:1.2}
.classroom-title em{font-style:italic;font-weight:400;color:rgba(255,255,255,.5)}
.classroom-desc{font-size:.9375rem;color:rgba(255,255,255,.55);line-height:1.65;max-width:60ch;margin-bottom:1.75rem}
.classroom-link{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:600;color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:.15rem;flex-shrink:0;transition:color .15s}
.classroom-link:hover{color:rgba(255,255,255,.85)}

.cls-filter{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:2rem}
.cls-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .875rem;border-radius:999px;font-size:.775rem;font-weight:600;border:1.5px solid rgba(255,255,255,.15);color:rgba(255,255,255,.55);background:none;cursor:pointer;transition:all .15s}
.cls-btn:hover{border-color:rgba(255,255,255,.35);color:rgba(255,255,255,.85)}
.cls-btn.active{border-color:transparent;color:#fff}
.cls-btn[data-cat="all"].active{background:rgba(255,255,255,.15)}
.cls-btn[data-cat="short"].active{background:var(--short)}
.cls-btn[data-cat="long"].active{background:var(--long)}
.cls-btn[data-cat="hist"].active{background:var(--hist)}
.cls-btn[data-cat="viva"].active{background:var(--viva)}
.cls-btn[data-cat="ospe"].active{background:var(--ospe)}
.cls-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.cls-count{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:.55rem;background:rgba(255,255,255,.15)}

/* Featured case inside classroom */
.cls-featured{border-radius:16px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:42% 1fr;margin-bottom:1.25rem;transition:border-color .2s}
.cls-featured:hover{border-color:rgba(255,255,255,.2)}
.clf-img{position:relative;overflow:hidden;min-height:360px;display:flex;align-items:center;justify-content:center}
.clf-ph{width:100%;height:100%;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}
.clf-label{position:absolute;top:1rem;left:1rem;background:var(--gold);color:#fff;font-size:.625rem;font-weight:700;letter-spacing:.05em;padding:.3rem .65rem;border-radius:5px}
.clf-body{padding:2rem 1.75rem;display:flex;flex-direction:column}
.cat-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .7rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.04em;margin-bottom:.875rem;align-self:flex-start}
.p-long{background:rgba(13,59,110,.4);color:#93b8e8}
.clf-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:rgba(255,255,255,.4);margin-bottom:.75rem}
.clf-title{font-family:var(--serif);font-size:1.375rem;font-weight:600;color:#fff;line-height:1.3;margin-bottom:.875rem;letter-spacing:-.01em}
.clf-excerpt{font-size:.875rem;line-height:1.7;color:rgba(255,255,255,.55);margin-bottom:1.25rem;flex:1}
.clf-keys{background:rgba(255,255,255,.06);border-radius:9px;padding:.875rem 1rem;margin-bottom:1.25rem;border:1px solid rgba(255,255,255,.08)}
.clf-keys-lbl{font-size:.5625rem;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.3);margin-bottom:.5rem;text-transform:uppercase}
.clf-key{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;color:rgba(255,255,255,.55);line-height:1.45;padding:.2rem 0}
.clf-key::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gold);flex-shrink:0;margin-top:.45rem}
.clf-actions{display:flex;gap:.625rem}
.btn-cls-primary{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:.8125rem;font-weight:600;border:1px solid rgba(255,255,255,.15);transition:background .15s}
.btn-cls-primary:hover{background:rgba(255,255,255,.2)}
.btn-cls-outline{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem .875rem;border-radius:8px;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);font-size:.8125rem;font-weight:600;transition:all .15s}
.btn-cls-outline:hover{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.8)}

/* Case grid in classroom */
.cls-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.cls-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:13px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,background .2s;cursor:pointer}
.cls-card:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08)}
.cls-card-img{height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;position:relative}
.cls-card-icon{font-size:2.25rem;opacity:.3}
.cls-card-sys{font-size:.55rem;letter-spacing:.1em;font-weight:700;color:rgba(255,255,255,.25)}
.cls-card-badge{position:absolute;top:.75rem;left:.75rem;padding:.2rem .55rem;border-radius:4px;font-size:.575rem;font-weight:700;letter-spacing:.04em;color:#fff;backdrop-filter:blur(4px)}
.bg-short{background:rgba(74,40,130,.75)} .bg-long{background:rgba(13,59,110,.75)}
.bg-hist{background:rgba(10,74,59,.75)}   .bg-viva{background:rgba(122,46,5,.75)}
.bg-ospe{background:rgba(46,74,16,.75)}
.ph-short{background:linear-gradient(135deg,#2d1660,#4a2882)} .ph-long{background:linear-gradient(135deg,#09254a,#0d3b6e)}
.ph-hist{background:linear-gradient(135deg,#062e22,#0a4a3b)}  .ph-viva{background:linear-gradient(135deg,#4a1c03,#7a2e05)}
.ph-ospe{background:linear-gradient(135deg,#1c3008,#2e4a10)}
.cls-card-body{padding:1rem;flex:1;display:flex;flex-direction:column}
.cls-card-meta{display:flex;gap:.4rem;font-size:.6875rem;color:rgba(255,255,255,.35);margin-bottom:.4rem}
.cls-card-title{font-family:var(--serif);font-size:.9375rem;font-weight:600;color:#fff;line-height:1.35;margin-bottom:.4rem;flex:1;letter-spacing:-.01em}
.cls-card-excerpt{font-size:.7375rem;line-height:1.55;color:rgba(255,255,255,.4);margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cls-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.625rem;border-top:1px solid rgba(255,255,255,.07)}
.cls-tags{display:flex;gap:.3rem;flex-wrap:wrap}
.cls-tag{font-size:.55rem;font-weight:700;letter-spacing:.03em;padding:.18rem .5rem;border-radius:4px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.4)}
.cls-read{font-size:.7rem;font-weight:700;color:rgba(255,255,255,.4);transition:color .15s}
.cls-read:hover{color:#fff}

/* ── ABOUT ───────────────────────────────────────────────────────────────── */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;align-items:start}
.about-timeline{display:flex;flex-direction:column;gap:1.5rem}
.at-item{display:grid;grid-template-columns:80px 1fr;gap:1rem;align-items:start}
.at-year{font-family:var(--serif);font-size:1rem;font-weight:500;color:var(--gold);padding-top:.1rem;line-height:1}
.at-content{}
.at-role{font-size:.9375rem;font-weight:700;color:var(--ink);margin-bottom:.2rem;line-height:1.3}
.at-org{font-size:.8125rem;color:var(--ink2);margin-bottom:.25rem}
.at-desc{font-size:.8rem;color:var(--ink3);line-height:1.5}
.at-sep{height:1px;background:var(--border);margin:.25rem 0 .25rem 96px}
.about-right{}
.about-quote{border-left:3px solid var(--gold);padding:1.125rem 1.25rem;margin-bottom:1.75rem;background:var(--white);border-radius:0 12px 12px 0;box-shadow:0 2px 12px rgba(22,36,27,.05)}
.aq-text{font-family:var(--serif);font-size:1.0625rem;font-style:italic;line-height:1.65;color:var(--ink);margin-bottom:.625rem}
.aq-author{font-size:.75rem;font-weight:700;color:var(--gold)}
.about-expertise{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.ae-item{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;align-items:center;gap:.625rem;transition:box-shadow .2s}
.ae-item:hover{box-shadow:0 4px 16px rgba(22,36,27,.07)}
.ae-icon{width:32px;height:32px;border-radius:7px;background:var(--forest-light);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}
.ae-name{font-size:.8125rem;font-weight:600;color:var(--ink);line-height:1.3}

/* ── CONTACT ─────────────────────────────────────────────────────────────── */
.contact-section{background:var(--paper2);border-top:1px solid var(--border)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.contact-card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.5rem;display:flex;flex-direction:column;gap:.875rem}
.cc2-icon{font-size:1.5rem}
.cc2-label{font-size:.6875rem;font-weight:700;color:var(--ink3);letter-spacing:.06em}
.cc2-value{font-size:.9375rem;font-weight:600;color:var(--ink);line-height:1.4}
.cc2-desc{font-size:.8125rem;color:var(--ink2);line-height:1.55;margin-top:-.25rem}
.cc2-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:8px;border:1.5px solid var(--border);color:var(--ink2);font-size:.8rem;font-weight:600;margin-top:auto;transition:all .15s;align-self:flex-start}
.cc2-link:hover{border-color:var(--forest);color:var(--forest)}

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.footer{background:#0d1910;padding:3rem 0 1.75rem}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:1.5rem}
.f-brand-name{font-family:var(--serif);font-size:1rem;font-weight:600;color:#fff;margin-bottom:.4rem}
.f-brand-desc{font-size:.8rem;color:rgba(255,255,255,.3);line-height:1.65}
.f-col h4{font-size:.55rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.22);margin-bottom:.75rem}
.f-col a{display:block;font-size:.8rem;color:rgba(255,255,255,.4);padding:.18rem 0;transition:color .15s}
.f-col a:hover{color:rgba(255,255,255,.8)}
.footer-bottom{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:flex;align-items:center;justify-content:space-between}
.fb-copy{font-size:.75rem;color:rgba(255,255,255,.2)}
.fb-badge{font-size:.625rem;font-weight:600;color:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.07);border-radius:5px;padding:.25rem .6rem}

/* ── MOBILE NAV ──────────────────────────────────────────────────────────── */
.mob-nav{position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;z-index:799;background:var(--white);padding:1.5rem var(--px);display:none;flex-direction:column;gap:.25rem;overflow-y:auto}
.mob-nav.open{display:flex}
.mob-nav a{display:block;padding:.75rem 1rem;border-radius:10px;font-size:.9375rem;font-weight:500;color:var(--ink);transition:background .15s}
.mob-nav a:hover{background:var(--paper2)}

/* ── UTILS ───────────────────────────────────────────────────────────────── */
.case-card[data-hidden=true],.cls-card[data-hidden=true]{display:none}
.ms{opacity:.3}
.text-center{text-align:center}
.section-bg-alt{background:var(--white)}

@media(max-width:1024px){
  .nav-links{display:none}.nav-ham{display:block}
  .hero-inner{grid-template-columns:1fr}.hp-frame{max-width:360px;margin:0 auto}
  .hero-portrait{order:-1}
  .chambers-grid{grid-template-columns:repeat(2,1fr)}
  .book-grid{grid-template-columns:1fr}
  .book-aside{position:static}
  .cls-featured{grid-template-columns:1fr}
  .cls-grid{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem}
}
@media(max-width:768px){
  .section{padding:3.5rem 0}
  .cred-strip-inner{flex-wrap:wrap}
  .cred-item{min-width:50%;border-right:none;border-bottom:1px solid rgba(255,255,255,.1)}
  .chambers-grid,.cls-grid,.contact-grid{grid-template-columns:1fr}
  .form-row,.form-row-3{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr;gap:1.5rem}
  .footer-bottom{flex-direction:column;gap:.75rem;text-align:center}
  .hero-stats{flex-wrap:wrap}
  .hs-item{min-width:50%}
  .about-expertise{grid-template-columns:1fr}
}

/* ── NAV ACTIVE ─────────────────────────────────────────────────────────── */
.nav-links a.nav-active{color:var(--forest);font-weight:700;background:var(--forest-light)}
.nav-links a.nav-classroom-link{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .78rem;border-radius:6px;background:var(--forest-light);color:var(--forest);font-size:.8125rem;font-weight:700}
.nav-classroom-dot{width:6px;height:6px;border-radius:50%;background:var(--hist);animation:pulse 2s ease infinite}

/* ── PAGE LAYOUT ─────────────────────────────────────────────────────────── */
.page-wrap{padding-top:var(--nav-h);min-height:100vh}
.page-hero{background:var(--forest);padding:4rem 0 3rem;border-bottom:1px solid rgba(255,255,255,.08)}
.page-hero-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px)}
.page-hero-eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.4);margin-bottom:.875rem}
.page-hero-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:600;color:#fff;letter-spacing:-.02em;line-height:1.15;margin-bottom:.5rem}
.page-hero-title em{font-style:italic;font-weight:400;color:rgba(255,255,255,.5)}
.page-hero-desc{font-size:.9375rem;color:rgba(255,255,255,.5);max-width:60ch;line-height:1.65}

/* ── CASE STUDIES ────────────────────────────────────────────────────────── */
.cases-section{background:var(--paper);padding:0 0 5rem}
.cases-filter-wrap{background:var(--paper2);border-bottom:1px solid var(--border);position:sticky;top:var(--nav-h);z-index:100}
.cases-filter{max-width:var(--max);margin:0 auto;padding:.875rem var(--px);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.cf-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1.5px solid var(--border);color:var(--ink2);background:var(--white);cursor:pointer;transition:all .15s}
.cf-btn:hover{border-color:var(--ink2);color:var(--ink)}
.cf-btn.active{border-color:transparent;color:#fff}
.cf-btn[data-cat=all].active{background:var(--ink)}
.cf-btn[data-cat=cardiology].active{background:#0d3b6e}
.cf-btn[data-cat=respiratory].active{background:#0a3d4a}
.cf-btn[data-cat=neurology].active{background:#4a2882}
.cf-btn[data-cat=nephrology].active{background:#1a5e3a}
.cf-btn[data-cat=rheumatology].active{background:#6b1a3a}
.cf-btn[data-cat=tropical].active{background:#3a4a10}
.cf-btn[data-cat=endocrine].active{background:#7a4a10}
.cf-btn[data-cat=gi].active{background:#2e1a6e}
.cf-count{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:.55rem;background:rgba(0,0,0,.1)}
.cf-btn.active .cf-count{background:rgba(255,255,255,.25)}
.cases-inner{max-width:var(--max);margin:0 auto;padding:3rem var(--px) 0}

/* Featured case blog card */
.blog-featured{display:grid;grid-template-columns:48% 1fr;border-radius:16px;overflow:hidden;background:var(--white);border:1px solid var(--border);box-shadow:0 4px 32px rgba(22,36,27,.06);margin-bottom:2rem;transition:box-shadow .2s}
.blog-featured:hover{box-shadow:0 8px 48px rgba(22,36,27,.1)}
.bf-img{position:relative;overflow:hidden;min-height:380px;background:var(--paper3)}
.bf-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.blog-featured:hover .bf-img img{transform:scale(1.02)}
.bf-img-ph{width:100%;height:100%;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}
.bf-tag{position:absolute;top:1.125rem;left:1.125rem;background:var(--gold);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.06em;padding:.3rem .65rem;border-radius:5px}
.bf-body{padding:2.25rem 2rem;display:flex;flex-direction:column}
.blog-cat{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.04em;margin-bottom:.875rem;align-self:flex-start}
.blog-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--ink3);margin-bottom:.625rem}
.ms{opacity:.3}
.blog-level{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.05em;padding:.15rem .55rem;border-radius:4px;background:var(--forest-light);color:var(--forest)}
.bf-title{font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1.3;color:var(--ink);margin-bottom:.875rem;letter-spacing:-.01em}
.bf-excerpt{font-size:.9rem;line-height:1.7;color:var(--ink2);margin-bottom:1.375rem;flex:1}
.bf-keys{background:var(--paper);border-radius:10px;padding:.875rem 1rem;margin-bottom:1.375rem;border:1px solid var(--border)}
.bf-keys-lbl{font-size:.5625rem;font-weight:700;letter-spacing:.08em;color:var(--ink3);text-transform:uppercase;margin-bottom:.45rem}
.bf-key{display:flex;align-items:flex-start;gap:.45rem;font-size:.8125rem;color:var(--ink2);line-height:1.45;padding:.18rem 0}
.bf-key::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gold);flex-shrink:0;margin-top:.45rem}
.bf-actions{display:flex;gap:.625rem}
.btn-read{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border-radius:8px;background:var(--forest);color:#fff;font-size:.8125rem;font-weight:700;transition:background .15s}
.btn-read:hover{background:var(--forest2)}
.btn-save{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .875rem;border-radius:8px;border:1.5px solid var(--border);color:var(--ink2);font-size:.8125rem;font-weight:600;transition:all .15s}
.btn-save:hover{border-color:var(--ink2);color:var(--ink)}

/* Blog grid */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.blog-card{background:var(--white);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.blog-card:hover{box-shadow:0 8px 32px rgba(22,36,27,.09);transform:translateY(-2px)}
.bc-img{height:180px;overflow:hidden;position:relative;background:var(--paper3)}
.bc-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.blog-card:hover .bc-img img{transform:scale(1.05)}
.bc-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem}
.bc-ph-icon{font-size:2.5rem;opacity:.3}
.bc-ph-sys{font-size:.55rem;letter-spacing:.1em;font-weight:700;opacity:.4}
.bc-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.3) 0%,transparent 55%)}
.bc-cat{position:absolute;top:.75rem;left:.75rem;padding:.22rem .6rem;border-radius:5px;font-size:.6rem;font-weight:700;letter-spacing:.04em;color:#fff;backdrop-filter:blur(4px)}
.bc-body{padding:1.125rem;flex:1;display:flex;flex-direction:column}
.bc-meta{display:flex;align-items:center;gap:.4rem;font-size:.6875rem;color:var(--ink3);margin-bottom:.5rem}
.bc-title{font-family:var(--serif);font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--ink);margin-bottom:.45rem;flex:1;letter-spacing:-.01em}
.bc-excerpt{font-size:.8rem;line-height:1.6;color:var(--ink2);margin-bottom:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--paper2)}
.bc-tags{display:flex;gap:.3rem;flex-wrap:wrap}
.bc-tag{font-size:.6rem;font-weight:600;padding:.18rem .5rem;border-radius:4px;background:var(--paper2);color:var(--ink3)}
.bc-link{font-size:.75rem;font-weight:700;color:var(--ink2);transition:color .15s;flex-shrink:0}
.bc-link:hover{color:var(--forest)}

/* Case category colour palette for blog */
.cat-cardiology{background:#dbeafe;color:#0d3b6e}
.cat-respiratory{background:#d1fae5;color:#0a3d4a}
.cat-neurology{background:#ede6f9;color:#4a2882}
.cat-nephrology{background:#dcfce7;color:#1a5e3a}
.cat-rheumatology{background:#fce7f3;color:#6b1a3a}
.cat-tropical{background:#edf3e3;color:#3a4a10}
.cat-endocrine{background:#fef3c7;color:#7a4a10}
.cat-gi{background:#e0e7ff;color:#2e1a6e}

.bg-cat-cardiology{background:rgba(13,59,110,.78)}
.bg-cat-respiratory{background:rgba(10,61,74,.78)}
.bg-cat-neurology{background:rgba(74,40,130,.78)}
.bg-cat-nephrology{background:rgba(26,94,58,.78)}
.bg-cat-rheumatology{background:rgba(107,26,58,.78)}
.bg-cat-tropical{background:rgba(58,74,16,.78)}
.bg-cat-endocrine{background:rgba(122,74,16,.78)}
.bg-cat-gi{background:rgba(46,26,110,.78)}

.ph-cat-cardiology{background:linear-gradient(135deg,#09254a,#0d3b6e)}
.ph-cat-respiratory{background:linear-gradient(135deg,#052e3a,#0a3d4a)}
.ph-cat-neurology{background:linear-gradient(135deg,#2d1660,#4a2882)}
.ph-cat-nephrology{background:linear-gradient(135deg,#0d3a20,#1a5e3a)}
.ph-cat-rheumatology{background:linear-gradient(135deg,#3d0a20,#6b1a3a)}
.ph-cat-tropical{background:linear-gradient(135deg,#1c3008,#3a4a10)}
.ph-cat-endocrine{background:linear-gradient(135deg,#3d2008,#7a4a10)}
.ph-cat-gi{background:linear-gradient(135deg,#150a40,#2e1a6e)}

/* Load more */
.load-more-wrap{text-align:center;margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--border)}
.btn-load{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;border-radius:8px;border:1.5px solid var(--border);color:var(--ink2);font-size:.875rem;font-weight:600;background:var(--white);cursor:pointer;transition:all .15s}
.btn-load:hover{border-color:var(--ink2);color:var(--ink)}

/* ── RESOURCES ────────────────────────────────────────────────────────────── */
.resources-section{background:var(--paper);padding:0 0 5rem}
.resources-inner{max-width:var(--max);margin:0 auto;padding:3rem var(--px) 0}
.resources-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.125rem}
.res-card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.5rem;display:flex;gap:1.125rem;align-items:flex-start;transition:box-shadow .2s,transform .2s;cursor:pointer}
.res-card:hover{box-shadow:0 8px 32px rgba(22,36,27,.08);transform:translateY(-1px)}
.res-icon-wrap{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;background:var(--paper2)}
.res-content{flex:1;min-width:0}
.res-cat{font-size:.6rem;font-weight:700;letter-spacing:.06em;color:var(--ink3);margin-bottom:.3rem}
.res-title{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--ink);line-height:1.4;margin-bottom:.45rem;letter-spacing:-.01em}
.res-desc{font-size:.8rem;line-height:1.6;color:var(--ink2);margin-bottom:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.res-footer{display:flex;align-items:center;justify-content:space-between}
.res-meta{display:flex;align-items:center;gap:.625rem}
.res-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.6rem;font-weight:700;letter-spacing:.04em;padding:.2rem .55rem;border-radius:4px;background:var(--forest-light);color:var(--forest)}
.res-size{font-size:.6875rem;color:var(--ink3);font-weight:500}
.res-dl-count{font-size:.6875rem;color:var(--ink3)}
.btn-download{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .875rem;border-radius:7px;background:var(--forest);color:#fff;font-size:.75rem;font-weight:700;transition:background .15s;flex-shrink:0}
.btn-download:hover{background:var(--forest2)}

/* ── CASE DETAIL PAGE ──────────────────────────────────────────────────────── */
.case-detail-wrap{max-width:var(--max);margin:0 auto;padding:3rem var(--px) 5rem;display:grid;grid-template-columns:1fr 280px;gap:3rem;align-items:start}
.case-detail-main{}
.case-detail-header{margin-bottom:2rem}
.case-detail-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:600;color:var(--ink3);margin-bottom:1.25rem;transition:color .15s}
.case-detail-back:hover{color:var(--forest)}
.case-detail-title{font-family:var(--serif);font-size:clamp(1.625rem,3vw,2.25rem);font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.015em;margin-bottom:1rem}
.case-detail-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.875rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:2rem}
.case-detail-body{font-size:.9375rem;line-height:1.8;color:var(--ink2)}
.case-detail-body h3{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin:2rem 0 .75rem}
.case-detail-body p{margin-bottom:1rem}
.case-detail-body strong{color:var(--ink);font-weight:700}
.case-detail-sidebar{position:sticky;top:calc(var(--nav-h)+2rem)}
.cds-box{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin-bottom:1rem}
.cds-box-title{font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--ink3);margin-bottom:.875rem}
.cds-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.cds-tag{font-size:.6875rem;font-weight:600;padding:.25rem .65rem;border-radius:6px;background:var(--paper);color:var(--ink2);border:1px solid var(--border)}

/* ── EDITOR MODE ─────────────────────────────────────────────────────────── */
body.is-editor{overflow:hidden}
body.is-editor .page-wrap{display:none}
body.is-editor footer{display:none}

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.site-footer{background:#0d1910;padding:3rem 0 1.75rem}
.sf-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:1.5rem}
.f-brand-name{font-family:var(--serif);font-size:1rem;font-weight:600;color:#fff;margin-bottom:.4rem}
.f-brand-desc{font-size:.8rem;color:rgba(255,255,255,.3);line-height:1.65}
.f-col h4{font-size:.55rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.22);margin-bottom:.75rem}
.f-col a{display:block;font-size:.8rem;color:rgba(255,255,255,.4);padding:.18rem 0;transition:color .15s;text-decoration:none}
.f-col a:hover{color:rgba(255,255,255,.8)}
.sf-bottom{max-width:var(--max);margin:0 auto;padding:0 var(--px);display:flex;align-items:center;justify-content:space-between}
.fb-copy{font-size:.75rem;color:rgba(255,255,255,.2)}
.fb-badge{font-size:.625rem;font-weight:600;color:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.07);border-radius:5px;padding:.25rem .6rem}
@media(max-width:768px){.sf-inner{grid-template-columns:1fr;gap:1.5rem}.sf-bottom{flex-direction:column;gap:.75rem;text-align:center}}

/* ── BLOK HEADING STYLES ─────────────────────────────────────────────────── */
.blk-eyebrow{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.1em;color:var(--ink3);margin-bottom:.625rem;text-transform:uppercase}
.blk-title{font-family:var(--serif);color:var(--ink);line-height:1.2;letter-spacing:-.02em}
.block-heading h1.blk-title{font-size:clamp(2rem,4vw,3rem);margin-bottom:.5rem}
.block-heading h2.blk-title{font-size:clamp(1.625rem,3vw,2.25rem);margin-bottom:.5rem}
.block-heading h3.blk-title{font-size:1.5rem;margin-bottom:.375rem}
.block-heading h4.blk-title,.block-heading h5.blk-title,.block-heading h6.blk-title{font-size:1.125rem;margin-bottom:.3rem}
.block-paragraph p{font-size:.9375rem;line-height:1.8;color:var(--ink2)}
.block-paragraph.para-lead p{font-size:1.125rem;line-height:1.7;color:var(--ink)}
.block-paragraph.para-small p{font-size:.8125rem;line-height:1.7;color:var(--ink3)}
.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}


/* ── VIRTUAL CLASSROOM ───────────────────────────────────────
   Append these rules to assets/css/site.css
   ─────────────────────────────────────────────────────────── */

/* Hero */
.classroom-hero {
  background: var(--forest);
  color: #fff;
  padding: 4rem 0 3rem;
  text-align: center;
}
.classroom-hero .section-label {
  display: inline-block;
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .75rem;
}
.classroom-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 3.25rem);
  margin: 0 0 .75rem;
}
.classroom-sub {
  opacity: .8;
  font-size: 1.05rem;
  max-width: 540px;
  margin: 0 auto;
}

/* Block content area */
.classroom-content {
  background: var(--paper);
}
.container--narrow {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

/* Empty state */
.empty-state {
  text-align: center;
  padding: 4rem 1rem;
  color: #888;
}
.empty-state__icon {
  font-size: 3rem;
  margin-bottom: 1rem;
}
.empty-state h3 {
  font-size: 1.25rem;
  margin-bottom: .5rem;
  color: #555;
}

/* Case grid on classroom page */
.classroom-cases {
  background: #fff;
}
.classroom-cases .section-heading {
  font-family: 'Playfair Display', serif;
  font-size: 1.75rem;
  color: var(--forest);
  margin-bottom: 1.75rem;
  border-left: 4px solid var(--gold);
  padding-left: .85rem;
}
.case-card--sm {
  padding: 1.25rem 1.5rem;
  border-radius: 8px;
  border: 1px solid #e5e0d8;
  background: var(--paper);
  display: flex;
  flex-direction: column;
  gap: .45rem;
  transition: box-shadow .2s;
}
.case-card--sm:hover {
  box-shadow: 0 4px 18px rgba(22,36,27,.08);
}
.case-card__cat {
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--gold);
  font-weight: 600;
}
.case-card__title {
  font-family: 'Playfair Display', serif;
  font-size: 1.05rem;
  line-height: 1.35;
}
.case-card__title a {
  color: var(--forest);
  text-decoration: none;
}
.case-card__title a:hover { text-decoration: underline; }
.case-card__excerpt {
  font-size: .875rem;
  color: #666;
  flex: 1;
}
.case-card__link {
  font-size: .82rem;
  font-weight: 600;
  color: var(--gold);
  text-decoration: none;
  margin-top: .25rem;
}
.case-card__link:hover { text-decoration: underline; }

.section-pad         { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.section-pad--top-none { padding-top: 0; }
