@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700;800&display=swap');

:root{
  --ivory:#f7f2ea;
  --linen:#ebe0d2;
  --ink:#071d33;
  --gold:#b58b55;
  --white:#ffffff;
  --muted:#6f746d;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Montserrat,Arial,sans-serif;background:var(--ivory);color:var(--ink);line-height:1.7}
a{text-decoration:none;color:inherit}

.hero{min-height:100vh;position:relative;color:white;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 6vw 170px;overflow:hidden}
.split-hero{background:#071d33}
.hero-half{position:absolute;top:0;width:50%;height:100%;background-size:cover;background-position:center;filter:saturate(1.08) contrast(1.06) brightness(1.02);transform:scale(1.01)}
.villa-side{left:0;background-image:url('villa-hero.jpg')}
.beach-side{right:0;background-image:url('beach-hero.jpg');background-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,29,51,.48),rgba(7,29,51,.22),rgba(7,29,51,.45));z-index:1}
.hero::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(255,255,255,.55);z-index:2}

.nav{position:absolute;top:0;left:0;width:100%;padding:22px 5vw;display:flex;justify-content:space-between;align-items:center;z-index:5}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:190px;height:auto;object-fit:contain;background:white;border-radius:0;padding:8px;box-shadow:0 16px 48px rgba(0,0,0,.22)}
.navlinks{display:flex;gap:32px;background:rgba(7,29,51,.28);padding:14px 20px;backdrop-filter:blur(8px)}
.navlinks a{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800}

.hero-content,.booking-strip{position:relative;z-index:4}
.overline{text-transform:uppercase;letter-spacing:5px;font-size:12px;font-weight:800;margin-bottom:20px;color:#f1dfc5}
.overline.dark{color:var(--gold)}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1}
h1{font-size:clamp(64px,10vw,150px);margin-bottom:20px;text-shadow:0 18px 55px rgba(0,0,0,.35)}
.subtitle{font-size:18px;max-width:720px;margin:0 auto 34px;color:#f7f4ee;text-shadow:0 8px 30px rgba(0,0,0,.55)}
.outline-btn{display:inline-block;border:1px solid rgba(255,255,255,.8);color:white;padding:15px 34px;text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:900;transition:.25s;background:rgba(7,29,51,.18)}
.outline-btn:hover{background:white;color:var(--ink)}

.booking-strip{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);width:min(1120px,90vw);background:rgba(255,255,255,.94);color:var(--ink);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;box-shadow:0 28px 80px rgba(0,0,0,.24)}
.booking-strip div{padding:24px 28px;text-align:left;border-right:1px solid #ddd2c3}
.booking-strip span{display:block;text-transform:uppercase;letter-spacing:2px;font-size:10px;color:var(--gold);font-weight:900}
.booking-strip strong{font-size:14px}
.booking-strip a{height:100%;display:flex;align-items:center;justify-content:center;background:var(--ink);color:white;text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:900}

.intro{max-width:980px;margin:auto;text-align:center;padding:120px 7vw}
.intro h2,.services h2,.contact h2{font-size:clamp(48px,7vw,92px);margin-bottom:26px}
.intro p:last-child{font-size:19px;color:var(--muted);max-width:760px;margin:auto}

.cinematic-image{padding:0 5vw 110px}
.cinematic-image div{min-height:72vh;background:linear-gradient(rgba(7,29,51,.05),rgba(7,29,51,.45)),url('beach-hero.jpg');background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:48px;color:white;box-shadow:0 30px 80px rgba(7,29,51,.12)}
.cinematic-image p{font-family:'Cormorant Garamond',serif;font-size:54px;max-width:720px;line-height:1;text-shadow:0 12px 30px rgba(0,0,0,.35)}

.split{display:grid;grid-template-columns:1fr 1fr;min-height:720px;background:white}
.split-image{background:linear-gradient(rgba(7,29,51,.05),rgba(7,29,51,.18)),url('fishing.jpg');background-size:cover;background-position:center}
.split-text{padding:100px 7vw;display:flex;flex-direction:column;justify-content:center}
.split-text h2{font-size:clamp(46px,6vw,82px);margin-bottom:24px}
.split-text p:last-child{color:var(--muted);font-size:18px}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d8c8b5}
.cards article{min-height:360px;background:var(--ivory);padding:48px;display:flex;flex-direction:column;justify-content:flex-end}
.cards span{color:var(--gold);letter-spacing:3px;font-size:12px;font-weight:900}
.cards h3{font-size:58px;margin:12px 0}
.cards p{color:var(--muted)}

