/* ============================================================
   DGAS – De Grande Arch Space  |  Global Stylesheet
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Montserrat:wght@300;400;500;600;700&display=swap');

:root {
  --black:      #0a0a0a;
  --white:      #ffffff;
  --off-white:  #f5f4f1;
  --mid-grey:   #8a8a8a;
  --light-grey: #e8e6e0;
  --accent:     #c8a96e;
  --accent-dark:#a88840;
  --nav-h:      80px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Montserrat', sans-serif;
  background: var(--white);
  color: var(--black);
  overflow-x: hidden;
}

/* ── NAV ─────────────────────────────────────── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding: 0 56px; height: var(--nav-h);
  background: transparent;
  transition: background .4s ease, box-shadow .4s ease;
}
nav.scrolled {
  background: rgba(10,10,10,.97);
  box-shadow: 0 2px 24px rgba(0,0,0,.35);
}
nav.solid-dark { background: var(--black); }

.nav-logo img { height:60px; display:block; filter:invert(1) brightness(2); transition:filter .3s; }
nav.scrolled .nav-logo img { filter:invert(1) brightness(2); }
.footer-logo { height:60px; opacity:.85; filter:invert(1) brightness(2); }

.nav-links { display:flex; align-items:center; gap:32px; list-style:none; }
.nav-links a {
  text-decoration:none;
  font-size:11px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--white);
  transition: color .2s;
  position:relative;
  text-shadow: 0 0 2px rgba(0,0,0,.9), 0 1px 6px rgba(0,0,0,.7), 0 2px 16px rgba(0,0,0,.5);
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:100%;
  height:1px; background:var(--accent);
  transition: right .3s ease;
}
.nav-links a:hover::after, .nav-links a.active::after { right:0; }
.nav-links a:hover, .nav-links a.active { color:var(--accent); }

.nav-cta {
  display:inline-block;
  background:var(--accent); color:var(--black) !important;
  padding:10px 26px;
  font-size:10px !important; font-weight:700 !important;
  letter-spacing:.16em !important; text-transform:uppercase;
  text-decoration:none;
  border-radius:6px;transition: background .2s;
  white-space:nowrap;
}
.nav-cta:hover { background:var(--accent-dark) !important; }
.nav-cta::after { display:none !important; }

.hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:8px;
}
.hamburger span { display:block; width:24px; height:2px; background:var(--white); transition:all .3s; }

/* Mobile menu */
.mobile-menu {
  display:none; position:fixed; inset:0;
  background:var(--black); z-index:999;
  flex-direction:column; align-items:center; justify-content:center; gap:28px;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  font-family:'Cormorant Garamond',serif;
  font-size:38px; font-weight:300; color:var(--white);
  text-decoration:none; transition:color .2s;
}
.mobile-menu a:hover { color:var(--accent); }
.mobile-close {
  position:absolute; top:24px; right:48px;
  background:none; border:none; color:var(--white); font-size:36px; cursor:pointer;
}

/* ── PAGE HERO (inner pages) ─────────────────── */
.page-hero {
  height: 54vh; min-height:340px;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding: 0 64px 64px;
  position:relative; overflow:hidden;
}
.page-hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
}
.page-hero-bg::after {
  content:''; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.15) 100%);
}
.page-hero-content { position:relative; z-index:2; }
.page-breadcrumb {
  font-size:10px; font-weight:700; letter-spacing:.25em; text-transform:uppercase;
  color:var(--accent); margin-bottom:12px;
}
.page-breadcrumb a { color:rgba(255,255,255,.55); text-decoration:none; }
.page-breadcrumb a:hover { color:var(--accent); }
.page-hero h1 {
  font-family:'Cormorant Garamond',serif;
  font-size: clamp(42px,5.5vw,80px); font-weight:300; line-height:1.05;
  color:var(--white);
}
.page-hero h1 em { font-style:italic; color:var(--accent); }

/* ── SECTION COMMONS ─────────────────────────── */
.section { padding: 96px 64px; }
.section-label {
  font-size:10px; font-weight:700; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent); margin-bottom:14px;
}
.section-title {
  font-family:'Cormorant Garamond',serif;
  font-size: clamp(34px,4vw,58px); font-weight:300; line-height:1.1;
  color:var(--black); margin-bottom:24px;
}
.section-title em { font-style:italic; color:var(--accent); }
.section-title.on-dark { color:var(--white); }
.section-body {
  font-size:14px; font-weight:300; line-height:1.9; color:#444; max-width:640px;
}
.section-body.on-dark { color:rgba(255,255,255,.62); }
.divider { width:48px; height:2px; background:var(--accent); margin-bottom:28px; }

/* ── BUTTONS ─────────────────────────────────── */
.btn-primary {
  display:inline-block; background:var(--accent); color:var(--black);
  padding:13px 34px; font-size:11px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; text-decoration:none;
  border:none; border-radius:6px; cursor:pointer; font-family:inherit;
  transition: background .2s, transform .2s;
}
.btn-primary:hover { background:var(--accent-dark); transform:translateY(-2px); }
.btn-ghost {
  display:inline-block; border:1px solid rgba(255,255,255,.5); color:var(--white);
  padding:13px 34px; font-size:11px; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase; text-decoration:none;
  border-radius:6px; transition: border-color .2s, background .2s;
}
.btn-ghost:hover { border-color:var(--white); background:rgba(255,255,255,.08); }
.btn-ghost-dark {
  display:inline-block; border:1px solid var(--black); color:var(--black);
  padding:13px 34px; font-size:11px; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase; text-decoration:none;
  border-radius:6px; transition: background .2s, color .2s;
}
.btn-ghost-dark:hover { background:var(--black); color:var(--white); }

/* ── STATS STRIP ─────────────────────────────── */
.stats-strip {
  background:var(--black); padding:56px 64px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:32px;
}
.stat {
  text-align:center; padding:24px;
  border:1px solid rgba(255,255,255,.07); transition:border-color .3s;
}
.stat:hover { border-color:var(--accent); }
.stat-num {
  font-family:'Cormorant Garamond',serif; font-size:54px; font-weight:300;
  color:var(--accent); line-height:1; margin-bottom:8px;
}
.stat-label {
  font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.45);
}

/* ── FOOTER ──────────────────────────────────── */
footer { background:var(--black); padding:64px 64px 32px; }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:56px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:28px;
}
.footer-brand p {
  font-size:12px; line-height:1.85; color:rgba(255,255,255,.4);
  margin-top:18px; font-weight:300;
}
.footer-col h5 {
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.3); margin-bottom:18px;
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col ul a {
  font-size:12px; color:rgba(255,255,255,.5); text-decoration:none;
  font-weight:300; transition:color .2s;
}
.footer-col ul a:hover { color:var(--accent); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:11px; font-weight:300; }
.footer-accreds { display:flex; gap:14px; align-items:center; }
.footer-accreds span { font-size:10px; font-weight:700; letter-spacing:.1em; color:rgba(255,255,255,.22); }

/* ── IMAGE TREATMENT ─────────────────────────── */
/* Applied globally so every photo — including future ones Joseph adds —
   inherits the website's warm, editorial mood automatically.           */

/* Hero slides */
.hero-slide {
  filter: brightness(1.02) saturate(1.05) sepia(.07);
}
/* Page hero background image darkening handled by ::after overlay */

/* Project card images — remove filter effects, keep zoom only */
.pm-card img,
.proj-thumb img {
  transition: transform .6s ease;
}
.pm-card:hover img,
.proj-thumb:hover img {
  transform: scale(1.06);
}

/* About / story section images */
.as-main img,
.as-accent img,
.about-img-main img,
.about-img-accent img {
  filter: brightness(.9) saturate(1.1) sepia(.1);
}

