:root{--green:#0d6d55;--green2:#07523f;--mint:#e8f5ef;--mint2:#f4faf7;--ink:#17231f;--muted:#6f7a76;--bg:#f3f6f4;--card:#fff;--line:#e2e9e5;--orange:#e8a11b;--red:#a64c4c;--shadow:0 12px 36px rgba(15,56,42,.08);--safe:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:#e8eeea;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}a{color:var(--green2)}[hidden]{display:none!important}.app-shell{max-width:1240px;min-height:100vh;margin:auto;background:var(--bg);padding-bottom:calc(78px + var(--safe));box-shadow:0 0 48px rgba(0,0,0,.04)}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;height:72px;padding:0 22px;background:rgba(248,250,249,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand-button{border:0;background:none;padding:0;text-align:left}.brand{display:block;font-size:28px;font-weight:900;color:var(--green2);letter-spacing:-1px}.tagline{display:block;font-size:11px;color:var(--muted)}.icon-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);font-size:21px}.desktop-nav{display:none;gap:6px}.desktop-nav button{border:0;background:transparent;padding:10px 14px;border-radius:12px;color:var(--muted);font-weight:750}.desktop-nav button.active{background:var(--mint);color:var(--green2)}
main{padding:18px}.card,.card-soft{border-radius:24px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.card-soft{background:linear-gradient(135deg,#0d775d,#7eb397)}.hero{min-height:210px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;color:#fff;overflow:hidden}.hero-copy{max-width:620px}.weather-pill{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;font-weight:800;letter-spacing:.02em}.hero h1{font-size:52px;line-height:1;margin:12px 0 8px;letter-spacing:-2.6px}.hero p{margin:0;font-size:18px;opacity:.94}.hero-art{font-size:70px;letter-spacing:12px;white-space:nowrap}
.planner{margin-top:16px;padding:18px}.location-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:14px;background:var(--mint2);border-radius:18px}.location-copy small,.family-copy small{display:block;color:var(--muted);font-size:11px}.location-copy strong{display:block;margin-top:3px;font-size:15px}.locate-btn{min-height:46px;padding:0 14px;border-radius:13px;border:0;background:var(--green);color:#fff;font-weight:800}.location-search{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px}.location-search input{min-height:46px;border:1px solid var(--line);border-radius:13px;padding:0 13px;background:#fff}.location-search button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:0 16px;font-weight:800;color:var(--green2)}.location-help{grid-column:1/-1;font-size:11px;color:var(--muted)}
.family-row{width:100%;display:flex;align-items:center;gap:12px;margin-top:12px;padding:13px 8px;border:0;background:transparent;text-align:left}.avatars{display:flex}.avatars span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--mint);border:2px solid #fff}.avatars span+span{margin-left:-9px}.family-copy{flex:1}.family-copy strong{display:block;margin-top:2px}.family-editor{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border-radius:17px;background:var(--mint2)}.family-editor label{font-size:12px;color:var(--muted)}.family-editor input{width:100%;min-height:46px;margin-top:5px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#fff;color:var(--ink)}.family-editor .wide,.family-editor .small-primary{grid-column:1/-1}.small-primary{min-height:46px;border:0;border-radius:12px;background:var(--green);color:#fff;font-weight:850}
.primary-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.choice-block{min-width:0}.choice-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px;font-weight:850;font-size:13px}.choice-head small{font-weight:600;color:var(--muted)}.hscroll{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:2px}.hscroll::-webkit-scrollbar{display:none}.choice-chip,.interest-chip{flex:0 0 auto;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#f7f9f8;color:var(--ink);font-weight:800}.choice-chip.active,.interest-chip.active{background:var(--green);border-color:var(--green);color:#fff}.interests-block{margin-top:14px}
.more-options{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.more-options summary{list-style:none;cursor:pointer;min-height:46px;display:flex;justify-content:space-between;align-items:center;font-weight:850}.more-options summary::-webkit-details-marker{display:none}.more-options summary span{font-size:11px;color:var(--muted);font-weight:600}.more-options-body{padding-top:7px}.trip-mode{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--mint2);border-radius:14px;padding:12px}.trip-mode span{display:block}.trip-mode strong,.trip-mode small{display:block}.trip-mode small{color:var(--muted);margin-top:3px}.holiday-panel{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.holiday-panel input,.holiday-panel select{min-height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px}.planner-actions{margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.live-summary{font-weight:850}.source-state{display:block;margin-top:3px;color:var(--muted)}.find-btn{min-width:210px;min-height:52px;border:0;border-radius:16px;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;font-weight:900;font-size:16px}.find-btn[disabled]{opacity:.55}
.results-section{margin-top:28px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:10px}.section-head h2{font-size:28px;letter-spacing:-.7px;margin:3px 0 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-weight:900}.ghost-btn{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#fff;font-weight:800}.result-status{min-height:24px;margin-bottom:8px;color:var(--muted);font-size:13px}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.result-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);min-height:255px;display:flex;flex-direction:column}.result-visual{height:112px;display:grid;place-items:center;background:linear-gradient(135deg,#dff3e8,#a4cdb9);font-size:54px}.result-body{padding:13px;display:flex;flex:1;flex-direction:column}.result-body h3{font-size:17px;margin:0 0 4px}.result-sub{font-size:12px;color:var(--muted);min-height:30px}.result-meta{font-size:12px;color:var(--muted);margin-top:7px}.rating{color:var(--orange);font-weight:900}.result-tags{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.tag{font-size:10px;padding:4px 7px;border-radius:999px;background:var(--mint);color:#2b6450;font-weight:800}.result-price{margin-top:auto;font-weight:900;color:var(--green2)}.match{position:absolute;top:10px;left:10px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.94);font-size:11px;font-weight:900;color:var(--green2)}.save-btn{position:absolute;top:8px;right:8px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.95);font-size:23px;color:var(--green2)}.card-hit{position:absolute;inset:0;border:0;background:transparent}.save-btn{z-index:2}.source-pill{font-size:10px;color:var(--muted);margin-top:8px}
.nearby{margin:28px 0 10px;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#fff}.nearby .eyebrow{color:#d9f5e8}.nearby h2{margin:5px 0}.nearby p{margin:0;opacity:.92}.external-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.external-links a{padding:10px 12px;border-radius:12px;background:#fff;color:var(--green2);text-decoration:none;font-weight:800;white-space:nowrap}.site-footer{display:flex;gap:18px;flex-wrap:wrap;padding:12px 18px 90px;color:var(--muted);font-size:11px}.site-footer a{color:var(--green2)}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:var(--safe);background:rgba(255,255,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(16px)}.bottom-nav button{min-height:62px;border:0;background:transparent;color:var(--muted);font-size:20px}.bottom-nav button span{display:block;font-size:10px;margin-top:2px}.bottom-nav button.active{color:var(--green2);font-weight:900}
.sheet{position:fixed;inset:0;z-index:80;pointer-events:none}.sheet.open{pointer-events:auto}.sheet-backdrop{position:absolute;inset:0;background:rgba(4,18,13,.42);opacity:0;transition:.2s}.sheet.open .sheet-backdrop{opacity:1}.sheet-panel{position:absolute;left:50%;bottom:0;transform:translate(-50%,100%);transition:.24s ease;width:min(920px,100%);max-height:92vh;overflow:auto;background:#f8faf9;border-radius:26px 26px 0 0;padding:18px 18px calc(22px + var(--safe));box-shadow:0 -20px 60px rgba(0,0,0,.16)}.sheet.open .sheet-panel{transform:translate(-50%,0)}.sheet-grabber{width:48px;height:5px;border-radius:99px;background:#c9d2ce;margin:0 auto 12px}.sheet-close{position:sticky;top:0;z-index:2;float:right;width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:26px}.detail-hero{min-height:180px;border-radius:20px;padding:20px;display:flex;align-items:end;color:#fff;background:linear-gradient(135deg,#0b6b52,#78aa92)}.detail-hero h2{font-size:32px;margin:4px 0}.detail-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0}.detail-fact{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center;font-size:11px}.detail-fact b{display:block;font-size:14px;margin-top:4px}.detail-grid-tablet{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.detail-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px;margin:10px 0}.detail-card h3{margin:0 0 10px}.facility-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.facility{padding:9px 5px;background:var(--mint2);border-radius:12px;text-align:center;font-size:10px}.facility span{display:block;font-size:22px}.price-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.price-level{padding:10px;border-radius:13px;background:#f8faf9;text-align:center;border:1px solid var(--line)}.price-level strong{display:block;margin-top:3px}.price-level.best{background:#e8f7ef;border-color:#a6dbc2}.review-box{padding:12px;border-radius:13px;background:var(--mint2);font-size:13px;line-height:1.45}.pack-list{display:grid;gap:5px}.pack-item{display:flex;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.pack-check{width:32px;height:32px;border-radius:8px;background:var(--green);color:#fff;display:grid;place-items:center}.pack-item small{display:block;color:var(--muted);margin-top:2px}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.plan-item{text-align:center;background:var(--mint2);border-radius:12px;padding:10px;font-size:11px}.plan-item span{display:block;font-size:28px}.detail-actions{position:sticky;bottom:-18px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px 0;background:linear-gradient(transparent,#f8faf9 18%,#f8faf9)}.detail-actions a,.detail-actions button{min-height:48px;border:1px solid var(--line);background:#fff;border-radius:13px;text-align:center;display:grid;place-items:center;text-decoration:none;color:var(--ink);font-weight:800}.detail-actions .primary{background:var(--green);color:#fff;border-color:var(--green)}.saved-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.saved-empty{padding:20px;text-align:center;color:var(--muted)}
.legal-page{max-width:850px;margin:auto;padding:36px 20px 80px;line-height:1.6}.legal-page section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0}.legal-page h1{font-size:38px;letter-spacing:-1.4px}.back-link{text-decoration:none;font-weight:800}
@media(max-width:760px){main{padding:12px}.topbar{height:66px;padding:0 15px}.brand{font-size:25px}.hero{min-height:175px;padding:22px 20px;border-radius:22px}.hero h1{font-size:41px;line-height:.98;max-width:300px}.hero p{font-size:16px}.hero-art{font-size:45px;letter-spacing:4px}.planner{padding:14px;border-radius:21px}.location-card{grid-template-columns:1fr}.locate-btn{width:100%}.primary-choices{grid-template-columns:1fr;gap:12px}.planner-actions{align-items:stretch;flex-direction:column}.find-btn{width:100%;min-width:0}.results-grid{grid-template-columns:1fr}.result-card{min-height:0;display:grid;grid-template-columns:116px 1fr}.result-visual{height:auto;min-height:150px}.result-body{min-width:0}.result-sub{min-height:0}.nearby{align-items:stretch;flex-direction:column}.external-links{justify-content:flex-start}.detail-grid-tablet{display:block}.facility-grid{grid-template-columns:repeat(4,1fr)}.detail-hero h2{font-size:27px}.site-footer{padding-bottom:100px}.holiday-panel{grid-template-columns:1fr}.location-search{grid-template-columns:1fr auto}}
@media(min-width:761px){.desktop-nav{display:flex}.bottom-nav{display:none}.app-shell{padding-bottom:0}.site-footer{padding-bottom:24px}}
@media(min-width:1000px){main{padding:20px 26px 28px}.hero{min-height:260px}.planner{padding:20px}.location-card{grid-template-columns:1.4fr auto 1.1fr}.location-search{grid-column:auto}.location-help{grid-column:1/-1}.results-grid{grid-template-columns:repeat(3,1fr)}}
.family-editor select{width:100%;min-height:46px;margin-top:5px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#fff;color:var(--ink)}
.child-age-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.child-age-grid label{min-width:0}.no-kids-note{grid-column:1/-1;padding:10px 12px;border-radius:12px;background:#fff;color:var(--muted);font-size:12px}.empty-state{padding:20px}
@media(max-width:760px){.child-age-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
