/* =========================================================
   CABALLORIA-IMMO — Design System
   Premium country-property site for animal owners (Tierhalter)
   4 switchable palettes via [data-palette] on <html>
   ========================================================= */

/* ---------- Palettes ---------- */
:root,
:root[data-palette="bosque"] {            /* 1 · Deep Forest & Brass (default) */
  --bg:        #F3F0E8;
  --surface:   #FBFAF6;
  --ink:       #1E2A22;
  --muted:     #5C685E;
  --line:      #E2DCCE;
  --line-2:    #D4CCB8;
  --primary:   #2F4A38;
  --primary-2: #243A2C;
  --on-primary:#F3F0E8;
  --accent:    #E0631F;
  --accent-2:  #BC4E15;
  --on-accent: #FBF7F2;
  --hero-1:    rgba(20,30,23,.62);
  --hero-2:    rgba(20,30,23,.20);
  --shadow:    18px 18px 50px -28px rgba(30,42,34,.45);
}
:root[data-palette="terra"] {             /* 2 · Terracotta & Olive */
  --bg:        #F7F1E7;
  --surface:   #FFFCF6;
  --ink:       #2B241C;
  --muted:     #6B6052;
  --line:      #ECE2D1;
  --line-2:    #DECBB2;
  --primary:   #B0492A;
  --primary-2: #973A1F;
  --on-primary:#FBF3E9;
  --accent:    #6F7544;
  --accent-2:  #595E35;
  --on-accent: #FBF3E9;
  --hero-1:    rgba(46,28,18,.60);
  --hero-2:    rgba(46,28,18,.18);
  --shadow:    18px 18px 50px -28px rgba(80,40,20,.40);
}
:root[data-palette="marino"] {            /* 3 · Navy & Gold */
  --bg:        #F4F3EE;
  --surface:   #FFFFFF;
  --ink:       #18222F;
  --muted:     #56627240;
  --muted:     #54616F;
  --line:      #E2E1D9;
  --line-2:    #CFD2CB;
  --primary:   #1F3A5C;
  --primary-2: #162C47;
  --on-primary:#F2F4F2;
  --accent:    #BD9A48;
  --accent-2:  #9C7E34;
  --on-accent: #16223A;
  --hero-1:    rgba(15,25,40,.62);
  --hero-2:    rgba(15,25,40,.18);
  --shadow:    18px 18px 50px -30px rgba(20,35,60,.45);
}
:root[data-palette="pizarra"] {           /* 4 · Charcoal & Sage */
  --bg:        #F4F4F0;
  --surface:   #FCFCF9;
  --ink:       #21241F;
  --muted:     #5E635A;
  --line:      #E2E2D8;
  --line-2:    #CECEC0;
  --primary:   #383D33;
  --primary-2: #2A2E25;
  --on-primary:#F2F1E9;
  --accent:    #9A6A3C;
  --accent-2:  #7E5530;
  --on-accent: #FBFAF4;
  --hero-1:    rgba(25,27,22,.60);
  --hero-2:    rgba(25,27,22,.18);
  --shadow:    18px 18px 50px -28px rgba(35,40,32,.40);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Mulish",system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:17px; line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; line-height:1.04; margin:0; letter-spacing:.004em; }
h1{ font-size:clamp(2.7rem,5.6vw,4.9rem); font-weight:500; }
h2{ font-size:clamp(2.05rem,3.7vw,3.15rem); font-weight:500; }
h3{ font-size:1.55rem; font-weight:500; }
p{ margin:0 0 1em; }
.serif{ font-family:"Cormorant Garamond",Georgia,serif; }

.eyebrow{
  font-size:.7rem; font-weight:700; letter-spacing:.32em; text-transform:uppercase;
  color:var(--accent-2); margin:0 0 1.1rem;
  display:inline-flex; align-items:center; gap:.75rem;
}
.eyebrow::before{ content:""; width:32px; height:1px; background:var(--accent); display:inline-block; }
.eyebrow.center{ justify-content:center; }

.wrap{ width:min(1240px,92vw); margin-inline:auto; }
.wrap-narrow{ width:min(960px,92vw); margin-inline:auto; }
section{ position:relative; }
.pad{ padding:clamp(56px,9vw,120px) 0; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.85rem; border:1px solid transparent; border-radius:1px;
  font-weight:600; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; line-height:1;
  transition:transform .18s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--primary); color:var(--on-primary); }
