/* ==========================================================================
   Radservice Oberlaa – Website Stylesheet (helles Design)
   Getrennt vom Shop-Stylesheet (shop/assets/css/style.css) – bewusst
   ein eigenes Design für die Website-Seiten, der Shop bleibt unverändert.
   ========================================================================== */

:root{
  --bg:#f4f5f3;
  --surface:#ffffff;
  --surface-alt:#eceeec;
  --line:#dde1df;

  --anthrazit:#23272b;
  --anthrazit-700:#383f44;
  --anthrazit-900:#1b1e21;

  --stahlblau:#3e6e93;
  --stahlblau-soft:#5f8caa;
  --stahlblau-tint:#e9f1f5;

  --signal-orange:#ff6a1a;
  --signal-orange-dim:#e05a10;

  --text-mid:#5b6367;
  --text-dim:#8b9296;
  --text-hi:#f2f3f1;

  --radius-s:3px;
  --radius-m:6px;

  /* Footer-Farbverlauf – aus dem Shop-Header-Foto übernommen (Anthrazit -> Stahlblau) */
  --footer-gradient: linear-gradient(90deg,
      #1c2028 0%,
      #202735 22%,
      #283548 42%,
      #33455f 62%,
      #3e5876 80%,
      #4c6d90 100%);
  --ring-blue:#6f93b0;
  --ring-rust:#a3705c;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--anthrazit);
  font-family:'Work Sans', sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.02em;
  font-weight:600;
  line-height:1.15;
  color:var(--anthrazit);
}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.03em;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
button{font-family:inherit; cursor:pointer;}
img{max-width:100%; display:block;}

/* ---------- header ---------- */
header.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:28px; padding:16px 28px;}
.brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.brand-mark{width:36px; height:36px; flex-shrink:0;}
.brand-text .name{font-family:'Oswald',sans-serif; font-size:1.02rem; font-weight:600; text-transform:uppercase; letter-spacing:0.03em; color:var(--anthrazit);}
.brand-text .sub{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; color:var(--stahlblau); letter-spacing:0.06em; text-transform:uppercase;}

nav.main-nav{display:flex; gap:2px; flex:1;}
nav.main-nav > .nav-item{position:relative;}
nav.main-nav a.top{display:flex; align-items:center; gap:5px; font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:0.03em; padding:9px 14px; border-radius:var(--radius-s); color:var(--text-mid); border-bottom:2px solid transparent;}
nav.main-nav a.top:hover, nav.main-nav a.top.active{color:var(--anthrazit);}
nav.main-nav .nav-item:hover a.top{color:var(--anthrazit); border-bottom-color:var(--stahlblau);}
.caret{font-size:0.6rem; color:var(--text-dim);}

.dropdown{position:absolute; top:100%; left:0; min-width:210px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:8px; opacity:0; visibility:hidden; transform:translateY(4px); transition:all .15s ease; box-shadow:0 16px 30px rgba(30,35,40,.12);}
.nav-item:hover .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.dropdown a{display:block; font-size:0.82rem; padding:9px 12px; border-radius:var(--radius-s); color:var(--text-mid);}
.dropdown a:hover{background:var(--surface-alt); color:var(--anthrazit);}

