/*
Theme Name: KakePrime Prime
Theme URI: https://kakeprime.com/
Author: KakePrime
Author URI: https://kakeprime.com/
Description: Professional, mobile-first theme aligned to KakePrime Lead Magnet Toolkit. Blog excerpts + post CTA + improved UX.
Version: 1.3.36
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kakeprime-prime
Tags: custom-background, custom-logo, custom-menu, featured-images, translation-ready
*/

/* =========
   Design System
   ========= */
:root{
  --kp-bg: #0f172a;               /* executive navy */
  --kp-surface: #111c36;
  --kp-card: #16213e;

  --kp-text: #f8fafc;
  --kp-muted: rgba(226,232,240,.74);
  --kp-border: rgba(203,213,225,.18);

  --kp-accent: #d4c9a8;           /* champagne */
  --kp-accentText: #0f172a;
  --kp-highlight: #60a5fa;        /* links */

  /* Primary button gradient stops */
  --kp-btn-grad-top: #22365A;
  --kp-btn-grad-bot: #16233B;

  --kp-radius: 18px;
  --kp-shadow: 0 22px 70px rgba(0,0,0,.42);
  --kp-max: 1100px;
  --kp-gap: 18px;

  --kp-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

/* =========
   Apply page - institutional form styling (white form, black field text)
   Keeps global theme look unchanged.
   ========= */
body.page-template-page-apply-php,
body.page-template-page-apply-php main,
body.page-template-apply,
body.page-template-apply main {
  background: var(--kp-bg);
}

/* White section wrapper for the form */
body.page-template-page-apply-php .kp-apply-section,
body.page-template-apply .kp-apply-section{
  background:#fff;
  padding:22px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.10);
}

/* Make the form card white (override the default dark card) */
body.page-template-page-apply-php .kp-apply-form.kp-card,
body.page-template-apply .kp-apply-form.kp-card{
  background:#fff !important;
  color:#0b1220;
  border:1px solid rgba(15,23,42,.10);
}

body.page-template-page-apply-php .kp-apply-form label,
body.page-template-apply .kp-apply-form label{
  color:#0b1220;
}

body.page-template-page-apply-php .kp-apply-form input,
body.page-template-page-apply-php .kp-apply-form textarea,
body.page-template-page-apply-php .kp-apply-form select,
body.page-template-apply .kp-apply-form input,
body.page-template-apply .kp-apply-form textarea,
body.page-template-apply .kp-apply-form select{
  background:#fff;
  color:#000;
  border:1px solid rgba(15,23,42,.18);
}

body.page-template-page-apply-php .kp-apply-form input:focus,
body.page-template-page-apply-php .kp-apply-form textarea:focus,
body.page-template-page-apply-php .kp-apply-form select:focus,
body.page-template-apply .kp-apply-form input:focus,
body.page-template-apply .kp-apply-form textarea:focus,
body.page-template-apply .kp-apply-form select:focus{
  outline:none;
  border-color:rgba(37,99,235,.85);
  box-shadow:0 0 0 3px rgba(37,99,235,.18);
}

/* Submit button - keep theme style but readable on white */
body.page-template-page-apply-php .kp-apply-form input[type="submit"],
body.page-template-apply .kp-apply-form input[type="submit"]{
  background: #0f172a;
  color:#fff;
}

