/* ============================================================
   hava · autumn retreat campaign styles
   "We deserve rest." · October 16–18, 2026 · the Texas Hill Country
   ------------------------------------------------------------
   Shared campaign treatment layered on top of the existing
   site. Introduces the TRIANGLE three-dot motif (current
   campaign override of the older horizontal row) and the
   early-seat ($950) offer treatment.

   Palette (brand):
     cream   #FFF8EA   pale gold #F7E7B8   honey    #F2D096
     brand gold #C6952F caramel  #D6A06F   clay     #A85F3A
     sage    #55613F   deep green #465235  mauve    #4A3743
     ink     #1A1411
   Type: Italiana (wordmark), Instrument Serif Italic
         (expressive lines), Lora (support copy).
   ============================================================ */

:root {
  --hava-cream:      #FFF8EA;
  --hava-pale-gold:  #F7E7B8;
  --hava-honey:      #F2D096;
  --hava-brand-gold: #C6952F;
  --hava-caramel:    #D6A06F;
  --hava-clay:       #A85F3A;
  --hava-sage:       #55613F;
  --hava-green:      #465235;
  --hava-mauve:      #4A3743;
  --hava-ink:        #1A1411;
}

/* ------------------------------------------------------------
   TRIANGLE three-dot motif
   Two dots on top, one centered below — an equilateral triangle.
   Replaces the old horizontal three-dot row for the campaign.
   Usage:
     <span class="hava-tri-dots" aria-hidden="true">
       <span></span><span></span><span></span>
     </span>
   ------------------------------------------------------------ */
.hava-tri-dots {
  display: inline-grid;
  grid-template-columns: repeat(2, auto);
  justify-items: center;
  align-items: center;
  gap: 5px 7px;
  vertical-align: middle;
  line-height: 0;
}
.hava-tri-dots > span {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--hava-brand-gold);
  box-shadow:
    0 0 14px rgba(198, 149, 47, 0.30),
    0 2px 7px rgba(85, 97, 63, 0.10);
}
/* first dot centered above the pair (upright triangle) */
.hava-tri-dots > span:nth-child(1) {
  grid-column: 1 / span 2;
}
@media (min-width: 800px) {
  .hava-tri-dots { gap: 6px 8px; }
  .hava-tri-dots > span { width: 10px; height: 10px; }
}

/* Block-centered triangle (for standalone use with margin auto). */
.hava-tri-dots--block {
  display: grid;
  width: max-content;
}

/* A larger, centered standalone triangle used as a section divider. */
.hava-tri-divider {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 44px 0;
}
.hava-tri-divider .hava-tri-dots {
  gap: 8px 11px;
}
.hava-tri-divider .hava-tri-dots > span {
  width: 11px;
  height: 11px;
}
@media (min-width: 800px) {
  .hava-tri-divider { margin: 56px 0; }
  .hava-tri-divider .hava-tri-dots > span { width: 12px; height: 12px; }
}

/* ------------------------------------------------------------
   Convert the existing dot rows to the triangle pattern.
   These selectors re-layout the site's pre-existing three-dot
   elements without touching their markup.
   ------------------------------------------------------------ */
.hava-top-eye,
.hava-divider-dots,
.hava-after-dots {
  display: inline-grid !important;
  grid-template-columns: repeat(2, auto);
  justify-items: center;
  align-items: center;
  gap: 5px 8px !important;
  line-height: 0;
}
/* keep the divider/after rows centered as blocks */
.hava-divider-dots,
.hava-after-dots {
  margin-left: auto;
  margin-right: auto;
  width: max-content;
}
.hava-top-eye { margin-left: auto; margin-right: auto; }

.hava-top-eye > .hava-top-dot:nth-child(1),
.hava-divider-dots > .hava-dot:nth-child(1),
.hava-after-dots > span:nth-child(1) {
  grid-column: 1 / span 2;
}
@media (min-width: 800px) {
  .hava-top-eye,
  .hava-divider-dots,
  .hava-after-dots { gap: 6px 9px !important; }
}

/* ------------------------------------------------------------
   "We deserve rest." campaign hero (events landing)
   ------------------------------------------------------------ */
.hava-restfed {
  max-width: 760px;
  margin: 4px auto 30px;
  text-align: center;
}
.hava-restfed .hava-tri-dots {
  display: grid;
  width: max-content;
  margin: 0 auto 18px;
}
.hava-restfed-line {
  font-family: 'Instrument Serif', Georgia, serif;
  font-style: italic;
  font-size: clamp(3rem, 12vw, 5.6rem);
  line-height: 1.02;
  letter-spacing: 0.005em;
  color: var(--hava-ink);
  margin: 0 0 14px;
}
.hava-restfed-line .rf-fed {
  display: block;
  color: var(--hava-green);
}
.hava-restfed-sub {
  font-family: 'Lora', serif;
  font-size: clamp(1.08rem, 2.6vw, 1.28rem);
  line-height: 1.6;
  color: var(--hava-mauve);
  max-width: 560px;
  margin: 0 auto;
}