.btn-primary:hover{ background:var(--primary-2); }
.btn-accent{ background:var(--accent); color:var(--on-accent); }
.btn-accent:hover{ background:var(--accent-2); }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn-ghost:hover{ border-color:var(--ink); }
.btn-light{ background:var(--surface); color:var(--ink); border-color:var(--line); }
.btn-light:hover{ background:#fff; }
.btn-lg{ padding:1.2rem 2.3rem; font-size:.78rem; }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; gap:2rem; height:96px; }
.brand{ display:flex; align-items:center; gap:.7rem; margin-right:auto; }
.brand img{ height:66px; width:auto; }
.brand .brand-fallback{ display:flex; flex-direction:column; line-height:1; }
.brand .brand-fallback b{ font-family:"Cormorant Garamond",serif; font-size:2rem; font-weight:600; letter-spacing:.03em; }
.brand .brand-fallback span{ font-size:.62rem; letter-spacing:.4em; text-transform:uppercase; color:var(--muted); margin-top:4px; }
.nav-links{ display:flex; gap:2.1rem; align-items:center; }
.nav-links a{ font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); position:relative; padding:.3rem 0; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:1.5px; background:var(--accent); transition:width .25s ease; }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-actions{ display:flex; align-items:center; gap:.85rem; }

/* palette switcher */
.palette{ position:relative; display:none; }
.palette-toggle{
  display:flex; align-items:center; gap:.5rem; background:transparent;
  border:1px solid var(--line-2); border-radius:2px; padding:.5rem .7rem; color:var(--ink);
  font-size:.78rem; font-weight:700; letter-spacing:.03em;
}
.palette-dot{ width:14px; height:14px; border-radius:50%;
  background:conic-gradient(var(--primary) 0 50%, var(--accent) 50% 100%); border:1px solid var(--line-2); }
.palette-menu{
  position:absolute; right:0; top:calc(100% + 10px); width:230px;
  background:var(--surface); border:1px solid var(--line); border-radius:4px;
  box-shadow:0 24px 60px -30px rgba(0,0,0,.4); padding:.5rem; display:none; z-index:60;
}
.palette-menu.open{ display:block; }
.palette-menu .ph{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); padding:.5rem .6rem .3rem; }
.swatch{ display:flex; align-items:center; gap:.7rem; width:100%; padding:.6rem; border:none; background:transparent; border-radius:3px; text-align:left; color:var(--ink); }
.swatch:hover{ background:var(--bg); }
.swatch.active{ background:var(--bg); }
.swatch-pills{ display:flex; gap:3px; }
.swatch-pills i{ width:16px; height:16px; border-radius:50%; display:block; border:1px solid rgba(0,0,0,.08); }
.swatch b{ font-size:.84rem; font-weight:700; }
.swatch small{ display:block; color:var(--muted); font-size:.7rem; font-weight:600; }
.swatch .chk{ margin-left:auto; opacity:0; color:var(--accent-2); font-weight:900; }
.swatch.active .chk{ opacity:1; }

