/* ═══════════════════════════════════════════════════
   ASTORIA THEME — Component Styles
   ═══════════════════════════════════════════════════ */

/* ─── HEADER ─── */
.ast-header {
    position: sticky;
    top: 0;
    z-index: 9999;
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border-bottom: 1px solid var(--ast-border);
    transition: box-shadow .3s;
}

.ast-header.is-scrolled {
    box-shadow: 0 4px 24px rgba(0,0,0,.06);
}

.ast-header__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    gap: 16px;
}

.ast-logo { display: inline-flex; align-items: center; }
.ast-logo img { height: 44px; width: auto; object-fit: contain; }
.ast-logo__text {
    font-family: var(--ast-font-display);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: .04em;
    color: var(--ast-text);
}

.ast-nav {
    display: flex;
    gap: 20px;
    align-items: center;
}

.ast-nav a {
    font-weight: 700;
    font-size: .82rem;
    color: var(--ast-text);
    opacity: .75;
    transition: opacity .2s;
    position: relative;
}
.ast-nav a:hover { opacity: 1; }
.ast-nav a::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: -4px;
    height: 2px;
    background: var(--ast-gold);
    transform: scaleX(0);
    transition: transform .25s var(--ast-ease);
}
.ast-nav a:hover::after { transform: scaleX(1); }

.ast-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

/* Hamburger */
.ast-hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 10001;
}
.ast-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--ast-text);
    border-radius: 2px;
    transition: .3s;
}
.ast-hamburger.is-active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.ast-hamburger.is-active span:nth-child(2) { opacity: 0; }
.ast-hamburger.is-active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* Mobile menu */
.ast-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(20px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}
.ast-mobile-menu.is-open {
    opacity: 1;
    pointer-events: auto;
}

.ast-mobile-menu__nav {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.ast-mobile-menu__nav a {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--ast-text);
}

/* ─── HERO ─── */
.ast-hero {
    background:
        radial-gradient(1200px 600px at 20% 10%, rgba(197,160,89,.16), transparent 55%),
        radial-gradient(900px 600px at 85% 30%, rgba(0,0,0,.06), transparent 60%),
        linear-gradient(180deg, #fff 0%, var(--ast-bg-soft) 60%, #fff 100%);
    padding: 34px 0 22px;
}

.ast-hero__grid {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 20px;
    align-items: stretch;
}

.ast-hero__card { display: flex; flex-direction: column; }

.ast-hero__media {
    position: relative;
    height: 340px;
    background: #1a1a1a center/cover no-repeat;
    border-radius: var(--ast-radius-lg) var(--ast-radius-lg) 0 0;
}
.ast-hero__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.22)),
        radial-gradient(700px 360px at 30% 20%, rgba(197,160,89,.16), transparent 65%);
    border-radius: inherit;
}

.ast-hero__badge {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    display: inline-flex;
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.16);
    backdrop-filter: blur(10px);
}
.ast-hero__badge img { height: 22px; width: auto; opacity: .92; }

.ast-hero__content { padding: 24px; flex: 1; }

.ast-hero__cta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.ast-hero__note {
    margin-top: 14px;
    font-size: .78rem;
    line-height: 1.5;
    color: var(--ast-text-soft);
    background: linear-gradient(180deg, #fff, #fafafa);
    border: 1px solid var(--ast-border);
    padding: 12px 14px;
    border-radius: 14px;
}

.ast-hero__right {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ─── BENEFITS ─── */
.ast-benefits {
    padding: 20px;
    background:
        radial-gradient(720px 260px at 15% 10%, rgba(197,160,89,.18), transparent 62%),
        linear-gradient(180deg, #fff, var(--ast-bg-soft));
}

.ast-benefits__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ast-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: var(--ast-radius-pill);
    background: rgba(15,17,21,.92);
    color: #fff;
    font-weight: 900;
    font-size: .72rem;
    border: 1px solid rgba(0,0,0,.10);
    flex-shrink: 0;
}

.ast-benefits__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.ast-benefit {
    border: 1px solid var(--ast-border);
    border-radius: 14px;
    padding: 14px;
    background: rgba(255,255,255,.92);
    display: flex;
    gap: 12px;
    align-items: flex-start;
    transition: transform .2s var(--ast-ease);
}
.ast-benefit:hover { transform: translateY(-2px); }

.ast-benefit__ico {
    width: 36px;
    height: 36px;
    border-radius: var(--ast-radius-sm);
    background: var(--ast-gold-light);
    border: 1px solid var(--ast-gold-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ast-benefit strong { display: block; font-size: .82rem; font-weight: 900; }
.ast-benefit span { display: block; margin-top: 4px; font-size: .75rem; color: var(--ast-muted); line-height: 1.4; }

/* ─── BOOKING WRAP ─── */
.ast-booking-wrap {
    border-radius: var(--ast-radius-lg);
    border: 1px solid var(--ast-border);
    background: linear-gradient(180deg, #fff, var(--ast-bg-soft));
    box-shadow: var(--ast-shadow);
    overflow: hidden;
}
.ast-booking-wrap__inner { padding: 20px; }

/* ─── ROOMS GRID ─── */
.ast-rooms-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.ast-room-card {
    border: 1px solid var(--ast-border);
    border-radius: var(--ast-radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--ast-shadow);
    transition: transform var(--ast-speed) var(--ast-ease), box-shadow var(--ast-speed) var(--ast-ease);
}
.ast-room-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ast-shadow-lg);
}

.ast-room-card__img {
    height: 260px;
    background: #eee center/cover no-repeat;
    position: relative;
    cursor: zoom-in;
}
.ast-room-card__img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.40));
}
.ast-room-card__tag {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 2;
    background: rgba(255,255,255,.92);
    border: 1px solid var(--ast-border);
    border-radius: var(--ast-radius-pill);
    padding: 8px 14px;
    font-weight: 900;
    font-size: .75rem;
    backdrop-filter: blur(6px);
}

.ast-room-card__body {
    padding: 18px;
}
.ast-room-card__body h3 {
    margin: 0 0 10px;
    font-size: 1.1rem;
    font-weight: 900;
}
.ast-room-card__body p {
    margin: 0;
    color: var(--ast-muted);
    font-size: .85rem;
    line-height: 1.65;
}

.ast-room-card__footer {
    padding: 14px 18px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--ast-border);
}

.ast-room-card__price {
    font-size: 1.15rem;
    font-weight: 900;
    color: var(--ast-gold);
}
.ast-room-card__price small {
    font-size: .72rem;
    color: var(--ast-muted);
    font-weight: 700;
}

/* ─── GALLERY ─── */
.ast-gallery {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 12px;
}

.ast-g {
    border-radius: var(--ast-radius);
    overflow: hidden;
    min-height: 200px;
    border: 1px solid var(--ast-border);
    background: #eee center/cover no-repeat;
    box-shadow: 0 18px 50px rgba(0,0,0,.10);
    cursor: zoom-in;
    transition: transform .3s var(--ast-ease);
}
.ast-g:hover { transform: scale(1.015); }

.ast-g--wide { grid-column: span 7; min-height: 280px; }
.ast-g--tall { grid-column: span 5; min-height: 280px; }
.ast-g:not(.ast-g--wide):not(.ast-g--tall) { grid-column: span 4; }

/* ─── IFRAME WRAP ─── */
.ast-iframe-wrap {
    border-radius: var(--ast-radius-lg);
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: var(--ast-shadow);
    background: #000;
}
.ast-iframe-wrap iframe { width: 100%; height: 480px; display: block; border: 0; }

/* ─── CONTACTS ─── */
.ast-contacts-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

.ast-map-wrap {
    border-radius: 0;
    overflow: hidden;
    background: #f3f4f6;
    min-height: 280px;
}
.ast-map-wrap iframe { width: 100%; height: 100%; min-height: 280px; display: block; border: 0; }

/* ─── FOOTER ─── */
.ast-footer {
    position: relative;
    padding: 56px 0 44px;
    background:
        radial-gradient(1000px 520px at 20% 30%, rgba(197,160,89,.16), transparent 55%),
        radial-gradient(900px 520px at 80% 30%, rgba(255,255,255,.06), transparent 60%),
        linear-gradient(180deg, #2F3A33 0%, #050607 100%);
    color: #fff;
    overflow: hidden;
}
.ast-footer::before {
    content: "";
    position: absolute;
    inset: -40px;
    background: radial-gradient(1200px 500px at 50% 80%, rgba(0,0,0,.5), transparent 60%);
    pointer-events: none;
}

.ast-footer__grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    align-items: center;
}

.ast-footer__col { line-height: 1.8; }
.ast-footer__label { font-weight: 800; opacity: .8; font-size: .88rem; }
.ast-footer__value { font-weight: 900; font-size: 1.1rem; }
.ast-footer__addr { font-weight: 700; opacity: .85; font-size: .88rem; }

.ast-footer__center { text-align: center; }
.ast-footer__logo { display: inline-flex; margin-bottom: 16px; }
.ast-footer__logo img { height: 56px; width: auto; opacity: .95; }
.ast-footer__logo-text {
    font-family: var(--ast-font-display);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--ast-gold);
    margin-bottom: 16px;
}
.ast-footer__copy { font-size: .88rem; opacity: .85; }

.ast-footer__social {
    display: flex;
    justify-content: flex-end;
    gap: 14px;
}

