:root {
  --container: 1180px;
  --header-h: 84px;
  --green-deep: #164F38;
  --green-mid: #3A7F52;
  --green-light: #6FAE6D;
  --mist: #F5F7F2;
  --gray-text: #55595C;
  --green-darker: #0F3A29;
  --green-100: #E3EEE5;
  --green-50: #F0F6F1;
  --border-subtle: #E3E8E2;
  --text-heading: var(--green-deep);
  --text-body: #3B4043;
  --text-muted: var(--gray-text);
  --shadow-card: 0 1px 2px rgba(22,79,56,.06), 0 4px 14px rgba(22,79,56,.07);
  --shadow-raised: 0 6px 24px rgba(22,79,56,.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body { margin: 0; color: var(--text-body, #3b4043); background: #fff; font-family: 'Poppins', system-ui, sans-serif; font-size: 15px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section { padding: 112px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 999; background: #fff; color: #164F38; padding: 10px 16px; border-radius: 8px; box-shadow: var(--shadow-raised); }
.skip-link:focus { top: 12px; }

.site-header { height: var(--header-h); position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid transparent; transition: box-shadow .2s ease, border-color .2s ease; }
.site-header.scrolled { box-shadow: 0 8px 30px rgba(22,79,56,.08); border-color: #E3E8E2; }
.nav-wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand img { width: 222px; height: auto; }
.main-nav { display: flex; align-items: center; gap: 32px; }
.main-nav > a:not(.btn) { color: #55595C; font-size: 14px; font-weight: 500; position: relative; }
.main-nav > a:not(.btn)::after { content: ''; position: absolute; height: 2px; left: 0; right: 100%; bottom: -8px; background: #3A7F52; transition: right .2s ease; }
.main-nav > a:not(.btn):hover::after, .main-nav > a:not(.btn):focus-visible::after { right: 0; }
.main-nav > a[aria-current="page"]:not(.btn) { color: #164F38; }
.main-nav > a[aria-current="page"]:not(.btn)::after { right: 0; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 10px; }
.menu-toggle span:not(.sr-only) { display: block; width: 24px; height: 2px; background: #164F38; margin: 5px 0; transition: transform .2s ease, opacity .2s ease; }

.btn { border: 0; border-radius: 999px; background: #164F38; color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 52px; padding: 0 24px; font-weight: 600; line-height: 1.2; box-shadow: 0 8px 20px rgba(22,79,56,.16); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.btn:hover { background: #0F3A29; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(22,79,56,.22); }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(58,127,82,.35); outline-offset: 3px; }
.btn-small { min-height: 44px; padding: 0 20px; font-size: 13px; }
.text-link { color: #164F38; font-weight: 600; display: inline-flex; align-items: center; gap: 10px; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateY(3px); }
.eyebrow { margin: 0 0 20px; color: #2F7047; text-transform: uppercase; font-size: 12px; font-weight: 600; letter-spacing: .14em; display: flex; align-items: center; gap: 10px; }
.eyebrow span { width: 28px; height: 1px; background: currentColor; }
.eyebrow.light { color: #a9d19e; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: #164F38; line-height: 1.14; }
h1 { font-size: clamp(42px, 5.2vw, 72px); letter-spacing: -.045em; margin-bottom: 26px; font-weight: 600; }
h1 em { font-style: normal; color: #3A7F52; }
h2 { font-size: clamp(34px, 4vw, 52px); letter-spacing: -.035em; margin-bottom: 0; font-weight: 600; }
h3 { font-size: 21px; letter-spacing: -.02em; }

.hero { position: relative; min-height: calc(100vh - var(--header-h)); display: flex; align-items: center; overflow: hidden; background: linear-gradient(110deg, #fff 0%, #fff 55%, #F5F7F2 55%, #F5F7F2 100%); }
.hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: 74px; align-items: center; }
.hero-lead { max-width: 630px; color: #55595C; font-size: 17px; line-height: 1.75; margin-bottom: 34px; }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.hero-proof { display: flex; margin-top: 48px; padding-top: 28px; border-top: 1px solid #E3E8E2; }
.hero-proof > div { display: flex; align-items: center; gap: 10px; padding-right: 30px; margin-right: 30px; border-right: 1px solid #E3E8E2; }
.hero-proof > div:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.hero-proof strong { color: #164F38; font-size: 27px; line-height: 1; letter-spacing: -.03em; }
.hero-proof div:last-child strong { font-size: 15px; }
.hero-proof span { font-size: 11px; color: #777; line-height: 1.35; }
.hero-visual { position: relative; height: 570px; background: #fff; border-radius: 30px; box-shadow: 0 22px 70px rgba(22,79,56,.12); border: 1px solid rgba(22,79,56,.08); overflow: hidden; }
.hero-visual::before { content: ''; position: absolute; width: 320px; height: 320px; border-radius: 50%; background: #F0F6F1; left: 50%; top: 51%; transform: translate(-50%,-50%); }
.visual-topline { height: 64px; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #E3E8E2; color: #164F38; font-size: 13px; font-weight: 600; }
.status { background: #F0F6F1; color: #3A7F52; border-radius: 99px; padding: 5px 11px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.status i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; background: #6FAE6D; margin-right: 5px; }
.project-core { position: absolute; z-index: 3; left: 50%; top: 49%; transform: translate(-50%,-50%); text-align: center; display: flex; flex-direction: column; align-items: center; }
.core-mark { width: 98px; height: 88px; border-radius: 25px; overflow: hidden; box-shadow: 0 10px 30px rgba(22,79,56,.17); margin-bottom: 13px; }
.core-mark img { width: 100%; height: 100%; object-fit: cover; }
.project-core > span { color: #164F38; font-weight: 700; letter-spacing: .16em; font-size: 13px; }
.project-core small { color: #7a817d; font-size: 10px; }
.expertise-node { position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #E3E8E2; border-radius: 14px; padding: 12px 15px; min-width: 186px; box-shadow: 0 8px 24px rgba(22,79,56,.09); }
.node-structure { top: 112px; left: 32px; }
.node-finance { top: 112px; right: 30px; }
.node-rh { bottom: 28px; left: 50%; transform: translateX(-50%); }
.node-icon { width: 38px; height: 38px; background: #F0F6F1; color: #164F38; border-radius: 10px; display: grid; place-items: center; flex: 0 0 auto; }
.node-icon svg { width: 21px; }
.expertise-node > span:last-child { display: flex; flex-direction: column; line-height: 1.35; }
.expertise-node strong { color: #164F38; font-size: 12px; }
.expertise-node small { color: #777; font-size: 9px; }
.connector-lines { position: absolute; inset: 64px 0 0; width: 100%; height: calc(100% - 64px); z-index: 1; color: #B8CCBC; stroke-width: 1.5; stroke-dasharray: 5 6; }
.hero-orbit { position: absolute; border: 1px solid rgba(111,174,109,.2); border-radius: 42% 58% 53% 47%; pointer-events: none; }
.hero-orbit-one { width: 420px; height: 420px; right: -160px; bottom: -170px; transform: rotate(28deg); }
.hero-orbit-two { width: 190px; height: 190px; left: -90px; top: 90px; transform: rotate(55deg); }

.audience-strip { background: #164F38; color: #fff; }
.audience-grid { min-height: 116px; display: grid; grid-template-columns: 1.15fr repeat(3, 1fr); align-items: center; }
.audience-grid > * { margin: 0; padding: 0 24px; border-right: 1px solid rgba(255,255,255,.17); font-size: 12px; line-height: 1.55; }
.audience-grid > *:first-child { padding-left: 0; font-size: 15px; font-weight: 600; }
.audience-grid > *:last-child { border-right: 0; }
.audience-grid span { display: block; color: #A9D19E; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; font-weight: 600; margin-bottom: 3px; }

.section-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 70px; align-items: end; margin-bottom: 60px; }
.section-head > p { color: #646a67; margin: 0; }
.expertise-section { background: #F5F7F2; }
.expertise-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.expertise-card { position: relative; background: #fff; border: 1px solid #E3E8E2; border-radius: 20px; padding: 34px 30px; overflow: hidden; box-shadow: 0 2px 10px rgba(22,79,56,.03); transition: transform .25s ease, box-shadow .25s ease; }
.expertise-card:hover { transform: translateY(-6px); box-shadow: 0 16px 42px rgba(22,79,56,.11); }
.expertise-card.featured { background: #164F38; color: rgba(255,255,255,.78); border-color: #164F38; transform: translateY(-14px); box-shadow: 0 18px 42px rgba(22,79,56,.2); }
.expertise-card.featured:hover { transform: translateY(-20px); }
.card-number { position: absolute; right: 24px; top: 20px; color: #6C8E78; font-size: 50px; font-weight: 600; line-height: 1; }
.featured .card-number { color: #A9D19E; }
.card-icon { width: 52px; height: 52px; border-radius: 14px; background: #E3EEE5; color: #164F38; display: grid; place-items: center; margin-bottom: 28px; }
.card-icon svg { width: 26px; }
.featured .card-icon { background: rgba(255,255,255,.1); color: #A9D19E; }
.card-label { color: #3A7F52; font-size: 11px; letter-spacing: .12em; font-weight: 600; text-transform: uppercase; margin-bottom: 12px; }
.featured .card-label { color: #A9D19E; }
.expertise-card h3 { font-size: 24px; max-width: 280px; margin-bottom: 16px; }
.featured h3 { color: #fff; }
.expertise-card > p:not(.card-label) { color: #6a716d; min-height: 78px; }
.featured > p:not(.card-label) { color: rgba(255,255,255,.7); }
.expertise-card ul { list-style: none; padding: 22px 0 0; margin: 24px 0 0; border-top: 1px solid #E3E8E2; }
.featured ul { border-top-color: rgba(255,255,255,.15); }
.expertise-card li { position: relative; padding-left: 18px; margin: 8px 0; font-size: 12px; }
.expertise-card li::before { content: ''; position: absolute; left: 0; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: #6FAE6D; }
.card-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 19px; color: #164F38; font-size: 11px; font-weight: 600; }
.featured .card-link { color: #fff; }
.card-link span { transition: transform .2s ease; }
.card-link:hover span { transform: translateX(4px); }

.method-section { background: #164F38; color: rgba(255,255,255,.72); position: relative; overflow: hidden; }
.method-section::after { content: ''; position: absolute; width: 600px; height: 600px; border: 1px solid rgba(255,255,255,.08); border-radius: 45% 55% 42% 58%; left: -300px; bottom: -400px; }
.method-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; position: relative; z-index: 1; }
.method-copy { position: sticky; top: 130px; align-self: start; }
.method-copy h2 { color: #fff; margin-bottom: 30px; }
.method-copy > p:not(.eyebrow) { max-width: 470px; }
.method-copy blockquote { margin: 40px 0 0; padding: 24px 0 0; border-top: 1px solid rgba(255,255,255,.15); color: #A9D19E; font-size: 17px; font-weight: 500; }
.steps { list-style: none; margin: 0; padding: 0; }
.steps li { display: grid; grid-template-columns: 70px 1fr; gap: 22px; padding: 0 0 44px; margin-bottom: 34px; border-bottom: 1px solid rgba(255,255,255,.14); }
.steps li:last-child { margin-bottom: 0; }
.steps > li > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(169,209,158,.45); color: #A9D19E; font-size: 11px; font-weight: 600; }
.steps h3 { color: #fff; font-size: 24px; margin-bottom: 8px; }
.steps p { margin: 0; }

.why-section { background: #fff; }
.benefits-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #E3E8E2; border-bottom: 1px solid #E3E8E2; }
.benefit { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 40px 30px; border-right: 1px solid #E3E8E2; }
.benefit:first-child { padding-left: 0; }
.benefit:last-child { border-right: 0; }
.benefit-index { width: 34px; height: 34px; background: #F0F6F1; color: #3A7F52; border-radius: 9px; display: grid; place-items: center; font-size: 11px; font-weight: 600; }
.benefit h3 { margin-bottom: 12px; }
.benefit p { margin: 0; color: #666e69; font-size: 13px; }
.partner-line { margin-top: 54px; padding: 28px 34px; border: 1px solid #E3E8E2; border-radius: 16px; background: #F5F7F2; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.partner-line p { color: #164F38; font-weight: 600; margin: 0; }
.partner-line div { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.partner-line span { background: #fff; border: 1px solid #E3E8E2; border-radius: 99px; padding: 7px 13px; color: #55595C; font-size: 10px; }

.team-section { background: #F5F7F2; }
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.team-card { background: #fff; border: 1px solid #E3E8E2; border-radius: 18px; overflow: hidden; }
.monogram { height: 185px; display: grid; place-items: center; background: #164F38; color: rgba(255,255,255,.94); font-size: 76px; font-weight: 600; position: relative; }
.monogram::after { content: ''; position: absolute; width: 90px; height: 90px; border: 1px solid rgba(255,255,255,.19); border-radius: 36% 64% 44% 56%; transform: rotate(35deg); }
.monogram.mid { background: #3A7F52; }
.monogram.light-green { background: #6FAE6D; }
.team-copy { padding: 24px 26px 28px; }
.team-copy h3 { margin-bottom: 5px; }
.team-copy p { color: #3A7F52; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 18px; }
.team-copy span { color: #6c726f; font-size: 12px; }

.contact-section { padding: 110px 0; background: #164F38; color: rgba(255,255,255,.72); }
.contact-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 100px; align-items: center; }
.contact-copy h2 { color: #fff; margin-bottom: 26px; }
.contact-copy > p:not(.eyebrow) { font-size: 16px; }
.contact-reassurance { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 38px; }
.contact-reassurance span { display: inline-flex; align-items: center; gap: 7px; color: #fff; font-size: 11px; }
.contact-reassurance svg { width: 16px; color: #A9D19E; stroke-width: 2.4; }
.project-form, .form-result { background: #fff; color: #3B4043; padding: 34px; border-radius: 20px; box-shadow: 0 24px 65px rgba(3,25,17,.24); }
.form-head { display: flex; align-items: center; justify-content: space-between; color: #164F38; font-weight: 600; font-size: 20px; margin-bottom: 26px; }
.form-head small { background: #F0F6F1; color: #2F7047; padding: 4px 10px; border-radius: 99px; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.project-form > label, .field-row label { display: block; color: #164F38; font-size: 11px; font-weight: 600; margin-bottom: 16px; }
input, select, textarea { width: 100%; margin-top: 7px; padding: 12px 13px; color: #3B4043; border: 1px solid #DDE4DE; border-radius: 9px; background: #fff; font-size: 13px; outline: none; transition: border .2s ease, box-shadow .2s ease; }
textarea { resize: vertical; min-height: 86px; }
input:focus, select:focus, textarea:focus { border-color: #3A7F52; box-shadow: 0 0 0 3px rgba(58,127,82,.13); }
.error { color: #A6432F; font-size: 9px; display: none; margin-top: 4px; }
.invalid .error { display: block; }
.invalid input, .invalid select { border-color: #A6432F; }
fieldset { border: 0; padding: 0; margin: 0 0 18px; }
legend { color: #164F38; font-size: 11px; font-weight: 600; margin-bottom: 8px; }
.choice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.choice-grid label { cursor: pointer; }
.choice-grid input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice-grid span { display: block; text-align: center; border: 1px solid #DDE4DE; border-radius: 9px; padding: 10px 5px; font-size: 10px; color: #55595C; transition: all .2s ease; }
.choice-grid input:checked + span { color: #164F38; background: #E3EEE5; border-color: #6FAE6D; font-weight: 600; }
.choice-grid input:focus-visible + span { outline: 3px solid rgba(58,127,82,.35); }
.form-submit { width: 100%; margin-top: 4px; }
.form-note { margin: 12px 0 0; text-align: center; color: #626864; font-size: 10px; }
.form-result { text-align: center; }
.result-icon { width: 58px; height: 58px; margin: 0 auto 18px; border-radius: 50%; background: #E3EEE5; color: #3A7F52; display: grid; place-items: center; }
.result-icon svg { width: 26px; stroke-width: 2.2; }
.form-result h3 { font-size: 28px; margin-bottom: 10px; }
.form-result > p { color: #6A716D; font-size: 12px; }
.form-result pre { text-align: left; white-space: pre-wrap; font-family: inherit; font-size: 11px; background: #F5F7F2; border: 1px solid #E3E8E2; border-radius: 10px; padding: 16px; color: #3B4043; max-height: 180px; overflow: auto; }
.result-actions { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.text-button { border: 0; background: transparent; color: #164F38; font-weight: 600; }

/* Pages intérieures */
.page-hero { position: relative; overflow: hidden; padding: 120px 0 105px; background: linear-gradient(110deg, #fff 0%, #fff 60%, #F5F7F2 60%, #F5F7F2 100%); }
.page-hero::after { content: ''; position: absolute; width: 360px; height: 360px; right: -160px; bottom: -210px; border: 1px solid rgba(111,174,109,.22); border-radius: 43% 57% 48% 52%; transform: rotate(35deg); }
.page-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.25fr .75fr; gap: 90px; align-items: center; }
.page-hero h1, .detail-hero h1 { max-width: 820px; font-size: clamp(44px, 5.4vw, 72px); }
.page-hero-grid > div:first-child > p:last-child, .detail-hero-grid > div:first-child > p { max-width: 720px; color: #626864; font-size: 17px; }
.page-hero-mark { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; transform: rotate(-8deg); }
.page-hero-mark span { aspect-ratio: 1; border: 1px solid #C7D3C9; border-radius: 25px; display: grid; place-items: center; color: #3A7F52; font-size: 30px; font-weight: 600; background: #fff; box-shadow: var(--shadow-card); }
.soft-section { background: #F5F7F2; }
.service-list { display: grid; gap: 22px; }
.service-row { display: grid; grid-template-columns: 80px 1.15fr .85fr; gap: 42px; align-items: start; background: #fff; padding: 45px; border: 1px solid #E3E8E2; border-radius: 20px; box-shadow: var(--shadow-card); }
.service-row-brand { background: #164F38; color: rgba(255,255,255,.75); border-color: #164F38; }
.service-index { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; color: #164F38; background: #E3EEE5; font-size: 13px; font-weight: 600; }
.service-row-brand .service-index { color: #fff; background: rgba(255,255,255,.12); }
.service-row h2 { font-size: 29px; margin-bottom: 18px; }
.service-row-brand h2 { color: #fff; }
.service-row-brand .card-label, .service-row-brand .text-link { color: #A9D19E; }
.service-actions { padding-left: 30px; border-left: 1px solid #E3E8E2; }
.service-row-brand .service-actions { border-color: rgba(255,255,255,.14); }
.check-list { list-style: none; padding: 0; margin: 0 0 25px; }
.check-list li { position: relative; padding-left: 18px; margin: 9px 0; font-size: 12px; }
.check-list li::before { content: ''; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: #6FAE6D; }
.split-callout { display: grid; grid-template-columns: 1fr 1fr; gap: 95px; align-items: center; }
.split-callout > div:last-child p { margin-bottom: 28px; color: #626864; }
.process-band .split-callout > div:last-child p { color: rgba(255,255,255,.72); }

.detail-hero { padding: 105px 0 95px; overflow: hidden; background: #F5F7F2; }
.detail-hero-brand { background: #164F38; color: rgba(255,255,255,.75); }
.detail-hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: center; }
.detail-hero .btn { margin-top: 16px; }
.detail-hero-brand h1 { color: #fff; }
.detail-hero-brand .detail-hero-grid > div:first-child > p { color: rgba(255,255,255,.72); }
.back-link { display: inline-block; margin-bottom: 38px; color: #3A7F52; font-size: 12px; font-weight: 600; }
.detail-hero-brand .back-link { color: #A9D19E; }
.detail-number { justify-self: end; width: min(100%, 360px); aspect-ratio: 1; border: 1px solid #C7D3C9; border-radius: 42% 58% 46% 54%; display: grid; place-items: center; color: #3A7F52; font-size: 105px; font-weight: 600; transform: rotate(8deg); }
.detail-hero-brand .detail-number { color: #A9D19E; border-color: rgba(255,255,255,.18); }
.btn-light { color: #164F38; background: #fff; }
.btn-light:hover { color: #164F38; background: #F0F6F1; }
.scope-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.scope-card { min-height: 235px; padding: 32px; border: 1px solid #E3E8E2; border-radius: 18px; background: #fff; }
.scope-card > span { color: #3A7F52; font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.scope-card h3 { margin: 30px 0 13px; font-size: 24px; }
.scope-card p { color: #646B67; margin: 0; font-size: 13px; }
.process-band, .partner-regulatory { background: #164F38; color: rgba(255,255,255,.72); }
.process-layout, .regulatory-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: center; }
.process-layout h2, .regulatory-grid h2 { color: #fff; margin-bottom: 25px; }
.compact-steps { margin: 0; padding: 0; list-style: none; }
.compact-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.compact-steps li > span { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(169,209,158,.45); border-radius: 50%; color: #A9D19E; font-size: 10px; }
.compact-steps strong { color: #fff; }
.compact-steps p { margin: 3px 0 0; font-size: 12px; }
.regulatory-card { padding: 36px; border-radius: 20px; background: #fff; color: #55595C; box-shadow: 0 24px 65px rgba(3,25,17,.22); }
.regulatory-card h3 { font-size: 29px; margin-bottom: 20px; }
.regulatory-card p { font-size: 13px; }
.regulatory-card a { color: #164F38; font-weight: 600; font-size: 12px; }

.quote-panel { border-radius: 24px; padding: 45px; background: #164F38; color: #fff; box-shadow: var(--shadow-raised); }
.quote-panel blockquote { margin: 0; font-size: 23px; line-height: 1.5; font-weight: 500; }
.process-page { background: #fff; }
.timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid #E3E8E2; }
.timeline li { display: grid; grid-template-columns: 80px 1fr 220px; gap: 42px; align-items: start; padding: 42px 0; border-bottom: 1px solid #E3E8E2; }
.timeline-number { width: 55px; height: 55px; display: grid; place-items: center; border-radius: 50%; background: #E3EEE5; color: #164F38; font-size: 12px; font-weight: 600; }
.timeline h3 { font-size: 25px; margin-bottom: 12px; }
.timeline p { color: #646B67; margin-bottom: 0; }
.timeline-output { padding: 18px; border-radius: 12px; background: #F5F7F2; display: flex; flex-direction: column; gap: 5px; }
.timeline-output strong { color: #3A7F52; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.timeline-output span { color: #164F38; font-size: 11px; font-weight: 600; }
.brand-statement { padding: 40px; border: 1px solid #E3E8E2; border-radius: 24px; background: #fff; display: flex; align-items: center; gap: 28px; box-shadow: var(--shadow-card); }
.brand-statement img { width: 82px; border-radius: 20px; }
.brand-statement p { margin: 0; color: #164F38; font-size: 24px; font-weight: 600; line-height: 1.5; }
.team-grid-detailed .team-copy span { display: block; min-height: 62px; }
.values-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; }
.value-list { border-top: 1px solid #E3E8E2; }
.value-list article { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 26px 0; border-bottom: 1px solid #E3E8E2; }
.value-list article > span { color: #3A7F52; font-size: 11px; font-weight: 600; }
.value-list h3 { margin-bottom: 7px; }
.value-list p { margin: 0; color: #646B67; font-size: 13px; }

.contact-page { padding: 100px 0; background: #164F38; color: rgba(255,255,255,.72); min-height: calc(100vh - var(--header-h)); }
.contact-page .contact-copy h1 { color: #fff; font-size: clamp(42px, 5vw, 64px); }
.contact-side-note { margin-top: 38px; padding: 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
.contact-side-note strong { color: #A9D19E; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.contact-side-note p { margin: 5px 0 0; font-size: 12px; }
.consent-field { display: grid !important; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; color: #626864 !important; font-weight: 400 !important; }
.consent-field input { width: 16px; height: 16px; margin: 2px 0 0; }
.consent-field span { font-size: 10px; line-height: 1.5; }
.consent-field a { color: #164F38; text-decoration: underline; }
.consent-field .error { grid-column: 2; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.legal-hero { padding: 90px 0 70px; background: #F5F7F2; }
.legal-hero h1 { font-size: clamp(42px, 5vw, 64px); }
.draft-notice { max-width: 760px; padding: 18px 20px; border-radius: 12px; border: 1px solid #E7D4A9; background: #FFF8E8; color: #755B24; font-size: 12px; }
.legal-content { max-width: 850px; }
.legal-content h2 { margin: 50px 0 18px; font-size: 27px; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p, .legal-content li { color: #555E59; }
.legal-content mark { padding: 2px 5px; background: #FFF1C9; color: #614C21; }
.legal-callout { margin: 25px 0; padding: 24px; border-left: 4px solid #3A7F52; border-radius: 0 12px 12px 0; background: #F5F7F2; }
.legal-callout a { color: #164F38; text-decoration: underline; }
.error-page { min-height: 100vh; display: grid; place-items: center; background: #F5F7F2; text-align: center; }
.error-page main { padding: 30px; }
.error-page img { width: 230px; margin: 0 auto 50px; }
.error-code { margin: 0; color: #6FAE6D; font-size: 90px; line-height: 1; font-weight: 600; }
.error-page h1 { font-size: 42px; margin: 20px 0 12px; }
.error-page .btn { margin-top: 20px; }

.site-footer { background: #164F38; color: rgba(255,255,255,.62); padding-top: 70px; }
.footer-main { display: grid; grid-template-columns: 1.7fr .7fr .8fr; gap: 70px; padding-bottom: 50px; }
.footer-main > div:first-child img { width: 235px; height: auto; margin-bottom: 18px; }
.footer-main > div:first-child p { max-width: 430px; font-size: 13px; }
.footer-links, .footer-pilars { display: flex; flex-direction: column; gap: 8px; font-size: 12px; }
.footer-links p, .footer-pilars p { color: #A9D19E; text-transform: uppercase; letter-spacing: .1em; font-size: 10px; font-weight: 600; margin-bottom: 8px; }
.footer-links a:hover, .footer-pilars a:hover, .footer-bottom a:hover { color: #fff; }
.footer-bottom { padding: 20px 0 25px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; font-size: 9px; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .22s; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }

@media (max-width: 1020px) {
  .section { padding: 88px 0; }
  .hero { background: linear-gradient(180deg,#fff 0%,#fff 58%,#F5F7F2 58%,#F5F7F2 100%); }
  .hero-grid { grid-template-columns: 1fr; gap: 60px; }
  .hero-copy { max-width: 760px; padding-top: 20px; }
  .hero-visual { max-width: 680px; width: 100%; margin: auto; }
  .audience-grid { grid-template-columns: 1fr 1fr; padding: 24px 0; }
  .audience-grid > * { padding: 14px 20px; border-right: 0; }
  .audience-grid > *:first-child { padding-left: 20px; }
  .section-head { grid-template-columns: 1fr; gap: 24px; }
  .expertise-cards { grid-template-columns: 1fr; gap: 16px; }
  .expertise-card.featured { transform: none; }
  .expertise-card.featured:hover { transform: translateY(-6px); }
  .expertise-card > p:not(.card-label) { min-height: 0; }
  .method-grid, .contact-grid { grid-template-columns: 1fr; gap: 60px; }
  .method-copy { position: static; }
  .benefits-grid, .team-grid { grid-template-columns: 1fr; }
  .benefit { border-right: 0; border-bottom: 1px solid #E3E8E2; padding-left: 0; }
  .benefit:last-child { border-bottom: 0; }
  .partner-line { align-items: flex-start; flex-direction: column; }
  .partner-line div { justify-content: flex-start; }
  .team-card { display: grid; grid-template-columns: 170px 1fr; }
  .monogram { height: auto; min-height: 190px; }
  .page-hero-grid, .detail-hero-grid { grid-template-columns: 1fr; }
  .page-hero-mark { max-width: 440px; }
  .detail-number { justify-self: start; width: 260px; }
  .service-row { grid-template-columns: 70px 1fr; }
  .service-actions { grid-column: 2; padding: 24px 0 0; border-left: 0; border-top: 1px solid #E3E8E2; }
  .service-row-brand .service-actions { border-color: rgba(255,255,255,.14); }
  .process-layout, .regulatory-grid, .values-grid { grid-template-columns: 1fr; gap: 55px; }
  .timeline li { grid-template-columns: 65px 1fr; }
  .timeline-output { grid-column: 2; max-width: 280px; }
}

@media (max-width: 760px) {
  :root { --header-h: 72px; }
  .container { width: min(calc(100% - 32px), var(--container)); }
  .section { padding: 72px 0; }
  .brand img { width: 185px; }
  .menu-toggle { display: block; z-index: 2; }
  .menu-toggle[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-of-type(3) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-of-type(4) { transform: translateY(-7px) rotate(-45deg); }
  .main-nav { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: stretch; padding: 38px 24px; background: #fff; transform: translateX(100%); transition: transform .24s ease; }
  .main-nav.open { transform: translateX(0); }
  .main-nav > a:not(.btn) { font-size: 20px; padding: 12px 0; color: #164F38; }
  h1 { font-size: clamp(39px, 12vw, 55px); }
  h2 { font-size: 36px; }
  .hero { min-height: 0; padding-top: 70px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 18px; }
  .hero-actions .btn { width: 100%; }
  .hero-actions .text-link { justify-content: center; }
  .hero-proof { justify-content: space-between; }
  .hero-proof > div { flex-direction: column; align-items: flex-start; gap: 6px; padding-right: 12px; margin-right: 12px; }
  .hero-proof strong { font-size: 23px; }
  .hero-visual { height: 500px; border-radius: 20px; }
  .visual-topline { height: 58px; }
  .expertise-node { min-width: 0; width: calc(50% - 25px); padding: 9px; gap: 8px; }
  .node-structure { left: 15px; top: 90px; }
  .node-finance { right: 15px; top: 90px; }
  .node-rh { width: 190px; bottom: 20px; }
  .node-icon { width: 32px; height: 32px; }
  .project-core { top: 52%; }
  .audience-grid { grid-template-columns: 1fr; padding: 20px 0; }
  .audience-grid > * { border-bottom: 1px solid rgba(255,255,255,.12); }
  .audience-grid > *:last-child { border-bottom: 0; }
  .section-head { margin-bottom: 42px; }
  .expertise-card { padding: 28px 24px; }
  .steps li { grid-template-columns: 52px 1fr; gap: 16px; }
  .partner-line { padding: 24px; }
  .team-card { grid-template-columns: 1fr; }
  .monogram { min-height: 150px; }
  .field-row, .choice-grid { grid-template-columns: 1fr; }
  .project-form, .form-result { padding: 24px 20px; }
  .contact-reassurance { flex-direction: column; gap: 9px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 40px 25px; }
  .footer-main > div:first-child { grid-column: 1/-1; }
  .footer-bottom { flex-direction: column; gap: 8px; }
  .page-hero, .detail-hero { padding: 72px 0; }
  .page-hero h1, .detail-hero h1 { font-size: 40px; }
  .page-hero-mark { transform: none; }
  .page-hero-mark span { border-radius: 15px; font-size: 22px; }
  .service-row { grid-template-columns: 1fr; padding: 28px 22px; gap: 20px; }
  .service-actions { grid-column: 1; }
  .service-row h2 { font-size: 25px; }
  .split-callout { grid-template-columns: 1fr; gap: 35px; }
  .detail-number { width: 190px; font-size: 70px; }
  .scope-grid { grid-template-columns: 1fr; }
  .scope-card { min-height: 0; }
  .timeline li { grid-template-columns: 50px 1fr; gap: 15px; }
  .timeline-output { grid-column: 2; }
  .quote-panel { padding: 30px 24px; }
  .brand-statement { padding: 28px 22px; }
  .contact-page { padding: 70px 0; }
  .legal-hero { padding: 65px 0 50px; }
}

@media (max-width: 410px) {
  .hero-proof > div { border-right: 0; padding-right: 5px; margin-right: 5px; }
  .hero-proof span { font-size: 9px; }
  .expertise-node strong { font-size: 10px; }
  .expertise-node small { font-size: 8px; }
}
