/* ════════════════════════════════════════════════════════════════════
   KDCR k4 — "Bright Editorial Washington"
   Model: tibercreekgroup.com — white, calm, serif display + sans body
   ════════════════════════════════════════════════════════════════════ */
:root {
    --ink:        #16384e;   /* deep slate-navy (headings, footer) */
    --ink-soft:   #2c4d63;
    --body:       #3e5468;   /* body copy — darker than k2 per feedback */
    --quiet:      #6b8095;
    --sky:        #7fa3bc;   /* light Potomac blue */
    --pale:       #ecf2f6;   /* pale blue band */
    --pale-2:     #f5f8fa;
    --paper:      #ffffff;
    --hairline:   #d9e3ea;
    --accent:       #2e4e78; /* KDCR blue — override in Customizer → Colors */
    --accent-dark:  #274266; /* accent mixed 15% black (button hover) */
    --accent-light: #abb8c9; /* accent mixed 60% white */
    --photo-hover:  #2e4e78; /* team/principal photo hover gradient */
    --serif: "minion-pro", Georgia, serif;
    --sans: "Lato", "Helvetica Neue", Arial, sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--sans); color:var(--body); background:var(--paper); -webkit-font-smoothing:antialiased; font-size:17px; line-height:1.7; }
img { display:block; max-width:100%; }
a { color:inherit; }

h1,h2,h3,h4 { font-family:var(--serif); font-weight:400; color:var(--ink); }
.kicker { font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--accent); margin-bottom:1.1rem; }
.section-title { font-size:clamp(2.1rem,4vw,3.1rem); line-height:1.08; letter-spacing:-.01em; }
.wrap { max-width:1380px; margin:0 auto; padding:0 7vw; }
@media (min-width:1500px){ .wrap{ padding:0 60px; } }

/* ── Reveal on scroll ─────────────────────────────────────────────── */
.rv { opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
.rv.in { opacity:1; transform:none; }

/* ── Buttons ──────────────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; gap:.65rem; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; text-decoration:none; padding:1rem 2.1rem; transition:all .3s ease; }
.btn svg { width:15px; height:15px; transition:transform .3s ease; }
.btn:hover svg { transform:translateX(4px); }
.btn-ink { background:var(--ink); color:#fff; border:1px solid var(--ink); }
.btn-ink:hover { background:var(--ink-soft); border-color:var(--ink-soft); }
.btn-line { background:transparent; color:var(--ink); border:1px solid var(--hairline); }
.btn-line:hover { border-color:var(--ink); }
.textlink { display:inline-flex; align-items:center; gap:.5rem; font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); text-decoration:none; transition:color .25s; }
.textlink svg { width:14px; height:14px; transition:transform .3s; }
.textlink:hover { color:var(--accent); }
.textlink:hover svg { transform:translateX(4px); }

/* ── Nav ──────────────────────────────────────────────────────────── */
nav.site { position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-bottom:1px solid var(--hairline); }
nav.site .bar { display:flex; align-items:center; justify-content:space-between; padding:1.05rem 3.2vw; max-width:1560px; margin:0 auto; }
nav.site .logo img { height:46px; width:auto; }
nav.site .links { display:flex; align-items:center; gap:2.1rem; }
nav.site .links a { font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; color:var(--quiet); font-weight:400; transition:color .25s; white-space:nowrap; }
nav.site .links a:hover { color:var(--ink); }
nav.site .links a.primary { color:var(--ink); font-weight:700; }
nav.site .links a.primary:hover { color:var(--accent); }
nav.site .links a.primary.active { color:var(--accent); }
nav.site .links a.portal { border:1px solid var(--ink); color:var(--ink); font-weight:700; padding:.55rem 1.1rem; }
nav.site .links a.portal:hover { background:var(--ink); color:#fff; }
nav.site .links .li-icon svg { width:17px; height:17px; display:block; fill:var(--quiet); transition:fill .25s; }
nav.site .links .li-icon:hover svg { fill:#0a66c2; }
.nav-drop { position:relative; display:flex; align-items:center; }
.nav-drop-toggle { display:inline-flex; align-items:center; gap:.3rem; background:none; border:0; cursor:pointer; padding:0; font-family:inherit; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); font-weight:700; transition:color .25s; white-space:nowrap; }
.nav-drop-toggle svg { width:12px; height:12px; transition:transform .25s; }
.nav-drop-toggle:hover, .nav-drop:hover .nav-drop-toggle, .nav-drop.is-open .nav-drop-toggle, .nav-drop-toggle.active { color:var(--accent); }
.nav-drop:hover .nav-drop-toggle svg, .nav-drop.is-open .nav-drop-toggle svg { transform:rotate(180deg); }
.nav-drop-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); background:#fff; border:1px solid var(--hairline); box-shadow:0 14px 34px rgba(22,56,78,.1); min-width:180px; padding:.5rem 0; opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s, transform .25s; }
.nav-drop::after { content:''; position:absolute; left:0; right:0; top:100%; height:14px; } /* hover bridge to the menu */
.nav-drop:hover .nav-drop-menu, .nav-drop.is-open .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
nav.site .links .nav-drop-menu a { display:block; padding:.6rem 1.3rem; color:var(--ink); font-weight:700; }
nav.site .links .nav-drop-menu a:hover, nav.site .links .nav-drop-menu a.active { color:var(--accent); background:var(--pale); }
.menu-toggle { display:none; background:none; border:0; cursor:pointer; padding:.4rem; }
.menu-toggle span { display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.3s; }
.mobile-menu { display:none; }

/* ── Hero ─────────────────────────────────────────────────────────── */
.hero { position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink); }
.hero-media { position:absolute; inset:0; }
.hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; transition:opacity 1.1s ease; transform-origin:center center; }
.hero-media img.active { opacity:1; animation:heroSlowZoom 30s ease-out forwards; }
@keyframes heroSlowZoom { from{transform:scale(1.0)} to{transform:scale(1.08)} }
.hero-copy { position:relative; z-index:2; max-width:46rem; padding:9rem 4vw 5.5rem 7vw; }
/* Soft localized scrim behind the copy — readability without a full image overlay */
.hero-copy::before { content:''; position:absolute; z-index:-1; left:-40%; right:-22%; top:-18%; bottom:-40%; pointer-events:none;
    background:radial-gradient(ellipse 75% 70% at 32% 68%, rgba(8,20,34,.64) 0%, rgba(8,20,34,.38) 46%, rgba(8,20,34,0) 74%); }
.hero-kicker { font-size:.74rem; font-weight:600; letter-spacing:.35em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:1.6rem;
    text-shadow:0 1px 14px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.55); }
