/*
Theme Name: SOIBELMANNS
Template: twentytwentyfive
Description: Child-Theme für soibelmanns.de – Optik wie der bisherige TYPO3-Auftritt (Bootstrap Package + SPRINZ+SPRINZ ExtendedStyles).
Author: SPRINZ+SPRINZ brand interactive
Version: 1.0
Text Domain: soibelmanns
*/

:root { --soi-braun:#5b5047; --soi-gruen:#0e654b; --soi-gruen-dunkel:#0b513c; --soi-beige:#cebca5; --soi-kopf:110px; --soi-kopf-klein:70px; }
body { -webkit-font-smoothing:antialiased; }
.soi-main { margin-block-start:0 !important; }
.wp-site-blocks > * + * { margin-block-start:0; }
.wp-site-blocks { padding-top:0; }
p { margin:0 0 1rem; }
.soi-rahmen { padding:0 15px; }
.soi-rahmen > * { max-width:1290px; margin-left:auto !important; margin-right:auto !important; }

/* ---------- Kopf (fest oben, auf der Startseite transparent über dem Slider) ---------- */
.soi-kopf-teil { position:fixed; top:0; left:0; right:0; z-index:1030; }
.soi-kopf { background:#fff; box-shadow:0 1px 0 0 rgba(0,0,0,.15); transition:background .3s, box-shadow .3s; padding:0 15px; }
.soi-kopf-innen { height:var(--soi-kopf); transition:height .3s; max-width:1290px; margin:0 auto !important; width:100%; }
.soi-gescrollt .soi-kopf-innen { height:var(--soi-kopf-klein); }
.soi-logo { display:block; position:relative; flex-shrink:0; }
.soi-logo img { height:60px; width:auto; display:block; transition:height .3s; }
.soi-gescrollt .soi-logo img { height:42px; }
.soi-logo .soi-logo-weiss { display:none; }
body.soi-transparent:not(.soi-gescrollt) .soi-kopf { background:transparent; box-shadow:none; }
body.soi-transparent:not(.soi-gescrollt) .soi-logo-normal { display:none; }
body.soi-transparent:not(.soi-gescrollt) .soi-logo-weiss { display:block; }
body.soi-transparent:not(.soi-gescrollt) .soi-nav .wp-block-navigation-item__content { color:#fff; }
body:not(.soi-transparent) .soi-main { padding-top:var(--soi-kopf); }
body.admin-bar .soi-kopf-teil { top:32px; }

/* Navigation */
.soi-nav { font-size:1.2rem; gap:0; }
.soi-nav .wp-block-navigation__container { gap:0; }
.soi-nav .wp-block-navigation-item__content { color:#6c6c6c; padding:.5rem 1rem; position:relative; }
.soi-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content:''; position:absolute; left:1rem; right:1rem; bottom:.25rem; height:2px; background:var(--soi-gruen); opacity:0; transition:opacity .25s; }
.soi-nav > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::before,
.soi-nav > .wp-block-navigation__container > .wp-block-navigation-item.soi-aktiv > .wp-block-navigation-item__content::before { opacity:.5; }
.soi-nav .wp-block-navigation-item__content:hover { color:var(--soi-gruen); text-decoration:none; }
.soi-nav .wp-block-navigation__submenu-icon { display:none; }
.soi-nav .wp-block-navigation__submenu-container { border:1px solid rgba(0,0,0,.15) !important; border-radius:.25rem; padding:.5rem 0; min-width:10rem !important; background:#fff !important; }
.soi-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color:#212121 !important; padding:.25rem 1rem; white-space:nowrap; font-size:1rem; }
.soi-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background:#e9e9e9; }
.soi-nav .wp-block-navigation__responsive-container-open svg { fill:currentColor; }
body.soi-transparent:not(.soi-gescrollt) .wp-block-navigation__responsive-container-open { color:#fff; }

/* ---------- Slider ---------- */
.soi-slider { position:relative; overflow:hidden; height:clamp(320px, 48.4vw, 600px); background:#e9e9e9; --s:1; }
.soi-slider.soi-slider-start { height:clamp(320px, 56.5vw, 700px); }
.soi-ebene { position:absolute; left:50%; top:50%; width:1240px; height:700px; transform:translate(-50%,-50%) scale(var(--s)); pointer-events:none; }
.soi-ebene img { position:absolute; max-width:none; height:auto; }
body:not(.soi-transparent) .soi-slider { margin-top:0; }
.soi-folie { position:absolute; inset:0; opacity:0; transition:opacity 1s ease; }
.soi-folie.aktiv { opacity:1; z-index:1; }
.soi-folie img { width:100%; height:100%; object-fit:cover; display:block; }
.soi-folie-text { position:absolute; inset:0; z-index:2; display:flex; align-items:center; color:#fff; max-width:1290px; margin:0 auto; padding:0 15px; }
.soi-folie-text .soi-box { margin-left:auto; width:min(48%, 600px); }
.soi-folie-kopf { font-size:clamp(.8rem, 1.5vw, 19px); text-transform:uppercase; letter-spacing:.5px; padding-bottom:.6em; border-bottom:1px solid #fff; margin-bottom:.4em; }
.soi-folie-titel { font-size:clamp(1.8rem, 6vw, 75px); font-weight:700; line-height:1.05; padding-bottom:.25em; border-bottom:1px solid #fff; text-shadow:0 0 20px rgba(0,0,0,.15); }
.soi-folie-preis { display:flex; justify-content:flex-end; align-items:flex-start; gap:.3em; margin-top:.15em; }
.soi-folie-preis strong { font-size:clamp(2rem, 6.4vw, 80px); color:#71a28a; font-weight:700; line-height:1.1; }
.soi-folie-preis small { color:var(--soi-beige); font-size:clamp(.7rem, 1.3vw, 16px); padding-top:1.2em; white-space:nowrap; }
.soi-folie-text.soi-links .soi-box { margin-left:0; margin-top:auto; margin-bottom:12%; width:auto; }
.soi-folie-text.soi-links .soi-folie-titel { border:0; font-size:clamp(1.6rem, 5.2vw, 65px); }
.soi-folie-text.soi-links .soi-folie-kopf { border:0; text-transform:none; font-weight:700; font-size:clamp(.9rem, 1.9vw, 23px); }
.soi-pfeil { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:40px; height:40px; border-radius:50%; border:0; background:rgba(255,255,255,.9); cursor:pointer; }
.soi-pfeil::before { content:''; position:absolute; top:50%; left:50%; width:9px; height:9px; border-top:1px solid #333; border-right:1px solid #333; transform:translate(-30%,-50%) rotate(-135deg); }
.soi-pfeil.weiter::before { transform:translate(-70%,-50%) rotate(45deg); }
.soi-pfeil.zurueck { left:20px; } .soi-pfeil.weiter { right:20px; }
.soi-punkte { position:absolute; bottom:12px; left:0; right:0; z-index:3; display:flex; justify-content:center; gap:8px; }
.soi-punkte button { width:9px; height:9px; border-radius:50%; border:1px solid #fff; background:rgba(255,255,255,.4); padding:0; cursor:pointer; }
.soi-punkte button.aktiv { background:#fff; }

/* ---------- Brotkrumen, Unternavigation ---------- */
.soi-brotkrumen { font-size:1rem; padding:.75rem 0; margin-top:1rem !important; margin-bottom:1rem !important; color:#6c6c6c; }
.soi-brotkrumen a + span::before, .soi-brotkrumen a + a::before, .soi-brotkrumen span + span::before { content:'/'; padding:0 .5rem; color:#6c6c6c; }
.soi-ohne-slider { padding-top:1.5rem; }
.soi-subnav { display:flex; flex-wrap:wrap; gap:0; margin:0 0 2rem; }
.soi-subnav a { background:var(--soi-braun); color:#fff !important; padding:5px 10px; margin:5px; display:inline-block; font-size:1rem; }
.soi-subnav a:hover { text-decoration:none; background:#4a4139; }
.soi-subnav a.soi-buchung { background:var(--soi-gruen); }
.soi-subnav a.soi-buchung:hover { background:var(--soi-gruen-dunkel); }
.soi-subnav a.aktiv { outline:2px solid var(--soi-braun); outline-offset:1px; }

/* ---------- Inhalt ---------- */
.soi-spalten { gap:2.5rem !important; margin-bottom:3rem !important; }
.soi-haupt h2:first-of-type { margin-top:0; }
.soi-haupt h2 + p, .soi-haupt h2 + .wp-block-heading { margin-top:.4rem; }
h2.soi-titel { color:var(--soi-beige); text-transform:uppercase; font-size:1.9rem; margin:1.5rem 0 1.5rem; }
.soi-unterzeile { font-size:1.2rem; }
.soi-trenner { border:0; border-top:1px solid #cecece; margin:2rem 0 !important; opacity:1; }
.soi-bildtext { gap:1.5rem; margin-bottom:1rem; }
.soi-bildtext .wp-block-media-text__content { padding:0 0 0 1.5rem !important; }
.soi-bildtext.has-media-on-the-right .wp-block-media-text__content { padding:0 1.5rem 0 0 !important; }
.soi-bildtext h3 { font-size:1.4rem; margin:0 0 .5rem; }
h2.soi-preis { font-size:1.65rem; display:flex; justify-content:flex-end; align-items:center; gap:1rem; flex-wrap:wrap; }
.soi-btn, a.soi-btn { display:inline-block; background:var(--soi-gruen); color:#fff !important; font-size:1rem; font-weight:400; padding:.375rem .75rem; border-radius:.25rem; }
.soi-btn:hover { background:var(--soi-gruen-dunkel); text-decoration:none; }
.wp-block-list { padding-left:1.2em; }
/* Seitenleiste */
.soi-seitenleiste { font-size:1.05rem; }
.soi-seitenleiste h3 { font-size:1.25rem; margin-bottom:.4rem; }
.soi-seitenleiste .wp-block-image a[target=_blank] img { max-width:100%; }
.soi-seitenleiste figure { margin:0 0 1.5rem; }
/* Kontakt-Knöpfe (Hotelwahl) */
.soi-knoepfe { gap:0 !important; }
.soi-knopf .wp-block-button__link { background:var(--soi-braun); border-radius:0; padding:5px 10px; margin:5px; font-size:1rem; }
/* Startseiten-Teaser mit Bildunterschrift */
.soi-teaserreihe { gap:30px !important; padding:1.5rem 0 1.5rem; }
.soi-teaser { position:relative; margin:0; }
.soi-teaser img { display:block; width:100%; height:auto; }
.soi-teaser figcaption { position:absolute; left:0; bottom:0; margin:0; background:rgba(33,33,33,.85); color:#fff; font-size:.95rem; line-height:1.4; padding:.6rem .75rem; text-align:left; }
/* Karte mit Zustimmung */
.soi-karte { position:relative; width:100%; height:400px; background:#e9e9e9 center/cover; display:flex; align-items:center; justify-content:center; text-align:center; margin-bottom:1.5rem; }
.soi-karte iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.soi-karte-hinweis { padding:1rem; font-size:.9rem; color:#444; }
.soi-karte-hinweis button { margin-top:.6rem; background:var(--soi-gruen); color:#fff; border:0; border-radius:.25rem; padding:.375rem .75rem; font:inherit; cursor:pointer; }

/* ---------- Formular ---------- */
.soi-formular h3 { font-size:1.35rem; margin:0 0 .3rem; }
.soi-formular .soi-raster { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.5rem 4rem; max-width:720px; }
.soi-formular label { display:block; font-size:1rem; margin-bottom:.3rem; }
.soi-formular input[type=text], .soi-formular input[type=email], .soi-formular textarea { width:100%; max-width:300px; padding:.375rem .75rem; font:inherit; font-size:1rem; border:1px solid #cecece; border-radius:.25rem; box-shadow:inset 0 1px 2px rgba(0,0,0,.075); box-sizing:border-box; }
.soi-formular textarea { min-height:110px; }
.soi-formular input:focus, .soi-formular textarea:focus { border-color:#87b2a5; outline:0; box-shadow:0 0 0 .25rem rgba(14,101,75,.25); }
.soi-formular .soi-feld { margin-bottom:.8rem; }
.soi-formular button { background:var(--soi-gruen); color:#fff; border:0; border-radius:.25rem; padding:.375rem .75rem; font:inherit; font-size:1rem; cursor:pointer; }
.soi-formular .soi-dsgvo { max-width:300px; font-size:1rem; }
.soi-formular .soi-hp { position:absolute; left:-9999px; }
.soi-meldung { padding:1rem; border-radius:.25rem; margin-bottom:1rem; }
.soi-meldung.ok { background:#e6f0ec; color:var(--soi-gruen-dunkel); }
.soi-meldung.fehler { background:#f8e1e0; color:#a12622; }

/* ---------- Fuß ---------- */
.soi-fuss { background:#3a3a3a; color:#fff; padding:2rem 15px 3rem; }
.soi-fuss-spalten { max-width:1290px; margin:0 auto !important; gap:2rem !important; }
.soi-fuss h4 { color:#fff; font-size:1.5rem; margin:0 0 1rem; letter-spacing:.5px; }
.soi-fuss a { color:var(--soi-beige); }
.soi-fuss a:hover { color:#b1c800; }
.soi-fuss-links { display:grid; grid-template-columns:1fr 1fr; font-size:1.05rem; }
.soi-logos { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.soi-logos img { width:56px; height:auto; display:block; }
.soi-social img { width:56px; }
.soi-nachoben { position:fixed; right:20px; bottom:20px; width:52px; height:52px; background:#313131; z-index:50; opacity:0; pointer-events:none; transition:opacity .3s; }
.soi-nachoben::before { content:''; position:absolute; left:50%; top:56%; width:12px; height:12px; border-top:1px solid #fff; border-left:1px solid #fff; transform:translate(-50%,-50%) rotate(45deg); }
.soi-gescrollt .soi-nachoben { opacity:1; pointer-events:auto; }
.soi-nachoben:hover { background:var(--soi-gruen); }

/* ---------- Mobil ---------- */
@media (max-width: 781px) {
	:root { --soi-kopf:70px; }
	.soi-logo img, .soi-gescrollt .soi-logo img { height:38px; }
	.soi-folie-text .soi-box { width:100%; margin-left:0; }
	.soi-pfeil { display:none; }
	.soi-spalten { gap:1.5rem !important; }
	.soi-bildtext .wp-block-media-text__content, .soi-bildtext.has-media-on-the-right .wp-block-media-text__content { padding:1rem 0 0 !important; }
	.soi-formular .soi-raster { grid-template-columns:1fr; }
	.soi-teaserreihe { grid-template-columns:1fr !important; }
	.soi-fuss-links { grid-template-columns:1fr 1fr; }
	.soi-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color:#212121 !important; }
}
