/* ==========================================================================
   CipherPaths website styles
   Brand palette derived from the product logo (dark navy + blue gradient)
   ========================================================================== */

:root {
    --cp-navy:        #1c2431;
    --cp-navy-2:      #232d3d;
    --cp-navy-3:      #2b3548;
    --cp-blue:        #2f7fe0;
    --cp-blue-light:  #4aa8f0;
    --cp-blue-dark:   #1f5fc0;
    --cp-cyan:        #58c6f5;
    --cp-ink:         #1c2431;
    --cp-body:        #354054;
    --cp-muted:       #6b7688;
    --cp-line:        #e2e7ef;
    --cp-bg:          #ffffff;
    --cp-bg-soft:     #f5f8fc;
    --cp-green:       #2fa36b;
    --cp-radius:      14px;
    --cp-shadow:      0 10px 30px rgba(20, 33, 61, 0.10);
    --cp-shadow-sm:   0 4px 14px rgba(20, 33, 61, 0.08);
    --cp-gradient:    linear-gradient(135deg, #4aa8f0 0%, #2f7fe0 55%, #1f5fc0 100%);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

body {
    margin: 0;
    font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    color: var(--cp-body);
    background: var(--cp-bg);
    line-height: 1.65;
    font-size: 1.02rem;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
    color: var(--cp-ink);
    font-weight: 700;
    line-height: 1.2;
}

a { color: var(--cp-blue-dark); text-decoration: none; }
a:hover { color: var(--cp-blue); text-decoration: underline; }

.container-cp { max-width: 1140px; margin: 0 auto; padding: 0 20px; }

.text-gradient {
    background: var(--cp-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ---------- Buttons ---------- */
.btn-cp {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: none;
    border-radius: 10px;
    padding: 13px 26px;
    font-weight: 600;
    font-size: 1.02rem;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    text-decoration: none;
}
.btn-cp-primary {
    background: var(--cp-gradient);
    color: #fff;
    box-shadow: 0 8px 20px rgba(47, 127, 224, .35);
}
.btn-cp-primary:hover {
    color: #fff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(47, 127, 224, .45);
}
.btn-cp-ghost {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255,255,255,.5);
}
.btn-cp-ghost:hover { background: rgba(255,255,255,.12); color:#fff; text-decoration:none; }
.btn-cp-outline {
    background: #fff;
    color: var(--cp-blue-dark);
    border: 1.5px solid var(--cp-line);
}
.btn-cp-outline:hover { border-color: var(--cp-blue); color: var(--cp-blue); text-decoration:none; }

/* ---------- Navbar ---------- */
.cp-navbar {
    background: rgba(28, 36, 49, .96);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.cp-navbar .navbar-brand { display:flex; align-items:center; gap:10px; font-weight:700; color:#fff; font-size:1.25rem; }
.cp-navbar .navbar-brand img { height: 34px; width:auto; }
.cp-navbar .nav-link { color: rgba(255,255,255,.82) !important; font-weight:500; padding:.5rem 1rem !important; }
.cp-navbar .nav-link:hover { color:#fff !important; }
.cp-navbar .nav-link.active { color:#fff !important; position:relative; }
.cp-navbar .nav-link.active::after {
    content:""; position:absolute; left:1rem; right:1rem; bottom:2px; height:2px;
    background: var(--cp-gradient); border-radius:2px;
}
.cp-navbar .navbar-toggler { border-color: rgba(255,255,255,.35); }
.cp-navbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255,255,255,.2); }
.cp-navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.9)' stroke-width='2.2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ---------- Hero ---------- */
.cp-hero {
    background: radial-gradient(1200px 600px at 80% -10%, #2c3548 0%, transparent 60%),
                linear-gradient(160deg, #1c2431 0%, #232d3d 100%);
    color: #fff;
    padding: 84px 0 96px;
    position: relative;
    overflow: hidden;
}
.cp-hero h1 { color:#fff; font-size: clamp(2.1rem, 4vw, 3.3rem); letter-spacing:-.5px; }
.cp-hero .lead { color: rgba(255,255,255,.82); font-size:1.2rem; max-width:620px; }
.cp-hero .eyebrow {
    display:inline-block; text-transform:uppercase; letter-spacing:2px; font-size:.8rem;
    font-weight:700; color: var(--cp-cyan); margin-bottom:14px;
}
.cp-hero-shot {
    border-radius: 12px;
    box-shadow: 0 30px 70px rgba(0,0,0,.5);
    border: 1px solid rgba(255,255,255,.1);
    max-width:100%;
    height:auto;
}
.cp-hero-badges { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:26px; color:rgba(255,255,255,.75); font-size:.92rem; }
.cp-hero-badges span { display:flex; align-items:center; gap:7px; }
.cp-hero-badges .dot { width:7px; height:7px; border-radius:50%; background:var(--cp-cyan); display:inline-block; }

/* ---------- Sections ---------- */
.cp-section { padding: 74px 0; }
.cp-section.soft { background: var(--cp-bg-soft); }
.cp-section-head { max-width: 720px; margin: 0 auto 52px; text-align:center; }
.cp-section-head .eyebrow {
    display:inline-block; text-transform:uppercase; letter-spacing:2px; font-size:.78rem;
    font-weight:700; color:var(--cp-blue); margin-bottom:12px;
}
.cp-section-head h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
.cp-section-head p { color: var(--cp-muted); font-size:1.1rem; }

/* ---------- Feature cards ---------- */
.cp-card {
    background:#fff;
    border: 1px solid var(--cp-line);
    border-radius: var(--cp-radius);
    padding: 28px;
    height:100%;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.cp-card:hover { transform: translateY(-4px); box-shadow: var(--cp-shadow); border-color:#cfe0f5; }
.cp-card .cp-ico {
    width:52px; height:52px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background: linear-gradient(135deg, #eaf3fe, #d7e9fc);
    margin-bottom:18px;
}
.cp-card .cp-ico img { width:30px; height:30px; }
.cp-card h3 { font-size:1.2rem; margin-bottom:8px; }
.cp-card p { color: var(--cp-muted); margin:0; font-size:.98rem; }

/* ---------- Split / alternating feature rows ---------- */
.cp-split { padding: 34px 0; }
.cp-split img { border-radius:12px; box-shadow: var(--cp-shadow); border:1px solid var(--cp-line); max-width:100%; height:auto; }
.cp-split h3 { font-size:1.55rem; margin-bottom:14px; }
.cp-split p { color: var(--cp-body); }
.cp-pill {
    display:inline-block; background:#eaf3fe; color:var(--cp-blue-dark);
    font-weight:600; font-size:.8rem; padding:5px 12px; border-radius:20px; margin-bottom:14px;
    text-transform:uppercase; letter-spacing:1px;
}
.cp-check { list-style:none; padding:0; margin:18px 0 0; }
.cp-check li { position:relative; padding-left:30px; margin-bottom:10px; color:var(--cp-body); }
.cp-check li::before {
    content:""; position:absolute; left:0; top:5px; width:18px; height:18px; border-radius:50%;
    background: var(--cp-green);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat;
}

/* ---------- Comparison / callout ---------- */
.cp-cta {
    background: var(--cp-gradient);
    border-radius: 20px;
    padding: 54px;
    color:#fff;
    text-align:center;
    box-shadow: var(--cp-shadow);
}
.cp-cta h2 { color:#fff; font-size:2rem; }
.cp-cta p { color: rgba(255,255,255,.9); max-width:600px; margin:0 auto 26px; }

/* ---------- Download page ---------- */
.cp-dl-card {
    background:#fff; border:1px solid var(--cp-line); border-radius:18px;
    padding:40px; box-shadow: var(--cp-shadow-sm); text-align:center; max-width:560px; margin:0 auto;
}
.cp-dl-card .os { width:64px; height:64px; margin-bottom:12px; }
.cp-dl-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 26px; margin-top:22px; color:var(--cp-muted); font-size:.92rem; }
.cp-dl-meta b { color:var(--cp-ink); }
.cp-steps { counter-reset: step; list-style:none; padding:0; margin:0; }
.cp-steps li { position:relative; padding-left:52px; margin-bottom:22px; }
.cp-steps li::before {
    counter-increment: step; content: counter(step);
    position:absolute; left:0; top:-2px; width:34px; height:34px; border-radius:50%;
    background: var(--cp-gradient); color:#fff; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.cp-hash {
    font-family: "Cascadia Code", Consolas, monospace; font-size:.85rem;
    background: var(--cp-bg-soft); border:1px solid var(--cp-line);
    border-radius:8px; padding:10px 14px; word-break:break-all; color:var(--cp-body);
}

/* ---------- Users guide ---------- */
.cp-guide-wrap { display:grid; grid-template-columns: 260px 1fr; gap:48px; align-items:start; }
.cp-toc {
    position: sticky; top: 92px;
    background:#fff; border:1px solid var(--cp-line); border-radius:14px;
    padding:22px; box-shadow: var(--cp-shadow-sm);
    max-height: calc(100vh - 120px); overflow:auto;
}
.cp-toc h4 { font-size:.8rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--cp-muted); margin:0 0 12px; }
.cp-toc ul { list-style:none; padding:0; margin:0; }
.cp-toc li a { display:block; padding:6px 10px; border-radius:8px; color:var(--cp-body); font-size:.94rem; }
.cp-toc li a:hover { background: var(--cp-bg-soft); text-decoration:none; color:var(--cp-blue-dark); }
.cp-toc li a.active { background:#eaf3fe; color:var(--cp-blue-dark); font-weight:600; }

.cp-guide-body h2 {
    font-size:1.7rem; margin-top:8px; padding-top:8px;
    scroll-margin-top: 90px;
}
.cp-guide-body section { margin-bottom:58px; padding-bottom:20px; border-bottom:1px solid var(--cp-line); }
.cp-guide-body section:last-child { border-bottom:none; }
.cp-guide-body h3 { font-size:1.2rem; margin-top:26px; }
.cp-figure { margin:22px 0; }
.cp-figure img { max-width:100%; height:auto; border-radius:10px; border:1px solid var(--cp-line); box-shadow: var(--cp-shadow-sm); }
.cp-figure figcaption { font-size:.88rem; color:var(--cp-muted); margin-top:8px; text-align:center; }
.cp-note {
    background:#eaf3fe; border-left:4px solid var(--cp-blue);
    padding:14px 18px; border-radius:8px; margin:18px 0; color:var(--cp-ink);
}
.cp-note.warn { background:#fdf1e7; border-left-color:#e08a2f; }

/* ---------- FAQ ---------- */
.cp-faq .accordion-button { font-weight:600; color:var(--cp-ink); }
.cp-faq .accordion-button:not(.collapsed) { background:#eaf3fe; color:var(--cp-blue-dark); box-shadow:none; }
.cp-faq .accordion-button:focus { box-shadow:none; border-color:var(--cp-line); }
.cp-faq .accordion-item { border:1px solid var(--cp-line); border-radius:12px !important; margin-bottom:12px; overflow:hidden; }

/* ---------- About ---------- */
.cp-about-card { background:#fff; border:1px solid var(--cp-line); border-radius:14px; padding:28px; height:100%; box-shadow: var(--cp-shadow-sm); }
.cp-about-card h3 { font-size:1.2rem; }

/* ---------- Page header (interior pages) ---------- */
.cp-page-head {
    background: linear-gradient(160deg, #1c2431 0%, #232d3d 100%);
    color:#fff; padding:56px 0; text-align:center;
}
.cp-page-head h1 { color:#fff; font-size: clamp(1.9rem, 3.5vw, 2.7rem); }
.cp-page-head p { color: rgba(255,255,255,.8); max-width:640px; margin:10px auto 0; }

/* ---------- Footer ---------- */
.cp-footer { background:#161d28; color: rgba(255,255,255,.62); padding:52px 0 26px; }
.cp-footer a { color: rgba(255,255,255,.72); }
.cp-footer a:hover { color:#fff; }
.cp-footer .brand { display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; font-size:1.15rem; margin-bottom:14px; }
.cp-footer .brand img { height:30px; }
.cp-footer h5 { color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:16px; }
.cp-footer ul { list-style:none; padding:0; margin:0; }
.cp-footer ul li { margin-bottom:9px; }
.cp-footer .foot-bottom { border-top:1px solid rgba(255,255,255,.08); margin-top:36px; padding-top:22px; font-size:.86rem; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    .cp-guide-wrap { grid-template-columns: 1fr; }
    .cp-toc { position: static; max-height:none; margin-bottom:30px; }
    .cp-hero { padding:60px 0 70px; }
    .cp-cta { padding:38px 22px; }
}
