/* If Studio (4.0): page styles. Scoped under .hp, built on the homepage tokens. */

/* ---- shared rhythm ---- */
.hp .ifs-sec{padding-block:130px}
.hp .ifs-head{display:flex;flex-direction:column;gap:22px;margin-bottom:64px;max-width:900px}
.hp .ifs-head.ifs-wide{max-width:1080px}
.hp .ifs-head.ifs-center{align-items:center;text-align:center;margin-inline:auto}
.hp .ifs-head.ifs-center .lead{max-width:62ch}
.hp .ifs-head .lead{max-width:720px}
.hp .ifs-split .ifs-head{margin-bottom:0}
.hp .ifs-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;align-items:start}
.hp .ifs-sticky{position:sticky;top:120px}
.hp .ifs-copy{display:flex;flex-direction:column;gap:22px;max-width:640px}
.hp .ifs-copy .body{margin:0;font-size:18px}
.hp .ifs-cta{margin-top:56px}
.hp .sg-dark .ifs-copy .body,.hp .sg-dark .ifs-p{color:var(--ink2D)}
.hp [data-open-modal]{cursor:pointer}
.hp [data-open-modal]:focus-visible{outline:3px solid var(--acc);outline-offset:4px}
.hp .sg-dark [data-open-modal]:focus-visible{outline-color:var(--accD)}

/* Newsreader italic accents inside body copy */
.hp .ifs-copy em,.hp .ifs-p em,.hp .ifs-team .body em,.hp .stats .aside em{font-family:var(--f-serif);font-style:italic}
.hp .ifs-copy em,.hp .ifs-team .body em{color:var(--acc);font-size:1.06em}

/* ---- hero ---- */
.hp .ifs-hero .hero .fig svg{max-width:560px;margin-left:auto}
.hp .ifs-hero .stats .aside em{color:var(--acc)}

/* ---- ticker ---- */
.hp .ifs-tick{overflow:hidden;padding-block:26px;border-block:1px solid var(--lineD)}
.hp .ifs-tk-track{display:flex;width:max-content;animation:ifs-tk 80s linear infinite}
.hp .ifs-tick:hover .ifs-tk-track{animation-play-state:paused}
.hp .ifs-tk-group{display:flex;flex:none}
.hp .ifs-tk-i{display:inline-flex;align-items:center;white-space:nowrap;font-stretch:72%;font-weight:800;text-transform:uppercase;font-size:24px;letter-spacing:.01em;line-height:1}
.hp .ifs-tk-i em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;font-size:1.14em;letter-spacing:0;color:var(--accD);margin-right:.3em}
.hp .ifs-tk-i::after{content:"";width:12px;height:12px;margin:0 34px;background:rgba(255,255,255,.45);-webkit-mask:var(--spark-svg) center/contain no-repeat;mask:var(--spark-svg) center/contain no-repeat}
@keyframes ifs-tk{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.hp .ifs-tk-track{animation:none}}

/* ---- dream / design / build ---- */
.hp .ifs-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.hp .ifs-step{padding:40px 40px 8px 0;display:flex;flex-direction:column;gap:16px}
.hp .ifs-step+.ifs-step{padding-left:40px;border-left:1px solid var(--line)}
.hp .ifs-num{font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;color:var(--acc)}
.hp .ifs-h3{font-stretch:var(--fs);font-weight:var(--fw2,800);text-transform:uppercase;font-size:44px;line-height:.92;letter-spacing:.004em;margin:0}
.hp .ifs-h3 em,.hp .ifs-h4 em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:var(--acc)}
.hp .ifs-step .body{margin:0}
.hp .ifs-line{margin:72px 0 0;text-align:center;font-stretch:var(--fs);font-weight:700;text-transform:uppercase;font-size:30px;line-height:1.05;letter-spacing:.004em}
.hp .ifs-line em{display:block;margin-top:8px;font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.05em;color:var(--acc)}

