/* ==========================================================
   KAMINI CLINIC & LABS — About Us
   Loaded after style.css + pages.css on about.html only.
   Every class here is prefixed .ab- so nothing leaks into the
   home page or the legal pages.
========================================================== */

/* ================= MASTHEAD ================= */
/* Dark, editorial, and deliberately unlike the home hero: no rotating
   word, no search box — just a statement, a specimen label and one photo. */
.ab-mast{position:relative;overflow:hidden;padding:70px 0 96px;background:var(--teal-900);color:#fff}
/* flat ground: no graph-paper, no glow — the type carries the panel */
.ab-mast .wrap{position:relative;z-index:2}

.ab-mgrid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:64px;align-items:center}
.ab-mast .crumb{margin-bottom:22px}
.ab-mast h1{font-size:clamp(2.15rem,6.1vw,4rem);letter-spacing:-.02em;color:#fff;margin:16px 0 0}
.ab-mast h1 em{font-style:italic;color:var(--gold-soft)}
.ab-mast .lede{color:rgba(255,255,255,.74);margin-top:20px;font-size:1.05rem;max-width:54ch}

/* the "specimen label" — a frosted slide end plus stamped metadata */
.ab-slab{display:inline-flex;align-items:stretch;margin-top:30px;border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r);overflow:hidden;background:rgba(255,255,255,.03);flex-wrap:wrap}
.ab-slab::before{content:"";width:5px;flex:none;background:linear-gradient(180deg,var(--gold-soft),var(--gold-2))}
.ab-slab span{padding:10px 16px;font-size:.65rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;
  color:rgba(255,255,255,.55);border-right:1px solid rgba(255,255,255,.12);white-space:nowrap}
.ab-slab span:last-child{border-right:0}
.ab-slab b{color:var(--gold-soft);font-weight:800}

.ab-macts{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* photo composition */
.ab-mvis{position:relative}
.ab-mgold{position:absolute;right:-20px;top:-20px;width:168px;height:168px;
  border:1px solid rgba(201,162,75,.55);border-radius:var(--r-lg)}
.ab-mframe{position:relative;z-index:1;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/4.5;
  border:1px solid rgba(255,255,255,.14);box-shadow:var(--sh-lg)}
.ab-mframe img{width:100%;height:100%;object-fit:cover;object-position:52% 42%}
.ab-mframe::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,34,32,0) 42%,rgba(7,34,32,.68))}
.ab-mcard{position:absolute;z-index:2;left:-28px;bottom:36px;display:flex;align-items:center;gap:13px;
  background:var(--paper);color:var(--ink);border-radius:var(--r-lg);padding:14px 20px 14px 16px;box-shadow:var(--sh-lg)}
.ab-mcard .stars{display:block;color:var(--gold);font-size:.8rem;letter-spacing:.1em;line-height:1;margin-bottom:7px}
.ab-mcard b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:1.55rem;
  line-height:1;color:var(--teal)}
.ab-mcard small{width:74px;font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--grey-2);line-height:1.45}
.ab-mcard .dv{width:1px;align-self:stretch;background:var(--line)}

/* ================= STRADDLING STAT BAR ================= */
/* The band paints teal for its first 88px and ivory after, so the white card
   sits half on the masthead and half on the page below without any negative
   margin that could be clipped by the masthead's overflow:hidden. */
.ab-statsec{background:linear-gradient(180deg,var(--teal-900) 0 88px,var(--ivory) 88px);padding-bottom:46px}
.ab-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh);overflow:hidden}
.ab-st{padding:30px 30px 28px;border-right:1px solid var(--line-2)}
.ab-st:last-child{border-right:0}
.ab-st i{display:block;width:26px;height:2px;border-radius:2px;background:var(--gold);margin-bottom:16px}
.ab-st b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;line-height:1;
  font-size:clamp(1.85rem,3.2vw,2.6rem);color:var(--teal);letter-spacing:-.015em}
.ab-st span{display:block;margin-top:9px;font-size:.79rem;font-weight:700;color:var(--grey);line-height:1.45}

/* ================= CHAPTER RAIL ================= */
/* A second, page-local nav. It sticks just under the header (which settles at
   70px once stuck) and scrolls sideways on narrow screens. */
