/* TUWYN navy-and-white rhythm — overrides layered after main.css.
   Does not touch .feature-bento* (owned by another worker). */

:root{
  --tuwyn-radius:12px;
  --tuwyn-radius-sm:10px;
  --tuwyn-radius-btn:7px;
  --tuwyn-section-pad:5.5rem;   /* 88px */
  --tuwyn-section-pad-sm:3.5rem; /* 56px */
  --tuwyn-shadow:none;
  --tuwyn-shadow-soft:none;
}

/* ——— Type: Jakarta for UI/short copy; serif only for long prose ——— */
body{
  font-family:var(--tuwyn-font-display);
  font-size:1.025rem;
  line-height:1.6;
}
.lede,
.card p,
.vehicle-tile__subs li,
.story-card p,
.services-tabs__desc,
.services-tabs__tagline,
.services-tabs__header .lede,
.hero__bluf,
.page-hero .lede,
.note-soft,
.form-hint,
.form-alt,
.contact-form input,
.contact-form textarea,
.bluf,
.check-list li{
  font-family:var(--tuwyn-font-display);
}
.legal-prose,
.legal-prose p,
.leader-card__bio,
.page-nasa-sewp .prose-wide > p:not(.bluf):not(.note-soft),
.site-main.page-slug-nasa-sewp-vi .prose-wide > p,
.site-main.page-slug-privacy-policy .prose-wide,
.site-main.page-slug-terms .prose-wide{
  font-family:var(--tuwyn-font-serif);
}

h1{font-weight:700}
h2,h3,h4,.card h3,.card-title,.vehicle-tile__title{font-weight:700}
.page-hero .page-title,
.hero h1{font-weight:700}

/* ——— Buttons: squarer, no glow ——— */
.btn{
  border-radius:var(--tuwyn-radius-btn);
}
.btn:hover{transform:none}
.btn--berry{
  box-shadow:none;
}
.btn--berry:hover{
  box-shadow:none;
}
.btn__arrow{
  border-radius:var(--tuwyn-radius-btn);
  width:1.85rem;height:1.85rem;
}

/* ——— Section rhythm ——— */
.section{
  padding:var(--tuwyn-section-pad) 0;
}
.section--alt{
  background:#fff;
}
.section--ecosystem{padding:2.75rem 0}
.section--mission-visual{padding-top:0;padding-bottom:var(--tuwyn-section-pad)}

/* Navy band utility — warmed mid, less icy cyan stack */
.section--band-navy{
  position:relative;
  background:
    radial-gradient(ellipse 55% 60% at 88% 78%, rgba(146,36,48,.06), transparent 52%),
    radial-gradient(ellipse 70% 80% at 12% 20%, rgba(196,140,80,.05), transparent 55%),
    linear-gradient(165deg, #001226 0%, var(--tuwyn-navy) 42%, #1a3558 100%);
  color:#fff;
  overflow:hidden;
}
.section--band-navy::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  mix-blend-mode:overlay;
}
.section--band-navy > .container{position:relative;z-index:1}
.section--band-navy .section-header h2,
.section--band-navy h2,
.section--band-navy h3,
.section--band-navy .card-title{color:#fff}
.section--band-navy .lede,
.section--band-navy .card p{color:rgba(255,255,255,.78)}
.section--band-navy .eyebrow,
.section--band-navy .services-tabs__kicker{color:var(--tuwyn-berry-light)}
.section--band-navy .card{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.14);
  color:#fff;
}
.section--band-navy .card:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(216,72,56,.4);
}
.section--band-navy .card--media .card__media{
  border-bottom-color:rgba(255,255,255,.1);
  border-radius:var(--tuwyn-radius) var(--tuwyn-radius) 0 0;
}
.section--band-navy .card--compact .card__media--thumb{
  border-right-color:rgba(255,255,255,.1);
  border-radius:var(--tuwyn-radius) 0 0 var(--tuwyn-radius);
}
.section--band-navy .card-link{
  color:rgba(255,248,242,.92);
}
.section--band-navy .card-link:hover{color:var(--tuwyn-berry-light)}
.section--band-navy .section-footer-link a{
  color:#fff;
}
.section--band-navy .section-footer-link a:hover{color:var(--tuwyn-berry-light)}
.section--band-navy .card--featured .card__media{
  box-shadow:inset 0 3px 0 0 var(--tuwyn-berry-light);
}

/* Drop pale gray bands elsewhere */
.section--services-tabs{
  background:#fff;
  color:var(--tuwyn-navy);
  padding:var(--tuwyn-section-pad) 0;
}
.cert-strip{
  background:#fff;
  border-bottom:1px solid rgba(0,30,66,.08);
}

/* CTA / band polish — warmed navy, berry hairline (not cyan) */
.cta-band{
  background:
    radial-gradient(ellipse 55% 70% at 92% 40%, rgba(146,36,48,.08), transparent 55%),
    radial-gradient(ellipse 50% 60% at 8% 50%, rgba(196,140,80,.05), transparent 55%),
    linear-gradient(160deg, #001226 0%, var(--tuwyn-navy) 50%, #1a3558 100%);
  padding:3.5rem 0;
}
.cta-band::before{
  height:2px;
  background:linear-gradient(90deg, var(--tuwyn-berry), transparent 70%);
}
.band--navy{
  background:
    radial-gradient(ellipse 55% 70% at 90% 30%, rgba(146,36,48,.07), transparent 55%),
    linear-gradient(145deg, #001226 0%, var(--tuwyn-navy) 50%, #1a3558 100%);
  box-shadow:none;
  border-radius:var(--tuwyn-radius);
  padding:2rem 2.15rem;
  position:relative;
  overflow:hidden;
}
.band--navy::before{
  height:2px;
  background:linear-gradient(90deg, var(--tuwyn-berry), transparent 65%);
}

/* ——— Cards: tighter radius, no lift glow ——— */
.card,
.vehicle-tile,
.leader-card,
.contact-form-wrap,
.mission-visual,
.services-tabs__tab,
.services-tabs__panel{
  border-radius:var(--tuwyn-radius);
}
.card{
  font-family:var(--tuwyn-font-display);
  box-shadow:none;
}
.card:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(0,30,66,.22);
}
.card--media .card__media{
  border-radius:var(--tuwyn-radius) var(--tuwyn-radius) 0 0;
}
.card--compact .card__media--thumb{
  border-radius:var(--tuwyn-radius) 0 0 var(--tuwyn-radius);
}
.card h3,.card-title{font-size:1.05rem;letter-spacing:-.015em}

/* Card links → navy + arrow */
.card-link{
  color:var(--tuwyn-navy);
  gap:.35rem;
}
.card-link::after{
  content:"→";
  font-weight:700;
  transition:transform .2s var(--tuwyn-ease);
}
.card-link:hover{color:var(--tuwyn-navy)}
.card-link:hover::after{transform:translateX(3px)}
.section-footer-link{
  margin-top:1.15rem;
}
.section-footer-link a:hover{color:var(--tuwyn-navy);opacity:.75}

/* Story badges — outline navy/cyan, not washed pink */
.story-tag{
  color:var(--tuwyn-navy);
  background:transparent;
  border:1px solid rgba(0,30,66,.28);
  border-radius:var(--tuwyn-radius-btn);
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:.68rem;
  padding:.28rem .6rem;
}
.section--band-navy .story-tag,
.story-card--on-navy .story-tag{
  color:rgba(255,248,242,.9);
  border-color:rgba(216,72,56,.4);
}

/* ——— Vehicles: unified typeset tiles ——— */
.vehicle-grid{
  gap:1.25rem;
}
.vehicle-tile{
  font-family:var(--tuwyn-font-display);
  border-radius:var(--tuwyn-radius);
  border:1px solid rgba(0,30,66,.12);
  border-top:2px solid var(--tuwyn-cyan);
  box-shadow:none;
  min-height:11rem;
  padding:1.35rem 1.4rem 1.4rem;
}
.vehicle-tile:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(0,30,66,.28);
  border-top-color:var(--tuwyn-cyan);
}
.vehicle-tile--media{padding:0}
.vehicle-tile--unified{
  padding:0;
  overflow:hidden;
  gap:0;
  border-top:none;
  display:flex;
  flex-direction:column;
}
.vehicle-tile__mark{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:5.5rem;
  padding:1.15rem 1.25rem;
  background:var(--tuwyn-navy);
  position:relative;
}
.vehicle-tile__mark::after{
  content:"";
  position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--tuwyn-cyan);
}
.vehicle-tile__mark-name{
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:-.02em;
  color:#fff;
  text-align:center;
  line-height:1.25;
}
.vehicle-tile__logo{
  max-height:2.75rem;
  width:auto;
  max-width:70%;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.vehicle-tile--unified .vehicle-tile__body{
  padding:1.15rem 1.3rem 1.35rem;
  flex:1;
}
.vehicle-tile__title{font-size:1.08rem}
.vehicle-tile__subs li{font-family:var(--tuwyn-font-display)}

/* Hide legacy inconsistent banner media when unified class present */
.vehicle-tile--unified .vehicle-tile__media{display:none}

/* ——— Leadership: even heights + navy monogram ——— */
.leadership-grid{
  align-items:stretch;
}
.leader-card{
  border-radius:var(--tuwyn-radius);
  box-shadow:none;
}
.leader-card:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(0,30,66,.22);
}
.leader-card__photo{
  aspect-ratio:1;
  object-fit:cover;
  object-position:center top;
  background:var(--tuwyn-navy);
}
.leader-card__avatar{
  aspect-ratio:1;
  background:var(--tuwyn-navy);
}
.leader-card__avatar::before{
  inset:18% 18%;
  background:transparent;
  box-shadow:inset 0 0 0 1.5px rgba(78,200,245,.4);
  border-radius:50%;
}
.leader-card__avatar::after{
  height:2px;
  background:var(--tuwyn-cyan);
}
.leader-card__initials{
  font-weight:700;
  letter-spacing:.06em;
  font-size:clamp(1.6rem,3vw,2.1rem);
  text-shadow:none;
}
.leader-card__title{
  color:var(--tuwyn-muted);
  font-weight:600;
  font-size:.82rem;
}
.leader-card__bio{
  font-size:.88rem;
  line-height:1.55;
}
.leader-card--compact,
.leader-card--avatar{
  min-height:100%;
}
.leader-card--compact .leader-card__body{
  min-height:6.5rem;
}

