:root {
  --ink: #102642;
  --ink-deep: #071d38;
  --blue: #154f9b;
  --green: #16a765;
  --green-dark: #0d7e4b;
  --paper: #ffffff;
  --soft: #f4f6f3;
  --warm: #f2efe7;
  --text: #2d3c4e;
  --muted: #697687;
  --line: #d9dfdd;
  --container: 1180px;
  --sans: "Google Sans", "Google Sans Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --heading: Montserrat, "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { margin: 0; background: var(--paper); color: var(--text); font-family: var(--sans); font-size: 17px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.container { width: min(var(--container), calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 9px 14px; background: white; color: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.site-header { position: sticky; z-index: 100; top: 0; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 76px; display: flex; align-items: center; gap: 32px; }
.wordmark { display: inline-flex; align-items: center; }
.wordmark img { display: block; width: 190px; height: auto; }
.desktop-nav { display: flex; gap: 28px; margin-left: auto; font-size: 14px; color: #405066; }
.desktop-nav a { text-underline-offset: 7px; }
.desktop-nav a:hover { text-decoration: underline; }
.menu-button, .mobile-menu { display: none; }

.hero { padding: 72px 0 90px; background: white; }
.hero-layout { display: grid; grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr); align-items: center; gap: 74px; }
.hero h1 { max-width: 650px; margin: 0; color: var(--ink); font: 600 clamp(46px, 5vw, 70px)/1.07 var(--heading); letter-spacing: -2.6px; }
.hero-copy > p { max-width: 590px; margin: 30px 0 0; color: #4f6072; font-size: 20px; line-height: 1.6; }
.hero-actions { display: flex; align-items: center; gap: 12px; margin-top: 36px; }
.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid transparent; font-size: 14px; font-weight: 600; line-height: 1; white-space: nowrap; transition: background-color .2s, border-color .2s, color .2s; }
.button.primary { background: var(--green); color: white; }
.button.primary:hover { background: var(--green-dark); }
.button.secondary { border-color: #bdc9c4; background: white; color: var(--ink); }
.button.secondary:hover { border-color: var(--ink); background: #f6f8f7; }

.stock-slot { position: relative; display: grid; place-items: end start; overflow: hidden; background: #c9d2ca; color: white; }
.stock-slot::before { content: ""; position: absolute; inset: 0; background: rgba(7, 29, 56, .16); }
.stock-slot div { position: relative; margin: 24px; padding: 13px 16px; background: rgba(7, 29, 56, .88); }
.stock-slot strong, .stock-slot span, .stock-slot small { display: block; }
.stock-slot strong { color: #8ce0b6; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; }
.stock-slot span { margin-top: 2px; font-size: 14px; }
.stock-slot small { color: #cdd8e2; font-size: 11px; }
.hero-photo { height: 540px; margin: 0; overflow: hidden; background: #e8ece9; }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

.assurance { background: var(--ink-deep); color: white; }
.assurance-inner { display: grid; grid-template-columns: repeat(3, 1fr); min-height: 132px; align-items: center; }
.assurance p { display: flex; align-items: center; gap: 16px; margin: 0; padding-right: 30px; }
.assurance i { color: #72d6a2; font-size: 28px; }
.assurance strong, .assurance small { display: block; }
.assurance strong { font: 600 19px/1.3 var(--heading); }
.assurance small { margin-top: 4px; color: #b8c6d4; font-size: 13px; }

.section { padding: 108px 0; }
h2 { color: var(--ink); font: 600 clamp(36px, 4vw, 55px)/1.12 var(--heading); letter-spacing: -1.8px; }
.intro { background: var(--soft); }
.intro-layout { display: grid; grid-template-columns: 1fr .8fr; gap: 120px; align-items: start; }
.intro h2 { max-width: 670px; margin: 0; }
.intro-copy p { margin: 0 0 24px; }

.audience-layout { display: grid; grid-template-columns: .85fr 1fr; gap: 110px; align-items: center; }
.portrait-photo { height: 730px; margin: 0; overflow: hidden; background: #f1f3f2; }
.portrait-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.audience h2 { margin: 0 0 20px; }
.lead { margin: 0 0 38px; color: var(--ink); font: 500 24px/1.45 var(--heading); }
.text-block { padding: 22px 0; border-top: 1px solid var(--line); }
.text-block h3 { margin: 0 0 7px; color: var(--ink); font: 600 18px/1.35 var(--sans); }
.text-block p { margin: 0; color: var(--muted); font-size: 15px; }
.audience-copy .button { margin-top: 28px; }

.campaign-view { background: var(--warm); }
.campaign-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 100px; align-items: end; }
.campaign-heading h2 { margin: 0; }
.campaign-heading p { margin: 0 0 8px; }
.wide-stock { margin: 58px 0 0; overflow: hidden; background: #ecece6; }
.wide-stock img { display: block; width: 100%; height: auto; }
.campaign-topics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; margin-top: 38px; }
.campaign-topics p { margin: 0; }
.campaign-topics strong, .campaign-topics span { display: block; }
.campaign-topics i { display: block; margin-bottom: 18px; color: var(--green-dark); font-size: 27px; }
.campaign-topics strong { color: var(--ink); font: 600 18px/1.3 var(--heading); }
.campaign-topics span { margin-top: 9px; color: #596777; font-size: 14px; line-height: 1.5; }

.founder-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: center; }
.founder h2 { margin: 0 0 28px; }
.founder-copy > p { margin: 0; }
.founder-steps { margin: 34px 0 32px; }
.founder-steps p { margin: 0; padding: 17px 0; border-top: 1px solid var(--line); font-size: 15px; }
.founder-steps strong { display: block; color: var(--ink); font-size: 16px; }
.founder-photo { height: 650px; margin: 0; overflow: hidden; background: #f1f3f2; }
.founder-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

.why { background: var(--soft); }
.why-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 100px; }
.why h2 { margin: 0; }
.why-list article { display: grid; grid-template-columns: .65fr 1fr; gap: 40px; padding: 27px 0; border-top: 1px solid #c9d1ce; }
.why-list article:last-child { border-bottom: 1px solid #c9d1ce; }
.why-list h3 { margin: 0; color: var(--ink); font: 600 19px/1.3 var(--heading); }
.why-list p { margin: 0; color: var(--muted); font-size: 15px; }

.faq-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 100px; }
.faq h2 { margin: 0; }
.faq-layout > div:first-child p { color: var(--muted); }
details { border-top: 1px solid var(--line); }
details:last-child { border-bottom: 1px solid var(--line); }
summary { display: flex; justify-content: space-between; gap: 24px; padding: 24px 0; color: var(--ink); font-weight: 600; cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
summary span { font-size: 24px; font-weight: 300; transition: transform .2s; }
details[open] summary span { transform: rotate(45deg); }
details p { max-width: 720px; margin: -3px 42px 27px 0; color: var(--muted); font-size: 15px; }

.contact { padding: 92px 0; background: var(--blue); color: white; }
.contact-layout { display: grid; grid-template-columns: 1fr .7fr; gap: 100px; align-items: start; }
.contact h2 { max-width: 650px; margin: 0; color: white; }
.contact p { color: #d8e4f1; }
.button.light { margin-top: 17px; background: white; color: var(--blue); }
.button.light:hover { background: #eff4f8; }
address { font-style: normal; }
address p { position: relative; margin: 0; padding: 16px 0 16px 34px; border-bottom: 1px solid rgba(255, 255, 255, .25); color: white!important; }
address i { position: absolute; top: 20px; left: 0; color: #a9d3f5; font-size: 20px; }
address span { display: block; color: #b9cce0; font-size: 12px; }
address a:hover { text-decoration: underline; }

.site-footer { padding: 58px 0 34px; background: white; color: #4f5e70; }
.footer-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding-bottom: 42px; }
.footer-wordmark img { width: 210px; }
.footer-main nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px 28px; max-width: 680px; font-size: 14px; }
.footer-main a:hover, .footer-legal a:hover { text-decoration: underline; }
.footer-legal { display: flex; justify-content: space-between; gap: 30px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 12px; }
.footer-legal nav { display: flex; flex-wrap: wrap; gap: 18px; }

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .menu-button { margin-left: auto; }
  .menu-button { display: flex; flex-direction: column; gap: 6px; padding: 10px 0 10px 14px; border: 0; background: none; }
  .menu-button span { width: 24px; height: 1px; background: var(--ink); }
  .mobile-menu:not([hidden]) { display: grid; width: min(var(--container), calc(100% - 48px)); margin: 0 auto; padding: 7px 0 18px; }
  .mobile-menu a { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
  .hero-layout { grid-template-columns: 1fr; gap: 50px; }
  .hero-copy { max-width: 760px; }
  .hero-photo { height: 500px; }
  .intro-layout, .audience-layout, .campaign-heading, .founder-layout, .why-layout, .faq-layout, .contact-layout { grid-template-columns: 1fr; gap: 52px; }
  .audience-copy { max-width: 720px; }
  .portrait-photo { height: 560px; }
  .founder-photo { height: 520px; }
  .campaign-topics { grid-template-columns: repeat(2, 1fr); }
  .why-list article { grid-template-columns: .7fr 1fr; }
}

@media (max-width: 650px) {
  .container { width: min(100% - 36px, var(--container)); }
  .header-inner { min-height: 67px; }
  .wordmark img { width: 160px; }
  .mobile-menu:not([hidden]) { width: calc(100% - 36px); }
  .hero { padding: 48px 0 64px; }
  .hero h1 { font-size: 45px; letter-spacing: -1.7px; }
  .hero-copy > p { margin-top: 23px; font-size: 17px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 9px; margin-top: 29px; }
  .hero-actions .button { width: 100%; }
  .hero-photo { height: 380px; }
  .assurance-inner { grid-template-columns: 1fr; padding: 22px 0; }
  .assurance p { padding: 14px 0; }
  .assurance strong { font-size: 20px; }
  .section { padding: 72px 0; }
  h2 { font-size: 38px; letter-spacing: -1.2px; }
  .intro-layout, .audience-layout, .campaign-heading, .founder-layout, .why-layout, .faq-layout, .contact-layout { gap: 38px; }
  .portrait-photo { height: 420px; }
  .founder-photo { height: 420px; }
  .lead { font-size: 22px; }
  .wide-stock { margin-top: 40px; }
  .campaign-topics { grid-template-columns: 1fr; gap: 26px; }
  .why-list article { grid-template-columns: 1fr; gap: 8px; }
  .contact { padding: 70px 0; }
  .footer-main, .footer-legal { align-items: flex-start; flex-direction: column; }
  .footer-main nav { justify-content: flex-start; }
  .footer-legal { gap: 13px; }
  .stock-slot div { margin: 17px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
