@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Oswald:wght@600&display=swap");

:root {
  --bg: #17151a;
  --bg-card: #211e26;
  --text: #f2ede7;
  --muted: #b6afc4;
  --accent: #c9a769;
  --border: #322e3a;
  --paper: #f7f7f5;
  --panel: #e8e8e6;
  --ink: #181817;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
}

a { color: inherit; }

header.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 5%;
  border-bottom: 1px solid var(--border);
}

.brand {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-size: 1.25rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}

.brand span { color: var(--accent); }

main { max-width: 980px; margin: 0 auto; padding: 2.5rem 5%; }

.profile-head {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 2rem;
}

.profile-head img {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  background: var(--bg-card);
}

.profile-head h1 {
  margin: 0 0 0.25rem;
  font-size: 2.25rem;
}

.profile-head .subtitle {
  color: var(--muted);
  margin: 0;
}

.badge {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.2rem 0.7rem;
  border: 1px solid var(--accent);
  border-radius: 999px;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}

.gallery figure {
  margin: 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}

.gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  background: #2a2732;
}

.gallery .locked::after {
  content: "Auf Anfrage weitere Bilder";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem;
  font-size: 0.8rem;
  color: var(--muted);
  background: rgba(23, 21, 26, 0.75);
  backdrop-filter: blur(2px);
}

.section-title {
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.5rem;
  margin: 2.5rem 0 1rem;
}

table.data-table {
  width: 100%;
  border-collapse: collapse;
}

table.data-table tr {
  border-bottom: 1px solid var(--border);
}

table.data-table th, table.data-table td {
  text-align: left;
  padding: 0.6rem 0;
  vertical-align: top;
}

table.data-table th {
  width: 40%;
  color: var(--muted);
  font-weight: 400;
}

.disclaimer {
  margin-top: 3rem;
  padding: 1rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  font-size: 0.8rem;
  color: var(--muted);
}

footer.site-footer {
  margin-top: 3rem;
  padding: 1.5rem 5%;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.8rem;
  text-align: center;
}

/* ========================================================================
   Model profile page (hero, tabs, sedcard, honorar)
   Struktur übernommen aus Referenz-Layout; Farben/Schrift/Icons: TODO später
   ======================================================================== */

.btn-cta {
  display: inline-block;
  padding: 0.85rem 1.75rem;
  background: var(--accent);
  color: var(--bg);
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-align: center;
}

/* ---- Hero ---- */

body.profile-page:not(.city-page) > main {
  padding-top: calc(clamp(.75rem, 1.5vw, 1.35rem) + 7.4rem + 2px);
}

.model-hero {
  position: relative;
  width: 100vw;
  max-width: none;
  height: 420px;
  margin: 0 0 4.5rem calc(50% - 50vw);
  background-size: cover;
  background-position: center;
  background-color: var(--bg-card);
}

@media (max-width: 560px) {
  body.profile-page:not(.city-page) > main {
    padding-top: calc(clamp(.75rem, 1.5vw, 1.35rem) + 6.75rem + 2px);
  }
}

.model-hero__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(180deg, rgba(23,21,26,0.55) 0%, rgba(23,21,26,0.25) 40%, rgba(23,21,26,0.75) 100%);
  padding: 1rem;
}

.model-hero__brand {
  margin: 0 0 0.5rem;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text);
  opacity: 0.8;
}

.model-hero__name {
  margin: 0;
  max-width: 22ch;
  font-size: clamp(1.9rem, 5vw, 2.75rem);
  letter-spacing: 0.04em;
}

.model-hero__subtitle {
  margin: 0.4rem 0 0;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.model-hero__avatar {
  position: absolute;
  left: 50%;
  bottom: -4rem;
  transform: translateX(-50%);
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  border: 4px solid var(--bg);
  background: var(--bg-card);
  object-fit: cover;
}

/* ---- Tabs ---- */

.model-tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 0 5% 1.25rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2.5rem;
}

.model-tabs__item {
  background: none;
  border: none;
  padding: 0.5rem 0.1rem;
  font: inherit;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.model-tabs__item:hover {
  color: var(--text);
}

.model-tabs__item.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.model-tabs__cta {
  margin-left: auto;
}

@media (max-width: 640px) {
  .model-tabs { justify-content: flex-start; }
  .model-tabs__cta { margin-left: 0; width: 100%; }
}

.model-tabpanel__intro {
  text-align: center;
  color: var(--muted);
  margin: 0 0 2rem;
}

/* ---- Stats row (Alter / Größe / BH-Größe) ---- */

.model-stats {
  display: flex;
  justify-content: center;
  gap: 3.5rem;
  flex-wrap: wrap;
  text-align: center;
  margin-bottom: 2.5rem;
}

.model-stats__label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.35rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--accent);
}

