/* More Trees v2 design system — shared across redesigned pages (July 2026).
   Extracted from the 22-July design bundle; per-page styles live in assets/css/v2-*.css */

/* ===== shared block a26ec4a316 ===== */
/* ============================================================
   MOBILE responsive layer
   Loaded AFTER each page's inline <style> so it overrides
   page-specific grids and type. Breakpoints:
     · ≤1024  laptop adjust
     · ≤900   tablet (hamburger nav)
     · ≤640   mobile
   ============================================================ */

/* ---------------- 1024 — laptop ---------------- */
@media (max-width: 1024px) {
  .site-header__bar { padding: 14px 24px; }
  .site-nav { gap: 2px; }
  .site-nav__link { padding: 10px 10px; font-size: 13px; }
  .site-header__cta .btn { padding: 10px 14px; font-size: 13px; }

  /* universal section breathing */
  .ohero, .hero, .phero, .ahero, .bhero, .chero { padding-top: 100px; padding-bottom: 80px; }
  .hero h1, .ohero h1, .phero h1, .ahero h1, .bhero h1, .chero h1 { font-size: 88px; }

  /* common grid relaxations */
  .featured__grid { grid-template-columns: 1fr 1fr; }
  .featured__grid .fcard:nth-child(1) { grid-column: 1 / 3; grid-row: auto; }
  .featured__grid .fcard:nth-child(1) .fcard__media { aspect-ratio: 16 / 9; }
  .vrm__grid, .pillar-cards__grid, .narr__row, .offer__row, .cstudies__grid,
  .wwa__split, .probsol__grid, .audience__grid, .whyus__pillars,
  .pmap__select, .sites__select, .lform__shell, .cmain__inner {
    /* keep but reduce gap below */
  }
}

