/* ======================================================================
   Eyeshot Tourism — 2026 Design System
   Theme: Astra 4.x  |  Palette: Blue #1A56DB / White
   ======================================================================

   Table of contents
   -----------------
   00  Google Font import
   01  CSS design tokens
   02  Base reset & body
   03  Typography
   04  Header & navigation
   05  Hero / cover blocks
   06  Buttons & CTAs
   07  Cards & section blocks
   08  Page padding (global)
   09  Home page
   10  Services page  (ID 26)
   11  Gallery page   (ID 28)
   12  Contact page   (ID 25)
   13  WooCommerce – shop / product cards
   14  WooCommerce – cart & checkout
   15  Forms & inputs
   16  Footer
   17  Utility: tags, badges, dividers
   18  Animations & transitions
   19  Responsive
   ====================================================================== */


/* -----------------------------------------------------------------------
   00  Google Font import – Inter
   ----------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');


/* -----------------------------------------------------------------------
   01  CSS Design Tokens
   ----------------------------------------------------------------------- */
:root {
    /* Brand blues */
    --clr-primary:        #1A56DB;
    --clr-primary-dark:   #0E3FA5;
    --clr-primary-light:  #60A5FA;
    --clr-primary-pale:   #DBEAFE;
    --clr-primary-tint:   #EFF6FF;

    /* Neutrals */
    --clr-dark:           #111827;
    --clr-body:           #374151;
    --clr-muted:          #6B7280;
    --clr-border:         #E5E7EB;
    --clr-surface:        #F9FAFB;
    --clr-white:          #FFFFFF;

    /* Typography */
    --font-base:          'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fw-normal:          400;
    --fw-medium:          500;
    --fw-semibold:        600;
    --fw-bold:            700;
    --fw-extrabold:       800;

    /* Spacing scale */
    --sp-xs:   0.5rem;
    --sp-sm:   1rem;
    --sp-md:   1.5rem;
    --sp-lg:   2.5rem;
    --sp-xl:   4rem;
    --sp-2xl:  6rem;

    /* Radius */
    --r-sm:    6px;
    --r-md:    10px;
    --r-lg:    16px;
    --r-pill:  9999px;

    /* Shadows */
    --shadow-sm:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --shadow-md:  0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
    --shadow-lg:  0 12px 32px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);
    --shadow-xl:  0 24px 64px rgba(0,0,0,.16);
    --shadow-blue: 0 8px 24px rgba(26,86,219,.30);

    /* Page max-width */
    --site-width: 1200px;
    --page-pad:   clamp(1.25rem, 5vw, 3rem);
}


/* -----------------------------------------------------------------------
   02  Base reset & body
   ----------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-base);
    font-size: 16px;
    line-height: 1.75;
    color: var(--clr-body);
    background-color: var(--clr-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a {
    color: var(--clr-primary);
    text-decoration: none;
    transition: color .2s ease;
}
a:hover { color: var(--clr-primary-dark); }


/* -----------------------------------------------------------------------
   03  Typography
   ----------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.ast-blog-single-element,
.entry-title {
    font-family: var(--font-base);
    font-weight: var(--fw-bold);
    color: var(--clr-dark);
    line-height: 1.2;
    letter-spacing: -0.025em;
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.625rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.25rem; }

p { margin-bottom: 1.25rem; color: var(--clr-body); }

.has-large-font-size {
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    font-weight: var(--fw-bold);
    letter-spacing: -0.025em;
}

/* Overline / label text style */
.eyeshot-label {
    font-size: .75rem;
    font-weight: var(--fw-semibold);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--clr-primary);
}


/* -----------------------------------------------------------------------
   04  Header & Navigation  (Astra selectors)
   ----------------------------------------------------------------------- */

/* Sticky header backdrop */
.site-header,
#masthead,
.ast-header-break-point .site-header {
    background: var(--clr-white) !important;
    border-bottom: 1px solid var(--clr-border) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: box-shadow .25s ease;
}

