/* ----------------------------------------------//
// APA – Core Stylesheet (Cleaned & Organized)
// Updated: 2025-08-26
//
// Notes:
// - Spacing uses an 8pt scale via CSS variables
// - Brand "gold" replaced by #ffbb00 everywhere
// - Typography + utilities standardized
// ----------------------------------------------*/


/* ----------------------------------------------//
// 0) ROOT, TOKENS & RESETS
// ----------------------------------------------*/

:root {
  /* Typography */
  --font-sans: "Helvetica Neue", Arial, "Arial Nova", "Nimbus Sans", system-ui, -apple-system, sans-serif;

  /* Brand & Neutrals */
  --brand-gold: var(--wp--preset--color--brand-gold, #ffbb00); /* replaces 'gold' */
  --black: #000000;
  --near-black: #191616;
  --gray-100: #f7f7f7;
  --gray-200: #f0f0f0;
  --gray-300: #e5e5e5;
  --gray-400: #dadada;
  --gray-500: #cfcfcf;
  --gray-600: #bbbbbb;
  --gray-700: #8a8a8a;
  --gray-800: #616161;
  --gray-850: #3d3d3d;
  --gray-875: #2a2a2a;
  --gray-900: #1d1d1d;

  /* Spacing (8pt scale; 1rem base = html font-size) */
  --space-0: 0;
  --space-1: 0.5rem;   /* ~8px */
  --space-2: 1rem;     /* ~16px */
  --space-3: 1.5rem;   /* ~24px */
  --space-4: 2rem;     /* ~32px */
  --space-5: 2.5rem;   /* ~40px */
  --space-6: 3rem;     /* ~48px */
  --space-7: 4rem;     /* ~64px */
  --radius-xs: 0.1875rem; /* 3px */
  --radius-sm: 0.3125rem; /* 5px */
  --radius-md: 0.375rem;  /* 6px */
  --radius-lg: 0.5rem;    /* 8px */
  --radius-pill: 999px;

  /* Type scale (relative to html font-size) */
  --fs-xs: 0.875rem;  /* 14px */
  --fs-sm: 0.9375rem; /* 15px */
  --fs-base: 1rem;    /* 16px */
  --fs-md: 1.25rem;   /* 20px */
  --fs-lg: 1.5rem;    /* 24px */
  --fs-xl: 1.75rem;   /* 28px */
  --fs-2xl: 2rem;     /* 32px */
  --fs-3xl: 2.5rem;   /* 40px */
  --fs-4xl: 3rem;     /* 48px */

  /* Layout */
  --maxw-content: 75rem; /* 1200px */
  --header-pad-y: 2.5rem; /* 40px */
}

html {
  font-size: 100%;             /* respect browser base (typically 16px) */
  font-family: var(--font-sans);
  scroll-behavior: auto;        /* avoid forced smooth scroll overrides */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Ensure any framework rule like `html.js { font-size:62.5% }` is neutralized */
html.js {
  font-size: 100%;
  scroll-behavior: auto;
}

*, *::before, *::after { box-sizing: border-box; }
/* Preserve focus outlines for accessibility; style focus-visible only */
:focus-visible { outline: 2px solid var(--brand-gold); outline-offset: 2px; }

body {
  margin: 0;
  color: #ffffff;
  background-color: #000000;
  font-size: var(--fs-base);
  line-height: 1.5;
  letter-spacing: 0;
}


/* ----------------------------------------------//
// 1) TYPOGRAPHY
// ----------------------------------------------*/

h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
  font-weight: 900;
  margin: 0 0 var(--space-2);
  line-height: 1.1;
  letter-spacing: 0;
}

h1 { font-size: var(--fs-2xl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: var(--fs-md);  }
h5 { font-size: var(--fs-sm);  }
h6 { font-size: var(--fs-xs);  }

.heading-size-3 { font-size: var(--fs-2xl); }

p {
    font-weight: 400;
    letter-spacing: normal;
    margin: 0 0 var(--space-2);
}

a { color: var(--brand-gold); text-decoration: none; }
a:hover { color: #ffffff; text-decoration: underline; }

.center { text-align: center; margin-left: auto; margin-right: auto; }
.center-element { position: relative; left: 50%; transform: translateX(-50%); }

.spacer { display: block; margin-bottom: var(--space-4); }

.page-title-1 {
  font-size: var(--fs-2xl);
  text-align: left;
  color: #000;
  font-weight: 900;
  text-transform: uppercase;
}

input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"], textarea{
  font-size:1rem;
}


/* ----------------------------------------------//
// 2) COLORS / SIMPLE UTILITIES
// ----------------------------------------------*/

.white { color: #ffffff; }
.bg-color-white { background-color: #ffffff; }
.bg-color-black { background-color: var(--near-black); }

.bg-color-1 { background-color: var(--brand-gold); }
.text-color-1, .color-1 { color: var(--brand-gold); }

.bg-color-2 { background-color: #393939; }
.color-2   { color: #393939; }

.bg-color-3 { background-color: #211e1e; }
.color-3   { color: #211e1e; }

.bg-color-4 { background-color: var(--gray-900); }
.color-4   { color: var(--gray-900); }

.lt-grey-bg { background-color: var(--gray-400); }

.text-center { text-align: center; }

.section {
  min-height: 33vh;
  padding: var(--space-6) 0;
}


/* ----------------------------------------------//
// 3) LAYOUT CONTAINERS & GLOBAL BLOCKS
// ----------------------------------------------*/

.entry-content {
  /* unify type to inherit global font */
  font-family: inherit;
  font-size: var(--fs-base);
  line-height: 1.5;
  letter-spacing: 0;
}

.entry-content li {
  line-height: 1.4;
  font-size: var(--fs-base);
}

.entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide) {
  max-width: var(--maxw-content);
  width: 100%;
}

/* header layout moved to apa-header-footer.css */

#site-content { font-size: 100%; }


/*
 * Twenty Twenty's desktop rules assume a 10px rem root. APA keeps a 16px
 * root for block-editor parity, so reset the legacy rem-based controls here.
 * Inline and block-specific typography remains more specific and wins.
 */
button,
.button,
.faux-button,
.wp-block-button__link,
.wp-block-file__button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  font-size: var(--fs-base);
  letter-spacing: 0;
  line-height: 1.25;
}

/* keep content-area backgrounds here; header/footer moved */
.archive-header,
.singular .entry-header,
.singular .featured-media:before,
.wp-block-pullquote:before {
  background-color: #000;
}

body.custom-background { background-color: #262626 !important; }


/* navigation & menu rules moved to apa-header-footer.css */


/* ----------------------------------------------//
// 5) BUTTONS & LINKS
// ----------------------------------------------*/

button,
.button,
.faux-button,
.wp-block-button__link,
.wp-block-file .wp-block-file__button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.bg-accent,
.bg-accent-hover:hover,
.bg-accent-hover:focus,
:root .has-accent-background-color,
.comment-reply-link {
  background-color: var(--brand-gold);
  color: #000;
}

/* Allow default focus outlines on buttons for accessibility */
button:focus { outline: auto; }

.button {
  display: inline-block;
  font-size: var(--fs-base);
  border: 0.1875rem solid #fff;
  background-color: transparent;
  color: #fff;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
  margin-top: var(--space-4);
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}
.button:hover { background-color: #fff; color: #262626; text-decoration: none; }

.gform_wrapper .gform_footer input[type="submit"].gform_button.button,
.gform_wrapper .gform-footer input[type="submit"].gform_button.button,
.gform_wrapper .gform_page_footer input[type="submit"].gform_button.button,
.gform_wrapper .gform-page-footer input[type="submit"].gform_button.button {
  font-size: var(--fs-base);
  line-height: 1.2;
  letter-spacing: 0;
  padding: 0.625rem 1.25rem;
  margin-top: 0;
  border: 0;
  border-radius: var(--radius-md);
  background-color: var(--brand-gold);
  color: #000;
  text-transform: none;
  text-decoration: none;
}

.gform_wrapper .gform_footer input[type="submit"].gform_button.button:hover,
.gform_wrapper .gform-footer input[type="submit"].gform_button.button:hover,
.gform_wrapper .gform_page_footer input[type="submit"].gform_button.button:hover,
.gform_wrapper .gform-page-footer input[type="submit"].gform_button.button:hover,
.gform_wrapper .gform_footer input[type="submit"].gform_button.button:focus,
.gform_wrapper .gform-footer input[type="submit"].gform_button.button:focus,
.gform_wrapper .gform_page_footer input[type="submit"].gform_button.button:focus,
.gform_wrapper .gform-page-footer input[type="submit"].gform_button.button:focus {
  background-color: #e6aa00;
  color: #000;
  text-decoration: none;
}

@media (max-width: 640px) {
  .page-id-3742 .wp-block-table table {
    table-layout: fixed;
    width: 100%;
  }

  .page-id-3742 .wp-block-table th,
  .page-id-3742 .wp-block-table td {
    font-size: 0.875rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
    padding: 0.5rem 0.4rem;
  }

  .page-id-3742 .wp-block-buttons {
    align-items: stretch;
  }

  .page-id-3742 .wp-block-button,
  .page-id-3742 .wp-block-button__link {
    box-sizing: border-box;
    width: 100%;
  }
}

.button-2 {
  display: inline-block;
  font-size: var(--fs-md);
  border: 0.1875rem solid #fff;
  background-color: #fff;
  color: var(--gray-700);
  font-weight: 800;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
  margin-top: var(--space-4);
  text-transform: uppercase;
}
.button-2:hover { background-color: #fff; color: #262626; text-decoration: none; }

.button-3 {
  display: inline-block;
  font-size: var(--fs-sm);
  background-color: #000;
  color: #fff;
  font-weight: 800;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-pill);
  margin-top: var(--space-4);
  text-transform: uppercase;
}
.button-3:hover { background-color: #000; color: #fff; text-decoration: none; }

.button-large { font-size: var(--fs-md); padding: var(--space-2) var(--space-3); }

.gold-button {
  color: #333;
  background-color: var(--brand-gold);
  padding: 0.625rem 1.875rem;
  border-radius: var(--radius-xs);
  font-size: var(--fs-base);
  font-weight: 700;
  display: inline-block;
  text-decoration: none;
}
.gold-button:hover { background-color: var(--brand-gold); color: #000; text-decoration: none; }

.read-more-link,
.download-waiver-link {
  font-weight: 900;
  font-size: 1.375rem;
  text-transform: uppercase;
}

.download-waiver-link { color: var(--gray-700); margin-left: var(--space-2); }


/* ----------------------------------------------//
// 6) FORMS
// ----------------------------------------------*/

textarea,
input[type='password'],
input,
select { color: #000; }

div.wpforms-container-full .wpforms-form input[type=date],
div.wpforms-container-full .wpforms-form input[type=datetime],
div.wpforms-container-full .wpforms-form input[type=datetime-local],
div.wpforms-container-full .wpforms-form input[type=email],
div.wpforms-container-full .wpforms-form input[type=month],
div.wpforms-container-full .wpforms-form input[type=number],
div.wpforms-container-full .wpforms-form input[type=password],
div.wpforms-container-full .wpforms-form input[type=range],
div.wpforms-container-full .wpforms-form input[type=search],
div.wpforms-container-full .wpforms-form input[type=tel],
div.wpforms-container-full .wpforms-form input[type=text],
div.wpforms-container-full .wpforms-form input[type=time],
div.wpforms-container-full .wpforms-form input[type=url],
div.wpforms-container-full .wpforms-form input[type=week],
div.wpforms-container-full .wpforms-form select,
div.wpforms-container-full .wpforms-form textarea {
  background-color: #fff;
  color: #333;
  font-size: var(--fs-base);
  line-height: 1.3;
  border: 1px solid #ccc;
  border-radius: var(--radius-md) !important;
  padding: 0.375rem 0.625rem;
  height: 2.375rem;
  width: 100%;
  box-sizing: border-box;
}

div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium {
  height: 7.5rem;
  border-radius: var(--radius-md);
}

div.wpforms-container-full .wpforms-form input[type=submit],
div.wpforms-container-full .wpforms-form button[type=submit],
div.wpforms-container-full .wpforms-form .wpforms-page-button {
  display: inline-block;
  font-size: 1.0625rem !important;
  border: 0.1875rem solid #fff !important;
  background-color: transparent !important;
  color: #fff !important;
  padding: 0.1875rem 1rem !important;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
  margin-top: var(--space-4);
  font-weight: bold;
}
div.wpforms-container-full .wpforms-form input[type=submit]:hover,
div.wpforms-container-full .wpforms-form button[type=submit]:hover,
div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,
div.wpforms-container-full .wpforms-form input[type=submit]:focus,
div.wpforms-container-full .wpforms-form button[type=submit]:focus,
div.wpforms-container-full .wpforms-form .wpforms-page-button:focus {
  background-color: #fff !important;
  color: #262626 !important;
  cursor: pointer;
}

div.wpforms-container-full .wpforms-form .wpforms-error-container,
div.wpforms-container-full .wpforms-form noscript.wpforms-error-noscript,
div.wpforms-container-full .wpforms-form label.wpforms-error {
  color: var(--brand-gold) !important;
}
div.wpforms-container-full .wpforms-form label.wpforms-error {
  display: block; font-size: var(--fs-xs); float: none; cursor: default;
}

div.wpforms-container-full .wpforms-form input.wpforms-field-medium,
div.wpforms-container-full .wpforms-form select.wpforms-field-medium,
div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium { max-width: 100% !important; }

legend { font-size: var(--fs-md); font-weight: 700; margin-bottom: var(--space-2); }
legend span { font-size: var(--fs-base); font-weight: 400; display: block; margin-bottom: var(--space-2); }

.ginput_total,
.gform_wrapper.gravity-theme .ginput_total {
  font-size: 1.375rem !important; font-weight: 900; color: #000;
}


/* ----------------------------------------------//
// 7) CAROUSEL / SLIDERS
// ----------------------------------------------*/

.carousel { margin-bottom: 0; height: 40vh; }
.carousel-inner,
.carousel-item { width: 100%; height: 40vh; overflow: hidden; }

.carousel-item > img {
  position: absolute; inset: 0 auto auto 0;
  min-width: 100%;
  height: 40vh;
  object-fit: cover;
}

.carousel-caption {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  z-index: 10; width: 100%;
  color: #fff; text-align: center;
}

.carousel-caption h1 {
  font-size: var(--fs-4xl);
  text-shadow: 0 0 1.25rem rgba(0,0,0,0.86);
}
.carousel-caption p {
  font-size: var(--fs-lg);
  font-weight: 700;
  padding: 0 var(--space-6);
  text-shadow: 0 0 1.25rem rgba(0,0,0,0.86);
}

.carousel-control-next-icon,
.carousel-control-prev-icon {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  padding: var(--space-4);
  background: #000 no-repeat center center;
  background-size: 50%;
}
.carousel-control-next-icon { background-image: url('/wp-content/themes/ActionParkAlliance/images/icons/right-arrow.png'); }
.carousel-control-prev-icon { background-image: url('/wp-content/themes/ActionParkAlliance/images/icons/left-arrow.png'); }

.video-slider {
  max-width: 67.5rem;
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}

.slick-next, .slick-prev {
  position: absolute; top: 50%;
  width: 2.0625rem; height: 2.0625rem;
  transform: translateY(-50%);
  cursor: pointer; color: transparent !important; border: none !important; outline: 0; background: none; z-index: 999;
}
.slick-next { right: var(--space-6); }
.slick-prev { left: var(--space-5); }
.slick-next:before, .slick-prev:before {
  font-family: slick; font-size: 2.0625rem; line-height: 1; opacity: 0.75; color: #fff;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}


/* ----------------------------------------------//
// 8) CARDS / CONTENT BLOCKS
// ----------------------------------------------*/

.card-1 { padding: var(--space-6) var(--space-2); }
.card-1 h3 { border-bottom: 2px solid #fff; padding-bottom: var(--space-4); margin-bottom: var(--space-4); }
.card-1 a { font-size: var(--fs-md); }
.card-1-img { min-height: 27.5rem; background-size: cover; background-position: center; }

.title-3-block {
  display: block;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.25rem;
  margin-bottom: var(--space-2);
}
a.title-3-block:hover,
.title-3-block:hover { color: #fff; text-decoration: none; }


/* ----------------------------------------------//
// 9) BLOG, POSTS & THUMBNAILS
// ----------------------------------------------*/

.blog-post p {
  padding: var(--space-4) 0 var(--space-3);
  font-size: 1.125rem; line-height: 1.3;
}
.blog-post { margin-bottom: var(--space-7); }

.post-inner { padding-top: 0 !important; }

.post-thumbnail {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center top;
}

.no-posts {
  position: relative; width: 100%;
  border: 0.1875rem solid var(--gray-700);
  text-align: center;
  padding: var(--space-6) 0;
  margin: var(--space-6) 0;
}

.no-posts-text { font-size: var(--fs-lg); color: var(--gray-700); }


/* header, sub-nav, footer rules moved to apa-header-footer.css */


/* ----------------------------------------------//
// 11) ACCORDION
// ----------------------------------------------*/

.accordion-button {
  background-color: var(--brand-gold);
  color: #333333;
  width: 100%;
  padding: 0.5625rem;
  font-size: var(--fs-base);
  font-weight: 800;
}
.accordion-header { margin-bottom: 0; }
.accordion-body {
  margin-top: 0;
  padding: var(--space-2);
  background-color: var(--gray-700);
}
.accordion-body p, .accordion-body li { font-size: var(--fs-base); }


/* ----------------------------------------------//
// 12) MODALS
// ----------------------------------------------*/

.apa_modal {
  display: none; position: fixed; inset: 0;
  z-index: 9999; background-color: rgba(0,0,0,0.6); overflow-y: auto;
}
.apa_modal-content {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 60%; max-height: 90vh; overflow-y: auto;
  padding: var(--space-2);
  background-color: #fff; color: var(--gray-700);
  border: 1px solid #888; border-radius: 0.625rem;
}
.apa_close { color: #aaa; float: right; font-size: 1.75rem; font-weight: bold; }
.apa_close:hover, .apa_close:focus { color: #000; text-decoration: none; cursor: pointer; }
.body-modal-open { overflow: hidden; }


/* ----------------------------------------------//
// 13) EVENTS & HOURS
// ----------------------------------------------*/

.hours-of-operation { background-color: #393939; }
.hours-title { padding: var(--space-2); background-color: var(--gray-900); width: 100%; }

.event-block-container {
  margin-bottom: var(--space-2);
  border: 0.125rem solid var(--gray-700);
  border-left: 0.375rem solid var(--brand-gold);
  background-color: var(--gray-850);
  padding: var(--space-1) 0;
}
.event-block-title { font-size: var(--fs-lg); font-weight: 600; }
.event-block-title:hover { text-decoration: none; }

.event_hero_section {
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 100%;
  min-height: 6.25rem;
}
.event_hero_section h1 { padding: 10vh 0; }

.event_logo { display: flex; height: 100%; }
.event_logo img { margin: auto; }


/* ----------------------------------------------//
// 14) CAMPS (LISTING & DETAILS)
// ----------------------------------------------*/

.camp-date-section { padding: var(--space-3); }
.camp-date-section > h3 { margin-bottom: 2em; }

.apa-featured-image,
.location-featured-image {
  background-color: #000;
  background-position: center;
  background-size: cover;
  min-height: 33vh;
}
.apa-featured-image { padding-bottom: 44%; }
.location-featured-image { position: relative; }

.camp-content-img img { position: relative; top: -6.25rem; transform: scale(1); }
.camp-date-right img { width: 100%; position: relative; top: -9.375rem; transform: scale(1); }

.location-buttons { margin-bottom: var(--space-5); }
.location-buttons button { margin-bottom: var(--space-2); color: #000; }

.gform_previous_button { color: var(--gray-700) !important; }
.apa-checkout-total { border-top: 0.125rem solid var(--gray-700) !important; }

.camp-filter-links {
  list-style: none; padding: 0;
  display: flex; justify-content: center; gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.camp-filter-links li { margin: 0; }
.camp-filter-links a {
  display: inline-block;
  text-decoration: none;
  font-size: var(--fs-base);
  color: #000;
  background-color: var(--brand-gold);
  padding: 0.5rem 1rem;
  border: 1px solid #d69e00; /* darker gold border */
  border-radius: var(--radius-sm);
  transition: background-color 0.3s ease, color 0.3s ease;
}
.camp-filter-links a:hover { background-color: #fff; color: #000; }
.camp-filter-links a.active { background-color: #d69e00; color: #000; font-weight: bold; }

.camp-card { border-radius: var(--radius-md); overflow: hidden; }
.camp-thumb-img { width: 100%; height: auto; }

.camp-title-link { text-decoration: none; color: #fff; }
.camp-title { font-size: 1.3rem; margin: 0 0 var(--space-2); line-height: 1.2; text-align: left; }

.camp-weeks p { font-size: var(--fs-base); font-weight: 600; margin-bottom: var(--space-2); }

.camp-action {
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
  border-left: 0.125rem solid var(--gray-875);
  text-align: center;
}


/* ----------------------------------------------//
// 15) LAUNCHPAD (INTERNAL UI)
// ----------------------------------------------*/

#launchpad_date {
  font-size: var(--fs-md); color: var(--gray-700);
  text-align: center; width: 100%; display: block;
}

.launchpad_btn,
.launchpad_btn_2 {
  display: block;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-lg);
  font-size: var(--fs-base);
  font-weight: 800;
  margin-bottom: var(--space-2);
}
.launchpad_btn {
  background-color: var(--brand-gold); color: #000;
}
.launchpad_btn:hover { background-color: #fff; color: #000; text-decoration: none; }

.launchpad_btn_2 {
  background-color: #313131; border: 0 solid var(--brand-gold); color: var(--gray-700);
}
.launchpad_btn_2:hover { border-left: 0.5rem solid var(--brand-gold); color: var(--brand-gold); text-decoration: none; }

.launchpad_icon_btn {
  padding: var(--space-2);
  width: 3.125rem; border: none;
  border-radius: var(--radius-lg);
  font-size: var(--fs-base); font-weight: 800;
  background-color: #171717; color: var(--brand-gold);
  margin-left: 0.5rem; text-align: center; display: inline-block;
}

.launchpad_reply_btn {
  color: rgb(101,98,75);
  position: absolute; right: 0; padding: 0 var(--space-6);
  text-transform: uppercase; text-decoration: none;
}
.launchpad_reply_btn:hover { color: #000; text-decoration: none; }

.launchpad_btn i { float: right; margin-top: 0.1875rem; }

.launchpad_calendar { background-color: #fff; text-align: center; color: var(--gray-700); padding: var(--space-2); padding-top: var(--space-5); }
.launchpad_calendar iframe { width: 100%; }

.launchpad_contact {
  background-color: #171717; color: #fff;
  padding: var(--space-2); border-radius: var(--radius-lg);
  margin-bottom: var(--space-2); display: block; font-size: 1.125rem;
}
.launchpad_contact p { font-weight: 800; font-size: var(--fs-xs); }

.launchpad_message_top {
  background-color: var(--brand-gold);
  color: #171717;
  padding: var(--space-2) var(--space-4);
  font-size: 1.125rem; font-weight: 800;
}
.launchpad_message { background-color: rgb(65,65,65); padding: var(--space-2); }
.launchpad_comment {
  background-color: #fff; color: var(--gray-700);
  border-radius: 0.625rem; margin: var(--space-6) 0; padding: var(--space-2);
}


/* ----------------------------------------------//
// 16) PASSWORD PAGE
// ----------------------------------------------*/

body.password-protected {
  background-color: #f2f2f2;
  font-family: var(--font-sans);
  height: 100vh; display: flex; justify-content: center; align-items: center;
}
.post-password-form {
  text-align: center; background-color: #000; width: 100%; max-width: 25rem;
  margin: auto; padding: var(--space-2);
  box-shadow: 0 0 0.625rem rgba(0,0,0,0.1);
}
.post-password-form label { text-align: left; }
.post-password-form input[type="password"] {
  width: 100%; padding: 0.4375rem;
  margin: var(--space-2) 0; border: 0 solid #ddd;
}
.post-password-form input[type="submit"] {
  max-width: 100%; padding: var(--space-2) var(--space-4);
  background-color: var(--brand-gold); color: #000; border: none; cursor: pointer;
}
.post-password-form input[type="submit"]:hover { background-color: #e6aa00; text-decoration: none; }


/* ----------------------------------------------//
// 17) MISC / UTILITIES
// ----------------------------------------------*/

.divider { width: 100%; border-bottom: 0.375rem solid #000; padding: var(--space-5) 0; }
.three-block > img { width: 100%; }
.img-bg { background-size: cover; background-repeat: no-repeat; width: 100%; }

.site-logo img { max-height: 5rem; }

.v-center { position: relative; top: 50%; transform: translateY(-50%); margin: 0; }

.location-logo { max-height: 25vh; }

.cta-center { text-align: center; }

.div-border-left { border-left: 0.75rem solid currentColor; padding: 0 var(--space-4); }

.custom-hr { display: block; padding: var(--space-2) 0; width: 100%; }

.nav-link { background-color: var(--gray-700); }
.nav-link.active { background-color: var(--brand-gold); }

.sticky-top { z-index: 1000; }

#apa-contact .apa-contact { color: #000 !important; }


/* Utilities – normalized to 8pt scale (kept class names) */
.m-t-1 { margin-top: var(--space-1); }
.m-t-2 { margin-top: var(--space-2); }
.m-t-3 { margin-top: var(--space-4); }  /* 32px (was 30px)  */
.m-t-4 { margin-top: var(--space-5); }
.m-t-5 { margin-top: var(--space-7); }  /* 64px (was 100px) */

.m-b-1 { margin-bottom: var(--space-1); }
.m-b-2 { margin-bottom: var(--space-2); }
.m-b-3 { margin-bottom: var(--space-4); } /* 32px (was 30px) */
.m-b-4 { margin-bottom: var(--space-5); }
.m-b-5 { margin-bottom: var(--space-7); } /* 64px (was 100px) */

.p-t-1 { padding-top: var(--space-1); }
.p-t-2 { padding-top: var(--space-2); }
.p-t-3 { padding-top: var(--space-3); }
.p-t-4 { padding-top: var(--space-4); }
.p-t-5 { padding-top: var(--space-7); } /* bump to 64px for rhythm */

.p-b-1 { padding-bottom: var(--space-1); }
.p-b-2 { padding-bottom: var(--space-2); }
.p-b-3 { padding-bottom: var(--space-3); }
.p-b-4 { padding-bottom: var(--space-4); }
.p-b-5 { padding-bottom: var(--space-7); }

.p-o { padding: 0; }
.p-10 { padding: var(--space-1); }
.p-20 { padding: var(--space-2); }
.p-30 { padding: var(--space-3); }
.p-40 { padding: var(--space-4); }
.p-50 { padding: var(--space-5); }
.p-60 { padding: var(--space-6); }
.p-70 { padding: var(--space-7); }
.p-80 { padding: 5rem; } /* kept literal where used */
.p-90 { padding: 5.625rem; }
.p-100 { padding: 6.25rem; }

.pt-0 { padding-top: 0; }
.pt-10 { padding-top: var(--space-1); }
.pt-20 { padding-top: var(--space-2); }
.pt-30 { padding-top: var(--space-3); }
.pt-40 { padding-top: var(--space-4); }
.pt-50 { padding-top: var(--space-5); }
.pt-60 { padding-top: var(--space-6); }
.pt-70 { padding-top: var(--space-7); }
.pt-80 { padding-top: 5rem; }
.pt-90 { padding-top: 5.625rem; }
.pt-100 { padding-top: 6.25rem; }

.pb-0 { padding-bottom: 0; }
.pb-10 { padding-bottom: var(--space-1); }
.pb-20 { padding-bottom: var(--space-2); }
.pb-30 { padding-bottom: var(--space-3); }
.pb-40 { padding-bottom: var(--space-4); }
.pb-50 { padding-bottom: var(--space-5); }
.pb-60 { padding-bottom: var(--space-6); }
.pb-70 { padding-bottom: var(--space-7); }
.pb-80 { padding-bottom: 5rem; }
.pb-90 { padding-bottom: 5.625rem; }
.pb-100 { padding-bottom: 6.25rem; }

.pl-0 { padding-left: 0; }
.pl-10 { padding-left: var(--space-1); }
.pl-20 { padding-left: var(--space-2); }
.pl-30 { padding-left: var(--space-3); }
.pl-40 { padding-left: var(--space-4); }
.pl-50 { padding-left: var(--space-5); }
.pl-60 { padding-left: var(--space-6); }
.pl-70 { padding-left: var(--space-7); }
.pl-80 { padding-left: 5rem; }
.pl-90 { padding-left: 5.625rem; }
.pl-100 { padding-left: 6.25rem; }

.pr-0 { padding-right: 0; }
.pr-10 { padding-right: var(--space-1); }
.pr-20 { padding-right: var(--space-2); }
.pr-30 { padding-right: var(--space-3); }
.pr-40 { padding-right: var(--space-4); }
.pr-50 { padding-right: var(--space-5); }
.pr-60 { padding-right: var(--space-6); }
.pr-70 { padding-right: var(--space-7); }
.pr-80 { padding-right: 5rem; }
.pr-90 { padding-right: 5.625rem; }
.pr-100 { padding-right: 6.25rem; }

.mt-0 { margin-top: 0; }
.mt-10 { margin-top: var(--space-1); }
.mt-20 { margin-top: var(--space-2); }
.mt-30 { margin-top: var(--space-4); } /* 32px */
.mt-40 { margin-top: var(--space-5); }
.mt-50 { margin-top: var(--space-5); }  /* 40px instead of 50px uneven */
.mt-60 { margin-top: var(--space-6); }
.mt-70 { margin-top: var(--space-7); }
.mt-80 { margin-top: 5rem; }
.mt-90 { margin-top: 5.625rem; }
.mt-100 { margin-top: 6.25rem; }

.mb-0 { margin-bottom: 0; }
.mb-10 { margin-bottom: var(--space-1); }
.mb-20 { margin-bottom: var(--space-2); }
.mb-30 { margin-bottom: var(--space-4); } /* 32px */
.mb-40 { margin-bottom: var(--space-5); }
.mb-50 { margin-bottom: var(--space-5); }
.mb-60 { margin-bottom: var(--space-6); }
.mb-70 { margin-bottom: var(--space-7); }
.mb-80 { margin-bottom: 5rem; }
.mb-90 { margin-bottom: 5.625rem; }
.mb-100 { margin-bottom: 6.25rem; }


/* ----------------------------------------------//
// 18) MEDIA QUERIES
// ----------------------------------------------*/

@media (max-width: 991px) {
  .post-thumbnail { padding-bottom: 65%; background-position: center top; }

  /* moved to apa-header-footer.css */
  .title-3-block { margin-top: var(--space-3); text-align: center; }

  .page-title-1 {
    font-size: 1.75rem;
    text-align: center;
    padding: var(--space-4) 0;
  }

  .camp-content-img img { top: var(--space-4); transform: scale(1.5) !important; }
  .camp-date-right img  { top: var(--space-3); transform: scale(1.4) !important; }

  .camp-filter-links { flex-wrap: wrap; justify-content: flex-start; gap: var(--space-1); }
  .camp-filter-links a { font-size: var(--fs-sm); padding: 0.375rem 0.75rem; }

  .camp-card { flex-direction: column; }
  .camp-card > div { width: 100%; padding: var(--space-1); border: none; }

  .camp-title { font-size: var(--fs-md); }
  .camp-weeks p { font-size: var(--fs-sm); }

  .camp-action {
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
    border-left: none;
  }

  .gold-button { font-size: var(--fs-sm); padding: 0.5rem 1rem; }
}

@media (max-width: 768px) {
  h1 { font-size: var(--fs-3xl); }
  h2 { font-size: var(--fs-2xl); }
  h3 { font-size: var(--fs-xl); }
  h4 { font-size: var(--fs-lg); }
  h5 { font-size: var(--fs-md); }
  h6 { font-size: var(--fs-base); }

  .carousel-caption h1 { font-size: var(--fs-3xl); }
  .carousel-caption p  { font-size: var(--fs-md); }

  .title-3-block { display: block; margin-top: var(--space-2); font-size: var(--fs-md); }

  /* moved to apa-header-footer.css */
  .hide-on-mobile { display: none; }

  .day-details-section-list { padding: 0; }
  body .day-details-section .row { padding: var(--space-4) var(--space-1) !important; }
  .day-details-section-wrapper { padding: var(--space-1) !important; }
}

@media (min-width: 700px) {
  /* moved to apa-header-footer.css */
}

@media (min-width: 1000px) {
  /* moved to apa-header-footer.css */
}

@media (min-width: 1220px) {
  /* moved to apa-header-footer.css */
}

/* Prevent iOS zoom on form focus */
@media screen and (max-width: 768px) {
  input[type="text"],
  input[type="email"],
  input[type="url"],
  input[type="password"],
  input[type="search"],
  input[type="number"],
  input[type="tel"],
  input[type="date"],
  input[type="month"],
  input[type="week"],
  input[type="time"],
  input[type="datetime"],
  input[type="datetime-local"],
  textarea,
  select {
    font-size: 16px !important;
  }
}