/* ---------------- 900 — tablet / mobile nav ---------------- */
@media (max-width: 900px) {

  /* Make the viewport min-width sane */
  html { font-size: 15px; }
  body { overflow-x: hidden; }

  /* ----- Header: hide desktop nav, show hamburger ----- */
  .site-header__bar {
    max-width: 100%;
    padding: 12px 20px;
    gap: 12px;
  }
  .site-header__brand img { height: 22px; }
  .site-nav,
  .site-header__cta { display: none !important; }
  .site-nav.is-open {
    display: flex !important;
    position: fixed; inset: 64px 0 0 0;
    z-index: 90;
    background: var(--paper);
    flex-direction: column;
    align-items: stretch;
    padding: 24px 20px 80px;
    overflow-y: auto;
    gap: 6px;
    border-top: 1px solid var(--rule-on-paper);
  }
  .site-header.on-navy .site-nav.is-open { background: var(--ink); }
  .site-nav.is-open .site-nav__dropdown { width: 100%; }
  .site-nav.is-open .site-nav__link {
    display: flex; justify-content: space-between; align-items: center;
    padding: 16px 4px;
    font-size: 17px;
    border-bottom: 1px solid var(--rule-on-paper);
    width: 100%;
  }
  .site-header.on-navy .site-nav.is-open .site-nav__link { color: var(--paper); border-bottom-color: var(--rule-on-navy); }
  .site-nav.is-open .site-nav__panel {
    position: static;
    display: block;
    box-shadow: none;
    background: var(--paper-200);
    border: 0;
    border-radius: 0;
    margin: 4px 0 12px;
    padding: 12px 0;
  }
  .site-header.on-navy .site-nav.is-open .site-nav__panel { background: var(--bg-navy-card); }
  .site-nav.is-open .site-nav__panel a {
    padding: 10px 16px;
    font-size: 14px;
  }
  .site-nav.is-open .caret { display: none; }
  .site-nav.is-open .site-nav__cta-mobile {
    margin-top: 20px;
    background: var(--ink);
    color: var(--leaf);
    padding: 16px 20px;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 700;
    display: flex; justify-content: space-between; align-items: center;
  }

  /* Hamburger button (injected by JS) */
  .site-header__burger {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 40px; height: 40px;
    border: 1px solid var(--rule-on-paper);
    border-radius: 8px;
    background: transparent;
    color: var(--ink);
    margin-left: auto;
    cursor: pointer;
    padding: 0;
  }
  .site-header.on-navy .site-header__burger {
    border-color: var(--rule-on-navy);
    color: var(--paper);
  }
  .site-header__burger svg { width: 18px; height: 18px; }
  body.menu-open { overflow: hidden; }

  /* ----- Crumbs ----- */
  .crumbs__inner { padding: 0 20px; font-size: 11px; }
  .crumbs__inner .right { display: none; }

  /* ----- Announce bar ----- */
  .announce__inner { flex-direction: column; gap: 8px; padding: 12px 20px; text-align: center; }
  .announce__left { flex-wrap: wrap; justify-content: center; }

  /* ----- Hero common ----- */
  .ohero, .hero, .phero, .ahero, .bhero, .chero, .nav-extend { padding-top: 64px; padding-bottom: 64px; min-height: 0 !important; }
  .ohero__inner, .hero__inner, .phero__inner, .ahero__inner, .bhero__inner, .chero__inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    text-align: left;
  }
  .ohero h1, .hero h1, .phero h1, .ahero h1, .bhero h1, .chero h1 {
    font-size: 44px !important;
    line-height: 1.05 !important;
  }
  .hero__lede, .ohero__lede, .phero__lede, .ahero__lede, .bhero__lede, .chero__lede {
    font-size: 17px !important;
  }
  .hero__cta, .ohero__cta, .phero__cta, .ahero__cta, .bhero__cta, .chero__cta { flex-wrap: wrap; gap: 12px; }
  .hero__built { grid-column: 1; }
  .hero__counter, .hero__field { display: none; }
  .phero__card { padding: 24px !important; }
  .phero__bg { opacity: 0.4; }

  /* ----- Common section padding + max-width relaxation ----- */
  section { padding-left: 0; padding-right: 0; }
  .container, .pstats__inner, .featured__grid, .featured__head, .select__grid, .select__head, .select__footer,
  .sdg__inner, .sdg__totals,
  .pillars__inner, .pillar-cards__grid, .pillar-cards__head,
  .platform__inner, .platform__head, .platform__modules,
  .cases__head, .cases__grid,
  .backed__inner, .backed__stats,
  .about-draw__inner,
  .final__inner,
  .integ__inner, .integ-band__inner, .integ-band__head,
  .iflow__inner, .iflow__head, .iflow__rail,
  .stack__inner, .stack__head, .stack__grid,
  .process__head, .process__rail, .process__foot,
  .sites__head, .sites__panel, .sites__select,
  .pmap__head, .pmap__panel, .pmap__select,
  .strust__inner, .impact__inner, .impact__head, .impact__row,
  .narr__inner, .narr__head, .narr__row,
  .offer__inner, .offer__head, .offer__row,
  .audience__inner, .audience__head, .audience__grid,
  .whyus__inner, .whyus__pillars,
  .wwa__inner, .wwa__head, .wwa__split, .wwa__stats,
  .probsol__inner, .probsol__head, .probsol__grid,
  .vrm__head, .vrm__grid,
  .midcta__inner,
  .cstudies__inner, .cstudies__head, .cstudies__grid,
  .scform__inner, .scform__card,
  .lform__inner, .lform__title, .lform__shell, .lform__card,
  .gallery__inner, .gallery__head, .gallery__grid,
  .geo__inner, .deckcta__inner, .deckcta__card,
  .plantdays__inner,
  .timeline__inner, .timeline__row,
  .pspecies__inner, .specgrid,
  .pathways__inner, .pathways__head,
  .pp-band__inner,
  .voice__inner,
  .sisters__inner, .sisters__head, .sisters__grid,
  .pcta__inner,
  .bhero__inner, .bfeat__inner, .barts__inner, .bnews__inner,
  .ahero__inner, .abody__inner, .arel__inner, .arel__grid,
  .vision__inner, .wedo__head, .wedo__grid, .values__head, .values__grid, .acta__inner,
  .lq__inner,
  .pillar-cards__head, .blogfeed__head, .blogfeed__grid,
  .thgeco__inner, .thgeco__panel,
  .cnext__inner, .cnext__row,
  .cfaq__inner, .cfaq__list,
  .bfeat__head, .bfeat__card, .bfeat__card .body,
  .ashare, .arel__head,
  .header__inner, .site-footer__news-inner, .site-footer__inner, .site-footer__base {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    gap: 24px !important;
  }
  .featured__grid .fcard:nth-child(1) { grid-column: 1; }
  .featured__grid .fcard:nth-child(1) .fcard__media { aspect-ratio: 4/3; }

  /* Typography globally */
  h1 { font-size: 44px !important; line-height: 1.05 !important; }
  h2 { font-size: 32px !important; line-height: 1.1 !important; }
  h3 { font-size: 22px !important; line-height: 1.2 !important; }
  h4 { font-size: 17px !important; }

  /* Heroes with big display numbers */
  .pstats__inner { grid-template-columns: 1fr 1fr !important; gap: 16px !important; padding: 32px 20px !important; }
  .pstats__inner .v { font-size: 32px !important; }
  .impact__row { grid-template-columns: 1fr 1fr !important; }
  .impact__cell { padding: 24px 16px !important; border-right: 0 !important; border-bottom: 1px solid var(--rule-on-paper); }
  .impact__cell .v { font-size: 40px !important; }
  .wwa__stats { grid-template-columns: 1fr 1fr !important; }
  .wwa__stat .v { font-size: 32px !important; }
  .sdg__totals { grid-template-columns: 1fr 1fr !important; }
  .backed__stats { grid-template-columns: 1fr 1fr !important; }

  /* Map sections (projects.html + home sites) */
  .sites__frame, .pmap__frame { border-radius: 16px 16px 0 0 !important; }
  .sites__select, .pmap__select {
    border-radius: 0 0 16px 16px !important;
    gap: 16px !important;
    padding: 20px !important;
  }
  .sites__select .selinfo h3, .pmap__select .selinfo h3 { font-size: 22px !important; }
  .selchip { font-size: 11px !important; padding: 8px 10px !important; }
  .selchips { gap: 6px !important; }
  .sites__pin .lbl, .pmap__pin .lbl { font-size: 8px !important; padding: 3px 6px !important; }

  /* Pillar / VRM cards */
  .pcard, .vrm__card { min-height: 0 !important; padding: 32px 24px 28px !important; }
  .pcard h3, .vrm__card h3 { font-size: 32px !important; }

  /* Platform accordion */
  .platform__modules { grid-template-columns: 1fr !important; }
  details.pmod summary h4 { font-size: 16px !important; }

  /* ----- Business Solutions: platform dashboard mockup ----- */
  .platform__viz-body { grid-template-columns: 1fr !important; min-height: 0 !important; }
  .platform__viz-side { border-right: 0 !important; border-bottom: 1px solid var(--rule-on-paper); padding: 18px 18px !important; }
  .platform__viz-side .brand { margin-bottom: 16px !important; }
  .platform__viz-side ul { flex-direction: row !important; flex-wrap: wrap; gap: 6px !important; }
  .platform__viz-main { grid-template-columns: 1fr 1fr !important; padding: 22px 18px !important; gap: 12px !important; }

  /* Process / timeline rails */
  .process__rail { grid-template-columns: 1fr !important; gap: 16px !important; }
  .process__rail::before { display: none !important; }
  .cnext__row { grid-template-columns: 1fr !important; }
  .cnext .narrow { display: none !important; }
  .timeline__row { grid-template-columns: 1fr 1fr !important; }
  .timeline__row::before { display: none !important; }
  .iflow__rail { grid-template-columns: 1fr !important; gap: 16px !important; }
  .iflow__arrow { display: none !important; }
  .probsol__grid { grid-template-columns: 1fr !important; }
  .probsol__arrow { display: none !important; }

  /* Featured grids → 1 col */
  .featured__grid, .vrm__grid, .pillar-cards__grid, .audience__grid, .cstudies__grid,
  .narr__row, .offer__row, .whyus__pillars, .thgeco__panel, .blogfeed__grid, .arel__grid,
  .sdg-strip__row, .pspecies__inner, .specgrid {
    grid-template-columns: 1fr !important;
  }
  .specgrid { grid-template-columns: 1fr !important; }

  /* Galleries */
  .gallery__grid { grid-template-columns: 1fr !important; }
  .gallery__grid .tile.span-2 { grid-row: auto !important; }
  .gallery__grid .tile { min-height: 220px !important; }

  /* Geo block */
  .geo__map { aspect-ratio: 16/10 !important; }

  /* Integrations sections */
  .iflow__head { grid-template-columns: 1fr !important; }
  .iflow h2 { font-size: 36px !important; }
  .iflow__pg { top: 16px !important; right: 16px !important; left: auto !important; }
  .iflow__foot { flex-direction: column; align-items: flex-start; gap: 16px; }
  .plantday-section { padding: 80px 0 !important; }
  .plantday-section h2 { font-size: 40px !important; }
  .plantday-section [style*="grid-template-columns: 1fr 32px"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .plantday-section svg[stroke="var(--green)"] { display: none; }

  /* About / who-we-are stack */
  .wwa__split { grid-template-columns: 1fr !important; gap: 24px !important; }

  /* Marketing hub in-the-wild + about + content */
  .inthewild [style*="repeat(4, 1fr)"], .inthewild [style*="grid-template-columns: repeat(4"] {
    grid-template-columns: 1fr 1fr !important;
  }

  /* CTA bands */
  .pcta__inner, .acta__inner, .final__inner, .midcta__inner, .bnews__inner {
    text-align: left !important;
    grid-template-columns: 1fr !important;
    padding: 64px 20px !important;
  }
  .pcta__cta, .final__cta, .acta__cta, .midcta__cta, .bnews__cta { flex-direction: column; align-items: flex-start; gap: 12px; }
  .pcta__cta .btn, .final__cta .btn, .midcta__cta .btn { width: 100%; justify-content: space-between; }

  /* Voice / quote */
  .voice__inner { grid-template-columns: 1fr !important; gap: 24px !important; }

  /* Sister projects strip */
  .sisters__grid { grid-template-columns: 1fr !important; gap: 12px !important; }

  /* Contact form */
  .lform__title { grid-template-columns: 1fr !important; gap: 16px !important; }
  .lform__title h2 { font-size: 36px !important; }
  .lform__shell { grid-template-columns: 1fr !important; gap: 24px !important; }
  .lform__side { position: static !important; }
  .lform__card { padding: 28px 20px !important; }
  .lgrid { grid-template-columns: 1fr !important; }
  .ltiles { grid-template-columns: 1fr !important; }
  .lamb { grid-template-columns: 1fr 1fr !important; }

  /* Submit form (biz solutions) */
  .scform__card { padding: 28px 20px !important; }
  .scform .row, .scform .row.cols-3 { grid-template-columns: 1fr !important; gap: 16px !important; }

  /* Blog */
  .bfeat__card { grid-template-columns: 1fr !important; gap: 0 !important; }
  .bfeat__card .body { padding: 28px 20px !important; }
  .bfeat__card .img { aspect-ratio: 16/9 !important; }
  .bfeat__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .bfeat__head .filter { gap: 6px; flex-wrap: wrap; }

  /* Article body */
  .ahero h1 { font-size: 44px !important; }
  .abody figure { margin-left: -20px !important; margin-right: -20px !important; }
  .abody figure img, .abody figure .img { height: 280px !important; border-radius: 0 !important; }
  .abody blockquote { margin: 32px -20px !important; padding: 24px 24px !important; }
  .abody__pull { grid-template-columns: 1fr !important; gap: 16px !important; padding: 28px !important; }
  .abody__pull .n { font-size: 64px !important; }
  .ashare { flex-direction: column; align-items: flex-start; }

  /* Trust ribbon, brand strip */
  .strust__inner { grid-template-columns: 1fr !important; gap: 20px !important; }
  .strust .row { gap: 20px !important; }
  .strust .brand { font-size: 18px !important; }
  .strust .div { display: none !important; }

  /* Headers / nav extras */
  .cobrand__inner { grid-template-columns: 1fr !important; }
  .ipart__inner { grid-template-columns: 1fr !important; }

  /* Partner pages */
  .partner__inner { grid-template-columns: 1fr !important; }
  .partner.is-flip .partner__media { order: -1; }

  /* About leader quote */
  .lq__card { padding: 32px 24px !important; }

  /* Map polygon placeholder */
  .geo__inner { grid-template-columns: 1fr !important; }

  /* ----- Home v2: trust ribbon + pressure stats ----- */
  .trust { padding: 24px 0 !important; }
  .trust__inner {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding: 0 20px !important;
    text-align: left;
  }
  .pressure { padding: 80px 0 !important; }
  .pressure__inner { padding: 0 20px !important; }
  .pressure h2 { font-size: 38px !important; line-height: 1.05 !important; margin-bottom: 32px !important; }
  .pressure__lede { font-size: 17px !important; margin-bottom: 48px !important; }
  .pressure__stats {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
    max-width: 100% !important;
  }
  .pressure__stat .v { font-size: 56px !important; }
  .pressure__stat .v .u { font-size: 24px !important; }
  .pressure__source { margin-top: 48px !important; }

  /* Footer ----- */
  .site-footer { padding-top: 0 !important; }
  .site-footer__news-inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 48px 20px !important;
  }
  .site-footer__news-art { width: 160px; height: 140px; margin: 0 auto; }
  .site-footer__news-copy h3 { font-size: 28px !important; }
  .site-footer__inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px 24px !important;
    padding: 48px 20px !important;
  }
  .site-footer__brand { grid-column: 1 / -1 !important; }
  .site-footer__base { flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px 20px !important; }
  .site-footer__base .links { flex-wrap: wrap; gap: 16px; }
}

