/* /a-plus/office-hours. Loaded after aplus.css (type, header, footer) and jobs.css (the form). */
.oh{padding:0 40px}
.oh section{max-width:1200px;margin:0 auto}
.oh .lbl{margin-bottom:18px}
.oh ol{list-style:none;margin:0;padding:0}
.oh h2.dsp{margin:0 0 48px;font-size:clamp(44px,5.4vw,80px)}

/* hero: the promise on the left, Akhil on the right */
.ohh{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;padding:130px 0 96px}
.ohh h1{margin:0;font-size:clamp(46px,5.4vw,86px)}
.ohh h1 em{font-style:normal;color:var(--acc)}
.ohh .sub{margin:28px 0 0;max-width:34ch;font:400 clamp(19px,1.6vw,23px)/1.45 'Geist',sans-serif;color:var(--grey)}
.hv{margin:28px 0 0;display:grid;gap:10px}
.hv li{position:relative;padding-left:28px;font:400 17px/1.45 'Geist',sans-serif;color:var(--grey)}
.hv li b{font-weight:500;color:var(--ink)}
.hv li::before{content:"+";position:absolute;left:0;top:-1px;font:500 20px/1 'Archivo',sans-serif;color:var(--acc)}
.ohh .act{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:40px}
.ohh .act .pill{height:56px;padding:0 30px;font-size:17px}
.ohh .act span{font:500 15px/1.3 'Geist',sans-serif}
.ohh .act span b{font-weight:500;color:var(--grey)}
.ohh figure{margin:0}
.ohh img{display:block;width:100%;max-height:620px;aspect-ratio:4/5;object-fit:cover;border-radius:20px}
.ohh figcaption{margin-top:14px;font:400 14px/1.45 'Geist',sans-serif;color:var(--grey)}
.ohh figcaption b{color:var(--ink);font-weight:500}

/* what founders get: four value cards, right after the hero */
.why{padding:96px 0;border-top:1px solid var(--line)}
.vals{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vals li{display:flex;flex-direction:column;padding:24px;border-radius:20px;background:var(--w0);border:1px solid var(--line)}
.vals .vn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--acc);color:#fff;font:500 13px/1 'Geist',sans-serif;letter-spacing:.04em}
.vals h3{margin:22px 0 10px;font:500 20px/1.25 'Geist',sans-serif;letter-spacing:-.015em}
.vals p{margin:0;font:400 15.5px/1.5 'Geist',sans-serif;color:var(--grey)}

