/*
Theme Name: SLP Study Center
Theme URI: https://slpstudycenter.com/
Author: SLP Study Center
Description: Custom editorial multi-page theme for the SLP Praxis 5331 preparation project.
Version: 1.4.29
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: slp-praxis-review
*/

.wp-fallback {
  width: min(1160px, calc(100% - 40px));
  margin: 52px auto 100px;
  font-family: "Source Sans 3", system-ui, sans-serif;
  line-height: 1.6;
  color: #12233f;
}

.slp-native-post { background: #fffdf9; color: #12233f; }
.slp-native-post-preview-bar { display: flex; justify-content: center; gap: 10px; padding: 11px 22px; border-bottom: 1px solid #e7c15f; background: #fff4cf; color: #12233f; font-size: 14px; }
.slp-native-post-preview-bar span, .slp-native-post-label { color: #7d213d; font-size: 13px; font-weight: 820; letter-spacing: .1em; text-transform: uppercase; }
.slp-native-post-header { padding: clamp(70px, 8vw, 126px) 24px 54px; border-bottom: 1px solid #ded7ce; background: #fbf8f3; }
.slp-native-post-header-inner { width: min(100%, 1080px); margin: 0 auto; }
.slp-native-post-header h1 { max-width: 980px; margin: 17px 0 27px; color: #12233f; font-family: Georgia, "Times New Roman", serif; font-size: clamp(50px, 6.2vw, 92px); font-weight: 600; letter-spacing: -.035em; line-height: .98; }
.slp-native-post-meta { display: flex; flex-wrap: wrap; gap: 11px 25px; color: #58667a; font-size: 15px; }
.slp-native-post-meta span + span { position: relative; }
.slp-native-post-meta span + span::before { position: absolute; top: 50%; left: -14px; width: 4px; height: 4px; border-radius: 50%; background: #7d213d; content: ""; transform: translateY(-50%); }
.slp-native-post-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.slp-native-post-featured { margin: 0; padding: clamp(28px, 4vw, 54px) 0 0; }
.slp-native-post-featured img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 1px solid #ded7ce; object-fit: cover; }
.slp-native-post-featured figcaption { margin-top: 10px; color: #58667a; font-size: 13px; }
.slp-native-post-body-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: clamp(44px, 7vw, 104px); align-items: start; padding: clamp(50px, 7vw, 96px) 0 110px; }
.slp-native-post-content { min-width: 0; color: #283750; font-size: 18px; line-height: 1.76; }
.slp-native-post-content > :first-child { margin-top: 0; }
.slp-native-post-content h2 { margin: 52px 0 15px; color: #12233f; font-family: Georgia, "Times New Roman", serif; font-size: clamp(34px, 4vw, 52px); font-weight: 600; line-height: 1.04; }
.slp-native-post-content h3 { margin: 34px 0 11px; color: #7d213d; font-family: Georgia, "Times New Roman", serif; font-size: 29px; font-weight: 600; line-height: 1.12; }
.slp-native-post-content p { margin: 0 0 20px; }
.slp-native-post-content ul, .slp-native-post-content ol { margin: 0 0 26px; padding-left: 28px; }
.slp-native-post-content li { margin: 7px 0; padding-left: 5px; }
.slp-native-post-content a { color: #7d213d; text-decoration: underline; text-underline-offset: 3px; }
.slp-native-post-content strong { color: #12233f; font-weight: 780; }
.slp-native-post-content blockquote { margin: 30px 0; padding: 22px 25px; color: #12233f; border-left: 4px solid #7d213d; background: #eef3ff; }
.slp-native-post-content figure, .slp-native-post-content .wp-block-image, .slp-native-post-content .slp-learning-figure { margin: 36px 0; }
.slp-native-post-content figure img, .slp-native-post-content .wp-block-image img, .slp-native-post-content .slp-learning-figure img { display: block; width: 100%; height: auto; border: 1px solid #ded7ce; }
.slp-native-post-content figcaption { margin-top: 9px; color: #58667a; font-size: 13px; line-height: 1.45; }
.slp-native-post-content table { width: 100%; margin: 28px 0; border-collapse: collapse; font-size: 16px; }
.slp-native-post-content th, .slp-native-post-content td { padding: 11px 12px; border: 1px solid #ded7ce; text-align: left; vertical-align: top; }
.slp-native-post-content th { color: #12233f; background: #fbf8f3; }
.slp-native-post-aside { position: sticky; top: 115px; display: grid; gap: 33px; }
.slp-native-post-aside > div { padding: 27px; border-top: 4px solid #7d213d; background: #fbf8f3; }
.slp-native-post-aside h2 { margin: 10px 0 13px; color: #12233f; font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 600; line-height: 1.08; }
.slp-native-post-aside p { margin: 0 0 23px; color: #58667a; font-size: 15px; line-height: 1.6; }
.slp-native-post-product-path { border-top-color: #0fa7a7 !important; background: #effaf8 !important; }
.slp-native-post-product-path > p { margin-bottom: 20px; }
.slp-native-post-product-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 62px; margin-top: 10px; padding: 11px 13px; color: #12233f !important; border: 1px solid #dce8e7; background: #fff; text-decoration: none !important; transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.slp-native-post-product-option:hover, .slp-native-post-product-option:focus-visible { border-color: #0fa7a7; box-shadow: 0 8px 20px rgba(11, 42, 97, .08); transform: translateY(-1px); }
.slp-native-post-product-option-primary { color: #fff !important; border-color: #0fa7a7; background: #0fa7a7; }
.slp-native-post-product-option > span:first-child { display: grid; gap: 4px; }
.slp-native-post-product-option strong { font-size: 16px; font-weight: 800; }
.slp-native-post-product-option small { color: inherit; font-size: 13px; line-height: 1.35; opacity: .86; }
.slp-native-post-product-option > span:last-child { flex: 0 0 auto; font-size: 21px; }
.slp-native-post-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 48px; padding: 0 17px; border: 1px solid #164dcc; background: #164dcc; color: #fff !important; font-weight: 760; text-decoration: none !important; }
.slp-native-post-links { display: grid; gap: 13px; }
.slp-native-post-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 11px; color: #7d213d; border-bottom: 1px solid #ded7ce; font-size: 15px; font-weight: 720; text-decoration: none; }
.slp-native-post-pages { margin-top: 32px; padding-top: 20px; border-top: 1px solid #ded7ce; }
.slp-native-post-empty { width: min(1160px, calc(100% - 48px)); min-height: 60vh; margin: 0 auto; padding: 100px 0; }
.slp-native-post-empty h1 { max-width: 800px; margin: 16px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(46px, 6vw, 78px); line-height: 1; }
.slp-native-post-empty p { margin-bottom: 28px; color: #58667a; font-size: 17px; }

.slp-commerce-header {
  min-height: 88px;
  padding: 0 max(24px, calc((100vw - 1320px) / 2));
  border-bottom: 1px solid #ded7ce;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #fffdf9;
  font-family: "Source Sans 3", system-ui, sans-serif;
}

.slp-commerce-brand {
  color: #12233f;
  text-decoration: none;
  letter-spacing: .13em;
  font-weight: 700;
}

.slp-commerce-brand span { color: #7d213d; }
.slp-commerce-nav { display: flex; gap: 22px; }
.slp-commerce-header a { color: #12233f; text-decoration: none; font-weight: 700; }
.slp-commerce-actions { display: flex; align-items: center; gap: 14px; }
.slp-login-status { display: inline-flex; align-items: center; gap: 7px; color: #526177; font-size: 14px; font-weight: 700; }
.slp-login-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #1f9d68; box-shadow: 0 0 0 3px #dff4ea; }
.slp-commerce-account-menu { position: relative; }
.slp-commerce-account-menu summary { min-height: 46px; display: inline-flex; align-items: center; padding: 0 14px; border-bottom: 2px solid transparent; color: #12233f; cursor: pointer; font-weight: 750; list-style: none; }
.slp-commerce-account-menu summary::-webkit-details-marker { display: none; }
.slp-commerce-account-menu[open] summary { border-bottom-color: #7d213d; }
.slp-commerce-account-menu > div { position: absolute; z-index: 20; top: calc(100% + 10px); right: 0; display: grid; min-width: 210px; padding: 9px; border: 1px solid #ded7ce; background: #fffdf9; box-shadow: 0 18px 42px rgba(9, 28, 60, .14); }
.slp-commerce-account-menu > div a { padding: 11px 12px; color: #34435a; }
.slp-commerce-account-menu > div a:hover { color: #7d213d; background: #fbf8f3; }
.slp-header-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border: 1px solid #164dcc; background: #164dcc; color: #fff !important; }
.slp-header-button-outline { border-color: #7d213d; background: transparent; color: #7d213d !important; }
.slp-cart-link { padding-left: 4px; }

.woocommerce-account .wp-fallback > article > h1 { margin-bottom: 34px; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 44px; align-items: start; }
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { display: grid; gap: 8px; margin: 0; padding: 14px; border: 1px solid #ded7ce; background: #fbf8f3; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 48px; padding: 11px 14px; border-left: 3px solid transparent; color: #34435a; text-decoration: none; font-weight: 750; transition: background .18s ease, color .18s ease, border-color .18s ease; }
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { border-left-color: #164dcc; background: #eef3ff; color: #123e9d; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { border-left-color: #7d213d; background: #fff; color: #7d213d; }
.woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message { border: 1px solid #a8c1eb; border-top: 4px solid #2077b2; background: #f5f8fd; }
.woocommerce-account .woocommerce-MyAccount-content table { border-collapse: collapse; width: 100%; }
.woocommerce-account .woocommerce-MyAccount-content table th,
.woocommerce-account .woocommerce-MyAccount-content table td { padding: 14px; border: 1px solid #ded7ce; text-align: left; }
.slp-learning-account-actions .button { border: 1px solid #164dcc !important; background: #164dcc !important; color: #fff !important; }
.slp-learning-account-actions .button + .button { border-color: #7d213d !important; background: transparent !important; color: #7d213d !important; }

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button {
  border-radius: 2px;
  background: #164dcc;
  color: #fff;
  padding: .85rem 1.25rem;
  font-weight: 750;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection--single {
  border: 1px solid #b9b1a7;
  min-height: 48px;
  padding: .65rem .8rem;
  background: #fff;
}

@media (max-width: 640px) {
  .slp-commerce-header { align-items: flex-start; flex-direction: column; padding-block: 18px; }
  .slp-commerce-nav { gap: 14px; flex-wrap: wrap; }
  .slp-commerce-actions { width: 100%; flex-wrap: wrap; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 26px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .slp-native-post-preview-bar { align-items: center; flex-direction: column; gap: 3px; text-align: center; }
  .slp-native-post-header { padding-block: 62px 42px; }
  .slp-native-post-header h1 { font-size: 51px; }
  .slp-native-post-shell { width: min(100% - 44px, 1180px); }
  .slp-native-post-body-layout { grid-template-columns: 1fr; padding-bottom: 70px; }
  .slp-native-post-aside { position: static; }
  .slp-native-post-content { font-size: 17px; }
  .slp-native-post-content h2 { font-size: 40px; }
  .slp-native-post-content h3 { font-size: 27px; }
}

@media (max-width: 1120px) {
  .slp-commerce-nav { display: none; }
}

/* Keep native WooCommerce/account pages on the same fixed site header as the app routes. */
.slp-commerce-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.6vw, 28px);
  min-height: 84px;
  padding: 0 clamp(24px, 2.5vw, 42px);
  border-bottom: 1px solid #dce8e7;
  background: rgba(255, 253, 252, .985);
  box-shadow: 0 8px 26px rgba(9, 28, 60, .045);
}

.slp-commerce-brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: baseline;
  gap: 10px;
  color: #0b2a61;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(19px, 1.35vw, 24px);
  font-weight: 620;
  letter-spacing: .08em;
  line-height: 1;
  white-space: nowrap;
}

.slp-commerce-brand span { color: #0fa7a7; }

.slp-commerce-nav {
  flex: 1 1 auto;
  min-width: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 1.2vw, 22px);
  padding: 0;
  color: #0b2a61;
  font-size: 15px;
  font-weight: 660;
  white-space: nowrap;
}

.slp-commerce-nav > a,
.slp-native-nav-dropdown > summary {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 54px;
  cursor: pointer;
  list-style: none;
}

.slp-native-nav-dropdown { position: relative; }
.slp-native-nav-dropdown > summary::-webkit-details-marker { display: none; }
.slp-native-nav-dropdown > summary span { display: inline-block; transition: transform 160ms ease; }
.slp-native-nav-dropdown[open] > summary span { transform: rotate(180deg); }

.slp-commerce-nav > a::after,
.slp-native-nav-dropdown > summary::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 2px;
  background: #0fa7a7;
  content: "";
  opacity: 0;
  transform: scaleX(.5);
  transition: opacity 160ms ease, transform 160ms ease;
}

.slp-commerce-nav > a:hover::after,
.slp-commerce-nav > a:focus-visible::after,
.slp-native-nav-dropdown > summary:hover::after,
.slp-native-nav-dropdown > summary:focus-visible::after,
.slp-native-nav-dropdown[open] > summary::after {
  opacity: 1;
  transform: scaleX(1);
}

.slp-native-nav-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: -14px;
  z-index: 20;
  display: grid;
  width: max-content;
  min-width: 220px;
  padding: 10px;
  border: 1px solid #dce8e7;
  background: #fff;
  box-shadow: 0 18px 42px rgba(9, 28, 60, .14);
}

.slp-native-nav-panel a {
  padding: 11px 12px;
  color: #30445f;
  font-size: 15px;
  font-weight: 600;
}

.slp-native-nav-panel a:hover,
.slp-native-nav-panel a:focus-visible {
  color: #0fa7a7;
  background: #fffefb;
  outline: none;
}

.slp-commerce-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
}

.slp-header-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 16px;
  border: 1px solid #0fa7a7;
  background: #0fa7a7;
  color: #fff !important;
  font-size: 15px;
  font-weight: 780;
}

.slp-header-button-outline {
  background: transparent;
  color: #0fa7a7 !important;
}

.slp-cart-link {
  padding: 10px 4px;
  color: #0b2a61 !important;
  font-size: 15px;
  font-weight: 720;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .slp-commerce-header {
    flex-wrap: wrap;
    gap: 14px 20px;
    padding-block: 14px;
  }

  .slp-commerce-nav {
    order: 3;
    flex: 1 0 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px 18px;
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .slp-commerce-header { align-items: flex-start; }
  .slp-commerce-brand { flex: 1 1 auto; }
  .slp-commerce-actions { flex: 1 1 100%; flex-wrap: wrap; }
  .slp-commerce-nav { width: 100%; flex-direction: column; align-items: stretch; gap: 2px; overflow: visible; }
  .slp-commerce-nav > a,
  .slp-native-nav-dropdown,
  .slp-native-nav-dropdown > summary { width: 100%; min-width: 0; min-height: 40px; white-space: normal; }
  .slp-native-nav-panel { position: static; width: auto; min-width: 0; margin: 0 0 4px; box-shadow: none; }
}