/* ---- Photo mosaic ---- */

.model-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.model-gallery figure {
  margin: 0;
  position: relative;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}

.model-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.model-gallery figure.wide {
  grid-column: 1 / -1;
}

.model-gallery figure.wide img {
  aspect-ratio: 16 / 9;
}

.model-gallery figure.is-locked img {
  filter: blur(8px);
  transform: scale(1.05);
}

.model-gallery figure.is-locked::after {
  content: "Auf Anfrage stellen wir Ihnen gerne weitere Bilder zur Verfügung.";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.25rem;
  font-size: 0.8rem;
  color: var(--muted);
  background: rgba(23, 21, 26, 0.75);
  backdrop-filter: blur(3px);
}

.model-gallery__hint {
  text-align: center;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 1.5rem 0 3rem;
}

/* ---- Sedcard ---- */

.sedcard-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  align-items: start;
}

.sedcard-main h2 {
  margin-top: 0;
}

.sedcard-main p {
  color: var(--muted);
}

.sedcard-card {
  position: sticky;
  top: 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
}

.sedcard-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 1rem;
}

.sedcard-card h3 {
  margin: 0 0 0.2rem;
}

.sedcard-card__location {
  color: var(--muted);
  margin: 0 0 1.25rem;
  font-size: 0.85rem;
}

.sedcard-card__cities-label {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.6rem;
}

.sedcard-card__cities {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.sedcard-card__cities span {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.25rem 0.7rem;
  font-size: 0.75rem;
  color: var(--muted);
}

.sedcard-card .btn-cta {
  width: 100%;
}

@media (max-width: 820px) {
  .sedcard-layout { grid-template-columns: 1fr; }
  .sedcard-card { position: static; }
}

/* ---- Honorar ---- */

.honorar-intro {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.5rem;
  color: var(--muted);
}

.honorar-intro h2 {
  color: var(--text);
}

.honorar-tables {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.price-table {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem;
}

.price-table h3 {
  margin: 0 0 1rem;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  color: var(--accent);
}

.price-table table {
  width: 100%;
  border-collapse: collapse;
}

.price-table tr {
  border-bottom: 1px solid var(--border);
}

.price-table td {
  padding: 0.5rem 0;
  color: var(--muted);
}

.price-table td:last-child {
  text-align: right;
  color: var(--text);
}

.honorar-disclaimer {
  text-align: center;
  font-size: 0.75rem;
  color: var(--muted);
  max-width: 640px;
  margin: 0 auto;
}

@media (max-width: 720px) {
  .honorar-tables { grid-template-columns: 1fr; }
}

/* ---- Interview accordion ---- */

.model-interview {
  margin: 4rem 0 2rem;
}

.model-interview summary {
  cursor: pointer;
  padding: 1rem 1.25rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  list-style: none;
  font-size: 0.9rem;
}

.model-interview summary::-webkit-details-marker { display: none; }

.model-interview summary::after {
  content: "+";
  float: right;
  color: var(--accent);
}

.model-interview[open] summary::after {
  content: "–";
}

.model-interview p {
  color: var(--muted);
  padding: 1rem 1.25rem 0;
}

/* ---- Prev/next ---- */

.model-prevnext {
  display: flex;
  padding: 1rem 1.25rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-bottom: 3rem;
  font-size: 0.85rem;
}

.model-prevnext a {
  text-decoration: none;
  color: var(--muted);
}

.model-prevnext a:hover {
  color: var(--accent);
}

/* ---- Related models ---- */

.model-related h2 {
  text-align: center;
  font-size: 1.1rem;
  margin-bottom: 2rem;
}

.model-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.25rem;
}

.related-card {
  display: block;
  text-decoration: none;
  color: var(--text);
}

.related-card img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--border);
  margin-bottom: 0.6rem;
}

.related-card strong {
  display: block;
  font-size: 0.85rem;
}

.related-card small {
  color: var(--muted);
  font-size: 0.75rem;
}

/* ---- Contact placeholder ---- */

.model-contact {
  text-align: center;
  padding: 3rem 1.5rem;
  margin: 4rem 0 2rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
}

