:root{--blue:#83acde;--yellow:#fcd961;--orange:#dd5a07;--ink:#172033;--muted:#667085;--bg:#f7f9fc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}.container{width:min(1180px,calc(100% - 32px));margin:auto}.hero{min-height:330px;display:flex;align-items:center;background:radial-gradient(circle at 80% 20%,rgba(252,217,97,.95),transparent 25%),linear-gradient(135deg,#244e83,var(--blue));color:#fff;padding:48px 0}.brand-pill{display:inline-block;background:#fff;color:#244e83;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.08em}.hero h1{font-size:clamp(44px,7vw,76px);line-height:.95;margin:18px 0 10px}.hero p{font-size:20px;max-width:700px;line-height:1.5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-45px}.stats div{background:#fff;padding:24px;border-radius:20px;box-shadow:0 12px 35px #1624411f;display:flex;flex-direction:column}.stats strong{font-size:34px;color:#244e83}.stats span{color:var(--muted)}.section{padding:48px 0}.section-title,.route-title{display:flex;justify-content:space-between;align-items:end;gap:20px}.section-title span,.route-title span,.park-head>div>span{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--orange)}.section-title h2,.route-title h2{font-size:32px;margin:5px 0 0}.dark-btn{border:0;background:#172033;color:#fff;border-radius:12px;padding:13px 17px;display:flex;gap:8px;align-items:center;cursor:pointer}.park-grid,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.park-card,.item-card{background:#fff;border:1px solid #e4e9ef;border-radius:20px;padding:22px;box-shadow:0 7px 22px #1624410f}.park-card{text-align:left;cursor:pointer;transition:.2s}.park-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px #1624411f}.park-icon{font-size:38px}.park-card h3,.item-card h3{font-size:21px;margin:15px 0 7px}.park-card p,.item-card p{color:var(--muted);line-height:1.55}.park-card strong{color:#244e83}.park-hero,.route-top{background:linear-gradient(135deg,#244e83,var(--blue));color:#fff;padding:28px 0}.park-head{display:flex;align-items:center;gap:20px}.hero-icon{font-size:56px}.park-head h1,.route-top h1{font-size:38px;margin:4px 0}.park-head p{margin:0;opacity:.9}.back{border:0;background:#ffffff2b;color:#fff;padding:10px 12px;border-radius:10px;display:flex;align-items:center;gap:5px;cursor:pointer}.date-card{background:#fff;border:1px solid #e4e9ef;border-radius:18px;padding:18px 20px;margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.date-field{display:flex;align-items:center;gap:12px}.date-field label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:5px}.date-field input,.small-date input{border:1px solid #dfe5ec;border-radius:9px;padding:9px}.assessment{padding:12px 15px;border-radius:12px;display:flex;flex-direction:column;gap:3px}.assessment span{font-size:12px}.assessment.good{background:#e9f9ef;color:#17723a}.assessment.medium{background:#fff6d8;color:#876300}.assessment.bad{background:#ffeded;color:#9d2424}.date-hint{color:var(--muted)}.toolbar{margin-top:26px}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.tabs button{border:0;background:#fff;padding:13px 17px;border-radius:12px;display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 4px 16px #16244112}.tabs button.active{background:var(--orange);color:#fff}.search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e3e8ef;border-radius:12px;min-height:50px;padding:0 14px}.search input{width:100%;border:0;outline:none;background:transparent}.list-title{display:flex;justify-content:space-between;align-items:end;margin:32px 0 16px}.list-title h2{margin:0;font-size:28px}.list-title span{color:var(--muted)}.item-card{display:flex;flex-direction:column}.topline{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:800;text-transform:uppercase;color:#315b8e}.topline b{color:var(--orange)}.item-card p{flex:1}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.chips span{display:inline-flex;align-items:center;gap:5px;background:#f3f6fa;padding:7px 10px;border-radius:999px;font-size:12px}.actions{display:flex;gap:8px}.primary,.selected{flex:1;border:0;border-radius:10px;padding:11px;display:flex;justify-content:center;align-items:center;gap:6px;font-weight:800;cursor:pointer}.primary{background:#244e83;color:#fff}.selected{background:#e9f9ef;color:#17723a}.actions a{width:42px;height:42px;border-radius:10px;background:#f1f4f8;display:grid;place-items:center;color:#244e83}.route-box{background:#fff;border:1px solid #e4e9ef;border-radius:20px;padding:24px;margin:30px 0}.small-date{display:flex;align-items:center;gap:8px}.empty{text-align:center;padding:55px 20px;color:var(--muted)}.empty h3{color:var(--ink)}.route-groups{display:grid;gap:20px;margin-top:22px}.route-group{border:1px solid #e4e9ef;border-radius:16px;padding:17px}.route-item{display:grid;grid-template-columns:36px 1fr 40px;gap:10px;align-items:center;background:#f7f9fc;border-radius:12px;padding:11px;margin-top:9px}.number{width:30px;height:30px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;font-weight:800}.route-item div{display:flex;flex-direction:column;gap:4px}.route-item small{color:var(--muted)}.route-item button{border:0;background:#fff;width:36px;height:36px;border-radius:9px;color:#a33;cursor:pointer}.notice{font-size:12px;color:var(--muted);margin-top:18px}footer{margin-top:50px;padding:30px 20px;background:#172033;color:#fff;text-align:center;display:flex;flex-direction:column;gap:7px}footer span{opacity:.75}@media(max-width:900px){.park-grid,.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.stats{grid-template-columns:1fr;margin-top:-30px}.park-grid,.cards{grid-template-columns:1fr}.section-title,.route-title,.date-card{flex-direction:column;align-items:stretch}.park-head{align-items:flex-start;flex-wrap:wrap}.tabs button{flex:1;justify-content:center}.assessment{width:100%}}.ticket-banner{margin:12px auto 50px;background:linear-gradient(135deg,#172033,#244e83);color:#fff;border-radius:24px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:0 18px 38px #16244126}.ticket-banner span{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--yellow)}.ticket-banner h2{font-size:30px;margin:7px 0}.ticket-banner p{margin:0;max-width:600px;opacity:.86;line-height:1.5}.ticket-actions{display:flex;gap:10px;flex-wrap:wrap}.ticket-actions a,.park-ticket-cta a{display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;border-radius:12px;padding:13px 16px;font-weight:800}.ticket-primary{background:var(--orange);color:#fff}.ticket-secondary{background:#fff;color:#244e83}.park-ticket-cta{margin-top:14px;background:linear-gradient(100deg,#fff7d5,#fff);border:1px solid #f3df8c;border-radius:16px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.park-ticket-cta div{display:flex;flex-direction:column;gap:4px}.park-ticket-cta span{font-size:13px;color:var(--muted)}.park-ticket-cta a{background:var(--orange);color:#fff;white-space:nowrap}.video-btn{width:42px;height:42px;border:0;border-radius:10px;background:#fff0e6;color:var(--orange);display:grid;place-items:center;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1420cc;display:grid;place-items:center;padding:20px;z-index:9999}.video-modal{position:relative;width:min(900px,100%);background:#fff;border-radius:20px;padding:22px;box-shadow:0 30px 80px #0008}.video-modal h3{margin:0 45px 16px 0}.video-modal iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:14px}.modal-close{position:absolute;right:15px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#eef2f6;font-size:25px;cursor:pointer}.external-video{text-decoration:none}.route-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.print-btn{border:0;background:var(--orange);color:#fff;border-radius:10px;padding:10px 13px;display:flex;align-items:center;gap:7px;font-weight:800;cursor:pointer}.period-block{margin-top:18px}.period-block h4{margin:0 0 8px;color:#244e83;font-size:15px;text-transform:uppercase;letter-spacing:.07em}.route-time{min-width:70px;font-weight:900;color:var(--orange);font-size:14px}.route-item{grid-template-columns:78px 1fr 40px}.pdf-footer{display:none}@media(max-width:650px){.ticket-banner,.park-ticket-cta{flex-direction:column;align-items:stretch}.ticket-actions{flex-direction:column}.route-tools{flex-direction:column;align-items:stretch}.print-btn{justify-content:center}}@media print{body{background:#fff!important}.hero,.park-hero,.route-top,.date-card,.park-ticket-cta,.toolbar,footer,.no-print{display:none!important}.container{width:100%!important;max-width:none!important}.route-box{margin:0!important;border:0!important;box-shadow:none!important;padding:0!important}.route-title{border-bottom:3px solid #244e83;padding-bottom:14px;margin-bottom:18px}.route-tools{display:none!important}.assessment{break-inside:avoid}.route-group{break-inside:avoid;border:1px solid #d9e1eb!important}.route-item{break-inside:avoid;background:#f6f8fb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pdf-footer{display:flex;margin-top:28px;padding-top:12px;border-top:1px solid #d9e1eb;justify-content:space-between;font-size:11px;color:#667085}}.trip-planner{margin-top:34px;background:linear-gradient(135deg,#fff,#edf5ff);border:1px solid #dce8f5;border-radius:24px;padding:28px;box-shadow:0 15px 35px #16244112}.trip-planner-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.trip-planner-title span{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--orange)}.trip-planner-title h2{font-size:30px;margin:6px 0}.trip-planner-title p{margin:0;color:var(--muted)}.trip-planner-title>svg{color:#244e83}.trip-dates{display:grid;grid-template-columns:repeat(2,minmax(0,240px));gap:14px;margin-top:22px}.trip-dates label{font-size:12px;font-weight:800;color:var(--muted)}.trip-dates input{display:block;width:100%;margin-top:6px;border:1px solid #dce3ec;border-radius:10px;padding:11px;background:#fff}.trip-park-selector{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.trip-park{border:1px solid #dce3ec;background:#fff;border-radius:999px;padding:10px 13px;display:flex;align-items:center;gap:7px;cursor:pointer}.trip-park.active{background:#244e83;color:#fff;border-color:#244e83}.trip-plan-results{margin-top:24px;border-top:1px solid #dce5ef;padding-top:20px}.trip-plan-results h3{margin:0 0 12px}.trip-day{display:grid;grid-template-columns:minmax(220px,1.4fr) 130px minmax(180px,1fr);align-items:center;gap:14px;background:#fff;border:1px solid #e3e9f0;border-radius:14px;padding:14px;margin-top:9px}.trip-date{display:flex;flex-direction:column;gap:4px}.trip-date span{color:var(--muted);font-size:13px}.trip-level{justify-self:start;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.trip-level.good{background:#e9f9ef;color:#17723a}.trip-level.medium{background:#fff6d8;color:#876300}.trip-level.bad{background:#ffeded;color:#9d2424}.park-hours{display:flex;align-items:center;gap:6px;font-weight:800;color:#244e83}.park-hours small{font-weight:400;color:var(--muted)}.trip-note{font-size:12px;color:var(--muted);margin:13px 0 0}.best-time-chip{background:#fff4df!important;color:#9a5a00!important;font-weight:800}.hero-hours{margin-top:10px;display:flex;align-items:center;gap:6px;font-size:13px;background:#ffffff24;padding:8px 10px;border-radius:9px;width:max-content}@media(max-width:750px){.trip-dates,.trip-day{grid-template-columns:1fr}.trip-level{justify-self:start}.park-hours{flex-wrap:wrap}.trip-planner-title{flex-direction:column}}.route-park-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;border-bottom:1px solid #e4e9ef}.route-park-header h3{margin:0 0 5px}.route-park-header span{font-size:13px;color:var(--muted)}.land-block{margin-top:20px;padding:16px;border:1px solid #dfe7f0;border-radius:15px;background:linear-gradient(135deg,#fbfdff,#f4f8fc)}.land-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:11px}.land-heading h4{margin:0 0 4px;color:#244e83;font-size:17px}.land-heading small{color:var(--muted);line-height:1.4}.land-pin{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eaf3ff}@media print{.land-block{break-inside:avoid;background:#fff!important}.route-park-header{break-after:avoid}}