.ast-scroll-header-sticky.ast-sticky-active .site-header,
.ast-scroll-header-sticky.ast-sticky-active #masthead {
    box-shadow: var(--shadow-md) !important;
}

/* Logo image — cap size regardless of uploaded image dimensions */
.ast-site-identity .custom-logo,
.site-branding .custom-logo,
.custom-logo-link img,
.ast-logo-img,
header .site-logo img,
.ast-site-identity img {
    width: 140px !important;
    max-width: 140px !important;
    height: auto !important;
}

/* Hide site title text and tagline (Astra option fallback) */
.site-title,
.ast-site-identity .site-title,
.site-description,
.ast-site-identity .site-description {
    display: none !important;
}

/* Logo area text fallback (if text logo is used) */
.site-branding .site-title a,
.ast-site-identity .site-title a {
    font-weight: var(--fw-extrabold);
    color: var(--clr-dark) !important;
    letter-spacing: -0.04em;
    font-size: 1.25rem;
}

/* Nav links */
.main-navigation a,
.ast-header-break-point .main-navigation a,
#site-navigation a,
.ast-primary-nav .menu-item > a,
header .ast-builder-menu a {
    font-size: .9375rem !important;
    font-weight: var(--fw-medium) !important;
    color: var(--clr-body) !important;
    padding: 6px 10px !important;
    border-radius: var(--r-sm);
    transition: color .18s ease, background-color .18s ease;
    outline: none !important;
    box-shadow: none !important;
}

.main-navigation a:hover,
#site-navigation a:hover,
.ast-primary-nav .menu-item > a:hover,
header .ast-builder-menu a:hover {
    color: var(--clr-primary) !important;
    background-color: var(--clr-primary-tint) !important;
    outline: none !important;
    box-shadow: none !important;
}

.main-navigation .current-menu-item > a,
#site-navigation .current-menu-item > a {
    color: var(--clr-primary) !important;
    background-color: var(--clr-primary-tint) !important;
    font-weight: var(--fw-semibold) !important;
}

/* "Book Your Tour" — no permanent highlight; only active/hover states apply */

/* Header cart visibility */
.ast-site-header-cart,
.ast-site-header-cart .site-header-focus-item,
.ast-builder-layout-element.ast-header-woo-cart,
.woocommerce-custom-menu-item,
.woocommerce-custom-menu-item .ast-cart-menu-wrap,
.ast-site-header-cart a,
.ast-site-header-cart .cart-container,
.ast-site-header-cart .amount,
.ast-site-header-cart .woocommerce-Price-amount,
.ast-site-header-cart .count,
.ast-site-header-cart .count:after,
.ast-site-header-cart .astra-icon,
.ast-site-header-cart svg,
.ast-site-header-cart svg path {
    color: #6B3E46 !important;
    fill: #6B3E46 !important;
    stroke: #6B3E46 !important;
}

.ast-site-header-cart .ast-cart-menu-wrap,
.woocommerce-custom-menu-item .ast-cart-menu-wrap {
    display: inline-flex !important;
    align-items: center;
    gap: .55rem;
    white-space: nowrap;
}

.ast-site-header-cart .count,
.woocommerce-custom-menu-item .count {
    background: #6B3E46 !important;
    color: #FFFFFF !important;
    min-width: 1.45rem;
    height: 1.45rem;
    line-height: 1.45rem;
    border-radius: 9999px;
    font-size: .75rem !important;
    font-weight: var(--fw-bold) !important;
    text-align: center;
    box-shadow: none !important;
}

.ast-site-header-cart .amount,
.ast-site-header-cart .woocommerce-Price-amount {
    font-weight: var(--fw-medium) !important;
}

/* Global search not needed */
.ast-header-search,
.ast-search-menu-icon,
.ast-builder-layout-element-search,
.site-header .search-form,
.site-header .search-field,
.site-header .search-submit,
.wc-block-product-search,
.wp-block-search,
.dgwt-wcas-search-wrapp,
.aws-search-form {
    display: none !important;
}

