.hero{padding:24px 0}.hero h1{font-size:24px;font-weight:bold;line-height:1.4;margin-bottom:8px}.hero-meta{color:#717171;font-size:14px;margin-bottom:20px}.layout-chips{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}.layout-chip{display:inline-block;border:1px solid #E61E4D;border-radius:12px;padding:16px;text-align:center;color:#E61E4D;font-size:14px;font-weight:600;text-decoration:none;background:#fff;min-width:80px;transition:background 0.2s ease,color 0.2s ease}.layout-chip:hover,.layout-chip:focus{background:#E61E4D;color:#fff}.layout-chip-active{background:#E61E4D;color:#fff;cursor:default;pointer-events:none}@media screen and (max-width:767px){.layout-chips{gap:8px;margin-bottom:16px}.layout-chip{padding:12px;min-width:64px;font-size:13px}}.gallery-hero{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:8px;border-radius:12px;overflow:hidden;margin-bottom:20px;cursor:pointer;position:relative}.gallery-hero:hover .show-all-btn{opacity:1}.gallery-main{grid-row:span 2}.gallery-main img,.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-main,.gallery-item{background:#ddd;display:flex;align-items:center;justify-content:center;color:#999}.show-all-btn{position:absolute;bottom:20px;right:20px;background:#fff;border:1px solid #222;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;opacity:0.9;transition:opacity 0.2s}.show-all-btn:hover{background:#f7f7f7}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;z-index:1000;overflow-y:auto}.modal.active{display:block}.modal-header{position:sticky;top:0;background:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;z-index:10;border-bottom:1px solid #eee}.modal-close{background:none;border:none;font-size:16px;cursor:pointer;padding:8px 16px;border-radius:8px;display:flex;align-items:center;gap:8px}.modal-close:hover{background:#f7f7f7}.photo-tour-nav{position:sticky;top:60px;background:#fff;z-index:9;border-bottom:1px solid #eee;padding:0 20px}.photo-tour-nav-inner{max-width:1000px;margin:0 auto;display:flex;gap:8px;overflow-x:auto;padding:15px 0;-webkit-overflow-scrolling:touch}.photo-tour-nav-inner::-webkit-scrollbar{display:none}.nav-item{flex-shrink:0;padding:8px 16px;border-radius:20px;font-size:14px;cursor:pointer;transition:all 0.2s;border:1px solid #ddd;background:#fff;white-space:nowrap}.nav-item:hover{background:#f7f7f7}.nav-item.active{background:#222;color:#fff;border-color:#222}.photo-tour-content{max-width:1000px;margin:0 auto;padding:20px}.photo-category{margin-bottom:40px;scroll-margin-top:130px}.photo-category h3{font-size:22px;font-weight:600;margin-bottom:16px;padding-bottom:8px}.photo-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.photo-category-grid img,.photo-category-grid .photo-placeholder{width:100%;height:250px;object-fit:cover;border-radius:8px;cursor:pointer;transition:opacity 0.2s}.photo-category-grid img:hover,.photo-category-grid .photo-placeholder:hover{opacity:0.9}.photo-placeholder{background:#ddd;display:flex;align-items:center;justify-content:center;color:#999}.lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.95);z-index:2000;align-items:center;justify-content:center}.lightbox.active{display:flex}.lightbox-close{position:absolute;top:20px;left:20px;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:10px;z-index:10}.lightbox-img{max-width:90%;max-height:90%;object-fit:contain}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.9);border:none;width:50px;height:50px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox-nav:hover{background:#fff}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-caption{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:600;background:rgba(0,0,0,0.55);padding:5px 14px;border-radius:20px;white-space:nowrap;max-width:80vw;overflow:hidden;text-overflow:ellipsis}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:14px}.main-content{display:grid;grid-template-columns:1fr 380px;gap:40px;padding:40px 0}.section{padding:24px 0;border-bottom:1px solid #eee}.section-title{font-size:20px;font-weight:bold;margin-bottom:16px}.room-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:16px}.room-card{border:1px solid #ddd;border-radius:12px;padding:16px;text-align:center}a.room-card{border-color:#E61E4D}.room-card h4{font-size:16px;margin-bottom:8px;color:#E61E4D}.room-card p{font-size:13px;color:#666}.amenity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.amenity-item{display:flex;align-items:center;gap:10px;padding:8px 0}.amenity-icon{font-size:20px}.price-section{margin-top:20px}.price-table{width:100%;border-collapse:collapse;margin:15px 0;font-size:14px}.price-table th,.price-table td{border:1px solid #ddd;padding:12px;text-align:center}.price-table th{background:#f8f8f8;font-weight:600}.price-table .plan-title{background:#E61E4D;color:#fff;font-size:15px}.price-note{font-size:12px;color:#666;margin-top:10px}.booking-card{border:1px solid #ddd;border-radius:12px;padding:24px;box-shadow:0 6px 16px rgba(0,0,0,0.12);position:sticky;top:90px;background:#fff}.booking-card .price{font-size:24px;font-weight:bold}.booking-card .period{font-size:14px;color:#666}.date-picker{border:1px solid #ddd;border-radius:8px;margin:16px 0}.date-row{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #ddd}.date-input{padding:12px;border-right:1px solid #ddd}.date-input:last-child{border-right:none}.date-input label{display:block;font-size:10px;font-weight:600;text-transform:uppercase}.date-input span{font-size:14px;color:#666}.guests-input{padding:12px}.guests-input label{display:block;font-size:10px;font-weight:600;text-transform:uppercase}.guests-input span{font-size:14px;color:#666}.reserve-btn{width:100%;padding:14px;background:linear-gradient(to right,#E61E4D,#D70466);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:16px}.reserve-btn:hover{opacity:0.9}.booking-note{text-align:center;font-size:13px;color:#666;margin-top:12px}.photo-section{padding:25px 0;border-bottom:1px solid #eee}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.photo-grid img,.photo-grid .photo-placeholder{width:100%;height:150px;object-fit:cover;border-radius:8px;cursor:pointer;transition:opacity 0.2s;background:#ddd;display:flex;align-items:center;justify-content:center;color:#999}.photo-grid img:hover,.photo-grid .photo-placeholder:hover{opacity:0.85}.host-section{padding:40px 0;border-top:1px solid #eee}.host-card{display:flex;gap:24px;align-items:flex-start}.host-avatar{width:64px;height:64px;border-radius:50%;background:#ddd}.host-info h3{font-size:18px;margin-bottom:4px}.host-info p{font-size:14px;color:#666}.area-info{margin-top:20px}.area-item{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid #eee}.area-item:last-child{border-bottom:none}.area-icon{font-size:24px}.area-text h4{font-size:15px;margin-bottom:4px}.area-text p{font-size:13px;color:#666}@media (max-width:900px){.main-content{grid-template-columns:1fr}}@media (max-width:768px){.hero h1{font-size:18px}.gallery-hero{grid-template-columns:1fr;grid-template-rows:250px}.gallery-item{display:none}}.map-container{border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.map-container iframe{display:block}.price-type-link{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:inherit;transition:color 0.2s}.price-type-link:hover{color:#E61E4D}.price-type-arrow{font-size:14px;color:#E61E4D;transition:transform 0.2s}.price-type-link:hover .price-type-arrow{transform:translateX(3px)}.floorplan-grid{margin:16px 0 0;max-width:350px;display:flex;gap:8px}.floorplan-card{flex:1;min-width:0;background:#f8f8f8;border-radius:12px;padding:10px;text-align:center;cursor:zoom-in;transition:transform 0.2s,box-shadow 0.2s}.floorplan-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.08)}.floorplan-card img{display:block;width:100%;height:auto;max-width:100%;border-radius:8px;background:#fff;margin:0 auto}.floorplan-grid>.floorplan-card:only-child img{width:auto;max-height:400px}.floorplan-label{margin:12px 0 0;font-size:14px;font-weight:600;color:#222}.floorplan-modal{position:fixed;inset:0;background:rgba(0,0,0,0.88);display:none;align-items:center;justify-content:center;z-index:10000;padding:40px 20px;cursor:zoom-out;animation:fpFadeIn 0.2s ease-out}.floorplan-modal.active{display:flex}@keyframes fpFadeIn{from{opacity:0}to{opacity:1}}.floorplan-modal-img{max-width:min(95vw,1200px);max-height:85vh;width:auto;height:auto;border-radius:8px;background:#fff;cursor:default;box-shadow:0 20px 60px rgba(0,0,0,0.4)}.floorplan-modal-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,0.12);color:#fff;font-size:22px;cursor:pointer;transition:background 0.2s;z-index:2}.floorplan-modal-close:hover{background:rgba(255,255,255,0.25)}.floorplan-modal-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,0.12);color:#fff;font-size:30px;line-height:1;cursor:pointer;transition:background 0.2s;z-index:2;display:flex;align-items:center;justify-content:center}.floorplan-modal-nav:hover{background:rgba(255,255,255,0.25)}.floorplan-modal-nav:disabled{opacity:0.2;cursor:not-allowed}.floorplan-modal-prev{left:20px}.floorplan-modal-next{right:20px}.floorplan-modal-caption{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;font-size:14px;font-weight:600;background:rgba(0,0,0,0.5);padding:6px 16px;border-radius:20px;letter-spacing:0.02em}@media(max-width:600px){.floorplan-modal-close{top:12px;right:12px}.floorplan-modal-prev{left:6px}.floorplan-modal-next{right:6px}.floorplan-modal-nav{width:40px;height:40px;font-size:24px}}
