:root {
  --navy:  #113461;
  --blue:  #006BAD;
  --teal:  #22BABC;
  --teal-deep: #137072;
  --amber: #DA850E;
  --white: #FFFFFF;
  --off:   #F5F7FA;
  --light: #E6EDF4;
  --dark:  #4A5568;
  --text:  #2D3748;
  --nav-h: 104px;
}
html { color-scheme: light; }
.skip-link { position:absolute; left:0; top:-48px; padding:10px 18px; background:var(--navy); color:var(--white); text-decoration:none; font-size:14px; font-weight:700; z-index:10000; transition:top .2s; }
.skip-link:focus { top:0; }
/* H1 elements receive programmatic focus on hash navigation so screen readers
   announce the route change. Suppress the visible focus ring unless the user
   is keyboard-navigating (:focus-visible). Keyboard users still see the ring;
   mouse-driven and programmatic focus do not. ADA-compliant. */
h1[tabindex="-1"]:focus:not(:focus-visible) { outline: none; }
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; }
body { font-family:'Roboto',sans-serif; color:var(--text); background:var(--white); overflow-x:hidden; }

/* NAV */
nav { overflow:visible; position:fixed; top:0; left:0; right:0; height:var(--nav-h); background:rgba(255,255,255,.97); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid var(--light); display:flex; align-items:center; justify-content:space-between; padding:0 5%; z-index:1000; transition:box-shadow .3s; }
nav.scrolled { box-shadow:0 2px 24px rgba(17,52,97,.1); }
.nav-logo img { height:72px; width:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:28px; list-style:none; }
.nav-links a { font-size:12px; font-weight:500; letter-spacing:.07em; text-transform:uppercase; color:var(--navy); text-decoration:none; transition:color .2s; }
.nav-links a:hover { color:var(--blue); }
.nav-links a.nav-active { color:var(--blue); border-bottom:2px solid var(--blue); padding-bottom:2px; }
.nav-cta { background:var(--navy); color:var(--white)!important; padding:9px 20px; border-radius:2px; transition:background .2s!important; border-bottom:none!important; display:inline-block; line-height:1.4; }
.nav-cta:hover { background:var(--blue)!important; }
.nav-cta.nav-active { background:var(--blue)!important; border-bottom:none!important; padding-bottom:9px!important; }
.nav-right { display:flex; align-items:center; gap:14px; }
.nav-social { display:flex; gap:9px; }
.nav-social a { color:var(--navy); opacity:.45; transition:opacity .2s; display:flex; align-items:center; justify-content:center; min-width:24px; min-height:24px; }
.nav-social a:hover { opacity:1; }
.nav-social svg { width:16px; height:16px; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
.hamburger span { display:block; width:24px; height:2px; background:var(--navy); }

/* PAGES */
.page-section { display:none; }
.page-section.active { display:block; }

/* HERO */
.hero { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; padding-top:var(--nav-h); }
.hero-left { display:flex; flex-direction:column; justify-content:center; padding:80px 6% 80px 8%; }
.hero-eyebrow { font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--teal-deep); margin-bottom:20px; }
.hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4.2vw,66px); font-weight:300; line-height:1.1; color:var(--navy); margin-bottom:24px; }
.hero-title em { font-style:italic; color:var(--teal-deep); }
.hero-sub { font-size:16px; font-weight:300; line-height:1.85; color:var(--dark); max-width:460px; margin-bottom:36px; }
.hero-tagline { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; color:var(--navy); margin-bottom:40px; padding-left:16px; border-left:3px solid var(--teal-deep); }
.btn-primary { display:inline-block; background:var(--navy); color:var(--white); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:14px 36px; text-decoration:none; border-radius:2px; transition:background .2s,transform .2s; align-self:flex-start; }
.btn-primary:hover { background:var(--blue); transform:translateY(-1px); }
.hero-right { position:relative; overflow:hidden; background:#ffffff; }
.hero-right::before { display:none; }
.hero-right img { width:100%; height:100%; object-fit:cover; opacity:.92; }
.hero-diagonal { display:none; }

/* APPROACH */
.approach { padding:92px 8% 92px 8%; }
.approach .section-eyebrow, .approach .section-title { padding-left:0; }
.approach-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--light); }
.section-eyebrow { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--teal-deep); margin-bottom:12px; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(26px,2.8vw,40px); font-weight:300; color:var(--navy); margin-bottom:52px; max-width:920px; line-height:1.3; }
.section-title em { font-style:italic; color:var(--teal-deep); }
.approach-item { background:var(--white); padding:40px 32px; border-bottom:3px solid transparent; transition:border-color .3s; }
.approach-item:hover { border-color:var(--teal-deep); }
.approach-item h3 { font-family:'Cormorant Garamond',serif; font-size:23px; font-weight:400; color:var(--navy); margin-bottom:12px; }
.approach-item p { font-size:14px; font-weight:300; line-height:1.85; color:var(--dark); }