/* Courses Request portal should also use white form fields for readability */
.kp-portal--courses-request .kp-portal__card{
  background:#fff;
  color:#0b1220;
  border:1px solid rgba(15,23,42,.10);
}
.kp-portal--courses-request .kp-field label{color:#0b1220;}
.kp-portal--courses-request .kp-apply-form input[type="text"],
.kp-portal--courses-request .kp-apply-form input[type="email"],
.kp-portal--courses-request .kp-apply-form select,
.kp-portal--courses-request .kp-apply-form textarea{
  background:#fff;
  color:#000;
  border:1px solid rgba(15,23,42,.18);
}
.kp-portal--courses-request .kp-apply-form input:focus,
.kp-portal--courses-request .kp-apply-form select:focus,
.kp-portal--courses-request .kp-apply-form textarea:focus{
  outline:none;
  border-color:rgba(37,99,235,.85);
  box-shadow:0 0 0 3px rgba(37,99,235,.18);
}

/* =========
   Courses Request page - HARD visibility fix
   Some text/labels were inheriting light text on a white background.
   Force a true white portal + dark text on the /courses-request/ page.
   ========= */
body.page-slug-courses-request .kp-card{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}

/* Force readable text for all typical elements inside the page card */
body.page-slug-courses-request .kp-card,
body.page-slug-courses-request .kp-card h1,
body.page-slug-courses-request .kp-card h2,
body.page-slug-courses-request .kp-card h3,
body.page-slug-courses-request .kp-card h4,
body.page-slug-courses-request .kp-card p,
body.page-slug-courses-request .kp-card li,
body.page-slug-courses-request .kp-card small,
body.page-slug-courses-request .kp-card label,
body.page-slug-courses-request .kp-card .kp-muted,
body.page-slug-courses-request .kp-card .kp-help,
body.page-slug-courses-request .kp-card .kp-step,
body.page-slug-courses-request .kp-card .kp-step-title{
  color:#0b1220 !important;
}

/* Inputs remain white + dark text */
body.page-slug-courses-request .kp-card input,
body.page-slug-courses-request .kp-card textarea,
body.page-slug-courses-request .kp-card select{
  background:#fff !important;
  color:#0b1220 !important;
  border:1px solid rgba(15,23,42,.18) !important;
}

/* Don't accidentally turn buttons dark-text on dark bg */
body.page-slug-courses-request .kp-card .kp-btn,
body.page-slug-courses-request .kp-card .kp-btn *{
  color: var(--kp-text) !important;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  margin:0;
  font-family:var(--kp-font);
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(212,201,168,.10), transparent 60%),
    radial-gradient(1200px 700px at 85% 10%, rgba(96,165,250,.08), transparent 60%),
    var(--kp-bg);
  color:var(--kp-text);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:inherit;text-decoration:none;}
a:hover{opacity:.95;}

a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 3px solid rgba(96,165,250,.55);
  outline-offset: 3px;
  border-radius: 10px;
}

img{max-width:100%;height:auto;}

.kp-link{color:var(--kp-highlight);text-decoration:underline;text-underline-offset:3px;}
.kp-container{width:min(100% - 40px, var(--kp-max));margin-inline:auto;}
.kp-grid{display:grid;gap:var(--kp-gap);}

.kp-card{
  border:1px solid var(--kp-border);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
  border-radius:var(--kp-radius);
  box-shadow:var(--kp-shadow);
}

/* Premium hover lift (only on cards meant to feel clickable) */
.kp-offer,
.kp-miniCard,
.kp-postcard,
.kp-proof,
.kp-callout,
.kp-tier-card{
  transition: transform .16s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.kp-offer:hover,
.kp-miniCard:hover,
.kp-postcard:hover,
.kp-proof:hover,
.kp-callout:hover,
.kp-tier-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(0,0,0,.35);
}

.kp-content{padding:20px;}
.entry-content{max-width:78ch;}
.entry-content a{color:var(--kp-highlight);text-decoration:underline;text-underline-offset:3px;}
.entry-content h2{margin-top:28px;}
.entry-content h3{margin-top:22px;}
.entry-content p{margin:0 0 14px 0;}
.entry-content ul, .entry-content ol{color:var(--kp-muted);}

/* Skip link */
.kp-skip{
  position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.kp-skip:focus{left:12px;top:12px;width:auto;height:auto;padding:10px 12px;border-radius:12px;background:var(--kp-accent);color:var(--kp-accentText);z-index:9999;}

/* ======================
   Buttons
   ====================== */
.kp-btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 18px;border-radius:999px;border:1px solid var(--kp-border);
  background:rgba(255,255,255,.06);color:var(--kp-text);font-weight:800;line-height:1;
  transition: transform .12s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease, filter .18s ease;
}

/* micro glow ring */
.kp-btn::after{
  content:"";
  position:absolute;
  inset:-3px;
  border-radius:999px;
  opacity:0;
  pointer-events:none;
  transition: opacity .18s ease;
  box-shadow: 0 0 0 1px rgba(212,201,168,.18), 0 0 22px rgba(212,201,168,.14);
}

.kp-btn:hover{background:rgba(255,255,255,.10);transform: translateY(-1px);} 
.kp-btn:active{transform:translateY(1px);} 

