@font-face{font-family:"Fraunces";src:url("../fonts/Fraunces-Variable.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/PublicSans-Variable.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{--green:#1F493D;--terracotta:#C66A3D;--cream:#EDE4D0;--blue:#86A6B4;--ink:#17211D;--light:#F7F2E8;--line:rgba(23,33,29,.28);--max:1080px;--serif:"Fraunces",Georgia,serif;--sans:"Public Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--sans)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.22em}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px}
.shell{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
.skip{position:fixed;left:1rem;top:1rem;z-index:99;transform:translateY(-220%);background:var(--light);color:var(--ink);padding:.7rem 1rem;border:2px solid var(--ink)}
.skip:focus{transform:none}
.site-head{position:relative;z-index:10;background:var(--cream);color:var(--ink);border-bottom:1px solid var(--ink)}
.utility-line{background:var(--green);color:var(--light);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}
.utility-inner{min-height:28px;display:flex;justify-content:flex-end;align-items:center;gap:1rem}
.head-inner{min-height:88px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem}
.nav{display:flex;align-items:center;gap:clamp(1rem,3vw,2.6rem)}
.nav a{color:var(--ink);font-size:.73rem;letter-spacing:.13em;text-decoration:none;text-transform:uppercase}
.nav a:hover{text-decoration:underline}
.mark{width:70px;height:56px;position:relative;display:grid;place-items:center;border:2px solid var(--green);border-right:0;background:var(--cream);color:var(--green);font-weight:750;letter-spacing:.05em;text-decoration:none}
.mark::before,.mark::after{content:"";position:absolute;right:-4px;width:8px;height:8px;border-radius:50%}
.mark::before{top:-4px;background:var(--terracotta);color:var(--ink)}
.mark::after{bottom:-4px;background:var(--blue);color:var(--ink)}
.menu{display:none;min-height:44px;border:1px solid var(--ink);background:var(--cream);color:var(--ink);padding:.55rem .85rem;font:inherit}
.hero{min-height:710px;display:grid;grid-template-columns:minmax(360px,.9fr) 1.1fr;border-bottom:1px solid var(--ink);background:var(--cream);color:var(--ink)}
.hero-copy{min-width:0;padding:clamp(4rem,8vw,7rem) max(2rem,calc((100vw - var(--max))/2));padding-right:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--ink);background:var(--cream);color:var(--ink)}
.kicker,.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.route-no{display:flex;align-items:center;gap:1rem}
.route-no::after{content:"";width:64px;height:1px;background:var(--green);color:var(--ink)}
.hero h1,.page-hero h1{margin:.65rem 0 1.4rem;font:400 clamp(3.4rem,7.5vw,7.3rem)/.95 var(--serif);letter-spacing:-.045em}
.hero p{max-width:31rem;font-size:1.08rem}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.8rem 1.2rem;border:1px solid var(--green);background:var(--green);color:var(--light);font-weight:700;text-decoration:none;cursor:pointer}
.btn.alt{background:var(--cream);color:var(--green)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--terracotta)}
.btn[disabled]{opacity:.72;cursor:wait;transform:none;box-shadow:none}
.map-field{position:relative;min-height:680px;overflow:hidden;background:var(--light);color:var(--ink)}
.map-grid{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,rgba(134,166,180,.25) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(134,166,180,.25) 50%,transparent 50.2%);color:var(--ink);background-size:88px 88px;transform:rotate(-5deg) scale(1.12)}
.route-line{position:absolute;z-index:2;left:9%;top:16%;width:80%;height:52%;border:3px solid var(--blue);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(16deg);animation:route-arrive 1.1s ease-out both}
.route-line::before,.route-line::after{content:"";position:absolute;width:15px;height:15px;border:4px solid var(--terracotta);border-radius:50%;background:var(--light);color:var(--ink)}
.route-line::before{left:4%;bottom:-7%}.route-line::after{right:6%;top:-6%}
@keyframes route-arrive{from{opacity:0;transform:rotate(16deg) scale(.94)}to{opacity:1;transform:rotate(16deg) scale(1)}}
.stamp{position:absolute;z-index:3;padding:.55rem .75rem;border:2px solid var(--terracotta);background:var(--light);color:var(--terracotta);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase}
.stamp.one{left:9%;top:9%;transform:rotate(-6deg)}
.stamp.two{right:7%;bottom:8%;border-color:var(--green);color:var(--green);transform:rotate(4deg)}
.coord{position:absolute;z-index:3;background:var(--light);color:var(--ink);font:700 .68rem/1.2 monospace;letter-spacing:.08em;padding:.2rem}
.coord.a{right:9%;top:17%}.coord.b{left:9%;bottom:28%}
.map-title{position:absolute;z-index:3;left:9%;bottom:36%;max-width:7ch;background:var(--light);color:var(--green);font:600 clamp(2.8rem,5.5vw,5.5rem)/.9 var(--serif)}
.hero-photo{position:absolute;z-index:1;right:7%;bottom:12%;width:min(54%,440px);height:31%;border:1px solid var(--ink);overflow:hidden;box-shadow:10px 10px 0 var(--terracotta);background:var(--blue);color:var(--ink);transform:rotate(-2deg)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.section{padding:clamp(4.5rem,8vw,8rem) 0;border-bottom:1px solid var(--ink);background:var(--cream);color:var(--ink)}
.route-section{position:relative}
.route-section::before{content:"";position:absolute;left:max(24px,calc((100vw - var(--max))/2));top:0;width:2px;height:clamp(4.5rem,8vw,8rem);background:var(--terracotta);color:var(--ink);transform-origin:top;animation:spine-draw 1s ease both}
.route-section::after{content:"";position:absolute;left:calc(max(24px,calc((100vw - var(--max))/2)) - 5px);top:clamp(4.5rem,8vw,8rem);width:12px;height:12px;border-radius:50%;background:var(--blue);color:var(--ink)}
@keyframes spine-draw{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.route-heading{padding-left:1.6rem}
.split{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(3rem,8vw,8rem)}
.split h2,.section-title{margin:0;font:400 clamp(2.5rem,5vw,5rem)/1 var(--serif);letter-spacing:-.035em}
.lede{max-width:50rem;font-size:1.2rem}
.notes{display:grid;grid-template-columns:repeat(3,1fr);margin-top:4rem;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.note{position:relative;min-height:290px;padding:2rem;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--light);color:var(--ink)}
.num{color:var(--green);font:700 .7rem/1.2 monospace;letter-spacing:.08em}
.note h3,.boundary-card h3,.address-card h3{margin:3rem 0 1rem;font:600 1.9rem/1.1 var(--serif)}
.note::after{content:"";position:absolute;bottom:1.5rem;left:2rem;width:40%;height:2px;background:var(--terracotta);color:var(--ink);transform:rotate(-3deg)}
.facts{display:grid;grid-template-columns:1.2fr .8fr;margin-top:3rem;border:1px solid var(--ink)}
.fact-list{display:grid;grid-template-columns:1fr 1fr;margin:0}
.fact{min-width:0;padding:1.35rem;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--cream);color:var(--ink);overflow-wrap:anywhere}
.fact dt{font-size:.67rem;letter-spacing:.14em;text-transform:uppercase}.fact dd{margin:.35rem 0 0;font:500 1.28rem/1.3 var(--serif)}
.call-panel{min-width:0;padding:clamp(2.5rem,5vw,4.5rem);display:flex;flex-direction:column;justify-content:space-between;background:var(--green);color:var(--light)}
.call-panel strong{font:400 clamp(2.4rem,4.7vw,4.6rem)/1 var(--serif);overflow-wrap:break-word}.call-panel a{color:var(--light)}
.boundary-grid{display:grid;grid-template-columns:1fr 1.08fr 1fr;margin-top:3rem;border:1px solid var(--ink)}
.boundary-card,.address-card{min-width:0;padding:2rem;border-right:1px solid var(--ink);background:var(--light);color:var(--ink);font-style:normal;overflow-wrap:anywhere}
.address-card{background:var(--blue);color:var(--ink);transform:translateY(1.25rem)}
.boundary-card:last-child{border-right:0}
.phone-band{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--terracotta);color:var(--ink)}
.phone-inner{display:flex;align-items:end;justify-content:space-between;gap:2rem}
.phone-inner h2{max-width:15ch;margin:.4rem 0 0;font:500 clamp(2.5rem,5vw,5rem)/.95 var(--serif)}
.phone-inner>a{font:650 clamp(2rem,4vw,4rem)/1 var(--serif);white-space:nowrap}
.page-hero{padding:clamp(4rem,8vw,7rem) 0;border-bottom:1px solid var(--ink);background:var(--blue);color:var(--ink)}
.page-hero h1{max-width:12ch}
.reading{max-width:780px;margin-inline:auto}
.reading h2{margin-top:3rem;font:600 2rem/1.2 var(--serif);overflow-wrap:anywhere}.reading h3{margin-top:2rem;font:600 1.35rem/1.25 var(--serif)}.reading ul{padding-left:1.2rem}
.reading table{width:100%;border-collapse:collapse;table-layout:fixed}.reading th,.reading td{padding:.65rem;border:1px solid var(--ink);vertical-align:top;text-align:left;overflow-wrap:anywhere;background:var(--cream);color:var(--ink)}
.faq details{padding:1.3rem 0;border-top:1px solid var(--ink);background:var(--cream);color:var(--ink)}.faq details:last-child{border-bottom:1px solid var(--ink)}.faq summary{font:600 1.2rem/1.35 var(--serif);cursor:pointer}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem}
.field{margin-bottom:1.35rem}.field label{display:block;margin-bottom:.4rem;font-weight:700}
.field input,.field textarea,.field select{width:100%;padding:.85rem .25rem;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:var(--cream);color:var(--ink);font:inherit}.field textarea{min-height:130px;resize:vertical}
.error{min-height:1.3em;color:#842C18;font-size:.84rem}
.error-summary{margin-bottom:1.2rem;padding:.75rem 1rem;border-left:4px solid var(--terracotta);background:var(--light);color:var(--ink)}.error-summary[hidden]{display:none}
.choice-set{margin:0 0 1.4rem;padding:0;border:0}.choice-set legend{margin-bottom:.55rem;font-weight:700}.choice-row{display:flex;flex-wrap:wrap;gap:.65rem}.choice-row label{display:flex;align-items:center;gap:.45rem;min-height:44px;padding:.65rem .8rem;border:1px solid var(--ink);background:var(--cream);color:var(--ink)}
.disclosure{max-width:46rem;font-size:.86rem}
.prepared{margin-top:1.5rem;padding:1.5rem;border:1px solid var(--ink);background:var(--light);color:var(--ink)}.prepared[hidden]{display:none}.prepared pre{white-space:pre-wrap;font:inherit}.copy-status{min-height:1.5em;font-weight:700}
.contact-card{align-self:start;padding:2.5rem;background:var(--green);color:var(--light)}.contact-card a{color:var(--light)}
.site-foot{padding:1.1rem 0;background:var(--ink);color:var(--light);font-size:.69rem;letter-spacing:.02em}
.foot-line{display:flex;align-items:center;justify-content:space-between;gap:.85rem;white-space:nowrap}.site-foot a{color:var(--light)}.footer-links{display:flex;gap:.65rem}
.fine{font-size:.76rem}
.cookie{position:static;width:100%;padding:.95rem max(24px,calc((100vw - var(--max))/2));border-bottom:1px solid var(--ink);background:var(--light);color:var(--ink);box-shadow:none}
.cookie[hidden]{display:none}.cookie p{display:inline;margin-left:.6rem}.cookie-actions{display:inline-flex;flex-wrap:wrap;gap:.5rem;margin-left:.8rem}
.cookie button,.cookie-dialog button{min-height:42px;padding:.5rem .7rem;border:1px solid var(--green);background:var(--green);color:var(--light);font:inherit;cursor:pointer}.cookie button.alt,.cookie-dialog button.alt{background:var(--light);color:var(--green)}
.cookie-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:1rem;background:rgba(23,33,29,.78);color:var(--light)}.cookie-backdrop[hidden]{display:none}
.cookie-dialog{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:clamp(1.4rem,4vw,2.4rem);border:2px solid var(--ink);background:var(--light);color:var(--ink);box-shadow:12px 12px 0 var(--terracotta)}
.cookie-dialog h2{margin-top:0;font:600 2rem/1.1 var(--serif)}.cookie-fact{padding:1rem 0;border-top:1px solid var(--ink);background:var(--light);color:var(--ink)}.cookie-fact:last-of-type{border-bottom:1px solid var(--ink)}
@media(min-width:1041px){.site-head{position:sticky;top:0}}
@media(max-width:1040px){.foot-line{flex-wrap:wrap;white-space:normal}.facts{grid-template-columns:1fr}.call-panel strong{font-size:clamp(2.3rem,6vw,4rem)}}
@media(max-width:860px){
  .shell{width:min(var(--max),calc(100% - 30px))}.utility-inner{justify-content:space-between}.head-inner{min-height:74px}.menu{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:102px;padding:1rem 15px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--ink);background:var(--light);color:var(--ink)}.nav.open{display:flex}.mark{width:58px;height:48px}
  .hero{grid-template-columns:1fr}.hero-copy{min-height:575px;padding:4rem 24px;border-right:0;border-bottom:1px solid var(--ink)}.map-field{min-height:560px}.hero-photo{width:58%;height:34%}
  .split,.contact-grid{grid-template-columns:1fr;gap:2rem}.notes,.boundary-grid{grid-template-columns:1fr}.note{min-height:235px}.boundary-card,.address-card{border-right:0;border-bottom:1px solid var(--ink)}.address-card{transform:none}
  .phone-inner{align-items:flex-start;flex-direction:column}.fact-list{grid-template-columns:1fr}.hero h1,.page-hero h1{font-size:clamp(3rem,14vw,5.2rem);overflow-wrap:anywhere}
  .cookie p{display:block;margin:.25rem 0}.cookie-actions{display:flex;margin:.6rem 0 0}
}
@media(max-width:480px){
  body{font-size:16px}.actions{flex-direction:column}.btn{width:100%}.map-title{font-size:3rem}.hero-photo{right:8%;width:72%;height:32%}.coord.b{bottom:27%}
  .page-hero h1{font-size:clamp(2rem,10vw,3rem);overflow-wrap:normal}.reading h2{font-size:1.55rem}
  .footer-links{flex-wrap:wrap}.foot-line{align-items:flex-start;flex-direction:column}
  .reading table,.reading tbody,.reading tr,.reading td{display:block;width:100%}.reading thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reading tr{margin-bottom:1rem;border:1px solid var(--ink);background:var(--cream);color:var(--ink)}.reading td{border:0;border-bottom:1px solid var(--line)}.reading td:last-child{border-bottom:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:hover{transform:none}.route-line{opacity:1;transform:rotate(16deg) scale(1)}.route-section::before{transform:scaleY(1)}}
