:root {
  --ink: #1a1b1e;
  --ink-deep: #101113;
  --paper: #f5f3ef;
  --white: #ffffff;
  --pearl: #e7e4de;
  --slate: #53565c;
  --red: #a11d2e;
  --red-dark: #6e1219;
  --red-light: #c22c3f;
  --line: rgba(26, 27, 30, 0.15);
  --line-dark: rgba(245, 243, 239, 0.17);
  --serif: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --body: "Inter", "Segoe UI", system-ui, sans-serif;
  --shell: min(1180px, calc(100% - 48px));
  color-scheme: light;
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.6; }
body, button, input, select, textarea { font-family: var(--body); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }

.skip-link { position: fixed; z-index: 100; left: 16px; top: -80px; padding: 12px 16px; background: var(--red); color: var(--white); font-weight: 600; transition: top .2s ease; }
.skip-link:focus { top: 16px; }
.shell { width: var(--shell); margin: 0 auto; }
.site-header { position: absolute; z-index: 10; inset: 0 0 auto; color: var(--paper); }
.header-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; min-height: 84px; border-bottom: 1px solid var(--line-dark); }
.brand, .footer-brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--serif); font-weight: 800; letter-spacing: -.03em; }
.brand { font-size: 1.05rem; }
.brand-mark { display: inline-grid; place-items: center; width: 33px; height: 33px; background: var(--red); color: var(--paper); font-size: .7rem; letter-spacing: -.08em; }
.brand-mark-dark { background: var(--ink); }
.brand-name { white-space: nowrap; }
.brand-dot { color: var(--red-light); }
.header-location { color: rgba(245, 243, 239, .7); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
.header-cta { justify-self: end; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 50px; border: 1px solid transparent; padding: 13px 20px; font-family: var(--serif); font-size: .8rem; font-weight: 800; letter-spacing: .01em; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, .text-link:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--red-light); outline-offset: 3px; }
.button-primary { background: var(--red); color: var(--paper); }
.button-primary:hover { background: var(--red-light); }
.button-small { min-height: 38px; padding: 8px 13px; border-color: rgba(245, 243, 239, .3); font-size: .72rem; }
.button-small:hover { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.button-full { width: 100%; }

.section { padding: 112px 0; }
.section-dark { background: var(--ink-deep); color: var(--paper); }
.section-light { background: var(--white); }
.section-ivory { background: var(--paper); }
.section-perle { background: var(--pearl); }
.red-rule { height: 3px; background: var(--red); }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: var(--red); font-family: var(--serif); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow-light { color: var(--red-light); }
.eyebrow-rule { display: inline-block; width: 32px; height: 3px; background: currentColor; flex: 0 0 auto; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); line-height: 1.04; }
h1 { max-width: 690px; margin-bottom: 30px; font-size: clamp(3.3rem, 7vw, 6.2rem); font-weight: 900; letter-spacing: -.07em; }
h1 em { color: var(--red-light); font-style: normal; }
h2 { max-width: 720px; margin-bottom: 28px; font-size: clamp(2.3rem, 4.8vw, 4.25rem); font-weight: 900; letter-spacing: -.065em; }
h3 { margin-bottom: 12px; font-size: 1.4rem; letter-spacing: -.04em; }
.lead { font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.4; }
.muted, .heading-note, .dark-note { color: var(--slate); }
.section-copy { max-width: 540px; }
.section-copy > p:not(.lead) { color: var(--slate); }

