/* ========================================================================== Surfshark Design System Implementation for DmitriyVPN Theme: Light mode consumer-SaaS by default with Dark mode toggle Tokens & specifications as defined in DESIGN.md ========================================================================== */ :root { /* Colors */ --color-surfshark-teal: #1ebfbf; --color-coral-pulse: #fa3556; --color-promo-gold: #ffc200; --color-charcoal-ink: #16191c; --color-pure-white: #ffffff; --color-fog-white: #f9f9f9; --color-tide-tint: #e8f7f8; --color-ash-gray: #dadadd; --color-mist-gray: #bfbfc0; --color-slate: #5b6065; --color-graphite: #393e41; --color-carbon: #000000; --color-deep-abyss: #1e2327; /* Typography — Font Families (Inter exclusively) */ --font-inter: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; /* Typography — Scale */ --text-caption: 12px; --leading-caption: 1.5; --tracking-caption: 0.17px; --text-body-sm: 14px; --leading-body-sm: 1.71; --tracking-body-sm: 0.24px; --text-body: 16px; --leading-body: 1.75; --text-subheading: 18px; --leading-subheading: 1.67; --text-heading-sm: 24px; --leading-heading-sm: 1.33; --text-heading: 32px; --leading-heading: 1.3; --text-heading-lg: 40px; --leading-heading-lg: 1.21; --text-display: 60px; --leading-display: 1.07; --tracking-display: -1.5px; /* Typography — Weights */ --font-weight-regular: 400; --font-weight-semibold: 600; --font-weight-bold: 700; /* Spacing */ --spacing-unit: 4px; --spacing-4: 4px; --spacing-8: 8px; --spacing-12: 12px; --spacing-16: 16px; --spacing-24: 24px; --spacing-32: 32px; --spacing-40: 40px; --spacing-48: 48px; --spacing-64: 64px; --spacing-96: 96px; --spacing-200: 200px; /* Layout */ --page-max-width: 1200px; --section-gap: 64px; --card-padding: 32px; --element-gap: 8px; /* Border Radius */ --radius-lg: 8px; --radius-xl: 12px; --radius-2xl: 16px; --radius-3xl: 32px; --radius-full: 48px; --radius-full-2: 64px; --radius-full-3: 96px; /* Named Radii */ --radius-cards: 48px; --radius-links: 8px; --radius-pills: 96px; --radius-small: 8px; --radius-buttons: 12px; /* Surfaces (Default: Light) */ --surface-canvas: #f9f9f9; --surface-card: #ffffff; --surface-tinted-wash: #e8f7f8; --surface-dark-panel: #16191c; --surface-deep-abyss: #1e2327; } /* ========================================================================== Dark Theme Overrides ========================================================================== */ [data-theme="dark"] { --surface-canvas: #0c0e12; --surface-card: #15181d; --surface-tinted-wash: #121c22; --surface-dark-panel: #101317; --surface-deep-abyss: #0a0c0f; --color-charcoal-ink: #f3f4f6; --color-fog-white: #15181d; --color-ash-gray: #242931; --color-mist-gray: #545c68; --color-slate: #9ca3af; --color-graphite: #323842; } /* ========================================================================== CSS Reset & Base Settings ========================================================================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-inter); background-color: var(--surface-canvas); color: var(--color-charcoal-ink); line-height: var(--leading-body); font-size: var(--text-body); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; transition: background-color 0.25s ease, color 0.25s ease; } /* Base Container */ .container { width: 100%; max-width: var(--page-max-width); margin-left: auto; margin-right: auto; padding-left: var(--spacing-24); padding-right: var(--spacing-24); } /* Links & Typography reset */ a { color: inherit; text-decoration: none; } img, svg { display: block; max-width: 100%; } button { font-family: inherit; border: none; background: none; cursor: pointer; } /* Text accents */ .text-teal { color: var(--color-surfshark-teal); } .text-muted { color: var(--color-slate); } /* ========================================================================== Promo Banner Full-width 40px tall bar with #ffc200 background, centered 14px Inter 400 black ========================================================================== */ .promo-banner { background-color: var(--color-promo-gold); color: var(--color-carbon); min-height: 40px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: var(--text-body-sm); font-weight: var(--font-weight-regular); letter-spacing: var(--tracking-body-sm); line-height: 1.4; padding: 8px 16px; position: relative; z-index: 1002; } .promo-banner strong { font-weight: var(--font-weight-bold); } .promo-banner a { text-decoration: underline; margin-left: var(--spacing-8); font-weight: var(--font-weight-semibold); transition: opacity 0.2s ease; } .promo-banner a:hover { opacity: 0.8; } /* ========================================================================== Primary Navigation (Sticky, 64px height, Pure White, hairline border) ========================================================================== */ .header-nav { height: 64px; background-color: var(--surface-card); border-bottom: 1px solid var(--color-ash-gray); position: sticky; top: 0; z-index: 1000; display: flex; align-items: center; transition: background-color 0.25s ease, border-color 0.25s ease; } .header-wrap { display: flex; align-items: center; justify-content: space-between; width: 100%; } .brand-logo { display: flex; align-items: center; gap: 8px; font-size: var(--text-heading-sm); font-weight: var(--font-weight-bold); color: var(--color-charcoal-ink); letter-spacing: -0.5px; user-select: none; } .brand-logo-icon { width: 32px; height: 32px; color: var(--color-surfshark-teal); flex-shrink: 0; } .brand-name { display: inline-flex; align-items: baseline; letter-spacing: -0.4px; } .brand-name span { color: var(--color-surfshark-teal); } nav.main-nav { display: flex; align-items: center; gap: var(--spacing-32); } nav.main-nav a { font-size: var(--text-body-sm); font-weight: var(--font-weight-semibold); color: var(--color-slate); transition: color 0.2s ease; padding: 6px 0; position: relative; } nav.main-nav a:hover { color: var(--color-charcoal-ink); } .nav-actions { display: flex; align-items: center; gap: var(--spacing-12); } /* Theme Toggle Button */ .theme-toggle-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-buttons); border: 1px solid var(--color-ash-gray); background-color: var(--surface-card); color: var(--color-charcoal-ink); cursor: pointer; transition: all 0.2s ease; flex-shrink: 0; } .theme-toggle-btn:hover { border-color: var(--color-surfshark-teal); color: var(--color-surfshark-teal); } .theme-icon { width: 20px; height: 20px; } /* Default Light Theme: show Moon icon */ .theme-icon.sun-icon { display: none; } .theme-icon.moon-icon { display: block; } /* Dark Theme: show Sun icon */ [data-theme="dark"] .theme-icon.sun-icon { display: block; } [data-theme="dark"] .theme-icon.moon-icon { display: none; } /* Secondary Action / Dark Button */ .btn-dark { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background-color: var(--color-charcoal-ink); color: var(--color-pure-white); border-radius: var(--radius-buttons); padding: 12px 20px; font-size: var(--text-body-sm); font-weight: var(--font-weight-semibold); transition: background-color 0.2s ease, opacity 0.2s ease; white-space: nowrap; } [data-theme="dark"] .btn-dark { background-color: #242a33; color: var(--color-pure-white); border: 1px solid var(--color-graphite); } .btn-dark:hover { opacity: 0.9; } /* Burger Button for Mobile */ .burger-btn { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 36px; height: 36px; padding: 6px; background: transparent; cursor: pointer; z-index: 1001; } .burger-btn span { display: block; width: 100%; height: 2px; background-color: var(--color-charcoal-ink); border-radius: 2px; transition: transform 0.3s ease, opacity 0.3s ease; } .burger-btn.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } .burger-btn.open span:nth-child(2) { opacity: 0; } .burger-btn.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } /* Mobile Nav Drawer */ .mobile-nav-overlay { display: none; position: fixed; inset: 64px 0 0 0; background-color: var(--surface-card); z-index: 999; padding: 32px 24px; flex-direction: column; gap: 20px; border-top: 1px solid var(--color-ash-gray); overflow-y: auto; } .mobile-nav-overlay.open { display: flex; } .mobile-nav-overlay a { font-size: var(--text-subheading); font-weight: var(--font-weight-semibold); color: var(--color-charcoal-ink); padding: 10px 0; border-bottom: 1px solid var(--color-ash-gray); } .mobile-theme-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; font-size: var(--text-body); font-weight: var(--font-weight-semibold); color: var(--color-charcoal-ink); border-bottom: 1px solid var(--color-ash-gray); } .mobile-nav-overlay .btn-dark { margin-top: 12px; padding: 14px 24px; font-size: var(--text-body); } /* ========================================================================== Buttons System (Strictly as specified in DESIGN.md) ========================================================================== */ /* Coral Filled Button: Sole primary conversion action. 1 per viewport! */ .btn-coral { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--color-coral-pulse); color: var(--color-pure-white); border-radius: var(--radius-buttons); padding: 16px 28px; font-size: var(--text-body); font-weight: var(--font-weight-semibold); transition: opacity 0.2s ease, transform 0.15s ease; white-space: nowrap; } .btn-coral:hover { opacity: 0.92; transform: translateY(-1px); } /* Dark Pill Button */ .btn-pill-dark { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background-color: var(--color-charcoal-ink); color: var(--color-pure-white); border-radius: var(--radius-pills); padding: 12px 24px; font-size: var(--text-body); font-weight: var(--font-weight-semibold); transition: opacity 0.2s ease, transform 0.15s ease; } [data-theme="dark"] .btn-pill-dark { background-color: #242a33; border: 1px solid var(--color-graphite); } .btn-pill-dark:hover { opacity: 0.9; transform: translateY(-1px); } /* Text link with trailing arrow */ .text-link-arrow { display: inline-flex; align-items: center; gap: 8px; font-size: var(--text-body); font-weight: var(--font-weight-semibold); color: var(--color-pure-white); transition: gap 0.2s ease, opacity 0.2s ease; } .text-link-arrow:hover { gap: 12px; opacity: 0.9; } .text-link-arrow.dark-text { color: var(--color-charcoal-ink); } /* ========================================================================== Pill Tag / Rating Badges ========================================================================== */ .pill-badge { display: inline-flex; align-items: center; gap: 8px; border-radius: var(--radius-pills); padding: 6px 14px; font-size: var(--text-caption); font-weight: var(--font-weight-semibold); letter-spacing: var(--tracking-caption); text-transform: uppercase; } .pill-badge.dark-mode { background-color: rgba(255, 255, 255, 0.08); border: 1px solid var(--color-graphite); color: var(--color-surfshark-teal); } .pill-badge.light-mode { background-color: var(--surface-card); border: 1px solid var(--color-ash-gray); color: var(--color-charcoal-ink); text-transform: none; font-size: var(--text-body-sm); padding: 8px 18px; } /* ========================================================================== Section Rhythm & General Typography ========================================================================== */ .section-wrapper { padding-top: var(--section-gap); padding-bottom: var(--section-gap); } .section-header { text-align: center; max-width: 720px; margin: 0 auto 48px auto; } .section-title { font-size: var(--text-heading); font-weight: var(--font-weight-bold); line-height: var(--leading-heading); color: var(--color-charcoal-ink); margin-bottom: var(--spacing-12); } .section-sub { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-slate); } /* ========================================================================== Hero Card (Dark) #16191c background with 64px border-radius, full width up to 1200px max. Generous bottom padding (80px) to give the CTA buttons ample room from the 64px corner. ========================================================================== */ .hero-card-dark { background-color: var(--surface-dark-panel); border-radius: var(--radius-full-2); padding: 64px 60px 84px 60px; /* Generous bottom padding to fix corner cutoff */ display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: center; gap: var(--spacing-48); color: var(--color-pure-white); position: relative; overflow: hidden; margin-top: var(--spacing-32); border: 1px solid var(--color-graphite); } .hero-left { display: flex; flex-direction: column; align-items: flex-start; } .hero-headline { font-size: var(--text-display); font-weight: var(--font-weight-bold); line-height: var(--leading-display); letter-spacing: var(--tracking-display); color: var(--color-pure-white); margin-top: var(--spacing-16); margin-bottom: var(--spacing-20); } .hero-description { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-mist-gray); margin-bottom: var(--spacing-24); max-width: 540px; } /* Checkmark Feature List */ .checkmark-list { display: flex; flex-direction: column; gap: var(--spacing-12); margin-bottom: var(--spacing-32); width: 100%; } .checkmark-item { display: flex; align-items: flex-start; gap: var(--spacing-12); font-size: var(--text-body); line-height: 1.5; color: var(--color-pure-white); } .checkmark-item.dark-text { color: var(--color-charcoal-ink); } .checkmark-icon { width: 18px; height: 18px; color: var(--color-surfshark-teal); flex-shrink: 0; margin-top: 3px; } .hero-cta-group { display: flex; align-items: center; gap: var(--spacing-24); flex-wrap: wrap; } /* Hero Right Visual Column */ .hero-right { display: flex; align-items: center; justify-content: center; } .hero-visual-card { width: 100%; max-width: 440px; background-color: var(--surface-deep-abyss); border: 1px solid var(--color-graphite); border-radius: var(--radius-3xl); padding: var(--spacing-32); display: flex; flex-direction: column; gap: var(--spacing-24); } .visual-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-graphite); padding-bottom: var(--spacing-16); } .visual-status-pill { display: inline-flex; align-items: center; gap: 8px; font-size: var(--text-caption); color: var(--color-surfshark-teal); font-weight: var(--font-weight-semibold); } .pulse-dot { width: 8px; height: 8px; border-radius: 50%; background-color: var(--color-surfshark-teal); } .visual-protocol { font-size: var(--text-caption); color: var(--color-mist-gray); font-weight: var(--font-weight-semibold); } .visual-main-shield { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--spacing-16) 0; text-align: center; } .shield-svg-wrap { width: 96px; height: 96px; margin-bottom: var(--spacing-16); color: var(--color-surfshark-teal); } .visual-shield-title { font-size: var(--text-subheading); font-weight: var(--font-weight-bold); color: var(--color-pure-white); margin-bottom: 4px; } .visual-shield-sub { font-size: var(--text-body-sm); color: var(--color-mist-gray); } .visual-metrics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-12); } .metric-box { background-color: rgba(255, 255, 255, 0.03); border: 1px solid var(--color-graphite); border-radius: var(--radius-xl); padding: 12px 14px; } .metric-label { font-size: var(--text-caption); color: var(--color-mist-gray); margin-bottom: 4px; } .metric-value { font-size: var(--text-subheading); font-weight: var(--font-weight-bold); color: var(--color-pure-white); } /* ========================================================================== Reviewer Avatar Strip & Trust Bar ========================================================================== */ .social-proof-strip { padding-top: var(--spacing-48); padding-bottom: var(--spacing-48); text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--spacing-16); } .avatar-stack { display: flex; align-items: center; justify-content: center; } .avatar-circle { width: 56px; height: 56px; border-radius: 50%; border: 3px solid var(--surface-canvas); margin-left: -12px; background-color: var(--color-ash-gray); display: flex; align-items: center; justify-content: center; font-size: var(--text-subheading); font-weight: var(--font-weight-bold); color: var(--color-pure-white); overflow: hidden; user-select: none; } .avatar-circle:first-child { margin-left: 0; } .avatar-circle.c1 { background: #3b82f6; } .avatar-circle.c2 { background: #1ebfbf; } .avatar-circle.c3 { background: #8b5cf6; } .avatar-circle.c4 { background: #fa3556; } .avatar-circle.c5 { background: #10b981; } .stars-gold { color: #ffb800; letter-spacing: 2px; } .social-proof-caption { font-size: var(--text-body-sm); color: var(--color-slate); } /* ========================================================================== Feature Cards (Light) #ffffff background, 48px border-radius, 32px padding, no shadow, 1px #dadadd border ========================================================================== */ .grid-features-light { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-24); } .feature-card-light { background-color: var(--surface-card); border-radius: var(--radius-cards); padding: var(--card-padding); border: 1px solid var(--color-ash-gray); display: flex; flex-direction: column; transition: border-color 0.2s ease, background-color 0.25s ease; } .feature-card-light:hover { border-color: var(--color-surfshark-teal); } .feature-icon-badge { width: 56px; height: 56px; border-radius: var(--radius-2xl); background-color: var(--surface-tinted-wash); color: var(--color-surfshark-teal); display: flex; align-items: center; justify-content: center; margin-bottom: var(--spacing-24); flex-shrink: 0; } .feature-icon-badge svg { width: 28px; height: 28px; } .feature-title-light { font-size: var(--text-heading-sm); font-weight: var(--font-weight-bold); color: var(--color-charcoal-ink); line-height: var(--leading-heading-sm); margin-bottom: var(--spacing-12); } .feature-desc-light { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-slate); } /* ========================================================================== Supported Devices Section (Tide Tint surface wash) ========================================================================== */ .devices-container { background-color: var(--surface-tinted-wash); border-radius: var(--radius-cards); padding: 48px 36px; border: 1px solid var(--color-ash-gray); transition: background-color 0.25s ease, border-color 0.25s ease; } .grid-devices-list { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--spacing-16); margin-top: var(--spacing-32); } .device-item-card { background-color: var(--surface-card); border-radius: var(--radius-2xl); padding: 24px 16px; border: 1px solid var(--color-ash-gray); display: flex; flex-direction: column; align-items: center; text-align: center; transition: border-color 0.2s ease, transform 0.15s ease, background-color 0.25s ease; } .device-item-card:hover { border-color: var(--color-surfshark-teal); transform: translateY(-2px); } .device-icon-wrap { width: 48px; height: 48px; margin-bottom: var(--spacing-12); display: flex; align-items: center; justify-content: center; } .device-icon-img { width: 36px; height: 36px; object-fit: contain; } .device-title { font-size: var(--text-body-sm); font-weight: var(--font-weight-bold); color: var(--color-charcoal-ink); margin-bottom: 4px; } .device-badge-app { font-size: var(--text-caption); color: var(--color-slate); } /* ========================================================================== Feature Card (Dark) — How to Connect Section ========================================================================== */ .feature-panel-dark { background-color: var(--surface-dark-panel); border-radius: var(--radius-cards); padding: 56px 48px; color: var(--color-pure-white); border: 1px solid var(--color-graphite); } .panel-header-dark { text-align: center; max-width: 680px; margin: 0 auto 48px auto; } .panel-title-dark { font-size: var(--text-heading); font-weight: var(--font-weight-bold); color: var(--color-pure-white); margin-bottom: var(--spacing-12); } .panel-sub-dark { font-size: var(--text-body); color: var(--color-mist-gray); } .grid-steps-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-24); } .step-card-dark { background-color: var(--surface-deep-abyss); border-radius: var(--radius-3xl); padding: var(--card-padding); border: 1px solid var(--color-graphite); display: flex; flex-direction: column; } .step-num-badge { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--color-surfshark-teal); color: var(--color-surfshark-teal); display: flex; align-items: center; justify-content: center; font-size: var(--text-heading-sm); font-weight: var(--font-weight-bold); margin-bottom: var(--spacing-20); } .step-title-dark { font-size: var(--text-heading-sm); font-weight: var(--font-weight-bold); color: var(--color-pure-white); margin-bottom: var(--spacing-12); } .step-desc-dark { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-mist-gray); } /* ========================================================================== Pricing Section ========================================================================== */ .pricing-section { padding-top: var(--section-gap); padding-bottom: var(--section-gap); } .billing-toggle-wrapper { display: flex; justify-content: center; margin-bottom: 48px; } .billing-toggle-pill { display: inline-flex; align-items: center; background-color: var(--surface-card); border: 1px solid var(--color-ash-gray); border-radius: var(--radius-pills); padding: 4px; transition: background-color 0.25s ease, border-color 0.25s ease; } .billing-opt-btn { border-radius: var(--radius-pills); padding: 10px 24px; font-size: var(--text-body-sm); font-weight: var(--font-weight-semibold); color: var(--color-slate); transition: all 0.2s ease; position: relative; display: flex; align-items: center; gap: 6px; } .billing-opt-btn.active { background-color: var(--color-charcoal-ink); color: var(--color-pure-white); } [data-theme="dark"] .billing-opt-btn.active { background-color: #242a33; color: var(--color-pure-white); } .promo-discount-badge { background-color: var(--color-promo-gold); color: var(--color-carbon); font-size: var(--text-caption); font-weight: var(--font-weight-bold); padding: 2px 8px; border-radius: var(--radius-links); line-height: 1.2; } .grid-pricing-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-24); align-items: stretch; } .pricing-card { background-color: var(--surface-card); border-radius: var(--radius-cards); padding: 40px 32px; border: 1px solid var(--color-ash-gray); display: flex; flex-direction: column; position: relative; transition: background-color 0.25s ease, border-color 0.25s ease; } /* Featured card in pricing */ .pricing-card.featured-plan { border: 2px solid var(--color-surfshark-teal); background-color: var(--surface-card); } .pricing-card-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background-color: var(--color-surfshark-teal); color: var(--color-charcoal-ink); font-size: var(--text-caption); font-weight: var(--font-weight-bold); padding: 4px 18px; border-radius: var(--radius-pills); letter-spacing: 0.5px; white-space: nowrap; } [data-theme="dark"] .pricing-card-badge { color: #0c0e12; } .pricing-plan-name { font-size: var(--text-subheading); font-weight: var(--font-weight-bold); color: var(--color-charcoal-ink); margin-bottom: var(--spacing-8); } .pricing-plan-price { font-size: var(--text-heading); font-weight: var(--font-weight-bold); color: var(--color-charcoal-ink); display: flex; align-items: baseline; gap: 4px; margin-bottom: var(--spacing-24); } .pricing-plan-price span.term { font-size: var(--text-body-sm); font-weight: var(--font-weight-regular); color: var(--color-slate); } .price-val { transition: opacity 0.15s ease; } .price-val.updating { opacity: 0; } /* Sub-plan tier chips */ .sub-plan-list { display: flex; flex-direction: column; gap: var(--spacing-8); margin-bottom: var(--spacing-24); padding: 12px; background-color: var(--surface-canvas); border-radius: var(--radius-xl); border: 1px solid var(--color-ash-gray); transition: background-color 0.25s ease, border-color 0.25s ease; } .sub-plan-row { display: flex; align-items: center; justify-content: space-between; font-size: var(--text-body-sm); color: var(--color-charcoal-ink); } .sub-plan-row span { color: var(--color-slate); } .sub-plan-row strong { font-weight: var(--font-weight-bold); } /* Pricing features checkmarks */ .pricing-features-list { list-style: none; margin-bottom: var(--spacing-32); flex-grow: 1; display: flex; flex-direction: column; gap: var(--spacing-12); } .pricing-features-list li { font-size: var(--text-body-sm); line-height: 1.5; color: var(--color-charcoal-ink); display: flex; align-items: flex-start; gap: 10px; } .pricing-features-list li.disabled-feature { color: var(--color-mist-gray); text-decoration: line-through; } .pricing-check-icon { width: 16px; height: 16px; color: var(--color-surfshark-teal); flex-shrink: 0; margin-top: 2px; } .pricing-cross-icon { width: 16px; height: 16px; color: var(--color-mist-gray); flex-shrink: 0; margin-top: 2px; } .pricing-card .btn-coral, .pricing-card .btn-dark { width: 100%; margin-top: auto; } /* ========================================================================== FAQ Accordion List ========================================================================== */ .faq-section-wrapper { max-width: 840px; margin: 0 auto; } .faq-accordion-list { display: flex; flex-direction: column; gap: var(--spacing-12); } .faq-item { background-color: var(--surface-card); border: 1px solid var(--color-ash-gray); border-radius: var(--radius-2xl); overflow: hidden; transition: border-color 0.2s ease, background-color 0.25s ease; } .faq-item.open { border-color: var(--color-surfshark-teal); } .faq-question-btn { width: 100%; padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-16); text-align: left; font-size: var(--text-subheading); font-weight: var(--font-weight-semibold); color: var(--color-charcoal-ink); cursor: pointer; background: transparent; } .faq-toggle-icon { width: 32px; height: 32px; border-radius: 50%; background-color: var(--surface-tinted-wash); color: var(--color-surfshark-teal); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.3s ease; } .faq-toggle-icon svg { width: 16px; height: 16px; } .faq-item.open .faq-toggle-icon { transform: rotate(45deg); } .faq-answer-collapse { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; } .faq-answer-content { padding: 0 24px 24px 24px; font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-slate); } /* ========================================================================== Testimonial Block & Review Strip ========================================================================== */ .testimonial-block-hero { background-color: var(--surface-card); border-radius: var(--radius-cards); border: 1px solid var(--color-ash-gray); padding: 56px 48px; text-align: center; display: flex; flex-direction: column; align-items: center; margin-bottom: var(--spacing-48); transition: background-color 0.25s ease, border-color 0.25s ease; } .testimonial-quote { font-size: var(--text-heading); font-weight: var(--font-weight-bold); line-height: var(--leading-heading); color: var(--color-charcoal-ink); max-width: 820px; margin-bottom: var(--spacing-24); } .testimonial-author { font-size: var(--text-caption); font-weight: var(--font-weight-semibold); letter-spacing: var(--tracking-caption); text-transform: uppercase; color: var(--color-charcoal-ink); margin-bottom: 4px; } .testimonial-subinfo { font-size: var(--text-body-sm); color: var(--color-slate); margin-bottom: var(--spacing-32); } .grid-reviews-two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-24); } .review-item-card { background-color: var(--surface-card); border: 1px solid var(--color-ash-gray); border-radius: var(--radius-3xl); padding: var(--card-padding); display: flex; flex-direction: column; gap: var(--spacing-16); transition: background-color 0.25s ease, border-color 0.25s ease; } .review-card-top { display: flex; align-items: center; gap: var(--spacing-16); } .review-avatar-box { width: 48px; height: 48px; border-radius: 50%; background-color: var(--color-charcoal-ink); color: var(--color-pure-white); display: flex; align-items: center; justify-content: center; font-weight: var(--font-weight-bold); font-size: var(--text-subheading); flex-shrink: 0; } [data-theme="dark"] .review-avatar-box { background-color: #242a33; } .review-user-name { font-weight: var(--font-weight-bold); font-size: var(--text-body); color: var(--color-charcoal-ink); } .review-verified-badge { font-size: var(--text-caption); color: #10b981; font-weight: var(--font-weight-semibold); } .review-quote-text { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-slate); } /* ========================================================================== Support CTA Panel (Dark Panel) ========================================================================== */ .support-panel-dark { background-color: var(--surface-dark-panel); border-radius: var(--radius-cards); padding: 56px 48px; color: var(--color-pure-white); border: 1px solid var(--color-graphite); text-align: center; display: flex; flex-direction: column; align-items: center; } .support-title { font-size: var(--text-heading); font-weight: var(--font-weight-bold); color: var(--color-pure-white); margin-bottom: var(--spacing-16); max-width: 680px; } .support-desc { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-mist-gray); max-width: 580px; margin-bottom: var(--spacing-32); } /* ========================================================================== Site-Wide Footer ========================================================================== */ .site-footer { background-color: var(--surface-dark-panel); color: var(--color-pure-white); padding-top: var(--spacing-48); padding-bottom: var(--spacing-48); border-top: 1px solid var(--color-graphite); margin-top: var(--section-gap); } .footer-top-row { display: flex; align-items: center; justify-content: space-between; padding-bottom: var(--spacing-32); border-bottom: 1px solid var(--color-graphite); margin-bottom: var(--spacing-40); flex-wrap: wrap; gap: var(--spacing-20); } .footer-logo { display: flex; align-items: center; gap: 8px; font-size: var(--text-heading-sm); font-weight: var(--font-weight-bold); color: var(--color-pure-white); } .footer-logo .brand-name { color: var(--color-pure-white); } .footer-logo .brand-name span { color: var(--color-surfshark-teal); } .footer-tagline { font-size: var(--text-body-sm); color: var(--color-mist-gray); } .footer-columns-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-32); margin-bottom: var(--spacing-48); } .footer-col-title { font-size: var(--text-body-sm); font-weight: var(--font-weight-bold); color: var(--color-pure-white); margin-bottom: var(--spacing-16); letter-spacing: 0.5px; } .footer-links-list { list-style: none; display: flex; flex-direction: column; gap: var(--spacing-12); } .footer-links-list a { font-size: var(--text-body); color: var(--color-mist-gray); transition: color 0.2s ease; } .footer-links-list a:hover { color: var(--color-surfshark-teal); } .footer-bottom-bar { padding-top: var(--spacing-24); border-top: 1px solid var(--color-graphite); display: flex; align-items: center; justify-content: space-between; font-size: var(--text-caption); color: var(--color-mist-gray); flex-wrap: wrap; gap: var(--spacing-12); } /* ========================================================================== Scroll Reveal Animations ========================================================================== */ .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.6s ease, transform 0.6s ease; } .reveal.visible { opacity: 1; transform: translateY(0); } /* ========================================================================== Responsive Breakpoints ========================================================================== */ @media (max-width: 1024px) { .hero-card-dark { grid-template-columns: 1fr; border-radius: var(--radius-cards); padding: 48px 36px 64px 36px; } .hero-headline { font-size: var(--text-heading-lg); line-height: var(--leading-heading-lg); } .grid-features-light { grid-template-columns: repeat(2, 1fr); } .grid-devices-list { grid-template-columns: repeat(3, 1fr); } .grid-pricing-cards { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; } .grid-steps-three { grid-template-columns: 1fr; } .grid-reviews-two { grid-template-columns: 1fr; } .footer-columns-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 820px) { nav.main-nav, .nav-actions .btn-dark { display: none; } .burger-btn { display: flex; } .hero-card-dark { padding: 40px 24px 56px 24px; border-radius: var(--radius-3xl); } .hero-headline { font-size: 34px; line-height: 1.15; letter-spacing: -1px; } .section-title, .panel-title-dark, .testimonial-quote, .support-title { font-size: var(--text-heading-sm); } .grid-features-light { grid-template-columns: 1fr; } .devices-container { padding: 32px 20px; } .grid-devices-list { grid-template-columns: repeat(2, 1fr); } .footer-columns-grid { grid-template-columns: 1fr; } .footer-top-row { flex-direction: column; align-items: flex-start; } }