.rp-route-planner{--rp-ink:#292e2c;--rp-muted:#68716b;--rp-accent:#465e50;color:var(--rp-ink);font-family:inherit;width:100%;max-width:1200px;margin:auto;background:#fff}.rp-route-planner *{box-sizing:border-box}.rp-route-planner [hidden]{display:none!important}.rp-stage{position:relative;min-height:560px;overflow:hidden;background:#e8ece9}.rp-backdrop{position:absolute;inset:0;overflow:hidden;background:linear-gradient(150deg,#edf1f1 0%,#edf1f1 38%,#e1e6df 38.3%,#eff0e9 63%,#e2e7df 100%)}.rp-backdrop:before{content:"";position:absolute;width:130%;height:160px;left:-15%;top:58%;border:2px solid #fafbf7;border-radius:50%;transform:rotate(-19deg)}.rp-backdrop:after{content:"";position:absolute;inset:0;background:rgba(247,248,244,.4)}.rp-backdrop span{position:absolute;color:#818d87;letter-spacing:.22em;font-size:11px}.rp-sea{left:16%;top:14%}.rp-place{right:14%;top:47%}.rp-forest{left:12%;bottom:15%;font-style:italic;letter-spacing:.04em!important}.rp-gate{position:relative;z-index:2;min-height:560px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px 22px;text-align:center;background:radial-gradient(ellipse at center,rgba(247,248,244,.96),rgba(247,248,244,.55) 55%,transparent 90%)}.rp-pin{width:28px;height:36px;position:relative;margin-bottom:28px;background:#292e2c;border-radius:55% 55% 55% 0;transform:rotate(-45deg);box-shadow:-4px 4px 10px #0002}.rp-pin:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;top:9px;left:9px}.rp-eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.7;margin:0 0 14px}.rp-gate h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(28px,4vw,44px);line-height:1.15;margin:0 0 18px;color:var(--rp-ink)}.rp-gate-copy{font-size:15px;line-height:1.7;color:var(--rp-muted);margin:0 0 28px}.rp-route-planner button{font:inherit;cursor:pointer;border:0;border-radius:2px}.rp-activate,.rp-submit{background:var(--rp-accent);color:white;padding:16px 22px;font-size:13px!important;font-weight:600!important}.rp-activate span,.rp-submit span{margin-left:20px}.rp-route-planner button:hover{background:#32483c}.rp-route-planner button:disabled{opacity:.6;cursor:wait}.rp-route-planner :focus-visible{outline:3px solid #657f6e;outline-offset:4px}.rp-privacy{font-size:11px;color:#606a64;line-height:1.7;max-width:390px;margin:18px 0 0}.rp-map{position:absolute;inset:0;width:100%;height:100%}.rp-form{position:absolute;top:24px;left:24px;z-index:3;width:310px;padding:20px;background:#fffffff5;box-shadow:0 3px 22px #182c1d18;border:1px solid #e5e8e3;border-radius:3px;display:grid;gap:14px}.rp-origin{display:grid;gap:7px;font-size:11px;letter-spacing:.03em;color:var(--rp-muted)}.rp-origin input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d8ded8;border-radius:2px;background:#fff;font:inherit;font-size:14px;color:var(--rp-ink)}.rp-modes{display:flex;border:0;padding:0;margin:0;gap:4px;background:#eef1ed;border-radius:2px}.rp-modes legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.rp-modes label{position:relative;flex:1;cursor:pointer}.rp-modes input{position:absolute;opacity:0;width:1px;height:1px}.rp-modes span{display:block;text-align:center;padding:10px;font-size:13px;border:1px solid transparent}.rp-modes input:checked+span{background:white;border-color:#cfd7ce;color:var(--rp-accent);font-weight:600}.rp-modes input:focus-visible+span{outline:3px solid #657f6e;outline-offset:1px}.rp-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 2px;border-bottom:1px solid #e6e9e4}.rp-footer .rp-eyebrow{margin-bottom:8px;color:var(--rp-muted)}.rp-destination{margin:0;font-size:17px;font-weight:500;line-height:1.6}.rp-destination span{display:block;font-size:13px;font-weight:400;color:var(--rp-muted)}.rp-footer-note{font:italic 19px/1.5 Georgia,serif;color:#7b837c;margin:0}.rp-status{font-size:14px;line-height:1.7;margin:16px 0;overflow-wrap:anywhere}.rp-status:empty{display:none}.rp-directions{border-top:1px solid #e6e9e4;padding:16px 0;font-size:14px}.rp-directions summary{cursor:pointer}.rp-steps{max-height:260px;overflow:auto;padding-left:24px;line-height:1.6}.rp-steps li{margin:8px 0}@media(max-width:600px){.rp-stage,.rp-gate{min-height:560px}.rp-gate{padding:36px 18px}.rp-form{top:14px;left:14px;width:calc(100% - 28px);padding:14px;gap:10px}.rp-footer{padding:24px 0;align-items:flex-start}.rp-footer-note{display:none}.rp-activate{padding:15px 14px}.rp-activate span{margin-left:8px}.rp-privacy br{display:none}.rp-sea{left:10%;top:9%}}

/* Keep the map positioned independently of Mapbox CSS loaded after this stylesheet. */
.rp-route-planner .rp-stage>.rp-map{position:absolute;inset:0;width:100%;height:100%;min-height:560px;z-index:1}

/* Directions remain inside the map, clear of attribution and map controls. */
.rp-route-planner .rp-directions{position:absolute;z-index:4;left:24px;bottom:38px;width:310px;max-width:calc(100% - 84px);padding:0;background:#fffffff5;border:1px solid #e5e8e3;border-radius:3px;box-shadow:0 3px 22px #182c1d18}
.rp-directions summary{padding:13px 15px;font-weight:600;font-size:13px;color:var(--rp-accent)}
.rp-directions .rp-steps{list-style:none;margin:0;padding:0 14px;max-height:190px;overflow:auto;overscroll-behavior:contain}
.rp-directions .rp-steps li{display:flex;gap:12px;padding:12px 0;margin:0;border-top:1px solid #e6e9e4;align-items:flex-start;line-height:1.5;font-size:13px}
.rp-arrow{flex:0 0 27px;text-align:center;font-family:Arial,sans-serif;font-size:26px;line-height:1.15;color:var(--rp-accent)}
.rp-instruction{min-width:0;overflow-wrap:anywhere}.rp-step-distance{display:block;color:var(--rp-muted);margin-top:4px;font-size:11px}
@media(max-width:600px){.rp-route-planner .rp-directions{left:14px;bottom:38px;width:calc(100% - 76px)}.rp-directions .rp-steps{max-height:150px}}
.rp-route-planner .rp-edit{position:absolute;z-index:3;top:24px;left:24px;padding:14px 20px;background:#fff;color:var(--rp-accent);box-shadow:0 3px 22px #182c1d18;border:1px solid #e5e8e3;font-weight:600;font-size:13px}.rp-route-planner .rp-edit:hover{background:#eef1ed}@media(max-width:600px){.rp-route-planner .rp-edit{top:14px;left:14px}}

/* Improve map readability while preserving the light basemap. */
.rp-route-planner .rp-map .mapboxgl-canvas{filter:brightness(.96) contrast(1.05)}



.rp-arrow svg{display:block;width:27px;height:27px;overflow:visible}

.rp-gpx{display:block;padding:9px 14px;color:var(--rp-accent);font-size:12px;font-weight:600;line-height:1.5;border-top:1px solid #e6e9e4;text-decoration:underline}
.rp-coordinates{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 .5em;margin:0;color:#424b53;font-size:clamp(12px,1.4vw,16px);line-height:1.7;font-style:normal;font-variant-numeric:tabular-nums}.rp-coordinates>span{white-space:nowrap}@media(max-width:600px){.rp-footer{flex-direction:column;gap:16px}.rp-coordinates{justify-content:flex-start;font-size:12px}}
.rp-coordinate-block{text-align:right}.rp-coordinate-slogan{margin:7px 0 0;font-size:11px;font-weight:500;letter-spacing:.18em;line-height:1.6;color:var(--rp-muted)}@media(max-width:600px){.rp-coordinate-block{text-align:left}}

/* Protect route metrics from template typography, including mobile small-text rules. */
.rp-route-planner .rp-directions .rp-steps .rp-step-distance{letter-spacing:normal!important;word-spacing:normal!important;text-align:left!important;text-transform:none!important;font-size:12px;line-height:1.5}
