
/* AZ1 Premium Remodel — v1.1
   Layout modeled on the live Estrella Mountain Ranch whole-home page:
   clean editorial sections, strong navy/gold brand treatment, project imagery,
   numbered 01–04 process, proof section, FAQ and closing CTA. */

.az1-est-template,
.az1-home-premium-banner {
  --az1-navy:#10283d;
  --az1-navy-2:#173a57;
  --az1-gold:#c6a15b;
  --az1-ink:#17212b;
  --az1-muted:#64717d;
  --az1-line:#d9dee3;
  --az1-soft:#f5f4f0;
  --az1-white:#ffffff;
  color:var(--az1-ink);
  background:var(--az1-white);
}
.az1-est-template * { box-sizing:border-box; }
.az1-est-inner { width:min(1180px,92%); margin:0 auto; }

.az1-est-hero {
  padding:88px 0 62px;
  background:#fff;
  border-bottom:1px solid var(--az1-line);
}
.az1-est-kicker {
  margin:0 0 16px;
  color:var(--az1-gold);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  font-weight:800;
}
.az1-est-kicker-dark { color:var(--az1-navy); }
.az1-est-hero h1 {
  max-width:980px;
  margin:0 0 26px;
  color:var(--az1-navy);
  font-size:clamp(2.7rem,6vw,5.6rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:800;
}
.az1-est-hero-copy {
  max-width:860px;
  margin:0;
  color:#3a4650;
  font-size:clamp(1.08rem,1.8vw,1.32rem);
  line-height:1.75;
}
.az1-est-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:22px;
  margin-top:34px;
}
.az1-est-btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:52px;
  padding:14px 24px;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.78rem;
  font-weight:800;
  border:1px solid var(--az1-navy);
  transition:.2s ease;
}
.az1-est-btn-primary { background:var(--az1-navy); color:#fff!important; }
.az1-est-btn-primary:hover { background:var(--az1-gold); border-color:var(--az1-gold); color:#101820!important; }
.az1-est-phone {
  color:var(--az1-navy)!important;
  text-decoration:none!important;
  font-weight:800;
}
.az1-est-accountability {
  margin:36px 0 0;
  padding-top:24px;
  border-top:1px solid var(--az1-line);
  color:var(--az1-navy);
  font-size:.95rem;
  font-weight:800;
  letter-spacing:.02em;
}

.az1-est-section { padding:82px 0; }
.az1-est-two-col {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);
  gap:72px;
  align-items:center;
}
.az1-est-copy h2,
.az1-est-vision h2,
.az1-est-why h2,
.az1-est-faq-section h2,
.az1-est-final h2,
.az1-est-extra h2,
.az1-premium-form-section h2 {
  margin:0 0 24px;
  color:var(--az1-navy);
  font-size:clamp(2rem,4vw,3.55rem);
  line-height:1.06;
  letter-spacing:-.035em;
}
.az1-est-copy p,
.az1-est-vision p,
.az1-est-extra p,
.az1-est-extra li,
.az1-premium-form-section p {
  color:#46525c;
  font-size:1.05rem;
  line-height:1.8;
}
.az1-est-feature { margin:0; min-height:470px; overflow:hidden; background:var(--az1-soft); }
.az1-est-feature img { width:100%; height:100%; min-height:470px; object-fit:cover; display:block; }

.az1-est-gallery-section { padding:0 0 82px; }
.az1-est-gallery {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.az1-est-gallery figure { margin:0; height:380px; overflow:hidden; background:var(--az1-soft); }
.az1-est-gallery img { width:100%; height:100%; object-fit:cover; display:block; }

.az1-est-quote {
  padding:74px 0;
  background:var(--az1-navy);
  color:#fff;
}
.az1-est-quote blockquote {
  max-width:940px;
  margin:0;
  color:#fff;
  font-size:clamp(1.75rem,3.8vw,3.2rem);
  line-height:1.24;
  letter-spacing:-.025em;
  font-weight:700;
}
.az1-est-quote p {
  margin:28px 0 0;
  color:#e4d1aa;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.78rem;
  font-weight:800;
}

.az1-est-wide-image { padding:82px 0 0; }
.az1-est-wide-image img {
  display:block;
  width:100%;
  height:min(56vw,620px);
  object-fit:cover;
}

.az1-est-vision { max-width:100%; }
.az1-est-vision .az1-est-inner { max-width:980px; }
.az1-est-text-link {
  display:inline-block;
  margin-top:16px;
  color:var(--az1-navy)!important;
  font-weight:800;
  text-decoration:none!important;
  border-bottom:2px solid var(--az1-gold);
  padding-bottom:4px;
}

.az1-est-process {
  padding:78px 0 88px;
  background:var(--az1-soft);
}
.az1-est-step-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:26px;
  border-top:1px solid #c9c8c3;
}
.az1-est-step {
  position:relative;
  min-height:330px;
  padding:30px 28px 26px 0;
  border-right:1px solid #c9c8c3;
}
.az1-est-step + .az1-est-step { padding-left:28px; }
.az1-est-step:last-child { border-right:0; }
.az1-est-num {
  display:block;
  margin-bottom:62px;
  color:var(--az1-gold);
  font-size:1.05rem;
  font-weight:800;
}
.az1-est-step h3 {
  margin:0 0 14px;
  color:var(--az1-navy);
  font-size:1.3rem;
  line-height:1.2;
}
.az1-est-step p { margin:0; color:#59636b; line-height:1.7; }

.az1-est-extra { border-bottom:1px solid var(--az1-line); }
.az1-est-extra ul,
.az1-est-extra ol { padding-left:1.25rem; }

.az1-est-why {
  padding:84px 0;
  background:var(--az1-navy);
  color:#fff;
}
.az1-est-why h2 { color:#fff; }
.az1-est-proof-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 48px;
  margin-top:34px;
  border-top:1px solid rgba(255,255,255,.22);
}
.az1-est-proof {
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.az1-est-proof span { color:var(--az1-gold); font-weight:900; }
.az1-est-proof p { margin:0; color:#fff; line-height:1.55; }

.az1-est-faq-section { padding:84px 0; }
.az1-est-faq-section .az1-est-inner { max-width:980px; }
.az1-est-faq {
  border-top:1px solid var(--az1-line);
  padding:22px 0;
}
.az1-est-faq:last-child { border-bottom:1px solid var(--az1-line); }
.az1-est-faq summary {
  cursor:pointer;
  color:var(--az1-navy);
  font-size:1.08rem;
  font-weight:800;
  list-style:none;
  padding-right:30px;
  position:relative;
}
.az1-est-faq summary::-webkit-details-marker { display:none; }
.az1-est-faq summary:after {
  content:"+";
  position:absolute;
  right:0;
  top:-2px;
  color:var(--az1-gold);
  font-size:1.5rem;
}
.az1-est-faq[open] summary:after { content:"–"; }
.az1-est-faq p { max-width:850px; color:#56616a; line-height:1.75; }

.az1-est-final {
  padding:78px 0;
  background:#ecebe6;
}
.az1-est-final-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:60px;
  align-items:center;
}
.az1-est-final p { color:#5b646c; font-size:1.05rem; margin-bottom:26px; }
.az1-est-final figure { margin:0; height:330px; overflow:hidden; }
.az1-est-final img { width:100%; height:100%; object-fit:cover; display:block; }

/* Premium qualification form — same visual language */
.az1-premium-form-section { padding:84px 0; background:var(--az1-soft); }
.az1-premium-form { max-width:980px; }
.az1-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
.az1-premium-form label { display:block; margin:0 0 18px; color:var(--az1-navy); font-weight:800; }
.az1-premium-form input[type=text],
.az1-premium-form input[type=tel],
.az1-premium-form input[type=email],
.az1-premium-form select,
.az1-premium-form textarea {
  width:100%;
  margin-top:8px;
  padding:14px 13px;
  border:1px solid #bfc5ca;
  border-radius:0;
  background:#fff;
  color:#20272d;
  font:inherit;
}
.az1-premium-form textarea { resize:vertical; }
.az1-premium-form small { display:block; margin-top:6px; color:#68737c; font-weight:400; }
.az1-consent { display:flex!important; gap:10px; align-items:flex-start; font-weight:400!important; color:#49545d!important; }
.az1-consent input { margin-top:5px; }
.az1-premium-form button.az1-btn,
.az1-premium-form .az1-btn {
  border:1px solid var(--az1-navy);
  border-radius:0;
  background:var(--az1-navy);
  color:#fff;
  padding:15px 24px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
}

/* Legacy page bridge */
.az1-legacy-premium-box {
  margin:38px 0;
  padding:28px;
  border-left:4px solid var(--az1-gold,#c6a15b);
  background:#f5f4f0;
}
.az1-legacy-premium-box strong { color:#10283d; font-size:1.25rem; }

@media (max-width:900px) {
  .az1-est-two-col,
  .az1-est-final-grid { grid-template-columns:1fr; gap:36px; }
  .az1-est-step-grid { grid-template-columns:1fr 1fr; }
  .az1-est-step:nth-child(2) { border-right:0; }
  .az1-est-step:nth-child(3),
  .az1-est-step:nth-child(4) { border-top:1px solid #c9c8c3; }
  .az1-est-gallery figure { height:300px; }
}
@media (max-width:680px) {
  .az1-est-hero { padding:58px 0 42px; }
  .az1-est-section,
  .az1-est-why,
  .az1-est-faq-section,
  .az1-est-final,
  .az1-premium-form-section { padding:58px 0; }
  .az1-est-gallery { grid-template-columns:1fr; }
  .az1-est-gallery-section { padding-bottom:58px; }
  .az1-est-gallery figure { height:260px; }
  .az1-est-feature,
  .az1-est-feature img { min-height:330px; }
  .az1-est-step-grid { grid-template-columns:1fr; }
  .az1-est-step,
  .az1-est-step + .az1-est-step {
    min-height:auto;
    padding:26px 0;
    border-right:0;
    border-top:1px solid #c9c8c3;
  }
  .az1-est-step:first-child { border-top:0; }
  .az1-est-num { margin-bottom:24px; }
  .az1-est-proof-grid { grid-template-columns:1fr; }
  .az1-est-actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .az1-est-btn { width:100%; }
  .az1-form-grid { grid-template-columns:1fr; }
  .az1-est-wide-image img { height:360px; }
}


/* =========================================================
   SITEWIDE ESTRELLA DESIGN SYSTEM — v1.2
   Applies visual consistency to ALL existing AZ1 public pages
   without rewriting Elementor or WordPress page content.
   ========================================================= */

body.az1-estrella-sitewide {
  --az1-navy:#10283d;
  --az1-navy-2:#173a57;
  --az1-gold:#c6a15b;
  --az1-gold-soft:#e4d1aa;
  --az1-ink:#17212b;
  --az1-muted:#5f6b75;
  --az1-line:#d9dee3;
  --az1-soft:#f5f4f0;
  --az1-white:#ffffff;
  color:var(--az1-ink);
  background:#fff;
}

/* Global typography */
body.az1-estrella-sitewide h1,
body.az1-estrella-sitewide h2,
body.az1-estrella-sitewide h3,
body.az1-estrella-sitewide h4,
body.az1-estrella-sitewide h5,
body.az1-estrella-sitewide h6 {
  color:var(--az1-navy);
  letter-spacing:-.025em;
}
body.az1-estrella-sitewide h1 {
  font-size:clamp(2.7rem,5.4vw,5.4rem);
  line-height:1.01;
  letter-spacing:-.045em;
}
body.az1-estrella-sitewide h2 {
  font-size:clamp(2rem,3.7vw,3.55rem);
  line-height:1.07;
  letter-spacing:-.035em;
}
body.az1-estrella-sitewide h3 {
  line-height:1.18;
}
body.az1-estrella-sitewide p,
body.az1-estrella-sitewide li {
  line-height:1.72;
}
body.az1-estrella-sitewide a {
  text-underline-offset:3px;
}

/* Header / navigation — preserve theme mechanics while giving the Estrella visual language */
body.az1-estrella-sitewide header,
body.az1-estrella-sitewide .site-header,
body.az1-estrella-sitewide #masthead,
body.az1-estrella-sitewide .elementor-location-header {
  background:#fff;
  border-bottom:1px solid var(--az1-line);
}
body.az1-estrella-sitewide header a,
body.az1-estrella-sitewide .site-header a,
body.az1-estrella-sitewide #masthead a,
body.az1-estrella-sitewide .elementor-location-header a {
  color:var(--az1-navy);
}
body.az1-estrella-sitewide .elementor-nav-menu--main .elementor-item,
body.az1-estrella-sitewide .menu > li > a,
body.az1-estrella-sitewide nav a {
  font-weight:700;
}
body.az1-estrella-sitewide .elementor-nav-menu--dropdown,
body.az1-estrella-sitewide .sub-menu {
  border:1px solid var(--az1-line);
  box-shadow:0 18px 38px rgba(16,40,61,.10);
}
body.az1-estrella-sitewide .elementor-nav-menu--dropdown a:hover,
body.az1-estrella-sitewide .sub-menu a:hover {
  background:var(--az1-soft);
  color:var(--az1-navy);
}

/* Existing Elementor pages: create consistent editorial spacing */
body.az1-estrella-sitewide .elementor-section,
body.az1-estrella-sitewide .e-con {
  --container-default-padding-top:0px;
}
body.az1-estrella-sitewide .elementor-widget-text-editor,
body.az1-estrella-sitewide .elementor-widget-theme-post-content {
  color:#46525c;
}
body.az1-estrella-sitewide .elementor-widget-text-editor p,
body.az1-estrella-sitewide .elementor-widget-theme-post-content p {
  line-height:1.78;
}

/* First visible content heading gets Estrella-scale hierarchy */
body.az1-estrella-sitewide:not(.home) main h1:first-of-type,
body.az1-estrella-sitewide:not(.home) .site-main h1:first-of-type,
body.az1-estrella-sitewide:not(.home) .elementor h1:first-of-type {
  color:var(--az1-navy);
}

/* Buttons / CTAs */
body.az1-estrella-sitewide .elementor-button,
body.az1-estrella-sitewide input[type="submit"],
body.az1-estrella-sitewide button:not(.menu-toggle):not(.elementor-menu-toggle),
body.az1-estrella-sitewide .wp-element-button,
body.az1-estrella-sitewide a.button,
body.az1-estrella-sitewide button.button,
body.az1-estrella-sitewide .woocommerce a.button,
body.az1-estrella-sitewide .woocommerce button.button,
body.az1-estrella-sitewide .woocommerce input.button {
  border-radius:0!important;
  border:1px solid var(--az1-navy)!important;
  background:var(--az1-navy)!important;
  color:#fff!important;
  font-weight:800!important;
  letter-spacing:.055em;
  text-transform:uppercase;
  box-shadow:none!important;
  transition:.2s ease;
}
body.az1-estrella-sitewide .elementor-button:hover,
body.az1-estrella-sitewide input[type="submit"]:hover,
body.az1-estrella-sitewide button:not(.menu-toggle):not(.elementor-menu-toggle):hover,
body.az1-estrella-sitewide .wp-element-button:hover,
body.az1-estrella-sitewide a.button:hover,
body.az1-estrella-sitewide .woocommerce a.button:hover,
body.az1-estrella-sitewide .woocommerce button.button:hover {
  background:var(--az1-gold)!important;
  border-color:var(--az1-gold)!important;
  color:#111820!important;
}

/* Links used as text CTAs */
body.az1-estrella-sitewide main a:not(.elementor-button):not(.button):not(.woocommerce-LoopProduct-link),
body.az1-estrella-sitewide .site-main a:not(.elementor-button):not(.button):not(.woocommerce-LoopProduct-link) {
  color:var(--az1-navy);
}

/* Images: editorial, squared and clean like the reference */
body.az1-estrella-sitewide main img,
body.az1-estrella-sitewide .site-main img,
body.az1-estrella-sitewide .elementor-widget-image img {
  border-radius:0;
}
body.az1-estrella-sitewide .elementor-widget-image a {
  overflow:hidden;
}
body.az1-estrella-sitewide .elementor-widget-image img {
  transition:transform .35s ease;
}
body.az1-estrella-sitewide .elementor-widget-image a:hover img {
  transform:scale(1.015);
}

/* Cards and icon boxes: remove unrelated rounded SaaS styling */
body.az1-estrella-sitewide .elementor-widget-icon-box .elementor-widget-container,
body.az1-estrella-sitewide .elementor-widget-image-box .elementor-widget-container,
body.az1-estrella-sitewide .eael-feature-list-item,
body.az1-estrella-sitewide .eael-infobox {
  border-radius:0!important;
}

/* Forms */
body.az1-estrella-sitewide input[type="text"],
body.az1-estrella-sitewide input[type="email"],
body.az1-estrella-sitewide input[type="tel"],
body.az1-estrella-sitewide input[type="number"],
body.az1-estrella-sitewide input[type="search"],
body.az1-estrella-sitewide input[type="url"],
body.az1-estrella-sitewide input[type="date"],
body.az1-estrella-sitewide select,
body.az1-estrella-sitewide textarea {
  border-radius:0!important;
  border:1px solid #bbc3c9!important;
  background:#fff!important;
  color:var(--az1-ink)!important;
  min-height:48px;
  box-shadow:none!important;
}
body.az1-estrella-sitewide textarea { min-height:130px; }
body.az1-estrella-sitewide input:focus,
body.az1-estrella-sitewide select:focus,
body.az1-estrella-sitewide textarea:focus {
  border-color:var(--az1-gold)!important;
  outline:2px solid rgba(198,161,91,.18)!important;
}

/* Accordions / FAQs */
body.az1-estrella-sitewide .elementor-accordion .elementor-accordion-item,
body.az1-estrella-sitewide .elementor-toggle .elementor-toggle-item,
body.az1-estrella-sitewide details {
  border-color:var(--az1-line)!important;
}
body.az1-estrella-sitewide .elementor-tab-title,
body.az1-estrella-sitewide .elementor-toggle-title,
body.az1-estrella-sitewide summary {
  color:var(--az1-navy)!important;
  font-weight:800!important;
}
body.az1-estrella-sitewide .elementor-tab-content,
body.az1-estrella-sitewide .elementor-toggle-content {
  color:#56616a;
}

/* Tables */
body.az1-estrella-sitewide table {
  border-collapse:collapse;
  width:100%;
}
body.az1-estrella-sitewide th {
  background:var(--az1-navy);
  color:#fff;
  text-align:left;
}
body.az1-estrella-sitewide th,
body.az1-estrella-sitewide td {
  border:1px solid var(--az1-line);
  padding:14px;
}

/* Blog / archive / cards */
body.az1-estrella-sitewide .post,
body.az1-estrella-sitewide article,
body.az1-estrella-sitewide .elementor-post,
body.az1-estrella-sitewide .eael-grid-post {
  border-radius:0;
}
body.az1-estrella-sitewide .elementor-post__title a,
body.az1-estrella-sitewide .entry-title a {
  color:var(--az1-navy)!important;
}
body.az1-estrella-sitewide .elementor-post__meta-data,
body.az1-estrella-sitewide .entry-meta {
  color:var(--az1-muted);
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:.78rem;
}

/* Testimonials */
body.az1-estrella-sitewide .elementor-testimonial-content,
body.az1-estrella-sitewide blockquote {
  color:var(--az1-navy);
}
body.az1-estrella-sitewide blockquote {
  border-left:3px solid var(--az1-gold);
  padding-left:24px;
}

/* WooCommerce: same brand design, transactional structure preserved */
body.az1-estrella-sitewide.woocommerce .woocommerce-breadcrumb,
body.az1-estrella-sitewide .woocommerce-breadcrumb {
  color:var(--az1-muted);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
body.az1-estrella-sitewide .woocommerce ul.products li.product,
body.az1-estrella-sitewide .woocommerce-page ul.products li.product {
  background:#fff;
  border:1px solid var(--az1-line);
  padding:0 0 20px;
  border-radius:0;
}
body.az1-estrella-sitewide .woocommerce ul.products li.product img {
  margin:0 0 18px;
}
body.az1-estrella-sitewide .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.az1-estrella-sitewide .woocommerce div.product .product_title {
  color:var(--az1-navy);
}
body.az1-estrella-sitewide .woocommerce ul.products li.product .price,
body.az1-estrella-sitewide .woocommerce div.product p.price,
body.az1-estrella-sitewide .woocommerce div.product span.price {
  color:var(--az1-gold);
  font-weight:800;
}
body.az1-estrella-sitewide .woocommerce span.onsale {
  border-radius:0;
  background:var(--az1-gold);
  color:#111820;
  min-height:auto;
  min-width:auto;
  padding:8px 11px;
  line-height:1;
}
body.az1-estrella-sitewide .woocommerce div.product .woocommerce-tabs ul.tabs li {
  border-radius:0;
}
body.az1-estrella-sitewide .woocommerce-message,
body.az1-estrella-sitewide .woocommerce-info {
  border-top-color:var(--az1-gold);
}
body.az1-estrella-sitewide .woocommerce-message::before,
body.az1-estrella-sitewide .woocommerce-info::before {
  color:var(--az1-gold);
}

/* Contact / maps */
body.az1-estrella-sitewide iframe {
  max-width:100%;
}

/* Global closing CTA — reference-page ending treatment */
.az1-global-closing-cta {
  padding:72px 0;
  background:#ecebe6;
  border-top:1px solid #d8d7d1;
}
.az1-global-closing-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:54px;
  align-items:center;
}
.az1-global-closing-cta h2 {
  margin:0 0 14px;
  color:var(--az1-navy);
  font-size:clamp(2rem,3.8vw,3.5rem);
  line-height:1.04;
}
.az1-global-closing-cta p:not(.az1-est-kicker) {
  max-width:760px;
  color:#5b646c;
  font-size:1.04rem;
}
.az1-global-closing-actions {
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:flex-start;
}
.az1-global-phone {
  color:var(--az1-navy)!important;
  font-weight:800;
  text-decoration:none!important;
}

/* Footer — make old theme footer visually match the Estrella reference */
body.az1-estrella-sitewide footer,
body.az1-estrella-sitewide .site-footer,
body.az1-estrella-sitewide #colophon,
body.az1-estrella-sitewide .elementor-location-footer {
  background:var(--az1-navy)!important;
  color:#fff!important;
}
body.az1-estrella-sitewide footer h1,
body.az1-estrella-sitewide footer h2,
body.az1-estrella-sitewide footer h3,
body.az1-estrella-sitewide footer h4,
body.az1-estrella-sitewide footer h5,
body.az1-estrella-sitewide footer h6,
body.az1-estrella-sitewide .site-footer h1,
body.az1-estrella-sitewide .site-footer h2,
body.az1-estrella-sitewide .site-footer h3,
body.az1-estrella-sitewide .site-footer h4,
body.az1-estrella-sitewide .site-footer h5,
body.az1-estrella-sitewide .site-footer h6,
body.az1-estrella-sitewide .elementor-location-footer h1,
body.az1-estrella-sitewide .elementor-location-footer h2,
body.az1-estrella-sitewide .elementor-location-footer h3,
body.az1-estrella-sitewide .elementor-location-footer h4,
body.az1-estrella-sitewide .elementor-location-footer h5,
body.az1-estrella-sitewide .elementor-location-footer h6 {
  color:#fff!important;
}
body.az1-estrella-sitewide footer p,
body.az1-estrella-sitewide footer li,
body.az1-estrella-sitewide .site-footer p,
body.az1-estrella-sitewide .site-footer li,
body.az1-estrella-sitewide .elementor-location-footer p,
body.az1-estrella-sitewide .elementor-location-footer li {
  color:rgba(255,255,255,.82)!important;
}
body.az1-estrella-sitewide footer a,
body.az1-estrella-sitewide .site-footer a,
body.az1-estrella-sitewide .elementor-location-footer a {
  color:#fff!important;
}
body.az1-estrella-sitewide footer a:hover,
body.az1-estrella-sitewide .site-footer a:hover,
body.az1-estrella-sitewide .elementor-location-footer a:hover {
  color:var(--az1-gold-soft)!important;
}

/* Remove visual remnants that conflict with the premium rectangular system */
body.az1-estrella-sitewide .elementor-button,
body.az1-estrella-sitewide .elementor-widget-container,
body.az1-estrella-sitewide .woocommerce ul.products li.product,
body.az1-estrella-sitewide input,
body.az1-estrella-sitewide select,
body.az1-estrella-sitewide textarea {
  box-shadow:none;
}

/* Responsive */
@media (max-width:900px) {
  .az1-global-closing-grid { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:680px) {
  body.az1-estrella-sitewide h1 { font-size:clamp(2.25rem,11vw,3.4rem); }
  body.az1-estrella-sitewide h2 { font-size:clamp(1.75rem,8vw,2.6rem); }
  .az1-global-closing-cta { padding:54px 0; }
  .az1-global-closing-actions,
  .az1-global-closing-actions .az1-est-btn { width:100%; }
}

/* Accessibility */
@media (prefers-reduced-motion:reduce) {
  body.az1-estrella-sitewide *,
  body.az1-estrella-sitewide *::before,
  body.az1-estrella-sitewide *::after {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}


/* =========================================================
   v1.3 — HEADER REMOVAL + IMAGE CONTRAST + BOOKING TEMPLATE
   ========================================================= */

/* Safety: the retired injected banner is never displayed, even if cached HTML
   briefly survives after an update. This does NOT affect the real site header. */
.az1-home-premium-banner {
  display:none!important;
}

/* ---------------------------------------------------------
   WHITE LETTERING OVER PHOTOS
   JS automatically adds .az1-image-copy-panel when Elementor
   uses a real background image or background overlay.
   --------------------------------------------------------- */
body.az1-estrella-sitewide .az1-image-copy-panel {
  position:relative;
  isolation:isolate;
}
body.az1-estrella-sitewide .az1-image-copy-panel::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(7,19,31,.18) 0%,
    rgba(7,19,31,.40) 48%,
    rgba(7,19,31,.78) 100%
  );
}
body.az1-estrella-sitewide .az1-image-copy-panel > *,
body.az1-estrella-sitewide .az1-image-copy-panel .e-con-inner,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-container {
  position:relative;
  z-index:1;
}
body.az1-estrella-sitewide .az1-image-copy-panel h1,
body.az1-estrella-sitewide .az1-image-copy-panel h2,
body.az1-estrella-sitewide .az1-image-copy-panel h3,
body.az1-estrella-sitewide .az1-image-copy-panel h4,
body.az1-estrella-sitewide .az1-image-copy-panel h5,
body.az1-estrella-sitewide .az1-image-copy-panel h6,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-heading-title,
body.az1-estrella-sitewide .az1-image-copy-panel p,
body.az1-estrella-sitewide .az1-image-copy-panel li,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-widget-text-editor,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-widget-text-editor p {
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
/* Preserve AZ1 gold for text links/arrow CTAs over the photos. */
body.az1-estrella-sitewide .az1-image-copy-panel a:not(.elementor-button):not(.button) {
  color:#f1c54d!important;
  font-weight:800;
}
/* Buttons continue to use the navy/gold AZ1 system. */
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-button,
body.az1-estrella-sitewide .az1-image-copy-panel a.button {
  text-shadow:none;
}

/* Additional protection for common homepage/service-card overlay patterns. */
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h1,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h2,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h3,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner .elementor-heading-title {
  color:#fff!important;
}

/* ---------------------------------------------------------
   /BOOKING/ — force the established Estrella design language
   over older page-specific Elementor styling.
   --------------------------------------------------------- */
body.az1-booking-est {
  background:#fff!important;
}
body.az1-booking-est .az1-booking-main {
  background:#fff;
}

/* Remove old theme title-strip styling if the booking page has one. */
body.az1-booking-est .page-title,
body.az1-booking-est .page-header,
body.az1-booking-est .entry-header,
body.az1-booking-est .sc_layouts_title,
body.az1-booking-est .top_panel_title {
  background:#fff!important;
  color:var(--az1-navy)!important;
  border:0!important;
  box-shadow:none!important;
}
body.az1-booking-est .page-title h1,
body.az1-booking-est .page-header h1,
body.az1-booking-est .entry-header h1,
body.az1-booking-est .sc_layouts_title h1,
body.az1-booking-est .top_panel_title h1 {
  color:var(--az1-navy)!important;
}

/* Main booking hero: same white editorial opening used by Estrella. */
body.az1-booking-est .az1-booking-hero-block {
  background:#fff!important;
  border-bottom:1px solid var(--az1-line)!important;
  padding-top:72px!important;
  padding-bottom:54px!important;
}
body.az1-booking-est .az1-booking-hero-block h1,
body.az1-booking-est .az1-booking-hero-block h2 {
  color:var(--az1-navy)!important;
  max-width:980px;
  font-size:clamp(2.5rem,5.2vw,5.2rem)!important;
  line-height:1.01!important;
  letter-spacing:-.045em!important;
}
body.az1-booking-est .az1-booking-hero-block p {
  max-width:860px;
  color:#46525c!important;
  font-size:clamp(1.05rem,1.6vw,1.25rem);
  line-height:1.75;
}

/* Give booking content the same measured vertical rhythm. */
body.az1-booking-est main .elementor-section,
body.az1-booking-est main .e-con,
body.az1-booking-est .site-main .elementor-section,
body.az1-booking-est .site-main .e-con {
  border-radius:0!important;
}
body.az1-booking-est main .elementor-widget-heading h2,
body.az1-booking-est main .elementor-widget-heading h3,
body.az1-booking-est .site-main .elementor-widget-heading h2,
body.az1-booking-est .site-main .elementor-widget-heading h3 {
  color:var(--az1-navy)!important;
}
body.az1-booking-est main .elementor-icon-box-title,
body.az1-booking-est main .elementor-image-box-title {
  color:var(--az1-navy)!important;
}

/* Why choose us / service cards become clean editorial blocks. */
body.az1-booking-est .elementor-widget-icon-box .elementor-widget-container,
body.az1-booking-est .elementor-widget-image-box .elementor-widget-container,
body.az1-booking-est .eael-infobox,
body.az1-booking-est .elementor-widget-call-to-action .elementor-cta__content {
  border-radius:0!important;
  box-shadow:none!important;
}
body.az1-booking-est .elementor-widget-icon-box .elementor-widget-container,
body.az1-booking-est .elementor-widget-image-box .elementor-widget-container {
  border-top:1px solid var(--az1-line);
  padding-top:22px;
}

/* Reviews echo the dark Estrella brand quote section. */
body.az1-booking-est .az1-est-review-block,
body.az1-booking-est .elementor-widget-testimonial .elementor-widget-container {
  border-radius:0!important;
}
body.az1-booking-est .az1-est-review-block {
  background:var(--az1-navy)!important;
  color:#fff!important;
  padding:30px!important;
}
body.az1-booking-est .az1-est-review-block *,
body.az1-booking-est .az1-est-review-block p {
  color:#fff!important;
}

/* HubSpot / lead form gets a premium soft-background shell. */
body.az1-booking-est .az1-booking-form-shell {
  background:var(--az1-soft)!important;
  border-radius:0!important;
  padding:clamp(24px,4vw,52px)!important;
  margin-top:24px!important;
  margin-bottom:24px!important;
}
body.az1-booking-est .az1-booking-form-shell iframe {
  width:100%!important;
  min-height:720px;
  border:0!important;
  background:#fff;
}

/* Keep form-related headings readable and consistent. */
body.az1-booking-est main h2,
body.az1-booking-est main h3 {
  color:var(--az1-navy);
}
body.az1-booking-est main .az1-image-copy-panel h2,
body.az1-booking-est main .az1-image-copy-panel h3 {
  color:#fff!important;
}

/* Stronger section-end treatment on the booking page. */
body.az1-booking-est main > .elementor,
body.az1-booking-est .site-main > .elementor {
  background:#fff;
}

/* Keep the real AZ1 navigation header compact and untouched by the removed banner. */
body.az1-estrella-sitewide header,
body.az1-estrella-sitewide .site-header,
body.az1-estrella-sitewide #masthead,
body.az1-estrella-sitewide .elementor-location-header {
  position:relative;
  z-index:20;
}

/* Mobile contrast and booking form */
@media (max-width:680px) {
  body.az1-booking-est .az1-booking-hero-block {
    padding-top:48px!important;
    padding-bottom:38px!important;
  }
  body.az1-booking-est .az1-booking-form-shell {
    padding:20px!important;
  }
  body.az1-booking-est .az1-booking-form-shell iframe {
    min-height:850px;
  }
  body.az1-estrella-sitewide .az1-image-copy-panel::after {
    background:linear-gradient(
      180deg,
      rgba(7,19,31,.24) 0%,
      rgba(7,19,31,.50) 50%,
      rgba(7,19,31,.82) 100%
    );
  }
}


/* =========================================================
   v1.4 — HOMEPAGE DESIGN RULE / NO EXTRA PAGE HEADER
   Master palette from AZ1 logo:
   Navy #10283d | Gold #c6a15b | White #ffffff | Black #000
   ========================================================= */

/* New permanent rule: plugin-created premium pages and /booking/ must NOT show
   the WordPress/theme page-title bar or breadcrumb strip above the designed hero. */
body.az1-no-extra-page-header .page-header,
body.az1-no-extra-page-header .entry-header,
body.az1-no-extra-page-header .page-title,
body.az1-no-extra-page-header .page-title-wrap,
body.az1-no-extra-page-header .page-title-area,
body.az1-no-extra-page-header .page-title-section,
body.az1-no-extra-page-header .title-area,
body.az1-no-extra-page-header .title-section,
body.az1-no-extra-page-header .breadcrumb-area,
body.az1-no-extra-page-header .breadcrumbs,
body.az1-no-extra-page-header .sc_layouts_title,
body.az1-no-extra-page-header .top_panel_title,
body.az1-no-extra-page-header .trx_addons_title,
body.az1-no-extra-page-header .elementor-page-title,
body.az1-no-extra-page-header .elementor-widget-theme-post-title,
body.az1-no-extra-page-header header.entry-header {
  display:none!important;
}

/* Remove the empty vertical space some themes leave after hiding the title bar. */
body.az1-no-extra-page-header #content,
body.az1-no-extra-page-header .site-content,
body.az1-no-extra-page-header .content_wrap,
body.az1-no-extra-page-header .page_content_wrap {
  margin-top:0!important;
  padding-top:0!important;
}

/* Booking page begins immediately after the normal AZ1 navigation. */
body.az1-booking-live-v14 main,
body.az1-booking-live-v14 .site-main,
body.az1-booking-live-v14 #primary,
body.az1-booking-live-v14 .content_wrap {
  margin-top:0!important;
  padding-top:0!important;
}

/* Homepage-style booking hero: deep navy, white type, gold accent. */
body.az1-booking-live-v14 .az1-est-hero {
  background:#10283d!important;
  color:#fff!important;
  border-bottom:0!important;
  padding:clamp(56px,7vw,92px) 0!important;
}
body.az1-booking-live-v14 .az1-est-hero h1,
body.az1-booking-live-v14 .az1-est-hero .az1-est-hero-copy,
body.az1-booking-live-v14 .az1-est-hero p:not(.az1-est-kicker) {
  color:#fff!important;
}
body.az1-booking-live-v14 .az1-est-hero h1 {
  max-width:1000px;
}
body.az1-booking-live-v14 .az1-est-kicker {
  color:#c6a15b!important;
}
body.az1-booking-live-v14 .az1-est-accountability {
  color:#fff!important;
  border-top-color:rgba(255,255,255,.22)!important;
}

/* The form itself follows the homepage logo palette and clean square geometry. */
body.az1-booking-live-v14 .az1-premium-form-section {
  background:#f5f4f0!important;
  padding:clamp(58px,7vw,88px) 0!important;
}
body.az1-booking-live-v14 .az1-premium-form-section h2 {
  color:#10283d!important;
}
body.az1-booking-live-v14 .az1-premium-form label {
  color:#10283d!important;
}
body.az1-booking-live-v14 .az1-premium-form input,
body.az1-booking-live-v14 .az1-premium-form select,
body.az1-booking-live-v14 .az1-premium-form textarea {
  border-radius:0!important;
  border:1px solid #b9c1c7!important;
  background:#fff!important;
}
body.az1-booking-live-v14 .az1-premium-form button {
  background:#c6a15b!important;
  border-color:#c6a15b!important;
  color:#07131f!important;
}
body.az1-booking-live-v14 .az1-premium-form button:hover {
  background:#10283d!important;
  border-color:#10283d!important;
  color:#fff!important;
}

/* Booking explanatory section: white background / navy typography. */
body.az1-booking-live-v14 .az1-est-section {
  background:#fff!important;
}
body.az1-booking-live-v14 .az1-est-section h2,
body.az1-booking-live-v14 .az1-est-faq-section h2 {
  color:#10283d!important;
}

/* FAQ retains approved navy / gold / white language. */
body.az1-booking-live-v14 .az1-est-faq summary {
  color:#10283d!important;
}
body.az1-booking-live-v14 .az1-est-faq summary::after {
  color:#c6a15b!important;
}

/* All premium pages: headings over actual image panels are white. */
body.az1-no-extra-page-header .az1-image-copy-panel h1,
body.az1-no-extra-page-header .az1-image-copy-panel h2,
body.az1-no-extra-page-header .az1-image-copy-panel h3,
body.az1-no-extra-page-header .az1-image-copy-panel h4,
body.az1-no-extra-page-header .az1-image-copy-panel p,
body.az1-no-extra-page-header .az1-image-copy-panel li {
  color:#fff!important;
}

/* Do not generate a second marketing CTA at the bottom of booking. */
body.az1-booking-live-v14 .az1-global-closing-cta {
  display:none!important;
}

@media (max-width:680px) {
  body.az1-booking-live-v14 .az1-est-hero {
    padding:48px 0 42px!important;
  }
}


/* =========================================================
   v1.5 — WHITE TITLES OVER ALL PHOTO CARDS
   Fixes homepage/service-card headings that were still navy.
   ========================================================= */

/* Homepage cards using Elementor containers with background images. */
body.az1-home-design .elementor-element[style*="background"] h1,
body.az1-home-design .elementor-element[style*="background"] h2,
body.az1-home-design .elementor-element[style*="background"] h3,
body.az1-home-design .elementor-element[style*="background"] h4,
body.az1-home-design .elementor-element[style*="background"] .elementor-heading-title,
body.az1-home-design .e-con[style*="background"] h1,
body.az1-home-design .e-con[style*="background"] h2,
body.az1-home-design .e-con[style*="background"] h3,
body.az1-home-design .e-con[style*="background"] h4,
body.az1-home-design .e-con[style*="background"] .elementor-heading-title {
  color:#ffffff!important;
}

/* Elementor often applies the actual background image from generated CSS,
   not inline styles. When the panel carries the auto-detected image class,
   force ALL heading layers to white. */
body.az1-estrella-sitewide .az1-image-copy-panel h1,
body.az1-estrella-sitewide .az1-image-copy-panel h2,
body.az1-estrella-sitewide .az1-image-copy-panel h3,
body.az1-estrella-sitewide .az1-image-copy-panel h4,
body.az1-estrella-sitewide .az1-image-copy-panel h5,
body.az1-estrella-sitewide .az1-image-copy-panel h6,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-heading-title,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-widget-heading *,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-heading-title a,
body.az1-estrella-sitewide .az1-image-copy-panel h1 a,
body.az1-estrella-sitewide .az1-image-copy-panel h2 a,
body.az1-estrella-sitewide .az1-image-copy-panel h3 a {
  color:#ffffff!important;
}

/* Extra protection for Elementor CTA / cover / call-to-action cards. */
body.az1-estrella-sitewide .elementor-cta__content h1,
body.az1-estrella-sitewide .elementor-cta__content h2,
body.az1-estrella-sitewide .elementor-cta__content h3,
body.az1-estrella-sitewide .elementor-cta__content .elementor-cta__title,
body.az1-estrella-sitewide .elementor-widget-call-to-action .elementor-heading-title,
body.az1-estrella-sitewide .elementor-widget-call-to-action h2,
body.az1-estrella-sitewide .elementor-widget-call-to-action h3 {
  color:#ffffff!important;
}

/* When Elementor uses its background-overlay structure, force headings white. */
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h1,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h2,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h3,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h4,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner .elementor-heading-title,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h1,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h2,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h3,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h4,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container .elementor-heading-title {
  color:#ffffff!important;
}

/* Specific homepage visual-card pattern:
   if a card contains white body copy already, keep its title white too. */
body.az1-home-design .elementor-section .elementor-widget-text-editor[style*="color: rgb(255"],
body.az1-home-design .elementor-section .elementor-widget-text-editor[style*="color:#fff"],
body.az1-home-design .elementor-section .elementor-widget-text-editor[style*="color: #fff"] {
  color:#ffffff!important;
}

/* Do not allow the global navy heading rule to override photo-card titles. */
body.az1-home-design .az1-image-copy-panel .elementor-heading-title,
body.az1-home-design .az1-image-copy-panel h2,
body.az1-home-design .az1-image-copy-panel h3 {
  color:#ffffff!important;
}

/* Gold text CTAs remain gold. */
body.az1-home-design .az1-image-copy-panel a:not(.elementor-button):not(.button),
body.az1-estrella-sitewide .az1-image-copy-panel a:not(.elementor-button):not(.button) {
  color:#f1c54d!important;
}


/* v1.5 — WHITE TITLES OVER ALL PHOTO CARDS */

/* Any Elementor/image panel detected as photo-backed must use white title text. */
body.az1-estrella-sitewide .az1-image-copy-panel h1,
body.az1-estrella-sitewide .az1-image-copy-panel h2,
body.az1-estrella-sitewide .az1-image-copy-panel h3,
body.az1-estrella-sitewide .az1-image-copy-panel h4,
body.az1-estrella-sitewide .az1-image-copy-panel h5,
body.az1-estrella-sitewide .az1-image-copy-panel h6,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-heading-title,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-widget-heading *,
body.az1-estrella-sitewide .az1-image-copy-panel .elementor-heading-title a,
body.az1-estrella-sitewide .az1-image-copy-panel h1 a,
body.az1-estrella-sitewide .az1-image-copy-panel h2 a,
body.az1-estrella-sitewide .az1-image-copy-panel h3 a {
  color:#ffffff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}

/* Elementor call-to-action / cover-card titles over imagery. */
body.az1-estrella-sitewide .elementor-widget-call-to-action .elementor-cta__title,
body.az1-estrella-sitewide .elementor-widget-call-to-action .elementor-heading-title,
body.az1-estrella-sitewide .elementor-widget-call-to-action h1,
body.az1-estrella-sitewide .elementor-widget-call-to-action h2,
body.az1-estrella-sitewide .elementor-widget-call-to-action h3,
body.az1-estrella-sitewide .elementor-cta__content h1,
body.az1-estrella-sitewide .elementor-cta__content h2,
body.az1-estrella-sitewide .elementor-cta__content h3 {
  color:#ffffff!important;
}

/* Elementor overlay structure. */
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h1,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h2,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h3,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner h4,
body.az1-estrella-sitewide .elementor-background-overlay ~ .e-con-inner .elementor-heading-title,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h1,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h2,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h3,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container h4,
body.az1-estrella-sitewide .elementor-background-overlay ~ .elementor-container .elementor-heading-title {
  color:#ffffff!important;
}

/* Homepage photo cards: strongest override against the sitewide navy heading rule. */
body.az1-home-design .az1-image-copy-panel h1,
body.az1-home-design .az1-image-copy-panel h2,
body.az1-home-design .az1-image-copy-panel h3,
body.az1-home-design .az1-image-copy-panel h4,
body.az1-home-design .az1-image-copy-panel .elementor-heading-title,
body.az1-home-design .elementor-widget-call-to-action h1,
body.az1-home-design .elementor-widget-call-to-action h2,
body.az1-home-design .elementor-widget-call-to-action h3,
body.az1-home-design .elementor-widget-call-to-action .elementor-cta__title {
  color:#ffffff!important;
}

/* Supporting card copy stays white; CTA links stay AZ1 gold. */
body.az1-estrella-sitewide .az1-image-copy-panel p,
body.az1-estrella-sitewide .az1-image-copy-panel li,
body.az1-home-design .az1-image-copy-panel p,
body.az1-home-design .az1-image-copy-panel li {
  color:#ffffff!important;
}
body.az1-estrella-sitewide .az1-image-copy-panel a:not(.elementor-button):not(.button),
body.az1-home-design .az1-image-copy-panel a:not(.elementor-button):not(.button) {
  color:#f1c54d!important;
  font-weight:800;
}