.ab-chap{position:sticky;top:69px;z-index:120;background:rgba(251,249,244,.93);
  backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line)}
.ab-chap .wrap{display:flex;align-items:stretch;height:56px;overflow-x:auto;scrollbar-width:none;
  -ms-overflow-style:none;scroll-behavior:smooth}
.ab-chap .wrap::-webkit-scrollbar{display:none}
.ab-chap a{position:relative;flex:none;display:inline-flex;align-items:center;gap:9px;padding:0 17px;
  font-size:.81rem;font-weight:700;color:var(--grey);white-space:nowrap;transition:color .25s var(--ease)}
.ab-chap a:first-child{padding-left:0}
.ab-chap a i{font-style:normal;font-size:.62rem;font-weight:800;letter-spacing:.1em;color:var(--gold-2);opacity:.7}
.ab-chap a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:2px;background:var(--gold);
  transition:left .32s var(--ease),right .32s var(--ease)}
.ab-chap a:hover{color:var(--teal)}
.ab-chap a.on{color:var(--teal)}
.ab-chap a.on i{opacity:1}
.ab-chap a.on::after{left:14px;right:14px}
.ab-chap a:first-child.on::after{left:0}
.ab-chap a:focus-visible{outline:2px solid var(--gold);outline-offset:-6px;border-radius:4px}

/* every section lands below the sticky header + rail when jumped to */
.ab-anchor{scroll-margin-top:132px}

/* ================= STORY ================= */
.ab-story{padding:104px 0;background:var(--ivory)}
.ab-sgrid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.ab-saside{position:sticky;top:152px}
.ab-pull{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.22;
  letter-spacing:-.012em;color:var(--ink);margin:22px 0 0}
.ab-pull em{font-style:italic;color:var(--teal)}
.ab-sign{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.ab-sign b{display:block;font-size:.9rem;font-weight:800;color:var(--ink)}
.ab-sign span{display:block;font-size:.78rem;color:var(--grey-2);margin-top:3px}

.ab-body p{color:var(--grey);font-size:1.03rem;line-height:1.86;margin-bottom:22px}
.ab-body p:last-child{margin-bottom:0}
.ab-body b{color:var(--ink);font-weight:700}
/* magazine drop cap opens the story */
.ab-body>p:first-child::first-letter{float:left;font-family:'Instrument Serif',Georgia,serif;font-size:4.2rem;
  line-height:.78;padding:8px 14px 0 0;color:var(--teal)}
.ab-marks{display:flex;flex-wrap:wrap;gap:0;margin-top:34px;border-top:1px solid var(--line)}
.ab-mark{flex:1 1 170px;padding:22px 24px 0 0;border-right:1px solid var(--line)}
.ab-mark:last-child{border-right:0;padding-right:0}
.ab-mark:not(:first-child){padding-left:24px}
.ab-mark b{display:block;font-family:'Instrument Serif',Georgia,serif;font-size:1.5rem;color:var(--teal);line-height:1}
.ab-mark span{display:block;margin-top:7px;font-size:.79rem;font-weight:700;color:var(--grey);line-height:1.45}

/* ================= JOURNEY ================= */
.ab-jour{padding:104px 0;background:var(--ivory-2)}
.ab-tl{max-width:940px;margin:0 auto}
.ab-tli{display:grid;grid-template-columns:110px 44px minmax(0,1fr);gap:0 6px;padding-bottom:30px}
.ab-tyear{text-align:right;padding-top:6px}
.ab-tyear b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:1.95rem;
  line-height:1;color:var(--teal);letter-spacing:-.01em}
.ab-tyear span{display:block;margin-top:6px;font-size:.63rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--grey-2)}

/* the spine column: a grey rule, a gold overlay that draws in on reveal,
   and a bead that fills once the item has arrived */
.ab-tspine{position:relative;display:flex;justify-content:center}
.ab-tspine::before{content:"";position:absolute;left:50%;top:8px;bottom:-30px;width:1px;
  background:var(--line);transform:translateX(-50%)}
.ab-tspine i{position:absolute;left:50%;top:8px;bottom:-30px;width:1px;transform:translateX(-50%) scaleY(0);
  transform-origin:top;background:linear-gradient(180deg,var(--gold),rgba(201,162,75,.18));
  transition:transform .95s var(--ease) .12s}