.ast-social-btn {
    width: 56px;
    height: 56px;
    border-radius: var(--ast-radius-pill);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(10px);
    transition: all .25s var(--ast-ease);
}
.ast-social-btn svg { width: 24px; height: 24px; fill: #fff; }
.ast-social-btn:hover {
    transform: translateY(-3px);
    background: rgba(255,255,255,.14);
    box-shadow: 0 16px 60px rgba(0,0,0,.30);
}

/* ─── LIGHTBOX ─── */
.ast-lb {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 1000000;
    background: rgba(10,10,12,.78);
    backdrop-filter: blur(14px);
}
.ast-lb.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ast-lb__dialog {
    width: min(1100px, calc(100% - 24px));
    height: min(86vh, 760px);
    position: relative;
    border-radius: var(--ast-radius-lg);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 30px 120px rgba(0,0,0,.45);
    background: rgba(18,18,20,.50);
}

.ast-lb__img { width: 100%; height: 100%; object-fit: contain; }

.ast-lb__top {
    position: absolute;
    left: 0; right: 0; top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px;
    background: linear-gradient(180deg, rgba(0,0,0,.50), transparent);
}

.ast-lb__caption {
    color: #fff;
    font-weight: 900;
    font-size: .82rem;
    opacity: .9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ast-lb__close,
.ast-lb__nav {
    border-radius: var(--ast-radius-pill);
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(0,0,0,.30);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: .2s;
}
.ast-lb__close:hover, .ast-lb__nav:hover {
    background: rgba(0,0,0,.50);
}

.ast-lb__close { width: 38px; height: 38px; }
.ast-lb__close svg, .ast-lb__nav svg { width: 18px; height: 18px; }

.ast-lb__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
}
.ast-lb__prev { left: 14px; }
.ast-lb__next { right: 14px; }

/* ─── ANIMATIONS ─── */
@keyframes astFadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ast-anim {
    opacity: 0;
    transform: translateY(24px);
}
.ast-anim.is-visible {
    animation: astFadeUp .7s var(--ast-ease) forwards;
}

/* ─── HIDE UNUSED DEFAULT FOOTER PLACEHOLDERS ─── */
body.home footer#colophon { display:none; }


/* ═══════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════ */
@media (max-width: 980px) {
    .ast-nav { display: none; }
    .ast-hamburger { display: flex; }
    .ast-actions .ast-btn { height: 40px; padding: 0 12px; font-size: .72rem; }
    .ast-actions .astoria-lang-switcher { display: none; }
    .ast-logo img { height: 38px; }

    .ast-hero__grid { grid-template-columns: 1fr; }
    .ast-hero__media { height: 260px; }

    .ast-hero__cta .ast-btn { width: 100%; justify-content: center; }

    .ast-benefits__grid { grid-template-columns: 1fr; }
    .ast-rooms-grid { grid-template-columns: 1fr; }

    .ast-gallery { grid-template-columns: 1fr; }
    .ast-g { grid-column: 1 / -1 !important; min-height: 220px; }

    .ast-contacts-grid { grid-template-columns: 1fr; }
    .ast-iframe-wrap iframe { height: 520px; }

    .ast-footer__grid { grid-template-columns: 1fr; text-align: center; }
    .ast-footer__social { justify-content: center; }
}

@media (max-width: 560px) {
    .ast-hero { padding: 20px 0 14px; }
    .ast-hero__media { height: 200px; }
    .ast-hero__content { padding: 16px; }

    .ast-booking-wrap__inner { padding: 12px; }
    .ast-room-card__img { height: 200px; }

    .ast-room-card__footer {
        flex-direction: column;
        align-items: stretch;
    }
    .ast-room-card__footer .ast-btn { width: 100%; justify-content: center; }

    .ast-footer { padding: 40px 0 30px; }
}


/* Astoria theme v1.3 mobile CTA polish */
@media(max-width:980px){
  .ast-actions > .ast-btn:not(.ast-btn--primary){display:none;}
  .ast-nav.is-open{top:64px;align-items:flex-start;}
}

/* ============================================================
   Astoria Theme v1.8 — Room Page Redesign
   ============================================================ */
.ast-header__row{padding:14px 0;}
.ast-logo img{height:50px;}
.ast-nav{gap:18px;}
.ast-nav a{font-size:.86rem;font-weight:850;}
.ast-actions .ast-btn{height:46px;padding:0 18px;font-size:13px;}

.ast-room-page{
    padding:36px 0 72px;
    background:
        radial-gradient(860px 360px at 12% 0%, rgba(244,167,66,.12), transparent 62%),
        radial-gradient(820px 360px at 95% 8%, rgba(47,158,170,.10), transparent 62%),
        #fff;
}
.ast-room-single{display:block;}
.ast-room-gallery{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
    gap:16px;
    margin:0 0 30px;
}
.ast-room-gallery button{font:inherit;color:inherit;border:0;cursor:zoom-in;}
.ast-room-gallery__main,
.ast-room-gallery__thumb{
    position:relative;
    overflow:hidden;
    border-radius:28px;
    background:#eef3f4;
    box-shadow:0 22px 60px rgba(18,49,61,.10);
    padding:0;
}
.ast-room-gallery__main{min-height:470px;}
.ast-room-gallery__main img,
.ast-room-gallery__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ast-ease);}
.ast-room-gallery__main:hover img,
.ast-room-gallery__thumb:hover img{transform:scale(1.035);}
.ast-room-gallery__side{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ast-room-gallery__thumb{min-height:227px;}
.ast-room-gallery__placeholder{border-radius:24px;background:linear-gradient(135deg,#f7fafb,#fff8eb);border:1px dashed rgba(18,49,61,.12);min-height:227px;}
.ast-room-gallery__all{
    position:absolute;
    right:18px;
    bottom:18px;
    z-index:2;
    min-height:44px;
    padding:0 18px;
    border-radius:999px!important;
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(18,49,61,.10)!important;
    box-shadow:0 12px 34px rgba(18,49,61,.18);
    font-weight:900!important;
}

.ast-room-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:32px;
    align-items:start;
}
.ast-room-content{min-width:0;}
.ast-room-kicker{
    display:inline-flex;
    margin-bottom:8px;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(47,158,170,.10);
    color:#16717d;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.ast-room-title{
    margin:0;
    font-family:var(--ast-font-display);
    font-size:clamp(36px,4.6vw,58px);
    line-height:.98;
    letter-spacing:-.035em;
    color:#12313d;
}
.ast-room-lead{
    max-width:780px;
    margin:16px 0 0;
    font-size:18px;
    line-height:1.65;
    color:#59676d;
}
.ast-room-badges{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:22px 0 24px;
}
.ast-room-badge{
    display:inline-flex;
    align-items:center;
    min-height:42px;
    padding:9px 15px;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(18,49,61,.10);
    color:#233941;
    font-weight:850;
    box-shadow:0 8px 22px rgba(18,49,61,.045);
}
.ast-room-badge.is-price{background:#fff7e7;border-color:rgba(244,167,66,.24);color:#8b5d10;}
.ast-room-section{margin-top:34px;}
.ast-room-section h2{
    margin:0 0 16px;
    font-family:var(--ast-font-display);
    font-size:28px;
    line-height:1.15;
    color:#12313d;
}
.ast-room-description{font-size:16px;line-height:1.82;color:#344850;}
.ast-room-description p{margin:0 0 14px;}
.ast-room-section-note{
    max-width:760px;
    margin:-6px 0 18px;
    color:#6a7a80;
    font-size:15px;
    line-height:1.65;
}
.ast-room-amenities{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(172px,1fr));
    gap:12px;
}
.ast-room-amenity{
    min-height:62px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:13px 14px;
    border:1px solid rgba(18,49,61,.10);
    border-radius:20px;
    background:
        radial-gradient(circle at 18% 18%,rgba(47,158,170,.08),transparent 34%),
        linear-gradient(180deg,#fff,#fbfdfd);
    box-shadow:0 10px 26px rgba(18,49,61,.045);
    color:#233941;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.ast-room-amenity:hover{
    transform:translateY(-2px);
    border-color:rgba(47,158,170,.25);
    box-shadow:0 18px 42px rgba(18,49,61,.09);
    background:
        radial-gradient(circle at 18% 18%,rgba(47,158,170,.13),transparent 38%),
        linear-gradient(180deg,#fff,#f8fcfd);
}
.ast-room-amenity__icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#eefafb;
    color:#16717d;
    box-shadow:inset 0 0 0 1px rgba(47,158,170,.12);
}
.ast-room-amenity__icon svg{
    width:20px;
    height:20px;
    display:block;
}
.ast-room-amenity__label{
    min-width:0;
    font-weight:850;
    line-height:1.35;
    letter-spacing:-.01em;
}
.ast-room-included{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.ast-room-included>div{
    padding:18px;
    border-radius:22px;
    border:1px solid rgba(18,49,61,.10);
    background:linear-gradient(135deg,#f7fbfc,#fff);
    box-shadow:0 10px 28px rgba(18,49,61,.05);
}
.ast-room-included>div:nth-child(2n){background:linear-gradient(135deg,#fff8eb,#fff);}
.ast-room-included b{display:block;margin-bottom:8px;font-size:15px;color:#12313d;}
.ast-room-included span{display:block;color:#64767d;line-height:1.6;font-size:14px;}
.ast-room-prices{display:flex;flex-wrap:wrap;gap:12px;}
.ast-room-price-card{
    min-width:170px;
    padding:15px 17px;
    border-radius:20px;
    background:#fff;
    border:1px solid rgba(18,49,61,.10);
    box-shadow:0 8px 22px rgba(18,49,61,.045);
}
.ast-room-price-card span{display:block;margin-bottom:3px;color:#53666d;font-size:14px;font-weight:900;}
.ast-room-price-card small{display:block;margin-bottom:10px;color:#8a979c;font-size:12px;font-weight:750;line-height:1.35;}
.ast-room-price-card b{display:block;color:#12313d;font-size:20px;}
.ast-room-bottom-cta{
    margin-top:40px;
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:center;
    padding:22px;
    border-radius:28px;
    background:linear-gradient(135deg,#12313d,#16717d);
    color:#fff;
    box-shadow:0 22px 60px rgba(18,49,61,.16);
}
.ast-room-bottom-cta h2{margin:0 0 6px;font-family:var(--ast-font-display);font-size:26px;}
.ast-room-bottom-cta p{margin:0;color:rgba(255,255,255,.78);line-height:1.55;}
.ast-room-cta-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.ast-room-bottom-cta .ast-btn{background:#fff;color:#12313d;border-color:transparent;}
.ast-room-bottom-cta .ast-btn--primary{background:#f5b85b;color:#12313d;}

.ast-room-sidebar{min-width:0;}
.ast-room-sticky{position:sticky;top:94px;display:flex;flex-direction:column;gap:18px;}
.ast-room-card-side{
    background:rgba(255,255,255,.96);
    border:1px solid rgba(18,49,61,.10);
    border-radius:28px;
    padding:22px;
    box-shadow:0 22px 70px rgba(18,49,61,.10);
}
.ast-side-label{display:block;margin-bottom:8px;color:#6c7a80;font-size:13px;font-weight:800;}
.ast-side-price{font-size:34px;line-height:1.05;font-weight:950;letter-spacing:-.035em;color:#12313d;}
.ast-side-price.is-small{font-size:24px;}
.ast-room-rate-card p{margin:8px 0 0;color:#6c7a80;line-height:1.55;font-size:14px;}
.ast-room-important{
    display:grid;
    gap:10px;
    margin-top:18px;
    padding:15px;
    border-radius:20px;
    background:#fff8eb;
    border:1px solid rgba(244,167,66,.26);
}
.ast-room-important>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid rgba(139,93,16,.10);padding-bottom:9px;}
.ast-room-important>div:last-child{border-bottom:0;padding-bottom:0;}
.ast-room-important b{color:#12313d;font-size:13px;}
.ast-room-important span{color:#6c5b38;font-size:13px;text-align:right;line-height:1.35;}
.ast-room-note{margin-top:14px;font-size:14px;color:#59676d;line-height:1.6;}
.ast-room-booking-card h2,.ast-room-contact-card h2{margin:0 0 8px;font-family:var(--ast-font-display);font-size:24px;color:#12313d;}
.ast-room-booking-card>p,.ast-room-contact-card>p{margin:0 0 14px;color:#6c7a80;line-height:1.5;font-size:14px;}

.ast-room-booking-card .astoria-search-widget{width:100%;}
.ast-room-booking-card .astoria-sf{
    padding:0!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
    background:transparent!important;
    border-radius:0!important;
}
.ast-room-booking-card .astoria-sf__grid{
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    align-items:stretch!important;
}
.ast-room-booking-card .astoria-sf__field{
    padding:10px 12px!important;
    border-radius:16px!important;
    background:#fff!important;
}
.ast-room-booking-card .astoria-sf__label{font-size:10px!important;letter-spacing:.1em!important;}
.ast-room-booking-card .astoria-sf__input{height:34px!important;font-size:15px!important;}
.ast-room-booking-card .astoria-sf__btn{
    grid-column:1/-1!important;
    width:100%!important;
    height:54px!important;
    border-radius:18px!important;
    font-size:13px!important;
}
.ast-room-booking-card .astoria-sf__hint{
    width:100%;
    border-radius:16px!important;
    margin-top:12px!important;
    font-size:12px!important;
    line-height:1.45!important;
}
.ast-room-booking-card #astoria-results,
.ast-room-booking-card #astoria-booking-step{margin-top:14px;}
.ast-room-booking-card .astoria-room-card{display:block!important;border-radius:20px!important;margin-bottom:14px!important;}
.ast-room-booking-card .astoria-room-card>*{max-width:100%!important;}
.ast-room-contact-actions{display:flex;gap:10px;flex-wrap:wrap;}
.ast-room-contact-actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    background:#f7fbfc;
    border:1px solid rgba(18,49,61,.10);
    text-decoration:none;
    font-weight:850;
    color:#12313d;
}

/* Softer footer for resort website */
.ast-ft{background:radial-gradient(900px 420px at 18% 20%,rgba(72,166,179,.16),transparent 58%),radial-gradient(900px 420px at 82% 20%,rgba(245,184,91,.14),transparent 58%),linear-gradient(180deg,#102b35,#07151a)!important;}
.ast-ft-soc{background:rgba(255,255,255,.10)!important;}

@media(max-width:1100px){
    .ast-room-layout{grid-template-columns:1fr;}
    .ast-room-sticky{position:static;}
    .ast-room-sidebar{max-width:760px;}
}
@media(max-width:900px){
    .ast-logo img{height:44px;}
    .ast-room-page{padding-top:20px;}
    .ast-room-gallery{grid-template-columns:1fr;}
    .ast-room-gallery__main{min-height:340px;}
    .ast-room-gallery__side{grid-template-columns:repeat(4,1fr);}
    .ast-room-gallery__thumb,.ast-room-gallery__placeholder{min-height:120px;border-radius:18px;}
    .ast-room-bottom-cta{display:block;}
    .ast-room-cta-actions{justify-content:flex-start;margin-top:16px;}
}
@media(max-width:640px){
    .ast-room-gallery__main{min-height:280px;border-radius:22px;}
    .ast-room-gallery__side{grid-template-columns:1fr 1fr;}
    .ast-room-gallery__thumb,.ast-room-gallery__placeholder{min-height:130px;}
    .ast-room-title{font-size:38px;}
    .ast-room-lead{font-size:16px;}
    .ast-room-included{grid-template-columns:1fr;}
    .ast-room-booking-card .astoria-sf__grid{grid-template-columns:1fr!important;}
    .ast-room-card-side{padding:18px;border-radius:24px;}
    .ast-side-price{font-size:30px;}
    .ast-room-bottom-cta{padding:20px;border-radius:24px;}
}


@media(max-width:680px){
    .ast-room-amenities{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
    .ast-room-amenity{min-height:58px;padding:12px;gap:10px;border-radius:18px;}
    .ast-room-amenity__icon{width:34px;height:34px;flex-basis:34px;border-radius:12px;}
    .ast-room-amenity__icon svg{width:18px;height:18px;}
    .ast-room-amenity__label{font-size:14px;}
}
@media(max-width:420px){
    .ast-room-amenities{grid-template-columns:1fr;}
}

/* Room sidebar premium redesign — v1.8.4 */
.ast-room-card-side{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(420px 240px at 18% 0%,rgba(47,158,170,.10),transparent 62%),
        linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.94));
    border:1px solid rgba(18,49,61,.09);
    border-radius:30px;
    padding:22px;
    box-shadow:0 24px 72px rgba(18,49,61,.105);
}
.ast-room-card-side:before{
    content:"";
    position:absolute;
    inset:0 0 auto;
    height:4px;
    background:linear-gradient(90deg,#2f9eaa,#f5b85b);
    opacity:.9;
}
.ast-side-card-head{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    gap:13px;
    margin-bottom:17px;
}
.ast-side-card-icon{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:linear-gradient(135deg,#eefafb,#fff7e7);
    color:#16717d;
    box-shadow:inset 0 0 0 1px rgba(47,158,170,.13),0 10px 26px rgba(18,49,61,.075);
}
.ast-side-card-icon svg,
.ast-room-important__icon svg,
.ast-room-contact-actions svg{
    width:20px;
    height:20px;
    display:block;
}
.ast-side-label{
    display:block;
    margin:0 0 3px;
    color:#7b8a90;
    font-size:11px;
    font-weight:950;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.ast-side-card-head strong{
    display:block;
    color:#12313d;
    font-size:15px;
    line-height:1.35;
    letter-spacing:-.01em;
}
.ast-room-booking-card h2,
.ast-room-contact-card h2{
    margin:0 0 4px;
    font-family:var(--ast-font-display);
    font-size:25px;
    line-height:1.05;
    color:#12313d;
}
.ast-room-booking-card .ast-side-card-head p,
.ast-room-contact-card .ast-side-card-head p{
    margin:0;
    color:#6c7a80;
    font-size:13px;
    line-height:1.45;
}
.ast-room-booking-card>p,
.ast-room-contact-card>p{display:none;}
.ast-rate-price-box{
    position:relative;
    z-index:1;
    padding:19px;
    border-radius:24px;
    background:
        radial-gradient(280px 150px at 92% 10%,rgba(245,184,91,.20),transparent 56%),
        linear-gradient(135deg,#12313d,#174956);
    color:#fff;
    box-shadow:0 20px 48px rgba(18,49,61,.18);
}
.ast-rate-price-prefix{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:3px 9px;
    margin-bottom:8px;
    border-radius:999px;
    background:rgba(255,255,255,.13);
    color:rgba(255,255,255,.84);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.ast-rate-price-box .ast-side-price{
    color:#fff;
    font-size:38px;
    line-height:.98;
    font-weight:950;
    letter-spacing:-.045em;
}
.ast-rate-price-box .ast-side-price.is-small{font-size:26px;line-height:1.15;}
.ast-rate-price-box p,
.ast-room-rate-card .ast-rate-price-box p{
    max-width:285px;
    margin:10px 0 0;
    color:rgba(255,255,255,.76);
    font-size:13px;
    line-height:1.5;
}
.ast-room-important.ast-room-important--premium{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:15px;
    padding:0;
    border:0;
    background:transparent;
}
.ast-room-important.ast-room-important--premium>div{
    display:grid;
    grid-template-columns:34px 1fr auto;
    gap:10px;
    align-items:center;
    min-height:52px;
    padding:10px;
    border:1px solid rgba(18,49,61,.08);
    border-radius:18px;
    background:rgba(255,255,255,.72);
    box-shadow:0 10px 24px rgba(18,49,61,.045);
}
.ast-room-important__icon{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:13px;
    color:#16717d;
    background:#eefafb;
    box-shadow:inset 0 0 0 1px rgba(47,158,170,.12);
}
.ast-room-important.ast-room-important--premium b{
    color:#12313d;
    font-size:13px;
    line-height:1.25;
}
.ast-room-important.ast-room-important--premium span:not(.ast-room-important__icon){
    color:#56696f;
    font-size:12px;
    font-weight:800;
    line-height:1.25;
    text-align:right;
}
.ast-room-note{
    margin-top:14px;
    padding:13px 14px;
    border-radius:18px;
    background:#fff8eb;
    border:1px solid rgba(244,167,66,.22);
    font-size:13px;
    color:#6c5b38;
    line-height:1.55;
}
.ast-room-note p{margin:0 0 8px;}
.ast-room-note p:last-child{margin-bottom:0;}
.ast-room-booking-card .astoria-search-widget{position:relative;z-index:1;width:100%;}
.ast-room-booking-card .astoria-sf{
    padding:0!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
    background:transparent!important;
    border-radius:0!important;
}
.ast-room-booking-card .astoria-sf__grid{
    grid-template-columns:1fr 1fr!important;
    gap:11px!important;
    align-items:stretch!important;
}
.ast-room-booking-card .astoria-sf__field{
    min-height:70px!important;
    padding:11px 13px!important;
    border-radius:18px!important;
    background:#fff!important;
    border:1px solid rgba(18,49,61,.10)!important;
    box-shadow:0 10px 24px rgba(18,49,61,.045)!important;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.ast-room-booking-card .astoria-sf__field:focus-within{
    transform:translateY(-1px)!important;
    border-color:rgba(47,158,170,.42)!important;
    box-shadow:0 14px 34px rgba(47,158,170,.13)!important;
}
.ast-room-booking-card .astoria-sf__label{
    margin-bottom:6px!important;
    color:#12313d!important;
    font-size:10px!important;
    font-weight:950!important;
    letter-spacing:.12em!important;
}
.ast-room-booking-card .astoria-sf__input{
    height:32px!important;
    color:#12313d!important;
    font-size:16px!important;
    font-weight:900!important;
}
.ast-room-booking-card .astoria-sf__field svg,
.ast-room-booking-card .astoria-sf__field .astoria-sf__icon{color:#16717d!important;opacity:.9!important;}
.ast-room-booking-card .astoria-sf__btn{
    grid-column:1/-1!important;
    width:100%!important;
    height:56px!important;
    border-radius:18px!important;
    background:linear-gradient(135deg,#2f9eaa,#16717d)!important;
    border:0!important;
    box-shadow:0 16px 34px rgba(47,158,170,.26)!important;
    color:#fff!important;
    font-size:13px!important;
    font-weight:950!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
.ast-room-booking-card .astoria-sf__btn:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 20px 44px rgba(47,158,170,.34)!important;
    filter:saturate(1.06)!important;
}
.ast-room-booking-card .astoria-sf__hint{
    width:100%;
    border-radius:17px!important;
    margin-top:12px!important;
    padding:11px 13px!important;
    background:#fff8eb!important;
    border:1px solid rgba(244,167,66,.24)!important;
    color:#7a653c!important;
    font-size:12px!important;
    font-weight:750!important;
    line-height:1.45!important;
}
.ast-room-booking-card #astoria-results,
.ast-room-booking-card #astoria-booking-step{margin-top:14px;}
.ast-room-booking-card .astoria-room-card{
    display:block!important;
    border-radius:22px!important;
    margin-bottom:14px!important;
    box-shadow:0 12px 32px rgba(18,49,61,.075)!important;
}
.ast-room-booking-card .astoria-room-card>*{max-width:100%!important;}
.ast-room-contact-address{
    position:relative;
    z-index:1;
    margin:0 0 13px;
    padding:12px 14px;
    border-radius:17px;
    background:#f7fbfc;
    border:1px solid rgba(18,49,61,.08);
    color:#66767c;
    font-size:13px;
    line-height:1.45;
}
.ast-room-contact-actions{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
}
.ast-room-contact-actions a{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    min-height:46px;
    padding:0 14px;
    border-radius:17px;
    background:#fff;
    border:1px solid rgba(18,49,61,.09);
    text-decoration:none;
    font-size:14px;
    font-weight:900;
    color:#12313d;
    box-shadow:0 10px 24px rgba(18,49,61,.045);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.ast-room-contact-actions a span{
    width:32px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#16717d;
    background:#eefafb;
    box-shadow:inset 0 0 0 1px rgba(47,158,170,.12);
}
.ast-room-contact-actions a:hover{
    transform:translateY(-2px);
    border-color:rgba(47,158,170,.28);
    box-shadow:0 16px 34px rgba(18,49,61,.08);
    background:#fbfefe;
}
@media(max-width:640px){
    .ast-side-card-head{gap:11px;margin-bottom:14px;}
    .ast-side-card-icon{width:38px;height:38px;flex-basis:38px;border-radius:14px;}
    .ast-rate-price-box{padding:17px;border-radius:22px;}
    .ast-rate-price-box .ast-side-price{font-size:34px;}
    .ast-room-important.ast-room-important--premium>div{grid-template-columns:32px 1fr;align-items:start;}
    .ast-room-important.ast-room-important--premium span:not(.ast-room-important__icon){grid-column:2;text-align:left;}
    .ast-room-booking-card .astoria-sf__grid{grid-template-columns:1fr!important;}
    .ast-room-contact-actions{grid-template-columns:1fr;}
}

/* ═══════════════════════════════════════════════════════════
   Astoria Theme v1.8.7 — Mobile & Devices Optimization
   Unified breakpoints: 1200 / 1024 / 768 / 640 / 480
   ═══════════════════════════════════════════════════════════ */
html.ast-menu-open,
body.ast-menu-open{
    overflow:hidden;
    touch-action:none;
}

.ast-header,
.ast-header *{
    -webkit-tap-highlight-color: transparent;
}

.ast-mobile-sticky-cta{
    display:none;
}

.ast-room-page,
.ast-home{
    overflow-x:hidden;
}

.ast-hero iframe,
.ast-section iframe,
.ast-map iframe,
.ast-route-map iframe,
.ast-tour-iframe,
.ast-3d-tour iframe{
    max-width:100%;
    border:0;
}

.ast-btn,
.astoria-btn,
button,
input,
select,
textarea{
    touch-action:manipulation;
}

@media (max-width:1200px){
    :root{ --ast-container:min(1120px,calc(100% - 28px)); }
    .ast-nav{ gap:16px; }
    .ast-nav a{ font-size:12px; }
    .ast-actions{ gap:8px; }
    .ast-actions .ast-btn{ padding-left:14px; padding-right:14px; }
    .ast-hero__grid{ grid-template-columns:1fr .92fr; gap:18px; }
    .ast-room-gallery{ gap:10px; }
}

@media (max-width:1024px){
    :root{ --ast-container:calc(100% - 28px); }
    .ast-header__row{ padding:10px 0; }
    .ast-logo img{ height:42px; }
    .ast-actions .ast-btn:not(.ast-btn--primary){ display:none; }
    .ast-actions .ast-btn--primary{ height:40px; padding:0 14px; font-size:12px; }
    .ast-hamburger{ display:inline-flex !important; flex-direction:column; align-items:center; justify-content:center; width:44px; height:44px; border-radius:999px; border:1px solid rgba(0,0,0,.08); background:#fff; box-shadow:0 10px 24px rgba(0,0,0,.08); }
    .ast-nav{
        position:fixed !important;
        left:14px !important;
        right:14px !important;
        top:74px !important;
        bottom:auto !important;
        display:grid !important;
        grid-template-columns:1fr 1fr;
        gap:10px !important;
        padding:18px !important;
        border-radius:24px;
        border:1px solid rgba(0,0,0,.08);
        background:rgba(255,255,255,.96);
        -webkit-backdrop-filter:blur(18px) saturate(1.5);
        backdrop-filter:blur(18px) saturate(1.5);
        box-shadow:0 30px 80px rgba(0,0,0,.16);
        opacity:0;
        visibility:hidden;
        transform:translateY(-10px) scale(.98);
        pointer-events:none;
        transition:opacity .24s ease, transform .24s ease, visibility .24s ease;
        z-index:10000;
        max-height:calc(100vh - 96px);
        overflow:auto;
    }
    .ast-nav.is-open{
        opacity:1;
        visibility:visible;
        transform:translateY(0) scale(1);
        pointer-events:auto;
    }
    .ast-nav a{
        display:flex;
        align-items:center;
        justify-content:center;
        min-height:46px;
        padding:10px 12px;
        border-radius:16px;
        background:#f9fafb;
        border:1px solid rgba(0,0,0,.06);
        opacity:1;
        font-size:13px;
        text-align:center;
    }
    .ast-nav a::after{ display:none; }
    .ast-hero{ padding:26px 0 18px; }
    .ast-hero__grid{ grid-template-columns:1fr !important; }
    .ast-hero__right{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
    .ast-hero__media{ height:clamp(240px,42vw,360px); }
    .ast-section{ padding:46px 0; scroll-margin-top:82px; }
    .ast-section__head{ align-items:flex-start; flex-direction:column; }
    .ast-rooms-grid{ grid-template-columns:1fr; }
    .ast-room__img{ height:clamp(220px,38vw,310px); }
    .ast-gallery{ grid-template-columns:repeat(6,1fr); }
    .ast-g{ min-height:180px; }
    .ast-room-layout{ grid-template-columns:1fr !important; gap:24px !important; }
    .ast-room-sidebar{ order:-1; }
    .ast-room-sticky{ position:static !important; top:auto !important; }
}

@media (max-width:768px){
    :root{ --ast-container:calc(100% - 24px); --ast-radius:16px; --ast-radius-lg:20px; }
    body{ font-size:14px; padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
    .ast-header{ z-index:10002; }
    .ast-logo img{ height:38px; max-width:170px; }
    .ast-actions .ast-btn--primary{ display:none; }
    .ast-header__row{ gap:8px; }
    .ast-nav{ grid-template-columns:1fr; left:12px !important; right:12px !important; top:66px !important; max-height:calc(100vh - 84px); padding:14px !important; border-radius:22px; }
    .ast-nav a{ min-height:48px; justify-content:flex-start; padding-left:16px; }
    .ast-h2,
    .ast-room-title{ font-size:clamp(30px,8vw,40px) !important; line-height:1.06 !important; }
    .ast-p,
    .ast-room-lead{ font-size:14px !important; }
    .ast-hero__content{ padding:20px 18px !important; }
    .ast-hero__title{ font-size:clamp(34px,9vw,46px) !important; }
    .ast-hero__media{ height:260px; }
    .ast-hero__right{ grid-template-columns:1fr; }
    .ast-cta-row,
    .ast-hero__cta,
    .ast-room__actions,
    .ast-room-cta-actions{ display:grid !important; grid-template-columns:1fr; width:100%; }
    .ast-cta-row .ast-btn,
    .ast-hero__cta .ast-btn,
    .ast-room__actions .ast-btn,
    .ast-room-cta-actions .ast-btn{ width:100%; }
    .ast-benefits__top{ display:block; }
    .ast-benefits__grid{ grid-template-columns:1fr !important; }
    .ast-chip{ margin-top:12px; width:100%; justify-content:center; }
    .ast-section{ padding:38px 0; }
    .ast-booking-inner{ padding:16px; }
    .ast-room__body,
    .ast-room__actions{ padding-left:16px; padding-right:16px; }
    .ast-gallery{ grid-template-columns:1fr; }
    .ast-g{ min-height:220px; }
    .ast-room-gallery{ display:grid !important; grid-template-columns:1fr !important; gap:10px !important; }
    .ast-room-gallery__main{ min-height:260px !important; height:260px !important; }
    .ast-room-gallery__side{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important; }
    .ast-room-gallery__thumb,
    .ast-room-gallery__placeholder{ min-height:116px !important; height:116px !important; }
    .ast-room-gallery__all{ left:14px !important; right:14px !important; bottom:14px !important; width:auto !important; justify-content:center; }
    .ast-room-badges{ display:flex; gap:8px; overflow-x:auto; padding-bottom:8px; -webkit-overflow-scrolling:touch; }
    .ast-room-badge{ flex:0 0 auto; white-space:nowrap; }
    .ast-room-amenities{ grid-template-columns:1fr !important; gap:10px !important; }
    .ast-room-amenity{ min-height:56px; padding:12px 14px !important; }
    .ast-room-included,
    .ast-room-prices{ grid-template-columns:1fr !important; }
    .ast-room-card-side{ padding:18px !important; border-radius:22px !important; }
    .ast-room-important{ grid-template-columns:40px 1fr !important; }
    .ast-room-contact-actions{ display:grid !important; grid-template-columns:1fr !important; }
    .ast-map iframe,
    .ast-route-map iframe,
    .ast-3d-tour iframe{ height:360px !important; }
    .ast-ft{ padding-bottom:calc(92px + env(safe-area-inset-bottom)) !important; }
    .ast-mobile-sticky-cta{
        position:fixed;
        left:10px;
        right:10px;
        bottom:calc(10px + env(safe-area-inset-bottom));
        z-index:10001;
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
        padding:8px;
        border-radius:24px;
        background:rgba(255,255,255,.94);
        border:1px solid rgba(0,0,0,.08);
        box-shadow:0 18px 60px rgba(0,0,0,.20);
        -webkit-backdrop-filter:blur(16px) saturate(1.45);
        backdrop-filter:blur(16px) saturate(1.45);
    }
    .ast-mobile-sticky-cta__item{
        min-width:0;
        height:52px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:3px;
        border-radius:18px;
        background:#f9fafb;
        border:1px solid rgba(0,0,0,.06);
        color:#111827;
        text-decoration:none;
        font-size:11px;
        line-height:1.1;
        font-weight:900;
    }
    .ast-mobile-sticky-cta__item span{ font-size:16px; line-height:1; }
    .ast-mobile-sticky-cta__item--primary{ background:#111827; color:#fff; border-color:#111827; }
}

@media (max-width:640px){
    :root{ --ast-container:calc(100% - 20px); }
    .ast-box,
    .ast-card{ border-radius:18px; }
    .ast-hero{ padding-top:18px; }
    .ast-hero__media{ height:230px; }
    .ast-hero__badge{ top:10px; left:10px; padding:8px 10px; }
    .ast-hero__badge img{ height:20px; }
    .ast-hero__content{ padding:18px 16px !important; }
    .ast-note,
    .ast-hero__note{ font-size:12px; }
    .ast-room__img{ height:220px; }
    .ast-room-gallery__main{ height:230px !important; min-height:230px !important; }
    .ast-room-gallery__thumb,
    .ast-room-gallery__placeholder{ height:100px !important; min-height:100px !important; }
    .ast-room-section{ padding:22px 0 !important; }
    .ast-room-section h2{ font-size:24px !important; }
    .ast-side-card-head{ align-items:flex-start !important; }
    .ast-room-rate-price strong{ font-size:30px !important; }
    .ast-room-bottom-cta{ display:block !important; padding:20px !important; }
    .ast-room-bottom-cta p{ margin-bottom:14px; }
    .ast-ft-social{ gap:10px; }
    .ast-ft-soc{ width:48px; height:48px; }
}

@media (max-width:480px){
    .ast-header__row{ padding:8px 0; }
    .ast-logo img{ height:34px; max-width:148px; }
    .ast-hamburger{ width:42px; height:42px; }
    .ast-hero__title{ font-size:32px !important; }
    .ast-h2{ font-size:28px !important; }
    .ast-hero__media{ height:210px; }
    .ast-room__img{ height:200px; }
    .ast-room-gallery__main{ height:210px !important; min-height:210px !important; }
    .ast-room-gallery__side{ grid-template-columns:1fr 1fr !important; }
    .ast-room-gallery__thumb,
    .ast-room-gallery__placeholder{ height:92px !important; min-height:92px !important; }
    .ast-btn{ height:46px; padding-left:14px; padding-right:14px; }
    .ast-mobile-sticky-cta{ left:8px; right:8px; bottom:calc(8px + env(safe-area-inset-bottom)); border-radius:20px; }
    .ast-mobile-sticky-cta__item{ height:50px; border-radius:16px; }
}

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


/* ============================================================
   Astoria Theme v1.9.1 — header/mobile CTA device fixes
   ============================================================ */
.ast-header .ast-container{
  width:min(1440px,calc(100% - 32px));
}
.ast-nav{
  flex:1 1 auto;
  justify-content:center;
  min-width:0;
  gap:clamp(10px,1.05vw,18px)!important;
}
.ast-nav a{
  white-space:nowrap;
  line-height:1.15;
}
.ast-actions{
  flex:0 0 auto;
}
.ast-hamburger span{
  display:block!important;
  width:22px!important;
  height:2px!important;
  min-height:2px!important;
  margin:0!important;
  background:#12313d!important;
  border-radius:999px!important;
  opacity:1!important;
}
.ast-hamburger{
  gap:5px!important;
}
.ast-hamburger.is-active span:nth-child(1){ transform:rotate(45deg) translate(5px,5px)!important; }
.ast-hamburger.is-active span:nth-child(2){ opacity:0!important; }
.ast-hamburger.is-active span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px)!important; }

@media (max-width:1180px){
  .ast-nav{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    top:74px!important;
    bottom:auto!important;
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:10px!important;
    padding:18px!important;
    border-radius:24px;
    border:1px solid rgba(0,0,0,.08);
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(18px) saturate(1.5);
    backdrop-filter:blur(18px) saturate(1.5);
    box-shadow:0 30px 80px rgba(0,0,0,.16);
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px) scale(.98);
    pointer-events:none;
    transition:opacity .24s ease, transform .24s ease, visibility .24s ease;
    z-index:10000;
    max-height:calc(100vh - 96px);
    overflow:auto;
    flex:none;
    justify-content:stretch;
  }
  .ast-nav.is-open{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto;}
  .ast-nav a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 12px;border-radius:16px;background:#f9fafb;border:1px solid rgba(0,0,0,.06);opacity:1;font-size:13px;text-align:center;white-space:normal;}
  .ast-nav a::after{display:none;}
  .ast-hamburger{display:inline-flex!important;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.08);}
}

@media (max-width:768px){
  html,body{overflow-x:hidden!important;}
  body{padding-bottom:calc(108px + env(safe-area-inset-bottom))!important;}
  .ast-header .ast-container{width:calc(100% - 28px)!important;}
  .ast-header__row{min-height:70px;}
  .ast-actions{gap:8px!important;}
  .ast-actions .ast-lang-switcher,
  .ast-actions .ast-lang-switcher a,
  .ast-actions .ast-lang-switcher button{height:42px!important;min-width:42px!important;border-radius:14px!important;}
  .ast-logo img{height:36px!important;max-width:146px!important;}
  .ast-nav{grid-template-columns:1fr!important;left:12px!important;right:12px!important;top:76px!important;max-height:calc(100vh - 98px)!important;padding:14px!important;border-radius:22px!important;}
  .ast-nav a{justify-content:flex-start;min-height:48px;padding-left:16px;}
  .ast-mobile-sticky-cta{
    left:12px!important;
    right:12px!important;
    bottom:calc(12px + env(safe-area-inset-bottom))!important;
    max-width:520px;
    margin:0 auto;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    padding:8px!important;
    border-radius:24px!important;
    z-index:10020!important;
  }
  .ast-mobile-sticky-cta__item{height:52px!important;border-radius:18px!important;gap:0!important;}
  .ast-mobile-sticky-cta__item span{display:none!important;}
  .ast-mobile-sticky-cta__item b{font-size:14px!important;line-height:1!important;white-space:nowrap!important;}
  .ast-mobile-sticky-cta__item--primary{background:linear-gradient(135deg,#2f9eaa,#16717d)!important;border-color:transparent!important;color:#fff!important;}
}

@media (max-width:380px){
  .ast-mobile-sticky-cta{left:8px!important;right:8px!important;gap:6px!important;padding:7px!important;}
  .ast-mobile-sticky-cta__item b{font-size:13px!important;}
}


/* ============================================================
   Astoria Theme v1.9.1 — price wording + all device polish
   ============================================================ */
.ast-header .ast-container{width:min(1500px,calc(100% - 28px))!important;}
.ast-header__row{gap:clamp(8px,1vw,16px)!important;}
.ast-logo{flex:0 0 auto!important;}
.ast-nav{gap:clamp(8px,.78vw,14px)!important;}
.ast-nav a{font-size:clamp(11px,.72vw,13px)!important;letter-spacing:.01em!important;white-space:nowrap!important;}
.ast-actions .ast-btn{height:42px;padding-inline:clamp(12px,1.1vw,20px)!important;}
.ast-room-price-note{margin:8px 0 18px!important;color:#6c7a80!important;font-size:14px!important;line-height:1.6!important;max-width:780px!important;}
.ast-room-price-card{flex:1 1 190px;min-width:0!important;}
.ast-room-price-card small{min-height:32px;}
.ast-rate-price-prefix{display:inline-flex!important;margin-bottom:4px!important;color:#6c7a80!important;font-weight:900!important;font-size:12px!important;text-transform:uppercase!important;letter-spacing:.08em!important;}
.ast-side-price{word-break:normal!important;overflow-wrap:normal!important;}
.ast-room-card-side,.ast-room-section,.ast-room-bottom-cta{max-width:100%;}
.ast-room-sidebar{min-width:0;}
.ast-room-main{min-width:0;}
@media(max-width:1320px){
  .ast-header .ast-container{width:calc(100% - 24px)!important;}
  .ast-nav{gap:8px!important;}
  .ast-nav a{font-size:11.5px!important;}
  .ast-actions .ast-btn{padding-inline:12px!important;font-size:12px!important;}
}
@media(max-width:1180px){
  .ast-actions .ast-btn:not(.ast-btn--primary){display:none!important;}
}
@media(max-width:768px){
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom))!important;}
  .ast-room-page{font-size:15px!important;}
  .ast-room-hero{padding-top:18px!important;}
  .ast-room-title{font-size:clamp(34px,10vw,46px)!important;line-height:1.03!important;}
  .ast-room-lead{font-size:16px!important;line-height:1.55!important;}
  .ast-room-grid{gap:24px!important;}
  .ast-room-section{padding:20px 0!important;}
  .ast-room-section h2{font-size:26px!important;line-height:1.12!important;}
  .ast-room-prices{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;}
  .ast-room-price-card{padding:14px!important;border-radius:18px!important;}
  .ast-room-price-card b{font-size:19px!important;}
  .ast-room-price-card small{min-height:0!important;font-size:11.5px!important;}
  .ast-room-card-side{padding:16px!important;border-radius:22px!important;}
  .ast-room-important{gap:10px!important;}
  .ast-mobile-sticky-cta{bottom:calc(8px + env(safe-area-inset-bottom))!important;padding:7px!important;box-shadow:0 14px 44px rgba(23,51,60,.18)!important;}
  .ast-mobile-sticky-cta__item{height:46px!important;border-radius:16px!important;}
  .ast-mobile-sticky-cta__item b{font-size:13px!important;}
  body.ast-booking-form-focus .ast-mobile-sticky-cta{opacity:0!important;transform:translateY(120%)!important;pointer-events:none!important;}
}
@media(max-width:480px){
  .ast-header__row{min-height:62px!important;}
  .ast-logo img{height:32px!important;max-width:132px!important;}
  .ast-hamburger{width:40px!important;height:40px!important;}
  .ast-actions .ast-lang-switcher,.ast-actions .ast-lang-switcher a,.ast-actions .ast-lang-switcher button{height:40px!important;min-width:40px!important;}
  .ast-room-gallery__main{height:198px!important;min-height:198px!important;}
  .ast-room-gallery__thumb,.ast-room-gallery__placeholder{height:86px!important;min-height:86px!important;}
  .ast-room-prices{grid-template-columns:1fr!important;}
  .ast-mobile-sticky-cta{left:8px!important;right:8px!important;}
}

/* ============================================================
   Astoria Theme v1.9.2 — Barba.js transitions
   ============================================================ */
.ast-main{
  min-height:60vh;
  will-change:opacity,transform;
}
.ast-barba-leave{
  opacity:0!important;
  transform:translateY(10px)!important;
  transition:opacity .22s ease, transform .22s ease!important;
}
.ast-barba-enter{
  opacity:0;
  transform:translateY(14px);
}
.ast-barba-enter.ast-barba-enter-active{
  opacity:1;
  transform:translateY(0);
  transition:opacity .26s ease, transform .26s ease;
}
.ast-progress{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:3px;
  z-index:1000002;
  pointer-events:none;
  opacity:0;
  overflow:hidden;
}
.ast-progress span{
  display:block;
  width:100%;
  height:100%;
  transform:translateX(-100%);
  background:linear-gradient(90deg,#d9b46b,#147c86,#d9b46b);
  box-shadow:0 0 24px rgba(20,124,134,.35);
}
.ast-progress.is-active{
  opacity:1;
}
.ast-progress.is-active span{
  animation:astProgressMove 1.05s ease-in-out infinite;
}
@keyframes astProgressMove{
  0%{transform:translateX(-100%)}
  55%{transform:translateX(-10%)}
  100%{transform:translateX(100%)}
}
.ast-page-loader{
  position:fixed;
  inset:0;
  z-index:1000001;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(248,252,252,.58);
  -webkit-backdrop-filter:blur(10px) saturate(1.25);
  backdrop-filter:blur(10px) saturate(1.25);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
.ast-page-loader.is-active{
  opacity:1;
  visibility:visible;
}
.ast-page-loader__mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:126px;
  min-height:46px;
  padding:0 20px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(17,49,61,.10);
  box-shadow:0 18px 70px rgba(17,49,61,.16);
  color:#12313d;
  font-weight:900;
  letter-spacing:.22em;
  font-size:12px;
}
html.ast-is-transitioning,
html.ast-is-transitioning body{
  cursor:progress;
}
@media (prefers-reduced-motion: reduce){
  .ast-barba-leave,
  .ast-barba-enter.ast-barba-enter-active,
  .ast-progress.is-active span{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}
@media(max-width:768px){
  .ast-page-loader__mark{min-width:108px;min-height:42px;font-size:11px;letter-spacing:.18em;}
}

/* ============================================================
   Astoria Theme v1.9.4 — larger animated logo loader with full reveal timing
   ============================================================ */
.ast-page-loader{
  background:
    radial-gradient(560px 360px at 50% 42%, rgba(255,255,255,.94), rgba(255,255,255,.74) 56%, rgba(248,252,252,.58) 100%),
    radial-gradient(820px 520px at 50% 58%, rgba(191,152,110,.16), transparent 62%),
    rgba(248,252,252,.72)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.2)!important;
  backdrop-filter:blur(14px) saturate(1.2)!important;
  transition:opacity .34s ease, visibility .34s ease!important;
}
.ast-page-loader__panel{
  width:min(560px,88vw);
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateY(-1vh);
}
.ast-loader-logo-wrap{
  width:100%;
  filter:drop-shadow(0 24px 62px rgba(191,152,110,.18));
}
.ast-loader-logo-svg{
  display:block;
  width:100%;
  height:auto;
  max-height:min(48vh,420px);
  overflow:visible;
}
@keyframes astLoaderPetalIn{
  0%{opacity:0;transform:scale(.04)}
  60%{opacity:1;transform:scale(1.12)}
  100%{opacity:1;transform:scale(1)}
}
@keyframes astLoaderLetterIn{
  0%{opacity:0;transform:translateY(11px)}
  100%{opacity:1;transform:translateY(0)}
}
@keyframes astLoaderLineIn{
  from{transform:scaleX(0);opacity:0}
  to{transform:scaleX(1);opacity:.5}
}
@keyframes astLoaderShellBreath{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.1) drop-shadow(0 0 18px rgba(191,152,110,.45))}
}
.ast-loader-petal{
  opacity:0;
  transform-box:fill-box;
  transform-origin:50% 50%;
  animation:astLoaderPetalIn .34s cubic-bezier(.34,1.56,.64,1) both;
}
.ast-loader-letter{
  opacity:0;
  fill:#0d0d0d;
  transform-box:fill-box;
  transform-origin:50% 100%;
  animation:astLoaderLetterIn .56s cubic-bezier(.25,.46,.45,.94) both;
}
#astLoaderDivl{
  transform-box:fill-box;
  transform-origin:50% 50%;
  opacity:0;
  animation:astLoaderLineIn .62s ease-out 1.44s both;
}
#astLoaderShell{
  animation:astLoaderShellBreath 4.8s ease-in-out 1.84s infinite;
}
html.ast-is-transitioning .ast-header,
html.ast-is-transitioning .ast-mobile-sticky-cta{
  pointer-events:none;
}
@media(max-width:768px){
  .ast-page-loader__panel{width:min(390px,84vw);transform:translateY(-1vh)}
}
@media(max-width:420px){
  .ast-page-loader__panel{width:min(340px,82vw)}
}
@media (prefers-reduced-motion: reduce){
  .ast-loader-petal,
  .ast-loader-letter,
  #astLoaderDivl,
  #astLoaderShell{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
}

/* ============================================================
   Astoria Theme v1.9.5 — premium header & footer polish
   ============================================================ */
.ast-header{
  background:rgba(255,255,255,.94)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.45)!important;
  backdrop-filter:blur(18px) saturate(1.45)!important;
  border-bottom:1px solid rgba(18,49,61,.08)!important;
  box-shadow:0 10px 38px rgba(18,49,61,.045)!important;
}
.ast-header .ast-container{
  width:min(1360px,calc(100% - 56px))!important;
}
.ast-header__row{
  min-height:82px!important;
  padding:8px 0!important;
  display:grid!important;
  grid-template-columns:minmax(126px,170px) minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:clamp(18px,2.2vw,34px)!important;
}
.ast-logo{justify-content:flex-start!important;min-width:0!important;}
.ast-logo img{
  width:auto!important;
  height:auto!important;
  max-height:56px!important;
  max-width:154px!important;
  object-fit:contain!important;
}
.ast-nav{
  position:static!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  min-width:0!important;
  gap:clamp(12px,1.05vw,20px)!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  pointer-events:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.ast-nav a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#22363d!important;
  opacity:.78!important;
  font-size:clamp(12px,.74vw,14px)!important;
  font-weight:850!important;
  letter-spacing:.01em!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.ast-nav a:hover{opacity:1!important;color:#0c313b!important;}
.ast-nav a::after{bottom:-8px!important;background:#bf986e!important;display:block!important;}
.ast-actions{justify-content:flex-end!important;gap:10px!important;min-width:max-content!important;}
.ast-actions .ast-btn{
  height:48px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  font-size:14px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.ast-actions .ast-btn--primary{
  background:#0d2d36!important;
  color:#fff!important;
  box-shadow:0 18px 44px rgba(13,45,54,.18)!important;
}
.ast-actions .astoria-lang-switcher,
.ast-actions .ast-lang-switcher,
.ast-actions .astoria-lang-switcher a,
.ast-actions .ast-lang-switcher a,
.ast-actions .astoria-lang-switcher button,
.ast-actions .ast-lang-switcher button{
  height:46px!important;
  min-width:46px!important;
  border-radius:16px!important;
}

@media(max-width:1280px){
  .ast-header .ast-container{width:calc(100% - 36px)!important;}
  .ast-header__row{grid-template-columns:minmax(118px,150px) minmax(0,1fr) auto!important;gap:16px!important;}
  .ast-nav{gap:10px!important;}
  .ast-nav a{font-size:12px!important;}
  .ast-actions .ast-btn{height:44px!important;padding:0 16px!important;font-size:12.5px!important;}
}
@media(max-width:1120px){
  .ast-header__row{display:flex!important;min-height:72px!important;}
  .ast-nav{
    position:fixed!important;
    left:18px!important;
    right:18px!important;
    top:84px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    padding:18px!important;
    border-radius:26px!important;
    border:1px solid rgba(18,49,61,.08)!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 28px 90px rgba(18,49,61,.16)!important;
    -webkit-backdrop-filter:blur(20px) saturate(1.5)!important;
    backdrop-filter:blur(20px) saturate(1.5)!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(-10px) scale(.98)!important;
    pointer-events:none!important;
    z-index:10000!important;
    max-height:calc(100vh - 108px)!important;
    overflow:auto!important;
  }
  .ast-nav.is-open{opacity:1!important;visibility:visible!important;transform:translateY(0) scale(1)!important;pointer-events:auto!important;}
  .ast-nav a{min-height:48px!important;padding:10px 14px!important;border-radius:17px!important;background:#f7fbfc!important;border:1px solid rgba(18,49,61,.07)!important;justify-content:flex-start!important;opacity:1!important;font-size:13px!important;white-space:normal!important;}
  .ast-nav a::after{display:none!important;}
  .ast-hamburger{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:46px!important;height:46px!important;border-radius:999px!important;border:1px solid rgba(18,49,61,.08)!important;background:#fff!important;box-shadow:0 12px 26px rgba(18,49,61,.08)!important;}
  .ast-actions .ast-btn:not(.ast-btn--primary){display:none!important;}
}
@media(max-width:768px){
  .ast-header .ast-container{width:calc(100% - 28px)!important;}
  .ast-header__row{min-height:72px!important;gap:10px!important;}
  .ast-logo img{max-height:42px!important;max-width:142px!important;}
  .ast-actions .ast-btn--primary{display:none!important;}
  .ast-nav{grid-template-columns:1fr!important;left:12px!important;right:12px!important;top:82px!important;max-height:calc(100vh - 102px)!important;padding:14px!important;border-radius:22px!important;}
}
@media(max-width:420px){
  .ast-header .ast-container{width:calc(100% - 22px)!important;}
  .ast-logo img{max-height:38px!important;max-width:128px!important;}
  .ast-hamburger{width:42px!important;height:42px!important;}
}


/* ============================================================
   Astoria Theme v1.9.9 — header logo safety + section polish
   ============================================================ */
.ast-header{overflow:visible!important;}
.ast-logo{padding:4px 0!important;overflow:visible!important;line-height:0!important;}
.ast-logo img{display:block!important;object-fit:contain!important;}
.ast-header__row{align-items:center!important;}
@media(min-width:1121px){
  .ast-header__row{min-height:78px!important;}
  .ast-logo img{max-height:50px!important;max-width:150px!important;}
}
@media(max-width:1120px){
  .ast-header__row{min-height:72px!important;}
}


/* ============================================================
   Astoria Theme v2.0.0 — all devices layout stabilization
   ============================================================ */
html{overflow-x:hidden!important;scroll-padding-top:96px;}
body{overflow-x:hidden!important;}
.ast-container,
.ast-header .ast-container{width:min(1440px,calc(100% - clamp(24px,4vw,72px)))!important;max-width:1440px!important;margin-inline:auto!important;}
.ast-header{overflow:visible!important;}
.ast-header__row{display:grid!important;grid-template-columns:minmax(132px,176px) minmax(0,1fr) auto!important;align-items:center!important;gap:clamp(10px,1.2vw,22px)!important;min-height:78px!important;padding:8px 0!important;}
.ast-logo{min-width:0!important;line-height:0!important;align-self:center!important;overflow:visible!important;padding:4px 0!important;}
.ast-logo img{display:block!important;width:auto!important;height:auto!important;max-height:58px!important;max-width:170px!important;object-fit:contain!important;object-position:left center!important;}
.ast-nav{min-width:0!important;justify-content:center!important;gap:clamp(8px,.86vw,16px)!important;white-space:nowrap!important;overflow:visible!important;}
.ast-nav a{font-size:clamp(11px,.72vw,13px)!important;line-height:1.15!important;white-space:nowrap!important;letter-spacing:.01em!important;}
.ast-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;min-width:0!important;flex-wrap:nowrap!important;}
.ast-actions .ast-btn{white-space:nowrap!important;min-width:max-content!important;}
.ast-actions .ast-btn[href^="tel:"]{max-width:210px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.ast-section{padding-block:clamp(52px,7vw,112px)!important;}
.ast-section:first-of-type{padding-top:clamp(44px,6vw,94px)!important;}
.ast-hero__title,
.ast-page-title,
.ast-h1{font-size:clamp(42px,5vw,84px)!important;line-height:.98!important;letter-spacing:-.045em!important;}
.ast-h2,
.ast-section h2{font-size:clamp(34px,4vw,64px)!important;line-height:1!important;letter-spacing:-.04em!important;}
.ast-lead,.ast-section__lead{font-size:clamp(17px,1.6vw,24px)!important;line-height:1.65!important;max-width:850px!important;}
.ast-box,.ast-card,.ast-room,.ast-faq-item,.ast-rule-card{max-width:100%!important;}
.ast-gallery,.ast-rooms-grid,.ast-benefits__grid,.ast-contacts-grid{min-width:0!important;}
.ast-gallery>* ,.ast-rooms-grid>* ,.ast-benefits__grid>* ,.ast-contacts-grid>*{min-width:0!important;}
.ast-iframe-wrap iframe,.ast-map-wrap iframe{width:100%!important;max-width:100%!important;}
.ast-mobile-sticky-cta{z-index:9996!important;}
@media (max-width:1360px){
  .ast-header .ast-container{width:calc(100% - 32px)!important;}
  .ast-header__row{grid-template-columns:minmax(120px,152px) minmax(0,1fr) auto!important;gap:12px!important;}
  .ast-logo img{max-height:48px!important;max-width:148px!important;}
  .ast-nav{gap:8px!important;}
  .ast-nav a{font-size:11.5px!important;}
  .ast-actions .ast-btn[href^="tel:"]{max-width:175px!important;font-size:12px!important;padding-inline:13px!important;}
  .ast-actions .ast-btn:not([href^="tel:"]){font-size:12px!important;padding-inline:18px!important;}
}
@media (max-width:1180px){
  .ast-header__row{grid-template-columns:minmax(120px,150px) minmax(0,1fr) auto!important;}
  .ast-nav{gap:7px!important;}
  .ast-nav a{font-size:11px!important;}
  .ast-actions .ast-btn[href^="tel:"]{display:none!important;}
}
@media (max-width:1024px){
  html{scroll-padding-top:84px;}
  .ast-container,.ast-header .ast-container{width:calc(100% - 28px)!important;}
  .ast-header__row{display:flex!important;min-height:74px!important;padding:8px 0!important;gap:10px!important;}
  .ast-logo{margin-right:auto!important;}
  .ast-logo img{max-height:44px!important;max-width:150px!important;}
  .ast-actions{gap:8px!important;margin-left:auto!important;}
  .ast-actions .ast-lang-switcher{display:flex!important;}
  .ast-actions .ast-btn:not(.ast-lang-switcher a){display:none!important;}
  .ast-hamburger{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:46px!important;height:46px!important;border-radius:999px!important;border:1px solid rgba(18,49,61,.10)!important;background:#fff!important;box-shadow:0 12px 30px rgba(18,49,61,.08)!important;flex:0 0 auto!important;}
  .ast-hamburger span{width:20px!important;height:2px!important;background:#17333c!important;margin:3px 0!important;}
  .ast-nav{position:fixed!important;left:14px!important;right:14px!important;top:86px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;max-height:calc(100svh - 106px)!important;overflow:auto!important;padding:16px!important;border-radius:26px!important;background:rgba(255,255,255,.96)!important;border:1px solid rgba(18,49,61,.09)!important;box-shadow:0 24px 80px rgba(18,49,61,.20)!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important;opacity:0!important;visibility:hidden!important;transform:translateY(-8px) scale(.98)!important;pointer-events:none!important;transition:opacity .2s ease,transform .2s ease,visibility .2s ease!important;z-index:10001!important;}
  .ast-nav.is-open{opacity:1!important;visibility:visible!important;transform:translateY(0) scale(1)!important;pointer-events:auto!important;}
  .ast-nav a{display:flex!important;align-items:center!important;min-height:50px!important;padding:12px 14px!important;border-radius:18px!important;background:#f7fbfc!important;border:1px solid rgba(18,49,61,.07)!important;color:#17333c!important;font-size:13.5px!important;font-weight:900!important;white-space:normal!important;line-height:1.25!important;}
  .ast-nav a::after{display:none!important;}
  body.ast-menu-open{overflow:hidden!important;}
  .ast-section{padding-block:clamp(42px,7vw,76px)!important;}
  .ast-hero__grid,.ast-grid-2,.ast-contacts-grid{grid-template-columns:1fr!important;}
  .ast-rooms-grid{grid-template-columns:1fr!important;}
  .ast-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ast-g{grid-column:auto!important;min-height:240px!important;}
  .ast-g--1{grid-column:1/-1!important;}
}
@media (max-width:782px){
  body{padding-bottom:calc(88px + env(safe-area-inset-bottom))!important;}
  .ast-container,.ast-header .ast-container{width:calc(100% - 24px)!important;}
  .ast-header__row{min-height:70px!important;}
  .ast-logo img{max-height:40px!important;max-width:136px!important;}
  .ast-nav{grid-template-columns:1fr!important;top:80px!important;left:10px!important;right:10px!important;max-height:calc(100svh - 96px)!important;padding:12px!important;border-radius:22px!important;}
  .ast-hero__title,.ast-page-title,.ast-h1{font-size:clamp(36px,11.5vw,58px)!important;line-height:1.02!important;}
  .ast-h2,.ast-section h2{font-size:clamp(30px,9.5vw,48px)!important;line-height:1.04!important;}
  .ast-lead,.ast-section__lead{font-size:18px!important;line-height:1.65!important;}
  .ast-section{padding-block:42px!important;}
  .ast-box,.ast-card{border-radius:24px!important;padding:20px!important;}
  .ast-gallery{grid-template-columns:1fr!important;gap:12px!important;}
  .ast-g,.ast-g--1,.ast-g--2{min-height:220px!important;grid-column:1/-1!important;}
  .ast-iframe-wrap iframe{height:min(72svh,520px)!important;}
  .ast-map-wrap,.ast-map-wrap iframe{min-height:320px!important;}
  .ast-footer__grid{grid-template-columns:1fr!important;gap:28px!important;text-align:left!important;}
  .ast-footer__brand,.ast-footer__contact,.ast-footer__nav,.ast-footer__cta{text-align:left!important;}
  .ast-footer__links{grid-template-columns:1fr!important;}
  .ast-mobile-sticky-cta{display:grid!important;grid-template-columns:1fr 1fr 1.1fr!important;left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;padding:8px!important;border-radius:24px!important;gap:7px!important;box-shadow:0 14px 42px rgba(18,49,61,.20)!important;}
  .ast-mobile-sticky-cta__item{height:52px!important;border-radius:18px!important;min-width:0!important;}
  .ast-mobile-sticky-cta__item span{display:none!important;}
  .ast-mobile-sticky-cta__item b{font-size:14px!important;white-space:nowrap!important;}
  body.ast-booking-form-focus .ast-mobile-sticky-cta{opacity:0!important;transform:translateY(130%)!important;pointer-events:none!important;}
}
@media (max-width:520px){
  .ast-container,.ast-header .ast-container{width:calc(100% - 20px)!important;}
  .ast-header__row{min-height:66px!important;}
  .ast-logo img{max-height:36px!important;max-width:122px!important;}
  .ast-hamburger{width:42px!important;height:42px!important;}
  .ast-actions .ast-lang-switcher a{padding:6px 9px!important;font-size:12px!important;}
  .ast-box,.ast-card{padding:16px!important;border-radius:22px!important;}
  .ast-section{padding-block:34px!important;}
  .ast-hero__title,.ast-page-title,.ast-h1{font-size:clamp(32px,12vw,46px)!important;}
  .ast-h2,.ast-section h2{font-size:clamp(28px,10vw,40px)!important;}
  .ast-cta-row,.ast-room__actions,.ast-actions-bar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .ast-cta-row .ast-btn,.ast-room__actions .ast-btn{width:100%!important;justify-content:center!important;}
  .ast-mobile-sticky-cta{left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;border-radius:20px!important;}
  .ast-mobile-sticky-cta__item{height:48px!important;border-radius:16px!important;}
  .ast-mobile-sticky-cta__item b{font-size:13px!important;}
}
@media (max-width:380px){
  .ast-logo img{max-height:32px!important;max-width:108px!important;}
  .ast-mobile-sticky-cta{gap:5px!important;padding:6px!important;}
  .ast-mobile-sticky-cta__item b{font-size:12px!important;}
}
@media (hover:none) and (pointer:coarse){
  .ast-room:hover,.ast-g:hover,.ast-social-btn:hover{transform:none!important;}
}
@media (prefers-reduced-motion:reduce){
  .ast-fade-in,.fr-anim,.ast-nav,.ast-mobile-sticky-cta,*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;}
}


/* ============================================================
   Astoria Theme v2.0.5 — centered mobile footer
   ============================================================ */
@media (max-width: 782px){
  body.ast-footer-in-view .ast-mobile-sticky-cta{
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(130%)!important;
    pointer-events:none!important;
  }
  .ast-ft.ast-ft--v2{
    margin-bottom:0!important;
    overflow:hidden!important;
  }
}
