/*
Theme Name: Wings Discovery Centre
Theme URI: https://wingsdiscoverycentre.co.za
Description: Child theme of Twenty Twenty Five for Wings Discovery Centre. Built by PS Digital Media.
Author: PS Digital Media
Author URI: https://psdigitalmedia.co.za
Template: twentytwentyfive
Version: 1.0.13
Requires at least: 6.7
Text Domain: wings-discovery
*/

/* ==========================================================
   PS Digital Media section system (edit variables here)
   ========================================================== */
:root {
  /* Left and right padding, all sections */
  --fluid-side-padding-min: 1.25rem; /* 20px */
  --fluid-side-padding-max: 5rem;    /* 80px */

  /* Top and bottom padding */
  --section-xxl-padding-min: 9.375rem; /* 150px */
  --section-xxl-padding-max: 10rem;    /* 160px */
  --section-xl-padding-min: 6.875rem;  /* 110px */
  --section-xl-padding-max: 7.5rem;    /* 120px */
  --section-l-padding-min: 5.625rem;   /* 90px */
  --section-l-padding-max: 6.25rem;    /* 100px */
  --section-m-padding-min: 5rem;       /* 80px */
  --section-m-padding-max: 5rem;
  --section-s-padding-min: 3.75rem;    /* 60px */
  --section-s-padding-max: 3.75rem;
  --section-xs-padding-min: 2.5rem;    /* 40px */
  --section-xs-padding-max: 2.5rem;
  --section-xxs-padding-min: 1.5rem;   /* 24px */
  --section-xxs-padding-max: 1.5rem;
  --section-header-padding-min: 1.25rem; /* 20px */
  --section-header-padding-max: 1.25rem;

  --section-hero-height: 100vh;
  --section-offset-header: 80px;
  --section-narrow: 62.5rem;  /* 1000px */
  --section-narrow-xs: 45rem; /* 720px */

  --fluid-side-padding: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max));
}

/* Section padding, fluid variants (do not edit below) */
.section-xxl { padding-top: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max)) !important; padding-bottom: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max)) !important; }
.section-xl  { padding-top: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max)) !important; padding-bottom: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max)) !important; }
.section-l   { padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max)) !important; padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max)) !important; }
.section-m   { padding-top: var(--section-m-padding-max) !important; padding-bottom: var(--section-m-padding-max) !important; }
.section-s   { padding-top: var(--section-s-padding-max) !important; padding-bottom: var(--section-s-padding-max) !important; }
.section-xs  { padding-top: var(--section-xs-padding-max) !important; padding-bottom: var(--section-xs-padding-max) !important; }
.section-xxs { padding-top: var(--section-xxs-padding-max) !important; padding-bottom: var(--section-xxs-padding-max) !important; }
.section-header { padding-top: var(--section-header-padding-max) !important; padding-bottom: var(--section-header-padding-max) !important; }

.section-xxl, .section-xl, .section-l, .section-m, .section-s, .section-xs, .section-xxs, .section-header {
  padding-left: var(--fluid-side-padding) !important;
  padding-right: var(--fluid-side-padding) !important;
}

/* Hero height */
.section-hero { min-height: var(--section-hero-height) !important; display: flex; flex-direction: column; justify-content: center; }

/* Full width: children ignore the content width */
.section-full > * { max-width: 100% !important; }

/* Narrow sections: change the content width inside this group */
.section-narrow { --wp--style--global--content-size: var(--section-narrow); }
.section-narrow-xs { --wp--style--global--content-size: var(--section-narrow-xs); }

/* Offset padding for overlay headers */
.section-offset { padding-top: calc(var(--section-offset-header) + var(--section-xxl-padding-min)) !important; }

/* ==========================================================
   Wings Discovery Centre site styles
   ========================================================== */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, color .2s ease; }
:where(a):focus-visible, .wp-element-button:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }
.site-header { gap: 5%; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.site-header .wp-block-site-logo { flex-shrink: 0; }
.site-nav { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0; color: var(--wp--preset--color--accent-1); --wp--style--block-gap: 3.125rem; }
.site-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-1); }
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-3); }
.site-nav .wp-block-navigation__responsive-container-open svg { width: 32px; height: 32px; fill: var(--wp--preset--color--accent-1); }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base); }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.5rem; font-size: 1.25rem; }

/* Social icons */
.wp-block-social-links.header-social .wp-social-link,
.wp-block-social-links.footer-social .wp-social-link { font-size: 32px; }
.wp-block-social-links.header-social .wp-social-link { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); }
.wp-block-social-links.footer-social .wp-social-link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--accent-1); }
.wp-block-social-links .wp-social-link a { padding: 0.3em; }
.wp-block-social-links .wp-social-link svg { fill: currentColor; }
.wp-block-social-links .wp-social-link:hover { transform: none; opacity: .85; }

