:root{
  --cream:#f8f1e9;
  --wood-dark:#4b2b1d;
  --wood:#74452f;
  --wood-mid:#8f5a3c;
  --rose:#d88995;
  --rose-dark:#b96674;
  --paper:#f1c98d;
  --text:#2b211c;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Poppins,Arial,sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden}
button{font:inherit}

.stall-page{width:min(1360px,100%);margin:0 auto;padding:26px 20px 70px}
.stall-intro{text-align:center;padding:8px 15px 42px}
.eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--rose-dark);font-size:12px;font-weight:800;margin-bottom:8px}
.stall-intro h1{font-family:"Permanent Marker",cursive;color:var(--rose);font-size:clamp(50px,6vw,82px);line-height:1;margin-bottom:14px}
.stall-intro>p:last-child{max-width:820px;margin:auto;font-size:17px;line-height:1.65}

.stable-layout{width:100%;border:10px solid var(--wood-dark);border-radius:18px;background:linear-gradient(rgba(58,31,21,.88),rgba(58,31,21,.92)),url('images/stall-door-background.png') center/cover;box-shadow:0 18px 42px rgba(58,31,21,.24);padding:14px}
.stable-wall{border:1px solid rgba(238,204,169,.24);border-radius:10px;padding:18px 18px 28px;background:rgba(67,38,25,.42)}
.stable-header{height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin-bottom:18px;border-radius:7px;background:rgba(41,22,16,.75);color:#fff;font-size:13px;font-weight:800;letter-spacing:2px}
.stable-header span:last-child{color:#fff}

.stable-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 24px}
.stall-card{min-width:0}
.stall-image{position:relative;aspect-ratio:1.25/1;overflow:hidden;border-radius:8px;background:#5b3827 url('images/stall-door-background.png') center/100% 100% no-repeat;box-shadow:0 10px 22px rgba(20,10,6,.28);isolation:isolate}
.stall-image::after{content:"";position:absolute;inset:0;border:4px solid rgba(74,40,27,.9);border-radius:8px;pointer-events:none;z-index:5}

/* Das Fenster der Fotovorlage. Das Pferd wird nur hierübergelegt. */
.horse-head{position:absolute;z-index:2;left:15.5%;top:4.5%;width:63%;height:38.5%;object-fit:contain;object-position:center bottom;display:block;filter:drop-shadow(0 4px 4px rgba(0,0,0,.18));pointer-events:none;transform:scale(1.43);transform-origin:center bottom}

/* Nummer und Namensschild verdecken die in der Fotovorlage vorhandenen Muster exakt. */
.stall-number{position:absolute;z-index:3;left:41%;top:48%;width:18%;height:9%;display:grid;place-items:center;border-radius:5px;background:linear-gradient(#242424,#111);border:2px solid #39271f;box-shadow:0 4px 7px rgba(0,0,0,.35);color:#f6e6c7;font-size:clamp(16px,2.2vw,28px);font-weight:800;line-height:1}
.stall-nameplate-wrap{position:absolute;z-index:4;left:27%;top:61.5%;width:46%;height:13.5%;display:flex;align-items:center;justify-content:center}
.stall-nameplate{width:100%;height:100%;border:3px solid #6b4028;border-radius:2px;background:linear-gradient(#f3cf97,#dfad6a);box-shadow:0 4px 0 #3b2117, inset 0 1px 0 rgba(255,255,255,.35);color:#2e211b;font-size:clamp(11px,1.25vw,18px);font-weight:800;letter-spacing:1px;cursor:pointer;padding:0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .15s ease,filter .15s ease}
.stall-nameplate span{color:var(--rose-dark);margin-left:4px}
.stall-nameplate:hover,.stall-nameplate:focus-visible{filter:brightness(1.05);transform:translateY(-1px);outline:2px solid #f1c5cc;outline-offset:2px}

.modal{position:fixed;inset:0;display:none;z-index:5000;align-items:center;justify-content:center;padding:24px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(34,19,14,.76);backdrop-filter:blur(5px)}
.horse-detail{position:relative;z-index:2;width:min(1050px,96vw);max-height:92vh;overflow:auto;background:#f3dfc1;border:10px solid var(--wood-dark);border-radius:14px;box-shadow:0 25px 70px rgba(0,0,0,.45);padding:26px}
.close-modal{position:absolute;right:12px;top:10px;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:var(--rose);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.detail-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:28px;align-items:center}
.detail-photo{height:430px;overflow:hidden;border:8px solid #4b2b1d;background:#ead5bd}
.detail-photo img{width:100%;height:100%;object-fit:cover;display:block}
.detail-text{padding:20px}
.detail-label{color:var(--rose-dark);text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800}
.detail-text h2{font-family:"Permanent Marker",cursive;color:var(--rose-dark);font-size:52px;line-height:1;margin:8px 0 14px}
.detail-tagline{font-size:18px;font-weight:700;margin-bottom:8px}
#detailDescription{line-height:1.7}
.detail-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;color:#76584a}
.detail-facts span{background:#ead0ad;padding:7px 11px;border-radius:20px;font-size:13px}
.gallery-title{margin-top:24px;padding-top:18px;border-top:2px solid #a87554;font-weight:800}
.detail-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:14px}
.gallery-thumb{height:105px;padding:0;border:4px solid #5a3021;background:#eee;cursor:pointer;overflow:hidden}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.no-gallery{color:#7d6559;font-size:14px}
body.modal-open{overflow:hidden}

@media(max-width:900px){
  .stall-page{padding-inline:12px}
  .stable-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .detail-main{grid-template-columns:1fr}
  .detail-photo{height:340px}
}

@media(max-width:600px){
  .stall-page{padding:14px 8px 45px}
  .stall-intro{padding:10px 10px 28px}
  .stall-intro h1{font-size:48px}
  .stall-intro>p:last-child{font-size:14px;line-height:1.55}
  .stable-layout{border-width:7px;padding:9px}
  .stable-wall{padding:12px 10px 18px}
  .stable-header{margin-bottom:12px}
  .stable-grid{grid-template-columns:1fr;gap:16px}
  .stall-image{aspect-ratio:1.25/1}
  .stall-number{font-size:20px}
  .stall-nameplate{font-size:14px}
  .horse-detail{width:96vw;padding:18px;border-width:7px}
  .detail-photo{height:280px}
  .detail-text{padding:10px 4px}
  .detail-text h2{font-size:42px}
}
