/*
Theme Name:  Alfred Eames Cellars
Theme URI:   https://alfredeamescellars.com
Description: Child theme for Alfred Eames Cellars. All brand customizations live here — never edit Astra core directly.
Author:      Alfred Eames Cellars
Template:    astra
Version:     1.2.0
*/

/* ==========================================================================
   FONTS
   Loaded via wp_enqueue_style() in functions.php (see aec_enqueue_styles).
   Elementor also loads these for Elementor-built pages via its global font settings.
   ========================================================================== */

/* ==========================================================================
   DESIGN TOKENS
   ========================================================================== */
:root {
  --aec-cream:    #F8F6F1;
  --aec-dark:     #1D212B;
  --aec-burgundy: #682737;
  --aec-burgundy-dark: #4E1D29; /* hover / pressed state */
  --aec-copper:   #CC7333;
  --aec-copper-dark:   #B4652D; /* hover / pressed state */
  --aec-forest:   #264A38;
  --aec-muted:    #596070;
  --aec-border:   #DDD7CE;
  --aec-card:     #F4F1EC;

  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans:  'Raleway', system-ui, sans-serif;
}

/* ==========================================================================
   BASE RESET & TYPOGRAPHY
   ========================================================================== */
*,
*::before,
*::after {
  border-radius: 0 !important; /* design calls for zero border-radius sitewide */
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-color: var(--aec-cream);
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  color: var(--aec-dark);
  line-height: 1.7;
  padding-top: 80px; /* offset for fixed header; reduced to 72px on mobile below */
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 300;
  line-height: 1.2;
  color: var(--aec-dark);
}

/* Override Astra's default heading margins */
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  font-family: var(--font-serif);
  font-weight: 300;
}

p {
  font-family: var(--font-sans);
  line-height: 1.7;
}

a {
  color: var(--aec-burgundy);
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
a:hover {
  color: var(--aec-copper);
}

/* ==========================================================================
   ASTRA OVERRIDES — strip default Astra chrome
   ========================================================================== */

/* Remove Astra's default site max-width constraints on Elementor pages */
.hfeed .site-content .ast-container,
.elementor-page .site-content .ast-container {
  max-width: 100%;
  padding: 0;
}

/* Hide Astra's default header/footer on all pages.
   REQUIRES: Header Footer Elementor plugin active.
   If HFE is ever deactivated, remove these rules or the site will have no header/footer. */
.site-header,
.site-footer {
  display: none;
}

/* Remove Astra's default top-bar */
#ast-desktop-header .ast-above-header-wrap {
  display: none;
}

/* Elementor pages: remove default content padding */
.elementor-page #content.site-content {
  padding-top: 0;
}
.elementor-page #primary.content-area {
  padding-top: 0;
  margin-top: 0;
}

/* Remove Astra's default page title bar */
.ast-page-title-area,
.ast-breadcrumbs-wrapper {
  display: none;
}

/* ==========================================================================
   ELEMENTOR HEADER (Theme Builder template 2550)
   Native widgets (logo headings, Nav Menu, Button) styled here.
   Containers are targeted by their stable element IDs (aechd0x) because
   Elementor does not emit _css_classes on container elements; widgets carry
   their .aec-elh-* classes directly. Editing text/links/menu in Elementor
   preserves these IDs, so the design stays locked while content stays editable.
   ========================================================================== */
header.elementor-location-header { margin: 0; font-family: var(--font-sans); }

/* Outer fixed bar */
.elementor-element-aechd01 {
  position: fixed; top: 0; left: 0; right: 0; z-index: 999;
  width: 100%; padding: 0;
  background-color: rgba(248, 246, 241, 0.92);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(221, 215, 206, 0.5);
}

/* Inner row: 3-col grid so the nav is centered in the header (logo | nav | CTA),
   matching the reference. The 1fr side columns balance regardless of logo/CTA width. */
.elementor-element-aechd02 {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center !important;
  max-width: 1280px; width: 100%; margin: 0 auto;
  padding: 0 48px; height: 80px; gap: 24px;
}
.elementor-element-aechd03 { justify-self: start; }
.aec-elh-cta { justify-self: end; }

/* Logo (stacked wordmark, whole block links home) */
.elementor-element-aechd03 {
  display: flex !important;
  flex-direction: column !important; align-items: flex-start !important;
  justify-content: center !important;
  gap: 0; padding: 0; width: auto; flex: 0 0 auto;
}
.aec-elh-name .elementor-heading-title {
  font-family: var(--font-serif); font-size: 24px; font-weight: 600;
  color: var(--aec-dark); letter-spacing: 0.02em; line-height: 1;
}
.aec-elh-sub .elementor-heading-title {
  font-family: var(--font-sans); font-size: 10px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.35em; color: var(--aec-muted);
  line-height: 1; margin-top: 3px;
}

/* Primary nav (centered in the header grid) */
.aec-elh-nav { width: auto; justify-self: center; }
.aec-elh-nav .elementor-nav-menu { justify-content: center; gap: 40px; }
.aec-elh-nav .elementor-nav-menu .elementor-item {
  font-family: var(--font-sans); font-size: 12px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-muted);
  padding: 0 !important; fill: var(--aec-muted);
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-elh-nav .elementor-nav-menu .elementor-item:hover,
.aec-elh-nav .elementor-nav-menu .current-menu-item > .elementor-item {
  color: var(--aec-burgundy); background: transparent;
}
.aec-elh-nav .elementor-item::after,
.aec-elh-nav .elementor-item::before { display: none !important; }

/* CTA button */
.aec-elh-cta { flex: 0 0 auto; width: auto; }
.aec-elh-cta .elementor-button {
  background-color: var(--aec-burgundy); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 12px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; line-height: 1.4;
  padding: 10px 24px; border-radius: 0; border: none;
  transition: background-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-elh-cta .elementor-button:hover {
  background-color: var(--aec-burgundy-dark); color: var(--aec-cream);
}

/* Mobile: Nav Menu widget's built-in burger (dropdown below 1024px) */
.aec-elh-nav .elementor-menu-toggle { color: var(--aec-dark); }
.aec-elh-nav .elementor-nav-menu--dropdown {
  background-color: var(--aec-cream); border-top: 1px solid var(--aec-border);
}
.aec-elh-nav .elementor-nav-menu--dropdown .elementor-item {
  font-size: 13px; letter-spacing: 0.15em; color: var(--aec-muted);
  border-bottom: 1px solid rgba(221, 215, 206, 0.4);
}
@media (max-width: 1024px) {
  /* revert to flex on mobile so logo/burger/CTA sit naturally */
  .elementor-element-aechd02 { display: flex !important; justify-content: space-between; padding: 0 24px; }
}

/* ==========================================================================
   STICKY HEADER BACKDROP BLUR
   Applied to the HFE header template via custom CSS class
   Add class "aec-header-sticky" to the HFE header section
   ========================================================================== */
.hfe-header .aec-header-sticky,
.elementor-location-header .aec-header-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background-color: rgba(248, 246, 241, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(221, 215, 206, 0.5);
  transition: box-shadow 0.3s ease;
}

/* Elementor Canvas template pages (full-screen landing, maintenance, etc.)
   must not inherit the header offset — they have no fixed header. */
body.elementor-page-template-canvas {
  padding-top: 0;
}

/* ==========================================================================
   CONTACT FORM 7 — design system styling
   Used on Contact page and Wine Club sign-up form
   ========================================================================== */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  border: 1px solid var(--aec-border);
  background: var(--aec-cream);
  padding: 14px 18px;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--aec-dark);
  border-radius: 0;
  outline: none;
  transition: border-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-appearance: none;
  appearance: none;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color: var(--aec-burgundy);
  box-shadow: none;
  outline: none;
}

.wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}