.kp-btn--primary{
  color:#ffffff;
  border-color: rgba(255,255,255,.08);
  background: linear-gradient(180deg, var(--kp-btn-grad-top), var(--kp-btn-grad-bot));
  box-shadow: 0 10px 26px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.10);
}
.kp-btn--primary:hover{
  border-color: rgba(212,201,168,.85);
  box-shadow: 0 14px 34px rgba(0,0,0,.36), 0 0 0 2px rgba(212,201,168,.22), inset 0 1px 0 rgba(255,255,255,.12);
}
.kp-btn--primary:hover::after{opacity:1;}
.kp-btn:not(.kp-btn--primary):hover::after{opacity:.55;}

/* Hero oversized CTA */
.kp-hero__cta .kp-btn{padding:14px 20px;font-size:16px;letter-spacing:-0.01em;}

.kp-chip{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;
  border:1px solid var(--kp-border);background:rgba(255,255,255,.04);color:var(--kp-muted);
  font-weight:750;font-size:13px;
}

/* ======================
   Header
   ====================== */
.kp-header{
  position:sticky;top:0;z-index:9999;
  background:rgba(15,23,42,.72);
  border-bottom:1px solid var(--kp-border);
}

.kp-header.is-stuck{
  box-shadow: 0 10px 30px rgba(0,0,0,.28);
}
@supports ((-webkit-backdrop-filter: blur(12px)) or (backdrop-filter: blur(12px))){
  .kp-header{ -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
}

.kp-header__inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:14px;}

.kp-header.is-stuck .kp-header__inner{padding:10px 0;}

.kp-brand{display:flex;align-items:center;gap:10px;font-weight:950;letter-spacing:-0.02em;min-width:0;}
.kp-brand__mark{
  width:34px;height:34px;border-radius:12px;
  background:rgba(255,255,255,.10);border:1px solid var(--kp-border);
  display:grid;place-items:center;font-weight:950;flex:0 0 auto;
}
.kp-brand__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;}

.kp-nav ul{list-style:none;display:flex;gap:16px;padding:0;margin:0;align-items:center;flex-wrap:wrap;}
.kp-nav a{color:var(--kp-muted);font-weight:800;}
.kp-nav a:hover{color:var(--kp-text);}

.kp-header__cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}

/* Make the header CTA feel more "sticky" and premium when scrolled */
.kp-header.is-stuck .kp-header__cta .kp-btn{
  transform: translateY(-1px);
}

/* Sticky conversion CTA (mobile) */
.kp-sticky-cta{
  position:fixed;
  left:14px;
  right:14px;
  bottom:14px;
  z-index:9998;
  display:none;
}
.kp-sticky-cta.is-visible{display:block;}
.kp-sticky-cta__inner{
  border:1px solid var(--kp-border);
  background: rgba(15,23,42,.82);
  border-radius: 18px;
  padding:10px;
  box-shadow: 0 18px 44px rgba(0,0,0,.45);
}

/* ======================
   Hero
   ====================== */
.kp-hero{padding:56px 0 26px;}
.kp-hero__wrap{padding:32px;}
.kp-hero h1{margin:10px 0 12px;font-size:clamp(30px,3.8vw,54px);line-height:1.08;letter-spacing:-0.035em;}
.kp-hero p{margin:0 0 16px;color:var(--kp-muted);font-size:18px;max-width:68ch;}
.kp-hero__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}

/* Sections */
.kp-section{padding:26px 0;}
.kp-section h2{margin:0 0 10px;font-size:22px;letter-spacing:-0.02em;}
.kp-section p{color:var(--kp-muted);margin:0;}

.kp-2col{grid-template-columns:repeat(2,minmax(0,1fr));}
.kp-3col{grid-template-columns:repeat(3,minmax(0,1fr));}
.kp-feature{padding:18px;}
.kp-feature h3{margin:0 0 6px;font-size:16px;letter-spacing:-0.01em;}
.kp-feature p{margin:0;color:var(--kp-muted);font-size:14px;}

.kp-split{display:grid;gap:18px;grid-template-columns: 1.2fr .8fr;align-items:start;}

