/*
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra Child Theme for J&L Petersen Inc.
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ==========================================================================
   DESIGN TOKENS
   ========================================================================== */

:root {
  /* Brand */
  --jlp-navy:        #213463;
  --jlp-navy-deep:   #0e1527;
  --jlp-navy-90:     #2a3f73;
  --jlp-red:         #c1232f;
  --jlp-red-hover:   #a51e28;

  /* Surfaces */
  --jlp-bg:          #faf9f7;
  --jlp-bg-warm:     #f3f1ec;
  --jlp-bg-white:    #fefefe;

  /* Text — navy-tinted, never pure gray */
  --jlp-text:        #1a2340;
  --jlp-text-mid:    #4a5571;
  --jlp-text-soft:   #6b7893;

  /* Text on dark */
  --jlp-on-dark:     #e8e4dc;
  --jlp-on-dark-mid: #b8b2a4;
  --jlp-on-dark-dim: #8a8477;

  /* Spacing scale (4pt) */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px;
  --sp-4: 16px; --sp-6: 24px; --sp-8: 32px;
  --sp-12: 48px; --sp-16: 64px; --sp-24: 96px;
  --sp-32: 128px;

  /* Section padding — fluid, tighter */
  --section-y: clamp(48px, 5vw, 72px);
  --section-x: clamp(20px, 5vw, 48px);

  /* Borders */
  --border-subtle: 1px solid rgba(26, 35, 64, 0.08);
  --border-on-dark: 1px solid rgba(232, 228, 220, 0.12);

  /* Radius */
  --radius-sm: 3px;
  --radius-md: 6px;

  /* Transitions */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration: 0.25s;
}


/* ==========================================================================
   TYPOGRAPHY — Fraunces (display) + Source Sans 3 (body)
   ========================================================================== */

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: 'Source Sans 3', 'Segoe UI', sans-serif;
  color: var(--jlp-navy);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

body,
p, li, td, th, label, input, textarea, select, button {
  font-family: 'Source Sans 3', 'Segoe UI', sans-serif;
  color: var(--jlp-text);
  font-size: 17px;
  line-height: 1.7;
}

a {
  color: var(--jlp-red);
  text-decoration: none;
  transition: color var(--duration) var(--ease-out);
}

a:hover {
  color: var(--jlp-navy);
}


/* ==========================================================================
   GLOBAL
   ========================================================================== */

body {
  background: var(--jlp-bg);
}

/* Hide page titles and their container on pages with custom hero sections */
.home .entry-title,
.page-id-5286 .entry-title,
.page-id-5287 .entry-title,
.page-id-5288 .entry-title,
.home .ast-archive-description {
  display: none !important;
}

/* Kill empty header area only on custom-layout pages */
.home .entry-header,
.page-id-5286 .entry-header,
.page-id-5287 .entry-header,
.page-id-5288 .entry-header {
  display: none !important;
}

.home .entry-content,
.page-id-5286 .entry-content,
.page-id-5287 .entry-content,
.page-id-5288 .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Kill ALL top spacing between nav and content on custom pages */
.home .site-content,
.page-id-5286 .site-content,
.page-id-5287 .site-content,
.page-id-5288 .site-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.home .content-area,
.page-id-5286 .content-area,
.page-id-5287 .content-area,
.page-id-5288 .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.home .ast-primary-content,
.page-id-5286 .ast-primary-content,
.page-id-5287 .ast-primary-content,
.page-id-5288 .ast-primary-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Kill Astra's above-header bar and breadcrumbs spacing */
.ast-above-header-bar {
  display: none !important;
}

/* Breadcrumbs — keep on shop, hide on custom pages */
.home .ast-breadcrumbs-wrapper,
.page-id-5286 .ast-breadcrumbs-wrapper,
.page-id-5287 .ast-breadcrumbs-wrapper,
.page-id-5288 .ast-breadcrumbs-wrapper {
  display: none !important;
}