.wpcf7 input[type="submit"] {
  background: var(--aec-burgundy);
  color: var(--aec-cream);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  padding: 16px 48px;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.wpcf7 input[type="submit"]:hover {
  background: var(--aec-burgundy-dark);
}

.wpcf7-not-valid-tip {
  font-family: var(--font-sans);
  font-size: 12px;
  color: var(--aec-burgundy);
}

.wpcf7 .wpcf7-response-output {
  font-family: var(--font-sans);
  font-size: 13px;
  border-radius: 0;
  padding: 12px 16px;
  margin-top: 16px;
}

/* ==========================================================================
   WOOCOMMERCE — design system overrides
   ========================================================================== */

/* Typography */
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce-page h1,
.woocommerce-page h2,
.woocommerce-page h3 {
  font-family: var(--font-serif);
  font-weight: 300;
}

.woocommerce p,
.woocommerce-page p,
.woocommerce label,
.woocommerce-page label {
  font-family: var(--font-sans);
}

/* Buttons — intentionally using Burgundy (not Copper) for transactional
   WooCommerce actions. Copper is reserved for editorial CTAs in Elementor pages. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button {
  background-color: var(--aec-burgundy) !important;
  color: var(--aec-cream) !important;
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.25em !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  border: none !important;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover {
  background-color: var(--aec-burgundy-dark) !important;
  color: var(--aec-cream) !important;
}

/* Alt/ghost buttons */
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background-color: var(--aec-copper) !important;
}
.woocommerce a.button.alt:hover {
  background-color: var(--aec-copper-dark) !important;
}

/* Tables */
.woocommerce table.shop_table {
  border-color: var(--aec-border);
  border-radius: 0;
}
.woocommerce table.shop_table th {
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--aec-muted);
  font-weight: 600;
  background: transparent;
  border-color: var(--aec-border);
}
.woocommerce table.shop_table td {
  font-family: var(--font-sans);
  font-size: 14px;
  border-color: var(--aec-border);
}

/* Price */
.woocommerce .price,
.woocommerce-page .price {
  font-family: var(--font-serif) !important;
  font-size: 24px !important;
  color: var(--aec-copper) !important;
  font-weight: 400 !important;
}

.woocommerce .price ins,
.woocommerce .price del {
  font-family: var(--font-serif) !important;
}

/* Product title */
.woocommerce .products .woocommerce-loop-product__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 22px;
  color: var(--aec-dark);
}

/* Form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  border: 1px solid var(--aec-border);
  border-radius: 0;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--aec-dark);
  padding: 12px 16px;
  background: var(--aec-cream);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--aec-burgundy);
  box-shadow: none;
  outline: none;
}

.woocommerce form .form-row label {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--aec-muted);
  font-weight: 500;
}

/* Cart & Checkout totals */
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce .checkout h3 {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 28px;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 0;
  font-family: var(--font-sans);
  font-size: 14px;
  border-top-color: var(--aec-burgundy);
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  font-family: var(--font-sans);
  font-size: 12px;
  border-color: var(--aec-border);
  border-radius: 0;
  color: var(--aec-muted);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--aec-burgundy);
  color: var(--aec-cream);
  border-color: var(--aec-burgundy);
}

/* Remove WooCommerce's default star rating colors */
.star-rating span::before,
.star-rating::before {
  color: var(--aec-copper);
}

/* --------------------------------------------------------------------------
   SHOP PAGE (Elementor page 2332) — branded product grid.
   Containers by element ID (aecsh0x); product card markup styled below.
   -------------------------------------------------------------------------- */
.elementor-element-aecsh02 { max-width: 1200px; width: 100%; margin: 0 auto; padding: 64px 48px 96px; }
.aec-shop-eyebrow .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.3em; color: var(--aec-copper); text-align: center; margin-bottom: 12px;
}
.aec-shop-title .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: clamp(36px, 4vw, 52px);
  color: var(--aec-dark); text-align: center; margin-bottom: 56px;
}
/* Style the default WooCommerce product grid (archive + any .products grid).
   Works whether the archive renders default OR via the Elementor template 2511. */
.woocommerce ul.products {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 40px 32px !important;
  margin: 0 !important; padding: 0 !important; width: 100%;
}
/* Hide Woo's result-count + ordering bar for the editorial look (Lovable has none) */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { display: none !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; }
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; text-align: center; padding: 0 !important;
}
/* Frame the square label art on a dark card (no bottle photos in library) */
.woocommerce ul.products li.product a img {
  aspect-ratio: 3/4; object-fit: contain; width: 100%; background: #14182A;
  border: 1px solid rgba(248,246,241,0.08); padding: 28px; margin: 0 0 22px;
  transition: transform 0.6s ease;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-serif) !important; font-weight: 300 !important; font-size: 22px !important;
  color: var(--aec-dark) !important; padding: 0 0 8px !important;
}
.woocommerce ul.products li.product .price {
  display: block; margin-bottom: 16px;
  font-family: var(--font-serif) !important; font-size: 22px !important; color: var(--aec-copper) !important;
}
/* Ghost Add-to-Cart on cards */
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart {
  background: transparent !important; color: var(--aec-dark) !important;
  border: 1px solid var(--aec-border) !important; letter-spacing: 0.2em !important;
  font-size: 11px !important; padding: 12px 24px !important; margin-top: 4px !important; border-radius: 0 !important;
}
.woocommerce ul.products li.product .button.add_to_cart_button:hover {
  background: var(--aec-dark) !important; color: var(--aec-cream) !important; border-color: var(--aec-dark) !important;
}
/* Astra injects multiple buttons per card (on-image hover + a duplicate add-to-cart/
   read-more). Hide every card button, then re-show only the one in the summary. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .ast-on-card-button { display: none !important; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .button { display: inline-block !important; }
/* The "View cart" link that appears after adding: drop it onto its own line
   below the button with spacing, styled as a small secondary link. */
.woocommerce ul.products li.product .astra-shop-summary-wrap .added_to_cart {
  display: block !important; margin-top: 14px !important;
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-copper) !important;
  text-decoration: underline; text-underline-offset: 4px;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap .added_to_cart:hover { color: var(--aec-copper-dark) !important; }
/* Persistent "✓ In Cart" state (server-rendered on reload). Hidden in the
   duplicate card positions, shown only in the summary. */
.woocommerce ul.products li.product .aec-in-cart { display: none !important; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .aec-in-cart {
  display: block !important; margin-top: 4px;
  font-family: var(--font-sans); font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.15em; color: var(--aec-forest);
}
/* Shop archive page title → branded (default archive shows "Shop") */
.woocommerce-products-header { text-align: center; padding-top: 24px; }
.woocommerce-products-header__title.page-title {
  font-family: var(--font-serif) !important; font-weight: 300 !important;
  font-size: clamp(36px, 4vw, 52px) !important; color: var(--aec-dark) !important;
}
.woocommerce .woocommerce-result-count { color: var(--aec-muted); font-size: 13px; }
.woocommerce .woocommerce-ordering select { border: 1px solid var(--aec-border); padding: 8px 12px; font-family: var(--font-sans); }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: 1fr !important; } }

/* --------------------------------------------------------------------------
   SINGLE PRODUCT (Elementor Theme Builder template, type 'product', ID 2593)
   Containers by element ID (aecsp0x); product widgets carry .aec-sp-* classes.
   -------------------------------------------------------------------------- */
.elementor-element-aecsp02 { max-width: 1100px; width: 100%; margin: 0 auto; padding: 64px 48px 96px; }
.elementor-element-aecsp03 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 56px; align-items: start; }
/* WC product gallery starts at opacity:0 until its JS finishes init; our products
   are single-label (no slider needed), so ensure the image is always visible. */
