/* ==========================================================================
   SERVTECH MEXICO
   Art direction: "Floor Marking"
   Display  Big Shoulders Display    Body  IBM Plex Sans    Data  IBM Plex Mono
   Motifs   1. yellow floor line that turns corners
            2. hazard stripe band at section breaks
            3. mono index code in the left gutter
   ========================================================================== */

:root{
  --ink:#0E0E0E;
  --ink-soft:#1A1A1A;
  --yellow:#FFD400;
  --concrete:#C9C6BF;
  --concrete-dim:#8E8B85;   /* light text on dark backgrounds only */
  --muted-ink:#6A6862;      /* muted text on light backgrounds, AA on --paper */
  --paper:#F5F4F2;
  --white:#FFFFFF;
  --line:#D6D3CD;

  --gutter:150px;
  --inset:48px;
  --pad-x:2rem;
  --sect-y:5.5rem;
  --maxw:1240px;
}

*,*::before,*::after{ box-sizing:border-box; }

html,body{
  margin:0; padding:0; width:100%;
  overflow-x:clip;
  background:var(--paper);
}

body{
  font-family:'IBM Plex Sans',Arial,sans-serif;
  font-weight:400;
  font-size:18px;
  line-height:1.6;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  font-family:'Big Shoulders Display','Arial Narrow',sans-serif;
  text-transform:uppercase;
  margin:0;
  letter-spacing:-0.01em;
}

p{ margin:0 0 1.2em 0; max-width:62ch; }
p:last-child{ margin-bottom:0; }

strong{ font-weight:600; }

::selection{ background:var(--yellow); color:var(--ink); }

.mono{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:12px;
  font-weight:500;
}

.skip{
  position:absolute; left:-9999px; top:0;
  background:var(--yellow); color:var(--ink);
  padding:0.8rem 1.2rem; z-index:200;
  font-family:'IBM Plex Mono',monospace; font-size:12px;
}
.skip:focus{ left:0; }

/* ============ MOTIF 1  FLOOR LINE ============ */

.floor-line{ height:6px; width:100%; background:var(--yellow); }

.floor-turn{ position:relative; height:96px; width:100%; }
.floor-turn::before{
  content:''; position:absolute; top:0; left:0;
  width:100%; height:6px; background:var(--yellow);
}
.floor-turn::after{
  content:''; position:absolute; top:0; left:var(--inset);
  width:6px; height:100%; background:var(--yellow);
}
.floor-turn.on-dark{ background:var(--ink); }
.floor-turn.on-light{ background:var(--paper); }

/* ============ MOTIF 2  HAZARD BAND ============ */

.hazard{
  height:28px; width:100%;
  background:repeating-linear-gradient(45deg, var(--yellow) 0 14px, var(--ink) 14px 28px);
}
.hazard--thin{ height:14px; background-size:auto; }

/* Homepage refinements are scoped below to preserve the other page layouts. */

/* ============ NAV ============ */

header.nav{
  position:sticky; top:0; z-index:50;
  background:var(--ink); color:var(--white);
  padding:0.65rem var(--pad-x);
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
  border-bottom:6px solid var(--yellow);
}
.wordmark{ display:flex; align-items:center; gap:0.6rem; flex-shrink:0; }
.wordmark .brand-logo{
  display:block; width:16.25rem; max-width:50vw; height:auto; object-fit:contain; flex:none;
}
.wordmark .word-main{
  font-family:'Big Shoulders Display','Arial Narrow',sans-serif;
  font-weight:800; font-size:1.6rem; text-transform:uppercase;
  color:var(--white); letter-spacing:-0.01em;
}
.wordmark .word-sub{
  font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--yellow);
}
nav.links{ display:flex; flex-wrap:wrap; gap:1.1rem 1.4rem; }
nav.links a{
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.1em; color:var(--white);
  white-space:nowrap; padding-bottom:3px; border-bottom:2px solid transparent;
}
nav.links a:hover{ color:var(--yellow); }
nav.links a[aria-current="page"]{ color:var(--yellow); border-bottom-color:var(--yellow); }

/* ============ HOME HERO ============ */