/* Principal portrait — no filter */
.principal-photo img,
.about-img-accent img { filter: none; }

/* Insights article images */
.ins-featured-img img,
.ins-card-img img,
.ins-modal-hero img,
.itc-img img {
  filter: brightness(.86) saturate(1.1) sepia(.12);
  transition: transform .5s ease, filter .4s ease;
}
.ins-featured:hover .ins-featured-img img,
.ins-card:hover .ins-card-img img,
.ins-teaser-card:hover .itc-img img {
  filter: brightness(.92) saturate(1.18) sepia(.08);
}

/* ── REVEAL ANIMATIONS ───────────────────────── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-d1 { transition-delay:.1s; }
.reveal-d2 { transition-delay:.2s; }
.reveal-d3 { transition-delay:.3s; }
.reveal-d4 { transition-delay:.4s; }

/* ── FORM STYLES ─────────────────────────────── */
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label {
  font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--mid-grey);
}
.form-group input, .form-group textarea, .form-group select {
  background:var(--white); border:1px solid var(--light-grey);
  padding:13px 15px; font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:300; color:var(--black);
  outline:none; -webkit-appearance:none; appearance:none;
  transition:border-color .2s;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color:var(--accent); }
.form-group textarea { min-height:140px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-msg { font-size:12px; padding:13px 16px; display:none; }
.form-msg.success { background:#d4edda; color:#155724; display:block; }
.form-msg.error   { background:#f8d7da; color:#721c24; display:block; }

/* ── RESPONSIVE ──────────────────────────────── */
@media(max-width:1024px){
  .stats-strip { grid-template-columns:repeat(2,1fr); }
  .footer-top { grid-template-columns:1fr 1fr; gap:36px; }
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
}
@media(max-width:768px){
  .section { padding:64px 24px; }
  nav { padding:0 24px; }
  .page-hero { padding:0 24px 48px; }
  .stats-strip { padding:40px 24px; grid-template-columns:repeat(2,1fr); }
  .footer-top { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:10px; text-align:center; }
  .form-row { grid-template-columns:1fr; }
}

/* ── PROJECT GALLERY MODAL ───────────────────── */
.proj-modal {
  display: none;
  position: fixed; inset: 0; z-index: 3000;
  align-items: center; justify-content: center;
  padding: 24px;
}
.proj-modal.open { display: flex; }

.proj-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(6,6,6,.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.proj-modal-panel {
  position: relative; z-index: 1;
  background: var(--black);
  width: 100%; max-width: 980px;
  max-height: 92vh;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 32px 96px rgba(0,0,0,.7);
  animation: modalIn .3s ease;
}
@keyframes modalIn {
  from { opacity:0; transform: translateY(24px) scale(.98); }
  to   { opacity:1; transform: translateY(0)    scale(1);   }
}

/* Close button */
.proj-modal-close {
  position: absolute; top: 16px; right: 16px; z-index: 10;
  width: 40px; height: 40px;
  background: rgba(10,10,10,.75); border: 1px solid rgba(255,255,255,.15);
  color: var(--white); font-size: 22px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s;
}
.proj-modal-close:hover { background: var(--accent); border-color: var(--accent); color: var(--black); }

/* Main image */
.proj-modal-img-wrap {
  position: relative;
  background: #111;
  overflow: hidden;
}
.proj-modal-img-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  display: block; transition: opacity .15s ease;
  filter: brightness(.92) saturate(1.1) sepia(.08);
  user-select: none;
}

/* ── PHOTO DOTS (scroll within project) ── */
.proj-modal-dots {
  position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 7px; align-items: center; z-index: 6;
}
.proj-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(255,255,255,.35); border: none; cursor: pointer; padding: 0;
  transition: background .2s, transform .2s;
  flex-shrink: 0;
}
.proj-dot:hover  { background: rgba(255,255,255,.65); }
.proj-dot.active { background: var(--accent); transform: scale(1.35); }

/* ── PROJECT NAV ARROWS (prev / next project) ── */
.proj-modal-proj-prev,
.proj-modal-proj-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  display: flex; align-items: center; gap: 8px;
  background: rgba(10,10,10,.72); border: 1px solid rgba(255,255,255,.18);
  color: var(--white); cursor: pointer; z-index: 5;
  padding: 10px 14px;
  transition: background .2s, border-color .2s;
  max-width: 180px;
}
.proj-modal-proj-prev:hover,
.proj-modal-proj-next:hover {
  background: var(--accent); border-color: var(--accent); color: var(--black);
}
.proj-modal-proj-prev { left: 0; border-left: none; border-radius: 0 2px 2px 0; }
.proj-modal-proj-next { right: 0; border-right: none; border-radius: 2px 0 0 2px; }

.proj-nav-arrow { font-size: 18px; line-height: 1; flex-shrink: 0; }
.proj-nav-label {
  font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 110px;
}

/* Thumbnail strip */
.proj-modal-thumbs {
  display: flex; gap: 3px; padding: 10px;
  overflow-x: auto; flex-shrink: 0; background: #0d0d0d;
  scrollbar-width: thin; scrollbar-color: var(--accent) #111;
}
.proj-modal-thumbs::-webkit-scrollbar { height: 3px; }
.proj-modal-thumbs::-webkit-scrollbar-track { background: #111; }
.proj-modal-thumbs::-webkit-scrollbar-thumb { background: var(--accent); }

.proj-modal-thumb {
  flex-shrink: 0;
  width: 72px; height: 52px;
  background-size: cover; background-position: center;
  cursor: pointer; opacity: .45;
  border: 2px solid transparent;
  transition: opacity .2s, border-color .2s;
}
.proj-modal-thumb:hover  { opacity: .75; }
.proj-modal-thumb.active { opacity: 1; border-color: var(--accent); }

/* Info panel */
.proj-modal-info {
  padding: 24px 36px 28px;
  border-top: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
.proj-modal-meta {
  display: flex; align-items: center; gap: 14px; margin-bottom: 10px; flex-wrap: wrap;
}
.proj-modal-tag {
  font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  background: var(--accent); color: var(--black); padding: 4px 12px;
}
.proj-modal-loc {
  font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.4);
}
.proj-modal-photo-count {
  font-size: 10px; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.28); font-style: italic; font-weight: 300;
  margin-left: auto;
}
.proj-modal-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(20px, 3vw, 32px); font-weight: 300; color: var(--white);
  margin-bottom: 8px; line-height: 1.15;
}
.proj-modal-desc {
  font-size: 13px; line-height: 1.8; color: rgba(255,255,255,.52);
  font-weight: 300; max-width: 680px;
}

/* Responsive */
@media (max-width: 768px) {
  .proj-modal { padding: 0; align-items: flex-end; }
  .proj-modal-panel { max-height: 95vh; }
  .proj-modal-img-wrap {
  position: relative;
  background: #111;
  overflow: hidden;
}
  .proj-modal-thumb { width: 56px; height: 42px; }
  .proj-modal-info { padding: 16px 20px 20px; }
  .proj-modal-proj-prev,
  .proj-modal-proj-next { padding: 8px 10px; }
  .proj-nav-label { display: none; }
  .proj-modal-photo-count { display: none; }
}

/* ── COOKIE CONSENT BANNER ───────────────────── */
#cookieBanner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 4000;
  background: var(--black);
  border-top: 1px solid rgba(255,255,255,.1);
  transform: translateY(100%);
  transition: transform .4s ease;
  box-shadow: 0 -8px 32px rgba(0,0,0,.4);
}
#cookieBanner.visible { transform: translateY(0); }