.woocommerce div.product .woocommerce-product-gallery,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery { opacity: 1 !important; }
/* Gallery: frame the square label art like the cards */
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img {
  background: #14182A; border: 1px solid rgba(248,246,241,0.08); padding: 32px;
}
.aec-sp-title .product_title {
  font-family: var(--font-serif) !important; font-weight: 300 !important;
  font-size: clamp(32px, 3.5vw, 46px) !important; color: var(--aec-dark) !important; margin: 0 0 16px !important;
}
.aec-sp-price { margin-bottom: 24px; }
.aec-sp-price .price, .aec-sp-price .price ins { font-family: var(--font-serif) !important; font-size: 28px !important; color: var(--aec-copper) !important; }
.aec-sp-desc { margin-bottom: 28px; }
.aec-sp-desc, .aec-sp-desc p { font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.7; }
.aec-sp-cart .single_add_to_cart_button {
  background: var(--aec-burgundy) !important; color: var(--aec-cream) !important; border: none !important;
  font-family: var(--font-sans) !important; font-size: 12px !important; text-transform: uppercase !important;
  letter-spacing: 0.2em !important; padding: 16px 40px !important; border-radius: 0 !important;
}
.aec-sp-cart .single_add_to_cart_button:hover { background: var(--aec-burgundy-dark) !important; }
.aec-sp-cart .quantity input { border: 1px solid var(--aec-border); padding: 12px; }
/* Hide the product meta (only shows "Category: BOTTLES" + stacked default borders) */
.aec-sp-meta { display: none !important; }
.aec-sp-meta, .aec-sp-meta span, .aec-sp-meta a { font-family: var(--font-sans) !important; font-size: 13px !important; color: var(--aec-muted) !important; }
@media (max-width: 900px) { .elementor-element-aecsp03 { grid-template-columns: 1fr !important; gap: 40px; } .elementor-element-aecsp02 { padding: 48px 24px 64px; } }

/* ==========================================================================
   WOOCOMMERCE CART & CHECKOUT (block-based) — container + brand polish
   ========================================================================== */
/* Center + pad the WC page content, and kill the alignwide negative margins
   that pushed the cart off the left edge on the full-width container. */
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content {
  max-width: 1200px; margin-left: auto; margin-right: auto;
  padding-left: 24px; padding-right: 24px;
}
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header { padding-top: 48px; }
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content { padding-bottom: 96px; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  margin-left: 0 !important; margin-right: 0 !important;
  width: auto !important; max-width: 100% !important;
}
/* Page title */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
  font-family: var(--font-serif) !important; font-weight: 300 !important;
  font-size: clamp(36px, 4vw, 52px) !important; margin-bottom: 40px;
}
/* Item product name → serif */
.wc-block-components-product-name {
  font-family: var(--font-serif) !important; font-weight: 300 !important;
  font-size: 20px !important; color: var(--aec-dark) !important;
}
/* Column headers (Product / Total) */
.wc-block-cart-items__header {
  font-family: var(--font-sans); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.2em; color: var(--aec-muted);
}
/* Totals panel */
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label {
  font-family: var(--font-sans) !important; letter-spacing: 0.05em;
}
.wc-block-components-totals-item__value { font-family: var(--font-serif) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--aec-copper) !important; font-size: 26px !important;
}
/* Quantity stepper + remove link */
.wc-block-components-quantity-selector { border: 1px solid var(--aec-border) !important; border-radius: 0 !important; }
.wc-block-cart-item__remove-link {
  font-family: var(--font-sans) !important; font-size: 12px !important; color: var(--aec-muted) !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--aec-burgundy) !important; }
/* Buttons (block) */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-container a {
  background: var(--aec-burgundy) !important; color: var(--aec-cream) !important;
  border-radius: 0 !important; font-family: var(--font-sans) !important;
  text-transform: uppercase !important; letter-spacing: 0.2em !important; font-size: 12px !important;
}
.wc-block-cart__submit-button:hover { background: var(--aec-burgundy-dark) !important; }
/* Checkout form fields → soften the dark default border to brand + burgundy focus */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-select .wc-block-components-select__container,
.wc-block-components-address-form input {
  border-color: var(--aec-border) !important; border-radius: 0 !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input.is-active input,
.wc-block-components-select .wc-block-components-select__container:focus-within {
  border-color: var(--aec-burgundy) !important; box-shadow: none !important; outline: none !important;
}
.wc-block-components-text-input label,
.wc-block-components-checkout-step__description { font-family: var(--font-sans) !important; }
/* Section / step titles → serif */
.wc-block-components-checkout-step__title,
.wc-block-components-title {
  font-family: var(--font-serif) !important; font-weight: 300 !important;
}
@media (max-width: 768px) {
  .woocommerce-cart .entry-content, .woocommerce-checkout .entry-content { padding: 32px 16px 64px; }
}

/* ==========================================================================
   ELEMENTOR HELPERS — utility classes used in Elementor templates
   ========================================================================== */

/* Eyebrow label pattern */
.aec-eyebrow {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--aec-copper);
  display: block;
  margin-bottom: 16px;
}

/* Text link with underline (used for "Read Our Full Story" etc.) */
.aec-text-link {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--aec-burgundy);
  border-bottom: 1px solid var(--aec-burgundy);
  padding-bottom: 4px;
  text-decoration: none;
  display: inline-block;
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-text-link:hover {
  color: var(--aec-copper);
  border-color: var(--aec-copper);
}

/* Dark section text overrides (use on section with dark bg) */
.aec-section-dark,
.aec-section-dark h1,
.aec-section-dark h2,
.aec-section-dark h3,
.aec-section-dark h4,
.aec-section-dark p {
  color: var(--aec-cream);
}
.aec-section-dark .aec-eyebrow {
  color: var(--aec-copper);
}

/* Overlay helper for hero sections */
.aec-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(29, 33, 43, 0.55);
  z-index: 1;
  pointer-events: none;
}

/* ==========================================================================
   RESPONSIVE UTILITIES
   ========================================================================== */
@media (max-width: 768px) {
  body {
    padding-top: 72px; /* header shrinks on mobile */
  }

  .wpcf7 input[type="submit"] {
    width: 100%;
    text-align: center;
  }
}

/* ==========================================================================
   HOME PAGE (page ID 1317)
   Markup lives in the page's post_content as plain HTML (no <style> block —
   wpautop corrupts inline <style>). All scoped .aec-* rules live here.
   NOTE: .aec-eyebrow and .aec-text-link are defined above (ELEMENTOR HELPERS).
   Astra resets section `position` to static, so any full-bleed tint must be
   baked into the section's own `background` (stacked gradient) — never an
   absolutely-positioned `inset:0` overlay child (it escapes its container).
   ========================================================================== */