.model-contact p {
  color: var(--muted);
  max-width: 480px;
  margin: 0 auto 1.5rem;
}

/* Homepage */
body.home-page{margin:0;background:#111;color:#fff}.home-page::selection{color:#111;background:#fff}
.home-page>main.home-hero{width:100%;max-width:none;margin:0;padding:0}
.home-header{position:absolute;z-index:20;inset:clamp(.75rem,1.5vw,1.35rem) clamp(.75rem,1.5vw,1.35rem) auto;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.22);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,backdrop-filter .25s ease}.home-header:hover,.home-header:focus-within{background:rgba(17,15,18,.48);border-color:rgba(255,255,255,.32);box-shadow:0 18px 48px rgba(0,0,0,.28);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%)}
.header-topline{height:2.15rem;display:flex;align-items:center;justify-content:space-between;padding:0 3.2vw;border-bottom:1px solid rgba(255,255,255,.16);font-size:.59rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.header-main{height:5.25rem;display:grid;grid-template-columns:minmax(13rem,1fr) auto minmax(13rem,1fr);align-items:center;padding:0 3.2vw}
.home-brand{width:max-content;color:inherit;font-family:"Oswald","Arial Narrow",sans-serif;font-size:1.55rem;font-weight:600;line-height:1;letter-spacing:.08em;text-decoration:none}.home-brand small{display:block;margin-top:.4rem;font-family:"Helvetica Neue",Arial,sans-serif;font-size:.43rem;font-weight:600;letter-spacing:.45em}
.home-nav{height:100%;display:flex;align-items:stretch;gap:clamp(1.15rem,2vw,2.3rem)}.home-nav>a,.nav-item>a,.nav-item>button{position:relative;display:flex;align-items:center;gap:.5rem;color:inherit;font-size:.76rem;font-weight:500;text-decoration:none;white-space:nowrap}.nav-item>button{appearance:none;padding:0;background:none;border:0;font:inherit;cursor:pointer}.home-nav>a::after,.nav-item>a::after,.nav-item>button::after{content:"";position:absolute;right:0;bottom:1.05rem;left:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .22s ease}.home-nav>a:hover::after,.home-nav>a:focus-visible::after,.nav-item:hover>a::after,.nav-item:focus-within>a::after,.nav-item:hover>button::after,.nav-item:focus-within>button::after,.nav-item>button.is-active::after,.home-nav>a.is-active::after{transform:scaleX(1)}.nav-item{display:flex;align-items:stretch}.nav-chevron{width:.36rem;height:.36rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-.12rem) rotate(45deg);transition:transform .22s ease}.nav-item:hover .nav-chevron,.nav-item:focus-within .nav-chevron{transform:translateY(.12rem) rotate(225deg)}
.header-request{justify-self:end;display:flex;align-items:center;gap:1.4rem;padding:.72rem .9rem;color:var(--ink);background:#fff;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:color .2s ease,background .2s ease}.home-header:hover .header-request,.home-header:focus-within .header-request{color:#fff;background:var(--ink)}
.mega-menu{position:absolute;top:7.4rem;left:0;width:100%;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:clamp(2rem,6vw,7rem);padding:2.5rem max(3.2vw,calc((100vw - 72rem)/2));color:var(--ink);background:var(--panel);box-shadow:0 22px 45px rgba(0,0,0,.16);opacity:0;visibility:hidden;transform:translateY(-.6rem);transition:opacity .18s ease,transform .28s cubic-bezier(.16,1,.3,1),visibility .18s}.nav-item:hover .mega-menu,.nav-item:focus-within .mega-menu{opacity:1;visibility:visible;transform:translateY(0)}.mega-menu__col{display:flex;flex-direction:column}.mega-menu__col strong{margin-bottom:.8rem;padding-bottom:.75rem;border-bottom:1px solid rgba(0,0,0,.16);font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;font-weight:400}.mega-menu__col a{padding:.48rem 0;color:#676764;border-bottom:1px solid rgba(0,0,0,.1);font-size:.78rem;text-decoration:none}.mega-menu__col a:hover,.mega-menu__col a:focus-visible{color:#000;padding-left:.4rem}.mega-menu__col--title strong{font-size:clamp(1.8rem,3vw,3.1rem);line-height:1}.mega-menu__col--title p{max-width:34ch;margin:0 0 1rem;color:#676764;font-size:.8rem}.mega-menu--cities{grid-template-columns:repeat(5,1fr);gap:clamp(1.25rem,3vw,3rem)}
.mega-menu__col a small{display:block;margin-top:.15rem;color:#9a9a96;font-size:.68rem;text-transform:none;letter-spacing:0}
.mega-menu__more{margin-top:auto;padding:.6rem .9rem!important;color:#fff!important;background:var(--ink);border:none!important;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center}.mega-menu__more:hover,.mega-menu__more:focus-visible{padding-left:.9rem!important;background:#000!important;color:#fff!important}
.mega-menu--models{grid-template-columns:11.5rem minmax(0,1fr);gap:2rem;padding:1rem max(2.6vw,calc((100vw - 62rem)/2)) 1.25rem}
.mega-menu__sidebar{display:flex;flex-direction:column;padding-right:0}
.mega-menu__section-title,.mega-menu__heading{margin:0 0:.55rem;padding:0 0 .55rem;border-bottom:1px solid rgba(0,0,0,.14);font-family:"Helvetica Neue",Arial,sans-serif;font-size:.78rem;font-weight:500;line-height:1.2}
.mega-menu__sidebar a{padding:.37rem 0;color:#676764;font-size:.73rem;line-height:1.15;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.1)}
.mega-menu__sidebar a:hover,.mega-menu__sidebar a:focus-visible,.mega-menu__sidebar a.is-active{color:#000;padding-left:0}

.mega-menu__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}
.mega-model{display:flex;flex-direction:column;color:inherit;text-decoration:none}
.mega-model img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;background:#d9d9d5}
.mega-model span{margin-top:.48rem;font-size:.75rem;font-weight:500;text-align:center}
.mega-model small{color:#8a8a86;font-size:.68rem}
.mega-model--placeholder{align-items:center;justify-content:center;aspect-ratio:3/4;background:rgba(0,0,0,.05);border:1px dashed rgba(0,0,0,.18)}
.mega-model__soon{padding:0 1rem;color:#8a8a86;font-size:.72rem;text-align:center}
.home-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:#111 url("/model/Kira/photos/kira-3.jpg") center 30%/cover no-repeat}.home-hero__video,.home-hero__shade{position:absolute;inset:0;width:100%;height:100%}.home-hero__video{z-index:-2;object-fit:cover;object-position:center 30%}.home-hero__shade{z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.12) 70%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 45%)}.home-hero__content{max-width:46rem;padding:0 5vw clamp(7rem,15vh,10rem)}.home-hero__content h1{max-width:26ch;margin:0 0 1.25rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.3rem,7.5vw,6rem);font-weight:400;letter-spacing:-.035em;line-height:.92;text-wrap:balance}.home-hero__content p{max-width:42ch;margin:0 0 2rem;color:rgba(255,255,255,.84);font-size:clamp(.9rem,1.2vw,1.05rem)}.hero-cta{display:inline-flex;align-items:center;gap:2.4rem;padding:.9rem 1.1rem;color:var(--ink);background:#fff;font-size:.7rem;font-weight:600;letter-spacing:.07em;text-decoration:none;text-transform:uppercase;transition:gap .22s ease,background .18s ease}.hero-cta:hover,.hero-cta:focus-visible{gap:3rem;background:#e3e3df}.home-hero__meta{position:absolute;right:3.2vw;bottom:2.1rem;left:3.2vw;display:flex;justify-content:space-between;color:rgba(255,255,255,.62);font-size:.59rem;letter-spacing:.17em;text-transform:uppercase}
.home-footer{min-height:22rem;display:grid;grid-template-columns:1fr auto;align-content:space-between;padding:4rem 3.2vw 2rem;color:var(--ink);background:var(--paper)}.home-footer__brand{grid-column:1/-1;font-family:"Oswald","Arial Narrow",sans-serif;font-size:clamp(4.2rem,16vw,13rem);font-weight:600;line-height:.8;letter-spacing:.015em}.home-footer__note,.home-footer__legal{color:#62625f;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.home-page a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:980px){.header-main{grid-template-columns:1fr auto}.home-nav{position:absolute;top:7.4rem;left:0;right:0;height:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:1rem 1.25rem;color:var(--ink);background:var(--paper);opacity:0;visibility:hidden;transform:translateY(-.5rem)}.home-header:hover .home-nav,.home-header:focus-within .home-nav{opacity:1;visibility:visible;transform:translateY(0)}.home-nav>a,.nav-item>a,.nav-item>button{min-height:2.5rem}.nav-item{display:block}.mega-menu{display:none}.header-request{font-size:.58rem}.home-hero__content{padding-inline:1.25rem}.home-hero__meta{right:1.25rem;left:1.25rem}}
@media(max-width:560px){.header-topline span:first-child{display:none}.header-topline{justify-content:flex-end}.header-main{height:4.6rem;padding-inline:1.25rem}.home-brand{font-size:1.15rem}.header-request{padding:.65rem}.header-request span{display:none}.home-nav{top:6.75rem;grid-template-columns:1fr 1fr}.home-hero__content{padding-bottom:7.5rem}.home-hero__content h1{font-size:clamp(3rem,15vw,4.8rem)}.home-hero__meta span:first-child{display:none}.home-hero__meta{justify-content:flex-end}.home-footer{min-height:18rem;grid-template-columns:1fr;gap:1rem;padding:3rem 1.25rem 1.5rem}.home-footer__brand{font-size:23vw}}
@media(prefers-reduced-motion:reduce){.home-hero__video{display:none}.home-header,.mega-menu,.nav-chevron,.hero-cta{transition:none}}

/* Nav dropdowns float below the glass header but stay a light, opaque panel like the reference */
.home-page .header-request:hover,
.home-page .header-request:focus-visible{gap:1.8rem;background:#eeeae5}
.home-page .mega-menu{top:calc(100% + .65rem)}
@media(max-width:980px){
  .home-page .home-nav{top:calc(100% + .65rem)}
  .home-page .home-nav>a,.home-page .nav-item>a,.home-page .nav-item>button{min-height:2.75rem}
}
@media(max-width:560px){
  .home-page .home-header{inset:.6rem .6rem auto}
  .home-page .home-nav{top:calc(100% + .65rem)}
  .home-page .home-hero__video{object-position:58% center}
}

.model-related__grid--featured {
  grid-template-columns: repeat(2, minmax(0, 18rem));
  justify-content: center;
}

@media (max-width: 560px) {
  .model-related__grid--featured { grid-template-columns: minmax(0, 1fr); }
}

/* City availability pages */
.city-page{background:var(--bg);color:var(--text)}
.city-main{max-width:74rem;margin:0 auto;padding:clamp(11rem,18vw,15rem) 2rem 6rem}
.city-hero{max-width:52rem;margin:0 auto clamp(5rem,9vw,8rem);text-align:center}
.city-hero h1{margin:0 0 1.1rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(3.5rem,9vw,6rem);font-weight:500;letter-spacing:-.035em;line-height:.92;text-wrap:balance}
.city-hero p{max-width:48rem;margin:0 auto;color:var(--muted);font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.75}
.city-hero--photo{position:relative;width:100vw;max-width:none;margin:calc(clamp(.75rem,1.5vw,1.35rem) + 7.4rem + 2px - clamp(11rem,18vw,15rem)) 0 clamp(3.5rem,7vw,5.5rem) calc(50% - 50vw);min-height:460px;padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background-size:cover;background-position:center;background-color:var(--bg-card)}
.city-hero--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,21,26,.6) 0%,rgba(23,21,26,.3) 40%,rgba(23,21,26,.8) 100%)}
.city-hero--photo h1,.city-hero--photo p{position:relative;z-index:1}
.city-availability{padding:3.25rem 0;border-top:1px solid var(--border)}
.city-availability__head{display:grid;grid-template-columns:minmax(12rem,.8fr) 2fr;gap:3rem;align-items:start;margin-bottom:2rem}
.city-availability__head h2{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2rem,4vw,3rem);font-weight:500;letter-spacing:-.025em}
.city-availability__head p{max-width:50ch;margin:.4rem 0 0;color:var(--muted);line-height:1.7}
.city-page .model-related__grid{grid-template-columns:repeat(auto-fit,minmax(13rem,17rem));justify-content:start}
.city-page .related-card img{transition:transform .35s cubic-bezier(.22,1,.36,1),filter .35s ease}
.city-page .related-card:hover img,.city-page .related-card:focus-visible img{transform:translateY(-4px);filter:brightness(1.05)}
.city-page .related-card:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.city-empty{width:100%;min-height:15rem;aspect-ratio:auto;gap:1.4rem;padding:2.5rem}
.city-empty .mega-model__soon{max-width:39rem;line-height:1.65}
.city-empty a,.city-state button{color:var(--text);border:0;border-bottom:1px solid var(--accent);background:transparent;font:inherit;font-size:.72rem;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer}
.city-state{grid-column:1/-1;min-height:10rem;display:grid;place-items:center;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-align:center}
.city-state--error{gap:1rem}
.city-state--error p{margin:0}
.city-contact{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin-top:3rem;padding:2.25rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.city-contact h2{max-width:18ch;margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:500}
.city-contact .btn-cta{white-space:nowrap}
@media(max-width:700px){.city-main{padding-inline:1.25rem}.city-availability__head{grid-template-columns:1fr;gap:.6rem}.city-contact{align-items:flex-start;flex-direction:column}.city-page .model-related__grid{grid-template-columns:minmax(0,1fr)}.city-empty{min-height:13rem}}

/* ---- Orte-Karten (Restaurants/Hotels/Sehenswürdigkeiten) ---- */

.place-card__placeholder {
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-card);
  margin-bottom: 0.6rem;
}

.places-groups {
  display: grid;
  gap: 2.5rem;
}

.places-group h3 {
  margin: 0 0 1rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.3rem;
  font-weight: 500;
}

/* ---- Media-Karten (Blog + Orte): Vollbild-Foto, Verlauf, Badge, Text unten ---- */

.media-card {
  position: relative;
  display: block;
  aspect-ratio: 5 / 7;
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-card);
  color: #fff;
  text-decoration: none;
}

.media-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.media-card__placeholder {
  position: absolute;
  inset: 0;
  background: var(--bg-card);
}

.media-card__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(180,140,86,.92) 0%, rgba(8,8,10,.78) 26%, rgba(8,8,10,.15) 58%, rgba(8,8,10,.35) 100%);
}

.media-card__badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: rgba(8,8,10,.7);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.media-card__content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 1.4rem 1.25rem 1.25rem;
}

.media-card__meta {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
}

.media-card__title {
  display: block;
  margin: 0 0 0.35rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.15;
  color: #fff;
}

.media-card__excerpt {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(255,255,255,.82);
}

@media (max-width: 560px) {
  .media-card { aspect-ratio: 4 / 5; }
}

/* ---- Blog ---- */

.blog-main {
  max-width: 60rem;
  margin: 0 auto;
  padding: clamp(11rem, 18vw, 15rem) 2rem 6rem;
}

.blog-hero {
  max-width: 42rem;
  margin: 0 auto clamp(3.5rem, 7vw, 6rem);
  text-align: center;
}

.blog-hero h1 {
  margin: 0 0 1.1rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.6rem, 6vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1;
}

.blog-hero p {
  color: var(--muted);
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.7;
}

.blog-post {
  max-width: 42rem;
  margin: 0 auto;
}

.blog-post__meta {
  display: block;
  text-align: center;
  margin-bottom: 0.75rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.blog-post__cover {
  display: block;
  width: 100%;
  max-height: 26rem;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--border);
  margin-bottom: 2.5rem;
}

.blog-post__body {
  color: var(--text);
  font-size: 1rem;
  line-height: 1.85;
}

.blog-post__body h2 {
  margin: 2.2rem 0 0.9rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--accent);
}

