/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.1.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
*/

:root {
  --bp-primary: #ef8221;
}

/* GENERAL BUTTONS */
button.btn.button.ur-submit-button,
button.user-registration-Button.button.ur-submit-button {
  background: #ef8221 !important;
  border: 1px solid #ef8221 !important;
  width: 100% !important;
}

input.user-registration-Button.button {
  width: 100%;
}

/* USER REGISTRATION MESSAGES/ERRORS */
.user-registration-message {
  display: block;
  position: static;
  width: 100%;
  text-align: left;
  border: 1.5px solid #86efac;
  background: rgba(22, 163, 74, 0.07);
  color: #15803d;
  border-radius: 8px;
  padding: 14px 16px;
  font-size: 14px;
  margin: 0 0 16px;
  box-sizing: border-box;
  z-index: auto;
}
.user-registration-message::before,
.user-registration-info::before {
  display: none !important;
  content: none !important;
}
.user-registration-error {
  border: 1.5px solid #fca5a5;
  color: #dc2626;
  border-radius: 8px;
  background: #fef2f2;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 12px 14px;
  font-size: 13px !important;
  box-sizing: border-box;
}

/* USER REGISTRATION FORMS — global defaults (auth page overrides these via .auth-page) */
.ur-frontend-form {
  border: 1px solid #e1e1e1 !important;
  padding: 20px !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.ur-button-container {
  width: 100% !important;
}

.user-registration.ur-frontend-form {
  border: 1px solid #e3e3e3 !important;
  box-shadow: none !important;
  padding: 40px !important;
}

.ur-frontend-form .description {
  padding-bottom: 20px;
}

/* PMPRO STYLES */
.pmpro_card_actions.pmpro_font-medium {
  display: none;
}
.pmpro_btn,
.pmpro_btn:link,
.pmpro_content_message a,
.pmpro_content_message a:link {
  color: #fff !important;
  background: #ef8221 !important;
  border: 1px solid #ef8221 !important;
  text-transform: uppercase;
  font-size: 16px;
  padding: 12px;
  border-radius: 4px;
  text-decoration: none;
}
.pmpro_content_message {
  background: #fff;
  padding: 30px;
  border: 8px solid #ef8221 !important;
  border-radius: 10px;
}
.archive .pmpro_content_message {
  display: none;
}
#pmpro_account .pmpro_box {
  padding: 0;
  border-top: 0 solid #fff;
}
#pmpro_account #pmpro_account-membership h2 {
  display: none;
}
#pmpro_account #pmpro_account-invoices {
  border: 1px solid #eee;
  background: #f3f3f3;
  padding: 20px;
  border-radius: 5px;
}
div#pmpro_account-profile {
  background: #f3f3f3;
  padding: 20px !important;
  border-radius: 5px;
}
table.pmpro_table {
  text-align: left;
  margin-top: 20px;
}
.pmpro_actions_nav-right,
.pmpro_actions_nav {
  float: left;
  text-align: left;
}

/* ASTRA / ARCHIVE */
.ast-post-format-.blog-layout-4.ast-article-inner.ast-no-date-box {
  border: 1px solid #e7e2e2;
}
.ast-archive-description {
  border-bottom: 0 solid #fff;
  padding: 0;
}
.ast-archive-description .ast-archive-title {
  font-size: 26px;
  color: #000;
  font-weight: 600;
}
header.entry-header:not(.related-entry-header) > *:not(:last-child) {
  margin-bottom: 25px;
}
header.wp-block-uagb-advanced-heading.uagb-block-234cf9a9 {
  text-align: center;
}

/* MENU & HEADER */
.menu-item-22337 span.menu-text {
  color: #ef8221;
  margin-left: 10px;
}
.ast-header-account-wrap .ast-header-account-text {
  color: #fff;
  background: #ef8221;
  padding: 10px;
  border-radius: 3px;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease;
}
.ast-header-account-link:hover .ast-header-account-text,
.ast-header-account-link:focus .ast-header-account-text {
  background: #000 !important;
  color: #fff !important;
}
ul#ast-hf-account-menu {
  line-height: 10px;
  padding: 0 10px 10px 0;
  border-radius: 10px;
}

/* UAGB & POST GRID */
.uagb-post-grid .uagb-post__inner-wrap .uagb-post__taxonomy.highlighted {
  background: #ef8221 !important;
}
.uagb-block-e89a8374 .uagb-post__image {
  margin-bottom: 0 !important;
}

