/*
Theme Name: Eona Child
Theme URI: https://eona.qodeinteractive.com
Description: Child theme for Bustamante Smile Boutique
Author: Existalia
Version: 1.2.0
Text Domain: eona
Template: eona
*/

:root {
  --bustamante-wine: #540000;
  --bustamante-ink: #1c1811;
  --bustamante-cream: #f7f3ef;
  --bustamante-blush: #e8e0dd;
  --bustamante-sand: #d0ac9b;
  --bustamante-border: #ddd3ce;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--bustamante-ink);
  font-family: Montserrat, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.68;
}

p,
li,
label,
input,
textarea,
select {
  font-family: Montserrat, Arial, sans-serif;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--bustamante-wine);
  outline-offset: 3px;
}

/* Editorial type system: display serif, neutral sans for content and UI. */
.qodef-section-title .qodef-m-title:is(h1, h2),
.elementor-widget-heading h1,
.elementor-widget-heading h2 {
  font-family: Lora, Georgia, serif;
  font-weight: 500 !important;
  letter-spacing: -0.035em;
  line-height: 1.06 !important;
  text-transform: none;
}

.qodef-section-title .qodef-m-title:is(h3, h4),
.qodef-numbered-text .qodef-m-title,
.bustamante-card-grid .qodef-m-title,
.bustamante-cases-grid .qodef-m-title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 650 !important;
  letter-spacing: -0.025em;
  line-height: 1.12 !important;
}

.qodef-section-title .qodef-m-caption {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 11px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.13em;
  line-height: 1.35;
  text-transform: uppercase;
}

.qodef-section-title .qodef-m-subtitle {
  font-family: Lora, Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.35;
}

.qodef-section-title .qodef-m-text,
.qodef-numbered-text .qodef-m-text {
  font-family: Montserrat, Arial, sans-serif;
  line-height: 1.7;
}

/* Header: the logo gets breathing room instead of occupying the whole bar. */
#qodef-page-header,
#qodef-page-header > div:first-child,
#qodef-page-header .qodef-header-navigation,
#qodef-page-header .qodef-header-navigation > ul,
#qodef-page-header .qodef-header-navigation > ul > li,
#qodef-page-header .qodef-header-navigation > ul > li > a {
  height: 82px !important;
}

#qodef-page-header .qodef-header-logo-link {
  display: flex;
  height: 64px !important;
  align-items: center;
}

#qodef-page-header .qodef-header-logo-image {
  width: auto !important;
  height: 64px !important;
  max-height: 64px !important;
}

#qodef-page-header .qodef-header-navigation > ul > li > a {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 12px;
  font-weight: 550;
  letter-spacing: 0.07em;
}

#qodef-top-area {
  background: var(--bustamante-ink) !important;
}

#qodef-top-area,
#qodef-top-area > div {
  min-height: 30px;
}

#qodef-top-area a,
#qodef-top-area span {
  font-size: 12px;
  line-height: 1.25;
}

/* Home hero: full bleed, readable and visually present on every breakpoint. */
.bustamante-home-hero {
  min-height: 660px;
  overflow: hidden;
}

.bustamante-home-hero > .elementor-container,
.bustamante-home-hero > .elementor-container > .elementor-column,
.bustamante-home-hero > .elementor-container > .elementor-column > .elementor-widget-wrap {
  min-height: inherit;
}

.bustamante-home-hero > .elementor-container > .elementor-column > .elementor-widget-wrap {
  position: relative;
}

.bustamante-home-hero > .elementor-container > .elementor-column > .elementor-widget-wrap::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(90deg, rgba(247, 243, 239, 0.96) 0%, rgba(247, 243, 239, 0.82) 36%, rgba(247, 243, 239, 0.26) 66%, rgba(247, 243, 239, 0) 82%);
  content: "";
  pointer-events: none;
}

.bustamante-home-hero .elementor-inner-section,
.bustamante-home-hero .elementor-widget {
  z-index: 1;
}

.bustamante-home-hero .elementor-widget-eona_core_section_title {
  max-width: 590px;
}

.bustamante-home-hero h1.qodef-m-title {
  max-width: 570px;
  font-size: clamp(48px, 5vw, 72px) !important;
}

.bustamante-home-hero .qodef-m-subtitle {
  display: block;
  max-width: 560px;
  font-size: 20px;
}

.bustamante-home-hero .qodef-m-text {
  max-width: 520px;
  font-size: 16px;
}