/* Mobile hamburger */
.ast-mobile-menu-trigger-fill svg,
.menu-toggle svg { fill: var(--clr-dark); }


/* -----------------------------------------------------------------------
   05  Hero / Cover blocks
   ----------------------------------------------------------------------- */
.wp-block-cover,
.wp-block-cover-image {
    overflow: hidden;
    position: relative;
}

/* Full-width hero: slight gradient vignette for legibility */
.wp-block-cover.alignfull::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,.10) 0%,
        rgba(0,0,0,.45) 100%
    );
    pointer-events: none;
}

.wp-block-cover .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
    padding: var(--sp-xl) var(--page-pad);
}

/* Non-full-width covers: card style */
.wp-block-cover:not(.alignfull) {
    border-radius: var(--r-lg);
}

/* Animated Ken-Burns effect on hero images */
.wp-block-cover.alignfull .wp-block-cover__image-background {
    animation: heroZoom 18s ease-in-out infinite alternate;
    transform-origin: center center;
}
@keyframes heroZoom {
    from { transform: scale(1); }
    to   { transform: scale(1.06); }
}


/* -----------------------------------------------------------------------
   06  Buttons & CTAs
   ----------------------------------------------------------------------- */

/* Slider (SuperBlockSlider) CTA buttons keep their own inline border-radius
   (100px pill shape) — we must NOT override with !important for those. */
.superblockslider .wp-block-button__link,
.sbs-slider .wp-block-button__link,
[class*="superblock"] .wp-block-button__link {
    border-radius: unset !important; /* allow inline style to win */
}

.wp-block-button__link,
.ast-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input[type="submit"],
.woocommerce #respond input#submit,
.wc-block-components-button {
    display: inline-flex !important;
    align-items: center;
    gap: .45rem;
    background: var(--clr-primary) !important;
    color: var(--clr-white) !important;
    font-family: var(--font-base) !important;
    font-weight: var(--fw-semibold) !important;
    font-size: .9375rem !important;
    letter-spacing: .01em;
    border: none !important;
    border-radius: var(--r-sm) !important;
    padding: 13px 28px !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease !important;
    box-shadow: var(--shadow-blue) !important;
}

/* Re-apply pill radius for slider buttons after the general rule */
.superblockslider .wp-block-button__link,
.sbs-slider .wp-block-button__link,
[class*="superblock"] .wp-block-button__link {
    border-radius: 100px !important;
}

.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.wc-block-components-button:hover {
    background: var(--clr-primary-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(26,86,219,.38) !important;
    color: var(--clr-white) !important;
}

.wp-block-button__link:active,
.woocommerce a.button:active {
    transform: translateY(0);
    box-shadow: var(--shadow-blue) !important;
}

/* Outline variant */
.is-style-outline .wp-block-button__link {
    background: transparent !important;
    color: var(--clr-primary) !important;
    border: 2px solid var(--clr-primary) !important;
    box-shadow: none !important;
}
.is-style-outline .wp-block-button__link:hover {
    background: var(--clr-primary) !important;
    color: var(--clr-white) !important;
}


/* -----------------------------------------------------------------------
   07  Cards & section blocks
   ----------------------------------------------------------------------- */

/* Generic content group card */
.wp-block-group:not(.alignfull):not(.alignwide):not([class*="is-layout-flex"]):not([class*="is-layout-grid"]) {
    border-radius: var(--r-md);
}

/* Feature / service item cards */
.wp-block-group.has-background:not(.alignfull) {
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow .22s ease, transform .22s ease;
}
.wp-block-group.has-background:not(.alignfull):hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
}

/* Tertiary (light grey) sections */
.has-tertiary-background-color,
.wp-block-group.has-tertiary-background-color {
    background-color: var(--clr-primary-tint) !important;
}

/* Section headings with decorative underline */
.wp-block-group .wp-block-heading:first-child::after {
    content: '';
    display: block;
    width: 48px;
    height: 4px;
    background: linear-gradient(90deg, var(--clr-primary), var(--clr-primary-light));
    border-radius: 2px;
    margin-top: 12px;
}