.cookie-inner {
  max-width: 1200px; margin: 0 auto;
  padding: 20px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
}
.cookie-text { flex: 1; }
.cookie-text strong {
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--white); display: block; margin-bottom: 4px;
}
.cookie-text p {
  font-size: 12px; color: rgba(255,255,255,.5); font-weight: 300; line-height: 1.6;
}
.cookie-text a { color: var(--accent); text-decoration: none; }
.cookie-text a:hover { text-decoration: underline; }
.cookie-btns { display: flex; gap: 12px; flex-shrink: 0; }
.cookie-btn-primary {
  background: var(--accent); color: var(--black);
  border: none; border-radius: 6px; padding: 10px 24px;
  font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; cursor: pointer;
  transition: background .2s;
}
.cookie-btn-primary:hover { background: var(--accent-dark); }
.cookie-btn-secondary {
  background: transparent; color: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.2); border-radius: 6px; padding: 10px 24px;
  font-family: inherit; font-size: 10px; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; cursor: pointer;
  transition: border-color .2s, color .2s;
}
.cookie-btn-secondary:hover { border-color: rgba(255,255,255,.5); color: var(--white); }

@media (max-width: 768px) {
  .cookie-inner { flex-direction: column; align-items: flex-start; padding: 20px 24px; gap: 16px; }
  .cookie-btns { width: 100%; }
  .cookie-btn-primary, .cookie-btn-secondary { flex: 1; text-align: center; }
}

/* ── BACK TO TOP ─────────────────────────────── */
#backToTop {
  position: fixed; bottom: 96px; right: 34px; z-index: 900;
  width: 44px; height: 44px;
  background: var(--black); color: var(--white);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(12px);
  transition: opacity .3s, transform .3s, background .2s, border-color .2s;
  pointer-events: none;
}
#backToTop.visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
#backToTop:hover { background: var(--accent); border-color: var(--accent); color: var(--black); }

/* ── CHATBOT ─────────────────────────────────── */
#chatWidget { position: fixed; bottom: 28px; right: 28px; z-index: 1500; }

#chatToggle {
  width: 56px; height: 56px;
  background: var(--accent); color: var(--black);
  border: none; border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,.35);
  position: relative;
  transition: background .2s, transform .2s;
}
#chatToggle:hover { background: var(--accent-dark); transform: scale(1.07); }

.chat-badge {
  position: absolute; top: -4px; right: -4px;
  width: 20px; height: 20px; border-radius: 50%;
  background: #e74c3c; color: #fff;
  font-size: 11px; font-weight: 700;
  display: none; align-items: center; justify-content: center;
  border: 2px solid var(--white);
}

#chatBox {
  position: absolute; bottom: 68px; right: 0;
  width: 340px;
  background: var(--white);
  box-shadow: 0 16px 56px rgba(0,0,0,.22);
  display: none; flex-direction: column;
  max-height: 520px; overflow: hidden;
  border: 1px solid var(--light-grey);
  animation: chatIn .25s ease;
}
#chatBox.open { display: flex; }
@keyframes chatIn { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:none; } }