.ab-tli.in .ab-tspine i{transform:translateX(-50%) scaleY(1)}
.ab-tli:last-child .ab-tspine::before,.ab-tli:last-child .ab-tspine i{bottom:auto;height:26px}
.ab-tspine b{position:relative;z-index:1;width:13px;height:13px;margin-top:11px;border-radius:50%;
  background:var(--ivory-2);border:2px solid var(--gold);
  transition:background .5s var(--ease) .35s,box-shadow .5s var(--ease) .35s}
.ab-tli.in .ab-tspine b{background:var(--gold);box-shadow:0 0 0 5px rgba(201,162,75,.16)}

.ab-tcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 26px;
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s var(--ease)}
.ab-tcard:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:transparent}
.ab-tcard h4{font-family:'Instrument Serif',Georgia,serif;font-size:1.32rem;margin-bottom:7px}
.ab-tcard p{font-size:.92rem;color:var(--grey);line-height:1.65}
.ab-tcard .tag{display:inline-block;margin-top:13px;font-size:.62rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-2);background:var(--gold-pale);border-radius:100px;padding:5px 12px}
/* the closing item reads as "you are here" */
.ab-tli.now .ab-tcard{background:var(--teal);border-color:var(--teal);color:#fff}
.ab-tli.now .ab-tcard p{color:rgba(255,255,255,.74)}
.ab-tli.now .ab-tcard .tag{background:rgba(201,162,75,.2);color:var(--gold-soft)}
.ab-tli.now .ab-tyear b{color:var(--gold-2)}

/* ================= VISION · MISSION · VALUES ================= */
.ab-vm{position:relative;overflow:hidden;padding:104px 0;color:#fff;
  background:linear-gradient(150deg,var(--teal-2) 0%,var(--teal-900) 62%)}
.ab-vm .wrap{position:relative;z-index:1}
.ab-vm .center-head h2{color:#fff}
.ab-vm .center-head p{color:rgba(255,255,255,.7)}

.ab-vmg{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r-xl);overflow:hidden;background:rgba(255,255,255,.025)}
.ab-vmc{padding:42px 44px}
.ab-vmc+.ab-vmc{border-left:1px solid rgba(255,255,255,.13)}
.ab-vmc h3{font-size:clamp(1.45rem,2.5vw,2rem);color:#fff;margin:18px 0 14px;line-height:1.18}
.ab-vmc h3 em{font-style:italic;color:var(--gold-soft)}
.ab-vmc p{color:rgba(255,255,255,.7);font-size:.98rem;line-height:1.8}

/* values as a numbered index rather than another card grid */
.ab-vals{margin-top:62px;border-top:1px solid rgba(255,255,255,.13)}
.ab-val{position:relative;display:grid;grid-template-columns:64px minmax(0,.95fr) minmax(0,1.15fr);
  gap:26px;align-items:center;padding:26px 18px 26px 8px;border-bottom:1px solid rgba(255,255,255,.13)}
.ab-val::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .4s var(--ease);
  background:linear-gradient(90deg,rgba(201,162,75,.13),rgba(201,162,75,0) 62%)}
.ab-val:hover::before{opacity:1}
.ab-val>*{position:relative;z-index:1}
.ab-val .n{font-family:'Instrument Serif',Georgia,serif;font-size:1.75rem;line-height:1;color:var(--gold-soft);
  opacity:.55;transition:opacity .4s var(--ease),transform .4s var(--ease)}
.ab-val:hover .n{opacity:1;transform:translateX(5px)}
.ab-val h4{font-size:1.42rem;color:#fff;line-height:1.2}
.ab-val p{font-size:.93rem;color:rgba(255,255,255,.64);line-height:1.72}

/* ================= WHAT WE DO — BENTO ================= */
.ab-do{padding:104px 0;background:var(--ivory)}
.ab-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(158px,auto);gap:16px}
.ab-bt{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 26px 24px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.ab-bt:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:transparent}
.ab-bt .ic{width:44px;height:44px;flex:none;border-radius:var(--r);background:var(--teal-50);color:var(--teal);
  display:grid;place-items:center;margin-bottom:16px;transition:.4s var(--spring)}
.ab-bt .ic svg{width:22px;height:22px}
.ab-bt:hover .ic{background:var(--teal);color:#fff;transform:rotate(-5deg)}
.ab-bt h4{font-family:'Instrument Serif',Georgia,serif;font-size:1.34rem;margin-bottom:7px;line-height:1.15}
.ab-bt p{font-size:.89rem;color:var(--grey);line-height:1.68}
.ab-bt .k{margin-top:auto;padding-top:18px;font-size:.68rem;font-weight:800;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold-2);display:inline-flex;align-items:center;gap:8px}
.ab-bt .k svg{width:14px;height:14px;stroke-width:2.4;transition:transform .32s var(--ease)}
.ab-bt:hover .k svg{transform:translateX(4px)}
.ab-btags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;list-style:none}
.ab-btags li{font-size:.76rem;font-weight:700;color:var(--teal);background:var(--teal-50);
  border:1px solid var(--teal-100);border-radius:100px;padding:6px 13px}