.hero-copy h1 { font-size:clamp(2.8rem,5.4vw,5.2rem); line-height:.98; letter-spacing:-.01em; color:#fff; margin-bottom:1.6rem;
    text-shadow:0 2px 22px rgba(0,0,0,.55), 0 2px 5px rgba(0,0,0,.65); }
/* Cycling headline/support pairs — stacked in one grid cell so the hero
   keeps the height of its tallest slide and the CTA row never jumps */
.hero-slides { display:grid; }
.hero-slide { grid-area:1/1; opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .9s ease, visibility 0s linear .9s; }
.hero-slide.active { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .9s ease; }
@media (prefers-reduced-motion:reduce){ .hero-slide, .hero-slide.active { transition:none; } }
.hero-sub { font-size:1.08rem; line-height:1.7; max-width:32rem; color:rgba(255,255,255,.92); margin-bottom:2.4rem;
    text-shadow:0 1px 14px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.55); }
.hero-cta { display:flex; flex-wrap:wrap; gap:1rem; }
.btn-paper { background:#fff; color:var(--ink); border:1px solid #fff; }
.btn-paper:hover { background:var(--pale); border-color:var(--pale); }
.btn-ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.5); text-shadow:0 1px 8px rgba(0,0,0,.5); }
.btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.hero-scroll { position:absolute; right:2.2rem; bottom:2.2rem; z-index:2; display:flex; flex-direction:column; align-items:center; gap:.7rem; }
.hero-scroll span { font-size:.64rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.65);
    text-shadow:0 1px 8px rgba(0,0,0,.5); }
.hero-scroll i { width:1px; height:40px; background:linear-gradient(to bottom, rgba(255,255,255,.6), transparent); }
.hero-rule { position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--accent); z-index:2; }

/* ── Pillars strip (the four things, no "Why KDCR" phrase) ───────── */
.pillars { border-top:1px solid var(--hairline); background:var(--paper); }
.pillars .grid { display:grid; grid-template-columns:repeat(4,1fr); }
.pillar { padding:2.4rem 2rem 2.4rem 0; border-right:1px solid var(--hairline); margin-right:2rem; }
.pillar:last-child { border-right:0; margin-right:0; }
.pillar h3 { font-size:1.22rem; margin-bottom:.45rem; }
.pillar p { font-size:.92rem; line-height:1.6; color:var(--body); }

