* { box-sizing: border-box; } body { margin: 0; font-family: Inter, sans-serif; font-size: 1rem; line-height: 1.6; color: #212529; background: #fff; } h1, h2, h3 { font-family: Inter Tight, sans-serif; font-weight: 600; line-height: 1.25; margin-top: 0; margin-bottom: 0.5rem; } h1 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); } h2 { font-size: clamp(1.4rem, 2.56vw, 2rem); } h3 { font-size: clamp(1.1rem, 2vw, 1.4rem); } p { margin-top: 0; margin-bottom: 1rem; } a { color: #65435c; text-decoration: none; } img { max-width: 100%; height: auto; vertical-align: middle; } :root { --primary: #714b67; --secondary: #f0cda8; --dark: #1b1319; --light: #f6f5f4; --border: #e5e3e0; --radius: 0.6rem; --radius-lg: 1rem; } .container { width: 80%; padding: 0 20px; margin: 0 auto; max-width: 1300px; } @media (max-width: 768px) { .container { max-width: 100%; } } .row { display: flex; flex-wrap: wrap; margin: 0 -15px; } .col-lg-5 { flex: 0 0 41.666%; max-width: 41.666%; padding: 0 15px; } .col-lg-6 { flex: 0 0 50%; max-width: 50%; padding: 0 15px; } .col-lg-10 { flex: 0 0 83.333%; max-width: 83.333%; padding: 0 15px; } .offset-lg-1 { margin-left: 8.333%; } .offset-lg-6 { margin-left: 50%; } @media (max-width: 992px) { .col-lg-5, .col-lg-6, .col-lg-10 { flex: 0 0 100%; max-width: 100%; } .offset-lg-1, .offset-lg-6 { margin-left: 0; } } .text-center { text-align: center; } .d-none { display: none !important; } .d-flex { display: flex; } .align-items-center { align-items: center; } .mb-4 { margin-bottom: 1.5rem; } .mt-3 { margin-top: 1rem; } .btn { display: inline-block; padding: 0.6rem 1.5rem; font-size: 0.9rem; font-weight: 500; border: 1px solid transparent; border-radius: 0.5rem; cursor: pointer; text-decoration: none; transition: all 0.2s; } .btn-primary { color: #fff; background: var(--primary); border-color: var(--primary); } .btn-primary:hover { background: #5e3f55; border-color: #5e3f55; transform: translateY(-1px); } .btn-outline-primary { color: #65435c; border-color: #65435c; background: transparent; } .btn-outline-primary:hover { color: #fff; background: #65435c; border-color: #65435c; } .btn-lg { padding: 0.75rem 2rem; font-size: 1rem; border-radius: 2rem; } .hr { width: 3.5rem; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 2px; margin: 0 auto 1rem; } .hero-carousel { position: relative; overflow: hidden; min-height: 400px; } .hero-slide { position: absolute; inset: 0; min-height: 400px; display: flex; align-items: center; background-size: cover; background-position: center; transform: translateY(-100%); opacity: 0; transition: transform 0.5s ease, opacity 0.5s ease; z-index: 1; } .hero-slide.active { transform: translateY(0); opacity: 1; z-index: 2; } .hero-slide.prev { transform: translateY(100%); opacity: 0; z-index: 1; } .hero-slide::before { content: ""; position: absolute; inset: 0; background: none; } .hero-box { position: relative; z-index: 2; padding: 1.5rem; border-radius: var(--radius); background: rgba(27, 19, 25, 0.75); color: #fff; border: 1px solid rgba(255, 255, 255, 0.08); } .hero-box h2 { color: #fff; font-size: clamp(1rem, 2.2vw, 1.4rem); margin-bottom: 0.3rem; } .hero-box p { color: rgba(255, 255, 255, 0.9); font-size: 0.9rem; margin-bottom: 0.5rem; } .carousel-dots { position: absolute; bottom: 1rem; left: 0; right: 0; display: flex; justify-content: center; gap: 0.5rem; z-index: 3; } .carousel-dot { width: 8px; height: 8px; border-radius: 50%; border: none; background: rgba(255, 255, 255, 0.35); cursor: pointer; transition: all 0.3s; } .carousel-dot.active { background: rgba(255, 255, 255, 0.8); transform: scale(1.2); } .arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; background: rgba(27, 19, 25, 0.5); color: #fff; border: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; } .arrow:hover { background: rgba(27, 19, 25, 0.8); transform: translateY(-50%) scale(1.05); } .arrow.left { left: 1rem; } .arrow.right { right: 1rem; } @media (max-width: 768px) { .arrow { display: none; } } .stitle { text-align: center; padding: 2rem 0; } .stitle h1 { font-size: clamp(1.12rem, 2.4vw, 1.6rem); max-width: 720px; margin: 0 auto; color: var(--dark); } .tabs-section { padding: 2rem 0; } .tabs-wrap { display: flex; gap: 2rem; } .tabs-nav { flex: 0 0 220px; max-width: 220px; display: flex; flex-direction: column; gap: 0.25rem; } .tabs-content { flex: 1; min-height: 200px; font-size: 1rem; line-height: 1.7; } .tab-btn { display: block; padding: 0.6rem 1rem; color: #212529; border-radius: var(--radius); border: none; background: none; width: 100%; text-align: left; font-size: 0.9rem; font-weight: 500; cursor: pointer; transition: all 0.2s; } .tab-btn:hover { background: var(--light); } .tab-btn.active { background: linear-gradient( 135deg, rgba(113, 75, 103, 0.08), rgba(113, 75, 103, 0.03) ); color: var(--primary); font-weight: 600; border-left: 3px solid var(--primary); } .tab-btn small { display: block; color: rgba(33, 37, 41, 0.55); font-size: 0.72rem; margin-top: 0.1rem; } .tab-btn.active small { color: rgba(113, 75, 103, 0.6); } .tab-pane { display: none; } .tab-pane.active { display: block; } @media (max-width: 992px) { .tabs-wrap { flex-direction: column; } .tabs-nav { flex: 0 0 100%; max-width: 100%; flex-direction: row; overflow-x: auto; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border); } .tab-btn { white-space: nowrap; width: auto; border-left: none; } .tab-btn.active { border-left: none; border-bottom: 3px solid var(--primary); } .tab-btn small { display: none; } .tabs-content { flex: 0 0 100%; max-width: 100%; } } .psection { padding: 2rem 0; background: var(--light); } .pgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; } .pcard { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: all 0.3s; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06); } .pcard:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); transform: translateY(-3px); } .pcard.featured { border: 2px solid var(--primary); position: relative; } .pcard.featured::before { content: "Most Popular"; position: absolute; top: 0.75rem; right: 0.75rem; background: var(--primary); color: #fff; padding: 0.2rem 0.6rem; border-radius: 2rem; font-size: 0.6rem; font-weight: 600; } .pcard-body { padding: 1.25rem; flex: 1; } .pcard-body h3 { font-size: 1.1rem; font-weight: 700; } .pcard .price { margin: 0.5rem 0; } .pcard .price strong { font-size: clamp(1.28rem, 2vw, 1.92rem); color: var(--dark); } .pcard .price small { color: rgba(33, 37, 41, 0.55); font-size: 0.82rem; } .pcard .desc { font-size: 0.82rem; color: rgba(33, 37, 41, 0.6); min-height: 2rem; font-style: italic; } .pcard .btn { margin-bottom: 0.75rem; width: 100%; } .pcard ul { list-style: none; padding: 0; margin: 0; } .pcard li { padding: 0.4rem 0; font-size: 0.82rem; border-bottom: 1px solid rgba(0, 0, 0, 0.05); display: flex; align-items: center; gap: 0.4rem; } .pcard li:last-child { border-bottom: 0; } .pcard-foot { padding: 0.6rem 1.25rem; text-align: center; border-top: 1px solid var(--border); font-size: 0.78rem; color: rgba(33, 37, 41, 0.55); } @media (max-width: 992px) { .pgrid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 576px) { .pgrid { grid-template-columns: 1fr; } } .trial { padding: 3rem 0; background: linear-gradient(135deg, #1b1319, #2a1d27); color: #fff; } .trial h2 { color: #fff; } .trial p { color: rgba(255, 255, 255, 0.8); } .abanner { padding: 2rem 0; text-align: center; background: #fff; } .abanner h2 { font-size: clamp(1.12rem, 2.4vw, 1.6rem) !important; max-width: 700px; margin: 0 auto 0.5rem; } .footer { background: var(--dark); color: rgba(255, 255, 255, 0.85); padding-top: 3rem; } .fgrid { display: grid; grid-template-columns: 1.5fr 3fr 3.5fr; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .footer h5 { color: #fff; margin-bottom: 0.8rem; font-weight: 600; } .footer ul { list-style: none; padding: 0; } .footer li { margin-bottom: 0.3rem; } .footer a { color: rgba(255, 255, 255, 0.65); transition: color 0.2s; } .footer a:hover { color: #fff; text-decoration: none; } .footer p { color: rgba(255, 255, 255, 0.7); font-size: 0.85rem; line-height: 1.7; } .footer strong { color: #fff; } .footer .social a { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.7); margin-right: 0.3rem; transition: all 0.2s; } .footer .social a:hover { background: var(--primary); color: #fff; } .fform label { font-weight: 500; margin-bottom: 0.25rem; display: block; color: #fff; } .fform input { display: block; width: 100%; padding: 0.5rem 0.8rem; font-size: 0.85rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 0.5rem; color: #fff; margin-bottom: 0.75rem; } .fform input:focus { outline: none; border-color: var(--primary); } .fform input::placeholder { color: rgba(255, 255, 255, 0.35); } .fcopy { padding: 1rem 0; text-align: center; font-size: 0.82rem; color: rgba(255, 255, 255, 0.5); } @media (max-width: 992px) { .fgrid { grid-template-columns: 1fr; } } .spinner-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--dark); z-index: 5; transition: opacity 0.5s; } .spinner-overlay.hidden { opacity: 0; pointer-events: none; } .spinner { width: 2rem; height: 2rem; border: 3px solid rgba(255, 255, 255, 0.15); border-top-color: #fff; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* ---- Billing Toggle ---- */ .billing-toggle-wrap { display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin-bottom: 1.5rem; } .toggle-label { font-size: 0.82rem; font-weight: 500; color: rgba(33, 37, 41, 0.6); cursor: pointer; transition: color 0.2s; user-select: none; } .toggle-label.active { color: var(--dark); font-weight: 600; } .toggle-label small { display: block; font-size: 0.62rem; font-weight: 400; color: #28a745; margin-top: 0.1rem; } .toggle-switch { width: 48px; height: 26px; background: var(--border); border-radius: 13px; cursor: pointer; position: relative; transition: background 0.25s; flex-shrink: 0; } .toggle-switch.yearly { background: var(--primary); } .toggle-switch .thumb { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; border-radius: 50%; transition: left 0.25s; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); } .toggle-switch.yearly .thumb { left: 25px; } .price-save { font-size: 0.6rem; font-weight: 700; color: #28a745; margin-top: 0.15rem; } .price-period { color: rgba(33, 37, 41, 0.55); font-size: 0.68rem; } /* ---- Partner Banner ---- */ .partner-banner { padding: 2rem 0; background: #f6f5f4; text-align: center; } .partner-banner h3 { font-family: "Inter Tight", sans-serif; font-size: 1rem; font-weight: 600; color: rgba(33, 37, 41, 0.45); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1.5rem; } .partner-grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2rem; } .partner-item { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; text-decoration: none; color: rgba(33, 37, 41, 0.55); font-size: 0.75rem; transition: opacity 0.2s; } .partner-item:hover { opacity: 0.7; } .partner-item img { width: 32px; height: 32px; border-radius: 6px; object-fit: contain; } @media (max-width: 768px) { .partner-grid { gap: 1.25rem; } .partner-item img { width: 28px; height: 28px; } } /* ---- Blog Section ---- */ .blog-section { padding: 3rem 0; background: #08080c; color: #e8e8f0; } .blog-section h2 { color: #e8e8f0; } .blog-search-wrap { max-width: 500px; margin: 0 auto 2rem; } .blog-search { width: 100%; padding: 0.75rem 1rem; font-size: 0.85rem; background: #1a1a2e; border: 1px solid #2a2a4e; border-radius: 0.5rem; color: #e8e8f0; font-family: Inter, sans-serif; transition: border-color 0.2s; outline: none; } .blog-search:focus { border-color: #00f5ff; box-shadow: 0 0 0 2px rgba(0, 245, 255, 0.15); } .blog-search::placeholder { color: rgba(232, 232, 240, 0.35); } .blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 2rem; } @media (max-width: 992px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 576px) { .blog-grid { grid-template-columns: 1fr; } } .blog-card { background: #12121c; border: 1px solid #1a1a2e; border-radius: 0.6rem; padding: 1.25rem; display: flex; flex-direction: column; transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s; } .blog-card:hover { transform: translateY(-2px); border-color: #00f5ff; box-shadow: 0 4px 20px rgba(0, 245, 255, 0.08); } .blog-card-top { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .blog-badge { display: inline-block; padding: 0.15rem 0.5rem; border-radius: 3rem; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #08080c; } .blog-badge-speed-run { background: #f472b6; } .blog-badge-guide { background: #a78bfa; } .blog-badge-howto { background: #00f5ff; } .blog-badge-news { background: #ffaa00; } .blog-badge-default { background: #a78bfa; } .blog-agent { display: inline-block; padding: 0.15rem 0.45rem; border-radius: 3rem; font-size: 0.56rem; font-weight: 600; background: rgba(0, 245, 255, 0.15); color: #00f5ff; border: 1px solid rgba(0, 245, 255, 0.25); } .blog-date { font-size: 0.82rem; color: rgba(232, 232, 240, 0.45); margin-bottom: 0.4rem; } .blog-card h3 { font-family: "Inter Tight", sans-serif; font-size: 1.1rem; font-weight: 600; margin: 0 0 0.5rem; line-height: 1.35; } .blog-card h3 a { color: #e8e8f0; text-decoration: none; transition: color 0.2s; } .blog-card h3 a:hover { color: #00f5ff; } .blog-teaser { font-size: 0.9rem; color: rgba(232, 232, 240, 0.65); line-height: 1.55; margin-bottom: 1rem; flex: 1; } .blog-readmore { font-size: 0.85rem; color: #00f5ff; text-decoration: none; font-weight: 500; transition: opacity 0.2s; margin-top: auto; } .blog-readmore:hover { opacity: 0.75; } .blog-empty { grid-column: 1 / -1; text-align: center; padding: 2rem; color: rgba(232, 232, 240, 0.5); font-size: 0.9rem; } .blog-pagination { display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1rem 0; } .blog-page-btn { padding: 0.4rem 1rem; font-size: 0.85rem; background: #12121c; border: 1px solid #1a1a2e; border-radius: 0.4rem; color: #e8e8f0; cursor: pointer; font-family: Inter, sans-serif; transition: border-color 0.2s, background 0.2s; } .blog-page-btn:hover:not(:disabled) { border-color: #00f5ff; background: rgba(0, 245, 255, 0.08); } .blog-page-btn:disabled { opacity: 0.3; cursor: default; } .blog-page-info { font-size: 0.78rem; color: rgba(232, 232, 240, 0.55); }