:root{
  /* Overwritten by chosen palette via <style id="acef-palette"> */
  --acef-navy:#0A2540;
  --acef-emerald:#1FA774;
  --acef-gold:#D4AF37;
  --acef-light:#F5F5F5;
  --acef-charcoal:#333333;

  --acef-radius:16px;
  --acef-shadow: 0 12px 30px rgba(10,37,64,.10);
  --acef-max: 1200px;
  --acef-content: 920px;
  --acef-gap: 1.25rem;
}

*{box-sizing:border-box}
body.acef{
  margin:0;
  font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;
  color: var(--acef-charcoal);
  background: #fff;
  line-height:1.6;
}

a{color:var(--acef-emerald); text-decoration:none}
a:hover{color:var(--acef-navy); text-decoration:underline}

.wrap{max-width:var(--acef-max); margin:0 auto; padding:0 18px;}
.site{min-height:100dvh; display:flex; flex-direction:column;}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid #eee;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; position:relative;}
.brand{display:flex; align-items:center; gap:12px; min-width:160px;}
.brand a{color:var(--acef-navy); font-weight:900; letter-spacing:-.02em}
.custom-logo{max-height:60px; width:auto}

.nav__list{display:flex; gap:14px; list-style:none; margin:0; padding:0; flex-wrap:wrap; align-items:center;}
.nav__list a{display:inline-flex; padding:8px 10px; border-radius:10px; color:var(--acef-navy); font-weight:650;}
.nav__list a:hover{background:var(--acef-light); text-decoration:none}

/* Homepage polish (ACE Authority Homepage v2) */
.ace-home-wrap .entry-content{
  display:flex;
  flex-direction:column;
  gap: 18px;
}

.ace-home-section,
.ace-home-hero{
  background:#fff;
  border:1px solid #eee;
  border-radius: var(--acef-radius);
  box-shadow: var(--acef-shadow);
  padding: 22px;
}

.ace-home-hero h1{ margin:0 0 8px; }
.ace-home-hero-sub{
  font-size: 1.08rem;
  margin: 0 0 10px;
  opacity: .9;
}

.ace-home-hero-ctas{
  margin-top: 12px;
  gap: 10px;
}

/* Pillars: manual grid cards */
.ace-home-pillars-grid{
  display:grid;
  gap:16px;
  margin-top:12px;

  /* default: responsive */
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}

/* Make 6 pillars look perfectly even on desktop/tablet widths */
@media (min-width: 980px){
  .ace-home-pillars-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 6 => 2 rows of 3 */
  }
}
@media (min-width: 620px) and (max-width: 979px){
  .ace-home-pillars-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 6 => 3 rows of 2 */
  }
}

.ace-home-pillar-card{
  border:1px solid #eee;
  border-radius:14px;
  padding:16px;
  background:#fff;
  transition: transform .16s ease, box-shadow .16s ease;

  /* Make cards equal-height + keep button at bottom */
  display:flex;
  flex-direction:column;
}

.ace-home-pillar-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 18px rgba(0,0,0,.06);
}

.ace-home-pillar-title{
  margin:0 0 10px;
}

.ace-home-pillar-desc{
  margin:0 0 14px;
  color:#555;
}

/* Actions pinned to bottom */
.ace-home-pillar-actions{
  margin-top:auto;
}

/* Button style */
.ace-home-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  font-weight:750;
  border:1px solid #ddd;
  color: var(--acef-navy);
  background: transparent;
  text-decoration:none;
}

.ace-home-btn:hover{
  background: var(--acef-light);
  text-decoration:none;
  color: var(--acef-navy);
}
/* Universal cards grid (used by helper for Top Picks + Latest Guides) */
.ace-home-cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
  margin-top:12px;
}

/* Card */
.ace-home-post-card{
  border:1px solid #eee;
  border-radius:14px;
  overflow:hidden;
  padding: 14px;
  background:#fff;
}
.ace-home-post-title{
  margin:10px 0 8px;
}
.ace-home-post-excerpt{
  margin:0 0 10px;
}
.ace-home-post-link{
  margin:0;
}

/* Thumbnail (helper) */
.ace-home-thumb{
  display:block;
  border-radius:12px;
  overflow:hidden;
  background:#f3f4f6;
  aspect-ratio:16/9;
}
.ace-home-thumb-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ace-home-thumb-placeholder{
  width:100%;
  height:100%;
}

/* Category pill (helper optional) */
.ace-home-card-meta{
  margin-top:10px;
}
.ace-home-cat-pill{
  display:inline-block;
  font-size:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid #eee;
  text-decoration:none;
}
.ace-home-cat-pill:hover{
  text-decoration:none;
  background: var(--acef-light);
}