/* STATS */
.stats-strip { background:var(--navy); padding:52px 8%; display:grid; grid-template-columns:repeat(2,1fr); }
.stat-item { text-align:center; padding:20px 28px; border-right:1px solid rgba(255,255,255,.1); display:flex; flex-direction:column; align-items:center; }
.stat-item:last-child { border-right:none; }
.stat-number { font-family:'Cormorant Garamond',serif; font-size:52px; font-weight:300; color:var(--teal); line-height:1; margin-bottom:12px; display:block; }
.stat-item:nth-child(2) .stat-number { color:var(--amber); }
.stat-label { font-size:13px; font-weight:300; color:rgba(255,255,255,.8); max-width:180px; line-height:1.55; display:block; }

/* TESTIMONIAL */
.testimonial-band { padding:92px 8%; background:var(--off); }
.testimonial-featured { max-width:780px; margin:0 auto; text-align:center; }
.quote-mark { font-family:'Cormorant Garamond',serif; font-size:90px; font-weight:300; color:var(--teal-deep); line-height:.5; margin-bottom:26px; opacity:.6; }
.testimonial-text { font-family:'Cormorant Garamond',serif; font-size:clamp(18px,2vw,25px); font-weight:300; font-style:italic; color:var(--navy); line-height:1.65; margin-bottom:32px; }
.testimonial-attr { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--blue); }
.testimonial-title-attr { font-size:12px; font-weight:300; color:var(--dark); margin-top:5px; }

/* CTA BAND */
.cta-band { background:var(--navy); padding:92px 8%; display:grid; grid-template-columns:1fr auto; align-items:center; gap:52px; }
.cta-band h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(32px,3.6vw,50px); font-weight:300; color:var(--white); line-height:1.15; }
.cta-band h2 em { color:var(--teal); font-style:italic; }
.btn-light { display:inline-block; background:var(--white); color:var(--navy); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:15px 40px; text-decoration:none; border-radius:2px; white-space:nowrap; transition:background .2s,color .2s; }
.btn-light:hover { background:var(--amber); color:var(--white); }

/* FOOTER */
footer { background:#0a1829; padding:52px 8% 32px; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; margin-bottom:40px; align-items:start; }
.footer-col-brand { padding-top:0; }
.footer-logo { margin-bottom:4px; }
.footer-logo img { height:64px; width:auto; display:block; }
.footer-tagline { font-family:'Cormorant Garamond',serif; font-size:15px; font-style:italic; color:rgba(255,255,255,.42); margin-bottom:6px; margin-top:6px; }
.footer-location { font-size:12px; color:rgba(255,255,255,.32); line-height:1.8; font-weight:300; }
.footer-social { display:flex; gap:9px; margin-top:14px; }
.footer-social a { width:32px; height:32px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); transition:color .2s; }
.footer-social a svg { width:18px; height:18px; }
.footer-social a:hover { color:var(--teal); }
.footer-col { padding-top:0; }
.footer-col h4, .footer-col .footer-heading { font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--teal); margin-bottom:16px; }
.footer-col a, .footer-col p { display:block; font-size:13px; color:rgba(255,255,255,.48); text-decoration:none; margin-bottom:8px; padding:4px 0; transition:color .2s; font-weight:300; }
.footer-col a:hover { color:var(--white); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding-top:20px; display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:11px; color:rgba(255,255,255,.22); }

/* PAGE HERO */
.page-hero { background:var(--navy); padding:var(--nav-h) 8% 0; position:relative; overflow:hidden; min-height:calc(var(--nav-h) + 260px); display:flex; flex-direction:column; justify-content:center; }
.page-hero::after { content:''; position:absolute; right:-80px; top:-80px; width:400px; height:400px; border-radius:50%; background:rgba(34,186,188,.05); }
.page-hero-eyebrow { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--teal); margin-bottom:12px; }
.page-hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4vw,58px); font-weight:300; color:var(--white); line-height:1.15; max-width:660px; }