.ab-bt.w2{grid-column:span 2}
.ab-bt.h2{grid-row:span 2}
/* dark and brass variants break the white rhythm without new components */
.ab-bt.dark{background:var(--teal);border-color:var(--teal);color:#fff}
.ab-bt.dark p{color:rgba(255,255,255,.74)}
.ab-bt.dark .ic{background:rgba(255,255,255,.12);color:#fff}
.ab-bt.dark:hover .ic{background:var(--gold);color:#2c2206}
.ab-bt.dark .k{color:var(--gold-soft)}
.ab-bt.dark .ab-btags li{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}
.ab-bt.brass{background:var(--gold-pale);border-color:#eadfc2}
.ab-bt.brass .ic{background:rgba(201,162,75,.2);color:var(--gold-2)}
.ab-bt.brass:hover .ic{background:var(--gold-2);color:#fff}
.ab-bt.photo{padding:0;min-height:210px}
/* absolute rather than a flex child, so the photo fills the tile whatever
   height the bento row settles on */
.ab-bt.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease)}
.ab-bt.photo:hover img{transform:scale(1.05)}
.ab-bt.photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 26px 22px;color:#fff;
  background:linear-gradient(0deg,rgba(7,34,32,.88),rgba(7,34,32,0))}
.ab-bt.photo figcaption b{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:1.28rem;display:block}
.ab-bt.photo figcaption span{font-size:.83rem;color:rgba(255,255,255,.76)}

/* ================= PROTOCOL + PARTNER NETWORK ================= */
.ab-qa{padding:104px 0;background:var(--paper)}
/* a hairline table rather than floating cards — reads as a printed protocol */
.ab-pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden}
.ab-pc{background:var(--paper);padding:32px 30px;transition:background .35s var(--ease)}
.ab-pc:hover{background:var(--teal-50)}
.ab-pc .n{display:block;font-family:'Instrument Serif',Georgia,serif;font-size:1.45rem;line-height:1;
  color:var(--gold-2);margin-bottom:14px}
.ab-pc h4{font-family:'Manrope',sans-serif;font-size:1rem;font-weight:800;color:var(--ink);
  letter-spacing:0;margin-bottom:8px}
.ab-pc p{font-size:.89rem;color:var(--grey);line-height:1.7}

.ab-net{margin-top:64px}
.ab-nhead{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:22px}
.ab-nhead h3{font-family:'Instrument Serif',Georgia,serif;font-size:1.6rem;margin-bottom:6px}
.ab-nhead p{font-size:.9rem;color:var(--grey);max-width:56ch}
.ab-ngrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ab-nc{background:var(--ivory);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 20px;
  transition:transform .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease)}
.ab-nc:hover{transform:translateY(-4px);background:var(--paper);border-color:var(--teal-100)}
.ab-nc b{display:block;font-size:.97rem;font-weight:800;color:var(--teal);margin-bottom:7px;line-height:1.3}
.ab-nc span{display:block;font-size:.79rem;color:var(--grey);line-height:1.6}
.ab-nfoot{display:flex;align-items:flex-start;gap:10px;margin-top:20px;font-size:.84rem;color:var(--grey)}
.ab-nfoot svg{width:16px;height:16px;color:var(--gold-2);flex:none;margin-top:3px}