/* ------------------------------------------------------------
   Early-seat ($950) offer banner
   Visually prioritizes the early seats without implying all
   rooms are $950.
   ------------------------------------------------------------ */
.hava-earlyseat {
  max-width: 680px;
  margin: 8px auto 40px;
  padding: 28px 26px 30px;
  border-radius: 22px;
  text-align: center;
  position: relative;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(247, 231, 184, 0.55), transparent 70%),
    linear-gradient(135deg, rgba(255, 245, 220, 0.96), rgba(240, 214, 153, 0.86));
  border: 1.5px solid rgba(166, 105, 66, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 250, 238, 0.8),
    0 10px 30px rgba(122, 130, 88, 0.12);
}
.hava-earlyseat .hava-tri-dots { display: grid; width: max-content; margin: 0 auto 12px; }
.hava-earlyseat-flag {
  font-family: 'Lora', serif;
  font-style: italic;
  text-transform: lowercase;
  letter-spacing: 0.06em;
  font-size: 0.98rem;
  color: #7A5023;
  margin: 0 0 8px;
}
.hava-earlyseat-price {
  font-family: 'Instrument Serif', Georgia, serif;
  font-style: italic;
  font-size: clamp(2.4rem, 8vw, 3.4rem);
  line-height: 1.05;
  color: var(--hava-ink);
  margin: 0 0 6px;
}
.hava-earlyseat-price .es-amount { color: var(--hava-clay); }
.hava-earlyseat-terms {
  font-family: 'Lora', serif;
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--hava-mauve);
  max-width: 520px;
  margin: 0 auto 18px;
}
.hava-earlyseat-terms strong {
  font-weight: 500;
  color: var(--hava-green);
}
.hava-earlyseat-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-bottom: 6px;
}
.hava-earlyseat-fineprint {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 0.96rem;
  color: #6a5340;
  margin: 8px auto 0;
  max-width: 480px;
  line-height: 1.5;
}

/* ------------------------------------------------------------
   Venue announcement (larger private Hill Country estate)
   Informational card, high-visibility but no competing CTA so
   the $950 offer stays the single primary conversion.
   ------------------------------------------------------------ */
.hava-announce {
  max-width: 680px;
  margin: 4px auto 30px;
  padding: 24px 28px 26px;
  border-radius: 22px;
  text-align: center;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(247, 231, 184, 0.4), transparent 70%),
    rgba(255, 248, 234, 0.9);
  border: 1px solid rgba(166, 105, 66, 0.32);
  box-shadow: inset 0 1px 0 rgba(255, 250, 238, 0.8);
}
.hava-announce .hava-tri-dots { display: grid; width: max-content; margin: 0 auto 12px; }
.hava-announce-line {
  font-family: 'Instrument Serif', Georgia, serif;
  font-style: italic;
  font-size: clamp(1.3rem, 3.4vw, 1.7rem);
  line-height: 1.4;
  color: var(--hava-green);
  max-width: 560px;
  margin: 0 auto 10px;
}
.hava-announce-sub {
  font-family: 'Lora', serif;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--hava-mauve);
  margin: 0;
}

/* ------------------------------------------------------------
   Global navigation
   Desktop: four clear choices with Retreat weighted first.
   Mobile: the same hierarchy behind a standard hamburger.
   ------------------------------------------------------------ */
.hava-global-offset {
  padding-top: 76px;
}

.hava-global-header,
.hava-global-header * {
  box-sizing: border-box;
}

.hava-global-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 120;
  min-height: 76px;
  border-bottom: 1px solid rgba(74, 55, 67, 0.16);
  background:
    radial-gradient(ellipse at 18% 0%, rgba(247, 231, 184, 0.52), transparent 45%),
    rgba(255, 248, 234, 0.92);
  box-shadow: 0 8px 24px rgba(74, 55, 67, 0.06);
  backdrop-filter: blur(14px);
}

.hava-global-header::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.88' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
  mix-blend-mode: multiply;
}

.hava-global-nav-shell {
  width: min(100% - 40px, 1120px);
  min-height: 76px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.hava-global-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--hava-mauve);
  text-decoration: none;
}

.hava-global-wordmark {
  font-family: 'Italiana', Georgia, serif;
  font-size: 2.05rem;
  line-height: 1;
  letter-spacing: 0.01em;
}

.hava-global-brand .hava-tri-dots {
  gap: 3px 5px;
}

.hava-global-brand .hava-tri-dots > span {
  width: 6px;
  height: 6px;
  box-shadow: none;
}

.hava-global-nav {
  display: flex;
  align-items: center;
  gap: clamp(22px, 3.6vw, 42px);
}

.hava-global-nav > a,
.hava-global-more-button {
  position: relative;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 26px 0 22px;
  color: var(--hava-mauve);
  font-family: 'Lora', serif;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.hava-global-nav > a:hover,
.hava-global-nav > a:focus-visible,
.hava-global-more-button:hover,
.hava-global-more-button:focus-visible {
  color: var(--hava-green);
  outline: none;
}

.hava-global-nav > a.is-primary {
  color: #8B6420;
  font-weight: 500;
}

.hava-global-nav > a.is-primary::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  height: 2px;
  background: var(--hava-brand-gold);
}