.bustamante-home-hero .elementor-widget-eona_core_button {
  display: inline-block;
  width: auto !important;
  margin: 24px 10px 0 0;
  vertical-align: top;
}

.bustamante-home-hero .elementor-widget-eona_core_button + .elementor-widget-eona_core_button {
  margin-left: 8px;
}

/* Static inner-page heroes replace the inherited parallax treatment. */
.bustamante-page-hero {
  position: relative;
  min-height: 500px;
  overflow: hidden;
}

.bustamante-page-hero::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(90deg, rgba(28, 24, 17, 0.16), rgba(28, 24, 17, 0.02) 68%);
  content: "";
  pointer-events: none;
}

.bustamante-page-hero > .elementor-container {
  z-index: 1;
}

.bustamante-page-hero .elementor-widget-eona_core_section_title {
  width: 100%;
  max-width: 670px;
  align-self: flex-start;
  padding: 30px 34px;
  background: rgba(247, 243, 239, 0.91);
  backdrop-filter: blur(2px);
}

.bustamante-page-hero h1.qodef-m-title {
  font-size: clamp(46px, 4.6vw, 66px) !important;
}

/* Rhythm and color: wine is a pause, contact uses warm charcoal. */
.bustamante-wine-band,
.bustamante-contact-band,
.bustamante-section-intro,
.bustamante-numbered-grid,
.bustamante-split {
  overflow: hidden;
}

.bustamante-wine-band {
  background: var(--bustamante-wine) !important;
}

.bustamante-contact-band {
  background: var(--bustamante-ink) !important;
}

.bustamante-wine-band > .elementor-container,
.bustamante-contact-band > .elementor-container,
.bustamante-section-intro > .elementor-container,
.bustamante-numbered-grid > .elementor-container {
  max-width: 1120px;
}

.bustamante-section-intro h2.qodef-m-title,
.bustamante-wine-band h2.qodef-m-title,
.bustamante-contact-band h2.qodef-m-title {
  font-size: clamp(38px, 4vw, 56px) !important;
}

.bustamante-section-intro .elementor-widget-eona_core_button {
  width: auto !important;
  margin: 28px auto 0;
  text-align: center;
}

.bustamante-method .elementor-widget-wrap {
  justify-content: center;
  text-align: center;
}

.bustamante-method .elementor-widget-eona_core_button {
  width: auto !important;
  margin: 28px auto 0;
  align-self: center;
}

.bustamante-split {
  padding-top: 78px !important;
  padding-bottom: 78px !important;
}

.bustamante-split .elementor-widget-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Numbered components retain the Eona motif without crashing into their copy. */
.bustamante-numbered-grid .qodef-numbered-text .qodef-m-number {
  color: #c49a55;
  opacity: 0.82;
}

.bustamante-numbered-grid .qodef-numbered-text .qodef-m-title {
  font-size: 22px;
}

.bustamante-numbered-grid .qodef-numbered-text .qodef-m-text {
  max-width: 250px;
  font-size: 14px;
}

/* Card grids use a common photographic frame and real destinations. */
.bustamante-card-grid > .elementor-container,
.bustamante-cases-grid > .elementor-container {
  gap: 22px;
}

.bustamante-card-grid .elementor-widget-image,
.bustamante-cases-grid .elementor-widget-image {
  overflow: hidden;
  background: var(--bustamante-blush);
}

.bustamante-card-grid .elementor-widget-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 320ms ease;
}

.bustamante-card-grid .elementor-widget-image a:hover img {
  transform: scale(1.025);
}

.bustamante-card-grid .elementor-widget-eona_core_button {
  width: auto !important;
  margin-top: 20px;
}

.bustamante-cases-grid .elementor-widget-container {
  padding: 10px;
  background: var(--bustamante-cream);
}

.bustamante-cases-grid .elementor-widget-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Buttons: legible UI, no decorative italics for essential actions. */
.qodef-button,
.qodef-button .qodef-m-text,
input[type="submit"],
.wpcf7-submit {
  font-family: Montserrat, Arial, sans-serif !important;
  font-size: 11px !important;
  font-style: normal !important;
  font-weight: 650 !important;
  letter-spacing: 0.09em;
  line-height: 1.2 !important;
  text-transform: uppercase;
}

.qodef-button {
  min-width: 0 !important;
  padding: 16px 24px !important;
  border: 1px solid var(--bustamante-ink) !important;
}

.qodef-button.qodef-layout--filled {
  background: var(--bustamante-ink) !important;
  color: #fff !important;
}