.aec-page * { box-sizing: border-box; margin: 0; padding: 0; }
.aec-page { font-family: var(--font-sans); color: var(--aec-dark); background: var(--aec-cream); }
.aec-page h1, .aec-page h2, .aec-page h3, .aec-page h4 {
  font-family: var(--font-serif); font-weight: 300; line-height: 1.2;
}
.aec-container { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.aec-section { padding: 96px 0; }

/* Hero */
.aec-hero {
  position: relative; height: 100vh; min-height: 600px;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.aec-hero-content {
  position: relative; z-index: 2; text-align: center;
  padding: 0 24px; max-width: 900px;
}
.aec-hero h1 {
  font-size: clamp(48px, 7vw, 88px); font-weight: 300;
  color: var(--aec-cream); line-height: 1.05; margin-bottom: 24px;
}
.aec-hero h1 em { font-style: italic; display: block; }
.aec-hero-sub {
  font-family: var(--font-sans); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.25em; color: rgba(248,246,241,0.8); margin-bottom: 48px;
}
.aec-btn-row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.aec-btn-primary {
  display: inline-block; padding: 16px 40px; background: var(--aec-copper); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; text-decoration: none;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-btn-primary:hover { background: var(--aec-copper-dark); }
.aec-btn-ghost {
  display: inline-block; padding: 16px 40px;
  border: 1px solid rgba(248,246,241,0.5); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; text-decoration: none;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-btn-ghost:hover { background: rgba(248,246,241,0.1); color: var(--aec-cream); }

/* Story */
.aec-story { background: var(--aec-cream); }
.aec-story-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 64px; align-items: center;
}
.aec-story-img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.aec-story-text h2 { font-size: clamp(32px, 3.5vw, 48px); color: var(--aec-dark); margin-bottom: 24px; }
.aec-story-text p { font-size: 15px; color: var(--aec-muted); line-height: 1.7; margin-bottom: 16px; }
.aec-story-text .aec-text-link { margin-top: 16px; }

/* Featured Wines */
.aec-wines { background: var(--aec-dark); }
.aec-wines .aec-eyebrow { color: var(--aec-copper); }
.aec-wines-heading { font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-cream); text-align: center; margin-bottom: 64px; }
.aec-wines-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.aec-wine-card { text-align: center; }
/* Label artwork (square, varied backgrounds) is framed — not cropped — so the
   three read as an intentional gallery. object-fit:contain keeps each label whole. */
.aec-wine-card-img-wrap {
  aspect-ratio: 3/4; overflow: hidden; margin-bottom: 28px; position: relative;
  background: #14182A; border: 1px solid rgba(248,246,241,0.08);
  display: flex; align-items: center; justify-content: center; padding: 28px;
}
.aec-wine-card-img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain; display: block;
  transition: transform 0.7s ease;
}
.aec-wine-card:hover .aec-wine-card-img { transform: scale(1.05); }
.aec-wine-badge {
  position: absolute; top: 16px; right: 16px; z-index: 1;
  background: var(--aec-copper); color: var(--aec-cream); font-family: var(--font-sans);
  font-size: 10px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.2em; padding: 6px 12px;
}
.aec-wine-vintage { font-family: var(--font-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.2em; color: rgba(248,246,241,0.5); margin-bottom: 8px; }
.aec-wine-name { font-size: 24px; color: var(--aec-cream); margin-bottom: 12px; }
.aec-wine-notes { font-family: var(--font-sans); font-size: 13px; color: rgba(248,246,241,0.6); line-height: 1.7; margin-bottom: 16px; max-width: 280px; margin-left: auto; margin-right: auto; }
.aec-wine-price { font-family: var(--font-serif); font-size: 24px; color: var(--aec-copper); margin-bottom: 20px; }
.aec-btn-wine {
  display: inline-block; padding: 12px 32px;
  border: 1px solid rgba(248,246,241,0.3); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; text-decoration: none;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-btn-wine:hover { background: rgba(248,246,241,0.1); color: var(--aec-cream); }
.aec-wines-more { text-align: center; margin-top: 64px; }
.aec-wines-more a {
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-copper);
  border-bottom: 1px solid var(--aec-copper); padding-bottom: 4px; text-decoration: none;
}

/* AVA Parallax — tint baked into the section background (see note above) */
.aec-ava {
  position: relative !important; padding: 96px 0;
  background:
    linear-gradient(rgba(29,33,43,0.70), rgba(29,33,43,0.70)),
    url('/wp-content/uploads/2025/11/Alfred-Eames-Cellars-with-Daisies-scaled.jpg') center/cover fixed;
}
.aec-ava-content { position: relative; z-index: 2; text-align: center; }
.aec-ava h2 { font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-cream); margin-bottom: 48px; text-shadow: 0 1px 16px rgba(0,0,0,0.4); }
.aec-ava-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; max-width: 900px; margin: 0 auto; }
.aec-stat-num { font-family: var(--font-serif); font-size: 48px; color: var(--aec-copper); margin-bottom: 12px; }
.aec-stat-desc { font-family: var(--font-sans); font-size: 14px; color: rgba(248,246,241,0.92); line-height: 1.7; text-shadow: 0 1px 12px rgba(0,0,0,0.55); }

/* Events */
.aec-events { background: var(--aec-cream); }
.aec-events-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 960px; margin: 0 auto; }
.aec-event-card-img-wrap { overflow: hidden; margin-bottom: 24px; }
.aec-event-card-img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; transition: transform 0.7s; }
.aec-event-card:hover .aec-event-card-img { transform: scale(1.05); }
.aec-event-date { font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-copper); margin-bottom: 8px; }
.aec-event-title { font-size: 24px; color: var(--aec-dark); margin-bottom: 10px; }
.aec-event-desc { font-family: var(--font-sans); font-size: 14px; color: var(--aec-muted); line-height: 1.7; margin-bottom: 16px; }
.aec-event-card .aec-text-link { margin-top: 0; }

/* Testimonials */
.aec-testimonials { background: var(--aec-card); }
.aec-testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; max-width: 1100px; margin: 0 auto; }
.aec-testimonial { text-align: center; }
.aec-testimonial blockquote {
  font-family: var(--font-serif); font-size: 20px; font-style: italic;
  color: var(--aec-dark); line-height: 1.6; margin: 0 0 24px;
  border: 0; padding: 0; /* drop Astra's default blockquote left-border (read as off-center) */
}
.aec-testimonial-divider { width: 40px; height: 1px; background: var(--aec-copper); margin: 0 auto 20px; }
.aec-testimonial-author { font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--aec-dark); margin-bottom: 4px; }
.aec-testimonial-title { font-family: var(--font-sans); font-size: 12px; color: var(--aec-muted); }