.chat-header {
  background: var(--black); padding: 16px 18px;
  display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
}
.chat-header-info { display: flex; align-items: center; gap: 12px; }
.chat-avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--accent); color: var(--black);
  font-size: 11px; font-weight: 700; letter-spacing: .05em;
  display: flex; align-items: center; justify-content: center;
}
.chat-name { font-size: 12px; font-weight: 700; color: var(--white); letter-spacing: .04em; }
.chat-status { font-size: 11px; color: rgba(255,255,255,.45); margin-top: 2px; display: flex; align-items: center; gap: 5px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.status-dot.online  { background: #2ecc71; }
.status-dot.offline { background: #e74c3c; }
.chat-header-close {
  background: none; border: none; color: rgba(255,255,255,.5);
  font-size: 22px; cursor: pointer; line-height: 1; padding: 0 2px;
  transition: color .2s;
}
.chat-header-close:hover { color: var(--white); }

.chat-messages {
  flex: 1; overflow-y: auto; padding: 16px;
  display: flex; flex-direction: column; gap: 10px;
  background: var(--off-white);
  scrollbar-width: thin; scrollbar-color: var(--light-grey) transparent;
}
.chat-msg {
  max-width: 86%; padding: 10px 14px;
  font-size: 13px; line-height: 1.55; font-weight: 300;
  border-radius: 2px;
}
.chat-msg-bot  { background: var(--white); color: var(--black); align-self: flex-start; border-left: 3px solid var(--accent); }
.chat-msg-user { background: var(--black); color: var(--white); align-self: flex-end; }
.chat-bullets  { background: var(--white); border-left: 3px solid var(--accent); padding: 10px 14px 10px 28px; margin: 0; align-self: flex-start; max-width: 92%; }
.chat-bullets li { font-size: 13px; line-height: 1.55; color: #333; font-weight: 300; margin-bottom: 6px; }
.chat-bullets li:last-child { margin-bottom: 0; }

/* Typing indicator */
.chat-typing { display: flex !important; gap: 5px; align-items: center; padding: 12px 16px !important; }
.chat-typing span {
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
  animation: typingDot .9s infinite;
}
.chat-typing span:nth-child(2) { animation-delay: .15s; }
.chat-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes typingDot { 0%,80%,100%{transform:scale(.6);opacity:.4} 40%{transform:scale(1);opacity:1} }

.chat-options {
  padding: 12px; background: var(--white); border-top: 1px solid var(--light-grey);
  display: flex; flex-direction: column; gap: 6px; flex-shrink: 0;
  max-height: 180px; overflow-y: auto;
}
.chat-opt-btn {
  background: var(--off-white); border: 1px solid var(--light-grey);
  border-radius: 6px; padding: 9px 14px; text-align: left;
  font-family: inherit; font-size: 12px; font-weight: 500; color: var(--black);
  cursor: pointer; transition: background .2s, border-color .2s, color .2s;
}
.chat-opt-btn:hover { background: var(--accent); border-color: var(--accent); color: var(--black); }

@media (max-width: 480px) {
  #chatBox { width: calc(100vw - 32px); right: 0; }
  #backToTop { bottom: 96px; right: 22px; }
  #chatWidget { right: 16px; }
}

/* ── GALLERY MODAL: Role & Credits ───────────── */
.proj-modal-role {
  font-size: 12px; font-weight: 500;
  color: rgba(255,255,255,.7);
  margin-bottom: 10px; letter-spacing: .03em;
}
.proj-role-label {
  font-size: 10px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--accent);
  margin-right: 4px;
}
.proj-modal-credits {
  font-size: 10px; font-style: italic;
  color: rgba(255,255,255,.28);
  margin-top: 10px; line-height: 1.65;
  letter-spacing: .1em; text-transform: uppercase;
  font-weight: 300;
}
.proj-credits-label {
  font-weight: 300; font-style: italic;
  font-size: 10px; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.28);
  margin-right: 4px;
}

/* ── FOOTER: LinkedIn + mobile centering ─────── */

@media (max-width: 768px) {
  .footer-top { text-align: center; }
  .footer-col ul { align-items: center; }
  .footer-col ul li { text-align: center; }
  .footer-accreds { justify-content: center; }
}

/* ── FOOTER UPDATES ──────────────────────────── */
/* LinkedIn icon only, centred */
.footer-linkedin {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  background: rgba(255,255,255,.08);
  border-radius: 50%;
  color: rgba(255,255,255,.55);
  transition: background .2s, color .2s;
  text-decoration: none;
}
.footer-linkedin:hover { background: #0077b5; color: var(--white); }

/* Navigate: 2-column split */
.footer-nav-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.footer-nav-cols ul { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.footer-nav-cols ul a {
  font-size: 12px; color: rgba(255,255,255,.5); text-decoration: none;
  font-weight: 300; transition: color .2s;
}
.footer-nav-cols ul a:hover { color: var(--accent); }

/* Footer bottom: copy left, legal right (padded for chatbot) */
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* Gallery campus tabs */
.proj-campus-tabs {
  display: flex; gap: 4px;
  padding: 10px 12px 0;
  background: #0d0d0d;
  flex-shrink: 0;
}
.proj-campus-tab {
  flex: 1; padding: 8px 10px;
  background: #1a1a1a; border: 1px solid rgba(255,255,255,.1);
  border-radius: 4px; color: rgba(255,255,255,.5);
  font-family: inherit; font-size: 10px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  cursor: pointer; transition: background .2s, color .2s, border-color .2s;
  text-align: center;
}
.proj-campus-tab:hover { background: #222; color: rgba(255,255,255,.8); }
.proj-campus-tab.active { background: var(--accent); border-color: var(--accent); color: var(--black); }
.proj-campus-tab.all-tab { letter-spacing: .08em; }

@media (max-width: 768px) {
  .footer-nav-cols { grid-template-columns: 1fr 1fr; gap: 0 12px; }
  .footer-bottom { flex-direction: column; align-items: center; text-align: center; }
  .footer-legal { padding-right: 0; text-align: center; }
  .proj-campus-tab { font-size: 9px; padding: 7px 6px; }
}

/* ── FOOTER OVERRIDES (v2) ───────────────────── */

/* Align logo top with column h5 headings — use align-items:start on the grid */
.footer-top { align-items: start; }

/* Brand column: match gap between logo→desc and h5→first-link */
.footer-brand p { margin-top: 18px; }  /* same as footer-col h5 margin-bottom:18px */

/* LinkedIn always centred in its column on all screen sizes */
/* Contact list with icons */
.footer-contact-list { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.footer-contact-list li {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 12px; color: rgba(255,255,255,.5); font-weight: 300;
}
.footer-contact-list a {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 12px; color: rgba(255,255,255,.5); text-decoration: none;
  font-weight: 300; transition: color .2s;
}
.footer-contact-list a:hover { color: var(--accent); }
.fci {
  display: flex; align-items: center; flex-shrink: 0;
  margin-top: 1px; color: rgba(255,255,255,.3);
}

/* Footer-bottom: equal colour to nav links */
.footer-copy { font-size: 11px; color: rgba(255,255,255,.5); font-weight: 300; }
.footer-legal { font-size: 11px; color: rgba(255,255,255,.5); font-weight: 300; text-align: right; }
.footer-legal a { color: rgba(255,255,255,.5); text-decoration: none; transition: color .2s; }
.footer-legal a:hover { color: var(--accent); }
.footer-tb-link { color: var(--accent); text-decoration: none; }
.footer-tb-link:hover { text-decoration: underline; }

/* Mobile: centre linkedin */
@media (max-width: 768px) {
  .footer-contact-list li, .footer-contact-list a { justify-content: center; }
  .footer-legal { text-align: center; }
}

/* ── CHATBOT + BACK-TO-TOP: move up to free space for footer-legal ── */
#chatWidget { bottom: 52px; }
#backToTop  { bottom: 116px; }
@media (max-width: 768px) {
  #chatWidget { bottom: 72px; }
  #backToTop  { bottom: 136px; }
}
/* Footer-legal padding right clears the chatbot column */

/* ── MODAL: category badge ───────────────────── */
.proj-modal-cat {
  font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.65);
  padding: 4px 12px;
  border: 1px solid rgba(255,255,255,.15);
}

/* ── IMAGE ROUNDED OUTER CORNERS ─────────────── */
/* Home — "Who We Are" */
/* Main project image: top-left, top-right, bottom-left rounded; bottom-right sharp */
.about-img-main,
.about-img-main img {
  border-radius: 10px 10px 0 10px;
}
/* Portrait accent: top-right, bottom-right, bottom-left rounded; top-left sharp */
.about-img-accent,
.about-img-accent img {
  border-radius: 0 10px 10px 10px;
}

/* About Us — "Our Story" */
/* Main story image: same as home main */
.as-main,
.as-main img {
  border-radius: 10px 10px 0 10px;
}
/* Studio accent: top-right, bottom-right, bottom-left rounded; top-left sharp */
.as-accent,
.as-accent img {
  border-radius: 0 10px 10px 10px;
}

/* ── FOOTER BRAND: logo + LinkedIn centred in column ── */
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;        /* centre everything in the brand column */
  text-align: center;
}
.footer-brand p {
  margin-top: 18px;
  text-align: center;
}
.footer-linkedin-wrap {
  margin-top: 18px;
  display: flex;
  justify-content: center;    /* always centred */
  width: 100%;
}
.footer-linkedin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  background: rgba(255,255,255,.08);
  border-radius: 50%;
  color: rgba(255,255,255,.55);
  transition: background .2s, color .2s;
  text-decoration: none;
}
.footer-linkedin:hover { background: #0077b5; color: var(--white); }

/* ── FOOTER BOTTOM: make copy + legal same colour as nav links ── */
.footer-copy {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  font-weight: 300;
}
.footer-tb-link { color: var(--accent); text-decoration: none; }
.footer-tb-link:hover { text-decoration: underline; }

.footer-legal {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  font-weight: 300;
  text-align: right;
}
.footer-legal a {
  color: rgba(255,255,255,.5);
  text-decoration: none;
  transition: color .2s;
}
.footer-legal a:hover { color: var(--accent); }

@media (max-width: 768px) {
  .footer-legal { text-align: center; }
  .footer-copy  { text-align: center; }
}

/* ── PROJECT CARD TEXT LEGIBILITY ────────────── */
/* Home page "Our Projects" cards */
.proj-info h3 {
  text-shadow:
    0 0 2px rgba(0,0,0,1),
    0 1px 4px rgba(0,0,0,.95),
    0 2px 12px rgba(0,0,0,.85),
    0 6px 32px rgba(0,0,0,.6);
}
.proj-info p {
  text-shadow:
    0 0 2px rgba(0,0,0,1),
    0 1px 4px rgba(0,0,0,.9),
    0 2px 10px rgba(0,0,0,.75);
}

/* Projects page masonry cards */
.pm-info h3 {
  text-shadow:
    0 0 2px rgba(0,0,0,1),
    0 1px 4px rgba(0,0,0,.95),
    0 2px 12px rgba(0,0,0,.85),
    0 6px 32px rgba(0,0,0,.6);
}
.pm-info .pm-loc {
  text-shadow:
    0 0 2px rgba(0,0,0,1),
    0 1px 4px rgba(0,0,0,.9),
    0 2px 10px rgba(0,0,0,.75);
}
.pm-info .pm-tag {
  text-shadow:
    0 0 2px rgba(0,0,0,1),
    0 1px 4px rgba(0,0,0,.9),
    0 2px 10px rgba(0,0,0,.75);
}

/* Always-visible bottom gradient on cards (not just hover) */
.proj-overlay,
.pm-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 45%, transparent 70%);
  opacity: 1;
}
.proj-thumb:hover .proj-overlay,
.pm-card:hover .pm-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.28) 50%, transparent 75%);
  opacity: 1;
}

/* ── GALLERY: click-to-advance zones on image ─── */
.proj-modal-img-wrap {
  position: relative;
  background: #111;
  overflow: hidden;
}
.proj-img-click-zone {
  position: absolute; top: 0; bottom: 0; width: 30%;
  z-index: 2; cursor: pointer;
  display: flex; align-items: center;
  opacity: 0; transition: opacity .2s;
}
.proj-img-click-zone:hover { opacity: 1; }
.proj-img-click-prev {
  left: 0;
  background: linear-gradient(to right, rgba(0,0,0,.22), transparent);
  justify-content: flex-start; padding-left: 12px;
}
.proj-img-click-next {
  right: 0;
  background: linear-gradient(to left, rgba(0,0,0,.22), transparent);
  justify-content: flex-end; padding-right: 12px;
}
.proj-img-next-hint {
  font-size: 32px; color: rgba(255,255,255,.8);
  line-height: 1; text-shadow: 0 0 8px rgba(0,0,0,.6);
  pointer-events: none;
}

