/* Short private-entry composition, extending the duplicated approved theme. */
body.client-area { min-width:0; background:#030303; --black:#030303; --client-width:1240px; }
.client-area main { padding:0 max(24px,calc((100vw - var(--client-width))/2)); }
.client-area main:focus { outline:none; }
.client-area h1,.client-area main h2,.client-area main h3 { font-weight:300; }
.client-hero { padding:145px 0 0; }
.client-intro { display:grid; grid-template-columns:1.7fr 1fr; gap:40px; align-items:end; margin-bottom:44px; }
.client-eyebrow { margin:0 0 24px; font-size:.875rem; font-weight:400; line-height:1.6; letter-spacing:.19em; color:#b9b9b9; }
.client-area h1 { margin:0; font-size:clamp(2.8rem,4.3vw,4.15rem); letter-spacing:.02em; line-height:1.17; }
.client-support { margin:0 0 5px; justify-self:end; color:#b9b9b9; font-size:1rem; font-weight:300; line-height:1.8; }
.client-photo { position:relative; margin:0; height:clamp(320px,34vw,445px); overflow:hidden; background:#0b0b0b; }
.client-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:var(--photo-position,center); }
.client-photo::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 58%,rgba(3,3,3,.6)); }
.client-photo::before { content:""; position:absolute; z-index:1; inset:0; border:1px solid rgba(255,40,0,.72); pointer-events:none; mask-image:linear-gradient(#000 0%,#000 20%,transparent 95%); }
.client-area main h2 { margin:0; font-size:clamp(1.9rem,2.65vw,2.65rem); letter-spacing:.015em; line-height:1.22; }
.client-features { padding:55px 0 62px; }
.features-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:50px; }
.features-heading .client-eyebrow { margin-bottom:14px; }
.features-description { color:#b8b8b8; font-size:1rem; line-height:1.75; margin:0; max-width:480px; justify-self:end; }
.feature-status { margin:28px 0 12px; color:#b6b6b6; font-size:.875rem; line-height:1.5; }
.client-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.client-card { position:relative; border:1px solid #2c2c2c; padding:23px 20px; background:linear-gradient(155deg,#0c0c0c,#050505); }
.client-card::before { content:""; position:absolute; top:-1px; left:0; right:0; height:1px; opacity:0; background:linear-gradient(90deg,transparent,#ff5034,transparent); transition:opacity 800ms ease; }
.client-card:hover::before { opacity:1; }
.client-area main .client-card h3 { font-size:1.125rem; letter-spacing:.012em; margin:0 0 10px; line-height:1.4; }
.client-card p { color:#b7b7b7; font-size:1rem; line-height:1.65; margin:0; }
.client-request { display:grid; grid-template-columns:1fr 1fr; gap:70px; padding:66px 0; border-top:1px solid #292929; }
.request-content p,.login-content p { margin:0 0 18px; max-width:520px; color:#b8b8b8; font-size:1rem; line-height:1.8; }
.request-content .request-lead { color:#ededed; }
.access-steps { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 0; padding:0; list-style:none; font-size:.875rem; line-height:1.8; color:#bcbcbc; }
.access-steps li { display:flex; gap:12px; align-items:baseline; }
.access-steps li:not(:last-child)::after { content:"→"; color:#858585; }
.client-button { display:inline-flex; align-items:center; justify-content:space-between; min-height:52px; padding:14px 23px; gap:48px; margin-top:6px; background:#d9220e; border:1px solid #d9220e; color:#fff; text-decoration:none; font-size:1rem; line-height:1.5; transition:background 300ms ease,border-color 300ms ease; }
.client-button:hover { background:#ce1d0c; border-color:#ce1d0c; }
.client-button span { font-size:1.25rem; }
.client-button-outline { background:transparent; border-color:#b9b9b9; }
.request-content .mail-hint { margin-top:15px; margin-bottom:0; color:#a3a3a3; font-size:.875rem; line-height:1.65; max-width:380px; }
.client-login { display:grid; grid-template-columns:1fr 1fr; gap:70px; background:#0b0b0b; border-top:1px solid #292929; border-bottom:1px solid #292929; margin:0 calc(-1 * max(24px,calc((100vw - var(--client-width))/2))); padding:50px max(24px,calc((100vw - var(--client-width))/2)); }
.client-login .client-eyebrow { margin-bottom:16px; }
.login-content .connection-state { display:inline-block; border:1px solid #454545; color:#bebebe; padding:9px 14px; font-size:.875rem; line-height:1.5; margin:0 18px 10px 0; }
.client-help { display:inline-flex; min-height:44px; gap:18px; align-items:center; color:#f2f2f2; text-decoration-thickness:1px; text-underline-offset:5px; font-size:.9375rem; }
.client-help:hover { color:#ff684f; }
body.client-area .site-footer { padding-top:50px; }
.client-area :focus-visible { outline:2px solid #fff; outline-offset:5px; }
.client-area section[id] { scroll-margin-top:100px; }
@media (max-width:1000px) {
 .client-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .client-intro { grid-template-columns:1.6fr 1fr; gap:24px; }
 .client-request,.client-login { gap:40px; }
}
@media (max-width:600px) {
 .client-area main { padding:0 22px; }
 .client-hero { padding-top:110px; }
 .client-intro { grid-template-columns:1fr; gap:22px; margin-bottom:28px; }
 .client-area h1 { font-size:clamp(2.3rem,8.2vw,3rem); letter-spacing:.015em; line-height:1.18; }
 .client-eyebrow { font-size:.8125rem; margin-bottom:20px; letter-spacing:.17em; }
 .client-support { justify-self:start; margin:0; line-height:1.65; }
 .client-photo { height:290px; margin:0 -6px; }
 .client-photo img { object-position:70% center; }
 .client-features { padding:38px 0 40px; }
 .features-heading { grid-template-columns:1fr; gap:20px; }
 .features-description { justify-self:start; }
 .client-cards { gap:10px; }
 .client-card { padding:20px 14px; }
 .client-area main .client-card h3 { font-size:1rem; }
 .client-card p { font-size:.9375rem; line-height:1.55; }
 .feature-status { margin-top:24px; }
 .client-request,.client-login { grid-template-columns:1fr; gap:25px; }
 .client-request { padding:42px 0; }
 .access-steps { margin-top:20px; gap:10px; }
 .client-login { margin:0 -22px; padding:40px 22px; }
 .client-button { min-height:54px; padding-inline:20px; width:100%; gap:24px; }
 .client-area main h2 { font-size:2rem; }
 body.client-area .site-footer { padding-top:42px; }
}
@media (max-width:359px) {
 .client-cards { grid-template-columns:1fr; }
 .client-photo { height:250px; }
 .client-area h1 { font-size:2.125rem; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .client-area *, .client-area *::before,.client-area *::after { animation:none !important; transition:none !important; }
}

/* Keep inherited footer artwork inside narrow screens. */
body.client-area .footer-logo { max-width:100%; }

.client-area main h1,.client-area main h2,.client-area main h3,.client-area main p { overflow-wrap:anywhere; }
.client-card,.client-intro>*,.features-heading>*,.client-request>*,.client-login>* { min-width:0; }
body.client-area .site-header { height:auto; min-height:72px; padding-block:10px; }
body.client-area .header-actions { flex-wrap:wrap; justify-content:flex-end; }
@media(max-width:600px) {
 body.client-area .site-header { grid-template-columns:44px minmax(50px,1fr) minmax(0,max-content); }
}

body.client-area .site-footer h2 { overflow-wrap:anywhere; max-width:100%; }

/* Finished access controls: the same quiet geometry as the approved pages. */
.client-features .client-cards { margin-top:30px; }
.client-button { font-family:inherit; font-weight:400; cursor:pointer; border-radius:0; }
.client-login { align-items:start; padding-top:60px; padding-bottom:60px; }
.login-content { width:100%; max-width:520px; }
.access-field { display:flex; flex-direction:column; gap:9px; margin:0 0 23px; min-width:0; }
.access-field label { font-size:.9375rem; font-weight:400; line-height:1.5; letter-spacing:.025em; color:#dedede; }
.access-field input { display:block; width:100%; min-width:0; min-height:52px; border:1px solid #424242; border-radius:0; background:#080808; color:#f7f7f5; padding:13px 15px; font:inherit; font-size:1rem; line-height:1.5; box-shadow:none; transition:border-color 250ms ease,background-color 250ms ease; }
.access-field input:hover { border-color:#686868; }
.access-field input:focus-visible { border-color:#ce452f; outline:1px solid #ce452f; outline-offset:0; background:#101010; }
.access-field input:-webkit-autofill { -webkit-text-fill-color:#f7f7f5; box-shadow:0 0 0 1000px #101010 inset; caret-color:#fff; }
.remember-access { display:flex; align-items:center; gap:11px; width:fit-content; min-height:44px; margin:-4px 0 13px; color:#bdbdbd; font-size:.875rem; line-height:1.6; cursor:pointer; }
.remember-access input { flex:0 0 17px; width:17px; height:17px; margin:0; accent-color:#d9220e; cursor:pointer; }
.login-content > .client-button { width:100%; margin-top:0; background:transparent; border-color:#585858; color:#f6f6f6; }
.login-content > .client-button:hover { border-color:#d9220e; background:#17100e; }
.login-feedback { margin-top:22px; border-left:1px solid #da3a23; padding-left:17px; }
.login-feedback[hidden] { display:none !important; }
.login-content .login-feedback p { font-size:.9375rem; margin:0 0 8px; }
body.access-modal-open { overflow:hidden; }
.access-dialog { position:fixed; inset:0; width:calc(100% - 32px); max-width:560px; max-height:calc(100dvh - 32px); margin:auto; padding:43px; overflow-y:auto; overscroll-behavior:contain; color:#f7f7f5; background:#080808; border:1px solid #444; border-top-color:#9c281b; border-radius:2px; box-shadow:0 30px 120px #000b; }
.access-dialog::backdrop { background:#000b; backdrop-filter:blur(7px); }
.access-dialog .client-eyebrow { margin:0 44px 19px 0; font-size:.8125rem; }
.access-dialog h2 { margin:0 0 17px; font-size:2rem; font-weight:300; line-height:1.22; letter-spacing:.015em; overflow-wrap:anywhere; }
.access-dialog > p:not(.client-eyebrow) { font-size:1rem; line-height:1.75; color:#b4b4b4; margin:0 0 28px; }
.access-dialog-close { position:absolute; top:17px; right:17px; display:grid; place-items:center; width:44px; height:44px; padding:10px; border:0; background:transparent; color:#c6c6c6; cursor:pointer; }
.access-dialog-close svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.3; }
.access-dialog-close:hover { color:#fff; }
.access-dialog .client-button { width:100%; margin:2px 0 0; }
.access-dialog .access-handoff { color:#b8b8b8; font-size:.875rem; line-height:1.6; margin:14px 0 0; }
.access-dialog .access-handoff:empty { display:none; }
.access-privacy { display:inline-flex; align-items:center; min-height:44px; margin-top:10px; color:#b1b1b1; font-size:.8125rem; text-underline-offset:4px; }
.access-dialog[open] { animation:access-in 350ms ease both; }
@keyframes access-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) {
 .client-login { padding-top:42px; padding-bottom:42px; gap:30px; }
 .access-dialog { padding:34px 24px 22px; }
 .access-dialog h2 { font-size:1.85rem; }
 .access-dialog .client-eyebrow { letter-spacing:.12em; }
 .access-dialog-close { top:10px; right:10px; }
 .access-field { margin-bottom:20px; }
}
@media(prefers-reduced-motion:reduce) { .access-dialog[open] { animation:none; } }

/* Show the supplied photograph completely, preserving both vehicles. */
.client-photo { height:auto; aspect-ratio:1672/941; }
.client-photo img { object-fit:contain; object-position:center; }
.client-photo::after { background:linear-gradient(180deg,transparent 78%,rgba(3,3,3,.24)); }