/* ——— Success stories: editorial list on white ——— */
.stories-editorial{
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid rgba(0,30,66,.12);
}
.stories-editorial__item{
  display:grid;
  gap:.65rem 1.5rem;
  padding:1.55rem 0;
  border-bottom:1px solid rgba(0,30,66,.1);
  background:transparent;
  border-left:none;
  border-right:none;
  border-radius:0;
  box-shadow:none;
}
.stories-editorial__item:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(0,30,66,.1);
  border-bottom-color:rgba(0,30,66,.1);
}
.stories-editorial__item .story-tag{margin-bottom:0}
.stories-editorial__item h2,
.stories-editorial__item .card-title{
  margin:0;
  font-size:1.12rem;
}
.stories-editorial__item p{
  margin:0;
  max-width:68ch;
  color:var(--tuwyn-muted);
  font-size:.98rem;
}
@media (min-width:800px){
  .stories-editorial__item{
    grid-template-columns:7.5rem 1fr;
    align-items:start;
  }
  .stories-editorial__item .story-tag{margin-top:.2rem}
  .stories-editorial__copy{display:flex;flex-direction:column;gap:.45rem}
}

/* Home stories — larger editorial rows, less card-farm */
.home .section--stories .split-grid--stories{
  gap:0;
  border-top:1px solid rgba(0,30,66,.12);
}
.home .section--stories .story-card{
  border:none;
  border-bottom:1px solid rgba(0,30,66,.1);
  border-radius:0;
  box-shadow:none;
  padding:1.5rem 0;
  background:transparent;
}
.home .section--stories .story-card:hover{
  transform:none;
  box-shadow:none;
  border-color:transparent;
  border-bottom-color:rgba(0,30,66,.1);
}
.home .section--stories .split-grid__stack{
  display:flex;
  flex-direction:column;
  gap:0;
}
@media (min-width:900px){
  .home .section--stories .split-grid--stories{
    grid-template-columns:1.15fr 1fr;
    gap:0 2.5rem;
    border-top:none;
  }
  .home .section--stories .story-card--featured{
    border:1px solid rgba(0,30,66,.12);
    border-radius:var(--tuwyn-radius);
    padding:1.65rem 1.7rem;
    border-top:2px solid var(--tuwyn-cyan);
  }
  .home .section--stories .story-card--featured:hover{
    border-color:rgba(0,30,66,.22);
    border-top-color:var(--tuwyn-cyan);
  }
  .home .section--stories .split-grid__stack{
    border-top:1px solid rgba(0,30,66,.12);
  }
}

/* ——— AI / solution child: numbered flow instead of card farm ——— */
.flow-list{
  list-style:none;
  margin:0 0 2rem;
  padding:0;
  counter-reset:flow;
  border-top:1px solid rgba(0,30,66,.12);
  max-width:none;
  width:100%;
}
.flow-list__item{
  counter-increment:flow;
  display:grid;
  grid-template-columns:2.4rem minmax(0,1fr);
  column-gap:1.15rem;
  row-gap:.3rem;
  padding:1.35rem 0;
  border-bottom:1px solid rgba(0,30,66,.1);
  align-items:start;
}
.flow-list__item::before{
  content:counter(flow, decimal-leading-zero);
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.06em;
  color:var(--tuwyn-cyan);
  background:var(--tuwyn-navy);
  width:2.4rem;height:2.4rem;
  border-radius:var(--tuwyn-radius-btn);
  display:inline-flex;align-items:center;justify-content:center;
  grid-column:1;
  grid-row:1 / span 2;
  margin-top:.1rem;
}
.flow-list__item h3{
  margin:0;
  font-size:1.05rem;
  grid-column:2;
  align-self:end;
}
.flow-list__item p{
  margin:0;
  color:var(--tuwyn-muted);
  font-size:.95rem;
  line-height:1.55;
  grid-column:2;
  max-width:none;
}
.prose-wide > .flow-list{
  max-width:100%;
}

/* Hide legacy flow card grid when flow-list is present sibling */
.flow-grid{display:none}

/* ——— Solutions tabs: calmer on white ——— */
.services-tabs__badge{
  background:transparent;
  color:var(--tuwyn-navy);
  border:1px solid rgba(0,30,66,.25);
  border-radius:var(--tuwyn-radius-btn);
}
.services-tabs__tab{
  box-shadow:none;
  border-radius:var(--tuwyn-radius-sm);
}
.services-tabs__tab:hover{
  box-shadow:none;
  border-color:rgba(0,30,66,.28);
}
.services-tabs__tab.is-active{
  box-shadow:none;
  border-color:var(--tuwyn-navy);
  border-left:3px solid var(--tuwyn-cyan);
}
.services-tabs__tab.is-active .services-tabs__num{
  background:var(--tuwyn-navy);
  color:#fff;
}
.services-tabs__panel{
  box-shadow:none;
  border:1px solid rgba(0,30,66,.12);
  border-radius:var(--tuwyn-radius);
}

/* ——— Cert strip: 2×2 on mobile ——— */
@media (max-width:720px){
  .cert-strip__list--badges{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem 1.25rem;
    justify-items:center;
    padding:1.25rem 0;
  }
  .cert-strip__list--badges .cert-strip__item{
    height:auto;
    width:100%;
    max-width:9rem;
  }
  .cert-strip__img{
    height:48px;
    max-width:100%;
    margin-inline:auto;
  }
}

/* ——— Spacing / mobile CTA ——— */
@media (max-width:800px){
  .section,
  .section--services-tabs{
    padding:var(--tuwyn-section-pad-sm) 0;
  }
  .cta-band{padding:2.75rem 0}
  .cta-band__inner{
    flex-direction:column;
    align-items:stretch;
  }
  .cta-band__actions{
    width:100%;
  }
  .cta-band__actions .btn--berry,
  .cta-band__actions .btn--cta-arrow{
    width:100%;
    justify-content:center;
  }
  .hero__actions .btn--berry,
  .hero__actions .btn--cta-arrow{
    width:100%;
    max-width:22rem;
    justify-content:center;
  }
  /* Solutions list scannable */
  .services-tabs__snippet{display:none}
  .services-tabs__tab{padding:.9rem 1rem}
  .services-tabs__title{font-size:1rem}
}

