/* ============================================================
   site-custom.css — Layout skeleton + page-specific glue
   Linked from EVERY *.html (site-kit hard rule).
   Brand tokens + base components live in site.css.
   ============================================================ */

/* ---- generic spacing utilities ---- */
.mt-lg{margin-top:var(--gap-lg)}
.mt-xl{margin-top:var(--gap-xl)}
.center{text-align:center}
.maxr{max-width:760px}
.maxr.center{margin-left:auto;margin-right:auto}

/* ---- index: intro lead two-column gazette opener ---- */
.intro-spread{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.intro-spread .lead-drop{font-family:var(--f-serif);font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.45;color:var(--ink)}
.intro-spread .lead-drop::first-letter{font-family:var(--f-display);font-size:3.4em;font-weight:700;float:left;
  line-height:.74;margin:.06em .14em 0 0;color:var(--wine)}
.intro-spread .lead-body p + p{margin-top:1rem}
@media (max-width:860px){.intro-spread{grid-template-columns:1fr;gap:1.6rem}}

/* ---- index: leistungen teaser grid spacing ---- */
.teaser-grid{margin-top:var(--gap-lg)}

/* ---- index: editorial mosaic strip (Intercoiffure looks) ---- */
.look-mosaic{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem}
.look-mosaic .fig{aspect-ratio:3/4}
.look-mosaic .fig:first-child{grid-row:span 2;aspect-ratio:auto}
@media (max-width:860px){
  .look-mosaic{grid-template-columns:repeat(2,1fr)}
  .look-mosaic .fig:first-child{grid-row:auto;aspect-ratio:3/4}
}

/* ---- leistungen page: service block alternating ---- */
.svc-block{padding:clamp(2.2rem,4vw,3.4rem) 0;border-bottom:1px solid var(--line)}
.svc-block:last-child{border-bottom:none}
.svc-list{list-style:none;margin-top:1.2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem 1.6rem}
.svc-list li{display:flex;gap:.7rem;font-family:var(--f-body);font-size:.96rem;color:var(--ink)}
.svc-list li .star{width:14px;height:14px;color:var(--gold-deep);flex-shrink:0;margin-top:4px}
@media (max-width:560px){.svc-list{grid-template-columns:1fr}}

/* ---- preise page columns wrapper ---- */
.price-wrap{display:grid;grid-template-columns:1fr;gap:2rem;max-width:920px;margin:0 auto}

/* ---- aktionen grid ---- */
.aktion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.6rem}

/* ---- bonuscard split ---- */
.bonus-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:860px){.bonus-split{grid-template-columns:1fr;gap:2.2rem}}

/* ---- kontakt split ---- */
.contact-split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,3.4rem);align-items:start}
@media (max-width:860px){.contact-split{grid-template-columns:1fr}}
.contact-cards{grid-template-columns:1fr 1fr}
@media (max-width:560px){.contact-cards{grid-template-columns:1fr}}
.map-link-card{display:block;position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--wine-deep);min-height:240px;border:1px solid var(--line-gold)}
.map-link-card .map-bg{position:absolute;inset:0;opacity:.32;
  background-image:repeating-linear-gradient(0deg,transparent 0 22px,rgba(200,162,74,.12) 22px 23px),
    repeating-linear-gradient(90deg,transparent 0 22px,rgba(200,162,74,.12) 22px 23px)}
.map-link-card .map-inner{position:relative;z-index:2;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;min-height:240px;color:var(--cream)}
.map-link-card .map-pin{font-size:1.6rem;color:var(--gold)}
.map-link-card .map-inner b{font-family:var(--f-display);color:var(--cream);font-size:1.2rem;margin:.4rem 0}
.map-link-card .map-inner .go{font-family:var(--f-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft)}
.map-link-card:hover .map-inner .go{color:var(--gold)}

/* ---- intro counters spacing ---- */
.heritage-counters{margin-top:var(--gap-lg)}