/* ---- mission-capacity gap ---- */
.hp .ifs-gap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:80px;align-items:start}
.hp .ifs-gap>.ifs-p{grid-column:1;margin:0 0 24px;font-size:19px;line-height:1.62;max-width:620px}
.hp .ifs-gap>.ifs-contrast{grid-column:2;grid-row:1 / span 4;position:sticky;top:120px}
.hp .ifs-p .ifs-acc{color:#fff;font-size:1.12em}
.hp .ifs-p.ifs-aside{font-family:var(--f-serif);font-style:italic;font-size:26px;line-height:1.25;color:#fff;margin-top:8px}
.hp .ifs-contrast{padding:44px 40px;border-radius:var(--rad-card,0);box-shadow:inset 0 0 0 1px var(--lineD);background:rgba(255,255,255,.04);display:flex;flex-direction:column;gap:26px}
.hp .ifs-cl{margin:0;font-stretch:var(--fs);font-weight:700;text-transform:uppercase;font-size:22px;line-height:1.12;letter-spacing:.006em}
.hp .ifs-cl em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.12em;color:var(--accD)}
.hp .ifs-cl:first-child{color:var(--ink2D)}
.hp .ifs-cl:first-child em{color:var(--ink2D)}
.hp .ifs-div{display:flex;align-items:center;gap:12px}
.hp .ifs-div span{flex:1;height:1px;background:var(--lineD)}
.hp .ifs-div i{width:8px;height:8px;border-radius:50%;background:#f2cf3c;box-shadow:0 0 0 4px rgba(246,226,112,.22),0 0 14px 2px rgba(246,226,112,.6)}

/* ---- what this is ---- */
.hp .ifs-princ{list-style:none;margin:10px 0 0;padding:0}
.hp .ifs-princ li{font-size:18px;line-height:1.45;padding:16px 0 16px 30px;border-top:1px solid var(--line);position:relative}
.hp .ifs-princ li::before{content:"";position:absolute;left:0;top:22px;width:12px;height:12px;background:var(--spark);-webkit-mask:var(--spark-svg) center/contain no-repeat;mask:var(--spark-svg) center/contain no-repeat}

/* ---- the fit ---- */
.hp .ifs-cmp .ttl{display:flex;flex-direction:column;gap:6px}
.hp .ifs-bm{font-size:40px;line-height:.9}
.hp .ifs-bm em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0}
.hp .ifs-cmp .new .ifs-bm em{color:var(--accD)}
.hp .ifs-cmp .old .ifs-bm{color:var(--ink2)}
.hp .ifs-tail{font-family:var(--f-sans);font-stretch:100%;font-weight:500;text-transform:none;font-size:18px;letter-spacing:0;line-height:1.3;opacity:.86}
.hp .ifs-flag{font-weight:700}
.hp .ifs-cmp .new .ifs-flag{color:var(--accD)}
.hp .ifs-cmp .old .ifs-flag{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:rgba(69,106,136,.55)}
.hp .ifs-cmp a{border-bottom:1.5px solid currentColor;color:var(--ink);font-weight:600}

/* ---- process (ripple) ---- */
.hp .ifs-proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--lineD)}
.hp .ifs-proc li{padding:40px 32px 8px 0;display:flex;flex-direction:column;gap:18px}
.hp .ifs-proc li+li{padding-left:32px;border-left:1px solid var(--lineD)}
.hp .ifs-rip{width:72px;height:72px;overflow:visible}
.hp .ifs-rip circle{fill:var(--accD)}
.hp .ifs-rip circle.o{fill:none;stroke:#fff;stroke-opacity:.42;stroke-width:1.1}
.hp .ifs-h4{font-stretch:var(--fs);font-weight:var(--fw2,800);text-transform:uppercase;font-size:30px;line-height:.95;letter-spacing:.004em;margin:0}
.hp .sg-dark .ifs-h4 em{color:var(--accD)}
.hp .ifs-pb{margin:0;font-size:16px;line-height:1.6;color:var(--ink2D)}

/* ---- working sessions ---- */
.hp .ifs-sessions{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;background:var(--card,#fff);box-shadow:var(--card-sh);border-radius:var(--rad-card,0);padding:56px}
.hp .ifs-ss-head{display:flex;flex-direction:column;gap:16px}
.hp .ifs-ss-head .wc{color:var(--acc)}
.hp .ifs-ss-head .ifs-h3{font-size:40px}
.hp .ifs-ss-head .body{margin:0}
.hp .ifs-ss-list{list-style:none;margin:0;padding:0;counter-reset:ss}
.hp .ifs-ss-list li{counter-increment:ss;position:relative;padding-left:44px!important;font-size:17px;line-height:1.5;padding:18px 0;border-top:1px solid var(--line);color:var(--ink2)}
.hp .ifs-ss-list li:first-child{border-top:0;padding-top:4px}
.hp .ifs-ss-list li:first-child::before{top:8px}
.hp .ifs-ss-list li::before{content:counter(ss,decimal-leading-zero);position:absolute;left:0;top:22px;font-family:var(--f-mono);font-size:13px;color:var(--acc);padding-top:4px}
.hp .ifs-ss-list strong{color:var(--ink);font-weight:650}

/* ---- team ---- */
.hp .ifs-team{display:flex;flex-direction:column;gap:22px}
.hp .ifs-team .body{margin:0;font-size:19px}
.hp .ifs-sig{will-change:transform}
.hp .names b em{font-family:var(--f-serif);font-style:italic;font-weight:400}

/* ---- proof ---- */
.hp .ifs-qs .q blockquote em{font-style:italic;background:linear-gradient(transparent 60%,rgba(245,236,138,.75) 60%);padding:0 .04em}
.hp .ifs-qs .q{gap:18px}
.hp .ifs-swipe{display:none}

/* ---- FAQ ---- */
.hp .ifs-faqwrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.hp .ifs-faqwrap .ifs-head{margin-bottom:0;position:sticky;top:120px}
.hp .ifs-faq{border-bottom:1px solid var(--line)}
.hp .ifs-faq details{border-top:1px solid var(--line)}
.hp .ifs-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:24px 0;font-weight:650;font-size:19px;line-height:1.35}
.hp .ifs-faq summary::-webkit-details-marker{display:none}
.hp .ifs-faq summary::after{content:"";flex:none;width:12px;height:12px;margin-right:4px;background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;transition:transform .25s ease;position:relative;top:1px}
.hp .ifs-faq details[open] summary::after{transform:rotate(45deg)}
.hp .ifs-faq summary:hover{color:var(--acc)}
.hp .ifs-faq summary:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
.hp .ifs-ans{padding:0 48px 26px 0}
.hp .ifs-ans p{margin:0;font-size:17px;line-height:1.62;color:var(--ink2)}
.hp .ifs-ans a{color:var(--ink);border-bottom:1.5px solid currentColor;font-weight:600}
.hp .ifs-ans em{font-family:var(--f-serif);font-style:italic;color:var(--ink)}
.hp .ifs-faqcol .ifs-cta{margin-top:44px}

/* ---- methodology on dark ---- */
.hp .ifs-meth .lines li{border-top-color:var(--lineD)}
.hp .ifs-venn{position:relative;color:#fff;container-type:inline-size}
.hp .ifs-layer{position:absolute;left:80.5%;top:53.6%;transform:translateY(-50%);display:flex;flex-direction:column;line-height:1.1;white-space:nowrap}
.hp .ifs-layer .the{font-family:var(--f-serif);font-style:italic;font-size:max(11px,2.3cqw);color:var(--ink2D)}
.hp .ifs-layer .big{font-stretch:85%;font-weight:650;font-size:max(11px,2.3cqw)}

/* ---- cultural shift ---- */
.hp .ifs-pitch .ifs-princ{margin-top:0}
.hp .ifs-impact{list-style:none;margin:0;padding:8px 0 10px;display:flex;flex-direction:column;gap:6px}
.hp .ifs-impact li{font-stretch:var(--fs);font-weight:800;text-transform:uppercase;font-size:46px;line-height:1;letter-spacing:.004em}
.hp .ifs-impact em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:var(--acc);font-size:1.04em}
.hp .ifs-sign{display:flex;align-items:center;gap:18px;margin-top:18px;padding-top:26px;border-top:1px solid var(--line)}
.hp .ifs-pics{display:flex}
.hp .ifs-pics img{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--g),0 6px 16px rgba(16,34,52,.16)}
.hp .ifs-pics img+img{margin-left:-14px}
.hp .ifs-sign .names{display:flex;flex-direction:column;gap:2px}
.hp .ifs-sign .names b{font-stretch:var(--fs);font-weight:650;font-size:22px}
.hp [data-sec="shift"] .qmom{margin-top:110px}

/* ---- closer ---- */
.hp [data-sec="closer"] .closer>div:first-child{display:flex;flex-direction:column;align-items:flex-start}
.hp [data-sec="closer"] .closer .eb{margin-bottom:26px}
.hp [data-sec="closer"] .closer .fig>svg{right:-120px;width:640px}

/* ---- booking modal (moved to <body> by the page script, carries the .hp classes) ---- */
.hp.ifs-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:transparent}
.hp.ifs-modal[hidden]{display:none!important}
.hp .ifs-mback{position:absolute;inset:0;background:rgba(11,31,48,.62);backdrop-filter:blur(3px)}
.hp .ifs-mpanel{position:relative;width:100%;max-width:820px;max-height:calc(100vh - 48px);overflow:auto;background:var(--g2,#fff);border-radius:var(--rad-card,0);box-shadow:0 40px 90px rgba(9,25,40,.42)}
.hp .ifs-mhead{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:36px 40px 22px;border-bottom:1px solid var(--line)}
.hp .ifs-mtext{display:flex;flex-direction:column;gap:12px}
.hp .ifs-mtext .wc{color:var(--acc)}
.hp .ifs-mtitle{margin:0;font-stretch:var(--fs);font-weight:var(--fw2,800);text-transform:uppercase;font-size:38px;line-height:.94;letter-spacing:.004em;text-wrap:balance}
.hp .ifs-mtitle em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:var(--acc)}
.hp .ifs-mtext .body{margin:0;font-size:16px}
.hp .ifs-mclose{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--g);color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.hp .ifs-mclose:hover{background:var(--tint)}
.hp .ifs-mbody{padding:12px 24px 24px}
.hp .ifs-mbody iframe{display:block;min-height:620px}

/* ---- phone ---- */
@container (max-width:700px){
  .hp .ifs-sec{padding-block:72px}
  .hp .ifs-head{margin-bottom:40px;gap:18px}
  .hp .ifs-split,.hp .ifs-gap,.hp .ifs-faqwrap,.hp .ifs-sessions{grid-template-columns:minmax(0,1fr);gap:32px}
  .hp .ifs-sticky,.hp .ifs-faqwrap .ifs-head,.hp .ifs-gap>.ifs-contrast{position:static}
  .hp .ifs-gap>.ifs-contrast{grid-column:1;grid-row:auto;margin:8px 0 32px}
  .hp .ifs-gap>.ifs-p{font-size:17.5px}
  .hp .ifs-long{display:none}
  .hp .ifs-hero .hero .fig svg{max-width:320px;margin-inline:auto}
  .hp .ifs-tick{padding-block:18px}
  .hp .ifs-tk-i{font-size:19px}
  .hp .ifs-tk-i::after{margin:0 22px}
  .hp .ifs-steps,.hp .ifs-proc{grid-template-columns:minmax(0,1fr)}
  .hp .ifs-step,.hp .ifs-step+.ifs-step,.hp .ifs-proc li,.hp .ifs-proc li+li{padding:28px 0;border-left:0}
  .hp .ifs-step+.ifs-step{border-top:1px solid var(--line)}
  .hp .ifs-proc li+li{border-top:1px solid var(--lineD)}
  .hp .ifs-h3{font-size:36px}
  .hp .ifs-line{font-size:23px;margin-top:40px}
  .hp .ifs-contrast{padding:28px 22px}
  .hp .ifs-cl{font-size:21px}
  .hp .ifs-bm{font-size:32px}
  .hp .ifs-sessions{padding:28px 22px}
  .hp .ifs-ss-head .ifs-h3{font-size:32px}
  .hp .ifs-qs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:calc(var(--mx) * -1);padding:4px var(--mx) 24px;scrollbar-width:none}
  .hp .ifs-qs::-webkit-scrollbar{display:none}
  .hp .ifs-qs .q{flex:0 0 86%;scroll-snap-align:center}
  .hp .ifs-swipe{display:block;margin:4px 0 0;text-align:center;color:var(--ink2);font-size:10.5px}
  .hp .ifs-faq summary{font-size:17px;padding:20px 0}
  .hp .ifs-ans{padding-right:0}
  .hp .ifs-impact li{font-size:34px}
  .hp [data-sec="shift"] .qmom{margin-top:64px}
  .hp [data-sec="closer"] .closer .fig{display:none}
  .hp .ifs-mhead{padding:24px 20px 16px}
  .hp .ifs-mtitle{font-size:28px}
  .hp .ifs-mbody{padding:8px 8px 16px}
  .hp.ifs-modal{padding:10px}
}