/* Primary nav hover stay navy-ish (less berry scatter) */
.primary-nav__list a:hover{color:var(--tuwyn-navy);opacity:.72}
.primary-nav__list .sub-menu .current-menu-item > a{
  color:var(--tuwyn-navy);
  background:rgba(78,200,245,.1);
}

/* Contact form inputs match radius */
.contact-form input,
.contact-form textarea{
  border-radius:var(--tuwyn-radius-sm);
  font-family:var(--tuwyn-font-display);
}
.contact-form-wrap{
  box-shadow:none;
}

/* Tag pills squarer */
.tag{border-radius:var(--tuwyn-radius-btn)}

/* Secondary navy outline preference for paired CTAs */
.cta-inline .btn--navy{
  background:transparent;
  color:var(--tuwyn-navy);
  border-color:rgba(0,30,66,.28);
}
.cta-inline .btn--navy:hover{
  background:var(--tuwyn-navy);
  color:#fff;
  border-color:var(--tuwyn-navy);
}
.contact-ctas .btn--navy{
  background:transparent;
  color:var(--tuwyn-navy);
  border-color:rgba(0,30,66,.28);
}
.contact-ctas .btn--navy:hover{
  background:var(--tuwyn-navy);
  color:#fff;
}

/* Mission visual radius */
.mission-visual{border-radius:var(--tuwyn-radius);box-shadow:none}

/* Blue-on-blue fixes */
a{color:var(--tuwyn-navy)}
a:hover{color:var(--tuwyn-navy);opacity:.75}
.bluf{border-left-color:var(--tuwyn-berry)}

/* Body class helpers if present */
body.tuwyn-theme .page-hero .lede{
  font-family:var(--tuwyn-font-display);
  color:rgba(255,255,255,.88);
}

.vehicle-tile__mark-name{
  margin:0;
  color:#fff;
}
.vehicle-tile--unified .vehicle-tile__body{
  min-height:7.5rem;
}


/* Hard overrides — kill pill + glow leftovers */
.btn,
.btn--berry,
.btn--berry:hover,
.btn--cta-arrow,
.btn--sm,
.header-cta,
.site-footer .btn{
  border-radius:var(--tuwyn-radius-btn) !important;
  box-shadow:none !important;
}
.btn:hover,
.btn--berry:hover{
  transform:none !important;
  box-shadow:none !important;
}
.card,
.vehicle-tile,
.leader-card,
.contact-form-wrap,
.mission-visual,
.services-tabs__panel,
.services-tabs__tab{
  border-radius:var(--tuwyn-radius) !important;
  box-shadow:none !important;
}
.card:hover,
.vehicle-tile:hover,
.leader-card:hover{
  transform:none !important;
  box-shadow:none !important;
}

/* Home services — quieter editorial cards */
.section--services .card--media{
  border-color:rgba(0,30,66,.12);
}
.section--services .card--media .card__media{
  border-radius:var(--tuwyn-radius) var(--tuwyn-radius) 0 0;
}

/* Leadership: even photo box + intentional monogram */
.leader-card__photo,
.leader-card__avatar{
  aspect-ratio:1 / 1;
  min-height:0;
}
.leadership-grid{
  grid-auto-rows:1fr;
}


/* cert-strip mobile even cells */
@media (max-width:720px){
  .cert-strip__list--badges .cert-strip__item{
    height:64px;
    width:100%;
    max-width:none;
  }
  .cert-strip__img{
    height:48px;
    max-width:140px;
    width:auto;
  }
}

/* ========== Editorial layout pass (federal prime) ========== */

:root{
  --tuwyn-radius:4px;
  --tuwyn-radius-sm:2px;
  --tuwyn-radius-btn:4px;
  --tuwyn-img-radius:2px;
}

/* Global: square-ish images, no card lift */
img,
.card__media img,
.editorial-row__media img,
.img-panel img,
.leader-card__photo,
.mission-visual img{
  border-radius:var(--tuwyn-img-radius);
}
.card,
.vehicle-tile,
.leader-card,
.services-tabs__panel,
.services-tabs__tab{
  border-radius:var(--tuwyn-radius) !important;
  box-shadow:none !important;
}
.card:hover,
.vehicle-tile:hover,
.leader-card:hover{
  transform:none !important;
  box-shadow:none !important;
}

/* Editorial text link with arrow */
.editorial-link{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:.95rem;
  color:var(--tuwyn-navy);
  text-decoration:none;
  letter-spacing:-.01em;
}
.editorial-link::after{
  content:"→";
  font-weight:700;
  transition:transform .2s var(--tuwyn-ease, ease);
}
.editorial-link:hover{color:var(--tuwyn-berry);opacity:1}
.editorial-link:hover::after{transform:translateX(4px)}
.editorial-link:focus-visible{
  outline:2px solid var(--tuwyn-berry);
  outline-offset:3px;
}
.section--band-navy .editorial-link{color:rgba(255,248,242,.92)}
.section--band-navy .editorial-link:hover{color:var(--tuwyn-berry-light);opacity:1}

/* ——— Home solutions: alternating editorial rows ——— */
.editorial-rows{
  display:flex;
  flex-direction:column;
  gap:clamp(2.5rem,5vw,4rem);
}
.editorial-row{
  display:grid;
  gap:1.75rem;
  align-items:center;
}
.editorial-row__media{
  margin:0;
  overflow:hidden;
  border-radius:var(--tuwyn-img-radius);
}
.editorial-row__media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:5 / 4;
  object-fit:cover;
  border-radius:var(--tuwyn-img-radius);
}
.editorial-row__copy{
  display:flex;
  flex-direction:column;
  gap:.65rem;
  max-width:36rem;
}
.editorial-row__num{
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:clamp(2.4rem,5vw,3.5rem);
  line-height:1;
  letter-spacing:-.04em;
  color:var(--tuwyn-berry);
  opacity:.85;
}
.editorial-row__title{
  margin:0;
  font-size:clamp(1.45rem,2.6vw,2rem);
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.15;
  color:var(--tuwyn-navy);
}
.editorial-row__blurb{
  margin:0;
  font-size:1.05rem;
  line-height:1.55;
  color:var(--tuwyn-muted);
  max-width:38ch;
}
.section--band-navy .editorial-row__num{color:rgba(255,248,242,.55)}
.section--band-navy .editorial-row__title{color:#fff}
.section--band-navy .editorial-row__blurb{color:rgba(255,255,255,.78)}
@media (min-width:880px){
  .editorial-row{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);
    gap:clamp(2rem,4vw,3.5rem);
  }
  .editorial-row--flip{
    grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);
  }
  .editorial-row--flip .editorial-row__media{order:2}
  .editorial-row--flip .editorial-row__copy{order:1;margin-inline-start:auto}
  .editorial-row__media img{aspect-ratio:1 / 1;max-height:none}
}