.services{text-align:center;padding:120px 7vw;background:#fbf8f2}
.service-grid{max-width:1040px;margin:48px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #d9cbb9;border-left:1px solid #d9cbb9}
.service-grid div{min-height:128px;display:flex;align-items:center;justify-content:center;padding:22px;border-right:1px solid #d9cbb9;border-bottom:1px solid #d9cbb9;font-family:'Cormorant Garamond',serif;font-size:28px;background:rgba(255,255,255,.42)}

.statement{min-height:76vh;background:linear-gradient(rgba(7,29,51,.38),rgba(7,29,51,.52)),url('villa-hero.jpg');background-size:cover;background-position:center;color:white;display:flex;align-items:center;justify-content:center;text-align:center;padding:7vw}
.statement h2{font-size:clamp(56px,8vw,120px);max-width:1100px;text-shadow:0 18px 55px rgba(0,0,0,.45)}

.contact{text-align:center;padding:120px 7vw;background:#fffaf3}
.contact-layout{max-width:1180px;margin:48px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;text-align:left}
.contact-panel{display:grid;grid-template-columns:1fr;gap:1px;background:#d9cbb9;text-align:left}
.contact-panel div{background:var(--ivory);padding:26px;min-height:105px}
.contact-panel small,.contact-form label{display:block;text-transform:uppercase;letter-spacing:2px;font-size:10px;color:var(--gold);font-weight:900;margin-bottom:10px}
.contact-panel strong{font-size:16px;word-break:break-word;color:var(--ink)}
.contact-form{background:white;padding:34px;box-shadow:0 24px 70px rgba(7,29,51,.10)}
.contact-form input,.contact-form textarea{width:100%;border:1px solid #d9cbb9;background:#fbf8f2;padding:14px 15px;margin:8px 0 18px;font-family:Montserrat,Arial,sans-serif;color:var(--ink);font-size:14px;outline:none}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold);background:white}
.dark-btn{display:inline-block;background:var(--ink);color:white;padding:16px 36px;text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:900;border:0;cursor:pointer}

footer{background:var(--ink);color:white;text-align:center;padding:44px 20px}
footer img{width:170px;height:auto;object-fit:contain;background:white;padding:8px;margin-bottom:16px}
footer p{font-family:'Cormorant Garamond',serif;font-size:36px}
footer span{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:#e8d3b2}

@media(max-width:900px){
  .nav{flex-direction:column;gap:18px}.navlinks{flex-wrap:wrap;justify-content:center;gap:16px}.brand img{width:150px}
  .hero-half{width:100%;height:50%}.villa-side{top:0;left:0}.beach-side{top:50%;right:auto;left:0}.hero::after{display:none}.hero-overlay{background:linear-gradient(rgba(7,29,51,.50),rgba(7,29,51,.35),rgba(7,29,51,.60))}
  .booking-strip,.split,.cards,.service-grid,.contact-layout{grid-template-columns:1fr}.booking-strip{position:static;transform:none;margin:40px auto 0}.hero{padding-bottom:60px}.contact-panel{grid-template-columns:1fr}
}

.inline-btn{margin-top:28px;align-self:flex-start}
.back-top{position:fixed;right:20px;bottom:88px;z-index:20;background:var(--ink);color:white;padding:12px 16px;border-radius:999px;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:900;box-shadow:0 14px 35px rgba(0,0,0,.22)}
.whatsapp-float{position:fixed;right:20px;bottom:24px;z-index:20;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#25D366;color:white;font-size:25px;box-shadow:0 14px 35px rgba(0,0,0,.25)}

.page-hero{min-height:70vh;position:relative;color:white;background:linear-gradient(rgba(7,29,51,.42),rgba(7,29,51,.58)),url('villa-hero.jpg');background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;text-align:center;padding:150px 6vw 90px}
.booking-hero{background-image:linear-gradient(rgba(7,29,51,.42),rgba(7,29,51,.58)),url('courtyard.jpg')}
.solid-nav{background:linear-gradient(rgba(7,29,51,.72),rgba(7,29,51,.10))}
.page-hero-content{max-width:960px}
.page-hero h1{font-size:clamp(58px,9vw,130px)}

.rooms-section{padding:110px 6vw;text-align:center;background:#fffaf3}
.rooms-section h2,.booking-copy h2{font-size:clamp(48px,7vw,92px);margin-bottom:34px}
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1240px;margin:48px auto 0;text-align:left}
.room-card{background:white;box-shadow:0 24px 70px rgba(7,29,51,.10);overflow:hidden;display:flex;flex-direction:column}
.room-card img{width:100%;height:290px;object-fit:cover;filter:saturate(1.08) contrast(1.04) brightness(1.03)}
.room-card div{padding:30px}
.room-card h3{font-size:44px;margin-bottom:10px}
.room-card p{color:var(--muted);margin-bottom:22px}
.room-card a{display:inline-block;background:var(--ink);color:white;padding:12px 22px;text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:900}

.booking-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:42px;padding:110px 6vw;background:var(--ivory);align-items:start}
.booking-copy{background:white;padding:48px;box-shadow:0 24px 70px rgba(7,29,51,.08)}
.booking-copy p:last-of-type{color:var(--muted);font-size:17px;margin-bottom:28px}
.quick-contact{display:grid;gap:12px;margin-top:26px}
.quick-contact a{background:#fbf8f2;border:1px solid #d9cbb9;padding:14px 16px;font-weight:800}
.booking-form{background:white;padding:38px;box-shadow:0 24px 70px rgba(7,29,51,.10)}
.booking-form label{display:block;text-transform:uppercase;letter-spacing:2px;font-size:10px;color:var(--gold);font-weight:900;margin-bottom:14px}
.booking-form input,.booking-form textarea,.booking-form select{width:100%;border:1px solid #d9cbb9;background:#fbf8f2;padding:14px 15px;margin:8px 0 16px;font-family:Montserrat,Arial,sans-serif;color:var(--ink);font-size:14px;outline:none}
.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus{border-color:var(--gold);background:white}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-row.three{grid-template-columns:repeat(3,1fr)}
.outline-dark-btn{display:inline-block;border:1px solid var(--ink);color:var(--ink);padding:15px 34px;text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:900}
.thanks-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8vw;background:#fffaf3}
.thanks-page img{width:220px;background:white;padding:10px;margin-bottom:24px;box-shadow:0 18px 60px rgba(7,29,51,.12)}
.thanks-page h1{font-size:clamp(70px,10vw,150px);color:var(--ink)}
.thanks-page p:not(.overline){font-size:19px;color:var(--muted);margin:18px auto 32px;max-width:620px}
.thanks-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

@media(max-width:900px){
  .room-grid,.booking-section,.form-row,.form-row.three{grid-template-columns:1fr}
  .room-card img{height:240px}
  .back-top{right:14px;bottom:82px}.whatsapp-float{right:14px;bottom:18px}
}
.amenity-grid{max-width:1160px;margin:48px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.amenity-grid>div{background:white;border:1px solid #e2d7c7;padding:32px 24px;min-height:210px;box-shadow:0 16px 45px rgba(7,29,51,.06)}.amenity-grid span{font-size:38px;display:block;margin-bottom:18px}.amenity-grid h3{font-size:30px;margin-bottom:10px}.amenity-grid p{color:var(--muted)}
.room-grid.four{grid-template-columns:repeat(2,1fr)}.room-card button{display:inline-block;background:var(--ink);color:#fff;padding:12px 22px;text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:900;border:0;cursor:pointer}.mini-gallery{display:grid!important;grid-template-columns:repeat(3,1fr);padding:0!important;gap:2px}.mini-gallery img{height:105px;width:100%;object-fit:cover}.availability-box{padding:20px;background:#fbf8f2;border:1px solid #d9cbb9;margin:24px 0}.available{color:#19733b}.unavailable{color:#a22929}.booking-form button:disabled{opacity:.55;cursor:not-allowed}.whatsapp-menu{position:fixed;right:20px;bottom:24px;z-index:21}.whatsapp-menu .whatsapp-float{position:static}.whatsapp-menu>div{display:none;position:absolute;right:0;bottom:60px;background:white;box-shadow:0 12px 35px rgba(0,0,0,.2);min-width:190px}.whatsapp-menu:hover>div{display:grid}.whatsapp-menu>div a{padding:12px 14px;border-bottom:1px solid #eee;font-size:12px;font-weight:700}
.admin-body{background:#f4efe7;color:var(--ink);min-height:100vh}.admin-login{width:min(430px,90vw);margin:10vh auto;background:white;padding:42px;box-shadow:0 20px 60px rgba(0,0,0,.12)}.admin-login img{width:180px}.admin-login h1{font-size:54px;margin:22px 0}.admin-login label{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.admin-login input{width:100%;padding:14px;margin:8px 0 20px;border:1px solid #ccc}.admin-head{display:flex;justify-content:space-between;align-items:center;padding:28px 5vw;background:white;border-bottom:1px solid #ddd}.admin-head h1{font-size:48px}.admin-main{padding:36px 5vw}.admin-card{background:white;padding:28px;margin-bottom:26px;box-shadow:0 12px 38px rgba(0,0,0,.06)}.admin-card h2{font-size:38px;margin-bottom:22px}.admin-block-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.5fr auto;gap:12px}.admin-block-form input,.admin-block-form select{padding:12px;border:1px solid #ccc}.table-wrap{overflow:auto}.pms-table{border-collapse:collapse;width:100%;min-width:900px}.pms-table th,.pms-table td{padding:12px;border:1px solid #ddd;text-align:left;vertical-align:top}.pms-table th{background:#f6f0e7}.pms-table select,.pms-table button{padding:7px}.status{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.status.pending{background:#fff0c9}.status.confirmed{background:#d6f3df}.status.cancelled{background:#f5d6d6}.alert{padding:14px 18px;margin-bottom:18px}.alert.success{background:#d6f3df}.alert.error{background:#f5d6d6}
@media(max-width:900px){.amenity-grid,.room-grid.four{grid-template-columns:1fr}.admin-block-form{grid-template-columns:1fr}.mini-gallery img{height:90px}}

/* Enhanced logo, room sliders and fishing feature */
.brand img{width:220px;max-height:92px;padding:5px;border-radius:4px}
footer img{width:220px;max-height:105px;padding:6px}
.rooms-intro{max-width:760px;margin:-14px auto 36px;color:var(--muted);font-size:17px}
.room-card{display:block}
.room-card-copy{padding:30px!important}
.room-gallery{position:relative;padding:0!important;background:#071d33;overflow:hidden}
.room-slides{position:relative;padding:0!important;aspect-ratio:4/3;background:#071d33}
.room-slide{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;opacity:0;visibility:hidden;transition:opacity .45s ease;filter:saturate(1.08) contrast(1.04) brightness(1.03)}
.room-slide.active{opacity:1;visibility:visible}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(7,29,51,.58)!important;color:white!important;padding:0!important;font-size:22px!important;letter-spacing:0!important;display:flex!important;align-items:center;justify-content:center;backdrop-filter:blur(5px)}
.gallery-arrow.prev{left:14px}.gallery-arrow.next{right:14px}
.gallery-count{position:absolute;top:14px;right:14px;padding:7px 11px!important;background:rgba(7,29,51,.68);color:white;font-size:11px;font-weight:800;letter-spacing:1px;border-radius:20px;z-index:3}
.gallery-dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex!important;justify-content:center;gap:6px;padding:8px 10px!important;max-width:86%;overflow:hidden;background:rgba(7,29,51,.42);border-radius:20px;z-index:3}
.gallery-dot{width:7px!important;height:7px!important;min-width:7px;border-radius:50%;padding:0!important;background:rgba(255,255,255,.52)!important;letter-spacing:0!important}
.gallery-dot.active{background:white!important;transform:scale(1.35)}
.fishing-experience{min-height:760px}
.fishing-experience .split-image{background-position:center 58%}
.fishing-experience .split-text{background:white}
@media(max-width:900px){.brand img{width:170px;max-height:74px}.room-slides{aspect-ratio:4/3}.gallery-dots{gap:5px}.gallery-dot{width:6px!important;height:6px!important;min-width:6px}.fishing-experience{min-height:auto}.fishing-experience .split-image{min-height:68vh;background-position:center}.fishing-experience .split-text{padding:70px 8vw}}

/* Staff access and copyright */
footer .employee-signin{display:block;width:max-content;margin:20px auto 10px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:3px}
footer .employee-signin:hover{color:#e8d3b2}
footer .copyright{display:block;margin-top:8px;color:rgba(255,255,255,.7);font-size:12px;letter-spacing:.4px}
.staff-login-page{min-height:100vh;background:#f4efe7;color:var(--ink)}
.staff-login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}
.staff-login-image{background:linear-gradient(rgba(9,31,57,.12),rgba(9,31,57,.32)),url('villa-hero.jpg') center/cover no-repeat;min-height:100vh}
.staff-login-panel{display:flex;flex-direction:column;justify-content:center;padding:8vw;max-width:720px;background:#fff}
.staff-login-logo img{width:min(280px,80%);height:auto;margin-bottom:44px}
.staff-login-panel h1{font-size:clamp(46px,6vw,82px);line-height:.95;margin:12px 0 24px}
.staff-login-panel>p{font-size:17px;line-height:1.7;color:#52606d}
.staff-email-preview{background:#f6f0e7;border-left:4px solid var(--gold);padding:18px 20px;margin:26px 0}
.staff-email-preview span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:#64707b;margin-bottom:5px}
.staff-email-preview strong{font-size:18px}
.staff-login-button{display:block;text-align:center;text-decoration:none;margin-top:4px}
.staff-security-note{font-size:13px!important;margin-top:18px}
.staff-back{margin-top:26px;color:var(--ink);font-weight:700;text-decoration:none}
@media(max-width:800px){.staff-login-shell{grid-template-columns:1fr}.staff-login-image{min-height:34vh}.staff-login-panel{padding:48px 24px}.staff-login-logo img{margin-bottom:28px}.staff-login-panel h1{font-size:48px}}

/* Expanded front-page services and reliable WhatsApp selector */
.booking-strip .front-contact{display:flex;flex-direction:column;justify-content:center;gap:2px}
.booking-strip .front-contact strong{display:block;font-size:12px;line-height:1.35}
.booking-strip .front-contact strong a{display:block;background:none;color:var(--ink);text-transform:none;letter-spacing:0;font-size:12px;font-weight:800;justify-content:flex-start}
.services-intro{max-width:820px;margin:0 auto;color:var(--muted);font-size:17px}
.amenity-grid{grid-template-columns:repeat(4,1fr);max-width:1280px;gap:16px}
.amenity-card{background:white;border:1px solid #e2d7c7;padding:28px 22px;min-height:238px;box-shadow:0 16px 45px rgba(7,29,51,.06);text-align:left;transition:transform .2s ease,box-shadow .2s ease}
.amenity-card:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(7,29,51,.11)}
.amenity-icon{width:52px;height:52px;border-radius:50%;display:flex!important;align-items:center;justify-content:center;background:#f3e8d9;margin-bottom:19px!important}
.amenity-icon svg{width:27px;height:27px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.amenity-card h3{font-size:27px;line-height:1.05;margin-bottom:11px}
.amenity-card p{color:var(--muted);font-size:14px;line-height:1.6}
.whatsapp-menu{padding-top:14px;margin-top:-14px}
.whatsapp-menu>div{display:grid;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(8px);bottom:54px;padding-bottom:8px;transition:opacity .18s ease,transform .18s ease,visibility .18s;overflow:hidden;border-radius:6px}
.whatsapp-menu:hover>div,.whatsapp-menu:focus-within>div{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
.whatsapp-menu>div::after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:22px}
.whatsapp-menu>div a:hover{background:#f3e8d9}
@media(max-width:1100px){.amenity-grid{grid-template-columns:repeat(3,1fr)}.booking-strip{grid-template-columns:1fr 1fr 1.3fr .8fr}}
@media(max-width:760px){.amenity-grid{grid-template-columns:1fr}.amenity-card{min-height:auto}.booking-strip .front-contact strong a{font-size:11px}}

/* Professional Staff Portal */
.portal-body{margin:0;background:#f4f1eb;color:#102b47;font-family:Arial,sans-serif;min-height:100vh}.portal-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#092844;color:#fff;display:flex;flex-direction:column;z-index:50}.portal-brand{display:block;padding:22px 24px;background:#fff}.portal-brand img{display:block;width:190px;max-height:80px;object-fit:contain}.portal-sidebar nav{padding:24px 14px;display:grid;gap:5px;overflow:auto}.portal-sidebar nav a{display:flex;gap:14px;align-items:center;padding:13px 15px;border-radius:7px;color:#dbe7f1;text-decoration:none;font-size:14px;font-weight:700}.portal-sidebar nav a:hover,.portal-sidebar nav a.active{background:#164263;color:#fff}.portal-sidebar nav a:first-letter{font-size:18px}.portal-side-bottom{margin-top:auto;padding:18px 24px;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:12px}.portal-side-bottom a{color:#c6d7e5;text-decoration:none;font-size:13px}.portal-app{margin-left:260px;min-height:100vh}.portal-topbar{background:#fff;border-bottom:1px solid #e0ded8;min-height:112px;padding:22px 3.5vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.portal-topbar p{margin:0 0 5px;color:#6e7a85;font-size:12px}.portal-topbar h1{font-family:Georgia,serif;font-size:32px;margin:0}.portal-menu{display:none;border:0;background:none;font-size:24px;margin-right:10px}.portal-user{display:flex;align-items:center;gap:11px}.portal-user>span,.guest-avatar{width:43px;height:43px;border-radius:50%;background:#e8d3b2;display:flex;align-items:center;justify-content:center;font-weight:900}.portal-user strong,.portal-user small{display:block}.portal-user small{color:#78838d;font-size:11px;margin-top:3px}.portal-main{padding:34px 3.5vw 60px}.portal-welcome{background:linear-gradient(120deg,#092844,#174d71);color:#fff;padding:38px 42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;border-radius:10px}.portal-welcome h2{font-family:Georgia,serif;font-size:42px;margin:5px 0 8px}.portal-welcome p{margin:0;color:#d8e6ef}.portal-kicker{text-transform:uppercase;letter-spacing:1.6px;font-size:10px!important;font-weight:900;color:#b27d3b!important;margin:0 0 7px!important}.portal-welcome .portal-kicker{color:#e8d3b2!important}.portal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.portal-stats article,.portal-card{background:#fff;border:1px solid #e4e0d9;border-radius:9px;box-shadow:0 10px 35px rgba(20,39,55,.05)}.portal-stats article{padding:24px}.portal-stats span{font-size:12px;color:#72808c;font-weight:700}.portal-stats strong{display:block;font-family:Georgia,serif;font-size:38px;margin:9px 0 5px}.portal-stats small{color:#83909a}.portal-card{padding:26px;margin-bottom:24px}.portal-card h2,.webmail-card h2{font-family:Georgia,serif;font-size:31px;margin:0 0 20px}.portal-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.portal-card-head h2{margin:0}.portal-card-head a{color:#0f527b;font-weight:800;text-decoration:none;font-size:12px}.portal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.portal-two-col.wide-left{grid-template-columns:1.6fr .8fr}.room-status-list>div,.recent-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #eee}.room-status-list strong,.room-status-list small,.recent-list strong,.recent-list small{display:block}.room-status-list small,.recent-list small{color:#76828c;margin-top:3px}.room-status-list em{font-size:11px;font-style:normal;font-weight:800}.room-dot{width:11px;height:11px;border-radius:50%;display:block}.room-dot.available{background:#36a76b}.room-dot.occupied{background:#dd9241}.room-dot.blocked{background:#c95050}.recent-list>div>span{width:38px;height:38px;border-radius:50%;background:#edf2f5;display:flex;align-items:center;justify-content:center;font-weight:900}.portal-alert{padding:13px 16px;border-radius:6px;margin-bottom:18px}.portal-alert.success{background:#daf2e3;color:#176438}.portal-alert.error{background:#f7dddd;color:#8a2828}.portal-table{width:100%;border-collapse:collapse;min-width:960px}.portal-table th{padding:12px;background:#f3efe8;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.portal-table td{padding:14px 12px;border-bottom:1px solid #ece9e3;vertical-align:top;font-size:13px}.portal-table td small{display:block;color:#78838d;margin-top:5px;max-width:260px}.portal-table a{color:#0c557e}.portal-inline-form{display:flex;gap:5px}.portal-inline-form select,.portal-inline-form button,.housekeeping-list select,.housekeeping-list button{padding:7px;border:1px solid #d4d1cb;background:#fff}.portal-inline-form button,.housekeeping-list button{background:#102b47;color:#fff;border-color:#102b47}.portal-danger{background:#fff!important;color:#a03939!important;border:1px solid #d8a7a7!important;padding:7px 10px}.portal-calendar{overflow:auto}.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}.cal-head span{padding:10px;text-align:center;background:#102b47;color:#fff;font-size:11px;font-weight:900}.cal-day{min-height:150px;border:1px solid #e4e0d9;padding:9px;background:#fff}.cal-day.empty{background:#f7f5f1}.cal-day.today{outline:2px solid #d29a54;outline-offset:-2px}.cal-day>strong{display:block;margin-bottom:7px}.cal-room{display:block;padding:5px 6px;margin:3px 0;border-radius:4px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-room.free{background:#e8f4ec;color:#2a7247}.cal-room.booked{background:#ffead3;color:#925717}.cal-room.blocked{background:#f6dddd;color:#8d3333}.calendar-nav{display:flex;gap:8px}.calendar-nav a{padding:8px 10px;background:#f3efe8;border-radius:4px}.calendar-legend{display:flex;gap:18px;margin-top:15px;font-size:12px}.calendar-legend i{display:inline-block;width:10px;height:10px;margin-right:5px}.calendar-legend .free{background:#9fd5b2}.calendar-legend .booked{background:#edb878}.calendar-legend .blocked{background:#df9595}.room-management-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.room-management-grid article{padding:20px;border:1px solid #e4e0d9;border-radius:7px}.room-management-grid h3{font-family:Georgia,serif;font-size:23px;margin:10px 0 5px}.room-management-grid p{font-size:12px;color:#76828c}.room-management-grid a{font-size:11px;font-weight:800;color:#0d547e}.portal-form{display:grid;gap:14px}.portal-form label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.6px}.portal-form input,.portal-form select,.portal-form textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #d3d0ca;margin-top:6px;background:#fff}.portal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.guest-grid article{border:1px solid #e4e0d9;border-radius:7px;padding:22px}.guest-grid h3{font-family:Georgia,serif;font-size:22px;margin:12px 0 8px}.guest-grid a{display:block;color:#0d547e;font-size:12px;margin:5px 0}.guest-grid p{color:#78838d;font-size:11px;margin-top:12px}.housekeeping-list article{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid #ece9e3}.housekeeping-list h3{margin:0 0 5px;font-size:17px}.housekeeping-list p,.housekeeping-list small{margin:0;color:#74808b}.status.inprogress{background:#dbeaf7}.status.completed{background:#d6f3df}.occupancy-bars>div{display:grid;grid-template-columns:170px 1fr 60px 70px;gap:14px;align-items:center;margin:18px 0}.occupancy-bars>div>div{height:15px;background:#ebe8e2;border-radius:20px;overflow:hidden}.occupancy-bars i{display:block;height:100%;background:#1c628b;border-radius:20px}.occupancy-bars small{color:#78838d}.webmail-card{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e4e0d9;border-radius:10px;overflow:hidden}.webmail-card>div{padding:55px}.webmail-card p{line-height:1.7;color:#687681}.webmail-visual{background:#102b47;color:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center}.webmail-visual span{font-size:70px}.webmail-visual h3{font-family:Georgia,serif;font-size:30px}.webmail-visual p{color:#dbe6ed}.settings-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.settings-security{grid-column:1/-1;padding:18px;background:#f3efe8}.portal-empty{color:#78838d;padding:25px;text-align:center}.portal-login-page{margin:0;background:#f4f1eb}.portal-login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.portal-login-image{background:linear-gradient(rgba(9,40,68,.12),rgba(9,40,68,.48)),url('villa-hero.jpg') center/cover}.portal-login-panel{background:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:center}.portal-login-panel img{width:min(260px,80%);margin-bottom:42px}.portal-login-panel h1{font-family:Georgia,serif;font-size:62px;margin:8px 0 16px}.portal-login-panel>p{color:#697783;line-height:1.7}.portal-login-panel form{display:grid;gap:14px;margin-top:20px}.portal-login-panel label{font-size:11px;font-weight:900;text-transform:uppercase}.portal-login-panel input{display:block;width:100%;box-sizing:border-box;padding:14px;margin-top:7px;border:1px solid #ccc}.portal-login-panel small{margin-top:18px;color:#7c8790}.portal-back{margin-top:24px;color:#102b47;text-decoration:none;font-weight:800;font-size:13px}
@media(max-width:1050px){.portal-stats{grid-template-columns:repeat(2,1fr)}.portal-two-col,.portal-two-col.wide-left,.settings-card,.webmail-card{grid-template-columns:1fr}.guest-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.portal-sidebar{transform:translateX(-100%);transition:.2s}.portal-nav-open .portal-sidebar{transform:translateX(0)}.portal-app{margin-left:0}.portal-menu{display:inline-block}.portal-topbar{padding:16px 20px}.portal-topbar h1{font-size:25px}.portal-user div{display:none}.portal-main{padding:22px 16px}.portal-welcome{padding:28px 22px;display:block}.portal-welcome h2{font-size:34px}.portal-welcome .dark-btn{display:inline-block;margin-top:20px}.portal-stats{grid-template-columns:1fr 1fr}.portal-two-col,.guest-grid,.room-management-grid{grid-template-columns:1fr}.housekeeping-list article{grid-template-columns:1fr}.occupancy-bars>div{grid-template-columns:110px 1fr 45px}.occupancy-bars small{display:none}.portal-login-shell{grid-template-columns:1fr}.portal-login-image{min-height:30vh}.portal-login-panel{padding:45px 24px}.portal-login-panel h1{font-size:48px}.webmail-card>div{padding:35px 24px}}

.settings-security{grid-column:1/-1;padding:28px;background:#f3efe8;border-radius:8px;display:grid;grid-template-columns:.75fr 1.25fr;gap:34px;align-items:start}
.settings-security h3{font-family:Georgia,serif;font-size:28px;margin:2px 0 10px}
.settings-security p{color:#687681;line-height:1.65;margin:0}
.password-change-form{background:#fff;border:1px solid #ded8cf;border-radius:7px;padding:22px}
@media(max-width:900px){.settings-security{grid-template-columns:1fr}}

.portal-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.portal-photo-grid article{border:1px solid #ddd;border-radius:12px;overflow:hidden;background:#fff}.portal-photo-grid img{display:block;width:100%;height:120px;object-fit:cover}.portal-photo-grid form{padding:8px}.dynamic-rooms .room-card{display:flex;flex-direction:column}.dynamic-rooms .room-card-copy{flex:1}


/* Version 11 booking-page layout and classic room sliders */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  min-height:92px;
  padding:10px 5vw;
  background:rgba(255,255,255,.97);
  box-shadow:0 8px 28px rgba(7,29,51,.10);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}
.site-header>a{display:flex;align-items:center;min-width:0}
.site-header>a img{
  display:block;
  width:190px;
  max-width:42vw;
  height:70px;
  object-fit:contain;
}
.site-header nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.site-header nav a{
  color:var(--ink);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:11px;
  font-weight:800;
}
.site-header nav a:hover{color:var(--gold)}

.booking-hero{
  min-height:530px;
  padding:120px 7vw 90px;
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  background-image:linear-gradient(rgba(7,29,51,.50),rgba(7,29,51,.64)),url('courtyard.jpg');
  background-size:cover;
  background-position:center;
}
.booking-hero h1{
  max-width:1050px;
  font-size:clamp(58px,8vw,112px);
  line-height:.9;
  margin:0 0 24px;
}
.booking-hero>p:last-child{max-width:700px;font-size:17px;color:#f7f1e8}

.rooms-grid.dynamic-rooms{
  max-width:1280px;
  margin:0 auto;
  padding:90px 5vw;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:34px;
  background:var(--ivory);
}
.dynamic-rooms .room-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:#fff;
  border-radius:3px;
  overflow:hidden;
  box-shadow:0 22px 60px rgba(7,29,51,.11);
}
.dynamic-rooms .room-gallery{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  padding:0!important;
  overflow:hidden;
  background:#071d33;
}
.dynamic-rooms .room-gallery .room-slide,
.dynamic-rooms .room-gallery .gallery-slide{
  position:absolute;
  inset:0;
  display:block;
  width:100%!important;
  height:100%!important;
  margin:0;
  object-fit:cover;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s ease;
}
.dynamic-rooms .room-gallery .room-slide.active,
.dynamic-rooms .room-gallery .gallery-slide.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.dynamic-rooms .room-card-copy{
  padding:34px!important;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:1;
}
.dynamic-rooms .room-card-copy h3{font-size:46px;margin:4px 0 14px}
.dynamic-rooms .room-card-copy p{margin-bottom:18px}
.dynamic-rooms .room-card-copy button{margin-top:auto}
.dynamic-rooms .gallery-arrow{opacity:.92;transition:.2s}
.dynamic-rooms .gallery-arrow:hover{background:#fff!important;color:var(--ink)!important}

@media(max-width:900px){
  .site-header{position:relative;flex-direction:column;align-items:center;padding:12px 20px;gap:8px}
  .site-header>a img{width:170px;height:62px;max-width:80vw}
  .site-header nav{justify-content:center;gap:14px}
  .site-header nav a{font-size:10px;letter-spacing:1px}
  .booking-hero{min-height:450px;padding:90px 7vw 70px}
  .rooms-grid.dynamic-rooms{grid-template-columns:1fr;padding:55px 18px;gap:26px}
  .dynamic-rooms .room-gallery{aspect-ratio:4/3}
  .dynamic-rooms .room-card-copy{padding:26px!important}
  .dynamic-rooms .room-card-copy h3{font-size:39px}
}

.room-admin-cards{align-items:start}.room-admin-card{margin:0}.room-admin-card .portal-photo-grid{margin-top:20px}.add-photo-form{background:#f5f1ea;padding:16px;border-radius:8px;margin:18px 0}.room-price-list>div{display:grid;grid-template-columns:1fr auto;gap:5px;padding:14px 0;border-bottom:1px solid #ece8e0}.room-price-list small{grid-column:1/-1;color:#7a8791}.price-estimate{padding:14px;background:#f3efe8;border-radius:7px;margin:10px 0 4px;color:#102b47}.price-estimate strong,.price-estimate small{display:block}.price-estimate small{margin-top:5px;color:#687681}.room-rate{color:#9a642a}

.report-actions{display:flex;align-items:center;justify-content:space-between;gap:24px}.payment-page{min-height:100vh;display:grid;place-items:center;padding:32px;background:#f5efe5}.payment-card{width:min(620px,100%);background:#fff;padding:36px;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.12)}.payment-card>img{max-width:220px;height:auto}.payment-total{display:flex;justify-content:space-between;align-items:center;padding:20px;margin:24px 0;background:#f7f7f7;border-radius:12px}.payment-total strong{font-size:1.5rem}.payment-card .dark-btn{display:inline-block;margin:8px 8px 8px 0}.portal-form ul{margin:0;padding-left:20px}@media(max-width:700px){.report-actions{align-items:flex-start;flex-direction:column}}

/* Version 14: room editor and secure payment */
.room-admin-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin:.9rem 0 1rem}.room-admin-actions .dark-btn{display:inline-flex;width:auto;text-decoration:none}.secure-payment-note{font-size:.86rem;color:#48606f;background:#f3f7f8;border:1px solid #dbe5e8;border-radius:8px;padding:.8rem 1rem;margin:.8rem 0 0}.payment-card .dark-btn{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;margin-top:.75rem}

/* Version 15 booking controls */
.override-check{display:flex!important;gap:.65rem;align-items:flex-start;background:#fff6df;border:1px solid #e3c77f;padding:.85rem;border-radius:10px}.override-check input{width:auto!important;margin-top:.2rem}.booking-management-list{display:grid;gap:1rem}.booking-manage-card{border:1px solid #ded7cc;border-radius:14px;background:#fff;overflow:hidden}.booking-manage-card summary{cursor:pointer;display:grid;grid-template-columns:1.2fr 1fr auto;gap:1rem;align-items:center;padding:1rem 1.2rem;background:#faf7f1}.booking-manage-card summary::marker{color:#a87c35}.booking-manage-body{padding:1.2rem;display:grid;gap:1.2rem}.booking-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1.25rem}.booking-facts p{margin:.15rem 0}.booking-edit-form{border-top:1px solid #eee;padding-top:1rem}.booking-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.delete-booking-form{border:1px solid #e7b6b6;background:#fff7f7;padding:1rem;border-radius:12px}.audit-list{display:grid;gap:.75rem}.audit-list article{display:grid;grid-template-columns:160px 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid #eee}.audit-list time{font-size:.85rem;color:#68727b}.audit-list p{margin:.2rem 0 0}.status.checked-in,.status.checkedin{background:#dff2e6;color:#21633b}.status.checked-out,.status.checkedout{background:#e8edf3;color:#34495e}@media(max-width:800px){.booking-manage-card summary{grid-template-columns:1fr}.booking-facts,.booking-actions-grid{grid-template-columns:1fr}.audit-list article{grid-template-columns:1fr}.audit-list time{margin-bottom:-.4rem}}

/* Version 16 room visibility controls */
.room-control-fieldset{border:1px solid rgba(20,46,44,.18);border-radius:16px;padding:16px;margin:8px 0 18px}.room-control-fieldset legend{font-weight:800;padding:0 8px}.control-check{display:flex!important;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid rgba(20,46,44,.08)}.control-check:last-child{border-bottom:0}.control-check input{width:auto!important;margin-top:4px}.control-check span{display:grid;gap:2px}.control-check small{opacity:.7;font-weight:400}.room-visibility-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:16px 0;padding:14px;border-radius:14px;background:#f3f6f2;border:1px solid rgba(20,46,44,.12)}.room-visibility-form label{display:flex;align-items:center;gap:8px;font-size:.92rem}.room-visibility-form input{width:auto}.room-visibility-form button{grid-column:1/-1;border:0;border-radius:9px;padding:10px 14px;background:#234a45;color:white;font-weight:700;cursor:pointer}.room-status-badges{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 14px}.room-status-badges span{font-size:.75rem;font-weight:800;border-radius:999px;padding:5px 9px}.status-on{background:#dff3e7;color:#17643a}.status-off{background:#f5dddd;color:#8c2d2d}.status-featured{background:#fff0bf;color:#7a5700}.room-offline-note{font-weight:700;color:#805d17;background:#fff5d8;padding:10px 12px;border-radius:10px}@media(max-width:620px){.room-visibility-form{grid-template-columns:1fr}}

.portal-table small{display:block;color:#6e7880;margin-top:4px}.guest-service-link{word-break:break-all}

/* Version 18 guest menu manager */
.service-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.service-admin-card{border:1px solid #ddd5c7;border-radius:18px;padding:18px;background:#fff}.menu-admin-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border-top:1px solid #eee;padding:12px 0}.menu-admin-item img{width:70px;height:54px;object-fit:cover;border-radius:10px}.menu-admin-item small,.menu-admin-item span{display:block;color:#6d7478}.service-admin-card details{margin-top:12px;border-top:1px solid #eee;padding-top:12px}.service-admin-card summary{cursor:pointer;font-weight:700}@media(max-width:850px){.service-admin-grid{grid-template-columns:1fr}}

/* Version 22: ordered luxury booking cards with one slideshow per room */
.rooms-intro{
  max-width:820px;
  margin:0 auto;
  padding:85px 24px 34px;
  text-align:center;
}
.rooms-intro h2{font-size:clamp(38px,5vw,64px);line-height:1.05;margin:8px 0 18px}
.rooms-intro>p:last-child{color:var(--muted);font-size:17px;line-height:1.7}
.rooms-grid.dynamic-rooms{
  display:flex;
  flex-direction:column;
  gap:42px;
  max-width:1240px;
  margin:0 auto;
  padding:18px 24px 90px;
}
.dynamic-rooms .room-card{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);
  min-height:520px;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(7,29,51,.10);
  box-shadow:0 24px 70px rgba(7,29,51,.12);
  background:#fff;
}
.dynamic-rooms .room-card:nth-child(even){grid-template-columns:minmax(330px,.65fr) minmax(0,1.35fr)}
.dynamic-rooms .room-card:nth-child(even) .room-gallery{order:2}
.dynamic-rooms .room-card:nth-child(even) .room-card-copy{order:1}
.dynamic-rooms .room-gallery{
  position:relative;
  min-height:520px;
  aspect-ratio:auto;
  background:#071d33;
  padding:0!important;
}
.dynamic-rooms .room-gallery .room-slide,
.dynamic-rooms .room-gallery .gallery-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.025);
  transition:opacity .75s ease,transform 5s ease;
  pointer-events:none;
}
.dynamic-rooms .room-gallery .room-slide.active,
.dynamic-rooms .room-gallery .gallery-slide.active{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}
.dynamic-rooms .room-card-copy{
  padding:52px 44px!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.dynamic-rooms .room-card-copy h3{font-size:clamp(40px,4vw,58px);line-height:1.02;margin:5px 0 18px}
.dynamic-rooms .room-card-copy>p{font-size:16px;line-height:1.7}
.room-facts{display:flex!important;flex-wrap:wrap;gap:10px;padding:0!important;margin:4px 0 22px}
.room-facts span{background:#f5efe5;border:1px solid #e4d7c5;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800;color:var(--ink)}
.room-rate{font-size:20px!important;color:var(--ink)!important;margin:0 0 20px!important}
.room-select-btn{width:100%;border-radius:9px!important;padding:16px 20px!important;font-size:11px!important}
.gallery-arrow{width:48px;height:48px;border-radius:50%;background:rgba(7,29,51,.72)!important;color:#fff!important;display:grid!important;place-items:center;padding:0!important;font-size:24px!important;top:50%;transform:translateY(-50%)}
.gallery-arrow.prev{left:18px}.gallery-arrow.next{right:18px}
.gallery-count{position:absolute;top:18px;right:18px;background:rgba(7,29,51,.76);color:#fff;border-radius:999px;padding:8px 12px!important;font-size:12px;font-weight:800;z-index:3}
.gallery-dots{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:3;display:flex!important;gap:7px;padding:9px 12px!important;background:rgba(7,29,51,.42);border-radius:999px;max-width:78%;overflow-x:auto}
.gallery-dot{width:8px!important;height:8px!important;min-width:8px!important;border:0!important;border-radius:50%!important;padding:0!important;background:rgba(255,255,255,.48)!important}
.gallery-dot.active{background:#fff!important;transform:scale(1.3)}
@media(max-width:900px){
  .dynamic-rooms .room-card,.dynamic-rooms .room-card:nth-child(even){grid-template-columns:1fr;min-height:0}
  .dynamic-rooms .room-card:nth-child(even) .room-gallery,.dynamic-rooms .room-card:nth-child(even) .room-card-copy{order:initial}
  .dynamic-rooms .room-gallery{min-height:0;aspect-ratio:4/3}
  .dynamic-rooms .room-card-copy{padding:30px 26px!important}
}
@media(max-width:560px){
  .rooms-grid.dynamic-rooms{padding-left:14px;padding-right:14px;gap:26px}
  .dynamic-rooms .room-gallery{aspect-ratio:1/1}
  .gallery-arrow{width:42px;height:42px}.gallery-arrow.prev{left:10px}.gallery-arrow.next{right:10px}
  .dynamic-rooms .room-card-copy h3{font-size:38px}
}


/* Version 25: permanent high-contrast fixes for Staff Portal action buttons */
.portal-body a.dark-btn,
.portal-body a.dark-btn:link,
.portal-body a.dark-btn:visited,
.portal-body a.dark-btn:hover,
.portal-body a.dark-btn:active,
.portal-body .room-edit-btn,
.portal-body .room-edit-btn:link,
.portal-body .room-edit-btn:visited,
.portal-body .room-edit-btn:hover,
.portal-body .room-edit-btn:active,
.portal-body .excel-export-btn,
.portal-body .excel-export-btn:link,
.portal-body .excel-export-btn:visited,
.portal-body .excel-export-btn:hover,
.portal-body .excel-export-btn:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
}
.portal-body .room-edit-btn *,
.portal-body .excel-export-btn * {
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
