:root {
  --ink:#0f1923; --ink-2:#2a3a4a; --muted:#5a6a7a; --rule:#d8e0e8;
  --bg:#f7f5f1; --white:#ffffff; --teal:#1a8a7a; --teal-lt:#e8f5f3;
  --teal-dk:#136358; --navy:#102040; --r:8px;
  --fs-xs:0.85rem; --fs-sm:0.97rem; --fs-base:1.06rem; --fs-md:1.18rem;
  /* Horizontal padding: 24px minimum on phones, scales up, 80px max on wide screens */
  --pad: clamp(24px, 6vw, 80px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:17px;}
body{
  font-family:"DM Sans",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.7;
  /* Prevent any element from causing horizontal scroll */
  overflow-x:hidden;
  /* Ensure body fills viewport so padding is always applied */
  min-width:0;
}
h1,h2,h3,h4{font-family:"DM Serif Display",serif;line-height:1.15;color:var(--ink);}
h1{font-size:clamp(2rem,5vw,4.2rem);}
h2{font-size:clamp(1.7rem,3.2vw,2.8rem);}
h3{font-size:1.35rem;}
p{color:var(--ink-2);max-width:66ch;font-size:var(--fs-base);}
a{color:var(--teal);text-decoration:none;}
a:hover{color:var(--teal-dk);}
strong{font-weight:500;color:var(--ink);}

/* CONTAINER — centred, with guaranteed minimum padding on all screens.
   Using padding directly (not clamp) at mobile, scaling up with vw at larger sizes.
   This avoids the browser bug where clamp min isn't honoured on some mobile engines. */
.container{
  max-width:1160px;
  margin:0 auto;
  padding-left:24px;
  padding-right:24px;
}
@media(min-width:480px){
  .container{
    padding-left:clamp(24px, 5vw, 60px);
    padding-right:clamp(24px, 5vw, 60px);
  }
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
section{padding:clamp(64px,8vw,108px) 0;}

/* ── NAV ─────────────────────────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(247,245,241,0.96);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule);
  /* 6px — minimal left indent as requested */
  padding-left:6px;
  padding-right:24px;
  height:70px;
  display:flex;align-items:center;justify-content:flex-start;gap:0.75rem;
  transition:box-shadow 0.3s;
}
nav.scrolled{box-shadow:0 2px 20px rgba(0,0,0,0.08);}

/* ── WORDPRESS ADMIN BAR OFFSET ─────────────────────────────────
   Handled via functions.php wp_head injection so it only fires
   for logged-in users. Rules here are kept as a fallback only. */
/* nav-logo: the <a> tag is the flex item — constrain it directly */
.nav-logo{
  flex-shrink:1;
  flex-grow:0;
  display:flex;
  align-items:center;
  min-width:0;
  max-width:274px;
  width:auto;
  overflow:hidden;
}
/* Direct img child (fallback logo) */
.nav-logo img,
/* WordPress custom_logo outputs: figure > a > img — target all these */
.nav-logo figure,
.nav-logo figure a,
.nav-logo figure img {
  display:block;
  max-height:43px;
  height:auto;
  width:auto;
  max-width:100%;
  object-fit:contain;
}

/* Nav links pushed to the right by margin-left:auto */
.nav-links{
  display:flex;gap:1rem;list-style:none;align-items:center;flex-wrap:nowrap;
  margin-left:auto; /* pushes links to the right */
}
.nav-links a{
  font-size:0.95rem;font-weight:500;color:var(--ink-2);
  transition:color 0.2s;white-space:nowrap;
}
.nav-links a:hover,.nav-links a.active{color:var(--teal);}
.nav-cta{
  background:var(--teal)!important;color:var(--white)!important;
  padding:8px 14px!important;border-radius:100px;
  font-size:0.9rem!important;
  transition:background 0.2s;white-space:nowrap;flex-shrink:0;
}
.nav-cta:hover{background:var(--teal-dk)!important;color:var(--white)!important;}

/* Hamburger — hidden on desktop, pushed right by margin-left:auto when nav-links hidden */
.hamburger{
  display:none;
  flex-direction:column;gap:5px;cursor:pointer;
  padding:10px;
  min-width:44px;min-height:44px;justify-content:center;align-items:center;
  margin-left:auto; /* anchors hamburger to right when nav-links hidden */
}
.hamburger span{width:22px;height:2px;background:var(--ink);border-radius:2px;display:block;}

/* Mobile drawer */
.mobile-menu{
  display:none;position:fixed;top:70px;left:0;right:0;
  background:var(--white);border-bottom:1px solid var(--rule);
  padding:1.25rem 24px;
  z-index:99;flex-direction:column;gap:1rem;
  box-shadow:0 8px 24px rgba(0,0,0,0.08);
  max-height:calc(100vh - 70px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
@media(min-width:480px){
  .mobile-menu{padding:1.25rem clamp(24px, 5vw, 60px);}
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  font-size:var(--fs-md);font-weight:500;color:var(--ink-2);
  padding:8px 0;border-bottom:1px solid var(--rule);
}
.mobile-menu a:last-child{border-bottom:none;}

/* At 1060px collapse to hamburger. No font-shrinking. */
@media(max-width:1060px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
  .nav-logo{max-width:246px;}
}
@media(max-width:480px){
  .nav-logo{max-width:198px;}
}
/* WordPress custom logo override */
.nav-logo .wp-block-site-logo,
.nav-logo .wp-block-site-logo a,
.nav-logo .wp-block-site-logo img{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  max-height:43px !important;
  height:auto !important;
}

/* HERO */
#hero{min-height:100vh;display:flex;align-items:center;background:var(--navy);padding-top:70px;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 70% 40%,rgba(26,138,122,0.18) 0%,transparent 60%),radial-gradient(ellipse 50% 50% at 10% 80%,rgba(200,148,58,0.08) 0%,transparent 50%);}
.hero-grid{position:absolute;inset:0;pointer-events:none;opacity:0.04;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:60px 60px;}
/* hero-inner: behaves identically to .container in terms of padding and centring.
   Must mirror .container's padding at every breakpoint exactly. */
.hero-inner{
  position:relative;z-index:1;
  max-width:1160px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
  /* Same base padding as .container */
  padding-left:24px;
  padding-right:24px;
  padding-top:clamp(50px,7vw,90px);
  padding-bottom:clamp(50px,7vw,90px);
}
/* Same breakpoint override as .container */
@media(min-width:480px){
  .hero-inner{
    padding-left:clamp(24px, 5vw, 60px);
    padding-right:clamp(24px, 5vw, 60px);
  }
}
.hero-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(26,138,122,0.15);border:1px solid rgba(26,138,122,0.3);color:#5ecfbf;font-size:var(--fs-base);font-weight:500;letter-spacing:0.04em;text-transform:uppercase;padding:11px 22px;border-radius:100px;margin-bottom:1.75rem;}
.hero-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:#5ecfbf;animation:pulse 2s infinite;flex-shrink:0;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.8)}}
#hero h1{color:var(--white);margin-bottom:1.25rem;max-width:18ch;}
#hero h1 em{color:#5ecfbf;font-style:italic;}
#hero .lead{font-size:clamp(var(--fs-base),1.6vw,1.2rem);color:rgba(255,255,255,0.72);max-width:54ch;margin-bottom:2.5rem;line-height:1.7;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:3.5rem;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:100px;font-size:var(--fs-sm);font-weight:500;cursor:pointer;border:none;transition:all 0.2s;text-decoration:none;}
.btn-primary{background:var(--teal);color:var(--white);}
.btn-primary:hover{background:var(--teal-dk);transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,138,122,0.35);color:var(--white);}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.3);}
.btn-ghost:hover{background:rgba(255,255,255,0.08);color:var(--white);transform:translateY(-2px);}
.hero-stats{display:flex;gap:clamp(0.75rem,2vw,3rem);flex-wrap:nowrap;}
.stat-num{font-family:"DM Serif Display",serif;font-size:clamp(1.6rem,2.5vw,2.2rem);color:var(--white);display:block;line-height:1;}
.stat-label{font-size:clamp(0.65rem,0.9vw,var(--fs-xs));color:rgba(255,255,255,0.5);text-transform:uppercase;letter-spacing:0.07em;white-space:nowrap;}
.stat-sep{width:1px;background:rgba(255,255,255,0.15);align-self:stretch;}