.hamburger{ display:none; background:transparent; border:1px solid var(--line-2); border-radius:2px; width:42px; height:42px; align-items:center; justify-content:center; }
.hamburger span, .hamburger span::before, .hamburger span::after{ content:""; display:block; width:18px; height:2px; background:var(--ink); position:relative; }
.hamburger span::before{ position:absolute; top:-6px; } .hamburger span::after{ position:absolute; top:6px; }

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:88vh; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,var(--hero-2),var(--hero-1) 78%), linear-gradient(90deg, rgba(0,0,0,.35), transparent 60%); }
.hero-inner{ position:relative; z-index:2; padding:7rem 0 3rem; width:min(1240px,92vw); margin-inline:auto; }
.hero-split{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero-split .search-card{ margin-top:0; width:100%; max-width:none; }
.hero-split .search-row{ grid-template-columns:1fr 1fr; }
@media (max-width:980px){ .hero-split{ grid-template-columns:1fr; } .hero-split .search-card{ max-width:600px; } }
.hero h1{ color:#fff; max-width:16ch; text-shadow:0 2px 30px rgba(0,0,0,.25); }
.hero .lede{ font-size:1.18rem; max-width:46ch; color:rgba(255,255,255,.92); margin-top:1.2rem; }
.hero .eyebrow{ color:#fff; }
.hero .eyebrow::before{ background:var(--accent); }

/* search card */
.search-card{
  margin-top:2.6rem; background:var(--surface);
  border:1px solid var(--line); border-top:2px solid var(--accent); border-radius:2px; padding:1.7rem; color:var(--ink);
  box-shadow:0 40px 90px -50px rgba(0,0,0,.65); max-width:900px;
}
.seg{ display:inline-flex; background:transparent; border:1px solid var(--line-2); border-radius:1px; padding:0; margin-bottom:1.4rem; }
.seg button{ border:none; background:transparent; padding:.85rem 1.7rem; border-radius:0; font-weight:600; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:.5rem; }
.seg button + button{ border-left:1px solid var(--line-2); }
.seg button.active{ background:var(--primary); color:var(--on-primary); }
.search-row{ display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:.7rem; align-items:end; }
.field{ display:flex; flex-direction:column; gap:.34rem; }
.field label{ font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.field select, .field input:not([type=range]){
  appearance:none; border:1px solid var(--line-2); background:var(--surface); color:var(--ink);
  border-radius:3px; padding:.8rem .85rem; font-family:inherit; font-size:.92rem; font-weight:600; width:100%;
}
.field select{ background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:2.2rem; }
.field input:not([type=range]):focus, .field select:focus{ outline:none; border-color:var(--accent); }

/* ---------- Stats strip ---------- */
.statstrip{ background:var(--primary); color:var(--on-primary); }
.statstrip .grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.statstrip .cell{ padding:2.1rem 1.5rem; border-left:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent); }
.statstrip .cell:first-child{ border-left:none; }
.statstrip .num{ font-family:"Cormorant Garamond",serif; font-size:2.6rem; font-weight:700; line-height:1; }
.statstrip .lab{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; opacity:.82; margin-top:.4rem; }

/* ---------- Section heading ---------- */
.sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2.6rem; }
.sec-head .lead{ max-width:54ch; color:var(--muted); margin-top:.6rem; }
.center-head{ text-align:center; max-width:64ch; margin:0 auto 3rem; }
.center-head .lead{ color:var(--muted); margin-top:.8rem; }

/* ---------- Property cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.cards.two{ grid-template-columns:repeat(2,1fr); }
.pcard{ background:var(--surface); border:1px solid var(--line); border-radius:2px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease, border-color .3s; }
.pcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--line-2); }
.pcard-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--line); }
.pcard-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.pcard:hover .pcard-media img{ transform:scale(1.05); }
.wm-crop{ transform:scale(1.13); transform-origin:8% 8%; }
.pcard:hover .pcard-media img.wm-crop{ transform:scale(1.18); transform-origin:8% 8%; }
.detail-hero .dg img.wm-crop{ transform:scale(1.13); transform-origin:8% 8%; }
.detail-hero .dg:hover img.wm-crop{ transform:scale(1.17); transform-origin:8% 8%; }
.pcard-tags{ position:absolute; top:.8rem; left:.8rem; display:flex; gap:.4rem; flex-wrap:wrap; max-width:80%; }
.tag{ font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:.4rem .6rem; border-radius:1px; background:color-mix(in srgb,var(--surface) 92%,transparent); color:var(--ink); backdrop-filter:blur(4px); }
.tag.accent{ background:var(--accent); color:var(--on-accent); }
.tag.primary{ background:var(--primary); color:var(--on-primary); }
.pcard-fav{ position:absolute; top:.7rem; right:.7rem; width:36px; height:36px; border-radius:50%; background:color-mix(in srgb,var(--surface) 88%,transparent); border:none; display:grid; place-items:center; backdrop-filter:blur(4px); }
.pcard-body{ padding:1.4rem 1.45rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.pcard .loc{ font-size:.66rem; font-weight:700; letter-spacing:.18em; color:var(--accent-2); text-transform:uppercase; display:flex; align-items:center; gap:.4rem; }
.pcard h3{ font-size:1.6rem; margin:.55rem 0 .1rem; line-height:1.1; }
.pcard h3 a:hover{ color:var(--primary); }
.pcard .price{ font-family:"Cormorant Garamond",serif; font-size:2rem; font-weight:600; color:var(--ink); margin-top:.6rem; }
.pcard .price small{ font-family:"Mulish",sans-serif; font-size:.72rem; font-weight:700; color:var(--muted); letter-spacing:.04em; }
.pcard .price-courtage{ font-family:"Mulish",sans-serif; font-size:.74rem; font-weight:700; color:var(--accent-2); margin-top:.2rem; }
.tag.sold{ background:#c62828; color:#fff; }
.pcard.sold .pcard-media img{ filter:grayscale(.35) brightness(.95); }
.pcard.sold .pcard-media::after{ content:"Verkauft"; position:absolute; inset:auto 0 0 0; background:#c62828; color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:.3rem; }
.pcard-facts{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); font-size:.82rem; font-weight:600; color:var(--muted); }
.pcard-facts span{ display:inline-flex; align-items:center; gap:.4rem; }
.pcard-facts b{ color:var(--ink); font-weight:800; }
.icon{ width:16px; height:16px; stroke:var(--accent-2); fill:none; stroke-width:1.7; flex:none; }

/* ---------- Audience / Tierhalter ---------- */
.audience{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.fbox{ padding:1.9rem 1.6rem; border:1px solid var(--line); border-radius:6px; background:var(--bg); }
.fbox .fi{ width:46px; height:46px; border-radius:50%; background:color-mix(in srgb,var(--accent) 16%,transparent); display:grid; place-items:center; margin-bottom:1rem; }
.fbox .fi svg{ width:23px; height:23px; stroke:var(--accent-2); fill:none; stroke-width:1.7; }
.fbox h3{ font-size:1.35rem; margin-bottom:.4rem; }
.fbox p{ color:var(--muted); font-size:.95rem; margin:0; }

/* ---------- Split feature ---------- */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.split-media{ position:relative; }
.split-media img{ border-radius:8px; aspect-ratio:4/5; object-fit:cover; width:100%; box-shadow:var(--shadow); }
.split-media .badge{ position:absolute; bottom:-22px; left:-22px; background:var(--primary); color:var(--on-primary); padding:1.2rem 1.5rem; border-radius:6px; box-shadow:0 20px 40px -22px rgba(0,0,0,.5); }
.split-media .badge b{ font-family:"Cormorant Garamond",serif; font-size:2.2rem; display:block; line-height:1; }
.split-media .badge span{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; opacity:.85; }
.ticks{ list-style:none; padding:0; margin:1.4rem 0 2rem; display:grid; gap:.85rem; }
.ticks li{ display:flex; gap:.8rem; align-items:flex-start; font-weight:600; }
.ticks svg{ width:20px; height:20px; stroke:var(--accent-2); fill:none; stroke-width:2; flex:none; margin-top:2px; }

/* ---------- Map ---------- */
.map-section{ background:var(--primary-2); color:var(--on-primary); }
.map-section .eyebrow{ color:#fff; }
#map, #map-listings{ width:100%; border-radius:8px; overflow:hidden; z-index:1; }
#map{ height:560px; box-shadow:var(--shadow); }
.leaflet-popup-content-wrapper{ border-radius:6px; }
.map-pin{ background:var(--primary); color:var(--on-primary); font-weight:800; font-size:.78rem; padding:.34rem .55rem; border-radius:3px; white-space:nowrap; box-shadow:0 6px 16px -6px rgba(0,0,0,.5); border:1.5px solid var(--on-primary); transform:translate(-50%,-130%); position:relative; }
.map-pin::after{ content:""; position:absolute; left:50%; bottom:-7px; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--primary); }
.map-pin.accent{ background:var(--accent); color:var(--on-accent); } .map-pin.accent::after{ border-top-color:var(--accent); }
.pop{ font-family:"Mulish",sans-serif; width:200px; }
.pop img{ width:100%; height:110px; object-fit:cover; border-radius:4px 4px 0 0; }
.pop .pb{ padding:.5rem .2rem .2rem; }
.pop b{ font-size:.95rem; }
.pop .pp{ color:var(--accent-2); font-weight:800; }

/* ---------- Filter bar (listings) ---------- */
.filterbar{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1.2rem; box-shadow:var(--shadow); }
.filter-grid{ display:grid; grid-template-columns:repeat(5,1fr) auto; gap:.8rem; align-items:end; }
.range-val{ font-size:.8rem; font-weight:700; color:var(--ink); }
input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:4px; background:var(--line-2); outline:none; margin:.85rem 0 .4rem; cursor:pointer; }
input[type=range]::-webkit-slider-runnable-track{ height:6px; border-radius:4px; background:var(--line-2); }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px; margin-top:-8px; border-radius:50%; background:var(--primary); border:3px solid var(--surface); box-shadow:0 2px 6px rgba(0,0,0,.28); cursor:pointer; transition:background .2s; }
input[type=range]:hover::-webkit-slider-thumb{ background:var(--primary-2); }
input[type=range]::-moz-range-track{ height:6px; border-radius:4px; background:var(--line-2); }
input[type=range]::-moz-range-progress{ height:6px; border-radius:4px; background:var(--accent); }
input[type=range]::-moz-range-thumb{ width:22px; height:22px; border:3px solid var(--surface); border-radius:50%; background:var(--primary); box-shadow:0 2px 6px rgba(0,0,0,.28); cursor:pointer; }
.chips{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem; }
.chip{ font-size:.78rem; font-weight:700; padding:.45rem .8rem; border:1px solid var(--line-2); background:var(--bg); border-radius:30px; color:var(--muted); display:inline-flex; gap:.4rem; align-items:center; }
.chip.active{ background:var(--primary); color:var(--on-primary); border-color:var(--primary); }
.result-meta{ display:flex; justify-content:space-between; align-items:center; margin:2rem 0 1.4rem; flex-wrap:wrap; gap:1rem; }
.result-meta .count b{ font-size:1.1rem; }

/* ---------- Detail page ---------- */
.detail-hero{ display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:12px; height:clamp(420px,56vh,580px); }
.detail-hero .dg{ overflow:hidden; border-radius:3px; background:var(--line); position:relative; }
.detail-hero .dg img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; cursor:pointer; display:block; }
.detail-hero .dg:hover img{ transform:scale(1.04); }
.detail-hero .dg.main{ grid-row:1 / 3; }
.detail-hero.single{ grid-template-columns:1fr; grid-template-rows:auto; height:auto; }
.detail-hero.single .dg.main{ grid-row:auto; aspect-ratio:16/9; }
.detail-title{ display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:clamp(1.7rem,2.7vw,2.45rem)!important; max-width:30ch!important; }
.gallery-more{ position:absolute; inset:0; background:rgba(20,28,22,.55); color:#fff; display:grid; place-items:center; font-weight:800; letter-spacing:.04em; cursor:pointer; }
.detail-grid{ display:grid; grid-template-columns:1fr 360px; gap:3rem; align-items:start; }
.keyfacts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; margin:1.6rem 0 2.4rem; }
.keyfacts .kf{ background:var(--surface); padding:1.3rem 1rem; text-align:center; }
.keyfacts .kf svg{ width:24px; height:24px; stroke:var(--accent-2); fill:none; stroke-width:1.6; margin-bottom:.5rem; }
.keyfacts .kf b{ display:block; font-size:1.3rem; font-family:"Cormorant Garamond",serif; }
.keyfacts .kf span{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.detail-desc p{ color:#3a4339; }
.feature-list{ columns:2; gap:2rem; list-style:none; padding:0; margin:1.2rem 0 0; }
.feature-list li{ break-inside:avoid; padding:.5rem 0 .5rem 1.6rem; position:relative; font-weight:600; font-size:.95rem; border-bottom:1px solid var(--line); }
.feature-list li::before{ content:""; position:absolute; left:0; top:.95rem; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.aside-card{ position:sticky; top:112px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); overflow:hidden; }
.aside-card .ac-top{ padding:1.6rem 1.5rem; border-bottom:1px solid var(--line); }
.aside-card .ac-price{ font-family:"Cormorant Garamond",serif; font-size:2.6rem; font-weight:700; line-height:1; }
.aside-card .ac-body{ padding:1.5rem; }
.agent{ display:flex; align-items:center; gap:.9rem; padding:0 0 1.2rem; margin-bottom:1.2rem; border-bottom:1px solid var(--line); }
.agent img{ width:58px; height:58px; border-radius:50%; object-fit:cover; border:2px solid var(--accent); flex:none; }
.agent-meta b{ display:block; font-size:1.05rem; font-weight:800; line-height:1.1; }
.agent-meta span{ display:block; font-size:.78rem; color:var(--muted); margin-top:1px; }
.agent-meta em{ display:block; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-2); font-style:normal; margin-top:.35rem; }
.aside-card .ac-body .field{ margin-bottom:.8rem; }
.rega-badge{ display:inline-flex; align-items:center; gap:.6rem; background:var(--primary); color:var(--on-primary); padding:.7rem 1.15rem; border-radius:3px; font-weight:700; font-size:.84rem; letter-spacing:.04em; }
.rega-badge svg{ width:20px; height:20px; stroke:var(--on-primary); fill:none; stroke-width:1.7; }
.rega-banner{ display:flex; gap:1.4rem; align-items:center; justify-content:space-between; flex-wrap:wrap; background:color-mix(in srgb,var(--accent) 13%, var(--surface)); border:1px solid var(--accent); border-left:4px solid var(--accent); border-radius:4px; padding:1.5rem 1.7rem; margin:1.8rem 0; }
.rega-banner .rb-txt{ max-width:60ch; }
.rega-banner .rb-txt b{ font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:600; display:block; margin-bottom:.2rem; }
.rega-banner .rb-txt span{ color:var(--muted); font-size:.95rem; }
.rega-banner .btn{ flex:none; }
.aside-card textarea{ border:1px solid var(--line-2); border-radius:3px; padding:.8rem; font-family:inherit; font-size:.92rem; width:100%; resize:vertical; min-height:84px; }
.tierbar{ display:flex; gap:.5rem; flex-wrap:wrap; margin:.4rem 0 0; }
.tierbar .tt{ font-size:.74rem; font-weight:800; letter-spacing:.03em; padding:.4rem .7rem; border-radius:30px; background:color-mix(in srgb,var(--accent) 16%,transparent); color:var(--accent-2); display:inline-flex; gap:.4rem; align-items:center; }

/* ---------- Lightbox ---------- */
.lightbox{ position:fixed; inset:0; background:rgba(15,20,16,.92); z-index:200; display:none; align-items:center; justify-content:center; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:90vw; max-height:84vh; object-fit:contain; border-radius:4px; }
.lb-close{ position:absolute; top:24px; right:28px; background:transparent; border:none; color:#fff; font-size:2rem; }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:none; color:#fff; width:54px; height:54px; border-radius:50%; font-size:1.4rem; }
.lb-prev{ left:24px; } .lb-next{ right:24px; }
.lb-count{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:#fff; font-weight:700; letter-spacing:.1em; font-size:.85rem; }

/* ---------- Trust / band ---------- */
.band{ background:var(--accent); color:var(--on-accent); }
.band .inner{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; padding:3rem 0; }
.band h2{ color:var(--on-accent); max-width:20ch; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--primary-2); color:color-mix(in srgb,var(--on-primary) 80%,transparent); padding:4.5rem 0 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:2.5rem; }
.site-footer h4{ font-family:"Mulish",sans-serif; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--on-primary); margin-bottom:1.1rem; }
.site-footer a{ display:block; padding:.32rem 0; font-size:.92rem; }
.site-footer a:hover{ color:var(--accent); }
.foot-brand b{ font-family:"Cormorant Garamond",serif; font-size:1.7rem; color:var(--on-primary); }
.foot-brand p{ font-size:.92rem; margin-top:.8rem; max-width:34ch; }
.foot-bottom{ border-top:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent); margin-top:3rem; padding-top:1.5rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .nav-links{ display:none; }
  .hamburger{ display:flex; }
  .cards,.feature-grid{ grid-template-columns:repeat(2,1fr); }
  .split{ grid-template-columns:1fr; } .split-media{ order:-1; }
  .detail-grid{ grid-template-columns:1fr; }
  .aside-card{ position:static; }
  .statstrip .grid{ grid-template-columns:repeat(2,1fr); }
  .filter-grid{ grid-template-columns:repeat(2,1fr); }
  .feature-list{ columns:1; }
}
@media (max-width:620px){
  body{ font-size:16px; }
  .detail-hero{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto; height:auto; }
  .detail-hero .dg.main{ grid-column:1/3; grid-row:auto; aspect-ratio:16/10; }
  .detail-hero .dg:not(.main){ aspect-ratio:4/3; }
  .search-row{ grid-template-columns:1fr; }
  .cards,.feature-grid,.statstrip .grid{ grid-template-columns:1fr; }
  .keyfacts{ grid-template-columns:repeat(2,1fr); }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .sec-head{ flex-direction:column; align-items:flex-start; }
  .hero{ min-height:auto; padding-bottom:2rem; }
}