/* ---------- Footer ---------- */
.site-footer { color: #DADADA; font-weight: 400; }
.site-footer p { margin: 0 0 0.5rem; }
.site-footer a { color: var(--wp--preset--color--base); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; color: var(--wp--preset--color--accent-2); }
.site-footer .footer-heading { color: var(--wp--preset--color--base); font-size: 1rem; font-weight: 400; text-transform: uppercase; letter-spacing: 0.87px; margin: 0 0 1.25rem; }
footer.wp-block-template-part { margin-block-start: 0; }

/* ---------- Mobile and tablet ---------- */
@media (max-width: 1024px) {
  .site-header { gap: 1rem; }
  .site-footer .wp-block-columns { text-align: center; }
  .site-footer .wp-block-column { flex-basis: 100% !important; }
  .site-footer .wp-block-image img { margin-inline: auto; }
  .site-footer .wp-block-social-links { justify-content: center; }
}
@media (max-width: 600px) {
  .site-header .header-social { display: none; }
  .site-header .wp-block-site-logo img { width: 70px; }
}
/* Menu spacing */
@media (min-width: 600px) { .site-nav .wp-block-navigation__container { gap: clamp(1.5rem, 3.5vw, 3.125rem); } }

/* ---------- Page layout ---------- */
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
main.wp-block-group { margin-block-start: 0 !important; }
@media (min-width: 900px) { .text-columns { column-count: 2; column-gap: 2.5rem; } .text-columns > * { break-inside: avoid; } }
.text-columns > p { margin-block: 0 1rem; }
.wp-block-cover .wp-block-buttons { gap: 1rem; }

/* ---------- Inner pages ---------- */
.page-banner h1 { margin: 0; letter-spacing: 0.02em; }
.staff-list { list-style: none; padding: 0; margin-top: 3rem; columns: 1; }
@media (min-width: 782px) { .staff-list { columns: 2; column-gap: 3rem; } }
.staff-list li { break-inside: avoid; padding: 0.6rem 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); }
.staff-list strong { color: var(--wp--preset--color--accent-1); font-weight: 600; }
.faq-item { border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 1.25rem 0; margin: 0 !important; }
.faq-item summary { font-size: 1.25rem; font-weight: 600; color: var(--wp--preset--color--accent-1); cursor: pointer; }
.faq-item[open] summary { margin-bottom: 1rem; }
.faq-item p { margin: 0 0 0.75rem; }
.contact-details .contact-label { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--wp--preset--color--accent-3); margin: 1.5rem 0 0.25rem; }
.contact-details .contact-label:first-child { margin-top: 0; }
.contact-details p { font-size: 1.125rem; font-weight: 600; color: var(--wp--preset--color--accent-1); margin: 0; }
.contact-details a { text-decoration: none; }
.contact-details a:hover { text-decoration: underline; }
.contact-map iframe { display: block; border: 0; border-radius: 10px; width: 100%; }
.page-banner .wp-block-cover__inner-container { width: 100%; }
.page-banner h1, .wp-block-heading.has-text-align-center { text-align: center; }
.section-s > .wp-block-heading:only-child { text-align: center; }