/* Blog */
.kp-postlist{display:grid;gap:14px;}
.kp-postcard{padding:18px;}
.kp-postcard h2{margin:0 0 6px;font-size:18px;letter-spacing:-0.02em;}
.kp-postmeta{color:var(--kp-muted);font-size:13px;margin:0 0 10px 0;}
.kp-excerpt{color:var(--kp-muted);margin:0 0 12px 0;}
.kp-cta-card{padding:18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;}
.kp-cta-card p{margin:0;color:var(--kp-muted);max-width:70ch;}

/* Footer */
.kp-footer{border-top:1px solid var(--kp-border);padding:26px 0;margin-top:40px;color:var(--kp-muted);font-size:14px;}
.kp-footer a{color:var(--kp-muted);font-weight:700;}
.kp-footer a:hover{color:var(--kp-text);}

/* ======================
   Forms
   ====================== */
input[type="text"],
input[type="email"],
input[type="url"],
textarea,
select{
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--kp-border);
  background:rgba(255,255,255,.06);
  color:var(--kp-text);
  outline:none;
}
textarea{resize:vertical;}
input:focus, textarea:focus, select:focus{border-color: var(--kp-highlight);box-shadow:none;}
label{color:rgba(248,250,252,.9);font-weight:750;}

button, input[type="submit"]{
  position:relative;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, var(--kp-btn-grad-top), var(--kp-btn-grad-bot));
  color:#ffffff;
  cursor:pointer;
  font-weight:850;
  transition: transform .12s ease, border-color .18s ease, box-shadow .18s ease;
}
button:hover, input[type="submit"]:hover{
  transform: translateY(-1px);
  border-color: rgba(212,201,168,.85);
  box-shadow: 0 12px 28px rgba(0,0,0,.32), 0 0 0 2px rgba(212,201,168,.20);
}
button:active, input[type="submit"]:active{transform: translateY(1px);}

/* WP blocks */
.wp-block-separator{border-color:var(--kp-border);}
.wp-block-button__link{border-radius:999px;border:1px solid var(--kp-border);background:rgba(255,255,255,.06);color:var(--kp-text);font-weight:800;padding:12px 16px;}
.wp-block-button.is-style-fill .wp-block-button__link{background:var(--kp-accent);color:var(--kp-accentText);border-color:transparent;}

/* ===============================
   MOBILE HAMBURGER + OFF-CANVAS
   (No arrow, mobile-only)
   =============================== */

/* Remove default summary arrow */
.kp-mobile-drawer summary{list-style:none;appearance:none;-webkit-appearance:none;}
.kp-mobile-drawer summary::-webkit-details-marker{display:none;}
.kp-mobile-drawer summary::marker{content:"";display:none;}

/* Hide drawer on desktop */
.kp-mobile-drawer{display:none;}

/* Overlay and panel are hidden unless open */
.kp-mobile-drawer__overlay,
.kp-mobile-drawer__panel{display:none;}

