/* ScaleUP 2.8: photograph-led compositions and deliberate light-mode surfaces. */
:root { --background:#fcfaf9; --card:#fff; --muted:#f2e8e5; --muted-foreground:#605752; --border:#dfd3ce; --primary:#c92432; --soft-brand:#f8e4df; --strong-brand:#8f1826; }
:root[data-theme="dark"] { --background:#111216; --card:#1c1d23; --muted:#29242a; --muted-foreground:#c0b8b5; --border:#42383d; --primary:#f36b72; --primary-foreground:#191216; --soft-brand:#302126; --strong-brand:#731a27; }
body::before { background: none; }
body::after { opacity:.018; }
.ambient-graphics-layer { display:none; }
.home-hero { min-height:0; padding:64px 0 76px; background:linear-gradient(115deg,var(--background) 53%,var(--soft-brand) 53%); }
.home-hero::before { width:360px; top:30px; left:auto; right:6%; border:40px solid color-mix(in srgb,var(--primary) 10%,transparent); border-radius:0; transform:rotate(-12deg); opacity:1; }
.home-hero__grid { grid-template-columns:1fr 1fr; gap:48px; }
.hero-copy h1 { font-size:clamp(42px,4.8vw,70px); letter-spacing:-.035em; line-height:1.3; }
.hero-media,.hero-media img { min-height:0; height:clamp(360px,43vw,580px); }
.hero-media { border-radius:16px 16px 100px 16px; box-shadow:18px 20px 0 color-mix(in srgb,var(--primary) 14%,transparent); }
.hero-media img { object-position:58% center; }
.hero-summary { font-size:19px; }
.positioning { padding:70px 0; background:var(--strong-brand); color:#fff; border:0; }
.positioning h2 { color:#fff; font-size:clamp(30px,3.3vw,48px); }
.positioning__grid>p,.positioning__note p { color:#f5d9dc; }
.positioning .text-link { color:#fff; border-color:#d68b95; }
.client-proof { padding:76px 0; background:var(--card); }
.proof-heading { display:flex; justify-content:space-between; gap:32px; align-items:end; margin-bottom:34px; }
.proof-heading h2 { font-size:clamp(30px,3.3vw,46px); margin:0; }
.proof-heading .eyebrow { margin-bottom:14px; }
.client-logos { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.client-logos>div { background:#fff; padding:16px 10px; display:grid; place-items:center; }
.client-logos img { width:100%; height:68px; object-fit:contain; }
.recruitment-promises { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:32px; }
.recruitment-promises p { margin:0; border-left:3px solid var(--primary); padding-left:18px; }
.recruitment-promises strong,.recruitment-promises span { display:block; }
.recruitment-promises strong { font-size:18px; margin-bottom:8px; }
.recruitment-promises span { color:var(--muted-foreground); font-size:14px; }
.service-story { padding:76px 0; background:var(--soft-brand); }
.service-story__intro { padding-bottom:40px; }
.service-story__intro h2,.portfolio-heading h2,.disc-preview__copy h2 { font-size:clamp(36px,4.2vw,60px); }
.service-panel { position:relative; top:auto; min-height:0; padding:14px 0; background:transparent; }
.service-panel__inner { min-height:0; grid-template-columns:1fr 1fr; align-items:center; gap:0; padding:0; border:0; background:var(--card); box-shadow:0 12px 35px rgb(83 30 26 / .06); }
.service-panel--structure .service-panel__inner,.service-panel--technology .service-panel__inner { background:var(--card); }
.service-art { position:relative; height:400px; overflow:hidden; background:var(--muted); }
.service-art img { display:block; width:100%; height:100%; object-fit:cover; }
.service-art--3 { padding:40px 0 40px 34px; background:#22252b; display:grid; align-items:center; }
.service-art--3 img { height:auto; border-radius:8px 0 0 8px; box-shadow:0 20px 40px #0005; }
.service-panel__word { position:absolute; bottom:20px; left:24px; margin:0; color:#fff; font-size:44px; letter-spacing:-.04em; line-height:1.3; text-shadow:0 2px 18px #0008; z-index:1; }
.service-art::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#0008); pointer-events:none; }
.service-panel__copy { padding:40px; }
.service-panel__copy h3 { font-size:clamp(28px,2.6vw,40px); }
.service-panel__copy .service-number { color:var(--primary); font-size:12px; font-weight:700; letter-spacing:.12em; margin-bottom:24px; }
.organization-map { padding:45px 30px; height:100%; display:flex; align-items:center; justify-content:center; flex-direction:column; background:#891b2a; color:#fff; }
.organization-map>span { background:#fff; color:#891b2a; border-radius:8px; padding:16px 28px; font-weight:700; }
.organization-map i { display:block; width:1px; height:32px; background:#f1a5ae; }
.organization-map>div { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; position:relative; border-top:1px solid #f1a5ae; padding-top:24px; }
.organization-map>div span { padding:14px 4px; border:1px solid #d77383; text-align:center; border-radius:8px; background:#a73141; }
.organization-map>p { margin:22px 0; color:#f6cdd3; font-size:14px; }
.service-art--1::after { display:none; }
.service-art--1 .service-panel__word { opacity:.3; font-size:38px; bottom:10px; }
.disc-preview { padding:80px 0; background:linear-gradient(135deg,var(--card) 65%,var(--soft-brand) 65%); }
.career-strip { background:var(--soft-brand); }
.final-cta { background:var(--strong-brand); color:#fff; }
.final-cta h2,.final-cta p { color:#fff; }
.final-cta .button { background:#fff; color:#891b2a; border-color:#fff; }
.page-hero { position:relative; background:linear-gradient(110deg,var(--background) 52%,var(--soft-brand) 52%); padding-top:60px; padding-bottom:60px; }
.page-hero__visual { border-radius:16px 16px 72px 16px; box-shadow:14px 14px 0 color-mix(in srgb,var(--primary) 12%,transparent); }
.page-hero { min-height:0; }
.page-hero h1 { font-size:clamp(38px,4.8vw,68px); }
.page-hero__grid { gap:48px; grid-template-columns:1fr 1fr; }
.page-hero__visual,.page-hero__visual img { height:440px; min-height:0; object-fit:cover; }
.page-section { padding:64px 0; }
.page-section:nth-of-type(even) { background:var(--card); }
.legacy-section { padding:70px 0; }
.legacy-section:nth-of-type(even) { background:var(--soft-brand); }
.legacy-section h2 { font-size:clamp(28px,3vw,44px); margin-top:0; margin-bottom:24px; }
.legacy-section h3 { font-size:24px; }
.legacy-section p,.legacy-section li { line-height:1.65; }
.legacy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.legacy-card { padding:28px; border:1px solid var(--border); background:var(--card); border-radius:16px; min-width:0; }
.legacy-card h3 { margin-top:0; }
.legacy-card img { max-width:100%; height:auto; border-radius:10px; }
.legacy-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px; }
.legacy-gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; }
.legacy-gallery a { min-width:0; }
.legacy-trainer { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:48px; align-items:center; }
.legacy-trainer img { width:100%; max-height:520px; object-fit:contain; border-radius:16px; background:var(--card); }
.legacy-faq { border-bottom:1px solid var(--border); padding:22px 0; }
.legacy-faq summary { cursor:pointer; font-size:21px; font-weight:600; }
.legacy-faq p { max-width:800px; color:var(--muted-foreground); }
.legacy-faq details { padding:20px 0; border-bottom:1px solid var(--border); }
.legacy-faq details:last-child { border-bottom:0; }
.legacy-grid>figure,.legacy-trainer figure { margin:0; }
.legacy-grid+h2 { margin-top:56px; }
.legacy-card figcaption { padding-top:16px; }
.legacy-trainer img { height:auto; }
.legacy-table { border-collapse:collapse; width:100%; }
.legacy-table th,.legacy-table td { padding:16px; text-align:left; border-bottom:1px solid var(--border); }
.legacy-table th { background:var(--soft-brand); }
.legacy-section blockquote { margin:0; padding:24px; border-left:4px solid var(--primary); background:var(--card); border-radius:0 14px 14px 0; }
.legacy-section img { max-width:100%; }
.page-section__heading { margin-bottom:32px; }
.service-index__item { padding-top:30px; padding-bottom:30px; }
.button { white-space:nowrap; }
@media(min-width:1024px) { .service-panel:nth-child(even) .service-art { order:2; } }
@media(max-width:1023px) {
 .home-hero { padding:40px 0 56px; }
 .home-hero__grid { gap:30px; }
 .hero-copy h1 { font-size:clamp(34px,5vw,54px); }
 .service-panel__inner { grid-template-columns:1fr 1fr; gap:0; }
 .service-panel__copy { padding:28px; }
 .service-art { height:360px; }
 .client-logos { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .positioning__grid { grid-template-columns:1fr 2fr; }
 .positioning__note { grid-column:2; }
 .legacy-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
 .home-hero__grid,.service-panel__inner,.legacy-grid,.legacy-trainer { grid-template-columns:1fr; }
 .home-hero { background:linear-gradient(155deg,var(--background) 55%,var(--soft-brand) 55%); }
 .hero-copy h1 { font-size:clamp(36px,8vw,52px); }
 .hero-media,.hero-media img { height:320px; min-height:0; }
 .hero-media { border-radius:16px 16px 60px 16px; }
 .hero-summary { margin:22px 0; font-size:17px; }
 .positioning,.client-proof,.service-story,.disc-preview,.legacy-section { padding:48px 0; }
 .positioning__grid { grid-template-columns:1fr; gap:24px; }
 .positioning__note { grid-column:auto; }
 .proof-heading { align-items:start; flex-direction:column; gap:20px; }
 .client-logos>div { padding:12px 7px; }
 .client-logos img { height:48px; }
 .recruitment-promises { grid-template-columns:1fr; gap:20px; }
 .service-story__intro { grid-template-columns:1fr; gap:22px; }
 .service-art { height:280px; }
 .service-panel__copy { padding:28px; }
 .service-panel__copy h3 { font-size:28px; }
 .service-panel__word { font-size:36px; bottom:16px; }
 .service-panel__copy p { font-size:16px; }
 .organization-map { padding:26px 22px 55px; }
 .organization-map>p { display:none; }
 .page-hero { padding:36px 0 48px; }
 .page-hero__grid { grid-template-columns:1fr; gap:32px; }
 .page-hero__visual,.page-hero__visual img { height:300px; }
 .legacy-grid { gap:18px; }
 .legacy-card { padding:24px; }
 .legacy-gallery { gap:10px; }
 .legacy-trainer { gap:24px; }
 .legacy-table th,.legacy-table td { padding:12px 8px; }
}
@media(prefers-reduced-motion:reduce) { .service-panel__inner { transform:none!important; opacity:1!important; } }

/* 2.8.1: shorter mobile browsing and a direct path to an inquiry. */
.mobile-consultation { display:none; }
#contact-form { scroll-margin-top:100px; }
@media(max-width:1023px) {
 .primary-navigation .nav-links { min-height:0; margin-block:24px; }
 .mobile-consultation { display:flex; width:min(100%,680px); margin:24px auto 0; min-height:50px; }
}
@media(max-width:767px) {
 .service-story,.client-proof { padding:36px 0; }
 .service-story__intro { padding-bottom:20px; gap:12px; }
 .service-story__intro h2 { font-size:32px; }
 .service-panel { padding:9px 0; }
 .service-art { height:160px; }
 .service-art--3 { padding:12px 0 12px 24px; }
 .service-panel__word { font-size:28px; left:18px; bottom:10px; }
 .service-panel__copy { padding:20px; }
 .service-panel__copy h3 { font-size:24px; margin-bottom:12px; }
 .service-panel__copy .service-number { margin-bottom:8px; }
 .service-panel__copy p { margin-bottom:16px; }
 .service-panel__copy .text-link { min-height:44px; display:inline-flex; align-items:center; }
 .organization-map { padding:14px 18px 36px; gap:10px; }
 .proof-heading { gap:12px; margin-bottom:20px; }
 .proof-heading h2 { font-size:27px; }
 .client-logos>div { padding:8px 6px; }
 .client-logos img { height:40px; }
 .recruitment-promises { gap:12px; margin-top:20px; }
 .recruitment-promises strong { margin-bottom:3px; font-size:16px; }
 .contact-page .page-hero { padding:28px 0; }
 .contact-page .page-hero__visual { display:none; }
 .contact-page .page-hero__summary { margin-bottom:20px; }
 .contact-page .page-section { padding:28px 0 40px; }
 .contact-page .contact-grid { display:flex; flex-direction:column; gap:36px; }
 .contact-page .contact-form { order:-1; padding:22px; width:100%; }
}