/* Column layout spacing */
.wp-block-columns {
    gap: clamp(1.5rem, 3vw, 2.5rem);
}

/* Separator */
.wp-block-separator {
    border: none;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--clr-border) 20%,
        var(--clr-border) 80%,
        transparent 100%
    );
    margin: var(--sp-lg) auto;
}


/* -----------------------------------------------------------------------
   08  Page padding (global)
   ----------------------------------------------------------------------- */

/* Astra classic layout: content sits inside .ast-container or .container */
.ast-container,
.ast-page-builder-template .ast-content-layout-wrap {
    max-width: var(--site-width);
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
}

/* Block editor full-width sections: enforce gutters so nothing
   touches the viewport edge */
.wp-block-group.alignfull.is-layout-constrained > *:not(.alignfull) {
    max-width: calc(100% - 2 * var(--page-pad));
    margin-left: auto;
    margin-right: auto;
}

.wp-block-group.alignfull.is-layout-constrained > .alignwide {
    max-width: min(80rem, calc(100% - 2 * var(--page-pad)));
    margin-left: auto;
    margin-right: auto;
}

/* Astra page content area */
.ast-page-builder-template #content,
.ast-page-builder-template .entry-content {
    padding: 0;
}

/* Entry content spacing */
.entry-content {
    padding-top: var(--sp-lg);
    padding-bottom: var(--sp-xl);
}

/* Give every page a comfortable top breath */
.ast-page-builder-template .site-content-wrap {
    padding-top: 0;
}


/* -----------------------------------------------------------------------
   09  Home page
   ----------------------------------------------------------------------- */
.home .wp-block-cover.alignfull {
    min-height: 92vh;
}

.home .wp-block-cover.alignfull h1,
.home .wp-block-cover.alignfull h2 {
    color: #FFFFFF;
    text-shadow: 0 2px 16px rgba(0,0,0,.35);
    font-size: clamp(2.25rem, 5vw, 4rem);
    font-weight: var(--fw-extrabold);
    letter-spacing: -0.035em;
}

/* Stats / highlights row */
.home .wp-block-columns.alignwide {
    max-width: min(80rem, calc(100% - 2 * var(--page-pad)));
    margin-inline: auto;
}

/* Why-choose-us / feature section */
.home .has-tertiary-background-color {
    background: var(--clr-primary-tint) !important;
}


/* -----------------------------------------------------------------------
   10  Services page (ID 26)
   ----------------------------------------------------------------------- */
.page-id-26 .wp-block-columns.alignwide {
    max-width: min(80rem, calc(100% - 2 * var(--page-pad)));
    margin-inline: auto;
}

.page-id-26 #service-area {
    padding-left: var(--page-pad) !important;
    padding-right: var(--page-pad) !important;
    background: var(--clr-primary-tint) !important;
    border-top: 1px solid var(--clr-primary-pale);
}

/* Service feature rows */
.page-id-26 .wp-block-group.has-background {
    border-left: 4px solid var(--clr-primary);
}


/* -----------------------------------------------------------------------
   11  Gallery page (ID 28)
   ----------------------------------------------------------------------- */

/* Constrain the wide gallery within its padded container */
.page-id-28 .wp-block-gallery.alignwide {
    max-width: min(80rem, calc(100% - 2 * var(--page-pad)));
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
}

/* Masonry-feel: consistent gap */
.page-id-28 .wp-block-gallery.has-nested-images {
    gap: 14px !important;
}

