:root {
  --ink-950:#0b1922;
  --ink-900:#122736;
  --ink-800:#1b3a48;
  --ink-700:#294f5d;
  --ink-600:#3b6472;
  --ink-500:#547d89;
  --ink-400:#7fa0aa;
  --ink-300:#aac3c9;
  --ink-200:#cddcdf;
  --ink-100:#e6eeef;
  --ink-50:#f4f8f8;
  --paper:#faf9f6;
  --accent:#d97757;
  --accent-dark:#b3593c;
  --accent-light:#f3ad8c;
  --shadow-sm: 0 1px 2px rgba(11,25,34,.08), 0 1px 1px rgba(11,25,34,.04);
  --shadow-md: 0 8px 20px -6px rgba(11,25,34,.16), 0 2px 6px rgba(11,25,34,.08);
  --shadow-lg: 0 26px 50px -16px rgba(11,25,34,.30), 0 10px 20px -8px rgba(11,25,34,.12);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 30px;
  --font-head: 'Libre Baskerville', serif;
  --font-body: 'DM Sans', sans-serif;
  --space-2xs: .4rem;
  --space-xs: .8rem;
  --space-sm: 1.4rem;
  --space-md: 2.4rem;
  --space-lg: 4.5rem;
  --space-xl: 7.5rem;
  --transition-base: .35s cubic-bezier(.4,0,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin:0;
  font-family: var(--font-body);
  color: var(--ink-900);
  background: var(--paper);
  line-height: 1.65;
  font-size: 16px;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width:100%; display:block; }
a { color: inherit; text-decoration:none; }
ul { margin:0; padding:0; list-style:none; }
h1,h2,h3 { font-family: var(--font-head); font-weight:700; margin:0 0 var(--space-sm); color: var(--ink-950); line-height:1.15; }
h1 { font-size: clamp(2.4rem, 4.5vw + 1rem, 4.4rem); }
h2 { font-size: clamp(1.9rem, 2.6vw + 1rem, 2.8rem); }
h3 { font-size: clamp(1.25rem, 1vw + 1rem, 1.55rem); }
p { margin:0 0 var(--space-sm); }
.eyebrow-text {
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  color: var(--accent-dark); margin-bottom: var(--space-xs);
}
.eyebrow-text--light { color: var(--accent-light); }
.section-lead { color: var(--ink-600); max-width: 620px; font-size:1.05rem; }
.section-heading { margin-bottom: var(--space-sm); }
.section-intro { max-width: 720px; margin: 0 auto var(--space-lg); padding: 0 var(--space-md); text-align:left; }
.highlight-text { color: var(--accent); }


.cookie-bar {
  background: var(--ink-950); color: var(--ink-100); overflow:hidden;
  max-height: 220px; opacity:1; transition: max-height .5s ease, opacity .4s ease, padding .5s ease;
}
.cookie-bar.is-hidden { max-height:0; opacity:0; pointer-events:none; }
.cookie-bar-inner {
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  padding: .6rem 1.6rem; flex-wrap:wrap; max-width:1400px; margin:0 auto;
}
.cookie-bar-inner p { margin:0; font-size:.82rem; color: var(--ink-200); max-width:720px; }
.cookie-bar-inner a { color: var(--accent-light); text-decoration:underline; }
.cookie-bar-actions { display:flex; gap:.6rem; flex-shrink:0; }
.cookie-bar-actions button {
  font-family: var(--font-body); font-size:.78rem; font-weight:600; border-radius: 999px;
  padding:.5rem 1rem; cursor:pointer; border:1px solid transparent; transition: all var(--transition-base);
  min-height:36px;
}
.cookie-accept { background: var(--accent); color: #fff; }
.cookie-accept:hover { background: var(--accent-dark); transform: translateY(-1px); }
.cookie-decline { background:transparent; border-color: var(--ink-600); color: var(--ink-200); }
.cookie-decline:hover { border-color: var(--ink-300); color:#fff; }


.site-header {
  position: sticky; top:0; z-index:600; background: var(--paper);
  box-shadow: var(--shadow-sm); transition: box-shadow var(--transition-base);
}
.site-header.is-scrolled { box-shadow: var(--shadow-md); }
.header-inner {
  max-width:1400px; margin:0 auto; padding: .9rem 2rem;
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.brand-mark img { height:34px; width:auto; transition: opacity var(--transition-base); }
.brand-mark:hover img { opacity:.75; }
.nav-links { display:flex; gap: 2.1rem; }
.nav-links a {
  font-size:.94rem; font-weight:500; color: var(--ink-700); padding:.4rem .1rem;
  border-bottom: 3px solid transparent; transition: color var(--transition-base), border-color var(--transition-base);
}
.nav-links a:hover { color: var(--ink-950); }
.nav-links a.current-page { color: var(--ink-950); font-weight:600; border-bottom-color: var(--accent); }
.menu-toggle {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:46px; height:46px; border:none; background:transparent; cursor:pointer; border-radius: var(--radius-sm);
  transition: background var(--transition-base);
}
.menu-toggle:hover { background: var(--ink-100); }
.menu-toggle span { display:block; width:22px; height:2px; background: var(--ink-900); margin:0 auto; transition: transform var(--transition-base), opacity var(--transition-base); }


.mobile-menu {
  position: fixed; inset:0; z-index:900; display:grid; grid-template-columns: 1.3fr 1fr;
  visibility:hidden; opacity:0; transition: opacity var(--transition-base), visibility var(--transition-base);
}
.mobile-menu.is-open { visibility:visible; opacity:1; }
.mobile-menu-links {
  background: var(--ink-950); padding: 6rem 2rem 2rem; position:relative;
  display:flex; flex-direction:column;
}
.mobile-menu-links nav ul { display:flex; flex-direction:column; gap:1.1rem; }
.mobile-menu-links nav a {
  font-family: var(--font-head); font-size: clamp(1.7rem, 6vw, 2.6rem); color: var(--ink-100);
  transition: color var(--transition-base), padding-left var(--transition-base);
}
.mobile-menu-links nav a:hover { color: var(--accent-light); padding-left:.4rem; }
.menu-close {
  position:absolute; top:1.6rem; right:1.6rem; width:46px; height:46px; border-radius:50%;
  background: rgba(255,255,255,.08); border:none; color: var(--ink-100); font-size:1.2rem; cursor:pointer;
  transition: background var(--transition-base);
}
.menu-close:hover { background: rgba(255,255,255,.18); }
.mobile-menu-visual { background-size:cover; background-position:center; }


.hero-intro {
  position:relative; min-height: 88vh; display:flex; align-items:stretch; overflow:hidden;
}
.hero-media { position:absolute; inset:0; z-index:1; }
.hero-media img { width:100%; height:100%; object-fit:cover; }
.hero-panel {
  position:relative; z-index:2; width:58%; min-height:88vh; display:flex; align-items:center;
  background: linear-gradient(160deg, var(--ink-950) 0%, var(--ink-800) 100%);
  clip-path: polygon(0 0, 100% 0, 84% 100%, 0 100%);
}
.hero-content { padding: 4rem 4rem 4rem 3.5rem; max-width: 560px; opacity:0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
.hero-content.is-visible { opacity:1; transform: translateY(0); }
.hero-content h1 { color: var(--ink-50); }
.hero-lead { color: var(--ink-300); font-size:1.08rem; max-width:460px; }
.primary-action-group { display:flex; gap:1rem; flex-wrap:wrap; margin-top: var(--space-md); }
.primary-action, .secondary-action {
  display:inline-flex; align-items:center; justify-content:center; min-height:48px;
  padding: .85rem 1.8rem; border-radius: 999px; font-weight:600; font-size:.95rem;
  transition: all var(--transition-base); cursor:pointer; border:1px solid transparent;
}
.primary-action { background: var(--accent); color:#fff; box-shadow: var(--shadow-sm); }
.primary-action:hover { background: var(--accent-dark); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.primary-action--onDark { background: var(--accent); }
.secondary-action { background: transparent; color: var(--ink-100); border-color: rgba(255,255,255,.35); }
.secondary-action:hover { border-color: #fff; background: rgba(255,255,255,.08); }


.visual-break {
  height:52px;
  background-image: repeating-linear-gradient(120deg, var(--ink-900) 0 42px, var(--ink-800) 42px 84px);
  position:relative;
}
.visual-break::after {
  content:''; position:absolute; inset:0; background-image: repeating-linear-gradient(120deg, transparent 0 160px, var(--accent) 160px 168px, transparent 168px 320px);
  opacity:.55;
}
.visual-break--alt { background-image: repeating-linear-gradient(120deg, var(--ink-100) 0 42px, var(--ink-200) 42px 84px); }
.visual-break--alt::after { opacity:.4; }


.content-flow { padding: var(--space-xl) var(--space-md); background: var(--paper); }
.content-flow--shift { background: var(--ink-50); }
.content-flow--narrow { max-width:720px; margin:0 auto; text-align:center; padding: var(--space-xl) var(--space-md); }
.text-column { max-width:760px; margin:0 auto; text-align:left; }
.text-column p { color: var(--ink-700); font-size:1.05rem; }


.content-block { position:relative; padding: 0; }
.overlap-grid {
  position:relative; display:grid; grid-template-columns: 1fr 1fr; min-height: 480px;
}
.overlap-half { display:flex; align-items:center; padding: var(--space-lg) var(--space-md); }
.overlap-half-dark { background: var(--ink-950); }
.overlap-half-light { background: var(--ink-100); }
.overlap-half-copy { max-width:420px; }
.overlap-half-copy p { color: var(--ink-300); }
.overlap-half-light .overlap-half-copy p { color: var(--ink-700); }
.overlap-card {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(760px, 84%); background: var(--paper); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); display:grid; grid-template-columns: 1fr 1.1fr; overflow:hidden;
}
.overlap-card--reverse { grid-template-columns: 1.1fr 1fr; }
.overlap-card--reverse .overlap-card-media { order:2; }
.overlap-card-media { min-height: 260px; }
.overlap-card-media img { width:100%; height:100%; object-fit:cover; }
.overlap-card-body { padding: var(--space-md); display:flex; flex-direction:column; justify-content:center; }
.overlap-card-body p { color: var(--ink-600); margin-bottom:0; }
.overlap-grid--reverse .overlap-half-dark { order:2; }


.info-grid { max-width:1180px; margin:0 auto; padding: 0 var(--space-md); display:grid; grid-template-columns: repeat(4,1fr); gap: 1.6rem; }
.info-card {
  background:#fff; border:1px solid var(--ink-100); border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-sm); box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.info-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.info-card:has(.info-card-icon) { text-align:left; }
.info-card-icon {
  width:48px; height:48px; border-radius: var(--radius-sm); background: var(--ink-950); color: var(--accent-light);
  display:flex; align-items:center; justify-content:center; font-size:1.15rem; margin-bottom: var(--space-sm);
}
.info-card p { color: var(--ink-600); margin-bottom:0; font-size:.96rem; }
.info-grid--text .info-card { background: var(--ink-50); border-color: var(--ink-200); }


.step-grid { max-width:1180px; margin: 0 auto var(--space-lg); padding: 0 var(--space-md); display:grid; grid-template-columns: repeat(4,1fr); gap:1.6rem; }
.step-grid--compact { grid-template-columns: repeat(3,1fr); }
.step-card {
  background: #fff; border-radius: var(--radius-md); padding: var(--space-md) var(--space-sm);
  box-shadow: var(--shadow-sm); border-top: 3px solid var(--accent); transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.step-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.step-number { font-family: var(--font-head); font-size:2.2rem; color: var(--ink-300); display:block; margin-bottom:.4rem; }
.step-card p { color: var(--ink-600); margin-bottom:0; font-size:.95rem; }
.content-media-strip { max-width:1180px; margin:0 auto; padding: 0 var(--space-md); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); }
.content-media-strip img { width:100%; height:380px; object-fit:cover; }
.content-media-strip--right { margin-left:auto; margin-right: var(--space-md); }


.splide { max-width:1180px; margin:0 auto; padding: 0 var(--space-md); }
.module-card {
  background: var(--ink-950); color: var(--ink-100); border-radius: var(--radius-md); padding: var(--space-md);
  height:100%; min-height:230px; display:flex; flex-direction:column; box-shadow: var(--shadow-md);
}
.module-tag { display:inline-block; background: var(--accent); color:#fff; font-size:.72rem; font-weight:700;
  padding:.28rem .7rem; border-radius:999px; margin-bottom: var(--space-sm); width:fit-content; letter-spacing:.05em; }
.module-card h3 { color: var(--ink-50); }
.module-card p { color: var(--ink-300); margin-bottom:0; font-size:.94rem; }
.splide__pagination__page { background: var(--ink-300); opacity:.7; }
.splide__pagination__page.is-active { background: var(--accent); transform: scale(1.3); }
.splide__arrow { background: var(--ink-950); }
.splide__arrow svg { fill: #fff; }
.splide__arrow:hover { background: var(--accent); }


.quote-block { max-width:900px; margin:0 auto; padding: var(--space-xl) var(--space-md); text-align:center; }
.quote-block .highlight-text { font-family: var(--font-head); font-size: clamp(1.6rem, 2.6vw + 1rem, 2.4rem); line-height:1.4; display:block; margin-bottom: var(--space-sm); }
.quote-attribution { font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; color: var(--ink-500); font-weight:600; }
section:has(.highlight-text) { background: var(--ink-950); }
section:has(.highlight-text) .quote-attribution { color: var(--accent-light); }


.content-block--split {
  max-width:1280px; margin:0 auto; padding: var(--space-xl) var(--space-md);
  display:grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items:center;
}
.split-media { border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); }
.split-media img { width:100%; height:420px; object-fit:cover; }
.split-copy p { color: var(--ink-600); }
.audience-list { display:flex; flex-direction:column; gap:.75rem; margin-top: var(--space-sm); }
.audience-list li { display:flex; align-items:flex-start; gap:.6rem; color: var(--ink-700); font-size:.98rem; }
.audience-list i { color: var(--accent); margin-top:.2rem; }


.cta-band { background: linear-gradient(120deg, var(--ink-950), var(--ink-700)); padding: var(--space-xl) var(--space-md); text-align:center; }
.cta-inner { max-width:640px; margin:0 auto; }
.cta-inner h2 { color: var(--ink-50); }
.cta-inner p { color: var(--ink-300); }


.page-header { position:relative; display:grid; grid-template-columns: 1.1fr .9fr; align-items:stretch; min-height:420px; background: var(--ink-950); }
.page-header--compact { grid-template-columns: 1fr; min-height:auto; padding: var(--space-xl) var(--space-md) var(--space-lg); }
.page-header-inner { padding: var(--space-xl) var(--space-lg) var(--space-lg) var(--space-md); display:flex; flex-direction:column; justify-content:center; }
.page-header-inner h1 { color: var(--ink-50); }
.page-header-inner .section-lead { color: var(--ink-300); }
.page-header--compact .page-header-inner { align-items:center; text-align:center; max-width:720px; margin:0 auto; padding: 0; }
.page-header--compact .section-lead { margin: 0 auto; }
.page-header-media img { width:100%; height:100%; object-fit:cover; min-height:420px; }


.faq-list { max-width:820px; margin: 0 auto; padding: 0 var(--space-md); display:flex; flex-direction:column; gap:1rem; }
.faq-item {
  background:#fff; border:1px solid var(--ink-100); border-radius: var(--radius-md);
  padding: 1.1rem 1.5rem; box-shadow: var(--shadow-sm); transition: box-shadow var(--transition-base);
}
.faq-item:hover { box-shadow: var(--shadow-md); }
.faq-item summary { cursor:pointer; font-weight:600; font-size:1.02rem; color: var(--ink-900); list-style:none; display:flex; justify-content:space-between; align-items:center; transition: color var(--transition-base); }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; font-size:1.4rem; color: var(--accent); transition: transform var(--transition-base); }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item:has([open]) { border-color: var(--accent-light); }
.faq-item[open] summary { color: var(--accent-dark); }
.faq-item p { margin: .9rem 0 0; color: var(--ink-600); }


.contact-grid { max-width:1180px; margin: 0 auto var(--space-lg); padding: 0 var(--space-md); display:grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items:start; }
.contact-info h2 { margin-bottom: var(--space-sm); }
.contact-info p { display:flex; align-items:center; gap:.6rem; color: var(--ink-700); }
.contact-info i { color: var(--accent); width:20px; }
.response-note { align-items:flex-start; color: var(--ink-500); font-size:.92rem; background: var(--ink-50); padding:1rem 1.2rem; border-radius: var(--radius-md); }
.map-frame { border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); }
.map-frame iframe { display:block; }


.form-shell { max-width:1180px; margin:0 auto; padding: var(--space-lg) var(--space-md); background:#fff; border:1px solid var(--ink-100); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); transition: border-color var(--transition-base); }
.form-shell:has(input:focus, textarea:focus) { border-color: var(--accent); }
.form-shell h2 { margin-bottom: var(--space-md); }
.form-row { display:flex; gap:1.2rem; flex-wrap:wrap; margin-bottom: 1.2rem; }
.form-field { flex:1 1 200px; display:flex; flex-direction:column; gap:.4rem; }
.form-field--message { flex:1 1 260px; }
.form-field label { font-size:.85rem; font-weight:600; color: var(--ink-700); }
.form-field input, .form-field textarea {
  border:1px solid var(--ink-200); border-radius: var(--radius-sm); padding:.7rem .9rem; font-family: var(--font-body);
  font-size:.95rem; color: var(--ink-900); background: var(--ink-50); transition: border-color var(--transition-base), background var(--transition-base);
  min-height:44px; resize:vertical;
}
.form-field input:focus, .form-field textarea:focus { outline:none; border-color: var(--accent); background:#fff; }
.form-row--actions { align-items:center; justify-content:space-between; gap:1.4rem; }
.form-field-checkbox { display:flex; align-items:flex-start; gap:.6rem; flex:1 1 320px; }
.form-field-checkbox input { width:20px; height:20px; margin-top:.15rem; accent-color: var(--accent); flex-shrink:0; }
.form-field-checkbox label { font-size:.85rem; color: var(--ink-600); }
.form-field-checkbox a { color: var(--accent-dark); text-decoration:underline; }
.form-shell button.primary-action { border:none; }


.thanks-hero { background: linear-gradient(135deg, var(--ink-950) 0%, var(--ink-700) 55%, var(--accent-dark) 130%); padding: var(--space-xl) var(--space-md); text-align:center; }
.thanks-hero-inner { max-width:680px; margin:0 auto; }
.thanks-hero-inner h1 { color:#fff; }
.thanks-hero-inner p { color: var(--ink-100); font-size:1.05rem; }


.legal-shell { max-width:880px; margin:0 auto; padding: var(--space-xl) var(--space-md); }
.legal-updated { color: var(--ink-500); font-size:.9rem; margin-bottom: var(--space-md); }
.legal-section { margin-bottom: var(--space-lg); }
.legal-section h2 { font-size:1.35rem; margin-bottom: var(--space-xs); }
.legal-section p { color: var(--ink-700); }
.legal-table { width:100%; border-collapse: collapse; margin: var(--space-xs) 0 var(--space-sm); }
.legal-table th, .legal-table td { text-align:left; padding:.6rem .8rem; border-bottom:1px solid var(--ink-100); font-size:.92rem; }
.legal-table th { color: var(--ink-500); font-weight:600; width:38%; }


.site-footer { background: var(--ink-950); padding: var(--space-xl) var(--space-md) var(--space-md); }
.footer-inner { max-width:760px; margin:0 auto; text-align:center; display:flex; flex-direction:column; align-items:center; gap: 1.1rem; }
.footer-logo { font-family: var(--font-head); font-size:1.5rem; color: var(--ink-50); margin:0; }
.footer-logo span { color: var(--accent-light); }
.footer-tagline { color: var(--ink-400); font-size:.95rem; max-width:420px; margin:0; }
.footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap: 1.4rem; margin: .6rem 0; }
.footer-links a { color: var(--ink-300); font-size:.88rem; transition: color var(--transition-base); }
.footer-links a:hover { color: #fff; }
.footer-contact { display:flex; flex-wrap:wrap; justify-content:center; gap: 1.6rem; color: var(--ink-300); font-size:.88rem; }
.footer-contact a { color: var(--ink-300); transition: color var(--transition-base); }
.footer-contact a:hover { color: var(--accent-light); }
.footer-contact i { color: var(--accent); margin-right:.4rem; }
.footer-copy { color: var(--ink-500); font-size:.8rem; margin:.6rem 0 0; }


.scroll-reveal { opacity:0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.scroll-reveal.is-visible { opacity:1; transform: translateY(0); }


@media (max-width: 1024px) {
  .info-grid { grid-template-columns: repeat(2,1fr); }
  .step-grid { grid-template-columns: repeat(2,1fr); }
  .step-grid--compact { grid-template-columns: repeat(1,1fr); }
  .overlap-card { grid-template-columns: 1fr; }
  .overlap-card-media { min-height:200px; }
  .content-block--split { grid-template-columns:1fr; }
  .split-media img { height:300px; }
  .contact-grid { grid-template-columns:1fr; }
}
@media (max-width: 860px) {
  .site-nav { display:none; }
  .menu-toggle { display:flex; }
  .hero-panel { width:100%; clip-path:none; min-height:auto; }
  .hero-intro { flex-direction:column; min-height:auto; }
  .hero-media { position:relative; height:44vh; }
  .hero-content { padding: 2.6rem 1.6rem; max-width:100%; }
  .page-header { grid-template-columns: 1fr; }
  .page-header-media img { min-height:260px; }
  .overlap-grid { grid-template-columns: 1fr; min-height:auto; }
  .overlap-half { padding: var(--space-md); }
  .overlap-card { position:static; transform:none; width:calc(100% - 2rem); margin: -2.5rem auto var(--space-md); }
  .overlap-grid--reverse .overlap-half-dark { order:0; }
  .info-grid, .step-grid { grid-template-columns:1fr; }
  .content-media-strip--right { margin: 0 var(--space-md); }
  .form-row--actions { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 560px) {
  .header-inner { padding: .8rem 1.2rem; }
  .cookie-bar-inner { padding: .6rem 1.2rem; }
  .cookie-bar-actions { width:100%; justify-content:flex-end; }
  .mobile-menu { grid-template-columns: 1fr; }
  .mobile-menu-visual { display:none; }
  .content-flow, .section-intro { padding-left:1.2rem; padding-right:1.2rem; }
  .thanks-hero, .cta-band { padding: var(--space-lg) 1.2rem; }
}