/* AUTO: CSS trang con — giá trị chính xác từ tessen-demo.web.app */
.rooms-hero{background:var(--color-primary-dark);border-radius:0 0 var(--radius-hero) var(--radius-hero);justify-content:center;align-items:center;width:100%;height:50vh;min-height:380px;display:flex;position:relative;overflow:hidden}
.rooms-hero-overlay{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);opacity:.95;position:absolute;top:0;right:0;bottom:0;left:0}
.rooms-hero-content{z-index:2;text-align:center;max-width:600px;padding:0 24px;position:relative}
.rooms-hero-title{font-family:var(--font-heading);color:#fff;margin:16px 0;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:700;line-height:1.15}
.rooms-hero-desc{color:#ffffffb3;max-width:480px;margin:0 auto;font-size:1rem;line-height:1.7}
:lang(ja) .rooms-hero-content{max-width:820px}
:lang(ja) .rooms-hero-desc{max-width:760px}
.rooms-floor-section{background:var(--color-cream)}
.rooms-floor-alt{background:#fff}
.rooms-floor-header{max-width:760px;margin-bottom:48px}
.rooms-floor-title{font-family:var(--font-heading);color:var(--color-dark);margin:12px 0 16px;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1.15}
.rooms-floor-desc{color:var(--color-gray);font-size:1rem;line-height:1.8}
.rooms-grid{gap:16px;display:grid}
.rooms-grid-3{grid-template-rows:auto auto;grid-template-columns:1.4fr 1fr}
.rooms-grid-3 .rooms-grid-large{grid-row:span 2}
.rooms-grid-2{grid-template-columns:1fr 1fr}
.rooms-grid-item{border-radius:16px;position:relative;overflow:hidden}
.rooms-grid-item img{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}
.rooms-grid-item:hover img{transform:scale(1.04)}
.rooms-grid-3 .rooms-grid-item{min-height:220px}
.rooms-grid-3 .rooms-grid-large{min-height:460px}
.rooms-grid-2 .rooms-grid-item{min-height:280px}
.amenities-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}
.amenity-card{background:var(--color-cream);border-radius:16px;transition:transform .3s,box-shadow .3s;overflow:hidden}
.amenity-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #00000014}
.amenity-card-img{height:200px;overflow:hidden}
.amenity-card-img img{object-fit:cover;width:100%;height:100%;transition:transform .6s}
.amenity-card-img .img-placeholder{height:100%;min-height:0}
.amenity-card:hover .amenity-card-img img{transform:scale(1.05)}
.amenity-card-body{padding:24px}
.amenity-card-title{font-family:var(--font-heading);color:var(--color-dark);margin-bottom:8px;font-size:1.25rem;font-weight:700}
.amenity-card-desc{color:var(--color-gray);font-size:.85rem;line-height:1.7}
.rooms-cta{background:var(--color-primary-dark);text-align:center;padding:80px 24px}
.rooms-cta-title{font-family:var(--font-heading);color:#fff;margin-bottom:16px;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.15}
.rooms-cta-desc{color:#ffffffb3;max-width:500px;margin:0 auto;font-size:1rem;line-height:1.7}
.hr-hero{border-radius:0 0 var(--radius-hero) var(--radius-hero);width:100%;height:50vh;min-height:320px;position:relative;overflow:hidden}
.hr-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}
.hr-hero-bg img{object-fit:cover;object-position:center top;width:100%;height:100%}
.hr-hero-overlay{background:linear-gradient(#0b3d4c40,#0b3d4c66,#0b3d4cd9);position:absolute;top:0;right:0;bottom:0;left:0}
.hr-hero-content{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}
.hr-hero-title{font-family:var(--font-heading);color:#fff;margin-bottom:.75rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.1}
.hr-hero-subtitle{color:#ffffffd9;max-width:480px;font-size:.95rem;line-height:1.7}
.hr-rules-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}
.hr-rule-card{border:1px solid var(--color-gray-light);background:#fff;border-radius:16px;align-items:flex-start;gap:1.25rem;padding:1.5rem 1.75rem;transition:transform .3s,box-shadow .3s;display:flex}
.hr-rule-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0b3d4c0f}
.hr-rule-number{font-family:var(--font-heading);color:var(--color-primary);flex-shrink:0;min-width:56px;font-size:2.5rem;font-weight:700;line-height:1}
.hr-rule-card p{color:var(--color-gray);margin:0;padding-top:.35rem;font-size:.88rem;line-height:1.7}
.ac-hero{border-radius:0 0 var(--radius-hero) var(--radius-hero);width:100%;height:50vh;min-height:320px;position:relative;overflow:hidden}
.ac-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}
.ac-hero-bg img{object-fit:cover;object-position:center;width:100%;height:100%}
.ac-hero-overlay{background:linear-gradient(#0b3d4c26,#0b3d4c4d,#0b3d4ccc);position:absolute;top:0;right:0;bottom:0;left:0}
.ac-hero-content{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}
.ac-hero-title{font-family:var(--font-heading);color:#fff;margin-bottom:.75rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.1}
.ac-hero-subtitle{color:#ffffffd9;max-width:480px;font-size:.95rem;line-height:1.7}
.ac-direction-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}
.ac-direction-card{border:1px solid var(--color-gray-light);border-radius:var(--radius-card);text-align:center;background:#fff;padding:2rem 1.75rem;transition:transform .3s,box-shadow .3s}
.ac-direction-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px #0b3d4c12}
.ac-direction-icon{width:48px;height:48px;color:var(--color-primary);margin:0 auto 1.25rem}
.ac-direction-icon svg{width:100%;height:100%}
.ac-direction-card h3{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:1rem;font-size:1.25rem}
.ac-direction-list{margin:0;padding:0;list-style:none}
.ac-direction-list li{color:var(--color-gray);border-bottom:1px solid var(--color-gray-light);padding:.35rem 0;font-size:.88rem;line-height:1.7}
.ac-direction-list li:last-child{border-bottom:none}
.ac-direction-address{color:var(--color-gray);margin:.25rem 0;font-size:.88rem;line-height:1.6}
.ac-map-container{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);width:100%;height:450px;overflow:hidden;box-shadow:0 8px 24px #0b3d4c0f}
.ac-map-container iframe{width:100%;height:100%;display:block}
.ac-checkin-grid{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}
.ac-checkin-text{flex-direction:column;gap:.75rem;display:flex}
.ac-checkin-text p{color:var(--color-gray);font-size:.9rem;line-height:1.8}
.ac-checkin-image{border-radius:var(--radius-card);overflow:hidden}
.ac-checkin-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s}
.ac-checkin-image:hover img{transform:scale(1.03)}
.ac-parking-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.ac-parking-map,.ac-parking-diagram{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);overflow:hidden}
.ac-parking-map img,.ac-parking-diagram img{width:100%;height:auto;display:block}
@media (max-width:767px){.ac-parking-grid{grid-template-columns:1fr}}
.img-placeholder,.ac-parking-placeholder{background:repeating-linear-gradient(45deg,var(--color-cream),var(--color-cream) 12px,#f3ece1 12px,#f3ece1 24px);justify-content:center;align-items:center;width:100%;height:100%;min-height:320px;display:flex}
.img-placeholder-text,.ac-parking-placeholder-text{letter-spacing:.05em;color:var(--color-gray);border-radius:var(--radius-card);background:#ffffffd9;padding:.75rem 1.5rem;font-size:1rem}
.bk-hero{border-radius:0 0 var(--radius-hero) var(--radius-hero);width:100%;height:35vh;min-height:240px;position:relative;overflow:hidden}
.bk-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}
.bk-hero-bg img{object-fit:cover;width:100%;height:100%}
.bk-hero-overlay{background:linear-gradient(#0b3d4c26,#0b3d4c4d,#0b3d4cbf);position:absolute;top:0;right:0;bottom:0;left:0}
.bk-hero-content{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}
.bk-hero-title{font-family:var(--font-heading);color:#fff;margin-bottom:.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1}
.bk-main{grid-template-columns:1.4fr 1fr;align-items:start;gap:1.5rem;display:grid}
.bk-calendar-panel{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);background:#fff;padding:2rem}
.bk-calendar-wrap{grid-template-columns:1fr 1fr;gap:2rem;display:grid}
.bk-month-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}
.bk-month-title{font-family:var(--font-heading);color:var(--color-primary-dark);font-size:1.2rem;font-weight:600}
.bk-nav-btn{border:1px solid var(--color-gray-light);cursor:pointer;width:32px;height:32px;color:var(--color-gray);background:#fff;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}
.bk-nav-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}
.bk-weekdays{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem;display:grid}
.bk-weekdays span{color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;padding:.35rem 0;font-size:.7rem;font-weight:600}
.bk-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}
.bk-stay-panel{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);background:#fff;padding:2rem}
.bk-stay-title{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}
.bk-stay-dates{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}
.bk-stay-field{margin-bottom:1rem}
.bk-stay-field label{color:var(--color-gray);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem;font-size:.7rem;font-weight:600;display:block}
.bk-date-display{color:var(--color-primary);border-bottom:1px solid var(--color-gray-light);justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.9rem;font-weight:500;display:flex}
.bk-select{width:100%;color:var(--color-primary);border:none;border-bottom:1px solid var(--color-gray-light);font-size:.9rem;font-family:var(--font-body);cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:#fff;padding:.6rem 0}
.bk-duration{color:var(--color-primary);border-bottom:1px solid var(--color-gray-light);padding:.5rem 0;font-size:.9rem;font-weight:600}
.bk-stay-guests{grid-template-columns:1fr 1fr;gap:1rem;display:grid}
.bk-guests-note{color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;margin-top:.75rem;padding:.625rem .875rem;font-size:.85rem;line-height:1.4}
.bk-guests-note[hidden]{display:none}
.bk-guests-note.is-error{color:#b91c1c;background:#fee2e2;border-color:#fecaca}
.bk-counter{border:1px solid var(--color-gray-light);border-radius:8px;align-items:center;display:flex;overflow:hidden}
.bk-counter-btn{cursor:pointer;width:40px;height:40px;color:var(--color-primary);background:#fff;border:none;justify-content:center;align-items:center;font-size:1.2rem;transition:background .2s;display:flex}
.bk-counter-btn:hover{background:var(--color-cream)}
.bk-counter-value{text-align:center;color:var(--color-primary-dark);flex:1;font-size:1rem;font-weight:600}
.bk-price-summary{border-top:1px solid var(--color-gray-light);margin:1rem 0 .75rem;padding-top:1rem}
.bk-price-row{color:var(--color-gray);justify-content:space-between;margin-bottom:.35rem;font-size:.85rem;display:flex}
.bk-total{justify-content:space-between;align-items:center;margin-top:.5rem;padding:1rem 0;display:flex}
.bk-total-label{font-family:var(--font-heading);color:var(--color-primary-dark);font-size:1.1rem;font-weight:700}
.bk-total-value{font-family:var(--font-heading);color:var(--color-primary);font-size:1.5rem;font-weight:700}
.bk-reserve-btn{background:var(--color-primary);color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:16px;font-size:.9rem;font-weight:700;transition:all .3s;display:block}
.bk-reserve-btn:hover{background:var(--color-primary-light);transform:translateY(-1px)}
.bk-form-panel{max-width:700px;margin:0 auto}
.bk-form-card{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);background:#fff;padding:2.5rem}
.bk-form-title{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:.5rem;font-size:1.75rem;font-weight:700}
.bk-form-subtitle{color:var(--color-gray);margin-bottom:2rem;font-size:.9rem}
.bk-form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}
.bk-form-field label{color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}
.bk-form-field input,.bk-form-field textarea{border:1px solid var(--color-gray-light);width:100%;font-size:.9rem;font-family:var(--font-body);color:var(--color-primary-dark);background:#fff;border-radius:8px;padding:.75rem 1rem;transition:border-color .2s}
.bk-form-field input:focus,.bk-form-field textarea:focus{border-color:var(--color-primary);outline:none}
.bk-form-field input.error{border-color:#e74c3c}
.bk-form-summary{background:var(--color-cream);color:var(--color-gray);border-radius:12px;margin:1.5rem 0;padding:1.25rem;font-size:.85rem;line-height:1.7}
.bk-form-actions{gap:1rem;margin-top:1.5rem;display:flex}
.bk-back-btn{border:2px solid var(--color-gray-light);color:var(--color-gray);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:14px;font-size:.85rem;font-weight:600;transition:all .3s}
.bk-back-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}
.bk-submit-btn{background:var(--color-primary);color:#fff;letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;flex:2;padding:14px;font-size:.9rem;font-weight:700;transition:all .3s}
.bk-submit-btn:hover{background:var(--color-primary-light)}
.bk-confirm-panel{max-width:600px;margin:0 auto}
.bk-confirm-card{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);text-align:center;background:#fff;padding:3rem}
.bk-confirm-icon{color:#27ae60;width:72px;height:72px;margin:0 auto 1.5rem}
.bk-confirm-icon svg{width:100%;height:100%}
.bk-confirm-title{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:.75rem;font-size:1.75rem;font-weight:700}
.bk-confirm-text{color:var(--color-gray);margin-bottom:1.5rem;font-size:.9rem;line-height:1.7}
.bk-confirm-details{text-align:left;background:var(--color-cream);color:var(--color-gray);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem;font-size:.85rem;line-height:1.8}
.bk-home-btn{background:var(--color-primary);color:#fff;letter-spacing:.05em;border-radius:8px;padding:14px 32px;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}
.bk-home-btn:hover{background:var(--color-primary-light);transform:translateY(-1px)}
.pkg-hero{border-radius:0 0 var(--radius-hero) var(--radius-hero);width:100%;height:50vh;min-height:320px;position:relative;overflow:hidden}
.pkg-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}
.pkg-hero-bg img{object-fit:cover;width:100%;height:100%}
.pkg-hero-overlay{background:linear-gradient(#0b3d4c26,#0b3d4c4d,#0b3d4ccc);position:absolute;top:0;right:0;bottom:0;left:0}
.pkg-hero-content{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}
.pkg-hero-title{font-family:var(--font-heading);color:#fff;max-width:720px;margin-bottom:.75rem;font-size:clamp(1.4rem,2.6vw,2.25rem);font-weight:700;line-height:1.35}
.pkg-card{border:1px solid var(--color-gray-light);border-radius:var(--radius-card);background:#fff;grid-template-columns:1fr 1fr;gap:0;margin-bottom:2rem;transition:transform .3s,box-shadow .3s;display:grid;overflow:hidden}
.pkg-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0b3d4c14}
.pkg-card--reverse .pkg-card-img{order:2}
.pkg-card--reverse .pkg-card-body{order:1}
.pkg-card-img{min-height:280px;position:relative;overflow:hidden}
.pkg-card-img img{object-fit:cover;width:100%;height:100%;transition:transform .4s}
.pkg-card:hover .pkg-card-img img{transform:scale(1.04)}
.pkg-card-body{flex-direction:column;justify-content:center;padding:2rem 2.5rem;display:flex}
.pkg-card-title{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:.75rem;font-size:1.5rem;font-weight:700}
.pkg-card-desc{color:var(--color-gray);margin-bottom:1.25rem;font-size:.88rem;line-height:1.8}
.pkg-card-meta{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}
.pkg-card-meta span{color:var(--color-primary);background:var(--color-cream);border-radius:20px;padding:.35rem .75rem;font-size:.78rem;font-weight:500}
.pkg-card-btn{background:var(--color-primary);color:#fff;border-radius:8px;align-items:center;gap:.5rem;width:fit-content;padding:10px 24px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}
.pkg-card-btn:hover{background:var(--color-primary-light);transform:translateY(-1px)}
.ct-hero{border-radius:0 0 var(--radius-hero) var(--radius-hero);width:100%;height:50vh;min-height:320px;position:relative;overflow:hidden}
.ct-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0}
.ct-hero-bg img{object-fit:cover;object-position:center top;width:100%;height:100%}
.ct-hero-overlay{background:linear-gradient(#0b3d4c26,#0b3d4c4d,#0b3d4ccc);position:absolute;top:0;right:0;bottom:0;left:0}
.ct-hero-content{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}
.ct-hero-title{font-family:var(--font-heading);color:#fff;margin-bottom:.75rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.1}
.ct-hero-subtitle{color:#ffffffd9;max-width:480px;font-size:.95rem;line-height:1.7}
.ct-grid{grid-template-columns:1fr 1fr;align-items:start;gap:3rem;display:grid}
.ct-info-note{color:var(--color-gray);margin-bottom:2rem;font-size:.88rem;line-height:1.7}
.ct-cards{flex-direction:column;gap:1.25rem;display:flex}
.ct-card{border:1px solid var(--color-gray-light);border-radius:var(--radius-card);background:#fff;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;transition:transform .3s,box-shadow .3s;display:flex}
.ct-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0b3d4c0f}
.ct-card-icon{width:40px;height:40px;color:var(--color-primary);flex-shrink:0}
.ct-card-icon svg{width:100%;height:100%}
.ct-card h3{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:.25rem;font-size:1rem;font-weight:600}
.ct-card-value{color:var(--color-primary);font-size:.9rem;font-weight:500;text-decoration:none;display:block}
a.ct-card-value:hover{text-decoration:underline}
.ct-card-sub{color:var(--color-gray);margin-top:.15rem;font-size:.78rem}
.ct-social-links{gap:.75rem;margin-top:.25rem;display:flex}
.ct-social-links a{background:var(--color-cream);width:36px;height:36px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}
.ct-social-links a:hover{background:var(--color-primary);color:#fff}
.ct-social-links a svg{width:18px;height:18px}
.ct-form-card{border-radius:var(--radius-card);border:1px solid var(--color-gray-light);background:#fff;padding:2.5rem}
.ct-form-title{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}
.ct-form-field{margin-bottom:1.25rem}
.ct-form-field label{color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-size:.75rem;font-weight:600;display:block}
.ct-form-field input,.ct-form-field textarea{border:1px solid var(--color-gray-light);width:100%;font-size:.9rem;font-family:var(--font-body);color:var(--color-primary-dark);background:#fff;border-radius:8px;padding:.75rem 1rem;transition:border-color .2s}
.ct-form-field input:focus,.ct-form-field textarea:focus{border-color:var(--color-primary);outline:none}
.ct-form-field input.error,.ct-form-field textarea.error{border-color:#e74c3c}
.ct-submit-btn{background:var(--color-primary);color:#fff;letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:16px;font-size:.9rem;font-weight:700;transition:all .3s;display:block}
.ct-submit-btn:hover{background:var(--color-primary-light);transform:translateY(-1px)}
.ct-form-success{text-align:center;padding:2rem 0}
.ct-success-icon{color:#27ae60;width:64px;height:64px;margin:0 auto 1rem}
.ct-success-icon svg{width:100%;height:100%}
.ct-form-success h3{font-family:var(--font-heading);color:var(--color-primary-dark);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}
.ct-form-success p{color:var(--color-gray);font-size:.9rem;line-height:1.7}
/* CF7 integration — match theme field styles */
.ct-form-card .wpcf7-form p{margin:0 0 1.25rem}
.ct-form-card .wpcf7-form p:last-child{margin-bottom:0}
/* Label above input */
.ct-form-card .wpcf7-form p > label{color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600;display:block;margin-bottom:.4rem}
.ct-form-card .wpcf7-form p > label > br{display:none}
/* Span wrapper fills full width */
.ct-form-card .wpcf7-form .wpcf7-form-control-wrap{display:block}
/* Inputs & textarea */
.ct-form-card .wpcf7-form input[type=text],
.ct-form-card .wpcf7-form input[type=email],
.ct-form-card .wpcf7-form input[type=tel],
.ct-form-card .wpcf7-form textarea{border:1px solid var(--color-gray-light);width:100%;font-size:.9rem;font-family:var(--font-body);color:var(--color-primary-dark);background:#fff;border-radius:8px;padding:.75rem 1rem;transition:border-color .2s;box-sizing:border-box;margin-top:.4rem}
.ct-form-card .wpcf7-form input:focus,
.ct-form-card .wpcf7-form textarea:focus{border-color:var(--color-primary);outline:none}
/* Submit button */
.ct-form-card .wpcf7-form input[type=submit]{background:var(--color-primary);color:#fff;letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:16px;font-size:.9rem;font-weight:700;transition:all .3s;display:block}
.ct-form-card .wpcf7-form input[type=submit]:hover{background:var(--color-primary-light);transform:translateY(-1px)}
/* Validation */
.ct-form-card .wpcf7-form .wpcf7-not-valid{border-color:#e74c3c!important}
.ct-form-card .wpcf7-form .wpcf7-not-valid-tip{color:#e74c3c;font-size:.75rem;margin-top:.25rem;display:block}
/* Response message */
.ct-form-card .wpcf7-form .wpcf7-response-output{margin:1rem 0 0;padding:.75rem 1rem;border-radius:8px;font-size:.85rem;border:none}
.ct-form-card .wpcf7-form.sent .wpcf7-response-output{background:#f0fdf4;border:1px solid #86efac!important;color:#15803d}
.ct-form-card .wpcf7-form.failed .wpcf7-response-output,
.ct-form-card .wpcf7-form.spam .wpcf7-response-output{background:#fef2f2;border:1px solid #fca5a5!important;color:#dc2626}
@media (max-width:767px){
.hr-hero{border-radius:0 0 24px 24px;height:45vh;min-height:280px}
.hr-rules-grid{grid-template-columns:1fr}
.hr-rule-number{min-width:44px;font-size:2rem}
.hr-rule-card{padding:1.25rem 1.5rem}
.ac-hero{border-radius:0 0 24px 24px;height:45vh;min-height:280px}
.ac-direction-grid{grid-template-columns:1fr}
.ac-map-container{height:300px}
.ac-checkin-grid{grid-template-columns:1fr;gap:2rem}
.bk-hero{border-radius:0 0 24px 24px;height:38vh;min-height:300px}
.bk-hero-title{font-size:1.7rem;line-height:1.3;padding:0 .5rem}
.bk-main{grid-template-columns:1fr}
.bk-calendar-wrap{grid-template-columns:1fr;gap:1.5rem}
.bk-calendar-panel,.bk-stay-panel{padding:1.5rem}
.bk-form-grid{grid-template-columns:1fr}
.bk-form-card{padding:1.5rem}
.bk-form-actions{flex-direction:column}
.pkg-card{grid-template-columns:1fr}
.pkg-card--reverse .pkg-card-img,.pkg-card--reverse .pkg-card-body{order:0}
.pkg-card-body{padding:1.5rem}
.pkg-hero,.ct-hero{border-radius:0 0 24px 24px;height:45vh;min-height:280px}
.ct-grid{grid-template-columns:1fr;gap:2rem}
.ct-form-card{padding:1.5rem}
}

/* Calendar day cells (JS-generated) — từ CSS gốc */
.bk-day{aspect-ratio:1;cursor:pointer;width:100%;color:var(--color-primary-dark);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;transition:all .2s;display:flex}
.bk-day:hover:not(.bk-day-disabled):not(.bk-day-empty){background:var(--color-cream);color:var(--color-primary)}
.bk-day-today{color:var(--color-accent);font-weight:700}
.bk-day-disabled{color:#ccc;cursor:default;pointer-events:none}
.bk-day-empty{pointer-events:none}
.bk-day-selected{font-weight:600;background:var(--color-primary)!important;color:#fff!important}
.bk-day-in-range{background:#0b3d4c14;border-radius:0}
.bk-day-range-start{border-radius:50% 0 0 50%}
.bk-day-range-end{border-radius:0 50% 50% 0}

/* 1階: bố cục 5 ảnh — 1 ảnh lớn bên trái + lưới 2x2 bên phải */
.rooms-grid-5{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr}
.rooms-grid-5 .rooms-grid-large{grid-row:span 2;min-height:460px}
.rooms-grid-5 .rooms-grid-item{min-height:222px}
@media (max-width:767px){
  .rooms-grid-5{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .rooms-grid-5 .rooms-grid-large{grid-column:span 2;grid-row:auto;min-height:260px}
  .rooms-grid-5 .rooms-grid-item{min-height:150px}
}

/* Thẻ tiện nghi: collage 4 ảnh (lưới 2x2) */
.amenity-card-img--collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;height:200px}
.amenity-card-img--collage img{width:100%;height:100%;min-width:0;min-height:0;object-fit:cover}

/* Mobile: mỗi thẻ tiện nghi chiếm full chiều rộng (1 cột) */
@media (max-width:767px){.amenities-grid{grid-template-columns:1fr}}

/* Thẻ tiện nghi: 2 ảnh cạnh nhau */
.amenity-card-img--duo{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.amenity-card-img--duo img{width:100%;height:100%;object-fit:cover}

/* =============================================================
   Gallery hiện đại: mosaic + hover zoom/overlay + lightbox
   ============================================================= */
.floor-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:172px;gap:14px;grid-auto-flow:dense}
.floor-gallery .g-cell{position:relative;overflow:hidden;border-radius:14px;cursor:zoom-in;padding:0;border:none;background:#e9e4dc;display:block;box-shadow:0 6px 18px rgba(11,61,76,.07)}
.floor-gallery .g-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.floor-gallery .g-cell:hover img{transform:scale(1.09)}
.floor-gallery .g-cell__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(to top,rgba(7,42,53,.5),rgba(7,42,53,.05) 55%,transparent);opacity:0;transition:opacity .35s ease}
.floor-gallery .g-cell:hover .g-cell__overlay{opacity:1}
.floor-gallery .g-cell__overlay svg{width:30px;height:30px;color:#fff;transform:translateY(10px) scale(.9);transition:transform .35s ease}
.floor-gallery .g-cell:hover .g-cell__overlay svg{transform:translateY(0) scale(1)}
/* 8 ảnh -> mosaic 4x4: 2 điểm nhấn lớn (1,6) + 2 ảnh rộng (4,5) */
.floor-gallery--eight .g-cell:nth-child(1){grid-column:span 2;grid-row:span 2}
.floor-gallery--eight .g-cell:nth-child(4){grid-column:span 2}
.floor-gallery--eight .g-cell:nth-child(5){grid-column:span 2}
.floor-gallery--eight .g-cell:nth-child(6){grid-column:span 2;grid-row:span 2}
/* 5 ảnh -> 1 lớn trái + 2x2 phải */
.floor-gallery--five .g-cell:nth-child(1){grid-column:span 2;grid-row:span 2}
@media (max-width:900px){ .floor-gallery{grid-auto-rows:132px} }
@media (max-width:600px){
  .floor-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:118px;gap:10px}
  .floor-gallery .g-cell:nth-child(n){grid-column:auto;grid-row:auto}
  .floor-gallery--eight .g-cell:nth-child(1),
  .floor-gallery--five .g-cell:nth-child(1){grid-column:span 2;grid-row:span 2}
}
.amenity-card-img img[data-lb]{cursor:zoom-in}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(7,42,53,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lb.open{display:flex;animation:lb-fade .25s ease}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
.lb__stage{margin:0;max-width:92vw;max-height:86vh;display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.lb__img{max-width:92vw;max-height:86vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.55);display:block}
@keyframes lb-in-right{from{opacity:0;transform:translateX(72px) scale(.96)}to{opacity:1;transform:none}}
@keyframes lb-in-left{from{opacity:0;transform:translateX(-72px) scale(.96)}to{opacity:1;transform:none}}
@keyframes lb-in-pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.lb__img.anim-right{animation:lb-in-right .45s cubic-bezier(.2,.8,.2,1)}
.lb__img.anim-left{animation:lb-in-left .45s cubic-bezier(.2,.8,.2,1)}
.lb__img.anim-pop{animation:lb-in-pop .4s ease}
.lb__btn{position:absolute;z-index:10;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;border-radius:999px;transition:background .25s,transform .25s}
.lb__btn:hover{background:rgba(255,255,255,.25)}
.lb__btn svg{width:22px;height:22px}
.lb__close{top:20px;right:20px;width:46px;height:46px}
.lb__prev,.lb__next{top:50%;transform:translateY(-50%);width:52px;height:52px}
.lb__prev{left:24px}.lb__next{right:24px}
.lb__prev:hover,.lb__next:hover{transform:translateY(-50%) scale(1.06)}
.lb__counter{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font-size:.85rem;letter-spacing:.08em}
@media (max-width:600px){ .lb__prev{left:10px}.lb__next{right:10px}.lb__close{top:12px;right:12px}.lb__prev,.lb__next{width:44px;height:44px} }

/* =============================================================
   Sightseeing: bấm ảnh -> phóng to + overlay title/mô tả
   ============================================================= */
.pkg-card-img--zoomable{cursor:zoom-in}
.pkg-card-img__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(to top,rgba(7,42,53,.45),transparent 60%);opacity:0;transition:opacity .35s}
.pkg-card-img--zoomable:hover .pkg-card-img__zoom{opacity:1}
.pkg-card-img__zoom svg{width:44px;height:44px;color:#fff;background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.55);border-radius:999px;padding:10px;box-shadow:0 6px 20px rgba(0,0,0,.25);transform:translateY(10px);transition:transform .35s}
.pkg-card-img--zoomable:hover .pkg-card-img__zoom svg{transform:translateY(0)}

.sight-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(7,42,53,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sight-modal.open{display:flex;animation:sight-fade .3s ease}
@keyframes sight-fade{from{opacity:0}to{opacity:1}}
.sight-modal__card{position:relative;margin:0;width:min(1280px,96vw);max-height:92vh;border-radius:20px;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.6);animation:sight-pop .4s cubic-bezier(.2,.7,.2,1)}
@keyframes sight-pop{from{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.sight-modal__img{display:block;width:100%;height:auto;max-height:92vh;object-fit:cover}
.sight-modal__caption{position:absolute;left:0;right:0;bottom:0;padding:3rem 2.25rem 1.85rem;color:#fff;background:linear-gradient(to top,rgba(5,30,38,.96),rgba(7,42,53,.6) 55%,rgba(7,42,53,0));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.sight-modal__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}
.sight-modal__meta>span{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:.3rem .85rem;font-size:.8rem;font-weight:500;color:#fff}
.sight-modal__title{font-family:var(--font-heading);font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;line-height:1.15;margin-bottom:.6rem;text-shadow:0 2px 16px rgba(0,0,0,.45)}
.sight-modal__desc{font-size:.96rem;line-height:1.75;color:rgba(255,255,255,.92);max-width:720px;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.sight-modal__close{position:absolute;top:18px;right:18px;z-index:5;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;border-radius:999px;transition:background .25s,transform .25s}
.sight-modal__close:hover{background:rgba(255,255,255,.28);transform:scale(1.06)}
.sight-modal__close svg{width:22px;height:22px}
@media (max-width:700px){
  .sight-modal__card{width:94vw;max-height:90vh}
  .sight-modal__img{height:60vh;max-height:60vh;object-fit:cover}
  .sight-modal__caption{padding:2rem 1.4rem 1.4rem}
  .sight-modal__title{font-size:1.55rem}
  .sight-modal__desc{font-size:.9rem;line-height:1.6}
  .sight-modal__close{top:12px;right:12px}
}

/* =============================================================
   Booking — màn xác nhận hiện đại
   ============================================================= */
.bk-confirm-panel{max-width:560px;margin:0 auto}
.bk-confirm-card{border:1px solid var(--color-gray-light);border-radius:24px;background:#fff;padding:0;overflow:hidden;box-shadow:0 30px 70px rgba(11,61,76,.14)}

.bk-confirm-hero{position:relative;text-align:center;padding:2.75rem 2rem 2.25rem;background:linear-gradient(160deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;overflow:hidden}
.bk-confirm-glow{position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(232,124,62,.38),transparent 70%);top:-150px;right:-120px;pointer-events:none}
.bk-confirm-check{position:relative;z-index:1;display:inline-flex;width:86px;height:86px;margin:0 auto 1.1rem;border-radius:50%;background:rgba(255,255,255,.12);align-items:center;justify-content:center;animation:bk-pop .55s cubic-bezier(.2,.8,.2,1)}
.bk-confirm-check svg{width:56px;height:56px}
.bk-check-circle{fill:none;stroke:#34d399;stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:bk-draw .6s ease forwards .15s}
.bk-check-mark{fill:none;stroke:#34d399;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48;animation:bk-draw .4s ease forwards .62s}
@keyframes bk-draw{to{stroke-dashoffset:0}}
@keyframes bk-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.bk-confirm-title{font-family:var(--font-heading);color:#fff;font-size:1.9rem;font-weight:700;margin:0 0 .6rem;position:relative;z-index:1}
.bk-confirm-text{color:rgba(255,255,255,.82);font-size:.9rem;line-height:1.7;max-width:410px;margin:0 auto;position:relative;z-index:1}

.bk-confirm-body{padding:1.75rem 1.85rem 2rem}
.bk-confirm-ref{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.15rem;border:1px dashed var(--color-accent);border-radius:12px;background:var(--color-cream);margin-bottom:1.5rem}
.bk-confirm-ref__label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-gray)}
.bk-confirm-ref__code{font-family:ui-monospace,Menlo,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.12em;color:var(--color-primary)}
.bk-confirm-rows{list-style:none;margin:0 0 1.25rem;padding:0}
.bk-confirm-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--color-gray-light)}
.bk-confirm-row__label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--color-gray)}
.bk-confirm-row__value{font-size:.95rem;font-weight:600;color:var(--color-primary-dark);text-align:right}
.bk-confirm-total{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.2rem;border-radius:14px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;margin-bottom:1.6rem}
.bk-confirm-total__label{font-family:var(--font-heading);font-size:1rem;font-weight:700}
.bk-confirm-total__value{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-accent-light)}
.bk-confirm-home{display:block;text-align:center;background:var(--color-accent);color:#fff;border-radius:10px;padding:14px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;transition:background .3s,transform .3s}
.bk-confirm-home:hover{background:var(--color-accent-dark);transform:translateY(-2px)}
@media (max-width:600px){.bk-confirm-body{padding:1.4rem 1.25rem 1.6rem}.bk-confirm-hero{padding:2.25rem 1.5rem 2rem}.bk-confirm-title{font-size:1.6rem}}
/* Custom alert modal */
.bk-alert-overlay{position:fixed;inset:0;background:rgba(10,24,40,.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:opacity .2s}
.bk-alert-overlay.bk-alert-in{opacity:1}
.bk-alert-overlay.bk-alert-in .bk-alert-box{transform:translateY(0);opacity:1}
.bk-alert-box{background:#fff;border-radius:16px;padding:2rem 2rem 1.75rem;width:90%;max-width:380px;text-align:center;box-shadow:0 20px 60px rgba(10,24,40,.18);transform:translateY(12px);opacity:0;transition:transform .2s,opacity .2s}
.bk-alert-icon{width:52px;height:52px;margin:0 auto 1rem;color:var(--color-accent,#c8a96e)}
.bk-alert-icon svg{width:100%;height:100%}
.bk-alert-msg{color:var(--color-primary-dark,#0a1828);font-size:.95rem;line-height:1.6;margin:0 0 1.5rem}
.bk-alert-ok{background:var(--color-primary,#0a1828);color:#fff;border:none;border-radius:8px;padding:.7rem 2.5rem;font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.04em;transition:background .2s,transform .15s}
.bk-alert-ok:hover{background:var(--color-primary-light,#1a3a5c);transform:translateY(-1px)}
.bk-alert-ok:focus{outline:2px solid var(--color-accent,#c8a96e);outline-offset:2px}
