/* Custom palette overrides */
:root{
  /* very light off‑white backgrounds for page sections */
  --hap-bg:#fdfaf7;
  --hap-bg-2:#ffffff;
  /* surfaces such as cards remain pure white */
  --hap-surface:#ffffff;
  /* primary text colour is a dark grey rather than near‑black */
  --hap-text:#333333;
  /* muted text is a mid grey for subtler contrast */
  --hap-muted:#666666;
  /* divider lines use a cool light grey */
  --hap-line:#eaeaea;
  /* brand accents (match site) */
  --hap-brand:#ff7e5f;
  --hap-brand-2:#ff9a83;
  /* secondary accent (match site) */
  --hap-teal:#2d8a8a;
  --hap-pink:#f37aa8;
  /* shadows are softer and more natural */
  --hap-shadow:0 6px 18px rgba(0,0,0,.05);
  --hap-shadow-hover:0 10px 26px rgba(0,0,0,.08);
  /* border radii aligned with homepage */
  --hap-radius:18px;
  --hap-radius-sm:14px;
  /* container width grows to 1200px and includes generous horizontal padding */
  --hap-container:min(1200px, calc(100% - 40px));
}

.hap-container{
  width:100%;
  max-width:var(--hap-container);
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
}
.main-header-bar,.main-header-container,.ast-builder-grid-row,.ast-builder-menu,.ast-builder-menu-1,.main-navigation,.main-header-menu,.main-header-menu .sub-menu,.ast-desktop .main-header-menu,.ast-desktop .main-header-menu .sub-menu,.ast-nav-menu,.ast-nav-menu .sub-menu,.site-header-primary-section-left,.site-header-primary-section-right{overflow:visible !important;}
li[data-hap-mega-item="1"],.menu-item.hap-mega-enabled{position:relative;}
li[data-hap-mega-item="1"] > a,.menu-item.hap-mega-enabled > a{display:flex;align-items:center;gap:6px;}