/* Wine Club CTA */
.aec-wineclub {
  background: var(--aec-burgundy); padding: 120px 0; text-align: center;
}
.aec-wineclub h2 { font-size: clamp(36px, 5vw, 64px); color: var(--aec-cream); margin-bottom: 24px; }
.aec-wineclub p { font-family: var(--font-sans); font-size: 15px; color: rgba(248,246,241,0.7); max-width: 600px; margin: 0 auto 48px; line-height: 1.7; }
.aec-btn-copper {
  display: inline-block; padding: 16px 48px; background: var(--aec-copper); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; text-decoration: none;
  transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-btn-copper:hover { background: var(--aec-copper-dark); }

/* Section header centering */
.aec-section-header { text-align: center; margin-bottom: 64px; }
.aec-section-header h2 { font-size: clamp(32px, 3.5vw, 52px); }

/* Home responsive */
@media (max-width: 900px) {
  .aec-container { padding: 0 24px; }
  .aec-section { padding: 64px 0; }
  .aec-story-grid, .aec-wines-grid, .aec-testimonials-grid { grid-template-columns: 1fr; }
  .aec-events-grid { grid-template-columns: 1fr; }
  .aec-ava-stats { grid-template-columns: 1fr; gap: 32px; }
  .aec-ava { background-attachment: scroll; }
}

/* ==========================================================================
   ABOUT PAGE (page ID 1319) — reuses .aec-story*, .aec-eyebrow, .aec-wineclub,
   .aec-btn-copper from the HOME PAGE section; adds page-hero + craft grid.
   ========================================================================== */
.aec-page-hero { position: relative; min-height: 60vh; display: flex; align-items: flex-end; overflow: hidden; }
.aec-page-hero-inner { width: 100%; padding-bottom: 64px; }
.aec-page-hero h1 { font-size: clamp(44px, 6vw, 72px); color: var(--aec-cream); line-height: 1.05; }

/* The Craft — From Vine to Bottle (4-step grid) */
.aec-craft-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.aec-craft-step { border-top: 1px solid var(--aec-border); padding-top: 24px; }
.aec-craft-num { font-family: var(--font-serif); font-size: 40px; color: var(--aec-copper); line-height: 1; margin-bottom: 16px; }
.aec-craft-step-title { font-family: var(--font-serif); font-size: 22px; color: var(--aec-dark); margin-bottom: 10px; }
.aec-craft-desc { font-family: var(--font-sans); font-size: 14px; color: var(--aec-muted); line-height: 1.7; }

@media (max-width: 900px) {
  .aec-craft-grid { grid-template-columns: 1fr 1fr; }
  .aec-page-hero { min-height: 45vh; }
}
@media (max-width: 560px) {
  .aec-craft-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   EVENTS PAGE (page ID 13) — reuses .aec-page-hero, .aec-events-grid,
   .aec-event-card*, .aec-eyebrow, .aec-btn-copper; adds 2x2 grid + Host CTA.
   ========================================================================== */
.aec-events-grid-4 { grid-template-columns: repeat(2, 1fr); max-width: 1000px; }
.aec-host { text-align: center; }
.aec-host-title { font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-dark); margin-bottom: 24px; }
.aec-host-text {
  font-family: var(--font-sans); font-size: 16px; color: var(--aec-muted);
  line-height: 1.7; max-width: 620px; margin: 0 auto 40px;
}
@media (max-width: 768px) {
  .aec-events-grid-4 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   WINE CLUB PAGE (page ID 2337) — burgundy hero band, 3 pricing tiers,
   CF7 sign-up form (fields styled by the CONTACT FORM 7 section above).
   ========================================================================== */
.aec-wc-hero { background: var(--aec-burgundy); text-align: center; padding: 120px 0; }
.aec-wc-hero .aec-eyebrow { color: var(--aec-copper); }
.aec-wc-hero h1 { font-size: clamp(40px, 5vw, 72px); color: var(--aec-cream); margin-bottom: 24px; line-height: 1.1; }
.aec-wc-hero p { font-family: var(--font-sans); font-size: 16px; color: rgba(248,246,241,0.75); max-width: 620px; margin: 0 auto; line-height: 1.7; }

/* Membership tiers */
.aec-tiers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1100px; margin: 0 auto; align-items: stretch; }
.aec-tier { background: #FFFFFF; border: 1px solid var(--aec-border); padding: 40px 32px; text-align: center; display: flex; flex-direction: column; }
.aec-tier-name { font-family: var(--font-serif); font-size: 24px; color: var(--aec-dark); margin-bottom: 12px; }
.aec-tier-price { font-family: var(--font-serif); font-size: 44px; color: var(--aec-dark); line-height: 1; margin-bottom: 28px; }
.aec-tier-per { font-family: var(--font-sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--aec-muted); display: block; margin-top: 8px; }
.aec-tier-list { list-style: none; margin: 0 0 32px; padding: 0; text-align: left; }
.aec-tier-list li { position: relative; padding-left: 26px; margin-bottom: 12px; font-family: var(--font-sans); font-size: 14px; color: var(--aec-muted); line-height: 1.5; }
.aec-tier-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--aec-copper); font-weight: 700; }
.aec-tier-btn { margin-top: auto; display: inline-block; padding: 14px 28px; background: var(--aec-burgundy); color: var(--aec-cream); font-family: var(--font-sans); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.2em; text-decoration: none; transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1); }
.aec-tier-btn:hover { background: var(--aec-burgundy-dark); color: var(--aec-cream); }
/* Featured (middle) tier */
.aec-tier--featured { background: var(--aec-dark); border-color: var(--aec-dark); }
.aec-tier--featured .aec-tier-name, .aec-tier--featured .aec-tier-price { color: var(--aec-cream); }
.aec-tier--featured .aec-tier-per { color: rgba(248,246,241,0.6); }
.aec-tier--featured .aec-tier-list li { color: rgba(248,246,241,0.8); }
.aec-tier--featured .aec-tier-btn { background: var(--aec-copper); }
.aec-tier--featured .aec-tier-btn:hover { background: var(--aec-copper-dark); }

/* Sign-up form */
.aec-join { scroll-margin-top: 100px; }
.aec-join-form { max-width: 560px; margin: 0 auto; }
.aec-join-form .wpcf7 p { margin: 0 0 16px; }

@media (max-width: 900px) {
  .aec-tiers-grid { grid-template-columns: 1fr; max-width: 480px; }
  .aec-wc-hero { padding: 80px 0; }
}

/* ==========================================================================
   CONTACT PAGE (page ID 1323) — 2-col (info + map | CF7 form) + FAQ accordion.
   Form fields styled by the CONTACT FORM 7 section above.
   ========================================================================== */
.aec-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.aec-contact-subhead { font-family: var(--font-serif); font-size: 26px; color: var(--aec-dark); margin-bottom: 24px; }
.aec-contact-subhead-mt { margin-top: 40px; }
.aec-contact-list { list-style: none; margin: 0; padding: 0; }
.aec-contact-list li { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 20px; font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.6; }
.aec-contact-list svg { flex: 0 0 auto; width: 18px; height: 18px; color: var(--aec-copper); margin-top: 2px; }
.aec-contact-list a { color: var(--aec-muted); text-decoration: none; transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1); }
.aec-contact-list a:hover { color: var(--aec-burgundy); }
.aec-contact-list em { font-style: normal; font-size: 13px; color: rgba(89,96,112,0.7); }
.aec-contact-directions { font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.7; margin-bottom: 24px; }
.aec-map { width: 100%; height: 300px; border: 1px solid var(--aec-border); display: block; }

/* FAQ accordion (native <details>) */
.aec-faq-list { max-width: 820px; margin: 0 auto; }
.aec-faq-item { border-bottom: 1px solid var(--aec-border); }
.aec-faq-item summary { cursor: pointer; list-style: none; padding: 24px 0; font-family: var(--font-serif); font-size: 20px; color: var(--aec-dark); display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.aec-faq-item summary::-webkit-details-marker { display: none; }
.aec-faq-item summary::after { content: "+"; color: var(--aec-copper); font-size: 26px; font-family: var(--font-sans); line-height: 1; }
.aec-faq-item[open] summary::after { content: "\2212"; }
.aec-faq-answer { padding: 0 0 24px; }
.aec-faq-answer p { font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.7; margin: 0; }
.aec-faq-answer a { color: var(--aec-burgundy); }

@media (max-width: 900px) {
  .aec-contact-grid { grid-template-columns: 1fr; gap: 48px; }
}

/* ==========================================================================
   ELEMENTOR FOOTER (Theme Builder template 2562)
   Native widgets (headings, text editors, newsletter placeholder) styled here.
   Containers targeted by stable element IDs (aecff0x); widgets carry .aec-elf-*.
   ========================================================================== */
footer.elementor-location-footer { font-family: var(--font-sans); }

.elementor-element-aecff01 {
  background-color: var(--aec-dark) !important;
  padding: 80px 0 0 !important; width: 100%;
}
.elementor-element-aecff02 {
  display: block !important;
  max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 48px !important;
}

/* 4-column grid */
.elementor-element-aecff03 {
  display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px;
}
.elementor-element-aecff11, .elementor-element-aecff12,
.elementor-element-aecff13, .elementor-element-aecff14 {
  display: flex !important; flex-direction: column !important;
  align-items: flex-start !important; gap: 0; padding: 0 !important; width: auto;
}

/* Brand column */
.aec-elf-brand .elementor-heading-title {
  font-family: var(--font-serif); font-size: 24px; font-weight: 600;
  color: var(--aec-cream); line-height: 1;
}
.aec-elf-brandsub .elementor-heading-title {
  font-family: var(--font-sans); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.35em; color: rgba(248,246,241,0.6); margin-top: 8px;
}
.aec-elf-desc { margin-top: 24px; }
.aec-elf-desc, .aec-elf-desc p {
  font-size: 14px; color: rgba(248,246,241,0.7); line-height: 1.7;
}

/* Column headings */
.aec-elf-h .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.2em;
  color: rgba(248,246,241,0.8); margin-bottom: 24px;
}
.aec-elf-h-news .elementor-heading-title { margin-top: 32px; }