/* CLIENT STRIP — scrollable carousel */
#intro{background:var(--white);padding:2rem 0;border-bottom:1px solid var(--rule);}
/* Label: identical style to .about-eyebrow */
.intro-label{
  font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;
  letter-spacing:0.1em;color:var(--teal);
  margin-bottom:1.25rem;
}
/* Carousel is scoped inside .container so it matches the body content width */
.logo-carousel{
  position:relative;
  /* Overflow hidden clips logos that scroll off the edge */
  overflow:hidden;
}
.logo-carousel::before,.logo-carousel::after{
  content:"";position:absolute;top:0;bottom:0;width:50px;z-index:3;pointer-events:none;
}
.logo-carousel::before{left:0;background:linear-gradient(to right,var(--white) 30%,transparent);}
.logo-carousel::after{right:0;background:linear-gradient(to left,var(--white) 30%,transparent);}
/* Scrollable track — padding-left gives first logo clearance from fade gradient,
   padding-right gives last logo clearance from the right fade and arrow button */
.logo-track{
  display:flex;align-items:center;gap:2.5rem;
  padding:0.5rem 56px 0.5rem 48px;
  overflow-x:auto;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.logo-track::-webkit-scrollbar{display:none;}
/* Arrow buttons positioned relative to the carousel */
.carousel-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  z-index:4;width:34px;height:34px;border-radius:50%;
  background:var(--white);border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all 0.2s;
  box-shadow:0 2px 8px rgba(0,0,0,0.1);
  font-size:0.85rem;color:var(--ink-2);user-select:none;
}
.carousel-btn:hover{background:var(--teal-lt);border-color:var(--teal);color:var(--teal);}
.carousel-btn.prev{left:0;}
.carousel-btn.next{right:0;}
/* Logo items */
.logo-item{
  position:relative;
  display:inline-flex;flex-direction:column;align-items:center;
  flex-shrink:0;cursor:pointer;transition:transform 0.2s;
}
.logo-item:hover{transform:scale(1.06);}
.logo-item:hover img{filter:drop-shadow(0 2px 5px rgba(26,138,122,0.15));}
/* Tooltip — shown as a block element below the logo, not ::after pseudo */
.logo-tooltip{
  display:block;
  margin-top:6px;
  background:var(--navy);color:var(--white);
  font-size:0.7rem;font-weight:500;white-space:nowrap;
  padding:3px 9px;border-radius:4px;
  opacity:0;
  transition:opacity 0.15s;
  pointer-events:none;
  max-width:160px;text-align:center;
  overflow:hidden;text-overflow:ellipsis;
}
/* Show tooltip on mouse hover (desktop) */
.logo-item:hover .logo-tooltip{opacity:1;}
/* Suppress tooltip after touch — .touch-active class added by JS on touchend,
   removed on next touchstart anywhere on the document */
