:root {
  --ink: #191716;
  --body: #3d3835;
  --muted: #6f6862;
  --faint: #9e9690;
  --rule: #ddd8d3;
  --cream: #f8f6f3;
  --paper: #ffffff;
  --green: #1b6b3a;
  --green-dark: #14532d;
  --green-light: #e1f5e8;
  --green-glow: #4ade80;
  --amber: #b45309;
  --serif: 'Literata', Georgia, serif;
  --sans: 'Libre Franklin', system-ui, sans-serif;
  --max-narrow: 880px;
  --max-wide: 1280px;
  --gap: 6rem;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:17px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:var(--sans); color:var(--body); background:var(--cream); line-height:1.72; }

a { color:var(--green); text-decoration:none; }
a:hover { text-decoration:underline; }

/* ---- NAV ---- */
.nav { position:sticky; top:0; z-index:1000; background:rgba(255,255,255,0.96); backdrop-filter:blur(14px); border-bottom:1px solid var(--rule); }
.nav-inner { max-width:1440px; margin:0 auto; padding:0.4rem 2.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.nav-name { cursor:pointer; display:flex; align-items:center; flex-shrink:0; }
.nav-name img { height:94px; width:auto; display:block; }
.nav-links { display:flex; gap:0.9rem; list-style:none; flex-wrap:nowrap; align-items:center; }
.nav-links a { font-size:0.7rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.05em; transition:color 0.15s; white-space:nowrap; }
.nav-links a:hover, .nav-links a.active { color:var(--green); text-decoration:none; }
.nav-lang { display:flex; gap:0.4rem; margin-left:0.5rem; flex-shrink:0; }
.nav-lang a { font-size:0.68rem; font-weight:600; padding:0.18rem 0.45rem; border:1px solid var(--rule); border-radius:3px; color:var(--muted); }
.nav-lang a:hover { border-color:var(--green); color:var(--green); text-decoration:none; }
.nav-lang a.active { background:var(--green); color:#fff; border-color:var(--green); }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; color:var(--ink); }

/* ---- PAGE SECTIONS ---- */

.section { max-width:var(--max-narrow); margin:0 auto; padding:0 1.5rem var(--gap); }
.section-wide { max-width:var(--max-wide); }

.section h2 { font-family:var(--serif); font-size:1.7rem; font-weight:600; color:var(--ink); line-height:1.2; margin-bottom:1.3rem; letter-spacing:-0.015em; }
.section h3 { font-family:var(--serif); font-size:1.1rem; font-weight:500; color:var(--ink); margin-bottom:0.5rem; }
.section p { margin-bottom:1rem; }
.section p:last-child { margin-bottom:0; }

.divider { max-width:var(--max-narrow); margin:0 auto; padding:0 1.5rem; }
.divider hr { border:none; border-top:1px solid var(--rule); margin-bottom:var(--gap); }

/* ---- HERO ---- */
.hero-wrapper { background:linear-gradient(150deg, var(--cream) 40%, #c6e9cf 70%, #a7ddb5 100%); border-bottom:1px solid var(--rule); overflow:hidden; position:relative; }
.hero { max-width:1440px; margin:0 auto; padding:5rem 0 3rem 4rem; position:relative; z-index:2; display:flex; align-items:center; min-height:740px; }
.hero-text { max-width:700px; position:relative; z-index:3; }
.hero-photo { position:absolute; right:-3%; bottom:0; width:60%; z-index:1; }
.hero-photo img { width:100%; height:auto; display:block; }
.hero-photo::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:400px; height:400px; border-radius:50%; background:radial-gradient(circle, rgba(27,107,58,0.1) 0%, transparent 65%); z-index:-1; }
.hero h1 { font-family:var(--serif); font-size:3.6rem; font-weight:700; color:var(--ink); line-height:1.06; letter-spacing:-0.03em; margin-bottom:1.5rem; }
.hero-eyebrow { font-size:0.85rem; font-weight:600; color:var(--green); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:0.75rem; display:inline-block; border-bottom:2px solid var(--green); padding-bottom:0.2rem; }
.hero-lede { font-size:1.12rem; line-height:1.65; color:var(--body); margin-bottom:2rem; max-width:480px; }
.hero-tags { display:flex; flex-wrap:wrap; gap:0.5rem; }
.hero-tags span { font-size:0.76rem; font-weight:500; padding:0.35rem 0.75rem; background:rgba(255,255,255,0.75); border:1px solid rgba(27,107,58,0.15); color:var(--green-dark); border-radius:3px; backdrop-filter:blur(4px); }

/* ---- THEMES ACCORDION ---- */
.pillar { margin-top:2rem; border:1px solid var(--rule); border-radius:8px; overflow:hidden; transition:border-color 0.3s; }
.pillar:hover { border-color:var(--green); }
.pillar-header { padding:1.5rem 2rem; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; background:var(--paper); }
.pillar-header:hover { background:var(--green-light); }
.pillar-letter { font-family:var(--serif); font-size:2.2rem; font-weight:700; color:var(--green); line-height:1; flex-shrink:0; width:2.5rem; }
.pillar-preview { flex:1; }
.pillar-preview h3 { font-family:var(--serif); font-size:1.15rem; font-weight:600; color:var(--ink); margin:0 0 0.3rem; }
.pillar-preview .pillar-sub { font-size:0.8rem; color:var(--green); font-weight:600; margin:0; }
.pillar-stat { text-align:center; flex-shrink:0; min-width:100px; }
.pillar-stat .stat-num { font-family:var(--serif); font-size:2rem; font-weight:700; color:var(--green); line-height:1; }
.pillar-stat .stat-label { font-size:0.68rem; color:var(--muted); margin-top:0.2rem; line-height:1.3; }
.pillar-toggle { font-size:1.2rem; color:var(--muted); transition:transform 0.3s; flex-shrink:0; }
.pillar.open .pillar-toggle { transform:rotate(180deg); }
.pillar-body { max-height:0; overflow:hidden; transition:max-height 0.5s ease; }
.pillar.open .pillar-body { max-height:3000px; }
.pillar-content { padding:0 2rem 2rem; }
.pillar-content p { margin-bottom:1rem; font-size:0.92rem; line-height:1.7; }
.pillar-content p:last-child { margin-bottom:0; }
.pillar-content strong { color:var(--ink); }
.stat-callout { display:flex; gap:1.5rem; margin:1.5rem 0; padding:1.2rem 1.5rem; background:var(--green-light); border-radius:6px; border-left:4px solid var(--green); }
.stat-callout .sc-num { font-family:var(--serif); font-size:1.8rem; font-weight:700; color:var(--green); line-height:1; flex-shrink:0; }
.stat-callout .sc-text { font-size:0.85rem; color:var(--green-dark); line-height:1.5; }

/* ---- TIMELINE ---- */
.timeline { position:relative; margin-top:2.5rem; padding-left:2.8rem; }
.timeline::before { content:''; position:absolute; left:0.55rem; top:0.8rem; bottom:0.8rem; width:2px; background:var(--rule); }
.tl-node { position:relative; margin-bottom:1.2rem; }
.tl-node:last-child { margin-bottom:0; }
.tl-node::before { content:''; position:absolute; left:-2.25rem; top:1.4rem; width:12px; height:12px; border-radius:50%; background:var(--paper); border:2.5px solid var(--green); z-index:1; transition:background 0.3s; }
.tl-node.tl-open::before, .tl-node.tl-active::before { background:var(--green); }
.tl-tile { cursor:pointer; padding:1.2rem 1.5rem; background:var(--paper); border:1px solid var(--rule); border-radius:8px; transition:border-color 0.3s, box-shadow 0.3s; }
.tl-tile:hover, .tl-node.tl-open .tl-tile { border-color:var(--green); box-shadow:0 2px 12px rgba(27,107,58,0.08); }
.tl-tile h3 { font-family:var(--serif); font-size:1.1rem; font-weight:600; color:var(--ink); margin:0 0 0.2rem; }
.tl-tile .tl-sub { font-size:0.78rem; font-weight:600; color:var(--green); margin:0; text-transform:uppercase; letter-spacing:0.03em; }
.tl-body { max-height:0; overflow:hidden; transition:max-height 0.45s cubic-bezier(0.4,0,0.2,1); }
.tl-node.tl-open .tl-body { max-height:2000px; }
.tl-node.tl-open .tl-tile { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom-color:transparent; }
.tl-body-inner { padding:1.2rem 1.5rem 1.5rem; background:var(--paper); border:1px solid var(--green); border-top:none; border-radius:0 0 8px 8px; opacity:0; transition:opacity 0.3s ease 0.1s; }
.tl-node.tl-open .tl-body-inner, .tl-node:hover .tl-body-inner { opacity:1; }
.tl-body-inner p { font-size:0.92rem; line-height:1.7; margin-bottom:1rem; }
.tl-body-inner p:last-child { margin-bottom:0; }
@media(min-width:1025px){
  .tl-node:hover::before { background:var(--green); }
  .tl-node:hover .tl-tile { border-color:var(--green); box-shadow:0 2px 12px rgba(27,107,58,0.08); border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom-color:transparent; }
  .tl-node:hover .tl-body { max-height:2000px; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1) 0.15s; }
  .tl-node:not(:hover) .tl-body:not(.tl-open .tl-body) { transition:max-height 0.35s cubic-bezier(0.4,0,0.2,1) 0.1s; }
}
@media(max-width:600px){
  .timeline { padding-left:2rem; }
  .tl-node::before { left:-1.45rem; width:10px; height:10px; }
  .timeline::before { left:0.45rem; }
  .tl-tile { padding:1rem 1.2rem; }
  .tl-body-inner { padding:1rem 1.2rem 1.2rem; }
}

/* ---- CARDS ---- */
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.5rem; }
.card { padding:1.4rem; background:var(--paper); border:1px solid var(--rule); border-radius:6px; transition:border-color 0.3s, transform 0.3s; position:relative; overflow:hidden; cursor:pointer; }
.card:hover, .card.active { border-color:var(--green); transform:translateY(-2px); }
.card .letter { font-family:var(--serif); font-size:2rem; font-weight:700; color:var(--green); line-height:1; }
.card .label { font-weight:700; font-size:0.85rem; color:var(--ink); margin:0.3rem 0 0.5rem; text-transform:uppercase; letter-spacing:0.03em; }
.card p { font-size:0.83rem; line-height:1.5; color:var(--muted); margin:0; }
.card-tags { position:absolute; top:0; left:0; right:0; bottom:0; padding:1.4rem; font-size:0.78rem; line-height:1.8; color:#fff; background:var(--green); display:flex; align-items:center; justify-content:center; text-align:center; transform:translateY(100%); opacity:0; transition:transform 0.35s ease, opacity 0.35s ease; border-radius:5px; }
.card:hover .card-tags, .card.active .card-tags { transform:translateY(0); opacity:1; }

.cards-2col { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }

/* ---- POSITIONS TABLE ---- */
.pos-list { display:flex; flex-direction:column; gap:0; border:1px solid var(--rule); border-radius:8px; overflow:visible; margin-top:1rem; }
.pos-item { display:grid; grid-template-columns:1fr auto; gap:1rem; padding:1rem 1.2rem; background:var(--paper); align-items:start; border-bottom:1px solid var(--rule); transition:background 0.15s, box-shadow 0.2s; position:relative; cursor:pointer; text-decoration:none; color:inherit; }
.pos-item:first-child { border-radius:8px 8px 0 0; }
.pos-item:last-child { border-bottom:none; border-radius:0 0 8px 8px; }
.pos-item:only-child { border-radius:8px; }
.pos-item:hover, .pos-item:active { background:#fdfcfa; box-shadow:0 0 14px rgba(45,106,79,0.18); z-index:1; }
.pos-item .role { font-weight:600; font-size:0.9rem; color:var(--ink); }
.pos-item .org { font-size:0.85rem; color:var(--green); font-weight:500; }
.pos-item .note { font-size:0.8rem; color:var(--muted); margin-top:0.15rem; }
.pos-item .dates { font-size:0.76rem; color:var(--faint); white-space:nowrap; padding-top:0.1rem; }
.pos-item.current .role::before { content:''; display:inline-block; width:6px; height:6px; background:var(--green); border-radius:50%; margin-right:0.5rem; vertical-align:middle; position:relative; top:-1px; }
.category-header { display:flex; align-items:baseline; gap:0.6rem; margin-bottom:0.3rem; }
.category-header .count { font-size:0.75rem; color:var(--faint); font-weight:400; }
.category-intro { font-size:0.82rem; color:var(--muted); margin-bottom:0.5rem; font-style:italic; }
.edu-list { display:flex; flex-direction:column; gap:0; border:1px solid var(--rule); border-radius:8px; overflow:visible; margin-top:1rem; }
.edu-item { display:grid; grid-template-columns:1fr auto; gap:1rem; padding:1rem 1.2rem; background:var(--paper); align-items:start; border-bottom:1px solid var(--rule); transition:background 0.15s, box-shadow 0.2s; position:relative; cursor:pointer; text-decoration:none; color:inherit; }
.edu-item:first-child { border-radius:8px 8px 0 0; }
.edu-item:last-child { border-bottom:none; border-radius:0 0 8px 8px; }
.edu-item:hover, .edu-item:active { background:#fdfcfa; box-shadow:0 0 14px rgba(45,106,79,0.18); z-index:1; }
.edu-item .degree { font-weight:600; font-size:0.9rem; }
.edu-item .school { font-size:0.85rem; color:var(--green); font-weight:500; }
.edu-item .year { font-size:0.76rem; color:var(--faint); white-space:nowrap; }
.collapsible-toggle { display:flex; align-items:center; gap:0.5rem; background:none; border:1px solid var(--rule); border-radius:8px; padding:0.7rem 1.2rem; width:100%; cursor:pointer; font-family:inherit; font-size:0.85rem; color:var(--muted); transition:all 0.2s; margin-top:1rem; }
.collapsible-toggle:hover { border-color:var(--green); color:var(--green); }
.collapsible-toggle .arrow { transition:transform 0.25s; font-size:0.7rem; }
.collapsible-toggle.open .arrow { transform:rotate(90deg); }
.collapsible-content { max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.collapsible-content.open { max-height:1400px; }
.pos-list.past .pos-item { background:var(--cream); }
.pos-list.past .pos-item .role { font-weight:500; color:var(--muted); }
.pos-list.past .pos-item .role::before { display:none; }
.pos-list.past .pos-item .org { color:var(--faint); }
.article-card:hover { background:#fdfcfa !important; box-shadow:0 0 14px rgba(45,106,79,0.18); z-index:1; }
#article-reader { font-family:var(--serif); }
#article-reader h1 { font-size:2rem; line-height:1.25; margin-bottom:0.5rem; font-family:var(--serif); }
#article-reader .article-meta { font-size:0.82rem; color:var(--muted); margin-bottom:2rem; font-family:var(--sans); }
#article-reader .article-tag { font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--green); margin-bottom:0.5rem; font-family:var(--sans); }
#article-reader .article-body { font-size:1.05rem; line-height:1.75; color:var(--ink); }
#article-reader .article-body p { margin-bottom:1.25rem; }
#article-reader .article-body h2 { font-size:1.4rem; margin:2rem 0 0.75rem; font-family:var(--serif); }
#article-reader .article-body h3 { font-size:1.15rem; margin:1.5rem 0 0.5rem; font-family:var(--serif); }
#article-reader .article-body img { max-width:100%; height:auto; border-radius:6px; margin:1.5rem 0; }
#article-reader .article-body blockquote { border-left:3px solid var(--green); padding-left:1.2rem; margin:1.5rem 0; font-style:italic; color:var(--muted); }
#article-reader .article-body a { color:var(--green); }
#article-reader .article-feature-img { width:100%; max-height:400px; object-fit:cover; border-radius:8px; margin-bottom:2rem; }
.speaking-item:hover { background:#fdfcfa !important; }
.speaking-filter:hover { border-color:var(--green) !important; color:var(--green) !important; }
.research-featured { margin:1.5rem 0; padding:1.8rem 2rem; background:var(--paper); border:2px solid var(--green); border-radius:12px; position:relative; }
.research-featured::before { content:'RESEARCH'; position:absolute; top:-0.6rem; left:1.5rem; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; color:#fff; background:var(--green); padding:0.15rem 0.6rem; border-radius:3px; }
.research-featured .rf-title { font-family:var(--serif); font-size:1rem; font-weight:700; color:var(--ink); line-height:1.4; margin-bottom:1rem; }
.research-featured p { font-size:0.88rem; line-height:1.6; margin-bottom:0.8rem; }
.research-featured p:last-child { margin-bottom:0; }
.rf-toggle { display:inline-block; font-size:0.8rem; font-weight:600; color:var(--green); cursor:pointer; border:1px solid var(--green); border-radius:4px; padding:0.3rem 0.7rem; margin:0.5rem 0; background:none; transition:all 0.15s; }
.rf-toggle:hover { background:var(--green-light); }
.rf-detail { max-height:0; overflow:hidden; transition:max-height 0.4s ease; }
.rf-detail.open { max-height:500px; }
.article-card:active { box-shadow:0 0 16px rgba(45,106,79,0.25); }
.mindmap-node--leaf { overflow:hidden; }
.mindmap-node--leaf .leaf-desc { position:absolute; top:0; left:0; right:0; bottom:0; padding:1rem; font-size:0.78rem; line-height:1.5; color:#fff; background:var(--green); display:flex; align-items:center; text-align:left; transform:translateY(100%); opacity:0; transition:transform 0.35s ease, opacity 0.35s ease; border-radius:9px; }
.mindmap-node--leaf:hover .leaf-desc { transform:translateY(0); opacity:1; }
.mindmap-node--leaf:hover { border-color:var(--green) !important; z-index:3; box-shadow:0 0 14px rgba(45,106,79,0.18); }
.mindmap-node--leaf:active { box-shadow:0 0 16px rgba(45,106,79,0.25); }
.mindmap-node--root:hover { box-shadow:0 0 14px rgba(45,106,79,0.18); }
.mindmap-svg line { stroke:#1b6b3a; stroke-width:2; }
.mindmap-svg circle { fill:#1b6b3a; }

/* ---- RESEARCH BOX ---- */
/* research-box removed - now using .research-featured */
.method-tags { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:1rem; }
.method-tags span { font-size:0.73rem; font-weight:500; padding:0.22rem 0.55rem; background:var(--cream); border:1px solid var(--rule); border-radius:3px; color:var(--muted); }

/* ---- MEDIA LIST ---- */
.media-item { padding:0.9rem 0; border-bottom:1px solid var(--rule); }
.media-item:last-child { border-bottom:none; }
.media-item .outlet { font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--faint); }
.media-item .headline { font-weight:500; font-size:0.92rem; }
.media-item .headline a { color:var(--ink); }
.media-item .headline a:hover { color:var(--green); }
.media-item .ctx { font-size:0.82rem; color:var(--muted); margin-top:0.15rem; }

/* ---- ENDORSEMENT ---- */
.endorsement { padding:1.5rem; background:var(--paper); border:1px solid var(--rule); border-radius:6px; margin-bottom:1rem; }
.endorsement blockquote { font-family:var(--serif); font-size:0.95rem; font-style:italic; color:var(--body); line-height:1.6; margin-bottom:0.75rem; }
.endorsement .attr { font-size:0.82rem; font-weight:600; color:var(--ink); }
.endorsement .attr span { font-weight:400; color:var(--muted); }

/* ---- CONTACT / FOOTER DARK ---- */
.contact-dark { background:var(--ink); color:#c9c3bd; padding:4rem 1.5rem; margin-top:var(--gap); }
.contact-dark .inner { max-width:var(--max-narrow); margin:0 auto; }
.contact-dark h2 { font-family:var(--serif); color:#f5f3f0; font-size:1.5rem; margin-bottom:1rem; }
.contact-dark p { color:#9e9690; margin-bottom:0.75rem; font-size:0.92rem; }
.contact-links { display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.5rem; }
.contact-links a { display:inline-flex; padding:0.45rem 0.9rem; font-size:0.82rem; font-weight:500; color:#f5f3f0; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12); border-radius:4px; transition:background 0.15s; }
.contact-links a:hover { background:rgba(255,255,255,0.14); text-decoration:none; }

.footer-action { background:var(--green); padding:2rem 4rem; display:flex; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; }
.footer-action-newsletter { display:flex; gap:0.4rem; flex:1; max-width:420px; }
.footer-action-newsletter input { flex:1; padding:0.5rem 0.8rem; border:none; border-radius:4px; font-size:0.82rem; font-family:var(--sans); min-width:180px; }
.footer-action-newsletter button { padding:0.5rem 1rem; background:var(--green-dark); color:#fff; border:none; border-radius:4px; font-size:0.8rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:background 0.15s; }
.footer-action-newsletter button:hover { background:var(--ink); }
.footer-action-label { color:#fff; font-size:0.82rem; font-weight:600; white-space:nowrap; }
.footer-action-btns { display:flex; gap:0.5rem; }
.footer-action-btns a { padding:0.5rem 1rem; border:1px solid rgba(255,255,255,0.5); border-radius:4px; color:#fff; font-size:0.8rem; font-weight:600; text-decoration:none; transition:all 0.15s; white-space:nowrap; }
.footer-action-btns a:hover { background:rgba(255,255,255,0.15); border-color:#fff; text-decoration:none; }
.footer { max-width:1440px; margin:0 auto; padding:2.5rem 4rem 2rem; border-top:1px solid var(--rule); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:2.5rem; }
.footer-col h4 { font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink); margin-bottom:0.8rem; }
.footer-col p, .footer-col a { font-size:0.82rem; color:var(--muted); line-height:1.7; display:block; }
.footer-col a:hover { color:var(--green); }
.footer-bottom { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--rule); text-align:center; font-size:0.74rem; color:var(--faint); }

/* ---- NEWSLETTER INLINE ---- */
.newsletter-box { background:var(--green-light); border:1px solid #b7e4c7; border-radius:6px; padding:1.5rem; margin-top:1.5rem; }
.newsletter-box .cta { font-weight:600; font-size:0.92rem; color:var(--green-dark); margin-bottom:0.4rem; }
.newsletter-box p { font-size:0.83rem; color:var(--green); margin:0; }

/* ---- SUPPORT CTA ---- */
.support-card { padding:2rem; background:var(--paper); border:2px solid var(--green-light); border-radius:8px; margin-bottom:1.2rem; }
.support-card h3 { color:var(--green-dark); }

/* ---- RESPONSIVE ---- */
@media(max-width:768px) {
  html { font-size:16px; }
  .hero-wrapper { min-height:auto; }
  .hero { min-height:auto; padding:3rem 1.5rem 0; flex-direction:column; }
  .hero-text { max-width:100%; }
  .hero-photo { position:relative; width:80%; margin:0 auto; }
  .hero h1 { font-size:2.2rem; }
  .cards { grid-template-columns:1fr 1fr; }
  .cards-2col { grid-template-columns:1fr; }
  .pos-item { grid-template-columns:1fr; }
  .pos-item .dates { text-align:left; }
  .edu-item { grid-template-columns:1fr; }
  .edu-item .year { text-align:left; }
  .nav-links { display:none; }
  .nav-links.open { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--cream); border-bottom:1px solid var(--rule); padding:1rem 1.5rem; gap:0.8rem; z-index:999; }
  .nav-toggle { display:block; }
  .nav-lang { display:none; }
  .nav-name img { height:68px; }
  .footer-grid { grid-template-columns:1fr; gap:1.5rem; }
  .footer { padding:2rem 1.5rem; }
  .footer-action { padding:1.5rem; flex-direction:column; align-items:stretch; border-radius:0; }
  .footer-action-newsletter { max-width:100%; }
  .contact-grid { grid-template-columns:1fr !important; }
  .contact-form-row { grid-template-columns:1fr !important; }
  .mindmap-branches { grid-template-columns:1fr 1fr !important; }
}
@media(max-width:480px) {
  :root { --gap:4rem; }
  .hero h1 { font-size:1.7rem; }
  .cards { grid-template-columns:1fr; }
}