/* ---------- Magazin ---------- */
.mag-hero{ background:var(--primary); color:var(--on-primary); padding:4rem 0 3.4rem; }
.mag-hero .eyebrow{ color:#fff; }
.mag-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.mag-card{ background:var(--surface); border:1px solid var(--line); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.mag-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.mag-card .mc-media{ aspect-ratio:16/10; overflow:hidden; background:var(--line); }
.mag-card .mc-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.mag-card:hover .mc-media img{ transform:scale(1.05); }
.mag-card .mc-body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.mag-cat{ font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-2); }
.mag-card h3{ font-size:1.5rem; margin:.5rem 0 .5rem; line-height:1.12; }
.mag-card p{ color:var(--muted); font-size:.94rem; margin:0 0 1.1rem; flex:1; }
.mag-card .mc-more{ font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--primary); }
.mag-card.soon{ opacity:.72; pointer-events:none; }
.mag-card.soon .mc-more{ color:var(--muted); }
.mag-feature{ display:grid; grid-template-columns:1.1fr .9fr; gap:0; background:var(--surface); border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-bottom:2.6rem; }
.mag-feature .mf-media{ overflow:hidden; min-height:340px; background:var(--line); }
.mag-feature .mf-media img{ width:100%; height:100%; object-fit:cover; }
.mag-feature .mf-body{ padding:clamp(1.8rem,3vw,3rem); display:flex; flex-direction:column; justify-content:center; }