@media (max-width: 980px){
  /* Desktop nav + header CTAs hidden on mobile */
  .kp-nav{display:none;}
  .kp-header__cta{display:none;}

  /* Show hamburger */
  .kp-mobile-drawer{display:block;margin-left:auto;flex:0 0 auto;}

  .kp-mobile-drawer__btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:46px;height:46px;border-radius:14px;
    border:1px solid var(--kp-border);
    background: rgba(255,255,255,.06);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 34px rgba(0,0,0,.30);
    cursor:pointer;
  }

  /* Hamburger icon */
  .kp-mobile-drawer__icon{width:18px;height:12px;display:block;position:relative;}
  .kp-mobile-drawer__icon::before,
  .kp-mobile-drawer__icon::after{
    content:"";
    position:absolute;left:0;right:0;height:2px;border-radius:2px;
    background: rgba(248,250,252,.92);
  }
  .kp-mobile-drawer__icon::before{top:0;box-shadow: 0 5px 0 rgba(248,250,252,.92);} 
  .kp-mobile-drawer__icon::after{top:10px;}

  /* When open: overlay + panel visible */
  .kp-mobile-drawer[open] .kp-mobile-drawer__overlay{display:block;}
  .kp-mobile-drawer[open] .kp-mobile-drawer__panel{display:flex;}

  .kp-mobile-drawer__overlay{
    position:fixed;
    inset:0;
    background: rgba(0,0,0,.55);
    z-index:9998;
  }

  .kp-mobile-drawer__panel{
    position:fixed;
    top:0;
    right:0;
    height:100vh;
    width:min(86vw, 380px);
    border-left:1px solid var(--kp-border);
    background: rgba(17,28,54,.96);
    backdrop-filter: blur(14px);
    box-shadow: -18px 0 70px rgba(0,0,0,.45);
    padding:16px;
    z-index:9999;

    flex-direction:column;
    gap:14px;
  }

  .kp-mobile-drawer__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:12px;
    border-bottom: 1px solid rgba(203,213,225,.12);
  }

  .kp-mobile-drawer__title{font-weight:950;letter-spacing:-0.02em;color: var(--kp-text);}

  .kp-mobile-drawer__close{
    width:40px;height:40px;border-radius:12px;
    border:1px solid rgba(203,213,225,.14);
    background: rgba(255,255,255,.06);
    color: var(--kp-text);
    cursor:pointer;
    font-weight:900;
  }

  .kp-mobile-drawer__nav{overflow:auto;}
  .kp-mobile-drawer__nav ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
  .kp-mobile-drawer__nav a{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px;border-radius:14px;
    border:1px solid rgba(203,213,225,.10);
    background: rgba(255,255,255,.04);
    color: var(--kp-text);
    font-weight:850;
  }
  .kp-mobile-drawer__nav a:hover{background: rgba(255,255,255,.07);} 

  .kp-mobile-drawer__cta{
    margin-top:auto;
    display:grid;
    gap:10px;
    padding-top:12px;
    border-top: 1px solid rgba(203,213,225,.12);
  }
  .kp-mobile-drawer__cta .kp-btn{width:100%;padding:14px 16px;font-size:15px;}
}

/* =========
   Responsive
   ========= */
@media (max-width: 980px){
  .kp-container{width:min(100% - 28px, var(--kp-max));}
  .kp-2col{grid-template-columns:1fr;}
  .kp-3col{grid-template-columns:1fr;}
  .kp-split{grid-template-columns:1fr;}
}

@media (max-width: 560px){
  .kp-hero{padding:40px 0 18px;}
  .kp-hero__wrap{padding:18px;}
  .kp-hero p{font-size:16px;}
  .kp-content{padding:16px;}
  .kp-postcard{padding:16px;}
  .kp-hero__cta{display:grid;grid-template-columns:1fr;gap:10px;justify-items:stretch;}
  .kp-btn{width:100%;}
  table{display:block;overflow-x:auto;width:100%;}
}

/* =========================
   Intake Portal (Apply + Risk Review)
   ========================= */
.kp-portal{margin-top:16px;}
.kp-portal__grid{display:grid;grid-template-columns: 1.65fr .85fr;gap:16px;align-items:start;}
.kp-portal__card{background: var(--kp-card);border:1px solid rgba(203,213,225,.10);border-radius:18px;padding:18px;}
.kp-portal__cardhead h2{margin:0 0 8px;font-size:22px;letter-spacing:-0.02em;}
.kp-portal__cardhead p{margin:0;color:var(--kp-muted);max-width:75ch;}

/* Steps */
.kp-step{margin-top:16px;padding-top:16px;border-top:1px solid rgba(203,213,225,.10);}
.kp-step__title{font-weight:900;letter-spacing:-0.01em;margin-bottom:12px;}

/* Form fields (white background, black text) */
.kp-apply-form .kp-field label{display:block;font-weight:800;margin:0 0 6px;color:var(--kp-text);}
.kp-apply-form input[type="text"],
.kp-apply-form input[type="email"],
.kp-apply-form select,
.kp-apply-form textarea{
  width:100%;
  background:#ffffff;
  color:#000000;
  border:1px solid rgba(15,23,42,.20);
  border-radius:12px;
  padding:12px 14px;
  font-size:15px;
}
.kp-apply-form textarea{resize:vertical;min-height:140px;}
.kp-apply-form input::placeholder,
.kp-apply-form textarea::placeholder{color: rgba(0,0,0,.55);}
.kp-apply-form input:focus,
.kp-apply-form select:focus,
.kp-apply-form textarea:focus{
  outline:none;
  border-color: rgba(37,99,235,.55);
  box-shadow: 0 0 0 3px rgba(37,99,235,.18);
}