/* Link + contact lists */
.aec-elf-links p { margin: 0 0 12px; }
.aec-elf-links a, .aec-elf-contact a {
  color: rgba(248,246,241,0.6); font-size: 14px; text-decoration: none;
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-elf-links a:hover, .aec-elf-contact a:hover { color: var(--aec-cream); }
.aec-elf-contact p, .aec-elf-hours p {
  font-size: 14px; color: rgba(248,246,241,0.6); line-height: 1.7; margin: 0 0 12px;
}
.aec-elf-hours .aec-elf-hours-closed {
  font-size: 12px; color: rgba(248,246,241,0.4);
}

/* Newsletter placeholder (non-functional visual) */
.aec-elf-news { display: flex; width: 100%; margin-top: 4px; }
.aec-elf-news input {
  flex: 1 1 auto; min-width: 0;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(248,246,241,0.2);
  color: var(--aec-cream); padding: 10px 14px;
  font-family: var(--font-sans); font-size: 13px; border-radius: 0;
}
.aec-elf-news input::placeholder { color: rgba(248,246,241,0.5); }
.aec-elf-news button {
  background: var(--aec-copper); color: var(--aec-cream); border: none;
  padding: 10px 20px; font-family: var(--font-sans); font-size: 11px;
  font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em;
  cursor: pointer; transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.aec-elf-news button:hover { background: var(--aec-copper-dark); }

/* Bottom bar */
.elementor-element-aecff04 {
  display: flex !important; flex-direction: row !important;
  justify-content: space-between !important; align-items: center !important;
  flex-wrap: wrap; gap: 16px;
  border-top: 1px solid rgba(248,246,241,0.1); margin-top: 64px; padding: 32px 0 !important;
}
.aec-elf-copy p, .aec-elf-legal p {
  font-size: 12px; color: rgba(248,246,241,0.4); margin: 0;
}

@media (max-width: 900px) {
  .elementor-element-aecff03 { grid-template-columns: 1fr 1fr; }
  .elementor-element-aecff02 { padding: 0 24px !important; }
  .elementor-element-aecff04 { flex-direction: column !important; align-items: flex-start !important; }
}
@media (max-width: 560px) {
  .elementor-element-aecff03 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   SCROLL REVEAL — fade + slide-up as blocks enter the viewport.
   Gated on .aec-js (added by aec-reveal.js only when motion is allowed), so
   no-JS / prefers-reduced-motion users see all content normally (no hiding).
   ========================================================================== */
.aec-js .aec-hero-content,
.aec-js .aec-page-hero-inner,
.aec-js .aec-wc-hero .aec-container,
.aec-js .aec-section-header,
.aec-js .aec-story-img,
.aec-js .aec-story-text,
.aec-js .aec-wine-card,
.aec-js .aec-ava-content,
.aec-js .aec-event-card,
.aec-js .aec-testimonial,
.aec-js .aec-wineclub .aec-container,
.aec-js .aec-craft-step,
.aec-js .aec-host,
.aec-js .aec-tier,
.aec-js .aec-join,
.aec-js .aec-contact-grid,
.aec-js .aec-faq-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.aec-js .aec-hero-content.is-visible,
.aec-js .aec-page-hero-inner.is-visible,
.aec-js .aec-wc-hero .aec-container.is-visible,
.aec-js .aec-section-header.is-visible,
.aec-js .aec-story-img.is-visible,
.aec-js .aec-story-text.is-visible,
.aec-js .aec-wine-card.is-visible,
.aec-js .aec-ava-content.is-visible,
.aec-js .aec-event-card.is-visible,
.aec-js .aec-testimonial.is-visible,
.aec-js .aec-wineclub .aec-container.is-visible,
.aec-js .aec-craft-step.is-visible,
.aec-js .aec-host.is-visible,
.aec-js .aec-tier.is-visible,
.aec-js .aec-join.is-visible,
.aec-js .aec-contact-grid.is-visible,
.aec-js .aec-faq-item.is-visible {
  opacity: 1;
  transform: none;
}

/* ==========================================================================
   MAINTENANCE / COMING-SOON PAGE (Elementor template 2153)
   Full-screen, vines+mountains background, centered brand content.
   ========================================================================== */
.elementor-element-aecmt01 {
  min-height: 100vh; display: flex !important; align-items: center; justify-content: center;
  padding: 48px 24px;
  background:
    linear-gradient(rgba(29,33,43,0.72), rgba(29,33,43,0.72)),
    url('/wp-content/uploads/2025/11/JT-007.jpg') center 22% / cover no-repeat;
}
.elementor-element-aecmt02 { max-width: 680px; width: 100%; text-align: center; }
.aec-maint-name .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 4vw, 38px);
  color: var(--aec-cream); line-height: 1;
}
.aec-maint-sub .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.35em; color: rgba(248,246,241,0.7); margin-top: 6px;
}
.aec-maint-eyebrow .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.3em; color: var(--aec-copper); margin-top: 56px;
}
.aec-maint-title .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: clamp(36px, 5vw, 56px);
  color: var(--aec-cream); line-height: 1.12; margin-top: 16px;
}
.aec-maint-body { margin-top: 24px; }
.aec-maint-body, .aec-maint-body p {
  font-family: var(--font-sans); font-size: 16px; color: rgba(248,246,241,0.85); line-height: 1.8;
}
.aec-maint-body .aec-maint-meta {
  margin-top: 28px; font-size: 13px; letter-spacing: 0.04em; color: rgba(248,246,241,0.7);
}
.aec-maint-body a { color: var(--aec-copper); text-decoration: none; }
.aec-maint-body a:hover { color: var(--aec-copper-dark); }

/* ==========================================================================
   EVENTS PAGE — Elementor-native rebuild (page ID 13) + Event Loop Item.
   Owner-editable: events are an `aec_event` CPT rendered through a Loop Grid;
   the page opens in the Elementor editor (edit text/images). Design stays
   locked here in CSS. Containers targeted by element ID, widgets by .aec-*
   class; heading text lives in `.elementor-heading-title`.
   ========================================================================== */

/* Hero (full-width container, content pinned to the bottom) */
.elementor-element-aecevhro {
  min-height: 60vh;
  justify-content: flex-end !important;
  background: linear-gradient(rgba(29,33,43,0.30), rgba(29,33,43,0.70)),
    url('/wp-content/uploads/2025/11/20170606_191119-scaled.jpg') center/cover no-repeat;
}
.aec-evh-h1 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(44px, 6vw, 72px); color: var(--aec-cream); line-height: 1.05;
}

/* Section header (Calendar / Upcoming Events) */
.elementor-element-aecevhdr { text-align: center; margin-bottom: 64px; }
.aec-evh-h2 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-dark); line-height: 1.2;
}

/* Eyebrow rendered through an Elementor heading widget */
.aec-eyebrow .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.3em; color: var(--aec-copper);
}

/* Host Your Occasion (centered CTA band) */
.elementor-element-aecevhsi { text-align: center; }
.aec-host-title .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-dark);
  line-height: 1.2; margin-bottom: 24px;
}
.aec-host-text { max-width: 620px; margin: 0 auto 40px; }
.aec-host-text p {
  font-family: var(--font-sans); font-size: 16px; color: var(--aec-muted);
  line-height: 1.7; margin: 0;
}
.aec-btn-copper-el .elementor-button {
  background: var(--aec-copper); color: var(--aec-cream);
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; padding: 16px 48px;
  border-radius: 0; transition: background 0.15s cubic-bezier(0.4,0,0.2,1);
}
.aec-btn-copper-el .elementor-button:hover { background: var(--aec-copper-dark); }

/* ---- Event Loop Item card (one per aec_event post) ---- */
.elementor-element-aecevcard { gap: 0 !important; }
/* !important: Elementor's flex-container widget-spacing CSS loads after this
   sheet and zeroes the image widget's margin, collapsing the gap to the date. */