/* ---------- Forminator application form ---------- */
.forminator-ui.forminator-custom-form { font-family: inherit !important; }
.forminator-ui .forminator-label { font-weight: 600 !important; color: var(--wp--preset--color--accent-3) !important; font-size: 0.95rem !important; }
.forminator-ui .forminator-input, .forminator-ui .forminator-textarea, .forminator-ui select { border: 1px solid #C9CDD2 !important; border-radius: 8px !important; padding: 0.7rem 0.9rem !important; font-family: inherit !important; }
.forminator-ui .forminator-input:focus, .forminator-ui .forminator-textarea:focus { border-color: var(--wp--preset--color--accent-1) !important; box-shadow: 0 0 0 2px rgba(19,102,150,.15) !important; }
.forminator-ui .forminator-title { color: var(--wp--preset--color--accent-1) !important; font-size: 1.5rem !important; font-weight: 700 !important; margin-top: 1rem !important; }
.forminator-ui .forminator-button, .forminator-ui .forminator-button-submit, .forminator-ui .forminator-button-next, .forminator-ui .forminator-button-back { background: var(--wp--preset--color--accent-2) !important; color: var(--wp--preset--color--accent-1) !important; border: 1px solid var(--wp--preset--color--accent-2) !important; border-radius: 10px !important; padding: 1rem 1.5rem !important; font-weight: 600 !important; font-family: inherit !important; }
.forminator-ui .forminator-button:hover { background: var(--wp--preset--color--accent-1) !important; color: var(--wp--preset--color--accent-2) !important; border-color: var(--wp--preset--color--accent-1) !important; }
.forminator-ui .forminator-pagination-steps .forminator-break, .forminator-ui .forminator-pagination-steps .forminator-current .forminator-step-dot { background: var(--wp--preset--color--accent-1) !important; }.forminator-ui .forminator-input-with-icon .forminator-input { padding-left: 2.6rem !important; }

/* ---------- Date picker (application form) ---------- */
#ui-datepicker-div { background: #fff !important; border: 1px solid var(--wp--preset--color--accent-6) !important; border-radius: 12px !important; box-shadow: 0 12px 32px rgba(0,0,0,.18) !important; padding: 0.75rem !important; z-index: 1000 !important; width: min(320px, calc(100vw - 2rem)) !important; font-family: var(--wp--preset--font-family--montserrat) !important; font-size: 0.95rem !important; }
#ui-datepicker-div .ui-datepicker-header { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.5rem; position: relative; }
#ui-datepicker-div .ui-datepicker-prev, #ui-datepicker-div .ui-datepicker-next { position: static !important; cursor: pointer; color: var(--wp--preset--color--accent-1) !important; font-weight: 700; padding: 0.25rem 0.5rem; }
#ui-datepicker-div .ui-datepicker-title { display: flex; gap: 0.4rem; flex: 1; justify-content: center; }
#ui-datepicker-div .ui-datepicker-title select { background: var(--wp--preset--color--accent-5) !important; border: 1px solid var(--wp--preset--color--accent-6) !important; border-radius: 6px !important; padding: 0.3rem 0.4rem !important; color: var(--wp--preset--color--accent-1) !important; font-family: inherit !important; font-weight: 600 !important; }
#ui-datepicker-div table { width: 100%; border-collapse: collapse; margin: 0; background: transparent; }
#ui-datepicker-div th { color: var(--wp--preset--color--accent-3) !important; font-weight: 600; font-size: 0.8rem; padding: 0.35rem 0; text-align: center; border: 0 !important; }
#ui-datepicker-div td { padding: 2px !important; border: 0 !important; text-align: center; background: transparent !important; }
#ui-datepicker-div td a, #ui-datepicker-div td span { display: block; padding: 0.45rem 0 !important; border-radius: 6px !important; border: 0 !important; background: transparent !important; color: var(--wp--preset--color--contrast) !important; text-decoration: none !important; text-align: center; }
#ui-datepicker-div td a:hover { background: var(--wp--preset--color--accent-5) !important; color: var(--wp--preset--color--accent-1) !important; }
#ui-datepicker-div .ui-datepicker-today a { box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent-1) !important; color: var(--wp--preset--color--accent-1) !important; font-weight: 700; }
#ui-datepicker-div .ui-state-active, #ui-datepicker-div .ui-datepicker-current-day a { background: var(--wp--preset--color--accent-2) !important; color: var(--wp--preset--color--accent-1) !important; font-weight: 700; }
#ui-datepicker-div .ui-state-disabled span { opacity: .35; }#ui-datepicker-div::before { background: #fff !important; border-radius: 12px !important; }
#ui-datepicker-div .ui-datepicker-prev, #ui-datepicker-div .ui-datepicker-next { background: var(--wp--preset--color--accent-1) !important; color: #fff !important; border-radius: 6px !important; }
#ui-datepicker-div .ui-datepicker-today a { box-shadow: inset 0 0 0 2px var(--wp--preset--color--accent-1) !important; }

/* ---------- Cookie notice ---------- */
.cc-window { font-family: var(--wp--preset--font-family--montserrat) !important; font-size: 0.9rem !important; border-radius: 12px !important; box-shadow: 0 10px 30px rgba(0,0,0,.2) !important; max-width: 22rem !important; }
.cc-window .cc-btn { border-radius: 10px !important; font-weight: 600 !important; }
.cc-window .cc-btn:hover { background: #fff !important; color: var(--wp--preset--color--accent-1) !important; }

/* ---------- Privacy policy ---------- */
.privacy-policy h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }
.privacy-policy ul { padding-left: 1.25rem; }
.privacy-policy li { margin-bottom: 0.4rem; }
.site-footer .footer-small { font-size: 0.85rem; margin-top: 0.75rem; }
.cc-window .cc-link { color: #fff !important; opacity: 1 !important; text-decoration: underline !important; }