/* ——— Home / Services: full-bleed image panels ——— */
.img-panels{
  display:grid;
  gap:1.25rem;
}
@media (min-width:800px){
  .img-panels{grid-template-columns:1fr 1fr;gap:1.5rem}
}
.img-panel{
  position:relative;
  display:block;
  min-height:420px;
  height:clamp(420px,28vw,480px);
  overflow:hidden;
  border-radius:var(--tuwyn-img-radius);
  text-decoration:none;
  color:#fff;
  isolation:isolate;
}
.img-panel img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  border-radius:var(--tuwyn-img-radius);
  transition:transform .45s var(--tuwyn-ease, ease);
}
.img-panel__shade{
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 28%, rgba(0,18,38,.55) 58%, rgba(0,30,66,.92) 100%);
  z-index:1;
  pointer-events:none;
}
.img-panel__content{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:1.6rem 1.7rem 1.75rem;
  display:flex;
  flex-direction:column;
  gap:.4rem;
}
.img-panel__title{
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:clamp(1.25rem,2vw,1.55rem);
  letter-spacing:-.02em;
  line-height:1.2;
}
.img-panel__blurb{
  font-size:.95rem;
  line-height:1.45;
  color:rgba(255,255,255,.82);
  max-width:42ch;
}
.img-panel__cta{
  margin-top:.35rem;
  font-weight:700;
  font-size:.9rem;
  color:var(--tuwyn-berry-light);
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.img-panel__cta::after{content:"→"}
.img-panel:hover img{transform:scale(1.03)}
.img-panel:hover .img-panel__cta{color:#fff}
.img-panel:focus-visible{
  outline:2px solid var(--tuwyn-berry);
  outline-offset:3px;
}

/* ——— Success stories: rule rows + arrow ——— */
.stories-editorial__item{
  display:grid;
  gap:.65rem 1.25rem;
  padding:1.55rem 0;
  border-bottom:1px solid rgba(0,30,66,.1);
  background:transparent;
  border-radius:0;
  box-shadow:none;
  text-decoration:none;
  color:inherit;
  align-items:start;
}
.stories-editorial__item--link{cursor:pointer}
.stories-editorial__item--link:hover .stories-editorial__title{color:var(--tuwyn-navy)}
.stories-editorial__item--link:hover .stories-editorial__arrow{transform:translateX(4px);color:var(--tuwyn-navy)}
.stories-editorial__item--link:focus-visible{
  outline:2px solid var(--tuwyn-navy);
  outline-offset:4px;
}
.stories-editorial__title{
  display:block;
  margin:0;
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:1.12rem;
  letter-spacing:-.015em;
  color:var(--tuwyn-navy);
  transition:color .15s ease;
}
.stories-editorial__blurb,
.stories-editorial__item p{
  display:block;
  margin:0;
  max-width:68ch;
  color:var(--tuwyn-muted);
  font-size:.98rem;
  line-height:1.5;
}
.stories-editorial__arrow{
  display:none;
  font-weight:700;
  color:rgba(0,30,66,.35);
  transition:transform .2s ease, color .15s ease;
  justify-self:end;
  align-self:center;
}
@media (min-width:800px){
  .stories-editorial__item{
    grid-template-columns:7.5rem 1fr auto;
    align-items:center;
  }
  .stories-editorial__arrow{display:block;font-size:1.25rem}
  .stories-editorial__copy{display:flex;flex-direction:column;gap:.4rem}
}

/* Kill leftover home story card boxes */
.home .section--stories .split-grid--stories,
.home .section--stories .story-card,
.home .section--stories .story-card--featured{
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
}

/* ——— Contract vehicles: rule list ——— */
.vehicle-list{
  display:flex;
  flex-direction:column;
  border-top:1px solid rgba(0,30,66,.12);
}
.vehicle-list__row{
  display:grid;
  gap:.75rem 1.5rem;
  padding:1.45rem 0;
  border-bottom:1px solid rgba(0,30,66,.1);
  align-items:start;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}
.vehicle-list__meta{display:flex;flex-direction:column;gap:.2rem}
.vehicle-list__name{
  margin:0;
  font-size:1.15rem;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--tuwyn-navy);
}
.vehicle-list__type{
  display:inline-block;
  margin-top:.25rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--tuwyn-muted);
}
.vehicle-list__summary{
  margin:0;
  color:var(--tuwyn-muted);
  font-size:.98rem;
  line-height:1.5;
  max-width:52ch;
}
.vehicle-list__row--featured{
  background:linear-gradient(90deg, rgba(78,200,245,.08), transparent 55%);
  padding-left:1rem;
  margin-left:-1rem;
  padding-right:1rem;
  border-left:3px solid var(--tuwyn-cyan);
}
.vehicle-list__row--featured .vehicle-list__name{font-size:1.28rem}
.vehicle-list .editorial-link{color:var(--tuwyn-navy)}
.vehicle-list .editorial-link:hover{opacity:.7}
@media (min-width:900px){
  .vehicle-list__row{
    grid-template-columns:14rem 1fr auto;
    align-items:center;
  }
  .vehicle-list__row--featured{
    grid-template-columns:14rem 1fr auto;
  }
}

/* Hide legacy vehicle tiles if any remain */
.vehicle-grid{display:none}