.hero{
  position:relative; min-height:88vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
}
.hero-img{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:grayscale(0.25) contrast(1.1);
}
.hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(14,14,14,0.88) 0%, rgba(14,14,14,0.34) 100%);
}
.hero-meta{ position:relative; z-index:2; padding:2rem var(--pad-x); color:var(--white); }
.hero-body{ position:relative; z-index:2; padding:0 var(--pad-x) 2.5rem var(--pad-x); }
.hero h1{
  color:var(--white); font-weight:800;
  font-size:clamp(3rem,9vw,8.5rem); line-height:0.85;
  letter-spacing:-0.015em; max-width:18ch;
}
.hero .floor-line{ margin:1.4rem 0 1.6rem 0; max-width:640px; }
.hero p{ color:var(--concrete); max-width:54ch; margin-bottom:1.8rem; }

/* ============ INNER PAGE HEAD ============ */

.pagehead{
  position:relative; background:var(--ink); color:var(--white);
  padding:4rem var(--pad-x) 3rem var(--inset);
  overflow:hidden;
}
.pagehead .mono{ color:var(--yellow); display:block; margin-bottom:1rem; }
.pagehead h1{
  color:var(--white); font-weight:800;
  font-size:clamp(2.6rem,7vw,6rem); line-height:0.86; max-width:20ch;
}
.pagehead .floor-line{ margin:1.4rem 0 1.5rem 0; max-width:520px; }
.pagehead p{ color:var(--concrete); max-width:58ch; }
.pagehead-img{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  filter:grayscale(0.35) contrast(1.05); opacity:0.28;
}
.pagehead > *{ position:relative; z-index:1; }

/* ============ SECTION SCAFFOLD ============ */

.section{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  padding:var(--sect-y) var(--pad-x) var(--sect-y) var(--inset);
}
.section--dark{ background:var(--ink); color:var(--white); }
.section--light{ background:var(--paper); color:var(--ink); }
.section--dark p{ color:var(--paper); }
.section--tight{ padding-top:3rem; padding-bottom:3rem; }

/* Motif 3, the mono index code in the left gutter, is retired. Numbered section
   labels and small-caps eyebrows are banned by 80_Skills/web-design-direction
   Stage 2 and were the loudest AI tell on the page. Sections carry a heading and
   nothing else. Rule kept rather than deleted so the superseded pages still in
   this folder do not render their old index codes as stray text. */
.idx{ display:none; }

.content{ min-width:0; max-width:var(--maxw); }

.h2--xl{ font-weight:800; font-size:clamp(2.4rem,6.5vw,5rem);  line-height:0.88; }
.h2--lg{ font-weight:700; font-size:clamp(2.2rem,5.5vw,4.2rem); line-height:0.90; }
.h2--md{ font-weight:700; font-size:clamp(2rem,4.5vw,3.4rem);   line-height:0.92; }
.h2--sm{ font-weight:700; font-size:clamp(1.8rem,3.5vw,2.6rem); line-height:0.95; }

.section h2{ margin-bottom:1.4rem; }
.section .intro{ margin-bottom:1.8rem; font-size:19px; }

/* Jump links in a page header, so a reader can go straight to the service they
   came for. Sits as a bordered strip at the base of the dark header. */
.jump{
  display:flex; flex-wrap:wrap; gap:0 1.8rem;
  margin-top:2rem; padding-top:1.3rem; border-top:1px solid #2E2E2E;
}
.jump a{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase; letter-spacing:0.1em;
  font-size:12px; font-weight:500; color:var(--concrete);
  padding:0.55rem 0;
}
.jump a:hover{ color:var(--yellow); }
.jump a .n{ color:var(--yellow); margin-right:0.55rem; }