.qodef-button.qodef-layout--outlined {
  background: transparent !important;
  color: var(--bustamante-ink) !important;
}

.qodef-button:hover {
  border-color: var(--bustamante-wine) !important;
  background: var(--bustamante-wine) !important;
  color: #fff !important;
}

.bustamante-wine-band .qodef-button,
.bustamante-contact-band .qodef-button {
  border-color: var(--bustamante-cream) !important;
  background: var(--bustamante-cream) !important;
  color: var(--bustamante-ink) !important;
}

/* Contact form: labels are visible and controls have a clear focus state. */
.qodef-cf7-contact .bustamante-field-label {
  display: block;
  margin: 0 0 8px;
  color: var(--bustamante-ink);
  font-family: Montserrat, Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.055em;
}

.qodef-cf7-contact input:not([type="submit"]):not([type="checkbox"]),
.qodef-cf7-contact textarea {
  width: 100%;
  margin: 0 0 20px;
  background: #fbf9f7;
  border: 1px solid var(--bustamante-border);
  color: var(--bustamante-ink);
}

.qodef-cf7-contact input:not([type="submit"]):not([type="checkbox"]):focus,
.qodef-cf7-contact textarea:focus {
  border-color: var(--bustamante-wine);
  box-shadow: 0 0 0 2px rgba(84, 0, 0, 0.08);
}

.qodef-cf7-contact .wpcf7-acceptance {
  display: block;
  margin: 2px 0 20px;
}

/* Consent banner belongs to the visual system too. */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
  border: 1px solid var(--bustamante-border);
  border-radius: 0;
  box-shadow: 0 18px 50px rgba(28, 24, 17, 0.18);
}

#cmplz-cookiebanner-container .cmplz-btn.cmplz-accept {
  border-color: var(--bustamante-wine) !important;
  background: var(--bustamante-wine) !important;
}

#cmplz-cookiebanner-container .cmplz-links,
#cmplz-cookiebanner-container .cmplz-links ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#qodef-page-footer .widget_media_image img {
  width: 190px !important;
  max-width: 100% !important;
  height: auto !important;
}

.bustamante-mobile-actions {
  display: none;
}

@media (max-width: 1024px) {
  .bustamante-home-hero {
    min-height: 620px;
  }

  .bustamante-home-hero > .elementor-container > .elementor-column > .elementor-widget-wrap::before {
    background: linear-gradient(90deg, rgba(247, 243, 239, 0.97) 0%, rgba(247, 243, 239, 0.84) 52%, rgba(247, 243, 239, 0.18) 100%);
  }

  .bustamante-numbered-grid .elementor-column {
    margin-bottom: 34px;
  }
}

