:root{
  --ink:#1b2830; --muted:#4d5f66; --paper:#f3f6f6; --white:#ffffff;
  --lake:#1f5a60; --lake-deep:#133d42; --lake-soft:#d6e5e4; --moss:#6f8d62; --line:#c3d2d0;
  --serif:Charter,"Bitstream Charter","Sitka Text",Cambria,"Iowan Old Style",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:6px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 var(--sans)}
img,svg{max-width:100%}
a{color:var(--lake);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--lake-deep);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--moss);outline-offset:2px;border-radius:2px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2rem,4.2vw,3.05rem);margin:.2em 0 .4em;letter-spacing:-.01em}
h2{font-size:clamp(1.35rem,2.2vw,1.6rem);margin:2rem 0 .6rem}
h3{font-size:1.15rem;margin:0 0 .3rem}
p{margin:0 0 1rem}
.wrap{width:min(1160px,100% - 2.5rem);margin-inline:auto}
.narrow{max-width:46rem}
.wrap.narrow{max-width:none}.wrap.narrow>*{max-width:46rem}
.lead{font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.6;color:var(--muted);max-width:40rem}
.small{font-size:.875rem;color:var(--muted)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:20}

/* header */
.site-head{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.head-row{display:flex;align-items:center;gap:1rem;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.2rem;font-weight:600}
.brand .tld{color:var(--lake)}
.mark{width:30px;height:30px}.mark line{stroke:var(--moss);stroke-width:1.6}.mark circle{fill:var(--lake)}
.nav{list-style:none;margin:0;padding:0;display:flex;gap:1.3rem}
.nav a{color:var(--ink);text-decoration:none;font-size:.95rem}
.nav a:hover{color:var(--lake);text-decoration:underline}
.nav-wide{margin-left:auto}
.nav-toggle{display:none;margin-left:auto}
details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
.langs{position:relative}
.langs summary,.nav-toggle summary{padding:.35rem .6rem;border:1px solid var(--line);border-radius:var(--r);font-size:.85rem}
.langs ul{position:absolute;right:0;top:120%;background:#fff;border:1px solid var(--line);border-radius:var(--r);list-style:none;margin:0;padding:.4rem 0;min-width:10rem;box-shadow:0 8px 24px rgba(19,61,66,.12)}
.langs li a{display:block;padding:.4rem 1rem;color:var(--ink);text-decoration:none}
.langs li a[aria-current]{font-weight:600;color:var(--lake)}
@media (max-width:980px){
  .nav-wide{display:none}.nav-toggle{display:block}
  .nav-toggle[open] nav{position:absolute;left:0;right:0;top:64px;background:#fff;border-bottom:1px solid var(--line);padding:1rem 1.25rem}
  .nav-toggle .nav{flex-direction:column;gap:.8rem}
}
@media (max-width:420px){.head-row .btn-small{display:none}}

/* buttons */
.btn{display:inline-block;background:var(--lake);color:#fff;border:1px solid var(--lake);padding:.75rem 1.3rem;border-radius:var(--r);font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--lake-deep);color:#fff;text-decoration:none}
.btn-ghost{background:transparent;color:var(--lake)}
.btn-ghost:hover{background:var(--lake-soft);color:var(--lake-deep)}
.btn-light{background:#fff;color:var(--lake-deep);border-color:#fff}
.btn-light:hover{background:var(--lake-soft);color:var(--lake-deep)}
.btn-small{padding:.45rem .9rem;font-size:.9rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.4rem 0}

/* breadcrumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;padding:0;margin:1rem auto 0;font-size:.85rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.3rem;color:var(--line)}
.crumbs a{color:var(--muted)}

/* map */
.map .ch{fill:#e4ecea;stroke:#b9cbc8;stroke-width:1.2;stroke-linejoin:round}
.map .e{stroke:#a9bfbc;stroke-width:1}
.map .e.on{stroke:var(--moss);stroke-width:2}
.map .n{fill:var(--lake);transition:r .15s}
.map a:hover .n,.map a:focus .n{fill:var(--moss)}
.map .n.on{fill:#fff;stroke:var(--lake);stroke-width:3}
.map .lbl{font-family:var(--serif);font-weight:600;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:5px}

/* home */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:3rem;align-items:center;padding:3.5rem 0 3rem}
.hero h1{font-size:clamp(2.2rem,4.8vw,3.6rem)}
.hero-map{margin:0}
.hero-map figcaption{font-size:.9rem;color:var(--muted);margin-top:.5rem;max-width:34rem}
@media (prefers-reduced-motion:no-preference){
  .hero-map .e{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.4s ease-out .3s forwards}
  .hero-map .n{opacity:0;animation:pop .6s ease-out .1s forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes pop{to{opacity:1}}
}
@media (max-width:860px){.hero{grid-template-columns:1fr;gap:1.5rem;padding-top:2rem}}
.audiences{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-block:1rem 3rem;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.aud{padding:2.2rem 2.4rem}
.aud h2{margin-top:0}
.aud-ind{background:var(--white)}
.aud-corp{background:var(--lake-deep);color:#e6efee}
.aud-corp h2{color:#fff}.aud-corp .links a{color:#cfe3e1}.aud-corp .links a:hover{color:#fff}
.aud .links{margin:1rem 0 1.5rem}
@media (max-width:760px){.audiences{grid-template-columns:1fr}.aud{padding:1.6rem}}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding:0;margin:1rem 0 0}
.steps li{counter-increment:s;border-top:2px solid var(--lake);padding-top:.9rem}
.steps li::before{content:counter(s);font:600 1.8rem/1 var(--serif);color:var(--moss);display:block;margin-bottom:.4rem}
.steps p{color:var(--muted);font-size:.95rem}
@media (max-width:760px){.steps{grid-template-columns:1fr 1fr}}
.steps-sec,.regions{margin-bottom:3rem}
.cantons-grid{list-style:none;padding:0;columns:4 12rem;column-gap:2rem}
.cantons-grid li{padding:.2rem 0;break-inside:avoid}

/* content pages */
.page{padding:1.5rem 0 4rem}
.prose{max-width:42rem}
.prose p,.main-col>p{line-height:1.7}
.links{list-style:none;padding:0;margin:.5rem 0 1rem}
.links li{padding:.25rem 0}
.links.cols{columns:2 16rem;column-gap:2rem}
.links.cols li{break-inside:avoid}
.links .km{color:var(--muted);font-size:.85rem;margin-left:.3rem}
.inline{list-style:none;padding:0;margin:.2rem 0 0;display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.95rem}
.ticks{padding-left:0;list-style:none}
.ticks li{padding:.35rem 0 .35rem 1.7rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.8rem;width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--moss)}
.split{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:3.5rem;align-items:start}
.side{position:sticky;top:84px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem}
.side h2{font-size:1.1rem;margin-top:1.2rem}
.map-fig{margin:0}
.facts{margin:1rem 0 0;font-size:.95rem}
.facts dt{color:var(--muted);font-size:.85rem;margin-top:.6rem}.facts dd{margin:0}
@media (max-width:900px){.split{grid-template-columns:1fr}.side{position:static}}
.xlink{margin:1.5rem 0;padding:1rem 1.2rem;background:var(--lake-soft);border-radius:var(--r)}
.canton-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.2rem 2.5rem;margin-top:2rem}
.canton-list h2{font-size:1.2rem;margin:0}
.canton-list .code{font:500 .8rem var(--sans);color:var(--muted)}
.canton-list>li{border-top:1px solid var(--line);padding-top:.8rem}
.topic-list{list-style:none;padding:0}
.topic-list li{border-top:1px solid var(--line);padding:1rem 0}
.topic-list h2{margin:0 0 .3rem;font-size:1.25rem}
.topic-list p{color:var(--muted);margin:0}
.faq details{border-top:1px solid var(--line);padding:.9rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-weight:600;padding-right:2rem;position:relative}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:-.1rem;font-size:1.3rem;color:var(--lake)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:.6rem 0 0;color:var(--muted)}
.prices{list-style:none;padding:0;margin:.5rem 0 1.5rem}
.price{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid var(--line)}
.price p{margin:0;color:var(--muted);font-size:.95rem}
.price .amt{font:600 1.2rem var(--serif);color:var(--ink);white-space:nowrap}
@media (max-width:560px){.price{grid-template-columns:1fr auto}.price .btn{grid-column:1/-1;justify-self:start}}

/* forms */
.form{display:grid;gap:1rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;margin:1.5rem 0}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:.65rem .75rem;border:1px solid #a9bcba;border-radius:var(--r);background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--lake);outline-offset:0;border-color:var(--lake)}
.form fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.form legend{font-weight:600;font-size:.95rem;margin-bottom:.35rem;width:100%}
.form .radio,.form .check{display:flex;gap:.5rem;align-items:flex-start;font-weight:400}
.form .radio input,.form .check input{width:auto;margin-top:.3rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:600px){.two{grid-template-columns:1fr}}
.total{font-size:1.1rem;margin:0}
.hp{position:absolute;left:-5000px}
.notice{padding:1rem 1.2rem;border-radius:var(--r)}
.notice.ok{background:#e2efe0;border:1px solid var(--moss)}
.notice.err{background:#f7e3e1;border:1px solid #b5524a}
.mail{font:600 1.2rem var(--serif)}

/* footer */
.site-foot{background:var(--white);border-top:1px solid var(--line);padding:3rem 0 2rem;margin-top:2rem;font-size:.92rem}
.foot-top{display:grid;gap:.4rem;max-width:36rem;margin-bottom:2rem}
.foot-top p{margin:0;color:var(--muted)}
.foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.foot-cols h2{font-size:1rem;margin:0 0 .6rem}
.foot-cols ul{list-style:none;padding:0;margin:0}
.foot-cols li{padding:.15rem 0}
.foot-cols a{color:var(--muted);text-decoration:none}
.foot-cols a:hover{color:var(--lake);text-decoration:underline}
@media (max-width:800px){.foot-cols{grid-template-columns:1fr 1fr}}
.disclaimer{margin-top:2rem;color:var(--muted);font-size:.85rem}
.legal-row{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1.5rem;color:var(--muted);font-size:.85rem}
.links .sub{font-size:.9rem;color:var(--muted)}
.links li:has(.sub){padding:.45rem 0}
