debrid-services-comparison/dist/css/styles.css
2025-08-22 09:36:41 +05:00

618 lines
No EOL
36 KiB
CSS

/* =============================================================================
Debrid Services Comparison - Improved Complete CSS
- Unified card-first design for About, Speed Test, FAQ
- Accessible header/navigation, hero, buttons
- Tables, comparisons, search, referral, status, resources, notes
- Age verification modal, loading states, footer, utilities
========================================================================== */
/* Root variables and theme */
:root{
color-scheme: light dark;
/* Brand + feedback */
--primary:#6366f1;
--primary-hover:#4f46e5;
--primary-light:#a5b4fc;
--primary-dark:#3730a3;
--success:#10b981;
--warning:#f59e0b;
--error:#ef4444;
--info:#3b82f6;
/* Grays */
--gray-50:#f8fafc;
--gray-100:#f1f5f9;
--gray-200:#e2e8f0;
--gray-300:#cbd5e1;
--gray-400:#94a3b8;
--gray-500:#64748b;
--gray-600:#475569;
--gray-700:#334155;
--gray-800:#1e293b;
--gray-900:#0f172a;
/* Text and background */
--text-primary:var(--gray-900);
--text-secondary:var(--gray-600);
--text-tertiary:var(--gray-500);
--text-muted:var(--gray-400);
--bg-primary:#fff;
--bg-secondary:var(--gray-50);
--bg-tertiary:var(--gray-100);
--bg-elevated:#fff;
/* Borders and focus */
--border-primary:var(--gray-200);
--border-secondary:var(--gray-300);
--border-focus:var(--primary);
/* Radius */
--radius-md:.375rem;
--radius-lg:.5rem;
--radius-xl:.75rem;
--radius-2xl:1rem;
--radius-full:9999px;
/* Shadows */
--shadow-sm:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);
--shadow-md:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);
--shadow-lg:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);
--shadow-focus:0 0 0 3px rgb(99 102 241 / .15);
/* Typography */
--text-xs:.75rem;
--text-sm:.875rem;
--text-base:1rem;
--text-lg:1.125rem;
--text-xl:1.25rem;
--text-2xl:1.5rem;
--text-3xl:1.875rem;
--text-4xl:2.25rem;
--text-5xl:3rem;
--text-6xl:3.75rem;
--font-normal:400;
--font-medium:500;
--font-semibold:600;
--font-bold:700;
--font-extrabold:800;
/* Spacing */
--space-px:1px;
--space-0-5:.125rem;
--space-1:.25rem;
--space-1-5:.375rem;
--space-2:.5rem;
--space-2-5:.625rem;
--space-3:.75rem;
--space-3-5:.875rem;
--space-4:1rem;
--space-5:1.25rem;
--space-6:1.5rem;
--space-7:1.75rem;
--space-8:2rem;
--space-9:2.25rem;
--space-10:2.5rem;
--space-11:2.75rem;
--space-12:3rem;
--space-14:3.5rem;
--space-16:4rem;
--space-20:5rem;
--space-24:6rem;
/* Layout */
--container-max-width:1280px;
--header-height:4.5rem;
/* Z-index */
--z-sticky:1020;
--z-docked:10;
}
[data-theme="dark"]{
--text-primary:var(--gray-50);
--text-secondary:var(--gray-300);
--text-tertiary:var(--gray-400);
--text-muted:var(--gray-500);
--bg-primary:var(--gray-900);
--bg-secondary:var(--gray-800);
--bg-tertiary:var(--gray-700);
--bg-elevated:var(--gray-800);
--border-primary:var(--gray-700);
--border-secondary:var(--gray-600);
--border-focus:var(--primary-light);
--primary:#818cf8;
--primary-hover:#a5b4fc;
--primary-light:#c7d2fe;
--primary-dark:#6366f1;
--shadow-sm:0 1px 3px 0 rgb(0 0 0 / .4),0 1px 2px -1px rgb(0 0 0 / .4);
--shadow-md:0 4px 6px -1px rgb(0 0 0 / .4),0 2px 4px -2px rgb(0 0 0 / .4);
--shadow-lg:0 10px 15px -3px rgb(0 0 0 / .4),0 4px 6px -4px rgb(0 0 0 / .4);
--shadow-focus:0 0 0 3px rgb(129 140 248 / .2);
}
/* Base and resets */
*,::before,::after{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}
body{
font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
font-feature-settings:'cv01','cv03','cv04','cv11';
background-color:var(--bg-primary);
color:var(--text-primary);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
text-rendering:optimizeLegibility;
min-height:100vh; margin:0; overflow-x:hidden;
}
img,svg,video,canvas{max-width:100%;height:auto}
a{color:var(--primary);text-decoration:none;transition:color .2s cubic-bezier(.4,0,.2,1)}
a:hover{color:var(--primary-hover);text-decoration:none}
/* Focus styles */
:focus{outline:2px solid var(--border-focus);outline-offset:2px}
:focus:not(:focus-visible){outline:none}
:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
/* Layout wrappers */
.page-wrapper{min-height:100vh;display:flex;flex-direction:column;position:relative}
.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--space-6);width:100%}
.main-content{flex:1;position:relative}
/* Skip link */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed;left:var(--space-4);top:var(--space-4);width:auto;height:auto;padding:var(--space-2) var(--space-3);background:var(--bg-primary);color:var(--text-primary);border:2px solid var(--border-focus);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:9999}
/* Header and navigation */
.site-header{
position:sticky;top:0;z-index:var(--z-sticky);
background:rgb(255 255 255 / .8);
-webkit-backdrop-filter:blur(10px) saturate(150%);backdrop-filter:blur(10px) saturate(150%);
border-bottom:1px solid var(--border-primary);
height:var(--header-height);
transition:background-color .2s,border-color .2s,backdrop-filter .3s,box-shadow .2s;
}
@supports not ((backdrop-filter: blur(1px))){.site-header{background:rgb(255 255 255 / .95)}}
[data-theme="dark"] .site-header{background:rgb(15 23 42 / .8)}
.header-content{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);gap:var(--space-8)}
.site-title{
display:flex;align-items:center;gap:var(--space-2);
font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);
text-decoration:none;position:relative;transition:color .2s,transform .2s,text-shadow .2s;
}
.site-title:hover{color:var(--primary);transform:translateY(-1px)}
.site-title:focus-visible{border-radius:var(--radius-md);box-shadow:var(--shadow-focus)}
.logo-icon{font-size:var(--text-2xl);filter:drop-shadow(0 2px 4px rgb(99 102 241 / .2));transition:transform .2s,filter .2s}
.site-title:hover .logo-icon{transform:rotate(-5deg) scale(1.1)}
.header-nav{display:flex;align-items:center;gap:var(--space-6)}
.nav-link{
position:relative;display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);
font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);border-radius:var(--radius-lg);white-space:nowrap;
transition:color .2s,background-color .2s,transform .2s,box-shadow .2s,border-color .2s;
}
.nav-link::before{
content:'';position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:var(--primary);
border-radius:var(--radius-full);transition:width .2s,left .2s;transform:translateX(-50%);
}
.nav-link:hover{color:var(--primary);background:var(--bg-secondary);transform:translateY(-1px)}
.nav-link:hover::before{width:70%}
.nav-link:focus-visible{box-shadow:var(--shadow-focus)}
.nav-link[aria-current="page"]{color:var(--primary)}
.nav-link[aria-current="page"]::before{width:70%}
/* Dark mode toggle */
.dark-mode-toggle{
display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:2px solid var(--border-primary);
border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;position:relative;overflow:hidden;
transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s,color .2s; touch-action:manipulation;
}
.dark-mode-toggle:hover{background:var(--bg-secondary);border-color:var(--primary);transform:scale(1.05);box-shadow:var(--shadow-md)}
.dark-mode-toggle:focus-visible{box-shadow:var(--shadow-focus)}
.sun-icon,.moon-icon{position:absolute;transition:opacity .2s,transform .2s}
.moon-icon{display:none;transform:rotate(180deg)}
[data-theme="dark"] .sun-icon{display:none}
[data-theme="dark"] .moon-icon{display:block;transform:rotate(0deg)}
/* Hero section */
.hero-section{
position:relative;padding:var(--space-24) 0 var(--space-20);
background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);
overflow:hidden;
}
.hero-section::before{
content:'';position:absolute;inset:0;
background:radial-gradient(circle at 30% 20%,rgb(99 102 241 / .1) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgb(99 102 241 / .05) 0%,transparent 50%);
pointer-events:none;
}
[data-theme="dark"] .hero-section{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}
[data-theme="dark"] .hero-section::before{
background:radial-gradient(circle at 30% 20%,rgb(129 140 248 / .15) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgb(129 140 248 / .08) 0%,transparent 50%)
}
.hero-content{text-align:center;max-width:900px;margin:0 auto;position:relative;animation:fadeInUp .8s ease-out}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero-title{font-size:clamp(var(--text-3xl),8vw,var(--text-6xl));font-weight:var(--font-extrabold);line-height:1.1;margin:0 0 var(--space-6);color:var(--text-primary);letter-spacing:-.02em}
.gradient-text{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
[data-theme="dark"] .gradient-text{background:linear-gradient(135deg,var(--primary-light) 0%,#c4b5fd 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-description{font-size:clamp(var(--text-lg),4vw,var(--text-xl));color:var(--text-secondary);margin:0 0 var(--space-10);max-width:650px;margin-left:auto;margin-right:auto;line-height:1.6}
.hero-actions{display:flex;gap:var(--space-4);justify-content:center;margin-bottom:var(--space-16);flex-wrap:wrap}
.hero-stats{display:flex;gap:var(--space-12);justify-content:center;flex-wrap:wrap}
.stat-item{text-align:center;position:relative}
.stat-item:not(:last-child)::after{content:'';position:absolute;right:calc(-1 * var(--space-6));top:50%;transform:translateY(-50%);width:1px;height:40px;background:var(--border-primary)}
.stat-number{display:block;font-size:clamp(var(--text-2xl),6vw,var(--text-4xl));font-weight:var(--font-extrabold);color:var(--primary);margin-bottom:var(--space-1);background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-weight:var(--font-medium)}
/* Buttons */
.btn{
display:inline-flex;align-items:center;gap:var(--space-2);
padding:var(--space-4) var(--space-8);border:2px solid transparent;border-radius:var(--radius-xl);
font-size:var(--text-base);font-weight:var(--font-semibold);text-decoration:none;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;text-align:center;min-width:140px;justify-content:center;
transition:color .2s,background-color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s;
touch-action:manipulation;
}
.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .2),transparent);transition:left .5s}
.btn:hover::before{left:100%}
.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:var(--shadow-md)}
.btn-primary:hover{background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary) 100%);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-primary:focus-visible{box-shadow:var(--shadow-focus),var(--shadow-lg)}
.btn-secondary{background:transparent;color:var(--text-primary);border:2px solid var(--border-primary)}
.btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-secondary);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-secondary:focus-visible{box-shadow:var(--shadow-focus)}
input,select,textarea,button{accent-color:var(--primary)}
/* Section framework */
.section{padding:var(--space-24) 0;position:relative;content-visibility:auto;contain-intrinsic-size:1px 800px}
.section:nth-child(even){background:var(--bg-secondary)}
.section-header{text-align:center;margin-bottom:var(--space-16)}
.section-title{font-size:clamp(var(--text-3xl),6vw,var(--text-5xl));font-weight:var(--font-extrabold);margin:0 0 var(--space-6);color:var(--text-primary);letter-spacing:-.02em}
.section-description{font-size:clamp(var(--text-base),3vw,var(--text-xl));color:var(--text-secondary);margin:0;max-width:700px;margin-inline:auto;line-height:1.7}
.subsection{margin:var(--space-12) 0}
.subsection-title{margin:0 0 var(--space-4);font-size:var(--text-xl);font-weight:var(--font-bold)}
/* Quick navigation cards */
.quick-nav{padding:var(--space-20) 0;background:var(--bg-primary);position:relative;content-visibility:auto;contain-intrinsic-size:1px 600px}
.quick-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-8)}
.quick-nav-card{
display:block;padding:var(--space-8);background:var(--bg-elevated);border:2px solid var(--border-primary);border-radius:var(--radius-2xl);
text-decoration:none;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);
-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s;
content-visibility:auto;contain:content;
}
.quick-nav-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--primary) 0%,transparent 100%);opacity:0;transition:opacity .2s;z-index:0}
.quick-nav-card:hover::before{opacity:.08}
.quick-nav-card:hover{border-color:var(--primary);transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-lg)}
.quick-nav-card:focus-visible{box-shadow:var(--shadow-focus),var(--shadow-lg)}
.quick-nav-card>*{position:relative;z-index:1}
.quick-nav-icon{font-size:var(--text-4xl);margin-bottom:var(--space-4);display:block;filter:drop-shadow(0 2px 4px rgb(0 0 0 / .1));transition:transform .2s,filter .2s}
.quick-nav-card:hover .quick-nav-icon{transform:scale(1.1) rotate(-5deg)}
.quick-nav-card h3{margin:0 0 var(--space-3);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary)}
.quick-nav-card p{margin:0;color:var(--text-secondary);font-size:var(--text-base);line-height:1.6}
/* Unified status cards (also used for speed tiles) */
.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6)}
.status-card{
display:block;padding:var(--space-6);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);
text-decoration:none;transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s;content-visibility:auto;contain:content;
}
.status-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.status-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.service-status-indicator{width:12px;height:12px;border-radius:var(--radius-full);background:var(--success);box-shadow:0 0 0 2px rgb(16 185 129 / .2)}
.status-card .status-indicator.online,.service-status-indicator.online{background:var(--success);box-shadow:0 0 0 2px rgb(16 185 129 / .2)}
.status-card p{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}
.speed-grid .status-card{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}
.speed-card .service-name{font-weight:var(--font-semibold);color:var(--text-primary)}
.speed-card .speed-test-label{font-size:var(--text-sm);color:var(--text-secondary)}
/* Chips and meta */
.meta-chips{display:flex;gap:.5rem;justify-content:center;margin-top:var(--space-4);flex-wrap:wrap}
.chip{
display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border-radius:999px;
background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-primary);
font-size:.75rem;font-weight:var(--font-medium)
}
.chip-info{color:var(--primary);background:rgb(99 102 241 / .10);border-color:rgb(99 102 241 / .25)}
/* Stepper (ordered guidance) */
.stepper{counter-reset:step;list-style:none;padding-left:0;margin:var(--space-6) 0}
.stepper li{position:relative;padding-left:2.25rem;margin-bottom:.75rem}
.stepper li::before{
counter-increment:step;content:counter(step);position:absolute;left:0;top:.1rem;width:1.5rem;height:1.5rem;
display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--primary);color:#fff;font-size:.8rem;font-weight:700
}
/* Accordion (used in FAQ and Speed) */
.accordion{border:1px solid var(--border-primary);border-radius:var(--radius-xl);background:var(--bg-primary);margin:var(--space-4) 0;overflow:hidden}
.accordion>summary{
display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:var(--space-4);
font-weight:var(--font-semibold);cursor:pointer;list-style:none
}
.accordion>summary::-webkit-details-marker{display:none}
.accordion[open]>summary{background:var(--bg-secondary)}
.accordion .chevron{transition:transform .2s}
.accordion[open] .chevron{transform:rotate(180deg)}
.accordion-content{padding:0 var(--space-4) var(--space-4);color:var(--text-secondary)}
.bullet-list{padding:var(--space-4) var(--space-6);margin:0}
.bullet-list li{margin:.25rem 0}
.accordion>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:.5rem}
.accordion>summary:hover{background:var(--bg-secondary)}
/* Alerts */
.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);margin:var(--space-4) 0;border:1px solid var(--border-primary)}
.alert-info{background:rgb(59 130 246 / .1);border-color:rgb(59 130 246 / .2);color:var(--info)}
.alert-warning{background:rgb(245 158 11 / .1);border-color:rgb(245 158 11 / .2);color:var(--warning)}
.alert-icon{flex-shrink:0;margin-top:2px}
/* Tables (data + pricing) */
.data-table-container{
background:var(--bg-elevated);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-primary);
margin:var(--space-8) 0;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)
}
.table-wrapper{overflow-x:auto;overflow-y:visible;border-radius:var(--radius-2xl);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--primary) var(--bg-secondary)}
.table-wrapper::-webkit-scrollbar{height:10px}
.table-wrapper::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-md)}
.table-wrapper::-webkit-scrollbar-thumb{background:var(--primary);border-radius:var(--radius-md);border:2px solid var(--bg-secondary)}
.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--primary-hover)}
table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:600px}
th,td{padding:var(--space-4) var(--space-6);text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap}
th{
background:var(--primary);color:#fff;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);
position:sticky;top:0;z-index:var(--z-sticky)
}
th:first-child{position:sticky;left:0;z-index:calc(var(--z-sticky) + 1);background:var(--primary);background-clip:padding-box}
tr:hover{background:var(--bg-secondary)}
td{transition:background-color .15s,color .15s}
td:first-child{
font-weight:var(--font-medium);position:sticky;left:0;background:var(--bg-primary);z-index:1;background-clip:padding-box;
box-shadow:inset -1px 0 0 var(--border-primary)
}
tr:hover td:first-child{background:var(--bg-secondary)}
.status-cell{text-align:center!important}
.status-indicator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);transition:background-color .15s,color .15s,transform .15s}
.status-indicator.supported{background:rgb(14 236 162 / .1);color:var(--success)}
.status-indicator.not-supported{background:rgb(211 29 29 / .1);color:var(--error)}
.status-indicator svg{width:16px;height:16px}
/* Pricing table highlight support */
.pricing-table th.highlighted,
.pricing-table td.highlighted{background:var(--bg-secondary)}
/* Search */
.search-section{margin-bottom:var(--space-8)}
.search-container.enhanced{position:relative;max-width:500px;margin:0 auto}
.search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--text-tertiary);z-index:1}
.search-input{
width:100%;padding:var(--space-4) var(--space-12) var(--space-4) var(--space-12);
border:2px solid var(--border-primary);border-radius:var(--radius-full);font-size:var(--text-base);background:var(--bg-primary);color:var(--text-primary);outline:none;
transition:border-color .15s,box-shadow .15s,color .15s,background-color .15s;
}
.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgb(99 102 241 / .1)}
.clear-icon{
position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);
background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);
border-radius:var(--radius-md);opacity:0;visibility:hidden;transition:opacity .15s,color .15s,background-color .15s,transform .15s;
}
.search-input:not(:placeholder-shown) + .clear-icon,.search-input:focus + .clear-icon{opacity:1;visibility:visible}
.clear-icon:hover{background:var(--bg-secondary);color:var(--text-primary)}
.search-results{text-align:center;padding:var(--space-2) 0;color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}
/* Compare UI */
.compare-controls{display:flex;align-items:end;gap:var(--space-6);margin-bottom:var(--space-12);flex-wrap:wrap}
.compare-select-group{flex:1;min-width:200px}
.compare-select-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);color:var(--text-primary)}
.select-wrapper{position:relative}
.select-wrapper::after{
content:'';position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);
width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--text-tertiary);pointer-events:none;
}
select{
width:100%;padding:var(--space-3) var(--space-8) var(--space-3) var(--space-4);border:2px solid var(--border-primary);border-radius:var(--radius-lg);
background:var(--bg-primary);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;appearance:none;
transition:border-color .15s,box-shadow .15s,color .15s,background-color .15s;
}
select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgb(99 102 241 / .1)}
.compare-vs{flex-shrink:0;font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--primary);background:var(--bg-secondary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--border-primary);margin-bottom:var(--space-2)}
#compare-table-container{position:relative;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-primary);margin-top:var(--space-6);display:none}
.comparison-visible{display:block!important;animation:slideIn .3s ease-out}
.comparison-hiding{animation:slideOut .3s ease-in}
@keyframes slideIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}
.comparison-header{padding:var(--space-6);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}
.comparison-header h3{margin:0 0 var(--space-4);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);text-align:center}
.comparison-stats{display:flex;gap:var(--space-6);justify-content:center;margin-bottom:var(--space-6);flex-wrap:wrap}
.comparison-stats .stat{text-align:center;background:var(--bg-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-primary);min-width:100px}
.stat-label{display:block;font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}
.stat-value{display:block;font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--primary)}
.comparison-actions{display:flex;justify-content:center;gap:var(--space-3)}
.comparison-filters{padding:var(--space-4) var(--space-6);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);display:flex;gap:var(--space-6);justify-content:center;flex-wrap:wrap}
.filter-option{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}
.filter-option input[type="radio"]{margin:0}
.filter-results{text-align:center;padding:var(--space-2) 0;color:var(--text-secondary);font-size:var(--text-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}
.comparison-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:700px}
.comparison-table th,.comparison-table td{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-primary);text-align:center}
.comparison-table th:first-child,.comparison-table td:first-child{text-align:left;font-weight:var(--font-medium)}
.comparison-table th{background:var(--primary);color:#fff;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);position:sticky;top:0;z-index:var(--z-sticky)}
.provider-header{position:relative}
.comparison-row.both-supported{background:rgb(16 185 129 / .05)}
.comparison-row.provider1-only{background:rgb(59 130 246 / .05)}
.comparison-row.provider2-only{background:rgb(168 85 247 / .05)}
.comparison-row.neither-supported{background:rgb(239 68 68 / .05)}
.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}
.status-badge.both-supported{background:rgb(16 185 129 / .1);color:var(--success)}
.status-badge.provider1-only{background:rgb(59 130 246 / .1);color:var(--info)}
.status-badge.provider2-only{background:rgb(168 85 247 / .1);color:#8b5cf6}
.status-badge.neither-supported{background:rgb(239 68 68 / .1);color:var(--error)}
#close-compare{
background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);
padding:var(--space-2) var(--space-4);display:flex;align-items:center;gap:var(--space-2);
cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium);
transition:color .15s,background-color .15s,border-color .15s,transform .15s,box-shadow .15s;
}
#close-compare:hover{background:var(--error);color:#fff;border-color:var(--error);transform:translateY(-1px)}
.empty-state{text-align:center;padding:var(--space-16)}
.empty-state-icon{font-size:var(--text-5xl);margin-bottom:var(--space-4)}
.empty-state h3{margin:0 0 var(--space-2);font-size:var(--text-xl);color:var(--text-primary)}
.empty-state p{margin:0;color:var(--text-secondary)}
.warning-state{text-align:center;padding:var(--space-12);background:rgb(245 158 11 / .05);border-radius:var(--radius-lg);border:1px solid rgb(245 158 11 / .2)}
.warning-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3)}
.warning-state h3{margin:0 0 var(--space-2);color:var(--warning)}
.warning-state p{margin:0;color:var(--text-secondary)}
/* Referral section */
.referral-section{margin-block:var(--space-16);padding:var(--space-8);background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-primary);text-align:center;content-visibility:auto;contain-intrinsic-size:1px 400px}
.referral-header h3{margin:0 0 var(--space-2);color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}
.referral-header p{margin:0 auto var(--space-6);color:var(--text-secondary);max-width:800px}
.referral-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);justify-items:center}
.referral-card{
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);
padding:var(--space-4) var(--space-3);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);
text-decoration:none;width:100%;max-width:200px;box-shadow:var(--shadow-sm);
transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s,color .2s;
}
.referral-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.referral-card .service-name{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-base)}
.referral-badge{font-size:var(--text-xs);color:var(--primary);background:rgb(99 102 241 / .1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-weight:var(--font-medium)}
/* Important notes */
.important-notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}
.note-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6)}
.note-icon{font-size:var(--text-2xl);margin-bottom:var(--space-3)}
.note-card h3{margin-bottom:var(--space-3);color:var(--text-primary)}
.note-card p{margin:0;color:var(--text-secondary)}
/* Resources */
.resources-categories{display:grid;gap:var(--space-12)}
.resource-category h3{margin-bottom:var(--space-6);color:var(--primary)}
.resource-list{display:grid;gap:var(--space-4)}
.resource-item{
display:block;padding:var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);
text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;
}
.resource-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary)}
.resource-item strong{display:block;color:var(--text-primary);margin-bottom:var(--space-1)}
.resource-item span{color:var(--text-secondary);font-size:var(--text-sm)}
/* Age verification modal */
.age-verification-overlay{
position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.8);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(5px)
}
.age-verification-modal{background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--space-8);max-width:500px;margin:var(--space-4);box-shadow:var(--shadow-lg);border:1px solid var(--border-primary)}
.age-verification-content{text-align:center}
.age-verification-content h3{color:var(--error);margin-bottom:var(--space-4)}
.age-verification-content p{margin-bottom:var(--space-4);color:var(--text-secondary)}
.age-verification-actions{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-6)}
@media (width <=768px){.age-verification-actions{flex-direction:column}}
/* Loading states */
.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);color:var(--text-secondary)}
.loading-spinner{width:32px;height:32px;border:3px solid var(--border-primary);border-top:3px solid var(--primary);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:var(--space-4)}
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.loading-overlay{position:absolute;inset:0;background:rgb(255 255 255 / .9);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1050;opacity:0;visibility:hidden;transition:opacity .2s}
[data-theme="dark"] .loading-overlay{background:rgb(15 23 42 / .9)}
.loading-overlay--visible{opacity:1;visibility:visible}
.loading-overlay--hiding{opacity:0}
.loading-content{text-align:center;color:var(--text-primary)}
.spinner-ring{width:40px;height:40px;border:4px solid var(--border-primary);border-top:4px solid var(--primary);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin:0 auto var(--space-3)}
.loading-text{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}
/* Footer */
.site-footer{background:var(--bg-secondary);border-top:1px solid var(--border-primary);padding:var(--space-16) 0 var(--space-8);margin-top:auto;content-visibility:auto;contain-intrinsic-size:1px 500px}
.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-8);margin-bottom:var(--space-8)}
.footer-section h4{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}
.footer-section p{margin:0;color:var(--text-secondary)}
.footer-section ul{list-style:none;padding:0;margin:0}
.footer-section li{margin-bottom:var(--space-2)}
.footer-section a{color:var(--text-secondary);text-decoration:none;transition:color .15s}
.footer-section a:hover{color:var(--primary)}
.footer-bottom{text-align:center;padding-top:var(--space-8);border-top:1px solid var(--border-primary)}
.footer-bottom p{margin:0;color:var(--text-tertiary);font-size:var(--text-sm)}
.footer-bottom a{color:var(--primary);text-decoration:none}
/* Back to top button */
.back-to-top{
position:fixed;bottom:var(--space-6);right:var(--space-6);width:48px;height:48px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;
display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);
transition:background-color .2s,transform .2s,box-shadow .2s,opacity .2s,visibility 0s linear .2s;
opacity:0;visibility:hidden;transform:translateY(20px);z-index:var(--z-docked);
}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.back-to-top:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
/* Responsive */
@media (width <=1024px){
.container{padding:0 var(--space-4)}
}
@media (width <= 768px){
.header-nav{display:none}
.hero-title{font-size:var(--text-3xl)}
.hero-description{font-size:var(--text-lg)}
.hero-actions{flex-direction:column;align-items:center}
.hero-stats{gap:var(--space-6)}
.quick-nav-grid{grid-template-columns:1fr}
.footer-content{grid-template-columns:1fr;text-align:center}
.data-table-container{margin:var(--space-2) calc(-1 * var(--space-4));border-radius:0;border-left:none;border-right:none}
.table-wrapper{border-radius:0}
table{font-size:var(--text-xs);min-width:500px}
th,td{padding:var(--space-2) var(--space-3)}
th:first-child,td:first-child{min-width:120px;max-width:150px;white-space:normal;word-break:break-word}
.comparison-header{padding:var(--space-4)}
.comparison-header h3{font-size:var(--text-lg)}
.comparison-stats{flex-direction:column;gap:var(--space-3)}
.comparison-stats .stat{margin:0 auto;max-width:200px}
.comparison-filters{flex-direction:column;align-items:center;gap:var(--space-3)}
.comparison-table{min-width:500px}
.comparison-table th,.comparison-table td{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}
}
@media (width <= 640px){
.btn{width:100%;max-width:280px;padding:var(--space-4) var(--space-6)}
}
@media (width <= 480px){
.section{padding:var(--space-12) 0}
.stat-item:not(:last-child)::after{display:none}
.comparison-stats{gap:var(--space-2)}
.comparison-stats .stat{min-width:60px;padding:var(--space-1) var(--space-2)}
.stat-value{font-size:var(--text-lg)}
.stat-label{font-size:10px}
table{min-width:400px}
th:first-child,td:first-child{min-width:100px;max-width:120px}
}
/* Motion and contrast preferences */
@media (prefers-reduced-motion:reduce){
*,::before,::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
html{scroll-behavior:auto}
}
@media (prefers-contrast:high){
:root{--border-primary:#000;--text-secondary:#000}
[data-theme="dark"]{--border-primary:#fff;--text-secondary:#fff}
}
/* Pointer coarse: disable hover transforms for touch */
@media (pointer:coarse){
.nav-link:hover,.btn:hover,.quick-nav-card:hover,.status-card:hover{transform:none;box-shadow:none}
}
/* Print */
@media print{
.site-header,.hero-section,.quick-nav,.referral-section,.site-footer,.back-to-top,.dark-mode-toggle,.comparison-filters,.comparison-actions,#close-compare{display:none!important}
.section{page-break-inside:avoid}
.data-table-container{box-shadow:none;border:1px solid #000}
.table-wrapper{overflow:visible}
table{min-width:auto}
th,td{border:1px solid #000}
}