/* davidtours.eu — design tokens and layout. No external fonts, no frameworks. */
:root{
  --bg:#f7f8fa; --surface:#ffffff; --surface-2:#eef1f5;
  --text:#14212e; --muted:#51606f; --line:#d9dee5;
  --brand:#0e2a47; --brand-2:#163b63; --accent:#c96a12; --accent-ink:#ffffff;
  --ok:#1f7a4d; --err:#b3261e;
  --radius:10px; --maxw:1120px; --gutter:16px;
  --fs-0:0.875rem; --fs-1:1rem; --fs-2:1.125rem; --fs-3:1.375rem; --fs-4:1.75rem; --fs-5:clamp(2rem,4.5vw,3rem);
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0c1420; --surface:#121d2b; --surface-2:#182536;
    --text:#e8edf3; --muted:#a3b0bf; --line:#263345;
    --brand:#dbe7f5; --brand-2:#b9cde6; --accent:#f0954a; --accent-ink:#1a1206;
    --ok:#4fc08d; --err:#ff8a80;
  }
}
:root[data-theme="dark"]{
  --bg:#0c1420; --surface:#121d2b; --surface-2:#182536;
  --text:#e8edf3; --muted:#a3b0bf; --line:#263345;
  --brand:#dbe7f5; --brand-2:#b9cde6; --accent:#f0954a; --accent-ink:#1a1206;
  --ok:#4fc08d; --err:#ff8a80;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-1)/1.6 var(--font);}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--brand-2);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent)}
h1,h2,h3,h4{color:var(--brand);line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:var(--fs-5);font-weight:700}
h2{font-size:var(--fs-4);font-weight:700}
h3{font-size:var(--fs-3);font-weight:650}
h4{font-size:var(--fs-2);font-weight:650}
p{margin:0 0 1em}
ul{padding-left:1.2em}
li{margin:.25em 0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:.5rem 1rem}
.skip:focus{left:8px;top:8px;z-index:100}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.logo{font-weight:800;letter-spacing:-.02em;color:var(--brand);text-decoration:none;font-size:1.125rem;white-space:nowrap}
.logo span{color:var(--accent)}
.menu{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;align-items:center}
.menu a{text-decoration:none;color:var(--text);font-size:var(--fs-0);font-weight:600;padding:.4rem 0;border-bottom:2px solid transparent}
.menu a:hover,.menu a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--text)}
.menu .cta{background:var(--accent);color:var(--accent-ink);padding:.55rem .95rem;border-radius:999px;border:0}
.menu .cta:hover{filter:brightness(1.08)}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;color:var(--text);font:inherit}
@media (max-width:820px){
  .nav-toggle{display:inline-flex;align-items:center;gap:.4rem}
  .menu{display:none;position:absolute;left:0;right:0;top:64px;background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:.5rem var(--gutter) 1rem;gap:0}
  .menu.open{display:flex}
  .menu a{display:block;padding:.75rem 0;border-bottom:1px solid var(--line)}
  .menu .cta{margin-top:.75rem;text-align:center;border-radius:8px}
}