/* SERVICES */
.services-intro { padding:68px 8% 0; max-width:740px; }
.services-intro p { font-size:18px; font-weight:300; line-height:1.8; color:var(--dark); }
.service-cards { padding:44px 8% 88px; }
.service-card-full { display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-bottom:2px; background:var(--light); overflow:hidden; }
.service-card-full.reverse .service-img { order:2; }
.service-card-full.reverse .service-content { order:1; }
.service-img { overflow:hidden; position:relative; min-height:340px; }
.service-img img { width:100%; height:100%; object-fit:cover; object-position:center center; display:block; transition:transform .6s; }
.service-card-full:hover .service-img img { transform:scale(1.03); }
.service-content { background:var(--white); padding:52px 48px; display:flex; flex-direction:column; justify-content:center; }
.service-icon { width:42px; height:42px; margin-bottom:20px; object-fit:contain; }
.service-header { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.service-header .service-icon { margin-bottom:0; }
.service-header .section-eyebrow { margin-bottom:0; }
.page-hero h1 em { font-style:italic; color:var(--teal); }
.service-content h2 em { font-style:italic; color:var(--teal-deep); }
.service-content .service-hook { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:400; font-size:20px; line-height:1.3; color:var(--teal-deep); margin:0 0 16px; }
.service-content p.service-descriptor { font-family:'Roboto',sans-serif; font-style:normal; font-weight:400; font-size:14px; line-height:1.7; color:var(--dark); margin:0 0 20px; }

.service-content h2 { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:400; color:var(--navy); line-height:1.12; margin-bottom:6px; }
.service-content p { font-size:14px; font-weight:300; line-height:1.85; color:var(--dark); margin-bottom:22px; }
.service-list { list-style:none; border-top:1px solid var(--light); padding-top:18px; }
.service-list li { font-size:13px; color:var(--dark); padding:5px 0 5px 15px; position:relative; font-weight:300; }
.service-list li::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--teal-deep); }

/* ABOUT */
.about-split { display:grid; grid-template-columns:1fr 1fr; min-height:580px; }
.about-image { overflow:hidden; }
.about-image img { width:100%; height:100%; object-fit:cover; }
.about-content { padding:68px 7% 68px 8%; display:flex; flex-direction:column; justify-content:center; }
.about-content h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(24px,2.6vw,38px); font-weight:300; color:var(--navy); margin-bottom:22px; line-height:1.25; }
.about-content p { font-size:14px; font-weight:300; line-height:1.95; color:var(--dark); margin-bottom:16px; }
.credentials-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:24px; }
.credential-tag { font-size:10px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--navy); background:var(--off); border:1px solid var(--light); padding:5px 11px; border-radius:2px; }

/* Cornell badge */
.cornell-badge { margin-top:32px; display:flex; align-items:center; gap:20px; padding:20px 24px; background:var(--white); border:1px solid #dce4ef; border-radius:4px; box-shadow:0 2px 12px rgba(17,52,97,.08); }
.cornell-seal-svg { flex-shrink:0; width:72px; height:72px; object-fit:contain; display:block; }
.cornell-badge-text { }
.cornell-badge-label { font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--teal-deep); margin-bottom:4px; }
.cornell-badge-name { font-size:15px; font-weight:700; color:var(--navy); line-height:1.3; margin-bottom:3px; }
.cornell-badge-school { font-size:12px; font-weight:300; color:var(--dark); }
.cornell-badge-text { }
.cornell-badge-label { font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-deep); margin-bottom:3px; }
.cornell-badge-name { font-size:13px; font-weight:500; color:var(--navy); line-height:1.3; }
.cornell-badge-school { font-size:11px; font-weight:300; color:var(--dark); margin-top:2px; }