.hap-mega-menu{
  --hap-mega-shift:0px;
  position:absolute;
  left:50%;
  top:100%;
  width:min(1320px, calc(100vw - 32px));
  max-width:min(1320px, calc(100vw - 32px));
  background:linear-gradient(180deg,#fff7f3 0%,#fff1ea 100%);
  box-shadow:0 22px 55px rgba(44,25,18,.15);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(calc(-50% + var(--hap-mega-shift))) translateY(8px);
  transition:opacity .22s ease, visibility .22s ease, transform .22s ease;
  z-index:99999;
  border:1px solid rgba(255,109,59,.08);
  border-radius:28px;
}
.menu-item.hap-mega-enabled:hover>.hap-mega-menu,
.menu-item.hap-mega-enabled.hap-open>.hap-mega-menu,
li[data-hap-mega-item="1"]:hover>.hap-mega-menu,
li[data-hap-mega-item="1"].hap-open>.hap-mega-menu,
.menu-item.hap-open>.hap-mega-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(calc(-50% + var(--hap-mega-shift))) translateY(0);
}
.hap-mega-inner{max-width:1320px;margin:0 auto;padding:28px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;}
.hap-mega-head-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,109,59,.18);margin-bottom:18px;}
.hap-mega-head-row span{font-size:15px;font-weight:800;border:2px solid rgba(31,31,36,.42);padding:8px 12px;text-transform:uppercase;border-radius:12px;letter-spacing:.05em;}
.hap-mega-all{font-size:14px;font-weight:800;color:var(--hap-brand);text-decoration:none;}
.hap-mega-all:hover{text-decoration:underline;}
.hap-mega-grid{display:grid;gap:16px 22px;}
.hap-mega-grid.hap-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}
.hap-mega-grid.hap-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.hap-mega-grid.hap-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.hap-mega-grid.hap-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.hap-mega-col{display:flex;flex-direction:column;gap:12px;}
.hap-mega-cat{display:block;text-decoration:none;color:var(--hap-text);background:rgba(255,255,255,.72);border:1px solid rgba(255,109,59,.10);border-radius:16px;padding:14px 16px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.hap-mega-cat:hover{transform:translateY(-2px);box-shadow:var(--hap-shadow);border-color:rgba(255,109,59,.22);}
.hap-mega-cat-name{display:block;font-size:16px;line-height:1.4;font-weight:700;}
.hap-mega-cat-count{display:block;margin-top:3px;font-size:12px;color:var(--hap-muted);}
.hap-mega-right,.hap-mega-featured{display:flex;flex-direction:column;gap:16px;}
.hap-mega-featured-title{margin:0;font-size:18px;line-height:1.2;color:var(--hap-text);}
.hap-mega-featured-empty{padding:18px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(255,109,59,.10);}
.hap-mega-featured-empty p{margin:0;color:var(--hap-muted);}
.hap-mega-post{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;background:rgba(255,255,255,.72);border:1px solid rgba(255,109,59,.10);border-radius:16px;padding:12px;}
.hap-mega-post:hover{box-shadow:var(--hap-shadow);}
.hap-mega-thumb{width:82px;height:64px;object-fit:cover;flex-shrink:0;background:#f2e6e6;border-radius:12px;}
.hap-mega-thumb.placeholder{background:linear-gradient(135deg,#ffd8c9,#ffeae2);}
.hap-mega-post-title{font-size:15px;font-weight:700;margin:0 0 4px;line-height:1.35;color:var(--hap-text);}
.hap-mega-post-date{font-size:12px;color:var(--hap-muted);}
.hap-mobile-arrow{margin-left:6px;display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid currentColor;transform:rotate(0deg);transition:transform .2s ease;}
.menu-item.hap-open > a .hap-mobile-arrow,li[data-hap-mega-item="1"].hap-open > a .hap-mobile-arrow{transform:rotate(180deg);}

.hap-topics-page,.hap-category-page{background:linear-gradient(180deg,var(--hap-bg) 0%, var(--hap-bg-2) 100%);}
.hap-topics-hero{padding:42px 0 20px;}
.hap-topics-hero-card,.hap-category-hero-inner{position:relative;overflow:hidden;border-radius:32px;background:linear-gradient(135deg,#fff5f0 0%,#ffece5 55%,#fff8f6 100%);border:1px solid rgba(255,109,59,.10);box-shadow:var(--hap-shadow);}
.hap-topics-hero-card{padding:52px 40px 34px;}
.hap-category-page{padding:24px 0 80px;}
.hap-category-hero{margin-bottom:26px;}
.hap-category-hero-inner{padding:54px 46px 38px;}
.hap-topics-hero-card:before,.hap-topics-hero-card:after,.hap-category-hero-inner::before,.hap-category-hero-inner::after{content:"";position:absolute;border-radius:999px;background:rgba(255,109,59,.10);}
.hap-topics-hero-card:before{width:300px;height:120px;right:-60px;top:26px;}
.hap-topics-hero-card:after{width:240px;height:240px;left:-80px;bottom:-110px;}
.hap-category-hero-inner::before{top:-86px;right:-62px;width:250px;height:250px;}
.hap-category-hero-inner::after{bottom:-112px;left:-74px;width:270px;height:270px;}
.hap-topics-kicker,.hap-category-kicker{position:relative;z-index:2;display:inline-block;color:var(--hap-brand);font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.hap-topics-kicker{margin-bottom:12px;}
.hap-category-kicker{margin-bottom:14px;}
.hap-topics-title,.hap-category-title{position:relative;z-index:2;margin:0 0 10px;color:var(--hap-text);font-weight:900;letter-spacing:-.04em;}
.hap-topics-title{font-size:clamp(34px,6vw,68px);line-height:.98;}
.hap-category-title{font-size:clamp(38px,6vw,74px);line-height:.95;}
.hap-topics-desc,.hap-category-desc{position:relative;z-index:2;max-width:760px;font-size:18px;line-height:1.75;color:#534d57;}
.hap-topics-directory{padding:18px 0 70px;}
.hap-topics-search{margin:20px 0 28px;max-width:560px;position:relative;}
.hap-topics-search input[type="text"]{width:100%;min-height:56px;padding:14px 16px;font-size:16px;border:1px solid rgba(255,109,59,.18);border-radius:18px;background:#fff;box-shadow:var(--hap-shadow);}
#hap-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid rgba(255,109,59,.18);border-radius:16px;z-index:10;display:none;max-height:260px;overflow-y:auto;box-shadow:var(--hap-shadow);}
#hap-search-results a{display:block;padding:12px 14px;text-decoration:none;color:var(--hap-text);border-bottom:1px solid #f5e2db;}
#hap-search-results a:last-child{border-bottom:none;}
#hap-search-results a:hover{background:#fff6f2;}
.hap-topics-letters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px;}
.hap-topics-letters a{min-width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:#fff;color:var(--hap-text);border:1px solid rgba(255,109,59,.12);box-shadow:var(--hap-shadow);font-weight:800;}
.hap-letter-group{margin-bottom:30px;background:#fff;border:1px solid rgba(255,109,59,.10);border-radius:24px;padding:24px;box-shadow:var(--hap-shadow);}
.hap-letter-group h2{margin:0 0 14px;color:var(--hap-text);font-size:28px;}
.hap-letter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;border-top:1px solid #f6e5df;padding-top:18px;}
.hap-letter-grid a{text-decoration:none;color:var(--hap-text);background:#fff8f6;border:1px solid rgba(255,109,59,.10);border-radius:16px;padding:14px 16px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.hap-letter-grid a strong{font-size:12px;color:var(--hap-muted);white-space:nowrap;}
.hap-letter-grid a:hover{color:var(--hap-brand);}
.hap-category-section-label{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#443d48;margin:0 0 18px;}
.hap-category-section-label:before{content:"";width:34px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--hap-teal),var(--hap-brand));}
.hap-subcat-cards{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:20px;margin:0 0 34px;}
.hap-subcat-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid rgba(255,109,59,.10);border-radius:24px;padding:22px 20px;text-decoration:none;color:inherit;box-shadow:var(--hap-shadow);transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;}
.hap-subcat-card:hover{transform:translateY(-4px);box-shadow:var(--hap-shadow-hover);border-color:rgba(255,109,59,.22);}
.hap-subcat-card-badge{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#ffe5da,#fff2ec);color:var(--hap-brand);font-size:22px;}
.hap-subcat-card-title{margin:0;font-size:22px;line-height:1.15;color:var(--hap-text);}
.hap-subcat-card-desc{margin:0;color:var(--hap-muted);font-size:15px;line-height:1.6;}
.hap-subcat-card-meta{margin-top:auto;color:var(--hap-brand);font-weight:800;font-size:14px;}
.hap-post-grid{display:grid;grid-template-columns:repeat(12, minmax(0,1fr));gap:26px;}
.hap-post-card{background:var(--hap-surface);border:1px solid rgba(255,109,59,.10);border-radius:var(--hap-radius);overflow:hidden;box-shadow:var(--hap-shadow);transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;}
.hap-post-card:hover{transform:translateY(-4px);box-shadow:var(--hap-shadow-hover);border-color:rgba(255,109,59,.22);}
.hap-post-grid .hap-post-card.is-featured{grid-column:span 12;display:grid;grid-template-columns:1.15fr .85fr;min-height:470px;}
.hap-post-grid .hap-post-card:not(.is-featured){grid-column:span 6;}
.hap-post-thumb{display:block;text-decoration:none;overflow:hidden;background:#f7eae5;}
.hap-post-card.is-featured .hap-post-thumb{min-height:470px;height:100%;}
.hap-post-card:not(.is-featured) .hap-post-thumb{aspect-ratio:16/10;}
.hap-post-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.hap-post-card:hover .hap-post-thumb img{transform:scale(1.03);}
.hap-post-thumb.placeholder{display:block;width:100%;min-height:240px;background:linear-gradient(135deg,#ffe5da,#fff2ec);}
.hap-post-content{display:flex;flex-direction:column;gap:12px;padding:24px 24px 22px;height:100%;}
.hap-post-card.is-featured .hap-post-content{padding:38px 36px;justify-content:center;}
.hap-post-meta{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#7a7180;}
.hap-post-title{margin:0;font-size:30px;line-height:1.12;letter-spacing:-.02em;color:var(--hap-text);}
.hap-post-title a{text-decoration:none;color:inherit;}
.hap-post-excerpt{margin:0;color:var(--hap-muted);font-size:16px;line-height:1.7;}
.hap-read-more{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;background:linear-gradient(90deg,var(--hap-brand),var(--hap-brand-2));color:#fff;text-decoration:none;font-weight:800;width:max-content;box-shadow:var(--hap-shadow);}
.hap-pagination{margin-top:26px;}
.hap-pagination .nav-links{display:flex;gap:10px;flex-wrap:wrap;}
.hap-pagination .page-numbers,.hap-no-posts{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 16px;border-radius:16px;background:#fff;border:1px solid rgba(255,109,59,.10);box-shadow:var(--hap-shadow);text-decoration:none;color:var(--hap-text);}
.hap-pagination .page-numbers.current{background:linear-gradient(90deg,var(--hap-brand),var(--hap-brand-2));color:#fff;}

@media (max-width:1200px){
  .hap-mega-inner{grid-template-columns:minmax(0,1fr) 300px;}
  .hap-subcat-cards{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:921px){
  .hap-mobile-arrow{display:inline-block;}
  .hap-mega-menu{position:static;width:100%;max-width:none;margin-top:10px;border-radius:22px;transform:none !important;box-shadow:none;display:none;opacity:1;visibility:visible;pointer-events:auto;}
  .menu-item.hap-mega-enabled.hap-open>.hap-mega-menu,li[data-hap-mega-item="1"].hap-open>.hap-mega-menu,.menu-item.hap-open>.hap-mega-menu{display:block;}
  .menu-item.hap-mega-enabled:hover>.hap-mega-menu,li[data-hap-mega-item="1"]:hover>.hap-mega-menu,.menu-item:hover>.hap-mega-menu{display:none;}
  .menu-item.hap-mega-enabled.hap-open:hover>.hap-mega-menu,li[data-hap-mega-item="1"].hap-open:hover>.hap-mega-menu,.menu-item.hap-open:hover>.hap-mega-menu{display:block;}
  .hap-mega-inner{grid-template-columns:1fr;padding:18px;gap:18px;}
  .hap-mega-grid,.hap-mega-grid.hap-cols-2,.hap-mega-grid.hap-cols-3,.hap-mega-grid.hap-cols-4{grid-template-columns:1fr;}
  .hap-subcat-cards,.hap-letter-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hap-post-grid .hap-post-card.is-featured,.hap-post-grid .hap-post-card:not(.is-featured){grid-column:span 12;display:block;min-height:0;}
  .hap-post-card.is-featured .hap-post-thumb{min-height:280px;}
}
@media (min-width:922px){
  .hap-mobile-arrow{display:none;}
  .menu-item > .hap-mega-menu{display:block;}
}
@media (max-width:680px){
  .hap-topics-hero-card,.hap-category-hero-inner{padding:34px 24px 24px;}
  .hap-subcat-cards,.hap-letter-grid{grid-template-columns:1fr;}
  .hap-category-title{font-size:42px;}
  .hap-topics-title{font-size:40px;}
}


.ast-desktop-header-content,.ast-mobile-header-wrap,.ast-above-header-wrap,.site-primary-header-wrap,.ast-primary-sticky-header-active{overflow:visible !important;}
.hap-mega-menu{will-change:transform,opacity;}

/*
 * -----------------------------------------------------------------------------
 * Custom design overrides
 *
 * The following rules override the default plugin styles with a softer colour
 * palette, subtler shadows and a more balanced layout inspired by the site’s
 * homepage design.  Placing overrides at the end of the stylesheet ensures
 * they take precedence without altering core plugin logic.
 * -------------------------------------------------------------------------- */

/* Mega menu panel tweaks */
.hap-mega-menu{
  background:var(--hap-surface) !important;
  box-shadow:var(--hap-shadow) !important;
  border:1px solid var(--hap-line) !important;
  border-radius:var(--hap-radius) !important;
}
.hap-mega-head-row{
  border-bottom:1px solid var(--hap-line);
}
.hap-mega-head-row span{
  border:2px solid var(--hap-line);
  color:var(--hap-text);
}
.hap-mega-cat{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
}
.hap-mega-cat:hover{
  border-color:var(--hap-brand);
  box-shadow:var(--hap-shadow-hover);
}
.hap-mega-featured-empty{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
}
.hap-mega-featured-empty p{
  color:var(--hap-muted);
}
.hap-mega-post{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
}
.hap-mega-post:hover{
  border-color:var(--hap-brand);
  box-shadow:var(--hap-shadow-hover);
}
.hap-mega-post-title{
  color:var(--hap-text);
}
.hap-mega-post-date{
  color:var(--hap-muted);
}
.hap-mega-thumb.placeholder{
  background:var(--hap-bg);
}

/* Hero card and category hero tweaks */
.hap-topics-hero-card,
.hap-category-hero-inner{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}
.hap-topics-hero-card:before,
.hap-topics-hero-card:after,
.hap-category-hero-inner::before,
.hap-category-hero-inner::after{
  background:rgba(0,0,0,.03);
}

/* Search box and results styling */
.hap-topics-search input[type="text"]{
  border:1px solid var(--hap-line);
  background:var(--hap-surface);
  box-shadow:var(--hap-shadow);
}
#hap-search-results{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}
#hap-search-results a{
  border-bottom:1px solid var(--hap-line);
}
#hap-search-results a:hover{
  background:var(--hap-bg-2);
}

/* Topic letter navigation */
.hap-topics-letters a{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}

/* Letter groups and listing */
.hap-letter-group{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}
.hap-letter-grid a{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
}

/* Section labels */
.hap-category-section-label{
  color:var(--hap-text);
}
.hap-category-section-label:before{
  background:linear-gradient(90deg,var(--hap-teal),var(--hap-brand));
}

/* Subtopic card styling */
.hap-subcat-card{
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}
.hap-subcat-card:hover{
  border-color:var(--hap-brand);
  box-shadow:var(--hap-shadow-hover);
}
.hap-subcat-card-badge{
  background:linear-gradient(135deg,#fff7f4,#fffdfc);
  color:var(--hap-brand);
}
.hap-subcat-card-desc{
  color:var(--hap-muted);
}
.hap-subcat-card-meta{
  color:var(--hap-brand);
}

/* Post cards */
.hap-post-card{
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
}
.hap-post-card:hover{
  border-color:var(--hap-brand);
  box-shadow:var(--hap-shadow-hover);
}
.hap-post-meta{
  color:var(--hap-muted);
}
.hap-post-title{
  color:var(--hap-text);
}
.hap-post-excerpt{
  color:var(--hap-muted);
}
.hap-post-thumb.placeholder{
  background:var(--hap-bg);
}
.hap-pagination .page-numbers,
.hap-no-posts{
  background:var(--hap-surface);
  border:1px solid var(--hap-line);
  box-shadow:var(--hap-shadow);
  color:var(--hap-text);
}

/* Ensure the entire topics/category pages centre and span the full available width */
main.hap-topics-page,
main.hap-category-page{
  width:100%;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}

/* --------------------------------------------------------------------------
 * Homepage-aligned layout + less-cartoon styling (without touching logic)
 * ----------------------------------------------------------------------- */

/* Match site background (including outside the content container) */
body.hap-ultimate-page{
  background:var(--hap-bg) !important;
}

/* Astra (and similar) layouts can reserve a blank sidebar area on archives.
   Force full-width content ONLY on plugin pages. */
body.hap-ultimate-page .widget-area,
body.hap-ultimate-page #secondary,
body.hap-ultimate-page .sidebar-main,
body.hap-ultimate-page .sidebar{
  display:none !important;
}
body.hap-ultimate-page .content-area,
body.hap-ultimate-page .site-content .content-area{
  width:100% !important;
  max-width:100% !important;
}
body.hap-ultimate-page .site-content .ast-container,
body.hap-ultimate-page .site-content .container,
body.hap-ultimate-page .site-content .site-content-inner{
  max-width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
  display:block !important;
}

/* Softer, cleaner page background (remove pink gradients) */
.hap-topics-page,
.hap-category-page{
  background:var(--hap-bg) !important;
}

/* Hero cards: remove decorative blobs and use clean homepage-style surfaces */
.hap-topics-hero-card,
.hap-category-hero-inner{
  border-radius:24px;
  background:var(--hap-surface) !important;
  border:1px solid var(--hap-line) !important;
}
.hap-topics-hero-card:before,
.hap-topics-hero-card:after,
.hap-category-hero-inner::before,
.hap-category-hero-inner::after{
  content:none !important;
  display:none !important;
}

/* Typography tweaks (closer to homepage tone) */
.hap-topics-kicker,
.hap-category-kicker{
  letter-spacing:.10em;
}
.hap-topics-desc,
.hap-category-desc{
  color:var(--hap-muted);
}

/* Subtopic badges: icon, not emoji (more premium look) */
.hap-subcat-card-badge{
  background:linear-gradient(135deg, rgba(45,138,138,.10), rgba(255,126,95,.10));
  border:1px solid var(--hap-line);
  color:var(--hap-teal);
}
.hap-icon-paw{display:block;}
