/* Mobile-first refinement: a calm single-column flow with deliberate horizontal rails. */
@media (max-width: 980px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden !important; }
  body { font-size: 16px; }
  :root { --section-space: 56px; }

  .header { min-height: 68px; }
  .header .nav { min-height: 68px; padding-inline: 18px; }
  .header .brand img { width: 150px; height: auto; }
  .header .nav-cta { display: none; }
  .header .lang { margin-left: auto; }

  main > section:not(.hero),
  main > .section:not(.hero) {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: var(--section-space) 0 !important;
    scroll-snap-align: none !important;
  }

  main > section:not(.hero) > .wrap,
  main > .section:not(.hero) > .wrap,
  #venues .venue-dual-wrap,
  #package-section .package-shell,
  #journey-section .journey-shell,
  #proposal .proposal-shell,
  #faq .faq-shell {
    width: min(calc(100% - 32px), 680px) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  main .eyebrow,
  main > .section .eyebrow { font-size: 12px !important; line-height: 1.25 !important; letter-spacing: .1em !important; }
  main > .section h2 { font-size: clamp(30px, 8.4vw, 46px) !important; line-height: 1.08 !important; }
  main > .section p { font-size: 15px !important; line-height: 1.6 !important; }
  main > .section label,
  main > .section small,
  main > .section button,
  main > .section .btn { font-size: max(12px, .78rem) !important; }

  .section-head,
  .package-head,
  .journey-head,
  .faq-head,
  .proposal-head { margin-bottom: 24px !important; }

  #introduce-insight-section .introduce-insight-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  #introduce-insight-section .introduce-insight-content { order: 1; }
  #introduce-insight-section .introduce-insight-visual { order: 2; }
  #introduce-insight-section .introduce-insight-main-image { min-height: 300px; }
  #introduce-insight-section .introduce-insight-caption { width: min(86%, 360px) !important; }

  #finder-section .section-head { display: block !important; }
  #finder-section .section-head > * + * { margin-top: 10px; }
  #finder-section .finder-intro { margin-bottom: 18px !important; }
  #finder-section .finder-intro-steps { grid-template-columns: 1fr !important; gap: 10px !important; }
  #finder-section .finder { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  #finder-section .finder .field:last-of-type,
  #finder-section .finder .helper,
  #finder-section .finder button[type="submit"] { grid-column: 1 / -1 !important; }
  #finder-section .finder input,
  #finder-section .finder select,
  #finder-section .finder button { min-height: 48px !important; }
  #finder-section .finder-result-card { grid-template-columns: 1fr !important; }
  #finder-section .finder-result-media { min-height: 220px !important; }

  #venues.venue-dual-section { padding-inline: 0 !important; }
  #venues .venue-dual-tabs { width: 100% !important; overflow-x: auto !important; gap: 8px !important; scroll-snap-type: x proximity; scrollbar-width: none; }
  #venues .venue-dual-tabs::-webkit-scrollbar { display: none; }
  #venues .venue-dual-tabs button { flex: 0 0 154px !important; min-height: 54px !important; scroll-snap-align: start; }
  #venues .venue-room-viewport { width: 100% !important; min-height: 0 !important; height: auto !important; }
  #venues .venue-room.active { display: grid !important; grid-template-columns: 1fr !important; grid-template-areas: "gallery" "content" !important; }
  #venues .venue-gallery { grid-area: gallery !important; min-height: 260px !important; }
  #venues .venue-room-content { grid-area: content !important; padding: 28px 22px 24px !important; }
  #venues .venue-meta-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  #venues .venue-actions-three { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  #venues .venue-actions-three a,
  #venues .venue-actions-three button { min-height: 46px !important; padding: 8px 5px !important; line-height: 1.2 !important; }

  #real-wedding-section .real-wedding-overview { grid-template-columns: 1fr !important; gap: 24px !important; }
  #real-wedding-section .real-wedding-copy { text-align: center !important; align-items: center !important; }
  #real-wedding-section .real-wedding-filmstrip { width: 100% !important; min-height: 410px !important; }

  #package-section .package-grid { display: flex !important; grid-template-columns: none !important; gap: 14px !important; width: calc(100% + 16px) !important; margin-right: -16px !important; overflow-x: auto !important; padding: 2px 16px 14px 0 !important; scroll-snap-type: x proximity; scrollbar-width: none; }
  #package-section .package-grid::-webkit-scrollbar { display: none; }
  #package-section .package-card,
  #package-section .package-card.is-featured { flex: 0 0 min(78vw, 370px) !important; min-height: 520px !important; scroll-snap-align: start; }
  #package-section .package-cta { min-height: 52px !important; }

  #journey-section .journey-steps { grid-template-columns: 1fr !important; gap: 14px !important; }
  #journey-section .journey-step { min-height: 0 !important; }
  #faq .faq-layout,
  #proposal .proposal-grid,
  #proposal .proposal-form-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  #proposal .proposal-copy { margin-bottom: 0 !important; }
  #proposal input,
  #proposal select,
  #proposal textarea { min-height: 48px !important; }
  #proposal textarea { min-height: 132px !important; }

  .contact-dock { right: 12px !important; bottom: 16px !important; }
}