.about-mission { padding:68px 8%; background:var(--off); }
.mission-inner { max-width:720px; margin:0 auto; text-align:center; }
.mission-inner blockquote { font-family:'Cormorant Garamond',serif; font-size:clamp(19px,2.2vw,28px); font-weight:300; font-style:italic; color:var(--navy); line-height:1.55; margin-bottom:22px; }
.testimonials-section { padding:68px 8%; }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
.testimonial-card { padding:32px 28px; border:1px solid var(--light); border-top:3px solid var(--teal-deep); background:#ffffff; }
.testimonial-card p { font-family:'Cormorant Garamond',serif; font-size:16px; font-style:italic; font-weight:300; line-height:1.78; color:#113461; margin-bottom:22px; }
.attr-name { font-size:12px; font-weight:700; color:var(--blue); letter-spacing:.05em; }
.attr-role { font-size:11px; color:var(--dark); margin-top:3px; font-weight:300; }

/* WORK */
.work-intro { padding:68px 8% 32px; max-width:740px; }
.work-intro p { font-size:18px; font-weight:300; line-height:1.8; color:var(--dark); }
.work-section-title { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--navy); margin:0 8% 32px; border-bottom:1px solid var(--light); padding-bottom:14px; }
.videos-grid { padding:0 8%; display:grid; grid-template-columns:repeat(2,1fr); gap:32px; margin-bottom:64px; }
.video-thumb-link { display:block; position:relative; padding-top:56.25%; overflow:hidden; background:var(--navy); text-decoration:none; border-radius:2px; }
.video-thumb-link img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .3s; }
.video-thumb-link img[src=""] , .video-thumb-link img:not([src]) { display:none; }
.video-thumb-link:hover img { opacity:.7; }
.video-play-btn { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2; pointer-events:none; }
.video-play-btn span { width:60px; height:60px; background:rgba(255,255,255,.92); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:transform .2s; pointer-events:none; }
.video-thumb-link:hover .video-play-btn span { transform:scale(1.1); }
.video-play-btn svg { width:22px; height:22px; fill:var(--navy); margin-left:4px; }
.video-watch { position:absolute; bottom:10px; right:10px; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--white); background:rgba(17,52,97,.8); padding:5px 9px; border-radius:2px; z-index:3; }
.video-meta { font-size:10px; font-weight:700; color:var(--teal-deep); letter-spacing:.06em; text-transform:uppercase; margin:16px 0 7px; }
.video-card h3 { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:400; color:var(--navy); margin-bottom:7px; line-height:1.3; }
.video-card p { font-size:13px; font-weight:300; line-height:1.78; color:var(--dark); }
.articles-grid { padding:0 8% 64px; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--light); }
.article-card { background:var(--white); padding:36px; display:flex; flex-direction:column; gap:9px; transition:background .22s; text-decoration:none; }
.article-card:hover { background:var(--off); }
.article-pub { font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--teal-deep); }
.article-card h3 { font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:400; color:var(--navy); line-height:1.35; }
.article-card p { font-size:13px; font-weight:300; color:var(--dark); line-height:1.75; flex:1; }
.article-link { font-size:11px; font-weight:700; color:var(--blue); letter-spacing:.06em; text-transform:uppercase; display:flex; align-items:center; gap:4px; transition:color .2s; }
.article-link::after { content:'→'; }
.article-card:hover .article-link { color:var(--amber); }