/* ---------------- 640 — narrow mobile ---------------- */
@media (max-width: 640px) {
  html { font-size: 14px; }

  h1, .hero h1, .ohero h1, .phero h1, .ahero h1, .bhero h1, .chero h1 { font-size: 36px !important; }
  h2 { font-size: 26px !important; }

  .lamb { grid-template-columns: 1fr !important; }
  .impact__row, .wwa__stats, .sdg__totals, .backed__stats { grid-template-columns: 1fr !important; }
  .impact__cell { border-bottom: 1px solid var(--rule-on-paper); }
  .pstats__inner { grid-template-columns: 1fr !important; }
  .timeline__row { grid-template-columns: 1fr !important; }

  /* Footer cols → single column */
  .site-footer__inner { grid-template-columns: 1fr !important; }
  .site-footer__news-art { width: 120px; height: 100px; }
  .site-footer__news-copy h3 { font-size: 24px !important; }

  /* Sidebar in lform */
  .lform__side { gap: 12px !important; }

  /* Buttons stack */
  .btn { font-size: 13px !important; padding: 14px 18px !important; }

  /* Reduce big shadow / rotated card mockups */
  [style*="rotate(-2deg)"], [style*="rotate(8deg)"] { transform: none !important; }
  [style*="aspect-ratio: 5/6"], [style*="aspect-ratio: 9/16"] { aspect-ratio: auto !important; min-height: 320px; }
  /* Stop transformed PDF mockup overflowing */
  .report-mockup { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* ===== shared block b808807d9c ===== */
/* ============================================================
   More Trees by THG Eco — design tokens
   Single source of truth. Imported by every artifact in the system.
   ============================================================ */

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/d04439363ec80513.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/d04439363ec80513.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/d04439363ec80513.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/d04439363ec80513.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fccca918fea40089.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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 {
  /* ---------- Core palette (deck-aligned) ---------- */
  --navy:   #0B2545;   /* primary surface, board-room voice  */
  --ink:    #061A33;   /* deepest type, near-black on paper  */
  --paper:  #F6F3EC;   /* warm off-white, the canvas         */
  --white:  #FFFFFF;   /* on-navy body & headlines           */
  --leaf:   #7CC499;   /* signature accent — column highlights, ticks */
  --leaf-mid: #5FB27E; /* mid leaf, supporting accent        */
  --green:  #3B8A5A;   /* deeper green, body emphasis on paper */
  --green-deep: #2F8F5B; /* darker variant, type & strokes   */
  --moss:   #124734;   /* deep forest, large type on leaf    */
  --amber:  #FFD23F;   /* warning / attention — triangle indicators */

  /* ---------- Tonal extensions (derived, OKLCH-balanced) ---------- */
  --navy-900:   #06182E;
  --navy-800:   #0B2545;   /* alias of --navy */
  --navy-700:   #143360;
  --navy-600:   #1F4480;
  --navy-300:   #6E89B0;
  --navy-100:   #C9D3E2;

  --paper-200:  #ECE7DC;   /* card on paper, divider rule */
  --paper-300:  #DCD5C4;   /* hairline rule on paper       */
  --paper-500:  #A89F89;   /* muted body on paper          */

  --leaf-100:   #DDEEE2;
  --leaf-300:   #BFE2CC;
  --leaf-400:   #7CC499;   /* alias of --leaf — the signature */
  --leaf-500:   #5FB27E;
  --leaf-600:   #3B8A5A;   /* alias of --green */
  --leaf-700:   #2F8F5B;
  --leaf-800:   #124734;   /* alias of --moss */
  --leaf-900:   #0E2B1E;

  /* ---------- Semantic ---------- */
  --success:    #3B8A5A;
  --warning:    #C7892B;   /* warm amber, holds against paper */
  --info:       #2E5FA8;   /* cooler than navy, used sparingly */
  --danger:     #B23A3A;
  --muted:      #6F7A8A;

  /* ---------- Surfaces ---------- */
  --bg-paper:       var(--paper);
  --bg-paper-card:  #FBF9F4;
  --bg-navy:        var(--navy);
  --bg-navy-card:   #102C52;

  /* ---------- Foreground ---------- */
  --fg-on-paper:        var(--ink);
  --fg-on-paper-muted:  #4A586B;
  --fg-on-paper-soft:   #7A8492;
  --fg-on-navy:         var(--paper);
  --fg-on-navy-muted:   #B6C2D6;
  --fg-on-navy-soft:    #7E92B0;

  /* ---------- Borders ---------- */
  --rule-on-paper:      #DCD5C4;
  --rule-on-paper-soft: #E8E2D2;
  --rule-on-navy:       #1E3A66;
  --rule-on-navy-soft:  #14284D;

  /* ---------- Type families ---------- */
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Cormorant Garamond', 'Times New Roman', Georgia, serif; /* wordmark face only */
  --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* ---------- Type scale (px) ---------- */
  --fs-display-xl: 96px;
  --fs-display-l:  72px;
  --fs-h1:         56px;
  --fs-h2:         40px;
  --fs-h3:         28px;
  --fs-h4:         22px;
  --fs-lead:       20px;
  --fs-body:       16px;
  --fs-small:      14px;
  --fs-caption:    12px;
  --fs-eyebrow:    11px;

  /* line-height */
  --lh-tight:  1.05;
  --lh-snug:   1.15;
  --lh-normal: 1.35;
  --lh-body:   1.55;
  --lh-loose:  1.7;

  /* tracking */
  --tr-tight:    -0.02em;
  --tr-normal:    0;
  --tr-eyebrow:   0.18em;
  --tr-caps:      0.08em;

  /* weight */
  --w-light:    300;
  --w-regular:  400;
  --w-medium:   500;
  --w-semi:     600;
  --w-bold:     700;
  --w-black:    800;

  /* ---------- Spacing (8px base) ---------- */
  --s-0:  0;
  --s-1:  4px;
  --s-2:  8px;
  --s-3:  12px;
  --s-4:  16px;
  --s-5:  24px;
  --s-6:  32px;
  --s-7:  48px;
  --s-8:  64px;
  --s-9:  96px;
  --s-10: 128px;
  --s-11: 160px;

  /* ---------- Radius ---------- */
  --r-0:    0;
  --r-1:    2px;
  --r-2:    4px;
  --r-3:    8px;
  --r-pill: 999px;

  /* ---------- Layout ---------- */
  --container-tight:   960px;
  --container:        1200px;
  --container-wide:   1440px;
  --slide-w:          1920px;
  --slide-h:          1080px;
  --grid-cols:           12;
  --grid-gutter:        24px;

  /* ---------- Elevation (restrained) ---------- */
  --shadow-1: 0 1px 2px rgba(6, 26, 51, 0.06);
  --shadow-2: 0 4px 16px rgba(6, 26, 51, 0.08);
  --shadow-3: 0 12px 32px rgba(6, 26, 51, 0.12);

  /* ---------- Motion ---------- */
  --ease-standard: cubic-bezier(.2, .7, .2, 1);
  --ease-out:      cubic-bezier(.16, 1, .3, 1);
  --dur-fast:    120ms;
  --dur-base:    200ms;
  --dur-slow:    320ms;
}

/* ============================================================
   Element defaults — every artifact picks these up
   ============================================================ */

html, body {
  background: var(--bg-paper);
  color: var(--fg-on-paper);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: var(--w-regular);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-sans);
  color: var(--fg-on-paper);
  letter-spacing: var(--tr-tight);
  line-height: var(--lh-snug);
  font-weight: var(--w-bold);
  margin: 0;
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); font-weight: var(--w-black); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); font-weight: var(--w-semi); }