/* Hide click zones when only 1 photo */
.proj-modal-img-wrap.single-photo .proj-img-click-zone { display: none; }

/* Modal image — contain, no crop */
#projModalImg {
  width: 100%;
  height: auto;
  display: block;
  max-height: 70vh;
  object-fit: contain;
  object-position: center;
  transition: opacity .25s ease;
  background: #111;
}

/* ── MODAL IMAGE LOADING STATE ───────────────── */
#projModalImg[src=""] {
  min-height: 320px;
  background: #111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='16' fill='none' stroke='%23c8a96e' stroke-width='2' stroke-dasharray='80' stroke-dashoffset='60'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 20 20' to='360 20 20' dur='1s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") center no-repeat;
}


/* ══════════════════════════════════════════
   PAGE-SPECIFIC STYLES (moved from HTML)
   ══════════════════════════════════════════ */

.hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:0 64px 80px;}
.hero-slides{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease;}
.hero-slide.active{opacity:1;}
.hero-slide-overlay{position:absolute;inset:0;pointer-events:none;}
.hero-slide::after{content:none;}




.hero-content{position:relative;z-index:2;max-width:780px;}
.hero-eyebrow{font-size:10px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;opacity:0;transform:translateY(20px);animation:fadeUp .9s .3s forwards;text-shadow:0 0 2px rgba(0,0,0,1),0 1px 4px rgba(0,0,0,.9),0 2px 12px rgba(0,0,0,.8),0 4px 32px rgba(0,0,0,.6);}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(50px,6.5vw,92px);font-weight:300;line-height:1.04;color:#fff;margin-bottom:28px;opacity:0;transform:translateY(30px);animation:fadeUp .9s .5s forwards;text-shadow:0 0 3px rgba(0,0,0,1),0 2px 8px rgba(0,0,0,.9),0 4px 24px rgba(0,0,0,.7),0 8px 56px rgba(0,0,0,.5);}
.hero h1 em{font-style:italic;color:var(--accent);text-shadow:0 0 3px rgba(0,0,0,1),0 2px 8px rgba(0,0,0,.9),0 4px 24px rgba(0,0,0,.7),0 8px 56px rgba(0,0,0,.5);}
.hero-content-inner{display:inline-block;}
.hero-sub{font-size:13px;font-weight:300;letter-spacing:.03em;line-height:1.8;color:rgba(255,255,255,.75);max-width:540px;margin-bottom:40px;opacity:0;transform:translateY(20px);animation:fadeUp .9s .7s forwards;}
.hero-cta{display:flex;gap:18px;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:fadeUp .9s .9s forwards;}
.scroll-cue{position:absolute;bottom:32px;left:64px;z-index:3;display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.45);font-size:10px;letter-spacing:.22em;text-transform:uppercase;}
.scroll-cue::before{content:'';width:40px;height:1px;background:rgba(255,255,255,.28);animation:sl 1.6s ease-in-out infinite alternate;}
.hero-dots{position:absolute;bottom:36px;right:64px;z-index:3;display:flex;gap:8px;}
.hero-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:background .3s,transform .3s;}
.hero-dot.active{background:var(--accent);transform:scale(1.4);}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
@keyframes sl{from{transform:scaleX(.4);}to{transform:scaleX(1);}}

/* WHO WE ARE */
.home-about{background:var(--off-white);display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:100px 64px;}
.about-img-wrap{position:relative;height:510px;}
.about-img-main{position:absolute;top:0;left:0;width:78%;height:78%;background:var(--light-grey);display:flex;align-items:center;justify-content:center;}
.about-img-accent{position:absolute;bottom:0;right:0;transform:translateX(-20%);width:240px;height:320px;background:transparent;border:4px solid var(--off-white);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.img-placeholder-text{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(0,0,0,.3);text-align:center;padding:16px;}
.about-pillars{margin-top:44px;display:flex;flex-direction:column;gap:28px;}
.pillar{padding-left:22px;border-left:2px solid var(--light-grey);transition:border-color .3s;}
.pillar:hover{border-left-color:var(--accent);}
.pillar h4{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--black);margin-bottom:7px;}
.pillar p{font-size:13px;line-height:1.7;color:#555;font-weight:300;}

/* VM */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--black);}
.vm-card{padding:72px 60px;background:#111;position:relative;overflow:hidden;}
.vm-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--accent);transition:height .5s ease;}
.vm-card:hover::before{height:100%;}
.vm-card .section-label{margin-bottom:22px;}
.vm-card p{font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;font-weight:300;line-height:1.75;color:rgba(255,255,255,.82);}

/* HOME EXPERTISE TEASER */
.expertise-teaser{padding:100px 64px;}
.expertise-cards{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.exp-card{background:var(--off-white);padding:44px 36px;position:relative;overflow:hidden;transition:background .4s;}
.exp-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;}
.exp-card:hover{background:var(--black);}
.exp-card:hover::after{transform:scaleX(1);}
.exp-card:hover .exp-num{color:rgba(255,255,255,.55);transition:color 0s;}
.exp-card:hover .exp-title{color:var(--white);}
.exp-card:hover .exp-body{color:rgba(255,255,255,.55);}
.exp-num{font-family:'Cormorant Garamond',serif;font-size:68px;font-weight:300;color:var(--accent);line-height:1;margin-bottom:20px;transition:color .4s;}
.exp-title{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--black);margin-bottom:14px;transition:color .4s;}
.exp-body{font-size:13px;line-height:1.8;color:#555;font-weight:300;transition:color .4s;}

/* HOME PROJECT TEASER */
.projects-teaser{padding:0;background:var(--black);}
.projects-teaser-header{padding:80px 64px 48px;display:flex;justify-content:space-between;align-items:flex-end;}
.projects-teaser-header .section-title{color:var(--white);margin-bottom:0;}
.project-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;grid-auto-rows:420px;}
.proj-thumb{position:relative;overflow:hidden;height:420px;background:var(--light-grey);cursor:pointer;}
.proj-thumb.wide{grid-column:span 2;height:420px;}
.proj-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}




.proj-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 55%);opacity:0;transition:opacity .4s;}
.proj-thumb:hover .proj-overlay{opacity:1;}
.proj-info{position:absolute;bottom:0;left:0;right:0;padding:28px;z-index:2;transform:translateY(8px);transition:transform .4s;}
.proj-thumb:hover .proj-info{transform:translateY(0);}
.proj-info h3{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;color:#fff;margin-bottom:4px;}
.proj-info p{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500;}
.proj-placeholder-text{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.25);}

@media(max-width:1024px){
  .home-about{grid-template-columns:1fr;}
  .about-img-wrap{height:334px;}
  .about-img-accent{width:160px;height:210px;}
  .vm-grid{grid-template-columns:1fr;}
  .expertise-cards{grid-template-columns:1fr 1fr;}
  .project-strip{grid-template-columns:1fr;}
  .proj-thumb{height:320px;}
  .proj-thumb.wide{grid-column:span 1;height:320px;}
  .projects-teaser-header{flex-direction:column;align-items:flex-start;gap:20px;}
}
@media(max-width:768px){
  .home-about{padding:64px 24px;}
  .expertise-teaser{padding:64px 24px;}
  .expertise-cards{grid-template-columns:1fr;}
  .projects-teaser-header{padding:56px 24px 36px;}
  .scroll-cue{left:24px;}
  .hero-dots{right:24px;}
  .hero{padding:0 24px 72px;}
}