/* Tile styling */
.page-id-28 .wp-block-gallery figure.wp-block-image {
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.page-id-28 .wp-block-gallery figure.wp-block-image img {
    transition: transform .4s ease;
    border-radius: var(--r-md);
}

.page-id-28 .wp-block-gallery figure.wp-block-image:hover img {
    transform: scale(1.05);
}

.page-id-28 .wp-block-gallery figure.wp-block-image:hover {
    box-shadow: var(--shadow-lg);
}

/* Portfolio cover cards */
.page-id-28 .wp-block-cover:not(.alignfull) {
    border-radius: var(--r-lg);
    overflow: hidden;
    transition: box-shadow .3s ease, transform .3s ease;
    box-shadow: var(--shadow-sm);
}
.page-id-28 .wp-block-cover:not(.alignfull):hover {
    box-shadow: var(--shadow-xl);
    transform: translateY(-4px);
}

/* Portfolio columns constrained */
.page-id-28 .wp-block-columns.alignwide {
    max-width: min(80rem, calc(100% - 2 * var(--page-pad)));
    margin-inline: auto;
}


/* -----------------------------------------------------------------------
   12  Contact page (ID 25)
   ----------------------------------------------------------------------- */

/* Map tile */
.page-id-25 .wp-block-html iframe {
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md);
    display: block;
    border: 0;
    transition: box-shadow .3s ease;
}
.page-id-25 .wp-block-html iframe:hover {
    box-shadow: var(--shadow-lg);
}

/* Contact info column */
.page-id-25 .has-background.wp-block-column,
.page-id-25 .wp-block-group.has-tertiary-background-color {
    border-radius: var(--r-md) !important;
    border: 1px solid var(--clr-primary-pale);
    background: var(--clr-primary-tint) !important;
    padding: clamp(1.5rem, 4vw, 2.5rem) !important;
}

/* Icon + label rows */
.page-id-25 .wp-block-columns.is-not-stacked-on-mobile p {
    margin-bottom: .25rem;
}


/* -----------------------------------------------------------------------
   13  WooCommerce – shop & product cards
   ----------------------------------------------------------------------- */

/* Grid */
.woocommerce ul.products,
.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 28px;
    list-style: none;
    padding: 0;
    margin: 0 auto;
}

/* Card */
ul.products li.product,
.wc-block-grid__product {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--r-lg) !important;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform .22s ease, box-shadow .22s ease;
    display: flex;
    flex-direction: column;
}

ul.products li.product .astra-shop-thumbnail-wrap,
ul.products li.product .astra-shop-summary-wrap {
    display: flex;
    flex-direction: column;
}

ul.products li.product:hover,
.wc-block-grid__product:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg) !important;
}

/* Product image */
ul.products li.product a img,
.wc-block-grid__product-image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform .4s ease;
}
ul.products li.product:hover a img,
.wc-block-grid__product:hover .wc-block-grid__product-image img {
    transform: scale(1.06);
}

/* Remove Astra hover-only action over product image */
ul.products li.product .astra-shop-thumbnail-wrap .ast-on-card-button:not(.ast-onsale-card) {
    display: none !important;
}

/* Product info area */
ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
    font-weight: var(--fw-semibold) !important;
    font-size: 1rem !important;
    color: var(--clr-dark) !important;
    padding: 1rem 1rem 0 !important;
    margin-bottom: .35rem !important;
}

ul.products li.product .price,
.wc-block-grid__product-price {
    color: var(--clr-primary) !important;
    font-weight: var(--fw-bold) !important;
    font-size: 1.125rem !important;
    padding: 0 1rem !important;
}

