:root{
  --teal-deep:#0F4C4A;
  --teal-ink:#0B3634;
  --foam:#F6FAF9;
  --slate:#1C2B2E;
  --aqua:#DCEEEC;
  --amber:#F2A93B;
  --line: rgba(15,76,74,0.16);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--foam);color:var(--slate);font-family:'Inter',sans-serif;}
.app{max-width:920px;margin:0 auto;padding:0 20px 80px;}

header.hero{
  background:linear-gradient(160deg, var(--teal-deep), var(--teal-ink));
  color:var(--foam);
  padding:36px 20px 90px;
  margin:0 0 -58px 0;
}
.hero-inner{max-width:920px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:20px;margin-bottom:22px;}
.brand .drop{width:22px;height:22px;background:var(--amber);border-radius:0 60% 60% 60%;transform:rotate(45deg);}
.hero h1{font-family:'Space Grotesk',sans-serif;font-size:30px;line-height:1.15;font-weight:700;margin:0 0 8px;}
.hero p{margin:0 0 24px;color:rgba(246,250,249,0.72);font-size:15px;}

.searchbar{background:var(--foam);border-radius:14px;padding:6px;display:flex;gap:6px;box-shadow:0 18px 34px -14px rgba(0,0,0,0.35);}
.searchbar input{flex:1;border:none;background:transparent;padding:12px 14px;font-size:14.5px;outline:none;}
.searchbar button{border:none;background:var(--slate);color:var(--foam);font-weight:600;font-size:14px;padding:0 20px;border-radius:9px;cursor:pointer;}
.loc-pill{display:inline-flex;margin-top:14px;font-size:13px;color:rgba(246,250,249,0.85);background:rgba(255,255,255,0.08);padding:6px 12px;border-radius:999px;}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;}
.chip{font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--teal-deep);cursor:pointer;}
.chip.active{background:var(--teal-deep);color:var(--foam);border-color:var(--teal-deep);}

.card{background:#fff;border-radius:16px;display:flex;margin-bottom:14px;border:1px solid var(--line);overflow:hidden;}
.card.featured{border-color:var(--amber);box-shadow:0 4px 18px -8px rgba(242,169,59,0.45);}
.card-main{flex:1;padding:16px 18px;}
.card-stub{width:78px;flex-shrink:0;background:var(--aqua);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.card.featured .card-stub{background:#FCEFD8;}
.card-stub .dist{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px;color:var(--teal-deep);}
.card-stub .mi{font-size:10.5px;color:rgba(28,43,46,0.55);}

.row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.name{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:16.5px;}
.featured-flag{background:var(--amber);color:#4A2F00;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:999px;text-transform:uppercase;}
.meta{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(28,43,46,0.62);margin-top:5px;}
.tags{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.tag{font-size:11.5px;font-weight:500;background:var(--aqua);color:var(--teal-deep);padding:4px 9px;border-radius:7px;}
.price{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14.5px;}
.overlay{position:fixed;inset:0;background:rgba(11,54,52,0.55);display:none;align-items:flex-end;justify-content:center;z-index:50;}
.overlay.open{display:flex;}
.sheet{background:var(--foam);width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:26px 24px 30px;max-height:82vh;overflow-y:auto;}
.close-x{background:rgba(15,76,74,0.08);border:none;width:30px;height:30px;border-radius:50%;font-size:16px;cursor:pointer;}
.detail-row{font-size:13.5px;color:rgba(28,43,46,0.72);margin-top:10px;line-height:1.5;}
.card-photo{width:78px;height:auto;object-fit:cover;flex-shrink:0;}
.photo-gallery{display:flex;gap:10px;overflow-x:auto;margin-top:12px;padding-bottom:6px;}
.photo-item{flex-shrink:0;}
.photo-item img{width:160px;height:110px;object-fit:cover;border-radius:10px;display:block;}
.photo-credit{font-size:10.5px;color:rgba(28,43,46,0.5);margin-top:4px;max-width:160px;}
.radius-chip{font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--teal-deep);cursor:pointer;}
.radius-chip.active{background:var(--amber);color:#4A2F00;border-color:var(--amber);}
.location-search{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;}
.location-search input{
  flex:1;min-width:160px;
  border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.08);
  border-radius:9px;padding:9px 12px;color:var(--foam);font-size:13.5px;outline:none;
}
.location-search input::placeholder{color:rgba(246,250,249,0.5);}
.location-search button{
  border:none;background:var(--amber);color:#4A2F00;font-weight:700;font-size:13px;
  padding:0 14px;border-radius:9px;cursor:pointer;
}
.location-search .use-gps{background:rgba(255,255,255,0.12);color:var(--foam);font-weight:600;}
.form-input{width:100%;padding:11px 13px;margin-top:10px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;}
.form-submit{width:100%;margin-top:16px;background:var(--teal-deep);color:#fff;border:none;padding:13px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;}

.reviews-list{margin-top:12px;display:flex;flex-direction:column;gap:10px;}
.review-item{background:var(--aqua);border-radius:10px;padding:10px 13px;}
.review-header{font-size:12.5px;color:var(--teal-deep);margin-bottom:4px;}
.review-text{font-size:13px;line-height:1.5;color:var(--slate);}