.shop-pill{display:flex; align-items:center; gap:6px; background:transparent; border:1px solid var(--signal-orange); color:var(--signal-orange)!important; padding:8px 13px!important; border-radius:var(--radius-s)!important;}
.shop-pill:hover{background:var(--signal-orange); color:#fff!important;}

.tick-divider{height:8px; background-image:repeating-linear-gradient(90deg, var(--stahlblau) 0, var(--stahlblau) 1px, transparent 1px, transparent 12px); background-size:100% 8px; background-color:var(--surface-alt); opacity:0.6;}

/* ---------- hero ---------- */
.hero{position:relative; background:var(--surface-alt); padding:76px 0 60px; overflow:hidden; border-bottom:1px solid var(--line);}
.hero::before{content:""; position:absolute; inset:0; background-image:radial-gradient(#cfd4d1 1.4px, transparent 1.4px); background-size:22px 22px; opacity:.5; mask-image:linear-gradient(to right, black, transparent 75%);}
.hero-inner{position:relative; display:flex; align-items:center; gap:40px; z-index:2;}
.hero-copy{flex:1; min-width:320px;}
.hero .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--stahlblau); letter-spacing:0.12em; text-transform:uppercase; margin-bottom:14px; display:block;}
.hero h1{font-size:2.7rem; max-width:560px;}
.hero h1 span{color:var(--signal-orange);}
.hero p.lede{font-size:1rem; color:var(--text-mid); max-width:480px; margin-top:16px;}
.hero-ctas{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:0.02em; padding:12px 22px; border-radius:var(--radius-s);}
.btn-primary{background:var(--signal-orange); color:#fff; border:none;}
.btn-primary:hover{background:var(--signal-orange-dim);}
.btn-outline{border:1px solid var(--stahlblau); color:var(--stahlblau);}
.btn-outline:hover{background:var(--stahlblau); color:#fff;}
.hero-art{width:340px; flex-shrink:0; opacity:.9;}
.hero-art svg{width:100%; height:auto; stroke:var(--stahlblau); fill:none; stroke-width:1.1;}

/* ---------- feature tiles ---------- */
.tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:-34px 0 56px; position:relative; z-index:3;}
.tile{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:26px 22px; position:relative; box-shadow:0 10px 24px rgba(30,35,40,.06);}
.tile::before{content:""; position:absolute; top:-7px; left:22px; width:9px; height:9px; border-radius:50%; background:var(--bg); border:2px solid var(--line);}
.tile:hover{border-color:var(--stahlblau);}
.tile .ic{width:38px; height:38px; border-radius:50%; background:var(--surface-alt); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
.tile .ic svg{width:18px; height:18px; stroke:var(--stahlblau); fill:none; stroke-width:1.7;}
.tile h3{font-size:1.02rem; margin-bottom:8px;}
.tile p{font-size:0.85rem; color:var(--text-mid); margin-bottom:14px;}
.tile .go{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--signal-orange);}

/* ---------- shop teaser ---------- */
.shop-section{background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:52px 0;}
.shop-flex{display:flex; gap:44px; align-items:center; flex-wrap:wrap;}
.shop-copy{flex:1; min-width:280px;}
.shop-copy .label{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--stahlblau); letter-spacing:0.1em; text-transform:uppercase; margin-bottom:10px; display:block;}
.shop-copy h2{font-size:1.7rem; margin-bottom:12px;}
.shop-copy p{color:var(--text-mid); font-size:0.92rem; max-width:440px; margin-bottom:18px;}
.shop-chips{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px;}
.chip{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; background:var(--stahlblau-tint); border:1px solid var(--line); color:var(--anthrazit-700); padding:6px 12px; border-radius:var(--radius-s);}
.shop-note{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--text-dim); border-left:2px solid var(--stahlblau); padding-left:10px; max-width:420px;}

.shop-preview{width:300px; flex-shrink:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:16px; box-shadow:0 20px 40px rgba(30,35,40,.12);}
.shop-preview .sp-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;}
.shop-preview .sp-head .dot-row span{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--line); margin-right:4px;}
.sp-url{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--text-dim);}
.sp-card{background:var(--surface-alt); border:1px solid var(--line); border-radius:var(--radius-s); padding:10px; display:flex; gap:10px; align-items:center; margin-bottom:8px;}
.sp-thumb{width:38px; height:38px; border-radius:var(--radius-s); background:linear-gradient(135deg, var(--line), var(--surface-alt)); flex-shrink:0;}
.sp-info .n{font-size:0.76rem; font-weight:600;}
.sp-info .p{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--signal-orange);}

/* ---------- generic sections ---------- */
.section{padding:56px 0;}
.section-head{margin-bottom:30px;}
.section-head .label{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--stahlblau); letter-spacing:0.1em; text-transform:uppercase; display:block; margin-bottom:6px;}
.section-head h2{font-size:1.7rem;}

/* ---------- "Besuchen Sie uns" + Foto-Slider ---------- */
.visit-flex{display:flex; gap:40px; flex-wrap:wrap;}
.visit-info{width:280px; flex-shrink:0;}
.info-tag{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:20px; margin-bottom:14px;}
.info-tag .k{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:var(--stahlblau); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:6px;}
.info-tag .v{font-size:0.92rem;}
.map-box{height:130px; border-radius:var(--radius-m); background:var(--surface-alt); border:1px dashed var(--line); display:flex; align-items:center; justify-content:center; gap:8px; color:var(--text-dim); font-family:'IBM Plex Mono',monospace; font-size:0.72rem;}

