/* Shared theme extracted from index.php — used by every page */
    :root{
      --gp-primary:    #2a2469;   /* Deep Indigo */
      --gp-primary-2:  #4f46e5;   /* Vibrant Indigo */
      --gp-accent:     #d97706;   /* Gold */
      --gp-accent-2:   #f59e0b;   /* Amber */
      --gp-slate:      #0f172a;   /* Ink */
      --gp-muted:      #64748b;   /* Muted */
      --gp-bg:         #f8fafc;   /* Off white */
      --gp-bg-grad:    linear-gradient(135deg,#eef2ff 0%, #fdf4ff 45%, #fff7ed 100%);
      --gp-radius:     14px;
      --gp-shadow-sm:  0 2px 10px rgba(15,23,42,.06);
      --gp-shadow:     0 10px 30px rgba(42,36,105,.12);
      --gp-shadow-lg:  0 20px 50px rgba(42,36,105,.18);
    }

    html,body{ background:var(--gp-bg); color:var(--gp-slate); font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }

    /* ============================================================
       🏗️  PAGE WIDTH FOUNDATION FIX
       - Fixes right-side empty space + horizontal overflow issues
       - html/body: full viewport width, no horizontal scroll
       - Bootstrap containers: FULL WIDTH on mobile (no capped max-width)
       - Header + main + all sections: 100% width guaranteed
       ============================================================ */
    html, body{
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
      margin: 0;
      padding: 0;
    }
    main.main, body > main{
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }
    section, .section{
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }
    /* Desktop: keep Bootstrap container-xl capped (1400px) — correct */
    /* Mobile/Tablet (<1199px): container-xl → FULL VIEWPORT WIDTH, no 720/960 max-width cap */
    @media (max-width: 1199.98px){
      .container-xl, .container-lg, .container-md, .container-sm, .container{
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
      }
      /* Hero & section containers: full width, no side margins */
      #hero > .container,
      section > .container-xl,
      section > .container,
      .section-title{
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
      }
    }
    /* Fix header container too (width rule) */
    #header{
      width: 100% !important;
      max-width: 100% !important;
      left: 0 !important;
      right: 0 !important;
    }

    /* ============================================================
       ✨ FRESH PROFESSIONAL HEADER — OUR OWN DRAWER (no navmenu bugs)
       Layout: LOGO (left) → Login → Register → ☰ (far right)
       All devices: LOGIN + REGISTER show FULL TEXT (no icon-only ever)
       ============================================================ */
    #header{
      backdrop-filter: saturate(180%) blur(12px);
      -webkit-backdrop-filter: saturate(180%) blur(12px);
      background: rgba(255,255,255,.94);
      border-bottom: 1px solid rgba(42,36,105,.08);
      padding-top: 8px;
      padding-bottom: 8px;
      min-height: 60px;
      z-index: 99998 !important;
      box-shadow: 0 2px 14px rgba(15,23,42,.05);
    }
    #header > .container-fluid,
    #header > .container-xl{
      flex-wrap: nowrap !important;
      justify-content: flex-start;
      align-items: center;
      gap: 0;
      padding-left: 14px !important;
      padding-right: 14px !important;
      width: 100% !important;
      max-width: 100% !important;
    }
    @media (min-width: 1400px){
      #header > .container-xl{ max-width: 1400px !important; }
    }

    /* --- 1. LOGO --- */
    .gp-header-logo{
      display: flex;
      align-items: center;
      flex: 0 0 auto;
      margin: 0;
      padding: 2px 0;
    }
    .gp-header-logo img{
      max-height: 36px !important;
      height: 36px !important;
      width: auto;
      max-width: 180px;
      object-fit: contain;
      border-radius: 10px;
      box-shadow: 0 4px 14px rgba(42,36,105,.15);
      display: block;
    }

    /* --- 2. DESKTOP NAV LINKS (XL screens and up) --- */
    .gp-desktop-nav{
      display: flex;
      align-items: center;
      gap: 2px;
      margin-left: 22px;
      flex: 0 0 auto;
    }
    .gp-desktop-nav a{
      padding: 8px 14px;
      border-radius: 10px;
      color: var(--gp-slate);
      font-weight: 600;
      font-size: 14.5px;
      text-decoration: none;
      transition: all .2s ease;
      white-space: nowrap;
      position: relative;
    }
    .gp-desktop-nav a:hover,
    .gp-desktop-nav a.active{
      color: var(--gp-primary-2);
      background: rgba(79,70,229,.07);
    }

    /* --- 3. CTA GROUP (Login + Register) + MENU TOGGLE single row --- */
    .gp-header-right{
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: nowrap;
      flex-shrink: 0;
    }
    .gp-header-cta{
      display: inline-flex;
      align-items: center;
      flex-shrink: 0;
    }

    .gp-btn{
      display:inline-flex; align-items:center; gap:7px;
      padding:9px 16px; border-radius:999px; font-weight:800; font-size:13.5px;
      text-decoration:none; transition: all .22s cubic-bezier(.33,1,.68,1);
      border: 1.5px solid transparent;
      cursor:pointer; letter-spacing:.2px; white-space:nowrap;
      flex-shrink: 0;
      line-height: 1.1;
    }
    .gp-btn i{
      font-size: 14.5px;
      line-height: 1;
      flex-shrink: 0;
    }
    .gp-btn .gp-btn-text{
      display: inline-block !important;   /* NEVER hide button text per user */
      line-height: 1;
      font-weight: 800;
    }
    .gp-btn-primary{
      background: linear-gradient(135deg, var(--gp-primary) 0%, #6366f1 40%, var(--gp-primary-2) 100%);
      color:#fff; box-shadow: 0 8px 20px rgba(79,70,229,.28);
    }
    .gp-btn-primary:hover{
      transform: translateY(-2px);
      color:#fff;
      box-shadow: 0 12px 28px rgba(79,70,229,.38);
    }
    .gp-btn-accent{
      background: linear-gradient(135deg, #f97316 0%, var(--gp-accent) 40%, var(--gp-accent-2) 100%);
      color:#fff; box-shadow: 0 8px 20px rgba(245,158,11,.3);
    }
    .gp-btn-accent:hover{
      transform: translateY(-2px);
      color:#fff;
      box-shadow: 0 12px 28px rgba(245,158,11,.4);
    }
    .gp-btn-outline{
      background:#fff; color:var(--gp-primary); border-color:rgba(99,102,241,.3);
      box-shadow: 0 2px 6px rgba(79,70,229,.06);
    }
    .gp-btn-outline:hover{
      background: linear-gradient(135deg, var(--gp-primary) 0%, var(--gp-primary-2) 100%);
      color:#fff; border-color:transparent; transform: translateY(-2px);
    }

    /* --- 4. MENU TOGGLE (hamburger — our custom, not navmenu toggle class) --- */
    .gp-menu-toggle{
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 12px;
      border: none;
      display: none;       /* hidden on desktop */
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, rgba(99,102,241,.10), rgba(99,102,241,.18));
      color: var(--gp-primary);
      font-size: 20px;
      cursor: pointer;
      transition: all .22s ease;
      line-height: 1;
      z-index: 999999;  /* always on top */
      box-shadow: 0 4px 12px rgba(79,70,229,.10), inset 0 1px 0 rgba(255,255,255,.8);
      border: 1px solid rgba(99,102,241,.15);
    }
    .gp-menu-toggle:hover{
      transform: translateY(-2px);
      color: var(--gp-primary-2);
      box-shadow: 0 8px 18px rgba(79,70,229,.22);
    }
    .gp-menu-toggle.is-active{
      background: linear-gradient(135deg, var(--gp-primary), var(--gp-primary-2));
      color: #fff;
    }

    /* ============================================================
       DRAWER (our own custom mobile drawer — slides from right)
       ============================================================ */
    .gp-drawer-overlay{
      position: fixed;
      inset: 0;
      background: rgba(15,23,42,.55);
      backdrop-filter: blur(3px);
      -webkit-backdrop-filter: blur(3px);
      opacity: 0;
      visibility: hidden;
      transition: opacity .25s ease, visibility .25s ease;
      z-index: 999998;
    }
    .gp-drawer-overlay.is-open{
      opacity: 1;
      visibility: visible;
    }
    .gp-drawer{
      position: fixed;
      top: 0;
      right: 0;
      height: 100%;
      width: min(86vw, 340px);
      background: #fff;
      z-index: 999999;
      box-shadow: -20px 0 50px rgba(15,23,42,.2);
      transform: translateX(105%);
      transition: transform .32s cubic-bezier(.33,1,.68,1);
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    .gp-drawer.is-open{ transform: translateX(0); }

    /* Drawer header */
    .gp-drawer-header{
      padding: 16px 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-bottom: 1px solid rgba(15,23,42,.06);
      background: linear-gradient(135deg, rgba(99,102,241,.06), rgba(245,158,11,.06));
    }
    .gp-drawer-header img{
      max-height: 34px;
      max-width: 160px;
      border-radius: 8px;
      box-shadow: 0 3px 10px rgba(42,36,105,.12);
    }
    .gp-drawer-close{
      width: 36px;
      height: 36px;
      border-radius: 10px;
      background: rgba(239,68,68,.08);
      color: #ef4444;
      border: none;
      font-size: 19px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .2s ease;
      line-height: 1;
    }
    .gp-drawer-close:hover{
      background: #ef4444;
      color: #fff;
      transform: scale(1.06);
    }

    /* CTA section inside drawer (shows LOGIN + REGISTER FULL TEXT big gradient buttons) */
    .gp-drawer-ctas{
      padding: 16px 18px 12px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      background: linear-gradient(180deg, rgba(250,250,255,1), rgba(255,255,255,1));
      border-bottom: 1px dashed rgba(15,23,42,.08);
    }
    .gp-drawer-ctas .gp-btn{
      width: 100%;
      justify-content: center;
      padding: 12px 18px !important;
      font-size: 14.5px !important;
    }
    .gp-drawer-ctas .gp-btn i{
      font-size: 16px !important;
    }

    /* Nav links inside drawer */
    .gp-drawer-links{
      flex: 1 1 auto;
      overflow-y: auto;
      padding: 10px 10px 20px;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .gp-drawer-links a{
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px 14px;
      border-radius: 12px;
      color: var(--gp-slate);
      font-weight: 600;
      font-size: 14.5px;
      text-decoration: none;
      transition: all .18s ease;
    }
    .gp-drawer-links a i{
      font-size: 17px;
      color: var(--gp-primary);
      flex-shrink: 0;
      width: 24px;
      text-align: center;
    }
    .gp-drawer-links a:hover,
    .gp-drawer-links a.active{
      background: linear-gradient(135deg, rgba(99,102,241,.10), rgba(99,102,241,.04));
      color: var(--gp-primary-2);
      transform: translateX(2px);
    }

    /* Drawer footer */
    .gp-drawer-footer{
      padding: 12px 18px 18px;
      font-size: 12px;
      color: var(--gp-muted);
      text-align: center;
      border-top: 1px solid rgba(15,23,42,.05);
      background: #fafaff;
    }

    /* DESKTOP: hide drawer, show inline nav */
    @media (min-width: 1200px){
      .gp-desktop-nav{ display: flex; }
      .gp-menu-toggle{ display: none; }
      .gp-drawer, .gp-drawer-overlay{ display: none !important; }
    }
    /* LAPTOP + MOBILE: hide desktop nav, show menu button */
    @media (max-width: 1199.98px){
      .gp-desktop-nav{ display: none !important; }
      .gp-menu-toggle{ display: inline-flex; }
      .gp-header-right{ margin-left: auto; }   /* far right on all below-desktop screens */
      #header{ min-height: 58px; padding-top: 7px; padding-bottom: 7px; }
      #header > .container-fluid,
      #header > .container-xl{ padding-left: 12px !important; padding-right: 12px !important; }
      .gp-header-logo img{ max-height: 34px !important; height: 34px !important; }
      .gp-btn{ padding: 8px 14px; font-size: 13px; gap: 6px; }
      .gp-btn i{ font-size: 14px; }
    }

    @media (max-width: 992px){
      #header{ min-height: 56px; padding-top: 6px; padding-bottom: 6px; }
      .gp-header-logo{ margin-right: 4px; }
      .gp-header-logo img{ max-height: 32px !important; height: 32px !important; }
      .gp-header-right{ gap: 6px; }
      .gp-btn{ padding: 8px 13px; font-size: 12.5px; gap: 5px; }
      .gp-btn i{ font-size: 13px; }
      .gp-menu-toggle{ width: 38px; height: 38px; font-size: 19px; }
    }

    @media (max-width: 768px){
      .gp-header-logo img{ max-height: 30px !important; height: 30px !important; }
      .gp-btn{ padding: 8px 12px; font-size: 12px; }
      .gp-btn i{ font-size: 12.5px; }
      .gp-menu-toggle{ width: 37px; height: 36px; border-radius: 10px; }
    }

    @media (max-width: 576px){
      #header{
        padding-top: 7px;
        padding-bottom: 7px;
        min-height: 54px;
      }
      #header > .container-fluid,
      #header > .container-xl{
        padding-left: 10px !important;
        padding-right: 10px !important;
      }
      .gp-header-logo img{
        max-height: 28px !important;
        height: 28px !important;
        max-width: 140px;
      }
      .gp-header-right{ gap: 5px; }
      .gp-btn{
        padding: 7px 11px !important;
        font-size: 11.5px !important;
        gap: 5px;
      }
      .gp-btn i{ font-size: 12px; }
      .gp-menu-toggle{
        width: 35px;
        height: 34px;
        font-size: 18px;
        border-radius: 10px;
      }
    }

    /* Tiny phones (< 420px) — still full text, just super compact */
    @media (max-width: 420px){
      #header{ padding-top: 6px; padding-bottom: 6px; }
      .gp-header-logo img{
        max-height: 26px !important;
        height: 26px !important;
        max-width: 120px;
      }
      .gp-header-right{ gap: 4px; }
      .gp-btn{
        padding: 7px 10px !important;
        font-size: 11px !important;
        gap: 4px;
        letter-spacing: .1px;
      }
      .gp-btn i{ font-size: 11.5px; }
      .gp-menu-toggle{
        width: 33px;
        height: 32px;
        font-size: 17px;
        border-radius: 9px;
      }
      .gp-drawer{ width: 88vw; }
    }

    /* Hero padding-tops tuned per header height */
    @media (min-width: 1200px){ #hero{ padding-top: 130px !important; } }
    @media (max-width: 1199.98px){ #hero{ padding-top: 96px !important; } }
    @media (max-width: 992px){ #hero{ padding-top: 90px !important; } }
    @media (max-width: 768px){ #hero{ padding-top: 86px !important; } }
    @media (max-width: 576px){ #hero{ padding-top: 80px !important; } }
    @media (max-width: 420px){ #hero{ padding-top: 76px !important; } }

    /* ---------- HERO ---------- */
    #hero{
      background: var(--gp-bg-grad);
      position:relative; overflow:visible !important; padding-top: 120px;
      z-index: 1 !important;
    }
    #hero::before{
      content:""; position:absolute; top:-10%; left:-5%;
      width:520px; height:520px; border-radius:50%;
      background: radial-gradient(circle, rgba(79,70,229,.18), transparent 70%);
      filter: blur(40px); pointer-events:none;
      z-index: 0;
    }
    #hero::after{
      content:""; position:absolute; bottom:-15%; right:-5%;
      width:600px; height:600px; border-radius:50%;
      background: radial-gradient(circle, rgba(245,158,11,.16), transparent 70%);
      filter: blur(45px); pointer-events:none;
      z-index: 0;
    }
    #hero .hero-bg{ opacity:.35; mix-blend-mode:multiply; }

    /* ============================================================
       GLOBAL CONTENT VISIBILITY OVERRIDE (fix AOS hiding bug ALL SECTIONS)
       ============================================================ */
    [data-aos], [data-aos-delay], [data-aos-duration], [data-aos-easing],
    section, main, section > .container,
    section h2, section h3, section h4, section p, section a, section img, section i, section button, section div,
    .section, .section-title, .section-title *,
    .service-item, .service-item *,
    .more-features, .more-features *, .icon-box, .icon-box *,
    .faq *,
    .call-to-action, .call-to-action *,
    #footer, #footer *,
    .hero *,
    .gp-hero-tagline, .gp-tag-pill, .gp-hero-cta, .gp-hero-img{
      opacity: 1 !important;
      visibility: visible !important;
      transform: none !important;
      transition: none !important;
      animation: none !important;
      animation-duration: 0s !important;
      animation-delay: 0s !important;
      animation-fill-mode: none !important;
      filter: none !important;
      clip-path: none !important;
      -webkit-clip-path: none !important;
    }
    /* ensure section padding still respected */
    section, .section{ overflow: visible !important; scroll-margin-top: 90px; }

    #hero h1{
      font-family:'Nunito', sans-serif; font-weight:800;
      font-size: clamp(1.8rem, 4vw, 3.1rem); line-height:1.15;
      color:var(--gp-slate); letter-spacing:-.5px;
    }
    #hero h1 span{
      background: linear-gradient(135deg, var(--gp-primary) 0%, var(--gp-primary-2) 60%, var(--gp-accent) 100%);
      -webkit-background-clip: text; background-clip: text; color: transparent;
    }

    .gp-hero-tagline{
      font-size: clamp(.95rem, 1.6vw, 1.1rem); line-height:1.65;
      color:var(--gp-muted); max-width:780px; margin:18px auto 0;
    }
    .gp-hero-tagline strong{ color:var(--gp-primary); }

    .gp-tag-pill{
      display:inline-block; padding:6px 12px; border-radius:999px;
      font-size:13px; font-weight:700; margin:4px 3px;
      background:#fff; border:1px solid rgba(15,23,42,.08);
      box-shadow: var(--gp-shadow-sm);
    }
    .gp-tag-pill.t-aadhaar{ color:#6f42c1; }
    .gp-tag-pill.t-pan   { color:#b45309; }
    .gp-tag-pill.t-voter { color:#15803d; }
    .gp-tag-pill.t-dl    { color:#b91c1c; }
    .gp-tag-pill.t-rc    { color:#0e7490; }

    .gp-hero-cta{
      display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
      margin-top:28px;
    }

    .gp-hero-img{
      margin-top:36px; max-width: 260px;
      filter: drop-shadow(0 20px 40px rgba(42,36,105,.2));
    }

    /* ---------- SERVICES ---------- */
    .section-title h2{
      font-family:'Nunito', sans-serif; font-weight:800;
      color:var(--gp-slate); font-size: clamp(1.6rem, 3vw, 2.2rem);
    }
    .section-title h2::after, .section-title h2::before{ background: var(--gp-accent-2) !important; }
    .service-item{
      background:#fff; border-radius:var(--gp-radius); padding:28px;
      box-shadow: var(--gp-shadow-sm); border:1px solid rgba(15,23,42,.05);
      transition: all .3s ease;
    }
    .service-item:hover{ transform:translateY(-5px); box-shadow: var(--gp-shadow); }
    .service-item h3{ font-family:'Nunito', sans-serif; font-weight:800; color:var(--gp-slate); }
    .service-item .icon{
      background: linear-gradient(135deg, var(--gp-primary) 0%, var(--gp-primary-2) 100%);
      color:#fff; border-radius: 12px;
      width:56px; height:56px; display:flex; align-items:center; justify-content:center;
      font-size: 26px; box-shadow: 0 8px 18px rgba(79,70,229,.2);
    }
    .read-more{ font-weight:700; color:var(--gp-primary-2); }
    .read-more:hover{ color:var(--gp-accent); }

    /* ---------- FAQ / MORE FEATURES ---------- */
    .more-features h3{ font-family:'Nunito', sans-serif; font-weight:800; color:var(--gp-slate); }
    .icon-box h4{ font-family:'Nunito', sans-serif; font-weight:700; color:var(--gp-primary); font-size:15px; }
    .icon-box i.bi{
      font-size: 22px; color:#fff;
      background: linear-gradient(135deg, var(--gp-accent) 0%, var(--gp-accent-2) 100%);
      border-radius:10px; width:40px; height:40px; display:flex; align-items:center; justify-content:center;
      margin-right:12px; flex-shrink:0; box-shadow:0 6px 14px rgba(217,119,6,.25);
    }

    /* ---------- FOOTER ---------- */
    #footer{
      background: linear-gradient(180deg, #ffffff 0%, #eef2ff 100%);
      border-top:1px solid rgba(42,36,105,.08);
    }
    #footer h4{
      font-family:'Nunito', sans-serif; font-weight:800; color:var(--gp-primary);
    }
    #footer a{ color:var(--gp-slate); text-decoration:none; }
    #footer a:hover{ color:var(--gp-primary-2); }
    .footer-about .sitename{
      font-family:'Nunito', sans-serif; font-weight:800; color:var(--gp-primary); font-size:22px;
    }
    .social-links a{
      background:#fff; border:1px solid rgba(42,36,105,.12); color:var(--gp-primary);
      border-radius:50%; width:38px; height:38px; display:flex; align-items:center; justify-content:center;
      transition:all .25s ease;
    }
    .social-links a:hover{
      background: linear-gradient(135deg, var(--gp-primary), var(--gp-primary-2));
      color:#fff; transform:translateY(-2px);
    }
    .copyright{ padding-bottom: 30px; }


/* ============================================================
   ADDED: dropdown nav + inner-page (legal/about/contact) styles
   ============================================================ */
.gp-dd{ position:relative; }
.gp-dd-toggle{
  padding:8px 14px; border-radius:10px; color:var(--gp-slate); font-weight:600; font-size:14.5px;
  background:none; border:0; cursor:pointer; font-family:inherit; white-space:nowrap;
}
.gp-dd-toggle:hover, .gp-dd:focus-within .gp-dd-toggle, .gp-dd-toggle.active{ color:var(--gp-primary-2); background:rgba(79,70,229,.07); }
.gp-dd-menu{
  position:absolute; top:100%; left:0; min-width:230px; background:#fff;
  border:1px solid rgba(42,36,105,.1); border-radius:12px; box-shadow:var(--gp-shadow);
  padding:6px; display:none; z-index:100000; flex-direction:column;
}
.gp-dd:hover .gp-dd-menu, .gp-dd:focus-within .gp-dd-menu{ display:flex; }
.gp-desktop-nav .gp-dd-menu a{ display:block; }
.gp-drawer-links .gp-drawer-sub{
  font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gp-muted); padding:14px 16px 4px;
}

.gp-page-hero{ padding:120px 0 38px; background:var(--gp-bg-grad); text-align:center; }
.gp-page-hero h1{ font-family:'Nunito',sans-serif; font-weight:800; color:var(--gp-primary); font-size:clamp(28px,5vw,42px); margin:0 0 8px; }
.gp-page-hero p{ color:var(--gp-muted); max-width:680px; margin:0 auto; }
.gp-crumbs{ font-size:13px; color:var(--gp-muted); margin-bottom:10px; }
.gp-crumbs a{ color:var(--gp-primary-2); text-decoration:none; }

.gp-legal{ padding:36px 0 70px; }
.gp-legal .gp-card{
  background:#fff; border-radius:var(--gp-radius); box-shadow:var(--gp-shadow-sm);
  border:1px solid rgba(42,36,105,.06); padding:clamp(18px,4vw,42px);
  max-width:920px; margin:0 auto;
}
.gp-legal h2{ font-family:'Nunito',sans-serif; font-size:21px; color:var(--gp-primary); margin:30px 0 10px; font-weight:800; }
.gp-legal h2:first-of-type{ margin-top:6px; }
.gp-legal h3{ font-size:17px; margin:18px 0 6px; color:var(--gp-slate); font-weight:700; }
.gp-legal p, .gp-legal li{ line-height:1.85; color:#334155; font-size:15.5px; }
.gp-legal ul, .gp-legal ol{ padding-left:22px; }
.gp-legal a{ color:var(--gp-primary-2); }
.gp-updated{ display:inline-block; background:#eef2ff; color:var(--gp-primary); font-size:13px; font-weight:600; padding:5px 12px; border-radius:999px; margin-bottom:14px; }
.gp-note{ background:#fff7ed; border-left:4px solid var(--gp-accent); padding:14px 16px; border-radius:8px; margin:18px 0; }
.gp-note p{ margin:0; color:#7c2d12; }

.gp-info-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; margin:18px 0 8px; }
.gp-info-box{ background:var(--gp-bg); border:1px solid rgba(42,36,105,.08); border-radius:12px; padding:16px; }
.gp-info-box i{ font-size:22px; color:var(--gp-primary-2); }
.gp-info-box h3{ margin:8px 0 4px; font-size:16px; }
.gp-info-box p{ margin:0; font-size:14.5px; word-break:break-word; }

.gp-form label{ font-weight:600; font-size:14px; margin-bottom:4px; display:block; }
.gp-form input, .gp-form textarea{
  width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:11px 13px; font-size:15px; margin-bottom:14px; font-family:inherit;
}
.gp-form input:focus, .gp-form textarea:focus{ outline:2px solid rgba(79,70,229,.35); border-color:var(--gp-primary-2); }
.gp-form .gp-hp{ position:absolute; left:-9999px; height:0; width:0; opacity:0; }
.gp-alert{ padding:12px 14px; border-radius:10px; margin-bottom:14px; font-size:14.5px; }
.gp-alert.ok{ background:#ecfdf5; color:#065f46; }
.gp-alert.err{ background:#fef2f2; color:#991b1b; }
.footer .footer-links a, .footer .footer-contact a{ text-decoration:none; }
