
:root{--ink:#233d44;--deep:#132a31;--sage:#7d9994;--sand:#e5d4b8;--cream:#f8f7f3}
html{scroll-behavior:smooth}body{font-family:'Noto Sans KR','DM Sans',sans-serif;color:#516068;word-break:keep-all}section[id]{scroll-margin-top:30px}img{max-width:100%}
button:focus-visible,a:focus-visible{outline:3px solid #aec4b1;outline-offset:4px}
.site-header{z-index:1200;padding:0;top:0}.header-line{padding:23px 5.7vw}.site-logo a{font-family:'DM Sans',sans-serif;font-size:16px;letter-spacing:3px;font-style:normal;font-weight:700;color:#fff;line-height:1.35}.site-logo a span{display:block;font-size:9px;letter-spacing:5.2px;font-weight:500;margin-top:5px;opacity:.88}.site-menu-toggle{top:0;right:0;position:relative;width:35px;height:32px;background:transparent;border:0;cursor:pointer}
.hero-stay{height:min(850px,100svh);min-height:610px;background:#34494a url('../img/edit/hero.jpg') center center /cover no-repeat;position:relative}.hero-stay:before{background:linear-gradient(90deg,rgba(15,36,39,.59),rgba(17,31,37,.14) 65%),linear-gradient(0deg,rgba(15,36,39,.2),transparent 35%);opacity:1}.hero-shade{position:absolute;inset:0;pointer-events:none}.hero-stay .site-hero-inner{min-height:600px;height:min(850px,100svh)}.hero-contents{text-align:left!important}.hero-contents .heading{font-size:clamp(40px,5vw,70px);line-height:1.34;letter-spacing:-2px;font-weight:600;color:#fff;margin-top:17px}.hero-contents .heading em,.welcome-copy h2 em,.info-section h2 em{font-style:normal;font-weight:300}.hero-contents .sub-heading{margin:24px 0 30px;font-size:18px;letter-spacing:0.02em;color:#f5f4ef}.eyebrow{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:3px;line-height:1.6;color:#73918e;font-weight:700;margin-bottom:16px}.hero-eyebrow{color:#fff;opacity:.9}.hero-buttons,.banner-buttons{display:flex;gap:13px;flex-wrap:wrap}.btn{border-radius:0;padding:16px 30px;letter-spacing:.4px;font-size:13px;font-weight:600;box-shadow:none!important}.btn-primary{background:#cfbaa0;border-color:#cfbaa0;color:#233335}.btn-primary:hover,.btn-primary:focus{background:#e7d4bc;border-color:#e7d4bc;color:#213335}.btn-outline-light{border-color:rgba(255,255,255,.75);color:#fff}.scroll-guide{position:absolute;bottom:28px;left:6%;color:#fff;display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:2px;z-index:1}.scroll-guide:hover{color:#fff}.scroll-guide i{font-size:23px}
.site-navbar{background:#192c31}.site-navbar nav .menu li a{font-family:'DM Sans','Noto Sans KR',sans-serif;font-weight:500;letter-spacing:2px;text-transform:uppercase}.site-navbar .extra-info h3{color:#f3f0e8}.site-navbar .extra-info .menu-contact{color:#e1c7a7}
.section{padding-top:100px;padding-bottom:100px}.heading{color:var(--ink);letter-spacing:-1.25px}.welcome-section{background:#fff}.welcome-photo{position:relative;padding-right:35px}.welcome-photo img{width:100%;height:620px;object-fit:cover}.photo-label{position:absolute;bottom:0;left:15px;background:#faf9f5;padding:20px 28px;font-size:10px;letter-spacing:2px;font-weight:700;color:#41565a}.welcome-copy{padding:20px 35px 20px 65px}.welcome-copy h2,.info-section h2{font-size:clamp(30px,3.2vw,46px);line-height:1.42;margin-bottom:28px}.welcome-copy p:not(.eyebrow){line-height:2.15;font-size:14px;color:#66777b;margin-bottom:15px}.welcome-meta{display:flex;gap:38px;margin:27px 0}.welcome-meta div{display:flex;flex-direction:column;gap:7px}.welcome-meta strong{font-size:26px;color:#293e41;font-weight:500;font-family:'DM Sans',sans-serif}.welcome-meta span{font-size:12px;color:#738086}.text-link{color:#496b68;font-family:'DM Sans','Noto Sans KR',sans-serif;font-size:12px;letter-spacing:1.3px;border-bottom:1px solid #9baaaa;padding-bottom:9px;display:inline-flex;gap:30px}.text-link span{font-size:16px}.text-link:hover{color:#223d3c}
.features-section{background:#f8f7f3}.section-lead{margin-bottom:42px}.section-lead .heading,.gallery-section .heading,.rooms-section .heading{font-size:clamp(30px,3vw,43px);line-height:1.4;font-weight:500;margin-bottom:20px}.section-lead p:not(.eyebrow){font-size:14px;color:#718085;line-height:1.9}.features-grid img{width:100%;height:265px;object-fit:cover;transition:transform .5s}.feature-item{overflow:hidden}.feature-item img:hover{transform:scale(1.025)}.feature-item h3{font-size:13px;font-family:'DM Sans',sans-serif;letter-spacing:1.3px;color:var(--ink);font-weight:700;margin:22px 0 10px}.feature-item p{font-size:12px;line-height:1.8;color:#829093}.small-note{color:#8e999a;font-size:11px;text-align:center;margin-top:28px}
.gallery-section{background:#fff}.gallery-section .lead,.rooms-section .lead{font-size:15px;line-height:1.9;color:#839093}.gallery-section .slider-item{position:relative;cursor:zoom-in}.gallery-section .slider-item img{width:100%;height:520px;object-fit:cover}.gallery-section .slider-item .slide-open{position:absolute;right:18px;bottom:18px;background:#fff;border:none;color:#243d41;width:48px;height:48px;font-size:21px;border-radius:50%;cursor:pointer}.gallery-hint{color:#98a3a5;font-size:12px;margin-top:16px}.owl-theme .owl-nav [class*=owl-]{border-radius:0}
.rooms-section{background:#f3f5f2}.rooms-grid .post{margin-bottom:28px}.room-card{background:#fff;height:100%;box-shadow:0 11px 33px rgba(30,47,47,.055);transition:transform .28s,box-shadow .28s}.room-card:hover{transform:translateY(-5px);box-shadow:0 15px 39px rgba(30,47,47,.11)}.room-card-image{position:relative;display:block;overflow:hidden}.room-card img{width:100%;height:260px;object-fit:cover;transition:transform .4s}.room-card-image:hover img{transform:scale(1.04)}.room-card-number{position:absolute;top:17px;left:18px;background:#fff;color:#48615f;min-width:42px;height:38px;display:grid;place-items:center;font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:1px}.room-card-body{padding:29px 25px 33px}.room-card .room-sub{font-size:10px;letter-spacing:2px;color:#829a98;font-family:'DM Sans',sans-serif;margin-bottom:6px}.room-card h3{font-size:26px;font-weight:600;color:#283c40;margin:0 0 13px}.room-card .capacity{font-size:13px;color:#63787c;margin:0 0 12px}.room-card .features{min-height:72px;font-size:13px;line-height:1.85;color:#899397}.room-card .room-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:16px;border-top:1px solid #e7ece8}.room-card .room-bottom span{font-size:11px;color:#94a09f}.room-card .room-bottom a{font-size:12px;color:#506d68;font-weight:600;letter-spacing:.3px}
.info-section{background:#fff}.info-section>div>div>div:first-child>p:not(.eyebrow){font-size:14px;line-height:2;margin-bottom:24px}.info-list{border-top:1px solid #e3e7e6}.info-list>div{display:grid;grid-template-columns:170px 1fr;align-items:start;gap:20px;border-bottom:1px solid #e3e7e6;padding:21px 0}.info-list h3{font-size:12px;color:#3e585a;font-weight:700;letter-spacing:.7px;margin:3px 0 0}.info-list p{font-size:13px;line-height:1.85;color:#728386;margin:0}
.reservation-banner{background:linear-gradient(rgba(15,39,41,.81),rgba(15,39,41,.81)), url('../img/edit/hero.jpg') center/cover;padding:110px 15px;color:#fff}.reservation-banner h2{font-size:clamp(31px,3.4vw,51px);line-height:1.4;color:#fff;margin-bottom:20px}.reservation-banner p:not(.eyebrow){font-size:14px;color:#d3dcdb;margin-bottom:29px}.reservation-banner .eyebrow{color:#e3d0b8}.reservation-banner .banner-buttons{justify-content:center}.footer-section{background:#14292f;color:#c4d0cd;padding:72px 0 34px;font-size:12px;line-height:1.9}.footer-brand{font-size:21px;letter-spacing:2px;color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;line-height:1.4}.footer-brand span{display:block;letter-spacing:5px;font-size:10px}.footer-section h3{font-size:12px;color:#fff;font-weight:700;letter-spacing:1px;margin-bottom:20px}.footer-section a{color:#d7e0dc}.footer-section .bordertop{border-color:#2e4448}.footer-section .template-credit{font-size:10px;color:#8a9e9c}
.photo-dialog{position:fixed;max-height:96vh;max-width:96vw;width: min(1140px,96vw);padding:36px 65px;background:transparent;border:0;outline:none;color:white;overflow:visible}.photo-dialog::backdrop{background:rgba(10,22,24,.9)}.photo-dialog img{width:100%;max-height:79vh;object-fit:contain}.photo-dialog button{position:absolute;cursor:pointer;border:0;color:#fff;background:rgba(255,255,255,.12)}.dialog-close{right:4px;top:0;border-radius:50%;font-size:29px;width:45px;height:45px}.dialog-prev,.dialog-next{top:48%;font-size:37px;width:45px;height:55px}.dialog-prev{left:3px}.dialog-next{right:3px}.photo-counter{text-align:center;font-size:13px;color:#e8f1ef;margin-top:10px}
@media(max-width:991px){.section{padding-top:76px;padding-bottom:76px}.welcome-photo{padding-right:15px}.welcome-photo img{height:420px}.welcome-copy{padding:35px 20px}.feature-item{margin-bottom:20px}.features-grid img{height:240px}.info-list>div{grid-template-columns:130px 1fr}.rooms-grid .post{margin-bottom:25px}}
@media(max-width:575px){.header-line{padding:16px 20px}.site-logo a{font-size:12px;letter-spacing:2px}.site-logo a span{font-size:8px;letter-spacing:3px}.hero-stay{height:92svh;min-height:600px}.hero-stay .site-hero-inner{min-height:600px;height:92svh}.hero-contents .heading{font-size:35px;letter-spacing:-1px;line-height:1.4}.hero-contents .sub-heading{font-size:13px;line-height:1.8}.hero-buttons{gap:8px}.hero-buttons .btn{font-size:12px;padding:14px 17px}.scroll-guide{left:20px}.welcome-copy{padding:35px 10px}.welcome-copy h2{font-size:32px}.welcome-photo img{height:370px}.welcome-meta{gap:24px}.section-lead .heading,.gallery-section .heading,.rooms-section .heading{font-size:30px}.features-grid{row-gap:10px}.feature-item img{height:210px}.gallery-section .slider-item img{height:270px}.room-card img{height:245px}.info-list>div{grid-template-columns:1fr;gap:8px;padding:17px 0}.info-list h3{margin:0}.reservation-banner{padding:85px 15px}.footer-section .bordertop p{text-align:left!important}.photo-dialog{padding:37px 10px}.dialog-prev{left:0}.dialog-next{right:0}.dialog-close{right:8px}.photo-dialog .dialog-prev,.photo-dialog .dialog-next{background:rgba(20,40,40,.6);z-index:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Original Villa theme refinements for Korean lodging navigation. */
h1,h2,h3,h4,h5{font-family:'Noto Sans KR','DM Sans',sans-serif}
.hero-stay.overlay:before{height:100%;min-height:0;bottom:0}
.site-navbar nav .menu li a{color:#f1f5f2;font-size:clamp(26px,3.6vw,44px);font-family:'DM Sans','Noto Sans KR',sans-serif}
.site-navbar nav .menu li a:before{background:#5d8a7c}
.site-navbar .extra-info p{color:#d0d8d5}
.site-navbar .extra-info .menu-contact{color:#dfc09a}
.gallery-section .heading,.rooms-section .heading,.info-section .heading,.welcome-copy .heading{font-family:'Noto Sans KR',sans-serif}

.scroll-guide span:last-child{font-size:23px;font-weight:300}
.owl-nav button span{font-family:Arial,sans-serif;font-size:28px}


/* Multi-page navigation & editorial pages */
.site-navbar{z-index:1180;overflow-y:auto;overscroll-behavior:contain}
.site-navbar nav{min-height:100vh;display:flex;align-items:center;padding:95px 0 45px}
.nav-full-height{min-height:0;width:100%}
.site-navbar .nav-kicker{font:600 11px/1.5 'DM Sans',sans-serif;letter-spacing:2px;color:#9eb5ad;margin:0 0 16px}
.stay-main-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:16px;margin-bottom:0}
.site-navbar nav .stay-main-menu>li>a{font-size:clamp(19px,2.1vw,31px);line-height:1.28;letter-spacing:1.4px;display:inline-block;padding:0;color:#fff;font-weight:600}
.site-navbar nav .stay-main-menu>li>a small{display:block;font-size:11px;color:#99a9a5;letter-spacing:0;margin:5px 0 0;font-weight:400}
.site-navbar nav .stay-main-menu a[aria-current]{color:#e8cba7!important}
.stay-submenu{list-style:none;padding:7px 0 2px;margin:0;display:flex;gap:11px;flex-wrap:wrap}
.site-navbar nav .stay-submenu li a{font-family:'Noto Sans KR',sans-serif;font-size:12px;color:#c4d4cb;letter-spacing:0;padding:3px 0;white-space:nowrap}
.site-navbar nav .stay-submenu li a:hover{color:#fff}
.site-navbar nav .stay-main-menu a:before{display:none}
.site-navbar .extra-info{padding:26px 0 26px 50px;border-left:1px solid #415859}
.site-navbar .extra-info h3{font-size:22px;letter-spacing:-.6px;line-height:1.5;text-transform:none}
.site-navbar .extra-info p{line-height:2}
.site-navbar .nav-help{margin-top:24px;font-size:12px;color:#748e88}
.site-header .header-line{position:relative;z-index:1210}
.site-logo,.site-menu-toggle{z-index:1215}
.inner-page-hero{height:60vh;min-height:470px;background-size:cover;background-position:center;position:relative}
.inner-page-hero.hero-small .site-hero-inner{height:60vh;min-height:470px}
.inner-page-hero .heading{font-size:clamp(42px,5.5vw,74px);line-height:1.25;font-weight:500;letter-spacing:-2px;color:#fff}
.inner-page-hero .sub-heading{font-size:16px;line-height:1.9;color:#f2f6f3;margin-top:18px}
.inner-page-hero .eyebrow{color:#eee3d4;font-weight:500}
.inner-page-hero.overlay:before{display:none}
.bg-light-soft{background:#f6f7f3}.editorial-img{width:100%;height:520px;object-fit:cover}.editorial-copy{padding:20px 10px 20px 54px}.editorial-copy h2{font-size:clamp(29px,3vw,46px);line-height:1.45;font-weight:500;margin-bottom:27px}.editorial-copy>p:not(.eyebrow){line-height:2.2;font-size:14px;color:#67797a}.editorial-copy .info-list{margin-bottom:26px}
.fact-strip{display:flex;gap:36px;padding:20px 0 28px;border-top:1px solid #ebeeee;margin-top:24px}.fact-strip span{font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:1px;color:#758580}.fact-strip strong{display:block;color:#344c4a;font-size:27px}
.tile-link{display:block;color:inherit;background:white;height:100%;box-shadow:0 7px 26px rgba(22,48,40,.045)}.tile-link:hover{color:inherit;text-decoration:none}.tile-photo{position:relative;overflow:hidden}.tile-photo img{width:100%;height:340px;object-fit:cover;transition:transform .5s}.tile-link:hover img{transform:scale(1.045)}.tile-arrow{position:absolute;right:17px;bottom:17px;background:#fafbf9;color:#3b5d55;font-size:20px;width:42px;height:42px;display:grid;place-items:center}.tile-text{padding:25px 30px 33px}.tile-text h3{font-size:23px;font-weight:600;color:#263f40;margin:0 0 10px}.tile-text p{line-height:1.9;font-size:13px;color:#788684}.tile-text .text-link{margin-top:12px}
.subtle-note{font-size:12px;line-height:2;color:#899996;margin-top:22px}
.breadcrumbs{margin:-35px 0 28px;color:#889c94;font-size:12px}.breadcrumbs a{color:#637a72}
.room-detail-gallery{display:grid;grid-template-columns:1.7fr 1fr;grid-template-rows:250px 250px;gap:10px;overflow:hidden}.room-detail-gallery figure{margin:0;overflow:hidden}.room-detail-gallery .photo-main{grid-row:1 / span 2}.room-detail-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.room-detail-gallery figure:hover img{transform:scale(1.025)}
.white-detail{background:white}.detail-intro{padding-right:40px}.detail-intro h2{font-size:48px}.room-intro-en{display:block;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:3px;color:#93a49e;padding-top:14px}.room-detail-lead{font-size:20px!important;line-height:1.9!important;color:#2a4746!important}.detail-intro p{font-size:14px;line-height:2.1;color:#657978}.room-specs{margin:28px 0;border-top:1px solid #dce5df}.room-specs>div{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:19px 0;border-bottom:1px solid #e5ebe7}.room-specs span{font-size:13px;color:#98a7a1}.room-specs strong{font-size:13px;line-height:1.7;color:#35524b;font-weight:600}
.book-side{background:#f4f5f0;padding:37px 34px;position:sticky;top:35px}.book-side h3{font-size:26px;color:#23403d}.book-side p{font-size:13px;line-height:2;color:#71847b}.book-side .btn{display:block;margin:25px 0 17px;text-align:center}.book-extra{display:block;font-size:12px;text-align:center;color:#547468}
.room-switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.room-switch{display:flex;align-items:center;gap:22px;background:#fff;color:#243b3b;padding:13px}.room-switch img{width:142px;height:116px;object-fit:cover}.room-switch span{display:block;color:#90a69a;font-size:10px;letter-spacing:1.6px}.room-switch strong{display:block;font-size:22px;margin-top:7px}
.gallery-masonry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.gallery-tile{position:relative;padding:0;border:0;background:#f2f4f2;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3}.gallery-tile:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.gallery-tile img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.gallery-tile:hover img{transform:scale(1.04)}.gallery-tile span{position:absolute;bottom:0;left:0;right:0;padding:26px;color:#fff;font:600 11px 'DM Sans',sans-serif;letter-spacing:2px;text-align:left;background:linear-gradient(transparent,#182b2a88)}
.guide-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.guide-card{padding:36px;border:1px solid #dfe8e1;background:#fff}.guide-card h3{font-size:23px;color:#284640}.guide-card strong{display:block;font-size:19px;color:#304d46;margin:14px 0}.guide-card strong span{font-size:12px;color:#799087}.guide-card p{color:#667d74;font-size:13px;line-height:2;margin:0}
.amenities-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.amenities-grid div{border:1px solid #dfe6dc;background:white;padding:22px 16px;text-align:center;font-size:13px;color:#37574c}
.location-visual{position:relative}.location-visual img{height:450px;width:100%;object-fit:cover}.location-tag{position:absolute;bottom:0;right:0;padding:18px;background:#fff;font-size:12px;letter-spacing:1.4px;color:#49675a}.direction-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.btn-muted{border:1px solid #a4b6ae;color:#45695c;background:transparent}.btn-muted:hover{color:#16372f;background:#e4ede6}
.booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.booking-steps article{padding:28px 26px;background:#f7f8f4;min-height:220px}.booking-steps article span{font-family:'DM Sans',sans-serif;color:#94aba2;font-size:23px}.booking-steps article h3{font-size:19px;color:#243b39;margin:13px 0}.booking-steps article p{font-size:13px;line-height:1.85;color:#73867e}.booking-steps article a{font-size:12px;color:#355a4c}
.booking-action{margin:35px auto 0;background:#173333;padding:44px;text-align:center;color:#ecf0eb}.booking-action h3{color:white;font-size:29px}.booking-action p{font-size:13px;line-height:1.9;color:#b5ccc0}.booking-action .subtle-note{max-width:740px;margin:25px auto 0;color:#b3c2bc}
.menu-open .site-menu-toggle span{background:#ffffff!important}
.site-navbar .extra-info .nav-help a{color:#d6e4dc}
.site-navbar .extra-info .nav-help a:hover{color:#fff}
@media(max-width:991px){.site-navbar nav{padding:100px 0 40px}.site-navbar .extra-info{padding:25px 0 0;border:0}.editorial-copy{padding:38px 10px}.tile-photo img{height:270px}.room-detail-gallery{grid-template-rows:185px 185px}.gallery-masonry{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-tile:first-child{grid-column:span 2;aspect-ratio:1.5}}
@media(max-width:576px){.stay-main-menu{gap:19px 14px}.site-navbar nav .stay-main-menu>li>a{font-size:18px;letter-spacing:.2px}.stay-submenu{display:block}.site-navbar nav .stay-submenu li a{font-size:10px;line-height:1.65}.site-navbar .extra-info{padding-top:17px}.site-navbar .extra-info h3{font-size:17px;margin:7px 0}.site-navbar .extra-info p{font-size:11px;margin:8px 0}.site-navbar nav{padding:80px 0 38px}.inner-page-hero,.inner-page-hero.hero-small .site-hero-inner{height:52vh;min-height:410px}.inner-page-hero .heading{font-size:43px}.inner-page-hero .sub-heading{font-size:13px}.room-detail-gallery{grid-template-columns:1fr 1fr;grid-template-rows:230px 130px;gap:6px}.room-detail-gallery .photo-main{grid-row:1;grid-column:span 2}.detail-intro{padding:0}.detail-intro h2{font-size:36px}.book-side{padding:30px 24px}.room-switch-grid{grid-template-columns:1fr}.room-switch img{width:100px;height:95px}.gallery-masonry{gap:8px}.gallery-tile{aspect-ratio:1}.guide-cards{grid-template-columns:1fr}.guide-card{padding:27px}.amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-steps{grid-template-columns:1fr}.booking-steps article{min-height:0}.booking-action{padding:38px 18px}.tile-photo img{height:240px}.editorial-img{height:340px}}

/* Additional room photos / 20 photos per room */
.room-gallery-clickable{cursor:zoom-in;position:relative}
.room-gallery-clickable:focus-visible,.villa-extra-item:focus-visible{outline:3px solid #52786e;outline-offset:3px}
.villa-extra-photos{margin-top:62px;padding:46px 0 0;border-top:1px solid #e1e9e3}
.villa-extra-kicker{font:600 10px/1.4 'DM Sans',sans-serif;letter-spacing:3px;color:#839d93;margin:0 0 13px}
.villa-extra-heading{display:flex;align-items:end;justify-content:space-between;gap:14px}
.villa-extra-title{color:#243f3c;font:500 clamp(29px,3vw,40px)/1.2 'DM Sans',sans-serif;letter-spacing:-.7px;margin:0}
.villa-extra-total{color:#94a8a2;font:600 11px 'DM Sans',sans-serif;letter-spacing:2px;white-space:nowrap}
.villa-extra-description{color:#798c85;font-size:13px;margin:14px 0 30px}
.villa-extra-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.villa-extra-item{position:relative;aspect-ratio:4/3;display:block;background:#edf0e9;padding:0;border:0;overflow:hidden;cursor:zoom-in}
.villa-extra-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.villa-extra-item:hover img{transform:scale(1.06)}
.villa-extra-number{position:absolute;bottom:0;left:0;color:#fff;background:linear-gradient(0deg,#0008,transparent);font:600 10px 'DM Sans',sans-serif;letter-spacing:1.6px;text-align:left;width:100%;padding:24px 15px 12px}
.villa-lightbox{border:0;background:transparent;width:min(1250px,96vw);max-width:96vw;max-height:96vh;padding:15px 42px;overflow:visible;color:#fff}
.villa-lightbox::backdrop{background:rgba(8,17,19,.96)}
.villa-lightbox__body{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}
.villa-lightbox__image{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;box-shadow:0 12px 45px #0005}
.villa-lightbox__counter{font:500 11px 'DM Sans',sans-serif;letter-spacing:2px;color:#d6e0dc;margin:15px 0 0}
.villa-lightbox__close,.villa-lightbox__prev,.villa-lightbox__next{font-family:Arial,sans-serif;border:0;color:#fff;background:#ffffff19;cursor:pointer;position:absolute;display:grid;place-items:center}
.villa-lightbox__close{right:-34px;top:-31px;border-radius:100%;width:42px;height:42px;font-size:27px}
.villa-lightbox__prev,.villa-lightbox__next{top:48%;border-radius:100%;width:42px;height:42px;font-size:35px;z-index:2}
.villa-lightbox__prev{left:-35px}.villa-lightbox__next{right:-35px}
.villa-lightbox__close:hover,.villa-lightbox__prev:hover,.villa-lightbox__next:hover{background:#ffffff40}
body.villa-gallery-open{overflow:hidden}
@media(max-width:900px){.villa-extra-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.villa-extra-photos{margin-top:36px;padding-top:34px}.villa-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.villa-extra-description{margin-bottom:20px}.villa-lightbox{padding:12px 22px}.villa-lightbox__prev{left:-18px}.villa-lightbox__next{right:-18px}.villa-lightbox__close{right:-15px;top:-40px}.villa-lightbox__prev,.villa-lightbox__next{width:32px;height:36px;font-size:25px}}
@media(prefers-reduced-motion:reduce){.villa-extra-item img{transition:none}}

/* Visible room photo gallery heading and empty state, even with zero uploads */
.villa-extra-empty[hidden]{display:none!important}
.villa-extra-empty{min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f7f4;border:1px solid #e2eae5;text-align:center;padding:28px 18px;margin-top:12px}
.villa-extra-empty span{font:600 11px/1.5 'DM Sans',sans-serif;letter-spacing:2.3px;color:#738f82}
.villa-extra-empty p{font-size:13px;color:#81958c;margin:10px 0 0}

/* Server-controlled reservation blackout dates */
#booking-calendar .cal-day.closed-date{background:#f5eeeb;color:#a48b83;border-color:#eee0dc;cursor:not-allowed}
#booking-calendar .cal-day.closed-date .dayprice{color:#a05c52;font-weight:700;font-size:10px}
#booking-calendar .cal-day.closed-date:disabled{opacity:.8}
#booking-calendar .cal-day.closed-date.selected{outline:2px solid #416f57;outline-offset:-2px}
.cal-legend .legend-closed{background:#c18a78;border-radius:3px}
