/* Keep portal destinations and account controls in distinct, predictable rows. */
.client-header .client-navigation { display: flex; flex-direction: column; gap: 16px; padding-top: 18px; border-top: 1px solid #ffffff24; }
.client-nav-main { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.client-header .client-nav-main a { justify-content: center; text-align: center; border-radius: 12px; padding: 12px 10px; background: #ffffff09; }
.client-header .client-nav-main a.active { background: var(--pink); }
.client-nav-tools { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 8px; }
.client-header .client-nav-tools a, .client-header .client-nav-tools button { gap: 8px; font-size: .9rem; border-radius: 10px; }
.client-header .client-nav-tools form { margin: 0; }
.client-header .client-nav-tools .client-nav-updates { margin-right: auto; }
.client-header .client-nav-signout { border: 1px solid #ffffff38; }
.client-header .client-navigation a:focus-visible, .client-header .client-navigation button:focus-visible { outline: 3px solid #ffe876; outline-offset: 3px; }
@media (max-width: 850px) {
    .client-nav-main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 450px) {
    .client-nav-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .client-nav-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .client-header .client-nav-tools .client-nav-updates { grid-column: 1 / -1; margin: 0; justify-content: flex-start; }
    .client-header .client-nav-tools a, .client-header .client-nav-tools button { width: 100%; justify-content: center; }
}

.client-checklist-items { list-style: none; padding: 0; margin: 20px 0; display: grid; gap: 16px; }
.client-checklist-items li { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.client-checklist-items p { margin: 6px 0 0; }
.client-checklist-state { padding: 6px 10px; border-radius: 8px; background: #fff0cf; color: #79530b; text-align: center; font-size: .8rem; font-weight: 700; }
.client-checklist-state.complete { background: #eafaf2; color: #176344; }
.client-action-row { display: flex; flex-wrap: wrap; gap: 12px; }
.client-small-note { font-size: .85rem; }
.client-help details { padding: 18px 0; border-bottom: 1px solid var(--border); }
.client-help summary { cursor: pointer; font-weight: 700; line-height: 1.6; }
.client-help summary:focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
@media (max-width: 450px) { .client-checklist-items li { grid-template-columns: minmax(0, 1fr); gap: 10px; } .client-checklist-state { justify-self: start; } }

/* Client footer: aligned columns with a separate legal row. */
.client-auth-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:32px;align-items:center;max-width:1080px;margin:24px auto; }
.client-auth-layout .client-auth { width:100%;max-width:none;box-sizing:border-box;margin:0; }
.client-auth-tabs { display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin-bottom:24px;border:1px solid #eed8e4;background:#fff;border-radius:14px; }
.client-auth-tabs a { min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:10px;text-decoration:none;font-weight:700;color:var(--navy); }
.client-auth-tabs a[aria-current="page"] { background:var(--pink);color:white; }
.client-auth-tabs a:focus-visible,.client-signin-help summary:focus-visible { outline:3px solid #7c3aed;outline-offset:2px; }
.client-verification-steps { display:flex;flex-wrap:wrap;gap:8px 24px;padding-left:22px;font-size:.85rem;color:var(--muted);line-height:1.7; }
.client-signin-help { margin:18px 0;padding:12px;border:1px solid #eed8e4;border-radius:12px;background:#fff; }
.client-signin-help summary { cursor:pointer;font-weight:600;min-height:24px; }
.client-signin-help p { font-size:.9rem;line-height:1.6; }
.client-signup-intro { padding:32px;border-radius:28px;background:linear-gradient(135deg,#ffe5f0,#fff1cf 55%,#eee4ff);color:var(--navy); }
.client-signup-intro > small { color:#8a2458;font-weight:700;letter-spacing:.06em; }
.client-signup-intro h2 { font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.15;margin:16px 0; }
.client-signup-benefits { list-style:none;padding:0;margin:24px 0;display:grid;gap:12px; }
.client-signup-benefits li { padding:14px 16px;border:1px solid #ffffffb0;border-radius:14px;background:#ffffffb0;display:grid;gap:5px; }
.client-signup-benefits span,.client-signup-reassurance { font-size:.9rem;line-height:1.5; }
.client-signup-intro .btn { min-height:48px; }
.client-signup-review { margin:20px 0;padding:18px;background:#fff;border:1px solid #eed8e4;border-radius:16px; }
.client-review-stars { color:#007f60;letter-spacing:3px;font-size:1.25rem; }
.client-signup-review blockquote { margin:10px 0;font-size:.95rem;line-height:1.6; }
.client-signup-review blockquote p { margin:0; }
.client-signup-review figcaption { display:grid;gap:4px;font-size:.85rem; }
.client-review-carousel [hidden] { display:none; }
.client-review-controls { display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-bottom:18px; }
.client-review-controls .btn { min-height:44px; }
@media(max-width:800px) {
    .client-auth-layout { grid-template-columns:minmax(0,1fr);gap:18px;margin:12px auto;max-width:520px; }
    .client-signup-intro { padding:22px; }
    .client-signup-intro h2 { font-size:1.65rem; }
    .client-signup-benefits { margin:16px 0;gap:8px; }
    .client-signup-benefits li { padding:10px 12px; }
    .client-signup-intro .btn { display:flex;justify-content:center; }
}
.client-footer { display: block; padding: 32px 24px 20px; background: linear-gradient(120deg,#fffafc,#faf7ff); }
.client-footer-inner { width: 100%; max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 24px 36px; align-items: start; }
.client-footer-inner > section { min-width: 0; display: grid; align-content: start; gap: 12px; }
.client-footer h2 { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--navy); }
.client-footer-brand { display: flex; align-items: center; gap: 16px; }
.client-footer-brand img { width: 64px; height: 64px; flex-shrink: 0; object-fit: cover; border-radius: 50%; box-shadow: 0 4px 16px #96366318; }
.client-footer a { overflow-wrap: anywhere; line-height: 1.6; }
.client-footer a:focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
.client-footer-address { display: grid; gap: 8px; }
.client-footer-label { font-weight: 600; color: var(--navy); }
.client-footer address { font-style: normal; line-height: 1.8; }
.client-footer .client-social-links { margin: 0; max-width: none; gap: 10px; }
.client-footer .client-social-links .btn { padding: 10px 16px; min-height: 44px; border-radius: 12px; }
.client-footer-bottom { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-top: 24px; border-top: 1px solid var(--border); }
.client-footer-bottom p { margin: 0; line-height: 1.6; }
.client-footer-links { display:flex;flex-wrap:wrap;gap:8px; }
.client-footer-links a { display:flex;align-items:center;min-height:44px;padding:8px 14px;box-sizing:border-box;border:1px solid #eed8e4;border-radius:10px;background:#fff;text-decoration:none;font-weight:600;color:var(--navy); }
.client-footer-links a:hover,.client-footer-links a[aria-current="page"] { background:#fff0f7;border-color:var(--pink); }
.client-footer-contact > a { display:flex;align-items:center;min-height:44px; }
@media (min-width:851px) {
    .client-footer { padding:36px 40px 24px; }
    .client-footer-inner { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:28px 32px; }
    .client-footer-inner:not(:has(.client-footer-social)) { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
    .client-footer-inner > section { padding:8px 24px 8px 0; }
    .client-footer-inner > section + section { padding-left:28px;border-left:1px solid #eed8e4; }
    .client-footer-brand { min-height:64px; }
    .client-footer-contact h2,.client-footer-social h2 { display:flex;align-items:center;min-height:64px; }
    .client-footer .client-social-links { display:grid;grid-template-columns:minmax(0,1fr);gap:8px; }
    .client-footer .client-social-links .btn { justify-content:flex-start;text-align:left;width:100%;box-sizing:border-box; }
    .client-footer-bottom { flex-wrap:nowrap;gap:24px;padding-top:20px; }
    .client-footer-bottom p { font-size:.85rem; }
    .client-footer-links { justify-content:flex-end;flex-shrink:0; }
}
@media (max-width: 850px) {
    .client-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
}
@media (max-width: 560px) {
    .client-footer { padding: 24px 16px 20px; }
    .client-footer-inner { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .client-footer-bottom { align-items: flex-start; flex-direction: column; }
    .client-footer-brand img { width:48px;height:48px; }
    .client-footer address { line-height:1.6; }
    .client-footer-links { width:100%; }
    .client-footer-links a { flex:1;justify-content:center;text-align:center; }
}

/* Soft, paint-inspired motion shared by the client portal. */
.client-header { position: relative; isolation: isolate; overflow: visible; z-index: 10; }
.client-header::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: radial-gradient(ellipse at 35% 50%, #f52f8328, transparent 40%), radial-gradient(ellipse at 65% 50%, #40c9bf20, transparent 40%);
    background-size: 160% 160%; animation: client-header-colour 18s ease-in-out infinite alternate;
}
.client-header nav a, .client-header nav button { transition: background-color .35s, transform .35s, box-shadow .35s; }
.client-header nav a:hover, .client-header nav button:hover { transform: translateY(-2px); box-shadow: 0 6px 18px #0002; }
.client-animated-card { animation: client-portal-arrive 1.1s var(--arrival-delay, 0ms) cubic-bezier(.2,.75,.25,1) both; }
.client-summary article { transition: box-shadow .4s, border-color .4s; }
.client-summary article:hover { box-shadow: 0 12px 32px #96366318; }
.client-record { transition: background-color .35s, padding-left .35s; border-radius: 8px; }
a.client-record:hover, a.client-record:focus-visible { background: #fff0f7; padding-left: 12px; }
.client-welcome-art { position:relative;isolation:isolate; }
.client-welcome-art::before {
    content:'';position:absolute;inset:-12px;z-index:-1;pointer-events:none;
    border-radius:50%;background:conic-gradient(#f7258580,#ffd85a80,#40c9bf80,#a46bff80,#f7258580);
    filter:blur(16px);opacity:.65;animation:client-welcome-colour 12s linear infinite;
}
.client-welcome-art img { position:relative;animation:client-welcome-bounce 4.5s ease-in-out infinite; }
@keyframes client-welcome-bounce {
    0%,100% { transform:translateY(0) rotate(-3deg) scale(1); }
    50% { transform:translateY(-10px) rotate(3deg) scale(1.04); }
}
@keyframes client-welcome-colour { to { transform:rotate(360deg); } }
.client-main .client-auth { border-radius: 28px; animation: client-card-arrive 1.5s cubic-bezier(.2,.75,.25,1) both; }
.client-logo-halo { width: 178px; height: 178px; }
.client-logo-halo::before { animation-duration: 20s; box-shadow: 0 0 28px #f52f8320; }
.client-auth-logo { animation-duration: 7s; }
.client-paint-bubble { animation-duration: calc(var(--duration) * 1.6); }
.client-auth-sending { animation: client-action-glow 2.4s ease-in-out infinite alternate !important; }
.client-auth-sending .client-logo-halo::before { animation-duration: 4s; }
.client-wax-scene { display:none; pointer-events:none; }
.client-auth-sending .client-wax-scene { display:block; position:relative; width:300px; max-width:100%; height:180px; margin:4px auto; overflow:hidden; }
.client-wax-letter { position:absolute; left:calc(50% - 64px); top:70px; width:128px; height:80px; perspective:400px; animation:client-wax-send 4s ease-in-out both; }
.client-wax-paper { position:absolute; top:-28px; left:12px; width:104px; height:85px; border-radius:5px; border:1px solid #e9d5ff; background:repeating-linear-gradient(to bottom,#fff 0 14px,#e9d5ff 14px 16px,#fff 16px 24px); animation:client-wax-tuck 3.2s ease-in-out both; }
.client-wax-envelope { position:absolute; inset:0; border-radius:6px; background:linear-gradient(145deg,#ffe8f1,#f7c5db); clip-path:polygon(0 0,50% 48%,100% 0,100% 100%,0 100%); border-bottom:3px solid #edafd0; }
.client-wax-flap { position:absolute; top:-52px; left:0; right:0; height:54px; background:#f3bad4; clip-path:polygon(0 100%,50% 0,100% 100%); transform-origin:bottom; animation:client-wax-close 3.2s ease-in-out both; }
.client-wax-seal { position:absolute; left:46px; top:31px; width:36px; height:36px; display:grid; place-items:center; border-radius:44% 56% 48% 52% / 53% 45% 55% 47%; background:radial-gradient(circle at 35% 25%,#fb718d,#be185d 72%); box-shadow:inset 0 0 0 3px #ffffff22,0 3px 5px #83184335; animation:client-wax-imprint 3.2s ease-in-out both; }
.client-wax-seal span { color:#ffe4bc; font-family:Georgia,serif; font-size:15px; font-weight:bold; text-shadow:0 1px 1px #831843; border:1px solid #ffe4bc80; border-radius:50%; padding:3px; }
.client-wax-stamp { position:absolute; top:8px; left:calc(50% - 18px); width:36px; height:92px; animation:client-wax-press 3.2s ease-in-out both; }
.client-wax-handle { position:absolute; left:8px; top:0; width:20px; height:72px; border-radius:12px 12px 6px 6px; background:linear-gradient(90deg,#71395f,#a379df,#71395f); box-shadow:inset 0 4px #ffffff30; }
.client-wax-stamp-base { position:absolute; left:0; bottom:0; width:36px; height:20px; border-radius:5px; background:linear-gradient(#ffe4bc,#c88f43); border-bottom:4px solid #a66c2d; }
@keyframes client-wax-tuck { 0%,8% { transform:translateY(0); opacity:1; } 26%,100% { transform:translateY(30px) scaleY(.5); opacity:0; } }
@keyframes client-wax-close { 0%,24% { transform:rotateX(0); } 42%,100% { transform:rotateX(-180deg); } }
@keyframes client-wax-press { 0%,38% { transform:translateY(-75px); opacity:0; } 45% { opacity:1; } 55%,62% { transform:translateY(22px); opacity:1; } 76%,100% { transform:translateY(-85px); opacity:0; } }
@keyframes client-wax-imprint { 0%,53% { opacity:0; transform:scale(.4); } 61% { opacity:1; transform:scale(1.12); } 69%,100% { opacity:1; transform:scale(1); } }
@keyframes client-wax-send { 0%,64% { transform:translateX(0); opacity:1; } 86% { transform:translate(70px,34px) rotate(-5deg) scale(.25); opacity:1; } 90%,100% { transform:translate(74px,34px) scale(.08); opacity:0; } }
.client-post-road { position:absolute; bottom:12px; left:0; right:0; height:3px; border-radius:3px; background:#e9d5ff; }
.client-post-van { position:absolute; right:16px; bottom:15px; width:104px; height:62px; animation:client-van-drive 4s ease-in-out both; }
.client-van-body { position:absolute; top:0; left:0; width:68px; height:48px; padding-top:13px; box-sizing:border-box; border-radius:8px 5px 4px 4px; background:linear-gradient(120deg,#f52f83,#be185d); color:white; text-align:center; font-size:10px; font-weight:800; letter-spacing:1px; box-shadow:inset 0 -5px #83184330; }
.client-van-cab { position:absolute; right:0; top:12px; width:38px; height:36px; background:#db2777; border-radius:4px 16px 5px 0; }
.client-van-window { position:absolute; top:4px; left:5px; width:22px; height:14px; border-radius:3px 9px 2px 2px; background:#bae6fd; border-bottom:2px solid #7dd3fc; }
.client-van-door { position:absolute; left:4px; top:6px; width:20px; height:35px; border-radius:3px; background:#831843; transform-origin:left; animation:client-van-close 4s ease-in-out both; }
.client-van-wheel { position:absolute; bottom:2px; width:21px; height:21px; box-sizing:border-box; border:5px solid #243047; border-radius:50%; background:#d8b4fe; box-shadow:0 0 0 2px #fff7fb; animation:client-van-wheels 4s ease-in-out both; }
.client-van-wheel::after { content:''; position:absolute; inset:3px; border-radius:50%; background:#64748b; }
.client-van-wheel-back { left:12px; }.client-van-wheel-front { right:9px; }
@keyframes client-van-drive { 0%,46% { opacity:0; transform:translateX(100px); } 55%,90% { opacity:1; transform:translateX(0); } 100% { opacity:1; transform:translateX(160px); } }
@keyframes client-van-close { 0%,86% { transform:rotateY(-35deg); opacity:1; } 90%,100% { transform:rotateY(0); background:#db2777; } }
@keyframes client-van-wheels { 0%,90% { transform:rotate(0); } 100% { transform:rotate(360deg); } }
.client-auth-sending .client-form > button[type='submit'] { position: relative; overflow: hidden; }
.client-auth-sending .client-form > button[type='submit']::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(100deg, transparent, #ffffff40, transparent);
    animation: client-button-sheen 1.6s ease-in-out infinite;
}
@keyframes client-header-colour { to { background-position: 100% 100%; } }
@keyframes client-portal-arrive { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes client-button-sheen { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) {
    .client-shell *, .client-shell *::before, .client-shell *::after { animation: none !important; transition: none !important; }
    .client-header nav a:hover, .client-header nav button:hover { transform: none; }
}

/* Grouped top navigation and progressively enhanced mobile menu. */
.client-header .client-navigation { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.client-nav-main { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.client-nav-tools { display: flex; align-items: center; gap: 8px; }
.client-nav-group { position: relative; min-width: 0; }
.client-nav-group summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 12px 16px; border-radius: 12px; cursor: pointer; list-style: none; background: #ffffff09; }
.client-nav-group summary::-webkit-details-marker { display: none; }
.client-nav-group summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.client-nav-group[open] summary::after { transform: rotate(225deg); }
.client-nav-group.active > summary { background: var(--pink); }
.client-nav-group summary:hover, .client-nav-group[open] > summary { box-shadow: 0 4px 16px #0002; }
.client-nav-group summary:focus-visible, .client-menu-toggle:focus-visible { outline: 3px solid #ffe876; outline-offset: 3px; }
.client-nav-dropdown { position: absolute; top: calc(100% + 10px); left: 0; width: 230px; max-width: calc(100vw - 40px); padding: 8px; background: #fff; border: 1px solid #eee1eb; border-radius: 16px; box-shadow: 0 16px 40px #10213f28; }
.client-nav-tools .client-nav-dropdown { left: auto; right: 0; }
.client-header .client-nav-dropdown a, .client-header .client-nav-dropdown button { display: flex; width: 100%; justify-content: flex-start; margin: 0; padding: 12px; border-radius: 8px; color: var(--navy); background: transparent; text-align: left; }
.client-header .client-nav-dropdown a:hover, .client-header .client-nav-dropdown button:hover, .client-header .client-nav-dropdown a[aria-current='page'] { background: #fff0f7; transform: none; box-shadow: none; }
.client-header .client-nav-dropdown a:focus-visible, .client-header .client-nav-dropdown button:focus-visible { outline-color: var(--pink); outline-offset: -3px; }
.client-header .client-nav-dropdown form { border-top: 1px solid var(--border); margin-top: 6px; padding-top: 6px; }
.client-header .client-nav-dropdown .client-nav-signout { border: 0; }
.client-menu-toggle { display: none; }
@media (max-width: 700px) {
    .client-menu-toggle:not([hidden]) { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 12px 16px; min-height: 44px; border: 1px solid #ffffff38; border-radius: 12px; color: white; background: #ffffff09; font: inherit; cursor: pointer; }
    .client-header .client-navigation.client-nav-enhanced { display: none; }
    .client-header .client-navigation.client-nav-enhanced.is-expanded, .client-header .client-navigation { display: flex; flex-direction: column; align-items: stretch; }
    .client-nav-main, .client-nav-tools { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
    .client-nav-tools { border-top: 1px solid #ffffff24; padding-top: 12px; }
    .client-header .client-nav-main > a, .client-header .client-nav-tools > a { justify-content: flex-start; text-align: left; padding: 12px 16px; }
    .client-nav-group summary { width: 100%; }
    .client-nav-dropdown, .client-nav-tools .client-nav-dropdown { position: static; width: 100%; max-width: none; margin-top: 8px; box-shadow: none; }
}