/* ================= PEOPLE ================= */
.ab-team{padding:104px 0;background:var(--ivory-2)}
.ab-tgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:66px;align-items:center}
.ab-tphoto{position:relative;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--sh);aspect-ratio:5/4}
.ab-tphoto img{width:100%;height:100%;object-fit:cover}
.ab-roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
.ab-role{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 22px}
.ab-role b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:1.95rem;
  line-height:1;color:var(--teal)}
.ab-role span{display:block;margin-top:8px;font-size:.82rem;font-weight:700;color:var(--grey);line-height:1.45}
.ab-ribbon{margin-top:44px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);
  padding:30px 32px;display:flex;gap:28px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.ab-ribbon h4{font-family:'Instrument Serif',Georgia,serif;font-size:1.45rem;margin-bottom:4px}
.ab-ribbon p{font-size:.87rem;color:var(--grey)}
.ab-specs{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-top:16px}
.ab-specs li{font-size:.79rem;font-weight:700;color:var(--teal);background:var(--teal-50);
  border:1px solid var(--teal-100);border-radius:100px;padding:7px 14px;transition:.3s var(--ease)}
.ab-specs li:hover{background:var(--teal);border-color:var(--teal);color:#fff}

/* ================= VISIT ================= */
.ab-visit{padding:104px 0;background:var(--paper)}
.ab-vgrid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:44px;align-items:stretch}
.ab-vcard{background:var(--teal-900);color:#fff;border-radius:var(--r-xl);padding:38px 36px;
  display:flex;flex-direction:column;position:relative;overflow:hidden}
.ab-vcard>*{position:relative;z-index:1}
.ab-vcard h3{font-size:1.8rem;color:#fff;margin:16px 0 22px}
.ab-vrow{display:flex;gap:13px;align-items:flex-start;padding:16px 0;border-top:1px solid rgba(255,255,255,.12)}
.ab-vrow svg{width:17px;height:17px;color:var(--gold-soft);flex:none;margin-top:4px}
.ab-vrow dl{flex:1;min-width:0}
.ab-vrow dt{font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.45);margin-bottom:5px}
.ab-vrow dd{font-size:.94rem;line-height:1.6;color:#fff}
.ab-vrow dd a{color:#fff;border-bottom:1px solid rgba(201,162,75,.6);transition:.25s}
.ab-vrow dd a:hover{color:var(--gold-soft)}
.ab-vrow dd em{font-style:normal;color:rgba(255,255,255,.62)}
.ab-vhours{display:flex;justify-content:space-between;gap:14px;font-size:.88rem;margin-bottom:7px}
.ab-vhours:last-child{margin-bottom:0}
.ab-vhours span:first-child{color:rgba(255,255,255,.62)}
.ab-vhours span:last-child{font-weight:700}
.ab-vacts{display:flex;gap:11px;flex-wrap:wrap;margin-top:26px}

.ab-map{position:relative;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--sh);min-height:340px;background:var(--teal-50)}
.ab-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.88) contrast(1.02)}
.ab-areas{margin-top:26px}
.ab-areas h4{font-family:'Manrope',sans-serif;font-size:.71rem;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-2);margin-bottom:14px}
.ab-areas ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.ab-areas li{font-size:.8rem;font-weight:700;color:var(--teal);background:var(--ivory);
  border:1px solid var(--line);border-radius:100px;padding:7px 14px}
.ab-areas p{margin-top:14px;font-size:.83rem;color:var(--grey)}

/* ================= CLOSING CTA ================= */
/* brass rather than teal — nothing else on the site closes on this colour,
   and it stops the page ending on two dark blocks in a row. */
