/* ============ REVERA v3 layer — loaded after styles.css ============ */

/* Hero: guarantee two lines, tiles lifted */
.hero h1{max-width:12ch}
.hero-inner{padding-block:8rem 2.4rem}

/* Sector tiles: image-backed, headings only */
.hero-portals{margin-top:3.2rem;gap:1.1rem}
.portal{min-height:150px;display:flex;align-items:flex-end;padding:1.2rem 1.4rem;isolation:isolate;border:1px solid rgba(181,212,244,.28)}
.portal img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.portal::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--pc) 18%,transparent) 0%,color-mix(in srgb,var(--pc) 55%,#031A31) 100%);mix-blend-mode:multiply;transition:opacity .4s}
.portal::before{z-index:1}
.portal:hover img{transform:scale(1.07)}
.portal .p-name{position:relative;z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.35);font-size:1.35rem}
.portal .p-go{z-index:2}
@media (max-width:820px){.portal{min-height:96px}}

/* Compact showcase */
.show-card{min-height:340px}
.show-body{padding:1.6rem 1.7rem}

/* Wave separator */
.wave-sep{display:block;width:100%;height:64px;margin-bottom:-1px}
.wave-sep path{fill:var(--wsfill,#042C53)}

/* River: smaller card + hint */
.river-card{width:min(300px,84vw);padding:1.25rem 1.35rem}
.river-card h3{font-size:1.18rem}
.river-card p{font-size:.86rem}
.river-card .rc-next{display:block;margin-top:.7rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#6E9FCB;font-weight:600}

/* Parallax media */
[data-parallax] img{will-change:transform;transform:translateY(var(--py,0)) scale(1.12)}

/* ============ Expertise: rotating hero ============ */
.rotator{position:relative;min-height:72svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;background:var(--grad-deep)}
.rotator .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease);z-index:-2}
.rotator .slide img{width:100%;height:100%;object-fit:cover}
.rotator .slide.on{opacity:1}
.rotator .slide.on img{animation:kenburns 16s var(--ease) both}
.rotator .hero-scrim{z-index:-1}
.rot-inner{position:relative;z-index:2;padding-block:8.5rem 3rem;width:100%}
.rot-label{display:inline-flex;align-items:center;gap:.6rem;padding:.5rem 1.05rem;border-radius:999px;background:rgba(6,36,66,.5);border:1px solid rgba(181,212,244,.3);backdrop-filter:blur(10px);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#CFE4F7;margin-bottom:1.3rem}
.rot-label i{width:8px;height:8px;border-radius:50%;background:var(--rc,#57BE96);transition:background .6s}
.rotator h1{color:#fff}
.rotator .lead{color:#C7DCF1;margin-top:1rem}
.rot-dots{display:flex;gap:.55rem;margin-top:2rem}
.rot-dots button{width:34px;height:4px;border-radius:2px;border:0;background:rgba(255,255,255,.28);cursor:pointer;transition:background .3s}
.rot-dots button[aria-current="true"]{background:#57BE96}

/* ============ Expertise: horizontal tab bar ============ */
.xp-tabsbar{position:sticky;top:0;z-index:90;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--hairline)}
.xp-tabsbar .wrap{display:flex;gap:.4rem;overflow-x:auto}
.xp-tabsbar .xp-tab{border-radius:0;border:0;border-bottom:3px solid transparent;padding:1.05rem 1.3rem;background:none!important;box-shadow:none!important;flex:none}
.xp-tabsbar .xp-tab[aria-selected="true"]{border-bottom-color:var(--tc,#1D9E75);color:var(--channel-dark)}
.xp-tabsbar .chip{width:30px;height:30px}
.xp-tabsbar .chip svg{width:15px;height:15px}

/* ============ Expertise: panel banner ============ */
.xp-banner{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff;isolation:isolate;margin-bottom:2.6rem}
.xp-banner img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.xp-banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--pc) 10%,transparent) 20%,color-mix(in srgb,var(--pc) 68%,#031A31) 100%);mix-blend-mode:multiply}
.xp-banner .xb-body{position:relative;z-index:2;padding:2.4rem;max-width:640px}
.xp-banner h2{color:#fff}
.xp-banner .lead{color:rgba(230,241,251,.92);margin-top:.7rem;font-size:1.08rem}
.xp-banner .eyebrow{color:#9FE0C6}

/* ============ Service stream carousel ============ */
.stream{width:min(100%,80vw);margin-inline:auto;position:relative}
@media (max-width:940px){.stream{width:100%}}
.stream-viewport{overflow:hidden;padding:1.2rem 0 .4rem}
.stream-track{display:flex;gap:1.2rem;transition:transform .8s var(--ease);will-change:transform}
.stream-card{flex:0 0 min(400px,82%);background:var(--raised);border:1px solid var(--hairline);border-radius:var(--r);padding:1.9rem 1.8rem;opacity:.45;transform:scale(.96);transition:opacity .6s var(--ease),transform .6s var(--ease),box-shadow .6s var(--ease)}
.stream-card.on{opacity:1;transform:scale(1);box-shadow:var(--shadow-1)}
.stream-card .sc-top{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.stream-card .sc-num{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--pc,#185FA5)}
.stream-card h3{font-family:var(--sans);font-size:1.12rem;font-weight:600;letter-spacing:0;color:var(--ink)}
.stream-card p{font-size:.92rem;color:var(--slate)}
.stream-nav{display:flex;align-items:center;gap:1.2rem;margin-top:1.4rem}
.stream-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(12,68,124,.25);background:var(--raised);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--channel-dark);transition:.3s var(--ease)}
.stream-btn:hover{border-color:var(--channel-dark);transform:translateY(-2px)}
.stream-btn svg{width:16px;height:16px}
.stream-rail{flex:1;display:flex;gap:.4rem}
.stream-rail button{flex:1;height:4px;border-radius:2px;border:0;background:rgba(12,68,124,.14);cursor:pointer;position:relative;overflow:hidden}
.stream-rail button.on::after{content:"";position:absolute;inset:0;background:var(--pc,#1D9E75);border-radius:2px;transform-origin:left;animation:railfill var(--dur,7s) linear forwards}
@keyframes railfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.stream-rail button.on::after{animation:none;transform:none}}
.stream-rail button.done::after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--pc,#1D9E75) 45%,transparent);border-radius:2px}

/* ============ Why Revera: photo visuals + photo trio ============ */
.edit-visual{min-height:300px}
.edit-visual .duo{position:absolute;inset:0;mix-blend-mode:multiply;background:linear-gradient(160deg,color-mix(in srgb,var(--vc,#0C447C) 34%,transparent),color-mix(in srgb,var(--vc,#0C447C) 66%,#04203C))}
.edit-visual .cap{position:absolute;left:1.2rem;bottom:1rem;z-index:2;font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.trio-card.photo{position:relative;overflow:hidden;color:#fff;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;border:0;isolation:isolate}
.trio-card.photo img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.trio-card.photo:hover img{transform:scale(1.06)}
.trio-card.photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--tc,#0C447C) 14%,transparent) 0%,color-mix(in srgb,var(--tc,#0C447C) 72%,#04203C) 100%);mix-blend-mode:multiply}
.trio-card.photo h3{color:#fff}
.trio-card.photo p{color:rgba(230,241,251,.92)}
.trio-card.photo .chip{background:rgba(255,255,255,.16)}

/* ============ About: founders folio (click to reveal) ============ */
.folio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media (max-width:1020px){.folio-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.folio-grid{grid-template-columns:1fr}}
.folio{background:var(--raised);border:1px solid var(--hairline);border-radius:var(--r);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.folio:hover{transform:translateY(-4px);box-shadow:var(--shadow-1)}
.folio-btn{display:block;width:100%;border:0;background:none;cursor:pointer;text-align:left;font-family:var(--sans);padding:0}
.folio-photo{position:relative;aspect-ratio:1/1.06;overflow:hidden}
.folio-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.folio:hover .folio-photo img{transform:scale(1.05)}
.folio-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,32,60,.55) 100%)}
.folio-id{padding:1.15rem 1.25rem 1.05rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.folio-id .fname{display:block;font-family:var(--serif);font-weight:600;font-size:1.14rem;color:var(--channel-dark);line-height:1.25}
.folio-id .role{display:block}
.folio-id .role{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--current-deep);font-weight:600;margin-top:.2rem}
.folio-chev{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(12,68,124,.25);display:flex;align-items:center;justify-content:center;color:var(--channel-dark);transition:transform .4s var(--ease),background .3s,color .3s}
.folio-chev svg{width:13px;height:13px}
.folio.open .folio-chev{transform:rotate(45deg);background:var(--current);border-color:var(--current);color:#fff}
.folio-bio{max-height:0;overflow:hidden;transition:max-height .55s var(--ease)}
.folio-bio-in{padding:0 1.25rem 1.3rem;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease) .12s,transform .4s var(--ease) .12s}
.folio.open .folio-bio-in{opacity:1;transform:none}
.folio-bio p{font-size:.88rem;color:var(--slate)}
.folio-bio .cred{margin-top:.7rem;font-family:var(--serif);font-style:italic;font-size:.82rem;color:var(--slate)}

/* ============ About: bench with imagery ============ */
.bench-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
@media (max-width:980px){.bench-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.bench-grid{grid-template-columns:1fr}}
.bench{position:relative;border-radius:var(--r);overflow:hidden;min-height:250px;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;color:#fff;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.bench:hover{transform:translateY(-4px);box-shadow:var(--shadow-1)}
.bench img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.bench:hover img{transform:scale(1.06)}
.bench::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--bc,#0C447C) 12%,transparent) 0%,color-mix(in srgb,var(--bc,#0C447C) 70%,#04203C) 100%);mix-blend-mode:multiply}
.bench h3{color:#fff;font-family:var(--sans);font-size:1.06rem;font-weight:600;letter-spacing:0}
.bench p{font-size:.85rem;color:rgba(230,241,251,.9);margin-top:.3rem}

/* Council photo ring recolour + tighter spacing */
.adv .photo{outline-color:var(--sky)}
.section-tight{padding-block:clamp(3rem,6vw,4.6rem)}

/* ============ Service conduit: all streams visible, animated flow ============ */
.conduit{width:min(100%,82vw);margin-inline:auto}
@media (max-width:940px){.conduit{width:100%}}
.c-row{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:1.1rem;position:relative;padding-top:30px;margin-bottom:1.5rem}
.c-row::before{content:"";position:absolute;left:4%;right:4%;top:11px;height:2.5px;border-radius:2px;background:color-mix(in srgb,var(--pc,#185FA5) 18%,transparent)}
.c-row::after{content:"";position:absolute;left:4%;right:4%;top:11px;height:2.5px;border-radius:2px;
  background:repeating-linear-gradient(90deg,var(--pc,#185FA5) 0 7px,transparent 7px 20px);
  animation:crun 2.4s linear infinite;opacity:.75}
@keyframes crun{to{background-position:20px 0}}
@media (prefers-reduced-motion:reduce){.c-row::after{animation:none;opacity:.4}}
.c-card{position:relative;background:var(--raised);border:1px solid var(--hairline);border-radius:16px;padding:1.35rem 1.3rem;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease)}
.c-card::before{content:"";position:absolute;top:-25px;left:50%;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:var(--paper);border:2.5px solid var(--slate-l);transition:.4s var(--ease)}
.c-card.on{transform:translateY(-6px);border-color:color-mix(in srgb,var(--pc,#185FA5) 55%,transparent);box-shadow:0 26px 50px -26px color-mix(in srgb,var(--pc,#185FA5) 55%,#04203C)}
.c-card.on::before{background:var(--pc,#185FA5);border-color:var(--pc,#185FA5);box-shadow:0 0 0 6px color-mix(in srgb,var(--pc,#185FA5) 18%,transparent)}
.c-card .cc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}
.c-card .cc-num{font-family:var(--serif);font-weight:600;color:var(--slate-l);transition:color .4s}
.c-card.on .cc-num{color:var(--pc,#185FA5)}
.c-card h3{font-family:var(--sans);font-size:1.02rem;font-weight:600;letter-spacing:0;color:var(--ink);line-height:1.35}
.c-card p{font-size:.86rem;color:var(--slate);margin-top:.4rem}
.c-hint{text-align:center;font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:var(--slate);margin-top:.4rem}
@media (max-width:860px){
  .c-row{grid-template-columns:1fr;padding-top:0;padding-left:28px;gap:.9rem}
  .c-row::before,.c-row::after{left:10px;right:auto;top:8px;bottom:8px;width:2.5px;height:auto;
    background:color-mix(in srgb,var(--pc,#185FA5) 22%,transparent)}
  .c-row::after{background:repeating-linear-gradient(180deg,var(--pc,#185FA5) 0 7px,transparent 7px 20px);animation:crunv 2.4s linear infinite}
  @keyframes crunv{to{background-position:0 20px}}
  .c-card::before{top:1.35rem;left:-24.5px;transform:none}
}
