:root {
  --teal:        #00394a;
  --teal-mid:    #005a6e;
  --teal-light:  #cddbe4;
  --teal-xlight: #e8f3f7;
  --peach:       #f4c4bb;
  --peach-light: #fdf0ed;
  --cream:       #faf9f8;
  --warm-white:  #ffffff;
  --text:        #1a2e35;
  --text-mid:    #3d5a64;
  --text-soft:   #7a9aa5;
  --font-serif:  'Cormorant Garamond', Georgia, serif;
  --font-sans:   'DM Sans', system-ui, sans-serif;
  --r:           8px;
  --r-lg:        16px;
  --shadow:      0 4px 24px rgba(0,57,74,0.10);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

h1, h2, h3 { font-family: var(--font-serif); font-weight: 400; line-height: 1.2; }

.eyebrow {
  font-family: var(--font-sans);
  font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--teal-mid); display: block; margin-bottom: 0.6rem;
}

.container { max-width: 1180px; margin: 0 auto; padding: 0 28px; }

/* hero */
.terms-hero {
  background: linear-gradient(135deg, var(--teal) 0%, #002535 100%);
  padding: 72px 0 64px;
  position: relative; overflow: hidden;
}
.terms-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='0.8' fill='rgba(255,255,255,0.04)'/%3E%3C/svg%3E") repeat;
  pointer-events: none;
}
.terms-hero-inner { position: relative; z-index: 1; max-width: 720px; }
.terms-hero-inner .eyebrow { color: var(--peach); }
.terms-hero h1 { color: white; font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 0.5rem; }
.terms-hero-meta {
  color: rgba(255,255,255,0.65);
  font-family: var(--font-sans);
  font-size: 0.88rem;
  margin-top: 0.25rem;
}
.terms-hero-meta a {
  color: white;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.terms-hero-meta a:hover {
  color: rgba(255,255,255,0.85);
}

/* content */
.terms-content {
  padding: 64px 0 80px;
  background: var(--warm-white);
}
.terms-prose {
  max-width: 760px;
}
.terms-prose h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.55rem);
  color: var(--teal);
  margin: 2.4rem 0 0.85rem;
}
.terms-prose h2:first-of-type { margin-top: 1.5rem; }
.terms-prose h3 {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 600;
  color: var(--teal-mid);
  margin: 1.5rem 0 0.65rem;
}
.terms-prose ul {
  margin: 0 0 1rem 1.25rem;
  padding: 0;
}
.terms-prose li {
  color: var(--text-mid);
  font-size: 0.95rem;
  line-height: 1.75;
  margin-bottom: 0.5rem;
}
.terms-contact-block {
  margin: 1rem 0 1.5rem;
  padding: 1.25rem 1.5rem;
  background: var(--cream);
  border-radius: var(--r);
  border: 1px solid rgba(0,57,74,0.08);
}
.terms-contact-block p { margin-bottom: 0; }
.terms-prose p {
  color: var(--text-mid);
  font-size: 0.95rem;
  line-height: 1.75;
  margin-bottom: 1rem;
}
.terms-prose p:last-child { margin-bottom: 0; }
.terms-prose a {
  color: var(--teal-mid);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.terms-prose a:hover { color: var(--teal); }
.terms-notice {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: var(--text);
  margin-bottom: 1.25rem;
}
.terms-support {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0,57,74,0.12);
  font-size: 0.9rem;
  color: var(--text-soft);
}

.contact-prose { max-width: 100%; }
.contact-booking-embed {
  max-width: 1025px;
  margin-top: 1rem;
  margin-left: auto;
  margin-right: auto;
}
.contact-booking-iframe {
  width: 100%;
  max-width: 1025px;
  height: 1800px;
  min-height: 1800px;
  border: 1px solid rgba(0, 57, 74, 0.12);
  display: block;
}

@media (max-width: 640px) {
  .terms-content { padding: 48px 0 64px; }
  .contact-booking-iframe {
    height: 2300px;
    min-height: 2300px;
    border: 0;
  }
}