.home-insights{padding:100px 64px;background:var(--off-white);}
.home-insights-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;}
.ins-teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.ins-teaser-card{background:var(--white);display:flex;flex-direction:column;cursor:pointer;border-bottom:3px solid transparent;transition:border-color .3s,box-shadow .3s;}
.ins-teaser-card:hover{border-bottom-color:var(--accent);box-shadow:0 8px 32px rgba(0,0,0,.08);}
.ins-teaser-card:hover .itc-img img{transform:scale(1.05);}
.itc-img{overflow:hidden;aspect-ratio:16/10;position:relative;}
.itc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;filter:brightness(.88) saturate(1.1);}
.itc-img .itc-cat{position:absolute;top:14px;left:14px;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;background:var(--accent);color:var(--black);padding:4px 10px;}
.itc-body{padding:28px 24px 24px;flex:1;display:flex;flex-direction:column;}
.itc-body h3{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;line-height:1.25;color:var(--black);margin-bottom:10px;flex:1;}
.itc-body p{font-size:12px;line-height:1.7;color:#666;font-weight:300;margin-bottom:16px;}
.itc-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--light-grey);padding-top:14px;}
.itc-date{font-size:10px;letter-spacing:.1em;color:var(--mid-grey);text-transform:uppercase;}
.itc-link{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
@media(max-width:1024px){.home-insights-header{flex-direction:column;align-items:flex-start;gap:20px;}}
@media(max-width:768px){.ins-teaser-grid{grid-template-columns:1fr;}.home-insights{padding:64px 24px;}}

.about-hero-bg{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);}
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.about-story-img{position:relative;height:560px;}
.as-main{position:absolute;top:0;left:0;width:82%;height:82%;background:var(--light-grey);display:flex;align-items:center;justify-content:center;}
.as-accent{position:absolute;bottom:0;right:0;transform:translateX(-10%);width:390px;height:275px;background:transparent;border:4px solid var(--off-white);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.as-text{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(0,0,0,.3);text-align:center;padding:12px;}
.lead{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;line-height:1.6;color:#222;margin-bottom:32px;}
.principal-card{background:var(--black);padding:56px;display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:stretch;}
.principal-photo{width:160px;height:100%;min-height:200px;background:transparent;display:flex;align-items:stretch;justify-content:center;flex-shrink:0;overflow:hidden;}
.principal-photo span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);text-align:center;padding:12px;}
.principal-name{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:var(--white);margin-bottom:6px;}
.principal-title{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;}
.principal-bio{font-size:13px;line-height:1.85;color:rgba(255,255,255,.6);font-weight:300;}
.creds-strip{display:flex;gap:16px;margin-top:24px;flex-wrap:wrap;}
.cred-badge{font-size:10px;font-weight:700;letter-spacing:.12em;border:1px solid rgba(200,169,110,.5);color:var(--accent);border-radius:4px;padding:6px 14px;}

/* accreditations */
.accred-section{background:var(--off-white);text-align:center;}
.accred-logos{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin-top:48px;}
.accred-item{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 40px;background:var(--white);min-width:140px;}
.accred-name{font-size:18px;font-weight:700;letter-spacing:.08em;color:var(--black);}
.accred-full{font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--mid-grey);text-align:center;max-width:120px;}
.vm-card{padding:72px 60px;background:#111;position:relative;overflow:hidden;}
.vm-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--accent);transition:height .5s ease;}
.vm-card:hover::before{height:100%;}
.vm-card .section-label{margin-bottom:22px;}

@media(max-width:1024px){
  .about-story{grid-template-columns:1fr;}
  .about-story-img{height:360px;}
  .as-main{width:90%;height:90%;}                          /* ADD — project photo fills more */
  .as-accent{width:160px;height:120px;}                   /* ADD — tree shrinks to small corner */
  .principal-card{grid-template-columns:1fr;}
  .accred-item{padding:24px;}
}
@media(max-width:768px){
  .accred-logos{gap:16px;}
  .accred-item{min-width:120px;padding:20px;}
  .as-accent{width:130px;height:96px;}                    /* ADD — even smaller on phone */
}

.vm-card{padding:72px 60px;background:#111;position:relative;overflow:hidden;}
.vm-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--accent);transition:height .5s ease;}
.vm-card:hover::before{height:100%;}
.vm-card .section-label{margin-bottom:22px;}
@media(max-width:768px){[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important;}}

