/* Hotel Demo CRM — Frontend Styles */
:root {
    --ast-gold: #c5a059;
    --ast-dark: #151515;
    --ast-text: #1f1f1f;
    --ast-muted: #6f7782;
    --ast-border: rgba(20, 20, 20, 0.10);
    --ast-bg: #ffffff;
    --ast-radius: 18px;
    --ast-shadow: 0 18px 60px rgba(0, 0, 0, 0.08);
    --ast-font: 'DM Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Search Form Wrapper */
.astoria-sf {
    background: var(--ast-bg);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 22px;
    box-shadow: var(--ast-shadow);
    padding: 24px;
    margin-bottom: 30px;
    font-family: var(--ast-font); /* Використовуємо єдиний шрифт */
    box-sizing: border-box;
}

/* Скидаємо box-sizing для всіх елементів всередині форми */
.astoria-sf * {
    box-sizing: border-box;
}

.astoria-sf__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 0.8fr 0.8fr 220px;
    gap: 16px;
    align-items: end; /* Вирівнюємо по низу, щоб кнопка була врівень з інпутами */
}

.astoria-sf__field {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 18px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: border-color 0.3s ease;
}

/* Ефект при наведенні на все поле */
.astoria-sf__field:focus-within {
    border-color: var(--ast-gold);
    box-shadow: 0 4px 15px rgba(197, 160, 89, 0.1);
}

.astoria-sf__label {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 800;
    color: #8a8f98;
    margin: 0;
    line-height: 1;
}

.astoria-sf__input {
    width: 100%;
    height: 38px;
    border: none !important; /* Прибираємо внутрішній бордер, бо є обведення навколо field */
    padding: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--ast-text);
    background: transparent !important; /* Прозорий фон */
    outline: none !important;
    box-shadow: none !important;
    font-family: inherit;
}

/* Прибираємо стандартний вигляд select/input */
.astoria-sf__input {
    appearance: none;
    -webkit-appearance: none;
}

.astoria-sf__btn {
    height: 64px; /* Трохи зменшив висоту для пропорційності */
    border: none;
    border-radius: 18px;
    background: linear-gradient(180deg, var(--ast-dark) 0%, #000 100%) !important;
    color: #fff !important;
    font-family: var(--ast-font);
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.astoria-sf__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 40px rgba(197, 160, 89, 0.3); /* Золоте свічення */
    background: linear-gradient(180deg, #1f1f1f 0%, var(--ast-dark) 100%) !important;
}

.astoria-sf__btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.astoria-sf__ages {
    margin-top: 20px;
    padding: 16px;
    border-radius: 18px;
    border: 1px dashed rgba(0, 0, 0, 0.15); /* Пунктир виглядає краще для дод. налаштувань */
    background: #fdfdfd;
}

.astoria-sf__ages-inputs {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.astoria-sf__ages-inputs input {
    width: 70px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    padding: 8px;
    font-weight: 700;
    text-align: center;
    font-size: 16px;
    outline: none;
    transition: border-color 0.2s;
}

.astoria-sf__ages-inputs input:focus {
    border-color: var(--ast-gold);
}

.astoria-sf__hint {
    margin-top: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid rgba(197, 160, 89, 0.2);
    background: rgba(197, 160, 89, 0.05); /* Легкий золотий відтінок для підказки */
    color: var(--ast-text);
    font-size: 13px;
    font-weight: 600;
}

/* Loader */
.astoria-loader {
    text-align: center;
    padding: 40px 20px;
}

.astoria-loader span {
    display: inline-block;
    width: 10px;
    height: 10px;
    background: var(--ast-gold);
    border-radius: 50%;
    margin: 0 5px;
    animation: astoria-bounce 0.6s infinite alternate cubic-bezier(0.2, 0.8, 0.2, 1);
}

.astoria-loader span:nth-child(2) { animation-delay: 0.15s; }
.astoria-loader span:nth-child(3) { animation-delay: 0.3s; }

@keyframes astoria-bounce {
    to { transform: translateY(-10px); opacity: 0.3; }
}

/* Room cards */
.astoria-room-card {
    background: #fff;
    border-radius: 22px;
    overflow: hidden;
    display: flex;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    margin-bottom: 24px;
}

.astoria-room-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ast-shadow);
    border-color: rgba(197, 160, 89, 0.3);
}

/* Language switcher */
.astoria-lang-switcher {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    background: #f9f9f9;
    padding: 4px;
    border-radius: 12px;
}

.astoria-lang-link {
    text-decoration: none;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--ast-muted);
    border-radius: 8px;
    transition: all 0.2s;
}

