/*
Theme Name: EP Carolinas
Theme URI: https://carolinaestateplan.com
Description: Custom theme for Estate Planning of the Carolinas
Version: 1.0
Author: Ryan P. Duffy
*/

/* ── TOKENS ── */
:root{
  --brand:#3b649b;--brand-h:#3d68a8;--brand-dk:#1a2e4a;
  --brand-xdk:#0f1d30;--brand-lt:#eef3fa;--brand-lt2:#f7f9fd;
  --gold:#B8933A;--border:#dde6f0;--muted:#56718f;--muted2:#8fa5be;
  --radius:10px;--radius-l:16px;
  --shadow:0 2px 12px rgba(26,46,74,.08);
  --shadow-m:0 6px 32px rgba(26,46,74,.12);
  --shadow-l:0 14px 60px rgba(26,46,74,.15);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote{margin:0;padding:0}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}

/* ── BASE ── */
html{scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:17px;line-height:1.7;color:var(--brand-dk);
  background:#fff;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{
  font-family:'Playfair Display',Georgia,serif;
  color:var(--brand-dk);line-height:1.2;
}
p{margin-bottom:1.4em}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1.4em 1.8em}
.ep-wrap{max-width:1140px;margin:0 auto;padding:0 32px}

/* ── NAV ── */
.ep-nav{
  background:var(--brand);position:sticky;top:0;z-index:1000;
  box-shadow:0 2px 14px rgba(26,46,74,.2);
}
.ep-nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  max-width:1200px;margin:0 auto;padding:0 32px;height:88px;gap:24px;
}
.ep-nav-logo img{height:72px;width:auto;display:block}
.ep-nav-links{
  display:flex;align-items:center;gap:2px;list-style:none;
  margin:0;padding:0;flex:1;justify-content:center;
}
.ep-nav-links > li{position:relative}
.ep-nav-links > li > a{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  color:rgba(255,255,255,.85);padding:8px 13px;border-radius:6px;
  display:flex;align-items:center;gap:4px;
  transition:color .15s,background .15s;white-space:nowrap;
}
.ep-nav-links > li > a:hover,
.ep-nav-links > li.ep-current > a{
  color:#fff;background:rgba(255,255,255,.13);
}
/* Dropdown */
.ep-dropdown{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:#fff;border-radius:var(--radius);border:1px solid var(--border);
  box-shadow:var(--shadow-m);min-width:220px;padding:8px 0;
  list-style:none;margin:0;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .15s,transform .15s;
  transform:translateX(-50%) translateY(-6px);
}
.ep-has-dropdown:hover .ep-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.ep-dropdown li a{
  display:block;padding:9px 18px;font-size:14px;color:var(--brand-dk);
  font-family:'Inter',sans-serif;font-weight:500;
  transition:background .12s,color .12s;
}
.ep-dropdown li a:hover{background:var(--brand-lt);color:var(--brand)}
/* Arrow */
.ep-has-dropdown > a::after{
  content:'';display:inline-block;
  border:4px solid transparent;border-top-color:rgba(255,255,255,.7);
  margin-top:3px;transition:transform .15s;
}
.ep-has-dropdown:hover > a::after{transform:rotate(180deg);margin-top:-1px}
/* Nav right */
.ep-nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.ep-nav-phone{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  color:rgba(255,255,255,.9);white-space:nowrap;
}
.ep-nav-cta{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;
  background:#fff;color:var(--brand);padding:10px 20px;
  border-radius:8px;white-space:nowrap;
  transition:background .15s,transform .15s;
}
.ep-nav-cta:hover{background:var(--brand-lt);transform:translateY(-1px)}
/* Hamburger */
.ep-menu-toggle{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:4px;
}
.ep-menu-toggle span{
  display:block;width:24px;height:2px;
  background:#fff;border-radius:2px;transition:all .2s;
}

/* ── STICKY SHRINK ── */
.ep-nav.ep-stuck .ep-nav-inner{height:68px}
.ep-nav.ep-stuck .ep-nav-logo img{height:52px}

/* ── PAGE WRAP ── */
#ep-page-wrap{min-height:60vh}

/* ── INNER PAGE HEADER ── */
.ep-page-hero{
  background:var(--brand-lt);padding:64px 32px 56px;text-align:center;
  border-bottom:1px solid var(--border);
}
.ep-page-hero h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(28px,3.5vw,46px);font-weight:800;
  color:var(--brand-dk);letter-spacing:-.5px;margin-bottom:12px;
}
.ep-page-hero p{font-size:17px;color:var(--muted);max-width:560px;margin:0 auto}

