:root{--ocean:#073b4c;--blue:#0077b6;--cyan:#00b4d8;--sand:#f8f2e8;--dark:#061923;--muted:#6c757d}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#10232d;background:#fff}.site-header{background:rgba(6,25,35,.88);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.08)}.navbar{padding:.9rem 0}.brand-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--blue));margin-right:.35rem}.nav-link{font-weight:600;color:rgba(255,255,255,.84)!important}.nav-link:hover{color:#fff!important}.btn-primary{background:linear-gradient(135deg,var(--cyan),var(--blue));border:0;box-shadow:0 10px 24px rgba(0,119,182,.25)}.hero{min-height:100vh;display:flex;align-items:center;color:#fff;background:linear-gradient(rgba(6,25,35,.55),rgba(6,25,35,.76)),url('https://images.unsplash.com/photo-1544551763-46a013bb70d5?auto=format&fit=crop&w=1800&q=80') center/cover}.hero h1{font-size:clamp(2.4rem,7vw,5.5rem);line-height:.95;font-weight:850;letter-spacing:-.05em}.hero p{font-size:clamp(1.05rem,2vw,1.35rem);max-width:720px}.section-padding{padding:90px 0}.section-title{font-weight:850;letter-spacing:-.035em;color:var(--dark)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:800;color:var(--blue)}.feature-card,.room-card,.admin-card{border:0;border-radius:28px;box-shadow:0 18px 50px rgba(9,30,45,.08);overflow:hidden;background:#fff}.feature-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:#e7f8fd;color:var(--blue);font-size:1.65rem}.room-card img{height:240px;object-fit:cover}.bg-sand{background:var(--sand)}.stat{border-left:3px solid var(--cyan);padding-left:1rem}.stat strong{font-size:2.2rem;color:var(--ocean)}.cms-section.hero_section{padding:120px 0;color:#fff;background:linear-gradient(rgba(6,25,35,.45),rgba(6,25,35,.72)),var(--bg) center/cover}.cms-section.text_image,.cms-section.gallery,.cms-section.faq,.cms-section.cta,.cms-section.content{padding:90px 0}.gallery-img{height:280px;object-fit:cover;border-radius:24px}.footer{background:var(--dark);color:#fff}.footer a{color:rgba(255,255,255,.72);text-decoration:none}.footer a:hover{color:#fff}.admin-shell{min-height:100vh;background:#f6f9fb}.admin-sidebar{background:#061923;color:#fff;min-height:100vh}.admin-sidebar a{display:block;color:rgba(255,255,255,.72);padding:.75rem 1rem;border-radius:14px;text-decoration:none;margin:.18rem 0}.admin-sidebar a:hover,.admin-sidebar a.active{background:rgba(255,255,255,.1);color:#fff}.table-card{background:#fff;border-radius:22px;box-shadow:0 18px 50px rgba(9,30,45,.08);padding:1rem}.form-control,.form-select{border-radius:14px;padding:.75rem .9rem}.badge-soft{background:#e7f8fd;color:var(--blue)}@media(max-width:991px){.hero{min-height:760px}.section-padding{padding:64px 0}.admin-sidebar{min-height:auto}.navbar-collapse{padding-top:1rem}.room-card img{height:210px}}
/* Advanced CMS controls */
.nav-hover:hover>.dropdown-menu{display:block;margin-top:0}.dropdown-menu{border:0;border-radius:18px;padding:.6rem;box-shadow:0 18px 44px rgba(0,0,0,.18)}.dropdown-item{border-radius:12px}.lang-switch{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.45rem .8rem!important}.cms-section{background-size:cover;background-position:center}.cms-section.cards_grid,.cms-section.gallery_grid,.cms-section.rooms_grid,.page-content{padding:90px 0}.cms-section.hero_section{min-height:620px;display:flex;align-items:center}.section-item-card{overflow:hidden}.section-item-img{height:240px;object-fit:cover}.page-content.narrow .container{max-width:820px}.page-content.wide .container{max-width:1180px}.accordion-button{border-radius:16px!important}.form-switch .form-check-input{width:3rem;height:1.5rem}@media(max-width:991px){.nav-hover:hover>.dropdown-menu{display:none}.nav-hover .dropdown-menu.show{display:block}.cms-section.hero_section{min-height:520px}.cms-section.cards_grid,.cms-section.gallery_grid,.cms-section.rooms_grid,.page-content{padding:64px 0}}

/* Fixes: fixed header spacing, editable page hero, and reliable background display */
main{overflow:hidden}.page-spacer{padding-top:150px}.page-hero[style*="background-image"]{color:#fff}.page-hero[style*="background-image"] .eyebrow,.page-hero[style*="background-image"] .section-title,.page-hero[style*="background-image"] h1{color:#fff}.page-hero[style*="background-image"] .lead{color:rgba(255,255,255,.9)}.page-hero-img{max-height:440px;width:100%;object-fit:cover}.editable-home-hero{background-size:cover;background-position:center}.hero-copy p{font-size:inherit;margin:0}.cms-section:first-child.hero_section{padding-top:150px}.cms-section[style*="background-image"]{background-size:cover;background-position:center}.cms-section[style*="background-image"] .section-title,.cms-section[style*="background-image"] h1,.cms-section[style*="background-image"] h2,.cms-section[style*="background-image"] h3{color:inherit}.cms-section[style*="background-image"] .text-muted{color:rgba(255,255,255,.82)!important}.navbar .dropdown-toggle::after{vertical-align:.16em}.nav-hover>.dropdown-menu{top:100%}
@media(max-width:991px){.page-spacer{padding-top:120px}.cms-section:first-child.hero_section{padding-top:125px}.site-header{position:sticky!important}.hero{min-height:720px}}

/* Admin-controlled colors */
.site-header{background:var(--admin-nav-bg)!important}.site-header .nav-link,.site-header .navbar-brand{color:var(--admin-nav-text)!important}.site-header .navbar-toggler{border-color:color-mix(in srgb,var(--admin-nav-text),transparent 55%)}.footer{background:var(--admin-footer-bg)!important;color:var(--admin-footer-text)!important}.footer a{color:color-mix(in srgb,var(--admin-footer-text),transparent 28%)!important}.footer a:hover{color:var(--admin-footer-text)!important}.footer-muted{color:color-mix(in srgb,var(--admin-footer-text),transparent 35%)!important}

/* Logo controls */
.site-logo{max-height:44px;width:auto;margin-right:.55rem;border-radius:10px}.brand-name-text{vertical-align:middle}.admin-logo-preview{max-height:70px;max-width:220px;border:1px solid #dee2e6;border-radius:14px;padding:.35rem;background:#fff}

.language-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:16px;padding:.75rem}.language-check{display:flex;gap:.5rem;align-items:center;padding:.4rem .5rem;border-radius:12px;background:#fff}.language-check input{width:1.05rem;height:1.05rem}@media(max-width:575px){.language-check-grid{grid-template-columns:1fr}}


/* v0.6 media section spacing fix */
.cms-section.image_left,
.cms-section.text_image{
  padding:96px 0;
  overflow:hidden;
}
.cms-section.image_left .container,
.cms-section.text_image .container{
  position:relative;
  z-index:1;
}
.cms-section.image_left .row,
.cms-section.text_image .row{
  row-gap:2rem;
}
.cms-section.image_left img,
.cms-section.text_image img{
  display:block;
  width:100%;
  max-height:460px;
  object-fit:cover;
  border-radius:28px;
}
.cms-section.image_left[style*="background-image"],
.cms-section.text_image[style*="background-image"]{
  background-size:cover;
  background-position:center;
}
.cms-section.image_left[style*="background-image"]::before,
.cms-section.text_image[style*="background-image"]::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(6,25,35,.55);
  pointer-events:none;
}
.cms-section.image_left,
.cms-section.text_image{
  position:relative;
}
@media(max-width:991px){
  .cms-section.image_left,
  .cms-section.text_image{padding:70px 0;}
  .cms-section.image_left img,
  .cms-section.text_image img{max-height:340px;}
}


/* === Final responsive hardening === */
html, body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

.site-header .container{
  min-width:0;
}

.navbar-brand{
  min-width:0;
  max-width:min(68vw, 520px);
  display:flex;
  align-items:center;
  gap:.55rem;
  overflow:hidden;
}

.brand-name-text{
  display:inline-block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.site-logo{
  flex:0 0 auto;
  max-height:44px;
  max-width:54px;
  object-fit:contain;
}

.navbar-toggler{
  flex:0 0 auto;
}


.home-hero,
.editable-home-hero{
  min-height:clamp(680px, 100vh, 920px);
  background-size:cover;
  background-position:center;
}

.home-hero h1,
.editable-home-hero h1{
  font-size:clamp(2.8rem, 7vw, 5.6rem);
  line-height:.96;
  overflow-wrap:anywhere;
}

.cms-section{
  overflow:hidden;
}

.cms-section .section-title,
.cms-section h1,
.cms-section h2,
.cms-section h3{
  overflow-wrap:anywhere;
}

.cms-section img,
.room-card img,
.section-item-img,
.gallery-img,
.page-hero-img{
  max-width:100%;
}

@media(max-width:991px){
  .navbar{
    padding:.75rem 0;
  }

  .navbar-collapse{
    max-height:calc(100vh - 92px);
    overflow-y:auto;
  }

  .site-logo{
    max-height:40px;
    max-width:48px;
  }

  .page-spacer{
    padding-top:110px;
  }


  .home-hero,
  .editable-home-hero{
    min-height:760px;
    padding-top:120px;
  }
}

@media(max-width:575px){
  .navbar-brand{
    max-width:calc(100vw - 110px);
    gap:.45rem;
  }

  .site-logo{
    max-height:38px;
    max-width:44px;
    border-radius:8px;
  }

  .brand-name-text{
    font-size:1rem;
  }


  .home-hero,
  .editable-home-hero{
    min-height:720px;
    padding:130px 22px 80px;
  }

  .home-hero h1,
  .editable-home-hero h1{
    font-size:clamp(2.55rem, 15vw, 4.1rem);
    line-height:1.02;
  }

  .cms-section.image_left,
  .cms-section.text_image,
  .cms-section.cards_grid,
  .cms-section.gallery_grid,
  .cms-section.rooms_grid,
  .cms-section.content,
  .cms-section.cta,
  .page-content{
    padding:64px 0;
  }

  .table-card{
    padding:.85rem;
  }
}


/* === Room pricing and rooms hero controls === */
.rooms-hero{
  min-height:inherit;
}
.room-price-box strong,
.room-card strong{
  font-size:1.05rem;
}
.room-price-box{
  background:#fff;
  border-radius:24px;
  padding:1.25rem;
  box-shadow:0 18px 50px rgba(9,30,45,.08);
  display:inline-block;
  min-width:min(100%, 320px);
}
.room-card .text-decoration-line-through{
  opacity:.7;
}

@media(max-width:575px){
  .room-card .d-flex{
    align-items:flex-start!important;
    flex-direction:column;
  }
}


/* v0.9 page hero color control from admin/pages.php */
.page-hero[style*="color:"] .eyebrow,
.page-hero[style*="color:"] .section-title,
.page-hero[style*="color:"] h1,
.page-hero[style*="color:"] .lead,
.page-hero[style*="color:"] p,
.editable-home-hero[style*="color:"] .eyebrow,
.editable-home-hero[style*="color:"] h1,
.editable-home-hero[style*="color:"] .hero-copy{
  color:inherit!important;
}



/* v0.1.9: make admin section text color apply to frontend headings and body text. */
.cms-section[style*="color:"] > .container > .row > div > .section-title,
.cms-section[style*="color:"] > .container > .row > div > h1,
.cms-section[style*="color:"] > .container > .row > div > h2,
.cms-section[style*="color:"] > .container > .text-center > .section-title,
.cms-section[style*="color:"] > .container > .text-center > h1,
.cms-section[style*="color:"] > .container > .text-center > h2,
.cms-section[style*="color:"] > .container .eyebrow{
  color:inherit!important;
}
.cms-section[style*="color:"] > .container .lead,
.cms-section[style*="color:"] > .container .fs-5{
  color:inherit!important;
}

/* Social media and floating chat controls */
.footer-social-link {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--admin-footer-text, #fff);
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.footer-social-link:hover {
  color: var(--admin-footer-text, #fff);
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.5);
  transform: translateY(-2px);
}
.floating-whatsapp {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1050;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 0;
  background: #25d366;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 18px 36px rgba(0,0,0,.2);
}
.floating-whatsapp:hover {
  color: #fff;
  transform: translateY(-1px);
}
.floating-whatsapp i {
  font-size: 1.25rem;
}
@media (max-width: 575px) {
  .floating-whatsapp span { display: none; }
  .floating-whatsapp { width: 54px; height: 54px; padding: 0; justify-content: center; }
}


.cookie-consent-banner{position:fixed;left:24px;right:24px;bottom:24px;z-index:3000;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid rgba(6,25,35,.12);box-shadow:0 18px 50px rgba(9,30,45,.18);border-radius:22px;padding:1rem 1.15rem;max-width:920px;margin:auto}.cookie-consent-banner p{color:#52636e}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.calendar-head div{font-weight:800;color:#52636e;padding:.5rem}.calendar-day{min-height:145px;border:1px solid #e8eef2;border-radius:18px;background:#fff;padding:.65rem;overflow:hidden}.calendar-day.muted{background:#f6f9fb}.calendar-day.today{box-shadow:0 0 0 2px var(--cyan) inset}.calendar-date{font-weight:800;margin-bottom:.45rem}.calendar-event{display:block;text-decoration:none;font-size:.78rem;line-height:1.2;padding:.35rem .45rem;border-radius:10px;margin-bottom:.3rem;color:#10232d;background:#eef8fb}.calendar-event.room{background:#e8f5e9}.calendar-event.dive{background:#e7f8fd}.calendar-event span{font-weight:800;text-transform:uppercase;font-size:.65rem;margin-right:.2rem}@media(max-width:767px){.cookie-consent-banner{left:12px;right:12px;bottom:12px;align-items:flex-start;flex-direction:column}.calendar-grid{grid-template-columns:1fr}.calendar-head{display:none}.calendar-day.muted{display:none}}

/* Final hero height fix: all page heroes match home-style height */
.page-hero {
  min-height: calc(100vh - 96px) !important;
  padding: 190px 0 170px !important;
  display: flex !important;
  align-items: center !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.page-hero .section-title,
.page-hero h1 {
  font-size: clamp(4rem, 7vw, 6.8rem);
  line-height: .95;
}

.page-hero .lead {
  font-size: clamp(1.15rem, 1.55vw, 1.55rem);
  max-width: 980px;
}

@media(max-width: 991px) {
  .page-hero {
    min-height: 760px !important;
    padding: 155px 0 115px !important;
  }
}

@media(max-width: 575px) {
  .page-hero {
    min-height: 680px !important;
    padding: 135px 0 95px !important;
  }

  .page-hero .section-title,
  .page-hero h1 {
    font-size: clamp(3rem, 15vw, 4.4rem);
  }
}

/* Member/service offer price display */
.service-price-box strong{
  font-size:1.05rem;
}
.service-price-box .text-decoration-line-through{
  opacity:.7;
}


/* v0.1.28 admin mobile/responsive report hardening */
.admin-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.admin-table-wrap .table-responsive{
  min-width:100%;
}
.admin-shell main{
  min-width:0;
}
.admin-shell .table-card,
.admin-shell .admin-card,
.admin-shell .form-control,
.admin-shell .form-select{
  max-width:100%;
}
@media(max-width:991px){
  .admin-shell .container-fluid,
  .admin-shell .row{
    --bs-gutter-x:0;
  }
  .admin-sidebar{
    position:relative;
    width:100%;
    min-height:auto;
    max-height:70vh;
    overflow-y:auto;
  }
  .admin-shell main{
    width:100%;
    padding:1rem!important;
    overflow-x:hidden;
  }
  .admin-shell .table-card{
    padding:.9rem;
    border-radius:18px;
  }
  .admin-shell table{
    min-width:720px;
  }
  .admin-shell .btn{
    white-space:nowrap;
  }
}
@media(max-width:575px){
  .admin-shell h1.section-title{
    font-size:2rem;
  }
  .admin-shell .table-card{
    margin-left:-.25rem;
    margin-right:-.25rem;
  }
}
