/* =========================================================
   FONT FACES
   Trimmed to latin + latin-ext only (dropped cyrillic-ext and
   vietnamese ranges � re-add if you actually serve those locales)
   and to weights that are referenced elsewhere in this file.
   ========================================================= */

/* Plus Jakarta Sans � used at 700/800 in this file (900 is
   referenced by .group-label but no 900 file exists below �
   verify a 900 woff2 exists in /assets/fonts/ or change that
   rule to 800) */
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin-ext.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin-ext.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin.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;
}

/* Inter � used at 400 (body default) and 600 (buttons/links) in
   this file. 700 and 900 are referenced (.quote-person__name,
   .btn-white/.btn-black) but not hosted here � verify those
   woff2 files exist or drop down to a hosted weight. */
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-var-latin-ext.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("../fonts/inter-var-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/inter-var-latin-ext.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("../fonts/inter-var-latin.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;
}

/* Playfair Display � 900 is used directly (.hero__title). 700 is
   kept because several rules ask for 800/400, which don't exist
   as hosted files below, so the browser is currently substituting
   the nearest available weight (700). Add 400 and 800 files if
   you want exact weight rendering on .section-title,
   .section-title--lg, .process-step__title, .section-title--playfair,
   and the quote marks. */
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/playfair-display-700-latin-ext.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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/playfair-display-700-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/playfair-display-900-latin-ext.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: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/playfair-display-900-latin.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;
}

/* =========================================================
   BASE
   ========================================================= */