/* sections */
section{padding:4rem 0}
@media (max-width:640px){section{padding:2.75rem 0}}
.eyebrow{color:var(--accent);font-weight:700;font-size:var(--fs-0);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem}
.lead{font-size:var(--fs-2);color:var(--muted);max-width:62ch}
.hero{padding:5rem 0 3.5rem}
.hero h1{max-width:20ch}
.hero .lead{max-width:60ch;font-size:clamp(1.05rem,1.6vw,1.3rem)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.btn{display:inline-block;padding:.8rem 1.25rem;border-radius:8px;font-weight:650;text-decoration:none;border:1px solid var(--line);color:var(--text);background:var(--surface)}
.btn:hover{border-color:var(--brand-2);color:var(--text)}
.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.btn-primary:hover{filter:brightness(1.08);color:var(--accent-ink)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:3rem}
.stat{background:var(--surface);padding:1.25rem 1rem}
.stat b{display:block;font-size:var(--fs-4);color:var(--brand);letter-spacing:-.02em}
.stat span{color:var(--muted);font-size:var(--fs-0)}
@media (max-width:720px){.stats{grid-template-columns:repeat(2,1fr)}}
.alt{background:var(--surface-2)}
.grid{display:grid;gap:1.25rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.card h3,.card h4{margin-top:0}
.card .num{color:var(--accent);font-weight:800;font-size:var(--fs-0);letter-spacing:.08em}
.card p:last-child{margin-bottom:0}
.card ul{margin:0}
.card.link{display:block;text-decoration:none;color:inherit}
.card.link:hover{border-color:var(--brand-2)}
.card.link .more{color:var(--accent);font-weight:650;font-size:var(--fs-0)}
.check{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr)}
@media (max-width:720px){.check{grid-template-columns:1fr}}
.check li{padding-left:1.8rem;position:relative}
.check li::before{content:"";position:absolute;left:0;top:.45em;width:1rem;height:1rem;border-radius:50%;background:var(--accent);
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M6.5 11.3 3.2 8l1.1-1.1 2.2 2.2 5.2-5.2 1.1 1.1z'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M6.5 11.3 3.2 8l1.1-1.1 2.2 2.2 5.2-5.2 1.1 1.1z'/%3E%3C/svg%3E") center/contain no-repeat}
.steps{counter-reset:s}
.steps .card{position:relative}
.steps .card::before{counter-increment:s;content:"0" counter(s);color:var(--accent);font-weight:800;letter-spacing:.08em;font-size:var(--fs-0);display:block;margin-bottom:.5rem}
.tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem;margin-right:.35rem}
.quote{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1.25rem;font-size:var(--fs-2);color:var(--text);margin:2rem 0}
.quote cite{display:block;font-style:normal;color:var(--muted);font-size:var(--fs-0);margin-top:.5rem}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:2rem}}
.split{display:grid;grid-template-columns:260px 1fr;gap:2.5rem}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:1rem}}
.split h2{position:sticky;top:84px}
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 2rem 1.5rem}
.timeline li::before{content:"";position:absolute;left:-7px;top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}
.timeline .when{color:var(--muted);font-size:var(--fs-0);font-weight:600}
.timeline h3{margin:.15rem 0 .25rem}
.timeline .org{color:var(--muted);margin-bottom:.5rem}
.case{border-top:1px solid var(--line);padding:2.5rem 0}
.case:first-of-type{border-top:0}
.case .meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.case .outcome{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:var(--radius);padding:1rem 1.25rem;margin-top:1rem}
.case .outcome b{color:var(--ok)}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:0}
dl.kv dt{color:var(--muted);font-weight:600}
dl.kv dd{margin:0}
.cta-band{background:var(--brand);color:#fff;padding:3.5rem 0}
.cta-band h2,.cta-band p{color:#fff}
.cta-band .btn{background:#fff;color:var(--brand);border-color:#fff}
.cta-band .btn-primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cta-band{background:#163b63}}
:root[data-theme="dark"] .cta-band{background:#163b63}

/* forms */
form{display:grid;gap:1rem}
.field{display:grid;gap:.35rem}
label{font-weight:650;font-size:var(--fs-0)}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.7rem .85rem;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
textarea{min-height:160px;resize:vertical}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form-note{color:var(--muted);font-size:var(--fs-0)}
.status{padding:.9rem 1rem;border-radius:8px;border:1px solid var(--line);display:none}
.status.ok{display:block;border-color:var(--ok);color:var(--ok)}
.status.err{display:block;border-color:var(--err);color:var(--err)}
button[type=submit]{cursor:pointer}
button[disabled]{opacity:.6;cursor:wait}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:2.5rem 0;color:var(--muted);font-size:var(--fs-0)}
.site-footer .cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}
.site-footer a{color:inherit}
.site-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:1rem}
.prose{max-width:72ch}
.prose h2{margin-top:2.5rem}
.prose h3{margin-top:2rem}
small{color:var(--muted)}

.email-img img{display:inline-block;height:1.5em;width:auto;vertical-align:middle}