/* ——— Leadership: formal grid, clamped bios ——— */
.leadership-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(15.5rem, 1fr));
  gap:1.75rem 1.5rem;
  align-items:stretch;
}
.leader-card{
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
.leader-card:hover{
  border:none !important;
  transform:none !important;
  box-shadow:none !important;
}
.leader-card__photo,
.leader-card__avatar{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center top;
  border-radius:var(--tuwyn-img-radius) !important;
  background:var(--tuwyn-navy);
  display:block;
}
.leader-card__avatar{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.leader-card__avatar::before,
.leader-card__avatar::after{display:none} /* kill decorative rings for formal look */
.leader-card__initials{
  font-weight:700;
  letter-spacing:.08em;
  font-size:clamp(1.6rem,3vw,2.2rem);
  color:#fff;
}
.leader-card__body{
  padding:0 !important;
  background:transparent !important;
  display:flex;
  flex-direction:column;
  gap:.3rem;
  flex:1;
}
.leader-card__body h3{
  margin:0;
  font-size:1.02rem;
  letter-spacing:-.015em;
}
.leader-card__title{
  margin:0;
  color:var(--tuwyn-muted);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.02em;
}
.leader-card__bio{
  margin:.35rem 0 0;
  font-size:.88rem;
  line-height:1.5;
  color:var(--tuwyn-muted);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.leader-card__bio.is-expanded{
  display:block;
  -webkit-line-clamp:unset;
  overflow:visible;
}
.leader-card__bio-toggle{
  align-self:flex-start;
  margin-top:.4rem;
  padding:0;
  border:none;
  background:none;
  font-family:var(--tuwyn-font-display);
  font-weight:700;
  font-size:.82rem;
  color:var(--tuwyn-navy);
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.leader-card__bio-toggle:hover{opacity:.7}
.leader-card__bio-toggle:focus-visible{
  outline:2px solid var(--tuwyn-navy);
  outline-offset:2px;
}

/* ——— Flow list lanes (Managed Services IT/AV/VI) ——— */
.flow-list--lanes .flow-list__item{
  grid-template-columns:2.4rem minmax(0,1fr);
}
.flow-list--lanes .flow-list__heading,
.flow-list--lanes h2{
  margin:0;
  font-size:1.15rem;
  grid-column:2;
}
.flow-list--lanes .check-list,
.flow-list--lanes .check-list--compact{
  grid-column:2;
  margin:.35rem 0 0;
}

/* Soften remaining card-grids that slip through */
.card-grid .card{
  border-color:rgba(0,30,66,.1);
  box-shadow:none;
}
.card-grid .card:hover{transform:none;box-shadow:none}

/* Mission visual square corners */
.mission-visual{border-radius:var(--tuwyn-img-radius) !important}

/* Spacing consistency */
.section{padding:var(--tuwyn-section-pad) 0}
.editorial-rows + .section-footer-link,
.img-panels + .section-footer-link,
.stories-editorial + .section-footer-link{
  margin-top:1.75rem;
}


/* Leadership editorial — final overrides */
.leadership-grid .leader-card,
.leadership-grid .leader-card:hover{
  border:none !important;
  box-shadow:none !important;
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  transform:none !important;
}
.leadership-grid .leader-card__body{
  padding:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
}
.leadership-grid .leader-card__photo,
.leadership-grid .leader-card__avatar{
  border-radius:2px !important;
  aspect-ratio:1 / 1 !important;
  width:100% !important;
  object-fit:cover !important;
}
.leadership-grid .leader-card__bio{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  overflow:hidden !important;
  max-height:calc(1.5em * 3) !important;
}
.leadership-grid .leader-card__bio.is-expanded{
  display:block !important;
  -webkit-line-clamp:unset !important;
  max-height:none !important;
  overflow:visible !important;
}

/* Leadership equal heights */
.leadership-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(15.5rem, 1fr));
  gap:1.75rem 1.35rem;
  align-items:stretch;
}
.leadership-grid .leader-card{
  min-height:100%;
}
.leadership-grid .leader-card__body{
  flex:1 1 auto;
  min-height:7.5rem;
}
.leadership-grid .leader-card__photo,
.leadership-grid .leader-card__avatar{
  border-radius:0 !important;
}


/* ========== v0.6.43 site warm — reduce ice-blue dominance ========== */

/* White surface card (contract vehicles teaser) — replaces stacked navy */
.band--surface{
  background:#fff;
  color:var(--tuwyn-navy);
  border:1px solid rgba(0,30,66,.14);
  border-top:2px solid var(--tuwyn-berry);
  box-shadow:none;
  border-radius:var(--tuwyn-radius);
  padding:2rem 2.15rem;
  position:relative;
  overflow:hidden;
}
.band--surface h2{color:var(--tuwyn-navy);margin:0 0 .4rem}
.band--surface p{margin:0;color:var(--tuwyn-muted);max-width:36rem}
.band--surface .btn{flex-shrink:0}

/* Home solutions on white — photos carry color */
.section--solutions{
  background:#fff;
  color:var(--tuwyn-navy);
}
.section--solutions .section-header h2{color:var(--tuwyn-navy)}
.section--solutions .lede{color:var(--tuwyn-muted)}
.section--solutions .editorial-row__media img{
  filter:sepia(.06) saturate(1.05) hue-rotate(-4deg);
}
.section--solutions .section-footer-link a{color:var(--tuwyn-navy)}
.section--solutions .section-footer-link a:hover{color:var(--tuwyn-berry);opacity:1}

/* Soften cold cyan identity strip hairlines toward berry */
.identity-chrome::before{
  background:
    linear-gradient(var(--tuwyn-berry), var(--tuwyn-berry)) top / 100% 2px no-repeat,
    linear-gradient(90deg, var(--tuwyn-berry), rgba(216,72,56,.55), transparent 85%) bottom / 100% 2px no-repeat;
}
.identity-chrome code{color:rgba(255,248,242,.88)}

/* Footer: warmed navy gradient + berry hover (not cyan) */
.site-footer{
  background:
    radial-gradient(ellipse 50% 80% at 10% 0%, rgba(146,36,48,.07), transparent 55%),
    linear-gradient(180deg, #001226 0%, var(--tuwyn-navy) 45%, #1a3558 100%);
}
.site-footer a:hover{color:var(--tuwyn-berry-light)}
.site-footer__identity{color:rgba(255,248,242,.72)}

/* Eyebrows on dark/light */
.eyebrow--light{color:var(--tuwyn-berry-light)}

/* Higgs page heroes: warm left scrim whisper — do not regenerate art */
.page-hero--higgs .page-hero__field::after{
  background:
    linear-gradient(90deg,
      rgba(0,18,38,.92) 0%,
      rgba(0,30,66,.78) 28%,
      rgba(26,32,56,.42) 52%,
      rgba(26,53,88,.12) 72%,
      transparent 100%),
    linear-gradient(115deg, rgba(146,36,48,.1) 0%, transparent 42%);
}
.page-hero--higgs .page-hero__art{
  filter:sepia(.04) saturate(1.02) hue-rotate(-6deg);
}
.page-hero--higgs.page-hero--accent-cyan .page-hero__field{
  background:
    radial-gradient(ellipse 42% 46% at 88% 80%, rgba(146,36,48,.1), transparent 58%),
    #001226;
}

/* Vehicle list featured rail: berry instead of cyan wash */
.vehicle-list__row--featured{
  background:linear-gradient(90deg, rgba(146,36,48,.06), transparent 55%);
  border-left-color:var(--tuwyn-berry);
}
.vehicle-tile__mark::after,
.vehicle-tile{border-top-color:var(--tuwyn-berry)}
.vehicle-tile:hover{border-top-color:var(--tuwyn-berry)}
.vehicle-tile__mark::after{background:var(--tuwyn-berry)}

/* Flow list numbers stay navy tile; digit berry not cyan */
.flow-list__item::before{color:var(--tuwyn-berry-light)}

/* Home featured story top rule — berry */
.home .section--stories .story-card--featured{
  border-top-color:var(--tuwyn-berry) !important;
}
.home .section--stories .story-card--featured:hover{
  border-top-color:var(--tuwyn-berry) !important;
}

/* Services tabs active rail — berry accent */
.services-tabs__tab.is-active{
  border-left-color:var(--tuwyn-berry);
}

/* Hero SDVOSB kicker — warm off-white, not cyan */
.eyebrow--hero{color:rgba(255,248,242,.88)}

/* Soften page-hero cyan inset hairline */
.page-hero{box-shadow:inset 0 -1px 0 rgba(146,36,48,.35)}


/* ========== v0.6.44 QA/UX desk fixes ========== */

/* 1 · Home "How we sustain delivery" — warmed navy band (berry/white accents, no cyan) */
.section--services.section--band-navy::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:1;
  background:linear-gradient(90deg, var(--tuwyn-berry), rgba(216,72,56,.55) 45%, transparent 85%);
}
.section--services.section--band-navy .section-header h2{color:#fff}
.section--services.section--band-navy .img-panel{box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.section--services.section--band-navy .img-panel__cta{color:var(--tuwyn-berry-light)}
.section--services.section--band-navy .img-panel:hover .img-panel__cta{color:#fff}

/* 2 · Inner heroes ≤720px — stronger navy scrim so copy never sits on busy art */
@media (max-width:720px){
  .page-hero::after{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:
      linear-gradient(180deg, rgba(0,18,38,.8) 0%, rgba(0,30,66,.7) 60%, rgba(0,30,66,.55) 100%),
      linear-gradient(90deg, rgba(0,18,38,.55) 0%, rgba(0,18,38,.2) 100%);
  }
  .page-hero .container{position:relative;z-index:1}
  .page-hero .page-title,
  .page-hero__lede,
  body.tuwyn-theme .page-hero .lede{text-shadow:0 1px 10px rgba(0,18,38,.85)}
}

/* 6 · "All solutions" / "All services" / "View all …" — real secondary buttons, tighter spacing */
.section-footer-link{margin:2rem 0 0}
.editorial-rows + .section-footer-link,
.img-panels + .section-footer-link,
.stories-editorial + .section-footer-link{margin-top:2rem}
.section-footer-link a,
.section-footer-link a.btn--secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:44px;padding:.6rem 1.2rem;
  font-family:var(--tuwyn-font-display);font-weight:700;font-size:.92rem;letter-spacing:-.01em;
  color:var(--tuwyn-navy);background:transparent;
  border:1.5px solid var(--tuwyn-navy);
  border-radius:var(--tuwyn-radius-btn) !important; /* same token as .btn (resolves to 4px after editorial pass) */
  text-decoration:none;opacity:1;
  transition:background-color .2s var(--tuwyn-ease), color .2s var(--tuwyn-ease), border-color .2s var(--tuwyn-ease);
}
.section-footer-link a::after{content:"→";font-weight:700;transition:transform .2s var(--tuwyn-ease)}
.section-footer-link a:hover,
.section--solutions .section-footer-link a:hover{background:var(--tuwyn-navy);color:#fff;opacity:1}
.section-footer-link a:hover::after{transform:translateX(3px)}
.section--band-navy .section-footer-link a{color:#fff;border-color:rgba(255,255,255,.7)}
.section--band-navy .section-footer-link a:hover{background:#fff;color:var(--tuwyn-navy);border-color:#fff}
/* trim the dead space under a section that ends in its footer button */
.section:has(> .container > .section-footer-link:last-child){padding-bottom:calc(var(--tuwyn-section-pad) - 1.5rem)}
@media (max-width:800px){
  .section:has(> .container > .section-footer-link:last-child){padding-bottom:calc(var(--tuwyn-section-pad-sm) - .75rem)}
}

/* 8 · Focus ring — navy on light surfaces (16.6:1), cyan on navy surfaces (≥6.4:1) */
a:focus-visible,button:focus-visible,.btn:focus-visible,summary:focus-visible,[tabindex]:focus-visible,
input:focus-visible,textarea:focus-visible,select:focus-visible,
.editorial-link:focus-visible,.img-panel:focus-visible,.stories-editorial__item--link:focus-visible,
.leader-card__bio-toggle:focus-visible,.services-tabs__tab:focus-visible,
.section--services-tabs .btn--berry:focus-visible{
  outline:2px solid var(--tuwyn-navy);
  outline-offset:3px;
}
.hero :focus-visible,
.page-hero :focus-visible,
.cta-band :focus-visible,
.site-footer :focus-visible,
.identity-chrome :focus-visible,
.band--navy :focus-visible,
.section--band-navy :focus-visible,
.section--band-navy .img-panel:focus-visible,
.section--band-navy .editorial-link:focus-visible,
.hero--video .hero__video-toggle:focus-visible{
  outline:2px solid var(--tuwyn-cyan);
  outline-offset:3px;
}

/* 10 · Solutions tabs small text ≥4.5:1 (was navy@55% ≈3.5–3.9:1) */
.services-tabs__kicker,
.services-tabs__num,
.services-tabs__snippet,
.services-tabs__count{color:#52667e} /* 5.9:1 on #fff, 5.3:1 on the 6% navy chip */
.services-tabs__tab.is-active .services-tabs__num{color:#fff}
.services-tabs__tab.is-active .services-tabs__snippet{color:var(--tuwyn-berry)}
.section--band-navy .services-tabs__kicker{color:var(--tuwyn-berry-light)}

/* 12 · Tap targets ≥24px (look unchanged) */
.hero__phone a,
.site-footer__contact a,
.site-footer__secondary a,
.contact-list a,
.prose-wide a[href^="tel:"],
.prose-wide a[href^="mailto:"]{
  display:inline-flex;align-items:center;min-height:24px;
}
.site-footer__contact a,
.hero__phone a{min-height:32px}
.leader-card__bio-toggle{
  display:inline-flex;align-items:center;min-height:28px;padding:.2rem 0;
}

/* 9 · Print — no hidden reveals, no heavy video */
@media print{
  [data-blur-fade],
  [data-blur-fade].is-visible,
  .editorial-row,.img-panel,.stories-editorial__item,.flow-list__item,
  .hero-rotate__word{
    opacity:1 !important;filter:none !important;transform:none !important;
    transition:none !important;animation:none !important;will-change:auto !important;
  }
  .hero__video,.hero__video-toggle,.hero__scrim,.nav-toggle{display:none !important}
  .hero__media{background:var(--tuwyn-navy)}
  .text-highlight::before{transform:scaleX(1) !important;animation:none !important}
  .site-header{position:static;backdrop-filter:none;-webkit-backdrop-filter:none}
}


/* ========== v0.6.45 Home reorder + rhythm ==========
   Order: hero (navy) · identity (navy) · cert strip (white) · About (white) ·
   Services (navy) · Solutions (white) · Bento (warm tint band) · Stories (navy) ·
   Vehicles (white) · Ecosystem (white) · CTA (navy) · footer (navy). */

/* About TUWYN snapshot: white, split copy + existing About Earth asset */
.section--about{background:#fff;color:var(--tuwyn-navy)}
.about-snapshot{
  display:grid;gap:2.25rem;align-items:center;
}
@media (min-width:900px){
  .about-snapshot{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:4rem}
  .about-snapshot--text{grid-template-columns:minmax(0,46rem)}
}
.about-snapshot__eyebrow{
  text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;font-weight:700;
  color:var(--tuwyn-berry);margin:0 0 .8rem;
}
.about-snapshot__title{
  margin:0 0 1rem;color:var(--tuwyn-navy);
  font-size:clamp(1.75rem, 1.2rem + 1.6vw, 2.4rem);line-height:1.15;letter-spacing:-.02em;
}
.about-snapshot__body{
  margin:0;max-width:58ch;color:var(--tuwyn-muted);
  font-family:var(--tuwyn-font-display);font-size:1.06rem;line-height:1.65;
}
.about-snapshot__cta{margin:1.75rem 0 0}
.about-snapshot__media{
  margin:0;border-radius:var(--tuwyn-radius);overflow:hidden;
  background:#000;aspect-ratio:4/3;
}
.about-snapshot__media img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  transform:scale(1.28);transform-origin:50% 50%;
}
@media (max-width:899px){
  .about-snapshot__media{aspect-ratio:16/10}
  .about-snapshot__media img{transform:scale(1.15)}
}

/* Why agencies buy (bento): warm tint band on the section wrapper only.
   Internals untouched; white cards now read against the tint. */
.home .feature-bento{
  background:#f6f1ea;
  border-top:1px solid rgba(146,36,48,.08);
  border-bottom:1px solid rgba(146,36,48,.08);
}

/* Success stories: warmed navy band so no three light sections stack */
.home .section--stories.section--band-navy .section-header .lede{color:rgba(255,255,255,.78)}
.home .section--stories.section--band-navy .stories-editorial{border-top-color:rgba(255,255,255,.16)}
.home .section--stories.section--band-navy .stories-editorial__item{border-bottom-color:rgba(255,255,255,.12)}
.home .section--stories.section--band-navy .stories-editorial__title{color:#fff}
.home .section--stories.section--band-navy .stories-editorial__blurb{color:rgba(255,255,255,.76)}
.home .section--stories.section--band-navy .stories-editorial__arrow{color:rgba(255,255,255,.45)}
.home .section--stories.section--band-navy .stories-editorial__item--link:hover .stories-editorial__title{color:#fff}
.home .section--stories.section--band-navy .stories-editorial__item--link:hover .stories-editorial__arrow{color:var(--tuwyn-berry-light)}
.home .section--stories.section--band-navy .stories-editorial__item--link:focus-visible{outline-color:var(--tuwyn-cyan)}
.home .section--stories.section--band-navy::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:1;
  background:linear-gradient(90deg, var(--tuwyn-berry), rgba(216,72,56,.55) 45%, transparent 85%);
}


/* ========== v0.6.46 Home service switcher (Option 1) ==========
   Navy band + v0.6.45 rhythm unchanged. Default (no JS): both panels stacked.
   .js-tabs (added by nav.js): tabs shown, panels share one grid cell so the
   section height never jumps; inactive panel is visibility:hidden (out of tab
   order + a11y tree). Print always shows both panels. */
.svc-switch{display:grid;gap:1.25rem;min-width:0}
.svc-switch__tabs[hidden]{display:none}
.svc-switch__tabs{
  display:inline-flex;justify-self:start;gap:4px;padding:4px;max-width:100%;
  border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
}
.svc-switch__tab{
  appearance:none;border:0;cursor:pointer;
  min-height:44px;padding:.6rem 1.15rem;border-radius:var(--tuwyn-radius-btn);
  font-family:var(--tuwyn-font-display);font-weight:700;font-size:.94rem;letter-spacing:-.01em;
  color:rgba(255,255,255,.78);background:transparent;
  transition:background-color .2s var(--tuwyn-ease), color .2s var(--tuwyn-ease);
}
.svc-switch__tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.svc-switch__tab[aria-selected="true"]{background:#fff;color:var(--tuwyn-navy)}
.section--band-navy .svc-switch__tab:focus-visible{outline:2px solid var(--tuwyn-cyan);outline-offset:3px}

.svc-switch__stage{display:grid;gap:1.25rem;min-width:0}
.svc-switch__panel{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-width:0;
  border:1px solid rgba(255,255,255,.14);border-radius:var(--tuwyn-radius);
  overflow:hidden;background:rgba(255,255,255,.035);
}
/* Enhanced: stack both panels in one cell; cell height = taller panel (no jump) */
.svc-switch.js-tabs .svc-switch__panel{
  grid-area:1 / 1;
  opacity:0;visibility:hidden;
  transition:opacity .24s var(--tuwyn-ease, ease), visibility 0s linear .24s;
}
.svc-switch.js-tabs .svc-switch__panel.is-active{
  opacity:1;visibility:visible;
  transition:opacity .24s var(--tuwyn-ease, ease), visibility 0s linear 0s;
}
@media (prefers-reduced-motion:reduce){
  .svc-switch.js-tabs .svc-switch__panel,
  .svc-switch.js-tabs .svc-switch__panel.is-active,
  .svc-switch__tab{transition:none}
}
.svc-switch__copy{padding:2.25rem 2.25rem 2.4rem;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.section--band-navy .svc-switch__title{margin:0 0 .5rem;font-size:1.45rem;letter-spacing:-.015em;color:#fff}
.svc-switch__summary{margin:0 0 1.35rem;color:rgba(255,255,255,.78);line-height:1.55;max-width:46ch}
.svc-switch__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.svc-switch__list li{
  display:grid;grid-template-columns:22px 1fr;column-gap:.6rem;
  line-height:1.45;font-size:.98rem;color:rgba(255,255,255,.9);
}
.svc-switch__list li::before{
  content:"";width:18px;height:18px;margin-top:2px;border-radius:5px;
  background:rgba(216,72,56,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D84838' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;
}
.svc-switch__list li strong{color:#fff;font-weight:700}
.svc-switch__cta{margin-top:1.75rem;min-height:44px;gap:.55rem}
.svc-switch__arrow{transition:transform .2s var(--tuwyn-ease)}
.svc-switch__cta:hover .svc-switch__arrow{transform:translateX(3px)}
.svc-switch__media{margin:0;min-height:100%;position:relative}
.svc-switch__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

@media (max-width:760px){
  .svc-switch__tabs{display:flex;justify-self:stretch}
  .svc-switch__tab{flex:1 1 0;min-width:0;padding:.6rem .5rem;font-size:.88rem;text-align:center}
  .svc-switch__panel{grid-template-columns:1fr;align-content:start}
  .svc-switch__media{order:-1;aspect-ratio:16/7;min-height:0}
  .svc-switch__copy{padding:1.4rem 1.25rem 1.6rem}
  .section--band-navy .svc-switch__title{font-size:1.25rem}
}

/* Print: both services, no tabs; keep navy band so white text stays legible */
@media print{
  .section--services{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .svc-switch__tabs{display:none !important}
  .svc-switch.js-tabs .svc-switch__panel{
    grid-area:auto !important;opacity:1 !important;visibility:visible !important;transition:none !important;
    break-inside:avoid;
  }
}

/* v0.6.47: UX v0.6.46 follow-ups */
/* B1 · Phone width: no shared-cell height. Only the active panel takes layout,
   so a shorter panel (Managed) never leaves an empty card under its button.
   820 and 1440 keep the stacked no-jump cell above. */
@media (max-width:760px){
  .svc-switch.js-tabs .svc-switch__panel:not(.is-active){display:none}
}
@media print{
  .svc-switch.js-tabs .svc-switch__panel,
  .svc-switch.js-tabs .svc-switch__panel:not(.is-active){display:grid !important}
}
@media print and (max-width:760px){
  .svc-switch.js-tabs .svc-switch__panel{grid-template-columns:1fr}
}

/* B3 + B8 · 44px tap height at phone width (look unchanged) */
@media (max-width:760px){
  .hero__phone a,
  .site-footer__contact a,
  .site-footer__secondary a{min-height:44px}
  .hero--video .hero__video-toggle{min-height:44px;padding-inline:.95rem}
  .site-branding .site-logo{min-height:44px;justify-content:center}
}

/* B5 · Footer logo gets ~24px under the red rule; total footer height unchanged */
.site-footer{padding-top:1.75rem}
.site-footer::before{margin-bottom:1.5rem}

/* B6 · Lifecycle ring: side labels anchored away from the nodes may overhang the
   240-unit viewBox slightly; the card has room for it */
.feature-bento__life-svg{overflow:visible}

/* B7 · Vehicles card to the unheaded ecosystem paragraph: one section gap, not two */
.section--vehicles-teaser + .section--ecosystem{padding-top:0}
@media (max-width:760px){
  .section--vehicles-teaser:has(+ .section--ecosystem){padding-bottom:3.5rem}
}

/* v0.6.47 QA 3: Digital Transformation diagram fits its card below 900px.
   The visual keeps the 640:420 SVG ratio from the card width (no min-height push),
   so every node label stays inside the card. 1440 is untouched. */
@media (max-width:899px){
  .integration-diagram{grid-template-columns:minmax(0,1fr)}
  .integration-diagram__visual{min-height:0;width:100%}
}
@media (max-width:640px){
  .integration-diagram__node{padding:.3rem .55rem;line-height:1.2}
  .integration-diagram__center{width:4.9rem;height:4.9rem}
  .integration-diagram__center img{width:3.3rem}
}

/* v0.6.47 QA 1: Contact page direct-contact block (web form not rendered) */
.contact-direct{
  display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  max-width:60rem;margin-inline:auto;background:#fff;
  border:1px solid rgba(0,30,66,.08);border-radius:var(--tuwyn-radius);
  box-shadow:var(--tuwyn-shadow-soft);overflow:hidden;
}
.contact-direct__intro{
  position:relative;display:flex;flex-direction:column;justify-content:center;gap:.85rem;
  padding:2.75rem 2.5rem;color:rgba(255,255,255,.86);
  background:radial-gradient(90% 70% at 0% 0%, rgba(146,36,48,.22), transparent 60%),
             linear-gradient(160deg, var(--tuwyn-navy) 0%, #1a3558 100%);
}
.contact-direct__intro::before{
  content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--tuwyn-berry);
}
.contact-direct__eyebrow{
  margin:0;font-family:var(--tuwyn-font-display);font-size:.78rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tuwyn-berry-light);
}
.contact-direct__intro h2{margin:0;color:#fff;font-size:clamp(1.5rem,2.4vw,1.9rem);line-height:1.2;letter-spacing:-.015em}
.contact-direct__lede{margin:0;max-width:34ch;line-height:1.6}
.contact-direct__address{
  margin-top:.6rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14);
  font-style:normal;font-size:.95rem;line-height:1.55;color:rgba(255,255,255,.8);
}
.contact-direct__address .contact-direct__label{color:rgba(255,255,255,.62);margin-bottom:.2rem}
.contact-direct__list{
  list-style:none;margin:0;padding:2rem 2rem;display:grid;gap:.85rem;align-content:center;
}
.contact-direct__item{
  display:flex;align-items:center;gap:1rem;min-height:76px;padding:1rem 1.15rem;
  border:1px solid rgba(0,30,66,.12);border-radius:14px;background:#fff;
  color:var(--tuwyn-navy);text-decoration:none;
  transition:border-color .2s var(--tuwyn-ease), background-color .2s var(--tuwyn-ease), transform .2s var(--tuwyn-ease);
}
.contact-direct__item:hover{border-color:rgba(0,30,66,.34);background:#f6f8fb;transform:translateY(-1px)}
.contact-direct__item:focus-visible{outline:2px solid var(--tuwyn-navy);outline-offset:3px}
.contact-direct__icon{
  flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:12px;
  background:rgba(146,36,48,.08);color:var(--tuwyn-berry);
}
.contact-direct__item--pdf .contact-direct__icon{background:var(--tuwyn-berry);color:#fff}
.contact-direct__text{display:flex;flex-direction:column;min-width:0}
.contact-direct__label{
  display:block;font-family:var(--tuwyn-font-display);font-size:.76rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#52667e;
}
.contact-direct__value{
  display:block;font-family:var(--tuwyn-font-display);font-weight:700;font-size:1.14rem;
  letter-spacing:-.01em;color:var(--tuwyn-navy);overflow-wrap:anywhere;
}
.contact-direct__teaming{
  max-width:60rem;margin:1.5rem auto 0;text-align:center;color:#52667e;font-size:.98rem;
}
.contact-direct__teaming a{
  display:inline-flex;align-items:center;min-height:44px;margin-left:.25rem;
  font-weight:700;color:var(--tuwyn-berry);text-underline-offset:3px;
}
@media (max-width:760px){
  .contact-direct{grid-template-columns:minmax(0,1fr)}
  .contact-direct__intro{padding:2rem 1.4rem 1.75rem}
  .contact-direct__list{padding:1.25rem}
  .contact-direct__item{padding:.9rem 1rem;min-height:72px}
}
@media (prefers-reduced-motion:reduce){
  .contact-direct__item{transition:none}
  .contact-direct__item:hover{transform:none}
}
@media print{
  .contact-direct{box-shadow:none;break-inside:avoid}
  .contact-direct__intro{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* v0.6.47 QA 9: print keeps headings with the content that follows them */
@media print{
  h1,h2,h3,h4,.section-header,.eyebrow{break-after:avoid;page-break-after:avoid}
  .section-header + *,h2 + *,h3 + *{break-before:avoid;page-break-before:avoid}
  .svc-switch__panel,.card,.flow-list__item,.img-panel,.band,.integration-diagram{break-inside:avoid;page-break-inside:avoid}
  p,li{orphans:3;widows:3}
}
@media print{
  .section-footer-link{break-before:avoid;page-break-before:avoid}
  .site-footer__inner{break-inside:avoid;page-break-inside:avoid}
}

/* v0.6.47: open mobile menu is opaque (the nested backdrop blur let the hero show through
   the links). Same open/close behavior, JS or no-JS. */
@media (max-width:1199px){
  .primary-nav{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* ——— v0.6.48 UX fixes ——— */
/* 1. Phone/tablet menu CTA meets the 44px tap target (btn--sm is 40px min). */
@media (max-width:1199px){
  .primary-nav .header-cta{min-height:44px;display:inline-flex;align-items:center}
}

/* 4. Dimmed backdrop under the open menu. Sits below the sticky header (z 50), covers the page,
   tap closes (nav.js). JS-only: stays [hidden] without JS; no-JS :target menu is unchanged. */
.nav-backdrop{
  position:fixed;inset:0;z-index:49;
  background:rgba(0,30,66,.45);
  opacity:0;transition:opacity .2s var(--tuwyn-ease);
  -webkit-tap-highlight-color:transparent;
  overscroll-behavior:contain;touch-action:none;
}
.nav-backdrop[hidden]{display:none}
.nav-backdrop.is-visible{opacity:1}
@media (min-width:1200px){ .nav-backdrop{display:none !important} }
@media (prefers-reduced-motion:reduce){ .nav-backdrop{transition:none} }
@media print{ .nav-backdrop{display:none !important} }
/* Scroll lock while open. v0.6.49: html only. Putting overflow:hidden on body as well made body the
   sticky header's scroll container, so a menu opened after scrolling rendered off the top of the screen. */
@media (max-width:1199px){
  html.nav-open{overflow:hidden}
}

/* 5. Contact at phone widths: phone tile above the fold. Office address is its own cell:
   desktop keeps it under the intro in the navy column; phones move it below the tiles. */
.contact-direct{
  grid-template-rows:1fr auto auto 1fr;
  background:
    linear-gradient(var(--tuwyn-berry),var(--tuwyn-berry)) 0 0 / 47.5% 3px no-repeat,
    radial-gradient(90% 70% at 0% 0%, rgba(146,36,48,.22), transparent 60%) 0 0 / 47.5% 100% no-repeat,
    linear-gradient(160deg, var(--tuwyn-navy) 0%, #1a3558 100%) 0 0 / 47.5% 100% no-repeat,
    #fff;
}
.contact-direct__intro{
  grid-column:1;grid-row:2;background:none;justify-content:flex-start;
  padding:2.75rem 2.5rem 0;
}
.contact-direct__intro::before{content:none}
.contact-direct__list{grid-column:2;grid-row:1 / -1}
.contact-direct__office{
  grid-column:1;grid-row:3;padding:.85rem 2.5rem 2.75rem;
}
.contact-direct__office .contact-direct__address{margin-top:.6rem}
@media (max-width:760px){
  .contact-direct{grid-template-rows:none;background:#fff}
  .contact-direct__intro,
  .contact-direct__list,
  .contact-direct__office{grid-column:1;grid-row:auto}
  .contact-direct__intro{
    gap:.6rem;padding:1.5rem 1.4rem 1.35rem;
    background:radial-gradient(90% 70% at 0% 0%, rgba(146,36,48,.22), transparent 60%),
               linear-gradient(160deg, var(--tuwyn-navy) 0%, #1a3558 100%);
  }
  .contact-direct__intro::before{content:""}
  .contact-direct__list{padding:1rem 1.25rem 1.1rem}
  .contact-direct__office{
    padding:1rem 1.4rem 1.2rem;background:#f6f8fb;border-top:1px solid rgba(0,30,66,.08);
  }
  .contact-direct__office .contact-direct__address{
    margin:0;padding:0;border:0;color:#3d4f66;
  }
  .contact-direct__office .contact-direct__address .contact-direct__label{color:#52667e}
  .section--contact-direct{padding-top:1.5rem}
  .page-hero.page-hero--compact-sm{padding:2.25rem 0 1.75rem}
}
@media print{
  .contact-direct{background:#fff}
  .contact-direct__intro,.contact-direct__office{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* Header bar stays solid white above the backdrop while the menu is open. */
@media (max-width:1199px){ html.nav-open .site-header{background:#fff} }

/* ——— v0.6.49 ——— */
/* Jump links land below the sticky header (header is 4.75rem + 1px border under 960px, 5.25rem + 1px
   from 960px up) with breathing room that also absorbs the ~12px reveal slide-up. JS tab deep links
   set their own inline scroll-margin and keep it. */
main [id]{scroll-margin-top:calc(4.75rem + 1px + 1.5rem)}
@media (min-width:1200px){
  main [id]{scroll-margin-top:calc(5.25rem + 1px + 1.5rem)}
  /* Desktop header CTA meets the same 44px target as the phone menu CTA (btn--sm is 40px min). */
  .site-header .header-cta{min-height:44px;display:inline-flex;align-items:center}
}
/* Success stories: category tags are small pills sized to their text, not full-width boxes. */
.stories-editorial__item .story-tag{justify-self:start;width:fit-content;max-width:100%;border-radius:999px;line-height:1.3}
/* Comfortable space between each story title and its text at every width (was 0 under 800px, .4rem above). */
.stories-editorial__copy{display:flex;flex-direction:column;gap:.5rem}

/* v0.6.51: library mission-story (7:3, globe center-right) replaces memorial-bg. It is composed
   for the slot, so no zoom; keep the globe in the 4:3 / 16:10 crop. */
.about-snapshot__media img{transform:none;object-position:82% 50%}
@media (max-width:899px){
  .about-snapshot__media img{transform:none;object-position:78% 50%}
}

/* v0.6.51: header-dt is the one light header image. White copy cannot reach 4.5:1 on it
   without burying the image under navy, so this page switches its hero copy to navy over a
   soft white scrim on the text side (page-hero.php adds .page-hero--light via 'tone'). */
.page-hero--higgs.page-hero--light{color:var(--tuwyn-navy);box-shadow:inset 0 -1px 0 rgba(0,30,66,.14)}
.page-hero--higgs.page-hero--light .page-hero__field{background:#eef2f7}
.page-hero--higgs.page-hero--light .page-hero__field::after{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.88) 0%,
      rgba(255,255,255,.78) 34%,
      rgba(255,255,255,.45) 56%,
      rgba(255,255,255,.1) 74%,
      transparent 90%);
}
.page-hero--light .page-title{color:var(--tuwyn-navy);text-shadow:none}
.page-hero--light .page-hero__lede{color:var(--tuwyn-navy)}
.page-hero--light .eyebrow--light{color:var(--tuwyn-berry)}
/* Phones: the shared ≤720px navy scrim (section 2 above) becomes a white one on the light header. */
@media (max-width:720px){
  .page-hero--light::after{
    background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.6) 60%,rgba(255,255,255,.4) 100%);
  }
  .page-hero--light .page-title,
  .page-hero--light .page-hero__lede{text-shadow:none}
}

/* v0.6.51: tablet and small laptop (721 to 1279px). The 3:1 headers are width-bound here, so
   object-position cannot move the collage out from under the lede (it runs to about 75% of
   the width). Deepen the existing left scrim across the text span on these widths only. */
@media (min-width:721px) and (max-width:1279px){
  .page-hero--header:not(.page-hero--light) .page-hero__field::after{
    background:
      linear-gradient(90deg,
        rgba(0,18,38,.92) 0%,
        rgba(0,30,66,.84) 40%,
        rgba(0,30,66,.7) 66%,
        rgba(0,30,66,.4) 84%,
        rgba(0,30,66,.18) 100%),
      linear-gradient(115deg, rgba(146,36,48,.1) 0%, transparent 42%);
  }
}
