:root {
  --ink: #10221b;
  --forest: #0c3428;
  --green: #167653;
  --green-dark: #0e593d;
  --green-pale: #e8f4ed;
  --paper: #f7f8f3;
  --line: #dce4dc;
  --muted: #637169;
  --soft: #f0f4ee;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.6 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid #61bd91; outline-offset: 3px; border-radius: 4px; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 20; padding: 10px 14px; background: var(--forest); color: white; border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

header, footer, .hero, .professional { max-width: 1160px; margin: auto; }
header { height: 80px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; font-size: 14px; font-weight: 700; }
.site-header { border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 8px; font-size: 23px; font-weight: 800; letter-spacing: -.06em; }
.brand img { width: 30px; height: 30px; border-radius: 9px; object-fit: cover; }
nav { display: flex; gap: 29px; color: var(--muted); font-weight: 500; }
.site-header nav a { position: relative; }
.site-header nav a[aria-current="page"] { color: var(--ink); font-weight: 750; }
.site-header nav a[aria-current="page"]::after { content: ""; position: absolute; right: 0; bottom: -10px; left: 0; height: 2px; border-radius: 2px; background: var(--green); }
.header-contact { color: var(--green); }

.hero { min-height: 580px; padding: 65px 70px 82px; display: grid; grid-template-columns: 1.07fr .93fr; gap: 80px; align-items: center; }
.eyebrow, .tag { margin: 0 0 16px; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .13em; }
h1, h2 { margin: 0; font-size: clamp(42px, 5vw, 68px); line-height: .98; letter-spacing: -.065em; }
.lead { max-width: 520px; margin: 27px 0; color: var(--muted); font-size: 18px; }
.actions { display: flex; gap: 13px; flex-wrap: wrap; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 14px 19px; border: 1px solid var(--line); border-radius: 12px; background: white; font-size: 14px; font-weight: 750; line-height: 1.2; }
.primary { border-color: var(--green); background: var(--green); color: white; box-shadow: 0 9px 17px #16765333; }
.primary:hover { background: var(--green-dark); }
small { display: block; margin-top: 18px; color: var(--muted); font-size: 12px; }
.request { padding: 19px; border: 1px solid #e3e8e1; border-radius: 25px; background: white; box-shadow: 0 24px 55px #1636291f; transform: rotate(2deg); }
.request-head { display: flex; gap: 8px; color: #5a6a61; font-size: 12px; }
.request-head:first-letter { color: var(--green); }
.request-head em { margin-left: auto; font-style: normal; letter-spacing: 2px; }
.issue { display: grid; place-items: center; width: 46px; height: 46px; margin-top: 27px; border-radius: 15px; background: #dff3e8; color: var(--green); font-size: 26px; }
.tag { margin: 17px 0 4px; font-size: 10px; }
.request h2 { font-size: 23px; }
.muted { margin: 4px 0 18px; color: var(--muted); font-size: 12px; }
.person { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-top: 1px solid #edf0ec; }
.person > b { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #c4e9d7; color: #155f44; font-size: 11px; }
.person > b.tan { background: #e5dbc5; color: #725d2f; }
.person span { display: grid; font-size: 12px; }
.person small { margin: 0; font-size: 10px; }
.person .add-professional {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-left: auto;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  background: linear-gradient(145deg, #155f47, var(--forest));
  color: white;
  box-shadow: 0 5px 12px rgba(12, 52, 40, .2), inset 0 1px 0 rgba(255, 255, 255, .18);
}
.person .add-professional svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.steps { padding: 105px max(70px, calc((100vw - 1020px)/2)); background: #ecf2ec; }
.inner { max-width: 1020px; margin: auto; }
.steps h2 { font-size: 48px; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 47px; }
.grid article { min-height: 205px; padding: 28px; border-radius: 18px; background: white; }
.grid article > b { color: var(--green); font-size: 13px; }
h3 { margin: 26px 0 8px; font-size: 20px; letter-spacing: -.04em; }
.grid p, .professional p { margin: 0; color: var(--muted); font-size: 14px; }
.professional { padding: 105px 70px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: center; }
.professional h2 { font-size: 52px; }
.professional blockquote { margin: 0; padding: 43px; border-radius: 21px; background: var(--forest); color: white; font-size: 23px; line-height: 1.2; letter-spacing: -.035em; }
.professional blockquote small { margin-top: 25px; color: #9ecbb6; }
.link { color: var(--green); font-size: 14px; font-weight: 750; }
.cta { max-width: 1104px; margin: 0 auto 70px; padding: 81px 30px; border-radius: 25px; background: var(--green); color: white; text-align: center; }
.cta .eyebrow { color: #b9ebd2; }
.cta h2 { max-width: 650px; margin: auto; font-size: 49px; }
.white { margin-top: 27px; border: 0; color: var(--forest); }
footer { padding: 38px 28px 48px; display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 25px; align-items: start; border-top: 1px solid var(--line); }
footer .brand { font-size: 20px; }
footer p, footer div { margin: 4px 0; color: var(--muted); font-size: 12px; }
footer div { display: flex; justify-content: flex-end; gap: 18px; flex-wrap: wrap; }

/* Páginas legales */
.legal-page { max-width: 1160px; margin: 0 auto; padding: 58px 28px 110px; }
.legal-hero { position: relative; overflow: hidden; min-height: 440px; padding: 64px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 64px; align-items: center; border-radius: 30px; background: var(--forest); color: white; }
.legal-hero::after { content: ""; position: absolute; top: -150px; right: -120px; width: 330px; height: 330px; border: 70px solid #2f7f622e; border-radius: 50%; }
.legal-hero > * { position: relative; z-index: 1; }
.legal-hero .eyebrow { color: #8ed6b5; }
.legal-hero h1 { max-width: 690px; font-size: clamp(44px, 5vw, 68px); }
.legal-intro { max-width: 690px; margin: 25px 0 0; color: #c9ded4; font-size: 18px; line-height: 1.65; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.legal-meta span { padding: 7px 12px; border: 1px solid #ffffff2b; border-radius: 999px; color: #bcd4c9; font-size: 12px; }
.summary-card { margin: 0; padding: 28px; border: 1px solid #ffffff24; border-radius: 20px; background: #ffffff0d; backdrop-filter: blur(8px); }
.summary-kicker { margin: 0 0 18px; color: #8ed6b5; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.check-list { display: grid; gap: 15px; margin: 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 28px; color: #edf7f2; font-size: 14px; }
.check-list li::before { content: "✓"; position: absolute; top: 1px; left: 0; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #70cca1; color: var(--forest); font-size: 11px; font-weight: 900; }
.legal-layout { display: grid; grid-template-columns: 220px minmax(0, 780px); justify-content: center; gap: 70px; margin-top: 78px; }
.legal-toc { position: sticky; top: 25px; align-self: start; padding: 20px 0; }
.legal-toc > p { margin: 0 0 15px; color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.legal-toc nav { display: grid; gap: 2px; }
.legal-toc a { padding: 6px 0; color: var(--muted); font-size: 13px; }
.legal-toc a:hover { color: var(--green); }
.legal-document section { position: relative; margin-bottom: 56px; padding: 0 0 56px; border-bottom: 1px solid var(--line); scroll-margin-top: 30px; }
.legal-document section:last-child { margin-bottom: 0; border: 0; }
.section-number { display: block; margin-bottom: 10px; color: var(--green); font-size: 12px; font-weight: 850; letter-spacing: .12em; }
.legal-document h2 { margin: 0 0 22px; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; letter-spacing: -.045em; }
.legal-document h3 { margin: 27px 0 8px; font-size: 19px; }
.legal-document p, .legal-document li { color: #415148; }
.legal-document p { margin: 0 0 17px; }
.legal-document ul { display: grid; gap: 10px; padding-left: 22px; }
.legal-document a { color: var(--green); font-weight: 700; text-decoration: underline; text-decoration-color: #16765355; text-underline-offset: 3px; }
.info-panel, .callout, .fine-print { padding: 20px 22px; border-radius: 14px; background: var(--soft); }
.info-panel { margin-top: 25px; }
.info-panel p { margin: 4px 0; font-size: 14px; }
.callout { margin: 26px 0 0; border-left: 4px solid var(--green); }
.fine-print { margin-top: 24px !important; font-size: 14px; }
.role-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.role-card { padding: 23px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.role-card h3 { margin: 6px 0 10px; }
.role-card p { margin: 0; font-size: 14px; }
.role-label { color: var(--green); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.provider-list { margin: 24px 0; display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; }
.provider-list > div { padding: 18px 20px; display: grid; grid-template-columns: 145px 1fr; gap: 20px; border-bottom: 1px solid var(--line); }
.provider-list > div:last-child { border: 0; }
.provider-list strong { color: var(--ink); }
.provider-list span { color: var(--muted); font-size: 14px; }
.action-panel { margin: 26px 0; padding: 25px; display: flex; justify-content: space-between; align-items: center; gap: 25px; border-radius: 17px; background: var(--green-pale); }
.action-panel h3 { margin: 0 0 5px; }
.action-panel p { margin: 0; font-size: 14px; }
.action-panel .button { flex: 0 0 auto; color: white; text-decoration: none; }
.process-list { margin: 25px 0; padding: 0; list-style: none; counter-reset: process; }
.process-list li { position: relative; min-height: 50px; padding: 2px 0 20px 52px; counter-increment: process; }
.process-list li::before { content: counter(process); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #bcd7c8; border-radius: 10px; background: var(--green-pale); color: var(--green); font-size: 12px; font-weight: 850; }
.highlight-rule { margin: 24px 0; padding: 28px; display: grid; gap: 6px; border-radius: 18px; background: var(--forest); color: white; }
.highlight-rule span { color: #8ed6b5; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.highlight-rule strong { font-size: 30px; letter-spacing: -.04em; }
.highlight-rule p { margin: 0; color: #c9ded4; font-size: 14px; }
.rules-table { margin: 25px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; }
.rules-row { display: grid; grid-template-columns: 1.15fr .85fr; }
.rules-row + .rules-row { border-top: 1px solid var(--line); }
.rules-row span { padding: 16px 18px; color: #415148; font-size: 14px; }
.rules-row span + span { border-left: 1px solid var(--line); }
.rules-head { background: var(--soft); }
.rules-head span { color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }

.legal { max-width: 780px; margin: 0 auto; padding: 82px 30px 100px; }
.legal h1 { font-size: 54px; }
.legal h2 { margin: 42px 0 10px; font-size: 25px; letter-spacing: -.04em; }
.legal p { color: #425148; }
.legal .legal-date, .legal-note { margin: 16px 0 35px; color: var(--muted); font-size: 13px; }
.legal a { color: var(--green); font-weight: 700; }
.legal-note { margin-top: 48px; padding: 17px; border-radius: 10px; background: #ecf2ec; }

@media (max-width: 900px) {
  .legal-hero { padding: 50px; grid-template-columns: 1fr; gap: 36px; }
  .summary-card { max-width: 600px; }
  .legal-layout { max-width: 780px; margin-right: auto; margin-left: auto; grid-template-columns: 1fr; gap: 38px; }
  .legal-toc { position: static; padding: 0; }
  .legal-toc nav { grid-template-columns: repeat(3, 1fr); gap: 5px 18px; }
}

@media (max-width: 760px) {
  header { height: 66px; padding: 0 20px; }
  header nav, header > a:not(.brand) { display: none; }
  .site-header nav { display: flex; gap: 16px; font-size: 12px; }
  .site-header nav a:last-child { display: none; }
  .site-header nav a[aria-current="page"]::after { bottom: -7px; }
  .hero { min-height: auto; padding: 56px 25px 67px; grid-template-columns: 1fr; gap: 44px; }
  h1 { font-size: 48px; }
  .request { max-width: 390px; width: 100%; margin: auto; }
  .steps, .professional { padding: 75px 25px; }
  .steps h2, .professional h2, .cta h2 { font-size: 38px; }
  .grid, .professional { grid-template-columns: 1fr; }
  .grid { margin-top: 33px; }
  .professional { gap: 35px; }
  .cta { margin: 0 14px 52px; padding: 61px 22px; }
  footer { padding: 32px 25px; grid-template-columns: 1fr; }
  footer div { justify-content: flex-start; }
  .legal { padding: 54px 25px 75px; }
  .legal h1 { font-size: 42px; }
  .legal-page { padding: 28px 15px 75px; }
  .legal-hero { min-height: auto; padding: 35px 25px; border-radius: 22px; }
  .legal-hero h1 { font-size: 42px; }
  .legal-intro { font-size: 16px; }
  .summary-card { padding: 22px; }
  .legal-layout { margin-top: 45px; padding: 0 10px; }
  .legal-toc nav { grid-template-columns: repeat(2, 1fr); }
  .role-grid { grid-template-columns: 1fr; }
  .provider-list > div { grid-template-columns: 1fr; gap: 3px; }
  .action-panel { align-items: stretch; flex-direction: column; }
  .rules-row { grid-template-columns: 1fr; }
  .rules-row span + span { padding-top: 10px; border-top: 1px dashed var(--line); border-left: 0; }
  .rules-head { display: none; }
}

@media print {
  body { background: white; font-size: 12px; }
  .site-header, footer, .legal-toc, .skip-link, .action-panel .button { display: none; }
  .legal-page { max-width: none; padding: 0; }
  .legal-hero { min-height: auto; padding: 30px; border: 1px solid var(--line); background: white; color: var(--ink); }
  .legal-hero .eyebrow, .legal-hero .legal-intro, .legal-meta span, .summary-card li { color: var(--ink); }
  .summary-card { border-color: var(--line); }
  .legal-layout { display: block; margin-top: 35px; }
  .legal-document section { margin-bottom: 28px; padding-bottom: 28px; break-inside: avoid; }
}

/* Landing premium */
.landing-body {
  overflow-x: hidden;
  background: var(--paper);
}

.landing-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  max-width: none;
  height: auto;
  padding: 0;
  border-bottom: 1px solid transparent;
  background: rgba(247, 248, 243, .76);
  backdrop-filter: blur(0);
  transition: background 260ms ease, border-color 260ms ease, backdrop-filter 260ms ease, box-shadow 260ms ease;
}

.landing-header.is-scrolled {
  border-bottom-color: rgba(16, 34, 27, .08);
  background: rgba(247, 248, 243, .94);
  box-shadow: 0 10px 30px rgba(16, 34, 27, .035);
  backdrop-filter: blur(14px);
}

.header-inner {
  width: min(100% - 64px, 1240px);
  height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.landing-header nav a,
.site-footer a {
  position: relative;
  transition: color 220ms ease, opacity 220ms ease;
}

.landing-header nav a::after,
.site-footer div a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 1px;
  background: var(--green);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 240ms ease;
}

.landing-header nav a:hover,
.site-footer a:hover { color: var(--green); }
.landing-header nav a:hover::after,
.site-footer div a:hover::after { transform: scaleX(1); transform-origin: left; }

.landing-body .brand img {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  box-shadow: 0 5px 14px rgba(22, 118, 83, .18);
}

.landing-body .hero {
  position: relative;
  width: min(100% - 64px, 1240px);
  max-width: 1240px;
  min-height: 690px;
  margin: 0 auto;
  padding: 72px 0 98px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(480px, 1.05fr);
  gap: 58px;
  align-items: center;
}

.hero-copy { position: relative; z-index: 3; min-width: 0; }
.hero-copy h1 {
  max-width: 650px;
  font-size: clamp(56px, 5.15vw, 72px);
  line-height: .98;
  letter-spacing: -.068em;
  text-wrap: balance;
}

.landing-body .eyebrow { margin-bottom: 18px; letter-spacing: .16em; }
.hero-copy .lead { max-width: 565px; margin: 30px 0; font-size: clamp(17px, 1.45vw, 19px); line-height: 1.68; }
.landing-body .actions { gap: 12px; }
.landing-body .button {
  min-height: 50px;
  padding: 14px 20px;
  border-radius: 13px;
  transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, border-color 220ms ease;
}
.landing-body .button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16, 34, 27, .1); }
.landing-body .button:active { transform: translateY(0) scale(.98); }
.landing-body .button span,
.landing-body .link span { transition: transform 220ms ease; }
.landing-body .button:hover span,
.landing-body .link:hover span { transform: translateX(3px); }
.landing-body .primary { box-shadow: 0 12px 25px rgba(22, 118, 83, .22); }

.availability { display: flex; align-items: center; gap: 9px; margin-top: 20px; }
.availability > span { width: 7px; height: 7px; border-radius: 50%; background: #47a878; box-shadow: 0 0 0 4px rgba(71, 168, 120, .12); }

.hero-visual {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 535px;
  isolation: isolate;
}

.hero-halo,
.visual-halo {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(32, 130, 92, .11), rgba(32, 130, 92, 0) 68%);
  pointer-events: none;
}
.hero-halo { inset: 3% -8% -8% 2%; }
.hero-home-layer {
  position: absolute;
  z-index: 0;
  top: -18px;
  right: -45px;
  width: min(90%, 500px);
  transform: translate3d(var(--layer-x, 0), var(--layer-y, 0), 0);
  transition: transform 180ms ease-out;
}
.hero-home { width: 100%; height: auto; filter: drop-shadow(0 28px 34px rgba(15, 54, 41, .13)); animation: soft-float 6.5s ease-in-out infinite alternate; }

.request-card {
  position: absolute;
  z-index: 2;
  top: 150px;
  left: 20px;
  width: min(64%, 350px);
  padding: 20px;
  border: 1px solid rgba(16, 34, 27, .08);
  border-radius: 25px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 28px 65px rgba(16, 54, 41, .17);
  transform: translate3d(var(--layer-x, 0), var(--layer-y, 0), 0) rotate(-1.5deg);
  transition: transform 180ms ease-out;
}
.request-head { display: flex; align-items: center; gap: 8px; color: #5a6a61; font-size: 12px; }
.request-head > span:last-child { margin-left: auto; letter-spacing: 2px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #39a875; box-shadow: 0 0 0 4px rgba(57, 168, 117, .1); }
.request-category-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-top: 22px;
  border: 1px solid rgba(22, 118, 83, .08);
  border-radius: 15px;
  background: linear-gradient(145deg, #e8f7ef, #d9efe4);
  color: var(--green);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75), 0 7px 15px rgba(22, 118, 83, .08);
}
.request-category-icon svg { width: 22px; height: 22px; fill: currentColor; filter: drop-shadow(0 2px 2px rgba(22, 118, 83, .12)); }
.request-card .tag { margin: 15px 0 4px; font-size: 10px; }
.request-card h2 { font-size: 24px; line-height: 1.1; letter-spacing: -.045em; }
.request-card .muted { margin: 6px 0 17px; }

.match-chip {
  position: absolute;
  z-index: 3;
  right: -2px;
  bottom: 18px;
  max-width: 245px;
  padding: 12px 15px;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(16, 34, 27, .08);
  border-radius: 16px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 18px 42px rgba(16, 54, 41, .13);
  transform: translate3d(var(--layer-x, 0), var(--layer-y, 0), 0);
  transition: transform 180ms ease-out;
}
.match-chip > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 50%; background: var(--green); color: white; font-weight: 900; }
.match-chip div { display: grid; }
.match-chip strong { font-size: 12px; }
.match-chip small { margin: 1px 0 0; font-size: 10px; }

.landing-body .steps {
  padding: 112px 32px 120px;
  background: #eef4ee;
}
.landing-body .inner { max-width: 1180px; }
.section-heading { max-width: 720px; }
.landing-body .steps h2,
.landing-body .professional h2,
.trust-section blockquote p,
.landing-body .cta h2 { font-size: clamp(42px, 4.4vw, 54px); line-height: 1.02; letter-spacing: -.055em; }
.section-heading > p:last-child { max-width: 620px; margin: 22px 0 0; color: var(--muted); font-size: 17px; }

.process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 54px; }
.process-card {
  position: relative;
  min-height: 420px;
  padding: 25px 26px 29px;
  overflow: hidden;
  border: 1px solid rgba(16, 34, 27, .075);
  border-radius: 22px;
  background: white;
  box-shadow: 0 14px 40px rgba(16, 34, 27, .045);
  transition: transform 350ms cubic-bezier(.22, 1, .36, 1), border-color 350ms ease, box-shadow 350ms ease;
}
.process-card:hover { transform: translateY(-4px); border-color: rgba(22, 118, 83, .2); box-shadow: 0 23px 48px rgba(16, 54, 41, .09); }
.process-top { position: relative; height: 210px; }
.process-top > span { position: absolute; z-index: 2; top: 0; left: 0; color: var(--green); font-size: 13px; font-weight: 850; letter-spacing: .08em; }
.process-top img { position: absolute; top: -48px; right: -32px; width: 235px; height: 235px; object-fit: contain; transition: transform 350ms cubic-bezier(.22, 1, .36, 1); }
.process-card:nth-child(2) .process-top img { width: 250px; height: 250px; top: -42px; right: -30px; }
.process-card:first-child .process-top img { top: -14px; right: -18px; width: 225px; height: 225px; }
.process-card:hover img { transform: translateY(-3px) rotate(1deg); }
.process-card h3 { margin: 9px 0 10px; font-size: 23px; }
.process-card p { margin: 0; color: var(--muted); font-size: 14px; }

.landing-body .professional {
  width: min(100% - 64px, 1180px);
  max-width: 1180px;
  padding: 118px 0;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  gap: 70px;
}
.professional-copy .lead { max-width: 590px; margin: 25px 0; font-size: 17px; }
.benefit-list { margin: 27px 0 30px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 18px; list-style: none; }
.benefit-list li { position: relative; padding-left: 24px; color: #415148; font-size: 14px; font-weight: 650; }
.benefit-list li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 900; }
.landing-body .link { display: inline-flex; align-items: center; gap: 8px; }
.professional-visual { position: relative; min-height: 440px; display: grid; place-items: center; }
.visual-halo { inset: 4% -12% -6%; }
.professional-visual img { position: relative; z-index: 1; width: min(125%, 580px); height: auto; border-radius: 28px; filter: drop-shadow(0 25px 30px rgba(16, 54, 41, .12)); }
.opportunity-pill { position: absolute; z-index: 2; right: -5px; bottom: 45px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--green-dark); box-shadow: 0 14px 30px rgba(16, 54, 41, .1); font-size: 12px; font-weight: 800; }

.trust-section { width: min(100% - 64px, 1120px); margin: 0 auto 96px; }
.trust-section blockquote { position: relative; margin: 0; padding: 62px 70px; overflow: hidden; border-radius: 26px; background: var(--forest); color: white; box-shadow: 0 28px 60px rgba(12, 52, 40, .14); }
.trust-section blockquote::after { content: ""; position: absolute; top: -120px; right: -100px; width: 330px; height: 330px; border: 70px solid rgba(92, 178, 137, .08); border-radius: 50%; }
.trust-section blockquote p { position: relative; z-index: 1; max-width: 820px; margin: 0; font-size: clamp(30px, 3.5vw, 45px); }
.trust-section blockquote footer { position: relative; z-index: 1; max-width: none; margin: 26px 0 0; padding: 0; display: block; border: 0; color: #9ecbb6; font-size: 13px; font-weight: 750; }
.quote-mark { position: absolute; top: -26px; left: 40px; color: rgba(142, 214, 181, .13); font: 180px/1 Georgia, serif; }

.landing-body .cta {
  position: relative;
  width: min(100% - 48px, 1120px);
  max-width: 1120px;
  min-height: 420px;
  margin: 0 auto 76px;
  padding: 75px 64px;
  overflow: hidden;
  display: flex;
  align-items: center;
  border-radius: 28px;
  background: radial-gradient(circle at 86% 28%, rgba(185, 235, 210, .16), transparent 36%), var(--green);
  text-align: left;
}
.cta-copy { position: relative; z-index: 2; max-width: 650px; }
.landing-body .cta h2 { margin: 0; }
.landing-body .cta .white { margin-top: 30px; }
.landing-body .cta > img { position: absolute; z-index: 1; right: -120px; bottom: -155px; width: 500px; height: 500px; object-fit: contain; opacity: .25; filter: saturate(.7); }

.site-footer {
  width: min(100% - 56px, 1160px);
  max-width: 1160px;
  margin: 0 auto;
  padding: 38px 0 48px;
}

.hero-enter { opacity: 0; animation: hero-in 680ms cubic-bezier(.22, 1, .36, 1) forwards; }
.hero-enter-1 { animation-delay: 0ms; }
.hero-enter-2 { animation-delay: 100ms; }
.hero-enter-3 { animation-delay: 220ms; }
.hero-enter-4 { animation-delay: 320ms; }
.hero-enter-visual { animation-delay: 330ms; }

.has-js [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity 620ms cubic-bezier(.22, 1, .36, 1), transform 620ms cubic-bezier(.22, 1, .36, 1); transition-delay: var(--reveal-delay, 0ms); }
.has-js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@keyframes hero-in {
  from { opacity: 0; transform: translateY(16px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes soft-float {
  from { transform: translateY(-2px); }
  to { transform: translateY(4px); }
}

@media (max-width: 1100px) {
  .header-inner, .landing-body .hero, .landing-body .professional { width: min(100% - 48px, 1000px); }
  .landing-body .hero { grid-template-columns: minmax(0, .95fr) minmax(410px, 1.05fr); gap: 34px; }
  .hero-copy h1 { font-size: clamp(50px, 6vw, 64px); }
  .hero-home-layer { right: -25px; }
  .request-card { left: 0; width: 68%; }
  .process-card { min-height: 400px; padding-right: 22px; padding-left: 22px; }
  .process-top img { right: -42px; width: 215px; height: 215px; }
  .landing-body .professional { grid-template-columns: 1fr 420px; gap: 35px; }
}

@media (max-width: 860px) {
  .header-inner { width: min(100% - 48px, 760px); }
  .landing-body .hero { width: min(100% - 48px, 760px); min-height: auto; padding: 64px 0 88px; grid-template-columns: minmax(0, 1fr); gap: 45px; }
  .hero-copy { max-width: 680px; }
  .hero-copy h1 { font-size: clamp(50px, 8.5vw, 66px); }
  .hero-visual { width: min(100%, 620px); min-height: 540px; margin: 0 auto; }
  .hero-home-layer { right: 0; width: 78%; }
  .request-card { left: 4%; width: min(58%, 345px); }
  .match-chip { right: 4%; }
  .process-grid { grid-template-columns: 1fr; }
  .process-card { min-height: 285px; padding-right: min(45%, 300px); }
  .process-top { position: absolute; right: 15px; width: 42%; height: 240px; }
  .process-top > span { right: auto; left: calc(-138% + 16px); }
  .process-top img, .process-card:nth-child(2) .process-top img { top: -25px; right: -20px; width: 245px; height: 245px; }
  .process-card h3 { margin-top: 130px; }
  .landing-body .professional { width: min(100% - 48px, 760px); grid-template-columns: 1fr; gap: 50px; }
  .professional-visual { min-height: 380px; }
  .professional-visual img { width: min(92%, 520px); }
  .trust-section { width: min(100% - 48px, 760px); }
}

@media (max-width: 640px) {
  .landing-body main { width: 100%; overflow: hidden; }
  .landing-header nav, .landing-header .header-contact { display: none; }
  .header-inner { width: calc(100% - 40px); height: 68px; }
  .landing-body .brand { font-size: 21px; }
  .landing-body .brand img { width: 32px; height: 32px; }
  .landing-body .hero { width: 100%; padding: 54px 20px 72px; gap: 35px; }
  .hero-copy, .landing-body .actions { width: 100%; max-width: 100%; }
  .hero-copy h1 { font-size: clamp(42px, 11.2vw, 48px); line-height: 1; overflow-wrap: break-word; }
  .hero-copy .lead { margin: 24px 0; font-size: 16px; }
  .landing-body .actions { display: grid; grid-template-columns: 1fr; }
  .landing-body .button { width: calc(100% - 1px); max-width: 100%; }
  .availability { line-height: 1.45; }
  .hero-visual { width: 100%; max-width: 100%; min-width: 0; min-height: 470px; }
  .hero-home-layer { top: -10px; right: -38px; width: 84%; }
  .request-card { top: 137px; left: 0; width: min(82%, 315px); padding: 17px; border-radius: 21px; }
  .request-card h2 { font-size: 21px; }
  .request-card .person { padding: 9px 0; }
  .match-chip { right: 8px; bottom: 3px; width: 185px; max-width: calc(100% - 24px); padding: 10px 12px; }
  .match-chip small { display: none; }
  .landing-body .steps { padding: 82px 20px 88px; }
  .landing-body .steps h2, .landing-body .professional h2, .landing-body .cta h2 { font-size: clamp(37px, 10vw, 46px); }
  .section-heading > p:last-child { font-size: 15px; }
  .process-grid { margin-top: 38px; }
  .process-card { min-height: 385px; padding: 24px; }
  .process-top { position: relative; right: auto; width: 100%; height: 220px; }
  .process-top > span { right: auto; left: 0; }
  .process-top img, .process-card:nth-child(2) .process-top img { top: -40px; right: -25px; width: 235px; height: 235px; }
  .process-card h3 { margin-top: 6px; }
  .landing-body .professional { width: calc(100% - 40px); padding: 88px 0; }
  .benefit-list { display: grid; }
  .professional-visual { min-height: 310px; }
  .opportunity-pill { right: 0; bottom: 18px; }
  .trust-section { width: calc(100% - 40px); margin-bottom: 72px; }
  .trust-section blockquote { padding: 48px 28px; border-radius: 22px; }
  .trust-section blockquote p { font-size: 31px; }
  .quote-mark { left: 16px; }
  .landing-body .cta { width: calc(100% - 28px); min-height: 430px; margin-bottom: 55px; padding: 54px 27px 135px; align-items: flex-start; border-radius: 23px; }
  .landing-body .cta > img { right: -102px; bottom: -185px; width: 420px; height: 420px; }
  .site-footer { width: calc(100% - 40px); padding: 32px 0 40px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-enter { opacity: 1; animation: none; }
  .hero-home { animation: none; }
  .has-js [data-reveal], .has-js [data-reveal].is-visible { opacity: 1; transform: none; transition: none; }
  .hero-home-layer, .request-card, .match-chip { transition: none; }
  .landing-body .button, .process-card, .process-top img { transition-duration: .01ms; }
}
