/* Triumph Construction — homepage sections (Concept D: Triumph Signature). Loaded after site.css. */

.sec{padding-top:clamp(72px,9vw,128px)}
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(700px,62vw,900px);display:flex;flex-direction:column;justify-content:flex-end;color:#f6f5f1;isolation:isolate;background:#04180f;--focus:var(--green-soft)}
.hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden;display:flex;justify-content:center}
.hero__bg img{width:100%;max-width:1536px;height:100%;object-fit:cover;object-position:50% 22%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,20,14,.5) 0%,rgba(5,20,14,0) 16%,rgba(5,20,14,0) 40%,rgba(5,20,14,.55) 66%,rgba(5,20,14,.9) 100%),linear-gradient(90deg,rgba(5,20,14,.5) 0%,rgba(5,20,14,.18) 50%,rgba(5,20,14,0) 70%)}
@media (min-width:1537px){.hero__bg img{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}}
.hero__main{padding-top:clamp(120px,14vw,200px);padding-bottom:clamp(40px,5vw,72px)}
.hero__top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.eyebrow{font-weight:600;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:#dbe9e0;display:flex;gap:10px 22px;flex-wrap:wrap}
.eyebrow span+span::before{content:"";display:inline-block;width:5px;height:5px;background:var(--green);margin-right:22px;vertical-align:middle;position:relative;top:-2px}
.hcap{font-weight:600;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:#f6f5f1;border-bottom:1px solid rgba(246,245,241,.6);padding-bottom:4px;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.65),0 1px 14px rgba(0,0,0,.8)}
.hero h1{font-size:clamp(48px,8.4vw,136px);margin-top:22px;text-shadow:0 2px 34px rgba(0,0,0,.38)}
.hero h1 span{display:block}
.hero__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 32px;flex-wrap:wrap;margin-top:clamp(28px,3.4vw,48px);padding-top:clamp(24px,2.6vw,34px);border-top:1px solid rgba(246,245,241,.35)}
.hero__foot p{max-width:560px;font-size:19px;color:#e8efe9}
.acts{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- intro ---------- */
.intro .lab{grid-column:1 / span 3;padding-top:14px;border-top:1px solid var(--ink);align-self:start;padding-right:12px}
.intro .st{grid-column:4 / span 8;font-size:clamp(26px,3.3vw,48px);line-height:1.16;font-weight:500;letter-spacing:-.018em;text-wrap:pretty}
.intro .st em{font-style:normal;color:var(--gd)}
.intro .more{grid-column:4 / span 5;margin-top:34px;color:#3b3f3d}
.intro .more p{margin-bottom:26px}

/* ---------- featured projects ---------- */
.ph-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:clamp(32px,4vw,56px)}
.ph-head h2{font-size:clamp(52px,9vw,140px);margin-top:14px}
.pnl{position:relative;min-height:clamp(520px,48vw,700px);display:flex;align-items:flex-end;color:#f6f5f1;overflow:hidden;isolation:isolate;background:#10201a;--focus:var(--green-soft)}
.pnl__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.pnl__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pnl::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,20,14,.95) 0%,rgba(5,20,14,.8) 30%,rgba(5,20,14,.34) 56%,rgba(5,20,14,0) 76%)}
.pnl__in{width:100%;padding-bottom:clamp(30px,4vw,56px);padding-top:120px}
.pnl__row{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap}
.pnl h3{font-size:clamp(40px,6.6vw,104px);margin-top:12px}
.pnl .lab,.meta{text-shadow:0 1px 10px rgba(0,0,0,.55)}
.meta{margin-top:18px;max-width:640px;font-size:18px;color:#e6eee8}
.pnl:hover .tl .ar,.split:hover .tl .ar{transform:translateX(6px)}
.pnl:hover .tl,.split:hover .tl{border-bottom-color:var(--green)}
.pnl .tl,.split .tl{transition:border-color .25s ease}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:clamp(520px,50vw,720px);--focus:var(--green-soft)}
.split--rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.split__tx{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:clamp(28px,4vw,56px) clamp(20px,4vw,56px);color:#f6f5f1}
.split--char .split__tx{background:var(--ink)}
.split--deep .split__tx{background:var(--deep)}
.split__im{position:relative;overflow:hidden;min-height:340px}
.split__im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split h3{font-size:clamp(38px,5vw,80px);margin-top:14px}
.split .meta{color:#c9d6cd}
.split--rev .split__tx{order:2}
.more-proj{display:flex;gap:14px 40px;flex-wrap:wrap;align-items:center;padding-top:30px;font-size:15px}
.more-proj li a{border-bottom:1px solid var(--rule);padding-bottom:3px;transition:border-color .25s ease}
.more-proj li a:hover{border-color:var(--gd)}
.more-proj .all{margin-left:auto}

/* ---------- People Centric ---------- */
.people{background:var(--sand);margin-top:clamp(72px,9vw,128px);padding-top:clamp(64px,8vw,112px)}
.pc{font-size:clamp(54px,12.4vw,200px);margin-top:18px}
.vis{font-family:var(--font-serif);font-weight:400;font-size:clamp(32px,4.8vw,76px);line-height:1.06;letter-spacing:-.015em;max-width:1200px;margin-top:clamp(28px,3.4vw,48px)}
.vis span{display:block}
.vis em{color:var(--gd)}
.bleed{position:relative;margin-top:clamp(44px,6vw,84px);overflow:hidden;height:clamp(380px,56vw,860px);background:#1b1f21}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%}
.bleed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(0deg,rgba(5,20,14,.7),rgba(5,20,14,0));pointer-events:none}
.bleed figcaption{z-index:1;position:absolute;left:var(--gutter);bottom:20px;color:#f6f5f1;font-weight:600;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.6);display:flex;align-items:center;gap:12px}
.bleed figcaption::before{content:"";width:34px;height:3px;background:var(--green)}
.table{margin-top:clamp(56px,7vw,100px);align-items:end;row-gap:36px}
.table__tx{grid-column:1 / span 4}
.table h2{font-size:clamp(40px,5.2vw,78px);margin-top:16px}
.table .b{margin-top:22px;color:#3b3f3d;max-width:420px}
.table .p1{grid-column:5 / span 4}
.table .p2{grid-column:9 / span 4;margin-bottom:56px}
.table .ph{overflow:hidden;background:#cfcabd}
.table .p1 .ph{aspect-ratio:4/5}
.table .p2 .ph{aspect-ratio:4/3}
.table img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.table .ph:hover img{transform:scale(1.04)}
.table figcaption{font-size:13.5px;color:#565b58;padding-top:10px}
.team{margin-top:clamp(56px,7vw,100px);padding-top:28px;border-top:1px solid var(--ink)}
.team--sub{margin-top:clamp(44px,5vw,72px);border-top-color:var(--rule)}
.team__hd{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px;padding-bottom:32px}
.team__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px}
.ld{display:block}
.ld .ph{aspect-ratio:4/5;overflow:hidden;background:#cfcabd;position:relative}
.ld .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform .9s var(--ease)}
.ld .ph::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:0;background:var(--green);transition:width .5s ease}
a.ld:hover .ph::after,a.ld:focus-visible .ph::after{width:100%}
a.ld:hover img{transform:scale(1.03)}
.ld h3{font-size:26px;font-weight:700;font-stretch:88%;margin-top:16px;line-height:1.1}
.ld .t{font-size:14.5px;color:var(--gd);font-weight:600;margin-top:4px}
.ld .q{font-size:15px;color:#3b3f3d;line-height:1.5;margin-top:10px}
.close{padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(56px,7vw,100px);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.close h2{font-size:clamp(34px,9.6vw,156px)}
.close h2 em{font-style:normal;color:var(--gd)}

/* ---------- capabilities ---------- */
.caps .l{grid-column:1 / span 4;position:sticky;top:96px;align-self:start}
.caps h2{font-size:clamp(44px,6vw,92px);margin-top:16px}
.caps .l .b{margin-top:22px;color:#3b3f3d;max-width:360px}
.caps ul{grid-column:5 / span 8;border-top:1px solid var(--ink)}
.cr{display:grid;grid-template-columns:56px minmax(0,1fr) 40px;column-gap:20px;align-items:center;padding:26px 18px 26px 0;border-bottom:1px solid var(--rule);transition:background .35s ease,color .35s ease,padding .35s ease}
.cr .n{font-weight:600;font-size:13px;letter-spacing:.18em;color:var(--gd);transition:color .3s ease}
.cr .t{font-family:var(--font-display);font-stretch:75%;font-weight:800;text-transform:uppercase;font-size:clamp(28px,3.6vw,54px);line-height:.98}
.cr .d{grid-column:2;font-size:15.5px;color:#4a4f4c;max-width:560px;margin-top:6px;transition:color .35s ease}
.cr .a{grid-column:3;grid-row:1 / span 2;font-size:26px;text-align:right;transition:transform .35s var(--ease),color .3s ease}
.cr:hover,.cr:focus-visible{background:var(--deep);color:#f6f5f1;padding-left:20px;--focus:var(--green-soft)}
.cr:focus-visible{outline:2px solid var(--green-soft);outline-offset:-2px}
.cr:hover .n,.cr:focus-visible .n{color:var(--green)}
.cr:hover .d,.cr:focus-visible .d{color:#cfe3d6}
.cr:hover .a,.cr:focus-visible .a{transform:translateX(6px);color:var(--green)}

/* ---------- credentials ---------- */
.cred{overflow-x:clip;background:var(--deep);color:#f6f5f1;margin-top:clamp(72px,9vw,128px);padding-block:clamp(64px,8vw,112px)}
.cred .lab{color:#9fc7b0}
.cstats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);margin-top:clamp(36px,5vw,64px);border-top:1px solid rgba(246,245,241,.28)}
.cs{padding:30px 24px 30px 0}
.cs+.cs{padding-left:28px;border-left:1px solid rgba(246,245,241,.28)}
.cs .v{font-family:var(--font-display);font-stretch:75%;font-weight:800;text-transform:uppercase;font-size:clamp(40px,6.4vw,100px);line-height:.92}
.cs:last-child .v{font-size:clamp(34px,5vw,80px);white-space:nowrap}
.cs .c{margin-top:12px;font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.cfoot{display:flex;justify-content:space-between;gap:16px 40px;flex-wrap:wrap;padding-top:26px;border-top:1px solid rgba(246,245,241,.28);color:#cfe3d6;font-size:17px}

/* ---------- call to action ---------- */
.cta{position:relative;isolation:isolate;color:#f6f5f1;padding-block:clamp(80px,11vw,160px) clamp(64px,8vw,112px);background:var(--night);--focus:var(--green-soft)}
.cta__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.cta__img img{width:100%;height:100%;object-fit:cover}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,15,16,.78) 0%,rgba(12,15,16,.9) 100%)}
.cta h2{font-size:clamp(48px,9vw,148px);max-width:1200px;margin-top:18px}
.cta h2 em{font-style:normal;color:var(--green)}
.cta__row{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:48px;align-items:end;margin-top:clamp(28px,4vw,52px)}
.cta .s{font-size:20px;color:#dfe6e1;max-width:520px;margin-bottom:28px}
.cta .ct{font-size:19px;line-height:1.9;color:#dfe6e1}
.cta .ct a{border-bottom:1px solid rgba(255,255,255,.4)}

/* ---------- motion (optional, never required to read) ---------- */
@keyframes up{from{opacity:.01;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes rise{from{transform:translateY(40px)}to{transform:none}}
@keyframes drift{from{transform:scale(1.06) translateY(-3%)}to{transform:scale(1.06) translateY(3%)}}
@media (prefers-reduced-motion:no-preference){
  .hero .eyebrow{animation:up .9s var(--ease) both}
  .hero h1 span{animation:up 1s .1s var(--ease) both}
  .hero h1 span+span{animation-delay:.22s}
  .hero__foot{animation:up 1s .4s var(--ease) both}
  .hcap{animation:up 1s .5s var(--ease) both}
  .split__im img{transition:transform 1.4s var(--ease)}
  .split:hover .split__im img{transform:scale(1.04)}
  @supports (animation-timeline:view()){
    .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
    .pnl__img img,.bleed img{animation:drift linear both;animation-timeline:view()}
  }
}

/* ---------- tablet and phone ---------- */
@media (max-width:1180px){.hcap{display:none}}
@media (max-width:980px){
  .hero{min-height:clamp(640px,160vw,780px)}
  .hero h1{font-size:clamp(48px,14.5vw,120px)}
  .hero__foot{flex-direction:column;align-items:flex-start}
  .eyebrow{flex-direction:column;gap:6px;font-size:11.5px;letter-spacing:.2em}
  .eyebrow span+span::before{display:none}
  .acts{width:100%}
  .acts .btn{flex:1 1 100%;justify-content:space-between}
  .g{display:block}
  .intro .lab{margin-bottom:22px}
  .intro .more{margin-top:26px}
  .split,.split--rev{grid-template-columns:1fr}
  .split--rev .split__tx{order:0}
  .split__tx{gap:40px}
  .split__im{min-height:380px;order:2}
  .pnl{min-height:560px}
  .pnl::before{background:linear-gradient(0deg,rgba(5,20,14,.96) 0%,rgba(5,20,14,.86) 42%,rgba(5,20,14,.4) 68%,rgba(5,20,14,.04) 86%)}
  .pnl__in{padding-top:220px}
  .table .p1,.table .p2{margin-top:32px;margin-bottom:0}
  .table .p1 .ph{aspect-ratio:4/3}
  .team__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .caps .l{position:static}
  .caps ul{margin-top:36px}
  .cr{grid-template-columns:36px minmax(0,1fr) 28px;column-gap:12px}
  .cstats{grid-template-columns:1fr}
  .cs,.cs+.cs{padding:22px 0;border-left:0}
  .cs+.cs{border-top:1px solid rgba(246,245,241,.28)}
  .cta__row{grid-template-columns:1fr;row-gap:28px}
  .bleed{height:clamp(320px,90vw,520px)}
  .bleed img{object-position:56% 30%}
  .more-proj .all{margin-left:0}
}

.idx-lab{padding-top:14px;border-top:1px solid var(--ink);margin-bottom:28px}
.cta::before{background:none}