/* ── Principals ───────────────────────────────────────────────────── */
.principals { padding:7rem 0 6.5rem; }
.sec-head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3.2rem; flex-wrap:wrap; }
.sec-head .lede { max-width:34rem; font-size:1.04rem; }
/* Team rows: 5 in the first row, then rows of 4; short last row centers (client 2026-10-14) */
.team-rows { display:flex; flex-direction:column; gap:1.6rem; }
.team-rows .t-row { display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem 1.2rem; }
.team-rows--home .team-card { width:calc((100% - 5 * 1.2rem) / 6); }
.team-rows--home .team-card .nm { font-size:1.15rem; }
.team-rows--home .team-card .role { font-size:.62rem; }
/* /team/ keeps its former 6-across card size; rows just top out at 5 */
.team-rows--team { gap:2.2rem; }
.team-rows--team .t-row { gap:2.2rem 1.5rem; }
.team-rows--team .team-card { width:calc((100% - 5 * 1.5rem) / 6); }
.team-rows--team .team-card .nm { font-size:1rem; }
.team-rows--team .team-card .role { font-size:.6rem; }
/* Non-partner principals: same cards, a step smaller, centered under the partner grid */
.p-grid-sub { display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem 1.2rem; margin-top:2.4rem; }
.p-grid-sub .team-card { width:calc(0.9 * (100% - 5 * 1.2rem) / 6); }
.p-grid-sub .team-card .nm { font-size:1.2rem; }
.p-grid-sub .team-card .role { font-size:.62rem; margin-top:.3rem; }
.p-card { text-decoration:none; display:block; transition:transform .35s ease; }
.p-card .ph { position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--pale-2); border:1px solid var(--hairline); transition:background .35s ease, border-color .35s ease; }
.p-card .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:bottom center; transition:transform .45s ease; }
.p-card:hover { transform:translateY(-4px); }
.p-card:hover .ph { background:linear-gradient(to bottom, var(--photo-hover), #ffffff); border-color:transparent; }
.p-card:hover .ph img { transform:scale(1.03); }
.p-card .meta { padding-top:1rem; }
.p-card h3 { font-size:1.18rem; line-height:1.2; color:var(--ink); }
.p-card .role { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-top:.35rem; }
.p-more { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; border-top:1px solid var(--hairline); margin-top:3rem; padding-top:1.8rem; }
.p-more p { font-size:1rem; color:var(--body); }

/* ── Advocacy ─────────────────────────────────────────────────────── */
.advocacy { padding:7rem 0; background:var(--pale-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
.a-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.a-card { position:relative; background:#fff; border:1px solid var(--hairline); padding:2.5rem 2.2rem 2.2rem; text-decoration:none; display:flex; flex-direction:column; gap:.9rem; overflow:hidden; transition:border-color .3s, transform .3s, box-shadow .3s; }
.a-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; transition:transform .35s ease; }
.a-card:hover { border-color:var(--sky); transform:translateY(-4px); box-shadow:0 18px 40px rgba(22,56,78,.08); }
.a-card:hover::before { transform:scaleY(1); }
.a-card img.icon { width:46px; height:46px; }
.a-card h3 { font-size:1.45rem; line-height:1.2; }
.a-card p { font-size:.97rem; line-height:1.65; color:var(--body); }
.a-card .go { margin-top:auto; padding-top:.6rem; }

/* ── Data banner ──────────────────────────────────────────────────── */
.stats { background:var(--ink); padding:4.6rem 0; }
.stats .grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2.5rem; text-align:center; }
.stats .n { font-family:var(--serif); font-size:clamp(2.6rem,4vw,3.6rem); color:#fff; line-height:1; margin-bottom:.7rem; }
.stats .n.accent { color:#a8c6da; }
.stats .l { font-size:.72rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* ── Clients ──────────────────────────────────────────────────────── */
.clients { padding:6.5rem 0 5.5rem; background:var(--paper); border-top:1px solid var(--hairline); }
.clients .sec-head { margin-bottom:2.6rem; }

/* Filter tab row */
.client-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem; }
.client-filter { padding:.45rem 1.1rem; border:1px solid var(--hairline); background:transparent; color:var(--quiet); font-family:var(--serif); font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:all .22s ease; white-space:nowrap; }
.client-filter:hover { border-color:var(--ink); color:var(--ink); }
.client-filter.is-active { background:var(--accent); border-color:var(--accent); color:#fff; }

/* Logo grid */
/* ── Clients marquee — homepage, two opposite-scrolling rows (k3) ── */
.clients-marquee { display:block; text-decoration:none; }
.marquee { overflow:hidden; position:relative; padding:1.2rem 0; }
.marquee::before,.marquee::after { content:''; position:absolute; top:0; bottom:0; width:120px; z-index:2; pointer-events:none; }
.marquee::before { left:0; background:linear-gradient(to right,var(--paper),transparent); }
.marquee::after { right:0; background:linear-gradient(to left,var(--paper),transparent); }
.m-track { display:flex; align-items:center; gap:4.5rem; width:max-content; }
.m-track.a { animation:scrollA 70s linear infinite; }
.m-track.b { animation:scrollB 80s linear infinite; margin-top:2.6rem; }
.clients-marquee:hover .m-track { animation-play-state:paused; }
@keyframes scrollA { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes scrollB { from{transform:translateX(-50%)} to{transform:translateX(0)} }
.m-track img { height:44px; width:auto; max-width:150px; object-fit:contain; transition:transform .35s ease; }
.m-track img:hover { transform:scale(1.15); }
.m-more { display:flex; justify-content:center; margin-top:2.4rem; }
.clients-marquee:hover .m-more .textlink { color:var(--accent); }
@media (prefers-reduced-motion:reduce){ .m-track.a,.m-track.b { animation:none; } }

/* ── Clients page ── */
.clients-page { padding:3.5rem 0 6.5rem; }

.client-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:.75rem; }
.client-logo-item { position:relative; aspect-ratio:5/3; display:flex; align-items:center; justify-content:center; padding:1.1rem 1.4rem; border:1px solid var(--hairline); background:var(--paper); overflow:hidden; transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease; }
.client-logo-item img { max-width:100%; max-height:100%; width:100%; height:100%; object-fit:contain; display:block; transition:transform .35s ease; }
@media (hover:hover) {
  .client-logo-item:hover { border-color:var(--accent-light); transform:translateY(-4px) scale(1.05); box-shadow:0 14px 34px rgba(22,56,78,.12); z-index:2; }
  .client-logo-item:hover img { transform:scale(1.1); }
}
/* Touch: tap a logo to zoom it 2x in place (client-filter.js sets transform-origin so it never leaves the viewport) */
@media (hover:none) {
  .client-logo-item { cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .client-logo-item.is-zoomed { transform:scale(2); border-color:var(--accent-light); box-shadow:0 14px 34px rgba(22,56,78,.18); z-index:5; }
}

@media (max-width:1100px) { .client-grid { grid-template-columns:repeat(5,1fr); } }
@media (max-width:960px)  { .client-grid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px)  { .client-grid { grid-template-columns:repeat(3,1fr); } .client-filter { font-size:.6rem; padding:.4rem .9rem; }
    .m-track { gap:2.6rem; } .m-track img { height:34px; max-width:120px; } .m-track.b { margin-top:1.8rem; } }

/* ── Portal ───────────────────────────────────────────────────────── */
.portal { background:var(--pale); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:4rem 0; }
.portal .row { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; flex-wrap:wrap; }
.portal h3 { font-size:clamp(1.6rem,2.6vw,2.2rem); margin-bottom:.5rem; }
.portal p { color:var(--body); }

/* ── Culture ──────────────────────────────────────────────────────── */
.culture { padding:7rem 0; }
.c-head { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:end; margin-bottom:3.4rem; }
.c-head h2 { font-size:clamp(2.3rem,4.4vw,3.6rem); line-height:1.08; }
.c-head h2 em { font-style:italic; color:var(--accent); }
.c-head .side p { font-size:1.05rem; margin-bottom:1.6rem; }
.c-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:270px 270px; gap:.9rem; }
.c-grid > div { overflow:hidden; }
.c-grid img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.c-grid > div:hover img { transform:scale(1.045); }

/* ── Culture masonry (Task 15) ───────────────────────────────────── */
.culture-masonry { display:flex; flex-wrap:wrap; gap:10px; }
.cm-item { margin:0; overflow:hidden; flex-shrink:0; }
.cm-item img { display:block; width:100%; height:100%; object-fit:cover; }
.culture-masonry.stacked .cm-item { width:100% !important; height:auto !important; }
.culture-masonry.stacked .cm-item img { height:auto; }

/* ── Year in Review (vertical reel under Culture) ─────────────────── */
.yir { padding:5.5rem 0 7rem; background:var(--pale-2); border-top:1px solid var(--hairline); }
.yir .sec-head { display:block; text-align:center; margin-bottom:2.6rem; }
.yir-player { max-width:400px; margin:0 auto; }
.yir-player video { display:block; width:100%; aspect-ratio:9/16; background:#0f1e33; border:1px solid var(--hairline); box-shadow:0 18px 50px rgba(15,30,51,.14); }

/* ── Latest ───────────────────────────────────────────────────────── */
.latest { padding:7rem 0; background:var(--pale-2); border-top:1px solid var(--hairline); }
.l-cols { display:grid; grid-template-columns:2fr 3fr; gap:4rem; align-items:start; }
.l-col-h { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.l-col-h .t { font-size:.74rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--ink); }
.news-item { display:block; text-decoration:none; padding:1.25rem 0; border-bottom:1px solid var(--hairline); }
.news-item .src { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); }
.news-item h3 { font-size:1.18rem; line-height:1.35; margin:.4rem 0 .3rem; transition:color .3s; }
.news-item:hover h3 { color:var(--accent); }
.news-item .date { font-size:.8rem; color:var(--quiet); }
.res-item { display:flex; gap:1.4rem; align-items:flex-start; text-decoration:none; padding:1.1rem 0; border-bottom:1px solid var(--hairline); }
.res-item .thumb { width:110px; aspect-ratio:16/10; background:var(--ink); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.res-item .thumb svg { width:26px; height:26px; stroke:rgba(255,255,255,.45); }
.res-item h3 { font-size:1.18rem; line-height:1.3; transition:color .3s; }
.res-item:hover h3 { color:var(--accent); }
.res-item .sub { font-size:.85rem; color:var(--quiet); margin-top:.25rem; }

/* ── Contact ──────────────────────────────────────────────────────── */
.ct-actions-sec { padding:4.5rem 0 1rem; }
.ct-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; } /* two rows of three (client 10/14) */
.ct-action { border:1px solid var(--hairline); background:var(--paper); padding:1.8rem 1.6rem; display:flex; flex-direction:column; gap:.6rem; align-items:flex-start; }
.ct-action h3 { font-family:var(--serif); font-size:1.25rem; line-height:1.25; }
.ct-action p { font-size:.92rem; color:var(--ink-soft); flex:1; }
.ct-action .btn { margin-top:.4rem; }
@media (max-width:1100px) { .ct-actions { grid-template-columns:1fr 1fr; } }
@media (max-width:640px)  { .ct-actions { grid-template-columns:1fr; } }
.contact { padding:7rem 0; }
.ct-grid { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.ct-grid h2 { font-size:clamp(2.3rem,4vw,3.4rem); line-height:1.08; margin-bottom:1.4rem; }
.ct-info { display:flex; flex-direction:column; gap:1.5rem; font-size:1.05rem; }
.ct-info .label { font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--quiet); margin-bottom:.25rem; }
.ct-info a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--hairline); transition:border-color .25s; }
.ct-info a:hover { border-color:var(--accent); }
.ct-img { overflow:hidden; }
.ct-img img { width:100%; height:100%; min-height:420px; object-fit:cover; }

/* ── Footer ───────────────────────────────────────────────────────── */
footer { background:var(--ink); padding:4rem 0 2.5rem; color:rgba(255,255,255,.65); }
footer .top { display:flex; justify-content:space-between; gap:3rem; flex-wrap:wrap; padding-bottom:2.6rem; border-bottom:1px solid rgba(255,255,255,.12); }
footer .id img { height:40px; margin-bottom:1.1rem; }
footer .id p { max-width:24rem; font-size:.92rem; line-height:1.7; }
footer .cols { display:flex; gap:4.5rem; }
footer .cols .t { font-size:.68rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:1rem; }
footer .cols a { display:block; text-decoration:none; font-size:.9rem; padding:.22rem 0; color:rgba(255,255,255,.7); transition:color .25s; }
footer .cols a:hover { color:#fff; }
footer .base { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-top:1.6rem; font-size:.78rem; color:rgba(255,255,255,.4); }
footer .base a { color:inherit; }

/* ── Team card (archive grid) ─────────────────────────────────────── */
/* Used in archive-kdcr_principal.php and home-principals.php via team-card.php partial */
.team-card { display:block; text-decoration:none; transition:transform .3s ease; }
.team-card:hover { transform:translateY(-4px); }
.team-card .frame { position:relative; display:block; overflow:hidden; aspect-ratio:3/4; border:1px solid var(--hairline); background:var(--paper); margin-bottom:1.2rem; transition:border-color .3s ease, background .4s ease; }
.team-card:hover .frame { background:linear-gradient(to bottom,var(--photo-hover),#ffffff); border-color:transparent; }
.team-card .frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:bottom; transition:transform .5s ease; }
.team-card:hover .frame img { transform:scale(1.03); }
.team-card .nm { display:block; font-family:var(--serif); font-size:1.35rem; line-height:1.2; color:var(--ink); transition:color .3s; }
.team-card:hover .nm { color:var(--accent); }
.team-card .role { display:block; font-size:.7rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-top:.4rem; font-variant:small-caps; }

/* ── Team archive page ────────────────────────────────────────────── */
.page-head { padding:10.5rem 0 4.5rem; background:var(--paper); border-bottom:1px solid var(--hairline); }
.page-head h1 { font-size:clamp(2.8rem,5.6vw,4.6rem); line-height:1.04; letter-spacing:-.015em; margin-bottom:1.5rem; }
.page-head .intro { max-width:42rem; font-size:1.08rem; color:var(--body); }
.page-head .rule { width:52px; height:3px; background:var(--accent); margin-top:2.2rem; }
.team { padding:5.5rem 0 7rem; background:var(--paper); }
@media (max-width:1100px) { .team-rows--team .team-card { width:calc((100% - 3 * 1.5rem) / 4); } }
@media (max-width:860px)  { .team-rows--team .team-card { width:calc((100% - 2 * 1.5rem) / 3); } }
/* ── Full-bleed photo break + pull quote (homepage-2 / advocacy-2 mockups) ── */
.photo-break { position:relative; overflow:hidden; padding:9rem 0; }
.photo-break .pb-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.photo-break::after { content:""; position:absolute; inset:0; background:rgba(22,56,78,.68); }
.photo-break .pb-copy { position:relative; z-index:1; max-width:56rem; margin-inline:auto; text-align:center; }
.photo-break .pb-kicker { font-size:.72rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:1.5rem; }
.photo-break blockquote p { font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.3; color:#fff; }
.photo-break blockquote footer { margin-top:1.6rem; font-size:.7rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.6); }
@media (max-width:720px) { .photo-break { padding:6rem 0; } }
/* Slim variant (advocacy, 10/13/2026 client edits): short band so the second row of boxes stays in view */
.photo-break--slim { padding:2.5rem 0; }
.photo-break--slim .pb-kicker { margin-bottom:.8rem; }
.photo-break--slim blockquote p { font-size:clamp(1.15rem,2vw,1.6rem); }
@media (max-width:720px) { .photo-break--slim { padding:2rem 0; } }
.pa-band-cont { border-top:0; padding-top:4.5rem; }
/* Why KDCR culture carousel: stacked culture photos crossfading behind the pull quote */
.culture-break { padding:11rem 0; }
.culture-break .pb-media { opacity:0; transition:opacity 1.2s ease; }
.culture-break .pb-media.active { opacity:1; }
@media (prefers-reduced-motion:reduce) { .culture-break .pb-media:first-of-type { opacity:1; } }


.cta { background:var(--pale); border-top:1px solid var(--hairline); padding:4.5rem 0; }
.cta .row { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; flex-wrap:wrap; }
.cta h2 { font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.15; }

/* ── Bio single page ──────────────────────────────────────────────── */
.crumb { padding:7.4rem 0 0; }
.crumb .textlink svg { transform:rotate(180deg); }
.crumb .textlink:hover svg { transform:rotate(180deg) translateX(4px); }
.bio { padding:2.4rem 0 5.5rem; }
.bio-grid { display:grid; grid-template-columns:minmax(0,280px) 1fr; gap:4.5rem; align-items:start; }
.bio-photo { position:sticky; top:110px; }
.bio-photo .frame { border:1px solid var(--hairline); background:var(--pale-2); aspect-ratio:3/4; overflow:hidden; }
.bio-photo .frame img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; max-width:100%; }
.bio-photo .dl { display:flex; flex-direction:column; gap:.85rem; margin-top:1.4rem; }
.bio-photo .dl a { display:inline-flex; align-items:center; gap:.6rem; font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--quiet); text-decoration:none; transition:color .25s; }
.bio-photo .dl a:hover { color:var(--accent); }
.bio-photo .dl svg { width:15px; height:15px; flex-shrink:0; }
.bio-head { margin-bottom:2.4rem; }
.bio-head h1 { font-size:clamp(2.4rem,4.6vw,3.8rem); line-height:1.06; letter-spacing:-.015em; margin-bottom:0; }
.creds { background:var(--pale-2); border:1px solid var(--hairline); padding:2rem 2.2rem; margin-bottom:2.6rem; display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; align-items:start; }
.creds .creds-block + .creds-block { margin-top:1.7rem; }
.creds .t { font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:.7rem; }
.creds p { font-size:.88rem; line-height:1.55; color:var(--ink-soft); padding-left:.95rem; position:relative; margin-bottom:.45rem; }
.creds p::before { content:'-'; position:absolute; left:0; color:var(--sky); }
.bio-text p { font-size:1.02rem; line-height:1.85; margin-bottom:1.25rem; }
.bio-text p:last-child { margin-bottom:0; }

/* ── Bio prev/next ────────────────────────────────────────────────── */
.bio-nav { border-top:1px solid var(--hairline); padding:2.6rem 0; }
.bio-nav .row { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.bio-nav .pn { text-decoration:none; display:block; max-width:18rem; }
.bio-nav .pn .lbl { display:flex; align-items:center; gap:.45rem; font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--quiet); margin-bottom:.45rem; transition:color .25s; }
.bio-nav .pn .lbl svg { width:13px; height:13px; flex:none; }
.bio-nav .pn .nm { display:block; font-family:var(--serif); font-size:1.25rem; color:var(--ink); line-height:1.25; transition:color .25s; }
.bio-nav .pn:hover .nm, .bio-nav .pn:hover .lbl { color:var(--accent); }
.bio-nav .pn.next { text-align:right; }
.bio-nav .pn.next .lbl { justify-content:flex-end; }

/* ── Contact strip ────────────────────────────────────────────────── */
.contact-strip { background:var(--pale); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:2.4rem 0; }
.contact-strip .row { display:flex; align-items:center; justify-content:center; gap:.9rem 2.6rem; flex-wrap:wrap; text-align:center; }
.contact-strip p, .contact-strip a { font-size:.95rem; color:var(--ink-soft); text-decoration:none; }
.contact-strip a { border-bottom:1px solid var(--hairline); transition:border-color .25s, color .25s; }
.contact-strip a:hover { color:var(--accent); border-color:var(--accent); }
.contact-strip .dot { color:var(--sky); }

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width:1100px){
    nav.site .links { gap:1.3rem; }
    .team-rows--home .team-card { width:calc((100% - 2 * 1.2rem) / 3); }
    .p-grid-sub .team-card { width:calc(0.9 * (100% - 2 * 1.2rem) / 3); }
    .bio-grid { gap:3rem; grid-template-columns:minmax(0,240px) 1fr; }
}
@media (max-width:960px){
    nav.site .links { display:none; }
    .menu-toggle { display:block; }
    .mobile-menu { display:none; position:fixed; top:79px; left:0; right:0; bottom:0; background:#fff; z-index:99; padding:2rem 7vw; flex-direction:column; gap:.2rem; overflow-y:auto; }
    .mobile-menu.is-open { display:flex; }
    .mobile-menu a { font-size:1.05rem; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; color:var(--ink); padding:.9rem 0; border-bottom:1px solid var(--hairline); }
    .mobile-menu .mm-group { font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--quiet); font-weight:700; padding:1.1rem 0 .3rem; }
    .mobile-menu a.mm-sub { padding-left:1.2rem; }
    .hero { min-height:92vh; }
    .hero-copy { padding:8rem 7vw 4rem; }
    .hero-scroll { display:none; }
    .pillars .grid { grid-template-columns:1fr 1fr; }
    .pillar { border-right:0; margin-right:0; border-bottom:1px solid var(--hairline); padding:1.6rem 0; }
    .team-rows--home .team-card { width:calc((100% - 1.2rem) / 2); }
    .p-grid-sub .team-card { width:calc(0.9 * (100% - 1.2rem) / 2); }
    .team-rows--team .t-row { gap:2.4rem 1.6rem; }
    .team-rows--team .team-card { width:calc((100% - 1.6rem) / 2); }
    .a-grid { grid-template-columns:1fr 1fr; }
    .stats .grid { grid-template-columns:1fr 1fr; }
    .c-head { grid-template-columns:1fr; gap:2rem; }
    .c-grid { grid-template-rows:200px 200px; }
    .l-cols { grid-template-columns:1fr; }
    .ct-grid { grid-template-columns:1fr; }
    .bio-grid { grid-template-columns:1fr; gap:2.6rem; }
    .bio-photo { position:static; max-width:300px; }
    .creds { grid-template-columns:1fr; gap:1.5rem; padding:1.6rem 1.5rem; }
    .page-head { padding:8.5rem 0 3.5rem; }
}
@media (max-width:640px){
    .team-rows--home .t-row { gap:1.2rem .9rem; }
    .team-rows--home .team-card { width:calc((100% - .9rem) / 2); }
    .p-grid-sub { gap:1.2rem .9rem; }
    .p-grid-sub .team-card { width:calc(0.9 * (100% - .9rem) / 2); }
    .p-grid-sub .team-card .nm { font-size:1.1rem; }
    .team-rows--team .t-row { gap:2.6rem; }
    .team-rows--team .team-card { width:100%; }
    .a-grid { grid-template-columns:1fr; }
    .c-grid { grid-template-columns:1fr; grid-template-rows:repeat(6,220px); }
    .c-grid > div { grid-column:auto !important; grid-row:auto !important; }
    .pillars .grid { grid-template-columns:1fr; }
    .bio-nav .row { flex-direction:column; align-items:flex-start; }
    .bio-nav .pn.next { text-align:left; }
    .contact-strip .row { flex-direction:column; gap:.4rem; }
    .contact-strip .dot { display:none; }
    .team { padding:4rem 0 5rem; }
}

/* ── About page ────────────────────────────────────────────── */
.a-hero { position:relative; padding:10rem 0 3.6rem; overflow:hidden; }
.a-hero::before { content:''; position:absolute; inset:0; background:url(../img/capitol-rotunda-frieze.jpg) center 30%/cover no-repeat; opacity:.1; -webkit-mask-image:linear-gradient(180deg,#000 50%,transparent); mask-image:linear-gradient(180deg,#000 50%,transparent); pointer-events:none; }
.a-hero .wrap { position:relative; }
.a-hero h1 { font-size:clamp(3rem,6.5vw,5.5rem); line-height:1.02; letter-spacing:-.02em; }
.a-hero h1 em { font-style:italic; color:var(--accent); }
.a-hero .lede { max-width:46rem; font-size:1.18rem; line-height:1.75; margin-top:1.8rem; }

.story { padding:6.5rem 0; }
.story .grid { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; }
.story h2 { font-size:clamp(1.7rem,2.8vw,2.4rem); line-height:1.18; margin-bottom:1.4rem; }
.story p { margin-bottom:1.2rem; font-size:1.02rem; }
.rule { width:54px; height:3px; background:var(--accent); margin-bottom:1.6rem; }

.identity { background:var(--ink); padding:5.5rem 0; }
.identity .kicker { color:#a8c6da; }
.identity h2 { color:#fff; font-size:clamp(1.9rem,3.4vw,2.9rem); line-height:1.15; max-width:30ch; margin-bottom:3rem; }
.identity .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; }
.identity .item { border-top:1px solid rgba(255,255,255,.2); padding-top:1.4rem; }
.identity .item .num { font-family:var(--serif); color:#a8c6da; font-size:.95rem; display:block; margin-bottom:.6rem; }
.identity .item h3 { color:#fff; font-size:1.35rem; margin-bottom:.5rem; }
.identity .item p { color:rgba(255,255,255,.65); font-size:.95rem; line-height:1.65; }

.areas { padding:6.5rem 0; background:var(--pale-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
.pills { display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:2.4rem; }
.pill { display:inline-block; background:#fff; border:1px solid var(--hairline); color:var(--ink); font-family:var(--serif); font-size:1.08rem; padding:.85rem 1.6rem; text-decoration:none; transition:all .3s; }
.pill:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); box-shadow:0 10px 24px rgba(22,56,78,.07); }
.areas .note { max-width:42rem; font-size:1rem; }
.cta .btns { display:flex; gap:1rem; flex-wrap:wrap; }
/* Stacked CTA variant (homepage / advocacy / practice pages): kicker, h2, lede,
   then left-aligned buttons. Row-variant CTAs (h2 inside .row) are untouched. */
.cta .wrap > h2 { margin-bottom:1.1rem; }
.cta .wrap > p:not(.kicker) { max-width:52rem; margin-bottom:2.2rem; }

/* ── Advocacy hub page ─────────────────────────────────────── */
.adv-head { padding:10rem 0 4.2rem; background:var(--paper); }
.adv-head h1 em { font-style:italic; color:var(--accent); }
.adv-head .lede { max-width:46rem; font-size:1.06rem; margin-top:1.6rem; }
.stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; margin-top:2.6rem; padding-top:2.4rem; border-top:1px solid var(--hairline); }
.stat-row .stat { border-left:3px solid var(--accent); padding-left:1.4rem; }
.stat-row .n { font-family:var(--serif); font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.1; color:var(--ink); }
.stat-row .l { font-size:.7rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--quiet); margin-top:.45rem; }

.pa-band { padding:5.5rem 0 6rem; background:var(--pale-2); border-top:1px solid var(--hairline); }
.pa-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.pa-card { position:relative; background:#fff; border:1px solid var(--hairline); padding:2.5rem 2.2rem 2.2rem; display:flex; flex-direction:column; gap:.95rem; overflow:hidden; transition:border-color .3s, transform .3s, box-shadow .3s; }
.pa-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; transition:transform .35s ease; }
.pa-card:hover { border-color:var(--sky); transform:translateY(-4px); box-shadow:0 18px 40px rgba(22,56,78,.08); }
.pa-card:hover::before { transform:scaleY(1); }
.pa-card .head-row { display:flex; align-items:center; justify-content:space-between; }
.pa-card img.icon { width:46px; height:46px; }
.pa-card .num { font-family:var(--serif); font-size:.95rem; color:var(--sky); }
.pa-card h2 { font-size:1.55rem; line-height:1.2; }
.pa-card h2 a { text-decoration:none; transition:color .3s; }
.pa-card h2 a:hover { color:var(--accent); }
.pa-card > p { font-size:.97rem; line-height:1.65; color:var(--body); }
.pa-card .tags { display:flex; flex-wrap:wrap; gap:.45rem; }
.pa-card .contacts { margin-top:.2rem; }
.pa-card .contacts .lbl { font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--quiet); margin-bottom:.3rem; }
.pa-card .contacts a { font-size:.86rem; color:var(--accent); text-decoration:none; margin-right:.9rem; transition:color .2s; white-space:nowrap; display:inline-block; }
.pa-card .contacts a:hover { color:var(--ink); }
.pa-card .go { margin-top:auto; padding-top:.8rem; }

/* ── Practice area subpages ────────────────────────────────── */
.page-head .crumb { font-size:.72rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--accent); margin-bottom:1.2rem; }
.page-head .crumb a { color:var(--accent); text-decoration:none; transition:color .25s; }
.page-head .crumb a:hover { color:var(--ink); }
.page-head .crumb .sep { color:var(--quiet); opacity:.5; margin:0 .45rem; }
.page-head .crumb .here { color:var(--quiet); }
.page-head .tagline { font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,2.4vw,1.9rem); line-height:1.25; color:var(--accent); margin-top:.9rem; max-width:34ch; }
.tag-row { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:2.2rem; padding-top:2rem; border-top:1px solid var(--hairline); }
.tag { display:inline-block; font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--quiet); background:var(--pale); padding:.3rem .75rem; border-radius:2px; }

.duo { padding:5.5rem 0; }
.duo .cols { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:start; }
.duo .prose p { font-size:1.05rem; line-height:1.75; margin-bottom:1.4rem; }
.duo .prose p:last-child { margin-bottom:0; }
.issues .lbl { font-size:.72rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--ink); margin-bottom:1.6rem; }
.proof-item { border-left:3px solid var(--accent); padding-left:1.25rem; margin-bottom:1.4rem; }
.proof-item:last-child { margin-bottom:0; }
.proof-item h3 { font-family:var(--sans); font-size:1.02rem; font-weight:700; color:var(--ink); margin-bottom:.25rem; }
.proof-item p { font-size:.92rem; line-height:1.65; color:var(--body); }

.why { padding:5.5rem 0; background:var(--pale); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
.why h2 { font-size:clamp(1.9rem,3.6vw,2.8rem); line-height:1.12; letter-spacing:-.01em; margin-bottom:2.8rem; max-width:30ch; }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.why-card { background:#fff; border:1px solid var(--hairline); border-top:3px solid var(--accent); padding:2.2rem 2rem; }
.why-card h3 { font-family:var(--sans); font-size:1.08rem; font-weight:700; color:var(--ink); margin-bottom:.7rem; }
.why-card p { font-size:.93rem; line-height:1.65; color:var(--body); }

.more { padding:4.5rem 0 5.5rem; background:var(--paper); }
.more .head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.more h2 { font-size:clamp(1.7rem,3vw,2.3rem); }
.more-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.more-card { display:flex; flex-direction:column; gap:.8rem; text-decoration:none; background:#fff; border:1px solid var(--hairline); padding:1.5rem 1.4rem; position:relative; overflow:hidden; transition:border-color .3s, transform .3s, box-shadow .3s; }
.more-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; transition:transform .35s ease; }
.more-card:hover { border-color:var(--sky); transform:translateY(-4px); box-shadow:0 14px 30px rgba(22,56,78,.07); }
.more-card::before { transform:scaleY(0); }
.more-card:hover::before { transform:scaleY(1); }
.more-card img { width:34px; height:34px; }
.more-card h3 { font-size:1.05rem; line-height:1.25; transition:color .3s; }
.more-card:hover h3 { color:var(--accent); }

/* ── Resources page ────────────────────────────────────────── */
.portal-banner { background:var(--pale); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:2.6rem 0; }
.portal-banner .row { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.portal-banner h3 { font-size:clamp(1.35rem,2.4vw,1.85rem); margin-bottom:.3rem; }
.portal-banner p { color:var(--body); font-size:.98rem; }
.btn-teal { background:var(--accent); color:#fff; border:1px solid var(--accent); }
.btn-teal:hover { background:var(--accent-dark); border-color:var(--accent-dark); }

.resources-sec { padding:5.5rem 0 6.5rem; }
.group { margin-bottom:3.8rem; }
.group:last-child { margin-bottom:0; }
.group-head { display:flex; align-items:center; gap:1.4rem; margin-bottom:1.8rem; }
.group-head .t { font-size:.72rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.group-head .rule { flex:1; height:1px; background:var(--hairline); }
/* Compact resource list — one row per item, small thumbnail (client sketch 10/14) */
.r-list { display:flex; flex-direction:column; gap:.7rem; }
.r-row { display:flex; gap:1.2rem; align-items:center; background:#fff; border:1px solid var(--hairline); padding:.85rem 1.3rem; text-decoration:none; transition:border-color .3s, box-shadow .3s; }
.r-row:hover { border-color:var(--accent-light); box-shadow:0 8px 24px rgba(22,56,78,.07); }
.r-row .thumb { width:40px; height:40px; flex-shrink:0; background:var(--pale-2); border:1px solid var(--hairline); display:flex; align-items:center; justify-content:center; transition:background .3s, border-color .3s; }
.r-row .thumb svg { width:18px; height:18px; stroke:var(--accent); transition:stroke .3s; }
.r-row:hover .thumb { background:var(--accent); border-color:var(--accent); }
.r-row:hover .thumb svg { stroke:#fff; }
.r-row .r-row-main { flex:1; min-width:0; }
.r-row h3 { font-size:1.05rem; line-height:1.3; transition:color .3s; }
.r-row:hover h3 { color:var(--accent); }
.r-row .tag { font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--quiet); margin-top:.25rem; }
.r-row .dl { display:inline-flex; align-items:center; gap:.5rem; font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.r-row .dl svg { width:13px; height:13px; stroke:currentColor; transition:transform .3s; }
.r-row:hover .dl svg { transform:translateY(3px); }

/* Header photo collage (principals presenting at conferences) */
.res-head-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:center; }
.res-head-grid .lede + .lede { margin-top:1.1rem; }
.res-head-grid .lede a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; transition:color .25s; }
.res-head-grid .lede a:hover { color:var(--ink); }
.res-collage { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.res-collage .rc-item { display:block; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--hairline); background:var(--pale-2); }
.res-collage .rc-item img { width:100%; height:100%; object-fit:cover; display:block; }

/* News & Awards (3 newest kdcr_newsclip items) */
.news-awards { padding:5.5rem 0 6.5rem; background:var(--pale-2); border-top:1px solid var(--hairline); }
.news-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7rem; }
.news-list li a, .news-list li > .hl { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; background:#fff; border:1px solid var(--hairline); padding:1.15rem 1.4rem; text-decoration:none; transition:border-color .3s, box-shadow .3s; }
.news-list li a:hover { border-color:var(--accent-light); box-shadow:0 8px 24px rgba(22,56,78,.07); }
.news-list .hl { font-family:var(--serif); font-size:1.12rem; line-height:1.35; color:var(--ink); transition:color .3s; }
.news-list li a:hover .hl { color:var(--accent); }
.news-list li a svg { width:16px; height:16px; flex-shrink:0; stroke:var(--accent); transition:transform .3s; }
.news-list li a:hover svg { transform:translateX(4px); }

.cta-band { background:var(--pale-2); border-top:1px solid var(--hairline); padding:4rem 0; }
.cta-band .row { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; flex-wrap:wrap; }
.cta-band h3 { font-size:clamp(1.6rem,2.6vw,2.2rem); }

/* ── Contact section (home) ────────────────────────────────── */
.ct-form { background:var(--pale-2); padding:2.5rem; border:1px solid var(--hairline); }

/* ── Responsive additions ──────────────────────────────────── */
@media (max-width:1100px){
  .pa-grid { grid-template-columns:repeat(2,1fr); }
  .more-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:960px){
  .res-head-grid { grid-template-columns:1fr; gap:2.5rem; }
  .story .grid { grid-template-columns:1fr; gap:2.5rem; }
  .identity .grid { grid-template-columns:1fr; }
  .stat-row { grid-template-columns:1fr; gap:1.4rem; }
  .pa-grid { grid-template-columns:1fr; }
  .duo .cols { grid-template-columns:1fr; gap:3rem; }
  .why-grid { grid-template-columns:1fr; }
  .r-grid { grid-template-columns:1fr; }
  .adv-head { padding:8.5rem 0 3.2rem; }
}
@media (max-width:640px){
  .more-grid { grid-template-columns:1fr 1fr; }
  .r-card { flex-direction:column; gap:1.2rem; padding:1.8rem 1.6rem 1.6rem; }
}

/* ── Careers page ──────────────────────────────────────────── */
.careers-sec { padding:5.5rem 0 4rem; }
.job-list { display:flex; flex-direction:column; gap:1.6rem; }
.job-card { background:#fff; border:1px solid var(--hairline); padding:2.4rem 2.4rem 2.2rem; transition:border-color .3s, box-shadow .3s; }
.job-card:hover { border-color:var(--accent-light); box-shadow:0 18px 40px rgba(22,56,78,.08); }
.job-card h3 { font-size:1.55rem; line-height:1.2; margin-bottom:.9rem; }
.job-card .job-body { font-size:.98rem; line-height:1.65; color:var(--body); margin-bottom:1.3rem; }
.job-card .job-body p { margin-bottom:.8rem; }
.job-card .job-body ul, .job-card .job-body ol { margin:0 0 .8rem 1.2rem; }
.job-card .dl { display:inline-flex; align-items:center; gap:.5rem; font-size:.7rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); text-decoration:none; margin-right:2rem; }
.job-card .dl svg { width:13px; height:13px; }
.job-empty { background:var(--pale); border:1px solid var(--hairline); padding:2.6rem 2.4rem; }
.job-empty h3 { font-size:1.45rem; margin-bottom:.6rem; }
.job-empty .desc { font-size:.98rem; line-height:1.65; color:var(--body); max-width:52rem; }
.apply-sec { padding:4rem 0 6.5rem; }
.apply-grid { display:grid; grid-template-columns:1fr 1.25fr; gap:4.5rem; align-items:start; }
.apply-grid .desc { font-size:.98rem; line-height:1.65; color:var(--body); margin:1.2rem 0 0; }
.apply-grid .desc a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--hairline); transition:border-color .25s; }
.apply-grid .desc a:hover { border-color:var(--accent); }
.apply-form { background:var(--pale-2); border:1px solid var(--hairline); padding:2.5rem; }
.apply-form .f-row { margin-bottom:1.3rem; }
.apply-form .f-cols { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.apply-form label { display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); margin-bottom:.5rem; }
.apply-form .req { color:var(--accent); }
.apply-form input[type=text], .apply-form input[type=email], .apply-form input[type=tel], .apply-form textarea { width:100%; background:#fff; border:1px solid var(--hairline); padding:.85rem 1rem; font-family:var(--sans); font-size:.95rem; color:var(--ink); transition:border-color .25s; }
.apply-form input:focus, .apply-form textarea:focus { outline:none; border-color:var(--accent); }
.apply-form textarea { resize:vertical; }
.apply-form input[type=file] { width:100%; font-family:var(--sans); font-size:.88rem; color:var(--body); }
.apply-form .btn { border:0; cursor:pointer; margin-top:.4rem; }
.apply-form .hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-note { border:1px solid var(--hairline); padding:1.4rem 1.6rem; margin-bottom:1.6rem; background:#fff; box-shadow:0 10px 26px rgba(22,56,78,.06); }
.form-note.ok { border-color:var(--accent-light); }
.form-note.ok h3 { font-size:1.25rem; margin-bottom:.4rem; }
.form-note.err { border-color:#c0392b; }
.form-note.err p { color:#8f2a1e; font-size:.95rem; }
.form-note p { font-size:.95rem; color:var(--body); }
@media (max-width:960px){
  .apply-grid { grid-template-columns:1fr; gap:2.5rem; }
  .apply-form .f-cols { grid-template-columns:1fr; gap:0; }
  .job-card { padding:1.9rem 1.7rem 1.7rem; }
}

/* ── WPForms (home contact + careers application) ──────────────────
   Compact styling matching the old GF/custom forms. WPForms ships its
   own high-specificity stylesheet (and CSS vars in modern markup), so
   we set its vars on the container AND out-specify the key rules. */
.ct-form .wpforms-container, .apply-form .wpforms-container {
  --wpforms-field-size-font-size:.9rem;
  --wpforms-field-size-input-height:2.6rem;
  --wpforms-field-size-padding-h:.9rem;
  --wpforms-field-size-input-spacing:1.1rem;
  --wpforms-label-size-font-size:.68rem;
  --wpforms-label-size-sublabel-font-size:.72rem;
  --wpforms-field-border-radius:0;
  --wpforms-button-size-font-size:.72rem;
  --wpforms-button-size-height:2.9rem;
  --wpforms-button-background-color:var(--ink);
  --wpforms-field-border-color:var(--hairline);
}
.ct-form div.wpforms-container-full .wpforms-form .wpforms-field,
.apply-form div.wpforms-container-full .wpforms-form .wpforms-field { margin-bottom:1.1rem; padding:0; }
.ct-form div.wpforms-container-full .wpforms-form .wpforms-field-label,
.apply-form div.wpforms-container-full .wpforms-form .wpforms-field-label { display:block; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); margin-bottom:.45rem; line-height:1.4; }
.ct-form div.wpforms-container-full .wpforms-form .wpforms-required-label,
.apply-form div.wpforms-container-full .wpforms-form .wpforms-required-label { color:var(--accent); }
.ct-form div.wpforms-container-full .wpforms-form .wpforms-field-description,
.apply-form div.wpforms-container-full .wpforms-form .wpforms-field-description { font-size:.8rem; color:var(--body); margin-top:.35rem; line-height:1.5; }
.ct-form div.wpforms-container-full .wpforms-form input[type=text],
.ct-form div.wpforms-container-full .wpforms-form input[type=email],
.ct-form div.wpforms-container-full .wpforms-form input[type=tel],
.ct-form div.wpforms-container-full .wpforms-form textarea,
.apply-form div.wpforms-container-full .wpforms-form input[type=text],
.apply-form div.wpforms-container-full .wpforms-form input[type=email],
.apply-form div.wpforms-container-full .wpforms-form input[type=tel],
.apply-form div.wpforms-container-full .wpforms-form textarea { width:100%; max-width:100%; background:#fff; border:1px solid var(--hairline); border-radius:0; padding:.7rem .9rem; font-family:var(--sans); font-size:.9rem; color:var(--ink); box-shadow:none; transition:border-color .25s; }
.ct-form div.wpforms-container-full .wpforms-form input:focus,
.ct-form div.wpforms-container-full .wpforms-form textarea:focus,
.apply-form div.wpforms-container-full .wpforms-form input:focus,
.apply-form div.wpforms-container-full .wpforms-form textarea:focus { outline:none; border-color:var(--accent); box-shadow:none; }
.ct-form div.wpforms-container-full .wpforms-form textarea,
.apply-form div.wpforms-container-full .wpforms-form textarea { resize:vertical; min-height:110px; }
.ct-form div.wpforms-container-full .wpforms-form .wpforms-uploader,
.apply-form div.wpforms-container-full .wpforms-form .wpforms-uploader { border:1px dashed var(--hairline); border-radius:0; padding:1rem; font-family:var(--sans); font-size:.85rem; color:var(--body); }
.ct-form div.wpforms-container-full .wpforms-form button.wpforms-submit,
.apply-form div.wpforms-container-full .wpforms-form button.wpforms-submit { display:inline-flex; align-items:center; gap:.65rem; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; padding:.9rem 1.9rem; height:auto; background:var(--ink); color:#fff; border:1px solid var(--ink); border-radius:0; cursor:pointer; margin-top:.3rem; transition:all .3s ease; }
.ct-form div.wpforms-container-full .wpforms-form button.wpforms-submit:hover,
.apply-form div.wpforms-container-full .wpforms-form button.wpforms-submit:hover { background:var(--ink-soft); border-color:var(--ink-soft); }
.ct-form .wpforms-confirmation-container-full, .apply-form .wpforms-confirmation-container-full { border:1px solid var(--accent-light); border-radius:0; padding:1.3rem 1.5rem; background:#fff; box-shadow:0 10px 26px rgba(22,56,78,.06); }
.ct-form .wpforms-confirmation-container-full p, .apply-form .wpforms-confirmation-container-full p { font-size:.9rem; color:var(--body); }