/* Sale badge */
ul.products li.product .onsale,
.wc-block-grid__product .wc-block-grid__product-onsale,
.woocommerce span.onsale,
.woocommerce div.product span.onsale {
    position: absolute !important;
    background: var(--clr-primary) !important;
    color: var(--clr-white) !important;
    border-radius: var(--r-sm) !important;
    font-size: .7rem;
    font-weight: var(--fw-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 4px 10px !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1.2 !important;
    box-shadow: var(--shadow-sm) !important;
    border: 1px solid rgba(255,255,255,.35) !important;
    z-index: 5 !important;
    display: block !important;
}

/* Astra modern-shop sale badge override (.ast-onsale-card replaces .onsale in modern layout) */
.ast-on-card-button.ast-onsale-card {
    background-color: var(--clr-primary) !important;
    color: var(--clr-white) !important;
    border-radius: var(--r-sm) !important;
    top: 12px !important;
    left: 12px !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Single-product sale badge visibility */
.single-product .woocommerce div.product span.onsale,
.single-product.woocommerce span.onsale {
    z-index: 3;
}

/* Center add-to-cart CTA in product card body */
ul.products li.product .ast-woo-product-add-to-cart,
ul.products li.product form.cart,
ul.products li.product .button.add_to_cart_button,
ul.products li.product .added_to_cart,
ul.products li.product a.button.product_type_simple,
ul.products li.product a.button.product_type_variable,
ul.products li.product a.button.product_type_grouped,
ul.products li.product a.button.product_type_external {
    margin: 1rem auto 1.25rem !important;
}

ul.products li.product .ast-woo-product-add-to-cart,
ul.products li.product form.cart,
ul.products li.product .astra-shop-summary-wrap .button,
ul.products li.product .added_to_cart {
    align-self: center;
    text-align: center;
}

ul.products li.product .astra-shop-summary-wrap {
    flex: 1 1 auto;
}

ul.products li.product .astra-shop-summary-wrap .button,
ul.products li.product .astra-shop-summary-wrap .added_to_cart,
ul.products li.product .ast-woo-product-add-to-cart .button {
    display: inline-flex !important;
    justify-content: center;
    min-width: min(220px, calc(100% - 2rem));
}

ul.products li.product .price + .ast-woo-product-add-to-cart,
ul.products li.product .price + .button,
ul.products li.product .price + form.cart {
    margin-top: 1rem !important;
}


/* -----------------------------------------------------------------------
   14  WooCommerce – cart & checkout
   ----------------------------------------------------------------------- */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: var(--site-width);
    margin: 0 auto;
    padding: var(--sp-lg) var(--page-pad);
}

/* Cart table */
.woocommerce table.shop_table {
    border-radius: var(--r-md);
    overflow: hidden;
    border: 1px solid var(--clr-border) !important;
    border-collapse: separate;
    border-spacing: 0;
    box-shadow: var(--shadow-sm);
}

.woocommerce table.shop_table th {
    background: var(--clr-primary-tint);
    color: var(--clr-dark);
    font-weight: var(--fw-semibold);
    border-bottom: 1px solid var(--clr-primary-pale);
    padding: 14px 20px;
}

.woocommerce table.shop_table td {
    padding: 16px 20px;
    border-bottom: 1px solid var(--clr-border);
    vertical-align: middle;
}

/* Order summary / totals box */
.woocommerce .cart_totals,
.woocommerce .order-total {
    background: var(--clr-primary-tint);
    border: 1px solid var(--clr-primary-pale);
    border-radius: var(--r-md);
    padding: 1.5rem;
}

/* Payment box */
.woocommerce-checkout #payment {
    background: var(--clr-white) !important;
    border: 1px solid var(--clr-border) !important;
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid var(--clr-border);
    background: var(--clr-primary-tint);
}

.woocommerce-checkout #payment ul.payment_methods li {
    padding: 14px 20px;
    border-bottom: 1px solid var(--clr-border);
    font-weight: var(--fw-medium);
}

.woocommerce-checkout #payment ul.payment_methods li:last-child {
    border-bottom: none;
}

/* Checkout section headings */
.woocommerce .woocommerce-checkout h3 {
    font-size: 1.125rem;
    font-weight: var(--fw-semibold);
    color: var(--clr-dark);
    border-bottom: 2px solid var(--clr-primary-pale);
    padding-bottom: .75rem;
    margin-bottom: 1.25rem;
}