.photo-slider{flex:1; min-width:280px;}
.slider-main{position:relative; aspect-ratio:16/9; border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--line); background:var(--surface-alt);}
.slider-main img{width:100%; height:100%; object-fit:cover;}
.slider-arrow{position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.9); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; cursor:pointer;}
.slider-arrow.prev{left:12px;} .slider-arrow.next{right:12px;}
.slider-thumbs{display:flex; gap:8px; margin-top:10px; overflow-x:auto;}
.slider-thumbs img{width:64px; height:48px; object-fit:cover; border-radius:var(--radius-s); border:2px solid transparent; cursor:pointer; flex-shrink:0;}
.slider-thumbs img.active{border-color:var(--signal-orange);}

/* ---------- kontakt ---------- */
.kontakt{background:var(--surface-alt); border-top:1px solid var(--line); padding:56px 0;}
.kontakt-flex{display:flex; gap:48px; flex-wrap:wrap;}
.kontakt-copy{width:300px; flex-shrink:0;}
.kontakt-copy p{color:var(--text-mid); font-size:0.9rem; margin-top:12px;}
form.kontakt-form{flex:1; min-width:280px; display:flex; flex-direction:column; gap:14px;}
.field label{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:var(--stahlblau); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:6px;}
.field input, .field textarea{width:100%; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-s); padding:11px 13px; color:var(--anthrazit); font-family:'Work Sans',sans-serif; font-size:0.88rem; outline:none;}
.field input:focus, .field textarea:focus{border-color:var(--stahlblau);}
.field textarea{resize:vertical; min-height:100px;}
.kontakt-form .btn-primary{align-self:flex-start;}
.form-msg{padding:12px 14px; border-radius:var(--radius-s); font-size:0.85rem; margin-bottom:6px;}
.form-msg.ok{background:#e6f3ea; border:1px solid #b9dcc4; color:#265c39;}
.form-msg.err{background:#fbe9e4; border:1px solid #f1c3b4; color:#8a3417;}

/* ==========================================================================
   Footer – Farbverlauf 1:1 vom Shop-Header übernommen (Anthrazit -> Stahlblau)
   ========================================================================== */
footer.site-footer{
  position:relative;
  overflow:hidden;
  background:var(--footer-gradient);
  color:var(--text-hi);
  padding:44px 0 0;
}
.foot-ring{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.foot-ring-a{
  width:520px; height:520px;
  right:-160px; top:50%; transform:translateY(-50%);
  border:1.5px solid var(--ring-blue);
  opacity:.45;
}
.foot-ring-b{
  width:420px; height:420px;
  right:-90px; top:50%; transform:translateY(-46%);
  border:1.5px solid var(--ring-rust);
  opacity:.4;
}
footer.site-footer .wrap{position:relative; z-index:2;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px; padding-bottom:30px;}
footer h3{font-size:0.92rem; margin-bottom:14px; color:var(--text-hi);}
footer .about{color:#c3cad0; font-size:0.84rem; max-width:280px;}
footer ul{list-style:none;}
footer ul li{margin-bottom:9px; font-size:0.85rem;}
footer ul li a{color:#d3d9dc;}
footer ul li a:hover{color:var(--signal-orange);}
.oeffnungszeiten .row{display:flex; justify-content:space-between; font-size:0.82rem; color:#c3cad0; margin-bottom:6px;}
.oeffnungszeiten .row span:last-child{font-family:'IBM Plex Mono',monospace; color:var(--text-hi);}
.social-badge{display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-s); padding:8px 12px; font-size:0.8rem; margin-top:4px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); padding:16px 0; display:flex; justify-content:space-between; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:#b7c0c6; flex-wrap:wrap; gap:8px;}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .tiles{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  nav.main-nav{display:none;}
  .hero-art{display:none;}
  .hero h1{font-size:2.1rem;}
  .tiles{grid-template-columns:1fr; margin-top:20px;}
  .shop-flex{flex-direction:column;}
  .shop-preview{width:100%;}
  .visit-flex{flex-direction:column;}
  .footer-grid{grid-template-columns:1fr;}
  .wrap{padding:0 18px;}
  .foot-ring-a, .foot-ring-b{display:none;}
}
