@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap');
:root{--ivory:#f7f2e8;--paper:#fffdf7;--charcoal:#262a27;--petrol:#123d39;--petrol-2:#1d5750;--terra:#bd5b3b;--sand:#e7d8bf;--muted:#66706a;--line:#d9d3c7;--shadow:0 18px 50px #183a3220}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:'DM Sans',system-ui,sans-serif;font-size:17px;line-height:1.55}a{color:inherit}.topbar{height:76px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;gap:40px;position:sticky;top:0;z-index:20;background:#fffdf7f2;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{font:600 25px Newsreader,Georgia,serif;color:var(--petrol);text-decoration:none}.brand span{color:var(--terra)}.topbar nav{margin-left:auto;display:flex;gap:30px}.topbar nav a{text-decoration:none;font-size:15px;font-weight:600}.locale{min-width:46px;min-height:44px;border:1px solid var(--line);background:transparent;border-radius:999px}.section{padding:clamp(64px,8vw,112px) max(6vw,24px)}h1,h2,h3,blockquote{font-family:Newsreader,Georgia,serif;line-height:1.02}h1{font-size:clamp(50px,7.5vw,104px);letter-spacing:-.035em;margin:.15em 0}h2{font-size:clamp(38px,5vw,68px);letter-spacing:-.025em;margin:.15em 0 .4em}h3{font-size:29px}.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:700;color:var(--terra)}.lead{font-size:clamp(18px,2vw,23px);color:var(--muted);max-width:720px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:16px 20px;min-height:54px;border:0;border-radius:3px;text-decoration:none;font:700 15px DM Sans;cursor:pointer}.primary{background:var(--terra);color:#fff}.secondary{background:var(--petrol);color:#fff}.back,.text-button{color:var(--petrol-2);font-weight:700;text-decoration:none;border:0;background:none;min-height:44px;padding:10px 0;cursor:pointer}.hero{min-height:calc(100vh - 76px);display:grid;grid-template-columns:1.05fr .95fr;background:var(--petrol);color:white}.hero-copy{padding:clamp(60px,9vw,140px) max(6vw,90px)}.hero h1 em{font-style:italic;color:#e5ab80}.hero .lead{color:#d4e3de}.hero-photo{margin:34px 34px 34px 0;min-height:560px;background:linear-gradient(145deg,#265d55,#0c2927)}.photo-placeholder{display:flex;align-items:end;justify-content:center;background:linear-gradient(135deg,#ddd2bd,#baa98e);position:relative;overflow:hidden}.photo-placeholder:before{content:'✦';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);font:100px Newsreader;color:#fff8}.photo-placeholder span{padding:14px;background:#1a2924dd;color:white;font-size:12px;width:100%;text-align:center}.choice{text-align:center}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1120px;margin:50px auto 0;text-align:left}.choice-card{padding:35px;min-height:270px;display:flex;gap:30px;text-decoration:none;transition:transform .2s,box-shadow .2s}.choice-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.choice-card.roam{background:var(--paper)}.choice-card.guide{background:var(--sand)}.choice-no{font:600 55px Newsreader;color:var(--terra)}.choice-card h3{margin:8px 0}.choice-card b{color:var(--petrol)}.manifesto{background:var(--terra);color:white;text-align:center}.manifesto blockquote{font-size:clamp(35px,5vw,68px);max-width:1000px;margin:0 auto}.destination-hero{min-height:480px;padding:70px max(6vw,24px);display:flex;align-items:end;background:linear-gradient(90deg,#113d39 0 47%,#1a514a 47%);color:white}.destination-hero h1{margin:0}.section-heading,.guided-callout,.map-label{display:flex;align-items:end;justify-content:space-between;gap:30px}.section-heading>p{max-width:430px;color:var(--muted)}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.route-card{background:var(--paper);border:1px solid var(--line);padding:28px;min-height:320px;display:flex;flex-direction:column}.route-card.reference{grid-column:span 2;background:var(--petrol);color:white}.route-card h3{margin:16px 0 7px}.route-card p{color:var(--muted)}.route-card.reference p{color:#cee0da}.route-card .meta{margin-top:auto}.status{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--terra);font-weight:700}.guided-callout{background:var(--sand)}.route-intro{background:var(--petrol);color:white}.route-intro .lead{color:#cee0da}.stats{display:flex;gap:28px;flex-wrap:wrap;font-weight:600}.map-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:32px}.map-frame{height:610px;position:relative;background:#ddd6c8;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%}#route-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}#route-overlay polyline{fill:none;stroke:var(--terra);stroke-width:1.4;stroke-dasharray:3 2}#route-overlay circle{fill:var(--petrol);stroke:white;stroke-width:1}#route-overlay text{font:700 4px DM Sans;fill:white;text-anchor:middle}.map-note{position:absolute;bottom:0;left:0;right:0;margin:0;padding:9px 13px;background:#fffdf7ed;font-size:11px;z-index:3}.icon-button{min-height:48px;border:1px solid var(--line);background:var(--paper);padding:10px 15px;font-weight:700}.route-stops{list-style:none;margin:0;padding:0}.route-stop{display:grid;grid-template-columns:42px 1fr;gap:12px;border-top:1px solid var(--line);padding:20px 4px}.route-stop a{text-decoration:none}.route-stop h3{font-size:24px;margin:0}.route-stop p{margin:3px 0;color:var(--muted);font-size:14px}.stop-number{color:var(--terra);font:600 26px Newsreader}.route-disclaimer{background:#eee3d1}.stop-page{min-height:100vh}.stop-header{padding:20px max(4vw,24px);display:flex;justify-content:space-between}.stop-grid{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 140px)}.stop-visual{margin:0;background:#ded4c4;min-height:700px;display:flex;flex-direction:column}.stop-visual>div{flex:1}.stop-visual figcaption{padding:10px 18px;font-size:12px}.stop-content{padding:clamp(35px,6vw,90px);max-width:800px}.stop-content h1{font-size:clamp(48px,6vw,82px)}.orientation{padding:17px;border-left:4px solid var(--terra);background:#f0e5d5}.audio-box{margin:30px 0;padding:20px;background:var(--petrol);color:white}.audio-top{display:flex;gap:15px;align-items:center}.audio-top button{width:54px;height:54px;border-radius:50%;border:0;background:var(--sand);font-size:20px}.audio-top button:disabled{opacity:.55;cursor:not-allowed}.audio-top p{margin:2px 0;font-size:13px;color:#c8d8d4}.audio-box input{width:100%;accent-color:var(--terra)}.times{display:flex;justify-content:space-between;font-size:12px}.story{font-size:18px}.claim{margin:14px 0;padding:12px 14px;background:var(--paper);border:1px solid var(--line);font-size:14px}.claim a{color:var(--petrol-2)}.questions{border-top:1px solid var(--line);margin-top:35px;padding-top:25px}.questions h2{font-size:30px}.questions form{display:flex;gap:8px}.questions input{min-height:52px;border:1px solid var(--line);background:white;padding:12px;width:100%;font:inherit}.demo-answer{background:#e8dfcf;padding:15px;margin-top:15px}.stop-nav{margin-top:40px;display:flex;justify-content:space-between;align-items:center}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:30px 0}.filters button{padding:12px 18px;border:1px solid var(--line);background:transparent;min-height:46px}.filters button.active{background:var(--petrol);color:white}.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.activity-card{padding:24px;background:var(--paper);border:1px solid var(--line)}.activity-card dl{font-size:14px}.activity-card dt{font-weight:700;margin-top:8px}.activity-card dd{margin:0;color:var(--muted)}.demo-badge{display:inline-block;background:#f1dfd4;color:#71301d;padding:5px 8px;font-size:11px;font-weight:700}.contribution{margin-top:70px;padding:35px;background:var(--sand);display:flex;justify-content:space-between;gap:30px}.contribution form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.contribution input,.contribution select,.activity-card select{display:block;min-height:48px;padding:8px;border:1px solid var(--line);background:white}.contribution input{width:120px}.activity-card select{width:100%;margin:8px 0}footer{padding:45px max(6vw,24px);display:flex;justify-content:space-between;align-items:center;background:#092a27;color:white}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:3px solid #f2a365;outline-offset:3px}@media(max-width:820px){body{font-size:16px}.topbar nav{display:none}.hero,.stop-grid,.map-layout{grid-template-columns:1fr}.hero{min-height:auto}.hero-photo{margin:0;min-height:420px}.choice-grid,.activity-grid{grid-template-columns:1fr}.route-grid{grid-template-columns:1fr}.route-card.reference{grid-column:auto}.section-heading,.guided-callout,.contribution{align-items:flex-start;flex-direction:column}.map-frame{height:480px}.stop-visual{min-height:430px}.stop-content{padding:40px 24px}.questions form{display:block}.questions form button{width:100%;margin-top:8px}footer{display:block}.topbar{height:68px}.destination-hero{min-height:360px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* Visible navigation and destination activity catalogue */
.topbar nav a{display:inline-flex;align-items:center;min-height:44px;border-bottom:3px solid transparent}.topbar nav a[aria-current="page"]{color:var(--terra);border-bottom-color:var(--terra)}.destination-activities{background:var(--sand)}.catalog-notice{max-width:680px;color:var(--muted);margin-bottom:30px}.destination-activities .activity-card{display:flex;flex-direction:column;border-radius:12px}.destination-activities .activity-card h3{margin-bottom:12px}.destination-activities .activity-card .text-button{margin-top:auto}.destination-activities .demo-badge{align-self:flex-start}@media(max-width:820px){.topbar{height:auto;min-height:110px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 20px 0}.topbar .brand{grid-column:1;grid-row:1}.topbar .locale{grid-column:2;grid-row:1}.topbar nav{display:flex;grid-column:1/-1;grid-row:2;width:100%;margin:0;gap:24px;justify-content:center}.topbar nav a{min-height:46px}.hero-copy{padding:52px 24px}.stop-nav{flex-wrap:wrap;gap:16px}}

/* Photography and geographic map */
.hero-photo{position:relative;display:flex;flex-direction:column;background:#153b36}.hero-photo img{width:100%;height:100%;min-height:560px;object-fit:cover;flex:1}.hero-photo figcaption{padding:12px 16px;background:#092a27;color:#fff;font-size:12px}.stop-visual{min-height:0;align-self:start;background:transparent}.stop-visual>img{width:100%;height:auto;max-height:78vh;object-fit:contain;background:#e7ddcc}.stop-visual figcaption{line-height:1.6}.map-frame{isolation:isolate}#route-map{width:100%;height:100%;z-index:0}.stop-pin{border-radius:50%;background:#123d39;color:white;border:2px solid white;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 2px 6px #0005}#map-status{position:absolute;top:0;left:48px;right:10px;background:#fffdf7;z-index:2;font-size:13px}.map-note{pointer-events:auto}.story #story-text{white-space:pre-line}.route-card{border-radius:12px}.route-card.reference .status{color:#f2b28c}.route-intro .back,.destination-hero .back{color:#e5d6be}.stop-nav a{max-width:100%}.audio-top button{flex-shrink:0}@media(max-width:820px){.hero-photo{margin:0}.hero-photo img{min-height:300px;max-height:440px}.stop-visual{min-height:0}.stop-visual>img{max-height:470px}.map-frame{height:430px}.stop-nav .button{white-space:normal}.section{padding:56px 24px}}
.hero-copy{padding:clamp(48px,7vw,100px) clamp(24px,4vw,76px)}@media(min-width:821px) and (max-width:1050px){.hero h1{font-size:58px}.hero-photo{margin:24px 24px 24px 0}}

.activity-photo{margin:-24px -24px 20px}.activity-photo img{display:block;width:100%;height:210px;object-fit:cover;border-radius:12px 12px 0 0}.activity-photo figcaption{font-size:11px;line-height:1.5;padding:10px 16px;color:var(--muted);background:#eee8dc}.activity-card{overflow:hidden}#guide-filter{display:block;min-height:46px;max-width:100%;padding:10px;margin-top:8px;border:1px solid var(--line);background:var(--paper);font:inherit}

/* Comfortable cards and controls on phones and tablets. */
.activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.activity-card{min-width:0;border-radius:12px;overflow-wrap:anywhere}.activity-card .button{max-width:100%;white-space:normal}.activity-photo img{max-width:100%}.activity-card h3{font-size:clamp(26px,3vw,32px)}
@media(max-width:1100px){.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.activity-grid{grid-template-columns:minmax(0,1fr)}.activity-card .button{width:100%;justify-content:center;min-height:48px}.filters{gap:8px;margin:24px 0}.filters button{flex:1 1 auto;font:inherit;min-height:48px;padding:12px}.activity-photo img{height:220px}#guide-filter{width:100%;min-height:48px}.contribution{padding:24px}.section{padding:40px 20px}.section h1{font-size:clamp(40px,11vw,60px)}.activity-card p,.activity-card dd{overflow-wrap:anywhere}.choice-card{padding:24px;gap:18px}.stats{gap:16px}.stop-header{gap:12px;flex-wrap:wrap}.map-label{align-items:flex-start;flex-wrap:wrap}.hero h1{font-size:clamp(44px,13vw,68px)}}

.catalog-search{display:block;max-width:700px;margin-top:28px;font-weight:600}.catalog-search input{display:block;width:100%;min-height:50px;margin-top:8px;padding:12px 16px;font:inherit;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.activity-description{font-size:16px;line-height:1.65;color:var(--charcoal)}.catalog-directory{padding:28px;background:var(--sand);margin-top:40px;border-radius:12px}.catalog-directory h2{font-size:32px}.activity-photo figcaption{font-size:12px}.activity-grid{align-items:start}.filters button{cursor:pointer}

.municipality-label{font-size:13px;font-weight:700;color:var(--terracotta,#9b4930)}.municipality-filter{display:block;margin:20px 0}.availability-alert{padding:12px;background:#fff0d9;border-left:4px solid #ad6a22;border-radius:6px}.province-page h1{max-width:850px}.province-page input[type=checkbox]{width:auto}.province-page .activity-card h2{font-size:27px}.story #story-text{white-space:pre-line}.topbar nav{flex-wrap:wrap}.activity-card{overflow-wrap:anywhere}

/* Shared StoryRoamer identity across every destination and experience. */
:root{--font-body:'DM Sans',system-ui,sans-serif;--font-title:'Newsreader',Georgia,serif;--radius:14px}
body,input,select,textarea,button,.button{font-family:var(--font-body)}
h1,h2,h3,blockquote,.brand{font-family:var(--font-title)}
input,select,textarea{font-size:1rem;max-width:100%}button,.button{font-size:.9375rem}
.kicker,.status,.demo-badge{font-size:.875rem;line-height:1.5;letter-spacing:.08em}
.activity-card h2,.activity-card h3,.route-card h3{font-family:var(--font-title);font-size:2rem;line-height:1.1;letter-spacing:-.02em}
.activity-card,.route-card,.operator-panel{border-radius:var(--radius);border:1px solid var(--line);background:var(--paper)}
.activity-card .button,.route-card .button{border-radius:8px}.button{line-height:1.45}
.activity-photo{overflow:hidden}.activity-photo img{height:240px;object-fit:cover}
.destination-card{display:flex;flex-direction:column;align-self:stretch}.destination-card>.button{margin-top:auto}
.destination-card>.activity-photo{flex:none}.destination-art{height:240px;margin:-24px -24px 20px;background:var(--petrol);display:grid;place-items:center;color:var(--sand)}
.destination-art span{display:grid;place-items:center;width:110px;height:145px;border:1px solid #e7d8bf77;border-radius:70px 70px 0 0;font:500 2rem var(--font-title)}
.province-page .activity-card h2{font-size:2rem}.town-page .destination-hero{min-height:350px;background:var(--petrol)}
.town-page .destination-hero .lead{color:#d4e3de}.town-content>.town-photo{margin-bottom:64px}
.town-photo .activity-photo,.experience-photo .activity-photo{margin:0 0 32px;border-radius:var(--radius);border:1px solid var(--line)}
.town-photo img{height:420px}.experience-photo img{height:auto;max-height:560px;object-fit:contain;background:var(--sand)}
.town-heading{margin-top:64px}.experience-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr);gap:48px;align-items:start}
.experience-page .route-intro h1{max-width:1100px;font-size:clamp(40px,6vw,78px)}
.experience-layout h2{font-size:2.5rem}.operator-panel{padding:28px;position:sticky;top:100px}.operator-panel h2{font-size:2rem;overflow-wrap:anywhere}
.operator-panel .button{width:100%;white-space:normal}.external-note{font-size:.875rem;color:var(--muted)}
.experience-facts{display:grid;grid-template-columns:1fr 2fr;gap:16px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.experience-facts dt{font-weight:700}.experience-facts dd{margin:0}.source-details{padding:18px 0}.source-details summary{cursor:pointer}
#municipality-filter,#guide-filter{font:inherit;width:100%;max-width:460px;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.map-note,.audio-top p,.times{font-size:.875rem}.audio-box,.orientation{border-radius:10px}
@media(max-width:820px){.experience-layout{grid-template-columns:1fr;gap:28px}.operator-panel{position:static}.town-photo img{height:280px}.town-page .destination-hero{min-height:280px}.experience-facts{grid-template-columns:1fr;gap:8px}.experience-facts dd{margin-bottom:10px}.experience-page .route-intro h1{overflow-wrap:anywhere}}