/* -----------------------------------------------------------------------
   15  Forms & inputs
   ----------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
textarea,
select {
    font-family: var(--font-base) !important;
    font-size: .9375rem !important;
    color: var(--clr-dark) !important;
    background: var(--clr-white) !important;
    border: 1.5px solid var(--clr-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 11px 14px !important;
    width: 100%;
    transition: border-color .18s ease, box-shadow .18s ease !important;
    appearance: none;
}

input:focus,
textarea:focus,
select:focus {
    outline: none !important;
    border-color: var(--clr-primary) !important;
    box-shadow: 0 0 0 3px rgba(26,86,219,.15) !important;
}

input::placeholder,
textarea::placeholder {
    color: var(--clr-muted);
}

/* Modern Cart quantity field visibility */
#moderncart-slide-out .moderncart-cart-item-quantity input[type="number"],
#moderncart-slide-out .moderncart-cart-item-quantity .moderncart-quantity__input {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    background: #FFFFFF !important;
    border: 1px solid var(--clr-border) !important;
    color: var(--clr-dark) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    text-align: center !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    -webkit-appearance: textfield !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
    padding: 0 2px !important;
}

#moderncart-slide-out .moderncart-cart-item-quantity button {
    background: var(--clr-primary-tint) !important;
    color: var(--clr-dark) !important;
    border: 1px solid var(--clr-border) !important;
}

#moderncart-slide-out .moderncart-cart-item-quantity button svg,
#moderncart-slide-out .moderncart-cart-item-quantity button svg path {
    fill: var(--clr-dark) !important;
    color: var(--clr-dark) !important;
}

/* Form labels */
label,
.woocommerce form .form-row label,
.wpcf7 label {
    font-size: .875rem;
    font-weight: var(--fw-medium);
    color: var(--clr-dark);
    display: block;
    margin-bottom: 6px;
}

/* WPForms modern look */
.wpforms-form .wpforms-field {
    margin-bottom: 1.25rem;
}

.wpforms-form input[type="submit"],
.wpforms-form button[type="submit"] {
    background: var(--clr-primary) !important;
    color: var(--clr-white) !important;
    border: none !important;
    border-radius: var(--r-sm) !important;
    padding: 13px 32px !important;
    font-size: .9375rem !important;
    font-weight: var(--fw-semibold) !important;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease !important;
    box-shadow: var(--shadow-blue) !important;
}

.wpforms-form input[type="submit"]:hover,
.wpforms-form button[type="submit"]:hover {
    background: var(--clr-primary-dark) !important;
    transform: translateY(-2px);
}

/* Checkbox / radio */
input[type="checkbox"],
input[type="radio"] {
    width: auto;
    accent-color: var(--clr-primary);
}


/* -----------------------------------------------------------------------
   16  Footer
   ----------------------------------------------------------------------- */
.site-footer,
#colophon,
.ast-small-footer {
    background: var(--clr-primary-dark) !important;
    color: var(--clr-primary-pale) !important;
    padding: var(--sp-lg) var(--page-pad) !important;
    font-size: .875rem;
}

.site-footer a,
#colophon a,
.ast-small-footer a {
    color: #93C5FD !important;
    transition: color .18s ease;
}

.site-footer a:hover,
#colophon a:hover,
.ast-small-footer a:hover {
    color: var(--clr-white) !important;
}

/* Footer copyright — multiple selectors to ensure visibility regardless of Astra version */
.ast-small-footer .ast-footer-copyright,
.ast-small-footer .ast-footer-copyright p,
.ast-small-footer span,
.ast-small-footer p,
#colophon .ast-footer-copyright,
#colophon .ast-footer-copyright p,
.ast-footer-copyright,
.ast-footer-copyright p,
footer .copyright,
.site-footer p {
    color: #000000 !important;
}

/* Hide site title/tagline if Astra option doesn't take effect */
.site-title,
.ast-site-identity .site-title,
.site-description,
.ast-site-identity .site-description {
    display: none !important;
}


/* -----------------------------------------------------------------------
   17  Jetpack WhatsApp / CTA buttons
   ----------------------------------------------------------------------- */

/* "Contact Tour Specialist" — center the button and add breathing room */
.wp-block-jetpack-send-a-message,
.wp-block-jetpack-whatsapp-button {
    display: flex !important;
    justify-content: center !important;
    margin: 1.5rem auto !important;
    width: 100%;
}