/* Anchored sections clear the sticky header when jumped to. */
.section[id],.pagehead[id]{ scroll-margin-top:5rem; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* Label sitting above a section heading. Yellow on dark, muted on light. */
.sect-label{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase; letter-spacing:0.12em;
  font-size:12px; font-weight:500;
  display:block; margin-bottom:1rem; color:var(--muted-ink);
}
.section--dark .sect-label{ color:var(--yellow); }

h3.sub{
  font-weight:700; font-size:clamp(1.5rem,2.8vw,2.15rem);
  margin:3rem 0 0.8rem 0;
}
.section--dark h3.sub{ color:var(--white); }

/* ============ BUTTONS ============ */

.btn-primary,.btn-ghost{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:13px;
  text-transform:uppercase; letter-spacing:0.1em;
  padding:1.05rem 1.9rem; border:2px solid var(--yellow); cursor:pointer;
}
.btn-primary{ background:var(--yellow); color:var(--ink); }
.btn-primary:hover{ background:var(--ink); color:var(--yellow); }
.btn-ghost{ background:transparent; color:var(--yellow); }
.btn-ghost:hover{ background:var(--yellow); color:var(--ink); }
.section--light .btn-ghost{ color:var(--ink); border-color:var(--ink); }
.section--light .btn-ghost:hover{ background:var(--ink); color:var(--white); }
.btn-row{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }

/* ============ NUMBERED SCOPE LIST ============ */

.scope-list{ list-style:none; margin:0; padding:0; max-width:74ch; }
.scope-row{
  display:grid; grid-template-columns:90px 1fr; column-gap:1.5rem;
  align-items:start; border-top:1px solid var(--ink); padding:1.4rem 0;
}
.section--dark .scope-row{ border-top-color:#333; }
.scope-row:last-child{ border-bottom:1px solid var(--ink); }
.section--dark .scope-row:last-child{ border-bottom-color:#333; }
.scope-num{
  font-family:'IBM Plex Mono',monospace; font-weight:500;
  font-size:clamp(2rem,4vw,2.8rem); color:var(--ink); line-height:1;
}
.section--dark .scope-num{ color:var(--white); }
.scope-num::before{
  content:''; display:block; width:36px; height:3px;
  background:var(--yellow); margin-bottom:0.6rem;
}
.scope-text{ font-size:18px; padding-top:0.4rem; }
.scope-text .lead{ font-weight:600; display:block; margin-bottom:0.2rem; }
.scope-text .note{ color:var(--muted-ink); font-size:16px; }
.section--dark .scope-text .note{ color:var(--concrete); }

/* ============ OFFER LIST ============ */
/* Replaces the numbered scope list. Same industrial rhythm of hard rules across
   the column, with the yellow dash carried over from the old number block, but
   no numbering. */

.offer-list{ list-style:none; margin:2.2rem 0 0 0; padding:0; max-width:1120px; }
.offer-row{
  display:grid; grid-template-columns:300px minmax(0,1fr); column-gap:3rem;
  border-top:1px solid var(--ink); padding:1.7rem 0;
}
.section--dark .offer-row{ border-top-color:#333; }
.offer-row:last-child{ border-bottom:1px solid var(--ink); }
.section--dark .offer-row:last-child{ border-bottom-color:#333; }
.offer-row h3,.offer-row h4{
  font-weight:700; font-size:clamp(1.35rem,2.4vw,1.9rem);
  line-height:1; margin:0; color:var(--ink);
}
.section--dark .offer-row h3,.section--dark .offer-row h4{ color:var(--white); }
.offer-row h3::before,.offer-row h4::before{
  content:''; display:block; width:36px; height:3px;
  background:var(--yellow); margin-bottom:0.75rem;
}
/* Inside a group that already has its own h3.sub heading, the row labels drop a
   size so the hierarchy still reads. */
.offer-list--nested h4{ font-size:clamp(1.05rem,1.7vw,1.3rem); }
.offer-list--nested{ margin-top:1.2rem; }
.offer-row p{ margin:0; font-size:17px; max-width:58ch; }

/* ============ TWO COLUMN TEXT ============ */
/* Fills the measure on wide screens without stretching the line length. Used
   where a section is prose only and would otherwise leave half the page empty. */

.text-cols{
  display:grid; grid-template-columns:1fr 1fr;
  column-gap:4rem; max-width:1120px; align-items:start;
}
.text-cols > *{ min-width:0; }
.text-cols p{ max-width:52ch; }
.text-cols p:last-child{ margin-bottom:0; }

@media (max-width:900px){
  .offer-row{ grid-template-columns:1fr; row-gap:0.6rem; }
  .offer-row p{ max-width:none; }
  .text-cols{ grid-template-columns:1fr; column-gap:0; }
  .text-cols > *:first-child p:last-child{ margin-bottom:1.2em; }
}

/* ============ SPEC TABLE ============ */

.spec{ width:100%; max-width:74ch; border-collapse:collapse; margin:1.6rem 0 0 0; }
.spec th,.spec td{
  text-align:left; vertical-align:top;
  padding:0.95rem 0; border-top:1px solid var(--line);
  font-size:16px;
}
.section--dark .spec th,.section--dark .spec td{ border-top-color:#333; }
.spec tr:last-child th,.spec tr:last-child td{ border-bottom:1px solid var(--line); }
.section--dark .spec tr:last-child th,.section--dark .spec tr:last-child td{ border-bottom-color:#333; }
.spec th{
  font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:12px;
  text-transform:uppercase; letter-spacing:0.1em;
  width:34%; padding-right:1.5rem; color:var(--ink);
}
.section--dark .spec th{ color:var(--yellow); }

/* ============ PULL-OUT ============ */

/* Keep the image in flow so the section contains both columns. */
.access-wrap{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:3rem; align-items:start;
}
.access-wrap .access-text{ min-width:0; max-width:620px; }

.pullout{
  font-family:'Big Shoulders Display','Arial Narrow',sans-serif;
  font-weight:700; text-transform:uppercase;
  font-size:clamp(1.6rem,3.2vw,2.6rem); line-height:1.05;
  max-width:36ch; margin-top:2.2rem;
}
.section--dark .pullout{ color:var(--white); }
.section--light .pullout{
  color:var(--ink); border-left:6px solid var(--yellow); padding-left:1.4rem;
}

/* ============ FIGURES ============ */

.support-img{ margin:2.4rem 0 0 0; max-width:74ch; }
.support-img img{ width:100%; height:auto; filter:grayscale(0.15) contrast(1.05); }
.support-img figcaption{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--muted-ink); margin-top:0.6rem;
}
.section--dark .support-img figcaption{ color:var(--concrete); }

.bleed-img{ min-width:0; }
.bleed-img img{ display:block; width:100%; height:auto; filter:grayscale(0.15) contrast(1.05); }

/* ============ TWO COLUMN ============ */

.two-col{
  display:grid; grid-template-columns:1.15fr 0.85fr;
  column-gap:3rem; align-items:start;
}
.two-col--even{ grid-template-columns:1fr 1fr; }
.two-col img{ width:100%; height:auto; max-height:620px; object-fit:cover;
  filter:grayscale(0.15) contrast(1.05); }
.two-col .col-text{ max-width:58ch; }

/* ============ CALL-OUT TIMELINE ============ */

.clock{ list-style:none; margin:1.8rem 0 0 0; padding:0; max-width:74ch; }
.clock li{
  display:grid; grid-template-columns:120px 1fr; column-gap:1.5rem;
  border-top:1px solid var(--line); padding:1.2rem 0; align-items:start;
}
.section--dark .clock li{ border-top-color:#333; }
.clock li:last-child{ border-bottom:1px solid var(--line); }
.section--dark .clock li:last-child{ border-bottom-color:#333; }
.clock .t{
  font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:13px;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--ink);
  padding-top:0.25rem;
}
.section--dark .clock .t{ color:var(--yellow); }
.clock .t::before{
  content:''; display:block; width:28px; height:3px;
  background:var(--yellow); margin-bottom:0.5rem;
}

/* ============ FORM ============ */

.form{ max-width:640px; margin-top:1rem; }
.field{ margin-bottom:1.4rem; }
.field label{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:12px;
  text-transform:uppercase; letter-spacing:0.1em; font-weight:500;
  margin-bottom:0.5rem;
}
.field input,.field textarea,.field select{
  width:100%; padding:0.9rem 1rem; border:2px solid var(--ink);
  border-radius:0; background:var(--white); color:var(--ink);
  font-family:'IBM Plex Sans',Arial,sans-serif; font-size:17px;
}
.section--dark .field input,
.section--dark .field textarea,
.section--dark .field select{
  background:var(--ink-soft); color:var(--white); border-color:var(--concrete-dim);
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:3px solid var(--yellow); outline-offset:1px; border-color:var(--yellow);
}
.field textarea{ min-height:150px; resize:vertical; }
.hp{ position:absolute; left:-9999px; }
.form-note{ font-size:15px; color:var(--muted-ink); margin-top:1.2rem; }
.section--dark .form-note{ color:var(--concrete); }

/* ============ CONTACT PANEL ============ */

.contact-facts{ margin-top:0; }
.contact-facts dt{
  font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase;
  letter-spacing:0.1em; color:var(--yellow); margin-top:1.4rem;
}
.contact-facts dd{ margin:0.3rem 0 0 0; font-size:18px; }
.tbc{ color:var(--muted-ink); font-style:normal; }
.section--dark .tbc{ color:var(--concrete); }

/* ============ LANGUAGE SWITCH ============ */

.langs{
  display:flex; align-items:center; gap:0.85rem;
  padding-left:1.1rem; border-left:3px solid var(--yellow);
}
.langs a{
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.1em; color:var(--concrete);
  white-space:nowrap;
}
.langs a:hover{ color:var(--yellow); }
.langs a[aria-current="true"]{ color:var(--yellow); }

/* ============ COMING SOON ============ */

.soon{ max-width:60ch; }
.soon .mono{ color:var(--muted-ink); display:block; margin-bottom:1rem; }

/* ============ NEXT PAGE STRIP ============ */

.next-strip{
  background:var(--ink); color:var(--white);
  padding:3rem var(--pad-x) 3rem var(--inset);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1.5rem;
}
.next-strip h2{ font-weight:800; font-size:clamp(1.8rem,4vw,3rem); line-height:0.95; max-width:20ch; }

/* ============ FOOTER ============ */

footer.site{
  background:var(--ink); color:var(--concrete);
  padding:3rem var(--pad-x) 3rem var(--inset);
  font-size:15px;
}
footer.site .foot-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2.5rem; max-width:var(--maxw);
}
footer.site h3{
  font-family:'IBM Plex Mono',monospace; text-transform:uppercase;
  font-size:12px; letter-spacing:0.12em; color:var(--yellow);
  margin:0 0 0.9rem 0; font-weight:500;
}
footer.site ul{ list-style:none; margin:0; padding:0; }
footer.site li{ margin-bottom:0.45rem; }
footer.site a:hover{ color:var(--yellow); }
footer.site .legal{
  margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid #2A2A2A;
  font-size:13px; color:#9A968F;
}

/* ============ RESPONSIVE ============ */

@media (max-width:900px){
  :root{ --gutter:0px; --inset:32px; --pad-x:1.5rem; --sect-y:3.75rem; }
  .section{ grid-template-columns:1fr; row-gap:1.4rem; }
  .idx{ justify-self:start; }
  .two-col,.two-col--even{ grid-template-columns:1fr; row-gap:2rem; }
  .two-col img{ max-height:420px; }
  .access-wrap{ grid-template-columns:minmax(0,1fr); gap:2rem; }
  .access-wrap .access-text{ max-width:none; }
  .hero{ min-height:78vh; }
  .floor-turn{ height:72px; }
}

@media (max-width:600px){
  :root{ --inset:20px; --pad-x:1.15rem; }
  body{ font-size:17px; }
  .scope-row{ grid-template-columns:56px 1fr; column-gap:0.9rem; }
  .scope-num{ font-size:1.6rem; }
  .clock li{ grid-template-columns:1fr; row-gap:0.5rem; }
  .spec th{ width:42%; font-size:11px; }
  .spec th,.spec td{ font-size:15px; }
  .next-strip{ flex-direction:column; align-items:flex-start; }

  /* Tap targets. Nav links were 22px tall in three tightly packed rows, which
     is a mis-tap waiting to happen. Padding takes them to roughly 44px without
     changing the type size or the look. */
  header.nav{ padding:0.65rem var(--pad-x) 0.5rem; }
  nav.links{ gap:0 0.95rem; }
  nav.links a{ font-size:11px; padding:11px 0 9px; }
  footer.site li{ margin-bottom:0; }
  footer.site li a{ display:inline-block; padding:9px 0; }

  /* The send button read as an afterthought beside full width fields */
  .form button.btn-primary{ display:block; width:100%; text-align:center; }

  /* Stack the hero meta line cleanly instead of letting it orphan "company" */
  .hero-meta span{ display:block; }
  .hero-meta .sep{ display:none; }
  .hero-meta{ line-height:1.7; }
}

/* ============ HOMEPAGE ============ */
.home .content{ width:100%; max-width:1240px; margin-inline:auto; }
.home .section{ padding:3.75rem 2rem; }
.home .hero{ min-height:70vh; }
.home .hero-body{
  width:100%; max-width:1304px; margin-inline:auto; padding:3.5rem 2rem;
}
.home .hero h1{
  font-size:clamp(3rem,6vw,6.25rem); line-height:0.96; max-width:24ch;
  text-wrap:balance;
}
.home .hero p{ max-width:62ch; color:var(--paper); }
.home .section h2{
  font-size:clamp(2rem,3.4vw,3.25rem); line-height:1.05;
  max-width:32ch; text-wrap:balance;
}
.home .floor-turn{ height:24px; }
.home .hazard{ height:12px; }
.home .section + .hazard{ height:6px; background:var(--yellow); }
.home .text-cols,.home .offer-list{ max-width:none; }
.home .offer-row h3{
  font-family:'IBM Plex Sans',Arial,sans-serif; font-size:1.2rem;
  font-weight:600; text-transform:none; line-height:1.35; letter-spacing:0;
}
.home nav.links{ gap:0.5rem 1.25rem; }
.home nav.links a{
  font-size:0.875rem; letter-spacing:0.025em; padding-block:0.6rem;
}
.home .btn-primary,.home .btn-ghost{
  font-size:0.875rem; letter-spacing:0.035em; padding:0.95rem 1.4rem;
}
.home a:focus-visible{ outline:3px solid var(--yellow); outline-offset:4px; }
.home .section--light a:focus-visible{ outline-color:var(--ink); }
.home .knowledge-grid,.home .engagement-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem;
}
.home .knowledge-grid > div{ min-width:0; border-top:2px solid var(--yellow); padding-top:1.25rem; }
.home .knowledge-grid h3{
  font-family:'IBM Plex Sans',Arial,sans-serif; text-transform:none;
  font-size:1.2rem; font-weight:600; line-height:1.35; margin-bottom:1rem;
}
.home .engagement-grid{ max-width:none; margin-top:2rem; }
.home .engagement-grid .scope-row{
  display:block; min-width:0; padding:1.25rem 0 0; border-top:2px solid var(--ink);
  border-bottom:0;
}
.home .engagement-grid .scope-num{ display:block; font-size:2rem; margin-bottom:1rem; }
.home .engagement-grid .scope-num::before{ display:none; }
.home .engagement-grid .scope-text{ display:block; }
.home .engagement-grid .lead{ font-size:1.2rem; line-height:1.35; margin-bottom:0.75rem; }
.home .team-transfer{ border-top:1px solid var(--line); margin-top:2.5rem; padding-top:2rem; }
.home .team-transfer h3{ margin:0 0 1rem; font-size:1.8rem; }
.home .team-transfer p{ max-width:85ch; }
.inner .content{ width:100%; max-width:1240px; margin-inline:auto; }
.inner .pagehead{ padding:3.5rem 2rem; border-bottom:6px solid var(--yellow); }
.inner .pagehead h1{ font-size:clamp(2.75rem,5.5vw,5rem); line-height:1; max-width:28ch; text-wrap:balance; }
.inner .pagehead p{ max-width:68ch; }
.inner h1,.inner h2,.inner h3{ overflow-wrap:anywhere; hyphens:auto; }
.inner .pagehead .floor-line{ max-width:520px; height:4px; }
.inner .section{ padding:3.75rem 2rem; }
.inner .section h2{ font-size:clamp(2rem,3.4vw,3.25rem); line-height:1.05; max-width:34ch; text-wrap:balance; }
.inner .section h3{ font-family:'IBM Plex Sans',Arial,sans-serif; font-size:1.2rem; font-weight:600; text-transform:none; line-height:1.35; letter-spacing:0; margin-bottom:0.8rem; }
.inner .offer-list,.inner .text-cols{ max-width:none; }
.inner .offer-row{ grid-template-columns:minmax(180px,0.7fr) minmax(0,1.7fr); padding-block:1.25rem; }
.inner .offer-row p{ max-width:70ch; }
.inner .floor-turn{ height:18px; }
.inner .hazard{ height:6px; background:var(--yellow); }
.inner nav.links{ gap:0.5rem 1.25rem; }
.inner nav.links a{ font-size:0.875rem; letter-spacing:0.025em; padding-block:0.6rem; }
.inner .btn-primary,.inner .btn-ghost{ font-size:0.875rem; letter-spacing:0.035em; padding:0.95rem 1.4rem; }
.inner .jump{ gap:0.4rem 1.4rem; }
.inner .jump a{ font-family:'IBM Plex Sans',Arial,sans-serif; font-size:1rem; letter-spacing:0; text-transform:none; text-decoration:underline; text-underline-offset:4px; }
.inner .detail-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.inner .detail-grid > *{ min-width:0; border-top:2px solid var(--yellow); padding-top:1.25rem; }
.inner .detail-grid + p{ margin-top:2rem; }
.inner .section--light .detail-grid > *{ border-color:var(--ink); }
.inner .steps{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem 3rem; padding-left:1.5rem; }
.inner .steps li{ padding-left:0.5rem; }
.inner .steps li::marker{ font-weight:600; }
.inner .faq{ max-width:85ch; }
.inner details{ border-top:1px solid var(--line); padding:1rem 0; }
.inner summary{ cursor:pointer; font-weight:600; padding:0.3rem 0; }
.inner details p{ margin-top:1rem; }
.inner .faq a{ text-decoration:underline; text-underline-offset:4px; }
.inner .next-strip{ display:block; border-top:6px solid var(--yellow); padding:3rem 2rem; }
.inner .next-strip h2{ max-width:none; margin-bottom:1rem; line-height:1.05; }
.inner footer.site{ padding:2rem; }
.inner footer.site .foot-grid,.inner footer.site .legal{ max-width:1240px; margin-inline:auto; }
.inner footer.site h3{ font-size:0.875rem; letter-spacing:0.04em; }
.inner footer.site a,.inner .contact-panel a{ overflow-wrap:anywhere; }
.inner .contact-grid{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,0.8fr); gap:4rem; align-items:start; }
.inner .contact-panel{ padding-top:1.25rem; border-top:3px solid var(--ink); }
.inner .contact-panel h2{ font-size:2rem; }
.inner .contact-panel h3{ margin-top:2rem; }
.inner address{ font-style:normal; }
.inner .form{ max-width:none; }
.inner .field-pair{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.inner .field-help{ font-size:0.95rem; margin-bottom:0.6rem; color:var(--muted-ink); }
.inner .field input:focus,.inner .field textarea:focus,.inner .field select:focus{ outline-color:var(--ink); border-color:var(--ink); }
.inner .form-note{ margin-bottom:1.2rem; }
.text-link{ text-decoration:underline; text-underline-offset:4px; }
.inner .policy-copy{ max-width:85ch; }
footer.site .privacy-link{ margin-top:1rem; font-size:0.875rem; }
.inner footer.site .privacy-link{ max-width:1240px; margin-inline:auto; }
.form button:disabled{ opacity:0.65; cursor:wait; }
.inner .policy-copy p{ max-width:none; }
.inner .policy-copy h2:not(:first-child){ margin-top:2.5rem; }
.inner a:focus-visible,.inner button:focus-visible,.inner summary:focus-visible{ outline:3px solid var(--yellow); outline-offset:4px; }
.inner .section--light a:focus-visible,.inner .section--light button:focus-visible,.inner .section--light summary:focus-visible{ outline-color:var(--ink); }
html{ scroll-padding-top:var(--header-offset, 12rem); }
.inner .section[id],.section[id],.pagehead[id]{ scroll-margin-top:0; }
@media (min-width:901px){
  .inner .arrangement-grid{ grid-template-rows:repeat(4,auto); row-gap:1.25rem; }
  .inner .arrangement-grid > div{ display:grid; grid-row:span 4; grid-template-rows:subgrid; }
  .inner .arrangement-grid > div > h3,.inner .arrangement-grid > div > p{ margin:0; }
}
.whatsapp-float{
  position:fixed; right:max(1.25rem,env(safe-area-inset-right));
  bottom:max(1.25rem,env(safe-area-inset-bottom)); z-index:60;
  display:flex; align-items:center; justify-content:center; width:3.5rem; height:3.5rem;
  border:2px solid white; border-radius:50%; background:#075e54; color:white;
  box-shadow:0 3px 12px #0004;
}
.whatsapp-float svg{ width:2rem; height:2rem; }
.whatsapp-float:hover{ background:#064b43; }
.whatsapp-float:focus-visible{ outline:3px solid var(--yellow); outline-offset:4px; }
body.has-whatsapp footer.site{ padding-bottom:6rem; }
@media print{ header.nav{ position:static!important; } .whatsapp-float{ display:none; } }
@media (max-width:1300px){
  .inner header.nav{ position:sticky; }
  .inner nav.links{ order:3; width:100%; justify-content:center; }
}
@media (max-width:900px){
  .inner .pagehead,.inner .section{ padding:2.75rem 1.5rem; }
  .inner .detail-grid,.inner .contact-grid,.inner .steps{ grid-template-columns:minmax(0,1fr); gap:2rem; }
  .inner .offer-row{ grid-template-columns:minmax(0,1fr); }
  .inner .next-strip,.inner footer.site{ padding:2.5rem 1.5rem; }
  .inner .section[id]{ scroll-margin-top:0; }
}
@media (max-width:600px){
  .inner .pagehead,.inner .section,.inner .next-strip,.inner footer.site{ padding-inline:1.15rem; }
  .inner nav.links{ justify-content:flex-start; gap:0 1rem; }
  .inner nav.links a{ padding-block:0.75rem; }
  .inner .field-pair{ grid-template-columns:minmax(0,1fr); gap:0; }
  .inner .btn-row{ gap:0.75rem; }
}
.home .next-strip{ display:block; padding:3rem 2rem; }
.home .next-strip h2{ max-width:none; margin-bottom:1rem; line-height:1.05; }
.home .next-strip p{ max-width:70ch; }
.home footer.site{ padding:2rem; }
.home footer.site .foot-grid,.home footer.site .legal{ max-width:1240px; margin-inline:auto; }
.home footer.site h3{ font-size:0.875rem; letter-spacing:0.04em; }
.home footer.site a{ overflow-wrap:anywhere; }
@media (max-width:1100px){
  .home header.nav{ position:sticky; }
  .home nav.links{ order:3; width:100%; justify-content:center; }
}
@media (max-width:900px){
  .home .section{ padding:2.75rem 1.5rem; }
  .home .hero{ min-height:0; }
  .home .hero-body{ padding:3rem 1.5rem; }
  .home .knowledge-grid,.home .engagement-grid{ grid-template-columns:minmax(0,1fr); }
  .home .knowledge-grid p{ max-width:65ch; }
  .home .next-strip,.home footer.site{ padding:2.5rem 1.5rem; }
}
@media (max-width:600px){
  .home .section,.home .hero-body,.home .next-strip,.home footer.site{ padding-inline:1.15rem; }
  .home nav.links{ justify-content:flex-start; gap:0 1rem; }
  .home nav.links a{ padding-block:0.75rem; }
  .home .hero h1{ font-size:clamp(2.75rem,10vw,3.75rem); }
  .home .btn-row{ gap:0.75rem; }
  .home .offer-row{ grid-template-columns:minmax(0,1fr); }
}
