/* ISP Review BD — shared editorial design system. */
:root {
 --bg:#f8faf8; --surface:#fff; --surface-2:#edf3ef; --text:#172b29; --text-muted:#526761;
 --border:#d6e1da; --accent:#075e54; --accent-hover:#04483f; --accent-soft:#e6f2ed; --on-accent:#fff;
 --font-display:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --font-body:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --shadow-1:0 1px 2px rgb(23 43 41 / .04);
 color-scheme:light;
}
html.dark { --bg:#101c1b; --surface:#172624; --surface-2:#20332e; --text:#ecf4ee; --text-muted:#afc1b7; --border:#3b5148; --accent:#66d1b6; --accent-hover:#92e3cd; --accent-soft:#203e35; --on-accent:#112920; color-scheme:dark; }
html { scroll-padding-top:100px; }
body,html.dark body { background:var(--bg); color:var(--text); font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased; }
*,*::before,*::after { box-sizing:border-box; }
.container { width:100%; max-width:1248px; margin-inline:auto; padding-inline:clamp(20px,4vw,48px); }
.container-narrow,.container-wide { width:100%; }
main { min-width:0; outline:none; }
h1,h2,h3,h4,h5,h6 { text-wrap:balance; }
img,svg,video { max-width:100%; }
button,input,select,textarea { font:inherit; }
input,textarea,select { max-width:100%; }
input[type=search] { min-width:0; }
a { color:var(--accent); text-underline-offset:4px; }
a:hover { color:var(--accent-hover); }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
[id] { scroll-margin-top:100px; }
::selection { background:var(--accent); color:var(--on-accent); }
.skip-link { position:fixed; left:16px; top:-100px; padding:12px 20px; z-index:9999; background:var(--accent); color:var(--on-accent); }
.skip-link:focus { top:12px; }
.btn { min-height:44px; border-radius:8px; transition:background .15s,color .15s,border-color .15s; font-weight:650; }
.btn-primary,html.dark .btn-primary { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
.btn-primary:hover,html.dark .btn-primary:hover { background:var(--accent-hover); color:var(--on-accent); }
.btn-outline-primary,html.dark .btn-outline-primary { color:var(--accent); border-color:var(--accent); background:transparent; }
.btn-outline-primary:hover { background:var(--accent-soft); }
.btn-success { background:#176647; color:#fff; }
.btn-warning { color:#172b29; }
.form-input,.form-select { min-height:46px; }
.card,.soft-tile { box-shadow:var(--shadow-1); }
.bg-gradient-hero { background:#123c34; }
.bg-gradient-primary { background:var(--accent); }
.text-gradient { color:var(--accent); background:none; -webkit-text-fill-color:currentColor; }
.site-header { background:var(--surface); position:sticky; top:0; z-index:50; border-bottom:1px solid var(--border); }
.site-header-row { min-height:88px; display:flex; align-items:center; gap:32px; justify-content:space-between; }
.site-brand { display:flex; align-items:center; gap:10px; color:var(--text)!important; flex-shrink:0; text-decoration:none; }
.brand-mark { width:40px; height:40px; color:var(--accent); }
.site-brand strong { font-size:19px; letter-spacing:-.7px; font-weight:760; display:block; line-height:1.2; }
.brand-bd { color:var(--accent); margin-left:3px; }
.site-brand small { display:block; font-size:10px; color:var(--text-muted); margin-top:5px; letter-spacing:.15px; }
.desktop-nav { display:flex; gap:25px; }
.desktop-nav a { display:flex; align-items:center; min-height:44px; font-size:13px; font-weight:600; color:var(--text-muted); white-space:nowrap; }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:var(--accent); }
.header-actions { display:flex; align-items:center; gap:20px; }
.header-login { font-size:13px; font-weight:600; color:var(--text)!important; white-space:nowrap; padding-block:12px; }
.header-join { font-size:13px; white-space:nowrap; }
.account-menu,.mobile-menu { position:relative; }
.mobile-menu { display:none; }
summary { cursor:pointer; }
.mobile-menu summary { display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; color:var(--text); font-size:12px; font-weight:650; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.nav-popover { position:absolute; top:calc(100% + 20px); right:0; width:280px; max-width:calc(100vw - 40px); max-height:75vh; overflow:auto; border:1px solid var(--border); background:var(--surface); border-radius:10px; box-shadow:0 12px 32px rgb(0 0 0 / .12); padding:12px; }
.nav-popover a { display:block; color:var(--text); font-size:14px; padding:11px 12px; border-radius:6px; }
.nav-popover a:hover { background:var(--accent-soft); }
.flash-wrap { margin-block:20px; }
.eyebrow { font-size:10px; line-height:1.5; font-weight:750; letter-spacing:1.6px; color:var(--text-muted); margin:0 0 20px; }
.status-dot { display:inline-block; width:7px; height:7px; background:var(--accent); border-radius:50%; margin-right:8px; }
.home-hero { background:var(--surface-2); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr); gap:70px; align-items:center; padding-block:68px 54px; }
.hero-copy h1 { font-size:clamp(40px,4.5vw,62px); font-weight:730; line-height:1.08; letter-spacing:-2.6px; color:var(--text); margin:0 0 24px; }
.hero-copy h1 em { font-family:Georgia,"Times New Roman",serif; font-weight:400; color:var(--accent); letter-spacing:-2.5px; }
.hero-description { color:var(--text-muted); font-size:16px; max-width:460px; line-height:1.75; margin-bottom:30px; }
.hero-search label { display:block; font-size:11px; font-weight:650; color:var(--text); margin-bottom:8px; }
.hero-search>div { display:flex; align-items:center; gap:12px; background:var(--surface); padding:7px; border:1px solid var(--border); border-radius:10px; box-shadow:0 4px 12px rgb(23 43 41 / .03); }
.hero-search svg { margin-left:9px; color:var(--text-muted); flex:none; }
.hero-search input { border:0; background:transparent; color:var(--text); width:100%; font-size:13px; height:44px; padding:0; outline-offset:2px; }
.hero-search input::placeholder { color:var(--text-muted); }
.hero-search button { flex-shrink:0; background:var(--accent); color:var(--on-accent); border:0; border-radius:6px; padding:14px 18px; font-size:13px; font-weight:650; display:flex; gap:18px; cursor:pointer; }
.hero-search button:hover { background:var(--accent-hover); }
.hero-locations { display:flex; flex-wrap:wrap; align-items:center; gap:6px 17px; font-size:11px; margin-top:12px; }
.hero-locations>span { color:var(--text-muted); }
.hero-locations a { text-decoration:underline; padding-block:9px; }
.connection-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:28px; box-shadow:7px 7px 0 var(--border); }
.connection-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--accent); }
.connection-card-top .eyebrow { margin:0; font-size:9px; letter-spacing:1.2px; }
.connection-card h2 { font-size:25px; line-height:1.25; letter-spacing:-.8px; font-weight:650; margin:20px 0 22px; }
.connection-row { border-top:1px solid var(--border); padding:17px 0; display:flex; gap:15px; align-items:start; }
.step-number { font-size:10px; color:var(--text-muted); font-variant-numeric:tabular-nums; padding-top:3px; }
.connection-row div { flex:1; }
.connection-row h3 { font-size:12px; font-weight:700; margin-bottom:3px; }
.connection-row p { font-size:11px; line-height:1.6; color:var(--text-muted); max-width:235px; }
.connection-row>span:last-child { color:var(--text-muted); font-size:14px; }
.connection-cta { border-top:1px solid var(--border); padding-top:19px; display:flex; justify-content:space-between; font-size:11px; font-weight:700; min-height:44px; }
.hero-proof { border-top:1px solid var(--border); padding-block:22px; display:flex; gap:32px; align-items:center; font-size:11px; color:var(--text-muted); }
.hero-proof strong { font-size:16px; font-weight:700; color:var(--text); margin-right:4px; font-variant-numeric:tabular-nums; }
.hero-proof a { margin-left:auto; font-weight:600; padding-block:9px; }
.home-section { padding-block:66px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:14px; }
.section-heading .eyebrow { margin-bottom:11px; }
.section-heading h2,.tools-copy h2 { font-size:clamp(28px,3vw,37px); line-height:1.2; letter-spacing:-1.4px; font-weight:670; margin:0; }
.text-link { flex-shrink:0; font-size:12px; font-weight:650; min-height:44px; display:flex; align-items:center; gap:20px; }
.section-intro { color:var(--text-muted); font-size:12px; max-width:680px; margin-bottom:28px; }
.provider-directory { border-top:2px solid var(--text); }
.provider-table-head,.provider-row { display:grid; grid-template-columns:2.2fr 1.1fr 1.3fr .55fr; align-items:center; gap:20px; }
.provider-table-head { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); padding:15px 8px; border-bottom:1px solid var(--border); }
.provider-table-head span:last-child { text-align:right; }
.provider-row { padding:22px 8px; border-bottom:1px solid var(--border); }
.provider-identity { display:flex; align-items:center; gap:15px; min-width:0; }
.provider-monogram { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--border); background:var(--surface); border-radius:8px; font-size:19px; font-family:Georgia,serif; color:var(--text); flex-shrink:0; }
.provider-identity h3 { font-size:14px; font-weight:670; letter-spacing:-.2px; line-height:1.4; }
.provider-identity h3 a { color:var(--text); }
.provider-identity h3 a:hover { color:var(--accent); }
.provider-location,.provider-price>span,.provider-rating>span { color:var(--text-muted); font-size:11px; display:block; margin-top:4px; }
.provider-rating strong,.provider-price strong { font-size:15px; font-weight:650; display:block; }
.provider-rating small,.provider-price small { color:var(--text-muted); font-size:10px; font-weight:400; }
.rating-star { color:var(--accent); }
.provider-open { display:flex; align-items:center; justify-content:end; min-height:44px; gap:12px; font-size:20px; }
.provider-open span:first-child { display:none; }
.directory-note { display:flex; gap:10px; align-items:start; padding-top:17px; color:var(--text-muted); font-size:10px; max-width:790px; }
.home-tools { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding-block:42px; border-block:1px solid var(--border); }
.tools-copy p:not(.eyebrow) { margin:20px 0 24px; color:var(--text-muted); font-size:13px; max-width:460px; }
.tools-copy small { display:block; font-size:10px; color:var(--text-muted); margin-top:12px; }
.speed-explainer { align-self:center; border-left:1px solid var(--border); padding-left:45px; }
.speed-explainer>div { display:grid; grid-template-columns:90px 1fr; gap:0 16px; padding:20px 0; border-bottom:1px solid var(--border); }
.speed-explainer>div:last-child { border:0; }
.speed-explainer span { font-size:9px; font-weight:700; letter-spacing:1px; align-self:center; }
.speed-explainer strong { grid-column:1; font-family:Georgia,serif; font-size:30px; font-weight:400; line-height:1.3; }
.speed-explainer p { grid-column:2; grid-row:1/span 2; font-size:12px; color:var(--text-muted); align-self:center; max-width:230px; }
.guide-grid,.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:30px; }
.guide-card { border:1px solid var(--border); border-radius:10px; background:var(--surface); padding:28px; color:var(--text)!important; display:flex; flex-direction:column; transition:border-color .15s; }
.guide-card:hover { border-color:var(--accent); }
.guide-index { color:var(--text-muted); font-size:9px; font-weight:650; letter-spacing:1px; }
.guide-card h3 { font-size:23px; font-weight:620; letter-spacing:-.7px; line-height:1.25; margin:25px 0 15px; }
.guide-card p { font-size:12px; color:var(--text-muted); line-height:1.8; margin-bottom:28px; }
.guide-link { margin-top:auto; border-top:1px solid var(--border); padding-top:17px; color:var(--accent); font-size:11px; font-weight:650; display:flex; justify-content:space-between; }
.review-section { background:var(--surface-2); }
.subscriber-review { padding:0 0 12px; }
.review-meta { display:flex; justify-content:space-between; align-items:center; font-size:11px; margin-bottom:18px; }
.review-meta strong { color:var(--accent); }
.review-meta time { font-size:10px; color:var(--text-muted); }
.subscriber-review h3 { font-size:16px; line-height:1.5; font-weight:650; margin:0 0 12px; }
.subscriber-review p { font-size:12px; color:var(--text-muted); line-height:1.85; }
.subscriber-review>a { display:block; font-size:11px; font-weight:650; margin-top:20px; padding-block:8px; }
.community-invitation { display:flex; justify-content:space-between; gap:30px; align-items:center; border-top:1px solid var(--border); margin-top:40px; padding-top:32px; }
.community-invitation h3 { font-size:20px; font-weight:650; margin-bottom:6px; letter-spacing:-.6px; }
.community-invitation p { color:var(--text-muted); font-size:12px; max-width:570px; }
.community-invitation .btn { flex-shrink:0; }
.site-footer { background:var(--surface); padding-top:48px; }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid var(--border); padding-bottom:32px; }
.footer-brand { font-size:25px; font-weight:740; letter-spacing:-1px; color:var(--text)!important; }
.footer-brand span { color:var(--accent); }
.footer-top p { color:var(--text-muted); font-size:12px; line-height:1.8; margin-top:10px; max-width:430px; }
.footer-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; padding-block:32px; }
.footer-links h2 { font-size:11px; font-weight:700; color:var(--text); margin-bottom:12px; }
.footer-links a { display:block; color:var(--text-muted); font-size:11px; padding-block:7px; }
.footer-links a:hover { color:var(--accent); text-decoration:underline; }
.footer-bottom { border-top:1px solid var(--border); padding-block:22px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--text-muted); font-size:10px; }
.footer-bottom>div { display:flex; gap:24px; }
.theme-toggle,html.dark .theme-toggle { background:var(--surface); color:var(--text); border:1px solid var(--border); width:44px; height:44px; right:18px; bottom:18px; box-shadow:var(--shadow-1); }
#back-to-top { right:18px; bottom:72px; background:var(--accent); color:var(--on-accent); box-shadow:none; }
.empty-panel { border:1px solid var(--border); padding:32px; border-radius:10px; }
.empty-panel h3 { font-size:20px; font-weight:650; }
.empty-panel p { color:var(--text-muted); margin-block:12px 20px; }
@media(min-width:1600px) { .hero-grid { padding-block:80px 64px; } }
@media(max-width:1100px) { .desktop-nav { gap:17px; } .site-header-row { gap:20px; } .header-actions { gap:15px; } .header-join { display:none; } .hero-grid { gap:35px; } }
@media(max-width:900px) { .desktop-nav { display:none; } .mobile-menu { display:block; } .site-header-row { min-height:76px; } .hero-grid { gap:28px; } .connection-card { padding:22px; } .hero-search button { gap:10px; padding-inline:12px; } .hero-search svg { display:none; } .hero-search input { padding-left:6px; } .hero-proof { gap:24px; } .hero-proof a { display:none; } .provider-table-head,.provider-row { grid-template-columns:1.7fr 1fr 1.15fr .2fr; gap:16px; } .guide-card { padding:20px; } .guide-card h3 { font-size:21px; } .home-tools { gap:32px; } .speed-explainer { padding-left:28px; } }
@media(max-width:700px) { .hero-grid { grid-template-columns:1fr; padding-block:44px 30px; gap:32px; } .hero-copy h1 { font-size:50px; } .hero-description { max-width:530px; font-size:15px; } .connection-card { box-shadow:4px 4px 0 var(--border); } .connection-card h2 br { display:none; } .connection-row p { max-width:none; } .connection-row { padding-block:14px; } .connection-cta { padding-top:16px; } .hero-proof { justify-content:space-between; gap:12px; align-items:start; padding-block:20px; } .hero-proof>span { font-size:10px; flex:1; } .hero-proof strong { display:block; font-size:22px; } .home-section { padding-block:45px; } .section-heading { align-items:start; flex-direction:column; gap:8px; } .section-heading .text-link { min-height:32px; } .section-heading h2,.tools-copy h2 { font-size:31px; } .provider-table-head { display:none; } .provider-row { grid-template-columns:1fr 1fr; gap:16px 12px; padding:23px 0; } .provider-identity { grid-column:1/-1; } .provider-identity h3 { font-size:16px; } .provider-rating { grid-column:1; padding-left:59px; } .provider-price { grid-column:2; grid-row:2; } .provider-open { grid-column:1/-1; justify-content:space-between; font-size:18px; border-top:1px dashed var(--border); min-height:35px; padding-top:10px; } .provider-open span:first-child { display:block; font-size:11px; font-weight:650; } .provider-rating strong,.provider-price strong { font-size:14px; } .provider-rating>span,.provider-price>span { font-size:10px; } .directory-note { font-size:10px; } .home-tools { grid-template-columns:1fr; gap:25px; padding-block:35px; } .speed-explainer { border-left:0; padding-left:0; border-top:1px solid var(--border); } .speed-explainer p { max-width:none; } .speed-explainer>div { grid-template-columns:100px 1fr; padding-block:17px; } .guide-grid,.review-grid { grid-template-columns:1fr; gap:25px; margin-top:20px; } .guide-card { padding:24px; } .guide-card h3 { font-size:25px; margin-top:20px; } .guide-card h3 br { display:none; } .guide-card p { margin-bottom:20px; } .subscriber-review { border-bottom:1px solid var(--border); padding-bottom:22px; } .community-invitation { flex-direction:column; align-items:start; gap:20px; } .footer-top { flex-direction:column; align-items:start; } .footer-links { grid-template-columns:1fr 1fr; gap:26px 20px; } .footer-links a { padding-block:11px; } .footer-bottom { flex-direction:column; align-items:start; padding-bottom:80px; } }
@media(max-width:380px) { .container { padding-inline:20px; } .site-brand strong { font-size:16px; } .brand-mark { width:34px; height:34px; } .site-brand small { font-size:8px; } .site-header-row { gap:10px; min-height:72px; } .header-actions { gap:12px; } .mobile-menu summary span { display:none; } .header-login { font-size:12px; } .hero-copy h1 { font-size:41px; letter-spacing:-2px; } .hero-copy h1 em { letter-spacing:-2px; } .hero-search>div { gap:4px; } .hero-search input { font-size:12px; } .hero-search button { font-size:11px; padding-inline:10px; gap:5px; } .hero-locations { gap:4px 12px; } .provider-rating { padding-left:0; } .section-heading h2 { font-size:28px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } [class*=animate],[data-reveal] { opacity:1!important; transform:none!important; } }

.theme-toggle,html.dark .theme-toggle { position:static; flex-shrink:0; transform:none; }
.footer-bottom>div { align-items:center; }
.text-muted,html.dark .text-muted { color:var(--text-muted); }