@media (max-width: 640px) {
  :root { --section-space: 46px; }
  .header .nav { padding-inline: 14px; }
  .header .brand img { width: 132px; }
  main > section:not(.hero) > .wrap,
  main > .section:not(.hero) > .wrap,
  #venues .venue-dual-wrap,
  #package-section .package-shell,
  #journey-section .journey-shell,
  #proposal .proposal-shell,
  #faq .faq-shell { width: min(calc(100% - 28px), 560px) !important; }

  main > .section h2 { font-size: clamp(29px, 9vw, 38px) !important; }
  main > .section p { font-size: 14px !important; }
  #finder-section .finder { grid-template-columns: 1fr !important; }
  #finder-section .finder .field { grid-column: auto !important; }
  #finder-section .finder .helper,
  #finder-section .finder button[type="submit"] { grid-column: auto !important; }
  #venues .venue-gallery { min-height: 225px !important; }
  #venues .venue-room-content { padding: 24px 16px 20px !important; }
  #venues .venue-meta-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  #venues .venue-meta-grid > * { padding: 10px 6px !important; }
  #venues .venue-actions-three { gap: 6px !important; }
  #venues .venue-actions-three a,
  #venues .venue-actions-three button { font-size: 11px !important; }
  #real-wedding-section .real-wedding-filmstrip { min-height: 360px !important; }
  #package-section .package-card,
  #package-section .package-card.is-featured { flex-basis: 80vw !important; min-height: 500px !important; }
}
/* Final mobile scale locks for hero, insight, venues and package rail. */
@media (max-width: 640px) {
  body.luxury-refresh main#main #top .hero-title,
  body.luxury-refresh main#main #top .hero-title span {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(29px, 8vw, 34px) !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  body.luxury-refresh main#main #top .hero-content { padding: 84px 5px 0px !important; }
  body.luxury-refresh main#main #top .hero-content > p { max-width: 31ch !important; font-size: 14px !important; }

  #introduce-insight-section .introduce-insight-main-image { min-height: 0 !important; }
  #introduce-insight-section .introduce-insight-caption {
    left: 0 !important;
    bottom: 0 !important;
    width: calc(100% - 112px) !important;
    min-height: 0 !important;
    padding: 16px 14px !important;
  }
  #introduce-insight-section .introduce-insight-caption span { margin-bottom: 6px !important; font-size: 10px !important; }
  #introduce-insight-section .introduce-insight-caption strong { font-size: 13px !important; line-height: 1.2 !important; }
  #introduce-insight-section .introduce-insight-secondary-image {
        right: 0px !important;
        bottom: 35px !important;
        width: 140px !important;
        height: 150px !important;
  }

  #venues .venue-room-copy h3 { font-size: 30px !important; line-height: 1.05 !important; }
  #venues .venue-room-emotion { font-size: 17px !important; line-height: 1.28 !important; }
  #venues .venue-room-caption { font-size: 13px !important; line-height: 1.5 !important; }
  #venues .venue-room-panel { margin: 0 12px 16px !important; padding: 18px 14px !important; }
  #venues .venue-info-item span,
  #venues .venue-info-copy span { font-size: 10px !important; line-height: 1.2 !important; }
  #venues .venue-info-item strong { font-size: 16px !important; line-height: 1.18 !important; }
  #venues .venue-info-copy p { font-size: 13px !important; line-height: 1.45 !important; }
  #venues .venue-actions-three a,
  #venues .venue-actions-three button { font-size: 12px !important; font-weight: 800 !important; }

  body.luxury-refresh main#main #package-section .package-grid {
    width: calc(100% + 14px) !important;
    margin-right: -14px !important;
    padding-right: 14px !important;
    gap: 16px !important;
  }
  body.luxury-refresh main#main #package-section .package-card,
  body.luxury-refresh main#main #package-section .package-card.is-featured {
    flex: 0 0 calc(100vw - 50px) !important;
    min-height: 610px !important;
    padding: 32px 28px !important;
  }
  body.luxury-refresh main#main #package-section .package-card h3 { font-size: 22px !important; }
  body.luxury-refresh main#main #package-section .package-description,
  body.luxury-refresh main#main #package-section .package-benefits li { font-size: 15px !important; line-height: 1.55 !important; }
}
/* Venue actions stack as full-width controls on mobile. */
@media (max-width: 640px) {
  body.luxury-refresh main#main #venues .venue-actions-three {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
  }
  body.luxury-refresh main#main #venues .venue-actions-three > * {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    text-align: center !important;
  }
}