.kp-form-grid{display:grid;gap:14px;margin-top:14px;}
.kp-form-grid--2{grid-template-columns:1fr 1fr;}
.kp-form-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.kp-form-note{margin-top:10px;color:var(--kp-muted);font-size:13px;}

/* Side cards */
.kp-portal__side .kp-portal__card{position:sticky;top:18px;}
.kp-portal__card--side h3{margin:0 0 10px;font-size:16px;}
.kp-muted{color:var(--kp-muted);}
.kp-list{margin:0;padding-left:18px;color:var(--kp-text);}
.kp-list li{margin:0 0 8px;color:var(--kp-text);}
.kp-side-actions{margin-top:10px;}

/* Alerts */
.kp-alert{padding:14px;margin:14px 0;}
.kp-alert__msg{margin-top:6px;color:var(--kp-muted);}
.kp-alert--success{border:1px solid rgba(34,197,94,.35);}
.kp-alert--error{border:1px solid rgba(220,38,38,.35);}

@media (max-width: 980px){
  .kp-portal__grid{grid-template-columns:1fr;}
  .kp-portal__side .kp-portal__card{position:static;}
}
@media (max-width: 780px){
  .kp-form-grid--2{grid-template-columns:1fr;}
}

/* Courses Request: portal + tier cards */
.kp-portal{margin-top:16px;}
.kp-portal__grid{display:grid;grid-template-columns:1.65fr .85fr;gap:16px;align-items:start;}
.kp-portal__card{background: var(--kp-card);border:1px solid rgba(203,213,225,.10);border-radius:18px;padding:18px;}
.kp-portal__cardhead h2{margin:0 0 8px;font-size:22px;letter-spacing:-0.02em;}
.kp-portal__cardhead p{margin:0;color:var(--kp-muted);max-width:75ch;}
.kp-portal__side .kp-portal__card{position:sticky;top:18px;}
.kp-portal__card--side h3{margin:0 0 10px;font-size:16px;}
.kp-side-actions{display:flex;gap:10px;flex-wrap:wrap;}