@media (max-width: 767px) {
  body {
    padding-bottom: 56px;
    font-size: 15px;
  }

  #qodef-page-mobile-header,
  #qodef-page-mobile-header > div:first-child {
    height: 76px !important;
    background: #fff !important;
  }

  #qodef-page-mobile-header .qodef-mobile-header-logo-link {
    display: flex;
    width: auto !important;
    height: 52px !important;
    align-items: center;
  }

  #qodef-page-mobile-header .qodef-header-logo-image {
    width: auto !important;
    height: 52px !important;
    max-height: 52px !important;
  }

  h1,
  h2,
  h3,
  .qodef-m-title {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  .bustamante-home-hero {
    min-height: 690px;
  }

  .bustamante-home-hero > .elementor-container > .elementor-column > .elementor-widget-wrap::before {
    background: linear-gradient(180deg, rgba(247, 243, 239, 0.9) 0%, rgba(247, 243, 239, 0.82) 72%, rgba(247, 243, 239, 0.42) 100%);
  }

  .bustamante-home-hero .elementor-widget-eona_core_section_title {
    max-width: none;
  }

  .bustamante-home-hero h1.qodef-m-title {
    max-width: 310px;
    font-size: 40px !important;
    line-height: 1.02 !important;
  }

  .bustamante-home-hero .qodef-m-subtitle {
    max-width: 300px;
    font-size: 18px;
  }

  .bustamante-home-hero .qodef-m-text {
    max-width: 300px;
    font-size: 14px;
  }

  .bustamante-home-hero .elementor-widget-eona_core_button {
    display: block;
    margin: 14px 0 0;
  }

  .bustamante-home-hero .elementor-widget-eona_core_button + .elementor-widget-eona_core_button {
    margin-left: 0;
  }

  .bustamante-page-hero {
    min-height: 430px;
  }

  .bustamante-page-hero .elementor-widget-eona_core_section_title {
    width: calc(100% - 32px);
    margin: 0 16px;
    padding: 24px 22px;
    background: rgba(247, 243, 239, 0.9);
  }

  .bustamante-page-hero h1.qodef-m-title {
    font-size: 36px !important;
    line-height: 1.04 !important;
  }

  .bustamante-section-intro h2.qodef-m-title,
  .bustamante-wine-band h2.qodef-m-title,
  .bustamante-contact-band h2.qodef-m-title {
    font-size: 34px !important;
    line-height: 1.06 !important;
  }

  .bustamante-wine-band,
  .bustamante-contact-band,
  .bustamante-section-intro,
  .bustamante-numbered-grid {
    padding-top: 58px !important;
    padding-bottom: 54px !important;
  }

  .bustamante-split {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
  }

  .bustamante-numbered-grid .qodef-numbered-text {
    min-height: 0;
    margin-bottom: 28px;
  }

  .bustamante-numbered-grid .qodef-numbered-text .qodef-m-number {
    font-size: 82px;
    line-height: 0.78;
  }

  .bustamante-numbered-grid .qodef-numbered-text .qodef-m-title {
    top: -13px;
    padding-left: 18px;
    font-size: 21px;
  }

  .bustamante-numbered-grid .qodef-numbered-text .qodef-m-text {
    top: -10px;
    max-width: 285px;
    padding-left: 18px;
    font-size: 14px;
  }

  .bustamante-card-grid > .elementor-container,
  .bustamante-cases-grid > .elementor-container {
    gap: 0;
  }

  .bustamante-card-grid .elementor-column,
  .bustamante-cases-grid .elementor-column {
    margin-bottom: 38px;
  }

  .qodef-button {
    width: auto;
    padding: 15px 20px !important;
  }

  #qodef-page-footer .widget_media_image img {
    width: 145px !important;
  }

  #qodef-back-to-top {
    right: 18px;
    bottom: 76px;
  }

  .bustamante-mobile-actions {
    position: fixed;
    z-index: 9999;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    min-height: 56px;
    background: var(--bustamante-ink);
    box-shadow: 0 -5px 22px rgba(28, 24, 17, 0.16);
  }

  .bustamante-mobile-actions a {
    display: flex;
    flex: 1 1 50%;
    align-items: center;
    justify-content: center;
    padding: 13px 8px;
    color: #fff;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.075em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
  }

  .bustamante-mobile-actions a + a {
    background: var(--bustamante-wine);
    border-left: 1px solid rgba(255, 255, 255, 0.2);
  }

  #cmplz-cookiebanner-container .cmplz-cookiebanner {
    width: calc(100% - 24px) !important;
    max-height: calc(100vh - 90px);
    overflow-y: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Bustamante header modernization · 2026-07-15 */
/* The original header overlays the home hero; Qode's sticky clone remains solid. */
@media (min-width: 1025px) {
  body.home #qodef-page-header {
    position: absolute;
    top: 30px;
    right: 0;
    left: 0;
    width: 100%;
  }

  body.home #qodef-page-header-inner {
    background: transparent !important;
    transition: background-color 220ms ease, box-shadow 220ms ease;
  }

  body.home #qodef-page-header .qodef-header-navigation > ul > li > a {
    text-shadow: 0 1px 16px rgba(247, 243, 239, 0.5);
  }

  body.home .bustamante-home-hero .elementor-inner-section .elementor-inner-column:first-child > .elementor-widget-wrap {
    padding-right: 0 !important;
  }

  body.home .bustamante-home-hero .elementor-widget-eona_core_button {
    align-self: flex-start;
  }

  body.home .bustamante-home-hero .qodef-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
  }
}

body.home .qodef-header-sticky {
  border-bottom: 1px solid rgba(28, 24, 17, 0.08);
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 10px 34px rgba(28, 24, 17, 0.08);
  backdrop-filter: blur(14px);
}

@media (max-width: 1024px) {
  body.home:not(.qodef-mobile-header--sticky) #qodef-page-mobile-header {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    background: transparent !important;
  }

  body.home:not(.qodef-mobile-header--sticky) #qodef-page-mobile-header > div:first-child {
    background: transparent !important;
  }
}

/* Bustamante hero CTA alignment fix */
@media (min-width: 1025px) {
  body.home .bustamante-home-hero .elementor-widget-eona_core_button > .elementor-widget-container {
    padding: 0 !important;
  }
}