.aec-evc-img { overflow: hidden; margin-bottom: 24px !important; }
.aec-evc-img img {
  width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block;
  transition: transform 0.7s;
}
.e-loop-item:hover .aec-evc-img img { transform: scale(1.05); }
.aec-evc-date .elementor-heading-title {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-copper);
  margin-bottom: 8px;
}
.aec-evc-title .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 24px;
  color: var(--aec-dark); line-height: 1.2; margin-bottom: 10px;
}
.aec-evc-desc p {
  font-family: var(--font-sans); font-size: 14px; color: var(--aec-muted);
  line-height: 1.7; margin: 0;
}

/* ==========================================================================
   ABOUT PAGE — Elementor-native rebuild (page ID 1319). Hero + two alternating
   story grids + 4-step craft grid + burgundy CTA. Containers by element ID,
   widgets by .aec-* class; heading text in `.elementor-heading-title`.
   ========================================================================== */

/* Hero (shares the 60vh pinned-bottom treatment with the Events hero) */
.elementor-element-aecabhro {
  min-height: 60vh;
  justify-content: flex-end !important;
  background: linear-gradient(rgba(29,33,43,0.30), rgba(29,33,43,0.70)),
    url('/wp-content/uploads/2026/01/Alfred-Eames-Cellars-Paonia-Colorado.jpg') center/cover no-repeat;
}

/* Story grids (image + text, 50/50; Vision = image-left, Philosophy = image-right).
   These containers are BOXED, so Elementor wraps the children in `.e-con-inner` —
   the grid must target that inner wrapper, not the outer element. */
.elementor-element-aecabvisg > .e-con-inner,
.elementor-element-aecabphig > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.aec-story-img-el img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.aec-story-h2 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(32px, 3.5vw, 48px); color: var(--aec-dark);
  line-height: 1.2; margin-bottom: 24px;
}
.aec-story-p p {
  font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted);
  line-height: 1.7; margin: 0 0 16px;
}
.aec-story-p p:last-child { margin-bottom: 0; }

/* The Craft — 4-step numbered grid */
.elementor-element-aecabcrah { text-align: center; margin-bottom: 64px; }
.elementor-element-aecabcrag {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.elementor-element-aecabcs1,
.elementor-element-aecabcs2,
.elementor-element-aecabcs3,
.elementor-element-aecabcs4 { border-top: 1px solid var(--aec-border); padding-top: 24px; }
.aec-craft-num-el .elementor-heading-title {
  font-family: var(--font-serif); font-size: 40px; color: var(--aec-copper);
  line-height: 1; margin-bottom: 16px;
}
.aec-craft-title-el .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 22px;
  color: var(--aec-dark); margin-bottom: 10px;
}
.aec-craft-desc-el p {
  font-family: var(--font-sans); font-size: 14px; color: var(--aec-muted);
  line-height: 1.7; margin: 0;
}

/* Burgundy CTA band */
.elementor-element-aecabctai { text-align: center; }
.aec-wineclub-h2 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(36px, 5vw, 64px); color: var(--aec-cream); margin-bottom: 24px;
}

@media (max-width: 900px) {
  .elementor-element-aecabvisg > .e-con-inner,
  .elementor-element-aecabphig > .e-con-inner { grid-template-columns: 1fr; gap: 32px; }
  .elementor-element-aecabcrag { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .elementor-element-aecabcrag { grid-template-columns: 1fr; }
}

/* ==========================================================================
   HOME PAGE — Elementor-native rebuild (page ID 1317). Hero + story + Featured
   Wines (WooCommerce product loop) + AVA parallax stats + Events preview (loop)
   + Testimonials (loop) + Wine Club CTA. All eyebrows are already copper via
   the base `.aec-eyebrow .elementor-heading-title` rule.
   ========================================================================== */

/* Hero (full-screen, centered) */
.elementor-element-aechmhro {
  min-height: 100vh;
  justify-content: center !important;
  align-items: center !important;
  text-align: center;
  background: linear-gradient(rgba(29,33,43,0.45), rgba(29,33,43,0.55)),
    url('/wp-content/uploads/2025/11/JT-007.jpg') center 22% / cover no-repeat;
}
.elementor-element-aechmhri { text-align: center; max-width: 900px; }
.aec-hero-h1 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(48px, 7vw, 88px); color: var(--aec-cream);
  line-height: 1.05; margin-bottom: 24px;
}
.aec-hero-h1 em { font-style: italic; display: block; }
.aec-hero-sub-el .elementor-heading-title {
  font-family: var(--font-sans); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.25em; color: rgba(248,246,241,0.8); margin-bottom: 48px;
}
.aec-btn-primary-el .elementor-button {
  background: var(--aec-copper); color: var(--aec-cream); border-radius: 0;
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; padding: 16px 40px;
  transition: background 0.15s cubic-bezier(0.4,0,0.2,1);
}
.aec-btn-primary-el .elementor-button:hover { background: var(--aec-copper-dark); }
.aec-btn-ghost-el .elementor-button {
  background: transparent; border: 1px solid rgba(248,246,241,0.5); color: var(--aec-cream);
  border-radius: 0; font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.25em; padding: 16px 40px;
  transition: background 0.15s cubic-bezier(0.4,0,0.2,1);
}
.aec-btn-ghost-el .elementor-button:hover { background: rgba(248,246,241,0.1); }

/* Our Story (image + text grid; boxed container → target .e-con-inner) */
.elementor-element-aechmstg > .e-con-inner {
  display: grid !important; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
}
.aec-storylink { margin-top: 16px; }

/* Featured Wines (dark) */
.elementor-element-aechmwih { text-align: center; margin-bottom: 64px; }
.aec-darksec-h2 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(32px, 3.5vw, 52px); color: var(--aec-cream); line-height: 1.2;
}
.aec-wine-loop .elementor-element-aecwccard { text-align: center; gap: 0 !important; height: 100%; }
.aec-wc-imgwrap { margin-bottom: 28px !important; }
.aec-wc-imgwrap .elementor-widget-container {
  aspect-ratio: 3/4; overflow: hidden; background: #14182A;
  border: 1px solid rgba(248,246,241,0.08);
  display: flex; align-items: center; justify-content: center; padding: 28px;
}
.aec-wc-imgwrap img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transition: transform 0.7s; }
.aec-wine-loop .e-loop-item:hover .aec-wc-imgwrap img { transform: scale(1.05); }
.aec-wc-name .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 24px;
  color: var(--aec-cream); margin-bottom: 12px;
}
/* Notes reserve a consistent 3-line block so all 3 cards are the same height and
   the button sits right under the notes (no big gap). Longer notes clamp with an
   ellipsis on the homepage teaser; the full text shows on the product page. */
.aec-wc-notes { max-width: 280px; margin: 0 auto 24px !important; min-height: 67px; }
/* The dynamic product excerpt renders as a bare text node (no <p>), so target the
   widget container directly for both styling and the 3-line clamp. */
.aec-wc-notes .elementor-widget-container {
  font-family: var(--font-sans); font-size: 13px; color: rgba(248,246,241,0.6);
  line-height: 1.7;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.aec-btn-wine-el .elementor-button {
  background: transparent; border: 1px solid rgba(248,246,241,0.3); color: var(--aec-cream);
  border-radius: 0; font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; padding: 12px 32px;
  transition: background 0.15s cubic-bezier(0.4,0,0.2,1);
}
.aec-btn-wine-el .elementor-button:hover { background: rgba(248,246,241,0.1); }

/* "View all" text links */
.aec-viewall { text-align: center; margin-top: 64px; }
.aec-link-copper {
  font-family: var(--font-sans); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--aec-copper);
  border-bottom: 1px solid var(--aec-copper); padding-bottom: 4px; text-decoration: none;
}
.aec-link-copper:hover { color: var(--aec-copper-dark); border-color: var(--aec-copper-dark); }

