/*
Theme Name: Astra Child
Template: astra
Version: 4.0
*/

/* ============================================
   VARIABLES
   ============================================ */
:root {
    --blue-dark:  #0F2167;
    --blue-mid:   #1A3FA6;
    --blue:       #2563EB;
    --blue-light: #3B82F6;
    --blue-pale:  #EFF6FF;
    --blue-pale2: #DBEAFE;
    --gold:       #F59E0B;
    --white:      #FFFFFF;
    --gray-50:    #F9FAFB;
    --gray-100:   #F3F4F6;
    --gray-200:   #E5E7EB;
    --gray-400:   #9CA3AF;
    --gray-500:   #6B7280;
    --gray-700:   #374151;
    --gray-900:   #111827;
    --grad:       linear-gradient(135deg, #1A3FA6 0%, #0F2167 100%);
    --grad-btn:   linear-gradient(135deg, #2563EB 0%, #1A3FA6 100%);
    --shadow-sm:  0 2px 8px rgba(0,0,0,.06);
    --shadow:     0 4px 20px rgba(0,0,0,.08);
    --shadow-lg:  0 12px 40px rgba(0,0,0,.14);
    --radius:     14px;
    --ease:       all .25s ease;
}

/* ============================================
   BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Plus Jakarta Sans', -apple-system, sans-serif!important;
    font-size: 16px;
    color: var(--gray-700);
    background: var(--white);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:var(--blue); transition:var(--ease); }

/* Inner container used inside our sections */
.ep-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    width: 100%;
}

/* ============================================
   ASTRA KILL - body.ep-fw
   ============================================ */
body.ep-fw #content,
body.ep-fw #content.ast-container { display:block!important; max-width:100%!important; width:100%!important; padding:0!important; margin:0!important; }
body.ep-fw #primary, body.ep-fw .content-area { width:100%!important; max-width:100%!important; float:none!important; padding:0!important; margin:0!important; }
body.ep-fw .site-main { padding:0!important; margin:0!important; }
body.ep-fw .hentry, body.ep-fw article, body.ep-fw .entry-content, body.ep-fw .ast-article-post { padding:0!important; margin:0!important; width:100%!important; max-width:100%!important; }
body.ep-fw #secondary, body.ep-fw .widget-area, body.ep-fw aside#secondary { display:none!important; }
body.ep-fw .entry-header { display:none!important; }

/* ============================================
   BUTTONS
   ============================================ */
.ep-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 30px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 14px;
    border: 2px solid transparent;
    transition: var(--ease);
    text-decoration: none!important;
    cursor: pointer;
    white-space: nowrap;
}
.ep-btn-primary { background: var(--grad-btn)!important; color:#fff!important; box-shadow: 0 6px 18px -6px var(--blue); }
.ep-btn-primary:hover { transform:translateY(-2px); box-shadow:0 10px 24px -6px var(--blue); color:#fff!important; }
.ep-btn-outline  { background:transparent!important; color:#fff!important; border-color:rgba(255,255,255,.45)!important; }
.ep-btn-outline:hover { background:rgba(255,255,255,.1)!important; border-color:#fff!important; color:#fff!important; }
.ep-btn-dark     { background:var(--grad)!important; color:#fff!important; }
.ep-btn-dark:hover { transform:translateY(-2px); color:#fff!important; }
.ep-btn-white    { background:#fff!important; color:var(--blue-mid)!important; }
.ep-btn-white:hover { background:var(--blue-pale)!important; color:var(--blue-mid)!important; }

/* ============================================
   HERO
   ============================================ */
.ep-hero {
    background: var(--grad);
    min-height: 88vh;
    display: flex;
    align-items: center;
    padding: 110px 0 80px;
    position: relative;
    overflow: hidden;
}
.ep-hero::before {
    content:'';
    position:absolute;
    width:700px; height:700px;
    background:radial-gradient(circle,rgba(59,130,246,.18) 0%,transparent 70%);
    top:-200px; right:-100px;
    border-radius:50%;
    pointer-events:none;
}
.ep-hero-content { position:relative; z-index:2; max-width:760px; }
.ep-hero-badge {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,.1); color:#fff;
    border:1px solid rgba(255,255,255,.2);
    padding:7px 18px; border-radius:50px;
    font-size:12px; font-weight:700;
    letter-spacing:1px; text-transform:uppercase;
    margin-bottom:26px; backdrop-filter:blur(4px);
}
.ep-hero h1 {
    font-size: clamp(36px,5.5vw,62px)!important;
    font-weight: 800!important;
    color: #fff!important;
    line-height: 1.1!important;
    margin-bottom: 20px!important;
}
.ep-hero h1 span { color:#93C5FD; }
.ep-hero > .ep-wrap > .ep-hero-content > p {
    font-size:17px; color:rgba(255,255,255,.8);
    margin-bottom:36px; max-width:560px; line-height:1.75;
}
.ep-hero-buttons { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:52px; }
.ep-hero-stats {
    display:flex; gap:42px; flex-wrap:wrap;
    padding-top:36px; border-top:1px solid rgba(255,255,255,.15);
}
.ep-stat-number { font-size:36px; font-weight:800; color:#fff; line-height:1; margin-bottom:5px; }
.ep-stat-label  { font-size:12px; color:rgba(255,255,255,.6); font-weight:500; text-transform:uppercase; letter-spacing:.5px; }

/* ============================================
   SECTION COMMON
   ============================================ */
.ep-section { padding:84px 0; }
.ep-section.ep-bg-gray { background:var(--gray-50); }

.ep-section-header { text-align:center; margin-bottom:50px; }
.ep-tag {
    display:inline-block;
    background:var(--blue-pale); color:var(--blue-mid);
    border:1px solid var(--blue-pale2);
    padding:5px 14px; border-radius:50px;
    font-size:11px; font-weight:700;
    letter-spacing:1.5px; text-transform:uppercase;
    margin-bottom:12px;
}
.ep-section-header h2 {
    font-size: clamp(26px,3.5vw,40px)!important;
    font-weight: 800!important;
    color: var(--gray-900)!important;
    margin-bottom: 12px!important;
    line-height: 1.2!important;
}
.ep-section-header p { font-size:16px; color:var(--gray-500); max-width:560px; margin:0 auto; line-height:1.75; }

/* ============================================
   SERVICE CARDS — REDESIGNED
   Proper card that shows all content correctly
   ============================================ */
.ep-services-section { padding:84px 0; background:var(--gray-50); }

.ep-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* THE CARD */
.ep-card {
    background: #fff;
    border-radius: var(--radius);
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: var(--ease);
}
.ep-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
    border-color: #BFDBFE;
}

/* Card top stripe */
.ep-card-top {
    background: var(--grad);
    padding: 26px 24px 22px;
    position: relative;
    overflow: hidden;
}
.ep-card-top::after {
    content:'';
    position:absolute;
    right:-20px; top:-20px;
    width:80px; height:80px;
    background:rgba(255,255,255,.07);
    border-radius:50%;
}

.ep-card-icon {
    width: 52px; height: 52px;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px;
    margin-bottom: 14px;
    position: relative; z-index: 1;
}

.ep-card-top h3 {
    color: #fff!important;
    font-size: 17px!important;
    font-weight: 700!important;
    line-height: 1.3!important;
    margin: 0!important;
    position: relative; z-index: 1;
}

/* Card body */
.ep-card-body {
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 14px;
}

.ep-card-desc {
    font-size: 14px;
    color: var(--gray-500);
    line-height: 1.7;
    flex: 1;
    /* no overflow hidden — let it show fully */
    margin: 0;
}

/* Meta chips row */
.ep-card-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ep-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.ep-chip-blue { background:var(--blue-pale); color:#1D4ED8; border:1px solid var(--blue-pale2); }
.ep-chip-gray { background:var(--gray-100); color:var(--gray-700); border:1px solid var(--gray-200); }

/* CTA link at bottom of card */
.ep-card-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--grad-btn);
    color: #fff!important;
    padding: 12px 18px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    transition: var(--ease);
    text-decoration: none!important;
    margin-top: auto;
}
.ep-card-cta:hover { background:var(--grad); color:#fff!important; }
.ep-card-cta-arrow { font-size:16px; }

/* Empty state */
.ep-empty {
    grid-column: 1/-1;
    text-align: center;
    padding: 60px 20px;
    background: #fff;
    border-radius: var(--radius);
    border: 2px dashed var(--gray-200);
}
.ep-empty-icon { font-size:52px; margin-bottom:14px; }
.ep-empty p { font-size:17px; color:var(--gray-500); margin-bottom:20px; }

/* ============================================
   WHY US
   ============================================ */
.ep-features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
.ep-feature-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 30px 22px;
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow-sm);
    transition: var(--ease);
}
.ep-feature-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:#BFDBFE; }
.ep-feature-icon {
    width:52px; height:52px;
    background:var(--grad-btn); border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:24px; margin-bottom:18px;
}
.ep-feature-card h4 { font-size:16px!important; font-weight:700!important; color:var(--gray-900)!important; margin-bottom:8px!important; }
.ep-feature-card p  { font-size:13px; color:var(--gray-500); line-height:1.7; margin:0; }

/* ============================================
   CTA SECTION
   ============================================ */
.ep-cta { background:var(--grad); padding:84px 0; text-align:center; position:relative; overflow:hidden; }
.ep-cta::before {
    content:'';position:absolute;
    width:500px;height:500px;
    background:radial-gradient(circle,rgba(59,130,246,.15) 0%,transparent 70%);
    top:-150px;right:-100px;border-radius:50%;pointer-events:none;
}
.ep-cta h2 { color:#fff!important; font-size:clamp(26px,3.5vw,40px)!important; margin-bottom:12px!important; position:relative;z-index:1; }
.ep-cta > .ep-wrap > p { color:rgba(255,255,255,.8); font-size:16px; margin-bottom:34px; max-width:460px; margin-left:auto;margin-right:auto; line-height:1.7; position:relative;z-index:1; }
.ep-cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; position:relative;z-index:1; }

/* ============================================
   PAGE HERO
   ============================================ */
.ep-page-hero {
    background: var(--grad);
    padding: 100px 0 64px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.ep-page-hero::before { content:''; position:absolute; width:400px;height:400px; background:radial-gradient(circle,rgba(59,130,246,.12) 0%,transparent 70%); top:-100px;right:-80px;border-radius:50%; }
.ep-page-hero h1 { color:#fff!important; font-size:clamp(28px,4.5vw,48px)!important; margin-bottom:12px!important; position:relative;z-index:1; }
.ep-page-hero > .ep-wrap > p { color:rgba(255,255,255,.8); font-size:16px; max-width:560px; margin:0 auto 16px; line-height:1.7; position:relative;z-index:1; }
.ep-breadcrumb { font-size:13px; color:rgba(255,255,255,.5); position:relative;z-index:1; }
.ep-breadcrumb a { color:rgba(255,255,255,.75); } .ep-breadcrumb a:hover { color:#fff; }

/* ============================================
   ARCHIVE
   ============================================ */
.ep-stats-bar { background:#fff; border-bottom:1px solid var(--gray-200); }
.ep-stats-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding:15px 0; }
.ep-stats-inner p { color:var(--gray-500); margin:0; font-size:14px; }
.ep-archive-grid { padding:64px 0; background:var(--gray-50); }
.ep-pagination { text-align:center; margin-top:46px; }
.ep-pagination .nav-links { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.ep-pagination .page-numbers { padding:8px 15px; border:1px solid var(--gray-200); border-radius:8px; color:var(--gray-700); text-decoration:none; font-weight:500; font-size:14px; }
.ep-pagination .page-numbers.current { background:var(--grad-btn); color:#fff; border-color:transparent; }
.ep-empty-state { text-align:center; padding:80px 20px; }
.ep-empty-state .ep-empty-icon { font-size:56px; margin-bottom:16px; }
.ep-empty-state p { color:var(--gray-500); font-size:16px; margin-bottom:20px; }

/* ============================================
   CONTACT
   ============================================ */
.ep-contact-section { padding:72px 0; background:var(--gray-50); }
.ep-contact-grid { display:grid; grid-template-columns:1fr 1.6fr; gap:32px; align-items:start; }
.ep-contact-info { background:var(--grad); border-radius:var(--radius); padding:40px 34px; color:#fff; }
.ep-contact-info h3 { color:#fff!important; font-size:22px!important; margin-bottom:8px!important; }
.ep-contact-info > p { color:rgba(255,255,255,.7); margin-bottom:30px; font-size:14px; line-height:1.7; }
.ep-contact-item { display:flex; gap:14px; align-items:flex-start; margin-bottom:22px; }
.ep-contact-ico { width:44px;height:44px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); border-radius:10px; display:flex;align-items:center;justify-content:center; font-size:18px; flex-shrink:0; }
.ep-contact-item h4 { font-size:10px!important; color:rgba(255,255,255,.5)!important; font-weight:700!important; text-transform:uppercase!important; letter-spacing:.5px!important; margin-bottom:3px!important; }
.ep-contact-item p { font-size:14px; font-weight:600; color:#fff; line-height:1.5; margin:0; }
.ep-contact-form { background:#fff; border-radius:var(--radius); padding:40px; box-shadow:var(--shadow); border:1px solid var(--gray-200); }
.ep-contact-form h3 { font-size:22px!important; color:var(--gray-900)!important; margin-bottom:6px!important; }
.ep-contact-form > p { color:var(--gray-500); margin-bottom:26px; font-size:14px; }
/* CF7 */
.wpcf7 .wpcf7-form-control-wrap,.wpcf7 p { margin-bottom:14px!important; }
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 select,.wpcf7 textarea {
    width:100%!important; padding:12px 15px!important; border:1.5px solid var(--gray-200)!important;
    border-radius:10px!important; font-size:14px!important; color:var(--gray-700)!important;
    font-family:inherit!important; background:var(--gray-50)!important; transition:var(--ease)!important; outline:none!important;
}
.wpcf7 input:focus,.wpcf7 textarea:focus { border-color:var(--blue)!important; background:#fff!important; box-shadow:0 0 0 3px rgba(37,99,235,.1)!important; }
.wpcf7 textarea { height:110px!important; resize:vertical!important; }
.wpcf7 input[type="submit"] {
    background:var(--grad-btn)!important; color:#fff!important; border:none!important;
    padding:14px 32px!important; border-radius:50px!important; font-size:15px!important;
    font-weight:700!important; cursor:pointer!important; width:100%!important;
    font-family:inherit!important; box-shadow:0 6px 18px -6px var(--blue)!important;
}
.wpcf7 input[type="submit"]:hover { transform:translateY(-2px)!important; }
.ep-map-section { line-height:0; }
.ep-map-section iframe { width:100%!important; height:420px!important; display:block!important; border:0!important; }

/* ============================================
   SINGLE SERVICE
   ============================================ */
.ep-single-hero { background:var(--grad); padding:76px 0 0; position:relative; overflow:hidden; }
.ep-single-hero::before { content:''; position:absolute; width:400px;height:400px; background:radial-gradient(circle,rgba(59,130,246,.12) 0%,transparent 70%); top:-100px;right:-80px;border-radius:50%; }
.ep-single-hero-inner { text-align:center; position:relative;z-index:1; padding-bottom:36px; }
.ep-single-hero-inner h1 { color:#fff!important; font-size:clamp(26px,4.5vw,44px)!important; font-weight:800!important; margin-bottom:16px!important; }
.ep-stats-bar-dark { background:rgba(0,0,0,.25); border-top:1px solid rgba(255,255,255,.1); }
.ep-stats-row { display:flex; flex-wrap:wrap; justify-content:space-around; }
.ep-stats-cell { padding:18px; text-align:center; flex:1; min-width:130px; border-right:1px solid rgba(255,255,255,.1); }
.ep-stats-cell:last-child { border-right:none; }
.ep-stats-cell-label { font-size:10px; color:rgba(255,255,255,.5); font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
.ep-stats-cell-val   { font-size:15px; font-weight:700; color:#fff; }
.ep-single-body { padding:52px 0 68px; background:var(--gray-50); }
.ep-single-layout { display:grid; grid-template-columns:1fr 290px; gap:26px; align-items:start; }
.ep-single-sidebar { position:sticky; top:88px; }
.ep-content-card { background:#fff; border-radius:var(--radius); padding:28px; margin-bottom:20px; box-shadow:var(--shadow-sm); border:1px solid var(--gray-200); }
.ep-content-card h2 { font-size:17px!important; font-weight:700!important; color:var(--gray-900)!important; margin-bottom:16px!important; padding-bottom:12px!important; border-bottom:2px solid var(--gray-100)!important; }
.ep-content-body { color:var(--gray-700); line-height:1.8; font-size:15px; }
.ep-content-body p { margin-bottom:12px; } .ep-content-body p:last-child { margin-bottom:0; }
.ep-details-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ep-detail-item { background:var(--gray-50); border:1px solid var(--gray-200); border-radius:10px; padding:13px; }
.ep-detail-label { font-size:10px; color:var(--gray-500); font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.ep-detail-value { font-size:15px; font-weight:700; color:var(--gray-900); }
.ep-features-list { display:flex; flex-direction:column; gap:9px; }
.ep-feature-item { display:flex; align-items:flex-start; gap:10px; padding:11px 13px; background:var(--blue-pale); border:1px solid var(--blue-pale2); border-radius:9px; }
.ep-feature-check { color:var(--blue-mid); font-weight:800; font-size:14px; flex-shrink:0; margin-top:1px; }
.ep-feature-item span:last-child { font-size:14px; font-weight:500; color:var(--gray-700); }
/* Sidebar cards */
.ep-sidebar-enroll { background:#fff; border-radius:var(--radius); padding:24px 20px; margin-bottom:16px; box-shadow:var(--shadow-lg); border:1px solid var(--gray-200); text-align:center; }
.ep-sidebar-icon { font-size:42px; margin-bottom:10px; line-height:1; }
.ep-sidebar-enroll h3 { font-size:15px!important; font-weight:700!important; color:var(--gray-900)!important; margin-bottom:6px!important; line-height:1.3!important; }
.ep-sidebar-price { font-size:22px; font-weight:800; color:var(--blue-mid); margin-bottom:16px; }
.ep-sidebar-link { display:block; text-align:center; color:var(--blue)!important; font-size:13px; font-weight:600; padding:8px; transition:var(--ease); text-decoration:none!important; }
.ep-sidebar-box { background:#fff; border-radius:var(--radius); padding:20px; box-shadow:var(--shadow-sm); border:1px solid var(--gray-200); }
.ep-sidebar-box-title { font-size:14px!important; font-weight:700!important; color:var(--gray-900)!important; margin-bottom:12px!important; padding-bottom:10px!important; border-bottom:2px solid var(--gray-100)!important; }
.ep-other-link { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--gray-100); text-decoration:none!important; transition:var(--ease); }
.ep-other-link:last-child { border-bottom:none; }
.ep-other-link:hover { padding-left:4px; }
.ep-other-ico { width:34px;height:34px; background:var(--blue-pale); border:1px solid var(--blue-pale2); border-radius:8px; display:flex;align-items:center;justify-content:center; font-size:16px; flex-shrink:0; }
.ep-other-link span:nth-child(2) { font-size:13px; font-weight:500; color:var(--gray-800); flex:1; line-height:1.3; }
.ep-other-arrow { color:var(--blue); font-weight:700; flex-shrink:0; }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width:1024px) {
    .ep-features-grid { grid-template-columns:repeat(2,1fr); }
    .ep-contact-grid  { grid-template-columns:1fr; }
    .ep-single-layout { grid-template-columns:1fr; }
    .ep-single-sidebar { position:static; }
}
@media (max-width:768px) {
    .ep-section,.ep-services-section,.ep-cta { padding:56px 0; }
    .ep-hero { min-height:auto; padding:88px 0 52px; }
    .ep-hero-buttons { flex-direction:column; align-items:flex-start; }
    .ep-hero-stats { gap:18px; }
    .ep-services-grid { grid-template-columns:repeat(2,1fr); gap:16px; }
    .ep-stats-row { flex-wrap:wrap; }
    .ep-stats-cell { flex:0 0 50%; border-right:none!important; border-bottom:1px solid rgba(255,255,255,.1); }
    .ep-details-grid { grid-template-columns:repeat(2,1fr); }
    .ep-cta-btns { flex-direction:column; align-items:center; }
    .ep-cta-btns .ep-btn { width:100%; max-width:290px; justify-content:center; }
}
@media (max-width:480px) {
    .ep-hero h1 { font-size:28px!important; }
    .ep-stat-number { font-size:28px; }
    .ep-services-grid { grid-template-columns:1fr; }
    .ep-features-grid { grid-template-columns:1fr; }
    .ep-details-grid { grid-template-columns:1fr; }
    .ep-wrap { padding:0 16px; }
}