.hero { position: relative; min-height: 800px; padding: 170px 0 0; overflow: hidden; }
.hero::before { position: absolute; inset: 0; background: radial-gradient(circle at 84% 46%, rgba(161, 29, 46, .14), transparent 35%); content: ""; pointer-events: none; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(340px, .97fr); align-items: center; gap: clamp(44px, 7vw, 110px); min-height: 625px; }
.hero-copy, .hero-visual, .section-copy { min-width: 0; }
.hero-copy { padding: 40px 0 54px; }
.hero-lead { max-width: 580px; margin-bottom: 36px; color: rgba(245, 243, 239, .76); font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 22px; }
.action-note { color: rgba(245, 243, 239, .5); font-size: .75rem; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 76px; padding-top: 20px; border-top: 1px solid var(--line-dark); }
.hero-proof div { display: grid; gap: 2px; }
.hero-proof strong { color: var(--paper); font-family: var(--serif); font-size: 1.7rem; line-height: 1; }
.hero-proof span { max-width: 120px; color: rgba(245, 243, 239, .55); font-size: .7rem; line-height: 1.35; }
.hero-visual { position: relative; }
.portrait-frame { position: relative; display: grid; place-items: center; width: min(100%, 470px); aspect-ratio: 1; margin: 0 auto; }
.portrait-frame::after { position: absolute; inset: 9%; border: 1px solid rgba(245, 243, 239, .12); border-radius: 50%; content: ""; pointer-events: none; }
.portrait-frame img { position: relative; z-index: 1; width: 78%; height: 78%; border: 10px solid var(--red); border-radius: 50%; object-fit: cover; object-position: 51% 20%; box-shadow: 0 0 0 14px rgba(161, 29, 46, .14), 0 24px 80px rgba(0, 0, 0, .38); filter: saturate(.92) contrast(1.04); }
.portrait-ring { position: absolute; border: 1px solid rgba(194, 44, 63, .6); border-radius: 50%; transform: rotate(-18deg); }
.portrait-ring-outer { inset: 1%; border-right-color: transparent; border-bottom-color: transparent; }
.portrait-ring-inner { inset: 6%; border-left-color: transparent; border-top-color: transparent; transform: rotate(34deg); }
.portrait-tag, .portrait-index { position: absolute; z-index: 2; color: var(--paper); font-family: var(--serif); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.portrait-tag { bottom: 8%; left: 2%; display: flex; align-items: center; gap: 9px; }
.portrait-index { top: 10%; right: 7%; color: var(--red-light); }
.pulse-dot { width: 7px; height: 7px; background: var(--red-light); border-radius: 50%; box-shadow: 0 0 0 5px rgba(194, 44, 63, .16); }
.visual-note { margin: 14px 0 0; color: rgba(245, 243, 239, .46); font-size: .73rem; letter-spacing: .06em; text-transform: uppercase; }

.two-column, .outcome-grid, .trust-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 9vw, 150px); align-items: start; }
.problem-section h2, .trust-section h2 { max-width: 520px; }
.signal-list { margin-top: 42px; border-top: 1px solid var(--line); }
.signal-item { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; padding: 19px 0; border-bottom: 1px solid var(--line); }
.signal-item span, .mini-number, .expertise-number, .method-step > span { color: var(--red); font-family: var(--serif); font-size: .75rem; font-weight: 800; letter-spacing: .1em; }
.signal-item p { margin: 0; color: var(--ink); font-weight: 600; }
.outcome-grid { align-items: end; }
.outcome-statement { position: sticky; top: 110px; }
.outcome-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.mini-card { min-height: 290px; padding: 24px 20px; border-top: 3px solid var(--red); background: var(--white); box-shadow: 0 2px 12px rgba(26, 27, 30, .1); }
.mini-card h3 { margin-top: 58px; font-size: 1.15rem; }
.mini-card p { margin: 0; color: var(--slate); font-size: .92rem; line-height: 1.55; }

.method-section { padding-bottom: 92px; }
.section-heading { margin-bottom: 54px; }
.split-heading { display: flex; align-items: end; justify-content: space-between; gap: 60px; }
.split-heading h2 { margin-bottom: 0; }
.heading-note { max-width: 360px; margin: 0; font-size: .95rem; line-height: 1.6; }
.method-rail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.method-step { min-height: 245px; padding: 30px 30px 30px 0; border-right: 1px solid var(--line-dark); }
.method-step + .method-step { padding-left: 30px; }
.method-step:last-child { border-right: 0; }
.method-step h3 { margin-top: 60px; color: var(--paper); font-size: 1.7rem; }
.method-step p { max-width: 250px; margin-bottom: 0; color: rgba(245, 243, 239, .62); font-size: .95rem; }
.method-footer, .proof-note { display: flex; align-items: center; gap: 12px; margin-top: 28px; color: rgba(245, 243, 239, .52); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.red-square { display: inline-block; width: 9px; height: 9px; background: var(--red-light); flex: 0 0 auto; }

.mode-grid, .expertise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mode-card { display: flex; min-height: 435px; flex-direction: column; padding: 28px; border-top: 3px solid var(--ink); background: var(--paper); }
.mode-card-featured { border-top-color: var(--red); background: var(--ink); color: var(--paper); }
.card-topline { display: flex; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); color: var(--red); font-family: var(--serif); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mode-card-featured .card-topline { border-color: var(--line-dark); color: var(--red-light); }
.mode-card h3 { margin-top: 48px; font-size: 1.8rem; }
.card-promise { min-height: 98px; margin-bottom: 18px; font-family: var(--serif); font-size: 1.08rem; font-weight: 700; line-height: 1.35; }
.mode-card > p:not(.card-promise) { color: var(--slate); font-size: .9rem; }
.mode-card-featured > p:not(.card-promise) { color: rgba(245, 243, 239, .65); }
.card-footer { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); color: var(--slate); font-size: .75rem; font-weight: 600; }
.mode-card-featured .card-footer { border-color: var(--line-dark); color: rgba(245, 243, 239, .58); }
.center-cta { margin-top: 42px; text-align: center; }
.text-link { color: var(--red); font-family: var(--serif); font-size: .9rem; font-weight: 800; }
.text-link:hover { color: var(--red-dark); }

