@font-face {
  font-family: 'trajan';
  src: url('fonts/Trajan Pro Bold.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

* {
  box-sizing: border-box;
}

:root {
  --max: 1100px;
  --min: 320px;
  --header-background-color: #0B1F4B;
  --header-height: 344px; /* JS update */
  --btn-height: 50px;
  /* change once, affects all buttons */
  --btn-radius: 25px;
  --btn-max-width: 360px;
  /* used for stacked hero buttons */
}

body {
  background: #f8f6f2;
  color: #2f2f2f;
  margin: 0;
  font-family: 'Roboto', sans-serif;
  line-height: 1.5;
}

body {
  background-color: #f8f6f2;
  position: relative;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.035;

  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}


header, main, footer {
  width: clamp(var(--min), 100%, 100%);
  
}
.wrap {
  background:rgba(255,50,0, 0);
  width: clamp(var(--min), 100%, var(--max));
  margin: 0 auto;
  padding:0 clamp(10px, 6vw, 64px);
}

#sticky-trigger {
  position:absolute;
  width:100%;
  height:calc(var(--header-height) - 50px);
}

header {
  position:sticky;
  top: calc(50px - var(--header-height));
}

.signage {
  position:relative;
  width: clamp(var(--min), 100%, 100%);
  background: var(--header-background-color);
  color: white;
  text-decoration: none;
}

.brand {
  color:white;
  line-height: 1;
}

.brand span:nth-child(1) {
  font-family: "Dancing Script", cursive;
}

.brand span:nth-child(2) {
  font-family: trajan, serif;
}

/* Full header version */

.brand--full {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  margin: 0;
  padding: 38px 16px;
}

.brand--full span {
  display: block;
}

.brand--full span:nth-child(1) {
  font-size: 72px;
}

.brand--full span:nth-child(2) {
  font-size: 96px;
}

/* Compact header version */

.brand--compact {
  visibility: hidden;
  position: absolute;
  height: 50px;
  line-height: 50px;
  margin: 0;
  padding: 0;
  bottom: 0px;
}

.brand--compact span:nth-child(1) {
  font-size: 30px;
}

.brand--compact span:nth-child(2) {
  font-size: 40px;
}





.brand--prices span:nth-child(1) {
  font-size: 51px;
}

.brand--prices span:nth-child(2) {
  font-size: 68px;
}

.brand--prices span {
  display:block;
  text-align:center;
}


/* Phone */

.signage a {
  text-decoration: none;
  color: white;

  display: block;
  text-align: center;
  font-family: trajan, sans-serif;
  font-weight: bold;
  letter-spacing: .05em;
  font-size: clamp(18px, 2.6vw, 24px);
  color: #fff;
  padding: 0 0 0 0;

  line-height: 50px;
}


/* Ease Spa availability font refinement */
header .av-modal {
  background:white;
  z-index:99999;
}
header .av-status-wrap {
  text-align:right;
  max-width:100%;
}
header .av-status-btn{
  font-family: 'Roboto', sans-serif;
  font-weight: 500;       /* not bold */
  letter-spacing: 0.3px;
  font-size: 0.9rem;
  
  height: 42px;                 /* actual button height */
  padding: 0 8px;              /* horizontal only */
  margin:4px 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  max-width:200px;
}

header .av-action{
  font-family: 'Roboto', sans-serif;
  font-weight: 500;

}

/* Scrolled header compact version */
header.scrolled {
background: var(--header-background-color);
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.5);
  z-index:100;
}

header.scrolled a {
  visibility:hidden;
}

header.scrolled .av-action {
  visibility:visible;
}

header.scrolled .brand--compact {
  visibility: visible;
}


.hero-divider {
  height: 1px;
  width: 60px;
  margin: 70px auto;
  border: 0;
  background: rgba(0,0,0,0.08);
}

.tagline{
  font-family: 'Dancing Script', cursive;
  font-size: clamp(28px, 4vw, 40px);
  text-align: center;
  margin: 40px auto 20px;
  letter-spacing: 0.5px;
}

.tagline span{
  display: inline-block;
  margin: 0 6px;
}

.tagline span:nth-child(2){
  opacity: 0.85;
}

.tagline span:nth-child(3){
  opacity: 0.75;
}

.hero-cta {
  margin:32px 0;
}

.hero-desc {
  max-width:calc(var(--max) / 2);
  text-align: justify;
  margin: 0 auto;
}

/* Base button */
.btn{
  height: var(--btn-height);
  width:200px;
  padding: 0;
  margin:16px auto 16px auto;
  border-radius: var(--btn-radius);

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;

  border: 1px solid transparent;
  transition: background .2s ease,
              border-color .2s ease,
              transform .15s ease,
              opacity .2s ease;
  
  background:var(--header-background-color);
  color:white;
  
}

.btn:hover{
  transform: translateY(-1px);
}


    h2 {
      font-family: trajan, sans-serif;
      font-weight: 700;
      margin: 32px 0 10px;
      font-size: 22px;
      text-align:center;
    }






@media (width <= 400px) {
  header .av-status-wrap {
  text-align:center;
}
  
  .brand--compact {
    display:none;
  }
}

address {
  background:lightgray;
  max-width: calc(var(--max) / 3);
  padding:16px;
  margin:16px auto;
}


.map-slot {
  position:relative;
  width: 100%;
  height: 400px; /* change this */
  border: 0;
}


.map-slot iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}






/* Footer */
footer {
  margin-top: 100px;
  padding: 40px 20px;
  text-align: center;
  border-top: 1px solid rgba(0,0,0,0.05);
}

footer nav {
  font-size: 14px;
  letter-spacing: 0.08em;
}

footer nav a {
  text-decoration: none;
  opacity: 0.65;
  transition: opacity 0.3s ease;
  position: relative;
  margin: 0 12px;
}

/* Add bullet after every link except last */
footer nav a:not(:last-child)::after {
  content: "•";
  position: absolute;
  right: -14px;
  opacity: 0.4;
}

footer nav a:hover {
  opacity: 1;
}