/* inner pages — builds on styles.css tokens */
body { background:#0a0a0a; color:#f2f2f2; }
body, a, button { cursor:auto; }
a, button { cursor:pointer; }
body.lock { overflow:hidden; }
.nav.solid { transition:background .4s, padding .4s; }
.nav.solid.scrolled { background:rgba(10,10,10,.6); backdrop-filter:blur(14px); padding-block:14px; mix-blend-mode:normal; }
.links a.cur { opacity:1; } .links a.cur::after { transform:scaleX(1); }
.links { align-items:center; }
.lead { font-size:clamp(16px,1.5vw,21px); line-height:1.7; color:#cfcfcf; max-width:640px; margin-top:26px; }
.crumb { letter-spacing:.2em; color:#cfcfcf; }
.crumb:hover { color:#fff; }

/* reveal */
.rv { opacity:0; transform:translateY(34px); transition:opacity 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.rv.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .rv{opacity:1;transform:none;transition:none} }

/* hero */
.phero { position:relative; min-height:78vh; display:flex; align-items:flex-end; overflow:hidden; padding:140px var(--pad) 9vh; }
.phero-bg { position:absolute; inset:-4%; background-size:cover; background-position:center; filter:grayscale(1) contrast(1.05) brightness(.5); transform:scale(1.06); animation:pz 14s ease-out forwards; }
@keyframes pz { to { transform:scale(1); } }
.phero-grid { position:absolute; inset:0; opacity:.07; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:72px 72px; -webkit-mask-image:radial-gradient(ellipse 60% 70% at 30% 60%,#000,transparent 75%); mask-image:radial-gradient(ellipse 60% 70% at 30% 60%,#000,transparent 75%); }
.phero-shade { position:absolute; inset:0; background:linear-gradient(to top,#0a0a0a 0%,rgba(10,10,10,.35) 45%,rgba(10,10,10,.6)); }
.phero-in { position:relative; max-width:1100px; }
.phero h1 { font-size:clamp(44px,8vw,128px); line-height:1.02; }
.phero h1 em { color:#9a9a9a; }

/* generic blocks */
.blk { padding:14vh var(--pad); position:relative; }
.dark2 { background:#101010; }
.sec-head { margin-bottom:7vh; }
.sec-head.row { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.two-col { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(30px,7vw,120px); align-items:start; }
.prose p { font-size:clamp(16px,1.35vw,19px); line-height:1.85; color:#bdbdbd; margin-bottom:22px; max-width:680px; }
.prose p:first-child { color:#f2f2f2; font-size:clamp(19px,1.8vw,26px); line-height:1.55; font-family:var(--serif); }
@media (max-width:900px){ .two-col{grid-template-columns:1fr} }

/* about */
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center; }
.stats-row .stat b { font-size:clamp(44px,6vw,92px); }
.stats-row .stat span { display:block; margin-top:10px; }
@media (max-width:700px){ .stats-row{grid-template-columns:1fr 1fr} }
.chair2 { overflow:hidden; background:radial-gradient(ellipse 60% 70% at 25% 55%,#222,transparent 70%),#0d0d0d; }
.chair2 .chair-wrap { min-height:0; padding:0; }
.steps4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step4 { border:1px solid rgba(255,255,255,.12); border-radius:6px; overflow:hidden; background:#111; }
.step4 img { width:100%; aspect-ratio:4/3; object-fit:cover; filter:grayscale(1) brightness(.8); transition:filter .6s, transform 1.2s; }
.step4:hover img { filter:none; transform:scale(1.04); }
.step4 { overflow:hidden; }
.step4 .n { font-size:12px; letter-spacing:.35em; color:var(--muted); padding:22px 22px 0; }
.step4 h3 { font-family:var(--serif); font-weight:400; font-size:30px; padding:8px 22px; }
.step4 p { padding:0 22px 26px; color:#aaa; line-height:1.7; }
@media (max-width:1000px){ .steps4{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .steps4{grid-template-columns:1fr} }
.mission { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,4vw,64px); }
.mission div { border-top:1px solid rgba(255,255,255,.25); padding-top:22px; }
.mission span, .perks span { font-size:12px; letter-spacing:.3em; color:var(--muted); }
.mission p { margin-top:16px; font-size:clamp(17px,1.5vw,21px); line-height:1.65; color:#d6d6d6; }
@media (max-width:900px){ .mission{grid-template-columns:1fr} }

/* services */
.svc-list { display:grid; gap:12vh; }
.svc-row { display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:clamp(28px,6vw,100px); align-items:center; }
.svc-row:nth-child(even) .svc-img { order:2; }
.svc-img { overflow:hidden; border-radius:6px; aspect-ratio:4/3; }
.svc-img div { width:100%; height:100%; background-size:cover; background-position:center; filter:grayscale(1) brightness(.75); transition:filter .8s, transform 1.4s cubic-bezier(.2,.7,.2,1); }
.svc-row:hover .svc-img div { filter:none; transform:scale(1.06); }
.svc-info .n { font-family:var(--serif); font-size:clamp(60px,8vw,120px); line-height:.8; color:rgba(255,255,255,.14); margin-bottom:14px; }
.svc-info p { color:#bdbdbd; line-height:1.75; margin:18px 0; max-width:520px; }
.svc-info ul { list-style:none; display:grid; gap:8px; color:#9a9a9a; font-size:14px; margin-bottom:26px; }
.svc-info li::before { content:"—"; margin-inline-end:10px; color:#666; }
.more { letter-spacing:.2em; text-transform:uppercase; font-size:12px; display:inline-flex; gap:10px; border-bottom:1px solid currentColor; padding-bottom:4px; }
.more i { font-style:normal; transition:transform .3s; } .svc-row:hover .more i { transform:translateX(6px); }
[dir=rtl] .svc-row:hover .more i { transform:translateX(-6px); }
@media (max-width:900px){ .svc-row{grid-template-columns:1fr} .svc-row:nth-child(even) .svc-img{order:0} }
.perks { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,4vw,64px); }
.perks > div { border-top:1px solid rgba(255,255,255,.25); padding-top:22px; }
.perks h3 { font-family:var(--serif); font-weight:400; font-size:clamp(26px,2.6vw,38px); margin:14px 0 12px; }
.perks p { color:#aaa; line-height:1.75; }
@media (max-width:900px){ .perks{grid-template-columns:1fr} }
.cta-blk { text-align:center; display:grid; justify-items:center; gap:28px; padding-block:18vh; }
.cta-blk p { max-width:640px; color:#bdbdbd; line-height:1.75; }

/* service detail */
.scope { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(30px,6vw,100px); counter-reset:s; }
.scope li { display:flex; gap:22px; padding:26px 0; border-top:1px solid rgba(255,255,255,.14); font-size:clamp(17px,1.5vw,22px); line-height:1.45; }
.scope span { font-size:12px; letter-spacing:.3em; color:var(--muted); padding-top:.5em; min-width:2em; }
@media (max-width:800px){ .scope{grid-template-columns:1fr} }
.other-svc { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-block:10vh; }
.other-svc a { border:1px solid rgba(255,255,255,.14); border-radius:6px; padding:34px 28px; display:grid; gap:10px; transition:background .4s,border-color .4s; }
.other-svc a:hover { background:#fff; color:#000; border-color:#fff; }
.other-svc span { font-size:11px; letter-spacing:.25em; text-transform:uppercase; opacity:.6; }
.other-svc b { font-family:var(--serif); font-weight:400; font-size:clamp(24px,2.4vw,36px); }
@media (max-width:800px){ .other-svc{grid-template-columns:1fr} }

/* project grid */
.pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pcard { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:6px; background:#1a1a1a; margin:0; }
.pcard .im { position:absolute; inset:0; background-size:cover; background-position:center; filter:grayscale(1) brightness(.85); transition:filter .7s, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.pcard:hover .im { filter:none; transform:scale(1.07); }
.pcard::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.75),transparent 55%); pointer-events:none; }
.pcard figcaption { position:absolute; z-index:2; inset:auto 18px 16px; display:grid; gap:4px; }
.pcard figcaption span { font-size:10px; letter-spacing:.25em; text-transform:uppercase; color:#bbb; }
.pcard figcaption b { font-family:var(--serif); font-weight:400; font-size:clamp(18px,1.7vw,24px); }
@media (max-width:1000px){ .pgrid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .pgrid{grid-template-columns:1fr} }
.filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:6vh; position:sticky; top:74px; z-index:20; padding:12px 0; }
.filters button { background:rgba(20,20,20,.75); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:10px 20px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; transition:background .3s,color .3s; }
.filters button sup { margin-inline-start:6px; opacity:.55; font-size:9px; }
.filters button:hover, .filters button.on { background:#fff; color:#000; border-color:#fff; }
.more-wrap { display:grid; place-items:center; margin-top:8vh; }

/* trusted */
.logo-count { display:flex; align-items:flex-start; font-family:var(--serif); font-size:clamp(70px,10vw,150px); line-height:.9; margin-bottom:6vh; }
.logo-count span { font-size:.5em; color:var(--muted); }
.logo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(clamp(150px,16vw,220px),1fr)); gap:14px; }
.logo-grid .tile { width:auto; height:clamp(100px,10vw,136px); }

/* contact */
.contact2 { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(34px,7vw,120px); align-items:start; }
.c-info { display:grid; gap:30px; }
.c-info > p { color:#bdbdbd; line-height:1.8; font-size:clamp(16px,1.35vw,19px); max-width:520px; }
.c-info b { display:block; font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); font-weight:400; margin-bottom:8px; }
.c-info span, .c-info a { line-height:1.6; font-size:17px; }
.social span { display:flex; gap:22px; } .social a { border-bottom:1px solid rgba(255,255,255,.3); }
.contact2 .form { gap:20px; position:sticky; top:110px; }
.contact2 .form input, .contact2 .form textarea { font-size:18px; padding:18px 2px; border-bottom:1px solid rgba(255,255,255,.28); }
.contact2 .form input:focus, .contact2 .form textarea:focus { border-color:#fff; }
.contact2 .form input::placeholder, .contact2 .form textarea::placeholder { color:#777; }
@media (max-width:900px){ .contact2{grid-template-columns:1fr} .contact2 .form{position:static} }

/* footer */
.pfoot { padding:12vh var(--pad) 40px; border-top:1px solid rgba(255,255,255,.12); display:grid; gap:10vh; }
.pfoot-top { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.pfoot .mega { font-size:clamp(46px,8vw,130px); }
.pfoot .foot { border-top:1px solid rgba(255,255,255,.12); }

/* performance: <img> hero + service images, static grain */
img.phero-bg { display:block; max-width:none; left:-4%; top:-4%; width:108%; height:108%; object-fit:cover; }
.svc-img img { display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(1) brightness(.75); transition:filter .8s, transform 1.4s cubic-bezier(.2,.7,.2,1); }
.svc-row:hover .svc-img img { filter:none; transform:scale(1.06); }

/* ===== SEO build additions ===== */
.js .rv { opacity:0; transform:translateY(34px); }
.js .rv.in { opacity:1; transform:none; }
.rv { opacity:1; transform:none; transition:opacity 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.crumbs { margin-bottom:22px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.crumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:6px 0; padding:0; color:#9a9a9a; }
.crumbs li + li::before { content:"/"; margin-inline:10px; opacity:.5; }
.crumbs a { color:#cfcfcf; } .crumbs a:hover { color:#fff; text-decoration:underline; }
.crumbs [aria-current] { color:#fff; }
.logo-grid { list-style:none; padding:0; }
.nav a.lang:hover { background:#fff; color:#000; }
.ticks { list-style:none; margin:20px 0 26px; display:grid; gap:10px; color:#bdbdbd; }
.ticks li::before { content:"—"; margin-inline-end:10px; color:#666; }
.about-proj { padding-block:9vh; }
.sec-head h2.eyebrow { font-weight:400; }
.pcard[hidden] { display:none; }
address.rv { font-style:normal; display:block; }
.pfoot .fnav { border-top:1px solid rgba(255,255,255,.12); padding-top:6vh; margin-bottom:0; }
.pfoot address b { display:block; font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); font-weight:400; margin-bottom:6px; }