.astoria-lang-link:hover,
.astoria-lang-link.active {
    background: #fff;
    color: var(--ast-text);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Responsive */
@media (max-width: 1024px) {
    .astoria-sf__grid {
        grid-template-columns: 1fr 1fr; /* По 2 в ряд */
    }
    .astoria-sf__btn {
        grid-column: 1 / -1; /* На всю ширину */
        height: 54px;
    }
}

@media (max-width: 560px) {
    .astoria-sf {
        padding: 16px;
        border-radius: 20px;
    }
    .astoria-sf__grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .astoria-sf__btn {
        height: 56px;
        font-size: 15px;
    }
    .astoria-room-card {
        flex-direction: column;
    }
}

/* Family Resort Edition polish */
.astoria-search-widget{--ast-sea:#48a6b3;--ast-sun:#f5b85b;--ast-ink:#12313d;}
.astoria-sf{border-radius:24px!important;border:1px solid rgba(18,49,61,.10)!important;box-shadow:0 16px 46px rgba(18,49,61,.08)!important;background:#fff!important;}
.astoria-sf__btn{background:linear-gradient(135deg,var(--ast-sea),#2e8390)!important;border-radius:18px!important;font-weight:900!important;}
.astoria-sf__input{border-radius:16px!important;border-color:rgba(18,49,61,.14)!important;}
.astoria-sf__label{color:var(--ast-ink)!important;font-weight:900!important;}
.astoria-sf__hint{color:#6d7d83!important;}
.astoria-result-card,.astoria-booking-card{border-radius:24px!important;border-color:rgba(18,49,61,.10)!important;box-shadow:0 14px 38px rgba(18,49,61,.07)!important;}

/* ============================================================
   Hotel Demo CRM — Family Resort booking form v2.3
   ============================================================ */
:root {
    --ast-gold: #f4a742;
    --ast-sea: #2f9eaa;
    --ast-sea-dark: #16717d;
    --ast-dark: #17333c;
    --ast-text: #17333c;
    --ast-muted: #6e7c82;
    --ast-border: rgba(23,51,60,.11);
    --ast-bg: #ffffff;
    --ast-cream: #fff8eb;
    --ast-radius: 22px;
    --ast-shadow: 0 20px 60px rgba(23,51,60,.13);
}

.astoria-sf {
    background: linear-gradient(135deg,#ffffff 0%, #fff8eb 100%);
    border: 1px solid rgba(23,51,60,.10);
    border-radius: 30px;
    box-shadow: 0 28px 90px rgba(23,51,60,.16);
    padding: 28px;
}

.astoria-sf__field {
    border-radius: 20px;
    border-color: rgba(23,51,60,.10);
    background: rgba(255,255,255,.92);
}

.astoria-sf__field:focus-within {
    border-color: var(--ast-sea);
    box-shadow: 0 0 0 4px rgba(47,158,170,.14);
}

.astoria-sf__label { color: var(--ast-sea-dark); }

.astoria-sf__btn {
    border-radius: 20px;
    background: linear-gradient(135deg,var(--ast-sea),var(--ast-sea-dark)) !important;
    box-shadow: 0 14px 36px rgba(47,158,170,.28);
}
.astoria-sf__btn:hover {
    background: linear-gradient(135deg,var(--ast-sea-dark),#0f5964) !important;
    box-shadow: 0 18px 42px rgba(47,158,170,.34);
}

.astoria-sf__hint {
    background: rgba(244,167,66,.12);
    border-color: rgba(244,167,66,.22);
    color: var(--ast-dark);
}

.astoria-room-card {
    border-radius: 28px;
    border-color: rgba(23,51,60,.10);
    box-shadow: 0 18px 55px rgba(23,51,60,.10);
}
.astoria-room-card:hover {
    border-color: rgba(47,158,170,.24);
    box-shadow: 0 28px 80px rgba(23,51,60,.16);
}

.astoria-select-room,
.astoria-room-card .button,
.astoria-booking-submit,
.astoria-modal button[type="submit"] {
    background: linear-gradient(135deg,var(--ast-sea),var(--ast-sea-dark)) !important;
    border-radius: 999px !important;
    color: #fff !important;
    border: 0 !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 30px rgba(47,158,170,.26) !important;
}


/* Hotel Demo CRM v2.4 — better resort booking UX */
.astoria-sf{
  background:linear-gradient(135deg,#fff 0%,#fff8eb 100%)!important;
  border-radius:32px!important;
  padding:26px!important;
  border:1px solid rgba(23,51,60,.10)!important;
  box-shadow:0 28px 80px rgba(23,51,60,.14)!important;
}
.astoria-sf__grid{gap:14px!important;}
.astoria-sf__field{border-radius:22px!important;background:rgba(255,255,255,.94)!important;}
.astoria-results-list{gap:22px!important;}
.astoria-room-card{
  border-radius:30px!important;
  border:1px solid rgba(23,51,60,.10)!important;
  background:#fff!important;
  box-shadow:0 20px 55px rgba(23,51,60,.10)!important;
  overflow:hidden!important;
}
.astoria-booking-box{
  border-radius:30px!important;
  border-color:rgba(23,51,60,.10)!important;
  box-shadow:0 26px 70px rgba(23,51,60,.12)!important;
}
#astoria-booking-form input,
#astoria-booking-form textarea,
#astoria-booking-form select{
  min-height:48px;
  border-radius:16px!important;
  border:1px solid rgba(23,51,60,.14)!important;
  padding:10px 12px!important;
  box-shadow:none!important;
}
#astoria-booking-form textarea{min-height:110px;}
@media(max-width:760px){
  .astoria-sf{padding:18px!important;border-radius:26px!important;}
  .astoria-room-card{display:block!important;grid-template-columns:1fr!important;padding:14px!important;}
  .astoria-room-card > div:first-child{min-height:220px!important;margin-bottom:14px;}
  .astoria-booking-box form > div{grid-template-columns:1fr!important;}
}

/* Hotel Demo CRM v3.0.6 — public booking copy cleanup */
.astoria-booking-summary{
  align-items:stretch;
}
.astoria-booking-summary > div{
  min-width:0;
}
@media(max-width:760px){
  .astoria-booking-summary{
    grid-template-columns:1fr!important;
  }
  .astoria-booking-box{
    padding:16px!important;
  }
}

/* ============================================================
   Hotel Demo CRM v3.0.6 — Mobile & All Devices Optimization
   ============================================================ */
.astoria-search-widget,
.astoria-search-widget *{
  box-sizing:border-box;
}
.astoria-search-widget{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.astoria-sf,
.astoria-results-list,
.astoria-booking-box{
  max-width:100%;
}
.astoria-sf__input,
.astoria-sf__btn,
#astoria-booking-form input,
#astoria-booking-form select,
#astoria-booking-form textarea,
.astoria-select-room,
.astoria-btn{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.astoria-sf__input,
#astoria-booking-form input,
#astoria-booking-form select,
#astoria-booking-form textarea{
  font-size:16px!important; /* prevents iOS zoom */
}
.astoria-room-card img{
  max-width:100%;
  height:auto;
}
.astoria-booking-box [style*="grid-template-columns:repeat(2"],
#astoria-booking-form > div[style*="grid-template-columns:repeat(2"]{
  align-items:start;
}
.astoria-alert{
  word-break:break-word;
}

@media(max-width:1200px){
  .astoria-sf__grid{
    grid-template-columns:1fr 1fr 1fr 1fr!important;
  }
  .astoria-sf__btn{
    grid-column:1/-1!important;
    height:58px!important;
  }
}

@media(max-width:1024px){
  .astoria-sf{
    padding:22px!important;
    border-radius:28px!important;
  }
  .astoria-sf__grid{
    grid-template-columns:1fr 1fr!important;
  }
  .astoria-results-list .astoria-room-card{
    grid-template-columns:240px 1fr!important;
    gap:16px!important;
  }
  .astoria-results-list .astoria-room-card > div:first-child{
    min-height:220px!important;
  }
  .astoria-booking-summary{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:768px){
  .astoria-sf{
    padding:16px!important;
    border-radius:24px!important;
    box-shadow:0 18px 52px rgba(23,51,60,.12)!important;
  }
  .astoria-sf__grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .astoria-sf__field{
    padding:11px 14px!important;
    border-radius:18px!important;
  }
  .astoria-sf__label{
    font-size:10px!important;
    line-height:1.2!important;
  }
  .astoria-sf__input{
    height:42px!important;
  }
  .astoria-sf__btn{
    width:100%!important;
    min-height:56px!important;
    height:56px!important;
    border-radius:18px!important;
  }
  .astoria-sf__ages{
    padding:14px!important;
    border-radius:20px!important;
  }
  .astoria-sf__ages-inputs{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .astoria-sf__age-item{
    min-width:0!important;
    width:100%!important;
  }
  .astoria-sf__hint{
    display:flex!important;
    width:100%!important;
    justify-content:center!important;
    border-radius:16px!important;
    text-align:center!important;
  }
  .astoria-sf__policy{
    font-size:12px!important;
    border-radius:16px!important;
  }
  .astoria-results-list{
    gap:16px!important;
    margin-top:16px!important;
  }
  .astoria-results-list .astoria-room-card,
  .astoria-room-card{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:0!important;
    border-radius:24px!important;
    overflow:hidden!important;
    margin-bottom:16px!important;
  }
  .astoria-results-list .astoria-room-card > div:first-child,
  .astoria-room-card > div:first-child{
    min-height:220px!important;
    height:220px!important;
    margin:0!important;
    border-radius:0!important;
    flex-basis:auto!important;
    width:100%!important;
  }
  .astoria-results-list .astoria-room-card > div:nth-child(2),
  .astoria-room-card > div:nth-child(2){
    padding:16px!important;
    width:100%!important;
  }
  .astoria-room-card h3{
    font-size:22px!important;
  }
  .astoria-room-card [style*="display:flex;gap:10px;flex-wrap:wrap"]{
    gap:8px!important;
  }
  .astoria-room-card [style*="font-size:32px"]{
    font-size:28px!important;
  }
  .astoria-room-card [style*="display:flex;align-items:end"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    gap:14px!important;
  }
  .astoria-room-card .astoria-select-room,
  .astoria-room-card .astoria-btn{
    width:100%!important;
    min-height:48px!important;
  }
  .astoria-room-card [style*="display:flex;gap:10px;flex-wrap:wrap;"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
  }
  .astoria-booking-box{
    margin-top:16px!important;
    padding:16px!important;
    border-radius:24px!important;
  }
  .astoria-booking-box h3{
    font-size:24px!important;
  }
  .astoria-booking-summary{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .astoria-booking-summary > div{
    padding:15px!important;
    border-radius:18px!important;
  }
  #astoria-booking-form > div{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  #astoria-booking-form [style*="grid-column:1/-1"]{
    grid-column:auto!important;
  }
  #astoria-booking-form input,
  #astoria-booking-form select,
  #astoria-booking-form textarea{
    width:100%!important;
  }
  #astoria-booking-form textarea{
    min-height:104px!important;
  }
  .astoria-consent{
    border-radius:16px!important;
  }
  #astoria-booking-form button[type="submit"]{
    width:100%!important;
    min-height:52px!important;
    height:52px!important;
    border-radius:18px!important;
  }
}

@media(max-width:640px){
  .astoria-sf{
    padding:14px!important;
    border-radius:22px!important;
  }
  .astoria-sf__ages-inputs{
    grid-template-columns:1fr!important;
  }
  .astoria-results-list .astoria-room-card > div:first-child,
  .astoria-room-card > div:first-child{
    min-height:200px!important;
    height:200px!important;
  }
  .astoria-room-card h3{
    font-size:21px!important;
  }
  .astoria-room-card [style*="font-size:32px"]{
    font-size:26px!important;
  }
  .astoria-booking-box [style*="display:flex;align-items:center;justify-content:space-between"]{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .astoria-booking-back{
    width:100%!important;
  }
}

@media(max-width:480px){
  .astoria-sf__field{
    padding:10px 12px!important;
  }
  .astoria-sf__input{
    height:40px!important;
  }
  .astoria-results-list .astoria-room-card > div:first-child,
  .astoria-room-card > div:first-child{
    min-height:188px!important;
    height:188px!important;
  }
  .astoria-room-card [style*="padding:8px 12px"]{
    padding:7px 10px!important;
    font-size:12px!important;
  }
  .astoria-booking-box{
    padding:14px!important;
    border-radius:22px!important;
  }
  .astoria-booking-summary [style*="font-size:28px"],
  .astoria-booking-box [style*="font-size:28px"]{
    font-size:24px!important;
  }
}

@media (prefers-reduced-motion: reduce){
  .astoria-search-widget *,
  .astoria-search-widget *::before,
  .astoria-search-widget *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}


/* ============================================================
   Hotel Demo CRM v3.0.9 — mobile booking form overflow fix
   ============================================================ */
#astoria-booking-step,
.astoria-booking-box,
#astoria-booking-form{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow-x:hidden;
}
#astoria-booking-form *,
.astoria-booking-box *{
  box-sizing:border-box;
}
.astoria-consent{
  width:100%!important;
  max-width:100%!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  overflow:hidden!important;
}
#astoria-booking-form .astoria-consent input[type=checkbox],
.astoria-consent input[type=checkbox]{
  width:22px!important;
  min-width:22px!important;
  max-width:22px!important;
  height:22px!important;
  min-height:22px!important;
  max-height:22px!important;
  flex:0 0 22px!important;
  margin:2px 0 0!important;
  padding:0!important;
  border-radius:6px!important;
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
}
.astoria-consent span{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.astoria-booking-summary [style*="display:flex;justify-content:space-between"]{
  min-width:0;
}
.astoria-booking-summary [style*="display:flex;justify-content:space-between"] span,
.astoria-booking-summary [style*="display:flex;justify-content:space-between"] strong{
  min-width:0;
  overflow-wrap:break-word;
}
@media(max-width:768px){
  .astoria-search-widget{padding-inline:0!important;}
  .astoria-booking-box{
    margin-left:0!important;
    margin-right:0!important;
    padding:16px!important;
  }
  .astoria-booking-box h3{
    font-size:22px!important;
    line-height:1.15!important;
  }
  #astoria-booking-form label{
    font-size:15px!important;
    line-height:1.35!important;
  }
  .astoria-consent{
    padding:14px!important;
    border-radius:18px!important;
    font-size:13px!important;
    line-height:1.45!important;
  }
  #astoria-booking-form > div:last-child{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  #astoria-booking-form button[type="submit"]{
    width:100%!important;
    min-height:54px!important;
    white-space:normal!important;
  }
}
@media(max-width:420px){
  .astoria-booking-box{padding:14px!important;border-radius:22px!important;}
  .astoria-consent{font-size:12.5px!important;}
}


/* ============================================================
   Hotel Demo CRM v3.0.9 — all devices form/results polish
   ============================================================ */
.astoria-search-widget{container-type:inline-size;}
.astoria-sf{width:100%;}
.astoria-room-card,.astoria-booking-box{overflow:hidden;}
.astoria-booking-box{margin-bottom:28px!important;}
.astoria-booking-summary strong{white-space:normal;}
.astoria-results-list .astoria-room-card img{display:block;width:100%;height:100%;object-fit:cover;}
#astoria-booking-form input,#astoria-booking-form select,#astoria-booking-form textarea{
  border:1px solid rgba(23,51,60,.14)!important;
  border-radius:16px!important;
  padding:12px 14px!important;
  background:#fff!important;
  color:#17333c!important;
  outline:none!important;
}
#astoria-booking-form input:focus,#astoria-booking-form select:focus,#astoria-booking-form textarea:focus{
  border-color:#2f9eaa!important;
  box-shadow:0 0 0 4px rgba(47,158,170,.12)!important;
}
.astoria-booking-box [style*="font-size:28px"],
.astoria-booking-box [style*="font-size:32px"]{letter-spacing:-.03em;}
@media(max-width:1180px){
  .astoria-sf__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .astoria-sf__btn{grid-column:1/-1!important;}
}
@media(max-width:900px){
  .astoria-results-list .astoria-room-card{grid-template-columns:220px 1fr!important;}
}
@media(max-width:768px){
  .astoria-sf{padding:14px!important;border-radius:22px!important;}
  .astoria-results-list .astoria-room-card,.astoria-room-card{box-shadow:0 16px 46px rgba(23,51,60,.10)!important;}
  .astoria-booking-box{padding:14px!important;border-radius:22px!important;margin-bottom:108px!important;}
  .astoria-booking-summary [style*="display:flex;justify-content:space-between"]{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;}
  .astoria-booking-summary [style*="align-items:flex-end"]{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;}
  #astoria-booking-form{padding-bottom:10px!important;}
  #astoria-booking-form input,#astoria-booking-form select,#astoria-booking-form textarea{min-height:50px!important;font-size:16px!important;}
  .astoria-consent{align-items:flex-start!important;}
  #astoria-booking-form button[type="submit"]{min-height:54px!important;border-radius:18px!important;}
}
@media(max-width:480px){
  .astoria-room-card h3{font-size:20px!important;line-height:1.15!important;}
  .astoria-booking-box h3{font-size:21px!important;}
  .astoria-booking-summary > div{padding:14px!important;}
  .astoria-booking-box [style*="font-size:28px"]{font-size:23px!important;}
  .astoria-sf__hint{font-size:12.5px!important;line-height:1.4!important;}
}


/* ============================================================
   Hotel Demo CRM v3.1.8 — frontend booking/search phone stabilization
   ============================================================ */
.astoria-search-widget,
.astoria-search-widget *{box-sizing:border-box;}
.astoria-search-widget{width:100%;max-width:100%;overflow-x:hidden;}
.astoria-search-widget input:not([type="checkbox"]):not([type="radio"]),
.astoria-search-widget select,
.astoria-search-widget textarea,
.astoria-search-widget button{font-size:16px;max-width:100%;}
.astoria-sf,.astoria-booking-box,.astoria-room-card{max-width:100%;}
.astoria-room-card{overflow:hidden;}
.astoria-room-card img{max-width:100%;}
@media(max-width:782px){
  .astoria-search-widget{padding-inline:0!important;}
  .astoria-sf{border-radius:24px!important;padding:16px!important;}
  .astoria-sf__grid,
  .astoria-sf form,
  .astoria-sf__rooms,
  .astoria-booking-box form,
  #astoria-booking-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  .astoria-sf__field,
  .astoria-booking-box input:not([type="checkbox"]):not([type="radio"]),
  .astoria-booking-box select,
  .astoria-booking-box textarea{width:100%!important;}
  .astoria-sf__submit,
  .astoria-search-widget button,
  #astoria-booking-form button[type="submit"]{width:100%!important;min-height:52px!important;border-radius:18px!important;}
  .astoria-results-list{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;}
  .astoria-room-card{border-radius:24px!important;}
  .astoria-booking-summary{border-radius:20px!important;}
}
@media(max-width:480px){
  .astoria-sf{padding:14px!important;border-radius:22px!important;}
  .astoria-booking-box{padding:14px!important;border-radius:22px!important;}
  .astoria-consent{padding:12px!important;border-radius:16px!important;}
  .astoria-search-widget h2,
  .astoria-search-widget h3{line-height:1.15!important;}
}

/* ============================================================
   Hotel Demo CRM v3.2.13 — Public booking form and results UX
   ============================================================ */
.astoria-sf__field--stepper{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:10px!important;
  min-height:80px!important;
}
.astoria-stepper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
}
.astoria-stepper__btn{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  border-radius:14px!important;
  border:1px solid rgba(23,51,60,.13)!important;
  background:#fff!important;
  color:#17333c!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:0 8px 20px rgba(23,51,60,.06)!important;
  transition:all .18s ease!important;
}
.astoria-stepper__btn:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(47,158,170,.35)!important;
  color:#16717d!important;
  box-shadow:0 12px 26px rgba(47,158,170,.14)!important;
}
.astoria-stepper__btn:disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  transform:none!important;
}
.astoria-stepper__value{
  flex:1;
  text-align:center;
  font-size:24px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.03em;
  color:#17333c;
}
.astoria-sf__age-item{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:150px;
  flex:1 1 150px;
}
.astoria-sf__age-item label{
  font-size:13px;
  color:#6e7c82;
  font-weight:800;
}
.astoria-sf__policy{
  background:#fff8eb!important;
  border:1px solid rgba(244,167,66,.26)!important;
  color:#17333c!important;
}
.astoria-results-head{
  margin-top:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(23,51,60,.10);
  box-shadow:0 18px 45px rgba(23,51,60,.08);
}
.astoria-results-head h3{
  margin:0!important;
  font-size:24px!important;
  line-height:1.15!important;
  color:#17333c!important;
  letter-spacing:-.02em!important;
}
.astoria-results-head p{
  margin:8px 0 0!important;
  color:#6e7c82!important;
  font-size:14px!important;
  line-height:1.45!important;
  font-weight:700!important;
}
.astoria-results-head > span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  border-radius:18px;
  background:linear-gradient(135deg,#2f9eaa,#16717d);
  color:#fff;
  font-size:22px;
  font-weight:950;
  box-shadow:0 14px 32px rgba(47,158,170,.22);
}
.astoria-results-note{
  margin-top:12px;
  padding:14px 18px;
  border-radius:18px;
  background:rgba(47,158,170,.08);
  border:1px solid rgba(47,158,170,.16);
  color:#45616a;
  font-size:14px;
  line-height:1.55;
  font-weight:650;
}
.astoria-alert--empty,
.astoria-alert--error{
  padding:18px!important;
  border-radius:18px!important;
  margin-top:18px!important;
}
.astoria-alert--empty{
  background:#f9fafb!important;
  border:1px solid #e5e7eb!important;
  color:#374151!important;
}
.astoria-results-list{
  display:grid!important;
  gap:22px!important;
  margin-top:18px!important;
}
.astoria-result-card{
  display:grid!important;
  grid-template-columns:minmax(230px,320px) minmax(0,1fr)!important;
  gap:0!important;
  padding:0!important;
  border:1px solid rgba(23,51,60,.10)!important;
  border-radius:30px!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(23,51,60,.10)!important;
  overflow:hidden!important;
}
.astoria-result-card__image{
  min-height:280px;
  background:#f3f6f7;
  overflow:hidden;
}
.astoria-result-card__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.astoria-result-card__placeholder{
  width:100%;
  height:100%;
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:54px;
  background:linear-gradient(135deg,#eef7f8,#fff8eb);
}
.astoria-result-card__body{
  min-width:0;
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.astoria-result-card__top{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,260px);
  gap:18px;
  align-items:start;
}
.astoria-result-card__top h3{
  margin:0!important;
  font-size:28px!important;
  line-height:1.08!important;
  color:#17333c!important;
  letter-spacing:-.035em!important;
}
.astoria-result-card__excerpt{
  margin:10px 0 0!important;
  color:#6e7c82!important;
  line-height:1.6!important;
  font-size:15px!important;
}
.astoria-result-card__price{
  padding:16px;
  border-radius:22px;
  background:#fff8eb;
  border:1px solid rgba(244,167,66,.26);
  text-align:right;
}
.astoria-result-card__price span,
.astoria-result-card__summary span{
  display:block;
  color:#6e7c82;
  font-size:12px;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
  line-height:1.35;
}
.astoria-result-card__price strong{
  display:block;
  margin-top:8px;
  color:#17333c;
  font-size:30px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.04em;
}
.astoria-result-card__chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.astoria-result-card__chips span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  background:#f7fafb;
  border:1px solid rgba(23,51,60,.09);
  color:#334e57;
  font-size:13px;
  font-weight:800;
}
.astoria-result-card__summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.astoria-result-card__summary > div{
  min-width:0;
  padding:13px 14px;
  border-radius:18px;
  background:#f9fbfc;
  border:1px solid rgba(23,51,60,.08);
}
.astoria-result-card__summary strong{
  display:block;
  margin-top:6px;
  color:#17333c;
  font-size:18px;
  line-height:1.15;
  font-weight:950;
  overflow-wrap:break-word;
}
.astoria-result-card__summary .astoria-result-card__surcharge{
  background:#fff8eb;
  border-color:rgba(244,167,66,.24);
}
.astoria-result-card__summary .astoria-result-card__surcharge strong{
  color:#92400e;
}
.astoria-result-card__actions{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  margin-top:auto;
}
.astoria-result-card__actions .astoria-btn,
.astoria-result-card__actions .astoria-select-room{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:48px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  text-decoration:none!important;
  font-weight:950!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
.astoria-result-card__actions .astoria-btn--secondary{
  background:#fff!important;
  color:#17333c!important;
  border:1px solid rgba(23,51,60,.14)!important;
  box-shadow:none!important;
}
.astoria-result-card__actions .astoria-select-room{
  border:0!important;
  background:linear-gradient(135deg,#2f9eaa,#16717d)!important;
  color:#fff!important;
  box-shadow:0 14px 32px rgba(47,158,170,.25)!important;
}
@media(max-width:1100px){
  .astoria-result-card{grid-template-columns:240px minmax(0,1fr)!important;}
  .astoria-result-card__top{grid-template-columns:1fr!important;}
  .astoria-result-card__price{text-align:left;}
  .astoria-result-card__summary{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:782px){
  .astoria-sf__field--stepper{min-height:76px!important;}
  .astoria-stepper__btn{width:46px!important;height:46px!important;min-width:46px!important;}
  .astoria-stepper__value{font-size:26px;}
  .astoria-results-head{display:grid;grid-template-columns:1fr auto;padding:16px;border-radius:22px;}
  .astoria-results-head h3{font-size:21px!important;}
  .astoria-results-head > span{width:46px;height:46px;border-radius:16px;font-size:20px;}
  .astoria-result-card{grid-template-columns:1fr!important;border-radius:24px!important;}
  .astoria-result-card__image,.astoria-result-card__placeholder{min-height:220px!important;height:220px!important;}
  .astoria-result-card__body{padding:16px;}
  .astoria-result-card__top h3{font-size:22px!important;}
  .astoria-result-card__price strong{font-size:26px;}
  .astoria-result-card__summary{grid-template-columns:1fr!important;}
  .astoria-result-card__actions{display:grid!important;grid-template-columns:1fr!important;}
  .astoria-result-card__actions .astoria-btn,
  .astoria-result-card__actions .astoria-select-room{width:100%!important;}
}
@media(max-width:480px){
  .astoria-sf__field--stepper{padding:12px!important;}
  .astoria-stepper__btn{border-radius:13px!important;}
  .astoria-results-head{grid-template-columns:1fr!important;}
  .astoria-results-head > span{width:100%;height:42px;}
  .astoria-results-note{font-size:13px;padding:12px 14px;}
  .astoria-result-card__chips span{font-size:12px;min-height:32px;}
  .astoria-result-card__price{padding:14px;}
}

/* Astoria offers / special offers */
.astoria-offers-section{
    margin: clamp(36px, 6vw, 78px) auto;
    max-width: 1180px;
    padding: 0 18px;
}
.astoria-offers-head{
    display:flex;
    gap:18px;
    align-items:flex-start;
    margin-bottom:24px;
}
.astoria-offers-kicker{
    width:54px;
    height:54px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:24px;
    background:linear-gradient(135deg,#0f8b8d,#0b6970);
    color:#fff;
    box-shadow:0 14px 34px rgba(15,139,141,.18);
    flex:0 0 auto;
}
.astoria-offers-head h2{
    margin:0 0 8px;
    font-size:clamp(28px,4vw,46px);
    line-height:1.08;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#20343a;
}
.astoria-offers-head p{
    margin:0;
    max-width:760px;
    color:#6b7b83;
    font-size:18px;
    line-height:1.6;
}
.astoria-offers-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.astoria-offer-card{
    overflow:hidden;
    border:1px solid rgba(32,52,58,.11);
    border-radius:28px;
    background:rgba(255,255,255,.94);
    box-shadow:0 18px 48px rgba(30,42,46,.08);
    display:flex;
    flex-direction:column;
    min-height:100%;
}
.astoria-offer-card.is-featured{
    border-color:rgba(15,139,141,.35);
    box-shadow:0 24px 58px rgba(15,139,141,.13);
}
.astoria-offer-image{
    display:block;
    aspect-ratio:16/10;
    background:#eef3f2;
    overflow:hidden;
}
.astoria-offer-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .28s ease;
}
.astoria-offer-card:hover .astoria-offer-image img{
    transform:scale(1.04);
}
.astoria-offer-body{
    padding:22px;
    display:flex;
    flex-direction:column;
    gap:14px;
    flex:1;
}
.astoria-offer-topline{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}
.astoria-offer-badge,
.astoria-offer-discount{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:6px 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.astoria-offer-badge{
    color:#0c6f73;
    background:rgba(15,139,141,.10);
}
.astoria-offer-discount{
    color:#9a4f00;
    background:#fff1d6;
}
.astoria-offer-body h3{
    margin:0;
    font-size:23px;
    line-height:1.18;
    color:#20343a;
}
.astoria-offer-subtitle,
.astoria-offer-text{
    margin:0;
    color:#657780;
    line-height:1.58;
    font-size:15px;
}
.astoria-offer-text p{
    margin:0;
}
.astoria-offer-dates{
    color:#3f535b;
    background:#f6faf9;
    border:1px solid #e1ecea;
    border-radius:16px;
    padding:11px 13px;
    font-size:14px;
    font-weight:800;
}
.astoria-offer-terms{
    border-top:1px dashed rgba(32,52,58,.18);
    padding-top:10px;
    color:#697a82;
}
.astoria-offer-terms summary{
    cursor:pointer;
    font-weight:900;
    color:#20343a;
}
.astoria-offer-terms p{
    margin:8px 0 0;
    line-height:1.55;
}
.astoria-offer-button{
    margin-top:auto;
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-radius:999px;
    background:#0f8b8d;
    color:#fff!important;
    text-decoration:none!important;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    padding:12px 18px;
    box-shadow:0 16px 32px rgba(15,139,141,.18);
}
.astoria-offer-button:hover{
    transform:translateY(-1px);
    box-shadow:0 20px 36px rgba(15,139,141,.24);
}
@media(max-width:980px){
    .astoria-offers-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:680px){
    .astoria-offers-section{padding:0 14px;margin:34px auto;}
    .astoria-offers-head{display:block;}
    .astoria-offers-kicker{margin-bottom:14px;}
    .astoria-offers-head p{font-size:16px;}
    .astoria-offers-grid{grid-template-columns:1fr;}
    .astoria-offer-body{padding:18px;}
    .astoria-offer-body h3{font-size:21px;}
}

/* Hotel Demo CRM v3.2.15 — promo codes / discounts */
.astoria-sf__field--promo input{
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
}
.astoria-result-card__discount{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border-radius:14px;
    background:rgba(16,185,129,.08);
    border:1px solid rgba(16,185,129,.18);
    color:#047857;
    font-weight:900;
}
.astoria-result-card__price small{
    opacity:.9;
}
@media(max-width:760px){
    .astoria-sf__field--promo{
        grid-column:1/-1;
    }
}
@media(min-width:981px){
    .astoria-sf__grid{
        grid-template-columns:1fr 1fr .75fr .75fr .8fr 220px!important;
    }
}


/* Hotel Demo CRM v2.4.0 — Riviera / Old Money frontend palette */
.astoria-search-widget{--ast-sea:#4D5A49!important;--ast-sun:#CDBA8F!important;--ast-ink:#2F3A33!important;background:#F8F4ED!important;border:1px solid rgba(77,90,73,.18)!important;box-shadow:0 18px 54px rgba(47,58,51,.10)!important;border-radius:28px!important;}
.astoria-result-card,.astoria-booking-card,.astoria-booking-box{background:#F8F4ED!important;border-color:rgba(77,90,73,.18)!important;box-shadow:0 18px 54px rgba(47,58,51,.09)!important;}
.astoria-search-widget input,.astoria-search-widget select,#astoria-booking-form input,#astoria-booking-form select,#astoria-booking-form textarea{background:#FFFDF8!important;border:1px solid rgba(94,73,56,.18)!important;color:#2F3A33!important;}
.astoria-search-widget button,.astoria-booking-submit,#astoria-booking-form button[type="submit"]{background:linear-gradient(135deg,#4D5A49,#2F3A33)!important;color:#fff!important;border-color:transparent!important;}
.astoria-result-card__price,.astoria-booking-summary strong{color:#2F3A33!important;}