/* ==========================================================================
   HEADER & NAV
   ========================================================================== */

.main-header-bar {
  border-bottom: var(--border-subtle);
  box-shadow: none !important;
}

.site-title a,
.ast-site-identity .site-title a {
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 800 !important;
  color: var(--jlp-navy) !important;
  font-size: 22px !important;
  letter-spacing: -0.02em !important;
}

.main-header-menu .menu-link {
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 16px !important;
  letter-spacing: 0.06em !important;
  color: var(--jlp-text-mid) !important;
  transition: color var(--duration) var(--ease-out) !important;
}

.main-header-menu .menu-link:hover {
  color: var(--jlp-red) !important;
}

/* Only highlight current page, not anchor links */
.main-header-menu .current-menu-item:not(.menu-item-type-custom) .menu-link {
  color: var(--jlp-red) !important;
}

/* Cart icon — clean, no border, no highlight */
.ast-site-header-cart {
  padding: 0 !important;
  margin-left: 8px !important;
}

.ast-site-header-cart .ast-cart-menu-wrap,
.ast-menu-cart-with-border .ast-cart-menu-wrap,
.ast-site-header-cart .ast-addon-cart-wrap {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  outline: none !important;
  border-color: transparent !important;
}

.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .count,
.ast-site-header-cart .ast-count-text {
  background: none !important;
  color: var(--jlp-red) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-width: 0 !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
  border-radius: 0 !important;
  padding: 0 0 0 3px !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  display: inline !important;
  position: static !important;
}

/* Cart icon — just color it, let Astra handle the rest */
.ast-site-header-cart svg {
  color: var(--jlp-navy) !important;
  fill: var(--jlp-navy) !important;
}

.ast-site-header-cart .ast-cart-menu-wrap {
  position: relative !important;
}

/* Remove border from cart wrap */
.ast-menu-cart-with-border .ast-cart-menu-wrap,
.ast-menu-cart-outline .ast-cart-menu-wrap {
  border: none !important;
  padding: 0 !important;
}

/* Cart count — small red circle next to cart icon */
.ast-site-header-cart .count,
.ast-site-header-cart span.count,
.ast-cart-menu-wrap .count,
.ast-menu-cart-with-border .count {
  all: unset !important;
  background: var(--jlp-red) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  font-family: 'Source Sans 3', sans-serif !important;
  width: 16px !important;
  height: 16px !important;
  line-height: 16px !important;
  border-radius: 50% !important;
  text-align: center !important;
  display: inline-block !important;
  vertical-align: top !important;
  margin-left: 2px !important;
  margin-top: -2px !important;
}

.ast-site-header-cart .ast-count-text {
  all: unset !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 16px !important;
}

/* Hide count when 0 */
.ast-site-header-cart .ast-count-text:empty,
.ast-site-header-cart .count:has(.ast-count-text:empty) {
  display: none !important;
}

.ast-site-header-cart .ast-woo-header-cart-info-wrap {
  display: none !important;
}

/* Mini-cart dropdown */
.ast-site-header-cart .widget_shopping_cart .buttons .button,
.ast-site-header-cart .woocommerce-mini-cart__buttons .button {
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
  border-radius: var(--radius-sm) !important;
  padding: 10px 16px !important;
}

.ast-site-header-cart .widget_shopping_cart .buttons .button:first-child,
.ast-site-header-cart .woocommerce-mini-cart__buttons .button:first-child {
  background: transparent !important;
  color: var(--jlp-navy) !important;
  border: 2px solid var(--jlp-navy) !important;
}

.ast-site-header-cart .widget_shopping_cart .buttons .checkout,
.ast-site-header-cart .woocommerce-mini-cart__buttons .checkout {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
}

.ast-site-header-cart .widget_shopping_cart .buttons .checkout:hover,
.ast-site-header-cart .woocommerce-mini-cart__buttons .checkout:hover {
  background: var(--jlp-red-hover) !important;
}