/* ANSPRESS */
.ap-login {
  font-size: 20px;
  background: #ebebeb;
  padding: 20px;
  border-radius: 5px;
}
.anspress .ap-comment-no-perm {
  background: #ef8221;
  border: 2px solid #ef8221;
  padding: 20px 5px;
  margin-top: 10px;
  border-radius: 3px;
  text-align: center;
  color: #fff;
  font-size: 18px;
}
#anspress .ap-cell-inner {
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
}
#anspress .ap-list-head,
#anspress .ap-questions {
  border-radius: 5px;
}
#anspress .ap-list-head .ap-btn-ask {
  background: #ef8221;
  text-transform: uppercase;
}
#anspress .ap-filter-toggle {
  color: #ef8221;
}
#anspress .ap-questions-count.ap-questions-acount {
  border-color: #ef8221;
}
#anspress .ap-questions-title a {
  font-size: 18px;
}
#anspress .ap-questions .ap-display-meta-item {
  font-size: 16px;
}
button.ap-btn-insertimage.ap-btn-small.ap-btn.mb-10.ap-mr-5 {
  display: none;
}
button.ap-btn.ap-btn-submit {
  background: #ef8221;
  color: #fff;
  border: 1px solid #ef8221;
  border-radius: 5px;
  padding: 10px;
}
.ap-form-control {
  height: 50px;
  width: 100%;
}

/* SEARCH */
.ast-search-icon {
  padding-top: 5px;
}
.astra-search-icon::before {
  font-weight: 900;
}
.search .ast-archive-description {
  padding: 0;
}

/* FORMS */
form.pmpro_form input[type="text"],
form.pmpro_form input[type="password"],
form.pmpro_form input[type="email"],
form.pmpro_form input[type="number"],
form.pmpro_form textarea,
form.pmpro_form select,
#loginform input[type="text"],
#loginform input[type="password"] {
  width: 100%;
  max-width: 100%;
}
form.pmpro_form label,
#loginform label {
  margin-bottom: 20px;
}

/* MISC ELEMENTS */
img {
  border-radius: 5px;
}
img.avatar.avatar-50.photo {
  border-radius: 30px;
}
#user-registration,
#user-registration.horizontal {
  box-shadow: none;
}
ul.sub-menu {
  line-height: 1px !important;
  padding-bottom: 10px;
}
div#ur-submit-message-node {
  padding-top: 10%;
}

/* TABLESOME */
.tablesome__container .tablesome-pagination ul {
  justify-content: flex-start !important;
}
.tablesome__container .tablesome-pagination ul li a {
  border: 0 solid #fff !important;
  color: #ef8221 !important;
}
.tablesome__container .tablesome-pagination ul li a.active,
.tablesome__container .tablesome-pagination ul li a:hover {
  background-color: #ef8221 !important;
  border: 1px solid #ef8221 !important;
  color: #fff !important;
  border-radius: 5px !important;
}
.tablesome__container .tablesome-header__wrapper .tablesome-filter__button,
.tablesome__container .tablesome-header__wrapper .tablesome-export__button,
.tablesome__container .tablesome-header__wrapper .tablesome-sort__button {
  border: 1px solid #ef8221 !important;
  border-radius: 5px !important;
  color: #fff !important;
  background: #ef8221 !important;
}
.tablesome__table--wrapper {
  border-radius: 5px;
}
.tablesome__container .tablesome-pagination ul li a,
span.tablesome__column__name {
  font-weight: 700;
}
input.tablesome-search__input,
img.tablesome__inputMediaPreview--image {
  border-radius: 5px !important;
}

/* UAGB POST GRID — OFFSET BUG FIX
   WP_Query with `offset` returns found_posts=0, causing UAGB to render
   "No post found!" even when posts are present. Hide it when articles exist. */
article ~ .uagb-post__no-posts {
  display: none !important;
}

/* GLOSSARY */
div#glossaryList-nav {
  display: none;
}

/* OTHER ELEMENTS */
.n2-ss-widget.nextend-thumbnail.nextend-thumbnail-default.nextend-thumbnail-horizontal.n2-ow-all {
  width: 520px !important;
}
a#pmpro_actionlink-levels {
  color: #fff;
  background: #ef8221;
  border-radius: 3px;
  padding: 10px 25px;
  text-decoration: none;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 14px;
}
.ap-pagination span,
.ap-pagination a {
  background: #ef8221;
  color: #fff;
  border: 0 solid #fff;
  font-size: 18px;
}
p.user-registration-LostPassword.lost_password {
  border-top: 1px solid #d0d0d0;
  margin: 40px 0 4px 0;
  padding-top: 30px;
  text-align: center;
}
p.user-registration-register.register {
  text-align: center;
  text-transform: uppercase;
  font-weight: 900;
  width: 100%;
}

/* RESPONSIVE */

@media (max-width: 640px) {
  .pmpro_content_message {
    text-align: center;
  }
}