/* The anchor itself — Jetpack renders <a class="whatsapp-block__button"> on live,
   plain <a> on local DDEV. Remove Jetpack's background-image icon so our ::before
   icon is the only one shown, with a clear gap via inline-flex + gap. */
.wp-block-jetpack-whatsapp-button a,
.a8c-whatsapp-button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0 auto !important;
    padding: 13px 28px !important;
    background-image: none !important;
    border-radius: var(--r-pill) !important;
    font-family: var(--font-base) !important;
    font-weight: var(--fw-semibold) !important;
    font-size: 1rem !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 16px rgba(37,211,102,.35) !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
    text-decoration: none !important;
}
/* WhatsApp icon injected before text via ::before */
.wp-block-jetpack-whatsapp-button a::before,
.a8c-whatsapp-button::before {
    content: '';
    display: inline-block;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.wp-block-jetpack-whatsapp-button a:hover,
.a8c-whatsapp-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(37,211,102,.45) !important;
}

/* -----------------------------------------------------------------------
   18  Utility: tags, badges, notices
   ----------------------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info {
    border-top-color: var(--clr-primary) !important;
    border-radius: var(--r-sm);
    background: var(--clr-primary-tint) !important;
}

.woocommerce-error {
    border-top-color: #DC2626 !important;
    border-radius: var(--r-sm);
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb,
.ast-breadcrumbs-wrapper {
    font-size: .8125rem;
    color: var(--clr-muted);
    padding: .75rem 0;
}
.woocommerce .woocommerce-breadcrumb a,
.ast-breadcrumbs-wrapper a {
    color: var(--clr-primary);
}


/* -----------------------------------------------------------------------
   19  Animations & transitions  (scroll-reveal helpers)
   ----------------------------------------------------------------------- */

/* Fade-in on intersection – applied via CSS-only fallback */
@media (prefers-reduced-motion: no-preference) {
    .wp-block-group.alignfull {
        animation: sectionFadeUp .6s ease both;
        animation-timeline: view();
        animation-range: entry 0% entry 25%;
    }
}

@keyframes sectionFadeUp {
    from { opacity: .4; transform: translateY(20px); }
    to   { opacity: 1;  transform: translateY(0); }
}


/* -----------------------------------------------------------------------
   19  Responsive
   ----------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .wp-block-group.alignfull.is-layout-constrained > *:not(.alignfull) {
        max-width: calc(100% - 2 * clamp(1.25rem, 4vw, 2rem));
    }
}

@media (max-width: 768px) {
    :root {
        --page-pad: 1.25rem;
    }

    .wp-block-group.alignfull.is-layout-constrained > *:not(.alignfull),
    .wp-block-group.alignfull.is-layout-constrained > .alignwide {
        max-width: calc(100% - 2 * var(--page-pad));
    }

    .page-id-28 .wp-block-gallery.alignwide {
        max-width: calc(100% - 2 * var(--page-pad));
    }

    .page-id-28 .wp-block-gallery.has-nested-images {
        gap: 8px !important;
    }

    .woocommerce ul.products {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
        gap: 16px;
    }

    .wp-block-cover .wp-block-cover__inner-container {
        padding: var(--sp-lg) var(--page-pad);
    }

    .home .wp-block-cover.alignfull {
        min-height: 75vh;
    }

    /* Super Block Slider — taller on desktop, shorter on mobile */
    .wp-block-superblockslider-slider {
        height: 52vh !important;
        min-height: 52vh !important;
    }

    /* Slider text legibility on mobile */
    .superblockslider__slide h2,
    .superblockslider__slide h3,
    .superblockslider__slide h4 {
        font-size: 1.1rem !important;
        line-height: 1.3 !important;
    }
}

@media (max-width: 480px) {
    :root {
        --page-pad: 1rem;
    }

    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }

    .wp-block-button__link,
    .woocommerce a.button,
    .woocommerce button.button {
        width: 100%;
        justify-content: center;
        padding: 14px 20px !important;
    }
}
