/* Focused responsive and accessibility fixes, October 2026. */
html { scroll-behavior: auto; }
section[id] { scroll-margin-top: 190px; }
[data-reveal], [data-reveal].is-visible { opacity: 1; transform: none; }
.pricing-request { padding: 24px; border: 1px solid #cbdce7; border-radius: 20px; background: #f5fafc; color: #163249; }
.pricing-request h3 { margin: 0 0 12px; font-size: 1.5rem; }
.pricing-request p { margin: 0 0 16px; line-height: 1.6; }
.pricing-request .button { width: fit-content; }
#top { min-width: 0; }
.comparison-section { width: min(100%, var(--max-width)); min-width: 0; margin: 0 auto; padding: 28px; border: 1px solid #d8e4ea; border-radius: 24px; background: #fff; color: #163249; }
.comparison-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; border-radius: 12px; }
.comparison-scroll:focus-visible { outline: 3px solid #1472b1; outline-offset: 3px; }
.comparison-table { width: 100%; border-collapse: collapse; text-align: left; line-height: 1.5; }
.comparison-table th, .comparison-table td { padding: 14px 12px; border-bottom: 1px solid #dce6ed; vertical-align: top; }
.comparison-table thead { background: #eff6fa; }
.comparison-table tbody th { min-width: 150px; }
.comparison-table a { color: #075e9c; text-decoration: underline; text-underline-offset: 3px; }
.comparison-table tr:last-child th, .comparison-table tr:last-child td { border-bottom: 0; }
.contact-section h2 { max-width: 24ch; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; }
body:not(.admin-body) .contact-form label { color: #18364a; }
body:not(.admin-body) .contact-form input::placeholder,
body:not(.admin-body) .contact-form textarea::placeholder { color: #657884; opacity: 1; }
body:not(.admin-body) .contact-form button[type="submit"]:disabled { opacity: .75; cursor: wait; }
body:not(.admin-body) .contact-form [data-form-status] { padding: 12px 14px; border: 1px solid #bed1df; border-radius: 12px; line-height: 1.6; color: #214e6d; background: #eef6fc; }
body:not(.admin-body) .contact-form [data-form-status]:empty { display: none; }
body:not(.admin-body) .contact-form [data-form-status][data-state="success"] { color: #15592e; background: #edf8f1; border-color: #a8cfb5; }
body:not(.admin-body) .contact-form [data-form-status][data-state="unconfirmed"] { color: #744b0c; background: #fff6df; border-color: #dbbf83; }
body:not(.admin-body) .contact-form [data-form-status][data-state="error"] { color: #9e2424; background: #fff0ef; border-color: #e1aaa5; }
.room-faq-card p { overflow-wrap: anywhere; }
@media (max-width: 720px) {
  body:not(.admin-body):has(main#top > .hero) .hero { width: 100%; max-width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr); padding: 20px 18px 28px; background: #f5faff; }
  body:not(.admin-body):has(main#top > .hero) .hero-copy { width: 100%; min-width: 0; max-width: 100%; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-text,
  body:not(.admin-body):has(main#top > .hero) .hero .hero-actions,
  body:not(.admin-body):has(main#top > .hero) .hero .hero-stats { width: 100%; min-width: 0; max-width: 100%; }
  body:not(.admin-body):has(main#top > .hero) .hero-visual { width: 100%; min-width: 0; min-height: 240px; margin: 8px 0 0; }
  body:not(.admin-body):has(main#top > .hero) .hero-photo { width: 100%; min-height: 240px; height: 260px; object-fit: cover; }
  body:not(.admin-body):has(main#top > .hero) .hero-stats div::before,
  body:not(.admin-body):has(main#top > .hero) .hero-stats div::after { display: none; }
  section[id] { scroll-margin-top: 88px; }
  body:not(.admin-body):has(main#top > .hero) .hero { gap: 18px; padding-top: 12px; }
  body:not(.admin-body):has(main#top > .hero) .hero h1 { margin-top: 8px; font-size: clamp(2rem, 9vw, 2.75rem); line-height: 1.08; letter-spacing: -0.035em; overflow-wrap: normal; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-text { margin: 12px 0 16px; font-size: 1rem; line-height: 1.5; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-actions { margin-top: 16px; gap: 10px; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-actions .button { min-height: 48px; padding: 12px 16px; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-stats > div { display: block; min-width: 0; padding: 10px 6px; border: 1px solid #dce7ed; border-radius: 10px; background: #f7fbfd; box-shadow: none; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-stats dt { display: block; width: auto; height: auto; min-width: 0; min-height: 0; margin: 0 0 5px; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: .72rem; line-height: 1.3; font-weight: 800; }
  body:not(.admin-body):has(main#top > .hero) .hero .hero-stats dd { margin: 0; font-size: .7rem; line-height: 1.35; }
  body:not(.admin-body):has(main#top > .hero) .contact-section { gap: 18px; padding: 20px 16px; }
  body:not(.admin-body):has(main#top > .hero) .contact-section h2, .room-contact h2 { font-size: 1.8rem; line-height: 1.15; }
  body:not(.admin-body):has(main#top > .hero) .contact-section .hero-text, .contact-section p { font-size: .95rem; line-height: 1.5; }
  body:not(.admin-body):has(main#top > .hero) .contact-section .hero-actions { gap: 8px; margin-top: 16px; }
  body:not(.admin-body):has(main#top > .hero) .contact-section .hero-actions .button { min-height: 44px; padding: 10px 14px; }
  .comparison-section { padding: 20px 14px; }
  .comparison-section h2 { font-size: 1.65rem; }
  .comparison-table { min-width: 610px; font-size: .88rem; }
  .comparison-table th, .comparison-table td { padding: 12px 9px; }
  .pricing-request { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Optional analytics controls and factual data information. */
body:not(.admin-body) .privacy-footer { width: min(100% - 32px, 1100px); margin: 24px auto 100px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 24px; font-size: .875rem; color: #294c63; }
body:not(.admin-body) .privacy-footer a,
body:not(.admin-body) .privacy-footer button { color: #075e9c; font: inherit; text-decoration: underline; text-underline-offset: 3px; }
body:not(.admin-body) .privacy-footer button { padding: 10px 4px; border: 0; background: transparent; cursor: pointer; }
body:not(.admin-body) .inquiry-data-note { margin: 8px 0 0; font-size: .85rem; line-height: 1.6; color: #4a6475; }
body:not(.admin-body) .inquiry-data-note a { color: #075e9c; text-decoration: underline; }
body:not(.admin-body) .consent-banner { position: fixed; z-index: 1000; left: 50%; right: auto; bottom: 18px; transform: translateX(-50%); display: grid; gap: 16px; width: min(760px, calc(100% - 32px)); max-height: calc(100dvh - 120px); overflow-y: auto; margin: 0; padding: 22px; border: 1px solid #abc2d0; border-radius: 18px; background: #fff; color: #18364a; box-shadow: 0 10px 50px #12324b33; }
body:not(.admin-body) .consent-banner[hidden] { display: none; }
body:not(.admin-body) .consent-banner h2 { margin: 0 0 8px; font-family: Manrope, Arial, sans-serif; font-size: 1.1rem; font-weight: 800; line-height: 1.3; letter-spacing: normal; }
body:not(.admin-body) .consent-banner p { margin: 0; font-size: .9rem; line-height: 1.5; color: #3a566a; }
body:not(.admin-body) .consent-banner a { color: #075e9c; text-decoration: underline; }
body:not(.admin-body) .consent-actions { display: flex; flex-wrap: wrap; gap: 10px; }
body:not(.admin-body) .consent-actions button,
body:not(.admin-body) .privacy-settings { min-height: 44px; padding: 10px 18px; border: 1px solid #126ca7; border-radius: 10px; background: #fff; color: #075e9c; font: 700 .9rem Manrope, Arial, sans-serif; cursor: pointer; }
body:not(.admin-body) .consent-actions button { flex: 1 1 180px; }
body:not(.admin-body) .consent-actions button:hover,
body:not(.admin-body) .privacy-settings:hover { background: #edf6fc; }
body:not(.admin-body) .consent-actions button:focus-visible,
body:not(.admin-body) .privacy-settings:focus-visible,
body:not(.admin-body) .privacy-footer button:focus-visible { outline: 3px solid #126ca7; outline-offset: 3px; }
body:not(.admin-body) .privacy-document { width: min(100% - 32px, 820px); min-width: 0; margin: 36px auto; padding: 28px; border: 1px solid #dce6ed; border-radius: 20px; background: #fff; color: #18364a; line-height: 1.7; overflow-wrap: anywhere; }
body:not(.admin-body) .privacy-document h1 { font-size: clamp(1.8rem, 6vw, 2.5rem); line-height: 1.15; margin: 24px 0 16px; }
body:not(.admin-body) .privacy-document h2 { font-size: 1.25rem; line-height: 1.3; margin: 0 0 10px; }
body:not(.admin-body) .privacy-document section { margin-top: 28px; padding: 0; border: 0; background: transparent; box-shadow: none; }
body:not(.admin-body) .privacy-document a { color: #075e9c; text-decoration: underline; }
body:not(.admin-body) .privacy-languages { display: flex; flex-wrap: wrap; gap: 16px; padding: 10px 0; }
@media (max-width: 720px) {
  body:not(.admin-body) .consent-banner { bottom: 86px; padding: 16px; }
  body:not(.admin-body) .consent-actions button { flex-basis: 120px; padding: 10px; font-size: .82rem; }
  body:not(.admin-body) .privacy-document { margin-top: 16px; padding: 20px 16px; }
}