@media (min-width: 1281px) {
  div#rpt_pricr {
    width: 70%;
    margin: 0 auto;
  }
  div#n2-ss-2 .n2-style-b466471a73481486b47d1e60a3c44937-heading {
    font-size: 18px;
  }
}

/* SMART SLIDER — FONT OVERRIDES */
div#n2-ss-2 .n2-font-6805300ac8a5d487b78c54b3f085a3f2-hover {
    font-family: 'Merriweather', Georgia, serif !important;
}
div#n2-ss-2 .n2-font-1a53ba613eb13a5a70b124e982b6d720-hover {
    font-size: 100% !important;
}

/* SMART SLIDER — MOBILE PADDING FIX
   Default 70px top+bottom padding overflows the mobile slider height (360px). */
@media screen and (max-width: 700px) {
    div#n2-ss-2 .n-uc-145109879bdba-inner,
    div#n2-ss-2 .n-uc-145109879bdba1-inner,
    div#n2-ss-2 .n-uc-145109879bdba2-inner {
        padding: 8px 16px !important;
    }
}

/* HOMEPAGE HEADING — MOBILE FONT SIZE
   UAGB sets 30px on mobile; increase to match tablet size for better readability. */
@media (max-width: 767px) {
    .wp-block-uagb-advanced-heading.uagb-block-e13dd816 .uagb-heading-text {
        font-size: 36px !important;
    }
}

/* UAGB POST GRID — FEATURED IMAGE FULL-WIDTH ON MOBILE/TABLET
   UAGB resets image negative margins to 0px on tablet/mobile, causing the image
   to sit inside the card's 20px padding instead of bleeding edge-to-edge.
   Restore the desktop behaviour (-20px cancels the card padding). */
@media (max-width: 976px) {
    .uagb-block-25550128.is-grid .uagb-post__inner-wrap .uagb-post__image:first-child,
    .uagb-block-b8499f82.is-grid .uagb-post__inner-wrap .uagb-post__image:first-child {
        margin-left: -20px !important;
        margin-right: -20px !important;
    }
}

/* UAGB IMAGE RATIO FIX
   UAGB ratio containers use padding-bottom % + position:absolute on the img.
   Astra's img rules break this — restore the full set of properties. */
.uagb-post__image a[class*="uagb-image-ratio-"] {
    display: block;
    position: relative;
    overflow: hidden;
    height: 0;
}
.uagb-post__image a[class*="uagb-image-ratio-"] > img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 1440PX WRAPPER — ALIGNFULL CONSTRAINT
   UAGB alignfull blocks escape the site content width on screens wider than 1440px. */