.ab-cta{padding:88px 0;background:linear-gradient(125deg,var(--gold-pale) 0%,#f9f3e4 55%,var(--ivory-2) 100%);
  border-top:1px solid #eadfc2;text-align:center;position:relative;overflow:hidden}
.ab-cta .wrap{position:relative;z-index:1}
.ab-cta .slabel{justify-content:center}
.ab-cta h2{font-size:clamp(1.9rem,4.6vw,3rem);margin:18px auto 14px;max-width:18ch}
.ab-cta p{color:var(--grey);max-width:50ch;margin:0 auto 30px}
.ab-cacts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.ab-cnote{margin-top:24px;font-size:.8rem;color:var(--grey-2)}

/* ================= RESPONSIVE ================= */
@media(max-width:1140px){
  .ab-ngrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ab-bento{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ab-bt.h2{grid-row:span 1}
}
@media(max-width:960px){
  .ab-mgrid{grid-template-columns:1fr;gap:52px}
  .ab-mvis{max-width:440px}
  .ab-mframe{aspect-ratio:5/4}
  .ab-stats{grid-template-columns:1fr 1fr}
  .ab-st:nth-child(2){border-right:0}
  .ab-st:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
  .ab-sgrid,.ab-tgrid,.ab-vgrid{grid-template-columns:1fr;gap:44px}
  .ab-saside{position:static}
  .ab-vmg{grid-template-columns:1fr}
  .ab-vmc+.ab-vmc{border-left:0;border-top:1px solid rgba(255,255,255,.13)}
  .ab-pgrid{grid-template-columns:1fr 1fr}
  .ab-val{grid-template-columns:52px minmax(0,1fr);gap:14px 20px}
  .ab-val p{grid-column:2}
  .ab-map{min-height:300px}
}
@media(max-width:820px){
  .ab-bento{grid-template-columns:1fr 1fr}
  .ab-bt.w2,.ab-bt.h2{grid-column:span 2;grid-row:span 1}
  .ab-ngrid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .ab-mast{padding:48px 0 76px}
  .ab-story,.ab-jour,.ab-vm,.ab-do,.ab-qa,.ab-team,.ab-visit{padding:70px 0}
  .ab-cta{padding:64px 0}
  .ab-slab span{padding:9px 13px;font-size:.6rem;letter-spacing:.14em}
  .ab-mcard{left:0;bottom:16px}
  .ab-statsec{background:linear-gradient(180deg,var(--teal-900) 0 60px,var(--ivory) 60px)}
  .ab-st{padding:22px 20px}
  .ab-chap .wrap{height:50px}
  .ab-chap a{font-size:.77rem;padding:0 13px}
  .ab-anchor{scroll-margin-top:118px}
  .ab-body>p:first-child::first-letter{font-size:3.4rem;padding-right:11px}
  .ab-marks{margin-top:28px}
  .ab-mark{flex-basis:50%;padding-right:16px}
  .ab-mark:nth-child(2){border-right:0}
  .ab-mark:nth-child(3){padding-left:0;border-top:1px solid var(--line);margin-top:18px}
  .ab-vmc{padding:32px 26px}
  .ab-vals{margin-top:42px}
  .ab-val{padding:22px 12px 22px 4px}
  .ab-val h4{font-size:1.24rem}
  .ab-pgrid{grid-template-columns:1fr}
  .ab-pc{padding:26px 24px}
  .ab-net{margin-top:48px}
  .ab-ngrid{grid-template-columns:1fr}
  .ab-roles{grid-template-columns:1fr 1fr;gap:10px}
  .ab-role{padding:18px 18px}
  .ab-role b{font-size:1.6rem}
  .ab-ribbon{padding:24px 22px;gap:18px}
  .ab-vcard{padding:30px 24px}
  .ab-vcard h3{font-size:1.5rem}
  .ab-tli{grid-template-columns:62px 26px minmax(0,1fr)}
  .ab-tyear b{font-size:1.4rem}
  .ab-tyear span{font-size:.58rem;letter-spacing:.11em}
  .ab-tcard{padding:18px 20px}
  .ab-tcard h4{font-size:1.18rem}
}
@media(max-width:420px){
  .ab-stats{grid-template-columns:1fr}
  .ab-st{border-right:0;border-bottom:1px solid var(--line-2)}
  .ab-st:last-child{border-bottom:0}
  .ab-marks{display:block}
  .ab-mark{border-right:0;border-top:1px solid var(--line);padding:16px 0 0}
  .ab-mark:first-child{border-top:0}
  .ab-mark:not(:first-child){padding-left:0}
  .ab-mark:nth-child(3){margin-top:0}
  .ab-bento{grid-template-columns:1fr}
  .ab-bt.w2,.ab-bt.h2{grid-column:span 1}
  .ab-roles{grid-template-columns:1fr}
  .ab-macts .btn,.ab-vacts .btn,.ab-cacts .btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .ab-tspine i{transform:translateX(-50%) scaleY(1)}
  .ab-tspine b{background:var(--gold)}
  .ab-chap .wrap{scroll-behavior:auto}
}