.blog-post__body p { margin: 0 0 1.1rem; }

.blog-post__places {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--border);
}

.blog-post__places h2 {
  margin: 0 0 1.5rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.6rem;
  font-weight: 500;
}

@media (max-width: 700px) {
  .blog-main { padding-inline: 1.25rem; }
}

/* Homepage editorial sections */
.home-page{
  --paper:#f2eee8;
  --paper-deep:#e6ded4;
  --ink:#181513;
  --ink-soft:#655e58;
  --wine:#4d2028;
  --brass:#a98651;
  --line:rgba(24,21,19,.16);
}
.home-page{font-family:"Helvetica Neue",Arial,sans-serif}
.home-page h1,.home-page h2,.home-page h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif}
.service-section,.about-section,.contact-section{scroll-margin-top:2rem}
.service-section{padding:clamp(5rem,10vw,9rem) max(5vw,calc((100vw - 76rem)/2));color:var(--ink);background:var(--paper)}
.section-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.65fr);gap:clamp(2rem,8vw,8rem);align-items:end;padding-bottom:clamp(3rem,6vw,5rem);border-bottom:1px solid var(--line)}
.section-intro h2,.about-copy h2,.contact-copy h2{margin:0;font-size:clamp(3rem,6vw,5.5rem);font-weight:400;letter-spacing:-.035em;line-height:.92;text-wrap:balance}
.section-intro p{max-width:48ch;margin:0;color:var(--ink-soft);font-size:1rem;line-height:1.75}
.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,5rem);padding-top:clamp(2.5rem,5vw,4.5rem)}
.service-item{position:relative;padding-top:3.75rem}
.service-icon{position:absolute;top:0;left:0;width:2rem;height:2rem;fill:none;stroke:var(--brass);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.service-item h3{margin:0 0 .75rem;font-size:clamp(1.55rem,2.2vw,2rem);font-weight:500}
.service-item p{max-width:34ch;margin:0;color:var(--ink-soft);line-height:1.7}
.about-section{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(22rem,.95fr);min-height:48rem;color:var(--paper);background:var(--wine)}
.about-image{min-height:42rem;overflow:hidden}.about-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.about-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8rem)}
.about-copy h2{margin-bottom:clamp(2rem,5vw,4rem)}
.about-lead{max-width:20ch;margin:0 0 2rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.15}
.about-copy>p:not(.about-lead){max-width:52ch;margin:0;color:rgba(242,238,232,.72);line-height:1.8}
.text-link{display:inline-flex;align-items:center;align-self:flex-start;gap:2rem;margin-top:2.5rem;padding-bottom:.4rem;border-bottom:1px solid currentColor;color:inherit;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:gap .22s ease}.text-link:hover,.text-link:focus-visible{gap:2.7rem}
.contact-section{display:grid;grid-template-columns:minmax(18rem,.72fr) minmax(0,1.28fr);gap:clamp(3rem,8vw,8rem);padding:clamp(5rem,9vw,8rem) max(5vw,calc((100vw - 76rem)/2));color:var(--ink);background:var(--paper-deep)}
.contact-copy>p{max-width:40ch;margin:2rem 0;color:var(--ink-soft);line-height:1.75}
.contact-details{margin:3rem 0 0}.contact-details div{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;padding:.8rem 0;border-top:1px solid var(--line)}.contact-details dt{color:var(--ink-soft);font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.contact-details dd{margin:0;font-size:.85rem}
.contact-form{padding:clamp(1.5rem,4vw,3.5rem);background:var(--paper)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 1.25rem}
.contact-form label>span:first-child{display:block;margin-bottom:.5rem;color:var(--ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.7rem .1rem;background:transparent;color:var(--ink);font:inherit;outline:none;transition:border-color .18s ease,background-color .18s ease}
.contact-form textarea{resize:vertical;min-height:8rem}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-bottom-color:var(--wine);background:rgba(77,32,40,.035)}
.form-message{display:block;margin-top:1.5rem}.form-consent{display:flex;align-items:flex-start;gap:.75rem;margin-top:1.25rem}.form-consent input{flex:0 0 auto;width:1rem;height:1rem;margin:.15rem 0 0;accent-color:var(--wine)}.form-consent span{color:var(--ink-soft);font-size:.76rem;line-height:1.5}
.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.form-actions{display:flex;align-items:center;gap:1.5rem;margin-top:2rem}.form-submit{display:inline-flex;align-items:center;justify-content:space-between;gap:2.5rem;min-width:13rem;padding:1rem 1.15rem;border:0;background:var(--wine);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background-color .18s ease,gap .22s ease}.form-submit:hover,.form-submit:focus-visible{gap:3rem;background:#32141a}.form-submit:disabled{cursor:wait;opacity:.58}.form-status{margin:0;color:var(--ink-soft);font-size:.8rem}.form-status.is-error{color:#8b1e2d}.form-status.is-success{color:#365c3b}
.home-footer{min-height:0;display:block;margin:0;padding:clamp(4rem,8vw,7rem) max(5vw,calc((100vw - 76rem)/2)) 2rem;color:var(--paper);background:var(--ink)}
.footer-top{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:clamp(3rem,6vw,5rem);border-bottom:1px solid rgba(242,238,232,.18)}.footer-wordmark{font-family:"Oswald","Arial Narrow",sans-serif;font-size:clamp(4rem,12vw,10rem);font-weight:600;line-height:.78;letter-spacing:.015em;text-decoration:none}.footer-top p{margin:0;color:rgba(242,238,232,.58);font-size:.68rem;letter-spacing:.12em;line-height:1.8;text-align:right;text-transform:uppercase}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:3rem 0}.footer-links div{display:flex;flex-direction:column;align-items:flex-start}.footer-links strong{margin-bottom:.8rem;color:rgba(242,238,232,.45);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}.footer-links a,.footer-links span{padding:.3rem 0;color:var(--paper);font-family:"Cormorant Garamond",Georgia,serif;font-size:1.25rem;text-decoration:none}.footer-links span{color:rgba(242,238,232,.55);font-size:1rem}.footer-links a:hover,.footer-links a:focus-visible{color:#d3b887}
.footer-bottom{display:flex;justify-content:space-between;padding-top:1.25rem;border-top:1px solid rgba(242,238,232,.18);color:rgba(242,238,232,.48);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}
.home-page :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--brass);outline-offset:4px}
@media(max-width:800px){.section-intro,.contact-section{grid-template-columns:1fr}.service-list{grid-template-columns:1fr;gap:2.5rem}.service-item{padding-left:3.5rem;padding-top:0}.service-icon{top:.15rem}.about-section{grid-template-columns:1fr;min-height:0}.about-image{min-height:32rem}.about-copy{padding:4rem 1.5rem}.contact-section{padding-inline:1.5rem}.footer-top{align-items:flex-start;flex-direction:column;gap:2rem}.footer-top p{text-align:left}}
@media(max-width:560px){.service-section{padding-inline:1.25rem}.section-intro{grid-template-columns:1fr}.section-intro p{min-width:0}.form-grid{grid-template-columns:1fr}.contact-form{padding:1.5rem}.form-actions{align-items:flex-start;flex-direction:column}.form-submit{width:100%}.footer-links{grid-template-columns:1fr 1fr}.footer-links div:last-child{grid-column:1/-1}.footer-bottom{align-items:flex-start;flex-direction:column;gap:.75rem}}
@media(prefers-reduced-motion:reduce){.text-link,.form-submit{transition:none}}