.logo-item.touch-active .logo-tooltip{opacity:0 !important;}
.logo-item img{height:72px;width:auto;object-fit:contain;display:block;}

/* ABOUT */
#about{background:var(--bg);}
.about-eyebrow{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.1em;color:var(--teal);margin-bottom:0.75rem;}
#about h2{margin-bottom:1.5rem;}
#about .lead-text{font-size:var(--fs-md);color:var(--ink-2);line-height:1.75;margin-bottom:1.5rem;max-width:60ch;}
.about-divider{width:48px;height:3px;background:var(--teal);margin:1.5rem 0;border-radius:2px;}
.about-right{display:flex;flex-direction:column;gap:1rem;}
.about-card{background:var(--white);border:1px solid var(--rule);border-radius:var(--r);padding:1.25rem 1.5rem;border-left:3px solid var(--teal);}
.about-card h4{font-family:"DM Sans",sans-serif;font-weight:500;font-size:var(--fs-xs);color:var(--teal);margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.06em;}
.about-card p{font-size:var(--fs-sm);max-width:none;color:var(--ink-2);margin:0;}
/* Profile feature — full width across both columns */
.profile-feature{
  grid-column:1 / -1;
  display:flex;
  align-items:flex-start;  /* both columns start at the top */
  gap:3rem;
  margin-top:2.5rem;padding:2.5rem;
  background:var(--white);border-radius:16px;border:1px solid var(--rule);
  box-shadow:0 4px 24px rgba(0,0,0,0.06);
}
/* Photo sits at the top of the flex row, no extra top margin */
.profile-photo-lg{
  width:240px;
  height:240px;
  border-radius:14px;
  object-fit:cover;
  object-position:center top;
  flex-shrink:0;
  border:3px solid var(--rule);
  box-shadow:0 8px 32px rgba(0,0,0,0.14);
  /* No margin-top — aligns with name naturally */
  align-self:flex-start;
}
.profile-info{
  flex:1;
  /* Push content to align its top with photo top */
  padding-top:0;
}
.profile-name{font-family:"DM Serif Display",serif;font-size:2rem;color:var(--ink);margin-bottom:0.3rem;line-height:1.15;}
.profile-role{font-size:var(--fs-md);color:var(--teal);font-weight:500;margin-bottom:1rem;}
.profile-bio{font-size:var(--fs-base);color:var(--muted);line-height:1.75;margin:0;max-width:60ch;}
.profile-links{display:flex;gap:0.75rem;margin-top:1.25rem;flex-wrap:wrap;}
.profile-link{font-size:var(--fs-sm);font-weight:500;padding:7px 16px;border-radius:100px;border:1px solid var(--rule);color:var(--ink-2);transition:all 0.2s;}
.profile-link:hover{border-color:var(--teal);color:var(--teal);}

/* SERVICES — icon-style with SVG graphics */
#services{background:var(--white);}
.section-header{text-align:center;max-width:680px;margin:0 auto 3.5rem;}
.section-header .eyebrow,.eyebrow{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.1em;color:var(--teal);margin-bottom:0.75rem;display:block;}
.section-header h2{margin-bottom:1rem;}
.section-header p{color:var(--muted);margin:0 auto;}
.service-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;overflow:hidden;transition:transform 0.25s,box-shadow 0.25s,border-color 0.25s;display:flex;flex-direction:column;}
.service-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.08);border-color:rgba(26,138,122,0.2);}
/* Service icon area — replacing strip images */
.service-icon-area{
  width:100%;height:80px;
  display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--rule);
  position:relative;overflow:hidden;
}
.service-body{padding:1.5rem;flex:1;}
.service-card h3{font-family:"DM Sans",sans-serif;font-weight:500;font-size:var(--fs-base);margin-bottom:0.75rem;color:var(--ink);}
.service-card p{font-size:var(--fs-sm);color:var(--muted);margin:0;max-width:none;}
.service-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:1.25rem;}
.service-tag{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.05em;padding:4px 10px;border-radius:100px;background:var(--teal-lt);color:var(--teal-dk);}

