:root{color-scheme:light;--paper:#f8f5ed;--ink:#202b24;--muted:#50594d;--green:#223b31;--line:#dcd8cb;--accent:#895033;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans)}
h1,h2,h3,p,figure{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.02;text-wrap:balance}
h1{font-size:clamp(3rem,5.65vw,6rem)}
h2{font-size:clamp(2.45rem,4vw,4.25rem)}
h3{font-size:1.15rem;line-height:1.3}
p{color:var(--muted)}
a{color:inherit;text-underline-offset:.22em}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid #a85428;outline-offset:4px}
.skip{position:absolute;z-index:2;top:1rem;left:1rem;padding:.7rem;background:white;transform:translateY(-200%)}
.skip:focus{transform:none}
.shell{width:min(1320px,calc(100% - 112px));margin-inline:auto}
.header{border-bottom:1px solid var(--line)}
.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:78px}
.brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;font:1.55rem/1.15 var(--serif);letter-spacing:-.03em}
.header nav{display:flex;gap:clamp(.6rem,3vw,2.25rem)}
.header nav a,.language{font-weight:650;font-size:.875rem;padding:.55rem .25rem;text-decoration:none}
.header nav a:hover,.card h3 a:hover{text-decoration:underline}
.language{border:1px solid var(--line);padding:.45rem .85rem}
.hero{display:grid;grid-template-columns:.87fr 1.13fr;align-items:center;gap:clamp(2rem,4vw,5.5rem);padding-block:3.3rem 3.2rem}
.hero-copy>p:not(.eyebrow){max-width:36ch;margin-top:1.45rem;font-size:1.12rem}
.eyebrow{font-size:.74rem;letter-spacing:.16em;font-weight:750;color:var(--accent);margin-bottom:1rem}
.dot{display:inline-block;width:.52rem;height:.52rem;background:var(--accent);border-radius:50%;margin-right:.65rem}
h1 em{color:var(--green);font-weight:400}
.hero-figure{position:relative}
.hero-figure img{width:100%;height:clamp(365px,39vw,590px);object-fit:cover;object-position:52% 50%;border-radius:48% 48% 0 0 / 11% 11% 0 0}
figcaption{font-size:.75rem;color:var(--muted);margin-top:.35rem}
.actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:1.7rem}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;min-height:47px;padding:.67rem .95rem;border:1px solid var(--green);background:var(--green);color:white;text-decoration:none;font:650 .88rem/1.3 var(--sans);cursor:pointer}
.button:hover{background:#355747}
.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}
.button.secondary:hover{background:#ebe5d7}
.strip{background:#ece8db;border-block:1px solid #e1ddce}
.strip-inner{min-height:59px;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.81rem;font-weight:650}
.section{padding-block:4.5rem}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.9rem}
.section-head>p{max-width:37ch}
.service-grid,.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.guide-grid{margin-top:1.7rem}
.card{background:#fffcf5;border:1px solid var(--line)}
.card-image{display:block;overflow:hidden}
.card img{width:100%;aspect-ratio:1.54;object-fit:cover}
.card-body{padding:1.15rem}
.card :is(h2,h3) a{display:flex;justify-content:space-between;gap:.65rem;text-decoration:none}
.card h2{font:700 1.15rem/1.3 var(--sans);letter-spacing:normal}
.card p{margin-top:.55rem;font-size:.94rem}
.small,.form-note{font-size:.83rem;margin-top:.75rem}
.process{background:#e9eadd;border-block:1px solid #dddcca}
.steps{margin:2rem 0 0;padding-left:1.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem}
.steps li{padding-left:.3rem}
.steps li::marker{font-weight:700;color:var(--accent)}
.steps p,.coverage p{margin-top:.45rem}
.coverage{border-top:1px solid #c6caba;margin-top:2rem;padding-top:1.35rem}
.contact{background:var(--green);color:white;padding-block:4.5rem}
.contact p{color:#e1e9db}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.contact h2+p{margin-top:1rem}
form{display:grid;gap:.5rem;align-content:start}
label{font-weight:650;margin-top:.35rem}
input,select,textarea{width:100%;min-height:44px;border:1px solid #87988a;border-radius:0;background:#fffdf7;color:var(--ink);padding:.65rem;font:inherit}
textarea{resize:vertical}
.contact .button{justify-self:start;margin-top:.5rem;color:var(--ink);background:#f1e7d1;border-color:#f1e7d1}
.contact .button:hover{background:#fff8e9}
.chat-action{margin-top:1.35rem}
.contact .button:disabled{cursor:default;background:#d5ddcd;border-color:#d5ddcd;color:#29382d}
.contact :focus-visible{outline-color:#ffbf86}
.footer-inner a:last-child{font-size:.88rem}
.detail{padding-block:2.5rem 4rem}
.crumb{display:flex;gap:.6rem;align-items:center;font-size:.88rem;margin-bottom:2rem}
.crumb a{padding-block:.3rem}
.detail-head,.reading{max-width:760px;margin-inline:auto}
.detail-head p:last-child{margin-top:1rem;font-size:1.15rem}
.detail-figure{margin:2rem auto;max-width:920px}
.detail-figure img{width:100%;height:clamp(225px,44vw,500px);object-fit:cover}
.reading h2{font-size:clamp(2rem,3vw,3rem);margin:1.55rem 0 .6rem}
.related{border-top:1px solid var(--line);margin-top:3rem;padding-top:2rem}
.blog-head{max-width:900px}
.blog-head p:last-child{margin-top:1rem}
.categories,.pagination{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.7rem 0}
.categories a,.pagination a{padding:.5rem .9rem;border:1px solid var(--line);text-decoration:none}
.pagination a[aria-current]{background:var(--green);color:white}
.blog-search{max-width:650px;margin-block:1.7rem}
.blog-search label{display:block}
#search-results{max-height:400px;overflow:auto}
#search-results a{display:block;padding:.4rem}
.toc,.article-cta{padding:1.3rem;background:#ece8db;margin-block:1.8rem}
.reading .toc h2,.reading .article-cta h2{font-size:1.8rem;margin-top:0}
.toc a{display:inline-block;padding-block:.25rem}
.reading section p+p{margin-top:1rem}
.reading section{scroll-margin-top:1.5rem}
@media(max-width:1050px){.shell{width:calc(100% - 64px)}.hero{gap:2rem}}
@media(max-width:760px){
 .shell{width:calc(100% - 36px)}
 .hero,.contact-grid{grid-template-columns:1fr}
 .hero{padding-block:2.3rem 1.8rem}
 .hero-figure img{height:clamp(230px,63vw,420px)}
 .section,.contact{padding-block:3rem}
 .service-grid,.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .section-head{display:block}
 .section-head>p{margin-top:.65rem}
 .contact-grid,.steps{gap:1.25rem}
}
@media(max-width:510px){
 .header-inner{display:grid;grid-template-columns:1fr auto;padding-top:.65rem;gap:.35rem}
 .header nav{grid-column:1/-1;grid-row:2;justify-content:space-between;border-top:1px solid var(--line)}
 .header .language{grid-column:2;grid-row:1}
 .strip-inner{flex-wrap:wrap;gap:.25rem 1rem;padding-block:.55rem}
 .service-grid,.guide-grid,.steps{grid-template-columns:1fr}
 .footer-inner{flex-wrap:wrap;gap:.4rem 1rem;padding-block:1rem}
}

.area-hero{padding-bottom:2.8rem}
.area-hero .detail-head{max-width:1000px;margin-inline:0}
.area-hero .detail-head p{max-width:58ch}
.area-stats{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 max-width:900px;
 margin:2rem 0 0;
 background:#ece8db;
 border:1px solid var(--line);
}
.area-stats div{
 display:flex;
 flex-direction:column-reverse;
 justify-content:center;
 padding:clamp(.8rem,2.3vw,1.6rem);
}
.area-stats div:first-child{background:var(--green);color:white}
.area-stats div+div{border-left:1px solid var(--line)}
.area-stats dt{font-size:clamp(.74rem,1.2vw,.92rem);font-weight:650;line-height:1.4}
.area-stats dd{
 margin:0 0 .3rem;
 font:400 clamp(2.15rem,4.5vw,4.6rem)/1 var(--serif);
 letter-spacing:-.035em;
}
.area-overview{
 display:grid;
 grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
 align-items:center;
 gap:clamp(1.5rem,4vw,4.5rem);
 border-block:1px solid var(--line);
 padding-block:clamp(1.5rem,4vw,3.5rem);
}
.area-overview h2+p,.area-directory h2+p,.area-cta h2+p{margin-top:.8rem}
.area-overview p,.area-directory>p,.area-cta p{max-width:64ch}
.area-region-list{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 list-style:none;
 padding:0;
 margin:1.25rem 0 0;
 column-gap:1rem;
}
.area-region-list li{
 display:flex;
 justify-content:space-between;
 align-items:baseline;
 gap:.5rem;
 padding:.42rem 0;
 border-bottom:1px solid var(--line);
}
.area-region-list strong,.area-province-count,.area-distance{font-variant-numeric:tabular-nums}
.area-map img{width:100%;border:1px solid var(--line);background:#ece8db}
.area-directory{scroll-margin-top:1.25rem;padding-bottom:2rem}
.area-filter{margin:1.65rem 0 .65rem;max-width:660px}
.area-filter label{display:block;margin-bottom:.4rem}
.area-filter-controls{display:flex;gap:.6rem}
.area-filter-controls input{min-width:0}
.area-clear{flex-shrink:0}
.area-status{min-height:1.65em;margin-top:.35rem;font-size:.9rem}
.area-provinces{display:grid;gap:.8rem;margin-top:1.25rem}
.area-province,.area-method{border:1px solid var(--line);background:#fffcf5}
.area-province summary,.area-method summary{
 padding:.85rem clamp(.8rem,2vw,1.4rem);
 cursor:pointer;
 min-height:46px;
}
.area-province summary::marker,.area-method summary::marker{color:var(--accent)}
.area-province summary h2{
 display:inline;
 font:650 clamp(1rem,2vw,1.22rem)/1.45 var(--sans);
 letter-spacing:normal;
}
.area-province-code,.area-province-region{color:var(--muted);font-size:.83em;font-weight:500}
.area-province-region{margin-inline:.35rem}
.area-province-count{
 display:inline-block;
 min-width:2em;
 padding:.05rem .4rem;
 background:#e9eadd;
 color:var(--green);
 text-align:center;
 font-size:.82em;
}
.area-municipalities{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 list-style:none;
 gap:0 1.2rem;
 margin:0;
 padding:0 clamp(.8rem,2vw,1.4rem) .9rem;
}
.area-municipality{
 display:flex;
 flex-wrap:wrap;
 align-items:baseline;
 gap:.05rem .45rem;
 padding:.45rem 0;
 border-top:1px solid var(--line);
 font-size:.9rem;
 line-height:1.45;
}
.area-municipality-name{flex:1 1 6rem;overflow-wrap:anywhere}
.area-distance{white-space:nowrap;color:var(--muted)}
.area-badge{
 white-space:nowrap;
 padding:.07rem .34rem;
 background:#f0e0d2;
 color:#643a24;
 font-weight:650;
 font-size:.74rem;
}
.area-directory [hidden]{display:none!important}
.area-method{margin-top:1.5rem}
.area-method summary{font-weight:650}
.area-method p,.area-method ul{margin:.4rem clamp(.8rem,2vw,1.4rem) .9rem;max-width:70ch}
.area-method ul{padding-left:1.2rem}
.area-cta{border-top:1px solid var(--line)}

@media(max-width:900px){
 .area-municipalities{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;padding-top:.65rem;gap:.35rem}
 .header nav{grid-column:1/-1;grid-row:2;justify-content:space-between;flex-wrap:wrap;gap:.1rem .45rem;border-top:1px solid var(--line)}
 .header .language{grid-column:2;grid-row:1}
 .area-overview{grid-template-columns:minmax(0,1fr)}
 .area-map{max-width:620px}
}
@media(max-width:420px){
 .area-municipalities{grid-template-columns:minmax(0,1fr)}
 .area-stats div{padding:.65rem .45rem}
 .area-stats dd{font-size:1.95rem}
}