/* Mini-cart remove button */
.ast-site-header-cart .woocommerce-mini-cart-item .remove {
  color: var(--jlp-red) !important;
}

/* Mobile nav */
.ast-header-break-point .ast-mobile-menu-buttons .menu-toggle {
  color: var(--jlp-navy) !important;
}


/* ==========================================================================
   STICKY HEADER
   ========================================================================== */

.ast-sticky-active .main-header-bar,
#ast-fixed-header .main-header-bar {
  background: var(--jlp-bg-white) !important;
  box-shadow: 0 1px 0 rgba(26, 35, 64, 0.06),
              0 4px 16px rgba(26, 35, 64, 0.04) !important;
}


/* ==========================================================================
   HOMEPAGE SECTIONS
   ========================================================================== */

/* --- Hero --- */
.jlp-hero {
  background: var(--jlp-bg-warm) !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Full-width content — only on pages with custom layouts, NOT shop/cart/checkout */
.home .site-content .ast-container,
.home .site-content #primary,
.page-id-5286 .site-content .ast-container,
.page-id-5286 .site-content #primary,
.page-id-5287 .site-content .ast-container,
.page-id-5287 .site-content #primary,
.page-id-5288 .site-content .ast-container,
.page-id-5288 .site-content #primary {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.home .ast-separate-container .ast-article-post,
.home .ast-separate-container .ast-article-single,
.page-id-5286 .ast-separate-container .ast-article-post,
.page-id-5286 .ast-separate-container .ast-article-single,
.page-id-5287 .ast-separate-container .ast-article-post,
.page-id-5287 .ast-separate-container .ast-article-single,
.page-id-5288 .ast-separate-container .ast-article-post,
.page-id-5288 .ast-separate-container .ast-article-single {
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.jlp-hero .wp-block-columns {
  position: relative !important;
  min-height: 500px !important;
  align-items: stretch !important;
}

/* Text column — vertically centered */
.jlp-hero .wp-block-column:first-child {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.jlp-hero h1 {
  font-size: clamp(36px, 5vw, 54px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
  max-width: 560px;
}

.jlp-hero h1 em {
  font-style: italic;
  color: var(--jlp-red);
}

.jlp-hero-label {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  font-weight: 700 !important;
  color: var(--jlp-text-soft) !important;
  text-transform: uppercase;
  margin-bottom: var(--sp-4) !important;
}

.jlp-hero-sub {
  font-size: clamp(16px, 1.25vw, 19px) !important;
  line-height: 1.65 !important;
  color: var(--jlp-text-mid) !important;
  max-width: 480px;
}

/* Hero photo — absolute, spans 50% of row, anchored from TOP */
.jlp-hero-photo {
  position: static !important;
}

.jlp-hero-photo figure {
  margin: 0 !important;
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 55% !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  overflow: visible !important;
}

.jlp-hero-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: top center !important;
  margin: 0 !important;
}

/* Make the row at least as tall as the image needs */
.jlp-hero .wp-block-columns::after {
  content: '' !important;
  display: block !important;
  clear: both !important;
}

/* --- Section labels --- */
.jlp-section-label {
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

/* --- Featured Book --- */
.jlp-featured-book {
  background: var(--jlp-bg-white) !important;
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
}

.jlp-featured-book .jlp-book-cover img {
  border-radius: var(--radius-md) !important;
  box-shadow: 0 8px 32px rgba(26, 35, 64, 0.12),
              0 2px 8px rgba(26, 35, 64, 0.06) !important;
}

/* --- Framework (navy bg) --- */
.jlp-framework {
  background: var(--jlp-navy) !important;
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
}

.jlp-framework h2 {
  color: var(--jlp-on-dark) !important;
}

.jlp-framework h3 {
  color: var(--jlp-on-dark) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  margin-bottom: var(--sp-2) !important;
}

.jlp-framework .jlp-pillar-desc {
  color: var(--jlp-on-dark-mid) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

.jlp-framework .jlp-pillar-book {
  color: var(--jlp-on-dark-dim) !important;
  font-size: 14px !important;
  font-style: italic !important;
}

/* Pillar cards — outlined, equal height */
.jlp-framework .wp-block-columns {
  align-items: stretch !important;
}

.jlp-framework .wp-block-column {
  border: 1px solid rgba(232, 228, 220, 0.2) !important;
  border-radius: var(--radius-md) !important;
  padding: 20px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

.jlp-framework .jlp-pillar-cover {
  flex-grow: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.jlp-framework .jlp-pillar-cover img {
  border-radius: var(--radius-sm) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
}

/* Buy button inside pillar */
.jlp-framework .jlp-pillar-buy a {
  display: block !important;
  text-align: center !important;
  background: var(--jlp-red) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 8px 12px !important;
  border-radius: var(--radius-sm) !important;
  text-decoration: none !important;
  margin-top: 8px !important;
  transition: background var(--duration) var(--ease-out) !important;
}

.jlp-framework .jlp-pillar-buy a:hover {
  background: var(--jlp-red-hover) !important;
}

.jlp-framework-footer {
  color: var(--jlp-on-dark-mid) !important;
  font-size: 16px !important;
}

/* --- Why Jim --- */
.jlp-why-jim {
  background: var(--jlp-bg) !important;
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
}

.jlp-why-jim .jlp-credentials li {
  color: var(--jlp-text-mid) !important;
  font-size: 15px !important;
  line-height: 2 !important;
  list-style: none !important;
  padding-left: 0 !important;
}

.jlp-why-jim .jlp-credentials li::before {
  content: '' !important;
  display: inline-block !important;
  width: 6px !important;
  height: 6px !important;
  background: var(--jlp-red) !important;
  border-radius: 1px !important;
  margin-right: 12px !important;
  vertical-align: middle !important;
}

.jlp-why-jim .jlp-credentials li strong {
  color: var(--jlp-text) !important;
}

/* Why Jim — both columns vertically centered */
.jlp-why-jim .wp-block-columns {
  align-items: center !important;
  display: flex !important;
}

.jlp-why-jim .wp-block-column {
  align-self: center !important;
}

.jlp-why-jim .jlp-jim-photo figure {
  margin: 0 !important;
  background: #9a9a9a !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  width: 100% !important;
}

.jlp-why-jim .jlp-jim-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  padding-top: 20px !important;
}

/* About page — Jim photo with gray bg like homepage Why Jim */
.page-id-5286 figure.wp-block-image {
  background: #9a9a9a !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
}

.page-id-5286 figure.wp-block-image img {
  padding-top: 20px !important;
  border-radius: 0 !important;
}

/* --- Contact Section --- */
.jlp-contact {
  background: var(--jlp-navy) !important;
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
  margin-bottom: 0 !important;
}

/* Kill white gap between content and footer — ALL pages */
.site-content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Only zero out container padding on custom layout pages */
.home #primary,
.page-id-5286 #primary,
.page-id-5287 #primary,
.page-id-5288 #primary {
  padding-bottom: 0 !important;
}

.entry-content > .wp-block-group:last-child {
  margin-bottom: 0 !important;
}

.ast-article-post,
.ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.ast-separate-container #primary,
#primary {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Kill ALL bottom gaps before footer on every page */
.content-area {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.site-main {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.entry-content > *:last-child {
  margin-bottom: 0 !important;
}

.jlp-contact h2 {
  color: var(--jlp-on-dark) !important;
  font-size: clamp(28px, 3.5vw, 36px) !important;
}

.jlp-contact p {
  color: var(--jlp-on-dark-mid) !important;
}

.jlp-contact em,
.jlp-contact .jlp-contact-italic {
  color: var(--jlp-on-dark-dim) !important;
}

.jlp-contact .jlp-contact-subtext {
  color: var(--jlp-on-dark-mid) !important;
  font-size: 15px !important;
}

/* Red accent line */
.jlp-red-rule {
  border: none !important;
  height: 2px !important;
  background: var(--jlp-red) !important;
  max-width: 80px !important;
  margin: var(--sp-8) auto !important;
  opacity: 1 !important;
}

/* Contact form on dark */
/* Contact form — CF7 and Gravity Forms on dark bg */
.jlp-contact .wpcf7 input[type="text"],
.jlp-contact .wpcf7 input[type="email"],
.jlp-contact .wpcf7 textarea,
.jlp-contact .gform_wrapper input[type="text"],
.jlp-contact .gform_wrapper input[type="email"],
.jlp-contact .gform_wrapper textarea {
  background: rgba(232, 228, 220, 0.06) !important;
  border: 1px solid rgba(232, 228, 220, 0.15) !important;
  color: var(--jlp-on-dark) !important;
  padding: 14px 18px !important;
  font-size: 15px !important;
  font-family: 'Source Sans 3', sans-serif !important;
  border-radius: var(--radius-sm) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color var(--duration) var(--ease-out),
              background var(--duration) var(--ease-out) !important;
}

.jlp-contact .wpcf7 input:focus,
.jlp-contact .wpcf7 textarea:focus,
.jlp-contact .gform_wrapper input:focus,
.jlp-contact .gform_wrapper textarea:focus {
  border-color: var(--jlp-red) !important;
  background: rgba(232, 228, 220, 0.1) !important;
  outline: none !important;
}

.jlp-contact .wpcf7 input::placeholder,
.jlp-contact .wpcf7 textarea::placeholder,
.jlp-contact .gform_wrapper input::placeholder,
.jlp-contact .gform_wrapper textarea::placeholder {
  color: var(--jlp-on-dark-dim) !important;
}

.jlp-contact .wpcf7 input[type="submit"],
.jlp-contact .gform_wrapper input[type="submit"],
.jlp-contact .gform_wrapper .gform_button {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
  padding: 14px 40px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  font-family: 'Source Sans 3', sans-serif !important;
  transition: background var(--duration) var(--ease-out) !important;
}

.jlp-contact .wpcf7 input[type="submit"]:hover,
.jlp-contact .gform_wrapper input[type="submit"]:hover,
.jlp-contact .gform_wrapper .gform_button:hover {
  background: var(--jlp-red-hover) !important;
}

.jlp-contact .wpcf7 p,
.jlp-contact .gform_wrapper .gfield_label,
.jlp-contact .gform_wrapper label {
  margin-bottom: var(--sp-4) !important;
  color: var(--jlp-on-dark-mid) !important;
}

/* GF — hide ALL labels since we use placeholders */
.jlp-contact .gform_wrapper .gfield_label,
.jlp-contact .gform_wrapper .gfield_label_before_complex,
.jlp-contact .gform_wrapper .ginput_complex label,
.jlp-contact .gform_wrapper label,
.jlp-contact .gform_wrapper .gfield_description,
.jlp-contact .gform_wrapper .gform_required_legend {
  display: none !important;
}

/* GF field spacing on dark bg */
.jlp-contact .gform_wrapper .gfield {
  margin-bottom: var(--sp-4) !important;
}

/* GF wrapper — contained within the section max-width */
.jlp-contact .gform_wrapper {
  margin: 0 auto !important;
  padding: 0 !important;
  max-width: 640px !important;
}

.jlp-contact .gform_wrapper .gform_footer {
  text-align: right !important;
  padding: 0 !important;
  margin-top: var(--sp-4) !important;
}

/* GF button — force red */
.gform_wrapper input[type="submit"],
.gform_wrapper .gform_button,
.gform_wrapper button[type="submit"] {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
  padding: 14px 40px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  font-family: 'Source Sans 3', sans-serif !important;
}

.gform_wrapper input[type="submit"]:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper button[type="submit"]:hover {
  background: var(--jlp-red-hover) !important;
}

.jlp-contact .gform_wrapper .gform_footer {
  text-align: right !important;
}

.jlp-contact .gform_wrapper .validation_message {
  color: #fc8181 !important;
}

.jlp-contact .gform_wrapper .gform_confirmation_message {
  color: var(--jlp-on-dark) !important;
  text-align: center !important;
  font-size: 18px !important;
}


/* ==========================================================================
   BUTTONS (Homepage)
   ========================================================================== */

/* Primary (red) */
.jlp-btn-primary .wp-block-button__link {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: 2px solid var(--jlp-red) !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  transition: background var(--duration) var(--ease-out),
              border-color var(--duration) var(--ease-out) !important;
}

.jlp-btn-primary .wp-block-button__link:hover {
  background: var(--jlp-red-hover) !important;
  border-color: var(--jlp-red-hover) !important;
}

/* Secondary (navy outline) */
.jlp-btn-secondary .wp-block-button__link {
  background: transparent !important;
  color: var(--jlp-navy) !important;
  border: 2px solid var(--jlp-navy) !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  transition: background var(--duration) var(--ease-out),
              color var(--duration) var(--ease-out) !important;
}

.jlp-btn-secondary .wp-block-button__link:hover {
  background: var(--jlp-navy) !important;
  color: #fff !important;
}


/* ==========================================================================
   WOOCOMMERCE — SHOP PAGE
   ========================================================================== */

/* Shop — tight */
.woocommerce-page .ast-woocommerce-container {
  padding-top: 4px !important;
}

.woocommerce-page .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.woocommerce-page #primary {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.woocommerce-page .ast-breadcrumbs-wrapper,
.woocommerce-page .ast-breadcrumbs {
  padding-top: 4px !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.woocommerce-page .woocommerce-products-header {
  margin-bottom: 2px !important;
  padding: 0 !important;
}

.woocommerce-page .page-title {
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 18px !important;
  margin-top: 2px !important;
  margin-bottom: 2px !important;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: 6px !important;
  margin-top: 0 !important;
  font-size: 12px !important;
  color: var(--jlp-text-soft) !important;
}

.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  padding-top: 0 !important;
}

.woocommerce-page .site-content > .ast-container {
  padding-top: 4px !important;
}

/* Remove top margin on shop content area */
.ast-separate-container .entry-content {
  padding-top: 0 !important;
}

.woocommerce-page .ast-archive-description {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Hide category labels */
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .posted_in,
.single-product .product_meta .posted_in {
  display: none !important;
}

/* Hide floating cart overlay on cards */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap .button:not(.add_to_cart_button) {
  display: none !important;
}

/* Product images — outlined cards with white bg */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce ul.products li.product .ast-woo-product-image {
  border: 1px solid rgba(26, 35, 64, 0.1) !important;
  border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
  background: #fff !important;
  padding: 16px !important;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
.woocommerce ul.products li.product .ast-woo-product-image img {
  object-fit: contain !important;
  max-height: 280px;
  width: auto !important;
  margin: 0 auto;
}

/* Product card content area */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  border: 1px solid rgba(26, 35, 64, 0.1) !important;
  border-top: none !important;
  border-radius: 0 0 var(--radius-md) var(--radius-md) !important;
  padding: 12px 16px 16px !important;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Source Sans 3', sans-serif !important;
  color: var(--jlp-navy) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

/* Price */
.woocommerce ul.products li.product .price {
  color: var(--jlp-red) !important;
  font-weight: 700 !important;
  font-size: 24px !important;
  font-family: 'Source Sans 3', sans-serif !important;
}

/* Buy Now button */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  padding: 10px 20px !important;
  transition: background var(--duration) var(--ease-out) !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover {
  background: var(--jlp-navy) !important;
}


/* ==========================================================================
   WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */

.single-product .product_title {
  font-family: 'Source Sans 3', sans-serif !important;
  color: var(--jlp-navy) !important;
}

.single-product .price {
  color: var(--jlp-red) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
}

.single-product .single_add_to_cart_button {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-size: 14px !important;
  padding: 14px 32px !important;
  border-radius: var(--radius-sm) !important;
  transition: background var(--duration) var(--ease-out) !important;
}

.single-product .single_add_to_cart_button:hover {
  background: var(--jlp-navy) !important;
}


/* ==========================================================================
   WOOCOMMERCE — CART & CHECKOUT
   ========================================================================== */

.woocommerce-cart .page-title,
.woocommerce-checkout .page-title {
  font-family: 'Source Sans 3', sans-serif !important;
  color: var(--jlp-navy) !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-checkout #place_order {
  background: var(--jlp-red) !important;
  color: #fff !important;
  border: none !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 16px 32px !important;
  border-radius: var(--radius-sm) !important;
  font-size: 14px !important;
  transition: background var(--duration) var(--ease-out) !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-checkout #place_order:hover {
  background: var(--jlp-navy) !important;
}

.woocommerce-cart .shop_table th,
.woocommerce-checkout .shop_table th {
  font-family: 'Source Sans 3', sans-serif !important;
  color: var(--jlp-navy) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
}

.woocommerce a.remove {
  color: var(--jlp-red) !important;
}

/* Return to shop button */
.woocommerce .return-to-shop .button,
.woocommerce .wc-backward {
  background: var(--jlp-navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
}


/* ==========================================================================
   FOOTER
   ========================================================================== */

.site-footer {
  background: var(--jlp-navy-deep) !important;
}

/* Remove whitespace below footer */
.site-footer .site-below-footer-wrap {
  padding: 0 !important;
  margin: 0 !important;
}

.ast-builder-grid-row-container-inner {
  padding: 0 !important;
}

/* Kill any extra padding below the footer block */
.site-footer .ast-builder-footer-grid-columns {
  padding: 0 !important;
}

#colophon {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Kill ALL space below/after footer */
html, body {
  background: var(--jlp-navy-deep) !important;
}

body {
  background: var(--jlp-bg) !important;
}

.site-footer .site-below-footer-wrap + *,
.site-footer::after {
  display: none !important;
}

/* Hide ALL Astra default copyright elements — we render our own via PHP */
.site-footer .ast-builder-layout-element.ast-footer-copyright,
.site-footer .ast-footer-copyright,
.site-footer-below-section-1,
.site-below-footer-inner-wrap > .site-footer-section {
  display: none !important;
}

.site-footer .site-below-footer-wrap {
  background: var(--jlp-navy-deep) !important;
}

/* Push footer to bottom on short pages */
.site {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh !important;
}

.site-content {
  flex: 1 !important;
}

/* Unified footer block — nav + copyright */
.jlp-footer-block {
  text-align: center;
  padding: var(--sp-8) var(--sp-6);
}

.jlp-footer-nav {
  display: flex;
  justify-content: center;
  gap: clamp(20px, 3vw, 36px);
  flex-wrap: wrap;
  margin-bottom: var(--sp-6);
}

.jlp-footer-nav a {
  color: var(--jlp-on-dark-mid) !important;
  text-decoration: none !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: color var(--duration) var(--ease-out) !important;
}

.jlp-footer-nav a:hover {
  color: var(--jlp-on-dark) !important;
}

.jlp-footer-copy {
  color: var(--jlp-on-dark-dim) !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 13px !important;
  margin: 0 !important;
}

/* Hide Astra's default copyright bar since we render our own */
.site-footer .ast-builder-layout-element.ast-footer-copyright {
  display: none !important;
}

.site-footer a {
  color: var(--jlp-on-dark-mid) !important;
}

/* Hide reCAPTCHA badge */
.grecaptcha-badge {
  visibility: hidden !important;
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 921px) {
  .jlp-hero h1 {
    font-size: clamp(30px, 7vw, 40px) !important;
  }

  .jlp-hero .wp-block-columns {
    min-height: auto !important;
  }

  .jlp-hero-photo {
    position: relative !important;
  }

  .jlp-hero-photo figure {
    position: relative !important;
    width: 100% !important;
    max-width: 320px !important;
    margin: var(--sp-8) auto 0 !important;
  }

  .jlp-hero-photo img {
    max-width: 280px !important;
    max-height: none !important;
    margin: 0 auto !important;
  }

  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
  .woocommerce ul.products li.product .ast-woo-product-image img {
    max-height: 200px;
  }

  .jlp-footer-nav {
    gap: var(--sp-4);
    padding: var(--sp-4) var(--sp-4);
  }

  .jlp-footer-nav a {
    font-size: 11px !important;
  }

  /* Mobile menu — touch-friendly spacing */
  .ast-header-break-point .main-navigation ul li {
    border-bottom: 1px solid rgba(26, 35, 64, 0.08) !important;
  }

  .ast-header-break-point .main-navigation ul li a,
  .ast-header-break-point .main-navigation ul li .menu-link {
    padding: 16px 20px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--jlp-navy) !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
  }

  .ast-header-break-point .main-navigation ul li a:hover,
  .ast-header-break-point .main-navigation ul li .menu-link:hover {
    color: var(--jlp-red) !important;
    background: var(--jlp-bg) !important;
  }

  .ast-header-break-point .main-navigation ul li:last-child {
    border-bottom: none !important;
  }

  /* Mobile menu toggle button */
  .ast-header-break-point .ast-mobile-menu-buttons .menu-toggle {
    padding: 8px !important;
  }
}

/* ==========================================================================
   LEADERSHIP TRIANGLE VISUAL
   ========================================================================== */

.jlp-triangle-wrap {
  position: relative;
  width: 640px;
  height: 420px;
  margin: 0 auto 40px;
}

/* SVG handles the triangle visual */

/* Node labels — red boxes, white text */
.jlp-tri-node {
  position: absolute;
  text-align: center;
  font-family: 'Source Sans 3', sans-serif;
  background: var(--jlp-red);
  border: none;
  border-radius: var(--radius-md);
  padding: 12px 24px;
  min-width: 110px;
}

.jlp-tri-node-title {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  display: block;
  margin-bottom: 2px;
}

.jlp-tri-node-sub {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
  letter-spacing: 0.02em;
  display: block;
}

/* Top node — Character */
.jlp-tri-top {
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
}

/* Bottom-left — Style */
.jlp-tri-left {
  bottom: -4px;
  left: -30px;
}

/* Bottom-right — Judgment */
.jlp-tri-right {
  bottom: -4px;
  right: -30px;
}

/* Center label */
.jlp-tri-center {
  position: absolute;
  top: 52%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  background: var(--jlp-navy);
  border-radius: var(--radius-md);
  padding: 12px 24px;
}

.jlp-tri-center-title {
  font-size: 10px;
  font-weight: 700;
  color: var(--jlp-on-dark-mid);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  display: block;
}

.jlp-tri-center-sub {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  display: block;
  margin-top: 2px;
}

/* Responsive */
@media (max-width: 600px) {
  .jlp-triangle-wrap {
    width: 280px;
    height: 260px;
  }
  .jlp-triangle-shape {
    border-left: 133px solid transparent;
    border-right: 133px solid transparent;
    border-bottom: 224px solid rgba(193, 35, 47, 0.08);
  }
  .jlp-triangle-shape::after {
    top: 10px;
    left: -124px;
    border-left: 124px solid transparent;
    border-right: 124px solid transparent;
    border-bottom: 208px solid var(--jlp-bg, #faf9f7);
  }
  .jlp-triangle-lines {
    width: 266px;
    height: 224px;
  }
  .jlp-tri-node-title { font-size: 14px; }
  .jlp-tri-node-sub { font-size: 9px; }
  .jlp-tri-center-sub { font-size: 16px; }
  .jlp-tri-left { left: -10px; }
  .jlp-tri-right { right: -10px; }
}
