/*
Theme Name: WarpPress NRPP
Description: Clean classic theme for the NRPP demo. No block editor, no page builder. Plain HTML content, edited in a real WYSIWYG.
Author: Adam Ridley
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: warppress-nrpp
*/

:root {
            --navy:        #0A4E8D;
            --navy-2:      #083f74;
            --navy-3:      #06304e;
            --navy-light:  #e6eef7;
            --orange:      #E45C26;
            --orange-2:    #c94918;
            --orange-tint: #fdece4;
            --gray-50:     #fafafa;
            --gray-100:    #f2f2f4;
            --gray-200:    #e6e6ea;
            --gray-300:    #d1d1d7;
            --gray-400:    #a3a3ab;
            --gray-500:    #6b6b74;
            --ink:         #1a1a1f;
            --ink-2:       #3a3a44;
        }
        * { box-sizing: border-box; }
        html, body { margin: 0; padding: 0; }
        body {
            font-family: 'Manrope', system-ui, sans-serif;
            font-size: 16px;
            line-height: 1.6;
            color: var(--ink);
            background: #fff;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        a { color: var(--navy); text-decoration: none; }
        a:hover { color: var(--orange); }

        /* Utility bar */
        .util {
            background: var(--navy-3);
            color: rgba(255,255,255,0.85);
            font-size: 13px;
            padding: 8px 0;
        }
        .util-inner {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 24px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .util-nav a { color: rgba(255,255,255,0.75); margin-left: 20px; }
        .util-nav a:hover { color: #fff; }

        /* Header */
        header.hdr {
            background: #fff;
            border-bottom: 1px solid var(--gray-200);
            padding: 4px 0;
        }
        .hdr-inner {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 24px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 40px;
        }
        .brand-img {
            height: 92px;
            width: auto;
            display: block;
            margin: 0;
            padding: 0;
        }
        @media (max-width: 900px) { .brand-img { height: 72px; } }
        nav.primary { display: flex; gap: 4px; align-items: center; }
        nav.primary a {
            color: var(--ink);
            padding: 10px 14px;
            border-radius: 4px;
            font-size: 15px;
            font-weight: 600;
            letter-spacing: 0.005em;
            transition: color 0.15s ease;
        }
        nav.primary a:hover { color: var(--navy); background: var(--gray-100); }
        nav.primary a.cta {
            background: var(--orange);
            color: #fff !important;
            padding: 10px 20px;
            margin-left: 12px;
        }
        nav.primary a.cta:hover { background: var(--orange-2); }

        /* Hero */
        .hero {
            background: linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
            color: #fff;
            padding: 80px 0 90px;
            position: relative;
            overflow: hidden;
        }
        .hero::after {
            content: '';
            position: absolute;
            top: 0; right: 0; bottom: 0; width: 40%;
            background: radial-gradient(ellipse at right center, rgba(228, 92, 38, 0.10), transparent 65%);
            pointer-events: none;
        }
        .hero-inner {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 24px;
            display: grid;
            grid-template-columns: 1.35fr 1fr;
            gap: 60px;
            align-items: center;
            position: relative;
            z-index: 1;
        }
        @media (max-width: 900px) { .hero-inner { grid-template-columns: 1fr; gap: 32px; } }
        .hero-eyebrow {
            font-size: 13px;
            font-weight: 600;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            color: #fff;
            opacity: 0.75;
            margin-bottom: 18px;
        }
        .hero h1 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 52px;
            line-height: 1.05;
            letter-spacing: -0.03em;
            margin: 0 0 22px;
        }
        .hero h1 .orange { color: #ffb593; }
        .hero-lead {
            font-size: 18px;
            color: rgba(255,255,255,0.88);
            max-width: 560px;
            margin-bottom: 32px;
            line-height: 1.55;
        }
        .hero-actions {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 14px 26px;
            border-radius: 4px;
            font-family: 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 15px;
            letter-spacing: 0.01em;
            border: none;
            cursor: pointer;
            transition: all 0.18s ease;
            text-decoration: none;
        }
        .btn-primary { background: var(--orange); color: #fff; }
        .btn-primary:hover { background: var(--orange-2); }
        .btn-ghost {
            background: transparent;
            border: 2px solid rgba(255,255,255,0.35);
            color: #fff;
        }
        .btn-ghost:hover { background: rgba(255,255,255,0.10); border-color: rgba(255,255,255,0.55); }

        /* Hero portrait */
        .hero-portrait {
            position: relative;
            display: flex;
            align-items: flex-end;
            justify-content: center;
            height: 100%;
        }
        .hero-portrait::before {
            content: '';
            position: absolute;
            bottom: -90px;
            left: 50%;
            transform: translateX(-50%);
            width: 460px; height: 460px;
            border-radius: 50%;
            background: radial-gradient(circle at center, rgba(228, 92, 38, 0.28), transparent 65%);
            filter: blur(20px);
        }
        .hero-portrait img {
            position: relative;
            max-width: 100%;
            max-height: 520px;
            width: auto;
            display: block;
            filter: drop-shadow(0 20px 30px rgba(0,0,0,0.35));
        }
        @media (max-width: 900px) {
            .hero-portrait { justify-content: flex-start; margin-top: 20px; }
            .hero-portrait img { max-height: 340px; }
        }

        /* Hero stats */
        .hero-stats {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
            margin-top: 40px;
            padding-top: 32px;
            border-top: 1px solid rgba(255,255,255,0.15);
        }
        .hero-stat { display: flex; flex-direction: column; }
        .hero-stat .n {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 26px;
            letter-spacing: -0.02em;
            color: #fff;
        }
        .hero-stat .l {
            font-size: 12.5px;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.72);
            margin-top: 2px;
            font-weight: 600;
        }

        /* Find panel */
        .find-panel {
            background: #fff;
            border: 1px solid var(--gray-200);
            border-left: 6px solid var(--orange);
            border-radius: 8px;
            padding: 32px;
            box-shadow: 0 10px 30px -12px rgba(0,0,0,0.12);
            display: grid;
            grid-template-columns: 1fr 2fr;
            gap: 32px;
            align-items: center;
        }
        @media (max-width: 900px) { .find-panel { grid-template-columns: 1fr; } }
        .find-form {
            display: grid;
            grid-template-columns: 1fr 1.4fr 1fr auto;
            gap: 12px;
            align-items: end;
        }
        @media (max-width: 700px) { .find-form { grid-template-columns: 1fr 1fr; } }
        .find-field { display: flex; flex-direction: column; gap: 5px; }
        .find-field label {
            font-size: 11px;
            letter-spacing: 0.10em;
            text-transform: uppercase;
            color: var(--gray-500);
            font-weight: 700;
        }
        .find-field input, .find-field select {
            padding: 12px 14px;
            border: 1.5px solid var(--gray-300);
            border-radius: 4px;
            font-family: 'Manrope', sans-serif;
            font-size: 15px;
            background: #fff;
        }
        .find-submit {
            height: 46px;
            white-space: nowrap;
        }

        /* Hero search card (unused but kept for backup) */
        .hero-search {
            background: #fff;
            color: var(--ink);
            border-radius: 8px;
            padding: 28px;
            box-shadow: 0 20px 50px -12px rgba(0,0,0,0.35);
            border-top: 5px solid var(--orange);
        }
        .hero-search h3 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 22px;
            color: var(--navy);
            margin: 0 0 4px;
            letter-spacing: -0.015em;
        }
        .hero-search-sub {
            font-size: 14px;
            color: var(--gray-500);
            margin-bottom: 18px;
        }
        .hero-search-field {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-bottom: 14px;
        }
        .hero-search-field label {
            font-size: 12px;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            color: var(--gray-500);
            font-weight: 700;
        }
        .hero-search-field input, .hero-search-field select {
            padding: 11px 14px;
            border: 1.5px solid var(--gray-300);
            border-radius: 4px;
            font-family: 'Manrope', sans-serif;
            font-size: 15px;
            color: var(--ink);
            background: #fff;
        }
        .hero-search-field input:focus, .hero-search-field select:focus {
            border-color: var(--navy);
            outline: none;
        }

        /* Sections */
        section.sect {
            padding: 72px 0;
        }
        .sect-inner {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 24px;
        }
        .sect-title {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 40px;
            letter-spacing: -0.025em;
            color: var(--navy);
            margin: 0 0 12px;
            line-height: 1.1;
        }
        .sect-lead {
            color: var(--ink-2);
            font-size: 17px;
            max-width: 720px;
            margin: 0 0 40px;
            line-height: 1.55;
        }
        .sect-alt { background: var(--gray-100); }
        .sect-navy { background: var(--navy); color: #fff; }
        .sect-navy .sect-title { color: #fff; }
        .sect-navy .sect-lead { color: rgba(255,255,255,0.85); }

        /* Cards grid */
        .cards {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 20px;
        }
        .card {
            background: #fff;
            border: 1px solid var(--gray-200);
            border-radius: 6px;
            padding: 28px;
            transition: all 0.2s ease;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }
        .card:hover {
            transform: translateY(-3px);
            border-color: var(--navy);
            box-shadow: 0 12px 32px -12px rgba(10, 78, 141, 0.20);
        }
        .card-num {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 14px;
            letter-spacing: 0.10em;
            color: var(--orange);
            margin-bottom: 2px;
        }
        .card h3 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 20px;
            color: var(--navy);
            margin: 0;
            letter-spacing: -0.015em;
            line-height: 1.2;
        }
        .card p {
            color: var(--ink-2);
            font-size: 15px;
            margin: 0;
            line-height: 1.55;
        }
        .card .card-link {
            font-size: 14px;
            font-weight: 700;
            color: var(--navy);
            margin-top: auto;
            padding-top: 6px;
        }
        .card:hover .card-link { color: var(--orange); }

        /* Split panels */
        .split {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
            align-items: stretch;
        }
        @media (max-width: 800px) { .split { grid-template-columns: 1fr; } }
        .split-panel {
            background: #fff;
            border: 1px solid var(--gray-200);
            border-radius: 6px;
            padding: 32px;
            display: flex;
            flex-direction: column;
        }
        .split-panel h3 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 24px;
            color: var(--navy);
            margin: 0 0 8px;
            letter-spacing: -0.015em;
        }
        .split-panel .sub {
            color: var(--gray-500);
            font-size: 14px;
            margin: 0 0 18px;
        }
        .split-panel ul {
            margin: 0;
            padding: 0;
            list-style: none;
            flex: 1;
        }
        .split-panel li {
            padding: 14px 0;
            border-bottom: 1px solid var(--gray-200);
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 15px;
        }
        .split-panel li:last-child { border-bottom: none; }
        .split-panel li a {
            color: var(--ink);
            font-weight: 600;
        }
        .split-panel li a:hover { color: var(--orange); }
        .split-panel li .tag {
            font-size: 12px;
            color: var(--gray-500);
            font-weight: 600;
            background: var(--gray-100);
            padding: 3px 8px;
            border-radius: 3px;
        }

        /* Alert callout */
        .alert-card {
            background: linear-gradient(135deg, var(--orange) 0%, var(--orange-2) 100%);
            color: #fff;
            padding: 48px;
            border-radius: 8px;
            display: grid;
            grid-template-columns: 1.6fr 1fr;
            gap: 40px;
            align-items: center;
        }
        @media (max-width: 800px) { .alert-card { grid-template-columns: 1fr; padding: 32px; } }
        .alert-card h2 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 32px;
            letter-spacing: -0.02em;
            margin: 0 0 14px;
            line-height: 1.1;
        }
        .alert-card p {
            font-size: 16px;
            line-height: 1.55;
            margin: 0 0 24px;
            opacity: 0.95;
        }
        .alert-card .btn { background: #fff; color: var(--orange-2); }
        .alert-card .btn:hover { background: var(--navy); color: #fff; }
        .alert-stat {
            background: rgba(0,0,0,0.15);
            padding: 24px;
            border-radius: 6px;
            text-align: center;
            border: 1px solid rgba(255,255,255,0.15);
        }
        .alert-stat .big {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 56px;
            line-height: 1;
            color: #fff;
            letter-spacing: -0.03em;
        }
        .alert-stat .label {
            font-size: 12px;
            letter-spacing: 0.10em;
            text-transform: uppercase;
            margin-top: 8px;
            opacity: 0.90;
            font-weight: 700;
        }

        /* Footer */
        footer.foot {
            background: var(--navy-3);
            color: rgba(255,255,255,0.72);
            padding: 60px 0 30px;
        }
        .foot-inner {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 24px;
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 40px;
            padding-bottom: 40px;
            border-bottom: 1px solid rgba(255,255,255,0.10);
        }
        @media (max-width: 800px) { .foot-inner { grid-template-columns: 1fr 1fr; } }
        .foot-col h4 {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-size: 13px;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: var(--orange);
            font-weight: 700;
            margin: 0 0 16px;
        }
        .foot-col a {
            display: block;
            color: rgba(255,255,255,0.72);
            font-size: 15px;
            padding: 5px 0;
        }
        .foot-col a:hover { color: #fff; }
        .foot-brand-block {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }
        .foot-brand-block img { height: 40px; width: auto; filter: brightness(0) invert(1); }
        .foot-copyright {
            max-width: 1240px;
            margin: 24px auto 0;
            padding: 0 24px;
            font-size: 13px;
            color: rgba(255,255,255,0.45);
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 10px;
        }

        /* Bot widget */
        .nrpp-bot-fab {
            position: fixed; bottom: 24px; right: 24px;
            width: 60px; height: 60px;
            border-radius: 50%;
            background: var(--navy);
            color: #fff;
            border: none;
            cursor: pointer;
            box-shadow: 0 12px 32px -8px rgba(10, 78, 141, 0.55), 0 4px 8px rgba(0,0,0,0.10);
            z-index: 99998;
            display: grid; place-items: center;
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 20px;
            transition: all 0.2s ease;
        }
        .nrpp-bot-fab:hover { transform: translateY(-2px) scale(1.03); background: var(--orange); }
        .nrpp-bot-fab::after {
            content: '';
            position: absolute;
            top: -3px; right: -3px;
            width: 14px; height: 14px;
            background: var(--orange);
            border: 2px solid #fff;
            border-radius: 50%;
        }
        .nrpp-bot-fab:hover::after { background: var(--navy); }
        .nrpp-bot-panel {
            position: fixed; bottom: 100px; right: 24px;
            width: 400px; max-width: calc(100vw - 48px);
            height: 560px; max-height: calc(100vh - 130px);
            background: #fff;
            border-radius: 8px;
            box-shadow: 0 32px 60px -20px rgba(0,0,0,0.30), 0 6px 12px rgba(0,0,0,0.08);
            border: 1px solid var(--gray-200);
            display: none;
            flex-direction: column;
            overflow: hidden;
            z-index: 99999;
        }
        .nrpp-bot-panel.open { display: flex; }
        .nrpp-bot-head {
            background: var(--navy);
            color: #fff;
            padding: 18px 22px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 4px solid var(--orange);
        }
        .nrpp-bot-head .head-title {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 17px;
            letter-spacing: -0.01em;
        }
        .nrpp-bot-head .head-sub {
            font-size: 11px;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.72);
            margin-top: 2px;
            font-weight: 600;
        }
        .nrpp-bot-head .close {
            background: transparent;
            border: none;
            color: rgba(255,255,255,0.72);
            cursor: pointer;
            font-size: 24px;
            line-height: 1;
            padding: 4px 8px;
        }
        .nrpp-bot-head .close:hover { color: #fff; }
        .nrpp-bot-body {
            flex: 1;
            overflow-y: auto;
            padding: 18px 20px;
            background: var(--gray-100);
        }
        .msg {
            padding: 12px 16px;
            border-radius: 10px;
            margin-bottom: 10px;
            font-size: 14.5px;
            line-height: 1.55;
            max-width: 88%;
            word-wrap: break-word;
        }
        .msg.you {
            background: var(--navy);
            color: #fff;
            margin-left: auto;
            border-bottom-right-radius: 3px;
        }
        .msg.bot {
            background: #fff;
            border: 1px solid var(--gray-200);
            color: var(--ink);
            border-bottom-left-radius: 3px;
        }
        .msg.bot .cat {
            display: block;
            margin-top: 8px;
            font-size: 11px;
            letter-spacing: 0.06em;
            color: var(--gray-500);
            text-transform: uppercase;
            font-weight: 600;
        }
        .suggestions {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin: 4px 0 12px;
        }
        .suggestions button {
            background: #fff;
            border: 1px solid var(--gray-300);
            padding: 7px 14px;
            border-radius: 20px;
            font-size: 13px;
            color: var(--navy);
            cursor: pointer;
            font-family: inherit;
            font-weight: 600;
        }
        .suggestions button:hover { border-color: var(--orange); background: var(--orange-tint); color: var(--orange-2); }

        /* Inline capture form (when bot needs email to log a question) */
        .capture {
            background: #fff;
            border: 1px solid var(--gray-200);
            border-radius: 10px;
            padding: 14px 14px 12px;
            margin: 6px 0 10px;
        }
        .capture .capture-title {
            font-family: 'Bricolage Grotesque', 'Manrope', sans-serif;
            font-weight: 700;
            font-size: 14px;
            color: var(--navy);
            margin: 0 0 4px;
        }
        .capture .capture-sub {
            font-size: 12.5px;
            color: var(--gray-500);
            margin-bottom: 10px;
        }
        .capture input {
            width: 100%;
            padding: 9px 12px;
            border: 1.5px solid var(--gray-300);
            border-radius: 5px;
            font-size: 13.5px;
            font-family: inherit;
            margin-bottom: 8px;
            outline: none;
        }
        .capture input:focus { border-color: var(--navy); }
        .capture button {
            width: 100%;
            padding: 10px 12px;
            background: var(--orange);
            color: #fff;
            border: none;
            border-radius: 5px;
            font-size: 13.5px;
            font-weight: 700;
            cursor: pointer;
            font-family: inherit;
        }
        .capture button:hover { background: var(--orange-2); }
        .capture .capture-err {
            font-size: 11.5px;
            color: var(--orange-2);
            margin-top: 4px;
            display: none;
        }
        .capture .capture-err.show { display: block; }
        .capture-thanks {
            background: #eaf5ef;
            border: 1px solid #c8e6d5;
            color: #205e3a;
            border-radius: 10px;
            padding: 12px 14px;
            font-size: 14px;
            margin: 6px 0 10px;
            line-height: 1.5;
        }
        .capture-thanks strong { color: #124b26; }
        .nrpp-bot-foot {
            padding: 14px 18px;
            border-top: 1px solid var(--gray-200);
            background: #fff;
        }
        .nrpp-bot-foot form { display: flex; gap: 8px; }
        .nrpp-bot-foot input {
            flex: 1;
            padding: 11px 16px;
            border: 1.5px solid var(--gray-300);
            border-radius: 24px;
            font-size: 14px;
            outline: none;
            font-family: inherit;
        }
        .nrpp-bot-foot input:focus { border-color: var(--navy); }
        .nrpp-bot-foot button[type="submit"] {
            background: var(--orange);
            color: #fff;
            border: none;
            width: 42px;
            border-radius: 50%;
            cursor: pointer;
            font-size: 16px;
            font-weight: 700;
        }
        .nrpp-bot-foot button[type="submit"]:hover { background: var(--orange-2); }
        .nrpp-bot-foot .disclaimer {
            font-size: 11px;
            color: var(--gray-500);
            text-align: center;
            margin-top: 10px;
        }

/* ---- WordPress content styling ------------------------------------------ */
.wp-content { max-width: 860px; margin: 0 auto; padding: 48px 24px 72px; }
.wp-content h1 { font-size: 34px; line-height: 1.2; margin: 0 0 18px; }
.wp-content h2 { font-size: 24px; margin: 34px 0 12px; }
.wp-content h3 { font-size: 19px; margin: 26px 0 10px; }
.wp-content p, .wp-content li { font-size: 16.5px; line-height: 1.7; }
.wp-content ul, .wp-content ol { padding-left: 22px; margin: 14px 0; }
.wp-content li { margin: 7px 0; }
.wp-content table { border-collapse: collapse; width: 100%; margin: 20px 0; }
.wp-content th, .wp-content td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e2e8f0; }
.wp-content th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #64748b; }
.wp-content img { max-width: 100%; height: auto; border-radius: 8px; }
.wp-content blockquote { margin: 20px 0; padding: 12px 20px; border-left: 3px solid var(--orange, #f2703a); background: #f8fafc; }
.page-head { background: #0a4e8d; color: #fff; padding: 46px 24px 40px; }
.page-head .inner { max-width: 860px; margin: 0 auto; }
.page-head h1 { margin: 0; font-size: 32px; }
.page-head p { margin: 8px 0 0; color: #a9c7e6; font-size: 15px; }

/* announcement ticker, injected by the assistant */
.wp-ticker { background: var(--orange, #f2703a); color: #fff; overflow: hidden; white-space: nowrap; }
.wp-ticker span { display: inline-block; padding: 9px 0; font-size: 14px; font-weight: 600;
  animation: wp-ticker-scroll 24s linear infinite; }
@keyframes wp-ticker-scroll { from { transform: translateX(100%); } to { transform: translateX(-100%); } }