/* HOW WE WORK */
#how{background:var(--navy);}
#how .section-header h2{color:var(--white);}
#how .section-header p{color:rgba(255,255,255,0.55);}
.steps{display:flex;flex-direction:column;max-width:780px;margin:0 auto;}
.step{display:grid;grid-template-columns:72px 1fr;gap:1.5rem;padding:2rem 0;border-bottom:1px solid rgba(255,255,255,0.08);}
.step:last-child{border-bottom:none;}
.step-num{width:52px;height:52px;border-radius:50%;border:1px solid rgba(26,138,122,0.4);display:flex;align-items:center;justify-content:center;font-family:"DM Serif Display",serif;font-size:1.4rem;color:#5ecfbf;flex-shrink:0;margin-top:2px;}
.step h3{font-family:"DM Sans",sans-serif;font-weight:500;color:var(--white);margin-bottom:0.5rem;font-size:var(--fs-base);}
.step p{color:rgba(255,255,255,0.6);font-size:var(--fs-sm);max-width:58ch;margin:0;}

/* TRACK RECORD */
#track{background:var(--bg);}
.track-grid{display:flex;flex-direction:column;gap:1.25rem;}
.track-item{background:var(--white);border:1px solid var(--rule);border-radius:10px;padding:1.5rem 2rem;display:grid;grid-template-columns:160px 1fr auto;gap:1.5rem;align-items:center;transition:border-color 0.2s,box-shadow 0.2s;}
.track-item:hover{border-color:rgba(26,138,122,0.25);box-shadow:0 4px 20px rgba(0,0,0,0.05);}
.track-logo-slot{
  width:160px;height:70px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;
  padding:4px;
}
.track-logo-slot img{max-width:150px;max-height:62px;object-fit:contain;width:auto;height:auto;}
.track-desc{font-size:var(--fs-sm);color:var(--ink-2);}
.track-desc strong{color:var(--ink);font-weight:500;display:block;margin-bottom:0.3rem;}
.track-badge{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.05em;padding:5px 14px;border-radius:100px;white-space:nowrap;background:var(--teal-lt);color:var(--teal-dk);}

/* SECTORS — background image cards with overlay */
#sectors{background:var(--white);}
.sector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.sector-card{
  border-radius:12px;border:none;
  text-align:left;
  overflow:hidden;
  position:relative;
  min-height:220px;
  display:flex;flex-direction:column;justify-content:flex-end;
  transition:transform 0.25s,box-shadow 0.25s;
}
.sector-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.18);}
/* Background image layer */
.sector-card-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform 0.35s;
}
.sector-card:hover .sector-card-bg{transform:scale(1.04);}
/* Dark gradient overlay so text is legible */
.sector-card-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(10,24,45,0.88) 0%, rgba(10,24,45,0.45) 60%, rgba(10,24,45,0.2) 100%);
}
/* Text content on top of overlay */
.sector-card-content{
  position:relative;z-index:2;
  padding:1.5rem;
}
.sector-card h4{
  font-family:"DM Sans",sans-serif;font-weight:600;
  font-size:1.3rem;color:var(--white);
  margin-bottom:0.5rem;
}
.sector-card p{font-size:var(--fs-sm);color:rgba(255,255,255,0.88);margin:0;max-width:none;line-height:1.55;}

/* ASSOCIATE MODEL */
#model{background:var(--bg);}
.model-inner{background:var(--white);border:1px solid var(--rule);border-radius:16px;overflow:hidden;}
.model-header{background:var(--navy);padding:2.75rem 3rem;}
.model-header h2{color:var(--white);margin-bottom:0.75rem;}
.model-header p{color:rgba(255,255,255,0.65);max-width:58ch;margin:0;font-size:var(--fs-base);}
.model-body{padding:2.75rem 3rem;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
.model-col h3{font-family:"DM Sans",sans-serif;font-weight:500;color:var(--teal);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:1rem;font-size:var(--fs-xs);}
.model-list{list-style:none;display:flex;flex-direction:column;gap:0.85rem;}
.model-list li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);color:var(--ink-2);}
.model-list li::before{content:"→";color:var(--teal);font-weight:500;flex-shrink:0;margin-top:2px;}

/* ENGAGEMENT */
#engagement{background:var(--white);}
.eng-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
/* Engagement card — image strip at top, text below, no overlay */
.eng-card{
  border-radius:12px;
  border:1px solid var(--rule);
  overflow:hidden;
  display:flex;flex-direction:column;
  background:var(--bg);
  transition:box-shadow 0.25s,border-color 0.25s;
  padding:0;
}
.eng-card:hover{
  box-shadow:0 12px 40px rgba(0,0,0,0.08);
  border-color:rgba(26,138,122,0.2);
}
/* Image strip — twice the height of service icons */
.eng-card-img{
  width:100%;
  height:160px;
  overflow:hidden;
  flex-shrink:0;
  position:relative;
}
.eng-card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform 0.35s ease;
}
.eng-card:hover .eng-card-img img{transform:scale(1.05);}
/* Card body — text content below image, centred */
.eng-card-body{padding:1.5rem;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;}
.eng-card h3{font-family:"DM Sans",sans-serif;font-weight:500;font-size:var(--fs-base);margin-bottom:0.5rem;color:var(--ink);}
.eng-card p{font-size:var(--fs-sm);color:var(--muted);margin:0;max-width:none;flex:1;}
/* Tag: inline-flex so it shrinks to text width, like the Track Record badge */
.eng-tag{display:inline-flex;align-self:center;margin-top:1rem;font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.06em;padding:5px 14px;border-radius:100px;background:var(--teal-lt);color:var(--teal-dk);}

