@font-face{
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(manrope-1.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(manrope-2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --ink: #1C2D37;
  --ink-deep: #111C22;
  --paper: #F4F2EC;
  --white: #FFFFFF;
  --blue: #377BAC;
  --blue-deep: #2B6488;
  --brass: #C6A15B;
  --text-hi: #1C2D37;
  --text-hi-mute: #5C6A72;
  --text-lo: #EDEEEC;
  --text-lo-mute: #BCC5CA;
  --line: rgba(28,45,55,.10);
  --line-dark: rgba(237,238,236,.13);
  --radius: 12px;
  --shadow: 0 16px 48px -24px rgba(28,45,55,.16);
  --container: 1200px;
  --space-section: clamp(80px,8.8vw,136px);
  --ease: cubic-bezier(.2,.7,.2,1);
}
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; scroll-padding-top: 120px; }
body{ margin: 0; color: var(--text-hi); background: var(--white); font-family: 'Manrope', system-ui, sans-serif; font-size: 16px; line-height: 1.75; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,p,figure,ul{ margin: 0; }
h1,h2,h3,h4{ text-wrap: balance; }
h1,h2{ font-weight: 800; letter-spacing: -.05em; }
h1{ font-size: clamp(2.5rem,4.35vw,3.9rem); line-height: 1.09; }
h2{ font-size: clamp(2rem,3.45vw,3rem); line-height: 1.16; }
h3{ font-size: 1.5rem; line-height: 1.35; font-weight: 750; letter-spacing: -.025em; }
p{ color: var(--text-hi-mute); }
a{ color: inherit; text-decoration: none; text-underline-offset: .25em; }
button{ font: inherit; cursor: pointer; }
img{ display: block; max-width: 100%; height: auto; }
svg{ display: block; flex-shrink: 0; }
button,a{ -webkit-tap-highlight-color: transparent; }
:focus-visible{ outline: 3px solid var(--blue); outline-offset: 5px; }
::selection{ background: var(--blue-deep); color: white; }
.container{ width: min(var(--container),calc(100% - 96px)); margin-inline: auto; }
.section{ padding-block: var(--space-section); }
.section-dark{ background: var(--ink); color: var(--text-lo); }
.section-dark p{ color: var(--text-lo-mute); }
.eyebrow{ display: inline-flex; align-items: center; gap: 12px; color: var(--blue-deep); font-weight: 700; font-size: .875rem; letter-spacing: .055em; }
.eyebrow::before{ content: ''; width: 22px; height: 3px; border-radius: 2px; background: var(--brass); }
.section-dark .eyebrow{ color: var(--brass); }
.button{ display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 15px 24px; border: 1px solid transparent; border-radius: 8px; font-size: .9375rem; font-weight: 700; line-height: 1.5; text-align: center; transition: background .25s ease, color .25s ease, transform .25s var(--ease), box-shadow .25s ease; }
.button:hover{ transform: translateY(-2px); }
.button-primary{ color: var(--white); background: var(--blue-deep); }
.button-primary:hover{ background: var(--blue); box-shadow: 0 10px 24px -14px var(--blue-deep); }
.button-secondary{ border-color: var(--line); color: var(--ink); background: transparent; }
.button-secondary:hover{ background: var(--white); border-color: rgba(28,45,55,.22); }
.button-light{ color: var(--text-lo); border-color: rgba(237,238,236,.25); }
.button-light:hover{ background: rgba(255,255,255,.06); }
.site-header{ position: sticky; top: 0; z-index: 40; background: var(--ink); color: var(--text-lo); }
.header-inner{ display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 104px; padding-block: 8px; }
.brand-link{ display: inline-flex; flex-shrink: 0; }
.brand-logo{ width: 180px; height: auto; object-fit: contain; }
.site-nav{ display: flex; align-items: center; gap: 40px; margin-left: auto; margin-right: 20px; font-size: .9375rem; font-weight: 600; }
.site-nav a{ color: var(--text-lo-mute); transition: color .2s ease; }
.site-nav a:hover{ color: var(--white); }
.header-contact{ min-height: 44px; padding: 10px 22px; }
.hero{ background: var(--paper); padding-block: clamp(72px,7.5vw,112px); }
.hero-layout{ display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: clamp(40px,5vw,76px); }
.hero-copy{ min-width: 0; }
.hero h1{ margin-top: 28px; max-width: 20ch; }
.hero-intro{ margin-top: 28px; max-width: 49ch; font-size: 1.0625rem; line-height: 1.85; }
.hero-actions{ display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.hero-photo{ min-width: 0; position: relative; isolation: isolate; overflow: hidden; border-radius: var(--radius); background: var(--ink); }
.hero-photo img{ width: 100%; height: clamp(420px,45vw,600px); object-fit: cover; object-position: 53% center; }
.hero-photo::after{ content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg,transparent 46%,rgba(17,28,34,.86)); pointer-events: none; }
.photo-caption{ position: absolute; z-index: 1; left: 32px; right: 32px; bottom: 32px; color: var(--white); max-width: 31ch; font-size: 1rem; font-weight: 600; line-height: 1.6; }
.photo-caption small{ display: block; margin-bottom: 10px; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; color: #E7C98F; }
.services{ background: var(--white); }
.section-intro{ max-width: 760px; }
.section-intro h2{ margin-top: 24px; }
.section-intro > p{ max-width: 68ch; margin-top: 24px; font-size: 1.0625rem; }
.service-grid{ display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 64px; }
.card-service{ padding: 36px 30px; border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); transition: transform .35s var(--ease),box-shadow .35s ease; }
.card-service:hover{ transform: translateY(-5px); box-shadow: 0 22px 52px -26px rgba(28,45,55,.24); }
.service-top{ display: flex; justify-content: space-between; align-items: center; }
.service-top svg{ width: 32px; height: 32px; }
.service-top .stat-num{ color: var(--text-hi-mute); font-size: .875rem; font-weight: 600; }
.card-service h3{ margin-top: 36px; font-size: 1.375rem; }
.service-description{ margin-top: 18px; line-height: 1.85; }
.section-top{ display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; }
.section-top h2{ max-width: 21ch; }
.section-top .button{ flex-shrink: 0; }
.solution-grid{ display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 80px; margin-top: 72px; }
.solution-grid h3{ font-size: clamp(1.5rem,2.3vw,1.875rem); max-width: 28ch; }
.solution-grid p{ margin-top: 24px; line-height: 1.9; }
.solution-grid p + p{ margin-top: 12px; }
.solution-lead{ color: var(--text-lo)!important; font-weight: 600; }
.solution-grid .button{ margin-top: 32px; }
.process{ background: var(--paper); }
.process-layout{ display: grid; grid-template-columns: 1fr 1.08fr; gap: 100px; align-items: start; }
.process-intro h2{ margin-top: 24px; }
.process-photo{ width: 100%; height: 260px; margin-top: 36px; border-radius: var(--radius); object-fit: cover; }
.process-intro .button{ margin-top: 28px; }
.process-steps{ display: grid; gap: 0; padding-top: 8px; }
.step{ position: relative; padding: 4px 0 40px 76px; }
.step:last-child{ padding-bottom: 0; }
.step .stat-num{ position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 10px; color: var(--blue-deep); background: var(--white); font-size: 1rem; font-weight: 800; }
.step h3{ font-size: 1.1875rem; margin-top: 4px; }
.step p{ margin-top: 12px; }
.result{ display: flex; flex-direction: column; gap: 12px; }
.contact{ background: var(--paper); padding-block: 104px; }
.contact-inner{ display: flex; flex-direction: column; align-items: center; text-align: center; gap: 32px; }
.contact-inner::before{ content: ''; width: 42px; height: 4px; background: var(--brass); border-radius: 2px; }
.contact h2{ max-width: 23ch; font-size: clamp(2.25rem,4.3vw,3.75rem); }
.contact .button{ min-height: 60px; padding-inline: 36px; }
.site-footer{ background: var(--ink); color: var(--text-lo); padding-block: 72px 32px; }
.footer-grid{ display: grid; grid-template-columns: 1.5fr .8fr .8fr 1.2fr; gap: 56px; }
.footer-logo{ width: 200px; }
.footer-brand p{ font-size: .9375rem; line-height: 1.8; color: var(--text-lo-mute); max-width: 27ch; }
.footer-brand .brand-description{ margin-top: 24px; }
.footer-brand p + p{ margin-top: 6px; }
.social-link{ display: inline-flex; padding: 10px; margin-top: 22px; border-radius: 8px; color: var(--text-lo); background: rgba(255,255,255,.04); transition: background .2s ease; }
.social-link:hover{ background: rgba(255,255,255,.10); }
.footer-column{ padding-top: 22px; }
.footer-column h4{ font-size: .9375rem; font-weight: 700; }
.footer-column ul{ display: grid; gap: 14px; margin-top: 22px; padding: 0; list-style: none; }
.footer-column li{ color: var(--text-lo-mute); font-size: .9375rem; line-height: 1.6; }
.footer-column a:hover{ color: var(--white); }
.copyright{ margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--line-dark); color: var(--text-lo-mute); font-size: .8125rem; }
.wa-float{ position: fixed; right: 24px; bottom: 24px; z-index: 50; display: grid; place-items: center; width: 56px; height: 56px; color: var(--white); background: var(--blue-deep); border-radius: 16px; box-shadow: 0 10px 30px -12px rgba(17,28,34,.4); transition: background .2s ease, transform .25s var(--ease); }
.wa-float:hover{ background: var(--blue); transform: translateY(-3px); }
@keyframes rise{ from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.reveal.is-visible{ animation: rise .7s var(--ease) both; }
@media (min-width: 1000px){.card-service h3{ min-height: 3.75rem; }}
@media (max-width: 1050px){.container{ width: calc(100% - 64px); }
.hero-layout{ gap: 36px; grid-template-columns: 1.15fr 1fr; }
.hero-actions{ flex-direction: column; align-items: flex-start; }
.service-grid{ gap: 16px; }
.card-service{ padding: 28px 22px; }
.solution-grid{ gap: 48px; }
.process-layout{ gap: 56px; }
.footer-grid{ gap: 28px; }}
@media (max-width: 800px){.hero-layout{ grid-template-columns: 1fr; gap: 48px; }
.hero h1{ max-width: 23ch; font-size: clamp(2.5rem,7vw,3.8rem); }
.hero-intro{ max-width: 59ch; }
.hero-actions{ flex-direction: row; }
.hero-photo img{ height: 390px; object-position: center; }
.service-grid{ grid-template-columns: 1fr; gap: 20px; margin-top: 44px; }
.card-service{ padding: 32px; }
.card-service h3{ margin-top: 24px; }
.section-top{ flex-direction: column; align-items: flex-start; }
.section-top h2{ max-width: 26ch; }
.solution-grid{ grid-template-columns: 1fr; gap: 56px; margin-top: 48px; }
.solution-grid h3{ max-width: 35ch; }
.process-layout{ grid-template-columns: 1fr; gap: 56px; }
.process-photo{ height: 320px; }
.footer-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.site-nav{ gap: 24px; margin-right: 0; }
.header-inner{ gap: 22px; }}
@media (max-width: 540px){:root{ --space-section: 72px; }
html{ scroll-padding-top: 140px; }
.container{ width: calc(100% - 40px); }
.header-inner{ flex-wrap: wrap; gap: 4px 18px; padding-block: 8px 12px; }
.brand-logo{ width: 154px; }
.site-nav{ order: 3; width: 100%; margin: 0; justify-content: center; gap: 32px; font-size: .875rem; }
.header-contact{ min-height: 42px; padding: 8px 18px; }
.hero{ padding-block: 52px 64px; }
.eyebrow{ font-size: .8125rem; letter-spacing: .015em; }
.hero h1{ font-size: clamp(2.125rem,8.5vw,2.875rem); }
.hero-intro{ font-size: 1rem; }
.hero-actions{ flex-direction: column; align-items: stretch; }
.hero-photo img{ height: 320px; }
.photo-caption{ left: 24px; right: 24px; bottom: 24px; font-size: .9375rem; }
.card-service{ padding: 28px 24px; }
.process-photo{ height: 250px; }
.step{ padding-left: 64px; padding-bottom: 36px; }
.step .stat-num{ width: 42px; height: 42px; }
.contact{ padding-block: 80px; }
.contact .button{ width: 100%; }
.footer-grid{ grid-template-columns: 1fr 1fr; gap: 28px; }
.footer-brand{ grid-column: 1 / -1; }
.footer-logo{ width: 200px; }
.footer-column:last-child{ grid-column: 1 / -1; }
.copyright{ margin-top: 40px; padding-right: 44px; }
.wa-float{ width: 50px; height: 50px; right: 16px; bottom: 16px; border-radius: 14px; }}
@media (prefers-reduced-motion: reduce){html{ scroll-behavior: auto; }
*,*::before,*::after{ animation: none!important; transition: none!important; }}
@media(max-width:1050px){}
@media(max-width:800px){}
@media(max-width:540px){}
/* Shared institutional pages, native FAQ controls and accessibility. */
.skip-link { position: fixed; left: 16px; top: 12px; z-index: 100; padding: 12px 20px; background: white; color: var(--ink); border-radius: 8px; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
main:focus { outline: none; }
.text-link { display: inline-block; margin-top: 22px; color: var(--blue-deep); font-weight: 700; font-size: .9375rem; text-decoration: underline; text-decoration-thickness: 1px; }
.text-link:hover { color: var(--ink); }
.card-service { display: flex; flex-direction: column; }
.card-service .text-link { margin-top: auto; padding-top: 26px; }
.card-service h3 { min-height: 0; }
.hero h1 { max-width: 21ch; }
.hero-actions { margin-top: 34px; }
.hero-photo img { height: clamp(420px,44vw,570px); }
.model-notes { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); }
.model-notes h3 { font-size: 1.125rem; }
.model-notes p { font-size: .9375rem; line-height: 1.8; margin-top: 14px; }
.about-home { background: white; }
.about-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.about-layout h2 { max-width: 23ch; margin-top: 22px; }
.about-layout p + p { margin-top: 22px; }
.faq-section { background: #FAFAF8; }
.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.faq-layout h2 { margin-top: 22px; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; font-weight: 700; padding: 24px 36px 24px 0; position: relative; line-height: 1.6; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: 4px; top: 21px; font-size: 1.5rem; color: var(--blue-deep); font-weight: 400; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details > div { padding: 0 22px 26px 0; }
.contact p { max-width: 58ch; }
.motion-toggle { display: block; border: 0; border-radius: 6px; padding: 10px 0; margin-top: 14px; color: var(--text-lo-mute); background: transparent; font-size: .8125rem; text-decoration: underline; text-underline-offset: .3em; }
.motion-toggle:hover { color: white; }
body[data-motion='paused'] *,body[data-motion='paused'] *::before,body[data-motion='paused'] *::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; }
html[data-motion='paused'] { scroll-behavior: auto; }
.page-hero { background: var(--paper); padding-block: 64px 80px; }
.page-hero h1 { max-width: 24ch; margin-top: 20px; }
.page-hero p { margin-top: 26px; max-width: 64ch; font-size: 1.125rem; }
.page-hero .button { margin-top: 32px; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; font-size: .875rem; color: var(--text-hi-mute); }
.breadcrumb a { text-decoration: underline; }
.service-context { display: grid; grid-template-columns: 1fr 1fr; gap: 88px; align-items: start; }
.service-context h2 { font-size: clamp(1.75rem,2.5vw,2.25rem); }
.service-context p { margin-top: 24px; line-height: 1.9; }
.service-context .text-link { display: block; }
.scope-section { background: var(--paper); }
.scope-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px 72px; margin-top: 52px; }
.scope-grid h3 { font-size: 1.25rem; }
.scope-grid p { margin-top: 16px; }
.service-steps { padding-left: 24px; margin-top: 32px; }
.service-steps li { padding-left: 12px; margin-bottom: 30px; }
.service-steps li::marker { color: var(--blue-deep); font-weight: 800; }
.service-steps h3 { font-size: 1.125rem; }
.service-steps p { margin-top: 10px; }
.client-role { padding: 36px; background: var(--paper); border-radius: var(--radius); }
.related-services { padding-block: 40px; }
.related-services h2 { font-size: 1.25rem; }
.related-services .container > div { display: flex; flex-wrap: wrap; gap: 12px 32px; }
.site-footer { padding-bottom: 76px; }
.footer-column li { overflow-wrap: anywhere; }
@media(max-width:1050px) { .about-layout,.faq-layout,.service-context { gap: 48px; } }
@media(max-width:800px) {
  .about-layout,.faq-layout,.service-context { grid-template-columns: 1fr; gap: 40px; }
  .scope-grid { gap: 32px; }
  .hero-photo img { height: 390px; }
}
@media(max-width:540px) {
  .scope-grid { grid-template-columns: 1fr; }
  .client-role { padding: 28px; }
  .page-hero { padding-block: 40px 64px; }
  .page-hero h1 { font-size: clamp(2rem,8.5vw,2.8rem); }
  .page-hero .button { width: 100%; }
  .hero-photo img { height: 320px; }
  .motion-toggle { margin-right: 60px; }
  .site-header { position: static; }
  html { scroll-padding-top: 24px; }
}

@media(max-width:1050px){.wa-float{position:static;margin:24px 0 0 auto;box-shadow:none}.site-footer{padding-bottom:32px}}