p { margin: 0 0 1em; }

/* Eyebrow tag, the unit that opens nearly every section in the brand */
.eyebrow {
  font-size: var(--fs-eyebrow);
  font-weight: var(--w-bold);
  letter-spacing: var(--tr-eyebrow);
  text-transform: uppercase;
  color: var(--green);
}

/* On-navy surfaces */
.on-navy { background: var(--bg-navy); color: var(--fg-on-navy); }
.on-navy h1, .on-navy h2, .on-navy h3, .on-navy h4 { color: var(--fg-on-navy); }
.on-navy .eyebrow { color: var(--leaf); }

/* Mono utility */
.mono { font-family: var(--font-mono); font-size: 12px; }

/* ===== shared block 0620a11af5 ===== */
/* ============================================================
   Site-wide chrome for moretrees.eco
   Header, footer, buttons, eyebrows, containers, primitives.
   Pages import this after tokens.css and add their own styles.
   ============================================================ */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--paper); color: var(--ink); }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

/* ---------- Containers ---------- */
.wrap     { max-width: 1280px; margin: 0 auto; padding: 0 56px; }
.wrap-wide { max-width: 1440px; margin: 0 auto; padding: 0 56px; }
.wrap-tight { max-width: 960px; margin: 0 auto; padding: 0 56px; }