*{box-sizing:border-box}
body{margin:0;font-family:'Inter',sans-serif;background:#faf9f6;color:#161a1f}
a{color:inherit}

@keyframes vaeDriftB{0%{transform:translate(-5%,-3%) scale(1)}50%{transform:translate(5%,4%) scale(1.12)}100%{transform:translate(-5%,-3%) scale(1)}}
@keyframes vaeDriftB2{0%{transform:translate(4%,4%) scale(1.08)}50%{transform:translate(-4%,-5%) scale(1)}100%{transform:translate(4%,4%) scale(1.08)}}

/* shared building blocks */
.accent{color:#0BAEE9;  filter: url(#white-text-shadow);}
.icon-badge{border-radius:10px;color:#0BAEE9;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;filter: url(#white-text-shadow);}
.icon-badge--sm{width:36px;height:36px;font-size:20px;margin-bottom:18px;font-weight:800}
.icon-badge--md{width:38px;height:38px;font-size:14px;margin-bottom:22px}
.icon-badge--lg{width:52px;height:52px;border-radius:999px;font-size:17px;margin:0 auto 20px}

.section{padding:96px 64px}
.section--bordered{background:#fff;border-top:1px solid rgba(22,26,31,.08)}
.section-header{max-width:620px;margin:0 auto 56px;text-align:center}
.section-header--left{margin:0 0 56px;text-align:left}
.section-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:48px;margin-bottom:56px}
.section-split .section-header{max-width:none;margin:0}
.section-video{width:100%}
.section-video__frame{position:relative;width:100%;aspect-ratio:16/9;background:#161a1f;border-radius:16px;overflow:hidden;box-shadow:0 18px 40px rgba(22,26,31,.12)}
.section-video__media{display:block;width:100%;height:100%;object-fit:cover;background:#0f1419}
/* .section-title and .section-title--lg were identical � merged */
.section-title,.section-title--lg{font-family:'Playfair Display',sans-serif;font-size:64px;font-weight:800;margin:0 0 16px;letter-spacing:-0.01em;line-height:1.1}
.section-title--playfair{font-family:'Playfair Display',serif;font-size:64px;line-height:1.1;margin-top:14px}
.section-title__accent{color:#0BAEE9;font-style:italic;filter: url(#white-text-shadow);}
.section-desc{font-size:16px;line-height:1.6;color:#282828;margin:0;margin-top:10px;filter: url(#white-text-shadow);}
.section-desc--lg{font-size:18px;line-height:1.6;color:#282828;margin:0}
.section-quote{max-width:760px;margin:0 auto;background:#fff;border-radius:25px;padding:24px 28px;box-shadow:0 12px 32px rgba(22,26,31,.08)}
.quote-person{display:flex;align-items:center;gap:18px}
.quote-person__avatar{width:72px;height:72px;flex:0 0 72px;border-radius:999px;object-fit:cover;object-position:center}
.quote-person__content{min-width:0;flex:1;text-align:center}
.quote-person__meta{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:15px}
.quote-person__name{margin:0;font-size:14px;font-weight:700;line-height:22px;color:#161a1f;text-align:left}
.quote-person__title{font-weight:400}
.section-quote__text{position:relative;font-size:18px;line-height:1.6;color:#282828;margin:0;padding:0 39px;font-style:italic}
.section-quote__text::before,.section-quote__text::after{position:absolute;color:#0BAEE9;font-family:'Playfair Display',serif;font-size:64px;line-height:1}
.section-quote__text::before{content:"\201C";left:0;top:-2px}
.section-quote__text::after{content:"\201D";right:0;bottom:-10px}

.btn-dark{background:#161a1f;color:#faf9f6;font-weight:600;font-size:16px;padding:12px 24px;border-radius:8px;text-decoration:none;cursor:pointer;box-shadow:0 4px 14px rgba(22,26,31,.2);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn-dark:hover{background:#2a2f38;transform:translateY(-2px);box-shadow:0 8px 20px rgba(22,26,31,.28)}
.btn-primary{position:relative;display:inline-block;background:#0BAEE9;color:#fff;font-weight:600;font-size:18px;padding:17px 32px;border-radius:30px;text-decoration:none;cursor:pointer;box-shadow:0 4px 14px rgba(11,174,233,.35);transition:transform .2s ease,box-shadow .2s ease,background .2s ease; filter: url(#white-text-shadow);}
.btn-primary:hover{background:#0c9ccf;transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,174,233,.45);filter: url(#white-text-shadow);}

/* .btn-white and .btn-black shared every property except
   background � split into a shared base + two one-line modifiers */
.btn-white,.btn-black{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;color:#fff;font-family:'Inter',sans-serif;font-weight:900;font-size:18px;padding:16px 32px;min-height:56px;border-radius:100px;text-decoration:none;cursor:pointer;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);transition:transform .25s ease-in-out,box-shadow .2s ease}
.btn-white{background:#00BBFE}
.btn-black{background:#000}
.btn-white:hover,.btn-black:hover{transform:scale(1.02);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}

.position-relative{position:relative;margin:0 auto 30px;width:100%;display:flex;align-items:center}
.position-relative img{width:100%;max-width:400px}

/* header */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:28px 64px;border-bottom:1px solid rgba(22,26,31,.08)}
.logo{height:55px;width:auto}
.logo--footer{height:24px;width:auto;opacity:.8}
.site-header__right{display:flex;align-items:center;gap:36px}
.site-header__label{font-size:14px;color:#282828}

/* hero */
.hero{position:relative;padding:96px 64px 72px;text-align:center;overflow:hidden}
.hero__blobs{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero__blob{position:absolute;filter:blur(10px)}
.hero__blob--a{width:600px;height:600px;top:-260px;left:-140px;background:radial-gradient(circle,rgba(14,134,196,.14),transparent 70%);animation:vaeDriftB 24s ease-in-out infinite}
.hero__blob--b{width:520px;height:520px;top:-180px;right:-160px;background:radial-gradient(circle,rgba(14,134,196,.1),transparent 70%);animation:vaeDriftB2 28s ease-in-out infinite}
.hero__eyebrow{position:relative;display:inline-flex;align-items:center;gap:8px;color:#0BAEE9;font-size:14px;text-transform:uppercase;margin-bottom:28px}
.hero__title{position:relative;font-family:'Playfair Display',serif;font-size:90px;line-height:98px;font-weight:900;color:#000;margin:0 auto 24px;max-width:1100px}
.hero__title-accent{color:#0BAEE9;font-style:italic;filter: url(#white-text-shadow);}
.hero__lead{position:relative;font-size:16px;line-height:1.6;color:#000;max-width:960px;margin:0 auto 16px; filter: url(#white-text-shadow);}
.hero__sub{position:relative;font-size:16px;line-height:1.6;color:#282828;max-width:560px;margin:0 auto 40px}
.hero__quote{max-width:640px;margin:0 auto 40px}
.hero__quote .hero__sub{max-width:none;margin:0}

/* factors bar */
.factors-bar{padding:30px 40px;background:#ddebf0;border-top:1px solid rgba(22,26,31,.08);border-bottom:1px solid rgba(22,26,31,.08);color:#000;margin:10px;border-radius:60px}
.factors-bar__list{display:flex;flex-wrap:wrap;justify-content:center;gap:15px 10px}
/* .factor and .factor--active were byte-for-byte identical �
   merged. If the active state is supposed to look different,
   that styling was missing and needs to be added back in. */
.factor,.factor--active{font-size:14px;color:#000;display:inline-block;border-radius:25px;padding:8px 20px;background:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.factor:hover,.factor--active:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.15)}
/* .factor-sep{display:none} � left out here as truly dead, but
   verify no HTML relies on it hiding a separator element first */

/* framework section */
.framework-section{padding-bottom:20px}
.section--framework{padding:88px 64px;padding-bottom:0}
.framework-container{max-width:1480px;margin:0 auto;padding:0 12px}
.framework-kicker{font-size:13.5px;text-transform:uppercase;color:#0BAEE9;filter: url(#white-text-shadow);}
.framework-title{font-size:64px;line-height:1.2;font-weight:800;margin:14px 0 0;font-family:'Playfair Display',serif;filter: url(#white-text-shadow);}
.framework-title__accent{color:#0BAEE9;font-style:italic; filter: url(#white-text-shadow);}
.framework-lead{font-size:16px;line-height:1.6;margin:24px 0 0;color:#282828;filter: url(#white-text-shadow);}
.framework-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:56px 0 0}
.framework-card{padding:45px 34px;border-radius:18px;background:#282828;color:#fff}
.framework-card__icon{width:72px;height:72px;display:block;object-fit:contain}
.framework-card h3{font-size:42px;font-weight:900;margin:18px 0 0}
.framework-card p{font-size:16px;line-height:1.85;margin:14px 0 0;color:rgba(255,255,255,.85)}

/* pillar grid */
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:96px}
.pillar-card{position:relative;background:#fff;border:1px solid rgba(22,26,31,.08);border-radius:16px;padding:28px 26px;display:flex;flex-direction:column}
.border-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
.border-path{fill:none;stroke:#0BAEE9;stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s}
.pillar-card:hover .border-path{stroke-dashoffset:0}
.pillar-card__title{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:800;margin:0 0 10px}
.pillar-card__summary{font-size:16px;line-height:1.6;color:#282828;margin:0 0 12px}
.pillar-card__why{font-size:16px;line-height:1.6;color:#282828;margin:0 0 16px}
.learn-more{margin-top:auto;color:#0BAEE9;font-weight:600;font-size:15px;text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;padding:0;font-family:inherit;transition:color .2s ease; filter: url(#white-text-shadow);}
.learn-more:hover{color:#0c6fa3;text-decoration:underline}
.pillar-highlight{background:#0BAEE9;border-radius:16px;padding:28px 26px;display:flex;flex-direction:column;justify-content:center; filter: url(#white-text-shadow);}
.pillar-highlight__title{font-family:'Plus Jakarta Sans',sans-serif;font-size:52px;font-weight:800;margin:0 0 10px;color:#fff;line-height:56px}
.pillar-highlight__desc{font-size:16px;line-height:1.6;color:rgba(255,255,255,.85);margin:0;font-weight:500}

/* process steps */
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1100px;margin:0 auto}
.process-step{text-align:center;transition:transform .2s ease,box-shadow .2s ease;padding:20px;border-radius:16px}
.process-step:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.15)}
.process-step__title{font-family:'Playfair Display',sans-serif;font-size:34px;font-weight:800;margin:0 0 10px}
.process-step__desc{font-size:16px;line-height:1.6;color:#282828;margin:0}

/* cta section */
.section--cta{padding:96px 64px}
.section-header--cta{text-align:center;max-width:640px;margin:0 auto 48px}
.cta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1180px;margin:0 auto}
.cta-card{background:#fff;border:1px solid rgba(22,26,31,.08);border-radius:16px;padding:32px}
.cta-card--primary{background:#0BAEE9;border-radius:16px;padding:32px}
.cta-card__title{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:800;margin:0 0 10px; filter: url(#white-text-shadow);}
.cta-card__title--light{color:#fff}
.cta-card__desc{font-size:16px;line-height:1.6;color:#282828;margin:0 0 20px; filter: url(#white-text-shadow);}
.cta-card__desc--light{color:rgba(255,255,255,.85)}
.cta-link{display:inline-block;color:#0BAEE9;font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;transition:color .2s ease,transform .2s ease}
.cta-link:hover{color:#0c6fa3;transform:translateX(3px)}

/* footer */
.footer-logo-col{display:flex;flex-direction:row;align-items:center;gap:28px}
.footer-legal-nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 28px}
.footer-legal-nav a{color:#666;font-size:14px;font-weight:600;text-decoration:none;transition:color .2s ease}
.footer-legal-nav a:hover{color:#0BAEE9}
.footer-legal-nav a.is-current{color:#161a1f}
.site-footer{padding:32px 64px;border-top:1px solid rgba(22,26,31,.08);display:flex;align-items:center;justify-content:space-between}
.site-footer__text{margin:0;font-size:14px;color:#666;line-height:20px}

/* modal */
#modal-overlay{position:fixed;inset:0;background:rgba(22,26,31,.55);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:40px;z-index:100}
#modal-overlay.open{display:flex}
#modal-card{background:#fff;border-radius:20px;max-width:1140px;width:100%;max-height:82vh;overflow-y:auto;padding:44px;position:relative}
#modal-close{position:absolute;top:24px;right:24px;background:rgba(22,26,31,.06);border:none;color:#161a1f;width:32px;height:32px;border-radius:999px;font-size:16px;cursor:pointer;transition:background .2s ease,transform .2s ease}
#modal-close:hover{background:rgba(22,26,31,.14);transform:scale(1.08)}
.modal-content{display:none}
.modal-content.is-active{display:block}
.modal-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:36px;font-weight:800;margin:0 0 14px;letter-spacing:-0.01em}
.modal-intro{font-size:16px;line-height:1.6;color:#282828;margin:0 0 28px}
.modal-group{margin-bottom:22px}
.group-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#0BAEE9;margin:0 0 10px}
.item-row{display:flex;gap:10px;padding:7px 0;font-size:14.5px;line-height:1.5;color:#282828}
.item-row>span:first-child{color:#0BAEE9}
.why-box{margin-top:16px;padding:18px 20px;background:rgba(14,134,196,.06);border:1px solid rgba(14,134,196,.2);border-radius:12px}
.why-box__text{font-size:13.5px;line-height:1.6;color:#282828;margin:0}

/* back to top */
.scroll-top{width:50px;height:75px;background:#0BAEE9;text-align:center;line-height:42px;font-size:20px;color:#fff;border-radius:20px 20px 0 0;position:fixed;bottom:-100px;right:30px;z-index:99999;cursor:pointer;opacity:0;box-shadow:0 4px 14px rgba(22,26,31,.25);transition:.5s ease-in-out,box-shadow .2s ease,background .2s ease;text-decoration:none;display:block}
.scroll-top.show{bottom:0;opacity:1}
.scroll-top.hide{bottom:-100px;opacity:0}
.scroll-top:hover{background:#0c9ccf;box-shadow:0 8px 20px rgba(22,26,31,.32)}

/* faq section */
.faq-container{max-width:1100px;margin:0 auto}
.faq-section{background:#f3f5f5}
.custom-accordion .accordion-item{border:1px solid rgba(77,139,209,.14);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 14px 34px rgba(18,42,76,.05);padding:0 30px;margin-bottom:10px}
.accordion-header{margin:0}
.custom-accordion .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:20px 50px 20px 0;border:0;background:transparent;color:#222;font-size:18px;font-weight:400;line-height:1.4;text-align:left;cursor:pointer;font-family:'Playfair Display',sans-serif}
.custom-accordion .accordion-button:focus{outline:none;box-shadow:none}
.custom-accordion .accordion-button::after{content:"";position:absolute;right:5px;top:50%;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .3s ease}
.custom-accordion .accordion-button[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
.custom-accordion .accordion-collapse{display:none}
.custom-accordion .accordion-body{padding:0 50px 20px 0}
.custom-accordion .accordion-body p{margin:0;color:#282828;font-size:16px;line-height:1.7}

.founders-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #282828;color:#282828;font-family:'Inter',sans-serif;font-size:14px;text-transform:uppercase;padding:6px 16px;border-radius:10px}

.highlight{background-color:#ffeb3b;color:#000;padding:0 4px;border-radius:3px}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:767px){
  .custom-accordion .accordion-button{padding:16px 40px 16px 0;font-size:16px}
  .custom-accordion .accordion-body{padding:0 30px 16px 0}
}

@media (max-width:991px){
  .section--framework{padding:80px 32px}
  .framework-grid{grid-template-columns:1fr}
}
@media (max-width:1240px){
  .pillar-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .section-split{grid-template-columns:1fr;gap:32px;margin-top:40px}
  .pillar-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:repeat(2,1fr)}
  .cta-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .pillar-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}
  .process-grid{grid-template-columns:1fr;max-width:420px}
  .cta-grid{grid-template-columns:1fr;max-width:420px}
}

/* tablet + mobile shared: trimmed spacing and stacked hero title
   (both former 1024px blocks merged into one) */
@media (max-width:1024px){
  .site-header{padding:24px 32px}
  .hero{padding:72px 32px 56px}
  .factors-bar{padding:36px 32px}
  .section{padding:64px 32px}
  .section--cta{padding:72px 32px}
  .site-footer{padding:28px 32px}
  .hero__title{display:flex;flex-direction:column;gap:10px}
}

@media (max-width:768px){
  .section-title,.section-title--lg{font-size:40px}
}

@media (max-width:600px){
  .framework-title{font-size:40px;line-height:1.1;  filter: url(#white-text-shadow);}
  .pillar-highlight__title{font-size:30px;line-height:35px}
  .site-header{padding:18px 20px;justify-content:center}
  .site-header__right{display:none}
  .site-header__label{display:none}
  .hero{padding:56px 20px 44px}
  .hero__title{font-size:52px;line-height:50px}
  .hero__lead{font-size:16px}
  .hero__sub{font-size:14.5px}
  .hero__blob--a{width:340px;height:340px;top:-160px;left:-110px}
  .hero__blob--b{width:280px;height:280px;top:-100px;right:-90px}
  .btn-primary{padding:14px 26px;font-size:15px}
  .factors-bar{padding:28px 20px}
  .factors-bar__list{gap:8px 10px}
  .factor,.factor--active{font-size:14px}
  .section{padding:48px 20px}
  .section-header{margin:0 auto 36px}
  .section-title--playfair{font-size:40px;line-height:1.1}
  .section-quote{padding:20px 18px}
  .quote-person{align-items:flex-start;gap:14px}
  .quote-person__meta{gap:12px;margin-top:16px}
  .quote-person__avatar{width:56px;height:56px;flex-basis:56px}
  .quote-person__name{font-size:12px}
  .section-quote__text{font-size:16px;padding:0 14px}
  .pillar-card,.cta-card,.cta-card--primary{padding:24px 20px}
  .btn-white,.btn-black{width:100%;padding:14px 20px;min-height:48px;font-size:14px}
  .process-grid{gap:32px}
  .section--cta{padding:56px 20px}
  .section-desc--lg{font-size:18px;filter: url(#white-text-shadow);}
  .site-footer{padding:24px 20px;flex-direction:column;gap:12px;text-align:center}
  .footer-logo-col{flex-direction:column;align-items:center;gap:10px}
  .footer-legal-nav{justify-content:center;gap:8px 18px}
  #modal-overlay{padding:16px}
  #modal-card{padding:28px;max-height:88vh}
  .modal-title{font-size:22px}
  .scroll-top{right:16px;width:42px;height:60px}
}

/* legal / policy pages (privacy, terms, accessibility, etc.) */
.legal-hero{padding:64px 64px 40px;text-align:center}
.legal-hero__title{font-family:'Playfair Display',serif;font-size:56px;font-weight:800;line-height:1.1;margin:20px 0 14px;color:#000}
.legal-hero__meta{font-size:14px;color:#666;margin:0}
.legal-wrap{max-width:1100px;margin:0 auto;padding:0 64px 96px}
.legal-back{display:inline-flex;align-items:center;gap:6px;color:#0BAEE9;font-weight:600;font-size:14px;text-decoration:none;margin-bottom:8px}
.legal-back:hover{text-decoration:underline}
.legal-toc{background:#fff;border:1px solid rgba(22,26,31,.08);border-radius:16px;padding:28px 32px;margin-bottom:48px}
.legal-toc__title{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#0BAEE9;margin:0 0 14px}
.legal-toc ol{margin:0;padding-left:20px;columns:2;column-gap:32px}
.legal-toc li{font-size:15px;line-height:1.9;color:#282828}
.legal-toc a{color:#161a1f;text-decoration:none}
.legal-toc a:hover{color:#0BAEE9;text-decoration:underline}
.legal-section{margin-bottom:44px;scroll-margin-top:24px}
.legal-section h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:26px;font-weight:800;margin:0 0 14px;letter-spacing:-0.01em}
.legal-section h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:700;margin:22px 0 10px}
.legal-section p{font-size:16px;line-height:1.7;color:#282828;margin:0 0 14px}
.legal-section ul,.legal-section ol{font-size:16px;line-height:1.7;color:#282828;margin:0 0 14px;padding-left:22px}
.legal-section li{margin-bottom:8px}
.legal-section a{color:#0BAEE9;font-weight:600;text-decoration:none}
.legal-section a:hover{text-decoration:underline}
.legal-section table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:15px}
.legal-section th,.legal-section td{text-align:left;padding:10px 14px;border:1px solid rgba(22,26,31,.1)}
.legal-section th{background:#f3f5f5;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700}
.legal-contact{background:#f3f5f5;border-radius:16px;padding:28px 32px}
.legal-contact p{margin:0 0 6px;font-size:15px;line-height:1.7;color:#282828}

@media (max-width:767px){
  .legal-hero{padding:48px 20px 32px}
  .legal-hero__title{font-size:36px}
  .legal-wrap{padding:0 20px 64px}
  .legal-toc{padding:22px 20px}
  .legal-toc ol{columns:1}
  .legal-section h2{font-size:22px}
}

.footer-brand-family-wrap{max-width:1180px;margin:4rem auto 0;margin-bottom: 40px;margin-top: 0px}
.footer-brand-family-card{padding:1rem 1.5rem;border:1px solid rgba(22,26,31,.08);border-radius:28px;background:#fff;text-align:center}
.footer-brand-family-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:center}
.footer-brand-family-item{min-height:50px;padding:.25rem;border-radius:20px;display:flex;align-items:center;justify-content:center}
.footer-brand-family-item img{width:min(100%,320px);height:auto;display:block;min-height:49px;object-fit:scale-down}
@media (max-width:1024px){
  .footer-brand-family-wrap{padding:0 32px}
}
@media (max-width:991.98px){
  .footer-brand-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:575.98px){
  .footer-brand-family-wrap{margin-top:3rem;padding:0 20px}
  .footer-brand-family-card{padding:2rem 1rem;border-radius:22px}
  .footer-brand-family-grid{grid-template-columns:1fr;gap:1rem}
  .footer-brand-family-item{min-height:110px}
}
.section-title{filter: url(#white-text-shadow);}