:root{--heading:#243d39;--body:#61736f;--button:#247a70;--accent:#efc980;--font-head:Georgia,serif;--font-body:Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--body);background:#f7f3eb}button{cursor:pointer;border:0}.hero{min-height:680px;background:linear-gradient(rgba(30,62,58,.48),rgba(30,62,58,.48)),url('/uploads/hero-placeholder.jpg');background-size:cover;background-position:center;background-color:#557f7a;color:white;padding:28px 5vw}nav{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px}.brand small{display:block;opacity:.8}.links{display:flex;gap:24px;align-items:center}.links a{color:white;text-decoration:none}.links button,.search-card button,.modal-card button,#quoteBox button{background:var(--button);color:white;padding:14px 24px;border-radius:12px;font-weight:700}#logoBox{width:54px;height:54px;border-radius:16px;background:white;color:var(--button);display:grid;place-items:center;font-weight:800;overflow:hidden}#logoBox img{width:100%;height:100%;object-fit:contain}.hero-copy{display:grid;grid-template-columns:1fr 460px;gap:60px;align-items:center;max-width:1320px;margin:90px auto 0}.hero h1{font:64px/1.05 var(--font-head);color:#fff0d0;margin:18px 0}.hero-copy p{font-size:18px;max-width:650px;color:#fff}.search-card{background:#fffdf9;color:var(--body);padding:28px;border-radius:26px;box-shadow:0 20px 50px rgba(0,0,0,.16)}.search-card h2,.section-head h2,.modal-card h2{font-family:var(--font-head);color:var(--heading)}label{display:block;font-size:12px;font-weight:700;margin:14px 0}input,select,textarea{width:100%;padding:13px;border:1px solid #d7e0dd;border-radius:9px;margin-top:7px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}main section{padding:70px 5vw;max-width:1440px;margin:auto}.section-head span{color:var(--button);font-size:12px;font-weight:800}.section-head h2{font-size:36px;margin:8px 0 28px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:white;border:1px solid #dde5e2;border-radius:18px;overflow:hidden}.card .photo{height:190px;background:#8fb3aa;background-size:cover;background-position:center}.card .content{padding:20px}.card h3{margin:0 0 8px;color:var(--heading)}.price{font-size:20px;font-weight:800;color:var(--heading)}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.media-item{height:220px;border-radius:16px;overflow:hidden;background:#d6c39f;position:relative}.media-item img,.media-item video{width:100%;height:100%;object-fit:cover}.media-item span{position:absolute;left:12px;bottom:12px;background:white;padding:7px 10px;border-radius:14px;font-size:12px;color:var(--heading)}footer{background:#173d39;color:white;padding:50px 5vw;display:grid;grid-template-columns:2fr 2fr 1fr;gap:30px}.admin-link{color:white}.hidden{display:none!important}.quote{position:sticky;bottom:10px;margin-top:30px;background:#fff8e9;border:1px solid #eadabb;border-radius:16px;padding:20px}.room-select{display:flex;align-items:center;gap:10px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:20px;z-index:50}.modal-card{background:white;padding:30px;border-radius:20px;width:min(520px,95vw);position:relative}.close{position:absolute;right:15px;top:10px;background:transparent!important;color:#333!important;font-size:28px;padding:5px!important}.success{padding:12px;background:#e6f3ed;border-radius:10px;margin-top:12px}@media(max-width:900px){.links a{display:none}.hero-copy{grid-template-columns:1fr;margin-top:55px}.hero h1{font-size:46px}.cards,.media-grid{grid-template-columns:1fr 1fr}.search-card{max-width:100%}}@media(max-width:600px){.cards,.media-grid{grid-template-columns:1fr}.hero{padding:20px}.hero-copy{gap:30px}.hero h1{font-size:42px}.links{gap:8px}footer{grid-template-columns:1fr}}

/* Responsive refinements: phone + tablet keep full desktop functionality */
@media(max-width:900px){
  .hero{min-height:auto;padding:22px 24px 44px}
  nav{gap:14px;align-items:flex-start}
  .brand{min-width:0}
  .brand>div:last-child{min-width:0}
  #hotelName{display:block;white-space:normal;line-height:1.15}
  .links{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
  .links button{padding:12px 16px}
  .hero-copy{grid-template-columns:1fr;gap:30px;margin-top:50px}
  .hero h1{font-size:clamp(42px,8vw,58px)}
  .hero-copy p{font-size:17px}
  .search-card{width:100%;max-width:720px}
  main section{padding:54px 24px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  footer{padding:42px 24px;grid-template-columns:1fr 1fr}
  footer .admin-link{align-self:end}
}
@media(max-width:640px){
  .hero{padding:18px 16px 36px}
  nav{align-items:center}
  .brand{gap:9px;max-width:62%}
  #logoBox{width:46px;height:46px;border-radius:13px;flex:0 0 46px}
  .brand strong{font-size:15px}
  .brand small{font-size:10px}
  .links{gap:6px}
  .links button{font-size:12px;padding:10px 12px;border-radius:10px}
  .hero-copy{margin-top:42px;gap:24px}
  .hero h1{font-size:clamp(38px,12vw,50px);margin:14px 0}
  .hero-copy p{font-size:16px;line-height:1.55}
  .search-card{padding:20px;border-radius:20px}
  .grid2{grid-template-columns:1fr}
  input,select,textarea{font-size:16px;min-height:46px}
  .search-card button,.links button,.modal-card button,#quoteBox button{min-height:46px}
  main section{padding:42px 16px}
  .section-head h2{font-size:30px;line-height:1.15}
  .cards,.media-grid{grid-template-columns:1fr}
  .card .photo{height:220px}
  .media-item{height:240px}
  .room-select{align-items:flex-start}
  .room-select input{margin-top:3px;transform:scale(1.2)}
  .quote{bottom:8px;padding:16px}
  footer{grid-template-columns:1fr;padding:38px 16px}
  .modal{align-items:end;padding:0}
  .modal-card{width:100%;max-height:92vh;overflow:auto;border-radius:22px 22px 0 0;padding:24px 18px}
}
@media(min-width:641px) and (max-width:900px){
  .search-card .grid2{grid-template-columns:1fr 1fr}
  .modal-card{width:min(620px,92vw)}
}

.error{padding:12px 14px;background:#fff0f0;border:1px solid #e3b6b6;color:#8c2929;border-radius:10px;margin-top:12px}.hint,.muted{color:#788783;font-size:12px}.price-breakdown{display:grid;gap:8px;margin:14px 0}.price-breakdown>div{display:flex;justify-content:space-between;gap:20px}.price-breakdown .total{border-top:1px solid #decda9;padding-top:10px;font-size:18px;color:var(--heading)}button:disabled{opacity:.6;cursor:not-allowed}