/* TESTIMONIALS */
#testimonials{background:var(--teal-lt);}
.quote-block{max-width:800px;margin:0 auto;text-align:center;}
.quote-mark{font-family:"DM Serif Display",serif;font-size:5rem;color:var(--teal);line-height:0.5;margin-bottom:1.5rem;display:block;opacity:0.4;}
.quote-text{font-family:"DM Serif Display",serif;font-size:clamp(1.2rem,2.5vw,1.65rem);color:var(--ink);line-height:1.5;margin-bottom:2rem;font-style:italic;}
.quote-attr{font-size:var(--fs-sm);font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;}
.quote-dots{display:flex;gap:8px;justify-content:center;margin-top:2rem;}
.qdot{width:9px;height:9px;border-radius:50%;background:var(--teal);opacity:0.3;cursor:pointer;transition:opacity 0.2s;}
.qdot.active{opacity:1;}

/* CONTACT */
#contact{background:var(--navy);}
#contact h2{color:var(--white);margin-bottom:1rem;}
#contact .lead{color:rgba(255,255,255,0.65);margin-bottom:2.5rem;font-size:var(--fs-md);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
.contact-methods{display:flex;flex-direction:column;gap:1rem;}
.contact-method{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:10px;text-decoration:none;transition:background 0.2s,border-color 0.2s;}
.contact-method:hover{background:rgba(26,138,122,0.15);border-color:rgba(26,138,122,0.3);}
.contact-method-icon{font-size:1.25rem;width:46px;height:46px;border-radius:8px;background:rgba(26,138,122,0.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.contact-method-label{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.07em;color:rgba(255,255,255,0.4);margin-bottom:3px;}
.contact-method-val{font-size:var(--fs-sm);color:var(--white);font-weight:500;}
.contact-note{font-size:var(--fs-sm);color:rgba(255,255,255,0.5);margin-top:1.5rem;line-height:1.7;}
.contact-form-area{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:2rem;}
.contact-form-area h3{font-family:"DM Sans",sans-serif;color:var(--white);font-weight:500;font-size:var(--fs-base);margin-bottom:1.25rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
label{display:block;font-size:var(--fs-xs);font-weight:500;color:rgba(255,255,255,0.5);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;}
input,textarea,select{width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.15);border-radius:6px;padding:11px 14px;font-family:"DM Sans",sans-serif;font-size:var(--fs-sm);color:var(--white);outline:none;transition:border-color 0.2s;}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,0.25);}
input:focus,textarea:focus,select:focus{border-color:rgba(26,138,122,0.6);}
textarea{resize:vertical;min-height:100px;}
select option{background:var(--navy);color:var(--white);}
.form-note{font-size:var(--fs-xs);color:rgba(255,255,255,0.35);margin-top:1rem;}

/* FOOTER — mid-slate background, distinct from navy contact section above */
footer{
  background:#1e3350;
  padding:3rem 0;
  border-top:1px solid rgba(255,255,255,0.12);
}
.footer-inner{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:2rem;
}

/* Nav/Legal link groups */
.footer-links-group{display:flex;flex-direction:column;gap:0.5rem;}
.footer-group-label{
  font-family:"DM Sans",sans-serif;
  font-size:0.72rem;font-weight:500;
  text-transform:uppercase;letter-spacing:0.12em;
  color:rgba(94,207,191,0.7);
  margin-bottom:0.5rem;
  max-width:none;line-height:1.4;
}
.footer-nav-wrap{display:flex;gap:3rem;flex-wrap:wrap;}
.footer-links{display:flex;flex-direction:column;gap:0.5rem;list-style:none;}
.footer-links a{
  font-size:var(--fs-sm);color:#5ecfbf !important;
  transition:color 0.2s;font-weight:400;
  text-transform:none;letter-spacing:normal;
}
.footer-links a:hover{color:var(--white) !important;}
/* Social link row */
.footer-social-links li{list-style:none;}
/* Icon + text side by side */
.footer-li-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none !important;
}
/* LinkedIn square icon — width sets size, height scales automatically (1:1 ratio).
   To resize: change width. To swap logo: replace logo-linkedin.png via FTP. */
.footer-li-logo{
  display:block;
  width:28px;
  height:auto;
  flex-shrink:0;
}
/* Text label beside icon */
.footer-li-text{
  font-size:var(--fs-sm);
  color:#5ecfbf !important;
  font-weight:400;
  white-space:nowrap;
  transition:color 0.2s;
}
.footer-li-link:hover .footer-li-text{color:var(--white) !important;}

/* Right column: contact links at top, copyright at bottom, with space between */
.footer-legal{
  display:flex;
  flex-direction:column;
  text-align:center;
  align-items:center;
  /* align-self:stretch so this column stretches to the full footer height */
  align-self:stretch;
}
/* Contact links — at top of the column, bright teal, lowercase */
.footer-contact-links{
  margin-bottom:auto; /* pushes copyright block to the bottom */
}
.footer-contact-links a{
  display:block;
  font-size:var(--fs-sm);
  font-weight:400;
  text-transform:none;
  letter-spacing:normal;
  color:#5ecfbf !important;
  transition:color 0.2s;
  line-height:1.9;
  text-decoration:none;
}
.footer-contact-links a:hover{color:var(--white) !important;}
/* Spacer line between contact and copyright — always at least 1 line */
.footer-legal-spacer{
  display:block;
  min-height:1.5rem; /* ensures at least one blank line gap */
}
/* Copyright + registration — at bottom, same style as group labels */
.footer-legal-text{
  display:block;
  font-family:"DM Sans",sans-serif;
  font-size:0.72rem;font-weight:500;
  text-transform:uppercase;letter-spacing:0.12em;
  color:rgba(94,207,191,0.7) !important;
  line-height:2.0;max-width:none;
}