.hava-global-more {
  position: relative;
}

.hava-global-more-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.hava-global-more-button::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 180ms ease;
}

.hava-global-more.is-open .hava-global-more-button::after {
  transform: translateY(2px) rotate(225deg);
}

.hava-global-dropdown {
  position: absolute;
  top: calc(100% - 6px);
  right: -18px;
  width: 220px;
  padding: 12px 20px 16px;
  border: 1px solid rgba(74, 55, 67, 0.16);
  background:
    radial-gradient(ellipse at 12% 0%, rgba(247, 231, 184, 0.55), transparent 48%),
    rgba(255, 248, 234, 0.98);
  box-shadow: 0 18px 42px rgba(74, 55, 67, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

.hava-global-more:hover .hava-global-dropdown,
.hava-global-more:focus-within .hava-global-dropdown,
.hava-global-more.is-open .hava-global-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.hava-global-dropdown a {
  display: block;
  padding: 10px 0;
  border-bottom: 1px solid rgba(74, 55, 67, 0.10);
  color: var(--hava-mauve);
  font-family: 'Lora', serif;
  font-size: 0.96rem;
  text-decoration: none;
}

.hava-global-dropdown a:last-child {
  border-bottom: 0;
}

.hava-global-dropdown a:hover,
.hava-global-dropdown a:focus-visible {
  color: #8B6420;
  outline: none;
}

.hava-global-menu-button,
.hava-global-mobile-nav {
  display: none;
}

.hava-global-menu-button {
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--hava-mauve);
  cursor: pointer;
}

.hava-global-menu-lines {
  display: grid;
  gap: 6px;
}

.hava-global-menu-lines span {
  display: block;
  width: 25px;
  height: 1.5px;
  background: currentColor;
  transition: transform 180ms ease, opacity 180ms ease;
}

.hava-global-menu-button[aria-expanded="true"] .hava-global-menu-lines span:first-child {
  transform: translateY(7.5px) rotate(45deg);
}

.hava-global-menu-button[aria-expanded="true"] .hava-global-menu-lines span:nth-child(2) {
  opacity: 0;
}

.hava-global-menu-button[aria-expanded="true"] .hava-global-menu-lines span:last-child {
  transform: translateY(-7.5px) rotate(-45deg);
}

.hava-global-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 760px) {
  .hava-global-offset {
    padding-top: 68px;
  }

  .hava-global-header,
  .hava-global-nav-shell {
    min-height: 68px;
  }

  .hava-global-nav-shell {
    width: min(100% - 28px, 1120px);
  }

  .hava-global-wordmark {
    font-size: 1.85rem;
  }

  .hava-global-nav {
    display: none;
  }

  .hava-global-menu-button {
    display: inline-flex;
  }

  .hava-global-mobile-nav {
    position: fixed;
    inset: 68px 0 auto;
    z-index: 119;
    display: grid;
    padding: 12px 22px 24px;
    border-bottom: 1px solid rgba(74, 55, 67, 0.16);
    background:
      radial-gradient(ellipse at 16% 0%, rgba(247, 231, 184, 0.60), transparent 48%),
      rgba(255, 248, 234, 0.985);
    box-shadow: 0 18px 40px rgba(74, 55, 67, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
  }

  .hava-global-mobile-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .hava-global-mobile-nav > a,
  .hava-global-mobile-nav summary,
  .hava-global-mobile-more a {
    color: var(--hava-mauve);
    font-family: 'Lora', serif;
    text-decoration: none;
  }

  .hava-global-mobile-nav > a,
  .hava-global-mobile-nav summary {
    padding: 15px 0;
    border-bottom: 1px solid rgba(74, 55, 67, 0.12);
    font-size: 1.08rem;
  }

  .hava-global-mobile-nav > a.is-primary {
    color: #8B6420;
    font-weight: 500;
  }

  .hava-global-mobile-more summary {
    cursor: pointer;
    list-style: none;
  }

  .hava-global-mobile-more summary::-webkit-details-marker {
    display: none;
  }

  .hava-global-mobile-more-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
    padding: 8px 0 4px 18px;
  }

  .hava-global-mobile-more a {
    padding: 11px 0;
    font-size: 0.96rem;
  }
}

/* ------------------------------------------------------------
   Homepage conversion hierarchy
   ------------------------------------------------------------ */
.hava-hero-retreat-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin: 4px auto 30px;
  padding: 13px 24px 14px;
  border: 1px solid rgba(70, 82, 53, 0.28);
  border-radius: 999px;
  background: var(--hava-green);
  color: var(--hava-cream);
  box-shadow: 0 12px 30px rgba(70, 82, 53, 0.16);
  font-family: 'Lora', serif;
  font-size: 1.02rem;
  line-height: 1.2;
  text-decoration: none;
  transition: transform 220ms ease, background 220ms ease;
}

.hava-hero-retreat-cta:hover,
.hava-hero-retreat-cta:focus-visible {
  transform: translateY(-2px);
  background: #39452C;
  outline: 2px solid rgba(198, 149, 47, 0.58);
  outline-offset: 3px;
}