/* ---------- Eyebrow ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
}
.on-navy .eyebrow { color: var(--leaf); }
.eyebrow .dot {
  width: 6px; height: 6px;
  background: currentColor;
  border-radius: 50%;
  flex: none;
}
.eyebrow .rule {
  display: inline-block;
  width: 32px; height: 1px;
  background: currentColor;
  margin-right: 4px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  border: 1px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition:
    background var(--dur-fast) var(--ease-standard),
    color var(--dur-fast) var(--ease-standard),
    border-color var(--dur-fast) var(--ease-standard),
    transform 80ms var(--ease-standard);
}
.btn:active { transform: translateY(1px); }
.btn .arr { width: 14px; height: 14px; transition: transform var(--dur-base) var(--ease-standard); }
.btn:hover .arr { transform: translateX(3px); }

.btn--primary { background: var(--ink); color: var(--paper); }
.btn--primary:hover { background: var(--navy); }
.btn--secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--secondary:hover { background: var(--ink); color: var(--paper); }
.btn--ghost { background: transparent; color: var(--ink); padding: 10px 0; border-bottom: 1px solid var(--ink); border-radius: 0; }
.btn--ghost:hover { color: var(--green); border-bottom-color: var(--green); }
.btn--accent { background: var(--green); color: var(--paper); }
.btn--accent:hover { background: var(--moss); }

.on-navy .btn--primary { background: var(--paper); color: var(--ink); }
.on-navy .btn--primary:hover { background: var(--leaf); }
.on-navy .btn--secondary { color: var(--paper); border-color: rgba(246,243,236,0.4); }
.on-navy .btn--secondary:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.on-navy .btn--ghost { color: var(--paper); border-bottom-color: var(--paper); }
.on-navy .btn--ghost:hover { color: var(--leaf); border-bottom-color: var(--leaf); }

/* ---------- Header / nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--rule-on-paper-soft);
  transition: background var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard),
              color var(--dur-base) var(--ease-standard);
}
.site-header.on-navy { background: var(--navy); color: var(--paper); border-bottom-color: var(--rule-on-navy); }
.site-header__bar {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.site-header__brand { display: flex; align-items: center; gap: 12px; }
.site-header__brand img { height: 26px; width: auto; }
.site-header__brand .tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
  border-left: 1px solid var(--rule-on-paper);
  padding-left: 12px;
}
.site-header.on-navy .site-header__brand .tag { color: var(--leaf); border-left-color: var(--rule-on-navy); }

.site-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.site-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fg-on-paper);
  letter-spacing: -0.005em;
  border-radius: 2px;
  position: relative;
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-header.on-navy .site-nav__link { color: var(--paper); }
.site-nav__link:hover { color: var(--green); }
.site-header.on-navy .site-nav__link:hover { color: var(--leaf); }
.site-nav__link[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 14px; right: 14px; bottom: 6px;
  height: 2px;
  background: var(--green);
}
.site-header.on-navy .site-nav__link[aria-current="page"]::after { background: var(--leaf); }
.site-nav__link .caret { width: 10px; height: 10px; opacity: 0.55; }

.site-nav__dropdown {
  position: relative;
}
.site-nav__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: -8px;
  min-width: 260px;
  background: var(--paper);
  border: 1px solid var(--rule-on-paper);
  box-shadow: var(--shadow-2);
  padding: 8px;
  display: none;
  z-index: 60;
}
.site-header.on-navy .site-nav__panel { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.site-nav__dropdown:hover .site-nav__panel,
.site-nav__dropdown:focus-within .site-nav__panel { display: block; }
.site-nav__panel a {
  display: grid;
  grid-template-columns: 1fr;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  border-radius: 2px;
}
.site-nav__panel a small {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
  text-transform: none;
  margin-top: 2px;
}
.site-header.on-navy .site-nav__panel a { color: var(--paper); }
.site-header.on-navy .site-nav__panel a small { color: var(--fg-on-navy-muted); }
.site-nav__panel a:hover { background: var(--paper-200); }
.site-header.on-navy .site-nav__panel a:hover { background: rgba(255,255,255,0.06); }
.site-nav__group { font-size: 10px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--green); padding: 12px 12px 4px; }
.site-nav__group:first-child { padding-top: 4px; }
.site-header.on-navy .site-nav__panel .site-nav__group { color: var(--leaf); }

.site-header__cta { display: flex; align-items: center; gap: 12px; }
.site-header__cta .phone {
  font-size: 12px;
  font-family: var(--font-mono);
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
}
.site-header.on-navy .site-header__cta .phone { color: var(--fg-on-navy-muted); }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--navy);
  color: var(--paper);
  padding: 0 0 48px;
}
.site-footer__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 64px 40px 64px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
  border-bottom: 1px solid var(--rule-on-navy);
}
.site-footer__brand { display: flex; flex-direction: column; }
.site-footer h4 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--leaf);
  margin: 0 0 20px;
}
.site-footer__brand img { height: 26px; width: auto; align-self: flex-start; margin-bottom: 20px; opacity: 0.95; }
.site-footer__brand p {
  font-size: 14px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  max-width: 38ch;
  margin: 0 0 24px;
}
.site-footer__brand .partner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--rule-on-navy);
  font-size: 12px;
  color: var(--fg-on-navy-soft);
  letter-spacing: 0.04em;
}
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a {
  font-size: 14px;
  font-weight: 500;
  color: var(--fg-on-navy-muted);
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-footer__col a:hover { color: var(--leaf); }

.site-footer__base {
  max-width: 1440px;
  margin: 0 auto;
  padding: 32px 40px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: var(--fg-on-navy-soft);
}
.site-footer__base .links { display: flex; gap: 24px; }
.site-footer__base a:hover { color: var(--leaf); }

/* ---------- Universal primitives ---------- */
.section { padding: 120px 0; }
.section--tight { padding: 80px 0; }
.section--loose { padding: 160px 0; }

