:root {
  --color-primary: #d2b48c;
  --color-secondary: #f9f5f0;
  --color-ink: #1a1a1b;
  --color-muted: #6d6257;
  --color-panel: rgba(249, 245, 240, 0.78);
  --color-line: rgba(26, 26, 27, 0.14);
  --color-sunset: #8c5d35;
  --font-primary: "Poppins", sans-serif;
  --font-display: "Cormorant Garamond", serif;
  --space-xs: 0.35rem;
  --space-sm: 0.6rem;
  --space-md: 1rem;
  --space-lg: 2rem;
  --space-xl: 4rem;
  --radius-sm: 0.45rem;
  --radius-md: 0.8rem;
  --radius-lg: 1.6rem;
  --shadow-soft: 0 1.5rem 4rem rgba(26, 26, 27, 0.12);
  --transition-fast: 0.3s ease;
  --hero-height: clamp(30rem, 76svh, 45rem);
  --section-image-height: clamp(16rem, 34vw, 25rem);
  --card-image-height: clamp(12rem, 22vw, 17rem);
  --gallery-image-height: clamp(15rem, 30vw, 24rem);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--color-ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(210, 180, 140, 0.3), transparent 28rem),
    linear-gradient(135deg, var(--dynamic-tint, #f9f5f0), var(--color-secondary));
  font-family: var(--font-primary);
  line-height: 1.6;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
  object-position: center;
}

button,
input,
textarea {
  font: inherit;
}

.skip-access-link {
  position: absolute;
  left: var(--space-md);
  top: -5rem;
  z-index: 50;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-ink);
  color: var(--color-secondary);
  border-radius: var(--radius-sm);
}

.skip-access-link:focus {
  top: var(--space-md);
}

.top-frame-shell {
  position: relative;
  z-index: 20;
  width: min(94%, 76rem);
  margin: var(--space-md) auto 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-sm);
  border: 0.0625rem solid var(--color-line);
  border-radius: 999rem;
  background: rgba(249, 245, 240, 0.74);
  backdrop-filter: blur(1.1rem);
  box-shadow: var(--shadow-soft);
}

.wordmark-text-lockup {
  padding-inline: var(--space-md);
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 4vw, 2.2rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.primary-route-list {
  display: flex;
  justify-content: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.primary-route-list a {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  padding-inline: 0.8rem;
  border-left: 0.0625rem solid var(--color-line);
  color: var(--color-muted);
  transition: color var(--transition-fast), background var(--transition-fast);
}

.primary-route-list li:last-child a {
  border-right: 0.0625rem solid var(--color-line);
}

.primary-route-list a:hover,
.primary-route-list a:focus {
  color: var(--color-ink);
  background: rgba(210, 180, 140, 0.22);
}

.menu-pulse-toggle {
  display: none;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--color-ink);
  color: var(--color-secondary);
  cursor: pointer;
}

.menu-pulse-toggle span {
  display: block;
  width: 1.25rem;
  height: 0.12rem;
  margin: 0.18rem 0;
  background: currentColor;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.menu-pulse-toggle.is-active span:nth-child(1) {
  transform: translateY(0.3rem) rotate(45deg);
}

.menu-pulse-toggle.is-active span:nth-child(2) {
  opacity: 0;
}

.menu-pulse-toggle.is-active span:nth-child(3) {
  transform: translateY(-0.3rem) rotate(-45deg);
}

.mobile-panel-overlay {
  position: fixed;
  inset: 0;
  z-index: 15;
  display: none;
  align-items: start;
  justify-content: center;
  padding: 6rem var(--space-md) var(--space-md);
  background: rgba(26, 26, 27, 0.44);
  backdrop-filter: blur(0.7rem);
}

.mobile-panel-overlay.is-visible {
  display: flex;
}

.mobile-route-card {
  width: min(100%, 28rem);
  display: grid;
  gap: var(--space-sm);
  padding: var(--space-lg);
  border: 0.0625rem solid rgba(255, 255, 255, 0.32);
  border-radius: var(--radius-lg);
  background: rgba(249, 245, 240, 0.94);
  box-shadow: var(--shadow-soft);
}

.mobile-route-card a {
  padding: var(--space-md);
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-md);
}

.content-root-flow {
  overflow: hidden;
}

.full-bleed-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  min-height: var(--hero-height);
  display: grid;
  align-items: end;
  position: relative;
  padding: clamp(5rem, 10vw, 9rem) 0 var(--space-xl);
  overflow: hidden;
}

.full-bleed-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(26, 26, 27, 0.76), rgba(26, 26, 27, 0.24), rgba(249, 245, 240, 0.18));
}

.hero-image-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.hero-copy-panel {
  position: relative;
  z-index: 1;
  width: min(92%, 72rem);
  margin: 0 auto;
  display: grid;
  gap: var(--space-md);
  color: var(--color-secondary);
}