.expertise-card { position: relative; min-height: 285px; padding: 26px; border: 1px solid rgba(26, 27, 30, .18); background: var(--paper); }
.expertise-card::before { position: absolute; top: 0; left: 0; width: 0; height: 3px; background: var(--red); content: ""; transition: width .25s ease; }
.expertise-card:hover::before { width: 100%; }
.expertise-card h3 { max-width: 220px; margin-top: 62px; font-size: 1.55rem; }
.expertise-card p { max-width: 280px; margin-bottom: 0; color: var(--slate); font-size: .92rem; }
.expertise-arrow { position: absolute; right: 26px; bottom: 24px; color: var(--red); font-family: var(--serif); font-weight: 800; }

.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.proof-stat { min-height: 160px; padding: 26px 24px 24px 0; border-right: 1px solid var(--line); }
.proof-stat + .proof-stat { padding-left: 24px; }
.proof-stat:last-child { border-right: 0; }
.proof-stat strong { display: block; margin-bottom: 12px; color: var(--red); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 900; letter-spacing: -.07em; line-height: 1; }
.proof-stat span { display: block; max-width: 175px; color: var(--slate); font-size: .8rem; line-height: 1.45; }
.reference-row { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 30px 0 0; color: var(--slate); font-family: var(--serif); font-size: .88rem; font-weight: 700; }
.reference-row span:not(:last-child)::after { margin-left: 28px; color: var(--red); content: "/"; }
.proof-note { color: var(--slate); }

.trust-copy { max-width: 520px; }
.trust-copy > p { color: var(--slate); font-size: 1.1rem; }
.check-list { display: grid; gap: 14px; margin: 36px 0 0; padding: 0; list-style: none; }
.check-list li { display: flex; align-items: start; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); font-weight: 600; }
.check-list li span { color: var(--red); font-family: var(--serif); font-size: 1.2rem; line-height: 1.3; }

.contact-section { position: relative; padding-bottom: 112px; }
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(44px, 9vw, 140px); align-items: start; }
.contact-copy h2 { max-width: 560px; }
.contact-copy > p:not(.eyebrow) { max-width: 450px; color: rgba(245, 243, 239, .67); font-size: 1.1rem; }
.contact-reassurance { display: flex; align-items: center; gap: 12px; margin-top: 48px; color: rgba(245, 243, 239, .55); font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
.contact-form { padding: 34px; background: var(--paper); color: var(--ink); }
.form-row { display: grid; gap: 7px; margin-bottom: 18px; }
.form-row label { font-family: var(--serif); font-size: .78rem; font-weight: 800; }
.form-row label span { color: var(--slate); font-family: var(--body); font-weight: 400; }
input, select, textarea { width: 100%; border: 1px solid rgba(26, 27, 30, .22); border-radius: 0; background: var(--white); color: var(--ink); padding: 13px 14px; font-size: .95rem; }
input::placeholder, textarea::placeholder { color: #8a8b8d; }
textarea { resize: vertical; }
.form-note { margin: 14px 0 0; color: var(--slate); font-size: .73rem; }
.form-status { min-height: 22px; margin: 12px 0 0; color: var(--red-dark); font-size: .82rem; font-weight: 600; }

.partner-band { overflow: hidden; padding: 78px 0 86px; background: var(--white); border-top: 1px solid var(--line); }
.partner-heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 34px; }
.partner-heading .eyebrow { margin-bottom: 0; }
.partner-heading h2 { max-width: 430px; margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.partner-marquee { position: relative; overflow: hidden; width: 100%; padding: 14px 0; background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.partner-marquee::before, .partner-marquee::after { position: absolute; z-index: 2; top: 0; bottom: 0; width: 12%; content: ""; pointer-events: none; }
.partner-marquee::before { left: 0; background: linear-gradient(90deg, var(--white), transparent); }
.partner-marquee::after { right: 0; background: linear-gradient(270deg, var(--white), transparent); }
.partner-track { display: flex; width: max-content; align-items: center; animation: partner-scroll 32s linear infinite; }
.partner-marquee:hover .partner-track { animation-play-state: paused; }
.partner-set { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 0 clamp(18px, 4vw, 64px); }
.partner-logo { display: grid; place-items: center; flex: 0 0 176px; width: 176px; height: 112px; padding: 18px; background: var(--white); }
.partner-logo img { display: block; width: 88%; height: 78%; margin: auto; object-fit: contain; object-position: center; }
.partner-logo-square { padding: 10px; }
.partner-logo-square img { width: 76px; height: 76px; max-width: none; max-height: none; }
.partner-logo-cara img { width: 84px; height: 84px; }
.partner-logo-digital img { width: 78px; height: 78px; }
@keyframes partner-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 8px)); } }

