:root{--ink:#153b3b;--muted:#536765;--paper:#faf9f5;--line:#d5ded6;--green:#24584a;--lime:#dce7bd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,summary,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ba641b;outline-offset:4px}.draft{text-align:center;font-size:11px;letter-spacing:1px;background:#e6ecdf;padding:6px}header{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:23px 5%;gap:30px}.brand{text-decoration:none;font-weight:bold;font-size:29px;letter-spacing:-1px;line-height:1}.mark{font-size:36px;margin-right:7px}.brand-sub{display:block;font-size:8px;letter-spacing:2px;margin:9px 0 0 46px}nav{display:flex;gap:28px;font-size:13px}nav a{text-decoration:none}.nav-cta{border-bottom:1px solid;font-size:13px;text-decoration:none;padding:5px}.hero{margin:0 24px;position:relative;min-height:570px;color:white;overflow:hidden;background:#244b4c}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,33,35,.83),rgba(5,33,35,.14))}.hero-content{position:relative;z-index:1;max-width:1280px;margin:auto;padding:86px 5% 85px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:bold;margin:0 0 20px}h1,h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-2px;line-height:1.12;margin:0 0 24px}h1{font-size:clamp(45px,5.2vw,76px);max-width:800px}h1 em{font-weight:400;color:#e1ebc6}h2{font-size:clamp(34px,3.4vw,48px)}h3{font-size:21px;line-height:1.3;margin:0 0 18px}p{margin:0 0 20px}.hero p:not(.eyebrow){font-size:17px;max-width:600px;line-height:1.8}.button{background:var(--green);color:white;border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:50px;padding:15px 24px;text-decoration:none;font-size:14px;font-weight:bold;cursor:pointer}.button:hover{background:#356b59}.button.light{background:var(--lime);color:var(--ink);margin-top:9px}.photo-label{position:absolute;right:28px;bottom:23px;z-index:1;font-size:10px;letter-spacing:2px}.principles{display:flex;justify-content:space-between;gap:20px;padding:26px 7%;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.5px}.section{padding:85px max(6%,calc((100vw - 1200px)/2))}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.section-head h2{margin-bottom:0}.section-head>p{font-size:14px;color:var(--muted);max-width:345px;margin:0}.finder{display:grid;grid-template-columns:minmax(0,1fr) 280px;border:1px solid var(--line);background:white}.finder form{padding:32px}.form-top{display:flex;gap:14px;align-items:center;margin-bottom:23px}.form-top h3{margin:0}.step{border:1px solid var(--line);border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font-size:12px}.experience{padding:0;border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 25px}.experience label{position:relative;cursor:pointer}.experience input{position:absolute;left:14px;top:16px;accent-color:var(--green)}.experience span{padding:13px 12px 15px 35px;display:block;border:1px solid var(--line);font-size:24px}.experience b{display:block;font-size:14px}.experience small{font-size:11px;color:var(--muted);display:block}.experience input:checked+span{background:#eef3e6;border-color:var(--green)}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:25px}.fields label{font-size:12px;font-weight:bold}select,input[type=number]{display:block;width:100%;border:1px solid #c5cec7;background:#fff;border-radius:0;padding:11px;margin-top:7px;color:var(--ink);font-size:14px}aside{background:#e6eddf;padding:35px 28px}aside h3{font:30px/1.15 Georgia,serif;letter-spacing:-.6px}aside p{font-size:14px}aside a{font-size:12px;font-weight:bold}.fine{font-size:12px;color:var(--muted);margin:14px 0 0}.tint{background:#eef1e9}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.route-card{background:var(--paper);border:1px solid #d4dcd3;padding:29px 25px;display:flex;flex-direction:column}.route-card .number{font:italic 31px Georgia,serif;color:#6b8173;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:23px}.route-card h3{font:28px/1.15 Georgia,serif}.route-card p{font-size:14px}.route-card ul{font-size:13px;padding-left:18px;margin:0 0 20px}.route-card>a{margin-top:auto;font-size:13px;font-weight:bold}.pill{display:inline-block;font-size:10px;letter-spacing:1px;margin-bottom:14px;text-transform:uppercase}.note{font-size:12px;border-left:2px solid #768b64;padding:14px 20px;margin-top:25px;background:#e4eadc}.table-scroll{overflow-x:auto;margin-top:38px}table{width:100%;border-collapse:collapse;font-size:13px;min-width:610px}caption{text-align:left;font-size:20px;font-weight:bold;margin-bottom:16px}td,th{text-align:left;padding:15px;border-bottom:1px solid var(--line);vertical-align:top}thead{background:#dfe7d8}tbody th{width:23%}.budget{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px}.budget>div>p{font-size:14px}.budget form{padding:30px;background:#eef1e9}output{display:block;padding-top:18px;border-top:1px solid #b9c8b8;font:24px/1.4 Georgia,serif}output small{font:13px/1.6 Arial,sans-serif;display:block;margin-top:10px}.tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:45px}.tips article{border-top:1px solid #b6c4b6;padding-top:18px}.tips span{font-size:10px;letter-spacing:2px}.tips h3{margin:20px 0 12px}.tips p{font-size:14px}.faq{margin-top:30px;max-width:950px}details{border-bottom:1px solid #cbd6c9;padding:20px 0}summary{cursor:pointer;font-weight:bold;font-size:15px}details p{margin:17px 0 0;font-size:14px}.sources{max-width:none}.sources p{font-size:14px}#source-links{display:flex;flex-wrap:wrap;gap:15px;font-size:13px;margin-bottom:30px}footer{background:#173e3c;color:#e4ebdf;padding:50px 6%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 50px}footer p,footer small{font-size:12px}footer details{border-color:#45645b}footer summary{font-size:12px}footer small{grid-column:1/-1;margin-top:20px}#results{margin-top:28px}#results:empty{display:none}#results h3{font:29px Georgia,serif}.result{padding:20px 25px;border:1px solid var(--line);margin-top:12px;background:white}.result p{font-size:14px;margin:9px 0}.result a{font-size:13px;font-weight:bold}.empty{padding:25px;background:#f1eadc}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:20px;z-index:100;background:white;padding:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:900px){nav{display:none}.finder{grid-template-columns:1fr}.finder aside{display:none}.section{padding:60px 5%}.section-head{display:block}.section-head>p{margin-top:20px}.budget{gap:30px}.route-grid{gap:12px}.route-card{padding:20px 15px}.hero{margin:0 12px}.hero-content{padding:65px 6%}.hero{min-height:520px}}@media(max-width:620px){header{padding:20px 5%;gap:10px}.brand{font-size:25px}.nav-cta{font-size:11px}.brand-sub{font-size:7px}.draft{font-size:9px;letter-spacing:.3px}.hero{min-height:535px}.hero-content{padding-top:70px}.hero p:not(.eyebrow){font-size:15px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.hero h1{font-size:47px}.photo-label{font-size:8px}.principles{font-size:10px;gap:12px;padding:20px 5%}.finder form{padding:22px 17px}.experience{gap:7px}.experience span{padding:29px 8px 12px;font-size:22px}.experience input{left:9px;top:9px}.experience b{font-size:12px}.experience small{font-size:10px}.fields{gap:12px}.route-grid,.budget,.tips{grid-template-columns:1fr}.route-card{padding:26px}.route-card .number{padding-bottom:10px;margin-bottom:14px}.tips{gap:20px}.section{padding:50px 5%}.budget form{padding:22px 17px}h2{letter-spacing:-1px}.hero-content{padding-left:6%;padding-right:5%}footer{grid-template-columns:1fr}.button{gap:30px}.section-head{margin-bottom:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.legal{max-width:none;margin:0;padding-inline:max(6%,calc((100% - 960px)/2))}.legal h1{font-size:48px}.legal h2{font:26px/1.3 Georgia,serif;letter-spacing:0;margin-top:40px}.legal h3{font-size:18px;margin-top:25px}.legal p{font-size:15px;overflow-wrap:anywhere}dialog{width:min(600px,92vw);max-height:88vh;overflow:auto;border:1px solid var(--line);padding:30px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:rgb(10 32 31 / 65%)}dialog h2{font-size:32px}dialog p{font-size:14px}dialog .button{font-size:13px;gap:5px;width:100%;line-height:1.5}#affiliate-direct{display:block;margin:20px 0;font-size:14px}#affiliate-cancel{border:0;background:transparent;text-decoration:underline;color:var(--muted);cursor:pointer}footer>a:not(.brand){font-size:14px}

/* Layout fixes v4: keep the reading width independent of viewport padding. */
.sources>p,.sources>h2{max-width:850px}
.sources .eyebrow{max-width:none}
.sources h2{font-size:clamp(30px,3.2vw,44px);letter-spacing:-1px}
.sources>p:not(.eyebrow){font-size:15px;line-height:1.8}
#source-links{gap:12px 24px}
#source-links a{max-width:100%;overflow-wrap:anywhere}
.finder form,.route-card,.budget>*{min-width:0}
.experience{min-inline-size:0}
.step{flex-shrink:0}
.legal h1,.legal h2{overflow-wrap:break-word}
@media(max-width:760px){.route-grid,.budget{grid-template-columns:1fr}.tips{grid-template-columns:1fr;gap:22px}.budget{gap:28px}.legal{padding-inline:6%}}
@media(max-width:480px){
 .fields{grid-template-columns:1fr;gap:16px}
 select,input[type=number]{font-size:16px;padding:12px}
 .experience{grid-template-columns:1fr;gap:9px}
 .experience span{padding:12px 15px 12px 42px;font-size:20px;line-height:1.3}
 .experience b{font-size:14px}
 .experience small{font-size:12px;margin-top:4px}
 .experience input{left:15px;top:17px}
 .hero h1{font-size:clamp(36px,10.5vw,47px);letter-spacing:-1.3px}
 .brand-sub{margin-left:0;font-size:7px;letter-spacing:1.4px}
 .nav-cta{max-width:115px;text-align:right;line-height:1.5}
 .sources h2{font-size:32px;line-height:1.16}
 #source-links{display:grid;gap:14px}
 .result{padding:20px 17px}
 dialog{padding:23px 20px}
}

/* v6: editorial photo, compact data-backed finder, static route content. */
.hero>picture{position:absolute;inset:0}.hero>picture img{width:100%;height:100%;object-fit:cover;object-position:62% 52%}
.hero:after{background:linear-gradient(90deg,rgba(5,33,35,.88),rgba(5,33,35,.20) 80%)}
.experience{grid-template-columns:repeat(2,minmax(0,1fr))}
.route-meta{font-weight:bold}.route-tradeoff{color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.form-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.text-button{border:0;background:transparent;color:inherit;text-decoration:underline;text-underline-offset:4px;font:inherit;font-size:13px;cursor:pointer;padding:4px 0}
select option:disabled{color:#888}.author{border-top:1px solid var(--line)}.author>div{max-width:780px}.author p{font-size:16px}
#source-links{padding-top:20px}footer .text-button{justify-self:start}
@media(max-width:620px){.hero{min-height:660px}.hero-content{padding-bottom:180px}.hero>picture img{object-position:53% 53%}.hero:after{background:linear-gradient(180deg,rgba(5,33,35,.80),rgba(5,33,35,.63) 55%,rgba(5,33,35,.06))}.photo-label{right:20px;bottom:20px}.experience{grid-template-columns:1fr}}

/* v8: compact author and sources, one shared section. */
.about-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;padding-top:42px;padding-bottom:42px;border-top:1px solid var(--line)}
.about-meta .author{border:0}.about-meta>div{min-width:0}
.about-meta h2{font-size:30px;line-height:1.2;letter-spacing:-.7px;margin-bottom:14px}
.about-meta .eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:12px}
.about-meta .author p:not(.eyebrow),.about-meta .sources>p:not(.eyebrow){font-size:14px;line-height:1.7;margin-bottom:12px}
.about-meta a{font-size:13px}.about-meta details{padding:10px 0}
.about-meta summary{font-size:13px}.about-meta .sources>.fine{font-size:12px!important;line-height:1.6!important;margin:12px 0 0!important}
@media(max-width:760px){.about-meta{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:32px}.about-meta .sources{border-top:1px solid var(--line);padding-top:24px}.about-meta h2{font-size:27px}}
