/* Shared visual system. Business-specific layouts stay in their own modules. */
:root{
  --neva-ink:#18343d;--neva-muted:#657b7d;--neva-accent:#18786f;
  --neva-line:rgba(24,52,61,.1);--neva-paper:#fbfcf9;
  --neva-shadow:0 8px 28px rgba(24,52,61,.045),0 1px 2px rgba(24,52,61,.025);
  --ink:var(--neva-ink);--muted:var(--neva-muted);--teal:var(--neva-accent);
  --apple-text:var(--neva-ink);--apple-sub:var(--neva-muted);--apple-blue:var(--neva-accent);
  --apple-blue-dark:#105e59;--apple-border:var(--neva-line);--apple-bg:#f3f3ed;
  --apple-bg-2:#fff;--apple-shadow-sm:var(--neva-shadow);
}
body{background:radial-gradient(ellipse at 100% 0,rgba(202,219,205,.2),transparent 48%),#f3f3ed;color:var(--neva-ink)}
[hidden]{display:none!important}
::selection{background:#cde7dd;color:#18343d}
html{scroll-padding-top:110px}
.wrap{max-width:1264px;padding:36px 32px 68px}
.header{background:rgba(251,252,249,.88)!important;border-bottom:1px solid var(--neva-line)!important;box-shadow:0 3px 22px rgba(24,52,61,.025)}
.header-inner{max-width:1264px;min-height:78px;padding:13px 32px;gap:20px}
.brand img{box-shadow:0 5px 15px rgba(15,66,67,.14);border:1px solid rgba(255,255,255,.3)}
.brand small{color:#778889;letter-spacing:.13em}
.desktop-nav{gap:4px}
.desktop-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 13px;border:1px solid transparent!important;border-radius:999px;transition:background .18s,color .18s,border-color .18s}
.desktop-nav a.active{background:#e9f1eb;border-color:#d7e6df!important;color:#16685e!important}
.desktop-nav a:hover{background:#edf2ec;color:#16685e!important}
.account-button{box-shadow:0 4px 10px rgba(19,106,97,.12);min-height:42px;padding:10px 18px!important}
.welcome-line{font-size:.8rem;color:#738584;margin-bottom:4px}
.welcome-line .city-label{border:1px solid var(--neva-line);border-radius:999px;padding:5px 10px;background:#ffffff8c}
.welcome-line .city-label .icon{width:16px;height:16px}
.hero{border:1px solid rgba(255,255,255,.5)!important;box-shadow:0 24px 55px rgba(16,44,48,.13)!important;border-radius:30px!important}
.hero-copy{padding-top:48px!important;padding-bottom:46px!important}
.hero .eyebrow{font-size:.7rem;letter-spacing:.2em}
.hero .actions{gap:12px}
.hero .primary,.hero .secondary{min-height:48px;padding:13px 22px!important}
.hero p{max-width:490px;line-height:1.8!important}
.hero .hero-foot{color:#9db7b8;letter-spacing:.06em}
.scenario-grid{gap:12px;margin-top:22px}
.scenario-grid>a.scenario{flex-direction:row;justify-content:flex-start;text-align:left;gap:14px;min-height:94px;padding:20px!important}
.scenario-icon{width:44px;height:44px;flex:0 0 44px;background:#e8f2ec!important;border:1px solid #dceae1;box-shadow:inset 0 1px 0 #fff}
.scenario strong{font-size:.92rem;color:var(--neva-ink)}
.scenario .bi{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.scenario .bi i{font-size:.72rem;color:#768987}
.scenario small{display:none}
.scenario,.intro-item,.service-card,.listing-card,.panel,.neva-panel,.insurance-card,.process{
  border-color:var(--neva-line)!important;box-shadow:var(--neva-shadow)!important;
}
.scenario,.intro-item,.service-card,.listing-card{background:rgba(255,255,255,.93)!important}
.service-card{padding:26px!important;border-radius:22px!important;min-height:270px;isolation:isolate;transition:transform .22s,border-color .22s,box-shadow .22s}
.service-card .card-top{margin-bottom:25px}
.service-card h3{font-size:1.21rem;letter-spacing:-.02em;color:var(--neva-ink)}
.service-card p{color:#6b7f80;font-size:.87rem;line-height:1.75}
.icon-box{width:46px;height:46px;border:1px solid #dfebe6;background:#edf5ef!important;color:#216d61!important;border-radius:14px!important;box-shadow:inset 0 1px 0 #fff}
.service-card:nth-child(3n+2) .icon-box{background:#f7f1e5!important;border-color:#eee4d2;color:#a17c3d!important}
.service-card:nth-child(3n) .icon-box{background:#ecf1f6!important;border-color:#dce6ee;color:#50758c!important}
.tag{font-size:.7rem!important;background:#edf4ef!important;color:#367065!important;border:1px solid #deebe2;border-radius:999px!important;padding:4px 10px}
.card-bottom{border-color:var(--neva-line)!important;padding-top:15px}
.card-bottom .text-button{padding:6px 0 6px 12px;min-height:36px}
.card-bottom .text-button::after{content:'↗';margin-left:8px;font-size:1.05rem}
.section-heading{margin-bottom:24px;align-items:flex-end}
.section-heading h2{font-size:clamp(1.65rem,2.5vw,2.25rem);letter-spacing:-.035em;color:var(--neva-ink)}
.section-heading .eyebrow,.page-intro .eyebrow{font-size:.68rem;letter-spacing:.2em;color:#37786b}
.section-heading p{font-size:.87rem;line-height:1.7}
.intro-strip{margin:22px 0 48px;gap:12px}
.intro-item{padding:18px 20px!important;border-radius:18px!important;line-height:1.5}
.intro-item span{margin-top:6px;color:#748884}
.trust-strip{border:1px solid rgba(216,230,218,.12);padding:17px 22px;margin-top:20px!important;box-shadow:none!important;gap:28px;background:#183d45!important;border-radius:18px!important}
.trust-strip .trust-item{font-size:.78rem;color:#dae7e2}
.trust-strip .icon{width:17px;height:17px}
.feature-row{gap:18px;margin-top:42px}
.feature{padding:32px!important;border-radius:24px!important;border:1px solid #d7e5dc;background:#e7f0e9!important;box-shadow:inset 0 1px 0 #fff}
.feature.gold{background:#f3eddf!important;border-color:#e8dfcc}
.feature h2{font-size:1.65rem;line-height:1.45;letter-spacing:-.025em;color:var(--neva-ink)}
.feature p{line-height:1.8}
.feature .feature-symbol{font-size:6rem;top:30px;right:28px;opacity:.065}
.process{padding:30px!important;border-radius:24px!important;background:#fcfdfb!important;margin-top:24px}
.steps{gap:24px}
.step{position:relative;gap:14px;padding:8px 0}
.step-num{width:39px;height:39px;flex:0 0 39px;border:1px solid #dbe8e0;border-radius:50%;display:grid;place-items:center;font-size:.78rem;color:#287064;background:#f1f7f0;font-variant-numeric:tabular-nums}
.step strong{font-size:.9rem;color:var(--neva-ink)}
.step p{line-height:1.65;margin-top:6px}
.page-intro{padding:24px 0 32px;max-width:800px}
.page-intro h1{font-size:clamp(2.1rem,3.4vw,3.4rem)!important;line-height:1.2;letter-spacing:-.045em;color:var(--neva-ink)!important;text-wrap:balance}
.page-intro p{font-size:.95rem;line-height:1.8;max-width:640px}
.breadcrumb{color:#758883;display:flex;align-items:center;gap:8px;margin-bottom:20px}
.breadcrumb a:hover{color:#16685e}
.detail-layout{gap:24px}
.panel,.neva-panel{background:#fff!important;border-radius:22px!important;padding:26px!important}
.panel h2,.panel h3,.neva-panel h2,.neva-panel h3{color:var(--neva-ink)!important}
.item-list{gap:10px}
.item-row{border-color:#dfe7df!important;background:#fbfcf9!important;border-radius:14px!important;padding:17px 18px!important;transition:background .18s,border-color .18s,transform .18s;min-height:60px}
.item-row:hover{background:#edf5ef!important;border-color:#b8d6c7!important;transform:translateX(2px)}
.item-row .icon{width:19px;height:19px}
.aside .panel{position:sticky;top:105px;background:#f8faf5!important}
.empty,.neva-empty{border:1px dashed #cddbd1!important;border-radius:22px!important;background:linear-gradient(135deg,#f8fbf6,#ffffff)!important;box-shadow:none!important;padding:52px 28px!important;color:#6a807b}
.empty>.icon{width:48px;height:48px;padding:11px;background:#e8f1e9;border-radius:16px;color:#3c7e6f;box-sizing:content-box;stroke-width:1.3;margin-bottom:18px}
.empty h3{font-size:1.2rem;color:var(--neva-ink)}
.empty p{max-width:450px;margin:0 auto 22px;line-height:1.8}
.empty .primary{margin:0 auto}
.profile-head{padding:28px!important;background:linear-gradient(115deg,#e9f2ea,#fafcf8)!important;border:1px solid #d6e5da!important;border-radius:24px!important;box-shadow:none!important}
.avatar{background:#1d6e62!important;border:3px solid #fff;box-shadow:0 6px 18px #1d6e621a;font-weight:500}
.account-tabs,.admin-tabs{gap:6px;padding:5px!important;background:#e8ede7!important;border:1px solid #dce5dc;border-radius:15px!important;overflow:auto;scrollbar-width:thin}
.account-tabs button,.admin-tabs button{border-radius:10px!important;white-space:nowrap;min-height:42px;border:1px solid transparent!important;padding:9px 16px!important;color:#697c75}
.account-tabs button.active,.admin-tabs button.active{background:#fff!important;color:#195c50!important;box-shadow:0 2px 6px #14372d0d;border-color:#dce7de!important}
.listing-card{border-radius:22px!important;overflow:hidden;transition:transform .22s,box-shadow .22s}
.listing-image{transition:transform .35s ease;aspect-ratio:4/3;object-fit:cover}
.listing-content{padding:22px}
.listing-content .price{font-variant-numeric:tabular-nums;color:#165e52;letter-spacing:-.02em}
.filters{padding:20px!important;border:1px solid var(--neva-line)!important;background:#fff!important;border-radius:20px!important;box-shadow:var(--neva-shadow)}
.filters label{color:#61776f;font-size:.78rem}
.primary,.secondary,.danger,.neva-primary,.neva-danger{min-height:44px;transition:transform .16s,box-shadow .18s,background .18s,border-color .18s!important}
.primary,.neva-primary{background:linear-gradient(135deg,#1a7d70,#12665e)!important;color:#fff!important;box-shadow:0 4px 10px #15695e16!important;border-radius:12px!important}
button.primary,.neva-panel .primary,.account-button{background:linear-gradient(135deg,#1a7d70,#12665e)!important}
.secondary{background:#fbfcf8!important;color:#325b50!important;border-color:#d3e0d4!important;border-radius:12px!important}
.danger,.neva-danger{border-radius:12px!important}
.primary:active,.secondary:active,.account-button:active,.neva-primary:active{transform:translateY(1px) scale(.985)}
button:disabled,[aria-disabled=true]{cursor:not-allowed!important;transform:none!important;box-shadow:none!important}
button[aria-busy=true]{cursor:wait!important}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{
  border-color:#d7e2d8!important;background:#fbfcf9!important;border-radius:12px!important;color:var(--neva-ink);min-height:46px;
  transition:background .18s,border-color .18s,box-shadow .18s;
}
input::placeholder,textarea::placeholder{color:#8a9b92;opacity:1}
input:focus,select:focus,textarea:focus{background:#fff!important;border-color:#579985!important;box-shadow:0 0 0 3px #1a7d7015!important}
input[type=checkbox],input[type=radio]{accent-color:#197969;flex-shrink:0}
label{line-height:1.6}
form .help,.neva-help{color:#71857c;line-height:1.7}
form .form-error:not(:empty),.neva-error:not(:empty){border-left:3px solid #b9554b;border-radius:8px;background:#fcf0ec;padding:11px 14px;color:#9f413c;line-height:1.65}
.notice{border-radius:14px!important;border-color:#dce6d8!important;background:#f1f7ec!important;color:#4c6955}
.table-wrap{border-radius:16px;overflow:auto;border:1px solid var(--neva-line)}
table{font-size:.85rem}
th{background:#f2f6ef!important;color:#638071;white-space:nowrap;font-size:.76rem;letter-spacing:.02em}
td{border-color:#e8ede6!important}
tbody tr:hover{background:#fafcf7}
.badge{font-size:.73rem;padding:5px 9px;border-radius:8px;font-weight:600}
.neva-track-search{border-radius:18px;background:#f3f8f0;padding:14px!important;border:1px solid #dfeada}
.neva-bill .total{border-top:1px solid #d8e5d8;padding-top:16px;color:#175f50;font-variant-numeric:tabular-nums}
.neva-address{background:#f1f6ed!important;border:1px solid #dde7d6;color:#37594a}
.neva-inbox{border-radius:18px;box-shadow:0 15px 45px #173b3026;padding:12px;border-color:#dae5d9}
.neva-inbox a{border-radius:12px;border-color:#e8eee3;margin-bottom:4px}
.neva-inbox a.unread{background:#f0f6eb;border-left-color:#3a8b72}
.float-support,.back-top{box-shadow:0 8px 24px #153d3426;border:1px solid #ffffff72!important;transition:transform .18s,box-shadow .18s}
.float-support{background:#226e62!important}
.bottom-nav{background:rgba(251,252,249,.94)!important;border-top-color:#dce5d9!important;box-shadow:0 -5px 24px #17372c06}
.bottom-nav a.active{color:#1c7462!important}
#dialog,.neva-modal{border:1px solid rgba(218,230,218,.9)!important;border-radius:24px!important;box-shadow:0 30px 90px #15352c33!important}
#dialog .dialog-sub{color:#6c8176;line-height:1.7}
#dialog .dialog-close,.neva-close{border-radius:50%;background:#f0f5ed;color:#486d5b}
dialog::backdrop{background:rgba(13,37,33,.5)!important;backdrop-filter:blur(7px)}
#toast{border:1px solid #d8e5d5;border-radius:14px!important;box-shadow:0 12px 36px #163a302b!important;font-size:.88rem}
#progress-bar{height:3px!important;background:linear-gradient(90deg,#0d655b,#75b59c,#d8bd7c)!important;box-shadow:0 1px 7px #1c75653b}
.footer{max-width:1200px;margin:auto;padding:36px 0 44px!important;background:transparent!important;border-top:1px solid #d6dfd1!important;color:#7a8b7e!important}
.footer .brand{color:#344d42}
.footer p{line-height:1.85;font-size:.79rem}
.footer a:hover{color:#16685e!important}

/* Service search is part of the real catalogue, with keyboard-friendly controls. */
.service-finder{background:#fff;border:1px solid var(--neva-line);border-radius:22px;padding:22px 24px;margin:0 0 26px;box-shadow:var(--neva-shadow)}
.service-search{display:flex;align-items:center;gap:12px;position:relative}
.service-search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.service-search .icon{width:20px;height:20px;color:#577c69;flex:none}
.service-search input{width:100%;min-width:0;padding:13px 16px;font-size:.94rem}
.service-clear{flex:none;border:1px solid #d9e5d5;background:#f6f9f1;color:#3f705a;border-radius:10px;min-height:44px;padding:9px 15px}
.service-search-status{margin:10px 0 0;font-size:.76rem;color:#798c7e;line-height:1.65}
.service-search-empty{padding:30px;text-align:center;border:1px dashed #c9dcc7;border-radius:18px;background:#f9fcf5;color:#6a806e;grid-column:1/-1}
.service-card[hidden]{display:none!important}

@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .service-card:hover,.listing-card:hover{transform:translateY(-4px);border-color:#bcd5c5!important;box-shadow:0 18px 38px #17392e0d!important}
 .scenario:hover{transform:translateY(-3px);border-color:#b6d0bf!important;box-shadow:0 12px 24px #17392e0a!important}
 .listing-card:hover .listing-image{transform:scale(1.025)}
 .primary:hover,.neva-primary:hover{box-shadow:0 7px 18px #15695e26!important}
 .secondary:hover{background:#edf4e7!important;border-color:#b7d1b6!important}
 .float-support:hover,.back-top:hover{transform:translateY(-3px);box-shadow:0 12px 30px #153d3433}
}
@media(min-width:761px) and (max-width:1050px){
 .header-inner{gap:12px;padding-left:22px;padding-right:22px}
 .desktop-nav{gap:0}.desktop-nav a{padding:8px 9px;font-size:.8rem}
 .wrap{padding-left:24px;padding-right:24px}
 .scenario-grid>a.scenario{padding:15px 12px!important;gap:9px}
 .scenario .bi i{font-size:.66rem}
 .service-card{padding:22px!important}
 .footer{margin-left:24px;margin-right:24px}
}
@media(max-width:760px){
 html{scroll-padding-top:90px}
 .wrap{padding:22px 16px 40px!important}
 .header-inner{min-height:68px;padding:10px 16px!important;gap:8px!important}
 .brand img{border-radius:12px}
 .account-button{padding:8px 10px!important;min-height:42px!important}
 .welcome-line{font-size:.68rem;padding-bottom:10px;gap:6px}
 .welcome-line .city-label{padding:4px 7px;font-size:.64rem;gap:3px;white-space:nowrap}
 .welcome-line .city-label .icon{width:13px;height:13px}
 .hero{border-radius:24px!important}
 .hero-copy{padding:0 20px 12px!important}
 .hero .actions{gap:8px}.hero .primary,.hero .secondary{padding:11px 9px!important;min-height:52px}
 .hero p{line-height:1.65!important}
 .hero .hero-visual,.hero.neva-water-enabled>.hero-visual{height:190px!important;min-height:190px!important;background-size:auto 190px!important;background-position:center bottom!important}
 .hero-visual .culture-stage-header{display:none}
 .scenario-grid{gap:10px!important;margin-top:14px!important}
 .scenario-grid>a.scenario{padding:13px 10px!important;gap:8px;min-height:82px!important}
 .scenario-icon{width:32px;height:36px;flex-basis:32px}
 .scenario strong{font-size:.8rem}.scenario .bi i{font-size:.67rem;line-height:1.3}
 .trust-strip{margin-top:14px!important;gap:12px!important;padding:16px!important}
 .trust-strip .trust-item{font-size:.7rem}
 .intro-strip{gap:10px;margin-bottom:34px!important}
 .intro-item{padding:16px!important;min-height:72px}
 .section-heading{align-items:flex-start;gap:12px;margin-bottom:18px}
 .section-heading h2{font-size:1.55rem}.section-heading>.text-button{font-size:.76rem;white-space:nowrap;min-height:36px}
 .section-heading p{font-size:.8rem}
 .service-card{padding:23px!important;border-radius:20px!important;min-height:0}
 .service-card .card-top{margin-bottom:20px}
 .service-card h3{font-size:1.2rem}.service-card p{margin:12px 0 18px}
 .services-grid{gap:13px!important}
 .feature-row{margin-top:24px;gap:14px}
 .feature{padding:26px!important;border-radius:22px!important}.feature h2{font-size:1.5rem}
 .process{padding:24px!important;border-radius:22px!important}
 .steps{gap:15px!important}.step{padding:0;gap:14px}.step p{margin-top:4px}
 .page-intro{padding:16px 0 23px}.page-intro h1{font-size:2.1rem!important;line-height:1.25}
 .page-intro p{font-size:.86rem;line-height:1.8}
 .panel,.neva-panel{padding:21px!important;border-radius:20px!important}
 .aside .panel{position:static}
 .item-row{padding:16px!important;min-height:58px}
 .empty,.neva-empty{padding:38px 22px!important}
 .profile-head{padding:22px!important;gap:14px}
 .filters{padding:17px!important}.account-tabs button,.admin-tabs button{padding:9px 13px!important}
 .listing-content{padding:20px}.listing-card{border-radius:20px!important}
 .footer{margin:0 16px;padding:28px 0 118px!important}
 .service-finder{padding:18px;margin-bottom:20px;border-radius:18px}
 .service-search{gap:8px}.service-search input{padding:12px;font-size:16px}
 .service-search .icon{display:none}.service-clear{padding:9px 11px;font-size:.78rem}
 .service-search-status{font-size:.72rem}
 input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:16px!important}
 .insurance-card{border-radius:21px!important}
}
@media(max-width:350px){
 .welcome-line{align-items:flex-start;flex-direction:column;gap:7px}.welcome-line .city-label{margin-left:0}
 .hero .actions{grid-template-columns:1fr}.scenario-grid{grid-template-columns:1fr!important}
 .service-search{flex-wrap:wrap}.service-clear{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .service-card,.listing-card,.listing-image,.scenario,.item-row,.desktop-nav a,.primary,.secondary,.account-button,.neva-primary,.float-support,.back-top,input,select,textarea{transition:none!important;animation:none!important}
 .service-card:hover,.listing-card:hover,.scenario:hover,.item-row:hover,.primary:active,.secondary:active,.account-button:active{transform:none!important}
}