.eyebrow-marker {
  width: fit-content;
  padding: var(--space-xs) var(--space-sm);
  border: 0.0625rem solid rgba(249, 245, 240, 0.34);
  border-radius: 999rem;
  background: rgba(249, 245, 240, 0.1);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-title-large {
  max-width: 12ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3rem, 12vw, 8.6rem);
  line-height: 0.86;
  letter-spacing: -0.04em;
}

.hero-summary-text {
  max-width: 42rem;
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.22rem);
}

.hero-action-row,
.split-action-row,
.contact-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.solid-action-link,
.ghost-action-link,
.submit-motion-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0 var(--space-lg);
  border-radius: 999rem;
  border: 0.0625rem solid transparent;
  cursor: pointer;
  transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.solid-action-link,
.submit-motion-button {
  background: var(--color-primary);
  color: var(--color-ink);
}

.ghost-action-link {
  border-color: rgba(249, 245, 240, 0.52);
  color: var(--color-secondary);
}

.solid-action-link:hover,
.ghost-action-link:hover,
.submit-motion-button:hover {
  transform: translateY(-0.12rem);
}

.standard-page-band,
.legal-page-band {
  width: min(92%, 72rem);
  margin: 0 auto;
  padding: var(--space-xl) 0;
}

.section-heading-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(16rem, 1fr);
  gap: var(--space-lg);
  align-items: end;
  margin-bottom: var(--space-lg);
}

.section-kicker-line {
  color: var(--color-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.section-title-serif {
  margin: 0.2rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 6vw, 5.5rem);
  line-height: 0.94;
}

.section-lead-copy {
  margin: 0;
  color: var(--color-muted);
}

.motion-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.motion-info-card,
.product-price-card,
.guide-profile-card,
.legal-info-card,
.timeline-time-block,
.method-node-card,
.contact-detail-card {
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-lg);
  background: var(--color-panel);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(0.85rem);
}

.motion-info-card,
.product-price-card,
.guide-profile-card,
.legal-info-card,
.method-node-card,
.contact-detail-card {
  padding: var(--space-lg);
}

.motion-info-card h3,
.product-price-card h3,
.guide-profile-card h3,
.legal-info-card h3,
.timeline-time-block h3,
.method-node-card h3,
.contact-detail-card h3 {
  margin: 0 0 var(--space-sm);
  font-size: 1.2rem;
}

.motion-info-card p,
.product-price-card p,
.guide-profile-card p,
.legal-info-card p,
.timeline-time-block p,
.method-node-card p,
.contact-detail-card p {
  margin: 0;
  color: var(--color-muted);
}

.image-split-frame {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.86fr);
  gap: var(--space-lg);
  align-items: center;
}

.image-split-frame img,
.gallery-offset-grid img,
.contact-visual-card img {
  width: 100%;
  height: var(--section-image-height);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  object-fit: cover;
  aspect-ratio: 16 / 10;
}

.split-copy-stack {
  display: grid;
  gap: var(--space-md);
}

.split-copy-stack h2,
.contact-form-panel h2,
.thank-you-panel h1,
.not-found-panel h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 6vw, 5rem);
  line-height: 0.95;
}

.gallery-offset-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--space-md);
  align-items: stretch;
}

.gallery-offset-grid figure {
  margin: 0;
}

.gallery-offset-grid figcaption {
  margin-top: var(--space-sm);
  color: var(--color-muted);
  font-size: 0.92rem;
}

.gallery-offset-grid img {
  height: var(--gallery-image-height);
}

.timeline-rail-stack {
  position: relative;
  display: grid;
  gap: var(--space-md);
  padding-left: var(--space-lg);
}

.timeline-rail-stack::before {
  content: "";
  position: absolute;
  left: 0.35rem;
  top: 0;
  bottom: 0;
  width: 0.12rem;
  background: linear-gradient(var(--color-secondary), var(--color-primary), var(--color-ink));
}

.timeline-time-block {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--space-md);
  padding: var(--space-md);
}

.timeline-time-block strong {
  font-family: var(--font-display);
  font-size: 1.7rem;
}

.timeline-time-block:nth-child(odd) {
  background: rgba(249, 245, 240, 0.82);
}

.timeline-time-block:nth-child(even) {
  background: rgba(210, 180, 140, 0.38);
}

.method-orbit-panel {
  min-height: 24rem;
  display: grid;
  place-items: center;
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at 30% 40%, rgba(210, 180, 140, 0.38), transparent 9rem),
    radial-gradient(circle at 70% 60%, rgba(26, 26, 27, 0.12), transparent 10rem),
    rgba(249, 245, 240, 0.62);
}