/* Longform readability */
.ace-home-longform{
  line-height: 1.7;
}
.ace-home-longform h2,
.ace-home-longform h3{
  scroll-margin-top: 90px;
}
/* Mobile nav (burger) */
.nav-toggle{
  display:none;
  width:44px;height:44px;
  border:1px solid #ddd;
  background:#fff;
  border-radius:12px;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:10px;
  cursor:pointer;
}
.nav-toggle__bar{
  display:block;
  height:2px;
  width:100%;
  background: var(--acef-navy);
  border-radius:2px;
}

@media(max-width: 860px){
  .nav-toggle{display:inline-flex;}
  /* hide menu by default */
  #site-nav{display:none;}
  #site-nav.is-open{
    display:block;
    position:absolute;
    left:18px; right:18px;
    top: calc(100% + 10px);
    background:#fff;
    border:1px solid #eee;
    border-radius:16px;
    box-shadow: var(--acef-shadow);
    padding:12px;
  }
  .nav__list{flex-direction:column; align-items:stretch; gap:6px;}
  .nav__list a{padding:12px 12px; border-radius:12px;}
}

/* Main */
.main{flex:1}
.content-grid{display:grid; grid-template-columns: 1fr; gap: calc(var(--acef-gap) * 1.5); padding: 22px 0 40px;}
@media(min-width: 980px){
  .content-grid.has-sidebar{grid-template-columns: minmax(0, 1fr) 320px;}
}

.card{
  background:#fff;
  border:1px solid #eee;
  border-radius: var(--acef-radius);
  box-shadow: var(--acef-shadow);
  overflow:hidden;
}
.card__body{padding: 18px 18px 20px;}
.card__media img{display:block; width:100%; height:auto;}
.card__title{margin:0 0 10px; line-height:1.2}
.card__title a{color:var(--acef-navy)}
.card__title a:hover{text-decoration:underline}
.card__excerpt{margin:0 0 12px; color:#555}

.prose{max-width: var(--acef-content); padding:22px;}
.prose h1,.prose h2,.prose h3{color:var(--acef-navy); line-height:1.2}
.prose h1{font-size:clamp(1.6rem, 2.6vw, 2.4rem); margin:0 0 14px}
.prose h2{font-size:clamp(1.25rem, 2.1vw, 1.8rem); margin:32px 0 12px}
.prose p{margin:0 0 14px}
.prose img{max-width:100%; height:auto; border-radius: 14px}

.meta{display:flex; flex-wrap:wrap; gap:10px; color:#666; font-size:.9rem; margin: 0 0 14px;}
.badge{display:inline-flex; align-items:center; padding: 3px 10px; border-radius:999px; background: var(--acef-light); color: var(--acef-navy); font-weight:650; font-size:.8rem;}

/* Blog grids */
.post-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 18px;
}
@media(min-width: 680px){
  .post-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media(min-width: 1080px){
  .post-grid{grid-template-columns: repeat(3, minmax(0, 1fr));}
}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; padding: 10px 14px; border-radius: 12px; font-weight: 750; border:1px solid transparent; cursor:pointer;}
.btn--primary{background:var(--acef-emerald); color:#fff}
.btn--primary:hover{background:var(--acef-navy); color:#fff; text-decoration:none}
.btn--ghost{background:transparent; border-color:#ddd; color:var(--acef-navy)}
.btn--ghost:hover{background:var(--acef-light); text-decoration:none}

/* Footer */
.site-footer{border-top: 1px solid #eee; padding: 26px 0; background:#fff;}
.footer-inner{display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; align-items:center;}
.small{font-size:.9rem; color:#666}

/* Widgets */
.widget{padding:16px; border:1px solid #eee; border-radius:16px}
.widget__title{margin:0 0 10px; color:var(--acef-navy); font-size:1.05rem}

/* Pagination */
.pagination, .nav-links{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.page-numbers{display:inline-flex; padding:8px 12px; border:1px solid #ddd; border-radius:10px; color:var(--acef-navy); font-weight:650}
.page-numbers.current{background:var(--acef-light); border-color: var(--acef-light)}

/* Comment form tweaks */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea{
  width:100%;
  border:1px solid #ddd;
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
}

/* Simple form styling (used by Contact page blocks / basic HTML forms) */
.prose input[type="text"],
.prose input[type="email"],
.prose input[type="url"],
.prose input[type="tel"],
.prose textarea,
.prose select{
  width:100%;
  border:1px solid #ddd;
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
  background:#fff;
}
.prose textarea{min-height:140px; resize:vertical;}
.prose button,
.prose input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  border:1px solid var(--acef-navy);
  background: var(--acef-navy);
  color:#fff;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
}
.prose button:hover,
.prose input[type="submit"]:hover{opacity:.92}

/* Accessibility helpers */
.screen-reader-text{
  border:0 !important;
  clip:rect(1px,1px,1px,1px) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  height:1px !important;
  margin:-1px !important;
  overflow:hidden !important;
  padding:0 !important;
  position:absolute !important;
  width:1px !important;
  white-space:nowrap !important;
}

/* Burger icon (SVG) */
.nav-toggle{ color: var(--acef-navy); }
.nav-toggle__icon{ display:block; }