/* Flexible section rhythm: each section follows its content with 42px vertical padding. */
main#main > section:not(.hero),
main#main > .section:not(.hero),
main#main > #proposal.section.navy.wedding-form-section {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-block: 42px !important;
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

/* Wider desktop frame: expand the shared 1180px content system by 15%. */
@media (min-width: 981px) {
  body.luxury-refresh {
    --wrap: min(1357px, calc(100% - 56px));
  }

  .luxury-refresh .nav {
    width: min(1357px, calc(100% - 56px)) !important;
    max-width: 1357px !important;
  }

  body.luxury-refresh main#main > section:not(.hero) > .wrap,
  body.luxury-refresh main#main > .section:not(.hero) > .wrap,
  body.luxury-refresh main#main > #introduce-insight-section > .insight-shell,
  body.luxury-refresh main#main > #venues > .venue-dual-wrap,
  body.luxury-refresh main#main > #real-wedding-section > .wrap,
  body.luxury-refresh main#main > #package-section > .package-shell,
  body.luxury-refresh main#main > #journey-section > .journey-shell,
  body.luxury-refresh main#main > #faq > .faq-shell,
  body.luxury-refresh main#main > #proposal > .wedding-form-shell {
    width: min(1357px, calc(100% - 56px)) !important;
    max-width: 1357px !important;
  }
}

/* Refined desktop header: brand left, navigation and actions right. */
@media (min-width: 981px) {
  .luxury-refresh .nav {
    display: flex !important;
    grid-template-columns: none !important;
    justify-content: flex-start !important;
    gap: 24px !important;
  }

  .luxury-refresh .brand {
    margin-right: auto !important;
  }

  .luxury-refresh .nav-links {
    display: flex !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
    gap: clamp(18px, 2vw, 32px) !important;
  }

  .luxury-refresh .nav-links a {
    font-style: normal !important;
    font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
    font-weight: 650 !important;
  }

  .luxury-refresh .nav-cta .btn,
  .luxury-refresh .header .btn-primary {
    font-style: normal !important;
    font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
    font-weight: 700 !important;
  }

  .luxury-refresh .lang button,
  .luxury-refresh .lang-menu a {
    font-style: normal !important;
    font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
    font-weight: 650 !important;
  }
}

/* Keep all interface text upright and crisp, including legacy em/i markup. */
body.luxury-refresh,
body.luxury-refresh * {
  font-style: normal !important;
}