.method-orbit-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(8rem, 1fr));
  gap: var(--space-md);
  width: min(90%, 48rem);
}

.method-node-card {
  min-height: 11rem;
  display: grid;
  place-items: center;
  text-align: center;
}

.guide-profile-card img,
.product-price-card img {
  width: 100%;
  height: var(--card-image-height);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-md);
}

.guide-profile-card video {
  width: 100%;
  height: var(--card-image-height);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-md);
}

.price-line-text {
  display: block;
  margin-top: var(--space-md);
  font-weight: 700;
}

.contact-layout-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 1.1fr);
  gap: var(--space-lg);
  align-items: start;
}

.contact-form-panel {
  padding: var(--space-lg);
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-lg);
  background: rgba(249, 245, 240, 0.82);
  box-shadow: var(--shadow-soft);
}

.field-stack-label {
  display: grid;
  gap: var(--space-xs);
  margin-top: var(--space-md);
  color: var(--color-muted);
}

.field-stack-label input,
.field-stack-label textarea {
  width: 100%;
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  background: rgba(255, 255, 255, 0.72);
  color: var(--color-ink);
}

.field-stack-label textarea {
  min-height: 9rem;
  resize: vertical;
}

.consent-check-row {
  display: flex;
  gap: var(--space-sm);
  align-items: start;
  margin: var(--space-md) 0;
  color: var(--color-muted);
}

.map-frame-panel iframe {
  width: 100%;
  min-height: 22rem;
  border: 0;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.policy-popup-card {
  position: fixed;
  left: 50%;
  bottom: var(--space-md);
  z-index: 40;
  width: min(92%, 36rem);
  display: none;
  grid-template-columns: 1fr auto;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-md);
  border: 0.0625rem solid var(--color-line);
  border-radius: var(--radius-lg);
  background: rgba(249, 245, 240, 0.96);
  box-shadow: var(--shadow-soft);
  transform: translateX(-50%);
}

.policy-popup-card.is-visible {
  display: grid;
}

.policy-popup-card p {
  margin: 0;
  color: var(--color-muted);
}

.policy-popup-card button {
  min-height: 2.6rem;
  border: 0;
  border-radius: 999rem;
  padding: 0 var(--space-md);
  background: var(--color-ink);
  color: var(--color-secondary);
  cursor: pointer;
}

.footer-quiet-grid {
  width: min(92%, 72rem);
  margin: var(--space-xl) auto var(--space-md);
  padding: var(--space-lg) 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-md);
  border-top: 0.0625rem solid var(--color-line);
  color: var(--color-muted);
}

.footer-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-md);
  justify-content: end;
}

.legal-document-stack {
  display: grid;
  gap: var(--space-md);
}

.date {
  font-weight: 700;
  color: var(--color-ink);
}

.thank-you-panel,
.not-found-panel {
  width: min(92%, 48rem);
  margin: 0 auto;
  padding: clamp(6rem, 14vw, 10rem) 0;
  display: grid;
  gap: var(--space-md);
  text-align: center;
}

@media (max-width: 63.9375rem) {
  :root {
    --hero-height: clamp(27rem, 68svh, 38rem);
    --section-image-height: clamp(14rem, 48vw, 22rem);
    --card-image-height: clamp(13rem, 42vw, 18rem);
    --gallery-image-height: clamp(14rem, 46vw, 21rem);
  }


  .primary-route-list {
    display: none;
  }

  .menu-pulse-toggle {
    display: grid;
  }

  .section-heading-grid,
  .image-split-frame,
  .contact-layout-grid,
  .footer-quiet-grid {
    grid-template-columns: 1fr;
  }

  .footer-link-row {
    justify-content: start;
  }
}

@media (max-width: 48rem) {
  :root {
    --hero-height: clamp(25rem, 74svh, 34rem);
    --section-image-height: clamp(13rem, 62vw, 19rem);
    --card-image-height: clamp(13rem, 64vw, 18rem);
    --gallery-image-height: clamp(13rem, 62vw, 18rem);
  }

  .motion-card-grid,
  .method-orbit-list {
    grid-template-columns: 1fr;
  }

  .gallery-offset-grid {
    grid-template-columns: 1fr;
  }

  .timeline-time-block {
    grid-template-columns: 1fr;
  }

  .policy-popup-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 24rem) {
  :root {
    --hero-height: 28rem;
    --section-image-height: 12.5rem;
    --card-image-height: 12.5rem;
    --gallery-image-height: 12.5rem;
  }

  .wordmark-text-lockup {
    font-size: 1.2rem;
    padding-inline: var(--space-sm);
  }

  .full-bleed-hero {
    min-height: var(--hero-height);
  }

  .solid-action-link,
  .ghost-action-link,
  .submit-motion-button {
    width: 100%;
  }
}