@media (min-width: 1441px) {
    .home .entry-content .wp-block-uagb-container.alignfull,
    .home .entry-content .wp-block-uagb-post-grid.alignfull {
        max-width: 1440px;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* POST GRID — MOBILE FONT SIZES
   UAGB sets post titles to 20px and taxonomy tags to 14px at ≤767px.
   Override to match the user's preferred sizes. */
@media (max-width: 767px) {
    .uagb-block-25550128 .uagb-post__text.uagb-post__title,
    .uagb-block-25550128 .uagb-post__text.uagb-post__title a,
    .uagb-block-b8499f82 .uagb-post__text.uagb-post__title,
    .uagb-block-b8499f82 .uagb-post__text.uagb-post__title a {
        font-size: 24px !important;
    }
    .uagb-block-25550128 .uagb-post__taxonomy,
    .uagb-block-b8499f82 .uagb-post__taxonomy {
        font-size: 12px !important;
    }
}

/* MOBILE UX — INPUT FONT SIZE (iOS ZOOM PREVENTION)
   iOS Safari auto-zooms when an input has font-size < 16px.
   Explicitly enforce 16px on all text inputs, selects and textareas. */
@media (max-width: 767px) {
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    select,
    textarea {
        font-size: 16px !important;
    }
}

/* MOBILE UX — TOUCH TARGET SIZING
   WCAG 2.5.5 and Google Lighthouse require 44x44px minimum touch targets.
   Astra's hamburger button is already large enough; these selectors cover
   smaller interactive elements that fall below the threshold on mobile. */
@media (max-width: 767px) {
    .menu-toggle.main-header-menu-toggle {
        min-height: 44px;
        min-width: 44px;
    }
    .pmpro_btn,
    .pmpro_content_message a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* REGISTER BUTTON — MOBILE MENU HEIGHT
   Reduce vertical padding so the button doesn't dominate the mobile header row.
   Natural height (~30px) is still a comfortable touch target. */
@media (max-width: 921px) {
    .ast-header-account-wrap .ast-header-account-text {
        padding: 6px 10px;
    }
}

/* ── CTA BUTTON STANDARDIZATION ──────────────────────────────────────────────
   All primary CTA buttons: orange bg (#ef8221) → black bg (#000000) on hover.
   Covers: Astra Read More, UAGB info-box CTAs, UAGB button repeater,
   User Registration submit, PMPro plan buttons, Smart Slider CTAs.
   WCAG AA: white on #ef8221 = 3.11:1 (large text / decorative), white on
   #000000 = 21:1. Buttons are large (≥18px bold), meeting large-text threshold.
   Transition keeps motion subtle (200ms) to respect prefers-reduced-motion. */

.ast-button,
.ast-button.astra-button,
.ast-button.button,
.uagb-infobox-cta-link.wp-block-button__link,
.uagb-buttons-repeater.wp-block-button__link,
button.ur-submit-button,
button.btn.button.ur-submit-button,
button.user-registration-Button.button.ur-submit-button,
.pmpro_btn,
.pmpro_content_message a,
.n2-ss-button-container a,
.n2-ow a {
    background-color: #ef8221 !important;
    border-color: #ef8221 !important;
    color: #ffffff !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

.ast-button:hover,
.ast-button.astra-button:hover,
.ast-button.button:hover,
.uagb-infobox-cta-link.wp-block-button__link:hover,
.uagb-buttons-repeater.wp-block-button__link:hover,
button.ur-submit-button:hover,
button.btn.button.ur-submit-button:hover,
button.user-registration-Button.button.ur-submit-button:hover,
.pmpro_btn:hover,
.pmpro_content_message a:hover,
.n2-ss-button-container a:hover,
.n2-ow a:hover,
.ast-button:focus,
.uagb-infobox-cta-link.wp-block-button__link:focus,
.uagb-buttons-repeater.wp-block-button__link:focus,
button.ur-submit-button:focus,
button.btn.button.ur-submit-button:focus,
button.user-registration-Button.button.ur-submit-button:focus,
.pmpro_btn:focus {
    background: #000000 !important;
    border-color: #000000 !important;
    color: #ffffff !important;
}

@media (prefers-reduced-motion: reduce) {
    .ast-button,
    .uagb-infobox-cta-link.wp-block-button__link,
    .uagb-buttons-repeater.wp-block-button__link,
    button.ur-submit-button,
    .pmpro_btn,
    .n2-ss-button-container a,
    .n2-ow a {
        transition: none !important;
    }
}

/* ── BOOK NOW BUTTONS — HOTELS PAGE (postid-4158) ────────────────────────────
   Table BOOK NOW links styled as primary buttons. Scoped to hotels page only
   to avoid affecting links in tables elsewhere. */
.postid-4158 .wp-block-table td[data-align="center"] a,
.postid-4158 .wp-block-table td[data-align="center"] strong a {
    display: inline-block;
    background: #ef8221 !important;
    color: #ffffff !important;
    border: none !important;
    padding: 8px 14px !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    letter-spacing: 0.03em;
    transition: background 0.2s ease, color 0.2s ease;
    white-space: nowrap;
}
.postid-4158 .wp-block-table td[data-align="center"] a:hover,
.postid-4158 .wp-block-table td[data-align="center"] strong a:hover,
.postid-4158 .wp-block-table td[data-align="center"] a:focus,
.postid-4158 .wp-block-table td[data-align="center"] strong a:focus {
    background: #000000 !important;
    color: #ffffff !important;
}

/* ── CORE WEB VITALS: CLS PREVENTION ────────────────────────────────────────

   These rules prevent layout shifts (CLS) caused by images and embeds that
   load after the initial paint and push content around.                     */

/* All content images maintain intrinsic ratio — prevents vertical CLS when
   an image with explicit width/height attributes finally loads.             */
.entry-content img,
.entry-content figure img,
.ast-article-single img,
.wp-block-image img {
    height: auto;
    max-width: 100%;
}

/* Responsive embed wrappers (YouTube, maps, iframes) reserve aspect-ratio
   space before the src loads, eliminating their contribution to CLS.       */
.entry-content iframe,
.wp-block-embed__wrapper iframe {
    max-width: 100%;
}
.wp-block-embed.is-type-video .wp-block-embed__wrapper,
.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper {
    position: relative;
    width: 100%;
}

/* Prevent horizontal table overflow from causing layout reflow on mobile.  */
.entry-content .wp-block-table {
    overflow-x: auto;
}

/* Reserve minimum height for the Smart Slider container so the page doesn't
   reflow when the deferred JS renders the hero image.                       */
.n2-section-smartslider,
#n2-ss-2 {
    min-height: 360px;
}