/* ---- Login / Dashboard (Profilverwaltung) ---- */

body.auth-page {
  min-height: 100vh;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  color: var(--text);
  font-family: "Helvetica Neue", Arial, sans-serif;
  padding: 2rem 1rem;
}

.auth-card {
  width: 100%;
  max-width: 360px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2rem;
}

.auth-card__brand {
  display: block;
  text-align: center;
  margin-bottom: 0.35rem;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text);
  text-decoration: none;
}

.auth-card__brand span { color: var(--accent); }

.auth-card__title {
  text-align: center;
  margin: 0 0 1.5rem;
  color: var(--muted);
  font-size: 0.8rem;
}

.auth-field { display: block; margin-bottom: 1rem; }

.auth-field label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.35rem;
}

.auth-field input {
  width: 100%;
  padding: 0.65rem 0.75rem;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-size: 0.9rem;
  box-sizing: border-box;
}

.auth-field input:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.auth-status {
  min-height: 1.2rem;
  margin: 0 0 1rem;
  font-size: 0.8rem;
  color: var(--muted);
}

.auth-status.is-error { color: #e28a8a; }
.auth-status.is-success { color: #9cd6a8; }

.auth-card .btn-cta { width: 100%; }

.auth-card__footer {
  margin-top: 1.25rem;
  text-align: center;
  font-size: 0.78rem;
}

.auth-card__footer a { color: var(--accent); text-decoration: none; }
.auth-card__footer a:hover { text-decoration: underline; }

body.dashboard-page {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: "Helvetica Neue", Arial, sans-serif;
}

.dashboard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 5%;
  border-bottom: 1px solid var(--border);
}

.dashboard-main {
  max-width: 720px;
  margin: 0 auto;
  padding: 2.5rem 5%;
}

.dashboard-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.75rem;
  margin-bottom: 1.5rem;
}

.dashboard-card h2 {
  margin: 0 0 1.25rem;
  font-size: 1rem;
  color: var(--accent);
}

.dashboard-empty {
  color: var(--muted);
  font-size: 0.85rem;
}

.dashboard-city-block {
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
}

.dashboard-city-block:last-child { border-bottom: none; }

.dashboard-city-block h3 {
  margin: 0 0 0.6rem;
  font-size: 0.95rem;
}

.dashboard-tier-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.dashboard-tier-tag {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 0.72rem;
  color: var(--muted);
}

.dashboard-tier-tag.is-active {
  border-color: var(--accent);
  color: var(--accent);
}