/* West Elks AVA — parallax stats */
.elementor-element-aechmava {
  background: linear-gradient(rgba(29,33,43,0.70), rgba(29,33,43,0.70)),
    url('/wp-content/uploads/2025/11/Alfred-Eames-Cellars-with-Daisies-scaled.jpg') center/cover fixed !important;
}
.elementor-element-aechmavi { text-align: center; }
.aec-ava-h2 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: clamp(32px, 3.5vw, 52px);
  color: var(--aec-cream); margin-bottom: 48px; text-shadow: 0 1px 16px rgba(0,0,0,0.4);
}
.elementor-element-aechmavs {
  display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 48px;
  max-width: 900px; margin: 0 auto;
}
.aec-stat-num-el .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 48px;
  color: var(--aec-copper); margin-bottom: 12px;
}
.aec-stat-desc-el p {
  font-family: var(--font-sans); font-size: 14px; color: rgba(248,246,241,0.92);
  line-height: 1.7; margin: 0; text-shadow: 0 1px 12px rgba(0,0,0,0.55);
}

/* Events preview + Testimonials section headers */
.elementor-element-aechmevh,
.elementor-element-aechmtsh { text-align: center; margin-bottom: 64px; }

/* Testimonials loop card */
.aec-tst-loop .elementor-element-aectstcard { text-align: center; gap: 0 !important; }
.aec-tst-quote { margin-bottom: 24px; }
.aec-tst-quote p { font-family: var(--font-serif); font-size: 20px; font-style: italic; color: var(--aec-dark); line-height: 1.6; margin: 0; }
.aec-tst-quote p::before { content: '\201C'; }
.aec-tst-quote p::after { content: '\201D'; }
.aec-tst-name .elementor-heading-title::before { content: ''; display: block; width: 40px; height: 1px; background: var(--aec-copper); margin: 0 auto 20px; }
.aec-tst-name .elementor-heading-title { font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--aec-dark); margin-bottom: 4px; }
.aec-tst-title .elementor-heading-title { font-family: var(--font-sans); font-size: 12px; color: var(--aec-muted); }

/* Wine Club CTA */
.elementor-element-aechmwci { text-align: center; }
.aec-wineclub-text { max-width: 600px; margin: 0 auto 48px; }
.aec-wineclub-text p { font-family: var(--font-sans); font-size: 15px; color: rgba(248,246,241,0.7); line-height: 1.7; margin: 0; }

@media (max-width: 900px) {
  .elementor-element-aechmstg > .e-con-inner { grid-template-columns: 1fr; gap: 32px; }
  .elementor-element-aechmavs { grid-template-columns: 1fr; gap: 32px; }
  .elementor-element-aechmava { background-attachment: scroll !important; }
}

/* ==========================================================================
   WINE CLUB PAGE — Elementor-native rebuild (page ID 2337). Burgundy hero +
   3 membership tiers (middle = featured/dark) + CF7 sign-up form. Reuses the
   existing .aec-tier-list / .aec-tier-per / .wpcf7 / .aec-join-form rules.
   ========================================================================== */
.elementor-element-aecwcheroi { text-align: center; }
.aec-wchero-h1 .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: clamp(40px, 5vw, 72px);
  color: var(--aec-cream); line-height: 1.1; margin-bottom: 24px;
}
.aec-wchero-text { max-width: 620px; margin: 0 auto; }
.aec-wchero-text p { font-family: var(--font-sans); font-size: 16px; color: rgba(248,246,241,0.75); line-height: 1.7; margin: 0; }

/* Tiers grid (full container → grid applies directly) */
.elementor-element-aecwctiersg {
  display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px;
  max-width: 1100px; margin: 0 auto; align-items: stretch;
}
.elementor-element-aecwct1,
.elementor-element-aecwct2,
.elementor-element-aecwct3 { padding: 40px 32px; text-align: center; }
.elementor-element-aecwct1,
.elementor-element-aecwct3 { background: #FFFFFF; border: 1px solid var(--aec-border); }
.elementor-element-aecwct2 { background: var(--aec-dark); border: 1px solid var(--aec-dark); }
.aec-tier-name-el .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 24px; color: var(--aec-dark); margin-bottom: 12px;
}
.aec-tier-price-el .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 44px; color: var(--aec-dark); line-height: 1; margin-bottom: 28px;
}
.aec-tier-list-wrap { width: 100%; }
.aec-tier-btn-el { margin-top: auto; }
.aec-tier-btn-el .elementor-button {
  background: var(--aec-burgundy); color: var(--aec-cream); border-radius: 0;
  font-family: var(--font-sans); font-size: 11px; font-weight: 500; text-transform: uppercase;
  letter-spacing: 0.2em; padding: 14px 28px; transition: background 0.15s cubic-bezier(0.4,0,0.2,1);
}
.aec-tier-btn-el .elementor-button:hover { background: var(--aec-burgundy-dark); }
.elementor-element-aecwct2 .aec-tier-name-el .elementor-heading-title,
.elementor-element-aecwct2 .aec-tier-price-el .elementor-heading-title { color: var(--aec-cream); }
.elementor-element-aecwct2 .aec-tier-per { color: rgba(248,246,241,0.6); }
.elementor-element-aecwct2 .aec-tier-list li { color: rgba(248,246,241,0.8); }
.elementor-element-aecwct2 .aec-tier-btn-el .elementor-button { background: var(--aec-copper); }
.elementor-element-aecwct2 .aec-tier-btn-el .elementor-button:hover { background: var(--aec-copper-dark); }

/* Join form */
.elementor-element-aecwcjh { text-align: center; margin-bottom: 64px; }
.elementor-element-aecwcjoin { scroll-margin-top: 100px; }

@media (max-width: 768px) {
  .elementor-element-aecwctiersg { grid-template-columns: 1fr; max-width: 480px; }
}

/* ==========================================================================
   CONTACT PAGE — Elementor-native rebuild (page ID 1323). Visit Us (info +
   directions + map / CF7 form) + FAQ accordion. Reuses .aec-contact-list /
   .aec-map / .wpcf7; FAQ is an editable Elementor accordion styled to match
   the old <details> look (copper +/- markers, bottom borders).
   ========================================================================== */
.elementor-element-aecctvh,
.elementor-element-aecctfh { text-align: center; margin-bottom: 64px; }

.elementor-element-aecctgrid {
  display: grid !important; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start;
}
.aec-contact-subhead-el .elementor-heading-title {
  font-family: var(--font-serif); font-weight: 300; font-size: 26px; color: var(--aec-dark); margin-bottom: 24px;
}
.aec-contact-subhead-mt-el .elementor-heading-title { margin-top: 40px; }
.aec-contact-directions-el p {
  font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.7; margin: 0 0 24px;
}

/* FAQ accordion */
.aec-faq-acc .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--aec-border); }
.aec-faq-acc .elementor-tab-title {
  background: transparent; border: 0; padding: 24px 0; cursor: pointer;
  font-family: var(--font-serif); font-weight: 300; font-size: 20px; color: var(--aec-dark);
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.aec-faq-acc .elementor-accordion-icon { display: none; }
.aec-faq-acc .elementor-tab-title::after { content: "+"; color: var(--aec-copper); font-size: 26px; font-family: var(--font-sans); line-height: 1; }
.aec-faq-acc .elementor-tab-title.elementor-active::after { content: "\2212"; }
.aec-faq-acc .elementor-tab-content {
  background: transparent; border: 0; padding: 0 0 24px;
  font-family: var(--font-sans); font-size: 15px; color: var(--aec-muted); line-height: 1.7;
}
.aec-faq-acc .elementor-tab-content a { color: var(--aec-burgundy); text-decoration: underline; }

@media (max-width: 900px) {
  .elementor-element-aecctgrid { grid-template-columns: 1fr; gap: 48px; }
}