.section-head {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 64px;
  margin-bottom: 64px;
  align-items: end;
}
.section-head__title { font-size: 56px; font-weight: 800; letter-spacing: -0.028em; line-height: 1.02; margin: 0; }
.section-head__sub { font-size: 18px; color: var(--fg-on-paper-muted); line-height: 1.55; max-width: 52ch; margin: 0; }
.on-navy .section-head__sub { color: var(--fg-on-navy-muted); }

.divider-rule {
  height: 1px;
  background: var(--rule-on-paper);
  margin: 0;
}
.on-navy .divider-rule { background: var(--rule-on-navy); }

/* ---------- Section heading w/ number ---------- */
.numhead { display: flex; align-items: baseline; gap: 24px; margin-bottom: 16px; }
.numhead .num {
  font-size: 14px;
  font-family: var(--font-mono);
  font-weight: 600;
  color: var(--green);
  letter-spacing: 0;
}
.on-navy .numhead .num { color: var(--leaf); }
.numhead .lbl {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
}
.on-navy .numhead .lbl { color: var(--paper); }

/* ---------- Card primitive ---------- */
.card {
  background: var(--bg-paper-card);
  border: 1px solid var(--rule-on-paper);
  padding: 32px;
  transition: border-color var(--dur-base) var(--ease-standard),
              transform var(--dur-base) var(--ease-standard);
}
.card:hover { border-color: var(--ink); }
.card--link { cursor: pointer; }
.card--link:hover { transform: translateY(-2px); }
.on-navy .card { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.on-navy .card:hover { border-color: var(--leaf); }

/* ---------- KPI ---------- */
.kpi { display: flex; flex-direction: column; gap: 4px; }
.kpi .v { font-size: 64px; font-weight: 900; letter-spacing: -0.035em; line-height: 0.95; color: var(--ink); }
.kpi .v .u { font-size: 36px; color: var(--green); font-weight: 800; margin-left: 4px; }
.kpi .l { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-on-paper-soft); margin-top: 12px; }
.kpi .d { font-size: 13px; color: var(--fg-on-paper-muted); margin-top: 4px; line-height: 1.5; }
.on-navy .kpi .v { color: var(--paper); }
.on-navy .kpi .v .u { color: var(--leaf); }
.on-navy .kpi .l { color: var(--fg-on-navy-soft); }
.on-navy .kpi .d { color: var(--fg-on-navy-muted); }

/* ---------- Chips ---------- */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--paper-200);
  color: var(--ink);
}
.chip--leaf { background: var(--leaf-100); color: var(--leaf-800); }
.chip--navy { background: var(--navy); color: var(--paper); }
.chip--ghost { background: transparent; border: 1px solid var(--rule-on-paper); color: var(--fg-on-paper-muted); }
.on-navy .chip--ghost { border-color: var(--rule-on-navy); color: var(--fg-on-navy-muted); }

/* ---------- Tag w/ tick ---------- */
.tick-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.tick-list li {
  padding-left: 28px;
  position: relative;
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-on-paper-muted);
}
.tick-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 9px;
  width: 16px; height: 8px;
  border-bottom: 1.5px solid var(--green);
  border-left: 1.5px solid var(--green);
  transform: rotate(-45deg);
  transform-origin: left;
}
.on-navy .tick-list li { color: var(--fg-on-navy-muted); }
.on-navy .tick-list li::before { border-color: var(--leaf); }

/* ---------- Reveal on scroll ---------- */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.reveal.is-in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: 0.05s; }
.reveal[data-delay="2"] { transition-delay: 0.12s; }
.reveal[data-delay="3"] { transition-delay: 0.2s; }
.reveal[data-delay="4"] { transition-delay: 0.28s; }
.reveal[data-delay="5"] { transition-delay: 0.36s; }

/* ---------- Image slot styling base ---------- */
image-slot {
  display: block;
  background: var(--bg-navy-card);
  border: 1px solid var(--rule-on-navy);
  position: relative;
  overflow: hidden;
}
image-slot::part(placeholder) { color: var(--paper); }

/* ---------- Fillable photo overlay ----------
   Laid over an existing CSS photo by js/photo-slots.js (opt-in via
   data-slot). Empty → fully transparent, so the container's background
   photo shows through, with a subtle drop affordance on hover only.
   Filled → the user's dropped image covers the stock photo. */
