/* ==========================================================================
   Escort Steiermark – Gestaltung
   Schwarz-Gold bleibt; feinere Typografie, Tiefe, Karten, Übergänge.
   Schriften lokal eingebunden (keine Verbindung zu Google, DSGVO-freundlich).
   ========================================================================== */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-italic.woff2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/manrope-latin-wght-normal.woff2) format('woff2')}

:root{
 --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
 --sans:'Manrope',Arial,Helvetica,sans-serif;
 --ink:#050403;--panel:#0b0906;--panel-2:#110d08;
 --line:#2a2114;--line-strong:#4a3a22;
 --text-soft:#c9ab6a;
 --glow:0 0 0 1px #d5ae5522,0 30px 80px -30px #d5ae5540;
 --ease:cubic-bezier(.2,.7,.2,1);
}
html{scroll-padding-top:96px}
body{font-family:var(--sans);font-size:16px;line-height:1.75;background:
  radial-gradient(1200px 600px at 85% -10%,#d5ae5512,transparent 60%),
  radial-gradient(900px 500px at -10% 40%,#d5ae550b,transparent 60%),var(--ink);background-attachment:fixed}
::selection{background:#d5ae55;color:#000}
h1,h2,h3,.brand>span{font-family:var(--serif);font-weight:500;letter-spacing:-.01em}
h1{font-size:clamp(48px,6vw,92px);line-height:1.02;letter-spacing:-.02em}
h2{font-size:clamp(36px,4vw,58px);line-height:1.08}
h3{font-size:32px}
.eyebrow{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.28em;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.contact .eyebrow{justify-content:center}.contact .eyebrow::after{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.hero-description,.section-title>p,.contact>p:not(.eyebrow),.legal-text{color:var(--text-soft)}

/* ---- Kopfbereich: fixiert, transparent mit Unschärfe beim Scrollen ---- */
#start>.site-header{position:sticky;top:0;z-index:20;width:100%;padding:22px max(48px,calc((100% - 1240px)/2));margin:0;border-bottom:1px solid transparent;transition:background .35s var(--ease),border-color .35s,padding .35s var(--ease)}
#start>.site-header.scrolled{background:#050403cc;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:var(--line);padding-block:14px}
.brand>span{font-size:31px}
.brand small{font-family:var(--sans);font-weight:600;letter-spacing:.3em;font-size:10.5px;margin-top:5px}
.brand svg{transition:transform .5s var(--ease)}.brand:hover svg{transform:rotate(-12deg) scale(1.08)}
.site-header nav a{position:relative;font-size:13px;font-weight:500;letter-spacing:.06em}
.site-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.site-header nav a:hover::after{transform:scaleX(1)}
.site-header>.phone-link{padding:10px 18px;border:1px solid var(--line-strong);border-radius:999px;font-size:14px;font-weight:600;transition:border-color .3s,background .3s}
.site-header>.phone-link:hover{border-color:var(--gold);background:#d5ae5512}

/* ---- Buttons ---- */
.button{font-family:var(--sans);border-radius:999px;padding:14px 28px;font-size:13.5px;font-weight:700;letter-spacing:.04em;box-shadow:0 10px 30px -12px #d5ae5588;transition:transform .25s var(--ease),box-shadow .25s,background .25s,filter .25s}
.button:hover{background:var(--gold-metal);filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 16px 36px -12px #d5ae55aa}
.button.outline{box-shadow:none}.button.outline:hover{background:#d5ae5514;filter:none}
.button svg{transition:transform .3s var(--ease)}.button:hover svg{transform:translateY(2px)}

/* ---- Startbereich ---- */
.hero{padding:70px 0 110px;gap:80px}
.hero h1{margin-top:4px}
.hero-description{font-size:17px;max-width:470px;margin:30px 0 38px}
.hero-visual{position:relative;height:560px;border-radius:260px 260px 6px 6px;border:0;overflow:visible;background:none}
.hero-visual::before{content:"";position:absolute;inset:-14px;border:1px solid #d5ae5540;border-radius:274px 274px 12px 12px;pointer-events:none}
.hero-visual::after{content:"";position:absolute;inset:auto -40px -40px auto;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#d5ae5530,transparent 70%);filter:blur(10px);pointer-events:none}
.hero-visual img{border-radius:inherit;box-shadow:0 40px 90px -30px #000,0 0 0 1px #d5ae5530;object-position:center}
.hero.without-image .eyebrow{justify-content:center}

/* ---- Profilübersicht ---- */
.catalog{border-top:0;padding:90px 0 110px;position:relative}
.catalog::before{content:"";position:absolute;top:0;left:50%;width:min(620px,70%);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5}
.section-title{margin-bottom:54px}
.section-title>p{font-size:16px;max-width:340px}
.profile-grid{gap:34px}
.profile-card{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:12px 12px 4px;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s}
.profile-card:hover{transform:translateY(-6px);border-color:#d5ae5566;box-shadow:var(--glow)}
.profile-image{border-radius:12px;border:0;aspect-ratio:4/4.3}
.profile-image>img{transition:transform 1.1s var(--ease),filter .6s;object-position:center}
.profile-card:hover .profile-image>img{transform:scale(1.045)}
.profile-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,#000000a0);pointer-events:none}
.status{left:12px;top:12px;padding:7px 14px 7px 26px;border-radius:999px;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #d5ae5559;font-size:12.5px;font-weight:600;line-height:1.35;z-index:1}
.status::before{content:"";position:absolute;left:12px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px #d5ae5533}
.status>small{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;opacity:.75}
.profile-info{padding:20px 8px 2px}
.profile-info h3{font-size:36px;line-height:1.1}
.profile-card [data-slot=accordion]{padding:0 8px}
.profile-card [data-slot=accordion-item]{border-bottom:0}
.profile-card [data-slot=accordion-trigger]{border-bottom:0;border-top:1px solid var(--line);margin-top:14px;padding:16px 0 14px;font-size:13px;font-weight:600;letter-spacing:.05em;text-decoration:none!important}
.profile-card [data-slot=accordion-trigger]:hover{color:var(--gold-light)}
.facts{border-bottom:1px solid var(--line);padding:18px 0 22px;gap:14px}
.facts>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#d5ae5508}
.facts dt{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.facts dd{font-size:15.5px;color:var(--gold-light)}
.gallery{gap:8px;padding-top:14px}
.gallery button{border-radius:10px;padding:2px;transition:border-color .25s,transform .25s}
.gallery button:hover{transform:translateY(-2px)}
.gallery img{width:64px;height:64px;border-radius:8px}
.profile-card .button{margin:20px 0 14px;border-radius:12px}
.profile-card .phone-link small{letter-spacing:.02em}

/* ---- Kontakt ---- */
.contact{position:relative;border:0;border-radius:28px;padding:90px 30px;overflow:hidden;isolation:isolate;background:
  radial-gradient(600px 300px at 50% 0%,#d5ae5522,transparent 70%),linear-gradient(180deg,var(--panel-2),var(--panel))}
.contact::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(160deg,#ffe29a88,#d5ae5522 40%,#d5ae5522 60%,#bc974d88);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}
.contact h2{font-size:clamp(40px,4.6vw,64px)}
.contact-number{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4vw,54px);padding:6px 10px;transition:color .3s}
.contact-number:hover{color:var(--gold-light)}
.contact-number svg{width:28px;height:28px}

/* ---- Fußbereich ---- */
footer{padding-top:80px}
.footer-top{border-top:1px solid var(--line);padding-top:44px}
.footer-top>p{font-family:var(--serif);font-style:italic;font-size:24px}
.legal-inline{max-width:none;border-top:1px solid var(--line)}
.legal-inline [data-slot=accordion-item]{border-color:var(--line)!important}
.legal-inline [data-slot=accordion-trigger]{font-size:13px;font-weight:600;letter-spacing:.08em;padding-block:16px}
.legal-text{max-width:820px;font-size:14.5px}
.footer-bottom{border-top-color:var(--line);font-size:12px;letter-spacing:.04em;opacity:.85}

/* ---- Einblenden beim Scrollen ---- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.visible{opacity:1;transform:none}
.hero-copy>*{animation:rise .9s var(--ease) both}
.hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.16s}.hero-copy>*:nth-child(4){animation-delay:.24s}
.hero-visual{animation:rise 1.1s .15s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ---- Fehlerseiten ---- */
.page-content>h1{font-size:clamp(40px,5vw,64px)}

/* ==========================================================================
   Verwaltung
   ========================================================================== */
.dark>.site-header{padding:22px 0}
.admin-head{padding:10px 0 4px}
.admin-head h1{font-size:clamp(34px,4vw,52px)}
.admin-stats{gap:10px}
.admin-stats span{padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;font-size:13px;font-weight:600}
.admin-layout{grid-template-columns:260px minmax(0,1fr);gap:30px}
.admin-nav{position:sticky;top:20px;gap:6px}
.admin-nav button{border-radius:12px;border-color:var(--line);background:var(--panel);padding:10px 12px;transition:border-color .2s,background .2s,transform .2s;font-size:15px}
.admin-nav button:hover{border-color:var(--line-strong);background:var(--panel-2)}
.admin-nav button.active{background:linear-gradient(180deg,#2a2012,#1a140b);border-color:#d5ae5599}
.admin-nav img{border-radius:8px!important;width:38px!important;height:38px!important}
.editor{border-radius:18px;border-color:var(--line);background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:36px}
.editor h2{font-size:38px}
.field{font-size:13.5px;font-weight:500}
.field input,.field textarea{border-radius:10px;border-color:var(--line-strong);background:#050403;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #d5ae5526}
.field input::placeholder,.field textarea::placeholder{color:#8a7447}
.profile-field-editor{padding:22px;border:1px solid var(--line);border-radius:14px;background:#d5ae5505}
.profile-field-editor h3{font-size:28px}
.upload-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:#050403}
.upload-item img{border-radius:8px;width:100%;height:150px}
.upload-item button{font-size:12.5px;padding:4px 0}
.upload-item button:hover{color:var(--gold-light);text-decoration:underline}
.upload-control{border-radius:12px;border-color:var(--line-strong);transition:border-color .2s,background .2s}
.upload-control:hover{border-color:var(--gold);background:#d5ae550a}
.media-setting{border-radius:14px;border-color:var(--line)}
.text-editor-tools{border-radius:14px;border-color:var(--line);background:#050403}
.settings-groups [data-slot=accordion-item]{border-color:var(--line)}
.settings-groups [data-slot=accordion-trigger]{font-family:var(--serif);font-size:22px;font-weight:500}
.settings-save{background:linear-gradient(180deg,transparent,#050403 30%);border-top:0;padding-top:26px}
.inbox-item,.access-row{border-color:var(--line)}
.inbox-item{border-radius:14px}
.notice{border-radius:10px}
.admin-login-card{border-radius:22px;border-color:var(--line-strong);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:var(--glow),0 30px 80px #000a}
.admin-login-card h1{font-size:48px}
.admin-login-card .eyebrow::before{display:none}
.admin-login-page{justify-content:center}
.confirm-dialog{border-radius:18px}
.confirm-dialog h2{font-family:var(--serif);font-size:28px}

/* ---- Mobil ---- */
@media(max-width:1000px){
 #start>.site-header{padding-inline:24px}
 .hero-visual{height:460px}
 .admin-layout{grid-template-columns:210px minmax(0,1fr)}
}
@media(max-width:700px){
 #start>.site-header{padding:14px 18px;position:sticky}
 #start>.site-header>.phone-link{border-radius:999px;border:1px solid var(--line-strong);border-top:1px solid var(--line-strong);margin-top:4px;padding:9px 16px}
 .hero{padding:26px 0 70px}
 .hero h1{font-size:50px}
 .hero-visual{height:360px;border-radius:180px 180px 6px 6px;margin:10px 12px 0}
 .hero-visual::before{border-radius:192px 192px 12px 12px;inset:-10px}
 .catalog{padding:70px 0 80px}
 .profile-card{border-radius:16px}
 .contact{padding:60px 20px;border-radius:22px}
 .admin-nav{position:static}
 .editor{padding:20px;border-radius:14px}
 .profile-field-editor{padding:14px}
 .upload-item{width:100%}
}
@media(prefers-reduced-motion:reduce){
 .js .reveal{opacity:1;transform:none}
 .hero-copy>*,.hero-visual{animation:none}
 .profile-card:hover,.profile-card:hover .profile-image>img{transform:none}
}

/* ---- Feinschliff ---- */
body{overflow-x:clip}
@media(max-width:700px){
 #start>.site-header{flex-wrap:nowrap;gap:12px}
 #start>.site-header nav{margin-left:auto;padding:0}
 #start>.site-header>.phone-link{width:44px;height:44px;flex:0 0 44px;padding:0;margin:0;justify-content:center;border-radius:50%;border:1px solid var(--line-strong);background:#d5ae5512}
 #start>.site-header>.phone-link>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 #start>.site-header>.phone-missing{display:none}
 .brand>span{font-size:26px}
 .brand-logo{max-width:150px;max-height:46px}
}
@media(max-width:440px){#start>.site-header nav{display:none}#start>.site-header>.phone-link{margin-left:auto}}
.site-header nav a{white-space:nowrap}
.upload-control input::file-selector-button{margin-right:10px;padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;color:var(--gold);background:#d5ae5512;cursor:pointer;font-weight:600;font-size:13px}
.setup-card{width:min(100%,560px)}
.checks{margin:22px 0 6px;display:grid;gap:8px}
.check{display:flex;gap:12px;align-items:flex-start;padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px}
.check>span{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-content:center;font-size:12px;font-weight:700}
.check.ok>span{background:#d5ae5526;color:var(--gold-light)}
.check.bad{border-color:#c5726088}.check.bad>span{background:#c5726033;color:#f3ae99}
.check small{display:block;color:var(--muted-foreground);font-size:12.5px;margin-top:2px}
.admin-login-card code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;color:var(--gold-light)}
.setup-hint{font-size:13px;margin-top:16px;color:var(--muted-foreground)}

/* ---- Altersabfrage (18+) ---- */
.age-locked,.age-locked body{overflow:hidden}
.age-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:radial-gradient(800px 500px at 50% 30%,#1a1309f2,#000000f7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .45s var(--ease)}
.age-gate.leaving{opacity:0;pointer-events:none}
.age-card{position:relative;width:min(100%,520px);text-align:center;padding:48px 36px 40px;border-radius:24px;background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:var(--glow),0 40px 100px #000;animation:rise .7s var(--ease) both}
.age-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(160deg,#ffe29a88,#d5ae5522 45%,#bc974d88);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.age-badge{display:inline-grid;place-content:center;width:64px;height:64px;border-radius:50%;border:1px solid #d5ae5588;font-family:var(--serif);font-size:24px;font-weight:600;color:var(--gold-light);margin-bottom:22px}
.age-card h2{font-size:clamp(34px,5vw,46px);margin-bottom:14px}
.age-card p{color:var(--text-soft);font-size:15px;line-height:1.7}
.age-actions{display:flex;flex-direction:column;gap:12px;margin-top:30px}
.age-actions .button{width:100%}
.hero.without-image .eyebrow::after{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}

/* ---- Hintergrundbild im Startbereich ---- */
#start>main{position:relative;isolation:isolate}
.hero-bg{position:absolute;left:0;right:0;top:-120px;height:980px;z-index:-1;background-size:cover;background-position:center 30%;filter:blur(3px) brightness(.34) saturate(1.1);transform:scale(1.04);-webkit-mask-image:linear-gradient(to bottom,#000 45%,transparent 92%);mask-image:linear-gradient(to bottom,#000 45%,transparent 92%);pointer-events:none}
@media(max-width:700px){.hero-bg{height:900px;top:-90px}}

/* ---- Porträtformat für Fotos der Damen ---- */
.profile-image{aspect-ratio:3/4}
.profile-image>img{object-position:center 18%}
@media(max-width:700px){.profile-image{aspect-ratio:4/5}}

/* ---- Hero-Banner: großes Bild rechts, Text links (ersetzt das kleine Bogenbild) ---- */
.hero.has-banner{grid-template-columns:minmax(0,600px);min-height:640px;align-content:center;padding:40px 0 120px}
.hero.has-banner .hero-copy{position:relative;z-index:1}
.hero-bg{left:auto;right:0;width:min(70%,1200px);height:900px;top:-120px;filter:none;transform:none;background-size:cover;background-position:center 22%;
 -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 42%),linear-gradient(to bottom,#000 62%,transparent 100%);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(to right,transparent 0%,#000 42%),linear-gradient(to bottom,#000 62%,transparent 100%);mask-composite:intersect}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#050403d9 0%,#05040300 22%),radial-gradient(120% 90% at 70% 35%,transparent 40%,#050403b3 100%),linear-gradient(90deg,#050403 0%,#05040300 45%)}
@media(max-width:1000px){.hero.has-banner{min-height:560px}.hero-bg{width:100%;height:780px;opacity:.7}}
@media(max-width:700px){
 .hero.has-banner{min-height:0;padding:260px 0 60px}
 .hero-bg{width:100%;height:620px;top:-90px;opacity:1;background-position:center 18%;
  -webkit-mask-image:linear-gradient(to bottom,#000 45%,transparent 100%);mask-image:linear-gradient(to bottom,#000 45%,transparent 100%)}
 .hero-bg::after{background:linear-gradient(180deg,#05040366 0%,#05040300 30%,#050403d9 72%,#050403 100%)}
}

/* ---- Über uns ---- */
.about{padding:40px 0 100px}
.about-inner{max-width:820px;margin-inline:auto;text-align:center}
.about .eyebrow{justify-content:center}
.about .eyebrow::after{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.about h2{margin-bottom:22px}
.about-inner>p:not(.eyebrow){color:var(--text-soft);font-size:17px;line-height:1.85;white-space:pre-line}

/* ---- Hero als Vollbild ---- */
.hero-bg{left:0;right:0;width:auto;top:calc(-1 * var(--header-h,128px));height:100vh;height:100svh;min-height:620px;opacity:1;filter:none;transform:none;
 background-size:cover;background-position:65% 22%;
 -webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);-webkit-mask-composite:source-over;mask-composite:add}
.hero-bg::after{background:linear-gradient(180deg,#050403cc 0%,#05040300 20%),linear-gradient(90deg,#050403f2 0%,#050403c7 30%,#05040333 62%,#05040300 80%)}
.hero.has-banner{min-height:calc(100vh - var(--header-h,128px));min-height:calc(100svh - var(--header-h,128px));padding:40px 0 90px;align-content:center}
.hero.has-banner+.catalog::before{display:none}
@media(max-width:1000px){.hero-bg{opacity:1;height:100svh}}
@media(max-width:700px){
 .hero-bg{height:100svh;top:calc(-1 * var(--header-h,76px));background-position:60% 20%;
  -webkit-mask-image:linear-gradient(to bottom,#000 80%,transparent 100%);mask-image:linear-gradient(to bottom,#000 80%,transparent 100%)}
 .hero-bg::after{background:linear-gradient(180deg,#05040399 0%,#05040300 22%,#05040300 38%,#050403e6 70%,#050403 100%)}
 .hero.has-banner{align-content:end;padding:0 0 56px}
}

/* ---- Hero abgedunkelt (kaschiert die geringe Bildauflösung) ---- */
.hero-bg{filter:brightness(.62) saturate(.9) blur(1.5px);transform:scale(1.02)}
.hero-bg::after{background:linear-gradient(180deg,#050403d9 0%,#05040333 22%),linear-gradient(90deg,#050403f5 0%,#050403cc 32%,#05040366 62%,#05040340 100%),radial-gradient(90% 80% at 65% 40%,transparent 30%,#050403a6 100%)}
@media(max-width:700px){.hero-bg::after{background:linear-gradient(180deg,#050403b3 0%,#05040340 25%,#05040359 40%,#050403eb 70%,#050403 100%)}}
