/* V88 - Ruhigere, engere Typografie-Hierarchie fuer Frontend und Backend */
:root{
  --v88-display: clamp(2.15rem, 5.2vw, 4.65rem);
  --v88-h1: clamp(2rem, 4.2vw, 3.75rem);
  --v88-h2: clamp(1.62rem, 3vw, 2.65rem);
  --v88-h3: clamp(1.24rem, 2vw, 1.72rem);
  --v88-body: clamp(1rem, .22vw + .96rem, 1.12rem);
  --v88-small: clamp(.86rem, .13vw + .82rem, .98rem);
  --v88-micro: clamp(.76rem, .1vw + .73rem, .86rem);
  --v88-line-tight: 1.06;
  --v88-line-title: 1.13;
  --v88-line-body: 1.62;
}

html{font-size:16px;}
body{font-size:var(--v88-body); line-height:var(--v88-line-body); text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;}

/* Generelle Schutzregeln gegen ausbrechende Texte */
body, button, input, select, textarea, a, p, li, label, span, div, h1, h2, h3, h4, h5, h6{
  overflow-wrap:anywhere;
  word-break:normal;
}
button, .btn, .btn-lux, .cta, .nav-link, .small-link{white-space:normal;}

/* Frontend-Headlines kontrollieren */
.home-hero h1,
.hero h1,
.v66-hero h1,
.v66-display,
.big-title,
.display-title{
  font-size:var(--v88-display) !important;
  line-height:var(--v88-line-tight) !important;
  letter-spacing:-.045em !important;
  max-width:13ch;
}

h1, .page-title, .section-title h1, .contact-hero h1, .inquiry-hero h1{
  font-size:var(--v88-h1) !important;
  line-height:var(--v88-line-title) !important;
  letter-spacing:-.035em !important;
}
h2, .section-title, .v66-section-title, .contact-section-title, .admin-card h2{
  font-size:var(--v88-h2) !important;
  line-height:1.16 !important;
  letter-spacing:-.025em !important;
}
h3, .collection-title, .admin-card h3, .v57-card h3, .v87-card h3{
  font-size:var(--v88-h3) !important;
  line-height:1.2 !important;
  letter-spacing:-.015em !important;
}
p, li, label, input, textarea, select{font-size:var(--v88-body);}
small, .small, .admin-hint, .kicker, .eyebrow, .meta, .v87-muted{font-size:var(--v88-small) !important; line-height:1.48 !important;}

/* Collections/Angebote: edel, aber nicht riesig */
.collection-runway h2,
.collection-runway .collection-title,
.v51-collection-title,
.v73-collection-title,
.v74-collection-title{
  font-size:clamp(1.55rem, 2.9vw, 2.55rem) !important;
  line-height:1.08 !important;
  max-width:16ch;
  overflow-wrap:normal;
  hyphens:auto;
}
.collection-price,
.v73-price,
.v74-price{
  font-size:clamp(1.25rem, 2vw, 2rem) !important;
  line-height:1.05 !important;
  white-space:nowrap;
}
.collection-copy,
.collection-runway p{font-size:clamp(.96rem, .18vw + .92rem, 1.08rem) !important; line-height:1.55 !important;}

/* Anfrage: monumental, aber kontrolliert */
.contact-page h1,
.v68-contact h1,
.v69-contact h1,
.inline-inquiry h2,
.inline-inquiry h3{
  max-width:18ch;
}
.inquiry-step-title,
.contact-step-title{
  font-size:clamp(1.45rem, 2.3vw, 2.25rem) !important;
  line-height:1.14 !important;
}
.collection-choice h3,
.inquiry-package h3{
  font-size:clamp(1.12rem, 1.5vw, 1.45rem) !important;
  line-height:1.16 !important;
}

/* Backend: keine aus Container ragenden Schriften */
.admin-body{font-size:clamp(.96rem, .12vw + .92rem, 1.05rem);}
.admin-shell, .v21-admin-shell{max-width:1440px;}
.admin-card, .v57-card, .v87-card, .notice, .backend-card{
  min-width:0;
  overflow:hidden;
}
.admin-card *, .v57-card *, .v87-card *, .backend-card *, .notice *{
  max-width:100%;
}
.admin-card h1,
.v57-hero h1,
.v87-hero h1,
.admin-hero h1,
.v21-admin-hero h1{
  font-size:clamp(1.8rem, 3.2vw, 3.2rem) !important;
  line-height:1.1 !important;
  letter-spacing:-.035em !important;
  overflow-wrap:anywhere;
}
.admin-card h2,
.v57-hero h2,
.v87-hero h2,
.admin-hero h2{
  font-size:clamp(1.35rem, 2vw, 2.05rem) !important;
  line-height:1.16 !important;
}
.admin-card h3,
.v57-card h3,
.v87-card h3{
  font-size:clamp(1.08rem, 1.35vw, 1.42rem) !important;
}
.admin-card p,
.admin-card li,
.admin-card label,
.admin-card input,
.admin-card textarea,
.admin-card select,
.v57-card p,
.v87-card p{
  font-size:clamp(.92rem, .14vw + .88rem, 1.02rem) !important;
  line-height:1.5 !important;
}
.admin-grid, .v57-grid, .v87-grid, .admin-two, .admin-three{
  min-width:0;
}
.admin-grid > *, .v57-grid > *, .v87-grid > *, .admin-two > *, .admin-three > *{min-width:0;}

/* Tabellen/Listen im Backend auf kleinen Screens retten */
table{max-width:100%;}
td, th{overflow-wrap:anywhere;}
pre, code, input[readonly]{white-space:pre-wrap; overflow-wrap:anywhere;}

/* Bildregie / Leitstand */
.image-row-title, .site-image-title, .v87-check-title{
  font-size:clamp(1.05rem, 1.5vw, 1.45rem) !important;
  line-height:1.2 !important;
}
.site-image-row, .v82-row, .v87-row{min-width:0; overflow:hidden;}
.site-image-row .btn-lux, .v82-row .btn-lux{font-size:.94rem !important; padding:.75rem 1rem;}

@media (max-width: 900px){
  :root{
    --v88-display: clamp(2rem, 10vw, 3.3rem);
    --v88-h1: clamp(1.78rem, 8vw, 2.8rem);
    --v88-h2: clamp(1.4rem, 5vw, 2.05rem);
    --v88-h3: clamp(1.12rem, 3.8vw, 1.45rem);
    --v88-body: 1rem;
  }
  .home-hero h1,.hero h1,.v66-hero h1,.v66-display,.big-title,.display-title{max-width:11.5ch;}
  .collection-runway .collection-title,.v51-collection-title,.v73-collection-title,.v74-collection-title{max-width:100%;}
  .collection-price,.v73-price,.v74-price{white-space:normal;}
}

@media (max-width: 520px){
  body{font-size:1rem;}
  .home-hero h1,.hero h1,.v66-hero h1,.v66-display,.big-title,.display-title{
    font-size:clamp(1.9rem, 11.5vw, 2.7rem) !important;
    max-width:12ch;
  }
  h1,.page-title,.contact-hero h1,.inquiry-hero h1{font-size:clamp(1.65rem, 8.5vw, 2.35rem) !important;}
  h2,.section-title,.v66-section-title,.contact-section-title{font-size:clamp(1.3rem, 6.2vw, 1.85rem) !important;}
  .admin-card h1,.v57-hero h1,.v87-hero h1,.admin-hero h1,.v21-admin-hero h1{font-size:clamp(1.55rem, 8vw, 2.2rem) !important;}
  .btn-lux, button, .cta{font-size:.94rem !important;}
}