/* Tier selection cards are intentionally white for clarity */
.kp-tier-card{display:block;border:1px solid rgba(0,0,0,.12);background:#ffffff;border-radius:10px;padding:14px;cursor:pointer;min-height:168px;}
.kp-tier-card input{margin-right:10px;}
.kp-tier-card__title{font-weight:700;color:#0b0b0d;margin-bottom:4px;}
.kp-tier-card__meta{color:#0b0b0d;opacity:.75;font-size:13px;margin-bottom:10px;}
.kp-tier-card__list{margin:0;padding-left:18px;color:#0b0b0d;opacity:.9;font-size:13px;}
.kp-tier-card__list li{margin:4px 0;}
.kp-tier-card:hover{border-color:rgba(37,99,235,.45);box-shadow:0 8px 22px rgba(0,0,0,.06);}

@media (max-width: 860px){
  .kp-portal__grid{grid-template-columns:1fr;}
  .kp-portal__side .kp-portal__card{position:static;}
}



/* =========
   Premium Homepage Components
   ========= */

.kp-lede{ font-size: 16px; line-height: 1.7; max-width: 920px; }

.kp-hero__cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:14px;
}
.kp-hero__ctaItem{ flex:1 1 240px; min-width:220px; }

.kp-results{
  margin-top:16px;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:12px;
}
.kp-result{
  border:1px solid var(--kp-border);
  background: rgba(255,255,255,.035);
  border-radius: 16px;
  padding: 12px 12px;
}
.kp-result__title{ font-weight: 800; letter-spacing: .2px; margin-bottom: 4px; }
.kp-result__text{ color: var(--kp-muted); font-size: 13.5px; line-height: 1.5; }

.kp-trust{
  margin-top: 12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  color: var(--kp-muted);
  font-size: 13px;
}
.kp-trust__dot{ opacity: .6; }

.kp-proof{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:16px;
  align-items:start;
  padding:18px;
}
.kp-proof__list{
  margin: 12px 0 0 18px;
  color: var(--kp-muted);
}
.kp-proof__cards{
  display:grid;
  gap:12px;
}
.kp-miniCard{
  border:1px solid var(--kp-border);
  background: rgba(255,255,255,.03);
  border-radius: 18px;
  padding: 14px;
}
.kp-miniCard__kicker{ color: var(--kp-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.kp-miniCard__title{ font-weight: 800; margin: 4px 0 6px 0; }
.kp-miniCard__text{ color: var(--kp-muted); margin:0; font-size: 14px; line-height: 1.6; }

.kp-offer{
  padding:18px;
}
.kp-offer__top p{ color: var(--kp-muted); }
.kp-offer__badge{
  display:inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(212,201,168,.14);
  border: 1px solid rgba(212,201,168,.34);
  color: var(--kp-text);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 10px;
}
.kp-offer--primary{
  border: 1px solid rgba(212,201,168,.42);
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
}
.kp-offer__list{
  margin: 12px 0 0 18px;
  color: var(--kp-muted);
}
.kp-offer__cta{ margin-top: 14px; }

.kp-callout{
  padding:16px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}
.kp-callout__copy{
  flex:1 1 320px;
  min-width:240px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.kp-callout__copy span{ color: var(--kp-muted); }
.kp-callout__cta{ flex:0 0 auto; min-width:220px; }

.kp-toolkitGrid{
  grid-template-columns: 1.2fr .8fr;
  align-items:start;
  gap:18px;
}

.kp-mutedSmall{
  color: var(--kp-muted);
  font-size: 13px;
  margin-top: 10px;
}

.kp-faq{
  border-top:1px solid var(--kp-border);
  padding: 12px 0;
}
.kp-faq:last-child{ border-bottom:1px solid var(--kp-border); }
.kp-faq summary{
  cursor:pointer;
  font-weight: 800;
  list-style:none;
}
.kp-faq summary::-webkit-details-marker{ display:none; }
.kp-faq__body{
  color: var(--kp-muted);
  margin-top: 8px;
  line-height: 1.7;
}

/* Responsive */
@media (max-width: 980px){
  .kp-results{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .kp-proof{ grid-template-columns: 1fr; }
}
@media (max-width: 840px){
  .kp-toolkitGrid{ grid-template-columns: 1fr; }
}
@media (max-width: 520px){
  .kp-results{ grid-template-columns: 1fr; }
}

/* =========================================================
   Courses Request Intake Portal Visibility Fix
   Scope: /courses-request/ (body class: page-slug-courses-request)
   Ensures all text/labels are readable (black on white) even if
   other global styles apply dark surfaces.
   ========================================================= */

body.page-slug-courses-request .site-main,
body.page-slug-courses-request .site-content,
body.page-slug-courses-request .content-area,
body.page-slug-courses-request .entry-content,
body.page-slug-courses-request #main,
body.page-slug-courses-request #main * {
  color: #111;
}

/* Page template uses a .kp-card wrapper that sits OUTSIDE .entry-content */
body.page-slug-courses-request #main .kp-card,
body.page-slug-courses-request #main .kp-card *{
  color:#111 !important;
}

body.page-slug-courses-request #main .kp-card{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.10);
}

body.page-slug-courses-request #main .kp-card h1,
body.page-slug-courses-request #main .kp-card h2,
body.page-slug-courses-request #main .kp-card h3{
  color:#0b1220 !important;
}

/* Force readable text inside the content area (beats theme card/link styles) */
body.page-slug-courses-request .entry-content,
body.page-slug-courses-request .entry-content *{
  color:#111 !important;
}

/* Make the page content feel like an intake portal */
body.page-slug-courses-request .entry-content {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
}

/* If the shortcode output includes a wrapper, keep it crisp */
body.page-slug-courses-request .kp-course-request {
  background: #fff;
}

body.page-slug-courses-request .kp-course-request,
body.page-slug-courses-request .kp-course-request * {
  color: #111 !important;
}

/* Forms + inputs */
body.page-slug-courses-request form,
body.page-slug-courses-request input,
body.page-slug-courses-request select,
body.page-slug-courses-request textarea {
  color: #111 !important;
}

body.page-slug-courses-request input,
body.page-slug-courses-request select,
body.page-slug-courses-request textarea {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,0.18) !important;
}

body.page-slug-courses-request ::placeholder {
  color: rgba(17,17,17,0.55) !important;
}

/* Buttons stay on-brand but readable */
body.page-slug-courses-request .kp-btn,
body.page-slug-courses-request button,
body.page-slug-courses-request input[type="submit"],
body.page-slug-courses-request a.button {
  text-decoration: none;
}

/* Mobile spacing so nothing feels clipped */
@media (max-width: 720px) {
  body.page-slug-courses-request .entry-content {
    padding: 16px;
  }
}



/* ============================
   Courses Request (slug: courses-request)
   Hard readability override (white-on-white fix)
   Scoped to this page only.
============================ */
body.page-slug-courses-request .kp-card,
body.page-slug-courses-request .entry-content,
body.page-slug-courses-request main{
  color:#0b1220 !important;
}

body.page-slug-courses-request .kp-card{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.12) !important;
}

body.page-slug-courses-request .kp-card *{
  color:#0b1220 !important;
}

body.page-slug-courses-request .kp-card a.kp-btn,
body.page-slug-courses-request .kp-card a.kp-btn *{
  /* keep button colors controlled by existing button styles */
  color: inherit !important;
}

body.page-slug-courses-request .kp-card label,
body.page-slug-courses-request .kp-card .wpforms-field-label,
body.page-slug-courses-request .kp-card .field-title{
  color:#0b1220 !important;
}

body.page-slug-courses-request .kp-card input,
body.page-slug-courses-request .kp-card select,
body.page-slug-courses-request .kp-card textarea{
  background:#fff !important;
  color:#0b1220 !important;
  border:1px solid rgba(15,23,42,.18) !important;
}


/* ==============================
   Courses Request (Custom Intake)
   ============================== */
.page-slug-courses-request .kp-course-request-card{
  background:#fff !important;
  color:#111 !important;
}
.page-slug-courses-request .kp-course-request-card *{
  color:#111 !important;
}
.page-slug-courses-request .kp-course-request-card .kp-btn,
.page-slug-courses-request .kp-course-request-card .kp-btn *{
  color: inherit !important;
}
.kp-course-request{max-width:920px;margin:0 auto;}
.kp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
@media (max-width: 720px){.kp-form-grid{grid-template-columns:1fr;}}
.kp-field label{display:block;font-weight:600;margin:0 0 6px;}
.kp-field input,.kp-field select,.kp-field textarea{
  width:100%;
  background:#fff !important;
  color:#111 !important;
  border:1px solid rgba(0,0,0,.18) !important;
  border-radius:12px;
  padding:12px 12px;
}
.kp-divider{margin:22px 0;border:0;border-top:1px solid rgba(0,0,0,.12);}
.kp-form-section{margin:18px 0 0;}
.kp-form-section h2{font-size:18px;margin:0 0 6px;}
.kp-muted{opacity:.8;}
.kp-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:10px;}
@media (max-width: 900px){.kp-check-grid{grid-template-columns:1fr;}}
.kp-check{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(0,0,0,.12);border-radius:14px;padding:12px;}
.kp-check input{margin-top:4px;}
.kp-form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px;}
.kp-req{color:#b00020 !important;}
.kp-footnote{font-size:13px;opacity:.75;margin-top:10px;}
.kp-alert{border-radius:14px;padding:12px 14px;margin-bottom:14px;border:1px solid rgba(0,0,0,.12);}
.kp-alert-success{background:rgba(0,128,0,.08);}
.kp-alert-error{background:rgba(176,0,32,.08);}
.kp-hp{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;overflow:hidden;}



/* === Mobile Optimization Patch v1.3.33 === */
@media (max-width: 768px){

  /* Stack buttons cleanly */
  .kp-actions, .wp-block-buttons, .kp-cta-row, .kp-btn-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  .kp-actions a,
  .wp-block-button a,
  .kp-btn {
    width: 100% !important;
    text-align: center !important;
    min-height: 44px !important;
    padding: 12px 16px !important;
  }

  /* Improve readability */
  .kp-container,
  .entry-content,
  .kp-card {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  p, li {
    line-height: 1.6 !important;
  }

  h1 {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }

  h2 {
    font-size: 22px !important;
  }

  /* Prevent overflow issues */
  img {
    max-width: 100% !important;
    height: auto !important;
  }

  table {
    display: block;
    overflow-x: auto;
  }

}