.site-footer { background: var(--white); border-top: 1px solid var(--line); }
.footer-inner { display: grid; grid-template-columns: 1fr 1.3fr auto; gap: 28px; align-items: center; min-height: 100px; }
.footer-brand { font-size: .95rem; }
.footer-inner p, .footer-legal { margin: 0; color: var(--slate); font-size: .75rem; }
.footer-legal { text-align: right; }

@media (max-width: 1024px) {
  :root { --shell: min(100% - 40px, 760px); }
  .header-inner { grid-template-columns: 1fr auto; }
  .header-location { display: none; }
  .hero { min-height: auto; padding-top: 140px; }
  .hero-grid, .contact-grid { grid-template-columns: 1fr; }
  .hero-grid { gap: 48px; }
  .hero-copy { padding-bottom: 0; }
  .hero-visual { max-width: 540px; }
  .portrait-frame { max-width: 540px; }
  .outcome-grid, .two-column, .trust-grid { gap: 48px; }
  .outcome-statement { position: static; }
  .mode-grid, .expertise-grid { grid-template-columns: 1fr; }
  .mode-card { min-height: auto; }
  .card-promise { min-height: auto; }
  .proof-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-stat:nth-child(2) { border-right: 0; }
  .proof-stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-legal { text-align: left; }
}

@media (max-width: 680px) {
  :root { --shell: calc(100% - 32px); }
  .header-inner { min-height: 72px; }
  .brand { font-size: .9rem; }
  .brand-mark { width: 29px; height: 29px; font-size: .62rem; }
  .button-small { padding: 7px 10px; font-size: .65rem; }
  .section { padding: 76px 0; }
  h1 { font-size: clamp(3rem, 16vw, 4.5rem); }
  h2 { font-size: clamp(2.35rem, 12vw, 3.6rem); }
  .hero { padding-top: 116px; }
  .hero-proof { gap: 18px; margin-top: 52px; }
  .hero-proof strong { font-size: 1.4rem; }
  .hero-proof span { max-width: 95px; font-size: .64rem; }
  .portrait-frame { max-width: 330px; }
  .two-column, .outcome-grid, .trust-grid { grid-template-columns: 1fr; }
  .outcome-cards { grid-template-columns: 1fr; }
  .mini-card { min-height: auto; }
  .mini-card h3 { margin-top: 34px; }
  .split-heading { display: block; }
  .heading-note { margin-top: 24px; }
  .method-rail { grid-template-columns: 1fr; }
  .method-step, .method-step + .method-step { min-height: auto; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .method-step:last-child { border-bottom: 0; }
  .method-step h3 { margin-top: 34px; }
  .proof-grid { grid-template-columns: 1fr 1fr; }
  .proof-stat { min-height: 135px; padding: 20px 12px 20px 0; }
  .proof-stat + .proof-stat { padding-left: 12px; }
  .proof-stat strong { font-size: 2.4rem; }
  .proof-stat span { font-size: .72rem; }
  .reference-row { gap: 8px 14px; font-size: .78rem; }
  .reference-row span:not(:last-child)::after { margin-left: 14px; }
  .contact-form { padding: 24px 18px; }
  .partner-band { padding: 64px 0 70px; }
  .partner-heading { display: block; }
  .partner-heading h2 { margin-top: 22px; }
  .partner-logo { width: 142px; height: 92px; }
  .partner-logo-square img { width: 64px; height: 64px; }
  .partner-logo-cara img { width: 68px; height: 68px; }
  .partner-logo-digital img { width: 66px; height: 66px; }
  .partner-track { animation-duration: 25s; }
  .footer-inner { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; }
  .footer-legal { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .partner-track { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