image-slot.photo-fill {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  display: block;
  background: transparent;
  border: 0;
  z-index: 0;
}
image-slot.photo-fill::part(frame) { background: transparent; }
image-slot.photo-fill::part(ring) { display: none; }
image-slot.photo-fill::part(empty) {
  opacity: 0;
  transition: opacity 180ms var(--ease-standard);
  background: linear-gradient(0deg, rgba(6,24,46,0.62), rgba(6,24,46,0.34));
  color: var(--paper);
  gap: 8px;
}
image-slot.photo-fill[data-editable]:hover::part(empty) { opacity: 1; }

/* ---------- New photo band ----------
   A self-contained, fillable image zone for photo-light pages. Unlike an
   overlay slot, there's no stock photo behind it, so the empty state shows a
   visible "add a photo" affordance until the user drops an image. */
.photo-band { background: var(--paper); padding: 8px 0 40px; }
.photo-band--navy { background: var(--navy); }
.photo-band__inner { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.photo-band__frame {
  position: relative;
  aspect-ratio: 21 / 8;
  border-radius: 20px;
  overflow: hidden;
  background: var(--bg-paper-card);
  border: 1px solid var(--rule-on-paper);
}
.photo-band--navy .photo-band__frame { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.photo-band__frame .caption { position: absolute; left: 22px; bottom: 18px; z-index: 2; }
.photo-band__frame image-slot.photo-fill::part(empty) {
  opacity: 1;
  background: transparent;
  color: var(--fg-on-paper-soft);
}
.photo-band__frame image-slot.photo-fill::part(ring) {
  display: block;
  border: 1.5px dashed var(--rule-on-paper);
}
.photo-band--navy .photo-band__frame image-slot.photo-fill::part(empty) { color: var(--fg-on-navy-soft); }
.photo-band--navy .photo-band__frame image-slot.photo-fill::part(ring) { border-color: var(--rule-on-navy); }
.photo-band__frame image-slot.photo-fill[data-editable]:hover::part(empty) {
  background: linear-gradient(0deg, rgba(6,24,46,0.45), rgba(6,24,46,0.25));
  color: var(--paper);
}

/* ---------- Caption (cartographic) ---------- */
.caption {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-on-paper-soft);
}
.on-navy .caption { color: var(--leaf); }

/* ---------- Tabs (used on Integrations & Home) ---------- */
.tabs__strip {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--rule-on-paper);
  margin-bottom: 48px;
}
.on-navy .tabs__strip { border-bottom-color: var(--rule-on-navy); }
.tabs__tab {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 18px 24px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--fg-on-paper-muted);
  cursor: pointer;
  position: relative;
  transition: color var(--dur-fast) var(--ease-standard);
}
.tabs__tab .num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--fg-on-paper-soft);
  margin-right: 8px;
  font-weight: 500;
}
.on-navy .tabs__tab { color: var(--fg-on-navy-muted); }
.on-navy .tabs__tab .num { color: var(--leaf); }
.tabs__tab:hover { color: var(--ink); }
.on-navy .tabs__tab:hover { color: var(--paper); }
.tabs__tab[aria-selected="true"] { color: var(--ink); }
.on-navy .tabs__tab[aria-selected="true"] { color: var(--paper); }
.tabs__tab[aria-selected="true"]::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--green);
}
.on-navy .tabs__tab[aria-selected="true"]::after { background: var(--leaf); }

.tabs__panel { display: none; }
.tabs__panel[aria-hidden="false"] { display: block; animation: fadein 320ms var(--ease-out); }
@keyframes fadein {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Accordion ---------- */
.accordion { border-top: 1px solid var(--rule-on-paper); }
.on-navy .accordion { border-top-color: var(--rule-on-navy); }
.acc-item { border-bottom: 1px solid var(--rule-on-paper); }
.on-navy .acc-item { border-bottom-color: var(--rule-on-navy); }
.acc-item__head {
  appearance: none;
  background: transparent;
  border: 0;
  width: 100%;
  padding: 28px 0;
  text-align: left;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 24px;
  cursor: pointer;
  font: inherit;
}
.acc-item__num { font-family: var(--font-mono); font-size: 12px; color: var(--green); font-weight: 600; }
.on-navy .acc-item__num { color: var(--leaf); }
.acc-item__title { font-size: 22px; font-weight: 700; letter-spacing: -0.015em; color: var(--ink); }
.on-navy .acc-item__title { color: var(--paper); }
.acc-item__plus {
  width: 24px; height: 24px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  display: grid; place-items: center;
  position: relative;
  transition: background var(--dur-fast) var(--ease-standard),
              transform var(--dur-base) var(--ease-standard);
}
.on-navy .acc-item__plus { border-color: var(--paper); }
.acc-item__plus::before,
.acc-item__plus::after {
  content: '';
  position: absolute;
  background: var(--ink);
  transition: opacity var(--dur-base) var(--ease-standard);
}
.on-navy .acc-item__plus::before,
.on-navy .acc-item__plus::after { background: var(--paper); }
.acc-item__plus::before { width: 10px; height: 1.5px; }
.acc-item__plus::after  { width: 1.5px; height: 10px; }
.acc-item[data-open="true"] .acc-item__plus::after { opacity: 0; }
.acc-item[data-open="true"] .acc-item__plus { transform: rotate(180deg); }
.acc-item__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-slow) var(--ease-standard);
}
.acc-item[data-open="true"] .acc-item__body { grid-template-rows: 1fr; }
.acc-item__body > div {
  overflow: hidden;
  padding: 0 0 0 80px;
}
.acc-item[data-open="true"] .acc-item__body > div { padding-bottom: 32px; }
.acc-item__body p {
  font-size: 16px;
  color: var(--fg-on-paper-muted);
  line-height: 1.6;
  max-width: 64ch;
}
.on-navy .acc-item__body p { color: var(--fg-on-navy-muted); }

/* ---------- Marquee / logo strip ---------- */
.logo-strip {
  overflow: hidden;
  position: relative;
  padding: 32px 0;
}
.logo-strip::before,
.logo-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 80px;
  z-index: 2;
  pointer-events: none;
}
.logo-strip::before { left: 0; background: linear-gradient(90deg, var(--paper), rgba(246,243,236,0)); }
.logo-strip::after { right: 0; background: linear-gradient(-90deg, var(--paper), rgba(246,243,236,0)); }
.on-navy .logo-strip::before { background: linear-gradient(90deg, var(--navy), rgba(11,37,69,0)); }
.on-navy .logo-strip::after { background: linear-gradient(-90deg, var(--navy), rgba(11,37,69,0)); }