.exp-hero-bg{background-image:url('images/expertise_hero.jpg');background-size:cover;background-position:center;}
.exp-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.exp-grid-full{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.exp-card-full{background:var(--off-white);padding:48px 40px;position:relative;overflow:hidden;transition:background .4s;}
.exp-card-full::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;}
.exp-card-full:hover{background:var(--black);}
.exp-card-full:hover::after{transform:scaleX(1);}
.exp-card-full:hover .ecf-num{color:rgba(255,255,255,.55);transition:color 0s;}
.exp-card-full:hover .ecf-title{color:var(--white);}
.exp-card-full:hover .ecf-body{color:rgba(255,255,255,.55);}
.ecf-num{font-family:'Cormorant Garamond',serif;font-size:72px;font-weight:300;color:var(--accent);line-height:1;margin-bottom:22px;transition:color .4s;}
.ecf-title{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--black);margin-bottom:14px;transition:color .4s;}
.ecf-body{font-size:13px;line-height:1.85;color:#555;font-weight:300;transition:color .4s;}
.sectors-section{background:var(--black);padding:96px 64px;}
.sectors-grid{margin-top:56px;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;}
.sector-item{background:#111;padding:40px;display:flex;gap:24px;align-items:flex-start;border-left:3px solid transparent;transition:border-color .3s,background .3s;}
.sector-item:hover{border-left-color:var(--accent);background:#171717;}
.sector-icon{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:300;color:var(--accent);flex-shrink:0;line-height:1;}
.sector-text h4{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--white);margin-bottom:10px;}
.sector-text p{font-size:13px;line-height:1.75;color:rgba(255,255,255,.5);font-weight:300;}
.process-section{padding:96px 64px;}
.process-steps{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;}
.step{padding:40px 32px;background:var(--off-white);position:relative;}
.step::after{content:'';position:absolute;top:40px;right:-1px;width:1px;height:calc(100% - 80px);background:var(--light-grey);}
.step:last-child::after{display:none;}
.step-num{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:var(--accent);line-height:1;margin-bottom:18px;}
.step h4{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--black);margin-bottom:12px;}
.step p{font-size:12px;line-height:1.75;color:#555;font-weight:300;}
@media(max-width:1024px){
  .exp-intro{grid-template-columns:1fr;}
  .exp-grid-full{grid-template-columns:1fr 1fr;}
  .sectors-grid{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr 1fr;}
}
@media(max-width:768px){
  .exp-grid-full{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr;}
  .sectors-section{padding:64px 24px;}
  .process-section{padding:64px 24px;}
}

.pm-card:hover img { transform: scale(1.06); }

.proj-hero-bg{background:linear-gradient(135deg,#1e3c72 0%,#2a5298 50%,#1a2a6c 100%);}
.filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin:48px 0 56px;}
.filter-btn{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:10px 22px;border:1px solid var(--light-grey);background:none;border-radius:6px;cursor:pointer;font-family:inherit;color:#555;transition:all .2s;}
.filter-btn:hover,.filter-btn.active{background:var(--black);color:var(--white);border-color:var(--black);}
.projects-masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.pm-card{position:relative;overflow:hidden;background:var(--light-grey);cursor:pointer;height:420px;}
.pm-card.tall{grid-row:span 2;height:842px;}
.pm-card-inner{position:absolute;inset:0;}
.pm-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;}
.pm-bg-1{background:linear-gradient(135deg,#2d3436,#636e72);}
.pm-bg-2{background:linear-gradient(135deg,#2d1b00,#7a5200);}
.pm-bg-3{background:linear-gradient(135deg,#1e3c72,#2a5298);}
.pm-bg-4{background:linear-gradient(135deg,#0d2818,#1a5c33);}
.pm-bg-5{background:linear-gradient(135deg,#3d0c2f,#8b1a6b);}
.pm-bg-6{background:linear-gradient(135deg,#1a1a3e,#2d2d7a);}
.pm-bg-7{background:linear-gradient(135deg,#2d1a00,#6b4000);}
.pm-bg-8{background:linear-gradient(135deg,#0a2a0a,#1a5c1a);}
.pm-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,transparent 55%);opacity:0;transition:opacity .4s;}
.pm-card:hover .pm-overlay{opacity:1;}
.pm-info{position:absolute;bottom:0;left:0;right:0;padding:28px;z-index:2;transform:translateY(10px);transition:transform .4s;}
.pm-card:hover .pm-info{transform:translateY(0);}
.pm-info h3{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:400;color:#fff;margin-bottom:4px;}
.pm-info .pm-loc{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:12px;}
.pm-tag{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.7);padding:4px 10px;}
.pm-placeholder-text{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.25);}
.proj-cta-band{background:var(--off-white);padding:80px 64px;text-align:center;}
@media(max-width:1024px){
  .projects-masonry{grid-template-columns:1fr 1fr;}
  .pm-card{height:340px;}
  .pm-card.tall{height:682px;}
}
@media(max-width:768px){
  .projects-masonry{grid-template-columns:1fr;}
  .pm-card{height:280px;}
  .pm-card.tall{height:280px;grid-row:span 1;}
  .proj-cta-band{padding:56px 24px;}
}

.contact-hero-bg{background-image:url('images/contact_hero.jpg');background-size:cover;background-position:center;}

/* Two-column split: dark left info panel, light right form panel */
.contact-split{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  min-height:620px;
}

/* LEFT — dark info panel */
.contact-panel-left{
  background:var(--black);
  padding:72px 56px 72px 80px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}
.contact-panel-left::before{
  content:'';
  position:absolute;
  top:0; left:0;
  width:3px; height:100%;
  background:var(--accent);
}
.contact-panel-left .section-label{ color:var(--accent); }
.contact-panel-left .section-title{ color:var(--white); margin-bottom:40px; }

.cd-stack{ display:flex; flex-direction:column; gap:28px; }
.cd-row h4{
  font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.35); margin-bottom:8px;
}
.cd-row p, .cd-row a{
  font-size:15.6px; color:rgba(255,255,255,.75); text-decoration:none;
  line-height:1.7; font-weight:300; display:block;
}
.cd-row a:hover{ color:var(--accent); }

.accred-chips-dark{ display:flex; gap:10px; flex-wrap:wrap; margin-top:32px; padding-top:28px; border-top:1px solid rgba(255,255,255,.08); }
.accred-chip-dark{
  font-size:12px; font-weight:700; letter-spacing:.1em;
  color:var(--accent); border:1px solid rgba(200,169,110,.4); border-radius:4px;padding:8px 16px;
}

/* RIGHT — form panel */
.contact-panel-right{
  background:var(--off-white);
  padding:72px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.contact-panel-right h3{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(26px,2.8vw,40px); font-weight:300;
  color:var(--black); margin-bottom:6px; line-height:1.15;
}
.contact-panel-right h3 em{ font-style:italic; color:var(--accent); }
.contact-panel-right .form-sub{
  font-size:12px; font-weight:300; color:var(--mid-grey);
  margin-bottom:32px; letter-spacing:.04em;
}
.contact-form-inner{ display:flex; flex-direction:column; gap:16px; }
.contact-privacy-note{
  font-size:11px; color:var(--mid-grey); font-weight:300; line-height:1.6;
  margin-top:4px;
}
.contact-privacy-note a{ color:var(--accent); text-decoration:none; }
.contact-privacy-note a:hover{ text-decoration:underline; }

@media(max-width:1024px){
  .contact-split{ grid-template-columns:1fr; }
  .contact-panel-left{ padding:56px 40px 56px 56px; }
  .contact-panel-right{ padding:56px 40px; }
}
@media(max-width:768px){
  .contact-panel-left{ padding:48px 24px; }
  .contact-panel-right{ padding:48px 24px; }
}

/* ── Human verification checkbox ── */
.form-check{
  display:flex; align-items:flex-start; gap:12px; padding:16px 18px;
  background:var(--white); border:1px solid var(--light-grey);
  border-radius:4px;transition:border-color .2s;
}
.form-check:focus-within{ border-color:var(--accent); }
.form-check input[type="checkbox"]{
  appearance:none; -webkit-appearance:none;
  width:20px; height:20px; flex-shrink:0; margin-top:2px;
  border:2px solid #aaa; border-radius:3px;
  background:#fff; cursor:pointer;
  position:relative;
  transition:background .15s, border-color .15s;
}
.form-check input[type="checkbox"]:checked{
  background:var(--accent); border-color:var(--accent);
}
.form-check input[type="checkbox"]::after{
  content:'';
  position:absolute; display:none;
  left:5px; top:1px;
  width:6px; height:11px;
  border:2.5px solid #1a1a1a;
  border-top:none; border-left:none;
  transform:rotate(45deg);
}
.form-check input[type="checkbox"]:checked::after{ display:block; }
.form-check-label{
  font-size:12px; font-weight:400; color:#444; line-height:1.55; cursor:pointer;
}
.form-check-label strong{ color:var(--black); font-weight:600; }
.form-check.check-error{ border-color:#c0392b; }
.check-error-msg{
  font-size:11px; color:#c0392b; display:none; margin-top:4px;
  font-weight:500; letter-spacing:.04em;
}
.check-error-msg.visible{ display:block; }


/* ── CONTACT PAGE ICONS ──────────────────────── */
.cd-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.cd-icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--accent);
  opacity: .7;
}

.careers-hero-bg{background-image:url('images/careers_hero.jpg');background-size:cover;background-position:center;}
.careers-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.careers-values{background:var(--black);padding:96px 64px;}
.values-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.value-card{background:#111;padding:44px 36px;border-top:3px solid transparent;transition:border-color .3s,background .3s;position:relative;overflow:hidden;}
.value-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:0;background:rgba(200,169,110,.06);transition:height .4s ease;}
.value-card:hover{border-top-color:var(--accent);}
.value-card:hover::before{height:100%;}
.value-title{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--white);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08);}
.value-body{font-size:13px;line-height:1.85;color:rgba(255,255,255,.5);font-weight:300;}
.roles-section{padding:96px 64px;background:var(--off-white);}
.roles-grid{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.role-card{background:var(--white);padding:44px 40px;display:flex;flex-direction:column;gap:16px;border-left:3px solid transparent;transition:border-color .3s,box-shadow .3s;position:relative;}
.role-card:hover{border-left-color:var(--accent);box-shadow:4px 0 24px rgba(0,0,0,.06);}
.role-title{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--black);}
.role-body{font-size:13px;line-height:1.8;color:#555;font-weight:300;}
.role-tag{display:inline-block;align-self:flex-start;font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mid-grey);border:1px solid var(--mid-grey);border-radius:4px;padding:5px 12px;}
.no-vacancy-banner{background:var(--off-white);border-left:4px solid var(--accent);padding:20px 28px;margin-bottom:40px;border-radius:4px;display:flex;align-items:center;gap:16px;}
.no-vacancy-banner .nvb-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);flex-shrink:0;}
.no-vacancy-banner p{font-size:12px;font-weight:500;letter-spacing:.06em;color:#555;line-height:1.6;}
.no-vacancy-banner strong{color:var(--black);}
.apply-section{padding:96px 64px;text-align:center;}
.apply-section h2{max-width:560px;margin:16px auto 24px;}
.apply-section p{max-width:500px;margin:0 auto 40px;font-size:14px;color:#555;font-weight:300;line-height:1.8;}
@media(max-width:1024px){.careers-intro{grid-template-columns:1fr;}.values-grid{grid-template-columns:1fr 1fr;}.roles-grid{grid-template-columns:1fr;}}
@media(max-width:768px){.careers-values{padding:64px 24px;}.roles-section{padding:64px 24px;}.apply-section{padding:64px 24px;}.values-grid{grid-template-columns:1fr;}}

.insights-hero-bg{background-image:url('images/insights_hero.jpg');background-size:cover;background-position:center;}

/* ── Filter bar ── */
.ins-filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin:48px 0 56px;}
.ins-filter-btn{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:10px 22px;border:1px solid var(--light-grey);background:none;border-radius:6px;cursor:pointer;font-family:inherit;color:#555;transition:all .2s;}
.ins-filter-btn:hover,.ins-filter-btn.active{background:var(--black);color:var(--white);border-color:var(--black);}

/* ── Featured article ── */
.ins-featured{display:grid;grid-template-columns:1.1fr 1fr;gap:0;margin-bottom:2px;background:var(--black);min-height:480px;}
.ins-featured-img{position:relative;overflow:hidden;}
.ins-featured-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;filter:brightness(.75) saturate(1.1);}
.ins-featured:hover .ins-featured-img img{transform:scale(1.04);}
.ins-featured-body{padding:64px 56px;display:flex;flex-direction:column;justify-content:center;}
.ins-cat{font-size:9px;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.ins-featured-body h2{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,3vw,42px);font-weight:300;line-height:1.15;color:var(--white);margin-bottom:20px;}
.ins-featured-body h2 em{font-style:italic;color:var(--accent);}
.ins-excerpt{font-size:13px;line-height:1.85;color:rgba(255,255,255,.6);font-weight:300;margin-bottom:32px;}
.ins-meta{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:24px;}
.ins-read-btn{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(200,169,110,.4);padding-bottom:4px;transition:border-color .2s;}
.ins-read-btn:hover{border-color:var(--accent);}
.ins-read-btn::after{content:'→';font-size:14px;}

/* ── Article grid ── */
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-bottom:2px;}
.ins-card{background:var(--off-white);display:flex;flex-direction:column;cursor:pointer;transition:background .3s;}
.ins-card:hover{background:var(--white);}
.ins-card:hover .ins-card-img img{transform:scale(1.05);}
.ins-card-img{position:relative;overflow:hidden;aspect-ratio:16/10;}
.ins-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;filter:brightness(.85) saturate(1.1);}
.ins-card-img .ins-card-cat{position:absolute;top:16px;left:16px;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;background:var(--accent);color:var(--black);padding:5px 12px;}
.ins-card-body{padding:32px 28px;flex:1;display:flex;flex-direction:column;}
.ins-card-body h3{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;line-height:1.25;color:var(--black);margin-bottom:12px;flex:1;}
.ins-card-body p{font-size:12px;line-height:1.75;color:#666;font-weight:300;margin-bottom:20px;}
.ins-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--light-grey);padding-top:16px;margin-top:auto;}
.ins-card-date{font-size:10px;letter-spacing:.1em;color:var(--mid-grey);text-transform:uppercase;}
.ins-card-link{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-decoration:none;}

/* ── Article modal / full-read overlay ── */
.ins-modal{display:none;position:fixed;inset:0;z-index:2000;background:rgba(10,10,10,.92);overflow-y:auto;padding:40px 24px;}
.ins-modal.open{display:flex;align-items:flex-start;justify-content:center;}
.ins-modal-inner{background:var(--white);max-width:800px;width:100%;margin:auto;position:relative;}
.ins-modal-hero{height:360px;overflow:hidden;}
.ins-modal-hero img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.8) saturate(1.1);}
.ins-modal-content{padding:56px 64px;}
.ins-modal-close{position:absolute;top:20px;right:24px;background:var(--black);border:none;color:var(--white);font-size:24px;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .2s;}
.ins-modal-close:hover{background:var(--accent);}
.ins-modal-cat{font-size:9px;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.ins-modal-title{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,4vw,52px);font-weight:300;line-height:1.1;color:var(--black);margin-bottom:16px;}
.ins-modal-meta{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid-grey);margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--light-grey);}
.ins-modal-body{font-size:15px;line-height:1.95;color:#333;font-weight:300;}
.ins-modal-body p{margin-bottom:22px;}
.ins-modal-body h3{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:400;color:var(--black);margin:36px 0 16px;}
.ins-modal-body blockquote{border-left:3px solid var(--accent);padding:16px 24px;margin:28px 0;font-style:italic;color:#555;font-size:16px;font-family:'Cormorant Garamond',serif;line-height:1.65;}

/* ── No articles state ── */
.ins-empty{text-align:center;padding:80px 24px;color:var(--mid-grey);}
.ins-empty p{font-size:14px;font-weight:300;}

/* ── CTA band ── */
.ins-cta-band{background:var(--black);padding:80px 64px;text-align:center;}
.ins-cta-band h2{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,3.5vw,50px);font-weight:300;color:var(--white);max-width:540px;margin:16px auto 24px;}
.ins-cta-band h2 em{font-style:italic;color:var(--accent);}
.ins-cta-band p{font-size:13px;color:rgba(255,255,255,.55);max-width:440px;margin:0 auto 36px;font-weight:300;line-height:1.8;}

@media(max-width:1024px){
  .ins-featured{grid-template-columns:1fr;}
  .ins-featured-img{height:320px;}
  .ins-grid{grid-template-columns:1fr 1fr;}
  .ins-modal-content{padding:40px 36px;}
}
@media(max-width:768px){
  .ins-grid{grid-template-columns:1fr;}
  .ins-featured-body{padding:40px 28px;}
  .ins-modal-content{padding:32px 24px;}
  .ins-modal-hero{height:240px;}
  .ins-cta-band{padding:56px 24px;}
}

.insights-hero-bg{background-image:url('images/insights_hero.jpg');background-size:cover;background-position:center;}

.policy-hero-bg{background-image:url('images/about_hero.jpg');background-size:cover;background-position:center;}
.policy-body{max-width:820px;margin:0 auto;padding:80px 64px;}
.policy-body h2{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.5vw,32px);font-weight:300;color:var(--black);margin:48px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--light-grey);}
.policy-body h2:first-child{margin-top:0;}
.policy-body p,.policy-body li{font-size:14px;line-height:1.9;color:#444;font-weight:300;margin-bottom:14px;}
.policy-body ul{padding-left:24px;margin-bottom:16px;}
.policy-body li{margin-bottom:8px;}
.policy-body a{color:var(--accent);text-decoration:none;}
.policy-body a:hover{text-decoration:underline;}
.policy-updated{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid-grey);margin-bottom:40px;font-weight:500;}
@media(max-width:768px){.policy-body{padding:56px 24px;}}


/* ── GLOBAL BUTTON ROUNDING (catch-all) ─────── */
button:not([class*="back"]):not([class*="close"]):not([class*="dot"]):not([class*="toggle"]):not([class*="hamburger"]) {
  border-radius: 6px;
}