/* how a quarter goes: four steps on one line, each ending in what you get */
.flow{padding:96px 0;border-top:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.steps::before{content:"";position:absolute;left:24px;right:24px;top:23px;height:1px;background:var(--ink);opacity:.25}
.steps li{position:relative;display:flex;flex-direction:column}
.steps .n{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--w2);border:1px solid var(--ink);font:500 15px/1 'Geist',sans-serif}
.steps li:first-child .n{background:var(--acc);border-color:var(--acc);color:#fff}
.steps .wk{margin:22px 0 8px;font:500 12px/1 'Geist',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.steps h3{margin:0 0 10px;font:500 22px/1.2 'Geist',sans-serif;letter-spacing:-.015em}
.steps p{margin:0 0 20px;font:400 15.5px/1.5 'Geist',sans-serif;color:var(--grey)}
.steps .get{margin-top:auto;padding:14px 16px;border-radius:14px;background:var(--w0);border:1px solid var(--line);font:500 15px/1.3 'Geist',sans-serif}
.steps .get span{display:block;margin-bottom:6px;font:500 11px/1 'Geist',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}

/* the weekly hour, drawn to scale */
.hour{padding:96px 0;border-top:1px solid var(--line)}
.bar{display:flex;gap:6px}
.bar li{flex:var(--m) 1 0;min-width:0}
.bar .seg{height:88px;border-radius:12px;background:var(--bone);display:flex;align-items:baseline;justify-content:center;gap:4px;padding-top:30px;font:500 14px/1 'Geist',sans-serif;color:var(--ink)}
.bar .seg b{font:500 30px/1 'Archivo',sans-serif;font-variation-settings:'wdth' 80}
.bar li.main .seg{background:var(--acc);color:#fff}
.bar h3{margin:14px 0 0;font:500 16px/1.3 'Geist',sans-serif;text-align:center}
.bar p{margin:0;font:400 14px/1.45 'Geist',sans-serif;color:var(--grey)}

/* what you get: six things, each with a small picture of what it looks like */
.get6{padding:96px 0;border-top:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card6{display:flex;flex-direction:column;padding:22px;border-radius:20px;background:var(--w0);border:1px solid var(--line)}
.card6 h3{margin:20px 0 6px;font:500 19px/1.25 'Geist',sans-serif;letter-spacing:-.01em}
.card6 p{margin:0;font:400 15px/1.5 'Geist',sans-serif;color:var(--grey)}
.card6 .when{margin-top:14px;font:500 11px/1 'Geist',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.mock{height:132px;border-radius:12px;background:var(--w1);padding:16px;display:flex;flex-direction:column;gap:9px;overflow:hidden}
.mock i{display:block;height:7px;border-radius:4px;background:rgba(27,28,30,.14)}
.mock i.s{width:55%}.mock i.m{width:75%}.mock i.h{height:10px;width:45%;background:rgba(27,28,30,.4)}
.mock .row{display:flex;align-items:center;gap:10px}
.mock .row i{flex:1}
.mock .dot{flex:0 0 10px;height:10px;border-radius:50%;background:#2E9E5B}
.mock .dot.r{background:var(--acc)}
.mock .kr{flex:0 0 38%;height:7px;border-radius:4px;background:rgba(27,28,30,.1);position:relative;overflow:hidden}
.mock .kr::after{content:"";position:absolute;inset:0;width:var(--p);background:var(--ink)}
.mock .num{font:500 13px/1 'Geist',sans-serif;color:var(--ink);flex:0 0 auto}
.mock.rs{justify-content:center;align-items:center;flex-direction:row;gap:12px}
.mock.rs b{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;border:1.5px solid var(--ink);font:500 12.5px/1.2 'Geist',sans-serif;text-align:center}
.mock.rs b:last-child{border-color:var(--acc);color:var(--acc)}
.mock .score{font:500 44px/1 'Archivo',sans-serif;font-variation-settings:'wdth' 80;color:var(--ink)}
.mock .score small{font:400 13px/1 'Geist',sans-serif;color:var(--grey);margin-left:6px}

/* in the room: photo slots. Replace each .ph.empty with an <img> (see the note in the page). */
.room{padding:96px 0;border-top:1px solid var(--line)}
.photos{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:560px}
.photos .ph{margin:0;border-radius:20px;overflow:hidden;position:relative}
.photos .ph:first-child{grid-row:1 / 3}
.photos img{width:100%;height:100%;object-fit:cover;display:block}

/* who it's for */
.fit{padding:96px 0;border-top:1px solid var(--line)}
.fit .not{margin:28px 0 0;font:400 15px/1.5 'Geist',sans-serif;color:var(--grey)}
.fit .not a{border-bottom:1px solid currentColor}

/* price band */
.price{max-width:none!important;margin:0 -40px!important;padding:96px 40px;background:var(--ink);color:#fff}
.price > div{max-width:1200px;margin:0 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.price .lbl{color:rgba(255,255,255,.6)}
.price .amt{margin:0;color:#fff!important;font-size:clamp(56px,7vw,104px)}
.price .amt small{font:400 20px/1 'Geist',sans-serif;text-transform:none;letter-spacing:0;margin-left:10px;color:rgba(255,255,255,.7)}
.price p{margin:14px 0 0;font:400 16px/1.5 'Geist',sans-serif;color:rgba(255,255,255,.7)}
.price .pill.big{flex:0 0 auto}


@media (max-width:900px){
  .oh{padding:0 16px}
  .ohh{grid-template-columns:1fr;gap:40px;padding:120px 0 64px}
  .ohh figure{max-width:420px}
  .flow,.hour,.get6,.room,.fit{padding:64px 0}
  .vals{grid-template-columns:1fr}
  .oh h2.dsp{margin-bottom:32px}
  .steps{grid-template-columns:1fr;gap:0}
  .steps::before{left:23px;right:auto;top:24px;bottom:24px;width:1px;height:auto}
  .steps li{display:grid;grid-template-columns:48px 1fr;column-gap:18px;padding-bottom:32px}
  .steps .n{grid-row:1 / 5}
  .steps .wk{margin-top:4px}
  .bar{flex-direction:column;gap:14px}
  .bar li{display:grid;grid-template-columns:72px 1fr;column-gap:14px;align-items:center}
  .bar li{grid-template-columns:96px 1fr}
  .bar .seg{height:56px;padding-top:16px;width:calc(44px + (100% - 44px) * var(--m) / 30)}
  .bar .seg b{font-size:22px}
  .bar h3{margin:0;text-align:left}
  .cards{grid-template-columns:1fr}
  .mock{height:104px}
  .photos{grid-template-columns:1fr 1fr;grid-template-rows:240px 160px;height:auto}
  .photos .ph:first-child{grid-row:auto;grid-column:1 / 3}
  .price{margin:0 -16px!important;padding:64px 16px}
}
@media (min-width:901px) and (max-width:1100px){ .cards,.vals{grid-template-columns:repeat(2,1fr)} }

/* who it's for: two moments, drawn as sports. Each animates once when it scrolls into view
   (aplus.js adds .on to .rv). Without JavaScript, or with reduced motion, they simply show. */
.moments{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mo{margin:0;border-radius:20px;background:var(--w0);border:1px solid var(--line);overflow:hidden}
.art{display:block;width:100%;height:auto;background:var(--w1)}
.mo figcaption{padding:24px 26px 28px}
.mo figcaption b{display:block;margin-bottom:10px;font-size:clamp(32px,3.2vw,48px);font-weight:500}
.mo figcaption span{display:block;max-width:40ch;font:400 17px/1.5 'Geist',sans-serif;color:var(--grey)}

.pmf .ring{stroke:var(--ink);stroke-width:1.5}
.pmf .r1,.pmf .r3{fill:var(--w0)}
.pmf .r2{fill:var(--bone)}
.pmf .eye{fill:var(--acc)}
.pmf .ripple{fill:none;stroke:var(--acc);stroke-width:2;opacity:0;transform-origin:250px 150px}
.pmf .shaft{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.pmf .head{fill:var(--ink)}
.pmf .fletch{fill:none;stroke:var(--acc);stroke-width:2.5;stroke-linecap:round}

.raise .ground{stroke:var(--ink);stroke-width:1.5}
.raise .post line{stroke:var(--ink);stroke-width:4;stroke-linecap:round}
.raise .ticks path{stroke:var(--ink);stroke-width:1.5;opacity:.45}
.raise .old{stroke:var(--ink);stroke-width:2;stroke-dasharray:6 6;opacity:.25}
.raise .bar{stroke:var(--acc);stroke-width:6;stroke-linecap:round}
.raise .arc{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round}
.raise .jumper{fill:var(--ink)}

.js .mo.rv .arrow{transform:translate(-170px,-40px);opacity:0;transition:transform .75s cubic-bezier(.2,.8,.2,1) .3s,opacity .2s .3s}
.js .mo.rv.on .arrow{transform:none;opacity:1}
.js .mo.rv.on .ripple{animation:ohRipple 1.1s ease-out 1s both}
@keyframes ohRipple{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}
.js .mo.rv .bar{transform:translateY(72px);transition:transform 1s cubic-bezier(.2,.8,.2,1) .4s}
.js .mo.rv .arc{opacity:0;transition:opacity .6s 1.2s}
.js .mo.rv .jumper{opacity:0;transform:translateY(36px);transition:opacity .4s 1.3s,transform .7s cubic-bezier(.2,.8,.2,1) 1.3s}
.js .mo.rv.on .bar,.js .mo.rv.on .jumper{transform:none}
.js .mo.rv.on .arc,.js .mo.rv.on .jumper{opacity:1}
@media (prefers-reduced-motion:reduce){
  .js .mo.rv .arrow,.js .mo.rv .bar,.js .mo.rv .arc,.js .mo.rv .jumper{transform:none;opacity:1;transition:none}
  .js .mo.rv.on .ripple{animation:none}
}
@media (max-width:900px){
  .moments{grid-template-columns:1fr}
  .mo figcaption{padding:20px 20px 24px}
}

/* in the room: one consistent black-and-white look; the two smaller photos warm to colour on hover */
.photos img{filter:grayscale(1) contrast(1.05);transition:filter .6s,transform .9s cubic-bezier(.16,1,.3,1)}
@media (hover:hover){
  .photos .ph:not(:first-child):hover img{filter:none}
  .photos .ph:hover img{transform:scale(1.03)}
}

/* proportions: the drawings sit in a shorter frame (they scale to fit, centred), and on phones
   each moment becomes a compact row — picture beside its words — instead of a tall card */
.art{height:230px}
@media (max-width:900px){
  .moments{gap:12px}
  .mo{display:grid;grid-template-columns:118px 1fr;align-items:center}
  .art{height:100%;min-height:118px}
  .mo figcaption{padding:16px 16px 16px 18px}
  .mo figcaption b{font-size:24px;margin-bottom:6px}
  .mo figcaption span{font-size:14.5px;line-height:1.45}
}

/* FAQ: a plain accordion, before the closing call to action */
.faq{padding:96px 0;border-top:1px solid var(--line)}
.qs{max-width:880px;border-top:1px solid var(--ink)}
.qs details{border-bottom:1px solid var(--line)}
.qs summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;font:500 19px/1.35 'Geist',sans-serif;letter-spacing:-.01em}
.qs summary::-webkit-details-marker{display:none}
.qs summary::after{content:"+";flex:0 0 auto;font:500 28px/1 'Archivo',sans-serif;color:var(--acc);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.qs details[open] summary::after{transform:rotate(45deg)}
.qs summary:focus-visible{outline:2px solid var(--acc);outline-offset:4px;border-radius:4px}
.qs p{margin:0 0 24px;max-width:62ch;font:400 16.5px/1.6 'Geist',sans-serif;color:var(--grey)}
.price .amt{font:500 clamp(44px,5.6vw,84px)/.95 'Archivo',sans-serif;font-variation-settings:'wdth' 74;letter-spacing:-.01em;text-transform:uppercase}
@media (max-width:900px){
  .faq{padding:64px 0}
  .qs summary{font-size:17px;padding:18px 0}
  .qs p{font-size:15.5px}
}