/* CONTACT */
.contact-split { display:grid; grid-template-columns:1fr 1fr; min-height:66vh; }
.contact-left { padding:48px 7% 48px 8%; background:var(--off); display:flex; flex-direction:column; justify-content:flex-start; padding-top:56px; }
.contact-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(24px,2.6vw,38px); font-weight:300; color:var(--navy); margin-bottom:18px; line-height:1.25; }
.contact-left > p { font-size:14px; font-weight:300; line-height:1.95; color:var(--dark); margin-bottom:32px; }
.contact-detail { display:flex; align-items:flex-start; gap:13px; margin-bottom:18px; }
.contact-detail-icon { width:36px; height:36px; background:var(--navy); border-radius:2px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-detail-icon svg { width:16px; height:16px; fill:var(--teal); }
.contact-detail-text { font-size:13px; color:var(--dark); line-height:1.6; font-weight:300; }
.contact-detail-text strong { display:block; font-weight:600; color:var(--navy); font-size:10px; letter-spacing:.07em; text-transform:uppercase; margin-bottom:2px; }
.contact-detail-text a { color:var(--blue); text-decoration:none; transition:color .2s; }
.contact-detail-text a:hover { color:var(--amber); }
.contact-right { padding:68px 8% 68px 7%; display:flex; flex-direction:column; justify-content:center; }
.contact-right h3 { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--navy); margin-bottom:9px; }
.contact-right .sub { font-size:14px; font-weight:300; color:var(--dark); margin-bottom:28px; line-height:1.6; }
.calendly-embed { border:1px solid var(--light); border-radius:3px; overflow:hidden; background:#ffffff; }

/* ADMIN */
.admin-login { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--off); padding-top:var(--nav-h); }
.login-box { background:var(--white); border:1px solid var(--light); padding:44px 40px; width:100%; max-width:380px; text-align:center; }
.login-box h1 { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--navy); margin-bottom:6px; }
.login-box p { font-size:13px; color:var(--dark); margin-bottom:26px; font-weight:300; }
.login-box input { width:100%; padding:12px 14px; border:1px solid var(--light); font-family:'Roboto',sans-serif; font-size:14px; color:var(--text); margin-bottom:12px; outline:none; transition:border-color .2s; }
.login-box input:focus { border-color:var(--blue); }
.login-box button { width:100%; padding:12px; background:var(--navy); color:var(--white); border:none; font-family:'Roboto',sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:background .2s; }
.login-box button:hover { background:var(--blue); }
.login-error { font-size:12px; color:#c53030; margin-top:9px; display:none; }
.admin-dashboard { display:none; padding-top:var(--nav-h); }
.admin-header { background:var(--navy); padding:26px 5%; display:flex; justify-content:space-between; align-items:center; }
.admin-header h1 { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; color:var(--white); }
.admin-header span { font-size:12px; color:var(--teal); }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--light); }
.admin-stat { background:var(--white); padding:22px 26px; text-align:center; }
.admin-stat .n { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:300; line-height:1; margin-bottom:4px; }
.admin-stat .l { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dark); }
.n-bug{color:#c53030;} .n-content{color:var(--amber);} .n-feature{color:var(--blue);} .n-feedback{color:#276749;}
.admin-body { padding:26px 5%; }
.admin-filters { display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap; }
.filter-btn { padding:5px 13px; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--light); background:var(--white); cursor:pointer; transition:all .2s; border-radius:2px; color:var(--dark); }
.filter-btn.active { background:var(--navy); color:var(--white); border-color:var(--navy); }
.filter-btn:hover:not(.active) { border-color:var(--navy); color:var(--navy); }
.issues-table { width:100%; border-collapse:collapse; font-size:13px; }
.issues-table th { text-align:left; padding:10px 13px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dark); border-bottom:2px solid var(--light); background:var(--off); }
.issues-table td { padding:13px; border-bottom:1px solid var(--light); vertical-align:top; }
.issues-table tr:hover td { background:var(--off); }
.tag { display:inline-block; font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:3px 8px; border-radius:2px; }
.tag-bug{background:#FFF5F5;color:#c53030;border:1px solid #feb2b2;}
.tag-content{background:#FFF8EE;color:#b7691f;border:1px solid #f6c97a;}
.tag-feature{background:#EBF8FF;color:#2b6cb0;border:1px solid #bee3f8;}
.tag-feedback{background:#F0FFF4;color:#276749;border:1px solid #9ae6b4;}
.tag-open{background:#FFF8EE;color:#b7691f;border:1px solid #f6c97a;}
.tag-inprogress{background:#EBF8FF;color:#2b6cb0;border:1px solid #bee3f8;}
.tag-done{background:#F0FFF4;color:#276749;border:1px solid #9ae6b4;}
.admin-note { font-size:13px; color:var(--dark); background:var(--off); border-left:3px solid var(--teal-deep); padding:10px 14px; margin-bottom:18px; line-height:1.6; font-weight:300; }
.admin-logout { margin-top:32px; padding-top:16px; border-top:1px solid var(--light); }
.admin-logout button { background:none; border:1px solid var(--light); color:var(--dark); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 16px; cursor:pointer; transition:all .2s; border-radius:2px; }
.admin-logout button:hover { border-color:var(--navy); color:var(--navy); }

/* MOBILE */
@media(min-width:901px){
  .hero-right::after {
    content:'';
    position:absolute;
    left:-1px; top:0; bottom:0;
    width:0;
    height:0;
    border-style:solid;
    border-width:50vh 0 50vh 80px;
    border-color:transparent transparent transparent #ffffff;
    z-index:3;
  }
}
@media(max-width:900px){
  .nav-links { display:none; flex-direction:column; position:fixed; top:var(--nav-h); left:0; right:0; background:var(--white); padding:18px 5%; border-bottom:1px solid var(--light); gap:16px; z-index:999; }
  .nav-links.open { display:flex; }
  .nav-links .nav-cta { color:#ffffff !important; display:block; text-align:center; }
  .nav-social { display:none; }
  .hamburger { display:flex; }
  .hero { grid-template-columns:1fr; }
  .hero-left { padding:52px 6%; }
  .hero-right { height:56vw; max-height:380px; display:block; }
  .hero-right::after { display:none !important; }
  .service-img { min-height:240px; }
  .approach-grid { grid-template-columns:1fr; }
  .stats-strip { grid-template-columns:1fr; }
  .stat-item { border-right:none; border-bottom:1px solid rgba(255,255,255,.1); }
  .stat-item:last-child { border-bottom:none; }
  .cta-band { grid-template-columns:1fr; gap:28px; padding:68px 6%; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .service-card-full { grid-template-columns:1fr; }
  .service-card-full.reverse .service-img,.service-card-full.reverse .service-content { order:0; }
  .service-img { min-height:220px; }
  .service-content { padding:36px 28px; }
  .about-split { grid-template-columns:1fr; }
  .about-image { height:420px; }
  .about-image img { object-position:center 15%; }
  .about-content { padding:48px 6%; }
  .testimonials-grid { grid-template-columns:1fr; }
  .videos-grid { grid-template-columns:1fr; padding:0 6%; }
  .articles-grid { grid-template-columns:1fr; padding:0 6% 52px; }
  .work-section-title { margin:0 6% 26px; }
  .work-intro { padding:52px 6% 26px; }
  .contact-split { grid-template-columns:1fr; }
  .contact-left,.contact-right { padding:48px 6%; }
  .admin-stats { grid-template-columns:repeat(2,1fr); }
  .approach { padding:68px 6%; }
  .testimonial-band { padding:68px 6%; }
  .about-mission,.testimonials-section { padding:48px 6%; }
  .services-intro { padding:52px 6% 0; }
  .service-cards { padding:32px 6% 68px; }
  /* Mobile body text: brand standard 16px floor */
  .approach-item p, .service-content p, .about-content p, .video-card p, .article-card p, .contact-detail-text { font-size:16px; }
  /* Mobile menu link hit area (WCAG 2.5.8 minimum 24x24) */
  .nav-links a { display:block; padding:10px 0; }
}
@media (prefers-color-scheme: dark) {
  html, body { background:#ffffff !important; color:#2c3e50 !important; }
  nav { background:#ffffff !important; border-bottom-color:#e6edf4 !important; }
  .nav-links a { color:#113461 !important; }
  .nav-cta { background:#113461 !important; color:#ffffff !important; }
  .nav-cta.nav-active { background:#006bad !important; }
  .hero-left { background:#ffffff !important; }
  .hero-tagline { color:#113461 !important; }
  .hero-tagline blockquote { color:#113461 !important; }
  .approach { background:#f5f7fa !important; }
  .approach-item { background:#ffffff !important; color:#2c3e50 !important; }
  .approach-item h3 { color:#113461 !important; }
  .approach-item p { color:#2c3e50 !important; }
  .service-card-full { background:#ffffff !important; }
  .service-content { background:#ffffff !important; }
  .service-content h2 { color:#113461 !important; }
  .service-content p { color:#2c3e50 !important; }
  .service-content li { color:#2c3e50 !important; }
  .about-content { background:#f5f7fa !important; color:#2c3e50 !important; }
  .about-content h2, .about-content h3, .about-content p { color:#2c3e50 !important; }
  .cornell-badge { background:#ffffff !important; }
  .testimonial-card { background:#ffffff !important; }
  .testimonial-card p { color:#113461 !important; }
  .article-card { background:#ffffff !important; }
  .article-card h3 { color:#113461 !important; }
  .article-card p { color:#2c3e50 !important; }
  .contact-left { background:#f5f7fa !important; }
  .contact-left h2 { color:#113461 !important; }
  .contact-left p { color:#2c3e50 !important; }
  .contact-right { background:#ffffff !important; }
  .contact-right h3 { color:#113461 !important; }
  .filter-btn { background:#ffffff !important; color:#113461 !important; }
  .filter-btn.active { background:#113461 !important; color:#ffffff !important; }
  .calendly-embed { background:#ffffff !important; }
  .calendly-embed iframe { background:#ffffff !important; }
  .contact-detail-icon { background:#113461 !important; }
  .section-title { color:#113461 !important; }
  .section-eyebrow { color:#137072 !important; }
  .work-section { background:#f5f7fa !important; }
  .work-section h2 { color:#113461 !important; }
  .work-section p { color:#2c3e50 !important; }
}

/* ============================================================
   INSIGHTS / ARTICLES
   ============================================================ */
.insights-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:32px; max-width:1200px; margin:0 auto; padding:0 6vw 100px;
}
.insight-card {
  display:block; background:#ffffff; border:1px solid #e2e8ee;
  border-radius:3px; padding:34px 32px 30px; text-decoration:none;
  transition:border-color .2s ease, transform .2s ease;
}
.insight-card:hover, .insight-card:focus-visible { border-color:#137072; transform:translateY(-2px); }
.insight-card .insight-meta {
  font-size:11px; letter-spacing:.09em; text-transform:uppercase;
  color:#137072; font-weight:700; margin-bottom:14px;
}
.insight-card h3 {
  font-family:'Cormorant Garamond',Georgia,serif; font-size:26px; line-height:1.25;
  color:#113461; font-weight:400; margin:0 0 14px;
}
.insight-card p { font-size:15px; line-height:1.65; color:#42576b; font-weight:300; margin:0 0 20px; }
.insight-card .insight-link { font-size:13px; font-weight:700; color:#006bad; letter-spacing:.04em; }
.insights-empty { max-width:640px; margin:0 auto 100px; padding:0 6vw; color:#42576b; font-weight:300; }

/* Article page */
.article { max-width:720px; margin:0 auto; padding:0 6vw 90px; }
.article-header { max-width:720px; margin:0 auto; padding:0 6vw 8px; }
.article-meta {
  font-size:11px; letter-spacing:.09em; text-transform:uppercase;
  color:#137072; font-weight:700; margin-bottom:16px;
}
.article-dek {
  font-family:'Cormorant Garamond',Georgia,serif; font-size:24px; line-height:1.45;
  color:#42576b; font-weight:300; font-style:italic; margin:0 0 34px;
}
.article-witness {
  border-left:3px solid #137072; background:#f5f7fa;
  padding:22px 26px; margin:0 0 44px;
}
.article-witness p { margin:0; font-size:15px; line-height:1.7; color:#2c3e50; font-weight:300; }
.article-witness .witness-name { font-weight:700; color:#113461; display:block; margin-bottom:4px; }
.article-body p { font-size:18px; line-height:1.8; color:#2c3e50; font-weight:300; margin:0 0 26px; }
.article-body h2 {
  font-family:'Cormorant Garamond',Georgia,serif; font-size:32px; line-height:1.3;
  color:#113461; font-weight:400; margin:52px 0 20px;
}
.article-body blockquote {
  margin:38px 0; padding:0 0 0 26px; border-left:3px solid #22babc;
  font-family:'Cormorant Garamond',Georgia,serif; font-size:24px; line-height:1.5;
  color:#113461; font-weight:400; font-style:italic;
}
.article-body blockquote cite {
  display:block; margin-top:14px; font-family:'Roboto',sans-serif; font-size:13px;
  font-style:normal; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#137072;
}
.article-body ul { margin:0 0 26px; padding-left:24px; }
.article-body li { font-size:18px; line-height:1.8; color:#2c3e50; font-weight:300; margin-bottom:12px; }
.article-footer {
  max-width:720px; margin:0 auto; padding:36px 6vw 90px;
  border-top:1px solid #e2e8ee;
}
.article-footer p { font-size:15px; line-height:1.7; color:#42576b; font-weight:300; margin:0 0 12px; }
.article-footer a { color:#006bad; font-weight:700; }
@media (max-width:700px) {
  .article-body p, .article-body li { font-size:17px; }
  .article-dek { font-size:21px; }
}
@media (prefers-contrast:more) {
  .insight-card { border-color:#113461 !important; }
  .insight-card .insight-meta, .article-meta { color:#137072 !important; }
  .insight-card h3, .article-body h2 { color:#113461 !important; }
  .insight-card p, .article-body p, .article-body li { color:#2c3e50 !important; }
}
