
/* Hotel Las Gaviotas — World-class refinement layer */
:root{--wc-accent:#64cfe3;--wc-navy:#082d3d;--wc-gold:#d7b46a;--wc-soft:#f5fafc}
html{scroll-padding-top:88px}
body{overflow-x:hidden}
::selection{background:rgba(77,184,208,.25)}
:focus-visible{outline:3px solid var(--wc-accent);outline-offset:3px}
.direct-booking-strip{position:relative;z-index:2;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 8px 30px rgba(17,63,79,.05)}
.direct-booking-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.direct-booking-grid>div{display:grid;grid-template-columns:38px 1fr;gap:0 12px;padding:22px 24px;border-right:1px solid var(--line)}
.direct-booking-grid>div:last-child{border-right:0}.direct-booking-grid span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e9f7fa;color:#14677d;font-weight:900}
.direct-booking-grid strong,.direct-booking-grid small{display:block}.direct-booking-grid strong{font-size:.82rem}.direct-booking-grid small{margin-top:3px;color:var(--muted);font-size:.68rem;line-height:1.45}
.worldclass-promise{background:linear-gradient(180deg,#f8fcfd,#eef7fa)}
.promise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.promise-card{position:relative;min-height:250px;padding:30px;border:1px solid rgba(18,72,91,.1);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 18px 50px rgba(17,62,79,.07);overflow:hidden}
.promise-card>span{display:block;margin-bottom:42px;color:#69b8cb;font-size:.72rem;font-weight:900;letter-spacing:.16em}.promise-card h3{margin:0 0 10px;font-size:1.2rem}.promise-card p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.65}
.promise-card::after{content:"";position:absolute;right:-42px;bottom:-54px;width:135px;height:135px;border:1px solid rgba(99,194,215,.22);border-radius:50%}
.policy-bar{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px;border:1px solid rgba(18,72,91,.1);border-radius:20px;background:#fff;overflow:hidden}
.policy-bar>div{padding:20px 24px;border-right:1px solid var(--line)}.policy-bar>div:last-child{border-right:0}.policy-bar strong,.policy-bar span{display:block}.policy-bar strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.policy-bar span{margin-top:4px;color:var(--muted);font-size:.76rem}
.mobile-booking-bar{display:none}.back-to-top{position:fixed;z-index:1450;right:205px;bottom:27px;width:46px;height:46px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(8,45,61,.94);color:#fff;box-shadow:0 12px 32px rgba(0,0,0,.24);opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s;backdrop-filter:blur(12px);cursor:pointer}.back-to-top:hover{transform:translateY(-3px);background:#0b5d78}.back-to-top.visible{opacity:1;visibility:visible;transform:none}
.connection-status{position:fixed;z-index:2500;left:50%;top:88px;transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:#7d3035;color:#fff;font-size:.72rem;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.primary-nav a.active{color:var(--primary);font-weight:850}.primary-nav a.active::after{transform:scaleX(1)}
.room-card,.service-card,.review-card,.promise-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.room-card:hover,.service-card:hover,.review-card:hover,.promise-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px rgba(17,62,79,.12)}
body.dark-mode .direct-booking-strip{background:#0b1d25;border-color:rgba(255,255,255,.08)}body.dark-mode .direct-booking-grid>div{border-color:rgba(255,255,255,.08)}body.dark-mode .direct-booking-grid span{background:#14343f;color:#9de8f5}
body.dark-mode .worldclass-promise{background:linear-gradient(180deg,#0b1921,#10242d)!important}body.dark-mode .promise-card,body.dark-mode .policy-bar{background:#122932;border-color:rgba(188,226,236,.11);color:#edf8fb}body.dark-mode .policy-bar>div{border-color:rgba(255,255,255,.08)}body.dark-mode .promise-card p,body.dark-mode .policy-bar span,body.dark-mode .direct-booking-grid small{color:#a9c4cc}
body.dark-mode .back-to-top{background:rgba(17,52,64,.94)}
@media(max-width:1000px){.direct-booking-grid,.promise-grid{grid-template-columns:repeat(2,1fr)}.direct-booking-grid>div:nth-child(2){border-right:0}.direct-booking-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.policy-bar{grid-template-columns:repeat(2,1fr)}.policy-bar>div:nth-child(2){border-right:0}.policy-bar>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:700px){body{padding-bottom:76px}.direct-booking-grid,.promise-grid,.policy-bar{grid-template-columns:1fr}.direct-booking-grid>div,.policy-bar>div{border-right:0;border-bottom:1px solid var(--line)}.direct-booking-grid>div:last-child,.policy-bar>div:last-child{border-bottom:0}.promise-card{min-height:auto}.mobile-booking-bar{position:fixed;z-index:1800;left:10px;right:10px;bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 16px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(7,37,49,.94);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.28);backdrop-filter:blur(16px)}.mobile-booking-bar small,.mobile-booking-bar strong{display:block}.mobile-booking-bar small{opacity:.65;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}.mobile-booking-bar strong{font-size:.78rem}.mobile-booking-bar .button{min-height:44px;padding:0 17px}.back-to-top{right:16px;bottom:158px}.hotel-chat{bottom:94px!important}.chat-window{max-height:calc(100vh - 120px)!important}.connection-status{top:76px;max-width:calc(100% - 20px);text-align:center}}
@media(prefers-reduced-motion:reduce){.room-card,.service-card,.review-card,.promise-card,.back-to-top{transition:none!important}}

/* Corrección definitiva: menú móvil visible y comentarios Admin con espaciado */
@media (max-width: 860px) {
  .site-header .primary-nav {
    position: fixed !important;
    z-index: 9999 !important;
    top: calc(var(--header-h) + 10px) !important;
    left: 14px !important;
    right: 14px !important;
    bottom: auto !important;
    width: auto !important;
    max-height: calc(100dvh - var(--header-h) - 28px) !important;
    overflow-y: auto !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    padding: 12px !important;
    border: 1px solid rgba(10, 64, 84, .14) !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    color: #123b4b !important;
    box-shadow: 0 24px 70px rgba(0, 24, 36, .24) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    backdrop-filter: blur(18px) !important;
  }
  .site-header .primary-nav.open { display: flex !important; }
  .site-header .primary-nav a,
  .site-header:not(.scrolled) .primary-nav.open a {
    display: block !important;
    width: 100% !important;
    padding: 14px 15px !important;
    border-radius: 12px !important;
    color: #123b4b !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
  }
  .site-header .primary-nav a::after { display: none !important; }
  .site-header .primary-nav a:hover,
  .site-header .primary-nav a:focus-visible,
  .site-header .primary-nav a.active {
    background: #eaf7fb !important;
    color: #075d7b !important;
  }
  .site-header:has(.primary-nav.open) {
    color: #123b4b !important;
    background: rgba(255,255,255,.98) !important;
  }
  body.dark-mode .site-header .primary-nav {
    background: #0d2630 !important;
    color: #f3fbfd !important;
    border-color: rgba(190, 228, 238, .18) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.48) !important;
  }
  body.dark-mode .site-header .primary-nav a,
  body.dark-mode .site-header:not(.scrolled) .primary-nav.open a {
    color: #f3fbfd !important;
    background: transparent !important;
  }
  body.dark-mode .site-header .primary-nav a:hover,
  body.dark-mode .site-header .primary-nav a:focus-visible,
  body.dark-mode .site-header .primary-nav a.active {
    background: rgba(83,192,216,.15) !important;
    color: #b8f2ff !important;
  }
  body.dark-mode .site-header:has(.primary-nav.open) {
    color: #ffffff !important;
    background: rgba(9,25,33,.98) !important;
  }
}

.review-management .admin-section-head {
  margin: 0 !important;
}
.review-management #reviewReplyList {
  padding: 24px 26px 28px !important;
}
.review-management #reviewReplyList .reply-admin-item {
  margin: 0 0 18px !important;
  padding: 22px !important;
  border: 1px solid rgba(9,75,106,.11) !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg,#ffffff,#f8fcfe) !important;
}
.review-management #reviewReplyList .reply-admin-item:last-child {
  margin-bottom: 0 !important;
}
.review-management #reviewReplyList .reply-review-copy,
.review-management #reviewReplyList .reply-editor,
.review-management #reviewReplyList .reply-admin-actions {
  min-width: 0;
}
body.dark-mode .review-management #reviewReplyList .reply-admin-item {
  background: linear-gradient(135deg,#102630,#0d2028) !important;
  border-color: rgba(176,220,233,.14) !important;
}
@media (max-width: 700px) {
  .review-management #reviewReplyList { padding: 18px !important; }
  .review-management #reviewReplyList .reply-admin-item { padding: 18px !important; }
}

/* Corrección definitiva del menú hamburguesa: todas las opciones visibles */
@media (max-width: 860px) {
  .site-header .primary-nav.open > a,
  .site-header .primary-nav.open > a:not(.active),
  .site-header:not(.scrolled) .primary-nav.open > a:not(.active) {
    display: block !important;
    width: 100% !important;
    color: #123b4b !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    font-weight: 650 !important;
    text-shadow: none !important;
  }
  .site-header .primary-nav.open > a.active {
    color: #075d7b !important;
    background: #eaf7fb !important;
    font-weight: 850 !important;
  }
  body.dark-mode .site-header .primary-nav.open > a,
  body.dark-mode .site-header .primary-nav.open > a:not(.active),
  body.dark-mode .site-header:not(.scrolled) .primary-nav.open > a:not(.active) {
    color: #f3fbfd !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    font-weight: 650 !important;
  }
  body.dark-mode .site-header .primary-nav.open > a.active {
    color: #b8f2ff !important;
    background: rgba(83,192,216,.15) !important;
    font-weight: 850 !important;
  }
}