/* no italics outside quotes */
.hp.hp.hp .aside{font-style:normal;font-family:var(--f-sans);font-weight:600}

/* ---- QA pass: laptop and tablet fit (701 to 1140 wide) ---- */
@container (min-width:701px) and (max-width:1140px){
  .hp.t-stack .h1{font-size:clamp(52px,7.6cqw,104px)}
  .hp.t-stack .h2{font-size:clamp(36px,5.2cqw,70px)}
}

/* ---- QA pass: ledger numbers fit their cells (701 to 1140 wide) ---- */
@container (min-width:701px) and (max-width:1140px){
  .hp .stats .num{font-size:clamp(38px,4.8cqw,64px)}
  .hp .stats .wc{letter-spacing:.14em}
}

/* ---- QA pass: tablet layout for the process row and the capacity-gap block ---- */
@container (min-width:981px) and (max-width:1140px){
  .hp .ifs-proc{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container (min-width:701px) and (max-width:1140px){
  .hp .ifs-proc li:nth-child(odd){padding-left:0;border-left:0}
  .hp .ifs-proc li:nth-child(n+3){border-top:1px solid var(--lineD)}
}
@container (min-width:701px) and (max-width:980px){
  .hp .ifs-gap>.ifs-contrast{grid-column:1;grid-row:auto;position:static;margin:8px 0 32px}
}

/* ---- QA pass: quote cards are figures; drop the browser's default figure margin ---- */
.hp .qs .q{margin:0}

@container (min-width:701px) and (max-width:1000px){
  .hp .qs{grid-template-columns:minmax(0,1fr);max-width:640px;margin-inline:auto}
}

@container (min-width:701px) and (max-width:1140px){
  .hp .stats:has(.tagline){grid-template-columns:repeat(3,minmax(0,1fr))}
  .hp .stats .tagline{grid-column:1 / -1;border-left:0!important;padding-left:0!important;border-top:1px solid var(--line)}
}

/* Booking calendar placeholder while the GHL widget loads (Oct 27) */
.hp .ifs-mload{margin:0;padding:28px 4px;font-family:var(--f-mono);font-size:14px;color:var(--ink2);text-align:center}