/* ---------- Article ---------- */
.article-hero{ position:relative; height:46vh; min-height:360px; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
.article-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.article-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,30,23,.15),rgba(20,30,23,.78)); }
.article-hero .ah-inner{ position:relative; z-index:2; padding-bottom:2.4rem; }
.article-hero h1{ color:#fff; max-width:22ch; }
.article-body{ width:min(760px,92vw); margin:0 auto; padding:clamp(2.4rem,5vw,4rem) 0; }
.article-body p, .article-body li{ font-size:1.09rem; line-height:1.8; color:#2c352c; }
.article-body h2{ margin:2.4rem 0 .9rem; }
.article-body h3{ margin:1.8rem 0 .6rem; font-size:1.4rem; }
.article-body ul, .article-body ol{ padding-left:1.3rem; margin:0 0 1.3rem; }
.article-body li{ margin-bottom:.5rem; }
.article-body .lead{ font-size:1.28rem; line-height:1.7; color:var(--ink); font-family:"Cormorant Garamond",serif; font-weight:500; margin-bottom:1.8rem; }
.article-body blockquote{ border-left:3px solid var(--accent); padding:.4rem 0 .4rem 1.4rem; margin:1.8rem 0; font-family:"Cormorant Garamond",serif; font-size:1.4rem; color:var(--ink); }
.callout{ background:color-mix(in srgb,var(--accent) 12%, var(--surface)); border:1px solid var(--accent); border-left:4px solid var(--accent); border-radius:4px; padding:1.3rem 1.5rem; margin:1.8rem 0; }
.callout b{ font-family:"Cormorant Garamond",serif; font-size:1.25rem; display:block; margin-bottom:.3rem; }
.callout p{ margin:0; font-size:.98rem; color:var(--muted); }
.article-meta{ display:flex; gap:1rem; align-items:center; font-size:.8rem; color:var(--muted); margin-bottom:1.4rem; flex-wrap:wrap; }
.article-meta .pill{ background:var(--accent); color:var(--on-accent); padding:.3rem .7rem; border-radius:30px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.66rem; }
.disclaimer{ font-size:.84rem; color:var(--muted); border-top:1px solid var(--line); margin-top:2.6rem; padding-top:1.4rem; }
.toc{ background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:1.3rem 1.5rem; margin:0 0 2rem; }
.toc b{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.toc ul{ list-style:none; padding:0; margin:.6rem 0 0; }
.toc li{ margin:.3rem 0; }
.toc a{ color:var(--primary); font-weight:600; font-size:.96rem; }
.toc a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .mag-grid{ grid-template-columns:repeat(2,1fr); }
  .mag-feature{ grid-template-columns:1fr; } .mag-feature .mf-media{ min-height:220px; }
}
@media (max-width:600px){ .mag-grid{ grid-template-columns:1fr; } }

/* mobile drawer */
.drawer{ position:fixed; inset:0; z-index:80; background:var(--bg); transform:translateX(100%); transition:transform .3s ease; display:flex; flex-direction:column; padding:1.5rem; }
.drawer.open{ transform:none; }
.drawer .dclose{ align-self:flex-end; background:transparent; border:none; font-size:2rem; color:var(--ink); }
.drawer a{ font-family:"Cormorant Garamond",serif; font-size:2rem; padding:.6rem 0; border-bottom:1px solid var(--line); }

/* Lage & Entfernungen (Detailseite) */
.distbox{ margin-top:1.6rem; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:1.1rem 1.2rem; }
.distgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem 1.5rem; }
.di{ display:flex; flex-direction:column; gap:.1rem; }
.di .dl{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.di .dv{ font-family:"Cormorant Garamond",Georgia,serif; font-size:1.4rem; font-weight:600; line-height:1.15; color:var(--ink); }
@media(max-width:600px){ .distgrid{ grid-template-columns:1fr; } }

/* Sprachumschalter DE/EN */
.lang-toggle{ display:inline-flex; align-items:center; justify-content:center; background:transparent; border:1px solid var(--line-2); border-radius:2px; padding:.5rem .65rem; color:var(--ink); font-size:.72rem; font-weight:800; letter-spacing:.08em; min-width:40px; line-height:1; }
.lang-toggle:hover{ border-color:var(--ink); }
