/* PRISM services: alternating image-and-copy rows, inspired by the supplied reference. */
.services-page { --service-muted:#a3adb6; --service-line:#ffffff20; background:#000; color:#e0eeee; }
.services-page .site-header { background:#000; box-shadow:none; }
.services-page .site-header::after { display:none; }
.services-page main { overflow:clip; }
.services-page h1,.services-page h2,.services-page h3,.services-page p,.services-page figure { margin:0; }
.services-page h1,.services-page h2,.services-page h3 { font-family:var(--body); font-weight:500; letter-spacing:-.065em; }
.services-page h1 { font-size:clamp(48px,6.35vw,98px); line-height:1.01; text-wrap:balance; }
.services-page h1 em { color:var(--orange); font-style:normal; }
.services-page h2 { font-size:clamp(38px,4.7vw,72px); line-height:1.05; text-wrap:balance; }
.services-page main img { display:block; width:100%; }
.service-label { font-size:12px; line-height:1.5; letter-spacing:.055em; color:var(--orange); }
.service-text-link { display:inline-flex; align-items:center; font-size:12px; line-height:1.5; padding:10px 0; }
.services-page main a:focus-visible { outline:2px solid var(--orange); outline-offset:5px; }

/* Individual service introduction. */
.service-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(30px,6vw,96px); align-items:center; padding:clamp(35px,5vw,72px) var(--edge) clamp(65px,8vw,125px); }
.service-hero.is-text-only { grid-template-columns:minmax(0,1fr); }
.service-hero-copy { padding:10px 0; }
.service-back { display:inline-flex; align-items:center; font-size:11px; color:var(--service-muted); margin-bottom:38px; }
.service-back:hover { color:#e7f0ee; }
.service-hero .service-label { margin-bottom:22px; }
.service-hero h1 span,.service-hero h1 em { display:block; }
.service-description { max-width:410px; margin-top:28px!important; color:#aeb8c0; font-size:14px; line-height:1.85; }
.service-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 28px; margin-top:28px; }
.service-hero-enquire { display:inline-flex; align-items:center; padding:12px 20px; border:1px solid #ffffff55; font-size:12px; }
.service-hero-actions a { min-height:44px; }
.service-hero-enquire:hover { background:var(--orange); color:#17110c; }
.service-hero-visual { position:relative; min-width:0; height:clamp(420px,65svh,740px); background:#101419; overflow:hidden; }
.service-hero-visual > img { height:100%; object-fit:cover; }
.service-hero-visual.is-artwork > img { object-fit:contain; padding:clamp(25px,4vw,65px); }
.service-hero-visual figcaption { position:absolute; left:18px; right:18px; bottom:18px; }
.service-hero-visual figcaption a { display:block; padding:13px 16px; background:#06090de6; border:1px solid #ffffff24; backdrop-filter:blur(10px); font-size:11px; line-height:1.5; }

/* Overview: full-width connected rows, image left then image right. */
.services-hero { padding:clamp(55px,7vw,105px) var(--edge) 38px; text-align:center; }
.services-hero > .service-label { margin-bottom:22px; }
.services-hero h1 { font-size:clamp(54px,7vw,108px); font-weight:650; letter-spacing:-.075em; }
.services-hero-note { margin-top:26px!important; color:var(--service-muted); font-size:clamp(13px,1.25vw,17px); line-height:1.7; }
.services-jump { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 28px; padding:18px var(--edge) 52px; background:#000; }
.services-jump a { display:inline-flex; align-items:center; min-height:44px; padding:8px 0; border-bottom:1px solid #ffffff30; color:#b8c0c7; font-size:12px; }
.services-jump a:hover { color:#fff; border-color:var(--orange); }
.services-directory { width:100%; display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
.services-family { position:relative; min-width:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:clamp(460px,42vw,650px); background:#07090c; border-bottom:1px solid var(--service-line); scroll-margin-top:calc(var(--header) + 12px); }
.services-family:nth-child(even) { background:#11161c; }
.services-family-art { grid-column:1; grid-row:1; position:relative; min-width:0; min-height:100%; overflow:hidden; background:#0b1015; }
.services-family:nth-child(even) > .services-family-art { grid-column:2; }
.services-family-art > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.services-family-art.is-artwork { background:#101419; }
.services-family-art.is-artwork > img { object-fit:contain; padding:clamp(30px,5vw,80px); }
.services-family--connection .services-family-art.is-artwork > img { padding:0; }
.services-family-copy { grid-column:2; grid-row:1; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:clamp(40px,5vw,80px); min-width:0; }
.services-family:nth-child(even) > .services-family-copy { grid-column:1; }
.services-family header { width:100%; max-width:460px; }
.services-family header .service-label { margin-bottom:18px; font-size:11px; text-transform:uppercase; }
.services-family header h2 { font-size:clamp(34px,3.5vw,54px); font-weight:550; line-height:1.08; }
.services-family header p:last-child { color:var(--service-muted); font-size:14px; line-height:1.8; max-width:34ch; margin:22px auto 0; }
.services-family-links { width:100%; max-width:380px; margin-top:28px; }
.services-directory-row { display:flex; align-items:center; justify-content:center; min-height:48px; padding:12px 0; border-top:1px solid #ffffff18; }
.services-directory-row h3 { font-size:clamp(14px,1.25vw,18px); line-height:1.4; letter-spacing:-.025em; font-weight:450; }
.services-directory-row:hover h3 { color:var(--orange); }

/* Expertise follows the same alternating rhythm. */
.service-expertise { display:block; padding:0 0 clamp(65px,7vw,110px); scroll-margin-top:calc(var(--header) + 12px); }
.service-expertise-heading { text-align:center; padding:30px var(--edge) clamp(44px,5vw,75px); }
.service-expertise-heading h2 { margin:20px 0; }
.service-expertise-heading > p:last-child { color:var(--service-muted); font-size:14px; line-height:1.8; }
.service-capabilities { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
.service-capability { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:clamp(360px,35vw,560px); border-bottom:1px solid var(--service-line); background:#07090c; }
.service-capability.is-text-only { grid-template-columns:minmax(0,1fr); min-height:220px; }
.service-capability.is-text-only > .service-capability-copy { grid-column:1; }
.service-capability:nth-child(even) { background:#11161c; }
.service-capability-art { grid-column:1; grid-row:1; min-width:0; min-height:100%; position:relative; overflow:hidden; background:#0b1015; }
.service-capability:nth-child(even) > .service-capability-art { grid-column:2; }
.service-capability-art > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-capability-art.is-artwork > img { object-fit:contain; padding:clamp(25px,4vw,65px); }
.service-capability-copy { grid-column:2; grid-row:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:clamp(35px,5vw,80px); min-width:0; }
.service-capability:nth-child(even) > .service-capability-copy { grid-column:1; }
.service-capability h3 { font-size:clamp(26px,3vw,46px); line-height:1.13; max-width:17ch; text-wrap:balance; }
.service-capability p { margin-top:24px; color:var(--service-muted); font-size:14px; line-height:1.85; max-width:36ch; }
.js .services-family.reveal,.js .service-capability.reveal { transform:none; }

/* Published examples only. */
.service-work { padding:clamp(55px,7vw,100px) var(--edge) clamp(75px,8vw,120px); background:#080b0f; }
.service-section-top { display:flex; justify-content:space-between; align-items:end; gap:25px; margin-bottom:48px; }
.service-section-top .service-label { margin-bottom:20px; }
.service-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; align-items:stretch; }
.service-project-grid.has-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-project { display:block; min-width:0; border:1px solid #ffffff12; background:#0a0d11; }
.service-project-image { overflow:hidden; position:relative; background:#15191f; aspect-ratio:4/3; }
.service-project-image > img { height:100%; object-fit:cover; }
.service-project-caption { padding:22px; }
.service-project-caption h3 { font-size:clamp(16px,1.6vw,23px); line-height:1.3; letter-spacing:-.035em; }
.service-project-caption p { font-size:11px; color:var(--service-muted); margin-top:8px; line-height:1.6; }
.service-web-project { display:flex; flex-direction:column; justify-content:end; padding:30px; height:100%; min-height:220px; background:#111b26; }
.service-web-project strong { font:500 clamp(24px,3vw,48px)/1.1 var(--body); letter-spacing:-.06em; max-width:300px; }
.service-web-project small { margin-top:22px; color:#a5b9b1; font-size:10px; }
.service-project:hover h3 { color:var(--orange); }
.service-contact { display:flex; justify-content:space-between; align-items:end; gap:40px; padding:clamp(75px,10vw,145px) var(--edge); border-top:1px solid var(--service-line); }
.service-contact .service-label { margin-bottom:27px; }
.service-contact h2 { font-size:clamp(47px,6.6vw,100px); }
.service-contact > div:last-child { min-width:220px; display:flex; flex-direction:column; align-items:flex-start; gap:26px; padding-bottom:5px; }
.service-contact-button { display:flex; align-items:center; justify-content:center; padding:20px 26px; border:1px solid #f58232; background:#f58232; color:#1a120c; font-size:14px; width:100%; transition:background .25s,color .25s; }
.service-contact-button:hover { background:#ffa15d; }
.service-contact-all { font-size:11px; color:var(--service-muted); }
.service-contact-all:hover { color:#fff; }

@media(max-width:1000px) {
 .service-hero { gap:35px; }.service-hero h1 { font-size:clamp(48px,6.5vw,70px); }.service-hero-visual { height:540px; }
 .services-family-copy,.service-capability-copy { padding:38px 28px; }
 .services-family { min-height:470px; }
}
@media(max-width:760px) {
 .service-hero { grid-template-columns:1fr; gap:38px; padding-top:32px; padding-bottom:65px; }
 .service-hero-copy { padding:0; }.service-back { margin-bottom:30px; }.service-hero .service-label { margin-bottom:18px; }
 .service-hero h1 { font-size:clamp(43px,9.2vw,76px); max-width:650px; }.service-description { max-width:480px; margin-top:24px!important; font-size:13px; }
 .service-hero-actions { margin-top:22px; gap:10px 18px; }.service-hero-actions .service-text-link { font-size:11px; }
 .service-hero-visual { height:min(100vw,580px); min-height:300px; }
 .services-hero { padding-top:46px; padding-bottom:24px; }.services-hero h1 { font-size:clamp(47px,10vw,70px); }.services-hero-note { margin-top:22px!important; font-size:13px; }
 .services-jump { gap:8px 22px; padding:12px 20px 36px; }.services-jump a { font-size:11px; }
 .services-family,.service-capability { grid-template-columns:minmax(0,1fr); min-height:0; }
 .services-family-art,.service-capability-art,.services-family:nth-child(even) > .services-family-art,.service-capability:nth-child(even) > .service-capability-art { grid-column:1; grid-row:1; min-height:0; height:auto; aspect-ratio:4/3; }
 .services-family-copy,.service-capability-copy,.services-family:nth-child(even) > .services-family-copy,.service-capability:nth-child(even) > .service-capability-copy { grid-column:1; grid-row:2; padding:42px 24px 46px; }
 .services-family--connection .services-family-art { aspect-ratio:16/9; }
 .services-family header h2 { font-size:clamp(33px,7vw,44px); }.services-family header p:last-child { font-size:13px; margin-top:18px; }
 .services-family-links { margin-top:24px; }.services-directory-row h3 { font-size:16px; }
 .service-expertise { padding-bottom:60px; }.service-expertise-heading { padding:20px 24px 42px; }.service-expertise-heading h2 { font-size:clamp(35px,7vw,48px); }
 .service-capability h3 { font-size:clamp(28px,6.5vw,40px); }.service-capability p { margin-top:18px; font-size:13px; }
 .service-work { padding-top:55px; padding-bottom:60px; }.service-section-top { margin-bottom:32px; }
 .service-project-grid,.service-project-grid.has-two { grid-template-columns:minmax(0,1fr); }.service-project-image { aspect-ratio:16/11; }
 .service-project-caption h3 { font-size:20px; }.service-project-caption p { font-size:11px; }
 .service-contact { flex-direction:column; align-items:start; gap:35px; padding-top:65px; padding-bottom:75px; }
 .service-contact > div:last-child { width:min(300px,100%); }.service-contact h2 { font-size:clamp(43px,9vw,68px); }
}
@media(max-width:420px) {
 .service-hero h1 { font-size:clamp(38px,10.5vw,46px); }
 .service-hero-visual figcaption { left:12px; right:12px; bottom:12px; }.service-hero-visual figcaption a { padding:11px 12px; font-size:10px; }
 .service-section-top { align-items:start; flex-direction:column; gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .services-page *, .services-page *::before, .services-page *::after { scroll-behavior:auto!important; transition:none!important; }
}
