.hotel-consent, .hotel-consent * { box-sizing: border-box; }
.hotel-consent[hidden], .hotel-consent-embed[hidden], iframe[data-consent-src][hidden] { display: none !important; }
.hotel-consent {
  position: fixed; z-index: 2147483000; left: max(16px, env(safe-area-inset-left));
  bottom: max(16px, env(safe-area-inset-bottom)); width: min(440px, calc(100vw - 32px));
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px - env(safe-area-inset-bottom));
  overflow-y: auto; overscroll-behavior: contain; padding: 16px; border: 1px solid #d8dfdc;
  border-radius: 12px; background: #fff; color: #24342e;
  box-shadow: 0 8px 40px rgb(15 35 27 / 22%); font: 400 14px/1.4 system-ui, -apple-system, sans-serif;
  text-align: left;
}
.hotel-consent .hotel-consent-title { margin: 0 0 6px; color: inherit; font: 650 17px/1.25 system-ui, -apple-system, sans-serif; }
.hotel-consent p { margin: 0 0 6px; }
.hotel-consent a { color: #075e52; text-decoration: underline; text-underline-offset: 3px; }
.hotel-consent .hotel-consent-hint { color: #52635c; font-size: 12px; }
.hotel-consent-status:empty { display: none; }
.hotel-consent .hotel-consent-status { color: #8a2828; font-size: 14px; }
.hotel-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; background: #fff; }
.hotel-consent-button {
  appearance: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 9px 12px; border: 1px solid #45665b; border-radius: 9px;
  font: 600 13px/1.35 system-ui, -apple-system, sans-serif; text-align: center; white-space: normal;
  touch-action: manipulation; margin: 0;
}
.hotel-consent-primary { background: #146353; color: #fff; border-color: #146353; }
.hotel-consent-primary:hover { background: #0b5042; }
.hotel-consent-secondary { background: #fff; color: #2a4940; }
.hotel-consent-secondary:hover { background: #f0f6f3; }
.hotel-consent-button:disabled { opacity: .55; cursor: not-allowed; }
.hotel-consent-button:focus-visible, .hotel-consent a:focus-visible, .hotel-consent-settings:focus-visible,
.hotel-consent-title:focus-visible { outline: 3px solid #ce8a19; outline-offset: 3px; }
.hotel-consent-settings {
  appearance: none; background: transparent; border: 0; border-radius: 3px; color: inherit;
  cursor: pointer; font: inherit; text-decoration: underline; text-underline-offset: 3px;
  padding: 12px 8px; min-height: 44px; margin: 8px 0;
}
.hotel-consent-settings-fallback { display: block; margin: 16px auto; color: #24342e; background: #fff; }
.hotel-consent-embed { padding: 24px; color: #344e44; background: #f2f6f4; border: 1px solid #d8dfdc; border-radius: 12px; text-align: center; }
.hotel-consent-embed p { margin: 0 auto 14px; max-width: 550px; font: 400 15px/1.5 system-ui, sans-serif; }
.hotel-consent-embed .hotel-consent-button { margin: 5px; }
@media (max-width: 480px) {
  .hotel-consent { left: max(10px, env(safe-area-inset-left)); right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); width: auto; padding: 14px; border-radius: 12px; font-size: 14px; }
  .hotel-consent-actions { position: sticky; bottom: -14px; margin: 0 -14px -14px; padding: 8px 14px 14px; }
  .hotel-consent-actions .hotel-consent-button { flex: 1 1 0; min-width: 0; padding: 9px 8px; }
}
@media (prefers-reduced-motion: reduce) { .hotel-consent *, .hotel-consent-embed * { scroll-behavior: auto; } }
