:root{--ink:#103c4c;--navy:#083e51;--teal:#087b85;--aqua:#b9edf0;--gold:#f4c36d;--paper:#f3f7f9;--muted:#526973;--line:#d9e6eb;--white:#fff;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0}button,a{touch-action:manipulation}a{color:var(--teal)}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #dc8e16;outline-offset:4px}header{background:white;border-bottom:1px solid var(--line)}.header-inner{max-width:1220px;margin:auto;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{text-decoration:none;color:var(--navy);font-weight:700;font-size:1.4rem;display:flex;align-items:center;gap:12px}.brand small{display:block;font-size:.75rem;font-weight:400;letter-spacing:.08em;margin-top:4px}.mark{position:relative;display:block;width:44px;height:44px}.mark i{position:absolute;border-radius:100%;background:var(--teal);width:28px;height:28px;bottom:0;left:0}.mark i:nth-child(2){width:17px;height:17px;left:27px;top:0;background:var(--gold)}.mark i:nth-child(3){width:10px;height:10px;left:32px;bottom:1px;background:#7bcbd1}.languages{display:flex;border:1px solid var(--line);padding:4px;border-radius:30px;gap:2px}.languages button{background:transparent;border:0;border-radius:20px;padding:9px 13px;font-weight:700;font-size:.875rem}.languages button[aria-pressed=true]{background:var(--navy);color:white}main{max-width:1220px;margin:auto;padding:30px 28px 60px}.stepper{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.875rem;margin-bottom:26px;flex-wrap:wrap}.stepper span{padding:10px 14px;border-radius:22px;background:#e5eef2}.stepper .active{background:var(--navy);color:white}.intro{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.intro h1{font-family:Georgia,serif;font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:1.08;letter-spacing:-.025em;margin:0 0 14px;font-weight:400}.intro p{margin:0;max-width:650px;color:var(--muted);line-height:1.65}.intro .stamp{font-size:.875rem;white-space:nowrap;border-left:3px solid var(--gold);padding-left:15px;line-height:1.5}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin:0 0 12px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{padding:0;text-align:left;border:1px solid var(--line);background:white;border-radius:16px;overflow:hidden;color:var(--ink);box-shadow:0 5px 12px #06384c06;transition:transform .18s,box-shadow .18s}.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px #06384c15}.cover{position:relative;height:190px;background:#d6e9ec}.cover img{width:100%;height:100%;object-fit:cover}.number{position:absolute;left:16px;top:16px;background:white;color:var(--navy);border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:.9rem;font-weight:700}.cardbody{padding:20px}.tag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--teal)}.card h2{font-family:Georgia,serif;font-size:1.6rem;font-weight:400;margin:10px 0;line-height:1.15}.card p{font-size:.95rem;line-height:1.5;color:var(--muted);min-height:3em;margin:0 0 18px}.cardmeta{display:flex;gap:10px;justify-content:space-between;align-items:center;font-size:.875rem;border-top:1px solid var(--line);padding-top:14px}.cardmeta b{color:var(--teal)}.notice{padding:18px 22px;background:#e5f2f4;border-left:4px solid var(--teal);line-height:1.6;margin-top:28px;color:var(--ink);font-size:.9rem}.back{border:1px solid var(--line);color:var(--navy);background:white;padding:11px 17px;border-radius:25px;margin:0 0 20px}.detailtitle{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.detailtitle h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.2rem,4vw,3.5rem);line-height:1.1;margin:8px 0 0}.detailtitle p{color:var(--muted);line-height:1.5;max-width:430px;margin:0}.gallery{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-bottom:12px}.gallery button{border:0;background:#d9ebee;padding:0;border-radius:16px;overflow:hidden;height:330px;position:relative;text-align:left}.gallery img{height:100%;width:100%;object-fit:cover;transition:transform .3s}.gallery button:hover img{transform:scale(1.03)}.gallery button .photo-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#052e44cc);color:white;padding:36px 18px 16px;font-size:.875rem;line-height:1.4}.imagefail{display:grid;place-items:center;height:100%;padding:28px;color:var(--ink);font-size:.875rem}.credits{font-size:.75rem;color:var(--muted);margin:0 0 25px;line-height:1.6}.credits a{margin-right:14px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}.fact{background:white;border:1px solid var(--line);border-radius:12px;padding:17px}.fact small{display:block;font-size:.8rem;color:var(--muted);margin-bottom:8px}.fact strong{font-size:.95rem;line-height:1.4;display:block}.detailgrid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:20px}.panel h2{font-family:Georgia,serif;font-size:1.8rem;font-weight:400;margin:0 0 17px}.panel h3{font-size:1.05rem;margin:20px 0 7px}.panel p{line-height:1.65;margin:0 0 14px;color:var(--muted)}.panel ul{padding-left:20px;line-height:1.6;margin:14px 0}.panel li{padding-left:3px;margin:10px 0}.playfacts{background:var(--paper);padding:16px;border-radius:10px;margin-top:20px}.playfacts p:last-child{margin-bottom:0}.food{border-top:1px solid var(--line);padding:18px 0 0;margin:18px 0 0}.food:first-of-type{border:0;padding:0;margin:0}.food h3{margin:0 0 8px}.food a{font-size:.875rem}.pilllink{display:inline-block;background:var(--navy);color:white;text-decoration:none;border-radius:25px;padding:12px 18px;font-size:.9rem;margin:8px 6px 0 0}.route-panel{background:var(--navy);color:white}.route-panel h2{color:white}.route-panel>p{color:#c1dfe8}.routetabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.routetabs button{background:#ffffff12;border:1px solid #7da4b4;color:white;font-size:.9rem;border-radius:22px;padding:11px 15px}.routetabs button[aria-pressed=true]{background:var(--aqua);color:var(--navy);border-color:var(--aqua)}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.time{padding:14px 10px;border-radius:10px;background:#ffffff0d}.time small{display:block;font-size:.75rem;color:#b8dbe5;margin-bottom:9px}.time b{font-size:1.05rem}.day{border-left:3px solid var(--gold);padding-left:14px;line-height:1.5;margin:18px 0}.day small{display:block;font-size:.8rem;color:#bddde6;margin-bottom:5px}.route-panel ol{padding:0;counter-reset:journey;list-style:none}.route-panel li{display:flex;gap:13px;margin:19px 0;line-height:1.55;font-size:.95rem}.route-panel li:before{counter-increment:journey;content:counter(journey);flex-shrink:0;display:grid;place-items:center;width:27px;height:27px;border:1px solid #6294a7;border-radius:50%;font-size:.8rem}.route-panel .route-note{border-top:1px solid #467185;padding-top:18px;color:#c6e0e9;font-size:.875rem}.route-panel .pilllink{background:var(--aqua);color:var(--navy)}.estimatenote{font-size:.8rem!important;line-height:1.5!important}.sources summary{cursor:pointer;font-size:.95rem;font-weight:700}.sources ol{padding-left:20px;font-size:.875rem;line-height:1.7}.sources a{overflow-wrap:anywhere}footer{max-width:1164px;padding:26px 0;margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.8rem;line-height:1.6}dialog{border:0;border-radius:16px;padding:16px;background:#062d3d;color:white;width:min(1000px,95vw);max-height:95vh}dialog::backdrop{background:#001a2ee8}dialog img{display:block;max-width:100%;max-height:78vh;object-fit:contain;margin:auto}dialog p{font-size:.875rem;margin:14px 44px 6px 5px}.closebox{position:absolute;right:18px;top:18px;border:0;background:white;color:var(--navy);border-radius:50%;height:38px;width:38px;font-size:1.6rem}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;z-index:50;padding:10px;background:white}@media(max-width:950px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.intro .stamp{display:none}.detailgrid{grid-template-columns:1fr}.gallery button{height:290px}.route-panel{order:0}footer{margin:0 28px}}@media(max-width:600px){.header-inner{padding:17px 18px}.brand{font-size:1.1rem}.brand small{font-size:.65rem}main{padding:22px 18px 40px}.cards{grid-template-columns:1fr;gap:18px}.cover{height:210px}.intro{margin-bottom:22px}.intro h1{font-size:2.45rem}.stepper{font-size:.78rem}.detailtitle{display:block}.detailtitle p{margin-top:16px}.gallery{grid-template-columns:1fr 1fr}.gallery button{height:190px}.gallery .photo-label{font-size:.75rem;padding:28px 10px 10px}.facts{grid-template-columns:1fr;gap:8px}.fact{padding:12px 16px;display:grid;grid-template-columns:90px 1fr;gap:12px}.fact small{margin:0}.panel{padding:20px}.times{gap:6px}.time{padding:12px 8px}.time b{font-size:.95rem}footer{margin:0 18px;display:block}.card p{min-height:0}.notice{padding:16px}.languages button{padding:8px 10px}.routetabs button{font-size:.85rem}.intro p{font-size:.95rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{header,.stepper,.back,.languages,.routetabs,.pilllink,.sources,footer{display:none}.detailgrid{display:block}.panel{break-inside:avoid}.route-panel{background:white;color:#111}.route-panel>p,.route-panel .route-note,.time small{color:#333}.time{border:1px solid #aaa}.gallery button{height:210px}.cards{grid-template-columns:repeat(2,1fr)}}

.cardhint{font-size:.8rem;line-height:1.5;color:var(--muted);padding-bottom:16px}

/* Logo and clear trip actions */
.header-inner{padding-top:12px;padding-bottom:12px}.brand{line-height:1}.card{cursor:default}.cardmeta{justify-content:flex-start;padding-bottom:15px}.trip-action{display:block;width:100%;background:var(--teal);color:white;border:0;border-radius:9px;padding:14px 18px;font-weight:700;font-size:1rem;line-height:1.3;box-shadow:0 2px 0 #005663}.trip-action:hover{background:#05616a}.trip-action:active{transform:translateY(1px)}
.satellite-panel{padding:24px;margin:0 0 26px;background:white;border:1px solid var(--line);border-radius:16px}.satellite-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}.satellite-heading h2{font:400 1.8rem Georgia,serif;margin:0}.map-actions{display:flex;gap:8px;flex-wrap:wrap}.map-actions button{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:20px;font-size:.875rem}.satellite-map{height:390px;border-radius:12px;background:#082f42;overflow:hidden;z-index:0}.map-legend{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;font-size:.875rem;margin:17px 0 10px}.map-legend span{display:flex;align-items:center;gap:8px}.legend-pin{background:#f4c36d;color:#062d3d;border-radius:6px;width:23px;height:23px;display:inline-grid;place-items:center;font-weight:bold}.legend-line{width:30px;border-top:4px solid #f4c36d}.legend-line.lift{border-top:4px dashed #78dcec}.map-note{font-size:.8rem;line-height:1.6;color:var(--muted);margin:12px 0 0}.map-points{display:flex;gap:10px 22px;flex-wrap:wrap;margin-top:12px;font-size:.875rem;line-height:1.5}.map-points b{color:var(--teal);margin-right:6px}.map-pin{background:none;border:0}.map-pin-inner{width:34px;height:34px;display:grid;place-items:center;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#f4c36d;border:3px solid white;box-shadow:0 2px 8px #0008}.map-pin-inner span{transform:rotate(45deg);font-weight:bold;font-size:16px;color:#082d3a}.map-pin.access .map-pin-inner{background:#b9edf0}.map-pin.goal .map-pin-inner{background:#fff}.map-tip{background:#082f42;color:white;border:0;box-shadow:0 2px 6px #0006;font-weight:bold;font-size:13px;padding:6px 10px;border-radius:5px}.map-tip:before{border-top-color:#082f42}.satellite-map .leaflet-control-attribution{font-size:11px;line-height:1.35;max-width:80%;background:#fffffff2;color:#234}.satellite-map .leaflet-popup-content{font-size:14px;line-height:1.5}.satellite-map .leaflet-control-scale-line{font-size:12px}.map-unavailable{color:var(--muted);font-size:.9rem;padding:15px 0}.map-status{font-size:.8rem;color:var(--muted);margin:8px 0 0}.map-marker-arrow{font-size:18px;color:white;text-shadow:0 1px 4px #000}
@media(max-width:600px){.header-inner{padding-top:10px;padding-bottom:10px}.satellite-panel{padding:17px}.satellite-heading{display:block}.map-actions{margin-top:14px}.satellite-map{height:350px}.satellite-heading h2{font-size:1.6rem}.map-legend{gap:10px 16px}.map-points{display:block}.map-points span{display:block;margin:6px 0}.satellite-map .leaflet-control-attribution{max-width:85%}}
@media print{.satellite-map{height:300px}.map-actions{display:none}.trip-action{display:none}.brand-logo{width:100px;height:auto}}

/* Original Happy Bubbles homepage branding */
@font-face{font-family:HB Cormorant;src:url("fonts/cormorant-garamond.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:HB Geist;src:url("fonts/geist.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
header{background:#040d19;border-bottom-color:#bf8f3e40}
.header-inner{padding-top:16px;padding-bottom:16px}
.brand{gap:12px;min-width:0;font-weight:400;line-height:1.25}
.brand-circle{position:relative;display:block;width:68px;height:68px;flex-shrink:0;overflow:hidden;border-radius:50%;border:1px solid #bf8f3e66;background:#021933;display:grid;place-items:center}
.brand-logo{display:block;width:100%;height:100%;object-fit:contain;object-position:center;padding:3px;border-radius:0}
.brand-wordmark{min-width:0;line-height:1.25}
.brand-name{display:block;font-family:HB Cormorant,Georgia,serif;font-size:24px;font-weight:400;letter-spacing:.16em;color:#e3c07c;white-space:nowrap}
.brand-location{display:block;font-family:HB Geist,Arial,sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.34em;color:#7e8ea2}
.languages{border-color:#bf8f3e66}.languages button{color:#e3c07c}.languages button[aria-pressed=true]{background:#e3c07c;color:#040d19}
@media(max-width:639px){.brand-circle{width:56px;height:56px}.brand-name{font-size:20px;letter-spacing:.12em}.header-inner{gap:12px;padding-top:16px;padding-bottom:16px}}
@media(max-width:359px){.brand-circle{width:48px;height:48px}.brand-name{font-size:19px}.header-inner{padding-left:12px;padding-right:12px;gap:8px}.brand{gap:8px}.languages button{padding:8px}}

.cardmeta{flex-direction:column;align-items:flex-start;gap:9px}.difficulty-badge{display:inline-block;border-radius:7px;padding:6px 9px;font-size:.8rem;font-weight:700;line-height:1.4}.difficulty-0,.difficulty-1{background:#e1f2ec;color:#165c43}.difficulty-2{background:#fff0cd;color:#78500b}.difficulty-3{background:#fae7e0;color:#8a3722}.route-difficulty{border-left:3px solid var(--aqua);padding-left:14px;margin:18px 0;line-height:1.5}.route-difficulty small{display:block;font-size:.8rem;color:#bddde6;margin-bottom:5px}.route-difficulty b{display:block}.route-difficulty span{display:block;font-size:.875rem;color:#d2e7ef;margin-top:5px}@media print{.route-difficulty small,.route-difficulty span{color:#333}}

.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery button{height:280px}.gallery .photo-label{padding-top:44px}.credits{overflow-wrap:anywhere}.credits a{margin-right:0}@media(max-width:600px){.gallery{gap:10px}.gallery button{height:200px}}@media(max-width:420px){.gallery{grid-template-columns:1fr}.gallery button{height:230px}}

.legend-line.hiking{border-top-color:#4c9960}

.intro h1{max-width:780px}.brand-wordmark{display:flex;flex-direction:column;justify-content:center;gap:2px}
/* Second bonus, using the shared Happy Bubbles design. */
.foodfilters{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0 10px}.foodfilters button{border:1px solid var(--line);border-radius:24px;background:white;color:var(--navy);padding:11px 16px;font-weight:700;font-size:.9rem}.foodfilters button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.result-count{font-size:.8rem;color:var(--muted);margin:0 0 20px}.review-mini{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin:16px 0 11px;font-size:.78rem;color:var(--muted)}.review-mini b{font-size:1.05rem;color:var(--navy)}.family-label{display:inline-block;background:var(--paper);border-radius:7px;padding:7px 9px;font-size:.78rem;color:var(--muted)}.family-label.confirmed{background:#e1f2ec;color:#165c43;font-weight:700}.card h2{min-height:1.15em}.card p{min-height:4.5em}.fact-extra{display:block;color:var(--muted);font-size:.75rem;margin-top:6px}.rating-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.rating-summary strong{font-size:1.5rem;color:var(--navy)}.rating-summary span{color:var(--muted);font-size:.85rem}.source-note{font-size:.8rem!important;line-height:1.55!important;margin:14px 0!important}.methodology{margin-top:30px;padding:18px 22px;border:1px solid var(--line);border-radius:12px;background:white;font-size:.875rem;line-height:1.65}.methodology summary{cursor:pointer;font-weight:bold}.methodology p{color:var(--muted);max-width:900px;margin-bottom:0}.photo-controls{display:flex;gap:8px;margin-top:12px}.photo-controls button{background:#e3c07c;border:0;border-radius:8px;color:#040d19;padding:7px 15px;font-size:1.25rem}#photocaption a{color:var(--aqua)}.credits{line-height:1.7}.route-panel .times{grid-template-columns:1fr}.route-panel .time{display:flex;justify-content:space-between;align-items:center;gap:14px}.route-panel .time small{margin:0;max-width:60%}.route-panel .time b{white-space:nowrap}@media(max-width:600px){.card p{min-height:0}.gallery button{height:210px}.fact-extra{grid-column:2;margin-top:-8px}.intro h1{font-size:2.35rem}.foodfilters button{padding:10px 13px;font-size:.8rem}}@media(max-width:420px){.gallery button{height:235px}}@media print{.foodfilters,.photo-controls{display:none}}