/* COOKIE BANNER */
#cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#0a1628;border-top:1px solid rgba(255,255,255,0.15);padding:1.25rem clamp(24px, 5vw, 60px);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;z-index:200;transform:translateY(100%);transition:transform 0.4s ease;}
#cookie-banner.show{transform:translateY(0);}
.cookie-text{font-size:var(--fs-sm);color:rgba(255,255,255,0.85);max-width:70ch;}
.cookie-text a{color:#5ecfbf;}
.cookie-actions{display:flex;gap:0.75rem;flex-shrink:0;flex-wrap:wrap;}
.cookie-accept{background:var(--teal);color:var(--white);border:none;padding:9px 22px;border-radius:100px;font-size:var(--fs-sm);font-weight:500;cursor:pointer;}
.cookie-decline{background:transparent;color:rgba(255,255,255,0.7);border:1px solid rgba(255,255,255,0.25);padding:9px 22px;border-radius:100px;font-size:var(--fs-sm);font-weight:500;cursor:pointer;}

/* POLICY PAGES */
.policy-hero{background:var(--navy);padding:clamp(100px,12vw,140px) 0 4rem;position:relative;overflow:hidden;}
.policy-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 70% 50%,rgba(26,138,122,0.15) 0%,transparent 60%);}
.policy-hero-inner{position:relative;z-index:1;}
.policy-body{max-width:800px;margin:4rem auto;padding:0 clamp(24px, 5vw, 60px) 6rem;}
.policy-body h2{margin:2.5rem 0 1rem;font-size:1.5rem;}
.policy-body h3{font-family:"DM Sans",sans-serif;font-weight:500;font-size:var(--fs-base);color:var(--ink);margin:1.75rem 0 0.6rem;}
.policy-body p{margin-bottom:1.1rem;font-size:var(--fs-base);color:var(--ink-2);max-width:72ch;}
.policy-body ul{margin:0.75rem 0 1.25rem;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:0.5rem;}
.policy-body ul li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-base);color:var(--ink-2);}
.policy-body ul li::before{content:"→";color:var(--teal);font-weight:500;flex-shrink:0;}
.policy-body .last-updated{font-size:var(--fs-xs);color:var(--muted);margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule);}
.back-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--teal);margin-bottom:2rem;}
.back-link::before{content:"←";}
.page-eyebrow{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.1em;color:#5ecfbf;margin-bottom:0.75rem;}

/* ANIMATIONS */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* RESPONSIVE */
@media(max-width:1060px){
  .grid-2,.contact-grid,.eng-cards{grid-template-columns:1fr;}
  .model-body{grid-template-columns:1fr;padding:1.5rem;}
  .model-header{padding:1.75rem 1.5rem;}
  .form-row{grid-template-columns:1fr;}
  .contact-form-area{padding:1.5rem;}
  .track-item{grid-template-columns:1fr;gap:0.75rem;}
  .track-logo-slot{width:auto;height:56px;justify-content:flex-start;}
  /* Footer: single column, all text centred */
  .footer-inner{grid-template-columns:1fr;gap:1.5rem;text-align:center;}
  .footer-nav-wrap{justify-content:center;}
  .footer-legal{align-items:center;text-align:center;}
  .footer-legal-spacer{min-height:1rem;}
  .footer-logo{display:flex;justify-content:center;}
  .footer-social-links a{justify-content:center;}
  .profile-feature{flex-direction:column;align-items:center;text-align:center;gap:1.5rem;padding:1.5rem;}
  /* Photo: display:block + margin:auto centres a replaced element reliably in any browser */
  .profile-photo-lg{
    width:180px;height:180px;
    display:block;
    margin-left:auto;
    margin-right:auto;
    align-self:center;
    flex-shrink:1;
  }
  .profile-bio{max-width:none;}
  .profile-links{justify-content:center;}
  .profile-info{text-align:center;}
}
@media(max-width:700px){
  .sector-grid{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:1fr;}
  .hero-stats{gap:1.25rem;}
  .footer-nav-wrap{gap:1.5rem;}
  .sector-card{min-height:180px;}
}
@media(max-width:480px){
  .sector-grid{grid-template-columns:1fr;}
  .eng-cards{grid-template-columns:1fr;}
  .hero-stats{flex-direction:column;gap:1rem;}
  .stat-sep{display:none;}
  #cookie-banner{flex-direction:column;align-items:flex-start;}
  .cookie-actions{width:100%;}
  .logo-track{gap:2rem;}
  .logo-item img{height:56px;}
  .sector-card{min-height:160px;}
}

/* INSIGHTS */
.page-hero{background:var(--navy);padding:clamp(100px,12vw,140px) 0 clamp(60px,8vw,90px);position:relative;overflow:hidden;}
.page-hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(26,138,122,0.15) 0%,transparent 60%);}
.page-hero-grid{position:absolute;inset:0;pointer-events:none;opacity:0.04;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:60px 60px;}
.page-hero-inner{position:relative;z-index:1;}
.page-hero h1{color:var(--white);margin-bottom:1rem;max-width:22ch;}
.page-hero p{color:rgba(255,255,255,0.65);font-size:var(--fs-md);max-width:58ch;}
.insights-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:2rem 0;border-bottom:1px solid var(--rule);}
.filter-tabs{display:flex;gap:0.5rem;flex-wrap:wrap;}
.filter-tab{font-size:var(--fs-sm);font-weight:500;padding:8px 18px;border-radius:100px;border:1px solid var(--rule);background:var(--white);color:var(--muted);cursor:pointer;transition:all 0.2s;}
.filter-tab:hover,.filter-tab.active{background:var(--teal);color:var(--white);border-color:var(--teal);}
.search-box{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--rule);border-radius:100px;padding:8px 16px;}
.search-box input{border:none;outline:none;font-family:"DM Sans",sans-serif;font-size:var(--fs-sm);color:var(--ink);background:transparent;width:180px;}
.featured-post{background:var(--white);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;margin-bottom:2.5rem;transition:box-shadow 0.25s;cursor:pointer;}
.featured-post:hover{box-shadow:0 8px 40px rgba(0,0,0,0.08);}
.featured-img{background:linear-gradient(135deg,var(--navy) 0%,#1a3a5c 100%);display:flex;align-items:center;justify-content:center;padding:3rem;min-height:280px;position:relative;overflow:hidden;}
.featured-img::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 70%,rgba(26,138,122,0.3) 0%,transparent 60%);}
.featured-img-text{font-family:"DM Serif Display",serif;font-size:3rem;color:rgba(255,255,255,0.15);position:relative;z-index:1;}
.featured-content{padding:2.5rem;}
.post-meta{display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem;flex-wrap:wrap;}
.post-tag{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.06em;padding:4px 12px;border-radius:100px;background:var(--teal-lt);color:var(--teal-dk);}
/* Secondary category tags — slightly muted vs primary */
.post-tag-secondary{background:var(--bg);color:var(--muted);border:1px solid var(--rule);}
/* Category tags on single article hero */
.post-tag-article{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.06em;padding:3px 10px;border-radius:100px;background:rgba(94,207,191,0.15);color:rgba(94,207,191,0.85);}
/* Featured image flush against hero — no gap, straight top edge */
.article-featured-img-hero{
  margin:25px 0;          /* padding above and below */
  border-radius:12px;     /* all four corners rounded */
  overflow:hidden;        /* clips image to rounded corners */
  position:relative;      /* anchor for photo-credit overlay */
  line-height:0;
}
.article-featured-img-hero img{
  width:100%;
  height:auto;
  display:block;
  max-height:480px;
  object-fit:cover;
  border-radius:0;        /* parent handles rounding */
}
/* Photo attribution overlay — bottom-right, slightly inset */
.photo-credit{
  position:absolute;
  bottom:10px;
  right:14px;
  font-size:10px;
  line-height:1.4;
  color:rgba(255,255,255,0.75);
  text-shadow:0 1px 3px rgba(0,0,0,0.6);
  max-width:60%;
  text-align:right;
}
.photo-credit a{
  color:rgba(255,255,255,0.75);
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,0.4);
}
.photo-credit a:hover{color:var(--white);}
/* Filter tip tooltip */
.filter-tip{font-size:var(--fs-xs);color:var(--muted);cursor:help;border-bottom:1px dotted var(--rule);}
.post-date{font-size:var(--fs-xs);color:var(--muted);}
.post-featured-badge{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.06em;padding:4px 12px;border-radius:100px;background:var(--navy);color:#5ecfbf;}
.featured-content h2{margin-bottom:0.75rem;font-size:clamp(1.4rem,2vw,1.8rem);}
.featured-content p{font-size:var(--fs-sm);color:var(--muted);margin-bottom:1.5rem;}
.read-more{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--teal);}
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2.5rem;}
.post-card{background:var(--white);border:1px solid var(--rule);border-radius:12px;overflow:hidden;transition:transform 0.25s,box-shadow 0.25s;cursor:pointer;}
.post-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.08);}
.post-card-img{height:140px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),#1a3a5c);}
.post-card-img.teal{background:linear-gradient(135deg,var(--teal-dk),var(--teal));}
.post-card-img.slate{background:linear-gradient(135deg,#2a3a4a,#0f1923);}
.post-card-img-text{font-family:"DM Serif Display",serif;font-size:2.2rem;color:rgba(255,255,255,0.15);}
.post-card-body{padding:1.5rem;}
.post-card-body h3{font-family:"DM Sans",sans-serif;font-weight:500;font-size:var(--fs-base);color:var(--ink);margin-bottom:0.5rem;line-height:1.4;}
.post-card-body p{font-size:var(--fs-xs);color:var(--muted);margin:0;max-width:none;}
.post-card-footer{padding:1rem 1.5rem;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;}
.author-name{font-size:var(--fs-xs);font-weight:500;color:var(--ink-2);}
.read-time{font-size:var(--fs-xs);color:var(--muted);}
.newsletter{background:var(--navy);border-radius:16px;padding:3rem;text-align:center;margin:3rem 0;}
.newsletter h3{font-family:"DM Sans",sans-serif;font-weight:500;color:var(--white);margin-bottom:0.5rem;font-size:var(--fs-md);}
.newsletter p{color:rgba(255,255,255,0.6);margin:0 auto 1.5rem;max-width:44ch;}
.newsletter-form{display:flex;gap:0.75rem;max-width:440px;margin:0 auto;flex-wrap:wrap;}
.newsletter-form input{flex:1;min-width:180px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:100px;padding:11px 20px;font-family:"DM Sans",sans-serif;font-size:var(--fs-sm);color:var(--white);outline:none;}
.article-hero{background:var(--navy);padding:clamp(100px,12vw,140px) 0 4rem;position:relative;overflow:hidden;}
.article-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 70% 50%,rgba(26,138,122,0.18) 0%,transparent 60%);}
.article-hero-inner{position:relative;z-index:1;max-width:820px;}
.article-hero h1{color:var(--white);margin-bottom:1.25rem;font-size:clamp(1.7rem,3.5vw,2.8rem);}
.article-meta{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
.article-body-wrap{max-width:820px;margin:0 auto;padding:0 clamp(24px, 5vw, 60px) 6rem;}
.article-body h2{margin:2.5rem 0 1rem;}
.article-body h3{font-family:"DM Sans",sans-serif;font-weight:500;margin:2rem 0 0.75rem;color:var(--ink);}
.article-body p{margin-bottom:1.25rem;font-size:var(--fs-base);color:var(--ink-2);max-width:70ch;}
.article-body blockquote{border-left:3px solid var(--teal);padding:1rem 1.5rem;margin:2rem 0;background:var(--teal-lt);border-radius:0 var(--r) var(--r) 0;}
.article-body blockquote p{color:var(--teal-dk);font-style:italic;margin:0;}
.article-body ul{margin:1rem 0 1.5rem;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:0.5rem;}
.article-body ul li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-base);color:var(--ink-2);}
.article-body ul li::before{content:"→";color:var(--teal);font-weight:500;flex-shrink:0;}
/* Inline images within article body *//* Inline images within article body */
/* ── INLINE IMAGES IN ARTICLE BODY ──────────────────────────────────
   Final version — confirmed working in browser testing May 2026.
   Scoped to .article-body-wrap to avoid affecting other image contexts.
   Mirrors Additional CSS in Customizer — keeping both in sync.        */