.logo-strip__track {
  display: flex;
  gap: 80px;
  align-items: center;
  animation: marquee 50s linear infinite;
  width: max-content;
}
@keyframes marquee {
  to { transform: translateX(-50%); }
}
.logo-strip__item {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--fg-on-paper-soft);
  font-style: italic;
  white-space: nowrap;
  opacity: 0.7;
}
.on-navy .logo-strip__item { color: var(--fg-on-navy-muted); }


/* ---------- Footer · newsletter band + socials (pass 6) ---------- */
.site-footer__news {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid var(--rule-on-navy);
  position: relative;
  overflow: hidden;
}
.site-footer__news::before {
  /* subtle eyebrow rule across the band */
  content: '';
  position: absolute;
  top: 0; left: 40px; right: 40px;
  height: 1px;
  background: rgba(124,196,153,0.18);
}
.site-footer__news-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 72px 40px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}
.site-footer__news-art {
  display: none; /* removed — was unbalancing the band */
}
.site-footer__news-copy .eyb {
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
  margin-bottom: 14px; display: inline-flex; align-items: center; gap: 12px;
}
.site-footer__news-copy .eyb::before {
  content: '';
  width: 32px; height: 1.5px;
  background: var(--leaf);
  display: inline-block;
}
.site-footer__news-copy h3 {
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -0.028em;
  line-height: 0.98;
  color: var(--white);
  margin: 0 0 14px;
  text-wrap: balance;
}
.site-footer__news-copy h3 em {
  font-style: italic; font-family: var(--font-display);
  font-weight: 400; color: var(--leaf);
}
.site-footer__news-copy p {
  font-size: 15px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  margin: 0; max-width: 48ch;
}
.site-footer__news-form {
  display: grid;
  gap: 12px;
}
.site-footer__news-form label {
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
}
.site-footer__news-form .row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  background: var(--bg-navy-card);
  border: 1px solid rgba(124,196,153,0.25);
  border-radius: 12px;
  padding: 6px;
  transition: border-color 180ms var(--ease-standard);
}
.site-footer__news-form .row:focus-within { border-color: var(--leaf); }
.site-footer__news-form input {
  background: transparent; border: 0;
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  padding: 12px 14px;
  width: 100%;
}
.site-footer__news-form input::placeholder { color: var(--fg-on-navy-soft); }
.site-footer__news-form input:focus { outline: none; }
.site-footer__news-form button {
  background: var(--leaf);
  color: var(--ink);
  border: 0; cursor: pointer;
  padding: 12px 22px;
  font: inherit;
  font-weight: 700; font-size: 13px;
  letter-spacing: 0.02em;
  border-radius: 8px;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background 180ms var(--ease-standard);
}
.site-footer__news-form button:hover { background: var(--white); }
.site-footer__news-form small {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--fg-on-navy-soft);
}

.site-footer__socials {
  display: flex; gap: 10px;
  margin-top: 24px;
}
.site-footer__socials a {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule-on-navy);
  background: transparent;
  color: var(--fg-on-navy-muted);
  display: grid; place-items: center;
  transition: border-color 180ms, color 180ms, background 180ms;
}
.site-footer__socials a:hover {
  border-color: var(--leaf);
  color: var(--leaf);
  background: rgba(124,196,153,0.08);
}
.site-footer__socials svg { width: 16px; height: 16px; }

/* Mobile CTA clone injected by JS — hidden on desktop, only visible
   inside the mobile drawer (see css/mobile.css for the open-state styles). */
.site-nav__cta-mobile { display: none; }

@media (max-width: 960px) {
  .site-footer__news-inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 56px 32px;
  }
  .site-footer__news-copy h3 { font-size: 32px; }
}

/* ===== Empty image-slots (July 2026): render as clean neutral frames instead of
   the authoring "Drop a ..." captions until real assets are supplied ===== */
image-slot::part(empty) { visibility: hidden; }
image-slot:not([src]) { display: block; background: rgba(11, 37, 69, 0.06); border-radius: 12px; min-height: 120px; }

/* ===== Dropdown hover forgiveness (July 2026) =====
   The panel sits 8px below its trigger; crossing that gap used to drop :hover
   and snap the menu shut. Bridge the gap with an invisible hover extension and
   give the close a 250ms grace period so the menu tolerates pointer drift. */
@media (min-width: 901px) {
  /* Desktop-only: on mobile the panel is static inside the fixed drawer, so the
     absolutely-positioned ::before bridge anchored to the drawer and poked 8px
     past both screen edges (horizontal overflow). Hover forgiveness is
     meaningless on touch, so scope all of it to desktop widths. */
  .site-nav__panel {
    display: block;
    visibility: hidden;
    opacity: 0;
    transition: opacity 120ms ease, visibility 0s linear 250ms;
  }
  .site-nav__panel::before {
    content: "";
    position: absolute;
    left: -8px;
    right: -8px;
    top: -10px;
    height: 10px;
  }
  .site-nav__dropdown:hover .site-nav__panel,
  .site-nav__dropdown:focus-within .site-nav__panel {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s, 0s;
  }
}
@media (max-width: 900px) {
  .site-nav.is-open { overflow-x: hidden; }
}
/* Mobile burger state: panels are inline and always visible when open */
.site-nav.is-open .site-nav__panel {
  visibility: visible;
  opacity: 1;
  transition: none;
}

/* ===== Mobile nav repairs (July 2026) =====
   (a) The JS-injected hamburger has no desktop rule in the design bundle, so it
   rendered as an empty bordered button top-right (regression of the June fix —
   see the comment above .site-header__burger in legacy site.css). Hide it above
   the breakpoint; re-show inside it (these appended rules win the cascade).
   (b) While the drawer is open it sat at z-90 over the z-50 sticky header — and
   the announce bar pushed the header under the drawer, so the close button was
   unreachable. Hide the announce while open and lift the header above the drawer. */
.site-header__burger { display: none; }
@media (max-width: 900px) {
  .site-header__burger { display: inline-flex; }
  body.menu-open .announce { display: none; }
  body.menu-open .site-header { z-index: 95; }
}
