:root{--navy-950: #0a1633;--navy-900: #10214a;--navy: #1e3a8a;--navy-600: #2b4cb0;--navy-100: #dbe4f7;--navy-050: #eef2fb;--ink: #16233f;--slate: #5b6b85;--line: #e3e8f1;--bg: #f3f5f9;--white: #ffffff;--amber: #f5a623;--green: #1a9e63;--red: #d64545;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(16, 33, 74, .06), 0 8px 24px rgba(16, 33, 74, .08);--shadow-lg: 0 4px 12px rgba(16, 33, 74, .1), 0 20px 48px rgba(16, 33, 74, .14);--font-display: "Sora", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;margin:0 0 .5rem}p{margin:0 0 1rem}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:1rem}.container{max-width:1160px;margin:0 auto;padding:0 20px}.eyebrow{display:inline-block;font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);background:var(--navy-050);border:1px solid var(--navy-100);padding:4px 12px;border-radius:999px;margin-bottom:12px}.section{padding:64px 0}.section-head{margin-bottom:28px}.section-head h2{font-size:clamp(1.5rem,3vw,2rem)}.section-head p{color:var(--slate);max-width:560px;margin-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:.95rem;border-radius:999px;padding:12px 24px;border:1px solid transparent;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:focus-visible{outline:3px solid var(--navy-100);outline-offset:2px}.btn-primary{background:var(--navy);color:var(--white)}.btn-primary:hover{background:var(--navy-600);transform:translateY(-1px);box-shadow:var(--shadow)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-outline{background:var(--white);color:var(--navy);border-color:var(--navy-100)}.btn-outline:hover{border-color:var(--navy)}.btn-ghost{background:transparent;color:var(--white);border-color:#ffffff59}.btn-ghost:hover{background:#ffffff1a}.btn-block{width:100%}.btn-sm{padding:8px 16px;font-size:.85rem}.header{position:sticky;top:0;z-index:50;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--navy-950)}.brand img{height:34px;width:auto}.brand span b{color:var(--navy);font-weight:800}.nav{display:flex;align-items:center;gap:26px}.nav a{font-weight:500;font-size:.95rem;color:var(--slate);transition:color .12s}.nav a:hover,.nav a.active{color:var(--navy)}.nav .btn{margin-left:6px}.menu-toggle{display:none;background:none;border:none;padding:8px}.menu-toggle svg{display:block}.hero{position:relative;color:var(--white);background:radial-gradient(1200px 500px at 80% -10%,rgba(43,76,176,.55),transparent 60%),linear-gradient(160deg,var(--navy-950) 0%,var(--navy-900) 45%,var(--navy) 100%);overflow:hidden}.hero-pins{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg width='144' height='216' viewBox='0 0 144 216' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M72 0C32.2 0 0 32.2 0 72C0 126 72 216 72 216C72 216 144 126 144 72C144 32.2 111.8 0 72 0Z' fill='white'/%3E%3C/svg%3E");background-size:72px 108px;background-position:20px 30px;-webkit-mask-image:linear-gradient(180deg,transparent,black 30%,transparent 95%);mask-image:linear-gradient(180deg,transparent,black 30%,transparent 95%)}.hero-inner{position:relative;padding:84px 0 120px;text-align:center}.hero h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800;letter-spacing:-.02em;max-width:780px;margin:0 auto 14px}.hero h1 em{font-style:normal;color:#9db4ee}.hero p.lead{color:#c4d0ec;font-size:clamp(1rem,1.8vw,1.15rem);max-width:560px;margin:0 auto 40px}.search-card{background:var(--white);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:14px;display:grid;gap:10px;grid-template-columns:1.4fr 1fr 1fr .9fr auto;max-width:980px;margin:0 auto;text-align:left}.search-field{display:flex;flex-direction:column;gap:3px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid transparent;transition:border .12s,background .12s}.search-field:focus-within{border-color:var(--navy-100);background:var(--navy-050)}.search-field label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}.search-field input,.search-field select{border:none;background:transparent;padding:0;font-size:.98rem;font-weight:500;color:var(--ink);width:100%}.search-field input:focus,.search-field select:focus{outline:none}.search-card .btn{align-self:center;height:52px;padding:0 28px}.field-error{color:var(--red);font-size:.78rem;font-weight:500}.hero-stats{display:flex;gap:34px;justify-content:center;margin-top:46px;flex-wrap:wrap}.hero-stats div{text-align:center}.hero-stats b{display:block;font-family:var(--font-display);font-size:1.4rem}.hero-stats span{color:#9db4ee;font-size:.85rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.apt-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .15s ease,box-shadow .15s ease}.apt-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.apt-card .img-wrap{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--navy-050)}.apt-card img{width:100%;height:100%;object-fit:cover}.apt-card .price-tag{position:absolute;bottom:10px;left:10px;background:#0a1633d9;color:var(--white);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-family:var(--font-display);font-weight:700;font-size:.9rem;padding:6px 12px;border-radius:999px}.apt-card .price-tag small{font-weight:400;opacity:.8}.apt-card .type-tag{position:absolute;top:10px;left:10px;background:var(--white);color:var(--navy);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px}.apt-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}.apt-body h3{font-size:1.05rem;margin:0}.apt-loc{color:var(--slate);font-size:.86rem;display:flex;align-items:center;gap:5px}.apt-desc{color:var(--slate);font-size:.88rem;margin:4px 0 10px;flex:1}.apt-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.rating{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:.88rem}.rating .star{color:var(--amber)}.rating small{color:var(--slate);font-weight:400}.dest-tile{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3 / 4;box-shadow:var(--shadow)}.dest-tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.dest-tile:hover img{transform:scale(1.05)}.dest-tile .overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;color:var(--white);background:linear-gradient(180deg,transparent 45%,rgba(10,22,51,.85))}.dest-tile h3{margin:0;font-size:1.15rem}.dest-tile span{font-size:.82rem;color:#c4d0ec}.benefit{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow)}.benefit .icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--navy-050);color:var(--navy);margin-bottom:14px}.benefit h3{font-size:1.02rem}.benefit p{color:var(--slate);font-size:.9rem;margin:0}.footer{background:var(--navy-950);color:#aebadb;margin-top:80px}.footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding:56px 0 40px}.footer .brand{color:var(--white);margin-bottom:12px}.footer p{font-size:.88rem}.footer h4{color:var(--white);font-size:.95rem;margin-bottom:14px}.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:.88rem}.footer a:hover{color:var(--white)}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;font-size:.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.page-bar{background:var(--white);border-bottom:1px solid var(--line);padding:22px 0}.page-bar h1{font-size:1.5rem;margin:0}.page-bar p{margin:4px 0 0;color:var(--slate);font-size:.9rem}.results-layout{display:grid;grid-template-columns:260px 1fr;gap:28px;padding:32px 0 64px;align-items:start}.filters{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:sticky;top:88px}.filters h3{font-size:1rem;margin-bottom:14px}.filter-group{padding:14px 0;border-top:1px solid var(--line)}.filter-group:first-of-type{border-top:none;padding-top:0}.filter-group label.title{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--slate);margin-bottom:10px}.filter-row{display:flex;gap:8px}.filter-row input,.filters select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);font-size:.9rem}.filter-row input:focus,.filters select:focus{outline:2px solid var(--navy-100);border-color:var(--navy)}.radio-list{display:grid;gap:8px}.radio-list label{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}.radio-list input{accent-color:var(--navy)}.results-list{display:grid;gap:22px;grid-template-columns:repeat(2,1fr)}.filters-toggle{display:none}.detail-hero{padding:28px 0 0}.gallery{position:relative;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;border-radius:var(--radius);overflow:hidden;height:440px;touch-action:pan-y}.gallery .g-main{grid-row:1 / 3}.gallery button{border:none;padding:0;overflow:hidden;background:var(--navy-050);position:relative}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery button:hover img{transform:scale(1.03)}.g-nav-btn,.g-counter{display:none}.detail-layout{display:grid;grid-template-columns:1fr 380px;gap:36px;padding:32px 0 64px;align-items:start}.detail-main h1{font-size:clamp(1.5rem,3vw,2.1rem)}.detail-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:var(--slate);font-size:.92rem;margin-bottom:22px}.detail-meta .dot:before{content:"·";margin-right:14px}.detail-section{border-top:1px solid var(--line);padding:26px 0}.detail-section h2{font-size:1.2rem;margin-bottom:14px}.amenities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px}.amenity{display:flex;align-items:center;gap:10px;font-size:.93rem;color:var(--ink)}.amenity svg{color:var(--navy);flex-shrink:0}.review{border:1px solid var(--line);background:var(--white);border-radius:var(--radius);padding:18px;margin-bottom:14px}.review-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.review-head b{font-family:var(--font-display);font-size:.95rem}.review-head time{color:var(--slate);font-size:.8rem}.review p{margin:6px 0 0;color:var(--slate);font-size:.92rem}.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;background:var(--navy-050);color:var(--navy);font-weight:700;font-size:.85rem;margin-right:10px}.booking-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px;position:sticky;top:88px}.booking-card .price-line{display:flex;align-items:baseline;gap:6px;margin-bottom:16px}.booking-card .price-line b{font-family:var(--font-display);font-size:1.5rem}.booking-card .price-line span{color:var(--slate)}.form-grid{display:grid;gap:12px}.form-grid .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input-group{display:flex;flex-direction:column;gap:5px}.input-group label{font-size:.78rem;font-weight:600;color:var(--slate)}.input-group input,.input-group select{padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);font-size:.95rem}.input-group input:focus,.input-group select:focus{outline:2px solid var(--navy-100);border-color:var(--navy)}.input-group input.invalid{border-color:var(--red);background:#fdf2f2}.price-summary{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:grid;gap:8px;font-size:.92rem}.price-summary .row{display:flex;justify-content:space-between;color:var(--slate)}.price-summary .row.total{color:var(--ink);font-weight:700;font-family:var(--font-display);border-top:1px solid var(--line);padding-top:10px;font-size:1rem}.availability-note{display:flex;gap:8px;align-items:flex-start;background:var(--navy-050);border:1px solid var(--navy-100);border-radius:var(--radius-sm);padding:10px 12px;font-size:.83rem;color:var(--navy-900);margin-top:14px}.alert{border-radius:var(--radius-sm);padding:11px 14px;font-size:.9rem;margin-bottom:4px}.alert-error{background:#fdf0f0;border:1px solid #f2c7c7;color:var(--red)}.alert-success{background:#edf9f2;border:1px solid #bfe8d2;color:var(--green)}.confirm-wrap{max-width:680px;margin:48px auto 80px;padding:0 20px}.confirm-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.confirm-head{background:linear-gradient(150deg,var(--navy-950),var(--navy));color:var(--white);padding:36px 32px;text-align:center}.confirm-head .check{width:62px;height:62px;border-radius:50%;background:#ffffff24;display:grid;place-items:center;margin:0 auto 14px;border:1px solid rgba(255,255,255,.3)}.confirm-head h1{font-size:1.6rem;margin-bottom:6px}.confirm-head p{color:#c4d0ec;margin:0}.confirm-number{font-family:var(--font-display);font-weight:800;letter-spacing:.12em;background:#ffffff1f;display:inline-block;padding:8px 18px;border-radius:999px;margin-top:16px}.confirm-body{padding:28px 32px}.confirm-apt{display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;margin-bottom:22px}.confirm-apt img{width:96px;height:72px;object-fit:cover;border-radius:8px}.confirm-apt h3{margin:0 0 2px;font-size:1rem}.confirm-apt span{color:var(--slate);font-size:.85rem}.confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.confirm-grid .item span{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:2px}.confirm-grid .item b{font-size:.98rem}.confirm-total{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;display:flex;justify-content:space-between;align-items:center}.confirm-total b{font-family:var(--font-display);font-size:1.35rem}.confirm-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}.admin-login{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:40px 20px}.login-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:34px;width:100%;max-width:400px}.login-card .brand{justify-content:center;margin-bottom:8px}.login-card h1{text-align:center;font-size:1.3rem}.login-card>p{text-align:center;color:var(--slate);font-size:.9rem;margin-bottom:22px}.demo-creds{margin-top:18px;background:var(--navy-050);border:1px dashed var(--navy-100);border-radius:var(--radius-sm);padding:10px 14px;font-size:.8rem;color:var(--navy-900)}.demo-creds code{background:var(--white);padding:1px 6px;border-radius:4px}.admin-bar{background:var(--navy-950);color:var(--white);padding:26px 0}.admin-bar h1{font-size:1.4rem;margin:0}.admin-bar p{color:#aebadb;margin:2px 0 0;font-size:.88rem}.admin-bar-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0}.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.stat span{font-size:.78rem;font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.06em}.stat b{display:block;font-family:var(--font-display);font-size:1.5rem;margin-top:2px}.admin-controls{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.admin-controls .search-input{flex:1;min-width:220px;position:relative}.admin-controls input,.admin-controls select{padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);font-size:.92rem;width:100%}.admin-controls input:focus,.admin-controls select:focus{outline:2px solid var(--navy-100);border-color:var(--navy)}.admin-controls select{width:auto}.table-wrap{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto;margin-bottom:64px}table.bookings{width:100%;border-collapse:collapse;font-size:.9rem;min-width:860px}table.bookings th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--slate);background:var(--bg);padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--font-display)}table.bookings td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}table.bookings tr:last-child td{border-bottom:none}table.bookings tr:hover td{background:var(--navy-050)}.mono{font-family:var(--font-display);font-weight:700;font-size:.82rem;letter-spacing:.04em;color:var(--navy)}.badge{display:inline-block;font-size:.74rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:capitalize}.badge.pending{background:#fef4e2;color:#a06508}.badge.confirmed{background:#e8f0fe;color:var(--navy)}.badge.completed{background:#e9f8f0;color:var(--green)}.badge.cancelled{background:#fdeeee;color:var(--red)}.status-select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);font-size:.8rem;background:var(--white)}.loader-wrap{display:grid;place-items:center;padding:70px 0;color:var(--slate);gap:14px;text-align:center}.spinner{width:42px;height:42px;border-radius:50%;border:4px solid var(--navy-100);border-top-color:var(--navy);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#e9edf5 25%,#f4f6fb,#e9edf5 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.skeleton-card{height:330px}.empty-state{text-align:center;padding:70px 24px;color:var(--slate)}.empty-state .pin{width:58px;height:58px;margin:0 auto 16px;opacity:.5}.empty-state h3{color:var(--ink)}.empty-state p{max-width:380px;margin:0 auto 18px;font-size:.92rem}.fade-in{animation:fadeIn .35s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width: 1020px){.grid-4{grid-template-columns:repeat(2,1fr)}.results-layout{grid-template-columns:1fr}.filters{position:static}.filters-toggle{display:inline-flex;margin-bottom:14px}.filters.collapsed{display:none}.detail-layout{grid-template-columns:1fr}.booking-card{position:static}.admin-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){.search-card{grid-template-columns:1fr 1fr}.search-card .btn,.search-field:first-child{grid-column:1 / -1}.grid-3{grid-template-columns:repeat(2,1fr)}.results-list{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr 1fr;gap:32px 20px;padding:44px 20px 32px}.footer-bottom{padding:18px 0}.gallery{height:340px}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--white);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:16px 20px;gap:14px;box-shadow:var(--shadow)}.nav.open{display:flex}.menu-toggle{display:block}}@media (max-width: 560px){.section{padding:44px 0}.grid-3,.grid-4,.search-card{grid-template-columns:1fr}.hero-inner{padding:56px 0 100px}.gallery{grid-template-columns:1fr;grid-template-rows:none;height:auto}.gallery .g-main{grid-row:auto;aspect-ratio:4/3}.gallery button:not(.g-main):not(.g-nav-btn){display:none}.g-nav-btn{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:#0a16338c;color:var(--white)}.g-nav-btn:hover{background:#0a1633bf}.g-prev{left:10px}.g-next{right:10px}.g-counter{display:block;position:absolute;bottom:10px;right:10px;background:#0a16338c;color:var(--white);font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px}.amenities-grid,.confirm-grid,.form-grid .two{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr;gap:28px;padding:36px 20px 28px}.footer-bottom{padding:16px 0}.admin-stats{grid-template-columns:1fr 1fr}.confirm-body,.confirm-head{padding-left:20px;padding-right:20px}}