/* ── INNER PAGE CONTENT ── */
.ep-inner-content{max-width:900px;margin:0 auto;padding:64px 32px}
.ep-inner-content h2{font-size:clamp(22px,2.5vw,32px);margin-bottom:14px;margin-top:40px}
.ep-inner-content h2:first-child{margin-top:0}
.ep-inner-content h3{font-size:clamp(18px,2vw,24px);margin-bottom:10px;margin-top:32px}
.ep-inner-content ul{margin-bottom:1.4em}

/* ── GLOBAL FOOTER ── */
.ep-gfooter{background:var(--brand-xdk);color:rgba(255,255,255,.5)}
.ep-gfooter-main{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;
  max-width:1140px;margin:0 auto;padding:60px 32px 44px;
}
.ep-gfooter-logo img{height:48px;width:auto;opacity:.85;margin-bottom:14px}
.ep-gfooter-desc{font-size:14px;line-height:1.65;margin-bottom:14px;font-family:'Inter',sans-serif}
.ep-gfooter-phone{font-size:17px;font-weight:700;color:rgba(255,255,255,.85);font-family:'Inter',sans-serif}
.ep-gfooter-email{font-size:13px;color:rgba(255,255,255,.4);margin-top:4px;font-family:'Inter',sans-serif}
.ep-gfooter-col h4{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:rgba(255,255,255,.3);margin-bottom:16px;font-family:'Inter',sans-serif;
}
.ep-gfooter-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ep-gfooter-col ul a{
  font-size:13.5px;color:rgba(255,255,255,.5);transition:color .15s;
  font-family:'Inter',sans-serif;
}
.ep-gfooter-col ul a:hover{color:rgba(255,255,255,.9)}
.ep-gfooter-bottom{
  border-top:1px solid rgba(255,255,255,.07);
  max-width:1140px;margin:0 auto;padding:18px 32px;
  display:flex;justify-content:space-between;align-items:center;
  font-size:13px;flex-wrap:wrap;gap:10px;
  color:rgba(255,255,255,.3);font-family:'Inter',sans-serif;
}
.ep-gfooter-legal a{color:rgba(255,255,255,.3);margin-left:18px;transition:color .15s}
.ep-gfooter-legal a:hover{color:rgba(255,255,255,.7)}

/* ── BLOG ── */
.ep-blog-wrap{max-width:900px;margin:0 auto;padding:64px 32px}
.ep-post-card{border-bottom:1px solid var(--border);padding-bottom:40px;margin-bottom:40px}
.ep-post-card:last-child{border-bottom:none}
.ep-post-card h2{font-size:clamp(20px,2.5vw,28px);margin-bottom:10px}
.ep-post-card h2 a{color:var(--brand-dk);transition:color .15s}
.ep-post-card h2 a:hover{color:var(--brand)}
.ep-post-meta{font-size:13px;color:var(--muted);margin-bottom:12px;font-family:'Inter',sans-serif}
.ep-post-excerpt{font-size:15.5px;color:var(--muted);margin-bottom:14px}
.ep-read-more{font-size:14px;font-weight:700;color:var(--brand);font-family:'Inter',sans-serif}

/* ── BUTTONS (global) ── */
.ep-btn{
  display:inline-flex;align-items:center;gap:7px;
  font-family:'Inter',sans-serif;font-size:15px;font-weight:700;
  padding:13px 26px;border-radius:9px;transition:all .2s;
  cursor:pointer;border:none;white-space:nowrap;
}
.ep-btn-primary{background:var(--brand);color:#fff;box-shadow:0 3px 14px rgba(74,120,190,.3)}
.ep-btn-primary:hover{background:var(--brand-h);transform:translateY(-1px)}
.ep-btn-outline{background:transparent;color:var(--brand-dk);border:2px solid var(--border);padding:12px 26px}
.ep-btn-outline:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-lt)}

/* ── MOBILE ── */
@media(max-width:900px){
  .ep-nav-links,.ep-nav-phone{display:none}
  .ep-menu-toggle{display:flex}
  .ep-nav.ep-menu-open .ep-nav-links{
    display:flex;flex-direction:column;align-items:flex-start;
    position:absolute;top:88px;left:0;right:0;
    background:var(--brand-dk);padding:16px 0 24px;gap:0;
  }
  .ep-nav.ep-menu-open .ep-nav-links > li > a{
    padding:12px 24px;border-radius:0;width:100%;
  }
  .ep-nav.ep-menu-open .ep-dropdown{
    position:static;transform:none;opacity:1;visibility:visible;
    pointer-events:auto;box-shadow:none;border:none;
    border-radius:0;padding:0 0 0 16px;
    background:rgba(0,0,0,.2);
  }
  .ep-nav.ep-menu-open .ep-has-dropdown:hover .ep-dropdown{transform:none}
  .ep-gfooter-main{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:600px){
  .ep-nav-inner{padding:0 20px}
  .ep-gfooter-main{grid-template-columns:1fr}
  .ep-page-hero{padding:48px 20px 40px}
  .ep-inner-content{padding:40px 20px}
}