/* Shared — all figures: rounding, overflow clip, caption anchor */
.article-body-wrap figure.wp-block-image.size-full{
  border-radius:12px !important;
  overflow:hidden !important;
  position:relative !important;
  line-height:0 !important;
  margin-bottom:1.5rem !important;
}
/* Default + Wide + Full — display:table shrinks to image width */
.article-body-wrap figure.wp-block-image.size-full:not(.alignleft):not(.alignright):not(.aligncenter){
  display:table !important;
  max-width:100% !important;
}
/* Align centre — table + auto margins */
.article-body-wrap figure.wp-block-image.size-full.aligncenter{
  display:table !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* Align left / right — float with text wrap */
.article-body-wrap figure.wp-block-image.size-full.alignleft{
  display:inline-block !important;
  float:left !important;
  max-width:50% !important;
  margin-right:1.5rem !important;
  margin-bottom:0.75rem !important;
}
.article-body-wrap figure.wp-block-image.size-full.alignright{
  display:inline-block !important;
  float:right !important;
  max-width:50% !important;
  margin-left:1.5rem !important;
  margin-bottom:0.75rem !important;
}
/* Image — responsive in all alignment cases */
.article-body-wrap figure.wp-block-image.size-full img{
  display:block !important;
  max-width:100% !important;
  height:auto !important;
  border-radius:0 !important; /* parent handles rounding */
}
/* Caption — overlaid bottom-right, anchored to image edge */
.article-body-wrap figure.wp-block-image.size-full figcaption,
.article-body-wrap figure.wp-block-image.size-full .wp-element-caption{
  position:absolute !important;
  bottom:8px !important;
  right:12px !important;
  left:auto !important;
  top:auto !important;
  width:auto !important;
  max-width:65% !important;
  font-size:10px !important;
  line-height:1.4 !important;
  color:rgba(255,255,255,0.82) !important;
  text-shadow:0 1px 3px rgba(0,0,0,0.65) !important;
  text-align:right !important;
  background:none !important;
  padding:0 !important;
  margin:0 !important;
}
.article-body-wrap figure.wp-block-image.size-full figcaption a,
.article-body-wrap figure.wp-block-image.size-full .wp-element-caption a{
  color:rgba(255,255,255,0.82) !important;
  text-decoration:underline !important;
  text-decoration-color:rgba(255,255,255,0.4) !important;
}
.article-body-wrap figure.wp-block-image.size-full figcaption a:hover,
.article-body-wrap figure.wp-block-image.size-full .wp-element-caption a:hover{
  color:rgba(255,255,255,1) !important;
}
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--teal);margin-bottom:2rem;cursor:pointer;background:none;border:none;}
.article-share{border-top:1px solid var(--rule);padding-top:2rem;margin-top:3rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.share-label{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);}
.share-btn{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;padding:8px 18px;border:1px solid var(--rule);border-radius:100px;color:var(--ink-2);background:none;cursor:pointer;transition:all 0.2s;}
.share-btn:hover{border-color:var(--teal);color:var(--teal);}
@media(max-width:700px){
  .featured-post{grid-template-columns:1fr;}
  .featured-img{min-height:160px;}
  .posts-grid{grid-template-columns:1fr 1fr;}
  /* Related posts on single article — drop to 1 col earlier than archive grid */
  .related-posts-grid{grid-template-columns:1fr !important;}
}
@media(max-width:480px){
  .posts-grid{grid-template-columns:1fr;}
}
