@font-face{font-family:'Poppins Local';src:url('../fonts/Poppins-VariableFont_wght.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Poppins Local';src:url('../fonts/Poppins-Italic-VariableFont_wght.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;}

:root{
--ds-paper:#FFF9F1;
--ds-paper-warm:#F6EBDD;
--ds-apricot:#FAD7C5;
--ds-rose:#EEDDD8;
--ds-sand:#E8D4B9;
--ds-sage:#D9DEC8;
--ds-orange:#F74900;
--ds-terra:#A84224;
--ds-ink:#2A2522;
--ds-muted:#6D625B;
--ds-white:#fff;
--ds-grid-max:1140px;
--ds-gutter:30px;
--ds-pad:15px;
--ds-section:clamp(4.5rem,7vw,8rem);
--ds-star-mask:url("../icons/spuer-dich-star-rounded.svg");
--ds-star-logo:url("../icons/spuer-dich-star-logo.svg");
--ds-header-h:92px;
}

html{scroll-behavior:smooth;}
body{background:var(--ds-paper);color:var(--ds-ink);font-family:'Poppins Local',Poppins,Avenir,'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:350;line-height:1.68;}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.14;background-image:radial-gradient(circle at 12% 24%,rgba(42,37,34,.055) 0 1px,transparent 1px);background-size:22px 22px;}
*,*:before,*:after{box-sizing:border-box}
img{max-width:100%;height:auto}
.wp-site-blocks{overflow-x:clip}
.wp-site-blocks>*+*{margin-block-start:0}

:where(a,button,input,textarea,select,summary,.wp-block-button__link):focus-visible{outline:3px solid var(--ds-orange);outline-offset:4px}
::selection{background:var(--ds-orange);color:var(--ds-white)}

h1,h2,h3,h4,h5,h6,.wp-block-heading{font-family:'Poppins Local',Poppins,Avenir,'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:350;letter-spacing:-.018em;line-height:1.08}
h1,.wp-block-heading:is(h1){font-weight:320;letter-spacing:-.032em}
h2,.wp-block-heading:is(h2){font-weight:340;letter-spacing:-.024em}
h3,.wp-block-heading:is(h3){font-weight:390;letter-spacing:-.012em}

/* Sticky, readable, accessible header */
.ds-site-header{position:sticky;top:0;z-index:9999;background:rgba(255,249,241,.96);color:var(--ds-ink);border-bottom:1px solid rgba(42,37,34,.11);backdrop-filter:saturate(130%) blur(8px);padding-block:.68rem;}
.admin-bar .ds-site-header{top:32px}
.ds-site-header a,.ds-site-header .wp-block-navigation a{color:var(--ds-ink);text-decoration:none}
.ds-site-header .wp-block-navigation a:hover{color:var(--ds-orange)}

.ds-brand{display:flex;align-items:center;gap:.82rem;font-family:'Poppins Local',Poppins,sans-serif;text-decoration:none;line-height:1.08;color:var(--ds-ink)}
.ds-brand-name{display:block;font-size:clamp(1.05rem,1.3vw,1.24rem);font-weight:500;letter-spacing:-.01em}
.ds-brand-sub{display:block;font-size:.74rem;font-weight:340;color:var(--ds-muted);letter-spacing:.01em}

.ds-rounded-star-mask{-webkit-mask-image:var(--ds-star-mask);mask-image:var(--ds-star-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.ds-spuer-star{width:clamp(3.8rem,6.2vw,5.2rem);aspect-ratio:1;background:var(--ds-orange);color:var(--ds-white);display:flex;align-items:center;justify-content:center;text-align:center;font-family:'Poppins Local',Poppins,sans-serif;font-weight:600;font-size:clamp(.82rem,1.1vw,1.08rem);line-height:1.02;letter-spacing:-.02em;transform:rotate(-4deg);padding:0}
.ds-spuer-star span{display:block;transform:translateY(.02em)}
.ds-header-cta .wp-block-button__link{background:var(--ds-orange)!important;color:var(--ds-white)!important;padding:.85rem 1.25rem!important}

/* Mobile navigation overlay */
.wp-block-navigation__responsive-container.is-menu-open{position:fixed!important;inset:0!important;background:var(--ds-paper)!important;color:var(--ds-ink)!important;padding:clamp(1.4rem,6vw,3rem)!important;z-index:10000!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:flex-start!important;padding-top:clamp(4rem,12vw,6rem)!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:1rem!important}
.wp-block-navigation__responsive-container.is-menu-open a{color:var(--ds-ink)!important;font-size:clamp(1.8rem,9vw,3.1rem)!important;line-height:1.05!important;font-weight:320!important}
.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{color:inherit!important}
.wp-block-navigation__responsive-container-open svg,.wp-block-navigation__responsive-container-close svg{width:34px;height:34px}

.ds-section{padding-block:var(--ds-section)}
.ds-section-small{padding-block:clamp(2.8rem,4.8vw,5.2rem)}
.ds-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--ds-gutter);max-width:var(--ds-grid-max);margin-inline:auto;padding-inline:var(--ds-pad)}
.ds-col-3{grid-column:span 3}.ds-col-4{grid-column:span 4}.ds-col-5{grid-column:span 5}.ds-col-6{grid-column:span 6}.ds-col-7{grid-column:span 7}.ds-col-8{grid-column:span 8}.ds-col-9{grid-column:span 9}.ds-col-12{grid-column:1/-1}
@media(max-width:860px){.ds-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-width:620px}.ds-col-3,.ds-col-4,.ds-col-5,.ds-col-6,.ds-col-7,.ds-col-8,.ds-col-9{grid-column:1/-1}}
@media(max-width:520px){.ds-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:400px;gap:1rem}}

.ds-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:.76rem;font-weight:650;line-height:1.35;margin:0 0 .85rem 0}
.ds-lead{font-size:clamp(1.12rem,1.25vw,1.36rem);line-height:1.62;font-weight:330;letter-spacing:-.004em}
.ds-soft-lead{font-size:clamp(1rem,1vw,1.12rem);line-height:1.76;color:var(--ds-muted)}

.ds-paper{background:var(--ds-paper)}.ds-paper-warm{background:var(--ds-paper-warm)}.ds-apricot{background:var(--ds-apricot)}.ds-rose{background:var(--ds-rose)}.ds-sand{background:var(--ds-sand)}.ds-sage{background:var(--ds-sage)}

/* Hero */
.ds-photo-hero{position:relative;min-height:clamp(640px,84vh,900px);display:flex;align-items:end;isolation:isolate;overflow:hidden;background:var(--ds-sand)}
.ds-photo-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,37,34,.62) 0%,rgba(42,37,34,.32) 44%,rgba(42,37,34,.08) 100%),linear-gradient(0deg,rgba(42,37,34,.36) 0%,rgba(42,37,34,0) 58%);z-index:-1}
.ds-photo-hero-placeholder{position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,rgba(247,73,0,.22),rgba(255,249,241,.25)),linear-gradient(45deg,var(--ds-sand),var(--ds-apricot))}
.ds-photo-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.ds-photo-hero-content{color:var(--ds-white);padding-bottom:clamp(4rem,8vw,7.5rem)}
.ds-photo-hero h1{color:var(--ds-white);font-weight:300;font-size:clamp(3.3rem,7.6vw,7rem);line-height:1;letter-spacing:-.038em;margin:0;max-width:850px}
.ds-photo-hero .ds-lead{color:var(--ds-white);max-width:650px}
.ds-hero-star{margin-top:1.5rem}

/* Buttons */
.wp-block-button__link,.wp-element-button{border-radius:0!important;border:0!important;box-shadow:none!important;text-decoration:none!important;font-family:'Poppins Local',Poppins,sans-serif!important;font-weight:500!important;letter-spacing:-.01em;transition:background-color .18s ease,color .18s ease,transform .18s ease}
.wp-block-button__link{background:var(--ds-orange)!important;color:var(--ds-white)!important;padding:.92rem 1.18rem!important}
.wp-block-button__link:hover{background:var(--ds-ink)!important;color:var(--ds-white)!important;transform:translateY(-1px)}
.ds-button-light .wp-block-button__link{background:var(--ds-white)!important;color:var(--ds-orange)!important}
.ds-button-ghost .wp-block-button__link{background:rgba(255,255,255,.18)!important;color:var(--ds-white)!important}

/* Service cards with protruding star images */
.ds-card{background:var(--ds-white);padding:clamp(1.5rem,2.2vw,2.15rem);border:1px solid rgba(42,37,34,.09);box-shadow:none;min-height:100%;display:flex;flex-direction:column;gap:.9rem;position:relative}
.ds-service-card{min-height:25rem;justify-content:flex-start;margin-top:4.8rem;padding-top:5.2rem;overflow:visible}
.ds-card h2,.ds-card h3{margin-top:0;font-weight:390}
.ds-card-link{margin-top:auto;padding-top:1.2rem}
.ds-card-apricot{background:var(--ds-apricot)}.ds-card-rose{background:var(--ds-rose)}.ds-card-sage{background:var(--ds-sage)}
.ds-card-star-image{position:absolute;top:-4.6rem;right:1.35rem;width:8.7rem;aspect-ratio:1;background:rgba(255,255,255,.75);overflow:hidden;z-index:2;-webkit-mask-image:var(--ds-star-mask);mask-image:var(--ds-star-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.ds-card-star-image img{width:100%;height:100%;object-fit:cover;display:block}
.ds-card-star-image.is-placeholder{background:var(--ds-white)}
.ds-card-star-image.is-placeholder:after{content:"Foto";position:absolute;inset:0;display:grid;place-items:center;color:var(--ds-muted);font-size:.8rem}

.ds-image-block{min-height:clamp(24rem,48vw,42rem);background:var(--ds-sand);overflow:hidden}
.ds-image-block img{width:100%;height:100%;object-fit:cover;display:block}
.ds-star-image{width:min(100%,22rem);aspect-ratio:1;overflow:hidden;background:var(--ds-apricot);-webkit-mask-image:var(--ds-star-mask);mask-image:var(--ds-star-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.ds-star-image img{width:100%;height:100%;object-fit:cover;display:block}

/* Full orange quote */
.ds-quote-band{position:relative;padding-block:clamp(5.2rem,10vw,10rem);background:var(--ds-orange);color:var(--ds-white);overflow:hidden}
.ds-quote-band blockquote{margin:0 auto;max-width:980px;text-align:center;font-size:clamp(2.15rem,4.4vw,4.9rem);line-height:1.08;letter-spacing:-.035em;font-weight:300;color:var(--ds-white)}
.ds-quote-band p,.ds-quote-band cite{color:var(--ds-white)}
.ds-quote-band cite{display:block;margin-top:1.8rem;font-style:normal;font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.ds-quote-band .ds-spuer-star{position:absolute;right:clamp(1rem,7vw,6rem);bottom:clamp(1rem,4vw,3rem);width:clamp(5.8rem,11vw,9.5rem);background:var(--ds-white);color:var(--ds-orange)}

/* Testimonials carousel */
.ds-testimonial-section{background:var(--ds-paper-warm)}
.ds-testimonial-intro{text-align:center;margin-inline:auto;max-width:780px}
.ds-testimonial-slider{position:relative;max-width:880px;margin:clamp(2.5rem,5vw,4rem) auto 0;padding-inline:4.5rem}
.ds-testimonial-track{position:relative;min-height:clamp(18rem,25vw,22rem);display:grid}
.ds-testimonial-slide{grid-area:1/1;background:var(--ds-white);border:1px solid rgba(42,37,34,.09);padding:clamp(2rem,4vw,3.8rem);text-align:center;opacity:0;visibility:hidden;transition:opacity .32s ease,visibility .32s ease;display:flex;flex-direction:column;justify-content:center;align-items:center}
.ds-testimonial-slide.is-active{opacity:1;visibility:visible}
.ds-testimonial-slide p:first-child{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.52;font-weight:300;max-width:720px;margin-inline:auto}
.ds-testimonial-name{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;font-weight:650;margin-top:1.4rem;color:var(--ds-muted)}
.ds-testimonial-arrow{position:absolute;top:50%;transform:translateY(-50%);width:3.2rem;height:3.2rem;border:0;background:var(--ds-orange);color:var(--ds-white);font-size:1.8rem;line-height:1;display:grid;place-items:center;cursor:pointer}
.ds-testimonial-arrow:hover{background:var(--ds-ink)}
.ds-testimonial-prev{left:0}.ds-testimonial-next{right:0}
.ds-testimonial-status{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
@media(max-width:640px){.ds-testimonial-slider{padding-inline:0;padding-bottom:4rem}.ds-testimonial-arrow{top:auto;bottom:0;transform:none}.ds-testimonial-prev{left:calc(50% - 3.8rem)}.ds-testimonial-next{right:calc(50% - 3.8rem)}}

/* CTA full bleed */
.ds-cta{background:var(--ds-orange);color:var(--ds-white);padding-block:clamp(4.5rem,8vw,8rem)}
.ds-cta-inner{background:transparent;color:var(--ds-white);padding:0;text-align:center;max-width:980px;margin-inline:auto}
.ds-cta-inner h2{color:var(--ds-white);font-size:clamp(2.4rem,5.2vw,5rem);font-weight:300;line-height:1.05}
.ds-cta-inner p{color:var(--ds-white)}
.ds-cta .wp-block-buttons{justify-content:center}
.ds-cta .wp-block-button__link{background:var(--ds-white)!important;color:var(--ds-orange)!important}
.ds-cta .wp-block-button__link:hover{background:var(--ds-ink)!important;color:var(--ds-white)!important}

details.wp-block-details,.ds-accordion details{border-top:1px solid rgba(42,37,34,.18);padding:1.1rem 0}
details.wp-block-details:last-child,.ds-accordion details:last-child{border-bottom:1px solid rgba(42,37,34,.18)}
details summary{cursor:pointer;font-weight:430;font-size:1.08rem}

.ds-legal-page{max-width:820px;margin-inline:auto}
.ds-legal-page h1,.ds-legal-page h2{font-weight:350}
.ds-legal-page h2{margin-top:2.5rem}
.ds-legal-note{background:var(--ds-apricot);padding:1rem 1.2rem;border-left:.35rem solid var(--ds-orange)}

/* Footer */
.ds-footer{background:var(--ds-ink);color:var(--ds-paper);padding-block:clamp(4rem,7vw,6.5rem)}
.ds-footer h2,.ds-footer h3,.ds-footer p{color:var(--ds-paper)}
.ds-footer a{color:var(--ds-paper);text-decoration-color:var(--ds-orange);text-underline-offset:.18em}
.ds-footer-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem}
.ds-footer .ds-spuer-star{width:clamp(8rem,14vw,12rem)}

@supports not ((mask-image:url("")) or (-webkit-mask-image:url(""))){.ds-spuer-star,.ds-rounded-star-mask,.ds-star-image,.ds-card-star-image{border-radius:50%}}
@media(max-width:720px){.admin-bar .ds-site-header{top:46px}.ds-brand-sub{display:none}.ds-photo-hero{min-height:660px}.ds-header-cta{display:none!important}}


/* Doris starter pattern refinements */
.ds-centered {
	text-align: center;
	margin-inline: auto;
}

.ds-link-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: .85rem;
}

.ds-link-list a {
	color: var(--ds-ink);
	text-decoration-color: var(--ds-orange);
	text-underline-offset: .22em;
}

.ds-price-card {
	background: var(--ds-white);
	border: 1px solid rgba(42,37,34,.12);
	padding: clamp(1.5rem,2.4vw,2.3rem);
	min-height: 100%;
}

.ds-price {
	font-size: clamp(2.4rem,4vw,4.2rem);
	line-height: 1;
	font-weight: 300;
	letter-spacing: -.04em;
	margin: .4rem 0 1rem;
}

.ds-event-row {
	display: grid;
	grid-template-columns: minmax(7rem, 10rem) 1fr auto;
	gap: 1.5rem;
	align-items: center;
	padding: 1.3rem 0;
	border-top: 1px solid rgba(42,37,34,.18);
}

.ds-event-row:last-child {
	border-bottom: 1px solid rgba(42,37,34,.18);
}

.ds-event-date {
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: .78rem;
	color: var(--ds-orange);
}

.ds-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .8rem;
}

.ds-photo-tile {
	aspect-ratio: 1;
	background: var(--ds-sand);
	overflow: hidden;
}

.ds-photo-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ds-photo-tile.is-placeholder {
	background:
		linear-gradient(135deg, transparent calc(50% - 1px), rgba(42,37,34,.15) 50%, transparent calc(50% + 1px)),
		var(--ds-paper-warm);
}

.ds-small-cta {
	background: var(--ds-apricot);
	padding: clamp(2rem,4vw,4rem);
	text-align: center;
}

.ds-map-placeholder {
	min-height: 18rem;
	background:
		linear-gradient(135deg, transparent calc(50% - 1px), rgba(42,37,34,.14) 50%, transparent calc(50% + 1px)),
		var(--ds-paper-warm);
}

@media(max-width:760px) {
	.ds-event-row {
		grid-template-columns: 1fr;
		gap: .4rem;
	}
	.ds-photo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}


/* v1.2 layout refinements: centered stars, calmer cards, wider sections */
.ds-spuer-star{
	display:grid !important;
	place-items:center !important;
	text-align:center !important;
	padding:0 !important;
	line-height:1 !important;
}
.ds-spuer-star span{
	display:block;
	line-height:1.02;
	transform:none !important;
	margin:0 !important;
	text-align:center !important;
}
.ds-photo-hero{position:relative;}
.ds-photo-hero-content{position:relative;z-index:2;}
.ds-hero-corner-star{
	position:absolute;
	right:clamp(-3.5rem,-2vw,-1rem);
	top:50%;
	transform:translateY(-50%) rotate(7deg);
	width:clamp(9rem,18vw,18rem);
	z-index:1;
}
.ds-hero-star{display:none !important;}

/* Better button proportions */
.wp-block-button__link,.wp-element-button{
	min-height:3.15rem;
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	padding:.88rem 1.35rem !important;
	font-size:clamp(1rem,1.2vw,1.14rem);
}
.ds-photo-hero .wp-block-button__link{
	min-width:12.5rem;
}
.ds-photo-hero .ds-button-light .wp-block-button__link{
	background:rgba(255,255,255,.94)!important;
	color:var(--ds-orange)!important;
}

/* Calm, unified service cards */
.ds-card-apricot,.ds-card-rose,.ds-card-sage{
	background:var(--ds-paper-warm) !important;
}
.ds-service-card{
	min-height:27rem;
	margin-top:7.4rem;
	padding-top:8.1rem;
	border-color:rgba(42,37,34,.13);
}
.ds-service-card:before{
	content:"";
	position:absolute;
	left:0;right:0;top:0;
	height:.42rem;
	background:var(--ds-orange);
}
.ds-card-star-image{
	top:-7.1rem;
	right:clamp(1rem,2.2vw,2rem);
	width:clamp(11rem,15vw,14.5rem);
	background:var(--ds-white);
}
.ds-card-star-image.is-placeholder:after{
	content:"Bild";
	font-size:.95rem;
	color:var(--ds-muted);
}
.ds-service-card h3{
	font-size:clamp(2rem,2.6vw,3rem);
	line-height:1.12;
}
.ds-service-card p:not(.ds-kicker):not(.ds-card-link){
	font-size:clamp(1.02rem,1.18vw,1.18rem);
	line-height:1.7;
}

/* Quote: centered and full, without accidental inset */
.ds-quote-band{
	margin:0 !important;
	width:100%;
}
.ds-quote-band blockquote{
	position:relative;
}
.ds-quote-band .ds-spuer-star{
	display:grid !important;
	place-items:center !important;
}

/* CTA: better button system on orange */
.ds-cta{
	margin:0 !important;
	width:100%;
}
.ds-cta .wp-block-buttons{
	gap:1rem;
}
.ds-cta .wp-block-button__link{
	background:var(--ds-white)!important;
	color:var(--ds-orange)!important;
	min-width:13.5rem;
	font-weight:520!important;
}
.ds-cta .wp-block-button__link:hover{
	background:var(--ds-ink)!important;
	color:var(--ds-white)!important;
}

/* About page: use more width and push image left */
.ds-about-hero{
	padding-block:clamp(4rem,7vw,7rem);
	background:var(--ds-paper);
	overflow:hidden;
}
.ds-about-grid{
	display:grid;
	grid-template-columns:minmax(0,45vw) minmax(0,1fr);
	gap:clamp(2rem,5vw,6rem);
	align-items:center;
	width:min(100%,1500px);
	margin-inline:0 auto;
	padding-right:clamp(1rem,5vw,6rem);
}
.ds-about-image{
	min-height:clamp(34rem,62vw,54rem);
	background:var(--ds-sand);
	overflow:hidden;
}
.ds-about-image img{width:100%;height:100%;object-fit:cover;display:block;}
.ds-about-copy{max-width:760px;}
.ds-about-copy h1{
	font-size:clamp(3.2rem,6.8vw,7rem);
	line-height:1.03;
}
.ds-about-accordion-section{
	width:100%;
	padding-block:clamp(4rem,7vw,7rem);
	background:var(--ds-rose);
}
.ds-about-accordion-grid{
	display:grid;
	grid-template-columns:minmax(0, .75fr) minmax(0, 1fr);
	gap:clamp(2rem,6vw,7rem);
	width:min(100% - 2rem,1440px);
	margin-inline:auto;
	align-items:start;
}
.ds-about-accordion-grid h2{
	font-size:clamp(2.7rem,5.6vw,6rem);
	line-height:1.05;
}
.ds-accordion details{
	background:rgba(255,249,241,.42);
	border:0 !important;
	border-bottom:1px solid rgba(42,37,34,.16) !important;
	padding:0 !important;
}
.ds-accordion details:first-child{border-top:1px solid rgba(42,37,34,.16) !important;}
.ds-accordion summary{
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	padding:1.4rem 1.2rem;
	font-size:clamp(1.15rem,1.4vw,1.35rem);
	cursor:pointer;
}
.ds-accordion summary::-webkit-details-marker{display:none;}
.ds-accordion summary:after{
	content:"+";
	font-size:1.6rem;
	line-height:1;
	color:var(--ds-orange);
}
.ds-accordion details[open] summary:after{content:"–";}
.ds-accordion details p{
	padding:0 1.2rem 1.4rem;
	margin:0;
	max-width:680px;
	line-height:1.7;
}

/* Make normal full-width block sections less unnecessarily inset */
.ds-section > .ds-grid{
	max-width:min(100% - 2rem,1440px);
}
.ds-testimonial-section > .ds-grid,
.ds-cta > .ds-grid,
.ds-quote-band > .ds-grid{
	max-width:min(100% - 2rem,1440px);
}

@media(max-width:860px){
	.ds-hero-corner-star{right:-3rem;top:38%;width:10rem;opacity:.92;}
	.ds-about-grid{grid-template-columns:1fr;padding-inline:1rem;margin-inline:auto;}
	.ds-about-image{min-height:26rem;}
	.ds-about-accordion-grid{grid-template-columns:1fr;}
	.ds-service-card{margin-top:6.5rem;}
}


/* v1.3 – precision fixes and richer content patterns */

/* Real centering inside the organic star. The inner span is centered independent of mask geometry. */
.ds-spuer-star {
	position: relative;
	display: block !important;
	padding: 0 !important;
	line-height: 1 !important;
	overflow: visible;
}
.ds-spuer-star > span,
.ds-spuer-star .ds-star-text {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(0.001deg);
	display: block;
	width: 72%;
	text-align: center;
	line-height: 1.02;
}

/* Hero star as deliberate break on right edge */
.ds-photo-hero .ds-hero-star {
	position: absolute;
	right: max(-3.5rem, -3vw);
	top: 18%;
	width: clamp(11rem, 20vw, 20rem);
	z-index: 3;
	transform: rotate(7deg);
}
@media (max-width: 780px) {
	.ds-photo-hero .ds-hero-star {
		right: -2.5rem;
		top: auto;
		bottom: 2rem;
		width: clamp(7rem, 30vw, 11rem);
	}
}

/* Better buttons */
.wp-block-button__link,
.wp-element-button {
	min-height: 3.4rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.ds-cta .wp-block-button__link,
.ds-photo-hero .wp-block-button__link {
	min-width: 13rem;
}

/* Services: calmer cards, bigger images */
.ds-service-card {
	background: var(--ds-paper-warm) !important;
	border-color: rgba(42,37,34,.12);
	border-top: .42rem solid var(--ds-orange);
	min-height: 27rem;
	padding-top: 7rem;
}
.ds-card-star-image {
	width: clamp(9.5rem, 13vw, 13.5rem);
	top: clamp(-6.5rem, -6vw, -5rem);
	right: clamp(1.1rem, 3vw, 2.3rem);
	background: var(--ds-white);
}
.ds-card-star-image.is-placeholder:after {
	content: "Bild";
	font-size: .95rem;
}
.ds-card h3 {
	font-size: clamp(1.9rem, 2.7vw, 3.1rem);
	line-height: 1.12;
}
.ds-card p {
	font-size: clamp(1rem, 1.05vw, 1.12rem);
}

/* Mobile services as swipe carousel */
@media (max-width: 760px) {
	.ds-services-grid {
		display: flex !important;
		overflow-x: auto;
		gap: 1rem;
		scroll-snap-type: x mandatory;
		padding-inline: 1rem;
		-webkit-overflow-scrolling: touch;
	}
	.ds-services-grid > .ds-service-card {
		flex: 0 0 min(86vw, 22rem);
		scroll-snap-align: start;
		margin-top: 5.8rem;
	}
	.ds-services-grid::after {
		content: "";
		flex: 0 0 1px;
	}
}

/* SEO intro sections */
.ds-section-intro {
	padding-block: clamp(4.5rem, 7vw, 7rem) clamp(2rem, 4vw, 3rem);
}
.ds-section-intro h2 {
	max-width: 980px;
}
.ds-section-intro .ds-lead {
	max-width: 850px;
}

/* Testimonials */
.ds-testimonial-intro {
	max-width: 920px;
}
.ds-testimonial-intro h2 {
	font-size: clamp(2.2rem, 4.6vw, 5.2rem);
}
.ds-testimonial-slider {
	max-width: 960px;
}
.ds-testimonial-slide p:first-child {
	font-size: clamp(1.25rem, 1.65vw, 1.75rem);
}

/* About page: full width, photo left edge, text gets room */
.ds-about-hero {
	padding-block: 0;
	background: var(--ds-paper);
}
.ds-about-hero-grid {
	display: grid;
	grid-template-columns: minmax(36vw, 1fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 5vw, 6rem);
	align-items: stretch;
	max-width: none;
	padding-left: 0;
	padding-right: clamp(1rem, 4vw, 5rem);
}
.ds-about-photo {
	min-height: clamp(34rem, 70vw, 58rem);
	background: var(--ds-sand);
	display: grid;
	place-items: center;
}
.ds-about-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: clamp(4rem, 8vw, 8rem);
	max-width: 850px;
}
.ds-about-copy h1 {
	font-size: clamp(3.2rem, 6.8vw, 7rem);
	line-height: 1.02;
}
@media (max-width: 880px) {
	.ds-about-hero-grid {
		grid-template-columns: 1fr;
		padding-right: 0;
	}
	.ds-about-copy {
		padding-inline: 1.2rem;
	}
}

/* FAQ / Accordion directly under header-like intro and more clickable */
.ds-about-depth {
	background: var(--ds-rose);
	padding-block: clamp(3.5rem, 6vw, 6rem);
}
.ds-about-depth-grid {
	max-width: none;
	padding-inline: clamp(1rem, 4vw, 5rem);
}
.ds-accordion details {
	background: rgba(255,255,255,.28);
}
.ds-accordion summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5.5rem;
	padding-inline: clamp(1rem, 2vw, 1.6rem);
	font-size: clamp(1.2rem, 1.6vw, 1.8rem);
}
.ds-accordion summary::-webkit-details-marker {
	display: none;
}
.ds-accordion summary:after {
	content: "+";
	color: var(--ds-orange);
	font-size: 2rem;
	line-height: 1;
	margin-left: 1rem;
}
.ds-accordion details[open] summary:after {
	content: "–";
}
.ds-accordion details > p,
.ds-accordion details > div,
.ds-accordion details .wp-block-paragraph {
	padding-inline: clamp(1rem, 2vw, 1.6rem);
	max-width: 920px;
}

/* Offer/detail pages */
.ds-content-band {
	padding-block: clamp(4rem, 7vw, 7rem);
}
.ds-offer-card {
	background: var(--ds-white);
	border: 1px solid rgba(42,37,34,.1);
	padding: clamp(1.6rem, 2.4vw, 2.5rem);
	min-height: 100%;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.ds-offer-card h3 {
	font-size: clamp(1.7rem, 2.2vw, 2.6rem);
}
.ds-offer-meta {
	margin-top: auto;
	padding-top: 1rem;
	font-weight: 560;
	color: var(--ds-orange);
}
.ds-course-card {
	background: var(--ds-orange);
	color: var(--ds-white);
	padding: clamp(1.7rem, 3vw, 3rem);
}
.ds-course-card h3,
.ds-course-card p,
.ds-course-card a {
	color: var(--ds-white);
}
.ds-course-card a {
	text-decoration-color: var(--ds-white);
}

/* Blog/Körperwissen carousel */
.ds-blog-section {
	background: var(--ds-paper);
}
.ds-blog-carousel {
	position: relative;
}
.ds-blog-carousel-track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--ds-gutter);
}
.ds-blog-card {
	background: var(--ds-white);
	border: 1px solid rgba(42,37,34,.1);
	min-height: 24rem;
	display: flex;
	flex-direction: column;
}
.ds-blog-card-image {
	aspect-ratio: 4 / 3;
	background: var(--ds-sand);
}
.ds-blog-card-content {
	padding: clamp(1.2rem, 2vw, 1.8rem);
}
.ds-blog-card h3 {
	font-size: clamp(1.35rem, 1.65vw, 1.9rem);
}
.ds-blog-controls {
	display: flex;
	justify-content: center;
	gap: .75rem;
	margin-top: 2rem;
}
.ds-blog-arrow {
	width: 3rem;
	height: 3rem;
	border: 0;
	background: var(--ds-orange);
	color: var(--ds-white);
	font-size: 1.5rem;
	cursor: pointer;
}
@media (max-width: 1020px) {
	.ds-blog-carousel-track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 720px) {
	.ds-blog-carousel-track {
		grid-template-columns: 1fr;
	}
}


/* v1.4 – hard fixes */

/* Compact desktop header: visible menu remains usable; overlay remains mobile only. */
.ds-site-header {
	padding-block: .38rem !important;
	min-height: 64px;
}
.ds-site-header > .wp-block-group,
.ds-site-header .alignwide {
	min-height: 54px;
}
.ds-site-header .wp-block-navigation a {
	font-size: .82rem;
	line-height: 1.2;
}
.ds-brand {
	gap: .55rem !important;
}
.ds-brand .ds-spuer-star {
	width: 3.3rem !important;
	flex: 0 0 3.3rem;
}
.ds-brand-name {
	font-size: clamp(.95rem, 1.05vw, 1.08rem) !important;
}
.ds-brand-sub {
	font-size: .66rem !important;
}
.ds-header-cta .wp-block-button__link {
	min-height: 2.65rem !important;
	padding: .56rem .82rem !important;
	font-size: .84rem !important;
	min-width: auto !important;
}
@media (min-width: 721px) and (max-width: 1120px) {
	.ds-site-header .wp-block-navigation a {
		font-size: .76rem;
	}
	.ds-site-header .wp-block-navigation {
		gap: .65rem !important;
	}
	.ds-brand-sub {
		display: none;
	}
}

/* Star: never mask the text. Mask only the pseudo background, so the label is truly centered. */
.ds-spuer-star,
.ds-spuer-star.ds-rounded-star-mask {
	position: relative !important;
	display: block !important;
	background: transparent !important;
	color: var(--ds-white);
	-webkit-mask-image: none !important;
	mask-image: none !important;
	overflow: visible !important;
}
.ds-spuer-star::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ds-orange);
	-webkit-mask-image: var(--ds-star-mask);
	mask-image: var(--ds-star-mask);
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	z-index: 0;
}
.ds-spuer-star > span,
.ds-spuer-star .ds-star-text {
	position: absolute !important;
	inset: 0 !important;
	transform: none !important;
	z-index: 1;
	display: grid !important;
	place-items: center !important;
	width: 100% !important;
	height: 100% !important;
	text-align: center !important;
	line-height: 1.02 !important;
	color: currentColor;
	padding: 0 26%;
}
.ds-quote-band .ds-spuer-star {
	color: var(--ds-orange);
}
.ds-quote-band .ds-spuer-star::before {
	background: var(--ds-white);
}

/* Equal service cards: title, text and link sit on the same rhythm. */
.ds-services-grid {
	align-items: stretch;
}
.ds-service-card {
	height: 100%;
	min-height: clamp(31rem, 42vw, 36rem);
	display: grid !important;
	grid-template-rows: auto minmax(9rem, auto) 1fr auto;
	align-content: stretch;
}
.ds-service-card .ds-kicker {
	align-self: end;
}
.ds-service-card h3 {
	align-self: start;
}
.ds-service-card p:not(.ds-kicker):not(.ds-card-link) {
	align-self: start;
}
.ds-service-card .ds-card-link {
	align-self: end;
	margin-top: 0 !important;
	padding-top: 1rem;
}
.ds-card-star-image {
	left: 50%;
	right: auto !important;
	transform: translateX(-50%);
	top: clamp(-6.4rem, -6vw, -5.1rem);
}
.ds-card-star-image::after {
	z-index: 2;
}

/* Testimonial names fixed in same row, regardless of quote length. */
.ds-testimonial-slide {
	min-height: clamp(25rem, 32vw, 30rem);
	display: grid !important;
	grid-template-rows: 1fr auto;
	align-items: center;
}
.ds-testimonial-slide p:first-child {
	align-self: center;
}
.ds-testimonial-name {
	align-self: end;
	min-height: 1.5rem;
}

/* Blog cards from real WordPress posts */
.ds-blog-card.is-hidden {
	display: none !important;
}
.ds-blog-card-image {
	display: block;
	overflow: hidden;
}
.ds-blog-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ds-blog-card-content h3 a {
	color: var(--ds-ink);
	text-decoration: none;
}
.ds-blog-card-content h3 a:hover {
	color: var(--ds-orange);
}
.ds-blog-excerpt p {
	margin: 0;
}
.ds-blog-card {
	min-height: 29rem;
}
.ds-blog-card-content {
	display: grid;
	grid-template-rows: auto 1fr;
	gap: 1rem;
}

/* Booking overlay: Hellocash loads only after click, with direct fallback link. */
html.ds-modal-open,
html.ds-modal-open body {
	overflow: hidden;
}
.ds-booking-modal[hidden] {
	display: none;
}
.ds-booking-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
}
.ds-booking-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42,37,34,.72);
}
.ds-booking-modal-panel {
	position: relative;
	width: min(1120px, 96vw);
	height: min(850px, 90vh);
	background: var(--ds-paper);
	padding: clamp(1rem, 2vw, 1.5rem);
	display: grid;
	grid-template-rows: auto 1fr auto;
	gap: .8rem;
}
.ds-booking-modal-panel iframe {
	width: 100%;
	height: 100%;
	border: 0;
	background: var(--ds-white);
}
.ds-booking-modal-close {
	justify-self: end;
	width: 3rem;
	height: 3rem;
	border: 0;
	background: var(--ds-orange);
	color: var(--ds-white);
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
}

/* Better current / workshop section */
.ds-workshop-card {
	background: var(--ds-white);
	border: 1px solid rgba(42,37,34,.1);
	border-top: .42rem solid var(--ds-orange);
	padding: clamp(1.6rem, 3vw, 3rem);
}
.ds-workshop-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.3rem;
}
.ds-workshop-fact {
	background: var(--ds-paper-warm);
	padding: 1rem;
}
.ds-workshop-fact strong {
	display: block;
	color: var(--ds-orange);
}
@media (max-width: 760px) {
	.ds-workshop-facts {
		grid-template-columns: 1fr;
	}
}


/* v1.5 final refinement */
.ds-site-header{position:sticky!important;top:0!important;z-index:99999!important;overflow:visible!important;padding-block:.58rem!important;min-height:78px!important;background:rgba(255,249,241,.97)!important;}
.admin-bar .ds-site-header{top:32px!important}.ds-header-inner{overflow:visible!important;min-height:66px!important}.ds-brand{overflow:visible!important;position:relative!important;gap:.85rem!important}.ds-brand .ds-spuer-star{width:5.15rem!important;flex:0 0 5.15rem!important;margin-block:-1.05rem -.9rem!important;z-index:3!important;color:var(--ds-white)!important}.ds-brand .ds-spuer-star>span{font-size:1.08rem!important;font-weight:700!important;padding:0 18%!important}.ds-brand-name{font-size:1.18rem!important;font-weight:560!important}.ds-brand-sub{font-size:.78rem!important}.ds-main-nav .wp-block-navigation-item__content{font-size:.96rem!important;font-weight:520!important;letter-spacing:-.01em;padding:.34rem .12rem!important}.ds-main-nav .wp-block-navigation__submenu-container{background:var(--ds-paper)!important;border:1px solid rgba(42,37,34,.13)!important;box-shadow:none!important;min-width:16rem!important;padding:.7rem!important}.ds-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:1.05rem!important;line-height:1.2!important;padding:.72rem .8rem!important}.ds-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--ds-orange)!important;color:var(--ds-white)!important}.ds-header-cta .wp-block-button__link{font-size:.95rem!important;min-height:3.1rem!important;padding:.78rem 1.05rem!important}.ds-scroll-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:rgba(42,37,34,.08)}.ds-scroll-progress span{display:block;height:100%;width:0;background:var(--ds-orange)}
@media(max-width:900px){.ds-main-nav .wp-block-navigation-item__content{font-size:.9rem!important}.ds-brand-sub{display:none!important}.ds-header-cta{display:none!important}}
.ds-photo-hero .ds-hero-star{width:clamp(14rem,23vw,24rem)!important;right:max(-4rem,-3vw)!important;color:var(--ds-white)!important}.ds-photo-hero .ds-hero-star>span{font-size:clamp(1.05rem,1.45vw,1.65rem)!important;font-weight:700!important;padding:0 20%!important}.ds-photo-hero h1{font-size:clamp(3.2rem,7vw,6.6rem)!important}.ds-photo-hero .ds-lead{max-width:720px!important}.ds-photo-hero .ds-lead::after{content:' Körperarbeit in Linz für Entspannung, Beweglichkeit, Selbstwahrnehmung und mehr Vertrauen in den eigenen Körper.';}
.ds-services-grid{align-items:stretch!important}.ds-services-grid>.ds-service-card{margin-top:6.4rem!important;height:auto!important;min-height:34rem!important;display:grid!important;grid-template-rows:auto auto 1fr auto!important;padding-top:7.2rem!important}.ds-services-grid>.ds-service-card:nth-child(n){transform:none!important}.ds-card-star-image{top:-6.2rem!important;width:12.5rem!important}.ds-service-card h3{min-height:7.4rem!important}.ds-service-card p:not(.ds-kicker):not(.ds-card-link){min-height:9rem!important}.ds-service-card .ds-card-link{align-self:end!important;margin-top:auto!important}.ds-service-card:before{height:.42rem!important;}
.ds-quote-band{overflow:hidden!important}.ds-quote-band blockquote{max-width:950px!important;margin-left:clamp(4rem,13vw,16rem)!important;margin-right:clamp(12rem,22vw,25rem)!important}.ds-quote-band .ds-spuer-star{right:clamp(1.5rem,6vw,7rem)!important;left:auto!important;bottom:50%!important;transform:translateY(50%) rotate(8deg)!important;width:clamp(9rem,15vw,16rem)!important;color:transparent!important}.ds-quote-band .ds-spuer-star>span{display:none!important}
.ds-content-band.ds-paper-warm{border-top:6px solid var(--ds-white)!important;border-bottom:6px solid var(--ds-orange)!important}.ds-workshop-card{border-top:.48rem solid var(--ds-orange)!important}.ds-workshop-card .wp-block-button__link{background:var(--ds-orange)!important;color:var(--ds-white)!important}
.ds-blog-section{scroll-margin-top:110px}.ds-blog-card-image{background:var(--ds-sand)!important}.ds-blog-card-image:empty:after{content:'Bild';height:100%;display:grid;place-items:center;color:var(--ds-muted)}.ds-blog-controls{justify-content:flex-start!important}.ds-blog-card{min-height:30rem!important}.ds-blog-carousel-track:empty:after{content:'Sobald Blogbeiträge veröffentlicht sind, erscheinen sie hier.';display:block;background:var(--ds-white);padding:2rem;}
.ds-footer .ds-spuer-star{width:clamp(10rem,16vw,14rem)!important;color:var(--ds-white)!important}.ds-footer .ds-spuer-star>span{font-size:clamp(1.25rem,1.7vw,1.65rem)!important;font-weight:700!important;padding:0 19%!important}.ds-footer-brand{align-items:center!important;justify-content:center!important}.ds-back-to-top{position:fixed;right:1rem;bottom:1rem;z-index:9999;width:3.25rem;height:3.25rem;border:0;background:var(--ds-orange);color:var(--ds-white);font-size:1.6rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.ds-back-to-top.is-visible{opacity:1;pointer-events:auto}.ds-back-to-top:focus-visible{outline:3px solid var(--ds-ink);outline-offset:3px}.ds-booking-external{min-height:100%;display:grid;place-items:center;text-align:center;padding:clamp(2rem,5vw,5rem)}.ds-booking-external h2{margin:0}.ds-booking-modal-panel{height:auto!important;min-height:360px!important;max-height:90vh!important}
.ds-contact-form{display:grid;gap:1.15rem;background:var(--ds-white);border:1px solid rgba(42,37,34,.12);padding:clamp(1.4rem,3vw,2.6rem)}.ds-contact-form p{margin:0}.ds-contact-form label,.ds-contact-form legend{font-weight:560}.ds-contact-form input[type=text],.ds-contact-form input[type=email],.ds-contact-form textarea{width:100%;border:1px solid rgba(42,37,34,.18);background:var(--ds-paper);padding:.95rem;font:inherit}.ds-contact-form fieldset{border:1px solid rgba(42,37,34,.18);padding:1rem;display:grid;gap:.6rem}.ds-contact-form fieldset label{font-weight:400}.ds-form-success{background:var(--ds-sage);padding:1rem}.ds-form-error{background:var(--ds-apricot);padding:1rem}


/* v1.6 – final structural corrections */

/* Header must be sticky/fixed and usable */
:root {
	--ds-header-height: 84px;
}

html {
	scroll-padding-top: calc(var(--ds-header-height) + 18px);
}

body {
	padding-top: var(--ds-header-height);
}

.ds-site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 99999 !important;
	min-height: var(--ds-header-height) !important;
	padding: 0 !important;
	background: rgba(255,249,241,.97) !important;
	border-bottom: 1px solid rgba(42,37,34,.14) !important;
	box-shadow: none !important;
	backdrop-filter: saturate(135%) blur(10px);
}

.admin-bar .ds-site-header {
	top: 32px !important;
}

.ds-header-inner {
	min-height: var(--ds-header-height) !important;
	height: var(--ds-header-height);
	gap: clamp(1rem, 2.2vw, 2.4rem);
	position: relative;
}

.ds-brand {
	position: relative;
	display: flex !important;
	align-items: center;
	gap: 1rem !important;
	min-width: 290px;
	z-index: 2;
}

.ds-brand .ds-header-star {
	width: 5.4rem !important;
	flex: 0 0 5.4rem !important;
	margin-block: -.9rem -1.25rem;
	transform: rotate(-4deg);
	font-size: .98rem !important;
}

.ds-brand-copy {
	display: block;
	padding-left: .1rem;
}

.ds-brand-name {
	font-size: clamp(1.1rem, 1.35vw, 1.35rem) !important;
	font-weight: 650 !important;
	line-height: 1.06 !important;
}

.ds-brand-sub {
	display: block !important;
	font-size: .76rem !important;
	line-height: 1.18 !important;
	color: var(--ds-muted);
	margin-top: .15rem;
}

.ds-primary-nav {
	flex: 1 1 auto;
	justify-content: center;
}

.ds-primary-nav .wp-block-navigation__container {
	gap: clamp(.9rem, 1.6vw, 1.65rem) !important;
}

.ds-primary-nav a,
.ds-primary-nav .wp-block-navigation-item__content {
	font-size: clamp(.96rem, 1vw, 1.08rem) !important;
	font-weight: 450 !important;
	letter-spacing: -.01em;
	line-height: 1.25 !important;
}

.ds-primary-nav .wp-block-navigation__submenu-container {
	min-width: 14rem !important;
	background: var(--ds-paper) !important;
	border: 1px solid rgba(42,37,34,.14) !important;
	padding: .7rem !important;
	box-shadow: none !important;
}

.ds-primary-nav .wp-block-navigation__submenu-container a {
	font-size: 1.05rem !important;
	padding: .7rem .85rem !important;
}

.ds-primary-nav .wp-block-navigation__submenu-container a:hover {
	background: var(--ds-orange);
	color: var(--ds-white) !important;
}

.ds-header-cta {
	flex: 0 0 auto;
}

.ds-header-cta .wp-block-button__link {
	min-height: 3.25rem !important;
	padding: .8rem 1.25rem !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	min-width: 9.8rem !important;
}

/* Mobile header */
@media (max-width: 860px) {
	:root { --ds-header-height: 74px; }
	.admin-bar .ds-site-header { top: 46px !important; }
	.ds-brand { min-width: auto; }
	.ds-brand .ds-header-star {
		width: 4.3rem !important;
		flex-basis: 4.3rem !important;
	}
	.ds-brand-sub { display: none !important; }
	.ds-primary-nav {
		flex: 0 0 auto;
	}
	.ds-header-cta {
		display: none !important;
	}
}

/* Reliable star centering and safe text zone */
.ds-spuer-star,
.ds-spuer-star.ds-rounded-star-mask {
	background: transparent !important;
	position: relative !important;
	display: block !important;
	aspect-ratio: 1 !important;
	overflow: visible !important;
	color: var(--ds-white);
	-webkit-mask-image: none !important;
	mask-image: none !important;
	line-height: 1 !important;
}

.ds-spuer-star::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ds-orange);
	-webkit-mask-image: var(--ds-star-mask);
	mask-image: var(--ds-star-mask);
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	z-index: 0;
}

.ds-spuer-star > span,
.ds-spuer-star .ds-star-text {
	position: absolute !important;
	inset: 0 !important;
	z-index: 1;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 30% !important;
	text-align: center !important;
	font-weight: 750 !important;
	line-height: .94 !important;
	color: currentColor;
	transform: none !important;
}

/* Hero: better text, larger readable star */
.ds-photo-hero {
	min-height: calc(92vh - var(--ds-header-height));
}

.ds-photo-hero .ds-hero-star {
	right: max(-4.2rem, -3.6vw) !important;
	top: 34% !important;
	width: clamp(15rem, 19vw, 22rem) !important;
	font-size: clamp(1.25rem, 1.55vw, 1.9rem) !important;
}

.ds-photo-hero h1 {
	max-width: 780px;
}

.ds-photo-hero .ds-lead {
	max-width: 850px !important;
	font-size: clamp(1.14rem, 1.42vw, 1.58rem) !important;
	line-height: 1.62 !important;
}

/* Buttons: no duplicate link in Hellocash overlay */
.ds-booking-modal-panel {
	width: min(1120px, 94vw);
	height: min(720px, 86vh);
	display: flex !important;
	align-items: center;
	justify-content: center;
}

.ds-booking-modal-content {
	text-align: center;
	max-width: 920px;
	padding: clamp(2rem, 6vw, 5rem);
}

.ds-booking-modal-content h2 {
	font-size: clamp(2.8rem, 5vw, 5rem);
	margin: .4rem 0 1rem;
}

.ds-booking-main-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.8rem;
	padding: .95rem 1.5rem;
	background: var(--ds-orange);
	color: var(--ds-white) !important;
	text-decoration: none !important;
	font-weight: 650;
	margin-top: 1.5rem;
}

/* Services: reduce vertical air and make cards clickable/hoverable */
.ds-section-intro {
	padding-bottom: clamp(1.2rem, 2.5vw, 2.2rem) !important;
}

.ds-section-small {
	padding-top: clamp(1.2rem, 2.5vw, 2.2rem) !important;
}

.ds-services-grid {
	align-items: stretch !important;
	position: relative;
}

.ds-service-card {
	height: 100% !important;
	min-height: clamp(28rem, 38vw, 33rem) !important;
	display: grid !important;
	grid-template-rows: auto auto 1fr auto !important;
	align-content: stretch !important;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
	position: relative;
	cursor: pointer;
}

.ds-service-card:hover,
.ds-service-card:focus-within {
	background: var(--ds-orange) !important;
	color: var(--ds-white) !important;
	transform: translateY(-2px);
}

.ds-service-card:hover *,
.ds-service-card:focus-within * {
	color: var(--ds-white) !important;
}

.ds-service-card:hover .ds-card-star-image,
.ds-service-card:focus-within .ds-card-star-image {
	background: var(--ds-white);
}

.ds-service-card a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ds-service-card a {
	position: relative;
	z-index: 2;
}

.ds-card-star-image {
	width: clamp(10.5rem, 14vw, 15rem) !important;
	top: clamp(-7rem, -6vw, -5.4rem) !important;
	left: auto !important;
	right: clamp(-1.8rem, -1.8vw, -.6rem) !important;
	transform: none !important;
	z-index: 3 !important;
}

.ds-service-card .ds-kicker {
	align-self: end;
}

.ds-service-card .ds-card-link {
	align-self: end !important;
	margin-top: 0 !important;
}

/* Mobile swipe arrows for offers */
.ds-offer-mobile-controls {
	display: none;
}

@media (max-width: 760px) {
	.ds-services-wrap {
		position: relative;
	}
	.ds-offer-mobile-controls {
		display: flex;
		justify-content: center;
		gap: .75rem;
		margin-top: 1rem;
	}
	.ds-offer-mobile-controls button {
		width: 3rem;
		height: 3rem;
		border: 0;
		background: var(--ds-orange);
		color: var(--ds-white);
		font-size: 1.5rem;
	}
}

/* Quote: narrower text, star right outside text field */
.ds-quote-band {
	min-height: clamp(34rem, 56vw, 48rem);
	display: flex;
	align-items: center;
}

.ds-quote-band .ds-grid {
	width: 100%;
}

.ds-quote-band blockquote {
	max-width: min(820px, 66vw) !important;
	margin-left: clamp(8rem, 18vw, 20rem) !important;
	margin-right: auto !important;
	text-align: center !important;
}

.ds-quote-band .ds-spuer-star {
	position: absolute !important;
	right: clamp(2rem, 7vw, 8rem) !important;
	left: auto !important;
	bottom: clamp(2rem, 6vw, 5rem) !important;
	width: clamp(9rem, 13vw, 15rem) !important;
	color: var(--ds-orange);
}

.ds-quote-band .ds-spuer-star::before {
	background: var(--ds-white);
}

/* Aktuelles: white and orange line separation */
.ds-content-band.ds-paper-warm {
	border-top: 7px solid var(--ds-white);
	border-bottom: 7px solid var(--ds-orange);
}

.ds-workshop-card {
	border-top: 7px solid var(--ds-orange) !important;
}

/* Blog controls: centered / right, never left */
.ds-blog-controls {
	justify-content: center !important;
	margin-top: 2rem !important;
}

/* Footer star: slightly bigger and higher */
.ds-footer-brand {
	align-items: center !important;
	justify-content: center !important;
}

.ds-footer .ds-footer-star {
	width: clamp(10rem, 15vw, 14rem) !important;
	transform: translateY(-.45rem) rotate(-4deg) !important;
	font-size: clamp(1.35rem, 1.9vw, 2rem) !important;
}

/* Scroll position + back to top */
.ds-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--ds-orange);
	transform-origin: left center;
	transform: scaleX(0);
	z-index: 100000;
}

.admin-bar .ds-scroll-progress {
	top: 32px;
}

.ds-back-to-top {
	position: fixed;
	right: 1.2rem;
	bottom: 1.2rem;
	width: 3rem;
	height: 3rem;
	display: grid;
	place-items: center;
	background: var(--ds-orange);
	color: var(--ds-white) !important;
	text-decoration: none !important;
	font-size: 1.6rem;
	z-index: 99998;
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}

.ds-back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
}

/* Pattern/block samples */
.ds-template-card {
	background: var(--ds-white);
	border-top: .42rem solid var(--ds-orange);
	padding: clamp(1.4rem, 2.4vw, 2.3rem);
	min-height: 100%;
}


/* v1.7 – header centering, quote height, footer star, privacy/plugin cleanup */

/* Header: true 3-zone grid, centered navigation, visible overflowing star */
:root {
	--ds-header-height: 88px;
}

body {
	padding-top: var(--ds-header-height) !important;
}

.ds-site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 99999 !important;
	min-height: var(--ds-header-height) !important;
	height: var(--ds-header-height) !important;
	overflow: visible !important;
	background: rgba(255,249,241,.975) !important;
	border-bottom: 1px solid rgba(42,37,34,.16) !important;
	box-shadow: none !important;
}

.ds-site-header > .wp-block-group,
.ds-site-header .alignwide,
.ds-header-inner {
	overflow: visible !important;
}

.ds-header-inner {
	height: var(--ds-header-height) !important;
	min-height: var(--ds-header-height) !important;
	display: grid !important;
	grid-template-columns: minmax(310px, 1fr) auto minmax(210px, 1fr) !important;
	align-items: center !important;
	column-gap: clamp(1rem, 2vw, 2.5rem) !important;
	position: relative !important;
}

.ds-brand {
	justify-self: start !important;
	align-self: center !important;
	min-width: 0 !important;
	position: relative !important;
	overflow: visible !important;
	transform: none !important;
}

.ds-brand .ds-header-star {
	width: 6.15rem !important;
	flex: 0 0 6.15rem !important;
	margin-top: -1.15rem !important;
	margin-bottom: -1.35rem !important;
	font-size: 1.03rem !important;
	transform: rotate(-4deg) translateY(.25rem) !important;
	z-index: 10 !important;
}

.ds-brand .ds-header-star > span {
	padding: 0 31% !important;
}

.ds-brand-copy {
	align-self: center !important;
	padding-top: .1rem !important;
}

.ds-brand-name {
	font-size: clamp(1.16rem, 1.35vw, 1.42rem) !important;
	line-height: 1.02 !important;
}

.ds-brand-sub {
	font-size: .78rem !important;
	line-height: 1.15 !important;
	margin-top: .18rem !important;
}

.ds-primary-nav {
	justify-self: center !important;
	align-self: center !important;
	width: auto !important;
	max-width: max-content !important;
}

.ds-primary-nav .wp-block-navigation__container {
	justify-content: center !important;
	gap: clamp(1.05rem, 1.6vw, 1.75rem) !important;
}

.ds-primary-nav a,
.ds-primary-nav .wp-block-navigation-item__content {
	font-size: clamp(1rem, 1.05vw, 1.12rem) !important;
	font-weight: 480 !important;
}

.ds-primary-nav .wp-block-navigation__submenu-container {
	min-width: 15.5rem !important;
	padding: .82rem !important;
	background: var(--ds-paper) !important;
	border: 1px solid rgba(42,37,34,.14) !important;
	box-shadow: none !important;
}

.ds-primary-nav .wp-block-navigation__submenu-container a {
	font-size: 1.08rem !important;
	padding: .78rem .9rem !important;
}

.ds-header-cta {
	justify-self: end !important;
	align-self: center !important;
}

.ds-header-cta .wp-block-button__link {
	min-height: 3.4rem !important;
	padding: .86rem 1.35rem !important;
	font-size: 1.02rem !important;
}

@media (max-width: 920px) {
	:root {
		--ds-header-height: 78px;
	}
	.ds-header-inner {
		grid-template-columns: 1fr auto !important;
	}
	.ds-brand .ds-header-star {
		width: 4.85rem !important;
		flex-basis: 4.85rem !important;
		margin-top: -.9rem !important;
		margin-bottom: -1rem !important;
		font-size: .9rem !important;
	}
	.ds-brand-sub {
		display: none !important;
	}
	.ds-header-cta {
		display: none !important;
	}
}

/* Keep star text optically centered but not too large inside the safe zone */
.ds-spuer-star > span,
.ds-spuer-star .ds-star-text {
	padding: 0 32% !important;
	line-height: .94 !important;
}

/* Hero star: larger than header star, safe text zone */
.ds-photo-hero .ds-hero-star {
	width: clamp(17rem, 21vw, 24rem) !important;
	font-size: clamp(1.35rem, 1.8vw, 2.05rem) !important;
	right: max(-4.7rem, -4vw) !important;
	top: 33% !important;
}

/* Quote block: less vertical height, no oversized orange slab */
.ds-quote-band {
	min-height: clamp(24rem, 36vw, 34rem) !important;
	padding-block: clamp(3.5rem, 6vw, 6rem) !important;
}

.ds-quote-band blockquote {
	font-size: clamp(2.15rem, 4vw, 4.35rem) !important;
	max-width: min(780px, 64vw) !important;
	margin-left: clamp(5rem, 16vw, 17rem) !important;
}

.ds-quote-band .ds-spuer-star {
	right: clamp(2.2rem, 6vw, 7rem) !important;
	bottom: clamp(1.4rem, 3.5vw, 3.2rem) !important;
	width: clamp(8.5rem, 11vw, 13rem) !important;
}

/* Footer star sits too low: move higher and keep readable */
.ds-footer .ds-footer-star {
	width: clamp(10.5rem, 15.5vw, 14.5rem) !important;
	transform: translateY(-1.15rem) rotate(-4deg) !important;
	font-size: clamp(1.35rem, 1.9vw, 2rem) !important;
}

/* Contact Form 7 support styling if CF7 shortcode is used instead of mailto form */
.wpcf7 form {
	display: grid;
	gap: 1.15rem;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
	width: 100%;
	border: 1px solid rgba(42,37,34,.28);
	background: var(--ds-paper);
	color: var(--ds-ink);
	padding: .9rem 1rem;
	font: inherit;
}

.wpcf7 input[type="submit"] {
	border: 0;
	background: var(--ds-orange);
	color: var(--ds-white);
	font: inherit;
	font-weight: 650;
	padding: 1rem 1.4rem;
	cursor: pointer;
}


/* v1.8 – separated header logo parts, title hierarchy, larger safe stars, mobile offer arrows */

/* Typographic hierarchy: page titles / hero titles are H1-scale; section titles stay below. */
h1,
.wp-block-heading:is(h1),
.ds-photo-hero h1,
.ds-about-copy h1 {
	font-size: clamp(3.2rem, 7vw, 7.4rem);
	line-height: .98;
	font-weight: 300;
	letter-spacing: -.04em;
}

h2,
.wp-block-heading:is(h2) {
	font-size: clamp(2.1rem, 4.4vw, 4.8rem);
	line-height: 1.06;
	font-weight: 330;
	letter-spacing: -.032em;
}

.ds-section-intro h2,
.ds-testimonial-intro h2,
.ds-blog-section h2 {
	font-size: clamp(2rem, 4.2vw, 4.65rem) !important;
	line-height: 1.08 !important;
}

/* Header: two independent HTML parts in one brand zone */
:root {
	--ds-header-height: 92px;
}

body {
	padding-top: var(--ds-header-height) !important;
}

.ds-site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 99999 !important;
	height: var(--ds-header-height) !important;
	min-height: var(--ds-header-height) !important;
	overflow: visible !important;
	background: rgba(255,249,241,.978) !important;
	border-bottom: 1px solid rgba(42,37,34,.16) !important;
}

.ds-site-header > .wp-block-group,
.ds-site-header .alignwide,
.ds-header-inner {
	overflow: visible !important;
}

.ds-header-inner {
	height: var(--ds-header-height) !important;
	min-height: var(--ds-header-height) !important;
	display: grid !important;
	grid-template-columns: minmax(390px, 1fr) auto minmax(230px, 1fr) !important;
	align-items: center !important;
	column-gap: clamp(1rem, 2vw, 2.5rem) !important;
	position: relative !important;
}

.ds-header-brand-zone {
	justify-self: start;
	display: grid;
	grid-template-columns: auto auto;
	align-items: center;
	gap: 1.05rem;
	position: relative;
	overflow: visible;
	min-width: 0;
}

.ds-header-star-link {
	display: block;
	position: relative;
	width: 7rem;
	height: 7rem;
	margin-top: -1.7rem;
	margin-bottom: -1.9rem;
	z-index: 5;
	text-decoration: none;
	overflow: visible;
}

.ds-header-star {
	width: 7rem !important;
	height: 7rem !important;
	font-size: 1.04rem !important;
	transform: rotate(-4deg) !important;
}

.ds-header-star > span {
	padding: 0 33% !important;
	line-height: .92 !important;
}

.ds-wordmark {
	display: block;
	text-decoration: none;
	color: var(--ds-ink);
	padding-top: .12rem;
}

.ds-wordmark:hover .ds-brand-name {
	color: var(--ds-orange);
}

.ds-wordmark .ds-brand-name {
	display: block;
	font-size: clamp(1.18rem, 1.45vw, 1.52rem) !important;
	font-weight: 680 !important;
	line-height: 1.02 !important;
	color: var(--ds-ink);
}

.ds-wordmark .ds-brand-sub {
	display: block !important;
	font-size: .8rem !important;
	line-height: 1.16 !important;
	margin-top: .18rem !important;
	color: var(--ds-muted);
}

.ds-primary-nav {
	justify-self: center !important;
	align-self: center !important;
	width: max-content !important;
	max-width: 100% !important;
}

.ds-primary-nav .wp-block-navigation__container {
	justify-content: center !important;
	gap: clamp(1.05rem, 1.7vw, 1.85rem) !important;
}

.ds-primary-nav a,
.ds-primary-nav .wp-block-navigation-item__content {
	font-size: clamp(1.02rem, 1.08vw, 1.14rem) !important;
	font-weight: 500 !important;
	letter-spacing: -.012em;
}

.ds-header-cta {
	justify-self: end !important;
}

.ds-header-cta .wp-block-button__link {
	min-height: 3.7rem !important;
	padding: .95rem 1.55rem !important;
	font-size: 1.06rem !important;
}

@media (max-width: 980px) {
	:root {
		--ds-header-height: 78px;
	}
	.ds-header-inner {
		grid-template-columns: 1fr auto !important;
	}
	.ds-header-brand-zone {
		gap: .7rem;
	}
	.ds-header-star-link,
	.ds-header-star {
		width: 5.25rem !important;
		height: 5.25rem !important;
	}
	.ds-header-star-link {
		margin-top: -1rem;
		margin-bottom: -1.2rem;
	}
	.ds-header-star {
		font-size: .88rem !important;
	}
	.ds-wordmark .ds-brand-sub {
		display: none !important;
	}
	.ds-header-cta {
		display: none !important;
	}
}

/* Global star text safety */
.ds-spuer-star > span,
.ds-spuer-star .ds-star-text {
	padding: 0 34% !important;
	line-height: .92 !important;
	font-weight: 760 !important;
}

/* Hero star: larger, with clear safety distance from outer edge */
.ds-photo-hero .ds-hero-star {
	width: clamp(20rem, 24vw, 28rem) !important;
	height: auto !important;
	font-size: clamp(1.55rem, 2vw, 2.35rem) !important;
	right: clamp(2.2rem, 4vw, 5.5rem) !important;
	top: 36% !important;
	transform: rotate(5deg) !important;
}

.ds-photo-hero .ds-hero-star > span {
	padding: 0 35% !important;
	line-height: .92 !important;
}

@media (max-width: 780px) {
	.ds-photo-hero .ds-hero-star {
		width: clamp(9.5rem, 34vw, 14rem) !important;
		right: 1.2rem !important;
		top: auto !important;
		bottom: 2rem !important;
	}
}

/* Quote: compact, star may be large and cropped on the right/bottom without touching text */
.ds-quote-band {
	min-height: clamp(22rem, 33vw, 31rem) !important;
	padding-block: clamp(3rem, 5.5vw, 5rem) !important;
	overflow: hidden !important;
}

.ds-quote-band blockquote {
	max-width: min(760px, 58vw) !important;
	margin-left: clamp(5rem, 17vw, 19rem) !important;
	margin-right: auto !important;
	font-size: clamp(2rem, 3.8vw, 4.1rem) !important;
	position: relative;
	z-index: 2;
}

.ds-quote-band .ds-spuer-star {
	position: absolute !important;
	right: clamp(-7rem, -5vw, -3rem) !important;
	bottom: clamp(-7rem, -5vw, -3rem) !important;
	width: clamp(16rem, 22vw, 28rem) !important;
	z-index: 1 !important;
	color: var(--ds-orange);
}

.ds-quote-band .ds-spuer-star::before {
	background: var(--ds-white);
}

/* Footer star: lift a touch more */
.ds-footer .ds-footer-star {
	transform: translateY(-1.75rem) rotate(-4deg) !important;
}

/* Mobile offer arrows analogous to blog arrows */
.ds-offer-mobile-controls {
	display: none;
}

@media (max-width: 760px) {
	.ds-offer-mobile-controls {
		display: flex !important;
		justify-content: center;
		gap: .75rem;
		margin-top: 1.1rem;
	}
	.ds-offer-mobile-controls button {
		width: 3rem;
		height: 3rem;
		border: 0;
		background: var(--ds-orange);
		color: var(--ds-white);
		font-size: 1.5rem;
		line-height: 1;
		cursor: pointer;
	}
	.ds-services-grid {
		scroll-behavior: smooth;
	}
}

/* Prevent WordPress generated page title from appearing as random non-H1 center item in the nav/header if template injects it */
.ds-site-header .wp-block-post-title {
	display: none !important;
}


/* v1.9 – force current saved header layout, hero offset/cropped star, footer optical centering */

/* Kill the old duplicated SEO sentence that was once appended by CSS. */
.ds-photo-hero .ds-lead::after {
	content: none !important;
}

/* HEADER: robust rules for both the new split-header markup and older saved Site-Editor header markup. */
:root {
	--ds-header-height: 94px;
}

body {
	padding-top: var(--ds-header-height) !important;
}

.ds-site-header,
.site-header,
header.wp-block-template-part {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 100000 !important;
	height: var(--ds-header-height) !important;
	min-height: var(--ds-header-height) !important;
	overflow: visible !important;
	background: rgba(255,249,241,.985) !important;
	border-bottom: 1px solid rgba(42,37,34,.16) !important;
	box-shadow: none !important;
}

.admin-bar .ds-site-header,
.admin-bar .site-header,
.admin-bar header.wp-block-template-part {
	top: 32px !important;
}

.ds-site-header *,
.site-header *,
header.wp-block-template-part * {
	overflow: visible;
}

.ds-header-inner,
.ds-site-header > .wp-block-group > .wp-block-group,
.ds-site-header .alignwide,
header.wp-block-template-part > .wp-block-group > .wp-block-group,
header.wp-block-template-part .alignwide {
	height: var(--ds-header-height) !important;
	min-height: var(--ds-header-height) !important;
	display: grid !important;
	grid-template-columns: minmax(390px,1fr) auto minmax(240px,1fr) !important;
	align-items: center !important;
	column-gap: clamp(1rem,2vw,2.5rem) !important;
	position: relative !important;
	overflow: visible !important;
}

.ds-header-brand-zone,
.ds-brand {
	justify-self: start !important;
	display: grid !important;
	grid-template-columns: auto auto !important;
	align-items: center !important;
	gap: 1.05rem !important;
	position: relative !important;
	overflow: visible !important;
	min-width: 0 !important;
}

/* The separate star part and the older .ds-brand star fallback. */
.ds-header-star-link,
.ds-brand > .ds-spuer-star,
.ds-brand .ds-header-star,
.ds-site-header .ds-spuer-star.ds-header-star {
	position: relative !important;
	display: block !important;
	width: 7.4rem !important;
	height: 7.4rem !important;
	flex: 0 0 7.4rem !important;
	margin-top: -1.9rem !important;
	margin-bottom: -2.25rem !important;
	z-index: 10 !important;
	transform: rotate(-4deg) translateY(.35rem) !important;
	text-decoration: none !important;
}

.ds-header-star-link .ds-header-star,
.ds-brand > .ds-spuer-star,
.ds-brand .ds-header-star,
.ds-site-header .ds-spuer-star.ds-header-star {
	font-size: 1rem !important;
}

.ds-header-star-link .ds-header-star > span,
.ds-brand > .ds-spuer-star > span,
.ds-brand .ds-header-star > span,
.ds-site-header .ds-spuer-star.ds-header-star > span {
	padding: 0 35% !important;
	line-height: .9 !important;
	transform: translateY(-1%) !important;
	font-size: 1em !important;
}

.ds-wordmark,
.ds-brand-copy,
.ds-brand > span:not(.ds-spuer-star) {
	display: block !important;
	text-decoration: none !important;
	align-self: center !important;
}

.ds-wordmark .ds-brand-name,
.ds-brand-name {
	display: block !important;
	font-size: clamp(1.18rem,1.45vw,1.52rem) !important;
	font-weight: 680 !important;
	line-height: 1.02 !important;
	color: var(--ds-ink) !important;
}

.ds-wordmark .ds-brand-sub,
.ds-brand-sub {
	display: block !important;
	font-size: .8rem !important;
	line-height: 1.15 !important;
	margin-top: .18rem !important;
	color: var(--ds-muted) !important;
}

.ds-primary-nav,
.ds-main-nav,
.ds-site-header .wp-block-navigation {
	justify-self: center !important;
	align-self: center !important;
	width: max-content !important;
	max-width: 100% !important;
}

.ds-primary-nav .wp-block-navigation__container,
.ds-main-nav .wp-block-navigation__container,
.ds-site-header .wp-block-navigation__container {
	justify-content: center !important;
	gap: clamp(1.05rem,1.7vw,1.85rem) !important;
}

.ds-primary-nav a,
.ds-main-nav a,
.ds-site-header .wp-block-navigation a,
.ds-site-header .wp-block-navigation-item__content {
	font-size: clamp(1.02rem,1.08vw,1.14rem) !important;
	font-weight: 500 !important;
	letter-spacing: -.012em !important;
}

.ds-header-cta {
	justify-self: end !important;
	align-self: stretch !important;
	display: flex !important;
	align-items: stretch !important;
}

.ds-header-cta .wp-block-button,
.ds-header-cta .wp-block-button__link {
	height: 100% !important;
}

.ds-header-cta .wp-block-button__link {
	min-height: var(--ds-header-height) !important;
	padding: 0 1.6rem !important;
	font-size: 1.08rem !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

@media (max-width: 980px) {
	:root { --ds-header-height: 80px; }
	.ds-header-inner,
	.ds-site-header > .wp-block-group > .wp-block-group,
	.ds-site-header .alignwide,
	header.wp-block-template-part > .wp-block-group > .wp-block-group,
	header.wp-block-template-part .alignwide {
		grid-template-columns: 1fr auto !important;
	}
	.ds-header-star-link,
	.ds-brand > .ds-spuer-star,
	.ds-brand .ds-header-star,
	.ds-site-header .ds-spuer-star.ds-header-star {
		width: 5.4rem !important;
		height: 5.4rem !important;
		flex-basis: 5.4rem !important;
		margin-top: -1rem !important;
		margin-bottom: -1.25rem !important;
		font-size: .86rem !important;
	}
	.ds-brand-sub { display: none !important; }
	.ds-header-cta { display: none !important; }
}

/* HERO: text block more inward; star large and intentionally cropped, around two thirds visible. */
.ds-photo-hero-content,
.ds-photo-hero .ds-grid,
.ds-photo-hero-content.ds-grid {
	padding-left: clamp(2.8rem, 5vw, 6.5rem) !important;
	padding-right: clamp(1.6rem, 3vw, 4rem) !important;
}

.ds-photo-hero h1 {
	max-width: 820px !important;
}

.ds-photo-hero .ds-lead {
	max-width: 760px !important;
}

.ds-photo-hero .ds-hero-star {
	width: clamp(21rem, 27vw, 31rem) !important;
	height: auto !important;
	right: clamp(-11rem, -8vw, -6.5rem) !important;
	top: 37% !important;
	transform: rotate(5deg) !important;
	font-size: clamp(1.55rem, 2vw, 2.35rem) !important;
}

.ds-photo-hero .ds-hero-star > span {
	padding: 0 36% !important;
	line-height: .9 !important;
	transform: translateY(-1%) !important;
}

@media (max-width: 780px) {
	.ds-photo-hero-content,
	.ds-photo-hero .ds-grid,
	.ds-photo-hero-content.ds-grid {
		padding-left: 1.3rem !important;
		padding-right: 1.3rem !important;
	}
	.ds-photo-hero .ds-hero-star {
		width: clamp(11rem, 42vw, 16rem) !important;
		right: -4.5rem !important;
		top: auto !important;
		bottom: 2rem !important;
	}
}

/* Zitat: bigger cropped star, text never touched. */
.ds-quote-band {
	min-height: clamp(22rem, 33vw, 31rem) !important;
	padding-block: clamp(3rem, 5.5vw, 5rem) !important;
	overflow: hidden !important;
}
.ds-quote-band blockquote {
	max-width: min(760px,58vw) !important;
	margin-left: clamp(5rem,17vw,19rem) !important;
	position: relative !important;
	z-index: 2 !important;
}
.ds-quote-band .ds-spuer-star {
	right: clamp(-9rem,-7vw,-4rem) !important;
	bottom: clamp(-9rem,-7vw,-4rem) !important;
	width: clamp(18rem,25vw,31rem) !important;
	z-index: 1 !important;
}

/* Footer: optical vertical centering of the lettering inside the star. */
.ds-footer .ds-footer-star {
	transform: translateY(-1.65rem) rotate(-4deg) !important;
}
.ds-footer .ds-footer-star > span,
.ds-footer .ds-spuer-star > span {
	transform: translateY(-6%) !important;
	padding: 0 31% !important;
	line-height: .9 !important;
}


/* v1.10 – templates, card image blocks, header CTA, hero star */

/* Header CTA must not consume full header height */
.ds-header-cta {
	height: auto !important;
	align-self: center !important;
	display: flex !important;
	align-items: center !important;
}

.ds-header-cta .wp-block-button,
.ds-header-cta .wp-block-button__link {
	height: auto !important;
	max-height: none !important;
}

.ds-header-cta .wp-block-button__link {
	min-height: 3.25rem !important;
	padding: .78rem 1.45rem !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Header wordmark / star fallback for both old and new template states */
.ds-site-header {
	overflow: visible !important;
}

.ds-site-header .ds-header-star,
.ds-site-header .ds-brand .ds-spuer-star {
	width: 6.5rem !important;
	height: 6.5rem !important;
	flex-basis: 6.5rem !important;
	margin-top: -1.35rem !important;
	margin-bottom: -1.55rem !important;
	font-size: 1rem !important;
	z-index: 20 !important;
}

/* Hero: star larger, lower-right and intentionally clipped; about 2/3 visible */
.ds-photo-hero {
	position: relative;
	overflow: hidden !important;
}

.ds-photo-hero .ds-hero-star {
	width: clamp(22rem, 31vw, 36rem) !important;
	height: auto !important;
	right: clamp(-8rem, -7vw, -5rem) !important;
	top: auto !important;
	bottom: clamp(2.5rem, 7vw, 6rem) !important;
	font-size: clamp(1.55rem, 2.1vw, 2.5rem) !important;
	transform: rotate(5deg) !important;
	z-index: 3 !important;
}

.ds-photo-hero .ds-hero-star > span {
	padding: 0 36% !important;
	line-height: .92 !important;
}

.ds-photo-hero-content {
	position: relative;
	z-index: 4;
}

.ds-photo-hero .ds-col-8,
.ds-photo-hero .ds-col-7 {
	margin-left: clamp(1.5rem, 5vw, 6rem) !important;
}

@media (max-width: 780px) {
	.ds-photo-hero .ds-hero-star {
		width: clamp(12rem, 52vw, 18rem) !important;
		right: -4rem !important;
		bottom: 2rem !important;
	}
	.ds-photo-hero .ds-col-8,
	.ds-photo-hero .ds-col-7 {
		margin-left: 0 !important;
	}
}

/* Replaceable star image blocks inside cards */
.ds-card-star-image,
.ds-star-photo-mask {
	position: absolute !important;
	width: clamp(11rem, 15vw, 16rem) !important;
	aspect-ratio: 1 !important;
	top: clamp(-7.4rem, -6.5vw, -5.8rem) !important;
	right: clamp(-2rem, -1.7vw, -.8rem) !important;
	left: auto !important;
	transform: none !important;
	margin: 0 !important;
	z-index: 4 !important;
	background: var(--ds-white);
	-webkit-mask-image: var(--ds-star-mask);
	mask-image: var(--ds-star-mask);
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	overflow: hidden;
}

.ds-card-star-image img,
.ds-star-photo-mask img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

.ds-card-star-image figcaption,
.ds-star-photo-mask figcaption {
	display: none;
}

.ds-service-card {
	position: relative !important;
	overflow: visible !important;
	padding-top: clamp(6.6rem, 8vw, 8.5rem) !important;
}

/* Make service cards equal and keep text/link on common rhythm */
.ds-services-grid {
	align-items: stretch !important;
}

.ds-service-card {
	min-height: clamp(29rem, 38vw, 34rem) !important;
	display: grid !important;
	grid-template-rows: auto auto 1fr auto !important;
}

.ds-service-card .ds-card-link {
	align-self: end !important;
}

/* Mobile arrows same style as blog arrows */
.ds-offer-mobile-controls {
	display: none;
}

@media (max-width: 760px) {
	.ds-offer-mobile-controls {
		display: flex !important;
		justify-content: center !important;
		gap: .75rem !important;
		margin-top: 1.1rem !important;
	}
	.ds-offer-mobile-controls button {
		width: 3rem;
		height: 3rem;
		border: 0;
		background: var(--ds-orange);
		color: var(--ds-white);
		font-size: 1.5rem;
		line-height: 1;
		cursor: pointer;
	}
}

/* Footer star optical correction */
.ds-footer .ds-footer-star,
.ds-footer .ds-spuer-star {
	transform: translateY(-2.1rem) rotate(-4deg) !important;
}

/* Safer default page template */
.ds-page-shell {
	padding-top: clamp(4rem, 7vw, 7rem);
	padding-bottom: clamp(4rem, 7vw, 7rem);
	background: var(--ds-paper);
}

.ds-page-shell .wp-block-post-title {
	max-width: 980px;
}

.ds-page-content {
	max-width: 980px;
}

/* Block library previews should not collapse */
.ds-pattern-note {
	background: var(--ds-paper-warm);
	border-left: .35rem solid var(--ds-orange);
	padding: 1rem 1.2rem;
}


/* v1.11 – Blog cards open full article in same-page overlay */

.ds-blog-card {
	position: relative;
	padding: 0 !important;
	overflow: hidden;
}

.ds-blog-card-link {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	color: var(--ds-ink);
	text-decoration: none !important;
	background: var(--ds-white);
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.ds-blog-card-link:hover,
.ds-blog-card-link:focus-visible {
	background: var(--ds-orange);
	color: var(--ds-white);
	outline: none;
	transform: translateY(-2px);
}

.ds-blog-card-link:hover *,
.ds-blog-card-link:focus-visible * {
	color: var(--ds-white) !important;
}

.ds-blog-card-title {
	display: block;
	font-size: clamp(1.35rem, 1.65vw, 1.9rem);
	line-height: 1.12;
	font-weight: 420;
	letter-spacing: -.025em;
}

.ds-blog-card-content {
	display: grid !important;
	grid-template-rows: auto 1fr;
	gap: 1rem;
	padding: clamp(1.2rem, 2vw, 1.8rem);
}

.ds-blog-excerpt {
	display: block;
	font-size: clamp(.98rem, 1vw, 1.08rem);
	line-height: 1.55;
}

.ds-blog-card-image {
	aspect-ratio: 4 / 3;
	background: var(--ds-sand);
	display: block;
	overflow: hidden;
}

.ds-blog-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Modal */
html.ds-blog-modal-open,
html.ds-blog-modal-open body {
	overflow: hidden;
}

.ds-blog-modal[hidden] {
	display: none;
}

.ds-blog-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
}

.ds-blog-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 37, 34, .76);
}

.ds-blog-modal-panel {
	position: relative;
	width: min(1040px, 94vw);
	max-height: min(88vh, 920px);
	background: var(--ds-paper);
	display: grid;
	grid-template-rows: auto 1fr;
	overflow: hidden;
}

.ds-blog-modal-close {
	justify-self: end;
	width: 3.25rem;
	height: 3.25rem;
	border: 0;
	background: var(--ds-orange);
	color: var(--ds-white);
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	margin: 1rem 1rem 0 0;
}

.ds-blog-modal-content {
	overflow-y: auto;
	padding: clamp(1.3rem, 4vw, 4rem);
	outline: none;
}

.ds-blog-modal-article {
	max-width: 820px;
	margin-inline: auto;
}

.ds-blog-modal-image {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
}

.ds-blog-modal-image img {
	width: 100%;
	height: auto;
	display: block;
}

.ds-blog-modal-article h2 {
	font-size: clamp(2.2rem, 4.4vw, 4.8rem);
	line-height: 1.04;
	margin-top: .3rem;
}

.ds-blog-modal-body {
	font-size: clamp(1rem, 1.12vw, 1.18rem);
	line-height: 1.72;
}

.ds-blog-modal-body > * + * {
	margin-top: 1em;
}


/* v1.12 – optical star-text centering for header + hero only */

/* Footer is already correct; only header and hero get an optical correction. */
.ds-header-star > span,
.ds-photo-hero .ds-hero-star > span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: 0 35.5% !important;
	line-height: .9 !important;
	transform: translateY(-3.5%) !important;
	transform-origin: center center !important;
}

.ds-header-star > span {
	font-size: .96em !important;
	letter-spacing: -.04em !important;
}

.ds-photo-hero .ds-hero-star > span {
	font-size: .94em !important;
	letter-spacing: -.045em !important;
}

/* In case older saved header markup is still active, target the first/header star too. */
.ds-site-header .ds-spuer-star > span {
	transform: translateY(-3.5%) !important;
	padding: 0 35.5% !important;
}

/* Keep footer explicitly on the proven positioning; do not inherit the header/hero optical offset. */
.ds-footer .ds-spuer-star > span,
.ds-footer-star > span {
	transform: none !important;
	padding: 0 34% !important;
	line-height: .92 !important;
}


/* v1.13 – stable shortcode-based blog overlay */

.ds-blog-shortcode-section {
	padding: clamp(4rem, 7vw, 7rem) clamp(1.2rem, 4vw, 4rem);
	background: var(--ds-paper, #fff9f1);
}

.ds-blog-shortcode-intro {
	max-width: 980px;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

.ds-blog-shortcode-intro h2 {
	font-size: clamp(2.4rem, 5vw, 5.4rem);
	line-height: 1.05;
	font-weight: 330;
	letter-spacing: -0.035em;
	margin: 0.3em 0;
}

.ds-blog-shortcode-intro p:not(.ds-kicker) {
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	line-height: 1.65;
	max-width: 900px;
}

.ds-blog-overlay-carousel {
	position: relative;
}

.ds-blog-overlay-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2rem) / 3);
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 0.5rem;
}

.ds-blog-overlay-track::-webkit-scrollbar {
	display: none;
}

.ds-blog-overlay-card {
	scroll-snap-align: start;
	background: #fff;
	min-height: 28rem;
	padding: 0 !important;
	overflow: hidden;
}

.ds-blog-overlay-card-link {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	color: var(--ds-ink, #2a2522);
	text-decoration: none !important;
	background: #fff;
	transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.ds-blog-overlay-card-link:hover,
.ds-blog-overlay-card-link:focus-visible {
	background: var(--ds-orange, #f74900);
	color: #fff;
	transform: translateY(-2px);
	outline: none;
}

.ds-blog-overlay-card-link:hover *,
.ds-blog-overlay-card-link:focus-visible * {
	color: #fff;
}

.ds-blog-overlay-image {
	display: block;
	aspect-ratio: 4 / 3;
	background: #e9d6bd;
	overflow: hidden;
}

.ds-blog-overlay-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ds-blog-overlay-image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(135deg, transparent 49.5%, rgba(42, 37, 34, 0.15) 50%, transparent 50.5%),
		#e9d6bd;
}

.ds-blog-overlay-content {
	display: grid;
	grid-template-rows: auto 1fr;
	gap: 1rem;
	padding: clamp(1.2rem, 2vw, 1.8rem);
}

.ds-blog-overlay-title {
	display: block;
	font-size: clamp(1.35rem, 1.65vw, 1.9rem);
	line-height: 1.12;
	font-weight: 430;
	letter-spacing: -0.025em;
}

.ds-blog-overlay-excerpt {
	display: block;
	font-size: clamp(0.98rem, 1vw, 1.08rem);
	line-height: 1.55;
}

.ds-blog-overlay-controls {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 2rem;
}

.ds-blog-overlay-arrow {
	width: 3rem;
	height: 3rem;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

/* Blog overlay modal */

html.ds-blog-modal-open,
html.ds-blog-modal-open body {
	overflow: hidden;
}

.ds-blog-modal[hidden] {
	display: none;
}

.ds-blog-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
}

.ds-blog-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 37, 34, 0.76);
}

.ds-blog-modal-panel {
	position: relative;
	width: min(1040px, 94vw);
	max-height: min(88vh, 920px);
	background: var(--ds-paper, #fff9f1);
	display: grid;
	grid-template-rows: auto 1fr;
	overflow: hidden;
}

.ds-blog-modal-close {
	justify-self: end;
	width: 3.25rem;
	height: 3.25rem;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	margin: 1rem 1rem 0 0;
}

.ds-blog-modal-content {
	overflow-y: auto;
	padding: clamp(1.3rem, 4vw, 4rem);
	outline: none;
}

.ds-blog-modal-article {
	max-width: 820px;
	margin-inline: auto;
}

.ds-blog-modal-image {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
}

.ds-blog-modal-image img {
	width: 100%;
	height: auto;
	display: block;
}

.ds-blog-modal-article h2 {
	font-size: clamp(2.2rem, 4.4vw, 4.8rem);
	line-height: 1.04;
	margin-top: 0.3rem;
}

.ds-blog-modal-body {
	font-size: clamp(1rem, 1.12vw, 1.18rem);
	line-height: 1.72;
}

.ds-blog-modal-body > * + * {
	margin-top: 1em;
}

@media (max-width: 900px) {
	.ds-blog-overlay-track {
		grid-auto-columns: 82%;
	}
}

@media (max-width: 600px) {
	.ds-blog-overlay-track {
		grid-auto-columns: 92%;
	}
}


/* v1.14 – Blog overlay without automatic featured image */

/* The card may use the featured image as preview.
   Inside the modal, the featured image is no longer injected automatically.
   Only images embedded directly in the post content are shown. */
.ds-blog-modal-body figure,
.ds-blog-modal-body .wp-block-image {
	margin-block: clamp(1.5rem, 3vw, 2.5rem);
}

.ds-blog-modal-body figure img,
.ds-blog-modal-body .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
}


/* v1.15 – stable dynamic Blog Overlay block */

.ds-editor-blog-overlay-placeholder {
	border: 1px solid rgba(42,37,34,.22);
	border-left: .45rem solid var(--ds-orange, #f74900);
	background: var(--ds-paper, #fff9f1);
	padding: 1.25rem 1.4rem;
	font-family: inherit;
}

.ds-editor-blog-overlay-placeholder h3 {
	margin: .25rem 0 .35rem;
	font-size: 1.35rem;
}

/* Keep shortcode/frontend output stable */
.ds-blog-shortcode-section {
	padding: clamp(4rem, 7vw, 7rem) clamp(1.2rem, 4vw, 4rem);
	background: var(--ds-paper, #fff9f1);
}

.ds-blog-shortcode-intro {
	max-width: 980px;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

.ds-blog-shortcode-intro h2 {
	font-size: clamp(2.4rem, 5vw, 5.4rem);
	line-height: 1.05;
	font-weight: 330;
	letter-spacing: -0.035em;
	margin: 0.3em 0;
}

.ds-blog-shortcode-intro p:not(.ds-kicker) {
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	line-height: 1.65;
	max-width: 900px;
}

.ds-blog-overlay-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2rem) / 3);
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: .5rem;
}

.ds-blog-overlay-card {
	scroll-snap-align: start;
	background: #fff;
	min-height: 28rem;
	padding: 0 !important;
	overflow: hidden;
}

.ds-blog-overlay-card-link {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	color: var(--ds-ink, #2a2522);
	text-decoration: none !important;
	background: #fff;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.ds-blog-overlay-card-link:hover,
.ds-blog-overlay-card-link:focus-visible {
	background: var(--ds-orange, #f74900);
	color: #fff;
	transform: translateY(-2px);
	outline: none;
}

.ds-blog-overlay-card-link:hover *,
.ds-blog-overlay-card-link:focus-visible * {
	color: #fff;
}

.ds-blog-overlay-image {
	display: block;
	aspect-ratio: 4 / 3;
	background: #e9d6bd;
	overflow: hidden;
}

.ds-blog-overlay-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ds-blog-overlay-image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(135deg, transparent 49.5%, rgba(42, 37, 34, 0.15) 50%, transparent 50.5%),
		#e9d6bd;
}

.ds-blog-overlay-content {
	display: grid;
	grid-template-rows: auto 1fr;
	gap: 1rem;
	padding: clamp(1.2rem, 2vw, 1.8rem);
}

.ds-blog-overlay-title {
	display: block;
	font-size: clamp(1.35rem, 1.65vw, 1.9rem);
	line-height: 1.12;
	font-weight: 430;
	letter-spacing: -0.025em;
}

.ds-blog-overlay-excerpt {
	display: block;
	font-size: clamp(.98rem, 1vw, 1.08rem);
	line-height: 1.55;
}

.ds-blog-overlay-controls {
	display: flex;
	justify-content: center;
	gap: .75rem;
	margin-top: 2rem;
}

.ds-blog-overlay-arrow {
	width: 3rem;
	height: 3rem;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.ds-blog-modal[hidden] {
	display: none;
}

html.ds-blog-modal-open,
html.ds-blog-modal-open body {
	overflow: hidden;
}

.ds-blog-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
}

.ds-blog-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42,37,34,.76);
}

.ds-blog-modal-panel {
	position: relative;
	width: min(1040px, 94vw);
	max-height: min(88vh, 920px);
	background: var(--ds-paper, #fff9f1);
	display: grid;
	grid-template-rows: auto 1fr;
	overflow: hidden;
}

.ds-blog-modal-close {
	justify-self: end;
	width: 3.25rem;
	height: 3.25rem;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	margin: 1rem 1rem 0 0;
}

.ds-blog-modal-content {
	overflow-y: auto;
	padding: clamp(1.3rem, 4vw, 4rem);
	outline: none;
}

.ds-blog-modal-article {
	max-width: 820px;
	margin-inline: auto;
}

.ds-blog-modal-article h2 {
	font-size: clamp(2.2rem, 4.4vw, 4.8rem);
	line-height: 1.04;
	margin-top: .3rem;
}

.ds-blog-modal-body {
	font-size: clamp(1rem, 1.12vw, 1.18rem);
	line-height: 1.72;
}

.ds-blog-modal-body > * + * {
	margin-top: 1em;
}

.ds-blog-modal-body figure,
.ds-blog-modal-body .wp-block-image {
	margin-block: clamp(1.5rem, 3vw, 2.5rem);
}

.ds-blog-modal-body figure img,
.ds-blog-modal-body .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 900px) {
	.ds-blog-overlay-track {
		grid-auto-columns: 82%;
	}
}

@media (max-width: 600px) {
	.ds-blog-overlay-track {
		grid-auto-columns: 92%;
	}
}


/* v1.17 – robust blog-card rendering, no empty orange block */

.ds-blog-overlay-carousel {
	max-width: min(100%, 1440px);
	margin-inline: auto;
}

.ds-blog-overlay-track {
	display: flex !important;
	gap: clamp(1rem, 2vw, 1.4rem) !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: .75rem;
	align-items: stretch;
}

.ds-blog-overlay-track::-webkit-scrollbar {
	display: none;
}

.ds-blog-overlay-card {
	flex: 0 0 calc((100% - 2.8rem) / 3) !important;
	width: calc((100% - 2.8rem) / 3) !important;
	min-width: 0 !important;
	min-height: auto !important;
	scroll-snap-align: start;
	background: var(--ds-white, #fff) !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 1px solid rgba(42, 37, 34, .12);
}

.ds-blog-count-1 .ds-blog-overlay-card {
	flex-basis: min(32rem, 100%) !important;
	width: min(32rem, 100%) !important;
}

.ds-blog-count-2 .ds-blog-overlay-card {
	flex-basis: calc((100% - 1.4rem) / 2) !important;
	width: calc((100% - 1.4rem) / 2) !important;
}

.ds-blog-overlay-card-link {
	display: grid !important;
	grid-template-rows: auto 1fr !important;
	height: 100% !important;
	min-height: 0 !important;
	color: var(--ds-ink, #2a2522) !important;
	text-decoration: none !important;
	background: var(--ds-white, #fff) !important;
	transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}

.ds-blog-overlay-card-link:hover,
.ds-blog-overlay-card-link:focus-visible {
	background: var(--ds-white, #fff) !important;
	color: var(--ds-ink, #2a2522) !important;
	transform: translateY(-2px);
	outline: 3px solid var(--ds-orange, #f74900);
	outline-offset: 0;
}

.ds-blog-overlay-card-link:hover *,
.ds-blog-overlay-card-link:focus-visible * {
	color: var(--ds-ink, #2a2522) !important;
}

.ds-blog-overlay-image {
	display: block !important;
	width: 100% !important;
	aspect-ratio: 4 / 3 !important;
	max-height: clamp(14rem, 20vw, 18rem);
	background: #e9d6bd !important;
	overflow: hidden !important;
}

.ds-blog-overlay-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

.ds-blog-overlay-content {
	display: block !important;
	background: var(--ds-white, #fff) !important;
	color: var(--ds-ink, #2a2522) !important;
	padding: clamp(1.2rem, 2vw, 1.8rem) !important;
	min-height: 10rem !important;
}

.ds-blog-overlay-title {
	display: block !important;
	color: var(--ds-ink, #2a2522) !important;
	font-size: clamp(1.35rem, 1.65vw, 1.9rem) !important;
	line-height: 1.12 !important;
	font-weight: 430 !important;
	letter-spacing: -0.025em !important;
	margin: 0 0 .85rem !important;
}

.ds-blog-overlay-excerpt {
	display: block !important;
	color: var(--ds-ink, #2a2522) !important;
	font-size: clamp(.98rem, 1vw, 1.08rem) !important;
	line-height: 1.55 !important;
	margin: 0 !important;
}

.ds-blog-overlay-card-link::after {
	content: "Artikel öffnen";
	display: block;
	color: var(--ds-orange, #f74900);
	padding: 0 clamp(1.2rem, 2vw, 1.8rem) clamp(1.2rem, 2vw, 1.8rem);
	font-size: .95rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .18em;
}

.ds-blog-overlay-card-link:hover::after,
.ds-blog-overlay-card-link:focus-visible::after {
	color: var(--ds-orange, #f74900);
}

@media (max-width: 900px) {
	.ds-blog-overlay-card,
	.ds-blog-count-1 .ds-blog-overlay-card,
	.ds-blog-count-2 .ds-blog-overlay-card {
		flex-basis: 82% !important;
		width: 82% !important;
	}
}

@media (max-width: 600px) {
	.ds-blog-overlay-card,
	.ds-blog-count-1 .ds-blog-overlay-card,
	.ds-blog-count-2 .ds-blog-overlay-card {
		flex-basis: 92% !important;
		width: 92% !important;
	}
}


/* v1.18 – editable Hero photo via core Cover/Image block */

.ds-photo-hero-cover {
	position: relative;
	overflow: hidden !important;
	background: linear-gradient(135deg, #756255 0%, #b99b8b 55%, #f0c7b8 100%);
}

.ds-photo-hero-cover .wp-block-cover__image-background {
	filter: saturate(.92) contrast(.95);
}

.ds-photo-hero-cover .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(42,37,34,.54) 0%, rgba(42,37,34,.32) 48%, rgba(247,73,0,.04) 100%) !important;
	opacity: 1 !important;
}

.ds-photo-hero-cover .wp-block-cover__inner-container {
	width: 100%;
	max-width: none !important;
	position: relative;
	z-index: 2;
}

.ds-photo-hero-content {
	max-width: min(780px, 58vw);
	margin-left: clamp(2rem, 7vw, 7rem) !important;
	color: var(--ds-white, #fff9f1);
}

.ds-photo-hero-content h1,
.ds-photo-hero-cover h1 {
	color: var(--ds-white, #fff9f1) !important;
}

.ds-photo-hero-content .ds-kicker,
.ds-photo-hero-content .ds-lead {
	color: var(--ds-white, #fff9f1) !important;
}

.ds-photo-hero-cover .ds-hero-buttons {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.ds-photo-hero-cover .ds-hero-star {
	position: absolute !important;
	right: clamp(-8rem, -7vw, -5rem) !important;
	bottom: clamp(2.5rem, 7vw, 6rem) !important;
	top: auto !important;
	width: clamp(22rem, 31vw, 36rem) !important;
	z-index: 3 !important;
}

/* Simple image hero fallback pattern */
.ds-editable-hero-simple {
	position: relative;
	min-height: 720px;
	overflow: hidden;
	background: #756255;
}

.ds-editable-hero-simple .ds-editable-hero-image {
	position: absolute;
	inset: 0;
	margin: 0 !important;
	width: 100%;
	height: 100%;
}

.ds-editable-hero-simple .ds-editable-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: saturate(.92) contrast(.95);
}

.ds-editable-hero-simple::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(42,37,34,.54) 0%, rgba(42,37,34,.32) 48%, rgba(247,73,0,.04) 100%);
	z-index: 1;
}

.ds-editable-hero-overlay {
	position: relative;
	z-index: 2;
	max-width: min(780px, 58vw);
	margin-left: clamp(2rem, 7vw, 7rem) !important;
	padding-top: clamp(9rem, 14vw, 14rem);
	color: var(--ds-white, #fff9f1);
}

.ds-editable-hero-overlay h1,
.ds-editable-hero-overlay .ds-kicker,
.ds-editable-hero-overlay .ds-lead {
	color: var(--ds-white, #fff9f1) !important;
}

@media (max-width: 780px) {
	.ds-photo-hero-content,
	.ds-editable-hero-overlay {
		max-width: none;
		margin-left: 1.2rem !important;
		margin-right: 1.2rem !important;
	}
	.ds-photo-hero-cover,
	.ds-editable-hero-simple {
		min-height: 640px !important;
	}
}


/* v1.19 – Hero as editable image block with focus classes, not Cover */

/* Reset/replace the v1.18 Cover approach. */
.ds-editable-photo-hero {
	position: relative !important;
	min-height: clamp(640px, 72vh, 820px);
	overflow: hidden !important;
	background: #756255;
	display: grid;
	align-items: center;
}

.ds-editable-photo-hero .ds-hero-image-block {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

.ds-editable-photo-hero .ds-hero-image-block img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: var(--ds-hero-focus, 50% 50%) !important;
	display: block !important;
	filter: saturate(.94) contrast(.96);
}

.ds-editable-photo-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(42,37,34,.60) 0%, rgba(42,37,34,.36) 48%, rgba(247,73,0,.08) 100%);
	pointer-events: none;
}

.ds-editable-photo-hero .ds-photo-hero-content {
	position: relative !important;
	z-index: 3 !important;
	max-width: min(780px, 58vw) !important;
	margin-left: clamp(2rem, 7vw, 7rem) !important;
	color: var(--ds-white, #fff9f1) !important;
}

.ds-editable-photo-hero .ds-photo-hero-content h1,
.ds-editable-photo-hero .ds-photo-hero-content .ds-kicker,
.ds-editable-photo-hero .ds-photo-hero-content .ds-lead {
	color: var(--ds-white, #fff9f1) !important;
}

.ds-editable-photo-hero .ds-hero-buttons {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

/* Hero star is back: right/bottom, larger, intentionally cropped; about 2/3 visible. */
.ds-editable-photo-hero .ds-hero-star,
.ds-photo-hero .ds-hero-star {
	position: absolute !important;
	width: clamp(24rem, 33vw, 40rem) !important;
	height: auto !important;
	right: clamp(-9.5rem, -8vw, -6rem) !important;
	top: auto !important;
	bottom: clamp(1.8rem, 6vw, 5rem) !important;
	z-index: 4 !important;
	transform: rotate(5deg) !important;
	font-size: clamp(1.65rem, 2.2vw, 2.65rem) !important;
}

.ds-editable-photo-hero .ds-hero-star > span,
.ds-photo-hero .ds-hero-star > span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: 0 36% !important;
	line-height: .9 !important;
	transform: translateY(-3.5%) !important;
}

/* Focus helper classes for the Hero group.
   Add one of these to the Hero group under Advanced > Additional CSS class(es). */
.ds-editable-photo-hero.is-focus-center { --ds-hero-focus: 50% 50%; }
.ds-editable-photo-hero.is-focus-left { --ds-hero-focus: 25% 50%; }
.ds-editable-photo-hero.is-focus-right { --ds-hero-focus: 75% 50%; }
.ds-editable-photo-hero.is-focus-top { --ds-hero-focus: 50% 25%; }
.ds-editable-photo-hero.is-focus-bottom { --ds-hero-focus: 50% 75%; }
.ds-editable-photo-hero.is-focus-left-top { --ds-hero-focus: 25% 25%; }
.ds-editable-photo-hero.is-focus-right-top { --ds-hero-focus: 75% 25%; }
.ds-editable-photo-hero.is-focus-left-bottom { --ds-hero-focus: 25% 75%; }
.ds-editable-photo-hero.is-focus-right-bottom { --ds-hero-focus: 75% 75%; }

/* Optional inline custom property:
   In block Advanced > Additional CSS class(es), classes above are easiest.
   For finer focus, a dev can set style="--ds-hero-focus: 62% 44%" on the wrapper. */

@media (max-width: 780px) {
	.ds-editable-photo-hero {
		min-height: 640px !important;
	}
	.ds-editable-photo-hero .ds-photo-hero-content {
		max-width: none !important;
		margin-left: 1.2rem !important;
		margin-right: 1.2rem !important;
	}
	.ds-editable-photo-hero .ds-hero-star,
	.ds-photo-hero .ds-hero-star {
		width: clamp(13rem, 56vw, 19rem) !important;
		right: -4.5rem !important;
		bottom: 1.6rem !important;
	}
}


/* v1.20 – Hero composition for real Doris photo
   Goal: more left-led layout, safer text field, larger readable hero star.
   Footer and blog remain untouched. */

.ds-editable-photo-hero,
.ds-photo-hero.ds-editable-photo-hero {
	min-height: clamp(680px, 76vh, 860px) !important;
	align-items: center !important;
}

/* Stronger readable left field, softer right image presence */
.ds-editable-photo-hero::after {
	background:
		linear-gradient(
			90deg,
			rgba(42, 37, 34, .72) 0%,
			rgba(42, 37, 34, .58) 28%,
			rgba(42, 37, 34, .34) 52%,
			rgba(247, 73, 0, .08) 100%
		) !important;
}

/* Text area: clearly left, narrower, no awkward drift into the portrait */
.ds-editable-photo-hero .ds-photo-hero-content {
	max-width: min(720px, 43vw) !important;
	margin-left: clamp(3.5rem, 8.5vw, 9.5rem) !important;
	margin-right: auto !important;
	padding-top: clamp(2rem, 4vw, 4rem) !important;
	color: var(--ds-white, #fff9f1) !important;
}

/* Hero typography a little more controlled for portrait backgrounds */
.ds-editable-photo-hero .ds-photo-hero-content h1 {
	font-size: clamp(4.7rem, 7.4vw, 8.8rem) !important;
	line-height: .98 !important;
	letter-spacing: -.055em !important;
	max-width: 11ch !important;
}

.ds-editable-photo-hero .ds-photo-hero-content .ds-lead {
	max-width: 670px !important;
	font-size: clamp(1.12rem, 1.38vw, 1.45rem) !important;
	line-height: 1.58 !important;
}

/* Buttons keep enough distance from portrait face/torso */
.ds-editable-photo-hero .ds-hero-buttons {
	margin-top: clamp(1.6rem, 3vw, 2.6rem) !important;
	gap: clamp(.85rem, 1.4vw, 1.25rem) !important;
}

/* Hero star: larger and more readable in desktop, right/bottom cropped */
.ds-editable-photo-hero .ds-hero-star,
.ds-photo-hero .ds-hero-star {
	width: clamp(28rem, 34vw, 43rem) !important;
	right: clamp(-12rem, -8.8vw, -7rem) !important;
	bottom: clamp(2rem, 5vw, 4.5rem) !important;
	top: auto !important;
	z-index: 4 !important;
	transform: rotate(5deg) !important;
}

/* Only Hero star wording gets bigger.
   Footer is explicitly excluded. */
.ds-editable-photo-hero .ds-hero-star > span,
.ds-photo-hero:not(.ds-footer) .ds-hero-star > span {
	font-size: clamp(2.15rem, 3.05vw, 3.65rem) !important;
	line-height: .86 !important;
	font-weight: 800 !important;
	letter-spacing: -.07em !important;
	padding: 0 35.5% !important;
	transform: translateY(-3.5%) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}

/* Wider screens: keep portrait breathing room and text left */
@media (min-width: 1500px) {
	.ds-editable-photo-hero .ds-photo-hero-content {
		max-width: 760px !important;
		margin-left: clamp(5rem, 9vw, 11rem) !important;
	}

	.ds-editable-photo-hero .ds-hero-star,
	.ds-photo-hero .ds-hero-star {
		width: clamp(32rem, 32vw, 46rem) !important;
		right: clamp(-13rem, -8vw, -8rem) !important;
	}
}

/* Medium screens: keep text readable, reduce star collision risk */
@media (max-width: 1100px) {
	.ds-editable-photo-hero .ds-photo-hero-content {
		max-width: min(690px, 58vw) !important;
		margin-left: clamp(2rem, 6vw, 5rem) !important;
	}

	.ds-editable-photo-hero .ds-photo-hero-content h1 {
		font-size: clamp(4.1rem, 8vw, 6.8rem) !important;
	}

	.ds-editable-photo-hero .ds-hero-star,
	.ds-photo-hero .ds-hero-star {
		width: clamp(20rem, 34vw, 30rem) !important;
		right: clamp(-8rem, -8vw, -5rem) !important;
		bottom: clamp(2rem, 4vw, 3.5rem) !important;
	}

	.ds-editable-photo-hero .ds-hero-star > span,
	.ds-photo-hero:not(.ds-footer) .ds-hero-star > span {
		font-size: clamp(1.7rem, 3vw, 2.5rem) !important;
	}
}

/* Mobile/tablet: no text over tiny face area; star remains secondary */
@media (max-width: 780px) {
	.ds-editable-photo-hero,
	.ds-photo-hero.ds-editable-photo-hero {
		min-height: 660px !important;
	}

	.ds-editable-photo-hero::after {
		background:
			linear-gradient(
				180deg,
				rgba(42, 37, 34, .70) 0%,
				rgba(42, 37, 34, .48) 52%,
				rgba(42, 37, 34, .62) 100%
			) !important;
	}

	.ds-editable-photo-hero .ds-photo-hero-content {
		max-width: none !important;
		margin-left: 1.25rem !important;
		margin-right: 1.25rem !important;
		padding-top: clamp(5rem, 16vw, 8rem) !important;
	}

	.ds-editable-photo-hero .ds-photo-hero-content h1 {
		font-size: clamp(3.4rem, 15vw, 5.2rem) !important;
		max-width: 9.5ch !important;
	}

	.ds-editable-photo-hero .ds-photo-hero-content .ds-lead {
		font-size: 1.05rem !important;
		line-height: 1.55 !important;
		max-width: 92% !important;
	}

	.ds-editable-photo-hero .ds-hero-star,
	.ds-photo-hero .ds-hero-star {
		width: clamp(14rem, 58vw, 20rem) !important;
		right: -5.8rem !important;
		bottom: 1.4rem !important;
	}

	.ds-editable-photo-hero .ds-hero-star > span,
	.ds-photo-hero:not(.ds-footer) .ds-hero-star > span {
		font-size: clamp(1.25rem, 5.4vw, 1.9rem) !important;
	}
}


/* v1.21 – Blog preview as image-only magazine cards
   Only image is visible. On hover/focus an orange layer appears with the article title.
   No excerpt/teaser is shown in the preview. */

.ds-blog-overlay-card {
	aspect-ratio: 4 / 3 !important;
	min-height: 0 !important;
	background: #e9d6bd !important;
	border: 0 !important;
}

.ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	background: transparent !important;
	overflow: hidden !important;
	color: var(--ds-white, #fff9f1) !important;
	text-decoration: none !important;
	transform: none !important;
}

.ds-blog-overlay-card-link:hover,
.ds-blog-overlay-card-link:focus-visible {
	background: transparent !important;
	color: var(--ds-white, #fff9f1) !important;
	transform: none !important;
	outline: 3px solid var(--ds-orange, #f74900) !important;
	outline-offset: 0 !important;
}

.ds-blog-overlay-card-link::after {
	display: none !important;
	content: none !important;
}

.ds-blog-overlay-image {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: auto !important;
	max-height: none !important;
	background: #e9d6bd !important;
	overflow: hidden !important;
	z-index: 1 !important;
}

.ds-blog-overlay-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform .35s ease, filter .35s ease !important;
}

.ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	z-index: 2 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: clamp(1.2rem, 2.5vw, 2.4rem) !important;
	text-align: center !important;
	background: rgba(247, 73, 0, .94) !important;
	color: var(--ds-white, #fff9f1) !important;
	opacity: 0 !important;
	transition: opacity .22s ease !important;
}

.ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}

.ds-blog-overlay-card-link:hover .ds-blog-overlay-image img,
.ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-image img {
	transform: scale(1.035) !important;
	filter: saturate(.9) contrast(.95) !important;
}

.ds-blog-overlay-title-layer .ds-blog-overlay-title {
	display: block !important;
	color: var(--ds-white, #fff9f1) !important;
	font-size: clamp(1.55rem, 2.3vw, 3rem) !important;
	line-height: 1.04 !important;
	font-weight: 420 !important;
	letter-spacing: -.035em !important;
	margin: 0 !important;
	max-width: 12ch !important;
}

.ds-blog-overlay-excerpt,
.ds-blog-overlay-content {
	display: none !important;
}

/* Touch devices: show a subtle always-visible title chip so the card is understandable without hover. */
@media (hover: none) {
	.ds-blog-overlay-title-layer {
		inset: auto 0 0 0 !important;
		min-height: 34% !important;
		opacity: 1 !important;
		align-items: flex-end !important;
		justify-content: flex-start !important;
		text-align: left !important;
		background: linear-gradient(0deg, rgba(247,73,0,.96), rgba(247,73,0,.0)) !important;
		padding: 3rem 1.2rem 1.2rem !important;
	}

	.ds-blog-overlay-title-layer .ds-blog-overlay-title {
		font-size: clamp(1.25rem, 5vw, 1.85rem) !important;
		max-width: 14ch !important;
	}
}


/* v1.22 – real Hero focal point block */

.ds-hero-focal {
	position: relative !important;
	min-height: clamp(680px, 76vh, 860px) !important;
	overflow: hidden !important;
	background: #756255;
	display: grid !important;
	align-items: center !important;
}

.ds-hero-focal .ds-hero-focal-image {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

.ds-hero-focal .ds-hero-focal-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: var(--ds-hero-focus, 50% 50%) !important;
	display: block !important;
	filter: saturate(.94) contrast(.96) !important;
}

.ds-hero-focal::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			90deg,
			rgba(42, 37, 34, .72) 0%,
			rgba(42, 37, 34, .58) 28%,
			rgba(42, 37, 34, .34) 52%,
			rgba(247, 73, 0, .08) 100%
		) !important;
	pointer-events: none;
}

.ds-hero-focal .ds-photo-hero-content {
	position: relative !important;
	z-index: 3 !important;
	max-width: min(620px, 38vw) !important;
	margin-left: clamp(3rem, 8vw, 8.5rem) !important;
	margin-right: auto !important;
	padding-top: clamp(2rem, 4vw, 4rem) !important;
	color: var(--ds-white, #fff9f1) !important;
}

.ds-hero-focal .ds-photo-hero-content h1 {
	color: var(--ds-white, #fff9f1) !important;
	font-size: clamp(4.4rem, 6.8vw, 8rem) !important;
	line-height: .98 !important;
	letter-spacing: -.055em !important;
	max-width: 9.5ch !important;
}

.ds-hero-focal .ds-photo-hero-content .ds-kicker,
.ds-hero-focal .ds-photo-hero-content .ds-lead {
	color: var(--ds-white, #fff9f1) !important;
}

.ds-hero-focal .ds-photo-hero-content .ds-lead {
	max-width: 600px !important;
	font-size: clamp(1.08rem, 1.28vw, 1.35rem) !important;
	line-height: 1.58 !important;
}

.ds-hero-focal .ds-hero-buttons {
	margin-top: clamp(1.6rem, 3vw, 2.6rem) !important;
	gap: clamp(.85rem, 1.4vw, 1.25rem) !important;
}

.ds-hero-focal .ds-hero-star {
	position: absolute !important;
	width: clamp(28rem, 34vw, 43rem) !important;
	height: auto !important;
	right: clamp(-12rem, -8.8vw, -7rem) !important;
	bottom: clamp(2rem, 5vw, 4.5rem) !important;
	top: auto !important;
	z-index: 4 !important;
	transform: rotate(5deg) !important;
}

.ds-hero-focal .ds-hero-star > span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	font-size: clamp(2.15rem, 3.05vw, 3.65rem) !important;
	line-height: .86 !important;
	font-weight: 800 !important;
	letter-spacing: -.07em !important;
	padding: 0 35.5% !important;
	transform: translateY(-3.5%) !important;
}

/* Editor-friendly: make selected hero image easier to click */
.editor-styles-wrapper .ds-hero-focal {
	cursor: default;
}

.editor-styles-wrapper .ds-hero-focal .ds-hero-focal-image {
	pointer-events: none;
}

@media (min-width: 1500px) {
	.ds-hero-focal .ds-photo-hero-content {
		max-width: 650px !important;
		margin-left: clamp(5rem, 9vw, 10rem) !important;
	}
}

@media (max-width: 1100px) {
	.ds-hero-focal .ds-photo-hero-content {
		max-width: min(620px, 56vw) !important;
		margin-left: clamp(2rem, 6vw, 5rem) !important;
	}

	.ds-hero-focal .ds-photo-hero-content h1 {
		font-size: clamp(4rem, 7.6vw, 6.6rem) !important;
	}

	.ds-hero-focal .ds-hero-star {
		width: clamp(20rem, 34vw, 30rem) !important;
		right: clamp(-8rem, -8vw, -5rem) !important;
	}
}

@media (max-width: 780px) {
	.ds-hero-focal {
		min-height: 660px !important;
	}

	.ds-hero-focal::after {
		background:
			linear-gradient(
				180deg,
				rgba(42, 37, 34, .70) 0%,
				rgba(42, 37, 34, .48) 52%,
				rgba(42, 37, 34, .62) 100%
			) !important;
	}

	.ds-hero-focal .ds-photo-hero-content {
		max-width: none !important;
		margin-left: 1.25rem !important;
		margin-right: 1.25rem !important;
		padding-top: clamp(5rem, 16vw, 8rem) !important;
	}

	.ds-hero-focal .ds-photo-hero-content h1 {
		font-size: clamp(3.4rem, 15vw, 5.2rem) !important;
		max-width: 9.5ch !important;
	}

	.ds-hero-focal .ds-photo-hero-content .ds-lead {
		font-size: 1.05rem !important;
		line-height: 1.55 !important;
		max-width: 92% !important;
	}

	.ds-hero-focal .ds-hero-star {
		width: clamp(14rem, 58vw, 20rem) !important;
		right: -5.8rem !important;
		bottom: 1.4rem !important;
	}

	.ds-hero-focal .ds-hero-star > span {
		font-size: clamp(1.25rem, 5.4vw, 1.9rem) !important;
	}
}


/* v1.23 – Hero buttons side by side on desktop */

.ds-hero-focal .ds-hero-buttons,
.ds-editable-photo-hero .ds-hero-buttons,
.ds-photo-hero .ds-hero-buttons {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: clamp(.85rem, 1.4vw, 1.25rem) !important;
	width: auto !important;
	max-width: none !important;
}

.ds-hero-focal .ds-hero-buttons .wp-block-button,
.ds-editable-photo-hero .ds-hero-buttons .wp-block-button,
.ds-photo-hero .ds-hero-buttons .wp-block-button {
	display: inline-flex !important;
	width: auto !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
}

.ds-hero-focal .ds-hero-buttons .wp-block-button__link,
.ds-editable-photo-hero .ds-hero-buttons .wp-block-button__link,
.ds-photo-hero .ds-hero-buttons .wp-block-button__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	min-width: clamp(12rem, 14vw, 15.5rem) !important;
	white-space: nowrap !important;
	text-align: center !important;
}

/* On mobile they may stack again for usability. */
@media (max-width: 640px) {
	.ds-hero-focal .ds-hero-buttons,
	.ds-editable-photo-hero .ds-hero-buttons,
	.ds-photo-hero .ds-hero-buttons {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: .75rem !important;
	}

	.ds-hero-focal .ds-hero-buttons .wp-block-button,
	.ds-editable-photo-hero .ds-hero-buttons .wp-block-button,
	.ds-photo-hero .ds-hero-buttons .wp-block-button,
	.ds-hero-focal .ds-hero-buttons .wp-block-button__link,
	.ds-editable-photo-hero .ds-hero-buttons .wp-block-button__link,
	.ds-photo-hero .ds-hero-buttons .wp-block-button__link {
		width: 100% !important;
		min-width: 0 !important;
	}
}


/* v1.25 – direct Hellocash booking + remove header/hero gap */

/* Remove unwanted blank strip between header and first hero block. */
body.home main,
body.front-page main,
.wp-site-blocks > main,
.wp-site-blocks .wp-block-post-content,
main.wp-block-group {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks > header + main,
.wp-site-blocks > .wp-block-template-part + main,
header.wp-block-template-part + main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part,
header.wp-block-template-part {
	margin-bottom: 0 !important;
}

/* If the first content block is the Doris Hero, it must start immediately after the header. */
main > .ds-hero-focal:first-child,
main > .ds-photo-hero:first-child,
.wp-block-post-content > .ds-hero-focal:first-child,
.wp-block-post-content > .ds-photo-hero:first-child,
.entry-content > .ds-hero-focal:first-child,
.entry-content > .ds-photo-hero:first-child {
	margin-top: 0 !important;
}

/* WordPress block gap sometimes creates the beige stripe. */
.wp-site-blocks,
.wp-block-post-content,
.entry-content {
	--wp--style--block-gap: 0px;
}

/* Keep normal section spacing inside custom sections where already defined. */
.ds-section,
.ds-offers,
.ds-blog-overlay-section,
.ds-testimonials,
.ds-quote-section {
	--wp--style--block-gap: initial;
}

/* Booking must not look disabled when old modal overlay is gone. */
a[href*="myhellocash.com/widget/doris-sattelberger-114507"],
.ds-booking-direct-link {
	cursor: pointer !important;
}


/* v1.26 – booking overlay restored + targeted header/hero gap correction */

/* Re-enable normal block spacing globally; only the first hero after the header is pulled up. */
.wp-site-blocks,
.wp-block-post-content,
.entry-content {
	--wp--style--block-gap: var(--wp--preset--spacing--50, 1.5rem);
}

/* Remove only the unwanted stripe between template header and first Hero. */
.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > header,
header.wp-block-template-part {
	margin-bottom: 0 !important;
}

.wp-site-blocks > main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks > main > .wp-block-post-content:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-block-post-content > .ds-hero-focal:first-child,
.wp-block-post-content > .ds-photo-hero:first-child,
main > .ds-hero-focal:first-child,
main > .ds-photo-hero:first-child {
	margin-top: 0 !important;
}

/* If WordPress inserts an empty spacer/group before the Hero, collapse it. */
.wp-block-post-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-spacer:first-child {
	display: none !important;
}

/* Booking modal */
.ds-booking-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
}

.ds-booking-modal.is-open {
	display: flex;
}

.ds-booking-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 37, 34, .64);
	backdrop-filter: blur(1px);
}

.ds-booking-modal__dialog {
	position: relative;
	z-index: 2;
	width: min(880px, calc(100vw - 2rem));
	background: var(--ds-paper, #fff9f1);
	color: var(--ds-ink, #2a2522);
	padding: clamp(2.4rem, 5vw, 5.2rem) clamp(1.6rem, 5vw, 5.5rem);
	text-align: center;
	box-shadow: none;
	border: 1px solid rgba(42, 37, 34, .12);
}

.ds-booking-modal__kicker {
	margin: 0 0 .65rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--ds-ink, #2a2522);
}

.ds-booking-modal__dialog h2 {
	margin: 0 0 1.25rem;
	font-size: clamp(2.7rem, 6vw, 5rem);
	line-height: .98;
	font-weight: 360;
	letter-spacing: -.055em;
	color: var(--ds-ink, #2a2522);
}

.ds-booking-modal__dialog p:not(.ds-booking-modal__kicker) {
	max-width: 620px;
	margin: 0 auto 2rem;
	font-size: clamp(1rem, 1.35vw, 1.22rem);
	line-height: 1.55;
}

.ds-booking-modal__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--ds-orange, #f74900);
	color: var(--ds-white, #fff9f1) !important;
	text-decoration: none;
	padding: 1.05rem 1.45rem;
	min-width: 16rem;
	font-weight: 700;
}

.ds-booking-modal__button:hover,
.ds-booking-modal__button:focus-visible {
	background: var(--ds-ink, #2a2522);
	color: var(--ds-white, #fff9f1) !important;
}

.ds-booking-modal__close {
	position: absolute;
	left: clamp(1rem, 3vw, 2.2rem);
	top: 50%;
	transform: translateY(-50%);
	width: 3rem;
	height: 3rem;
	border: 0;
	border-radius: 0;
	background: var(--ds-orange, #f74900);
	color: var(--ds-white, #fff9f1);
	font-size: 2.1rem;
	line-height: 1;
	cursor: pointer;
}

.ds-booking-modal-open {
	overflow: hidden;
}

@media (max-width: 700px) {
	.ds-booking-modal__dialog {
		text-align: left;
		padding: 4.5rem 1.25rem 2rem;
	}

	.ds-booking-modal__close {
		top: 1rem;
		left: 1rem;
		transform: none;
	}

	.ds-booking-modal__dialog p:not(.ds-booking-modal__kicker) {
		margin-left: 0;
		margin-right: 0;
	}

	.ds-booking-modal__button {
		width: 100%;
		min-width: 0;
	}
}


/* v1.27 – Blog cards are shuffled client-side on every page visit.
   This bypasses page caching, because the DOM order changes in the browser after load. */
.ds-blog-overlay-track[data-ds-shuffled="1"] {
	scroll-behavior: smooth;
}


/* v1.28 – hard fix for unwanted header-to-hero gap
   The large cream strip is usually caused by an empty first block, template padding,
   or WP block gap before the first hero. This targets only the first Hero position. */

/* Header itself must not create a following gap. */
.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part,
header.wp-block-template-part,
.site-header,
.ds-site-header {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Main/content containers must start immediately after the header. */
.wp-site-blocks > main,
main,
main.wp-block-group,
.wp-site-blocks .wp-block-post-content,
.wp-block-post-content,
.entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Remove block gap only at the beginning, not globally for all page sections. */
.wp-site-blocks > header + main,
.wp-site-blocks > .wp-block-template-part + main,
header.wp-block-template-part + main {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* If the first visible section is the Hero, it must sit flush below the header. */
main > .ds-hero-focal:first-child,
main > .ds-photo-hero:first-child,
.wp-block-post-content > .ds-hero-focal:first-child,
.wp-block-post-content > .ds-photo-hero:first-child,
.entry-content > .ds-hero-focal:first-child,
.entry-content > .ds-photo-hero:first-child {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* WordPress sometimes stores an empty Spacer/Group before the Hero.
   Hide only those first helper blocks if they sit directly before the Hero. */
.wp-block-post-content > .wp-block-spacer:first-child:has(+ .ds-hero-focal),
.wp-block-post-content > .wp-block-spacer:first-child:has(+ .ds-photo-hero),
.entry-content > .wp-block-spacer:first-child:has(+ .ds-hero-focal),
.entry-content > .wp-block-spacer:first-child:has(+ .ds-photo-hero),
main > .wp-block-spacer:first-child:has(+ .ds-hero-focal),
main > .wp-block-spacer:first-child:has(+ .ds-photo-hero) {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Empty first group directly before Hero: collapse it. */
.wp-block-post-content > .wp-block-group:first-child:has(+ .ds-hero-focal):empty,
.wp-block-post-content > .wp-block-group:first-child:has(+ .ds-photo-hero):empty,
.entry-content > .wp-block-group:first-child:has(+ .ds-hero-focal):empty,
.entry-content > .wp-block-group:first-child:has(+ .ds-photo-hero):empty,
main > .wp-block-group:first-child:has(+ .ds-hero-focal):empty,
main > .wp-block-group:first-child:has(+ .ds-photo-hero):empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* If the Hero is second because of an empty block before it, pull it up. */
.wp-block-post-content > :first-child + .ds-hero-focal,
.wp-block-post-content > :first-child + .ds-photo-hero,
.entry-content > :first-child + .ds-hero-focal,
.entry-content > :first-child + .ds-photo-hero,
main > :first-child + .ds-hero-focal,
main > :first-child + .ds-photo-hero {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* Safety: no top margin on the Hero itself in all contexts. */
.ds-hero-focal,
.ds-photo-hero.ds-hero-focal,
.ds-photo-hero.ds-editable-photo-hero {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* Browser fallback for cases without :has support: if a spacer is first, make it harmless. */
.wp-block-post-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-spacer:first-child,
main > .wp-block-spacer:first-child {
	max-height: 0 !important;
	min-height: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}


/* v1.29 – Fix booking-modal Hellocash loop + actual header template gap */

/* The large beige band is part of the header/template area, not a page placeholder.
   Keep header compact and remove its artificial bottom space. */
.ds-site-header,
.site-header,
header.wp-block-template-part,
.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part:first-child {
	min-height: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Header inner groups must not reserve a tall second row below logo/nav. */
.ds-site-header > *,
.site-header > *,
header.wp-block-template-part > *,
.wp-site-blocks > .wp-block-template-part:first-child > * {
	margin-bottom: 0 !important;
}

/* In block themes the template part often wraps content in groups with padding/block-gap. */
.wp-site-blocks > .wp-block-template-part:first-child .wp-block-group,
.wp-site-blocks > header:first-child .wp-block-group {
	margin-bottom: 0 !important;
}

/* If Navigation in the header creates a second invisible row in editor/frontend, do not allow it to define header height. */
.wp-site-blocks > .wp-block-template-part:first-child .wp-block-navigation,
.wp-site-blocks > header:first-child .wp-block-navigation {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* The first Hero must visually touch the header edge. */
.wp-site-blocks > main,
main,
.wp-block-post-content,
.entry-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

.wp-site-blocks > .wp-block-template-part:first-child + main,
.wp-site-blocks > header:first-child + main,
header.wp-block-template-part + main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* If the theme/template outputs an empty block, group, spacer, or paragraph before Hero, collapse it. */
main > :is(.wp-block-spacer, .wp-block-group, p):first-child:has(+ .ds-hero-focal),
.wp-block-post-content > :is(.wp-block-spacer, .wp-block-group, p):first-child:has(+ .ds-hero-focal),
.entry-content > :is(.wp-block-spacer, .wp-block-group, p):first-child:has(+ .ds-hero-focal) {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Fallback without :has: first blankish spacer/group must not create a cream strip. */
main > .wp-block-spacer:first-child,
.wp-block-post-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-spacer:first-child {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Editor preview should also show less fake template gap. */
.editor-styles-wrapper .wp-site-blocks > .wp-block-template-part:first-child,
.editor-styles-wrapper header.wp-block-template-part,
.editor-styles-wrapper .ds-site-header,
.editor-styles-wrapper .site-header {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Booking modal: make sure the Hellocash button behaves as a real outbound link. */
.ds-booking-modal .ds-booking-modal__button {
	pointer-events: auto !important;
}


/* v1.30 – definitive header/hero gap fix + reliable Hellocash window.open */

/* Template-level no top gap class. */
.ds-main-no-top-gap,
.ds-main-no-top-gap > *,
.ds-main-no-top-gap .wp-block-post-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Remove the cream strip by pulling the first Hero to the header edge.
   This applies only to the very first hero on the page. */
.wp-site-blocks > main .ds-hero-focal:first-of-type,
.wp-site-blocks > main .ds-photo-hero:first-of-type,
main .ds-hero-focal:first-of-type,
main .ds-photo-hero:first-of-type {
	margin-top: 0 !important;
}

/* If WordPress still inserts template gap between header and first content, counter it on front/home. */
body.home .wp-site-blocks > main,
body.front-page .wp-site-blocks > main,
body.page-template-page-home .wp-site-blocks > main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Actual visible strip fallback: first Doris Hero may overlap upward until it touches header.
   Header is above in z-index, so it remains visible. */
body.home .wp-site-blocks > main .ds-hero-focal:first-of-type,
body.front-page .wp-site-blocks > main .ds-hero-focal:first-of-type,
body.page .wp-site-blocks > main .ds-hero-focal:first-of-type {
	margin-top: calc(-1 * var(--ds-header-hero-gap, 0px)) !important;
}

/* The measured gap on the screenshot is a template band, not content; default to 0 unless body class below sets it. */
body.home,
body.front-page {
	--ds-header-hero-gap: 0px;
}

/* Stronger fallback: if the theme outputs a first empty group, collapse all empty groups before hero. */
.wp-site-blocks > main > .wp-block-group:empty,
.wp-block-post-content > .wp-block-group:empty,
.entry-content > .wp-block-group:empty {
	display: none !important;
}

/* Booking modal button is a button, not a link, and opens Hellocash via JS. */
.ds-booking-modal__button {
	border: 0 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	font-size: 1rem !important;
}


/* v1.31 – remove unwanted space after footer / page end */

/* The footer must be the visual end of the page unless a real block follows. */
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part:last-child,
footer.wp-block-template-part,
.ds-site-footer,
.site-footer {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* No generated block gap after footer. */
.wp-site-blocks > footer:last-child,
.wp-site-blocks > .wp-block-template-part:last-child,
body .wp-site-blocks > *:last-child {
	margin-block-end: 0 !important;
	margin-bottom: 0 !important;
}

/* Remove bottom padding from the global site wrapper/page shell. */
html,
body {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body .wp-site-blocks {
	min-height: 100vh;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* If footer itself contains a last inner group, it should not add a cream strip below. */
.ds-site-footer > *:last-child,
.site-footer > *:last-child,
footer.wp-block-template-part > *:last-child,
.wp-site-blocks > .wp-block-template-part:last-child > *:last-child {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Collapse empty blocks accidentally stored after footer. */
.wp-site-blocks > footer + .wp-block-spacer,
.wp-site-blocks > .wp-block-template-part:last-child + .wp-block-spacer,
.wp-site-blocks > footer + .wp-block-group:empty,
.wp-site-blocks > .wp-block-template-part:last-child + .wp-block-group:empty {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Back-to-top button should float without forcing extra layout height. */
.ds-back-to-top,
a[href="#site-top"].ds-back-to-top,
.wp-site-blocks .ds-back-to-top {
	position: fixed !important;
	right: clamp(1rem, 2vw, 2rem) !important;
	bottom: clamp(1rem, 2vw, 2rem) !important;
	z-index: 50 !important;
	margin: 0 !important;
}

/* If the arrow button lives in a normal layout wrapper after the footer, remove that wrapper's layout footprint. */
.wp-site-blocks > .ds-back-to-top-wrapper,
.wp-site-blocks > .wp-block-group:has(.ds-back-to-top) {
	min-height: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}


/* v1.32 – spacing balance + Contact Form 7 Doris block */

/* Header-to-Hero: remove the visible cream band below header. */
.ds-site-header {
	margin-bottom: 0 !important;
	padding-bottom: clamp(.75rem, 1vw, 1rem) !important;
	min-height: 0 !important;
}

.ds-header-inner {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	min-height: 0 !important;
	align-items: center !important;
}

.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part:first-child {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* The home-page pattern/first wrapper should not add top spacing before hero. */
.wp-site-blocks > main,
.wp-site-blocks > main > :first-child,
.wp-block-post-content,
.wp-block-post-content > :first-child,
.entry-content,
.entry-content > :first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks .ds-hero-focal:first-of-type,
.wp-site-blocks .ds-photo-hero:first-of-type {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* If the first generated wrapper is empty/visual, do not let it create a band. */
.wp-site-blocks > main > .wp-block-spacer:first-child,
.wp-block-post-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-spacer:first-child {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Footer: restore sufficient inner padding; no clipping. */
.ds-site-footer,
.site-footer,
footer.wp-block-template-part {
	padding-top: clamp(4rem, 6vw, 7rem) !important;
	padding-bottom: clamp(4rem, 6vw, 7rem) !important;
	margin-bottom: 0 !important;
	min-height: auto !important;
	overflow: visible !important;
}

.ds-site-footer .ds-footer-inner,
.site-footer .ds-footer-inner,
footer.wp-block-template-part .ds-footer-inner {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
	overflow: visible !important;
}

html,
body,
body .wp-site-blocks {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Back-to-top button floats and should not create page height. */
.ds-back-to-top,
a.ds-back-to-top,
.wp-site-blocks .ds-back-to-top {
	position: fixed !important;
	right: clamp(1rem, 2vw, 2rem) !important;
	bottom: clamp(1rem, 2vw, 2rem) !important;
	z-index: 50 !important;
	margin: 0 !important;
}

/* Contact Form 7 embedded through Doris block */
.ds-contact-form-embed,
.ds-contact-form-block-placeholder,
.ds-contact-form-missing {
	width: 100%;
}

.ds-contact-form-embed .wpcf7 {
	width: 100%;
}

.ds-contact-form,
.ds-contact-form-embed form.wpcf7-form {
	display: grid;
	gap: clamp(1rem, 2vw, 1.4rem);
}

.ds-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.4rem);
}

.ds-contact-form label,
.ds-contact-form-embed label {
	display: grid;
	gap: .45rem;
	font-weight: 600;
	color: var(--ds-ink, #2a2522);
}

.ds-contact-form input:not([type="checkbox"]):not([type="submit"]),
.ds-contact-form textarea,
.ds-contact-form select,
.ds-contact-form-embed input:not([type="checkbox"]):not([type="submit"]),
.ds-contact-form-embed textarea,
.ds-contact-form-embed select {
	width: 100%;
	border: 1px solid rgba(42, 37, 34, .22);
	background: #fff;
	color: var(--ds-ink, #2a2522);
	padding: .95rem 1rem;
	font: inherit;
	border-radius: 0;
}

.ds-contact-form textarea,
.ds-contact-form-embed textarea {
	min-height: 12rem;
	resize: vertical;
}

.ds-form-label {
	margin: 0 0 .65rem;
	font-weight: 700;
	color: var(--ds-ink, #2a2522);
}

.ds-form-checks .wpcf7-form-control,
.ds-contact-form-embed .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem .8rem;
}

.ds-form-checks .wpcf7-list-item,
.ds-contact-form-embed .wpcf7-list-item {
	margin: 0;
}

.ds-form-checks .wpcf7-list-item label,
.ds-contact-form-embed .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	border: 1px solid rgba(42, 37, 34, .18);
	padding: .65rem .8rem;
	background: rgba(255,255,255,.55);
	font-weight: 500;
}

.ds-form-consent,
.ds-contact-form-embed .wpcf7-acceptance {
	font-size: .95rem;
	line-height: 1.5;
}

.ds-contact-form input[type="submit"],
.ds-contact-form-embed input[type="submit"],
.ds-contact-form-embed .wpcf7-submit {
	appearance: none;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: var(--ds-white, #fff9f1);
	padding: 1rem 1.35rem;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	border-radius: 0;
}

.ds-contact-form input[type="submit"]:hover,
.ds-contact-form-embed input[type="submit"]:hover,
.ds-contact-form-embed .wpcf7-submit:hover {
	background: var(--ds-ink, #2a2522);
	color: var(--ds-white, #fff9f1);
}

@media (max-width: 760px) {
	.ds-form-grid {
		grid-template-columns: 1fr;
	}
}


/* v1.35 – final visual correction: pull Hero upward, restore Footer breathing room */

/*
	Important:
	The cream band above the Hero behaves like reserved template/header space.
	Instead of only trying to remove it, the first Hero is now pulled upward and enlarged.
	The header remains above it via z-index.
*/

:root {
	--ds-hero-pull-up: clamp(5.25rem, 7.5vw, 7.75rem);
	--ds-footer-breathing-bottom: clamp(5.5rem, 8vw, 9rem);
}

/* Header remains visually on top, compact, no bottom gap. */
.ds-site-header,
.site-header,
header.wp-block-template-part,
.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part:first-child {
	position: relative;
	z-index: 20;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* First Hero: pull into the unwanted cream band and compensate height. */
body.home .wp-site-blocks > main .ds-hero-focal:first-of-type,
body.front-page .wp-site-blocks > main .ds-hero-focal:first-of-type,
body.page .wp-site-blocks > main .ds-hero-focal:first-of-type,
.wp-site-blocks > main .ds-hero-focal:first-of-type,
main .ds-hero-focal:first-of-type {
	margin-top: calc(-1 * var(--ds-hero-pull-up)) !important;
	min-height: calc(clamp(680px, 76vh, 860px) + var(--ds-hero-pull-up)) !important;
	padding-top: var(--ds-hero-pull-up) !important;
	box-sizing: border-box !important;
}

/* Same correction for older Hero class variants, if an older block instance is still saved. */
body.home .wp-site-blocks > main .ds-photo-hero:first-of-type,
body.front-page .wp-site-blocks > main .ds-photo-hero:first-of-type,
body.page .wp-site-blocks > main .ds-photo-hero:first-of-type,
.wp-site-blocks > main .ds-photo-hero:first-of-type,
main .ds-photo-hero:first-of-type {
	margin-top: calc(-1 * var(--ds-hero-pull-up)) !important;
	min-height: calc(clamp(680px, 76vh, 860px) + var(--ds-hero-pull-up)) !important;
	padding-top: var(--ds-hero-pull-up) !important;
	box-sizing: border-box !important;
}

/* Keep Hero content optically in place despite the vertical expansion. */
.ds-hero-focal .ds-photo-hero-content {
	transform: translateY(calc(var(--ds-hero-pull-up) * .12));
}

/* Keep star from drifting too high after expansion. */
.ds-hero-focal .ds-hero-star {
	bottom: clamp(2rem, 5vw, 4.5rem) !important;
}

/* Avoid top wrapper spacing before the pulled Hero. */
.wp-site-blocks > main,
.wp-block-post-content,
.entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Footer: restore generous bottom air inside the dark footer. */
.ds-site-footer,
.site-footer,
footer.wp-block-template-part {
	padding-top: clamp(4.5rem, 6vw, 7rem) !important;
	padding-bottom: var(--ds-footer-breathing-bottom) !important;
	margin-bottom: 0 !important;
	overflow: visible !important;
	min-height: auto !important;
}

/* Footer content should not be clipped by previous overflow/height rules. */
.ds-site-footer *,
.site-footer *,
footer.wp-block-template-part * {
	overflow: visible;
}

.ds-site-footer .ds-footer-inner,
.site-footer .ds-footer-inner,
footer.wp-block-template-part .ds-footer-inner {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* Prevent white after-footer strip while keeping footer padding. */
html,
body,
body .wp-site-blocks {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	background: var(--ds-ink, #2a2522);
}

/* But page sections keep paper background where needed. */
main,
.wp-block-post-content,
.entry-content {
	background: var(--ds-paper, #fff9f1);
}

/* If footer is the last template part, it is allowed to end with its own dark padding. */
.wp-site-blocks > footer:last-child,
.wp-site-blocks > .wp-block-template-part:last-child {
	margin-bottom: 0 !important;
}

/* Mobile: smaller pull-up to avoid crushing Hero composition. */
@media (max-width: 780px) {
	:root {
		--ds-hero-pull-up: clamp(3.5rem, 12vw, 5rem);
		--ds-footer-breathing-bottom: clamp(4.5rem, 14vw, 6.5rem);
	}

	body.home .wp-site-blocks > main .ds-hero-focal:first-of-type,
	body.front-page .wp-site-blocks > main .ds-hero-focal:first-of-type,
	body.page .wp-site-blocks > main .ds-hero-focal:first-of-type,
	.wp-site-blocks > main .ds-hero-focal:first-of-type,
	main .ds-hero-focal:first-of-type,
	body.home .wp-site-blocks > main .ds-photo-hero:first-of-type,
	body.front-page .wp-site-blocks > main .ds-photo-hero:first-of-type,
	body.page .wp-site-blocks > main .ds-photo-hero:first-of-type,
	.wp-site-blocks > main .ds-photo-hero:first-of-type,
	main .ds-photo-hero:first-of-type {
		min-height: calc(660px + var(--ds-hero-pull-up)) !important;
	}
}


/* v1.36 – rollback broken pull-up, direct header/hero/footer layout fix */

/*
	v1.35 created a dark band because the Hero was pulled against a dark page background.
	This version neutralizes that approach and makes the first Hero start normally,
	while removing spacing from the actual homepage wrapper/template flow.
*/

:root {
	--ds-hero-pull-up: 0px !important;
	--ds-footer-breathing-bottom: clamp(5rem, 7vw, 8rem) !important;
}

/* Site background should not bleed as a black band between header and hero. */
html,
body,
body .wp-site-blocks {
	background: var(--ds-paper, #fff9f1) !important;
}

/* Header is compact and ends exactly at its bottom border. */
.ds-site-header,
.site-header,
header.wp-block-template-part,
.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part:first-child {
	position: relative !important;
	z-index: 30 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	background: var(--ds-paper, #fff9f1) !important;
}

/* Header inner: do not create a second row or reserve hidden vertical space. */
.ds-header-inner,
.ds-site-header .ds-header-inner,
header.wp-block-template-part .ds-header-inner {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: clamp(.85rem, 1.2vw, 1.2rem) !important;
	padding-bottom: clamp(.85rem, 1.2vw, 1.2rem) !important;
	min-height: 0 !important;
}

/* Main/home wrappers: no top padding/margin before first Hero. */
.wp-site-blocks > main,
main,
.wp-block-post-content,
.entry-content,
.wp-site-blocks > main > :first-child,
.wp-block-post-content > :first-child,
.entry-content > :first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* If the homepage is inserted via a pattern group, it must not have top padding. */
.wp-site-blocks > main > .wp-block-group:first-child,
.wp-block-post-content > .wp-block-group:first-child,
.entry-content > .wp-block-group:first-child,
.wp-site-blocks > main > .ds-section:first-child,
.wp-block-post-content > .ds-section:first-child,
.entry-content > .ds-section:first-child,
.wp-site-blocks > main > .ds-paper:first-child,
.wp-block-post-content > .ds-paper:first-child,
.entry-content > .ds-paper:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* The first Hero itself: no negative margin, no artificial top padding.
   It begins directly after the header. */
.wp-site-blocks .ds-hero-focal:first-of-type,
.wp-site-blocks .ds-photo-hero:first-of-type,
main .ds-hero-focal:first-of-type,
main .ds-photo-hero:first-of-type,
.wp-block-post-content .ds-hero-focal:first-of-type,
.wp-block-post-content .ds-photo-hero:first-of-type,
.entry-content .ds-hero-focal:first-of-type,
.entry-content .ds-photo-hero:first-of-type {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
	min-height: clamp(680px, 76vh, 860px) !important;
	transform: none !important;
}

/* Undo v1.35 content offset inside Hero. */
.ds-hero-focal .ds-photo-hero-content,
.ds-photo-hero .ds-photo-hero-content {
	transform: none !important;
}

/* Remove any first spacer before Hero. */
.wp-site-blocks > main > .wp-block-spacer:first-child,
.wp-block-post-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-spacer:first-child,
.wp-site-blocks > main > p:first-child:empty,
.wp-block-post-content > p:first-child:empty,
.entry-content > p:first-child:empty {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Footer: dark footer keeps generous padding, but no extra white area after it. */
.ds-site-footer,
.site-footer,
footer.wp-block-template-part,
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part:last-child {
	background: var(--ds-ink, #2a2522) !important;
	color: var(--ds-white, #fff9f1) !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: clamp(5rem, 7vw, 8rem) !important;
	padding-bottom: clamp(5.5rem, 8vw, 9rem) !important;
	min-height: auto !important;
	height: auto !important;
	overflow: visible !important;
}

/* Footer inner content must not be cropped. */
.ds-footer-inner,
.ds-site-footer .ds-footer-inner,
.site-footer .ds-footer-inner,
footer.wp-block-template-part .ds-footer-inner {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	height: auto !important;
	min-height: auto !important;
	overflow: visible !important;
}

/* The last visible element defines page end. */
.wp-site-blocks > *:last-child {
	margin-bottom: 0 !important;
}

/* Back-to-top remains fixed and does not add layout height. */
.ds-back-to-top,
a.ds-back-to-top,
.wp-site-blocks .ds-back-to-top {
	position: fixed !important;
	right: clamp(1rem, 2vw, 2rem) !important;
	bottom: clamp(1rem, 2vw, 2rem) !important;
	z-index: 70 !important;
	margin: 0 !important;
}

/* Mobile hero height after rollback. */
@media (max-width: 780px) {
	.wp-site-blocks .ds-hero-focal:first-of-type,
	.wp-site-blocks .ds-photo-hero:first-of-type,
	main .ds-hero-focal:first-of-type,
	main .ds-photo-hero:first-of-type {
		min-height: 660px !important;
	}
}


/* v1.38 – header must start at top; footer kept as-is */

/*
	The latest screenshot shows the header itself pushed down by a large cream area.
	This is not a Hero issue anymore. The first template part/header must sit at the top.
*/

/* Hard reset top spacing on the page shell and first template part. */
html,
body,
body .wp-site-blocks {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks {
	display: block !important;
}

/* First child is the header template part in this theme. It must not be vertically centered or pushed down. */
.wp-site-blocks > :first-child,
.wp-site-blocks > header:first-child,
.wp-site-blocks > .wp-block-template-part:first-child,
header.wp-block-template-part:first-child,
.ds-site-header {
	margin-top: 0 !important;
	padding-top: 0 !important;
	inset-block-start: auto !important;
	top: auto !important;
	transform: none !important;
}

/* Header block itself: compact top/bottom, not full-height. */
.ds-site-header {
	min-height: 0 !important;
	height: auto !important;
	max-height: none !important;
	display: block !important;
	background: var(--ds-paper, #fff9f1) !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
	padding-block-start: 0 !important;
	padding-block-end: 0 !important;
}

/* Header inner carries the real visual padding. */
.ds-header-inner {
	min-height: 0 !important;
	height: auto !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: clamp(.85rem, 1.15vw, 1.15rem) !important;
	padding-bottom: clamp(.85rem, 1.15vw, 1.15rem) !important;
	display: grid !important;
	align-items: center !important;
}

/* Prevent any previous "pull-up" or black-band compensation from affecting the top area. */
:root {
	--ds-hero-pull-up: 0px !important;
}

/* Main and first Hero: start immediately after the now-compact header. */
.wp-site-blocks > main,
main.ds-main-no-top-gap,
.ds-main-no-top-gap,
.wp-site-blocks > main > :first-child,
.ds-main-no-top-gap > :first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks .ds-hero-focal:first-of-type,
.wp-site-blocks .ds-photo-hero:first-of-type,
main .ds-hero-focal:first-of-type,
main .ds-photo-hero:first-of-type {
	margin-top: 0 !important;
	padding-top: 0 !important;
	transform: none !important;
}

/* Keep footer breathing room from previous working state. */
.ds-site-footer,
.site-footer,
footer.wp-block-template-part,
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part:last-child {
	padding-bottom: clamp(5.5rem, 8vw, 9rem) !important;
	overflow: visible !important;
}


/* v1.39 – restore sticky header without reintroducing top gap */

/* The header must remain sticky. v1.38 accidentally neutralized top/sticky behavior. */
.ds-site-header,
.site-header,
header.wp-block-template-part,
.wp-site-blocks > header:first-child,
.wp-site-blocks > .wp-block-template-part:first-child {
	position: sticky !important;
	top: 0 !important;
	z-index: 99999 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	transform: none !important;
	background: rgba(255, 249, 241, .96) !important;
	backdrop-filter: saturate(130%) blur(8px);
	-webkit-backdrop-filter: saturate(130%) blur(8px);
}

/* WordPress admin bar offset. */
body.admin-bar .ds-site-header,
body.admin-bar .site-header,
body.admin-bar header.wp-block-template-part,
body.admin-bar .wp-site-blocks > header:first-child,
body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child {
	top: 32px !important;
}

@media (max-width: 782px) {
	body.admin-bar .ds-site-header,
	body.admin-bar .site-header,
	body.admin-bar header.wp-block-template-part,
	body.admin-bar .wp-site-blocks > header:first-child,
	body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child {
		top: 46px !important;
	}
}

/* Keep header compact, no artificial top band. */
.ds-header-inner,
.ds-site-header .ds-header-inner,
header.wp-block-template-part .ds-header-inner {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: clamp(.85rem, 1.15vw, 1.15rem) !important;
	padding-bottom: clamp(.85rem, 1.15vw, 1.15rem) !important;
	min-height: 0 !important;
	height: auto !important;
}

/* Hero must remain directly below the sticky header in normal document flow. */
.wp-site-blocks > main,
main.ds-main-no-top-gap,
.ds-main-no-top-gap {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-site-blocks .ds-hero-focal:first-of-type,
.wp-site-blocks .ds-photo-hero:first-of-type,
main .ds-hero-focal:first-of-type,
main .ds-photo-hero:first-of-type {
	margin-top: 0 !important;
	padding-top: 0 !important;
}


/* v1.40 – mobile header, full-screen nav overlay, hero/quote refinements */

@media (max-width: 780px) {

	/* Mobile header: no booking button in the header bar itself. */
	.ds-header-cta,
	.ds-site-header .ds-header-cta,
	header.wp-block-template-part .ds-header-cta {
		display: none !important;
		visibility: hidden !important;
	}

	/* Mobile wordmark: smaller, finer, more balanced next to the star. */
	.ds-wordmark .ds-brand-name,
	.ds-brand-name {
		font-size: clamp(.98rem, 4.2vw, 1.08rem) !important;
		font-weight: 500 !important;
		letter-spacing: -.012em !important;
		line-height: 1.04 !important;
	}

	.ds-wordmark .ds-brand-sub,
	.ds-brand-sub {
		font-size: .68rem !important;
		font-weight: 340 !important;
		line-height: 1.1 !important;
		margin-top: .08rem !important;
	}

	.ds-header-brand-zone {
		gap: .58rem !important;
		min-width: 0 !important;
	}

	.ds-header-star-link,
	.ds-header-star {
		width: 4.55rem !important;
		height: 4.55rem !important;
	}

	.ds-header-star-link {
		margin-top: -.78rem !important;
		margin-bottom: -.92rem !important;
	}

	.ds-header-star {
		font-size: .78rem !important;
	}

	/* Mobile navigation overlay: true full viewport, not only header height. */
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		max-height: none !important;
		background: var(--ds-paper, #fff9f1) !important;
		color: var(--ds-ink, #2a2522) !important;
		z-index: 100000 !important;
		padding: clamp(1.1rem, 5vw, 1.8rem) !important;
		overflow-y: auto !important;
		display: flex !important;
		flex-direction: column !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		min-height: calc(100dvh - clamp(2.2rem, 10vw, 3.6rem)) !important;
		width: 100% !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: clamp(4.8rem, 18vw, 6.4rem) !important;
		padding-bottom: clamp(1rem, 5vw, 1.8rem) !important;
		justify-content: flex-start !important;
		gap: clamp(1.2rem, 5vw, 2rem) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		width: 100% !important;
		gap: .72rem !important;
		align-items: stretch !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		width: 100% !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open a,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: clamp(2rem, 11vw, 3.15rem) !important;
		line-height: .98 !important;
		font-weight: 330 !important;
		letter-spacing: -.035em !important;
		text-align: left !important;
	}

	/* Booking CTA lives at the lower edge of the mobile full-screen navigation. */
	.ds-mobile-overlay-booking {
		margin-top: auto !important;
		padding-top: clamp(2rem, 10vw, 4rem) !important;
		width: 100% !important;
	}

	.ds-mobile-overlay-booking .ds-mobile-overlay-booking-button {
		width: 100% !important;
		min-height: 3.7rem !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: var(--ds-orange, #f74900) !important;
		color: var(--ds-white, #fff) !important;
		text-decoration: none !important;
		font-weight: 650 !important;
		font-size: 1.02rem !important;
		padding: 1rem 1.2rem !important;
		border: 0 !important;
		border-radius: 0 !important;
	}

	/* The hero star should not appear in mobile portrait/header composition. */
	.ds-photo-hero .ds-hero-star,
	.ds-hero-focal .ds-hero-star,
	.ds-photo-hero .ds-spuer-star.ds-hero-star,
	.ds-hero-focal .ds-spuer-star.ds-hero-star {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	/* Mobile portrait focal point for the hero image. */
	.ds-hero-focal {
		--ds-hero-focus: 40% 44% !important;
		background-position: 40% 44% !important;
	}

	.ds-hero-focal img,
	.ds-hero-focal .ds-photo-hero-image img,
	.ds-photo-hero img,
	.ds-photo-hero .ds-photo-hero-image img {
		object-position: 40% 44% !important;
	}

	/* Neutral paper/white breathing space after offers before the quote band. */
	.ds-services-wrap {
		padding-bottom: clamp(4.25rem, 18vw, 7rem) !important;
		margin-bottom: 0 !important;
		background: var(--ds-paper, #fff9f1) !important;
	}

	.ds-services-wrap + .ds-quote-band,
	.ds-paper.ds-services-wrap + .ds-quote-band {
		margin-top: 0 !important;
	}

	/* Mobile quote: no left accent line, full-width, centered. */
	.ds-quote-band {
		padding-block: clamp(4rem, 16vw, 6rem) !important;
		min-height: auto !important;
	}

	.ds-quote-band > .ds-grid,
	.ds-quote-band .ds-grid,
	.ds-quote-band .ds-col-12 {
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.ds-quote-band blockquote,
	.ds-quote-band .wp-block-quote {
		border-left: 0 !important;
		border-inline-start: 0 !important;
		padding-left: 0 !important;
		padding-inline-start: 0 !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: min(100%, 34rem) !important;
		text-align: center !important;
	}

	.ds-quote-band blockquote::before,
	.ds-quote-band blockquote::after,
	.ds-quote-band .wp-block-quote::before,
	.ds-quote-band .wp-block-quote::after {
		display: none !important;
		content: none !important;
	}

	.ds-quote-band blockquote p,
	.ds-quote-band .wp-block-quote p {
		text-align: center !important;
		font-size: clamp(2.05rem, 10.5vw, 3.15rem) !important;
		line-height: 1.04 !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.ds-quote-band cite {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

@media (max-width: 780px) and (orientation: portrait) {
	.ds-hero-focal {
		--ds-hero-focus: 40% 44% !important;
		background-position: 40% 44% !important;
	}

	.ds-hero-focal img,
	.ds-hero-focal .ds-photo-hero-image img,
	.ds-photo-hero img,
	.ds-photo-hero .ds-photo-hero-image img {
		object-position: 40% 44% !important;
	}
}


/* v1.41 – desktop header alignment: brand, nav and button on one visual axis */

@media (min-width: 781px) {
	.ds-site-header {
		padding-block: 0 !important;
	}

	.ds-header-inner,
	.ds-site-header .ds-header-inner,
	header.wp-block-template-part .ds-header-inner {
		display: grid !important;
		grid-template-columns: minmax(20rem, auto) minmax(18rem, 1fr) minmax(13rem, auto) !important;
		align-items: center !important;
		column-gap: clamp(2rem, 4vw, 5rem) !important;
		min-height: 6.4rem !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.ds-header-brand-zone {
		justify-self: start !important;
		align-self: center !important;
		display: flex !important;
		align-items: center !important;
		gap: clamp(.95rem, 1.4vw, 1.35rem) !important;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 6.4rem !important;
	}

	.ds-wordmark,
	.ds-header-brand-zone .ds-wordmark {
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1 !important;
	}

	.ds-brand-name {
		line-height: 1.02 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-brand-sub {
		line-height: 1.18 !important;
		margin-top: .22rem !important;
		padding: 0 !important;
	}

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation {
		justify-self: center !important;
		align-self: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 6.4rem !important;
		line-height: 1 !important;
	}

	.ds-site-header .wp-block-navigation__container,
	.ds-site-header .wp-block-navigation-item,
	.ds-site-header .wp-block-navigation-item__content,
	.ds-site-header .wp-block-navigation a {
		display: flex !important;
		align-items: center !important;
		line-height: 1 !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.ds-site-header .wp-block-navigation__container {
		gap: clamp(1.25rem, 2vw, 2.15rem) !important;
		justify-content: center !important;
	}

	.ds-header-cta,
	.ds-site-header .ds-header-cta {
		justify-self: end !important;
		align-self: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: flex-end !important;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 6.4rem !important;
	}

	.ds-header-cta .wp-block-button,
	.ds-header-cta .wp-block-button__link {
		margin: 0 !important;
		align-self: center !important;
	}

	.ds-header-cta .wp-block-button__link {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-height: 4.35rem !important;
		padding: 0 2.1rem !important;
		line-height: 1 !important;
	}

	.ds-header-star-link {
		align-self: center !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}

	.ds-header-star,
	.ds-spuer-star.ds-header-star {
		align-self: center !important;
		margin: 0 !important;
	}
}


/* v1.42 – global editable focal images */

.ds-focal-image {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: var(--ds-focal-aspect, 4 / 3);
	margin: 0;
	overflow: hidden;
	background: var(--ds-sand, #efe3d4);
}

.ds-focal-image > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ds-focal-pos, 50% 50%);
}

.ds-focal-image__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 10rem;
	color: var(--ds-muted, #7a706b);
	font-size: .85rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

/* Existing star-photo masks now work on the new Doris focal image block as well. */
.ds-focal-image.ds-card-star-image,
.wp-block-doris-focal-image.ds-card-star-image {
	width: min(13rem, 58vw);
	aspect-ratio: 1 / 1;
}

.ds-focal-image.ds-star-photo-mask,
.wp-block-doris-focal-image.ds-star-photo-mask {
	clip-path: var(--ds-rounded-star-path);
	-webkit-clip-path: var(--ds-rounded-star-path);
	border-radius: 0;
	overflow: hidden;
}

.ds-focal-image.ds-image-block {
	min-height: clamp(18rem, 32vw, 30rem);
}

.ds-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(.8rem, 1.5vw, 1.25rem);
}

.ds-photo-grid .ds-focal-image,
.ds-photo-grid .wp-block-doris-focal-image {
	min-height: 0;
	aspect-ratio: 1 / 1;
}

@media (max-width: 780px) {
	.ds-photo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ds-focal-image.ds-image-block {
		min-height: 16rem;
	}
}

/* Hide empty secondary hero button when the block is used for subpage heroes. */
.ds-hero-buttons .wp-block-button.is-style-outline:has(a[href=""]),
.ds-hero-buttons .wp-block-button.is-style-outline:has(a[href="#"]:empty) {
	display: none !important;
}


/* v1.43 – desktop nav fix: mobile booking button never visible on desktop */

/* The mobile overlay CTA must never affect desktop navigation layout. */
.ds-mobile-overlay-booking {
	display: none !important;
	visibility: hidden !important;
}

/* Desktop: stabilize nav axis and remove layout influence from any injected mobile CTA. */
@media (min-width: 781px) {
	.ds-primary-nav .ds-mobile-overlay-booking,
	.wp-block-navigation .ds-mobile-overlay-booking,
	.wp-block-navigation__responsive-container-content > .ds-mobile-overlay-booking {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container,
	.ds-site-header .wp-block-navigation__responsive-container-content,
	.ds-site-header .wp-block-navigation__container {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		position: static !important;
		display: flex !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
		color: inherit !important;
		overflow: visible !important;
	}

	.ds-site-header .wp-block-navigation-item,
	.ds-site-header .wp-block-navigation-item__content,
	.ds-site-header .wp-block-navigation a {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: auto !important;
		min-height: 0 !important;
		line-height: 1 !important;
		margin: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		vertical-align: middle !important;
	}

	.ds-site-header .wp-block-navigation__container {
		gap: clamp(1.35rem, 2vw, 2.2rem) !important;
	}

	.ds-header-inner {
		grid-template-columns: minmax(20rem, auto) minmax(14rem, 1fr) minmax(13rem, auto) !important;
		align-items: center !important;
	}

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav {
		align-self: center !important;
		justify-self: center !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1 !important;
	}
}

/* Mobile: show the overlay CTA only inside an actually opened responsive menu. */
@media (max-width: 780px) {
	.wp-block-navigation__responsive-container.is-menu-open .ds-mobile-overlay-booking {
		display: block !important;
		visibility: visible !important;
		width: 100% !important;
		height: auto !important;
		margin-top: auto !important;
		padding-top: clamp(2rem, 10vw, 4rem) !important;
		pointer-events: auto !important;
	}
}


/* v1.44 – mobile blog/section overflow fix */

/*
	The blog intro headline was still inheriting an oversized desktop display style.
	On narrow screens it overflowed horizontally instead of wrapping inside the viewport.
*/

html,
body {
	overflow-x: hidden;
}

@media (max-width: 780px) {
	.ds-blog-section,
	.ds-section,
	.ds-section-intro,
	.ds-content-band,
	.ds-paper,
	.ds-paper-warm {
		max-width: 100vw !important;
		overflow-x: hidden !important;
		box-sizing: border-box !important;
	}

	.ds-blog-section .ds-grid,
	.ds-section .ds-grid,
	.ds-section-intro .ds-grid,
	.ds-content-band .ds-grid {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}

	.ds-blog-section [class*="ds-col-"],
	.ds-section [class*="ds-col-"],
	.ds-section-intro [class*="ds-col-"],
	.ds-content-band [class*="ds-col-"] {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}

	.ds-blog-section h1,
	.ds-blog-section h2,
	.ds-blog-section h3,
	.ds-section h1,
	.ds-section h2,
	.ds-section h3,
	.ds-section-intro h1,
	.ds-section-intro h2,
	.ds-section-intro h3,
	.ds-content-band h1,
	.ds-content-band h2,
	.ds-content-band h3 {
		max-width: 100% !important;
		width: 100% !important;
		min-width: 0 !important;
		overflow-wrap: anywhere !important;
		word-break: normal !important;
		hyphens: auto !important;
		font-size: clamp(2.6rem, 13vw, 4.4rem) !important;
		line-height: .98 !important;
		letter-spacing: -.055em !important;
	}

	.ds-blog-section h2 {
		font-size: clamp(2.75rem, 13.2vw, 4.65rem) !important;
		line-height: .96 !important;
		letter-spacing: -.06em !important;
	}

	.ds-blog-section .ds-lead,
	.ds-section .ds-lead,
	.ds-section-intro .ds-lead,
	.ds-content-band .ds-lead,
	.ds-blog-section p,
	.ds-section p {
		max-width: 100% !important;
		overflow-wrap: break-word !important;
	}

	.ds-blog-section .ds-kicker {
		max-width: 100% !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
		letter-spacing: .12em !important;
		font-size: .78rem !important;
		line-height: 1.35 !important;
	}

	.ds-blog-overlay,
	.ds-blog-overlay-track,
	.ds-blog-card,
	.ds-blog-card-image {
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}
}

@media (max-width: 430px) {
	.ds-blog-section h2,
	.ds-section h2,
	.ds-section-intro h2,
	.ds-content-band h2 {
		font-size: clamp(2.35rem, 12.2vw, 3.7rem) !important;
		line-height: 1 !important;
		letter-spacing: -.052em !important;
	}

	.ds-blog-section {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.ds-blog-section > .ds-grid,
	.ds-blog-section .ds-grid {
		padding-left: clamp(1.25rem, 7vw, 2rem) !important;
		padding-right: clamp(1.25rem, 7vw, 2rem) !important;
	}
}


/* v1.45 – Desktop Blog Overlay alignment */

/*
	The blog overlay/carousel should not span wider than the other content areas.
	On desktop it is constrained to the same visual grid width and side inset.
*/

@media (min-width: 781px) {
	.ds-blog-section {
		overflow-x: hidden !important;
	}

	.ds-blog-section > .ds-grid,
	.ds-blog-section .ds-grid {
		width: min(100% - clamp(3rem, 8vw, 8rem), 1440px) !important;
		max-width: 1440px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		box-sizing: border-box !important;
	}

	.ds-blog-section .ds-col-12 {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		overflow: visible !important;
	}

	.ds-blog-overlay,
	.ds-blog-carousel,
	.ds-blog-overlay-wrap,
	.ds-blog-overlay-outer,
	.ds-blog-overlay-inner {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}

	.ds-blog-overlay-track,
	.ds-blog-track,
	[data-ds-blog-track] {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
		overflow: visible !important;
	}

	.ds-blog-card {
		box-sizing: border-box !important;
	}

	/* If older carousel CSS used viewport compensation, neutralize it here. */
	.ds-blog-section .ds-fullbleed,
	.ds-blog-section .alignfull,
	.ds-blog-section .is-layout-constrained > .alignfull {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: auto !important;
		right: auto !important;
		transform: none !important;
	}
}


/* v1.46 – accessible desktop submenu + navigation help overlay */

/* Desktop submenu: calm panel below the header, not browser-default. */
@media (min-width: 781px) {
	.ds-site-header .wp-block-navigation-submenu {
		position: relative !important;
	}

	.ds-site-header .wp-block-navigation-submenu__toggle {
		display: inline-flex !important;
		align-items: center !important;
		gap: .35rem !important;
	}

	.ds-site-header .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
		position: absolute !important;
		top: calc(100% + 1.25rem) !important;
		left: 50% !important;
		transform: translateX(-50%) translateY(.35rem) !important;
		min-width: 15rem !important;
		width: max-content !important;
		max-width: min(22rem, calc(100vw - 3rem)) !important;
		padding: 1.05rem 1.15rem !important;
		background: rgba(255, 249, 241, .98) !important;
		backdrop-filter: saturate(140%) blur(14px) !important;
		-webkit-backdrop-filter: saturate(140%) blur(14px) !important;
		border: 0 !important;
		box-shadow: 0 1.25rem 3rem rgba(42, 37, 34, .12) !important;
		border-radius: 0 !important;
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
		z-index: 100001 !important;
	}

	.ds-site-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu[aria-expanded="true"] > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation__submenu-container:hover,
	.ds-site-header .wp-block-navigation__submenu-container:focus-within {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		transform: translateX(-50%) translateY(0) !important;
	}

	.ds-site-header .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		top: -.7rem;
		left: 0;
		right: 0;
		height: .7rem;
	}

	.ds-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item {
		width: 100% !important;
		display: block !important;
		margin: 0 !important;
	}

	.ds-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
		margin-top: .45rem !important;
	}

	.ds-site-header .wp-block-navigation__submenu-container a,
	.ds-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		width: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start !important;
		padding: .62rem .72rem !important;
		font-size: .98rem !important;
		line-height: 1.2 !important;
		font-weight: 500 !important;
		letter-spacing: -.01em !important;
		color: var(--ds-ink, #2a2522) !important;
		text-align: left !important;
		text-decoration: none !important;
		background: transparent !important;
	}

	.ds-site-header .wp-block-navigation__submenu-container a:hover,
	.ds-site-header .wp-block-navigation__submenu-container a:focus-visible,
	.ds-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.ds-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
		background: rgba(247, 73, 0, .08) !important;
		color: var(--ds-orange, #f74900) !important;
		outline: 2px solid transparent !important;
	}

	.ds-site-header a:focus-visible,
	.ds-site-header button:focus-visible,
	.ds-site-header .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--ds-orange, #f74900) !important;
		outline-offset: .28rem !important;
	}
}

/* Floating navigation help button above back-to-top. */
.ds-accessibility-help-button {
	position: fixed;
	right: clamp(1rem, 2vw, 2rem);
	bottom: calc(clamp(1rem, 2vw, 2rem) + 4.1rem);
	z-index: 70;
	width: 2.9rem;
	height: 2.9rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: var(--ds-ink, #2a2522);
	color: var(--ds-white, #fff9f1);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 .85rem 2rem rgba(42, 37, 34, .18);
}

.ds-accessibility-help-button:hover,
.ds-accessibility-help-button:focus-visible {
	background: var(--ds-orange, #f74900);
	color: #fff;
	outline: 2px solid var(--ds-orange, #f74900);
	outline-offset: .25rem;
}

.ds-accessibility-help-button span {
	font-size: 1.1rem;
	line-height: 1;
}

/* Help overlay */
.ds-nav-help-modal[hidden] {
	display: none !important;
}

.ds-nav-help-modal {
	position: fixed;
	inset: 0;
	z-index: 100002;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 4vw, 2rem);
}

.ds-nav-help-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 37, 34, .46);
}

.ds-nav-help-modal__dialog {
	position: relative;
	width: min(100%, 42rem);
	max-height: min(86vh, 48rem);
	overflow: auto;
	background: var(--ds-paper, #fff9f1);
	color: var(--ds-ink, #2a2522);
	padding: clamp(1.4rem, 4vw, 2.6rem);
	box-shadow: 0 2rem 5rem rgba(42, 37, 34, .22);
}

.ds-nav-help-modal__close {
	position: absolute;
	top: .9rem;
	right: .9rem;
	width: 2.7rem;
	height: 2.7rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 1.55rem;
	line-height: 1;
	cursor: pointer;
}

.ds-nav-help-modal__kicker {
	margin: 0 0 .65rem;
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--ds-orange, #f74900);
}

.ds-nav-help-modal h2 {
	margin: 0 0 1rem;
	font-size: clamp(2rem, 6vw, 3rem);
	line-height: 1;
	letter-spacing: -.045em;
}

.ds-nav-help-modal p,
.ds-nav-help-modal li {
	font-size: 1rem;
	line-height: 1.55;
}

.ds-nav-help-modal ul {
	padding-left: 1.15rem;
	margin: 1rem 0 0;
}

.ds-nav-help-modal li + li {
	margin-top: .55rem;
}

html.ds-nav-help-open,
html.ds-nav-help-open body {
	overflow: hidden !important;
}

@media (max-width: 780px) {
	.ds-accessibility-help-button {
		right: 1rem;
		bottom: 5.1rem;
		width: 2.75rem;
		height: 2.75rem;
	}

	.ds-nav-help-modal {
		align-items: end;
		padding: 0;
	}

	.ds-nav-help-modal__dialog {
		width: 100%;
		max-height: 86dvh;
		padding: 1.4rem 1.25rem 2rem;
	}
}


/* v1.47 – navigation help affordance + lighter blog image height */

/* Make the floating help button easier to understand and keyboard-focus. */
.ds-accessibility-help-button {
	isolation: isolate;
}

.ds-accessibility-help-button::after {
	content: "Navigation";
	position: absolute;
	right: calc(100% + .65rem);
	top: 50%;
	transform: translateY(-50%);
	padding: .42rem .55rem;
	background: var(--ds-ink, #2a2522);
	color: var(--ds-white, #fff9f1);
	font-size: .74rem;
	line-height: 1;
	font-weight: 650;
	letter-spacing: .02em;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .16s ease, visibility .16s ease, transform .16s ease;
}

.ds-accessibility-help-button:hover::after,
.ds-accessibility-help-button:focus-visible::after {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(-.12rem);
}

.ds-accessibility-help-button:focus-visible {
	outline: 3px solid var(--ds-orange, #f74900) !important;
	outline-offset: .32rem !important;
}

/* Blog preview images: keep width, reduce height so cards feel less heavy. */
@media (min-width: 781px) {
	.ds-blog-overlay-image,
	.ds-blog-card-image {
		aspect-ratio: 16 / 9 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: clamp(13.5rem, 19vw, 18rem) !important;
	}

	.ds-blog-overlay-card,
	.ds-blog-card {
		min-height: 0 !important;
	}
}

@media (max-width: 780px) {
	.ds-blog-overlay-image,
	.ds-blog-card-image {
		aspect-ratio: 16 / 10 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
	}
}

@media (max-width: 430px) {
	.ds-accessibility-help-button::after {
		display: none;
	}

	.ds-blog-overlay-image,
	.ds-blog-card-image {
		aspect-ratio: 4 / 3 !important;
	}
}


/* v1.48 – stable theme screenshot, mobile menu refinement, global sticky header */

/* Global sticky header: must apply on every page/template, including legal pages. */
body .wp-site-blocks > header,
body .wp-site-blocks > .wp-block-template-part:first-child,
body header.wp-block-template-part,
body .ds-site-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 99999 !important;
	inset-block-start: 0 !important;
	transform: none !important;
	will-change: transform;
}

body.admin-bar .wp-site-blocks > header,
body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child,
body.admin-bar header.wp-block-template-part,
body.admin-bar .ds-site-header {
	top: 32px !important;
}

@media (max-width: 782px) {
	body.admin-bar .wp-site-blocks > header,
	body.admin-bar .wp-site-blocks > .wp-block-template-part:first-child,
	body.admin-bar header.wp-block-template-part,
	body.admin-bar .ds-site-header {
		top: 46px !important;
	}
}

/* Sticky can fail when ancestors clip scrolling. Keep horizontal control without clipping sticky parent. */
html,
body {
	overflow-x: clip;
}

.wp-site-blocks,
.wp-block-template-part,
.ds-site-header {
	overflow: visible !important;
}

/* Mobile: the floating ? help button is unnecessary and visually competes with navigation/back-to-top. */
@media (max-width: 780px) {
	.ds-accessibility-help-button {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}

	/* Mobile submenu: smaller, lighter, closer to the provided airy draft. */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
		width: 100% !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		font-size: clamp(1.85rem, 9vw, 2.55rem) !important;
		line-height: 1.05 !important;
		font-weight: 330 !important;
		letter-spacing: -.03em !important;
		width: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding: .2rem 0 !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		height: auto !important;
		margin: .55rem 0 1.05rem !important;
		padding: .55rem 0 .2rem 1.05rem !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		transform: none !important;
		pointer-events: auto !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
		margin-top: .18rem !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: clamp(1.05rem, 4.8vw, 1.32rem) !important;
		line-height: 1.25 !important;
		font-weight: 360 !important;
		letter-spacing: -.012em !important;
		padding: .25rem 0 !important;
		color: rgba(42, 37, 34, .78) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a:hover,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a:focus-visible {
		color: var(--ds-orange, #f74900) !important;
		background: transparent !important;
	}
}

/* Desktop: keep submenu label "Info" clean and compact. */
@media (min-width: 781px) {
	.ds-site-header .wp-block-navigation-submenu__toggle {
		font-weight: 500 !important;
	}
}


/* v1.49 – dedicated offer page templates */

body.page-template-page-massage .ds-main-no-top-gap,
body.page-template-page-pantarei .ds-main-no-top-gap,
body.page-template-page-pilates .ds-main-no-top-gap {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Offer subpage heroes should behave like the start hero but without forcing extra pattern spacing. */
.ds-main-no-top-gap > .ds-photo-hero:first-child,
.ds-main-no-top-gap > .ds-hero-focal:first-child {
	margin-top: 0 !important;
}


/* v1.50 – complete offer page templates */

.ds-offer-intro .ds-lead {
	max-width: 54rem;
}

.ds-offer-overview .ds-col-12 {
	margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

.ds-anchor-card {
	min-height: 22rem;
}

.ds-detail-grid {
	row-gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: stretch;
}

.ds-detail-block {
	height: 100%;
	background: rgba(255,255,255,.42);
	padding: clamp(1.4rem, 2.4vw, 2rem);
	box-sizing: border-box;
}

.ds-detail-block h3 {
	font-size: clamp(1.65rem, 2.6vw, 2.45rem);
	line-height: 1.02;
	letter-spacing: -.04em;
}

.ds-offer-faq .wp-block-details {
	border-top: 1px solid rgba(42,37,34,.16);
	padding: 1.05rem 0;
}

.ds-offer-faq .wp-block-details:last-child {
	border-bottom: 1px solid rgba(42,37,34,.16);
}

.ds-offer-faq summary {
	cursor: pointer;
	font-weight: 650;
	font-size: 1.05rem;
}

.ds-offer-faq details p {
	margin-top: .8rem;
	color: var(--ds-muted, #756a63);
}

.ds-cta-band {
	background: var(--ds-orange, #f74900);
	color: #fff;
}

.ds-cta-band .ds-kicker,
.ds-cta-band .ds-lead,
.ds-cta-band h2 {
	color: #fff !important;
}

.ds-cta-actions {
	display: flex;
	align-items: end;
	justify-content: flex-end;
}

.ds-cta-band .wp-block-button__link {
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
}

.ds-offer-blog {
	background: var(--ds-paper, #fff9f1);
}

@media (max-width: 780px) {
	.ds-anchor-card,
	.ds-detail-block {
		min-height: 0;
	}

	.ds-cta-actions {
		justify-content: flex-start;
		margin-top: 1.25rem;
	}

	.ds-detail-block h3 {
		font-size: clamp(1.7rem, 8vw, 2.35rem);
	}
}


/* v1.51 – refined massage page template + finder + blog fallback */

.ds-offer-intro,
.ds-massage-types,
.ds-massage-finder,
.ds-massage-detail-section,
.ds-massage-general-faq,
.ds-offer-testimonials,
.ds-offer-blog {
	padding-top: clamp(5rem, 8vw, 8rem) !important;
	padding-bottom: clamp(5rem, 8vw, 8rem) !important;
}

.ds-massage-types {
	margin-top: 0 !important;
}

.ds-massage-type-grid {
	margin-top: clamp(2rem, 4vw, 4rem);
}

.ds-massage-type-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .35rem;
	min-height: 0 !important;
}

.ds-massage-type-card .ds-massage-star,
.ds-massage-detail-visual .ds-massage-star {
	margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.ds-massage-finder-widget {
	background: rgba(255, 249, 241, .72);
	padding: clamp(1.4rem, 3vw, 2.3rem);
	box-sizing: border-box;
}

.ds-massage-finder-widget fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.ds-massage-finder-widget legend {
	font-size: 1.15rem;
	font-weight: 650;
	margin-bottom: 1rem;
}

.ds-massage-finder-widget label {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	padding: .75rem 0;
	line-height: 1.35;
	color: var(--ds-ink, #2a2522);
}

.ds-massage-finder-widget input {
	margin-top: .25rem;
	accent-color: var(--ds-orange, #f74900);
}

.ds-massage-finder-widget button,
.ds-price-box__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.1rem;
	padding: .85rem 1.15rem;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	cursor: pointer;
}

.ds-massage-finder-result {
	margin-top: 1rem;
	font-weight: 650;
	color: var(--ds-orange, #f74900);
}

.ds-massage-detail-section {
	scroll-margin-top: 9rem;
}

.ds-massage-detail-section:nth-of-type(even) {
	background: var(--ds-paper, #fff9f1);
}

.ds-massage-detail-grid {
	align-items: start;
	row-gap: clamp(2rem, 4vw, 4rem);
}

.ds-massage-detail-content .ds-lead {
	max-width: 48rem;
}

.ds-check-list {
	display: grid;
	gap: .7rem;
	margin: clamp(1.4rem, 2vw, 2rem) 0;
	padding: 0;
	list-style: none;
}

.ds-check-list li {
	position: relative;
	padding-left: 1.65rem;
	line-height: 1.45;
}

.ds-check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: .55rem;
	height: .55rem;
	background: var(--ds-orange, #f74900);
	border-radius: 50%;
}

.ds-price-box {
	margin-top: clamp(1.2rem, 2vw, 1.75rem);
	padding: clamp(1.15rem, 2vw, 1.6rem);
	background: var(--ds-orange, #f74900);
	color: #fff;
}

.ds-price-box__label {
	margin: 0 0 .35rem !important;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-weight: 750;
	color: #fff !important;
}

.ds-price-box__price {
	margin: 0 !important;
	font-size: clamp(1.25rem, 2.2vw, 1.65rem);
	line-height: 1.15;
	font-weight: 650;
	color: #fff !important;
}

.ds-price-box p {
	color: #fff !important;
}

.ds-price-box__button {
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
}

.ds-massage-mini-faq {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.ds-offer-blog h2 {
	font-size: clamp(3.2rem, 7vw, 7rem) !important;
	line-height: .98 !important;
	max-width: 12ch;
}

.ds-blog-empty {
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	max-width: 54rem;
	margin: 2rem 0 0;
	color: var(--ds-muted, #756a63);
}

@media (min-width: 781px) {
	.ds-massage-detail-visual {
		position: sticky;
		top: 9.5rem;
	}
}

@media (max-width: 780px) {
	.ds-offer-intro,
	.ds-massage-types,
	.ds-massage-finder,
	.ds-massage-detail-section,
	.ds-massage-general-faq,
	.ds-offer-testimonials,
	.ds-offer-blog {
		padding-top: clamp(3.5rem, 13vw, 5rem) !important;
		padding-bottom: clamp(3.5rem, 13vw, 5rem) !important;
	}

	.ds-massage-detail-visual {
		display: grid;
		grid-template-columns: minmax(0, .75fr);
	}

	.ds-offer-blog h2 {
		font-size: clamp(2.45rem, 12vw, 4rem) !important;
		max-width: 100%;
	}
}


/* v1.52 – submenu hover reliability + Pantarei/Pilates offer logic + actual blog image height */

/* Desktop submenu: WordPress sometimes keeps submenu hidden until click.
   These rules force hover/focus opening independent of aria-expanded. */
@media (min-width: 781px) {
	.ds-site-header .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation__submenu-container:hover,
	.ds-site-header .wp-block-navigation__submenu-container:focus-within {
		display: flex !important;
		flex-direction: column !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		transform: translateX(-50%) translateY(0) !important;
		height: auto !important;
		overflow: visible !important;
	}

	.ds-site-header .wp-block-navigation-item.has-child:not(:hover):not(:focus-within) > .wp-block-navigation__submenu-container {
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}
}

/* Blog image/card height hard override:
   Old overlay CSS set the image/card too tall. Width remains untouched. */
.ds-offer-blog .ds-blog-overlay-card,
.ds-blog-section .ds-blog-overlay-card {
	min-height: 0 !important;
	height: auto !important;
	background: transparent !important;
}

.ds-offer-blog .ds-blog-overlay-card-link,
.ds-blog-section .ds-blog-overlay-card-link {
	height: auto !important;
	min-height: 0 !important;
	display: block !important;
	background: transparent !important;
}

.ds-offer-blog .ds-blog-overlay-image,
.ds-blog-section .ds-blog-overlay-image {
	display: block !important;
	width: 100% !important;
	height: clamp(10.5rem, 15vw, 14.5rem) !important;
	min-height: 0 !important;
	max-height: 14.5rem !important;
	aspect-ratio: auto !important;
	overflow: hidden !important;
	background: var(--ds-sand, #ead8ba) !important;
}

.ds-offer-blog .ds-blog-overlay-image img,
.ds-blog-section .ds-blog-overlay-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

.ds-offer-blog .ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-title-layer {
	min-height: 0 !important;
}

@media (max-width: 780px) {
	.ds-offer-blog .ds-blog-overlay-image,
	.ds-blog-section .ds-blog-overlay-image {
		height: clamp(11rem, 45vw, 16rem) !important;
		max-height: 16rem !important;
	}
}


/* v1.53 – whole offer cards clickable + exact offer blog filters */

.ds-service-card[data-ds-whole-card-link="1"],
.ds-offer-card[data-ds-whole-card-link="1"],
.ds-course-card[data-ds-whole-card-link="1"],
.ds-anchor-card[data-ds-whole-card-link="1"],
.ds-massage-type-card[data-ds-whole-card-link="1"],
.ds-pantarei-type-card[data-ds-whole-card-link="1"],
.ds-pilates-type-card[data-ds-whole-card-link="1"] {
	cursor: pointer;
	position: relative;
}

.ds-service-card[data-ds-whole-card-link="1"]:hover,
.ds-offer-card[data-ds-whole-card-link="1"]:hover,
.ds-course-card[data-ds-whole-card-link="1"]:hover,
.ds-anchor-card[data-ds-whole-card-link="1"]:hover,
.ds-massage-type-card[data-ds-whole-card-link="1"]:hover,
.ds-pantarei-type-card[data-ds-whole-card-link="1"]:hover,
.ds-pilates-type-card[data-ds-whole-card-link="1"]:hover {
	transform: translateY(-.12rem);
}

.ds-service-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-offer-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-course-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-anchor-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-massage-type-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-pantarei-type-card[data-ds-whole-card-link="1"]:focus-visible,
.ds-pilates-type-card[data-ds-whole-card-link="1"]:focus-visible {
	outline: 3px solid var(--ds-orange, #f74900);
	outline-offset: .35rem;
}

.ds-service-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-offer-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-course-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-anchor-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-massage-type-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-pantarei-type-card[data-ds-whole-card-link="1"] .ds-card-link a,
.ds-pilates-type-card[data-ds-whole-card-link="1"] .ds-card-link a {
	position: relative;
	z-index: 2;
}

/* Offer blog: these sections intentionally show only exactly tagged posts. */
.ds-offer-blog .ds-blog-empty {
	margin-top: clamp(1.4rem, 3vw, 2.4rem);
}


/* v1.54 – mobile card sliders + cursor affordance */

/* Whole clickable cards should always communicate interactivity. */
.ds-service-card[data-ds-whole-card-link="1"],
.ds-offer-card[data-ds-whole-card-link="1"],
.ds-course-card[data-ds-whole-card-link="1"],
.ds-anchor-card[data-ds-whole-card-link="1"],
.ds-massage-type-card[data-ds-whole-card-link="1"],
.ds-pantarei-type-card[data-ds-whole-card-link="1"],
.ds-pilates-type-card[data-ds-whole-card-link="1"] {
	cursor: pointer !important;
}

/* Mobile: convert offer card grids back into swipeable horizontal tracks. */
@media (max-width: 780px) {
	.ds-services-grid.ds-mobile-card-track,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track,
	.ds-offer-overview .ds-services-grid.ds-mobile-card-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: clamp(1rem, 5vw, 1.4rem) !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		scroll-padding-left: clamp(1.25rem, 7vw, 2rem) !important;
		-webkit-overflow-scrolling: touch !important;
		padding-bottom: 1.2rem !important;
		cursor: grab;
	}

	.ds-services-grid.ds-mobile-card-track:active,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track:active,
	.ds-offer-overview .ds-services-grid.ds-mobile-card-track:active {
		cursor: grabbing;
	}

	.ds-services-grid.ds-mobile-card-track::-webkit-scrollbar,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track::-webkit-scrollbar,
	.ds-offer-overview .ds-services-grid.ds-mobile-card-track::-webkit-scrollbar {
		height: 0;
	}

	.ds-services-grid.ds-mobile-card-track > .ds-service-card,
	.ds-services-grid.ds-mobile-card-track > .ds-offer-card,
	.ds-services-grid.ds-mobile-card-track > .ds-course-card,
	.ds-services-grid.ds-mobile-card-track > .ds-anchor-card,
	.ds-services-grid.ds-mobile-card-track > .ds-massage-type-card,
	.ds-services-grid.ds-mobile-card-track > .ds-pantarei-type-card,
	.ds-services-grid.ds-mobile-card-track > .ds-pilates-type-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-service-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-offer-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-course-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-anchor-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid.ds-mobile-card-track > .ds-pilates-type-card {
		flex: 0 0 min(82vw, 22rem) !important;
		width: min(82vw, 22rem) !important;
		max-width: min(82vw, 22rem) !important;
		scroll-snap-align: start !important;
	}

	.ds-mobile-card-controls {
		display: flex;
		justify-content: center;
		gap: .8rem;
		margin-top: clamp(1rem, 5vw, 1.5rem);
	}

	.ds-mobile-card-arrow {
		width: 3rem;
		height: 3rem;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border: 0;
		background: var(--ds-orange, #f74900);
		color: #fff;
		font: inherit;
		font-size: 2rem;
		line-height: 1;
		font-weight: 700;
		cursor: pointer;
	}

	.ds-mobile-card-arrow:focus-visible {
		outline: 3px solid var(--ds-orange, #f74900);
		outline-offset: .28rem;
	}
}

@media (min-width: 781px) {
	.ds-mobile-card-controls {
		display: none !important;
	}
}


/* v1.55 – mobile price segment placement */

/*
	On mobile the price segment belongs semantically below the offer name/headline/subline.
	Desktop keeps the price box near the visual/star column.
*/
@media (max-width: 780px) {
	.ds-massage-detail-grid {
		display: flex !important;
		flex-direction: column !important;
	}

	.ds-massage-detail-visual,
	.ds-massage-detail-content {
		display: contents !important;
	}

	.ds-massage-detail-visual .ds-massage-star {
		order: 1;
		width: min(12rem, 58vw) !important;
		margin-bottom: 1.4rem !important;
	}

	.ds-massage-detail-content .ds-kicker {
		order: 2;
	}

	.ds-massage-detail-content h2,
	.ds-massage-detail-content h3 {
		order: 3;
	}

	.ds-massage-detail-content .ds-lead {
		order: 4;
	}

	.ds-massage-detail-visual .ds-price-box {
		order: 5;
		width: 100%;
		margin-top: clamp(1.2rem, 5vw, 1.8rem) !important;
		margin-bottom: clamp(1.5rem, 6vw, 2.2rem) !important;
	}

	.ds-massage-detail-content .ds-check-list {
		order: 6;
	}

	.ds-massage-detail-content .ds-massage-mini-faq {
		order: 7;
	}

	.ds-massage-detail-section .ds-price-box__button {
		width: 100%;
	}
}


/* v1.56 – refined FAQ reading rhythm */

.ds-offer-faq .wp-block-details p,
.ds-massage-mini-faq .wp-block-details p,
.ds-accordion .wp-block-details p {
	max-width: 62rem;
}

.ds-massage-mini-faq .wp-block-details {
	border-top: 1px solid rgba(42,37,34,.14);
	padding: .95rem 0;
}

.ds-massage-mini-faq .wp-block-details:last-child {
	border-bottom: 1px solid rgba(42,37,34,.14);
}

.ds-massage-mini-faq summary {
	cursor: pointer;
	font-weight: 650;
	line-height: 1.25;
}

.ds-massage-mini-faq details p {
	margin-top: .75rem;
	line-height: 1.58;
	color: var(--ds-muted, #756a63);
}


/* v1.57 – mobile legal pages + star bullets */

/* Global Doris star bullets instead of round dots. */
.wp-site-blocks main ul:not(.wp-block-navigation__container):not(.wp-block-navigation__submenu-container):not(.ds-check-list),
.wp-site-blocks main .wp-block-list {
	list-style: none !important;
	padding-left: 0 !important;
}

.wp-site-blocks main ul:not(.wp-block-navigation__container):not(.wp-block-navigation__submenu-container):not(.ds-check-list) > li,
.wp-site-blocks main .wp-block-list > li {
	position: relative;
	padding-left: 1.65rem;
	margin-bottom: .58rem;
}

.wp-site-blocks main ul:not(.wp-block-navigation__container):not(.wp-block-navigation__submenu-container):not(.ds-check-list) > li::before,
.wp-site-blocks main .wp-block-list > li::before,
.ds-check-list li::before {
	content: "" !important;
	position: absolute;
	left: 0;
	top: .48em;
	width: .72rem !important;
	height: .72rem !important;
	background: var(--ds-orange, #f74900) !important;
	border-radius: 0 !important;
	clip-path: var(--ds-rounded-star-path);
	-webkit-clip-path: var(--ds-rounded-star-path);
}

/* Keep nested lists readable. */
.wp-site-blocks main ul ul {
	margin-top: .55rem;
	padding-left: .35rem !important;
}

/* Legal pages: desktop remains airy, mobile becomes readable instead of broken columns. */
.ds-legal-page,
body.page-impressum main,
body.page-datenschutz main,
body.page-agb main,
body.page-template-page-impressum main,
body.page-template-page-datenschutz main,
body.page-template-page-agb main {
	overflow-x: hidden;
}

body.page-impressum main table,
body.page-datenschutz main table,
body.page-agb main table,
body.page-template-page-impressum main table,
body.page-template-page-datenschutz main table,
body.page-template-page-agb main table {
	width: 100%;
	border-collapse: collapse;
}

body.page-impressum main td,
body.page-impressum main th,
body.page-datenschutz main td,
body.page-datenschutz main th,
body.page-agb main td,
body.page-agb main th,
body.page-template-page-impressum main td,
body.page-template-page-impressum main th,
body.page-template-page-datenschutz main td,
body.page-template-page-datenschutz main th,
body.page-template-page-agb main td,
body.page-template-page-agb main th {
	vertical-align: top;
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}

@media (max-width: 780px) {
	body.page-impressum main,
	body.page-datenschutz main,
	body.page-agb main,
	body.page-template-page-impressum main,
	body.page-template-page-datenschutz main,
	body.page-template-page-agb main {
		padding-left: clamp(1.35rem, 7vw, 2rem) !important;
		padding-right: clamp(1.35rem, 7vw, 2rem) !important;
	}

	body.page-impressum main > *,
	body.page-datenschutz main > *,
	body.page-agb main > *,
	body.page-template-page-impressum main > *,
	body.page-template-page-datenschutz main > *,
	body.page-template-page-agb main > * {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	body.page-impressum main h1,
	body.page-datenschutz main h1,
	body.page-agb main h1,
	body.page-template-page-impressum main h1,
	body.page-template-page-datenschutz main h1,
	body.page-template-page-agb main h1 {
		font-size: clamp(3.6rem, 17vw, 6rem) !important;
		line-height: .95 !important;
		letter-spacing: -.06em !important;
		margin-top: clamp(3.5rem, 14vw, 5.5rem) !important;
		margin-bottom: clamp(2rem, 9vw, 3.5rem) !important;
		max-width: 100% !important;
	}

	body.page-impressum main h2,
	body.page-datenschutz main h2,
	body.page-agb main h2,
	body.page-template-page-impressum main h2,
	body.page-template-page-datenschutz main h2,
	body.page-template-page-agb main h2 {
		font-size: clamp(2.35rem, 12vw, 4.2rem) !important;
		line-height: .98 !important;
		letter-spacing: -.055em !important;
		margin-top: clamp(2.4rem, 10vw, 4rem) !important;
		margin-bottom: clamp(1.2rem, 5vw, 2rem) !important;
	}

	body.page-impressum main h3,
	body.page-datenschutz main h3,
	body.page-agb main h3,
	body.page-template-page-impressum main h3,
	body.page-template-page-datenschutz main h3,
	body.page-template-page-agb main h3 {
		font-size: clamp(1.5rem, 7vw, 2.3rem) !important;
		line-height: 1.08 !important;
		letter-spacing: -.035em !important;
	}

	body.page-impressum main p,
	body.page-datenschutz main p,
	body.page-agb main p,
	body.page-template-page-impressum main p,
	body.page-template-page-datenschutz main p,
	body.page-template-page-agb main p,
	body.page-impressum main li,
	body.page-datenschutz main li,
	body.page-agb main li,
	body.page-template-page-impressum main li,
	body.page-template-page-datenschutz main li,
	body.page-template-page-agb main li {
		font-size: clamp(1.02rem, 4.6vw, 1.22rem) !important;
		line-height: 1.55 !important;
		letter-spacing: -.01em !important;
	}

	/* Legal/WKO tables: turn brittle columns into readable cards. */
	body.page-impressum main table,
	body.page-datenschutz main table,
	body.page-agb main table,
	body.page-template-page-impressum main table,
	body.page-template-page-datenschutz main table,
	body.page-template-page-agb main table {
		display: block !important;
		width: 100% !important;
		margin: clamp(1.4rem, 7vw, 2rem) 0 !important;
		border-top: 1px solid rgba(42,37,34,.16);
		border-bottom: 1px solid rgba(42,37,34,.16);
	}

	body.page-impressum main thead,
	body.page-datenschutz main thead,
	body.page-agb main thead,
	body.page-template-page-impressum main thead,
	body.page-template-page-datenschutz main thead,
	body.page-template-page-agb main thead {
		display: none !important;
	}

	body.page-impressum main tbody,
	body.page-impressum main tr,
	body.page-impressum main td,
	body.page-impressum main th,
	body.page-datenschutz main tbody,
	body.page-datenschutz main tr,
	body.page-datenschutz main td,
	body.page-datenschutz main th,
	body.page-agb main tbody,
	body.page-agb main tr,
	body.page-agb main td,
	body.page-agb main th,
	body.page-template-page-impressum main tbody,
	body.page-template-page-impressum main tr,
	body.page-template-page-impressum main td,
	body.page-template-page-impressum main th,
	body.page-template-page-datenschutz main tbody,
	body.page-template-page-datenschutz main tr,
	body.page-template-page-datenschutz main td,
	body.page-template-page-datenschutz main th,
	body.page-template-page-agb main tbody,
	body.page-template-page-agb main tr,
	body.page-template-page-agb main td,
	body.page-template-page-agb main th {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	body.page-impressum main tr,
	body.page-datenschutz main tr,
	body.page-agb main tr,
	body.page-template-page-impressum main tr,
	body.page-template-page-datenschutz main tr,
	body.page-template-page-agb main tr {
		padding: 1rem 0 !important;
		border-bottom: 1px solid rgba(42,37,34,.12);
	}

	body.page-impressum main tr:last-child,
	body.page-datenschutz main tr:last-child,
	body.page-agb main tr:last-child,
	body.page-template-page-impressum main tr:last-child,
	body.page-template-page-datenschutz main tr:last-child,
	body.page-template-page-agb main tr:last-child {
		border-bottom: 0;
	}

	body.page-impressum main td,
	body.page-impressum main th,
	body.page-datenschutz main td,
	body.page-datenschutz main th,
	body.page-agb main td,
	body.page-agb main th,
	body.page-template-page-impressum main td,
	body.page-template-page-impressum main th,
	body.page-template-page-datenschutz main td,
	body.page-template-page-datenschutz main th,
	body.page-template-page-agb main td,
	body.page-template-page-agb main th {
		padding: .18rem 0 !important;
		border: 0 !important;
		font-size: clamp(.98rem, 4.5vw, 1.16rem) !important;
		line-height: 1.45 !important;
	}

	body.page-impressum main td:first-child,
	body.page-impressum main th:first-child,
	body.page-datenschutz main td:first-child,
	body.page-datenschutz main th:first-child,
	body.page-agb main td:first-child,
	body.page-agb main th:first-child,
	body.page-template-page-impressum main td:first-child,
	body.page-template-page-impressum main th:first-child,
	body.page-template-page-datenschutz main td:first-child,
	body.page-template-page-datenschutz main th:first-child,
	body.page-template-page-agb main td:first-child,
	body.page-template-page-agb main th:first-child {
		font-size: .78rem !important;
		line-height: 1.25 !important;
		letter-spacing: .12em !important;
		text-transform: uppercase !important;
		font-weight: 750 !important;
		color: var(--ds-orange, #f74900) !important;
		margin-bottom: .25rem !important;
	}

	/* Details/summary blocks, such as WKO entries. */
	body.page-impressum main details,
	body.page-datenschutz main details,
	body.page-agb main details,
	body.page-template-page-impressum main details,
	body.page-template-page-datenschutz main details,
	body.page-template-page-agb main details {
		margin: 1.15rem 0 !important;
		padding: 0 !important;
		border: 0 !important;
	}

	body.page-impressum main summary,
	body.page-datenschutz main summary,
	body.page-agb main summary,
	body.page-template-page-impressum main summary,
	body.page-template-page-datenschutz main summary,
	body.page-template-page-agb main summary {
		display: flex !important;
		align-items: center;
		gap: .65rem;
		padding: .85rem 0 !important;
		border-top: 1px solid rgba(42,37,34,.18);
		border-bottom: 1px solid rgba(42,37,34,.18);
		font-size: clamp(1.15rem, 5.8vw, 1.55rem) !important;
		font-weight: 650;
		cursor: pointer;
	}

	body.page-impressum main summary::marker,
	body.page-datenschutz main summary::marker,
	body.page-agb main summary::marker,
	body.page-template-page-impressum main summary::marker,
	body.page-template-page-datenschutz main summary::marker,
	body.page-template-page-agb main summary::marker {
		color: var(--ds-orange, #f74900);
	}
}


/* v1.58 – fix whole card click blocking itself */
.ds-service-card[data-ds-whole-card-link="1"],
.ds-offer-card[data-ds-whole-card-link="1"],
.ds-course-card[data-ds-whole-card-link="1"],
.ds-anchor-card[data-ds-whole-card-link="1"],
.ds-massage-type-card[data-ds-whole-card-link="1"],
.ds-pantarei-type-card[data-ds-whole-card-link="1"],
.ds-pilates-type-card[data-ds-whole-card-link="1"] {
	cursor: pointer !important;
}


/* v1.60 – offer template polish: separators, star bullets, cards, prices, segment rhythm */

/* Hard star bullet fallback: avoid rectangle if the variable path is not available in a context. */
.wp-site-blocks main ul:not(.wp-block-navigation__container):not(.wp-block-navigation__submenu-container) > li::before,
.wp-site-blocks main .wp-block-list > li::before,
.ds-check-list li::before {
	clip-path: polygon(
		50% 0%,
		58% 27%,
		82% 12%,
		73% 39%,
		100% 45%,
		75% 56%,
		92% 80%,
		63% 72%,
		50% 100%,
		37% 72%,
		8% 80%,
		25% 56%,
		0% 45%,
		27% 39%,
		18% 12%,
		42% 27%
	) !important;
	-webkit-clip-path: polygon(
		50% 0%,
		58% 27%,
		82% 12%,
		73% 39%,
		100% 45%,
		75% 56%,
		92% 80%,
		63% 72%,
		50% 100%,
		37% 72%,
		8% 80%,
		25% 56%,
		0% 45%,
		27% 39%,
		18% 12%,
		42% 27%
	) !important;
}

/* Long offer detail segments: red separator before every following detail segment. */
.ds-massage-detail-section + .ds-massage-detail-section {
	position: relative;
	border-top: 6px solid var(--ds-orange, #f74900);
}

/* 42px rhythm for follow-up segments after content blocks. */
.ds-massage-detail-section + .ds-content-band,
.ds-massage-detail-section + .ds-section,
.ds-content-band + .ds-testimonial-section,
.ds-content-band + .ds-cta-band,
.ds-content-band + .ds-blog-section,
.ds-testimonial-section + .ds-content-band,
.ds-testimonial-section + .ds-cta-band,
.ds-testimonial-section + .ds-blog-section,
.ds-cta-band + .ds-blog-section,
.ds-offer-testimonials,
.ds-offer-blog {
	margin-top: 42px !important;
}

/* Offer cards: prevent text from running over card edges. */
.ds-massage-type-card,
.ds-pantarei-type-card,
.ds-pilates-type-card,
.ds-service-card,
.ds-offer-card,
.ds-course-card {
	overflow: hidden !important;
	box-sizing: border-box !important;
}

.ds-massage-type-card h3,
.ds-pantarei-type-card h3,
.ds-pilates-type-card h3,
.ds-service-card h3,
.ds-offer-card h3,
.ds-course-card h3 {
	max-width: 100% !important;
	overflow-wrap: anywhere !important;
	word-break: normal !important;
	hyphens: auto !important;
	letter-spacing: -.045em !important;
	font-size: clamp(2rem, 3.4vw, 3.05rem) !important;
	line-height: 1.02 !important;
}

.ds-massage-type-card p,
.ds-pantarei-type-card p,
.ds-pilates-type-card p,
.ds-service-card p,
.ds-offer-card p,
.ds-course-card p {
	max-width: 100% !important;
	overflow-wrap: break-word !important;
}

/* Price segment: make Dauer/Preis/Termin quickly scannable. */
.ds-price-box {
	display: grid;
	gap: 1rem;
}

.ds-price-box__grid {
	display: grid;
	gap: .75rem;
}

.ds-price-box__grid > div {
	display: grid;
	gap: .18rem;
	padding-bottom: .72rem;
	border-bottom: 1px solid rgba(255,255,255,.34);
}

.ds-price-box__grid > div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.ds-price-box__grid span {
	font-size: .72rem;
	line-height: 1.1;
	letter-spacing: .13em;
	text-transform: uppercase;
	font-weight: 760;
	opacity: .82;
	color: #fff;
}

.ds-price-box__grid strong {
	font-size: clamp(1.06rem, 1.5vw, 1.32rem);
	line-height: 1.2;
	font-weight: 650;
	color: #fff;
}

/* Offer blog without kicker: reduce top heaviness. */
.ds-offer-blog h2 {
	max-width: 14ch !important;
}

/* Mobile slider robustness for all offer-card groups. */
@media (max-width: 780px) {
	.ds-massage-type-grid,
	.ds-offer-overview,
	.ds-services-wrap {
		overflow: visible !important;
	}

	.ds-massage-type-grid > .ds-grid,
	.ds-offer-overview .ds-services-grid,
	.ds-services-wrap .ds-services-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		gap: clamp(1rem, 5vw, 1.4rem) !important;
		padding-bottom: 1.25rem !important;
		cursor: grab;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card,
	.ds-offer-overview .ds-services-grid > .ds-service-card,
	.ds-services-wrap .ds-services-grid > .ds-service-card {
		flex: 0 0 min(82vw, 22rem) !important;
		width: min(82vw, 22rem) !important;
		max-width: min(82vw, 22rem) !important;
		scroll-snap-align: start !important;
	}

	.ds-massage-type-card h3,
	.ds-pantarei-type-card h3,
	.ds-pilates-type-card h3,
	.ds-service-card h3,
	.ds-offer-card h3,
	.ds-course-card h3 {
		font-size: clamp(2.05rem, 10vw, 3rem) !important;
		line-height: 1.02 !important;
		letter-spacing: -.05em !important;
		overflow-wrap: anywhere !important;
	}

	.ds-mobile-card-controls {
		display: flex !important;
		justify-content: center !important;
		margin-top: 1.25rem !important;
	}

	.ds-price-box__grid strong {
		font-size: clamp(1.08rem, 5vw, 1.35rem);
	}
}


/* v1.61 – fix clipped stars, desktop blog cards and duplicate visual issues */

/* The star image sits partly above the offer cards. Do not clip it. */
.ds-massage-type-card,
.ds-pantarei-type-card,
.ds-pilates-type-card,
.ds-service-card,
.ds-offer-card,
.ds-course-card {
	overflow: visible !important;
}

.ds-massage-type-card .ds-massage-star,
.ds-pantarei-type-card .ds-massage-star,
.ds-pilates-type-card .ds-massage-star,
.ds-service-card .ds-card-star-image {
	position: relative !important;
	z-index: 2 !important;
	margin-top: clamp(-3rem, -4vw, -2rem) !important;
	margin-left: auto !important;
	margin-right: clamp(1rem, 2vw, 1.6rem) !important;
}

/* Keep only content clipped where actually necessary, not the whole card. */
.ds-massage-type-card > *:not(.ds-massage-star),
.ds-pantarei-type-card > *:not(.ds-massage-star),
.ds-pilates-type-card > *:not(.ds-massage-star),
.ds-service-card > *:not(.ds-card-star-image) {
	max-width: 100%;
}

/* Price box: prevent accidental duplicate booking buttons from being visible if editor/cache contains them. */
.ds-price-box .ds-price-box__button + .ds-price-box__button {
	display: none !important;
}

/* Desktop blog overlay: hard reset to proper card height and no lower beige dead area. */
@media (min-width: 781px) {
	.ds-offer-blog .ds-blog-shortcode-section,
	.ds-blog-section .ds-blog-shortcode-section,
	.ds-offer-blog .ds-blog-overlay-carousel,
	.ds-blog-section .ds-blog-overlay-carousel {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		overflow: visible !important;
	}

	.ds-offer-blog .ds-blog-overlay-track,
	.ds-blog-section .ds-blog-overlay-track {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.2rem, 2vw, 2rem) !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		overflow: visible !important;
		transform: none !important;
	}

	.ds-offer-blog .ds-blog-overlay-card,
	.ds-blog-section .ds-blog-overlay-card {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		background: transparent !important;
	}

	.ds-offer-blog .ds-blog-overlay-card-link,
	.ds-blog-section .ds-blog-overlay-card-link {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		background: transparent !important;
		overflow: hidden !important;
	}

	.ds-offer-blog .ds-blog-overlay-image,
	.ds-blog-section .ds-blog-overlay-image {
		display: block !important;
		width: 100% !important;
		height: clamp(12rem, 16vw, 16rem) !important;
		min-height: 0 !important;
		max-height: 16rem !important;
		aspect-ratio: auto !important;
		background: transparent !important;
		overflow: hidden !important;
	}

	.ds-offer-blog .ds-blog-overlay-image img,
	.ds-blog-section .ds-blog-overlay-image img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: center center !important;
	}

	/* Controls below actual cards, centered. */
	.ds-offer-blog .ds-blog-overlay-controls,
	.ds-blog-section .ds-blog-overlay-controls {
		margin-top: clamp(1.5rem, 2.5vw, 2.25rem) !important;
		display: flex !important;
		justify-content: center !important;
		gap: .8rem !important;
	}

	/* On desktop grid mode arrows can remain; they no longer depend on oversized track. */
	.ds-offer-blog .ds-blog-overlay-card:nth-child(n+4),
	.ds-blog-section .ds-blog-overlay-card:nth-child(n+4) {
		display: none !important;
	}
}

/* Mobile offer cards: keep star visible inside swipe cards too. */
@media (max-width: 780px) {
	.ds-massage-type-card,
	.ds-pantarei-type-card,
	.ds-pilates-type-card,
	.ds-service-card {
		overflow: visible !important;
	}

	.ds-massage-type-card .ds-massage-star,
	.ds-pantarei-type-card .ds-massage-star,
	.ds-pilates-type-card .ds-massage-star,
	.ds-service-card .ds-card-star-image {
		margin-top: -2.2rem !important;
		margin-right: 1rem !important;
		width: min(9.5rem, 45vw) !important;
	}

	.ds-offer-blog .ds-blog-overlay-image,
	.ds-blog-section .ds-blog-overlay-image {
		height: clamp(11rem, 42vw, 15rem) !important;
		max-height: 15rem !important;
	}
}

/* v1.61b – hide desktop blog arrows in fixed grid mode */

@media (min-width: 781px) {
	.ds-offer-blog .ds-blog-overlay-controls,
	.ds-blog-section .ds-blog-overlay-controls {
		display: none !important;
	}
}


/* v1.62 – final compact offer containers, no duplicate price buttons, static blog grid */

/* Detail container heights: no oversized vertical blocks. */
.ds-massage-detail-section {
	padding-top: clamp(4rem, 6vw, 6rem) !important;
	padding-bottom: clamp(4rem, 6vw, 6rem) !important;
}

.ds-massage-detail-grid {
	align-items: start !important;
}

.ds-detail-block,
.ds-massage-detail-content,
.ds-massage-detail-visual {
	min-height: 0 !important;
}

.ds-price-box {
	padding: clamp(1.6rem, 2.6vw, 2.4rem) !important;
	min-height: 0 !important;
	height: auto !important;
}

.ds-price-box__grid {
	gap: .65rem !important;
}

.ds-price-box__grid > div {
	padding-bottom: .65rem !important;
}

.ds-price-box__button {
	margin-top: .7rem !important;
	padding-top: .9rem !important;
	padding-bottom: .9rem !important;
}

/* Robust fallback: if old content still contains duplicate buttons, show only the first. */
.ds-price-box .ds-price-box__button ~ .ds-price-box__button {
	display: none !important;
}

/* Exact 42px section rhythm where requested. */
.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-offer-blog,
.ds-offer-template-main .ds-blog-section {
	margin-top: 42px !important;
}

/* Avoid giant testimonial heading overflow on offer pages. */
.ds-offer-template-main .ds-testimonial-section h2 {
	font-size: clamp(3rem, 7.4vw, 7.2rem) !important;
	line-height: .98 !important;
	max-width: 16ch !important;
	overflow-wrap: normal !important;
}

/* Offer blog: true static desktop grid, no carousel width/blank beige bottom. */
.ds-offer-blog .ds-blog-shortcode-intro {
	display: none !important;
}

.ds-offer-blog .ds-blog-overlay-static-grid,
.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-track {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	overflow: visible !important;
}

@media (min-width: 781px) {
	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-track {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.1rem, 2vw, 2rem) !important;
		transform: none !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-card {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		background: transparent !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-card:nth-child(n+4) {
		display: none !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-card-link {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		background: transparent !important;
		overflow: hidden !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-image {
		display: block !important;
		width: 100% !important;
		height: clamp(10.5rem, 14vw, 13.5rem) !important;
		max-height: 13.5rem !important;
		min-height: 0 !important;
		aspect-ratio: auto !important;
		overflow: hidden !important;
		background: transparent !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-controls {
		display: none !important;
	}
}

/* Card stars: visible but not absurdly high/low. */
.ds-massage-type-card .ds-massage-star,
.ds-pantarei-type-card .ds-massage-star,
.ds-pilates-type-card .ds-massage-star,
.ds-service-card .ds-card-star-image {
	width: min(11rem, 42vw) !important;
	margin-top: clamp(-2.4rem, -3vw, -1.5rem) !important;
}

/* Mobile compact detail prices. */
@media (max-width: 780px) {
	.ds-massage-detail-section {
		padding-top: clamp(3.25rem, 11vw, 4.5rem) !important;
		padding-bottom: clamp(3.25rem, 11vw, 4.5rem) !important;
	}

	.ds-price-box {
		padding: 1.35rem !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		gap: 1rem !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-card {
		flex: 0 0 82vw !important;
		scroll-snap-align: start !important;
	}
}


/* v1.64 – compact price visuals and remove duplicate booking buttons */

/* The visual/price column must be compact, not a giant poster block. */
.ds-massage-detail-visual {
	min-height: 0 !important;
	height: auto !important;
	align-self: start !important;
}

.ds-massage-detail-visual .ds-price-box {
	max-width: 100% !important;
	min-height: 0 !important;
	height: auto !important;
	padding: clamp(1.35rem, 2vw, 1.85rem) !important;
	margin-top: clamp(.75rem, 1.5vw, 1.1rem) !important;
	display: grid !important;
	gap: .75rem !important;
}

.ds-price-box__label {
	margin-bottom: .35rem !important;
}

.ds-price-box__grid {
	gap: .42rem !important;
}

.ds-price-box__grid > div {
	padding-bottom: .48rem !important;
}

.ds-price-box__grid span {
	font-size: .66rem !important;
	letter-spacing: .11em !important;
}

.ds-price-box__grid strong {
	font-size: clamp(1rem, 1.3vw, 1.16rem) !important;
	line-height: 1.18 !important;
}

.ds-price-box__button {
	margin-top: .45rem !important;
	padding: .72rem .95rem !important;
	min-height: 0 !important;
	font-size: clamp(.95rem, 1.2vw, 1.05rem) !important;
	line-height: 1.1 !important;
}

/* If any old cached/editor button still appears in the price visual, hide everything after the first booking button. */
.ds-massage-detail-visual .ds-price-box__button ~ .ds-price-box__button,
.ds-massage-detail-visual .wp-block-buttons,
.ds-massage-detail-visual .wp-block-button,
.ds-massage-detail-visual > a.ds-price-box__button,
.ds-massage-detail-visual > .ds-price-box__button {
	display: none !important;
}

/* Reduce star overlap that added empty vertical room above the orange block. */
.ds-massage-detail-visual .ds-massage-star {
	width: min(9.2rem, 32vw) !important;
	margin-top: -1.65rem !important;
	margin-bottom: .65rem !important;
}

/* Detail section should not reserve oversized space. */
.ds-massage-detail-section {
	padding-top: clamp(3.25rem, 5vw, 4.75rem) !important;
	padding-bottom: clamp(3.25rem, 5vw, 4.75rem) !important;
}

.ds-massage-detail-grid {
	align-items: flex-start !important;
}

@media (min-width: 781px) {
	.ds-massage-detail-visual {
		position: sticky;
		top: 8.5rem;
	}

	.ds-massage-detail-grid {
		grid-template-columns: minmax(15rem, .82fr) minmax(0, 1.18fr) !important;
		column-gap: clamp(3rem, 6vw, 6rem) !important;
	}
}

@media (max-width: 780px) {
	.ds-massage-detail-visual .ds-price-box {
		padding: 1.15rem !important;
		margin-top: .85rem !important;
		margin-bottom: 1.35rem !important;
	}

	.ds-price-box__button {
		width: 100% !important;
	}
}


/* v1.65 – valid Gutenberg shortcode blocks for offer blog areas */

.ds-offer-blog .wp-block-shortcode {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font: inherit !important;
	color: inherit !important;
}

.ds-offer-blog .wp-block-shortcode code,
.ds-offer-blog .wp-block-shortcode pre {
	white-space: normal !important;
}


/* v1.66 – compact offer CTA, no oversized clipped headline */

.ds-offer-template-main .ds-offer-compact-cta {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	padding-top: clamp(3.2rem, 5vw, 5rem) !important;
	padding-bottom: clamp(3.2rem, 5vw, 5rem) !important;
	margin-top: 42px !important;
	overflow: hidden !important;
}

.ds-offer-template-main .ds-offer-compact-cta .ds-grid {
	align-items: center !important;
}

.ds-offer-template-main .ds-offer-compact-cta .ds-kicker,
.ds-offer-template-main .ds-offer-compact-cta h2,
.ds-offer-template-main .ds-offer-compact-cta .ds-lead {
	color: #fff !important;
}

.ds-offer-template-main .ds-offer-compact-cta .ds-kicker {
	font-size: clamp(.78rem, 1vw, .95rem) !important;
	letter-spacing: .14em !important;
	margin-bottom: 1rem !important;
}

.ds-offer-template-main .ds-offer-compact-cta h2 {
	font-size: clamp(2.2rem, 4.8vw, 4.8rem) !important;
	line-height: 1 !important;
	letter-spacing: -.055em !important;
	max-width: 11ch !important;
	margin: 0 !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}

.ds-offer-template-main .ds-offer-compact-cta .ds-lead {
	font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important;
	line-height: 1.45 !important;
	max-width: 38rem !important;
	margin-top: 1.2rem !important;
}

.ds-offer-template-main .ds-offer-compact-cta .ds-cta-actions {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
}

.ds-offer-template-main .ds-offer-compact-cta .wp-block-button__link {
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(1rem, 1.25vw, 1.18rem) !important;
	line-height: 1.1 !important;
	padding: 1rem 1.35rem !important;
	min-width: 13rem !important;
	text-align: center !important;
}

/* Safety: any old generic booking CTA inside offer pages must not use huge display heading. */
.ds-offer-template-main .ds-cta-band h2,
.ds-offer-template-main .ds-booking-cta h2,
.ds-offer-template-main [class*="booking"] h2 {
	font-size: clamp(2.2rem, 4.8vw, 4.8rem) !important;
	line-height: 1 !important;
	letter-spacing: -.055em !important;
	max-width: 12ch !important;
	overflow-wrap: normal !important;
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-offer-compact-cta {
		padding-top: clamp(2.6rem, 10vw, 4rem) !important;
		padding-bottom: clamp(2.6rem, 10vw, 4rem) !important;
	}

	.ds-offer-template-main .ds-offer-compact-cta h2 {
		font-size: clamp(2.45rem, 12vw, 4rem) !important;
		max-width: 100% !important;
	}

	.ds-offer-template-main .ds-offer-compact-cta .ds-cta-actions {
		justify-content: flex-start !important;
		margin-top: 1.4rem !important;
	}

	.ds-offer-template-main .ds-offer-compact-cta .wp-block-button__link {
		width: 100% !important;
		min-width: 0 !important;
	}
}


/* v1.67 – reliable spacing before offer follow-up segments */

/*
	Offer follow-up sections must not visually glue to the section before them.
	We use both margin-top and a pseudo spacer so the rhythm survives Gutenberg/block margins.
*/

.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-offer-compact-cta,
.ds-offer-template-main .ds-offer-blog,
.ds-offer-template-main .ds-blog-section {
	margin-top: 42px !important;
	position: relative !important;
}

/* Stable visible breathing space even when block margins collapse or are overridden. */
.ds-offer-template-main .ds-testimonial-section::before,
.ds-offer-template-main .ds-offer-compact-cta::before,
.ds-offer-template-main .ds-offer-blog::before,
.ds-offer-template-main .ds-blog-section::before {
	content: "";
	display: block;
	height: 42px;
	margin-top: -42px;
	pointer-events: none;
}

/* CTA should start with real top breathing and not sit directly under previous content. */
.ds-offer-template-main .ds-offer-compact-cta {
	padding-top: clamp(4.6rem, 6vw, 6.5rem) !important;
	padding-bottom: clamp(4rem, 5vw, 5.6rem) !important;
}

/* Testimonials also need a calmer start after FAQ/detail blocks. */
.ds-offer-template-main .ds-testimonial-section {
	padding-top: clamp(4.6rem, 6vw, 6.5rem) !important;
}

/* Blog area: small label, but still a clear section break. */
.ds-offer-template-main .ds-offer-blog {
	padding-top: clamp(3.8rem, 5vw, 5.2rem) !important;
}

/* Remove accidental negative/zero margins from nested first children. */
.ds-offer-template-main .ds-testimonial-section > *:first-child,
.ds-offer-template-main .ds-offer-compact-cta > *:first-child,
.ds-offer-template-main .ds-offer-blog > *:first-child,
.ds-offer-template-main .ds-blog-section > *:first-child {
	margin-top: 0 !important;
}

/* If generic sections are adjacent, keep rhythm too. */
.ds-offer-template-main .ds-content-band + .ds-content-band,
.ds-offer-template-main .ds-content-band + .ds-section,
.ds-offer-template-main .ds-section + .ds-content-band,
.ds-offer-template-main .ds-section + .ds-section {
	margin-top: 42px !important;
}

/* Safety for giant headings in testimonial sections so added space is not eaten by overflow. */
.ds-offer-template-main .ds-testimonial-section {
	overflow: hidden !important;
}

.ds-offer-template-main .ds-testimonial-section h2 {
	margin-top: 0 !important;
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-testimonial-section,
	.ds-offer-template-main .ds-offer-compact-cta,
	.ds-offer-template-main .ds-offer-blog,
	.ds-offer-template-main .ds-blog-section {
		margin-top: 42px !important;
	}

	.ds-offer-template-main .ds-testimonial-section::before,
	.ds-offer-template-main .ds-offer-compact-cta::before,
	.ds-offer-template-main .ds-offer-blog::before,
	.ds-offer-template-main .ds-blog-section::before {
		height: 42px;
		margin-top: -42px;
	}

	.ds-offer-template-main .ds-offer-compact-cta,
	.ds-offer-template-main .ds-testimonial-section,
	.ds-offer-template-main .ds-offer-blog {
		padding-top: clamp(3.4rem, 12vw, 4.8rem) !important;
	}
}


/* v1.68 – compact offer cards, no giant desktop columns */

/*
	The offer cards were inheriting earlier min-height/flex spacing rules and became far too tall.
	This override gives the cards a controlled vertical rhythm.
*/

/* Home and offer overview cards on desktop */
@media (min-width: 781px) {
	.ds-services-grid > .ds-service-card,
	.ds-services-grid > .ds-offer-card,
	.ds-services-grid > .ds-course-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		min-height: clamp(31rem, 40vw, 39rem) !important;
		height: auto !important;
		padding: clamp(3.4rem, 4vw, 4.6rem) clamp(2rem, 2.6vw, 3rem) clamp(2rem, 2.6vw, 2.8rem) !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		gap: 0 !important;
		overflow: visible !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: absolute !important;
		top: clamp(-1.8rem, -2vw, -1.1rem) !important;
		right: clamp(1.7rem, 2.4vw, 2.4rem) !important;
		width: clamp(8.2rem, 10vw, 11rem) !important;
		margin: 0 !important;
		z-index: 2 !important;
	}

	.ds-services-grid > .ds-service-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		margin-top: clamp(10.5rem, 12vw, 13rem) !important;
		margin-bottom: clamp(1.3rem, 1.8vw, 1.8rem) !important;
	}

	.ds-services-grid > .ds-service-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		font-size: clamp(2.65rem, 4vw, 4.35rem) !important;
		line-height: .98 !important;
		letter-spacing: -.055em !important;
		margin: 0 0 clamp(1.8rem, 2.4vw, 2.7rem) !important;
		max-width: 100% !important;
		overflow-wrap: normal !important;
		hyphens: none !important;
	}

	.ds-services-grid > .ds-service-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
		font-size: clamp(1rem, 1.25vw, 1.16rem) !important;
		line-height: 1.5 !important;
		margin: 0 !important;
		max-width: 24rem !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-card-link {
		margin-top: auto !important;
		padding-top: clamp(1.8rem, 2.6vw, 2.8rem) !important;
	}
}

/* Smaller desktop widths: prevent awkward giant cards. */
@media (min-width: 781px) and (max-width: 1180px) {
	.ds-services-grid > .ds-service-card,
	.ds-services-grid > .ds-offer-card,
	.ds-services-grid > .ds-course-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		min-height: 34rem !important;
	}

	.ds-services-grid > .ds-service-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		font-size: clamp(2.45rem, 4.5vw, 3.45rem) !important;
	}
}

/* Mobile keeps slider behavior but also loses needless height. */
@media (max-width: 780px) {
	.ds-services-grid > .ds-service-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		min-height: 30rem !important;
		height: auto !important;
		padding-top: 3.8rem !important;
		justify-content: flex-start !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: absolute !important;
		top: -1.5rem !important;
		right: 1rem !important;
		width: min(8.5rem, 38vw) !important;
		margin: 0 !important;
	}

	.ds-services-grid > .ds-service-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		margin-top: 8rem !important;
	}
}


/* v1.69 – fix floating offer star images */

/*
	v1.68 made card star images absolute. That detached them from the visual flow.
	This version keeps the star as part of the card again: slightly overlapping, but not floating.
*/

@media (min-width: 781px) {
	.ds-services-grid > .ds-service-card,
	.ds-services-grid > .ds-offer-card,
	.ds-services-grid > .ds-course-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		position: relative !important;
		min-height: clamp(28rem, 34vw, 34rem) !important;
		padding: 0 clamp(2rem, 2.6vw, 3rem) clamp(2rem, 2.6vw, 2.8rem) !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		overflow: visible !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: clamp(8.6rem, 10vw, 10.8rem) !important;
		margin: -2.2rem clamp(.6rem, 1.2vw, 1.2rem) clamp(3rem, 4vw, 4.2rem) auto !important;
		align-self: flex-end !important;
		z-index: 2 !important;
		flex: 0 0 auto !important;
	}

	.ds-services-grid > .ds-service-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		margin-top: 0 !important;
		margin-bottom: clamp(1rem, 1.5vw, 1.45rem) !important;
	}

	.ds-services-grid > .ds-service-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		margin-top: 0 !important;
		margin-bottom: clamp(1.35rem, 2vw, 2rem) !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-card-link,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-card-link {
		margin-top: auto !important;
		padding-top: clamp(1.4rem, 2vw, 2.2rem) !important;
	}
}

/* Mobile: same principle, but smaller and slider-safe. */
@media (max-width: 780px) {
	.ds-services-grid > .ds-service-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		position: relative !important;
		min-height: 27rem !important;
		padding-top: 0 !important;
		overflow: visible !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: min(8rem, 36vw) !important;
		margin: -1.7rem 1rem 2.6rem auto !important;
		align-self: flex-end !important;
	}

	.ds-services-grid > .ds-service-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		margin-top: 0 !important;
	}
}


/* v1.70 – price card desktop left, mobile below offer intro */

/*
	Desktop:
	- price/visual column stays left
	- offer text/details stay right

	Mobile:
	- offer kicker/headline/subline first
	- then price card
	- then bullets and FAQ
*/

@media (min-width: 781px) {
	.ds-massage-detail-grid {
		display: grid !important;
		grid-template-columns: minmax(16rem, .86fr) minmax(0, 1.14fr) !important;
		column-gap: clamp(3rem, 6vw, 6rem) !important;
		align-items: start !important;
	}

	.ds-massage-detail-visual {
		grid-column: 1 !important;
		order: 1 !important;
		display: block !important;
		position: sticky !important;
		top: 8.5rem !important;
		align-self: start !important;
	}

	.ds-massage-detail-content {
		grid-column: 2 !important;
		order: 2 !important;
		display: block !important;
		min-width: 0 !important;
	}

	.ds-massage-detail-visual .ds-price-box {
		width: 100% !important;
		max-width: 100% !important;
	}
}

@media (max-width: 780px) {
	.ds-massage-detail-grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	/* Flatten the two columns only on mobile, so we can order their children semantically. */
	.ds-massage-detail-visual,
	.ds-massage-detail-content {
		display: contents !important;
	}

	.ds-massage-detail-visual .ds-massage-star {
		order: 1 !important;
		width: min(8rem, 36vw) !important;
		margin: -1.2rem 0 1.4rem auto !important;
	}

	.ds-massage-detail-content .ds-kicker {
		order: 2 !important;
	}

	.ds-massage-detail-content h2,
	.ds-massage-detail-content h3 {
		order: 3 !important;
	}

	.ds-massage-detail-content .ds-lead {
		order: 4 !important;
		margin-bottom: 0 !important;
	}

	.ds-massage-detail-visual .ds-price-box {
		order: 5 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: clamp(1.2rem, 5vw, 1.8rem) !important;
		margin-bottom: clamp(1.5rem, 6vw, 2.2rem) !important;
	}

	.ds-massage-detail-content .ds-check-list {
		order: 6 !important;
	}

	.ds-massage-detail-content .ds-massage-mini-faq {
		order: 7 !important;
	}

	.ds-massage-detail-visual .ds-price-box__button {
		width: 100% !important;
	}
}


/* v1.71 – structured offer/price cards restored */

/*
	Preis-/Rahmenkarten sollen wieder als klar lesbare Angebotsinfos wirken:
	Dauer/Umfang, Preis, Termin/Zeit und Hinweis sind visuell getrennte Informationszeilen.
	Die Karte bleibt aber kompakter als die früher überhohe Variante.
*/

.ds-massage-detail-visual .ds-price-box {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	padding: clamp(1.8rem, 2.8vw, 2.65rem) !important;
	display: grid !important;
	gap: clamp(1.05rem, 1.8vw, 1.45rem) !important;
	min-height: 0 !important;
	height: auto !important;
	box-sizing: border-box !important;
}

.ds-price-box__label {
	margin: 0 !important;
	font-size: clamp(.82rem, 1vw, .96rem) !important;
	line-height: 1.1 !important;
	letter-spacing: .15em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: #fff !important;
}

.ds-price-box__grid {
	display: grid !important;
	gap: 0 !important;
	margin: 0 !important;
}

.ds-price-box__grid > div {
	display: grid !important;
	gap: .28rem !important;
	padding: .95rem 0 !important;
	border-top: 1px solid rgba(255,255,255,.34) !important;
}

.ds-price-box__grid > div:first-child {
	border-top: 0 !important;
	padding-top: 0 !important;
}

.ds-price-box__grid > div:last-child {
	padding-bottom: 0 !important;
}

.ds-price-box__grid span {
	display: block !important;
	font-size: clamp(.68rem, .85vw, .78rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 760 !important;
	color: rgba(255,255,255,.78) !important;
}

.ds-price-box__grid strong {
	display: block !important;
	font-size: clamp(1.35rem, 2.05vw, 2rem) !important;
	line-height: 1.08 !important;
	letter-spacing: -.025em !important;
	font-weight: 720 !important;
	color: #fff !important;
	overflow-wrap: break-word !important;
}

.ds-price-box__button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	text-decoration: none !important;
	font-weight: 750 !important;
	font-size: clamp(1rem, 1.15vw, 1.16rem) !important;
	line-height: 1.1 !important;
	padding: 1rem 1.25rem !important;
	margin-top: .25rem !important;
	min-height: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Keep duplicate old buttons suppressed, but do not suppress the intended structured button. */
.ds-massage-detail-visual .ds-price-box .ds-price-box__button ~ .ds-price-box__button,
.ds-massage-detail-visual > .ds-price-box__button,
.ds-massage-detail-visual > .wp-block-buttons,
.ds-massage-detail-visual .wp-block-buttons:not(.ds-price-box .wp-block-buttons) {
	display: none !important;
}

/* Desktop: price card left, structured and compact. */
@media (min-width: 781px) {
	.ds-massage-detail-visual .ds-price-box {
		max-width: 24rem !important;
		margin-left: 0 !important;
		margin-right: auto !important;
	}

	.ds-massage-detail-visual .ds-massage-star + .ds-price-box,
	.ds-massage-detail-visual .ds-price-box {
		margin-top: clamp(.9rem, 1.6vw, 1.35rem) !important;
	}
}

/* Mobile: structured card sits below title/subline, but remains readable and not massive. */
@media (max-width: 780px) {
	.ds-massage-detail-visual .ds-price-box {
		order: 5 !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 1.45rem !important;
		gap: 1rem !important;
		margin-top: 1.2rem !important;
		margin-bottom: 1.6rem !important;
	}

	.ds-price-box__grid > div {
		padding: .78rem 0 !important;
	}

	.ds-price-box__grid strong {
		font-size: clamp(1.25rem, 6vw, 1.72rem) !important;
	}

	.ds-price-box__button {
		width: 100% !important;
	}
}


/* v1.72 – actual compact blog cards in offer templates */

/*
	Offer blog cards must be image tiles, not tall cards with a reserved beige caption area.
	This override targets the shortcode grid mode only.
*/

.ds-offer-template-main .ds-offer-blog {
	overflow-x: hidden !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid,
.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid * {
	box-sizing: border-box !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-track {
	align-items: start !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card {
	background: transparent !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: clamp(9rem, 11.5vw, 12rem) !important;
	min-height: 0 !important;
	max-height: 12rem !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-image {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	aspect-ratio: auto !important;
	background: transparent !important;
	overflow: hidden !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-image img,
.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-image-placeholder {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

/* The title overlay must overlay the image, not reserve a beige block below it. */
.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: clamp(1rem, 2vw, 1.5rem) !important;
	background: rgba(247, 73, 0, .88) !important;
	opacity: 0 !important;
	transform: none !important;
	pointer-events: none !important;
	transition: opacity .18s ease !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-title {
	color: #fff !important;
	font-size: clamp(1.1rem, 1.8vw, 1.6rem) !important;
	line-height: 1.05 !important;
	letter-spacing: -.025em !important;
	text-align: center !important;
	font-weight: 700 !important;
	max-width: 14ch !important;
}

/* Desktop grid: compact three columns with no hidden carousel spacing. */
@media (min-width: 781px) {
	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-track {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.1rem, 2vw, 1.8rem) !important;
		width: 100% !important;
		max-width: 100% !important;
		overflow: visible !important;
		transform: none !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card:nth-child(n+4) {
		display: none !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-controls {
		display: none !important;
	}
}

/* Mobile: still swipeable but short. */
@media (max-width: 780px) {
	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-bottom: 1rem !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
		scroll-snap-align: start !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-card-link {
		height: clamp(9.5rem, 42vw, 13rem) !important;
		max-height: 13rem !important;
	}
}


/* v1.73 – larger star-photo elements in offer cards */

/*
	Star photo elements in the offer cards should be visible brand/visual elements,
	not tiny decorative stickers. Keep them in the normal card flow, but make them larger.
*/

@media (min-width: 781px) {
	.ds-services-grid > .ds-service-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		padding-top: 0 !important;
		min-height: clamp(31rem, 37vw, 38rem) !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: clamp(12rem, 14.5vw, 16rem) !important;
		min-width: clamp(12rem, 14.5vw, 16rem) !important;
		max-width: clamp(12rem, 14.5vw, 16rem) !important;
		margin: clamp(-4.2rem, -4.4vw, -3.1rem) clamp(.4rem, 1vw, 1rem) clamp(2.1rem, 2.7vw, 3rem) auto !important;
		align-self: flex-end !important;
		z-index: 3 !important;
		flex: 0 0 auto !important;
	}

	/* Because the star is larger, keep the text block from drifting too low. */
	.ds-services-grid > .ds-service-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		margin-top: 0 !important;
	}
}

/* Offer detail price/star visual: larger but controlled. */
@media (min-width: 781px) {
	.ds-massage-detail-visual .ds-massage-star {
		width: clamp(11.5rem, 13vw, 15rem) !important;
		min-width: clamp(11.5rem, 13vw, 15rem) !important;
		max-width: clamp(11.5rem, 13vw, 15rem) !important;
		margin-top: clamp(-3rem, -3.4vw, -2rem) !important;
		margin-bottom: clamp(.9rem, 1.4vw, 1.35rem) !important;
		margin-left: auto !important;
		margin-right: 0 !important;
	}
}

/* Mobile: make the star image noticeable in swipe cards, but not dominant. */
@media (max-width: 780px) {
	.ds-services-grid > .ds-service-card,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		min-height: 30rem !important;
	}

	.ds-services-grid > .ds-service-card .ds-card-star-image,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: min(11rem, 48vw) !important;
		min-width: min(11rem, 48vw) !important;
		max-width: min(11rem, 48vw) !important;
		margin: -2.6rem .5rem 2.2rem auto !important;
		align-self: flex-end !important;
	}

	.ds-massage-detail-visual .ds-massage-star {
		width: min(10.5rem, 46vw) !important;
		margin: -1.8rem 0 1.2rem auto !important;
	}
}


/* v1.74 – subpage offer cards, price panels and hairline separators */

/* Unterseiten-Template Cards: Schrift kleiner, ruhiger, kein übergroßes Display-Verhalten. */
@media (min-width: 781px) {
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card {
		min-height: clamp(24rem, 30vw, 31rem) !important;
		padding: 0 clamp(1.75rem, 2.2vw, 2.45rem) clamp(1.75rem, 2.2vw, 2.35rem) !important;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		font-size: clamp(2.15rem, 2.8vw, 3.25rem) !important;
		line-height: 1.02 !important;
		letter-spacing: -.048em !important;
		max-width: 11ch !important;
		margin-bottom: clamp(1.15rem, 1.6vw, 1.7rem) !important;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
		font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
		line-height: 1.48 !important;
		max-width: 20rem !important;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-kicker,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-kicker {
		font-size: clamp(.75rem, .8vw, .86rem) !important;
		letter-spacing: .12em !important;
		margin-bottom: clamp(.85rem, 1.2vw, 1.15rem) !important;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card .ds-massage-star,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card .ds-massage-star {
		width: clamp(10.5rem, 11.8vw, 13.25rem) !important;
		min-width: clamp(10.5rem, 11.8vw, 13.25rem) !important;
		max-width: clamp(10.5rem, 11.8vw, 13.25rem) !important;
		margin-top: clamp(-3.4rem, -3.5vw, -2.4rem) !important;
		margin-bottom: clamp(1.5rem, 2.2vw, 2.4rem) !important;
	}
}

/* Haarlinie statt dicker roter Trennung zwischen Detailangeboten. */
.ds-massage-detail-section + .ds-massage-detail-section {
	border-top: 1px solid var(--ds-orange, #f74900) !important;
}

/* Desktop layout: Preis-/Bildspalte links, Text rechts. */
@media (min-width: 781px) {
	.ds-massage-detail-grid {
		display: grid !important;
		grid-template-columns: minmax(17rem, .86fr) minmax(0, 1.14fr) !important;
		column-gap: clamp(3rem, 6vw, 6rem) !important;
		align-items: start !important;
	}

	.ds-massage-detail-visual {
		grid-column: 1 !important;
		display: block !important;
		position: sticky !important;
		top: 8.5rem !important;
		align-self: start !important;
		min-height: 0 !important;
	}

	.ds-massage-detail-content {
		grid-column: 2 !important;
		min-width: 0 !important;
	}
}

/* Preis-Stern soll an der Oberkante der Preistafel sitzen, nicht frei über der Linie. */
.ds-massage-detail-visual {
	position: relative !important;
}

.ds-massage-detail-visual .ds-massage-star {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: clamp(10.5rem, 12vw, 13.75rem) !important;
	min-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	max-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	margin: 0 clamp(1rem, 2vw, 1.75rem) calc(clamp(10.5rem, 12vw, 13.75rem) * -0.42) auto !important;
	transform: translateY(-42%) !important;
}

/* Strukturierte Preistafel: klar, aber nicht monströs. */
.ds-massage-detail-visual .ds-price-box {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	padding: clamp(2.2rem, 3.2vw, 3.15rem) clamp(1.7rem, 2.5vw, 2.4rem) clamp(1.65rem, 2.4vw, 2.25rem) !important;
	margin-top: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	display: grid !important;
	gap: clamp(.95rem, 1.5vw, 1.25rem) !important;
	box-sizing: border-box !important;
	max-width: 25rem !important;
}

.ds-price-box__label {
	margin: 0 !important;
	font-size: clamp(.72rem, .9vw, .86rem) !important;
	line-height: 1.1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: #fff !important;
}

.ds-price-box__grid {
	display: grid !important;
	gap: 0 !important;
	margin: 0 !important;
}

.ds-price-box__grid > div {
	display: grid !important;
	gap: .22rem !important;
	padding: .72rem 0 !important;
	border-top: 1px solid rgba(255,255,255,.34) !important;
}

.ds-price-box__grid > div:first-child {
	border-top: 0 !important;
	padding-top: 0 !important;
}

.ds-price-box__grid > div:last-child {
	padding-bottom: 0 !important;
}

.ds-price-box__grid span {
	display: block !important;
	font-size: clamp(.62rem, .76vw, .72rem) !important;
	line-height: 1.12 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 760 !important;
	color: rgba(255,255,255,.78) !important;
}

.ds-price-box__grid strong {
	display: block !important;
	font-size: clamp(1.08rem, 1.55vw, 1.45rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 720 !important;
	color: #fff !important;
	overflow-wrap: break-word !important;
}

.ds-price-box__button {
	width: 100% !important;
	margin-top: .35rem !important;
	padding: .9rem 1.1rem !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
	line-height: 1.1 !important;
	font-weight: 760 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

/* Keine doppelten Alt-Buttons. */
.ds-massage-detail-visual .ds-price-box .ds-price-box__button ~ .ds-price-box__button,
.ds-massage-detail-visual > .ds-price-box__button,
.ds-massage-detail-visual > .wp-block-buttons,
.ds-massage-detail-visual .wp-block-buttons:not(.ds-price-box .wp-block-buttons) {
	display: none !important;
}

/* Mobil: Reihenfolge wie gewünscht: Angebotsinfo/Subline, dann Preisbox. */
@media (max-width: 780px) {
	.ds-massage-detail-grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ds-massage-detail-visual,
	.ds-massage-detail-content {
		display: contents !important;
	}

	.ds-massage-detail-content .ds-kicker {
		order: 1 !important;
	}

	.ds-massage-detail-content h2,
	.ds-massage-detail-content h3 {
		order: 2 !important;
	}

	.ds-massage-detail-content .ds-lead {
		order: 3 !important;
		margin-bottom: 0 !important;
	}

	.ds-massage-detail-visual .ds-massage-star {
		order: 4 !important;
		width: min(9.5rem, 42vw) !important;
		min-width: min(9.5rem, 42vw) !important;
		max-width: min(9.5rem, 42vw) !important;
		margin: 1.3rem 1rem -3.3rem auto !important;
		transform: none !important;
		z-index: 4 !important;
	}

	.ds-massage-detail-visual .ds-price-box {
		order: 5 !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 4rem 1.35rem 1.4rem !important;
		margin: 0 0 1.5rem !important;
	}

	.ds-massage-detail-content .ds-check-list {
		order: 6 !important;
	}

	.ds-massage-detail-content .ds-massage-mini-faq {
		order: 7 !important;
	}

	.ds-price-box__grid strong {
		font-size: clamp(1.15rem, 5.4vw, 1.55rem) !important;
	}

	.ds-price-box__button {
		width: 100% !important;
	}

	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		font-size: clamp(2.05rem, 9vw, 2.8rem) !important;
		max-width: 12ch !important;
	}
}


/* v1.75 – offer templates reuse homepage rhythm for testimonials, quotes and CTA */

/*
	Kund*innenstimmen, Zitate und Termin-buchen-CTA in Angebotstemplates
	should follow the homepage components. No separate display typography here.
*/

/* Remove the custom compact CTA if it exists in cached/editor content; make it behave like the normal CTA band. */
.ds-offer-template-main .ds-offer-compact-cta {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
}

/* Do not force special offer-page heading sizes on homepage testimonial/CTA patterns. */
.ds-offer-template-main .ds-testimonial-section h2,
.ds-offer-template-main .ds-cta-band h2,
.ds-offer-template-main .ds-booking-cta h2,
.ds-offer-template-main [class*="booking"] h2 {
	font-size: revert-layer !important;
	line-height: revert-layer !important;
	letter-spacing: revert-layer !important;
	max-width: revert-layer !important;
	overflow-wrap: revert-layer !important;
	hyphens: revert-layer !important;
}

/* If revert-layer is unsupported, fall back to the same broad homepage-like scale used by the theme. */
@supports not (font-size: revert-layer) {
	.ds-offer-template-main .ds-testimonial-section h2,
	.ds-offer-template-main .ds-cta-band h2,
	.ds-offer-template-main .ds-booking-cta h2,
	.ds-offer-template-main [class*="booking"] h2 {
		font-size: clamp(3.2rem, 8vw, 8.6rem) !important;
		line-height: .95 !important;
		letter-spacing: -.06em !important;
	}
}

/* Keep the requested separation, but do not alter the component typography. */
.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-booking-cta,
.ds-offer-template-main .ds-offer-blog {
	margin-top: 42px !important;
}

/* Remove custom pseudo-spacer that visually changed the homepage components. */
.ds-offer-template-main .ds-testimonial-section::before,
.ds-offer-template-main .ds-cta-band::before,
.ds-offer-template-main .ds-booking-cta::before,
.ds-offer-template-main .ds-offer-compact-cta::before,
.ds-offer-template-main .ds-offer-blog::before,
.ds-offer-template-main .ds-blog-section::before {
	content: none !important;
	display: none !important;
}

/* Do not add custom offer-only padding to homepage components. */
.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-booking-cta {
	padding-top: revert-layer !important;
	padding-bottom: revert-layer !important;
}

/* Let homepage CTA button typography win too. */
.ds-offer-template-main .ds-cta-band .wp-block-button__link,
.ds-offer-template-main .ds-booking-cta .wp-block-button__link {
	font-size: revert-layer !important;
	line-height: revert-layer !important;
	padding: revert-layer !important;
	min-width: revert-layer !important;
}

/* Blog remains the only special compact offer element. */
.ds-offer-template-main .ds-offer-blog .ds-offer-blog-label {
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
}


/* v1.76 – force homepage CTA/testimonial components, remove custom offer CTA remnants */

/* If cached/editor content still contains the custom CTA, hide it in favor of the pattern once updated. */
.ds-offer-template-main .ds-offer-compact-cta {
	display: none !important;
}

/* Let homepage testimonial and booking CTA patterns keep their own typography. */
.ds-offer-template-main .ds-testimonial-section h2,
.ds-offer-template-main .ds-testimonial-section p,
.ds-offer-template-main .ds-testimonial-section .ds-kicker,
.ds-offer-template-main .ds-cta-band h2,
.ds-offer-template-main .ds-cta-band p,
.ds-offer-template-main .ds-cta-band .ds-kicker,
.ds-offer-template-main .ds-cta-band .wp-block-button__link {
	/* no offer-template-specific sizing here */
}

/* Keep only external section rhythm. */
.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-offer-blog {
	margin-top: 42px !important;
}

/* Disable previous generated pseudo-spacers around these homepage components. */
.ds-offer-template-main .ds-testimonial-section::before,
.ds-offer-template-main .ds-cta-band::before,
.ds-offer-template-main .ds-offer-compact-cta::before {
	content: none !important;
	display: none !important;
}


/* v1.77 – CONSOLIDATED OFFER TEMPLATE RESET
   This block intentionally overrides the accumulated v1.5x–v1.7x offer-template fixes.
   Goal: restore stable card form, homepage components, structured price panels and compact blog cards.
*/

/* 1) Angebot-/Typ-Cards: stable card form, no oversized typography, no text overflow. */
@media (min-width: 781px) {
	.ds-offer-template-main .ds-massage-type-grid > .ds-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.4rem, 2vw, 2rem) !important;
		align-items: stretch !important;
		overflow: visible !important;
	}

	.ds-offer-template-main .ds-massage-type-card,
	.ds-offer-template-main .ds-pantarei-type-card,
	.ds-offer-template-main .ds-pilates-type-card {
		position: relative !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		min-height: clamp(26rem, 31vw, 33rem) !important;
		height: auto !important;
		padding: 0 clamp(1.75rem, 2.2vw, 2.4rem) clamp(1.8rem, 2.3vw, 2.5rem) !important;
		overflow: visible !important;
		box-sizing: border-box !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pantarei-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		inset: auto !important;
		transform: none !important;
		width: clamp(10.5rem, 12vw, 13.5rem) !important;
		min-width: clamp(10.5rem, 12vw, 13.5rem) !important;
		max-width: clamp(10.5rem, 12vw, 13.5rem) !important;
		margin: clamp(-3.2rem, -3.4vw, -2.4rem) .6rem clamp(1.4rem, 2vw, 2.1rem) auto !important;
		align-self: flex-end !important;
		z-index: 3 !important;
		flex: 0 0 auto !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-kicker,
	.ds-offer-template-main .ds-pantarei-type-card .ds-kicker,
	.ds-offer-template-main .ds-pilates-type-card .ds-kicker {
		margin: 0 0 clamp(.8rem, 1.2vw, 1.1rem) !important;
		font-size: clamp(.72rem, .82vw, .86rem) !important;
		line-height: 1.15 !important;
		letter-spacing: .13em !important;
	}

	.ds-offer-template-main .ds-massage-type-card h3,
	.ds-offer-template-main .ds-pantarei-type-card h3,
	.ds-offer-template-main .ds-pilates-type-card h3 {
		font-size: clamp(2.1rem, 2.8vw, 3.2rem) !important;
		line-height: 1.02 !important;
		letter-spacing: -.048em !important;
		max-width: 11ch !important;
		margin: 0 0 clamp(1.1rem, 1.6vw, 1.7rem) !important;
		overflow-wrap: normal !important;
		hyphens: none !important;
	}

	.ds-offer-template-main .ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-offer-template-main .ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-offer-template-main .ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
		font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
		line-height: 1.48 !important;
		max-width: 20rem !important;
		margin: 0 !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-card-link,
	.ds-offer-template-main .ds-pantarei-type-card .ds-card-link,
	.ds-offer-template-main .ds-pilates-type-card .ds-card-link {
		margin-top: auto !important;
		padding-top: clamp(1.2rem, 1.8vw, 1.9rem) !important;
	}
}

/* Mobile cards remain slider-ready. */
@media (max-width: 780px) {
	.ds-offer-template-main .ds-massage-type-grid > .ds-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		gap: 1rem !important;
		padding-bottom: 1rem !important;
	}

	.ds-offer-template-main .ds-massage-type-card,
	.ds-offer-template-main .ds-pantarei-type-card,
	.ds-offer-template-main .ds-pilates-type-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		min-height: 28rem !important;
		scroll-snap-align: start !important;
		padding: 0 1.35rem 1.5rem !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pantarei-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		width: min(10rem, 42vw) !important;
		min-width: min(10rem, 42vw) !important;
		max-width: min(10rem, 42vw) !important;
		margin: -2.4rem .5rem 1.5rem auto !important;
		transform: none !important;
	}

	.ds-offer-template-main .ds-massage-type-card h3,
	.ds-offer-template-main .ds-pantarei-type-card h3,
	.ds-offer-template-main .ds-pilates-type-card h3 {
		font-size: clamp(2rem, 9vw, 2.8rem) !important;
		line-height: 1.04 !important;
		max-width: 12ch !important;
	}
}

/* 2) Angebotsdetails: desktop price card left, content right; hairline separator. */
.ds-offer-template-main .ds-massage-detail-section + .ds-massage-detail-section {
	border-top: 1px solid var(--ds-orange, #f74900) !important;
}

@media (min-width: 781px) {
	.ds-offer-template-main .ds-massage-detail-grid {
		display: grid !important;
		grid-template-columns: minmax(17rem, .86fr) minmax(0, 1.14fr) !important;
		column-gap: clamp(3rem, 6vw, 6rem) !important;
		align-items: start !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual {
		grid-column: 1 !important;
		position: sticky !important;
		top: 8.5rem !important;
		display: block !important;
		align-self: start !important;
		min-height: 0 !important;
	}

	.ds-offer-template-main .ds-massage-detail-content {
		grid-column: 2 !important;
		min-width: 0 !important;
	}
}

/* 3) Price panel: structured, star fixed to top edge, button bottom. */
.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: clamp(10.5rem, 12vw, 13.75rem) !important;
	min-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	max-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	margin: 0 clamp(1rem, 2vw, 1.75rem) calc(clamp(10.5rem, 12vw, 13.75rem) * -0.42) auto !important;
	transform: translateY(-42%) !important;
}

.ds-offer-template-main .ds-massage-detail-visual .ds-price-box {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	max-width: 25rem !important;
	min-height: clamp(25rem, 30vw, 31rem) !important;
	height: auto !important;
	padding: clamp(2.35rem, 3.1vw, 3.1rem) clamp(1.55rem, 2.35vw, 2.25rem) clamp(1.35rem, 2vw, 1.8rem) !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(.9rem, 1.4vw, 1.15rem) !important;
	box-sizing: border-box !important;
}

.ds-offer-template-main .ds-price-box__label {
	margin: 0 !important;
	font-size: clamp(.72rem, .9vw, .86rem) !important;
	line-height: 1.1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: #fff !important;
}

.ds-offer-template-main .ds-price-box__grid {
	display: grid !important;
	gap: 0 !important;
	margin: 0 !important;
}

.ds-offer-template-main .ds-price-box__grid > div {
	display: grid !important;
	gap: .24rem !important;
	padding: .7rem 0 !important;
	border-top: 1px solid rgba(255,255,255,.34) !important;
}

.ds-offer-template-main .ds-price-box__grid > div:first-child {
	border-top: 0 !important;
	padding-top: 0 !important;
}

.ds-offer-template-main .ds-price-box__grid span {
	font-size: clamp(.62rem, .76vw, .72rem) !important;
	line-height: 1.12 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 760 !important;
	color: rgba(255,255,255,.78) !important;
}

.ds-offer-template-main .ds-price-box__grid strong {
	font-size: clamp(1.08rem, 1.55vw, 1.45rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 720 !important;
	color: #fff !important;
	overflow-wrap: break-word !important;
}

.ds-offer-template-main .ds-price-box__button {
	width: 100% !important;
	margin-top: auto !important;
	padding: .9rem 1.1rem !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
	line-height: 1.1 !important;
	font-weight: 760 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

.ds-offer-template-main .ds-massage-detail-visual .ds-price-box .ds-price-box__button ~ .ds-price-box__button,
.ds-offer-template-main .ds-massage-detail-visual > .ds-price-box__button,
.ds-offer-template-main .ds-massage-detail-visual > .wp-block-buttons {
	display: none !important;
}

/* Mobile detail order: offer info/subline first, then star+price, then facts/FAQ. */
@media (max-width: 780px) {
	.ds-offer-template-main .ds-massage-detail-grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual,
	.ds-offer-template-main .ds-massage-detail-content {
		display: contents !important;
	}

	.ds-offer-template-main .ds-massage-detail-content .ds-kicker { order: 1 !important; }
	.ds-offer-template-main .ds-massage-detail-content h2,
	.ds-offer-template-main .ds-massage-detail-content h3 { order: 2 !important; }
	.ds-offer-template-main .ds-massage-detail-content .ds-lead { order: 3 !important; }

	.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star {
		order: 4 !important;
		width: min(9.5rem, 42vw) !important;
		min-width: min(9.5rem, 42vw) !important;
		max-width: min(9.5rem, 42vw) !important;
		margin: 1.3rem 1rem -3.3rem auto !important;
		transform: none !important;
		z-index: 4 !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual .ds-price-box {
		order: 5 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		padding: 4rem 1.35rem 1.4rem !important;
		margin: 0 0 1.5rem !important;
	}

	.ds-offer-template-main .ds-massage-detail-content .ds-check-list { order: 6 !important; }
	.ds-offer-template-main .ds-massage-detail-content .ds-massage-mini-faq { order: 7 !important; }
}

/* 4) Homepage components in offer pages: do not invent new typography. */
.ds-offer-template-main .ds-offer-compact-cta {
	display: none !important;
}

.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-booking-cta,
.ds-offer-template-main .ds-offer-blog {
	margin-top: 42px !important;
}

.ds-offer-template-main .ds-testimonial-section::before,
.ds-offer-template-main .ds-cta-band::before,
.ds-offer-template-main .ds-booking-cta::before,
.ds-offer-template-main .ds-offer-blog::before {
	content: none !important;
	display: none !important;
}

/* 5) Blog area: small label, compact cards, no huge empty heading. */
.ds-offer-template-main .ds-offer-blog h2 {
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	max-width: 100% !important;
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
}

.ds-offer-template-main .ds-offer-blog .ds-offer-blog-label {
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	color: var(--ds-ink, #2a2522) !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-empty {
	font-size: clamp(.95rem, 1.2vw, 1.08rem) !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	color: var(--ds-muted, #756a63) !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-track,
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-track {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.1rem, 2vw, 1.8rem) !important;
	width: 100% !important;
	max-width: 100% !important;
	transform: none !important;
	overflow: visible !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card {
	background: transparent !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card:nth-child(n+4) {
	display: none !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	height: clamp(9rem, 11.5vw, 12rem) !important;
	max-height: 12rem !important;
	min-height: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	background: transparent !important;
	overflow: hidden !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image img,
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image-placeholder {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 1rem !important;
	background: rgba(247,73,0,.88) !important;
	opacity: 0 !important;
	transform: none !important;
	pointer-events: none !important;
	transition: opacity .18s ease !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}

.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-controls {
	display: none !important;
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-track,
	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-static-grid .ds-blog-overlay-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		gap: 1rem !important;
		padding-bottom: 1rem !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
		scroll-snap-align: start !important;
	}

	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link {
		height: clamp(9.5rem, 42vw, 13rem) !important;
		max-height: 13rem !important;
	}
}


/* v1.78 – HARD RESET FOR OFFER PAGES
   Purpose: replace accumulated conflicting offer-page rules with one stable system.
*/

/* Scope everything to offer templates. */
.ds-offer-template-main {
	--ds-offer-hairline: rgba(247,73,0,.85);
}

/* A) Offer overview cards: compact, consistent typography, no broken overflow. */
@media (min-width: 781px) {
	.ds-offer-template-main .ds-massage-type-grid > .ds-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.4rem, 2vw, 2rem) !important;
		align-items: stretch !important;
		overflow: visible !important;
	}

	.ds-offer-template-main .ds-massage-type-card,
	.ds-offer-template-main .ds-pantarei-type-card,
	.ds-offer-template-main .ds-pilates-type-card {
		position: relative !important;
		display: flex !important;
		flex-direction: column !important;
		min-height: clamp(26rem, 31vw, 33rem) !important;
		height: auto !important;
		padding: 0 clamp(1.65rem, 2.1vw, 2.35rem) clamp(1.7rem, 2.2vw, 2.35rem) !important;
		overflow: visible !important;
		box-sizing: border-box !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pantarei-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		inset: auto !important;
		transform: none !important;
		width: clamp(10.5rem, 12vw, 13.5rem) !important;
		min-width: clamp(10.5rem, 12vw, 13.5rem) !important;
		max-width: clamp(10.5rem, 12vw, 13.5rem) !important;
		margin: clamp(-3.1rem, -3.3vw, -2.35rem) .5rem clamp(1.35rem, 1.9vw, 2rem) auto !important;
		align-self: flex-end !important;
		z-index: 3 !important;
		flex: 0 0 auto !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-kicker,
	.ds-offer-template-main .ds-pantarei-type-card .ds-kicker,
	.ds-offer-template-main .ds-pilates-type-card .ds-kicker {
		font-size: clamp(.72rem, .82vw, .86rem) !important;
		line-height: 1.15 !important;
		letter-spacing: .13em !important;
		margin: 0 0 clamp(.8rem, 1.15vw, 1.05rem) !important;
	}

	.ds-offer-template-main .ds-massage-type-card h3,
	.ds-offer-template-main .ds-pantarei-type-card h3,
	.ds-offer-template-main .ds-pilates-type-card h3 {
		font-size: clamp(2rem, 2.65vw, 3rem) !important;
		line-height: 1.03 !important;
		letter-spacing: -.045em !important;
		max-width: 12ch !important;
		margin: 0 0 clamp(1rem, 1.45vw, 1.55rem) !important;
		overflow-wrap: normal !important;
		hyphens: none !important;
	}

	.ds-offer-template-main .ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-offer-template-main .ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
	.ds-offer-template-main .ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
		font-size: clamp(.96rem, 1.03vw, 1.07rem) !important;
		line-height: 1.48 !important;
		max-width: 21rem !important;
		margin: 0 !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-card-link,
	.ds-offer-template-main .ds-pantarei-type-card .ds-card-link,
	.ds-offer-template-main .ds-pilates-type-card .ds-card-link {
		margin-top: auto !important;
		padding-top: clamp(1.1rem, 1.6vw, 1.75rem) !important;
	}
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-massage-type-grid > .ds-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-bottom: 1rem !important;
	}

	.ds-offer-template-main .ds-massage-type-card,
	.ds-offer-template-main .ds-pantarei-type-card,
	.ds-offer-template-main .ds-pilates-type-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		min-height: 28rem !important;
		scroll-snap-align: start !important;
		padding: 0 1.35rem 1.5rem !important;
	}

	.ds-offer-template-main .ds-massage-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pantarei-type-card .ds-massage-star,
	.ds-offer-template-main .ds-pilates-type-card .ds-massage-star {
		position: relative !important;
		width: min(10rem, 42vw) !important;
		min-width: min(10rem, 42vw) !important;
		max-width: min(10rem, 42vw) !important;
		margin: -2.35rem .5rem 1.45rem auto !important;
		transform: none !important;
	}

	.ds-offer-template-main .ds-massage-type-card h3,
	.ds-offer-template-main .ds-pantarei-type-card h3,
	.ds-offer-template-main .ds-pilates-type-card h3 {
		font-size: clamp(2rem, 9vw, 2.8rem) !important;
		line-height: 1.04 !important;
		max-width: 12ch !important;
	}
}

/* B) Detail sections: hairline, price left desktop, content right. */
.ds-offer-template-main .ds-massage-detail-section + .ds-massage-detail-section {
	border-top: 1px solid var(--ds-offer-hairline) !important;
}

@media (min-width: 781px) {
	.ds-offer-template-main .ds-massage-detail-grid {
		display: grid !important;
		grid-template-columns: minmax(17rem, .86fr) minmax(0, 1.14fr) !important;
		column-gap: clamp(3rem, 6vw, 6rem) !important;
		align-items: start !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual {
		grid-column: 1 !important;
		display: block !important;
		position: sticky !important;
		top: 8.5rem !important;
		align-self: start !important;
		min-height: 0 !important;
	}

	.ds-offer-template-main .ds-massage-detail-content {
		grid-column: 2 !important;
		min-width: 0 !important;
	}
}

/* C) Price panel: star on top edge, button at bottom, rows in correct order. */
.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star {
	position: relative !important;
	z-index: 4 !important;
	display: block !important;
	width: clamp(10.5rem, 12vw, 13.75rem) !important;
	min-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	max-width: clamp(10.5rem, 12vw, 13.75rem) !important;
	margin: 0 clamp(1rem, 2vw, 1.75rem) calc(clamp(10.5rem, 12vw, 13.75rem) * -0.42) auto !important;
	transform: translateY(-42%) !important;
}

.ds-offer-template-main .ds-massage-detail-visual .ds-price-box {
	position: relative !important;
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	max-width: 25rem !important;
	min-height: clamp(25rem, 30vw, 31rem) !important;
	height: auto !important;
	padding: clamp(2.45rem, 3.15vw, 3.2rem) clamp(1.55rem, 2.35vw, 2.25rem) clamp(1.35rem, 2vw, 1.8rem) !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(.9rem, 1.35vw, 1.15rem) !important;
	box-sizing: border-box !important;
}

.ds-offer-template-main .ds-price-box__label {
	margin: 0 !important;
	font-size: clamp(.72rem, .9vw, .86rem) !important;
	line-height: 1.1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: #fff !important;
}

.ds-offer-template-main .ds-price-box__grid {
	display: grid !important;
	gap: 0 !important;
	margin: 0 !important;
}

.ds-offer-template-main .ds-price-row,
.ds-offer-template-main .ds-price-box__grid > div {
	display: grid !important;
	gap: .24rem !important;
	padding: .7rem 0 !important;
	border-top: 1px solid rgba(255,255,255,.34) !important;
}

.ds-offer-template-main .ds-price-row:first-child,
.ds-offer-template-main .ds-price-box__grid > div:first-child {
	border-top: 0 !important;
	padding-top: 0 !important;
}

.ds-offer-template-main .ds-price-box__grid span {
	font-size: clamp(.62rem, .76vw, .72rem) !important;
	line-height: 1.12 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 760 !important;
	color: rgba(255,255,255,.78) !important;
}

.ds-offer-template-main .ds-price-box__grid strong {
	font-size: clamp(1.08rem, 1.55vw, 1.45rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 720 !important;
	color: #fff !important;
	overflow-wrap: break-word !important;
}

.ds-offer-template-main .ds-price-box__button {
	width: 100% !important;
	margin-top: auto !important;
	padding: .9rem 1.1rem !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
	line-height: 1.1 !important;
	font-weight: 760 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
	order: 99 !important;
}

.ds-offer-template-main .ds-massage-detail-visual .ds-price-box .ds-price-box__button ~ .ds-price-box__button,
.ds-offer-template-main .ds-massage-detail-visual > .ds-price-box__button,
.ds-offer-template-main .ds-massage-detail-visual > .wp-block-buttons {
	display: none !important;
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-massage-detail-grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual,
	.ds-offer-template-main .ds-massage-detail-content {
		display: contents !important;
	}

	.ds-offer-template-main .ds-massage-detail-content .ds-kicker { order: 1 !important; }
	.ds-offer-template-main .ds-massage-detail-content h2,
	.ds-offer-template-main .ds-massage-detail-content h3 { order: 2 !important; }
	.ds-offer-template-main .ds-massage-detail-content .ds-lead { order: 3 !important; }

	.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star {
		order: 4 !important;
		width: min(9.5rem, 42vw) !important;
		min-width: min(9.5rem, 42vw) !important;
		max-width: min(9.5rem, 42vw) !important;
		margin: 1.3rem 1rem -3.3rem auto !important;
		transform: none !important;
		z-index: 4 !important;
	}

	.ds-offer-template-main .ds-massage-detail-visual .ds-price-box {
		order: 5 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		padding: 4rem 1.35rem 1.4rem !important;
		margin: 0 0 1.5rem !important;
	}

	.ds-offer-template-main .ds-massage-detail-content .ds-check-list { order: 6 !important; }
	.ds-offer-template-main .ds-massage-detail-content .ds-massage-mini-faq { order: 7 !important; }
}

/* D) Startseite components: keep these as existing components. */
.ds-offer-template-main .ds-offer-compact-cta {
	display: none !important;
}
.ds-offer-template-main .ds-testimonial-section,
.ds-offer-template-main .ds-cta-band,
.ds-offer-template-main .ds-booking-cta,
.ds-offer-template-main .ds-offer-blog {
	margin-top: 42px !important;
}
.ds-offer-template-main .ds-testimonial-section::before,
.ds-offer-template-main .ds-cta-band::before,
.ds-offer-template-main .ds-booking-cta::before,
.ds-offer-template-main .ds-offer-blog::before {
	content: none !important;
	display: none !important;
}

/* E) Blog: small label and compact cards; empty state must not become huge. */
.ds-offer-template-main .ds-offer-blog h2 {
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	max-width: 100% !important;
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
}
.ds-offer-template-main .ds-offer-blog .ds-offer-blog-label {
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	color: var(--ds-ink, #2a2522) !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-empty {
	font-size: clamp(.95rem, 1.2vw, 1.08rem) !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--ds-muted, #756a63) !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-track {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.1rem, 2vw, 1.8rem) !important;
	width: 100% !important;
	max-width: 100% !important;
	transform: none !important;
	overflow: visible !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card {
	background: transparent !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card:nth-child(n+4) {
	display: none !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	height: clamp(9rem, 11.5vw, 12rem) !important;
	max-height: 12rem !important;
	min-height: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	background: transparent !important;
	overflow: hidden !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image img,
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-image-placeholder {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 1rem !important;
	background: rgba(247,73,0,.88) !important;
	opacity: 0 !important;
	transform: none !important;
	pointer-events: none !important;
	transition: opacity .18s ease !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}
.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-controls {
	display: none !important;
}

@media (max-width: 780px) {
	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		gap: 1rem !important;
		padding-bottom: 1rem !important;
	}
	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
		scroll-snap-align: start !important;
	}
	.ds-offer-template-main .ds-offer-blog .ds-blog-overlay-card-link {
		height: clamp(9.5rem, 42vw, 13rem) !important;
		max-height: 13rem !important;
	}
}


/* v1.79 – About/Über mich template overflow fix */

/*
	Über-mich content must never run past the viewport on the right.
	This is intentionally scoped to common body classes and the dedicated template wrapper.
*/

body.page-ueber-mich,
body.page-uber-mich,
body.page-about,
body.page-template-page-ueber-mich,
body.page-template-page-uber-mich,
body.page-template-page-about {
	overflow-x: hidden !important;
}

.ds-about-template-main,
body.page-ueber-mich main,
body.page-uber-mich main,
body.page-about main,
body.page-template-page-ueber-mich main,
body.page-template-page-uber-mich main,
body.page-template-page-about main {
	overflow-x: hidden !important;
	max-width: 100vw !important;
	box-sizing: border-box !important;
}

/* Make all about-page groups respect viewport width. */
.ds-about-template-main *,
body.page-ueber-mich main *,
body.page-uber-mich main *,
body.page-about main *,
body.page-template-page-ueber-mich main *,
body.page-template-page-uber-mich main *,
body.page-template-page-about main * {
	box-sizing: border-box;
}

/* Grid/flex columns: allow shrinking instead of overflowing. */
.ds-about-template-main .ds-grid,
body.page-ueber-mich main .ds-grid,
body.page-uber-mich main .ds-grid,
body.page-about main .ds-grid,
body.page-template-page-ueber-mich main .ds-grid,
body.page-template-page-uber-mich main .ds-grid,
body.page-template-page-about main .ds-grid,
.ds-about-template-main .wp-block-columns,
body.page-ueber-mich main .wp-block-columns,
body.page-uber-mich main .wp-block-columns,
body.page-about main .wp-block-columns,
body.page-template-page-ueber-mich main .wp-block-columns,
body.page-template-page-uber-mich main .wp-block-columns,
body.page-template-page-about main .wp-block-columns {
	max-width: min(var(--wp--style--global--wide-size, 1180px), calc(100vw - clamp(2rem, 6vw, 5rem))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	overflow: visible !important;
}

.ds-about-template-main .wp-block-column,
body.page-ueber-mich main .wp-block-column,
body.page-uber-mich main .wp-block-column,
body.page-about main .wp-block-column,
body.page-template-page-ueber-mich main .wp-block-column,
body.page-template-page-uber-mich main .wp-block-column,
body.page-template-page-about main .wp-block-column,
.ds-about-template-main [class*="ds-col-"],
body.page-ueber-mich main [class*="ds-col-"],
body.page-uber-mich main [class*="ds-col-"],
body.page-about main [class*="ds-col-"],
body.page-template-page-ueber-mich main [class*="ds-col-"],
body.page-template-page-uber-mich main [class*="ds-col-"],
body.page-template-page-about main [class*="ds-col-"] {
	min-width: 0 !important;
	max-width: 100% !important;
	overflow-wrap: break-word !important;
}

/* Right-side text in about sections: readable and bounded. */
.ds-about-template-main h1,
.ds-about-template-main h2,
.ds-about-template-main h3,
body.page-ueber-mich main h1,
body.page-ueber-mich main h2,
body.page-ueber-mich main h3,
body.page-uber-mich main h1,
body.page-uber-mich main h2,
body.page-uber-mich main h3,
body.page-about main h1,
body.page-about main h2,
body.page-about main h3,
body.page-template-page-ueber-mich main h1,
body.page-template-page-ueber-mich main h2,
body.page-template-page-ueber-mich main h3,
body.page-template-page-uber-mich main h1,
body.page-template-page-uber-mich main h2,
body.page-template-page-uber-mich main h3,
body.page-template-page-about main h1,
body.page-template-page-about main h2,
body.page-template-page-about main h3 {
	max-width: min(11ch, 100%) !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

.ds-about-template-main p,
.ds-about-template-main li,
body.page-ueber-mich main p,
body.page-ueber-mich main li,
body.page-uber-mich main p,
body.page-uber-mich main li,
body.page-about main p,
body.page-about main li,
body.page-template-page-ueber-mich main p,
body.page-template-page-ueber-mich main li,
body.page-template-page-uber-mich main p,
body.page-template-page-uber-mich main li,
body.page-template-page-about main p,
body.page-template-page-about main li {
	max-width: min(44rem, 100%) !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
}

/* Large display headings on About page should be strong, but not viewport-breaking. */
.ds-about-template-main h1,
body.page-ueber-mich main h1,
body.page-uber-mich main h1,
body.page-about main h1,
body.page-template-page-ueber-mich main h1,
body.page-template-page-uber-mich main h1,
body.page-template-page-about main h1 {
	font-size: clamp(3.4rem, 9vw, 8rem) !important;
	line-height: .95 !important;
	letter-spacing: -.06em !important;
}

/* Images on about page: never push layout wider. */
.ds-about-template-main img,
body.page-ueber-mich main img,
body.page-uber-mich main img,
body.page-about main img,
body.page-template-page-ueber-mich main img,
body.page-template-page-uber-mich main img,
body.page-template-page-about main img {
	max-width: 100% !important;
	height: auto !important;
}

/* Mobile: stack cleanly and keep text inside safe padding. */
@media (max-width: 780px) {
	.ds-about-template-main,
	body.page-ueber-mich main,
	body.page-uber-mich main,
	body.page-about main,
	body.page-template-page-ueber-mich main,
	body.page-template-page-uber-mich main,
	body.page-template-page-about main {
		padding-left: clamp(1.25rem, 6vw, 2rem) !important;
		padding-right: clamp(1.25rem, 6vw, 2rem) !important;
	}

	.ds-about-template-main .ds-grid,
	body.page-ueber-mich main .ds-grid,
	body.page-uber-mich main .ds-grid,
	body.page-about main .ds-grid,
	body.page-template-page-ueber-mich main .ds-grid,
	body.page-template-page-uber-mich main .ds-grid,
	body.page-template-page-about main .ds-grid,
	.ds-about-template-main .wp-block-columns,
	body.page-ueber-mich main .wp-block-columns,
	body.page-uber-mich main .wp-block-columns,
	body.page-about main .wp-block-columns,
	body.page-template-page-ueber-mich main .wp-block-columns,
	body.page-template-page-uber-mich main .wp-block-columns,
	body.page-template-page-about main .wp-block-columns {
		display: block !important;
		max-width: 100% !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.ds-about-template-main h1,
	body.page-ueber-mich main h1,
	body.page-uber-mich main h1,
	body.page-about main h1,
	body.page-template-page-ueber-mich main h1,
	body.page-template-page-uber-mich main h1,
	body.page-template-page-about main h1 {
		font-size: clamp(3.1rem, 16vw, 5.2rem) !important;
		max-width: 100% !important;
	}

	.ds-about-template-main h2,
	.ds-about-template-main h3,
	body.page-ueber-mich main h2,
	body.page-ueber-mich main h3,
	body.page-uber-mich main h2,
	body.page-uber-mich main h3,
	body.page-about main h2,
	body.page-about main h3,
	body.page-template-page-ueber-mich main h2,
	body.page-template-page-ueber-mich main h3,
	body.page-template-page-uber-mich main h2,
	body.page-template-page-uber-mich main h3,
	body.page-template-page-about main h2,
	body.page-template-page-about main h3 {
		max-width: 100% !important;
	}
}


/* v1.79.1 – actual Über-Doris template overflow fix */

/*
	Actual template/pattern names:
	- templates/page-ueber-doris.html
	- patterns/about-rich.php
*/

body.page-ueber-doris,
body.page-template-page-ueber-doris,
.ds-about-template-main {
	overflow-x: hidden !important;
}

body.page-ueber-doris main,
body.page-template-page-ueber-doris main,
.ds-about-template-main {
	max-width: 100vw !important;
	overflow-x: hidden !important;
	box-sizing: border-box !important;
}

body.page-ueber-doris main *,
body.page-template-page-ueber-doris main *,
.ds-about-template-main * {
	box-sizing: border-box !important;
}

/* Bound the main about grids/columns. */
body.page-ueber-doris main .ds-grid,
body.page-template-page-ueber-doris main .ds-grid,
.ds-about-template-main .ds-grid,
body.page-ueber-doris main .wp-block-columns,
body.page-template-page-ueber-doris main .wp-block-columns,
.ds-about-template-main .wp-block-columns {
	width: min(100%, var(--wp--style--global--wide-size, 1180px)) !important;
	max-width: calc(100vw - clamp(2rem, 7vw, 6rem)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

body.page-ueber-doris main .wp-block-column,
body.page-template-page-ueber-doris main .wp-block-column,
.ds-about-template-main .wp-block-column,
body.page-ueber-doris main [class*="ds-col-"],
body.page-template-page-ueber-doris main [class*="ds-col-"],
.ds-about-template-main [class*="ds-col-"] {
	min-width: 0 !important;
	max-width: 100% !important;
	overflow-wrap: break-word !important;
}

/* Right text/large headings must wrap inside the column, not viewport. */
body.page-ueber-doris main h1,
body.page-ueber-doris main h2,
body.page-ueber-doris main h3,
body.page-template-page-ueber-doris main h1,
body.page-template-page-ueber-doris main h2,
body.page-template-page-ueber-doris main h3,
.ds-about-template-main h1,
.ds-about-template-main h2,
.ds-about-template-main h3 {
	max-width: min(12ch, 100%) !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

body.page-ueber-doris main h1,
body.page-template-page-ueber-doris main h1,
.ds-about-template-main h1 {
	font-size: clamp(3.2rem, 8vw, 7.5rem) !important;
	line-height: .96 !important;
	letter-spacing: -.058em !important;
}

body.page-ueber-doris main p,
body.page-ueber-doris main li,
body.page-template-page-ueber-doris main p,
body.page-template-page-ueber-doris main li,
.ds-about-template-main p,
.ds-about-template-main li {
	max-width: min(42rem, 100%) !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
}

body.page-ueber-doris main img,
body.page-template-page-ueber-doris main img,
.ds-about-template-main img {
	max-width: 100% !important;
	height: auto !important;
}

/* Any absolute/oversized decorative element must not create horizontal scroll. */
body.page-ueber-doris main .ds-star,
body.page-template-page-ueber-doris main .ds-star,
.ds-about-template-main .ds-star,
body.page-ueber-doris main [class*="star"],
body.page-template-page-ueber-doris main [class*="star"],
.ds-about-template-main [class*="star"] {
	max-width: min(42vw, 18rem) !important;
}

/* Mobile: stack and use safe padding. */
@media (max-width: 780px) {
	body.page-ueber-doris main,
	body.page-template-page-ueber-doris main,
	.ds-about-template-main {
		padding-left: clamp(1.25rem, 6vw, 2rem) !important;
		padding-right: clamp(1.25rem, 6vw, 2rem) !important;
	}

	body.page-ueber-doris main .ds-grid,
	body.page-template-page-ueber-doris main .ds-grid,
	.ds-about-template-main .ds-grid,
	body.page-ueber-doris main .wp-block-columns,
	body.page-template-page-ueber-doris main .wp-block-columns,
	.ds-about-template-main .wp-block-columns {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	body.page-ueber-doris main h1,
	body.page-ueber-doris main h2,
	body.page-ueber-doris main h3,
	body.page-template-page-ueber-doris main h1,
	body.page-template-page-ueber-doris main h2,
	body.page-template-page-ueber-doris main h3,
	.ds-about-template-main h1,
	.ds-about-template-main h2,
	.ds-about-template-main h3 {
		max-width: 100% !important;
	}

	body.page-ueber-doris main h1,
	body.page-template-page-ueber-doris main h1,
	.ds-about-template-main h1 {
		font-size: clamp(3rem, 15vw, 5.2rem) !important;
	}
}


/* v1.80 – FINAL card headline consistency / no H3 overflow
   This must stay at the end of the stylesheet because older card rules are highly specific.
*/

/* All offer-card headings: predictable size and wrapping. */
.ds-service-card h3,
.ds-offer-card h3,
.ds-course-card h3,
.ds-anchor-card h3,
.ds-massage-type-card h3,
.ds-pantarei-type-card h3,
.ds-pilates-type-card h3,
.ds-offer-template-main .ds-massage-type-card h3,
.ds-offer-template-main .ds-pantarei-type-card h3,
.ds-offer-template-main .ds-pilates-type-card h3,
.ds-services-grid > .ds-service-card h3,
.ds-services-grid > .ds-offer-card h3,
.ds-services-grid > .ds-course-card h3,
.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	font-size: clamp(2rem, 2.55vw, 2.95rem) !important;
	line-height: 1.04 !important;
	letter-spacing: -.045em !important;
	font-weight: 400 !important;
	margin-top: 0 !important;
	margin-bottom: clamp(1rem, 1.5vw, 1.55rem) !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
	text-wrap: balance !important;
}

/* Keep card bodies inside the card as well. */
.ds-service-card,
.ds-offer-card,
.ds-course-card,
.ds-anchor-card,
.ds-massage-type-card,
.ds-pantarei-type-card,
.ds-pilates-type-card {
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.ds-service-card *,
.ds-offer-card *,
.ds-course-card *,
.ds-anchor-card *,
.ds-massage-type-card *,
.ds-pantarei-type-card *,
.ds-pilates-type-card * {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Body copy in cards: consistent and bounded. */
.ds-service-card p:not(.ds-kicker):not(.ds-card-link),
.ds-offer-card p:not(.ds-kicker):not(.ds-card-link),
.ds-course-card p:not(.ds-kicker):not(.ds-card-link),
.ds-anchor-card p:not(.ds-kicker):not(.ds-card-link),
.ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
.ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
.ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
	font-size: clamp(.96rem, 1.04vw, 1.08rem) !important;
	line-height: 1.48 !important;
	letter-spacing: normal !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

/* Kicker labels in cards: consistent. */
.ds-service-card .ds-kicker,
.ds-offer-card .ds-kicker,
.ds-course-card .ds-kicker,
.ds-anchor-card .ds-kicker,
.ds-massage-type-card .ds-kicker,
.ds-pantarei-type-card .ds-kicker,
.ds-pilates-type-card .ds-kicker {
	font-size: clamp(.72rem, .82vw, .86rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .13em !important;
	font-weight: 760 !important;
	margin-bottom: clamp(.8rem, 1.15vw, 1.05rem) !important;
}

/* Desktop: specific card grid widths so headings do not collide with edges. */
@media (min-width: 781px) {
	.ds-services-grid,
	.ds-massage-type-grid > .ds-grid,
	.ds-offer-template-main .ds-massage-type-grid > .ds-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		align-items: stretch !important;
	}

	.ds-service-card h3,
	.ds-offer-card h3,
	.ds-course-card h3,
	.ds-anchor-card h3 {
		font-size: clamp(2rem, 2.65vw, 3.05rem) !important;
	}

	.ds-offer-template-main .ds-massage-type-card h3,
	.ds-offer-template-main .ds-pantarei-type-card h3,
	.ds-offer-template-main .ds-pilates-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-massage-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pantarei-type-card h3,
	.ds-massage-type-grid > .ds-grid > .ds-pilates-type-card h3 {
		font-size: clamp(1.85rem, 2.25vw, 2.55rem) !important;
		line-height: 1.05 !important;
		letter-spacing: -.04em !important;
	}
}

/* Medium desktop/tablet landscape: reduce further. */
@media (min-width: 781px) and (max-width: 1180px) {
	.ds-service-card h3,
	.ds-offer-card h3,
	.ds-course-card h3,
	.ds-anchor-card h3,
	.ds-massage-type-card h3,
	.ds-pantarei-type-card h3,
	.ds-pilates-type-card h3 {
		font-size: clamp(1.75rem, 2.6vw, 2.35rem) !important;
		line-height: 1.06 !important;
	}
}

/* Mobile slider cards: readable, not gigantic. */
@media (max-width: 780px) {
	.ds-service-card h3,
	.ds-offer-card h3,
	.ds-course-card h3,
	.ds-anchor-card h3,
	.ds-massage-type-card h3,
	.ds-pantarei-type-card h3,
	.ds-pilates-type-card h3 {
		font-size: clamp(1.9rem, 8vw, 2.55rem) !important;
		line-height: 1.06 !important;
		letter-spacing: -.04em !important;
		max-width: 100% !important;
		overflow-wrap: break-word !important;
		hyphens: auto !important;
	}
}

/* Very narrow: force safe wrapping. */
@media (max-width: 420px) {
	.ds-service-card h3,
	.ds-offer-card h3,
	.ds-course-card h3,
	.ds-anchor-card h3,
	.ds-massage-type-card h3,
	.ds-pantarei-type-card h3,
	.ds-pilates-type-card h3 {
		font-size: clamp(1.65rem, 7.2vw, 2.15rem) !important;
	}
}


/* v1.82 BEAUTIFUL CLEAN – stable templates, valid blog blocks, no broken offer stack */

/* Base clean scope */
.ds-template-clean,
.ds-template-clean * {
	box-sizing: border-box;
}
.ds-template-clean {
	overflow-x: hidden !important;
	background: var(--ds-paper, #fffaf0);
}
.ds-template-clean img {
	max-width: 100%;
	height: auto;
}

/* Clean offer hero */
.ds-clean-hero {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto !important;
	padding: clamp(4.5rem, 8vw, 7.5rem) 0 clamp(2.5rem, 5vw, 4.5rem) !important;
}
.ds-clean-kicker {
	margin: 0 0 1rem !important;
	font-size: clamp(.78rem, .9vw, .95rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: var(--ds-ink, #2a2522) !important;
}
.ds-clean-hero h1 {
	margin: 0 !important;
	max-width: 11.5ch !important;
	font-size: clamp(3.6rem, 8.5vw, 8.5rem) !important;
	line-height: .95 !important;
	letter-spacing: -.06em !important;
	font-weight: 400 !important;
	color: var(--ds-ink, #2a2522) !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}
.ds-clean-lead {
	margin: clamp(1.3rem, 2vw, 1.8rem) 0 0 !important;
	max-width: 48rem !important;
	font-size: clamp(1.08rem, 1.5vw, 1.45rem) !important;
	line-height: 1.45 !important;
	color: var(--ds-muted, #756a63) !important;
}

/* Clean cards */
.ds-clean-card-grid {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto clamp(4rem, 7vw, 6rem) !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.4rem, 2vw, 2rem) !important;
	align-items: stretch !important;
}
.ds-clean-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0 !important;
	min-height: clamp(28rem, 33vw, 35rem) !important;
	padding: 0 clamp(1.7rem, 2.2vw, 2.4rem) clamp(1.7rem, 2.2vw, 2.4rem) !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border-top: 6px solid var(--ds-orange, #f74900) !important;
	text-decoration: none !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}
.ds-clean-card:nth-child(1) {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
}
.ds-clean-card .ds-clean-star-photo {
	position: relative !important;
	width: clamp(10.5rem, 12vw, 13.5rem) !important;
	height: clamp(10.5rem, 12vw, 13.5rem) !important;
	margin: clamp(-3rem, -3.3vw, -2.3rem) .5rem clamp(1.4rem, 2vw, 2rem) auto !important;
	flex: 0 0 auto !important;
}
.ds-clean-star-photo {
	display: grid !important;
	place-items: center !important;
	background: #ead8bf !important;
	color: rgba(42,37,34,.55) !important;
	font-size: .78rem !important;
	clip-path: polygon(50% 0%,58% 24%,82% 10%,75% 38%,100% 44%,75% 56%,92% 82%,63% 72%,50% 100%,37% 72%,8% 82%,25% 56%,0% 44%,25% 38%,18% 10%,42% 24%) !important;
}
.ds-clean-card:nth-child(1) .ds-clean-star-photo {
	background: #f3ddc5 !important;
}
.ds-clean-card h3 {
	display: block !important;
	width: 100% !important;
	max-width: 12ch !important;
	min-width: 0 !important;
	font-size: clamp(1.95rem, 2.45vw, 2.8rem) !important;
	line-height: 1.05 !important;
	letter-spacing: -.045em !important;
	font-weight: 400 !important;
	margin: 0 0 clamp(1.1rem, 1.6vw, 1.65rem) !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
	text-wrap: balance !important;
}
.ds-clean-card p:not(.ds-clean-kicker) {
	font-size: clamp(.98rem, 1.1vw, 1.12rem) !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	max-width: 22rem !important;
}
.ds-clean-card__link {
	margin-top: auto !important;
	padding-top: 1.75rem !important;
	font-size: 1rem !important;
	text-decoration: underline !important;
	color: inherit !important;
}

/* Clean details */
.ds-clean-detail {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto !important;
	padding: clamp(4rem, 7vw, 6rem) 0 !important;
	display: grid !important;
	grid-template-columns: minmax(17rem, .86fr) minmax(0, 1.14fr) !important;
	column-gap: clamp(3rem, 6vw, 6rem) !important;
	align-items: start !important;
	border-top: 1px solid rgba(247,73,0,.85) !important;
}
.ds-clean-detail:first-of-type {
	border-top: 0 !important;
}
.ds-clean-detail__price {
	position: sticky !important;
	top: 8.5rem !important;
	align-self: start !important;
	min-width: 0 !important;
}
.ds-clean-detail__copy {
	min-width: 0 !important;
}
.ds-clean-detail h2 {
	margin: 0 !important;
	max-width: 12ch !important;
	font-size: clamp(3rem, 6vw, 6.5rem) !important;
	line-height: .98 !important;
	letter-spacing: -.06em !important;
	font-weight: 400 !important;
	color: var(--ds-ink, #2a2522) !important;
	overflow-wrap: normal !important;
}
.ds-clean-list {
	list-style: none !important;
	padding: 0 !important;
	margin: clamp(1.6rem, 2.4vw, 2.3rem) 0 !important;
	display: grid !important;
	gap: .8rem !important;
}
.ds-clean-list li {
	position: relative !important;
	padding-left: 2rem !important;
	font-size: clamp(1rem, 1.2vw, 1.15rem) !important;
	line-height: 1.45 !important;
}
.ds-clean-list li::before {
	content: "✸" !important;
	position: absolute !important;
	left: 0 !important;
	top: .05em !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: 1.1rem !important;
}
.ds-clean-faq {
	border-top: 1px solid rgba(42,37,34,.18) !important;
	margin-top: clamp(1.8rem, 3vw, 2.8rem) !important;
}
.ds-clean-faq details {
	border-bottom: 1px solid rgba(42,37,34,.18) !important;
	padding: 1rem 0 !important;
}
.ds-clean-faq summary {
	cursor: pointer !important;
	font-weight: 720 !important;
	font-size: clamp(1.05rem, 1.35vw, 1.3rem) !important;
}
.ds-clean-faq p {
	margin: .8rem 0 0 !important;
	max-width: 42rem !important;
	color: var(--ds-muted, #756a63) !important;
	font-size: clamp(1rem, 1.15vw, 1.12rem) !important;
	line-height: 1.5 !important;
}

/* Clean price */
.ds-clean-price {
	position: relative !important;
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	max-width: 25rem !important;
	min-height: clamp(24rem, 29vw, 30rem) !important;
	padding: clamp(3rem, 4vw, 4rem) clamp(1.55rem, 2.3vw, 2.2rem) clamp(1.35rem, 2vw, 1.8rem) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
	box-sizing: border-box !important;
}
.ds-clean-price .ds-clean-star-photo {
	position: absolute !important;
	top: 0 !important;
	right: clamp(1rem, 2vw, 1.7rem) !important;
	width: clamp(9.5rem, 11vw, 12.5rem) !important;
	height: clamp(9.5rem, 11vw, 12.5rem) !important;
	transform: translateY(-43%) !important;
	z-index: 2 !important;
}
.ds-clean-price__label {
	margin: 0 !important;
	font-size: clamp(.72rem, .9vw, .86rem) !important;
	line-height: 1.1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: #fff !important;
}
.ds-clean-price__grid {
	display: grid !important;
	gap: 0 !important;
}
.ds-clean-price__row {
	display: grid !important;
	gap: .25rem !important;
	padding: .7rem 0 !important;
	border-top: 1px solid rgba(255,255,255,.34) !important;
}
.ds-clean-price__row:first-child {
	border-top: 0 !important;
	padding-top: 0 !important;
}
.ds-clean-price__row span {
	font-size: clamp(.62rem, .76vw, .72rem) !important;
	line-height: 1.12 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 760 !important;
	color: rgba(255,255,255,.78) !important;
}
.ds-clean-price__row strong {
	font-size: clamp(1.08rem, 1.55vw, 1.45rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 720 !important;
	color: #fff !important;
}
.ds-clean-price__button {
	width: 100% !important;
	margin-top: auto !important;
	padding: .9rem 1.1rem !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
	line-height: 1.1 !important;
	font-weight: 760 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

/* Shared pattern spacing */
.ds-template-clean .ds-testimonial-section,
.ds-template-clean .ds-cta-band,
.ds-clean-blog {
	margin-top: 42px !important;
}

/* Clean blog, also home blog */
.ds-clean-blog,
.ds-home-clean .ds-blog-section,
.ds-home-clean .ds-home-blog {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: clamp(3rem, 5vw, 4.5rem) 0 !important;
}
.ds-clean-blog__label,
.ds-clean-blog h2,
.ds-home-clean .ds-blog-section h2,
.ds-home-clean .ds-home-blog h2 {
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
	font-size: clamp(.82rem, 1.1vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	max-width: 100% !important;
}
.ds-clean-blog .ds-blog-empty,
.ds-home-clean .ds-blog-empty {
	font-size: clamp(.95rem, 1.2vw, 1.08rem) !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.ds-clean-blog .ds-blog-overlay-track,
.ds-home-clean .ds-blog-overlay-track {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.1rem, 2vw, 1.8rem) !important;
	transform: none !important;
}
.ds-clean-blog .ds-blog-overlay-card,
.ds-home-clean .ds-blog-overlay-card {
	background: transparent !important;
	min-height: 0 !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
}
.ds-clean-blog .ds-blog-overlay-card:nth-child(n+4),
.ds-home-clean .ds-blog-overlay-card:nth-child(n+13) {
	display: none !important;
}
.ds-clean-blog .ds-blog-overlay-card-link,
.ds-home-clean .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	height: clamp(9rem, 11.5vw, 12rem) !important;
	overflow: hidden !important;
	background: transparent !important;
}
.ds-clean-blog .ds-blog-overlay-image,
.ds-clean-blog .ds-blog-overlay-image img,
.ds-clean-blog .ds-blog-overlay-image-placeholder,
.ds-home-clean .ds-blog-overlay-image,
.ds-home-clean .ds-blog-overlay-image img,
.ds-home-clean .ds-blog-overlay-image-placeholder {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
.ds-clean-blog .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(247,73,0,.88) !important;
	opacity: 0 !important;
	transition: opacity .18s ease !important;
}
.ds-clean-blog .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}
.ds-clean-blog .ds-blog-overlay-controls {
	display: none !important;
}

/* About bounded */
.ds-about-clean,
.ds-about-clean-block,
body.page-ueber-doris,
body.page-template-page-ueber-doris {
	overflow-x: hidden !important;
}
.ds-about-clean *,
.ds-about-clean-block *,
body.page-ueber-doris main *,
body.page-template-page-ueber-doris main * {
	box-sizing: border-box !important;
	max-width: 100%;
}
.ds-about-clean-block .ds-about-hero-grid,
body.page-ueber-doris main .ds-about-hero-grid,
body.page-template-page-ueber-doris main .ds-about-hero-grid {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
}
.ds-about-clean-block .ds-about-copy,
body.page-ueber-doris main .ds-about-copy,
body.page-template-page-ueber-doris main .ds-about-copy {
	min-width: 0 !important;
}
.ds-about-clean-block .ds-about-copy h1,
body.page-ueber-doris main .ds-about-copy h1,
body.page-template-page-ueber-doris main .ds-about-copy h1 {
	max-width: 12ch !important;
	font-size: clamp(3.2rem, 8vw, 7.5rem) !important;
	line-height: .96 !important;
	letter-spacing: -.058em !important;
}
.ds-about-clean-block .ds-about-copy p,
body.page-ueber-doris main .ds-about-copy p,
body.page-template-page-ueber-doris main .ds-about-copy p {
	max-width: min(42rem, 100%) !important;
}

/* Mobile */
@media (max-width: 780px) {
	.ds-clean-hero,
	.ds-clean-card-grid,
	.ds-clean-detail,
	.ds-clean-blog,
	.ds-home-clean .ds-blog-section,
	.ds-home-clean .ds-home-blog {
		max-width: calc(100vw - 2rem) !important;
	}
	.ds-clean-hero h1 {
		font-size: clamp(3rem, 15vw, 5.2rem) !important;
		max-width: 100% !important;
	}
	.ds-clean-card-grid {
		display: flex !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		gap: 1rem !important;
		padding-bottom: 1rem !important;
	}
	.ds-clean-card {
		flex: 0 0 82vw !important;
		min-height: 28rem !important;
		scroll-snap-align: start !important;
	}
	.ds-clean-card h3 {
		font-size: clamp(1.9rem, 8vw, 2.55rem) !important;
		max-width: 100% !important;
	}
	.ds-clean-detail {
		display: flex !important;
		flex-direction: column !important;
		padding: clamp(3rem, 10vw, 4.5rem) 0 !important;
	}
	.ds-clean-detail__copy {
		order: 1 !important;
	}
	.ds-clean-detail__price {
		order: 2 !important;
		position: relative !important;
		top: auto !important;
		margin-top: 4rem !important;
	}
	.ds-clean-detail h2 {
		font-size: clamp(2.8rem, 13vw, 4.5rem) !important;
		max-width: 100% !important;
	}
	.ds-clean-price {
		max-width: 100% !important;
		min-height: 0 !important;
	}
	.ds-clean-blog .ds-blog-overlay-track,
	.ds-home-clean .ds-blog-overlay-track {
		display: flex !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory !important;
		gap: 1rem !important;
	}
	.ds-clean-blog .ds-blog-overlay-card,
	.ds-home-clean .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
		scroll-snap-align: start !important;
	}
	.ds-clean-blog .ds-blog-overlay-card-link,
	.ds-home-clean .ds-blog-overlay-card-link {
		height: clamp(9.5rem, 42vw, 13rem) !important;
	}
	.ds-about-clean-block .ds-about-hero-grid,
	body.page-ueber-doris main .ds-about-hero-grid,
	body.page-template-page-ueber-doris main .ds-about-hero-grid {
		display: block !important;
		max-width: calc(100vw - 2rem) !important;
	}
	.ds-about-clean-block .ds-about-copy h1,
	body.page-ueber-doris main .ds-about-copy h1,
	body.page-template-page-ueber-doris main .ds-about-copy h1 {
		font-size: clamp(3rem, 15vw, 5.2rem) !important;
		max-width: 100% !important;
	}
}


/* v1.83 BLOCK LIBRARY – individual reusable Gutenberg patterns */

.ds-clean-hairline {
	width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	height: 1px !important;
	background: rgba(247,73,0,.85) !important;
	margin: clamp(3rem, 6vw, 5rem) auto !important;
}

/* Make standalone inserted clean blocks behave correctly even outside ds-template-clean. */
.wp-block .ds-clean-card-grid,
.entry-content .ds-clean-card-grid,
.ds-clean-card-grid {
	scrollbar-width: thin;
	scrollbar-color: var(--ds-orange, #f74900) transparent;
}

.ds-clean-card-grid::-webkit-scrollbar,
.ds-clean-blog .ds-blog-overlay-track::-webkit-scrollbar {
	height: .45rem;
}
.ds-clean-card-grid::-webkit-scrollbar-thumb,
.ds-clean-blog .ds-blog-overlay-track::-webkit-scrollbar-thumb {
	background: var(--ds-orange, #f74900);
}
.ds-clean-card-grid::-webkit-scrollbar-track,
.ds-clean-blog .ds-blog-overlay-track::-webkit-scrollbar-track {
	background: transparent;
}

/* Editor/Frontend safety for single cards inserted alone. */
.ds-clean-card:not(.ds-clean-card-grid .ds-clean-card) {
	max-width: 24rem !important;
	margin: 0 auto !important;
}

/* Star placeholder can be replaced later by an image background. */
.ds-clean-star-photo span {
	display: block !important;
	padding: .35rem !important;
	text-align: center !important;
	font-size: .72rem !important;
	line-height: 1.1 !important;
}

/* If a real image is inserted inside the star placeholder, crop it to star. */
.ds-clean-star-photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}


/* v1.84 – BLOG AREA RESTORE
   Restore the earlier intended behaviour:
   Desktop = horizontal scrollbar with 3 cards visible.
   Mobile = swipe cards.
   Titles/overlay text = smaller and calmer.
*/

/* Blog section width/rhythm */
.ds-blog-section,
.ds-home-blog,
.ds-clean-blog,
.ds-rescue-blog,
.ds-offer-blog,
.ds-template-clean .ds-blog-section,
.ds-template-clean .ds-clean-blog,
.ds-home-clean .ds-blog-section,
.ds-home-clean .ds-home-blog {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	overflow: hidden !important;
}

/* Label/heading above blog: small, not display-size. */
.ds-blog-section h2,
.ds-home-blog h2,
.ds-clean-blog h2,
.ds-clean-blog__label,
.ds-rescue-blog__label,
.ds-offer-blog h2,
.ds-offer-blog .ds-offer-blog-label,
.ds-template-clean .ds-clean-blog__label,
.ds-template-clean .ds-blog-section h2,
.ds-home-clean .ds-blog-section h2,
.ds-home-clean .ds-home-blog h2 {
	margin: 0 0 clamp(1.2rem, 2vw, 1.8rem) !important;
	max-width: 100% !important;
	font-size: clamp(.82rem, 1.05vw, .96rem) !important;
	line-height: 1.25 !important;
	font-weight: 760 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	color: var(--ds-ink, #2a2522) !important;
}

/* The actual blog component must scroll horizontally, with three visible cards on desktop. */
.ds-blog-overlay-carousel,
.ds-blog-overlay-carousel.ds-blog-overlay-static-grid,
.ds-blog-overlay-carousel.ds-blog-compact-grid {
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow: hidden !important;
}

.ds-blog-overlay-track,
.ds-blog-overlay-static-grid .ds-blog-overlay-track,
.ds-blog-compact-grid .ds-blog-overlay-track,
.ds-blog-section .ds-blog-overlay-track,
.ds-home-blog .ds-blog-overlay-track,
.ds-clean-blog .ds-blog-overlay-track,
.ds-rescue-blog .ds-blog-overlay-track,
.ds-offer-blog .ds-blog-overlay-track,
.ds-home-clean .ds-blog-overlay-track,
.ds-template-clean .ds-blog-overlay-track {
	display: flex !important;
	flex-wrap: nowrap !important;
	grid-template-columns: none !important;
	gap: clamp(1rem, 1.8vw, 1.5rem) !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory !important;
	-webkit-overflow-scrolling: touch !important;
	transform: none !important;
	padding: 0 0 .9rem !important;
	scrollbar-width: thin !important;
	scrollbar-color: var(--ds-orange, #f74900) transparent !important;
}

/* Desktop: exactly 3 cards visible, rest scrolls. */
.ds-blog-overlay-card,
.ds-blog-section .ds-blog-overlay-card,
.ds-home-blog .ds-blog-overlay-card,
.ds-clean-blog .ds-blog-overlay-card,
.ds-rescue-blog .ds-blog-overlay-card,
.ds-offer-blog .ds-blog-overlay-card,
.ds-home-clean .ds-blog-overlay-card,
.ds-template-clean .ds-blog-overlay-card {
	flex: 0 0 calc((100% - (clamp(1rem, 1.8vw, 1.5rem) * 2)) / 3) !important;
	width: calc((100% - (clamp(1rem, 1.8vw, 1.5rem) * 2)) / 3) !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	overflow: hidden !important;
	scroll-snap-align: start !important;
	display: block !important;
}

/* Do not hide cards after nth-child; the point is scrolling. */
.ds-blog-overlay-card:nth-child(n),
.ds-clean-blog .ds-blog-overlay-card:nth-child(n),
.ds-home-clean .ds-blog-overlay-card:nth-child(n),
.ds-offer-blog .ds-blog-overlay-card:nth-child(n),
.ds-rescue-blog .ds-blog-overlay-card:nth-child(n) {
	display: block !important;
}

/* Card image tile height */
.ds-blog-overlay-card-link,
.ds-blog-section .ds-blog-overlay-card-link,
.ds-home-blog .ds-blog-overlay-card-link,
.ds-clean-blog .ds-blog-overlay-card-link,
.ds-rescue-blog .ds-blog-overlay-card-link,
.ds-offer-blog .ds-blog-overlay-card-link,
.ds-home-clean .ds-blog-overlay-card-link,
.ds-template-clean .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: clamp(10rem, 13vw, 13.5rem) !important;
	min-height: 0 !important;
	max-height: 13.5rem !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
	text-decoration: none !important;
}

/* Image fills card. */
.ds-blog-overlay-image,
.ds-blog-overlay-image img,
.ds-blog-overlay-image-placeholder,
.ds-blog-section .ds-blog-overlay-image,
.ds-blog-section .ds-blog-overlay-image img,
.ds-home-blog .ds-blog-overlay-image,
.ds-home-blog .ds-blog-overlay-image img,
.ds-clean-blog .ds-blog-overlay-image,
.ds-clean-blog .ds-blog-overlay-image img,
.ds-home-clean .ds-blog-overlay-image,
.ds-home-clean .ds-blog-overlay-image img {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center !important;
	background: transparent !important;
	display: block !important;
	overflow: hidden !important;
}

/* Overlay title: smaller, nicer, not shouty. */
.ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-title-layer,
.ds-home-blog .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-title-layer,
.ds-rescue-blog .ds-blog-overlay-title-layer,
.ds-offer-blog .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-title-layer,
.ds-template-clean .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: clamp(1rem, 1.8vw, 1.4rem) !important;
	background: rgba(247,73,0,.86) !important;
	opacity: 0 !important;
	transform: none !important;
	pointer-events: none !important;
	transition: opacity .18s ease !important;
	box-sizing: border-box !important;
}

.ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}

.ds-blog-overlay-title,
.ds-blog-section .ds-blog-overlay-title,
.ds-home-blog .ds-blog-overlay-title,
.ds-clean-blog .ds-blog-overlay-title,
.ds-rescue-blog .ds-blog-overlay-title,
.ds-offer-blog .ds-blog-overlay-title,
.ds-home-clean .ds-blog-overlay-title,
.ds-template-clean .ds-blog-overlay-title {
	margin: 0 !important;
	max-width: 18ch !important;
	color: #fff !important;
	font-size: clamp(1rem, 1.35vw, 1.35rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 650 !important;
	text-align: center !important;
	text-wrap: balance !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

/* Scrollbar styling */
.ds-blog-overlay-track::-webkit-scrollbar {
	height: .45rem !important;
}
.ds-blog-overlay-track::-webkit-scrollbar-thumb {
	background: var(--ds-orange, #f74900) !important;
}
.ds-blog-overlay-track::-webkit-scrollbar-track {
	background: transparent !important;
}

/* Controls: optional but not visually dominant. */
.ds-blog-overlay-controls {
	display: flex !important;
	justify-content: flex-end !important;
	gap: .5rem !important;
	margin-top: .75rem !important;
}

.ds-blog-overlay-static-grid .ds-blog-overlay-controls,
.ds-blog-compact-grid .ds-blog-overlay-controls,
.ds-clean-blog .ds-blog-overlay-controls,
.ds-offer-blog .ds-blog-overlay-controls {
	display: none !important;
}

/* Empty state should remain small. */
.ds-blog-empty,
.ds-clean-blog .ds-blog-empty,
.ds-offer-blog .ds-blog-empty,
.ds-home-clean .ds-blog-empty {
	font-size: clamp(.95rem, 1.15vw, 1.08rem) !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--ds-muted, #756a63) !important;
}

/* Tablet: still 2 cards visible. */
@media (min-width: 781px) and (max-width: 1020px) {
	.ds-blog-overlay-card,
	.ds-blog-section .ds-blog-overlay-card,
	.ds-home-blog .ds-blog-overlay-card,
	.ds-clean-blog .ds-blog-overlay-card,
	.ds-offer-blog .ds-blog-overlay-card,
	.ds-home-clean .ds-blog-overlay-card {
		flex-basis: calc((100% - clamp(1rem, 1.8vw, 1.5rem)) / 2) !important;
		width: calc((100% - clamp(1rem, 1.8vw, 1.5rem)) / 2) !important;
	}
}

/* Mobile: swipe cards, one strong card visible. */
@media (max-width: 780px) {
	.ds-blog-section,
	.ds-home-blog,
	.ds-clean-blog,
	.ds-rescue-blog,
	.ds-offer-blog,
	.ds-template-clean .ds-blog-section,
	.ds-template-clean .ds-clean-blog,
	.ds-home-clean .ds-blog-section,
	.ds-home-clean .ds-home-blog {
		max-width: calc(100vw - 2rem) !important;
	}

	.ds-blog-overlay-card,
	.ds-blog-section .ds-blog-overlay-card,
	.ds-home-blog .ds-blog-overlay-card,
	.ds-clean-blog .ds-blog-overlay-card,
	.ds-rescue-blog .ds-blog-overlay-card,
	.ds-offer-blog .ds-blog-overlay-card,
	.ds-home-clean .ds-blog-overlay-card,
	.ds-template-clean .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
	}

	.ds-blog-overlay-card-link,
	.ds-blog-section .ds-blog-overlay-card-link,
	.ds-home-blog .ds-blog-overlay-card-link,
	.ds-clean-blog .ds-blog-overlay-card-link,
	.ds-rescue-blog .ds-blog-overlay-card-link,
	.ds-offer-blog .ds-blog-overlay-card-link,
	.ds-home-clean .ds-blog-overlay-card-link,
	.ds-template-clean .ds-blog-overlay-card-link {
		height: clamp(9.5rem, 42vw, 13rem) !important;
		max-height: 13rem !important;
	}

	.ds-blog-overlay-title,
	.ds-blog-section .ds-blog-overlay-title,
	.ds-home-blog .ds-blog-overlay-title,
	.ds-clean-blog .ds-blog-overlay-title,
	.ds-offer-blog .ds-blog-overlay-title,
	.ds-home-clean .ds-blog-overlay-title {
		font-size: clamp(1rem, 4.6vw, 1.28rem) !important;
		max-width: 17ch !important;
	}
}


/* v1.85 – HOME BLOG FIX: existing blog section only, shortcode cards 3-up scroll */

/* Hide accidental duplicate extra blog block if an older page content still has it. */
.ds-home-blog.ds-clean-blog {
	display: none !important;
}

/* The real homepage blog section must contain full-width 3-visible card scroller. */
body.home .ds-blog-section,
body.front-page .ds-blog-section,
.ds-home-clean .ds-blog-section {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	overflow: visible !important;
}

/* Home blog text/heading stays as designed, but not huge card text. */
body.home .ds-blog-section > h2,
body.home .ds-blog-section .ds-kicker,
body.home .ds-blog-section > p,
.ds-home-clean .ds-blog-section > h2,
.ds-home-clean .ds-blog-section .ds-kicker,
.ds-home-clean .ds-blog-section > p {
	max-width: 48rem !important;
}

/* Override all previous grid/static/tiny-image states for blog shortcode on home and clean blog blocks. */
body.home .ds-blog-overlay-carousel,
body.front-page .ds-blog-overlay-carousel,
.ds-home-clean .ds-blog-overlay-carousel,
.ds-blog-section .ds-blog-overlay-carousel,
.ds-clean-blog .ds-blog-overlay-carousel {
	width: 100% !important;
	max-width: 100% !important;
	overflow: visible !important;
}

body.home .ds-blog-overlay-track,
body.front-page .ds-blog-overlay-track,
.ds-home-clean .ds-blog-overlay-track,
.ds-blog-section .ds-blog-overlay-track,
.ds-clean-blog .ds-blog-overlay-track,
.ds-blog-overlay-carousel .ds-blog-overlay-track {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	grid-template-columns: none !important;
	gap: clamp(1.1rem, 2vw, 1.8rem) !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory !important;
	-webkit-overflow-scrolling: touch !important;
	transform: none !important;
	padding: 0 0 .9rem !important;
	scrollbar-width: thin !important;
	scrollbar-color: var(--ds-orange, #f74900) transparent !important;
}

body.home .ds-blog-overlay-card,
body.front-page .ds-blog-overlay-card,
.ds-home-clean .ds-blog-overlay-card,
.ds-blog-section .ds-blog-overlay-card,
.ds-clean-blog .ds-blog-overlay-card,
.ds-blog-overlay-carousel .ds-blog-overlay-card {
	display: block !important;
	flex: 0 0 calc((100% - (clamp(1.1rem, 2vw, 1.8rem) * 2)) / 3) !important;
	width: calc((100% - (clamp(1.1rem, 2vw, 1.8rem) * 2)) / 3) !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	overflow: hidden !important;
	scroll-snap-align: start !important;
}

body.home .ds-blog-overlay-card:nth-child(n),
body.front-page .ds-blog-overlay-card:nth-child(n),
.ds-home-clean .ds-blog-overlay-card:nth-child(n),
.ds-blog-section .ds-blog-overlay-card:nth-child(n),
.ds-clean-blog .ds-blog-overlay-card:nth-child(n) {
	display: block !important;
}

body.home .ds-blog-overlay-card-link,
body.front-page .ds-blog-overlay-card-link,
.ds-home-clean .ds-blog-overlay-card-link,
.ds-blog-section .ds-blog-overlay-card-link,
.ds-clean-blog .ds-blog-overlay-card-link,
.ds-blog-overlay-carousel .ds-blog-overlay-card-link {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: clamp(13rem, 18vw, 18rem) !important;
	min-height: 13rem !important;
	max-height: 18rem !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	overflow: hidden !important;
	text-decoration: none !important;
}

/* Critical: images must fill tile, not show as tiny thumbnails. */
body.home .ds-blog-overlay-image,
body.home .ds-blog-overlay-image img,
body.home .ds-blog-overlay-image-placeholder,
body.front-page .ds-blog-overlay-image,
body.front-page .ds-blog-overlay-image img,
body.front-page .ds-blog-overlay-image-placeholder,
.ds-home-clean .ds-blog-overlay-image,
.ds-home-clean .ds-blog-overlay-image img,
.ds-home-clean .ds-blog-overlay-image-placeholder,
.ds-blog-section .ds-blog-overlay-image,
.ds-blog-section .ds-blog-overlay-image img,
.ds-blog-section .ds-blog-overlay-image-placeholder,
.ds-clean-blog .ds-blog-overlay-image,
.ds-clean-blog .ds-blog-overlay-image img,
.ds-clean-blog .ds-blog-overlay-image-placeholder,
.ds-blog-overlay-carousel .ds-blog-overlay-image,
.ds-blog-overlay-carousel .ds-blog-overlay-image img,
.ds-blog-overlay-carousel .ds-blog-overlay-image-placeholder {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover !important;
	object-position: center center !important;
	background: transparent !important;
	overflow: hidden !important;
}

/* Calm overlay typography. */
body.home .ds-blog-overlay-title-layer,
body.front-page .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-title-layer,
.ds-blog-overlay-carousel .ds-blog-overlay-title-layer {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: clamp(1rem, 1.8vw, 1.4rem) !important;
	background: rgba(247,73,0,.86) !important;
	opacity: 0 !important;
	transform: none !important;
	pointer-events: none !important;
	transition: opacity .18s ease !important;
	box-sizing: border-box !important;
}

body.home .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
body.home .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
	opacity: 1 !important;
}

body.home .ds-blog-overlay-title,
body.front-page .ds-blog-overlay-title,
.ds-home-clean .ds-blog-overlay-title,
.ds-blog-section .ds-blog-overlay-title,
.ds-clean-blog .ds-blog-overlay-title,
.ds-blog-overlay-carousel .ds-blog-overlay-title {
	margin: 0 !important;
	max-width: 18ch !important;
	color: #fff !important;
	font-size: clamp(1rem, 1.35vw, 1.35rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -.018em !important;
	font-weight: 650 !important;
	text-align: center !important;
	text-wrap: balance !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

/* Scrollbar visible enough. */
.ds-blog-overlay-track::-webkit-scrollbar {
	height: .45rem !important;
}
.ds-blog-overlay-track::-webkit-scrollbar-thumb {
	background: var(--ds-orange, #f74900) !important;
}
.ds-blog-overlay-track::-webkit-scrollbar-track {
	background: transparent !important;
}

/* Controls may remain on home if old JS needs them, but below the scroller. */
body.home .ds-blog-overlay-controls,
body.front-page .ds-blog-overlay-controls,
.ds-home-clean .ds-blog-overlay-controls,
.ds-blog-section .ds-blog-overlay-controls {
	display: flex !important;
	justify-content: center !important;
	gap: .5rem !important;
	margin-top: .75rem !important;
}

/* Mobile */
@media (max-width: 780px) {
	body.home .ds-blog-section,
	body.front-page .ds-blog-section,
	.ds-home-clean .ds-blog-section,
	.ds-clean-blog {
		max-width: calc(100vw - 2rem) !important;
	}

	body.home .ds-blog-overlay-card,
	body.front-page .ds-blog-overlay-card,
	.ds-home-clean .ds-blog-overlay-card,
	.ds-blog-section .ds-blog-overlay-card,
	.ds-clean-blog .ds-blog-overlay-card,
	.ds-blog-overlay-carousel .ds-blog-overlay-card {
		flex: 0 0 78vw !important;
		width: 78vw !important;
	}

	body.home .ds-blog-overlay-card-link,
	body.front-page .ds-blog-overlay-card-link,
	.ds-home-clean .ds-blog-overlay-card-link,
	.ds-blog-section .ds-blog-overlay-card-link,
	.ds-clean-blog .ds-blog-overlay-card-link,
	.ds-blog-overlay-carousel .ds-blog-overlay-card-link {
		height: clamp(10rem, 44vw, 13.5rem) !important;
		min-height: 10rem !important;
		max-height: 13.5rem !important;
	}

	body.home .ds-blog-overlay-title,
	body.front-page .ds-blog-overlay-title,
	.ds-home-clean .ds-blog-overlay-title,
	.ds-blog-section .ds-blog-overlay-title,
	.ds-clean-blog .ds-blog-overlay-title {
		font-size: clamp(1rem, 4.6vw, 1.28rem) !important;
		max-width: 17ch !important;
	}
}


/* v1.86 – BEAUTIFUL OFFER CARDS RESTORE
   Restore the generous earlier card feeling:
   big calm cards, fine orange top line, star-image holder on top edge,
   controlled display typography and bottom-aligned link.
*/

/* Offer card grid: generous, stable, three beautiful cards. */
.ds-clean-card-grid,
.ds-offer-clean .ds-clean-card-grid,
.ds-template-clean .ds-clean-card-grid,
.ds-massage-type-grid > .ds-grid {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto clamp(4.5rem, 7vw, 6.5rem) !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 2.2vw, 2.2rem) !important;
	align-items: stretch !important;
	overflow: visible !important;
}

/* The card itself: back to calm poster-like blocks. */
.ds-clean-card,
.ds-offer-clean .ds-clean-card,
.ds-template-clean .ds-clean-card,
.ds-massage-type-card,
.ds-pantarei-type-card,
.ds-pilates-type-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0 !important;
	min-height: clamp(34rem, 42vw, 43rem) !important;
	height: auto !important;
	padding: clamp(10.5rem, 12vw, 12.5rem) clamp(1.85rem, 2.45vw, 2.75rem) clamp(1.85rem, 2.45vw, 2.75rem) !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border: 1px solid rgba(42,37,34,.12) !important;
	border-top: 0 !important;
	text-decoration: none !important;
	overflow: visible !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
}

/* Fine top line – like the earlier visual system. */
.ds-clean-card::before,
.ds-offer-clean .ds-clean-card::before,
.ds-template-clean .ds-clean-card::before,
.ds-massage-type-card::before,
.ds-pantarei-type-card::before,
.ds-pilates-type-card::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 6px !important;
	background: var(--ds-orange, #f74900) !important;
	z-index: 1 !important;
}

/* First card orange again, but still elegant. */
.ds-clean-card-grid .ds-clean-card:nth-child(1),
.ds-offer-clean .ds-clean-card-grid .ds-clean-card:nth-child(1),
.ds-template-clean .ds-clean-card-grid .ds-clean-card:nth-child(1) {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	border-color: var(--ds-orange, #f74900) !important;
}

.ds-clean-card-grid .ds-clean-card:nth-child(1)::before,
.ds-offer-clean .ds-clean-card-grid .ds-clean-card:nth-child(1)::before,
.ds-template-clean .ds-clean-card-grid .ds-clean-card:nth-child(1)::before {
	background: rgba(255,255,255,.16) !important;
}

/* Star photo holder: visible, useful, sitting on the card edge. */
.ds-clean-card .ds-clean-star-photo,
.ds-offer-clean .ds-clean-card .ds-clean-star-photo,
.ds-template-clean .ds-clean-card .ds-clean-star-photo,
.ds-massage-type-card .ds-massage-star,
.ds-pantarei-type-card .ds-massage-star,
.ds-pilates-type-card .ds-massage-star {
	position: absolute !important;
	top: 0 !important;
	right: clamp(1.25rem, 2.3vw, 2.25rem) !important;
	width: clamp(11.8rem, 13.5vw, 15.5rem) !important;
	height: clamp(11.8rem, 13.5vw, 15.5rem) !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	transform: translateY(-38%) !important;
	z-index: 3 !important;
	display: grid !important;
	place-items: center !important;
	background: #ead8bf !important;
	color: rgba(42,37,34,.55) !important;
	font-size: .78rem !important;
	clip-path: polygon(50% 0%,58% 24%,82% 10%,75% 38%,100% 44%,75% 56%,92% 82%,63% 72%,50% 100%,37% 72%,8% 82%,25% 56%,0% 44%,25% 38%,18% 10%,42% 24%) !important;
	overflow: hidden !important;
}

.ds-clean-card:nth-child(1) .ds-clean-star-photo,
.ds-offer-clean .ds-clean-card:nth-child(1) .ds-clean-star-photo,
.ds-template-clean .ds-clean-card:nth-child(1) .ds-clean-star-photo {
	background: #f3ddc5 !important;
}

.ds-clean-star-photo span {
	display: block !important;
	text-align: center !important;
	font-size: .72rem !important;
	line-height: 1.1 !important;
	padding: .35rem !important;
}

.ds-clean-star-photo img,
.ds-massage-star img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

/* Kicker: small, confident, consistent. */
.ds-clean-card .ds-clean-kicker,
.ds-offer-clean .ds-clean-card .ds-clean-kicker,
.ds-template-clean .ds-clean-card .ds-clean-kicker,
.ds-clean-card .ds-kicker,
.ds-massage-type-card .ds-kicker,
.ds-pantarei-type-card .ds-kicker,
.ds-pilates-type-card .ds-kicker {
	margin: 0 0 clamp(1rem, 1.4vw, 1.35rem) !important;
	font-size: clamp(.76rem, .86vw, .92rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: inherit !important;
}

/* Card headline: large, beautiful, but no overflow. */
.ds-clean-card h3,
.ds-offer-clean .ds-clean-card h3,
.ds-template-clean .ds-clean-card h3,
.ds-massage-type-card h3,
.ds-pantarei-type-card h3,
.ds-pilates-type-card h3 {
	display: block !important;
	width: 100% !important;
	max-width: 12.5ch !important;
	min-width: 0 !important;
	margin: 0 0 clamp(1.35rem, 2vw, 2rem) !important;
	font-size: clamp(2.35rem, 3.35vw, 4.05rem) !important;
	line-height: 1.01 !important;
	letter-spacing: -.058em !important;
	font-weight: 400 !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
	text-wrap: balance !important;
}

/* Body text: calm, not tiny, not huge. */
.ds-clean-card p:not(.ds-clean-kicker):not(.ds-kicker):not(.ds-card-link),
.ds-offer-clean .ds-clean-card p:not(.ds-clean-kicker):not(.ds-kicker):not(.ds-card-link),
.ds-template-clean .ds-clean-card p:not(.ds-clean-kicker):not(.ds-kicker):not(.ds-card-link),
.ds-massage-type-card p:not(.ds-kicker):not(.ds-card-link),
.ds-pantarei-type-card p:not(.ds-kicker):not(.ds-card-link),
.ds-pilates-type-card p:not(.ds-kicker):not(.ds-card-link) {
	margin: 0 !important;
	max-width: 22rem !important;
	font-size: clamp(1rem, 1.16vw, 1.18rem) !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

/* Link bottom aligned, like a card CTA. */
.ds-clean-card__link,
.ds-clean-card .ds-card-link,
.ds-massage-type-card .ds-card-link,
.ds-pantarei-type-card .ds-card-link,
.ds-pilates-type-card .ds-card-link {
	margin-top: auto !important;
	padding-top: clamp(1.75rem, 2.4vw, 2.6rem) !important;
	font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
	line-height: 1.2 !important;
	text-decoration: underline !important;
	color: inherit !important;
}

/* Hover/focus: subtle, not gimmicky. */
.ds-clean-card:hover,
.ds-clean-card:focus-visible {
	transform: translateY(-2px) !important;
	outline: none !important;
}

.ds-clean-card:focus-visible {
	box-shadow: 0 0 0 3px rgba(247,73,0,.28) !important;
}

/* If card contains legacy links, keep whole-card behaviour visually clean. */
.ds-clean-card a,
.ds-massage-type-card a,
.ds-pantarei-type-card a,
.ds-pilates-type-card a {
	color: inherit !important;
}

/* Medium desktop: avoid too-large headlines. */
@media (min-width: 781px) and (max-width: 1180px) {
	.ds-clean-card,
	.ds-offer-clean .ds-clean-card,
	.ds-template-clean .ds-clean-card {
		min-height: clamp(31rem, 44vw, 38rem) !important;
		padding-top: clamp(9.5rem, 13vw, 11.5rem) !important;
	}

	.ds-clean-card h3,
	.ds-offer-clean .ds-clean-card h3,
	.ds-template-clean .ds-clean-card h3 {
		font-size: clamp(2rem, 3vw, 3.05rem) !important;
		max-width: 12ch !important;
	}

	.ds-clean-card .ds-clean-star-photo {
		width: clamp(10.5rem, 14vw, 13rem) !important;
		height: clamp(10.5rem, 14vw, 13rem) !important;
	}
}

/* Mobile: horizontal card scroller, generous but controlled. */
@media (max-width: 780px) {
	.ds-clean-card-grid,
	.ds-offer-clean .ds-clean-card-grid,
	.ds-template-clean .ds-clean-card-grid {
		max-width: calc(100vw - 2rem) !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-top: 4.4rem !important;
		padding-bottom: 1rem !important;
	}

	.ds-clean-card,
	.ds-offer-clean .ds-clean-card,
	.ds-template-clean .ds-clean-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		min-height: 32rem !important;
		padding: 8.25rem 1.45rem 1.6rem !important;
		scroll-snap-align: start !important;
	}

	.ds-clean-card .ds-clean-star-photo,
	.ds-offer-clean .ds-clean-card .ds-clean-star-photo,
	.ds-template-clean .ds-clean-card .ds-clean-star-photo {
		width: min(10.5rem, 45vw) !important;
		height: min(10.5rem, 45vw) !important;
		right: 1.1rem !important;
		transform: translateY(-42%) !important;
	}

	.ds-clean-card h3,
	.ds-offer-clean .ds-clean-card h3,
	.ds-template-clean .ds-clean-card h3 {
		font-size: clamp(2rem, 8.4vw, 2.9rem) !important;
		line-height: 1.04 !important;
		max-width: 12ch !important;
	}
}

/* Narrow: keep cards safe. */
@media (max-width: 420px) {
	.ds-clean-card,
	.ds-offer-clean .ds-clean-card,
	.ds-template-clean .ds-clean-card {
		flex-basis: 86vw !important;
		width: 86vw !important;
	}

	.ds-clean-card h3,
	.ds-offer-clean .ds-clean-card h3,
	.ds-template-clean .ds-clean-card h3 {
		font-size: clamp(1.82rem, 8vw, 2.45rem) !important;
	}
}


/* v1.87 – CLASSIC OFFER CARDS BLOCK
   A standalone Gutenberg pattern that recreates the earlier beautiful offer-card system.
   Desktop: 3 cards side by side.
   Mobile: horizontal scroller.
*/

.ds-classic-offer-cards {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto clamp(4.5rem, 7vw, 6.5rem) !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 2.2vw, 2.2rem) !important;
	align-items: stretch !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}

.ds-classic-offer-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0 !important;
	min-height: clamp(34rem, 42vw, 43rem) !important;
	height: auto !important;
	padding: clamp(10.5rem, 12vw, 12.5rem) clamp(1.85rem, 2.45vw, 2.75rem) clamp(1.85rem, 2.45vw, 2.75rem) !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border: 1px solid rgba(42,37,34,.12) !important;
	border-top: 0 !important;
	text-decoration: none !important;
	overflow: visible !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	transition: transform .18s ease !important;
}

.ds-classic-offer-card::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 6px !important;
	background: var(--ds-orange, #f74900) !important;
	z-index: 1 !important;
}

.ds-classic-offer-card--orange {
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	border-color: var(--ds-orange, #f74900) !important;
}

.ds-classic-offer-card--orange::before {
	background: rgba(255,255,255,.16) !important;
}

.ds-classic-star-photo {
	position: absolute !important;
	top: 0 !important;
	right: clamp(1.25rem, 2.3vw, 2.25rem) !important;
	width: clamp(11.8rem, 13.5vw, 15.5rem) !important;
	height: clamp(11.8rem, 13.5vw, 15.5rem) !important;
	margin: 0 !important;
	transform: translateY(-38%) !important;
	z-index: 3 !important;
	display: grid !important;
	place-items: center !important;
	background: #ead8bf !important;
	color: rgba(42,37,34,.55) !important;
	font-size: .78rem !important;
	clip-path: polygon(50% 0%,58% 24%,82% 10%,75% 38%,100% 44%,75% 56%,92% 82%,63% 72%,50% 100%,37% 72%,8% 82%,25% 56%,0% 44%,25% 38%,18% 10%,42% 24%) !important;
	overflow: hidden !important;
}

.ds-classic-offer-card--orange .ds-classic-star-photo {
	background: #f3ddc5 !important;
}

.ds-classic-star-photo span {
	display: block !important;
	text-align: center !important;
	font-size: .72rem !important;
	line-height: 1.1 !important;
	padding: .35rem !important;
}

.ds-classic-star-photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

.ds-classic-card-kicker {
	margin: 0 0 clamp(1rem, 1.4vw, 1.35rem) !important;
	font-size: clamp(.76rem, .86vw, .92rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: inherit !important;
}

.ds-classic-offer-card h3 {
	display: block !important;
	width: 100% !important;
	max-width: 12.5ch !important;
	min-width: 0 !important;
	margin: 0 0 clamp(1.35rem, 2vw, 2rem) !important;
	font-size: clamp(2.35rem, 3.35vw, 4.05rem) !important;
	line-height: 1.01 !important;
	letter-spacing: -.058em !important;
	font-weight: 400 !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
	text-wrap: balance !important;
}

.ds-classic-offer-card p:not(.ds-classic-card-kicker) {
	margin: 0 !important;
	max-width: 22rem !important;
	font-size: clamp(1rem, 1.16vw, 1.18rem) !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

.ds-classic-card-link {
	margin-top: auto !important;
	padding-top: clamp(1.75rem, 2.4vw, 2.6rem) !important;
	font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
	line-height: 1.2 !important;
	text-decoration: underline !important;
	color: inherit !important;
}

.ds-classic-offer-card:hover,
.ds-classic-offer-card:focus-visible {
	transform: translateY(-2px) !important;
	outline: none !important;
}

.ds-classic-offer-card:focus-visible {
	box-shadow: 0 0 0 3px rgba(247,73,0,.28) !important;
}

/* Medium desktop / smaller laptops. */
@media (min-width: 781px) and (max-width: 1180px) {
	.ds-classic-offer-card {
		min-height: clamp(31rem, 44vw, 38rem) !important;
		padding-top: clamp(9.5rem, 13vw, 11.5rem) !important;
	}

	.ds-classic-offer-card h3 {
		font-size: clamp(2rem, 3vw, 3.05rem) !important;
		max-width: 12ch !important;
	}

	.ds-classic-star-photo {
		width: clamp(10.5rem, 14vw, 13rem) !important;
		height: clamp(10.5rem, 14vw, 13rem) !important;
	}
}

/* Mobile: horizontal scrollbar/swipebar. */
@media (max-width: 780px) {
	.ds-classic-offer-cards {
		max-width: calc(100vw - 2rem) !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-top: 4.4rem !important;
		padding-bottom: 1rem !important;
		scrollbar-width: thin !important;
		scrollbar-color: var(--ds-orange, #f74900) transparent !important;
	}

	.ds-classic-offer-cards::-webkit-scrollbar {
		height: .45rem !important;
	}

	.ds-classic-offer-cards::-webkit-scrollbar-thumb {
		background: var(--ds-orange, #f74900) !important;
	}

	.ds-classic-offer-cards::-webkit-scrollbar-track {
		background: transparent !important;
	}

	.ds-classic-offer-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		min-height: 32rem !important;
		padding: 8.25rem 1.45rem 1.6rem !important;
		scroll-snap-align: start !important;
	}

	.ds-classic-star-photo {
		width: min(10.5rem, 45vw) !important;
		height: min(10.5rem, 45vw) !important;
		right: 1.1rem !important;
		transform: translateY(-42%) !important;
	}

	.ds-classic-offer-card h3 {
		font-size: clamp(2rem, 8.4vw, 2.9rem) !important;
		line-height: 1.04 !important;
		max-width: 12ch !important;
	}
}

@media (max-width: 420px) {
	.ds-classic-offer-card {
		flex-basis: 86vw !important;
		width: 86vw !important;
	}

	.ds-classic-offer-card h3 {
		font-size: clamp(1.82rem, 8vw, 2.45rem) !important;
	}
}


/* v1.88 – OFFER CARDS CORRECTED
   No permanently orange first card.
   All cards warm-beige with orange full-card hover/focus overlay.
   Entire card is clickable.
*/

/* Layout: desktop 3 side by side, mobile scroller. */
.ds-classic-offer-cards,
.ds-clean-card-grid {
	max-width: min(1180px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto clamp(4.5rem, 7vw, 6.5rem) !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 2.2vw, 2.2rem) !important;
	align-items: stretch !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}

/* Card base: all warm beige, never permanently orange. */
.ds-classic-offer-card,
.ds-clean-card,
.ds-classic-offer-card--orange,
.ds-clean-card-grid .ds-clean-card:nth-child(1),
.ds-offer-clean .ds-clean-card-grid .ds-clean-card:nth-child(1),
.ds-template-clean .ds-clean-card-grid .ds-clean-card:nth-child(1) {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0 !important;
	min-height: clamp(29rem, 36vw, 36rem) !important;
	height: auto !important;
	padding: clamp(9.6rem, 11vw, 11.5rem) clamp(1.85rem, 2.45vw, 2.75rem) clamp(1.85rem, 2.45vw, 2.75rem) !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border: 1px solid rgba(42,37,34,.12) !important;
	border-top: 0 !important;
	text-decoration: none !important;
	overflow: visible !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	transition: transform .18s ease, color .18s ease !important;
}

/* Fine orange top line. */
.ds-classic-offer-card::before,
.ds-clean-card::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 6px !important;
	background: var(--ds-orange, #f74900) !important;
	z-index: 1 !important;
}

/* Full orange hover overlay behind content. */
.ds-classic-offer-card::after,
.ds-clean-card::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: var(--ds-orange, #f74900) !important;
	opacity: 0 !important;
	z-index: 0 !important;
	transition: opacity .18s ease !important;
	pointer-events: none !important;
}

/* Make every direct child sit above overlay. */
.ds-classic-offer-card > *,
.ds-clean-card > * {
	position: relative !important;
	z-index: 2 !important;
}

/* Hover/focus behaviour: entire card gets orange overlay and text becomes white. */
.ds-classic-offer-card:hover,
.ds-classic-offer-card:focus-visible,
.ds-clean-card:hover,
.ds-clean-card:focus-visible {
	color: #fff !important;
	transform: translateY(-2px) !important;
	outline: none !important;
}

.ds-classic-offer-card:hover::after,
.ds-classic-offer-card:focus-visible::after,
.ds-clean-card:hover::after,
.ds-clean-card:focus-visible::after {
	opacity: 1 !important;
}

.ds-classic-offer-card:focus-visible,
.ds-clean-card:focus-visible {
	box-shadow: 0 0 0 3px rgba(247,73,0,.28) !important;
}

/* Star holder: large, beautiful, on upper edge. */
.ds-classic-star-photo,
.ds-clean-card .ds-clean-star-photo {
	position: absolute !important;
	top: 0 !important;
	right: clamp(1.25rem, 2.3vw, 2.25rem) !important;
	width: clamp(11.2rem, 13vw, 14.5rem) !important;
	height: clamp(11.2rem, 13vw, 14.5rem) !important;
	margin: 0 !important;
	transform: translateY(-38%) !important;
	z-index: 3 !important;
	display: grid !important;
	place-items: center !important;
	background: #ead8bf !important;
	color: rgba(42,37,34,.55) !important;
	font-size: .78rem !important;
	clip-path: polygon(50% 0%,58% 24%,82% 10%,75% 38%,100% 44%,75% 56%,92% 82%,63% 72%,50% 100%,37% 72%,8% 82%,25% 56%,0% 44%,25% 38%,18% 10%,42% 24%) !important;
	overflow: hidden !important;
}

.ds-classic-offer-card:hover .ds-classic-star-photo,
.ds-classic-offer-card:focus-visible .ds-classic-star-photo,
.ds-clean-card:hover .ds-clean-star-photo,
.ds-clean-card:focus-visible .ds-clean-star-photo {
	background: #f3ddc5 !important;
	color: rgba(42,37,34,.62) !important;
}

/* Real images inside star placeholder. */
.ds-classic-star-photo img,
.ds-clean-star-photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

.ds-classic-star-photo span,
.ds-clean-star-photo span {
	display: block !important;
	text-align: center !important;
	font-size: .72rem !important;
	line-height: 1.1 !important;
	padding: .35rem !important;
}

/* Kicker */
.ds-classic-card-kicker,
.ds-clean-card .ds-clean-kicker,
.ds-clean-card .ds-kicker {
	margin: 0 0 clamp(1rem, 1.4vw, 1.35rem) !important;
	font-size: clamp(.76rem, .86vw, .92rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: inherit !important;
}

/* Headline: beautiful but safe. */
.ds-classic-offer-card h3,
.ds-clean-card h3 {
	display: block !important;
	width: 100% !important;
	max-width: 12.5ch !important;
	min-width: 0 !important;
	margin: 0 0 clamp(1.35rem, 2vw, 2rem) !important;
	font-size: clamp(2.15rem, 3vw, 3.55rem) !important;
	line-height: 1.02 !important;
	letter-spacing: -.055em !important;
	font-weight: 400 !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	hyphens: auto !important;
	text-wrap: balance !important;
}

/* Body text. */
.ds-classic-offer-card p:not(.ds-classic-card-kicker),
.ds-clean-card p:not(.ds-clean-kicker):not(.ds-kicker):not(.ds-card-link) {
	margin: 0 !important;
	max-width: 22rem !important;
	font-size: clamp(1rem, 1.14vw, 1.16rem) !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	color: inherit !important;
	overflow-wrap: break-word !important;
	hyphens: auto !important;
}

/* Bottom link. */
.ds-classic-card-link,
.ds-clean-card__link,
.ds-clean-card .ds-card-link {
	margin-top: auto !important;
	padding-top: clamp(1.75rem, 2.4vw, 2.6rem) !important;
	font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
	line-height: 1.2 !important;
	text-decoration: underline !important;
	color: inherit !important;
}

/* Medium screens */
@media (min-width: 781px) and (max-width: 1180px) {
	.ds-classic-offer-card,
	.ds-clean-card,
	.ds-classic-offer-card--orange,
	.ds-clean-card-grid .ds-clean-card:nth-child(1) {
		min-height: clamp(28rem, 40vw, 34rem) !important;
		padding-top: clamp(8.8rem, 12vw, 10.5rem) !important;
	}

	.ds-classic-offer-card h3,
	.ds-clean-card h3 {
		font-size: clamp(1.95rem, 2.85vw, 2.85rem) !important;
		max-width: 12ch !important;
	}

	.ds-classic-star-photo,
	.ds-clean-card .ds-clean-star-photo {
		width: clamp(10.2rem, 13vw, 12.5rem) !important;
		height: clamp(10.2rem, 13vw, 12.5rem) !important;
	}
}

/* Mobile: horizontal scrollbar/swipebar. */
@media (max-width: 780px) {
	.ds-classic-offer-cards,
	.ds-clean-card-grid {
		max-width: calc(100vw - 2rem) !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-top: 4.4rem !important;
		padding-bottom: 1rem !important;
		scrollbar-width: thin !important;
		scrollbar-color: var(--ds-orange, #f74900) transparent !important;
	}

	.ds-classic-offer-cards::-webkit-scrollbar,
	.ds-clean-card-grid::-webkit-scrollbar {
		height: .45rem !important;
	}

	.ds-classic-offer-cards::-webkit-scrollbar-thumb,
	.ds-clean-card-grid::-webkit-scrollbar-thumb {
		background: var(--ds-orange, #f74900) !important;
	}

	.ds-classic-offer-card,
	.ds-clean-card,
	.ds-classic-offer-card--orange,
	.ds-clean-card-grid .ds-clean-card:nth-child(1) {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		min-height: 30rem !important;
		padding: 8rem 1.45rem 1.6rem !important;
		scroll-snap-align: start !important;
	}

	.ds-classic-star-photo,
	.ds-clean-card .ds-clean-star-photo {
		width: min(10.2rem, 44vw) !important;
		height: min(10.2rem, 44vw) !important;
		right: 1.1rem !important;
		transform: translateY(-42%) !important;
	}

	.ds-classic-offer-card h3,
	.ds-clean-card h3 {
		font-size: clamp(1.95rem, 8vw, 2.65rem) !important;
		line-height: 1.04 !important;
		max-width: 12ch !important;
	}
}


/* v1.89 – rounded offer-detail stars, focal-image placeholders, consistent offer patterns */
.ds-classic-star-photo,
.ds-clean-star-photo,
.ds-clean-price .ds-clean-star-photo,
.ds-clean-card .ds-clean-star-photo {
	clip-path: none !important;
	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;
	-webkit-mask-size: 100% 100% !important;
	mask-size: 100% 100% !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
}

.ds-clean-list li {
	padding-left: 2.15rem !important;
}

.ds-clean-list li::before {
	content: "" !important;
	width: 1rem !important;
	height: 1rem !important;
	top: .22rem !important;
	left: 0 !important;
	background: var(--ds-orange, #f74900) !important;
	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;
	-webkit-mask-size: 100% 100% !important;
	mask-size: 100% 100% !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	font-size: 0 !important;
}

.ds-clean-price__button {
	display: block !important;
	padding: 0 !important;
	background: transparent !important;
}

.ds-clean-price__button a {
	display: block !important;
	width: 100% !important;
	padding: .9rem 1.1rem !important;
	background: #fff !important;
	color: var(--ds-orange, #f74900) !important;
	font-size: clamp(.96rem, 1.05vw, 1.08rem) !important;
	line-height: 1.1 !important;
	font-weight: 760 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

.ds-classic-offer-card .wp-block-doris-focal-image,
.ds-clean-price .wp-block-doris-focal-image {
	margin: 0 !important;
}

/* v1.90 – Offer cards: equal height, aligned content rhythm, slightly larger stars, cleaner 12-column desktop grid */
.ds-classic-offer-cards,
.wp-block-group.ds-classic-offer-cards {
	max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: 0 auto clamp(4.5rem, 7vw, 6.5rem) !important;
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	column-gap: clamp(1.2rem, 1.8vw, 2rem) !important;
	row-gap: clamp(1.5rem, 2vw, 2rem) !important;
	align-items: stretch !important;
	overflow: visible !important;
}

.ds-classic-offer-cards > .ds-classic-offer-card,
.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
.ds-classic-offer-cards > .ds-service-card,
.ds-classic-offer-cards > .wp-block-group.ds-service-card,
.wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
.wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-service-card {
	grid-column: span 4 !important;
}

.ds-classic-offer-card,
.wp-block-group.ds-classic-offer-card,
.ds-classic-offer-card.ds-service-card,
.wp-block-group.ds-classic-offer-card.ds-service-card {
	position: relative !important;
	display: grid !important;
	grid-template-rows: auto minmax(2.8rem, auto) minmax(10.5rem, auto) minmax(8.25rem, 1fr) auto !important;
	align-content: stretch !important;
	min-height: clamp(32rem, 36vw, 35.5rem) !important;
	height: 100% !important;
	padding: clamp(8.9rem, 10vw, 10.2rem) clamp(2rem, 2.2vw, 2.5rem) clamp(2rem, 2.3vw, 2.4rem) !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border: 1px solid rgba(42,37,34,.12) !important;
	border-top: 0 !important;
	box-sizing: border-box !important;
	overflow: visible !important;
}

.ds-classic-offer-card > .ds-classic-card-kicker,
.wp-block-group.ds-classic-offer-card > .ds-classic-card-kicker,
.ds-classic-offer-card > p.ds-classic-card-kicker {
	align-self: end !important;
	margin: 0 0 clamp(1rem, 1.3vw, 1.2rem) !important;
}

.ds-classic-offer-card > h3,
.wp-block-group.ds-classic-offer-card > h3,
.ds-classic-offer-card h3.wp-block-heading {
	align-self: start !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 3.9em !important;
	margin: 0 0 clamp(1.2rem, 1.8vw, 1.6rem) !important;
	font-size: clamp(2.35rem, 2.8vw, 3.15rem) !important;
	line-height: .97 !important;
	letter-spacing: -.05em !important;
	font-weight: 400 !important;
	hyphens: none !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	text-wrap: pretty !important;
}

.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
.wp-block-group.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
.ds-classic-offer-card > .wp-block-paragraph:not(.ds-classic-card-kicker):not(.ds-card-link) {
	align-self: start !important;
	max-width: 19.5rem !important;
	margin: 0 !important;
	font-size: clamp(1rem, 1.04vw, 1.1rem) !important;
	line-height: 1.5 !important;
	hyphens: none !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
}

.ds-classic-offer-card > .ds-card-link,
.ds-classic-offer-card > .ds-classic-card-link,
.wp-block-group.ds-classic-offer-card > .ds-card-link,
.wp-block-group.ds-classic-offer-card > .ds-classic-card-link {
	align-self: end !important;
	margin-top: auto !important;
	padding-top: clamp(1.5rem, 2.1vw, 2rem) !important;
}

.ds-classic-star-photo,
.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
	position: absolute !important;
	top: 0 !important;
	right: clamp(1.1rem, 2vw, 1.85rem) !important;
	width: clamp(11.8rem, 12vw, 13.2rem) !important;
	height: clamp(11.8rem, 12vw, 13.2rem) !important;
	transform: translateY(-36%) !important;
	margin: 0 !important;
	z-index: 3 !important;
}

.ds-classic-star-photo img,
.ds-classic-offer-card .wp-block-doris-focal-image img {
	object-fit: cover !important;
	object-position: 50% 35% !important;
}

@media (min-width: 781px) and (max-width: 1120px) {
	.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-card.ds-service-card,
	.wp-block-group.ds-classic-offer-card.ds-service-card {
		padding: clamp(8.2rem, 10vw, 9.2rem) 1.55rem 1.65rem !important;
		min-height: 30rem !important;
		grid-template-rows: auto minmax(2.6rem, auto) minmax(9.5rem, auto) minmax(8rem, 1fr) auto !important;
	}

	.ds-classic-offer-card > h3,
	.wp-block-group.ds-classic-offer-card > h3,
	.ds-classic-offer-card h3.wp-block-heading {
		font-size: clamp(2.05rem, 2.4vw, 2.55rem) !important;
		min-height: 4.1em !important;
	}

	.ds-classic-star-photo,
	.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
	.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
		width: clamp(10.6rem, 12vw, 11.6rem) !important;
		height: clamp(10.6rem, 12vw, 11.6rem) !important;
	}
}

@media (max-width: 780px) {
	.ds-classic-offer-cards,
	.wp-block-group.ds-classic-offer-cards {
		max-width: calc(100vw - 2rem) !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-top: 4.4rem !important;
		padding-bottom: 1rem !important;
	}

	.ds-classic-offer-cards > .ds-classic-offer-card,
	.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-cards > .ds-service-card,
	.ds-classic-offer-cards > .wp-block-group.ds-service-card,
	.wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-service-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
	}

	.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-card.ds-service-card,
	.wp-block-group.ds-classic-offer-card.ds-service-card {
		min-height: 31rem !important;
		padding: 8rem 1.45rem 1.6rem !important;
		grid-template-rows: auto minmax(2.5rem, auto) minmax(8.4rem, auto) minmax(7rem, 1fr) auto !important;
		scroll-snap-align: start !important;
	}

	.ds-classic-offer-card > h3,
	.wp-block-group.ds-classic-offer-card > h3,
	.ds-classic-offer-card h3.wp-block-heading {
		font-size: clamp(1.95rem, 8vw, 2.55rem) !important;
		min-height: auto !important;
	}

	.ds-classic-star-photo,
	.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
	.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
		width: min(10.5rem, 44vw) !important;
		height: min(10.5rem, 44vw) !important;
		right: 1rem !important;
		transform: translateY(-38%) !important;
	}
}

/* v1.91 – Blog overlay headings: allow a wider text run, softer wrapping */
.ds-blog-overlay-title,
.ds-blog-section .ds-blog-overlay-title,
.ds-home-blog .ds-blog-overlay-title,
.ds-clean-blog .ds-blog-overlay-title,
.ds-rescue-blog .ds-blog-overlay-title,
.ds-offer-blog .ds-blog-overlay-title,
.ds-home-clean .ds-blog-overlay-title,
.ds-template-clean .ds-blog-overlay-title,
body.home .ds-blog-overlay-title,
body.front-page .ds-blog-overlay-title,
.ds-blog-overlay-carousel .ds-blog-overlay-title {
	max-width: 24ch !important;
	font-size: clamp(1rem, 1.18vw, 1.22rem) !important;
	line-height: 1.14 !important;
	text-wrap: pretty !important;
	hyphens: none !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
}

.ds-blog-overlay-title-layer,
.ds-blog-section .ds-blog-overlay-title-layer,
.ds-home-blog .ds-blog-overlay-title-layer,
.ds-clean-blog .ds-blog-overlay-title-layer,
.ds-rescue-blog .ds-blog-overlay-title-layer,
.ds-offer-blog .ds-blog-overlay-title-layer,
.ds-home-clean .ds-blog-overlay-title-layer,
.ds-template-clean .ds-blog-overlay-title-layer,
body.home .ds-blog-overlay-title-layer,
body.front-page .ds-blog-overlay-title-layer,
.ds-blog-overlay-carousel .ds-blog-overlay-title-layer {
	padding-inline: clamp(1.25rem, 2.4vw, 2rem) !important;
}

@media (max-width: 780px) {
	.ds-blog-overlay-title,
	.ds-blog-section .ds-blog-overlay-title,
	.ds-home-blog .ds-blog-overlay-title,
	.ds-clean-blog .ds-blog-overlay-title,
	.ds-rescue-blog .ds-blog-overlay-title,
	.ds-offer-blog .ds-blog-overlay-title,
	.ds-home-clean .ds-blog-overlay-title,
	.ds-template-clean .ds-blog-overlay-title,
	body.home .ds-blog-overlay-title,
	body.front-page .ds-blog-overlay-title,
	.ds-blog-overlay-carousel .ds-blog-overlay-title {
		max-width: 21ch !important;
		font-size: clamp(1rem, 4vw, 1.18rem) !important;
		line-height: 1.16 !important;
	}
}

/* v1.92 – Offer cards slightly less tall while keeping equal heights and aligned content */
@media (min-width: 781px) {
	.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-card.ds-service-card,
	.wp-block-group.ds-classic-offer-card.ds-service-card {
		grid-template-rows: auto minmax(2.4rem, auto) minmax(8.2rem, auto) minmax(6.2rem, 1fr) auto !important;
		min-height: clamp(28.25rem, 31vw, 31rem) !important;
		padding: clamp(7.6rem, 8.4vw, 8.6rem) clamp(1.9rem, 2.1vw, 2.35rem) clamp(1.8rem, 2vw, 2.15rem) !important;
	}

	.ds-classic-offer-card > h3,
		.wp-block-group.ds-classic-offer-card > h3,
		.ds-classic-offer-card h3.wp-block-heading {
		font-size: clamp(2.15rem, 2.45vw, 2.85rem) !important;
		min-height: 3.2em !important;
		margin-bottom: clamp(1rem, 1.45vw, 1.35rem) !important;
	}

	.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
		.wp-block-group.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
		.ds-classic-offer-card > .wp-block-paragraph:not(.ds-classic-card-kicker):not(.ds-card-link) {
		font-size: clamp(.98rem, 1vw, 1.06rem) !important;
		line-height: 1.48 !important;
	}

	.ds-classic-star-photo,
		.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
		.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
		width: clamp(11.25rem, 11vw, 12.1rem) !important;
		height: clamp(11.25rem, 11vw, 12.1rem) !important;
		transform: translateY(-34%) !important;
	}
}

@media (min-width: 781px) and (max-width: 1120px) {
	.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-card.ds-service-card,
	.wp-block-group.ds-classic-offer-card.ds-service-card {
		min-height: 27.5rem !important;
		padding: 7.2rem 1.45rem 1.45rem !important;
		grid-template-rows: auto minmax(2.2rem, auto) minmax(7.4rem, auto) minmax(5.8rem, 1fr) auto !important;
	}

	.ds-classic-offer-card > h3,
		.wp-block-group.ds-classic-offer-card > h3,
		.ds-classic-offer-card h3.wp-block-heading {
		font-size: clamp(1.95rem, 2.35vw, 2.35rem) !important;
		min-height: 3.4em !important;
	}

	.ds-classic-star-photo,
		.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
		.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
		width: clamp(10.2rem, 10vw, 11rem) !important;
		height: clamp(10.2rem, 10vw, 11rem) !important;
	}
}

@media (max-width: 780px) {
	.ds-classic-offer-card,
	.wp-block-group.ds-classic-offer-card,
	.ds-classic-offer-card.ds-service-card,
	.wp-block-group.ds-classic-offer-card.ds-service-card {
		min-height: 28rem !important;
		padding: 7.2rem 1.35rem 1.4rem !important;
		grid-template-rows: auto minmax(2.3rem, auto) minmax(7.2rem, auto) minmax(5.5rem, 1fr) auto !important;
	}

	.ds-classic-offer-card > h3,
		.wp-block-group.ds-classic-offer-card > h3,
		.ds-classic-offer-card h3.wp-block-heading {
		font-size: clamp(1.9rem, 7.1vw, 2.35rem) !important;
		min-height: auto !important;
	}

	.ds-classic-star-photo,
		.ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
		.ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
		width: min(10rem, 42vw) !important;
		height: min(10rem, 42vw) !important;
		transform: translateY(-34%) !important;
	}
}


/* v1.93 – FORCE OFFER CARDS THREE-COLUMN DESKTOP GRID
   Desktop: 12-column grid, 3 cards x 4 columns.
   Mobile only: horizontal scroller.
*/

@media (min-width: 781px) {
	body .ds-classic-offer-cards,
	body .wp-block-group.ds-classic-offer-cards,
	body .entry-content .ds-classic-offer-cards,
	body .is-layout-constrained > .ds-classic-offer-cards,
	body .is-layout-flow > .ds-classic-offer-cards {
		width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		display: grid !important;
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
		grid-auto-flow: row !important;
		grid-auto-columns: unset !important;
		column-gap: clamp(1.2rem, 1.8vw, 2rem) !important;
		row-gap: clamp(1.5rem, 2vw, 2rem) !important;
		align-items: stretch !important;
		justify-items: stretch !important;
		overflow: visible !important;
		padding-top: clamp(4.4rem, 5.6vw, 5.6rem) !important;
		padding-bottom: 0 !important;
	}

	body .ds-classic-offer-cards > *,
	body .wp-block-group.ds-classic-offer-cards > *,
	body .entry-content .ds-classic-offer-cards > * {
		grid-column: span 4 !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		flex: initial !important;
		float: none !important;
	}

	body .ds-classic-offer-cards > .ds-classic-offer-card,
	body .ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
	body .wp-block-group.ds-classic-offer-cards > .ds-classic-offer-card,
	body .wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card {
		display: grid !important;
		height: 100% !important;
		min-height: clamp(28.25rem, 31vw, 31rem) !important;
		box-sizing: border-box !important;
	}

	body .ds-classic-offer-cards::before,
	body .ds-classic-offer-cards::after,
	body .wp-block-group.ds-classic-offer-cards::before,
	body .wp-block-group.ds-classic-offer-cards::after {
		display: none !important;
		content: none !important;
	}
}

@media (max-width: 780px) {
	body .ds-classic-offer-cards,
	body .wp-block-group.ds-classic-offer-cards {
		display: flex !important;
		flex-wrap: nowrap !important;
		width: calc(100vw - 2rem) !important;
		max-width: calc(100vw - 2rem) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body .ds-classic-offer-cards > *,
	body .wp-block-group.ds-classic-offer-cards > * {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		max-width: 82vw !important;
		scroll-snap-align: start !important;
	}
}


/* v1.94 – strict equal offer cards: stronger internal rhythm and equal heights */
@media (min-width: 781px) {
  body .ds-classic-offer-cards,
  body .wp-block-group.ds-classic-offer-cards {
    align-items: stretch !important;
  }

  body .ds-classic-offer-cards > .ds-classic-offer-card,
  body .ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .ds-classic-offer-cards > .ds-service-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-service-card {
    min-height: 29.25rem !important;
    height: 100% !important;
    display: grid !important;
    grid-template-rows: 2.1rem 6.4rem 6.8rem 1fr auto !important;
    align-content: stretch !important;
    padding: 7.5rem 1.9rem 1.85rem !important;
  }

  body .ds-classic-offer-card > .ds-classic-card-kicker,
  body .wp-block-group.ds-classic-offer-card > .ds-classic-card-kicker,
  body .ds-classic-offer-card > p.ds-classic-card-kicker {
    min-height: 2.1rem !important;
    align-self: start !important;
    margin: 0 0 0.95rem !important;
  }

  body .ds-classic-offer-card > h3,
  body .wp-block-group.ds-classic-offer-card > h3,
  body .ds-classic-offer-card h3.wp-block-heading {
    min-height: 6.4rem !important;
    max-height: 6.4rem !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    margin: 0 !important;
    font-size: clamp(2.05rem, 2.35vw, 2.7rem) !important;
    line-height: 1 !important;
    text-wrap: balance !important;
  }

  body .ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .wp-block-group.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .ds-classic-offer-card > .wp-block-paragraph:not(.ds-classic-card-kicker):not(.ds-card-link) {
    min-height: 6.8rem !important;
    max-height: 6.8rem !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    margin: 0 !important;
    font-size: clamp(.98rem, 1vw, 1.06rem) !important;
    line-height: 1.42 !important;
  }

  body .ds-classic-offer-card > .ds-card-link,
  body .ds-classic-offer-card > .ds-classic-card-link,
  body .wp-block-group.ds-classic-offer-card > .ds-card-link,
  body .wp-block-group.ds-classic-offer-card > .ds-classic-card-link {
    align-self: end !important;
    margin-top: auto !important;
    padding-top: 1.4rem !important;
  }

  body .ds-classic-star-photo,
  body .ds-classic-offer-card .wp-block-doris-focal-image.ds-classic-star-photo,
  body .ds-classic-offer-card .ds-classic-star-photo.wp-block-doris-focal-image {
    width: clamp(11.4rem, 11.1vw, 12.2rem) !important;
    height: clamp(11.4rem, 11.1vw, 12.2rem) !important;
    right: 1.35rem !important;
    transform: translateY(-33%) !important;
  }
}

@media (min-width: 781px) and (max-width: 1120px) {
  body .ds-classic-offer-cards > .ds-classic-offer-card,
  body .ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .ds-classic-offer-cards > .ds-service-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-service-card {
    min-height: 28.1rem !important;
    grid-template-rows: 2rem 5.7rem 6.2rem 1fr auto !important;
    padding: 7rem 1.5rem 1.55rem !important;
  }

  body .ds-classic-offer-card > h3,
  body .wp-block-group.ds-classic-offer-card > h3,
  body .ds-classic-offer-card h3.wp-block-heading {
    min-height: 5.7rem !important;
    max-height: 5.7rem !important;
    font-size: clamp(1.9rem, 2.15vw, 2.25rem) !important;
  }

  body .ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .wp-block-group.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .ds-classic-offer-card > .wp-block-paragraph:not(.ds-classic-card-kicker):not(.ds-card-link) {
    min-height: 6.2rem !important;
    max-height: 6.2rem !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
  }
}

@media (max-width: 780px) {
  body .ds-classic-offer-cards > .ds-classic-offer-card,
  body .ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-classic-offer-card,
  body .wp-block-group.ds-classic-offer-cards > .wp-block-group.ds-classic-offer-card,
  body .ds-classic-offer-cards > .ds-service-card,
  body .wp-block-group.ds-classic-offer-cards > .ds-service-card {
    min-height: 27.2rem !important;
    grid-template-rows: auto auto auto 1fr auto !important;
    padding: 7rem 1.35rem 1.4rem !important;
  }

  body .ds-classic-offer-card > h3,
  body .wp-block-group.ds-classic-offer-card > h3,
  body .ds-classic-offer-card h3.wp-block-heading,
  body .ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .wp-block-group.ds-classic-offer-card > p:not(.ds-classic-card-kicker):not(.ds-card-link),
  body .ds-classic-offer-card > .wp-block-paragraph:not(.ds-classic-card-kicker):not(.ds-card-link) {
    min-height: auto !important;
    max-height: none !important;
    display: block !important;
    overflow: visible !important;
  }
}


/* v1.95 – all offer-card inserter patterns now output the full 3-card group.
   Safety: old orphan single cards no longer span like giant posters. */
@media (min-width: 781px) {
	body .entry-content > .ds-classic-offer-card:not(.ds-classic-offer-cards > *),
	body main > .ds-classic-offer-card:not(.ds-classic-offer-cards > *),
	body .wp-block-post-content > .ds-classic-offer-card:not(.ds-classic-offer-cards > *) {
		width: min(31rem, calc(100vw - 2rem)) !important;
		max-width: 31rem !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}


/* v1.96 – SAFE OFFER CARDS SHORTCODE
   Fully isolated from Gutenberg group/card layout classes.
   Use [doris_offer_cards].
*/
.ds-offer-cards-fixed {
	width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
	margin: clamp(5.5rem, 7vw, 7rem) auto clamp(4.5rem, 7vw, 6rem) !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	gap: clamp(1.2rem, 1.8vw, 2rem) !important;
	align-items: stretch !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}

.ds-offer-card-fixed {
	grid-column: span 4 !important;
	position: relative !important;
	display: grid !important;
	grid-template-rows: 2.1rem 6.4rem 6.8rem 1fr auto !important;
	min-width: 0 !important;
	min-height: 29.25rem !important;
	height: 100% !important;
	padding: 7.5rem 1.9rem 1.85rem !important;
	background: #f1e5d8 !important;
	color: var(--ds-ink, #2a2522) !important;
	border: 1px solid rgba(42,37,34,.12) !important;
	border-top: 0 !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
	overflow: visible !important;
	transition: transform .18s ease, color .18s ease !important;
}

.ds-offer-card-fixed::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 6px !important;
	background: var(--ds-orange, #f74900) !important;
	z-index: 1 !important;
}

.ds-offer-card-fixed::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: var(--ds-orange, #f74900) !important;
	opacity: 0 !important;
	z-index: 0 !important;
	transition: opacity .18s ease !important;
	pointer-events: none !important;
}

.ds-offer-card-fixed > * {
	position: relative !important;
	z-index: 2 !important;
}

.ds-offer-card-fixed:hover,
.ds-offer-card-fixed:focus-visible {
	color: #fff !important;
	transform: translateY(-2px) !important;
	outline: none !important;
}

.ds-offer-card-fixed:hover::after,
.ds-offer-card-fixed:focus-visible::after {
	opacity: 1 !important;
}

.ds-offer-card-fixed__star {
	position: absolute !important;
	top: 0 !important;
	right: 1.35rem !important;
	width: clamp(11.4rem, 11.1vw, 12.2rem) !important;
	height: clamp(11.4rem, 11.1vw, 12.2rem) !important;
	transform: translateY(-33%) !important;
	z-index: 3 !important;
	display: grid !important;
	place-items: center !important;
	background: #ead8bf !important;
	color: rgba(42,37,34,.55) !important;
	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;
	-webkit-mask-size: 100% 100% !important;
	mask-size: 100% 100% !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	overflow: hidden !important;
}

.ds-offer-card-fixed__star span {
	font-size: .72rem !important;
	line-height: 1.1 !important;
	text-align: center !important;
	padding: .35rem !important;
}

.ds-offer-card-fixed__kicker {
	min-height: 2.1rem !important;
	margin: 0 !important;
	font-size: clamp(.76rem, .86vw, .92rem) !important;
	line-height: 1.15 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
	font-weight: 780 !important;
	color: inherit !important;
	align-self: start !important;
}

.ds-offer-card-fixed h3 {
	min-height: 6.4rem !important;
	max-height: 6.4rem !important;
	margin: 0 !important;
	font-size: clamp(2.05rem, 2.35vw, 2.7rem) !important;
	line-height: 1 !important;
	letter-spacing: -.05em !important;
	font-weight: 400 !important;
	color: inherit !important;
	overflow: hidden !important;
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 3 !important;
	line-clamp: 3 !important;
	text-wrap: balance !important;
	hyphens: none !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
}

.ds-offer-card-fixed__text {
	min-height: 6.8rem !important;
	max-height: 6.8rem !important;
	margin: 0 !important;
	font-size: clamp(.98rem, 1vw, 1.06rem) !important;
	line-height: 1.42 !important;
	color: inherit !important;
	overflow: hidden !important;
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 4 !important;
	line-clamp: 4 !important;
}

.ds-offer-card-fixed__link {
	align-self: end !important;
	margin-top: auto !important;
	padding-top: 1.4rem !important;
	color: inherit !important;
	text-decoration: underline !important;
	font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
	line-height: 1.2 !important;
}

@media (min-width: 781px) and (max-width: 1120px) {
	.ds-offer-card-fixed {
		min-height: 28.1rem !important;
		grid-template-rows: 2rem 5.7rem 6.2rem 1fr auto !important;
		padding: 7rem 1.5rem 1.55rem !important;
	}

	.ds-offer-card-fixed h3 {
		min-height: 5.7rem !important;
		max-height: 5.7rem !important;
		font-size: clamp(1.9rem, 2.15vw, 2.25rem) !important;
	}

	.ds-offer-card-fixed__text {
		min-height: 6.2rem !important;
		max-height: 6.2rem !important;
	}
}

@media (max-width: 780px) {
	.ds-offer-cards-fixed {
		width: calc(100vw - 2rem) !important;
		max-width: calc(100vw - 2rem) !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		padding-top: 4rem !important;
		padding-bottom: 1rem !important;
	}

	.ds-offer-card-fixed {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		max-width: 82vw !important;
		min-height: 27.2rem !important;
		grid-template-rows: auto auto auto 1fr auto !important;
		padding: 7rem 1.35rem 1.4rem !important;
		scroll-snap-align: start !important;
	}

	.ds-offer-card-fixed h3,
	.ds-offer-card-fixed__text {
		min-height: auto !important;
		max-height: none !important;
		display: block !important;
		overflow: visible !important;
	}

	.ds-offer-card-fixed__star {
		width: min(10rem, 42vw) !important;
		height: min(10rem, 42vw) !important;
		right: 1rem !important;
		transform: translateY(-34%) !important;
	}
}


/* v1.97 – rescue for old orphan single offer cards still stored in page content.
   This prevents old single cards from spanning full page width.
*/

/* If browser supports :has(), turn old parent groups containing old cards into a 3-column grid. */
@media (min-width: 781px) {
	body .entry-content .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards),
	body main .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards),
	body .wp-block-post-content .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards) {
		width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		display: grid !important;
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
		gap: clamp(1.2rem, 1.8vw, 2rem) !important;
		align-items: stretch !important;
		overflow: visible !important;
	}

	body .entry-content .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards) > .ds-classic-offer-card,
	body main .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards) > .ds-classic-offer-card,
	body .wp-block-post-content .wp-block-group:has(> .ds-classic-offer-card):not(.ds-classic-offer-cards) > .ds-classic-offer-card {
		grid-column: span 4 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}
}

/* JS rescue wrapper: force correct 3-column output. */
@media (min-width: 781px) {
	body .ds-orphan-offer-cards-rescue {
		width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		margin: clamp(5.5rem, 7vw, 7rem) auto clamp(4.5rem, 7vw, 6rem) !important;
		display: grid !important;
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
		gap: clamp(1.2rem, 1.8vw, 2rem) !important;
		align-items: stretch !important;
		overflow: visible !important;
	}

	body .ds-orphan-offer-cards-rescue > .ds-classic-offer-card {
		grid-column: span 4 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}

	/* Single leftover old card: never full-width poster again. */
	body .ds-classic-offer-card.ds-orphan-offer-card-rescued:not(.ds-orphan-offer-cards-rescue > *),
	body .entry-content > .ds-classic-offer-card:not(.ds-classic-offer-cards > *),
	body main > .ds-classic-offer-card:not(.ds-classic-offer-cards > *),
	body .wp-block-post-content > .ds-classic-offer-card:not(.ds-classic-offer-cards > *) {
		width: min(31rem, calc(100vw - 2rem)) !important;
		max-width: 31rem !important;
		margin-left: auto !important;
		margin-right: auto !important;
		min-height: 29.25rem !important;
	}
}

@media (max-width: 780px) {
	body .ds-orphan-offer-cards-rescue {
		width: calc(100vw - 2rem) !important;
		max-width: calc(100vw - 2rem) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body .ds-orphan-offer-cards-rescue > .ds-classic-offer-card {
		flex: 0 0 82vw !important;
		width: 82vw !important;
		max-width: 82vw !important;
		scroll-snap-align: start !important;
	}
}


/* v1.99 – editable offer cards: no headline clipping, cleaner rhythm, correct hover colors */

@media (min-width: 781px) {
	body .ds-offer-cards-fixed,
	body .wp-block-doris-offer-cards.ds-offer-cards-fixed,
	body .ds-offer-cards-editable-block {
		width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		max-width: min(1240px, calc(100vw - clamp(2rem, 7vw, 6rem))) !important;
		display: grid !important;
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
		gap: clamp(1.2rem, 1.8vw, 2rem) !important;
		align-items: stretch !important;
		overflow: visible !important;
	}

	body .ds-offer-card-fixed {
		grid-column: span 4 !important;
		display: grid !important;
		grid-template-rows: auto minmax(8.4rem, auto) minmax(6.4rem, 1fr) auto !important;
		min-height: clamp(30rem, 32vw, 33rem) !important;
		height: 100% !important;
		padding: clamp(7.25rem, 8.4vw, 8.4rem) clamp(1.65rem, 2vw, 2.15rem) clamp(1.75rem, 2vw, 2.15rem) !important;
		background: #f1e5d8 !important;
		color: var(--ds-ink, #2a2522) !important;
		overflow: visible !important;
	}

	body .ds-offer-card-fixed__kicker {
		min-height: 0 !important;
		margin: 0 0 clamp(.9rem, 1.2vw, 1.15rem) !important;
		align-self: start !important;
		color: inherit !important;
	}

	body .ds-offer-card-fixed h3 {
		min-height: 0 !important;
		max-height: none !important;
		height: auto !important;
		margin: 0 0 clamp(1rem, 1.4vw, 1.35rem) !important;
		font-size: clamp(1.95rem, 2.22vw, 2.52rem) !important;
		line-height: 1.03 !important;
		letter-spacing: -.05em !important;
		font-weight: 400 !important;
		color: inherit !important;
		overflow: visible !important;
		display: block !important;
		-webkit-line-clamp: unset !important;
		line-clamp: unset !important;
		text-wrap: balance !important;
		hyphens: auto !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	body .ds-offer-card-fixed__text {
		min-height: 0 !important;
		max-height: none !important;
		height: auto !important;
		margin: 0 !important;
		font-size: clamp(.98rem, 1vw, 1.06rem) !important;
		line-height: 1.46 !important;
		color: inherit !important;
		overflow: visible !important;
		display: block !important;
		-webkit-line-clamp: unset !important;
		line-clamp: unset !important;
	}

	body .ds-offer-card-fixed__link {
		margin-top: auto !important;
		padding-top: clamp(1.25rem, 1.9vw, 1.75rem) !important;
		align-self: end !important;
		color: inherit !important;
	}

	body .ds-offer-card-fixed__star {
		width: clamp(11.5rem, 11vw, 12.15rem) !important;
		height: clamp(11.5rem, 11vw, 12.15rem) !important;
		transform: translateY(-32%) !important;
		right: clamp(1.05rem, 1.8vw, 1.5rem) !important;
	}
}

body .ds-offer-card-fixed:hover,
body .ds-offer-card-fixed:focus-visible {
	background: #f1e5d8 !important;
	color: #fff !important;
}

body .ds-offer-card-fixed:hover *,
body .ds-offer-card-fixed:focus-visible * {
	color: #fff !important;
}

body .ds-offer-card-fixed:hover .ds-offer-card-fixed__text,
body .ds-offer-card-fixed:focus-visible .ds-offer-card-fixed__text {
	color: #fff !important;
}

body .ds-offer-card-fixed:hover .ds-offer-card-fixed__star,
body .ds-offer-card-fixed:focus-visible .ds-offer-card-fixed__star {
	color: rgba(42,37,34,.62) !important;
}

body .ds-offer-card-fixed:hover .ds-offer-card-fixed__star *,
body .ds-offer-card-fixed:focus-visible .ds-offer-card-fixed__star * {
	color: rgba(42,37,34,.62) !important;
}

@media (min-width: 781px) and (max-width: 1120px) {
	body .ds-offer-card-fixed {
		grid-template-rows: auto minmax(8rem, auto) minmax(6.4rem, 1fr) auto !important;
		min-height: 30rem !important;
		padding: 7.1rem 1.45rem 1.6rem !important;
	}

	body .ds-offer-card-fixed h3 {
		font-size: clamp(1.78rem, 2.1vw, 2.2rem) !important;
		line-height: 1.04 !important;
	}
}

@media (max-width: 780px) {
	body .ds-offer-card-fixed h3,
	body .ds-offer-card-fixed__text {
		max-height: none !important;
		overflow: visible !important;
		display: block !important;
		-webkit-line-clamp: unset !important;
		line-clamp: unset !important;
	}
}


/* v2.00 – editable offer cards: no hover jump / no first-card movement */
body .ds-offer-card-fixed,
body .ds-offer-card-fixed:hover,
body .ds-offer-card-fixed:focus-visible,
body .ds-offer-card-fixed:active {
	transform: none !important;
	translate: none !important;
}

body .ds-offer-card-fixed {
	transition: color .18s ease !important;
}

body .ds-offer-card-fixed::after {
	transition: opacity .18s ease !important;
}

body .ds-offer-card-fixed:hover,
body .ds-offer-card-fixed:focus-visible {
	outline: none !important;
}

/* Keep star fixed too; hover must not visually move or resize it. */
body .ds-offer-card-fixed__star,
body .ds-offer-card-fixed:hover .ds-offer-card-fixed__star,
body .ds-offer-card-fixed:focus-visible .ds-offer-card-fixed__star {
	transform: translateY(-32%) !important;
	width: clamp(11.5rem, 11vw, 12.15rem) !important;
	height: clamp(11.5rem, 11vw, 12.15rem) !important;
}

/* Keep cards equal even while hovered/focused. */
@media (min-width: 781px) {
	body .ds-offer-card-fixed,
	body .ds-offer-card-fixed:hover,
	body .ds-offer-card-fixed:focus-visible {
		min-height: clamp(30rem, 32vw, 33rem) !important;
		height: 100% !important;
	}
}


/* v2.03 – Offer card image controls must be live and visible.
   CSS variables from the block control star scale, image zoom and focal point.
*/
body .ds-offer-card-fixed__star,
body .ds-offer-card-fixed:hover .ds-offer-card-fixed__star,
body .ds-offer-card-fixed:focus-visible .ds-offer-card-fixed__star,
body .ds-offer-card-editable__star {
	transform: translateY(-32%) scale(var(--ds-star-scale, 1)) !important;
	transform-origin: top right !important;
}

body .ds-offer-card-fixed__star img,
body .ds-offer-card-editable__star img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: var(--ds-focal-x, 50%) var(--ds-focal-y, 35%) !important;
	transform: scale(var(--ds-image-scale, 1)) !important;
	transform-origin: center center !important;
	transition: transform .12s ease, object-position .12s ease !important;
}


/* v2.06 – SCOPED Blog Overlay Masonry only
   Usage:
   [doris_blog_overlay posts="6" tag="massagen" intro="no" fallback="no" mode="masonry"]

   Important:
   This does NOT affect the normal homepage carousel.
*/
body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	overflow: visible !important;
}

@media (min-width: 781px) {
	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-track {
		display: block !important;
		column-count: 3 !important;
		column-gap: clamp(1.2rem, 1.8vw, 2rem) !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		transform: none !important;
		scroll-snap-type: none !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card {
		display: inline-block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 0 clamp(1.2rem, 1.8vw, 2rem) !important;
		padding: 0 !important;
		background: transparent !important;
		break-inside: avoid !important;
		page-break-inside: avoid !important;
		overflow: visible !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card-link {
		position: relative !important;
		display: block !important;
		width: 100% !important;
		min-height: 0 !important;
		background: transparent !important;
		overflow: hidden !important;
		text-decoration: none !important;
		color: #fff !important;
		transform: none !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card:nth-child(3n+1) .ds-blog-overlay-card-link {
		height: clamp(15rem, 21vw, 22rem) !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card:nth-child(3n+2) .ds-blog-overlay-card-link {
		height: clamp(11.5rem, 16vw, 17rem) !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card:nth-child(3n) .ds-blog-overlay-card-link {
		height: clamp(13rem, 18vw, 19rem) !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-image {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		max-height: none !important;
		aspect-ratio: auto !important;
		background: #ead8bf !important;
		overflow: hidden !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-image img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: center center !important;
		transform: none !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-title-layer {
		position: absolute !important;
		inset: 0 !important;
		z-index: 2 !important;
		display: grid !important;
		place-items: center !important;
		padding: clamp(1.1rem, 2vw, 1.8rem) !important;
		background: rgba(247, 73, 0, .92) !important;
		color: #fff !important;
		opacity: 0 !important;
		transition: opacity .18s ease !important;
		pointer-events: none !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card-link:hover .ds-blog-overlay-title-layer,
	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card-link:focus-visible .ds-blog-overlay-title-layer {
		opacity: 1 !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-title {
		width: 100% !important;
		max-width: 22ch !important;
		margin: 0 !important;
		color: #fff !important;
		font-size: clamp(1rem, 1.35vw, 1.38rem) !important;
		line-height: 1.13 !important;
		letter-spacing: -.02em !important;
		text-align: center !important;
		text-wrap: balance !important;
		hyphens: none !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-content,
	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-excerpt,
	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-controls {
		display: none !important;
	}
}

@media (max-width: 780px) {
	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-track {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 1rem !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory !important;
		-webkit-overflow-scrolling: touch !important;
		column-count: unset !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card {
		display: block !important;
		flex: 0 0 82vw !important;
		width: 82vw !important;
		max-width: 82vw !important;
		margin: 0 !important;
		scroll-snap-align: start !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-card-link {
		height: clamp(14rem, 58vw, 19rem) !important;
		overflow: hidden !important;
	}

	body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-title-layer {
		opacity: 1 !important;
		background: rgba(247, 73, 0, .84) !important;
	}
}

/* v1.46 – Hero "spür dich" as self-contained SVG
   The lettering is part of the SVG paths, so no separate HTML text positioning is needed. */
.ds-hero-focal .ds-hero-star-svg {
	position: absolute !important;
	display: block !important;
	width: clamp(28rem, 34vw, 43rem) !important;
	height: auto !important;
	right: clamp(-12rem, -8.8vw, -7rem) !important;
	bottom: clamp(2rem, 5vw, 4.5rem) !important;
	top: auto !important;
	z-index: 4 !important;
	transform: rotate(5deg) !important;
	transform-origin: center center !important;
	pointer-events: none !important;
}

/* Preserve the current mobile behaviour: the Hero star is hidden on small screens. */
@media (max-width: 780px) {
	.ds-hero-focal .ds-hero-star-svg {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
	}
}



/* ==========================================================
   v1.47 – unified star geometry + SVG header signet

   REQUIREMENTS:
   - assets/icons/spuer-dich-star-rounded.svg = pure star contour
   - assets/icons/spuer-dich-star-logo.svg    = complete signet incl. lettering
   - Header HTML uses <img class="ds-header-star-svg" ...>
   ========================================================== */

/* Header link is only the positioning/sizing wrapper now.
   Older rules rotated this wrapper; neutralize that so the SVG is rotated once. */
.ds-header-star-link {
	display: block !important;
	position: relative !important;
	overflow: visible !important;
	transform: none !important;
	text-decoration: none !important;
}

/* Complete header signet: star shape + "spür dich" are inside the SVG itself. */
.ds-header-star-svg {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	transform: rotate(-4deg) !important;
	transform-origin: center center !important;
	pointer-events: none !important;
}

/* No legacy pseudo-star construction on the new SVG signet. */
.ds-header-star-svg::before,
.ds-header-star-svg::after {
	content: none !important;
	display: none !important;
}

/* Desktop header signet size. */
@media (min-width: 781px) {
	.ds-header-star-link {
		width: 6.5rem !important;
		height: 6.5rem !important;
		flex: 0 0 6.5rem !important;
		margin: 0 !important;
		align-self: center !important;
	}
}

/* Mobile header signet size. */
@media (max-width: 780px) {
	.ds-header-star-link {
		width: 4.55rem !important;
		height: 4.55rem !important;
		flex: 0 0 4.55rem !important;
		margin-top: -.78rem !important;
		margin-bottom: -.92rem !important;
	}
}

/* ==========================================================
   v1.48 – definitive two-SVG star system

   1) spuer-dich-star-rounded.svg
      = pure rounded star contour
      = global masks, photo stars, cards, decorative stars

   2) spuer-dich-star-logo.svg
      = complete orange signet incl. vector "spür dich"
      = HEADER + HERO only

   This final block also supports the currently saved legacy
   header/hero markup, so the HTML does not have to be changed
   before this CSS can be used.
   ========================================================== */

:root {
	--ds-star-mask: url("../icons/spuer-dich-star-rounded.svg");
	--ds-star-logo: url("../icons/spuer-dich-star-logo.svg");
}

/* HEADER – legacy saved markup */
.ds-site-header .ds-spuer-star.ds-header-star,
header.wp-block-template-part .ds-spuer-star.ds-header-star {
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
}

.ds-site-header .ds-spuer-star.ds-header-star::before,
header.wp-block-template-part .ds-spuer-star.ds-header-star::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	background-color: transparent !important;
	background-image: var(--ds-star-logo) !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: contain !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	z-index: 0 !important;
}

.ds-site-header .ds-spuer-star.ds-header-star > span,
header.wp-block-template-part .ds-spuer-star.ds-header-star > span {
	display: none !important;
	visibility: hidden !important;
}

/* HERO – legacy saved markup */
.ds-photo-hero .ds-spuer-star.ds-hero-star,
.ds-hero-focal .ds-spuer-star.ds-hero-star {
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
}

.ds-photo-hero .ds-spuer-star.ds-hero-star::before,
.ds-hero-focal .ds-spuer-star.ds-hero-star::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	background-color: transparent !important;
	background-image: var(--ds-star-logo) !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: contain !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	z-index: 0 !important;
}

.ds-photo-hero .ds-spuer-star.ds-hero-star > span,
.ds-hero-focal .ds-spuer-star.ds-hero-star > span {
	display: none !important;
	visibility: hidden !important;
}

/* HEADER – clean IMG markup */
.ds-header-star-link {
	position: relative !important;
	display: block !important;
	overflow: visible !important;
	transform: none !important;
	text-decoration: none !important;
}

.ds-header-star-svg {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	object-position: center center !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	transform: rotate(-4deg) !important;
	transform-origin: center center !important;
	pointer-events: none !important;
}

@media (min-width: 781px) {
	.ds-header-star-link {
		width: 6.5rem !important;
		height: 6.5rem !important;
		flex: 0 0 6.5rem !important;
		margin: 0 !important;
		align-self: center !important;
	}
}

@media (max-width: 780px) {
	.ds-header-star-link {
		width: 4.55rem !important;
		height: 4.55rem !important;
		flex: 0 0 4.55rem !important;
		margin-top: -.78rem !important;
		margin-bottom: -.92rem !important;
	}
}

/* HERO – clean IMG markup */
.ds-photo-hero img.ds-hero-star-svg,
.ds-hero-focal img.ds-hero-star-svg,
.ds-hero-focal .ds-hero-star-svg {
	position: absolute !important;
	display: block !important;
	inset: auto !important;
	left: auto !important;
	top: auto !important;
	right: clamp(-12rem, -8.8vw, -7rem) !important;
	bottom: clamp(2rem, 5vw, 4.5rem) !important;
	width: clamp(28rem, 34vw, 43rem) !important;
	height: auto !important;
	max-width: none !important;
	aspect-ratio: auto !important;
	object-fit: contain !important;
	object-position: center center !important;
	z-index: 4 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	transform: rotate(5deg) !important;
	transform-origin: center center !important;
	pointer-events: none !important;
}

/* Hero logo remains hidden on mobile, as in the current design. */
@media (max-width: 780px) {
	.ds-photo-hero .ds-hero-star-svg,
	.ds-hero-focal .ds-hero-star-svg,
	.ds-photo-hero .ds-spuer-star.ds-hero-star,
	.ds-hero-focal .ds-spuer-star.ds-hero-star {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}
}

/* All other stars continue to use
   --ds-star-mask = spuer-dich-star-rounded.svg. */

/* ==========================================================
   v1.49 – Footer uses finished "spür dich" logo SVG
   ========================================================== */

.ds-footer .ds-footer-star-svg {
	display: block !important;
	width: clamp(10.5rem, 15.5vw, 14.5rem) !important;
	height: auto !important;
	max-width: none !important;
	margin: 0 auto !important;
	padding: 0 !important;
	object-fit: contain !important;
	object-position: center center !important;
	background: transparent !important;
	-webkit-mask: none !important;
	mask: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	transform: translateY(-1.65rem) rotate(-4deg) !important;
	transform-origin: center center !important;
}

@media (max-width: 780px) {
	.ds-footer .ds-footer-star-svg {
		width: clamp(9rem, 38vw, 12rem) !important;
		transform: translateY(-.75rem) rotate(-4deg) !important;
	}
}

/* ==========================================================
   v1.50 – earlier navigation breakpoint
   Desktop menu -> hamburger already below 1180px
   ========================================================== */

@media (min-width: 781px) and (max-width: 1180px) {

	.ds-header-inner,
	.ds-site-header .ds-header-inner,
	header.wp-block-template-part .ds-header-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		align-items: center !important;
		column-gap: 1.25rem !important;
		min-height: 5.6rem !important;
		padding-left: clamp(1rem, 3vw, 2rem) !important;
		padding-right: clamp(1rem, 3vw, 2rem) !important;
	}

	.ds-header-brand-zone {
		justify-self: start !important;
		min-width: 0 !important;
		gap: .8rem !important;
	}

	.ds-header-star-link {
		width: 5.25rem !important;
		height: 5.25rem !important;
		flex: 0 0 5.25rem !important;
		margin: 0 !important;
	}

	.ds-wordmark .ds-brand-name,
	.ds-brand-name {
		white-space: nowrap !important;
		font-size: 1.1rem !important;
		line-height: 1.05 !important;
	}

	.ds-wordmark .ds-brand-sub,
	.ds-brand-sub {
		display: none !important;
	}

	.ds-header-cta,
	.ds-site-header .ds-header-cta {
		display: none !important;
		visibility: hidden !important;
	}

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation {
		justify-self: end !important;
		width: auto !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
		visibility: hidden !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part
	.wp-block-navigation__responsive-container-open {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 3rem !important;
		height: 3rem !important;
		margin: 0 !important;
		padding: 0 !important;
		color: var(--ds-ink, #2a2522) !important;
		background: transparent !important;
		border: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open svg {
		width: 32px !important;
		height: 32px !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		display: flex !important;
		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		max-height: none !important;
		background: var(--ds-paper, #fff9f1) !important;
		color: var(--ds-ink, #2a2522) !important;
		z-index: 100000 !important;
		padding: clamp(1.25rem, 4vw, 2rem) !important;
		overflow-y: auto !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
		width: 100% !important;
		min-height: calc(100dvh - 2.5rem) !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		padding-top: clamp(4.5rem, 9vw, 6.5rem) !important;
		padding-bottom: 1.5rem !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container {
		width: 100% !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: .65rem !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		width: 100% !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open a {
		width: 100% !important;
		font-size: clamp(2rem, 4.8vw, 3rem) !important;
		line-height: 1 !important;
		font-weight: 330 !important;
		letter-spacing: -.035em !important;
		text-align: left !important;
		padding: .18rem 0 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container {
		position: static !important;
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		margin: .5rem 0 .9rem !important;
		padding: .45rem 0 .2rem 1rem !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		transform: none !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container a {
		font-size: clamp(1.05rem, 2.2vw, 1.35rem) !important;
		line-height: 1.3 !important;
		font-weight: 360 !important;
		color: rgba(42, 37, 34, .78) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open
	.ds-mobile-overlay-booking {
		display: block !important;
		visibility: visible !important;
		width: 100% !important;
		height: auto !important;
		margin-top: auto !important;
		padding-top: 2rem !important;
		pointer-events: auto !important;
	}
}

@media (min-width: 1181px) {
	.ds-site-header .wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}

/* ==========================================================
   v1.51 – stable tablet/intermediate header
   One clean breakpoint:
   <= 1280px = brand left + hamburger far right
   >= 1281px = full desktop navigation
   ========================================================== */

/* At every compact/intermediate width the header is strictly
   a two-column layout. This also fixes the hamburger sitting
   in the visual centre of the header. */
@media (max-width: 1280px) {

	.ds-header-inner,
	.ds-site-header .ds-header-inner,
	header.wp-block-template-part .ds-header-inner,
	.ds-site-header .alignwide {
		width: 100% !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;

		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		grid-template-rows: auto !important;
		align-items: center !important;

		column-gap: 1rem !important;
		padding-left: clamp(1rem, 3vw, 2rem) !important;
		padding-right: clamp(1rem, 3vw, 2rem) !important;
		box-sizing: border-box !important;
	}

	.ds-header-brand-zone {
		grid-column: 1 !important;
		grid-row: 1 !important;
		justify-self: start !important;
		align-self: center !important;
		min-width: 0 !important;
		max-width: calc(100% - 1rem) !important;
		margin: 0 !important;
	}

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		grid-column: 2 !important;
		grid-row: 1 !important;
		justify-self: end !important;
		align-self: center !important;

		display: flex !important;
		align-items: center !important;
		justify-content: flex-end !important;

		width: auto !important;
		min-width: 3rem !important;
		max-width: none !important;

		margin: 0 0 0 auto !important;
		padding: 0 !important;
		line-height: 1 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		justify-self: end !important;
		align-self: center !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 3.25rem !important;
		height: 3.25rem !important;
		min-width: 3.25rem !important;
		min-height: 3.25rem !important;

		margin: 0 0 0 auto !important;
		padding: 0 !important;

		background: transparent !important;
		color: var(--ds-ink, #2a2522) !important;
		border: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open svg,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open svg {
		display: block !important;
		width: 30px !important;
		height: 30px !important;
		margin: 0 !important;
	}

	/* Desktop booking CTA is removed before the header becomes crowded.
	   The booking action is available inside the overlay navigation. */
	.ds-header-cta,
	.ds-site-header .ds-header-cta {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		min-width: 0 !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	/* Keep the brand compact before it can collide with the hamburger. */
	.ds-wordmark .ds-brand-name,
	.ds-brand-name {
		white-space: nowrap !important;
	}

	.ds-wordmark .ds-brand-sub,
	.ds-brand-sub {
		display: none !important;
	}
}


/* ----------------------------------------------------------
   781–1280px:
   WordPress normally still considers this "desktop".
   We explicitly switch it to responsive/hamburger mode.
   ---------------------------------------------------------- */
@media (min-width: 781px) and (max-width: 1280px) {

	/* The closed desktop navigation panel must have absolutely
	   no footprint in the intermediate header. */
	.ds-site-header .wp-block-navigation__responsive-container:not(.is-menu-open),
	header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) {
		position: fixed !important;
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	/* Full-screen opened navigation. */
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;

		display: flex !important;
		flex-direction: column !important;

		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		min-width: 100vw !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		max-width: none !important;
		max-height: none !important;

		margin: 0 !important;
		padding: clamp(1.25rem, 4vw, 2rem) !important;

		background: var(--ds-paper, #fff9f1) !important;
		color: var(--ds-ink, #2a2522) !important;

		visibility: visible !important;
		opacity: 1 !important;
		overflow-y: auto !important;
		pointer-events: auto !important;
		z-index: 100000 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-close,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-dialog,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
		width: 100% !important;
		min-height: calc(100dvh - 2.5rem) !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
		padding-top: clamp(4.75rem, 9vw, 6.5rem) !important;
		padding-bottom: 1.25rem !important;
		justify-content: flex-start !important;
		gap: 1rem !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		width: 100% !important;
		height: auto !important;
		gap: .6rem !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open a {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		margin: 0 !important;
		padding: .18rem 0 !important;

		font-size: clamp(2rem, 4.8vw, 3rem) !important;
		line-height: 1 !important;
		font-weight: 330 !important;
		letter-spacing: -.035em !important;
		text-align: left !important;
	}

	/* Desktop submenu behaviour must not leak into the
	   intermediate full-screen menu. */
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-submenu,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container {
		position: static !important;
		inset: auto !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;

		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;

		margin: .45rem 0 .8rem !important;
		padding: .35rem 0 .1rem 1rem !important;

		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		transform: none !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container a,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: clamp(1.05rem, 2.2vw, 1.35rem) !important;
		line-height: 1.3 !important;
		font-weight: 360 !important;
		letter-spacing: -.012em !important;
		color: rgba(42, 37, 34, .78) !important;
		padding: .22rem 0 !important;
	}

	/* Booking CTA at bottom of opened navigation. */
	.wp-block-navigation__responsive-container.is-menu-open
	.ds-mobile-overlay-booking {
		display: block !important;
		visibility: visible !important;
		width: 100% !important;
		height: auto !important;
		margin-top: auto !important;
		padding-top: 2rem !important;
		pointer-events: auto !important;
	}
}


/* ----------------------------------------------------------
   Real desktop begins only at 1281px.
   ---------------------------------------------------------- */
@media (min-width: 1281px) {

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		display: none !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container:not(.is-menu-open),
	header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}
}


/* ----------------------------------------------------------
   Mobile <= 780px:
   Existing mobile navigation styling stays in charge,
   but the hamburger is pinned to the right edge.
   ---------------------------------------------------------- */
@media (max-width: 780px) {

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		justify-self: end !important;
		justify-content: flex-end !important;
		margin-left: auto !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		justify-self: end !important;
		margin-left: auto !important;
		margin-right: 0 !important;
	}
}

/* ==========================================================
   v1.52 – definitive compact header + white logo knockouts

   <= 1280px:
   - brand stays left
   - hamburger is physically pinned to the far right
   - desktop menu has ZERO visual/layout footprint
   - opened menu is full-screen

   Logo SVG:
   - its lettering is transparent/knocked out
   - a white star backing makes the lettering truly white
     in Header, Hero and Footer.
   ========================================================== */


/* ----------------------------------------------------------
   LOGO SVG – make transparent lettering truly white
   ---------------------------------------------------------- */

/* Clean IMG markup: white backing is clipped to the star,
   while the orange SVG remains visible above it. */
.ds-header-star-svg,
.ds-hero-star-svg,
.ds-footer-star-svg {
	background-color: #fff !important;

	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;

	-webkit-mask-size: 100% 100% !important;
	mask-size: 100% 100% !important;

	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;

	-webkit-mask-position: center !important;
	mask-position: center !important;
}

/* Legacy saved markup: add the same white star behind the
   complete logo background image. */
.ds-site-header .ds-spuer-star.ds-header-star,
header.wp-block-template-part .ds-spuer-star.ds-header-star,
.ds-photo-hero .ds-spuer-star.ds-hero-star,
.ds-hero-focal .ds-spuer-star.ds-hero-star,
.ds-footer .ds-spuer-star.ds-footer-star {
	isolation: isolate !important;
}

.ds-site-header .ds-spuer-star.ds-header-star::after,
header.wp-block-template-part .ds-spuer-star.ds-header-star::after,
.ds-photo-hero .ds-spuer-star.ds-hero-star::after,
.ds-hero-focal .ds-spuer-star.ds-hero-star::after,
.ds-footer .ds-spuer-star.ds-footer-star::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	display: block !important;

	background: #fff !important;

	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;
	-webkit-mask-size: 100% 100% !important;
	mask-size: 100% 100% !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;

	z-index: 0 !important;
	pointer-events: none !important;
}

/* Complete logo sits above the white backing. */
.ds-site-header .ds-spuer-star.ds-header-star::before,
header.wp-block-template-part .ds-spuer-star.ds-header-star::before,
.ds-photo-hero .ds-spuer-star.ds-hero-star::before,
.ds-hero-focal .ds-spuer-star.ds-hero-star::before,
.ds-footer .ds-spuer-star.ds-footer-star::before {
	z-index: 1 !important;
}


/* ----------------------------------------------------------
   COMPACT / INTERMEDIATE HEADER
   Do not rely on the older three-column grid here.
   ---------------------------------------------------------- */

@media (max-width: 1280px) {

	.ds-site-header,
	header.wp-block-template-part {
		overflow: visible !important;
	}

	.ds-header-inner,
	.ds-site-header .ds-header-inner,
	header.wp-block-template-part .ds-header-inner,
	.ds-site-header .alignwide {
		position: relative !important;

		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: flex-start !important;

		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;

		min-height: 5.5rem !important;

		margin: 0 !important;

		/* Reserve physical space for the hamburger at right. */
		padding-left: clamp(1rem, 3vw, 2rem) !important;
		padding-right: clamp(5rem, 8vw, 6.25rem) !important;

		box-sizing: border-box !important;
	}

	.ds-header-brand-zone {
		position: relative !important;

		display: flex !important;
		align-items: center !important;

		flex: 1 1 auto !important;
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;

		margin: 0 !important;
		padding: 0 !important;

		justify-self: auto !important;
		align-self: center !important;
	}

	/* Desktop CTA leaves the compact header completely. */
	.ds-header-cta,
	.ds-site-header .ds-header-cta,
	header.wp-block-template-part .ds-header-cta {
		display: none !important;
		visibility: hidden !important;

		position: absolute !important;
		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;

		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	/* Navigation wrapper is physically pinned to the right.
	   This removes the "hamburger in the middle" state. */
	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		position: absolute !important;

		top: 50% !important;
		right: clamp(1rem, 3vw, 2rem) !important;
		left: auto !important;

		transform: translateY(-50%) !important;

		display: block !important;

		width: 3.5rem !important;
		height: 3.5rem !important;
		min-width: 3.5rem !important;
		min-height: 3.5rem !important;
		max-width: 3.5rem !important;

		margin: 0 !important;
		padding: 0 !important;

		justify-self: auto !important;
		align-self: auto !important;

		z-index: 50 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		position: absolute !important;
		inset: 0 !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 3.5rem !important;
		height: 3.5rem !important;
		min-width: 3.5rem !important;
		min-height: 3.5rem !important;

		margin: 0 !important;
		padding: 0 !important;

		background: transparent !important;
		color: var(--ds-ink, #2a2522) !important;
		border: 0 !important;
		border-radius: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open svg,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open svg {
		display: block !important;
		width: 30px !important;
		height: 30px !important;
		margin: 0 !important;
	}

	/* Critical fix:
	   NO desktop menu list may remain visible underneath the
	   compact header. This kills the ghost menu in the Hero. */
	.ds-site-header .wp-block-navigation__container,
	header.wp-block-template-part .wp-block-navigation__container {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		max-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container:not(.is-menu-open),
	header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;

		position: absolute !important;

		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;

		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	/* Compact wordmark */
	.ds-wordmark .ds-brand-name,
	.ds-brand-name {
		white-space: nowrap !important;
		line-height: 1.04 !important;
	}

	.ds-wordmark .ds-brand-sub,
	.ds-brand-sub {
		display: none !important;
	}
}


/* Slightly calmer tablet/intermediate proportions. */
@media (min-width: 781px) and (max-width: 1280px) {

	.ds-header-star-link {
		width: 5.15rem !important;
		height: 5.15rem !important;
		flex: 0 0 5.15rem !important;
		margin: 0 !important;
	}

	.ds-header-star-svg {
		width: 100% !important;
		height: 100% !important;
	}

	.ds-wordmark .ds-brand-name,
	.ds-brand-name {
		font-size: clamp(1.02rem, 1.7vw, 1.18rem) !important;
		font-weight: 590 !important;
	}

	/* Opened navigation escapes the tiny absolute nav wrapper. */
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;

		display: flex !important;
		flex-direction: column !important;

		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;

		min-width: 100vw !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;

		max-width: none !important;
		max-height: none !important;

		margin: 0 !important;
		padding: clamp(1.25rem, 4vw, 2rem) !important;

		transform: none !important;

		background: var(--ds-paper, #fff9f1) !important;
		color: var(--ds-ink, #2a2522) !important;

		visibility: visible !important;
		opacity: 1 !important;
		overflow-y: auto !important;
		pointer-events: auto !important;

		z-index: 100000 !important;
	}

	/* Re-enable menu list ONLY inside the opened overlay. */
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container,
	header.wp-block-template-part
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;

		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;

		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		gap: .6rem !important;

		margin: 0 !important;
		padding: 0 !important;

		overflow: visible !important;
		pointer-events: auto !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-close,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-dialog,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
		position: static !important;
		width: 100% !important;
		min-height: calc(100dvh - 2.5rem) !important;

		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
		padding-top: clamp(4.5rem, 9vw, 6.5rem) !important;
		padding-bottom: 1.25rem !important;
	}

	/* Close icon belongs to the top-right corner. */
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-close,
	header.wp-block-template-part
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-close {
		position: fixed !important;
		top: clamp(1.25rem, 3vw, 2rem) !important;
		right: clamp(1.25rem, 3vw, 2rem) !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 3.5rem !important;
		height: 3.5rem !important;

		margin: 0 !important;
		padding: 0 !important;

		z-index: 100002 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open a {
		display: block !important;
		width: 100% !important;

		font-size: clamp(2rem, 4.6vw, 3rem) !important;
		line-height: 1 !important;
		font-weight: 330 !important;
		letter-spacing: -.035em !important;

		text-align: left !important;

		margin: 0 !important;
		padding: .18rem 0 !important;
	}

	/* Submenu returns to normal document flow in overlay. */
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container {
		position: static !important;
		inset: auto !important;

		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;

		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;

		margin: .45rem 0 .8rem !important;
		padding: .35rem 0 .1rem 1rem !important;

		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;

		transform: none !important;
		pointer-events: auto !important;
	}

	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container a,
	.ds-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: clamp(1.05rem, 2.1vw, 1.35rem) !important;
		line-height: 1.3 !important;
		font-weight: 360 !important;
		letter-spacing: -.012em !important;
		color: rgba(42,37,34,.78) !important;
		padding: .2rem 0 !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open
	.ds-mobile-overlay-booking {
		display: block !important;
		visibility: visible !important;
		width: 100% !important;
		height: auto !important;
		margin-top: auto !important;
		padding-top: 2rem !important;
		pointer-events: auto !important;
	}
}


/* ----------------------------------------------------------
   MOBILE <= 780
   Preserve existing mobile overlay; pin hamburger far right.
   ---------------------------------------------------------- */

@media (max-width: 780px) {

	.ds-header-inner,
	.ds-site-header .ds-header-inner,
	header.wp-block-template-part .ds-header-inner {
		min-height: 4.9rem !important;
		padding-right: 4.8rem !important;
	}

	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		right: 1rem !important;
		width: 3.25rem !important;
		height: 3.25rem !important;
		min-width: 3.25rem !important;
		min-height: 3.25rem !important;
		max-width: 3.25rem !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		width: 3.25rem !important;
		height: 3.25rem !important;
		min-width: 3.25rem !important;
		min-height: 3.25rem !important;
	}
}


/* ----------------------------------------------------------
   REAL DESKTOP >= 1281
   Restore the actual desktop navigation list.
   ---------------------------------------------------------- */

@media (min-width: 1281px) {

	.ds-site-header .wp-block-navigation__container,
	header.wp-block-template-part .wp-block-navigation__container {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
		pointer-events: auto !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}

/* ==========================================================
   v1.53 – desktop submenu hover bridge
   Fixes the dead gap between "Rechtliches" and its dropdown.
   ========================================================== */

@media (min-width: 1281px) {

	/* Keep a small visual gap, but no physical mouse gap. */
	.ds-site-header .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
		top: calc(100% + .45rem) !important;
	}

	/* Invisible bridge reaches from the dropdown back into the
	   parent menu item, so moving the cursor downward never
	   leaves the hoverable area. */
	.ds-site-header .wp-block-navigation__submenu-container::before,
	.ds-site-header .wp-block-navigation-submenu .wp-block-navigation__submenu-container::before {
		content: "" !important;
		position: absolute !important;
		left: 0 !important;
		right: 0 !important;
		top: -.65rem !important;
		height: .7rem !important;
		display: block !important;
		background: transparent !important;
		pointer-events: auto !important;
	}

	/* Keep submenu open while either parent, toggle, bridge or
	   submenu itself is hovered/focused. */
	.ds-site-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu[aria-expanded="true"] > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation__submenu-container:hover,
	.ds-site-header .wp-block-navigation__submenu-container:focus-within {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		transform: translateX(-50%) translateY(0) !important;
	}

	/* Tiny close delay makes diagonal mouse movement forgiving
	   without making the menu feel sluggish. */
	.ds-site-header .wp-block-navigation__submenu-container {
		transition:
			opacity .16s ease,
			transform .16s ease,
			visibility 0s linear .08s !important;
	}

	.ds-site-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
	.ds-site-header .wp-block-navigation__submenu-container:hover,
	.ds-site-header .wp-block-navigation__submenu-container:focus-within {
		transition-delay: 0s !important;
	}
}


/* ==========================================================
   v1.54 – larger Hero logo, fixed right edge
   The logo grows towards the left; its right position stays unchanged.
   ========================================================== */
@media (min-width: 1281px) {
	.ds-hero-focal .ds-hero-star,
	.ds-hero-focal .ds-hero-star-svg,
	.ds-photo-hero .ds-hero-star,
	.ds-photo-hero .ds-hero-star-svg {
		width: clamp(32rem, 38vw, 49rem) !important;
		right: clamp(-12rem, -8.8vw, -7rem) !important;
	}
}

/* ==========================================================
   v1.55 – rounded controls + accessible utility stack + Spotlight
   ========================================================== */

:root {
	--ds-control-radius: .55rem;
	--ds-panel-radius: .85rem;
}

/* Slight rounding: still clear and graphic, but closer to the organic star. */
.wp-block-button__link,
.wp-element-button,
.ds-contact-form button[type="submit"],
.ds-blog-overlay-arrow,
.ds-offer-arrow,
.ds-spotlight-copy,
.ds-spotlight-open {
	border-radius: var(--ds-control-radius) !important;
}

/* Floating utility controls: back to top, navigation help, Spotlight. */
.ds-back-to-top,
.ds-accessibility-help-button,
.ds-nav-help-modal__close,
.ds-spotlight-dismiss,
.ds-spotlight-dialog-close {
	border-radius: var(--ds-control-radius) !important;
}

.ds-back-to-top {
	right: clamp(1rem, 2vw, 2rem) !important;
	bottom: clamp(1rem, 2vw, 2rem) !important;
	width: 3.15rem !important;
	height: 3.15rem !important;
	border: 0 !important;
	cursor: pointer !important;
}

.ds-accessibility-help-button {
	display: inline-flex !important;
	visibility: visible !important;
	pointer-events: auto !important;
	right: clamp(1rem, 2vw, 2rem) !important;
	bottom: calc(clamp(1rem, 2vw, 2rem) + 3.8rem) !important;
	z-index: 99998 !important;
}

.ds-nav-help-modal__dialog {
	border-radius: var(--ds-panel-radius) !important;
}

/* Current highlight: optional rich-text editor output. */
.ds-current-highlight-richtext {
	margin-top: 1.25rem;
}

.ds-current-highlight-richtext > :first-child {
	margin-top: 0;
}

.ds-current-highlight-richtext > :last-child {
	margin-bottom: 0;
}

/* Spotlight teaser – sits above ? and ↑. */
.ds-spotlight[hidden],
.ds-spotlight-modal[hidden] {
	display: none !important;
}

.ds-spotlight {
	position: fixed;
	right: clamp(1rem, 2vw, 2rem);
	bottom: calc(clamp(1rem, 2vw, 2rem) + 7.45rem);
	z-index: 99997;
	width: min(22rem, calc(100vw - 2rem));
	opacity: 0;
	transform: translateY(1rem);
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}

.ds-spotlight.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.ds-spotlight-teaser {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: 1.1rem 3rem 1.05rem 1.15rem;
	background: var(--ds-orange, #f74900);
	color: #fff;
	border-radius: var(--ds-panel-radius);
	box-shadow: 0 1rem 2.8rem rgba(42, 37, 34, .2);
}

.ds-spotlight-teaser::before {
	content: "";
	position: absolute;
	width: 9rem;
	height: 9rem;
	right: -3.2rem;
	top: -4rem;
	background: rgba(255,255,255,.16);
	-webkit-mask-image: var(--ds-star-mask);
	mask-image: var(--ds-star-mask);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	z-index: -1;
}

.ds-spotlight-kicker,
.ds-spotlight-dialog-kicker {
	margin: 0 0 .45rem;
	font-size: .72rem;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ds-spotlight-teaser-title {
	margin: 0;
	font-family: 'Poppins Local', Poppins, sans-serif;
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	line-height: 1.08;
	font-weight: 650;
	letter-spacing: -.025em;
}

.ds-spotlight-teaser-text {
	margin: .5rem 0 0;
	font-size: .9rem;
	line-height: 1.4;
}

.ds-spotlight-dismiss {
	position: absolute;
	top: .55rem;
	right: .55rem;
	width: 2.2rem;
	height: 2.2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: rgba(255,255,255,.15);
	color: #fff;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
}

.ds-spotlight-open {
	margin-top: .85rem;
	padding: .55rem .72rem;
	border: 0;
	background: #fff;
	color: var(--ds-orange, #f74900);
	font: inherit;
	font-size: .86rem;
	line-height: 1.1;
	font-weight: 650;
	cursor: pointer;
}

.ds-spotlight-open:hover,
.ds-spotlight-open:focus-visible,
.ds-spotlight-dismiss:hover,
.ds-spotlight-dismiss:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 2px !important;
}

/* Spotlight dialog */
.ds-spotlight-modal {
	position: fixed;
	inset: 0;
	z-index: 100004;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 4vw, 2rem);
	opacity: 0;
	transition: opacity .14s ease;
}

.ds-spotlight-modal.is-open {
	opacity: 1;
}

.ds-spotlight-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 37, 34, .5);
}

.ds-spotlight-dialog {
	position: relative;
	width: min(100%, 48rem);
	max-height: min(88vh, 52rem);
	overflow: auto;
	padding: clamp(1.5rem, 4vw, 3rem);
	background: var(--ds-paper, #fff9f1);
	color: var(--ds-ink, #2a2522);
	border-radius: var(--ds-panel-radius);
	box-shadow: 0 2rem 6rem rgba(42, 37, 34, .28);
}

.ds-spotlight-dialog::before {
	content: "";
	position: absolute;
	width: 18rem;
	height: 18rem;
	right: -8rem;
	top: -8rem;
	background: rgba(247,73,0,.09);
	-webkit-mask-image: var(--ds-star-mask);
	mask-image: var(--ds-star-mask);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	pointer-events: none;
}

.ds-spotlight-dialog-close {
	position: absolute;
	top: .9rem;
	right: .9rem;
	width: 2.75rem;
	height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: var(--ds-orange, #f74900);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
}

.ds-spotlight-dialog-kicker {
	color: var(--ds-orange, #f74900);
}

.ds-spotlight-dialog h2 {
	position: relative;
	margin: 0 3rem 1rem 0;
	font-size: clamp(2rem, 5vw, 3.4rem);
	line-height: .98;
	letter-spacing: -.045em;
}

.ds-spotlight-content {
	position: relative;
	font-size: 1rem;
	line-height: 1.6;
}

.ds-spotlight-content > :first-child {
	margin-top: 0;
}

.ds-spotlight-code-wrap {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem;
	margin-top: 1.35rem;
	padding: 1rem;
	border: 1px solid rgba(42,37,34,.16);
	border-radius: var(--ds-control-radius);
	background: rgba(255,255,255,.54);
}

.ds-spotlight-code-label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ds-spotlight-code {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .04em;
}

.ds-spotlight-copy {
	min-height: 2.65rem;
	padding: .62rem .8rem;
	border: 0;
	background: var(--ds-ink, #2a2522);
	color: #fff;
	font: inherit;
	font-size: .85rem;
	font-weight: 650;
	cursor: pointer;
}

.ds-spotlight-copy-status {
	flex-basis: 100%;
	font-size: .78rem;
}

.ds-spotlight-actions {
	margin: 1.4rem 0 0;
}

.ds-spotlight-dialog button:focus-visible,
.ds-spotlight-dialog a:focus-visible {
	outline: 3px solid var(--ds-orange, #f74900) !important;
	outline-offset: 3px !important;
}

html.ds-spotlight-open,
html.ds-spotlight-open body {
	overflow: hidden !important;
}

/* Bring the navigation help back on phones too; keep the utility stack orderly. */
@media (max-width: 780px) {
	.ds-back-to-top {
		right: 1rem !important;
		bottom: 1rem !important;
		width: 3rem !important;
		height: 3rem !important;
	}

	.ds-accessibility-help-button {
		display: inline-flex !important;
		visibility: visible !important;
		pointer-events: auto !important;
		right: 1rem !important;
		bottom: 4.65rem !important;
		width: 2.8rem !important;
		height: 2.8rem !important;
	}

	.ds-spotlight {
		right: 1rem;
		bottom: 8.1rem;
		width: min(19rem, calc(100vw - 2rem));
	}

	.ds-spotlight-teaser {
		padding: .95rem 2.8rem .95rem 1rem;
	}

	.ds-spotlight-modal {
		align-items: end;
		padding: 0;
	}

	.ds-spotlight-dialog {
		width: 100%;
		max-height: 88dvh;
		border-radius: var(--ds-panel-radius) var(--ds-panel-radius) 0 0;
		padding: 1.45rem 1.2rem 2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ds-spotlight,
	.ds-spotlight-modal,
	.ds-back-to-top,
	.ds-accessibility-help-button {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================
   v2.09 – mobile navigation, Spotlight facts + white star,
   polished contact form
   ========================================================== */

/* ----------------------------------------------------------
   MOBILE / TABLET NAVIGATION
   The fixed overlay must not live inside a transformed parent.
   ---------------------------------------------------------- */
@media (max-width: 1280px) {
	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		top: calc(50% - 1.75rem) !important;
		transform: none !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		position: absolute !important;
		inset: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: transparent !important;
		border: 0 !important;
		color: var(--ds-ink, #2a2522) !important;
		cursor: pointer !important;
	}

	/* Reliable Doris hamburger – independent of changing WP core SVGs. */
	.ds-site-header .wp-block-navigation__responsive-container-open svg,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open svg {
		display: none !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open::before,
	header.wp-block-template-part .wp-block-navigation__responsive-container-open::before {
		content: "" !important;
		display: block !important;
		width: 1.8rem !important;
		height: 2px !important;
		background: currentColor !important;
		box-shadow: 0 -7px 0 currentColor, 0 7px 0 currentColor !important;
	}

	/* Open state: always a genuine viewport overlay, including <= 780px. */
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		display: flex !important;
		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		min-width: 100vw !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		padding: clamp(1.2rem, 4vw, 2rem) !important;
		background: var(--ds-paper, #fff9f1) !important;
		color: var(--ds-ink, #2a2522) !important;
		visibility: visible !important;
		opacity: 1 !important;
		overflow-y: auto !important;
		pointer-events: auto !important;
		transform: none !important;
		z-index: 2147482000 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		position: static !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		min-width: 0 !important;
		min-height: calc(100dvh - 2.4rem) !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: clamp(4.8rem, 12vw, 7rem) !important;
		padding-bottom: 1rem !important;
	}

	/* This explicitly undoes the closed-state "display:none" rule on phones too. */
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: .7rem !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		pointer-events: auto !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open a,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open a {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		padding: .16rem 0 !important;
		font-size: clamp(1.85rem, 6.2vw, 3rem) !important;
		line-height: 1.04 !important;
		font-weight: 360 !important;
		letter-spacing: -.035em !important;
		text-align: left !important;
		color: var(--ds-ink, #2a2522) !important;
	}

	/* Legal/info items remain visible and readable in the overlay. */
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		inset: auto !important;
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;
		margin: .4rem 0 .7rem !important;
		padding: .25rem 0 .15rem 1rem !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		transform: none !important;
		pointer-events: auto !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a,
	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: clamp(1rem, 4vw, 1.3rem) !important;
		line-height: 1.3 !important;
		font-weight: 400 !important;
		letter-spacing: -.01em !important;
		color: rgba(42,37,34,.76) !important;
		padding: .22rem 0 !important;
	}

	.ds-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close,
	header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: fixed !important;
		top: clamp(1rem, 3vw, 1.6rem) !important;
		right: clamp(1rem, 3vw, 1.6rem) !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 3.4rem !important;
		height: 3.4rem !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		color: var(--ds-ink, #2a2522) !important;
		z-index: 2147482100 !important;
	}
}

@media (max-width: 780px) {
	.ds-primary-nav,
	.ds-site-header .ds-primary-nav,
	.ds-site-header .wp-block-navigation,
	header.wp-block-template-part .wp-block-navigation {
		top: calc(50% - 1.625rem) !important;
	}
}

/* ----------------------------------------------------------
   SPOTLIGHT – orange field + real white Doris star.
   ---------------------------------------------------------- */
.ds-spotlight {
	z-index: 99997 !important;
}

.ds-spotlight-teaser {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) clamp(4.2rem, 5vw, 5.2rem) !important;
	align-items: center !important;
	gap: .9rem !important;
	padding: 1rem 2.85rem 1rem 1.1rem !important;
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
}

.ds-spotlight-teaser::before {
	content: none !important;
	display: none !important;
}

.ds-spotlight-teaser-copy {
	position: relative !important;
	z-index: 2 !important;
	min-width: 0 !important;
}

.ds-spotlight-star {
	display: block !important;
	width: clamp(4.2rem, 5vw, 5.2rem) !important;
	aspect-ratio: 1 !important;
	justify-self: end !important;
	background: #fff !important;
	-webkit-mask-image: var(--ds-star-mask) !important;
	mask-image: var(--ds-star-mask) !important;
	-webkit-mask-size: contain !important;
	mask-size: contain !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	transform: rotate(-5deg) !important;
}

.ds-spotlight-facts {
	position: relative !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: .65rem !important;
	margin: 1.45rem 0 0 !important;
	padding: 0 !important;
}

.ds-spotlight-fact {
	min-width: 0 !important;
	padding: .9rem 1rem !important;
	background: rgba(255,255,255,.58) !important;
	border: 1px solid rgba(42,37,34,.14) !important;
	border-radius: var(--ds-control-radius, .55rem) !important;
}

.ds-spotlight-fact dt {
	margin: 0 0 .22rem !important;
	font-size: .7rem !important;
	line-height: 1.2 !important;
	font-weight: 700 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: var(--ds-orange, #f74900) !important;
}

.ds-spotlight-fact dd {
	margin: 0 !important;
	font-size: .95rem !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
	color: var(--ds-ink, #2a2522) !important;
}

.ds-spotlight-location {
	position: relative !important;
	margin: 1rem 0 0 !important;
	font-size: .95rem !important;
	line-height: 1.55 !important;
}

@media (max-width: 780px) {
	.ds-spotlight-teaser {
		grid-template-columns: minmax(0, 1fr) 3.8rem !important;
		gap: .7rem !important;
		padding: .9rem 2.7rem .9rem .95rem !important;
	}

	.ds-spotlight-star {
		width: 3.8rem !important;
	}

	.ds-spotlight-facts {
		grid-template-columns: 1fr !important;
	}
}

/* ----------------------------------------------------------
   CONTACT FORM – compact, calm, readable and touch friendly.
   ---------------------------------------------------------- */
.ds-template-card:has(.ds-contact-form-embed),
.ds-template-card:has(.wpcf7) {
	border-top: .32rem solid var(--ds-orange, #f74900) !important;
	border-radius: var(--ds-panel-radius, .85rem) !important;
	padding: clamp(1.2rem, 2.4vw, 2rem) !important;
	background: rgba(255,255,255,.68) !important;
}

.ds-contact-form-embed form.wpcf7-form,
.ds-contact-form-embed .ds-contact-form {
	width: 100% !important;
}

.ds-contact-form-embed .ds-contact-form {
	display: grid !important;
	gap: 1rem !important;
}

.ds-contact-form-embed .ds-form-row,
.ds-contact-form-embed .ds-form-row p {
	margin: 0 !important;
}

.ds-contact-form-embed .ds-form-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: .9rem !important;
}

.ds-contact-form-embed .ds-form-row > label,
.ds-contact-form-embed .ds-form-grid > label {
	display: block !important;
	margin: 0 !important;
	font-size: .9rem !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
	color: var(--ds-ink, #2a2522) !important;
}

.ds-contact-form-embed label > span:first-child:not(.wpcf7-form-control-wrap) {
	display: block !important;
	margin: 0 0 .42rem !important;
}

.ds-contact-form-embed .wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
	margin: .42rem 0 0 !important;
}

.ds-contact-form-embed input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ds-contact-form-embed textarea,
.ds-contact-form-embed select {
	width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: .78rem .9rem !important;
	border: 1px solid rgba(42,37,34,.24) !important;
	border-radius: var(--ds-control-radius, .55rem) !important;
	background: rgba(255,255,255,.96) !important;
	color: var(--ds-ink, #2a2522) !important;
	font: inherit !important;
	font-weight: 400 !important;
	box-shadow: none !important;
}

.ds-contact-form-embed input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus,
.ds-contact-form-embed textarea:focus,
.ds-contact-form-embed select:focus {
	outline: 3px solid rgba(247,73,0,.25) !important;
	outline-offset: 1px !important;
	border-color: var(--ds-orange, #f74900) !important;
}

.ds-contact-form-embed textarea {
	min-height: 10.5rem !important;
	resize: vertical !important;
}

.ds-contact-form-embed .ds-form-label {
	margin: 0 0 .55rem !important;
	font-size: .9rem !important;
	line-height: 1.35 !important;
	font-weight: 700 !important;
}

.ds-contact-form-embed .ds-form-checks .wpcf7-form-control,
.ds-contact-form-embed .wpcf7-checkbox {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: .55rem !important;
	width: 100% !important;
}

.ds-contact-form-embed .wpcf7-list-item {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
}

.ds-contact-form-embed .ds-form-checks .wpcf7-list-item label,
.ds-contact-form-embed .wpcf7-checkbox .wpcf7-list-item label {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: .55rem !important;
	width: 100% !important;
	min-height: 2.85rem !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: .62rem .72rem !important;
	border: 1px solid rgba(42,37,34,.16) !important;
	border-radius: var(--ds-control-radius, .55rem) !important;
	background: rgba(255,255,255,.58) !important;
	font-size: .88rem !important;
	line-height: 1.3 !important;
	font-weight: 500 !important;
	cursor: pointer !important;
}

.ds-contact-form-embed input[type="checkbox"],
.ds-contact-form-embed input[type="radio"] {
	appearance: auto !important;
	-webkit-appearance: auto !important;
	display: inline-block !important;
	flex: 0 0 1.05rem !important;
	width: 1.05rem !important;
	height: 1.05rem !important;
	min-width: 1.05rem !important;
	min-height: 1.05rem !important;
	max-width: 1.05rem !important;
	max-height: 1.05rem !important;
	margin: 0 !important;
	padding: 0 !important;
	accent-color: var(--ds-orange, #f74900) !important;
}

.ds-contact-form-embed .wpcf7-list-item-label {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Consent is a sentence, not a selectable chip. */
.ds-contact-form-embed .wpcf7-acceptance .wpcf7-list-item label {
	display: flex !important;
	align-items: flex-start !important;
	gap: .6rem !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	font-size: .82rem !important;
	line-height: 1.5 !important;
	font-weight: 400 !important;
}

.ds-contact-form-embed .wpcf7-acceptance input[type="checkbox"] {
	margin-top: .16rem !important;
}

.ds-contact-form-embed .ds-form-submit {
	padding-top: .2rem !important;
}

.ds-contact-form-embed input[type="submit"],
.ds-contact-form-embed .wpcf7-submit {
	appearance: none !important;
	min-height: 3.15rem !important;
	margin: 0 !important;
	padding: .8rem 1.2rem !important;
	border: 0 !important;
	border-radius: var(--ds-control-radius, .55rem) !important;
	background: var(--ds-orange, #f74900) !important;
	color: #fff !important;
	font: inherit !important;
	font-weight: 650 !important;
	cursor: pointer !important;
}

.ds-contact-form-embed input[type="submit"]:hover,
.ds-contact-form-embed input[type="submit"]:focus-visible,
.ds-contact-form-embed .wpcf7-submit:hover,
.ds-contact-form-embed .wpcf7-submit:focus-visible {
	background: var(--ds-ink, #2a2522) !important;
	color: #fff !important;
	outline: 3px solid rgba(247,73,0,.28) !important;
	outline-offset: 2px !important;
}

.ds-contact-form-embed .wpcf7-not-valid-tip {
	margin-top: .35rem !important;
	font-size: .78rem !important;
	line-height: 1.35 !important;
}

.ds-contact-form-embed .wpcf7-response-output {
	margin: .5rem 0 0 !important;
	padding: .8rem 1rem !important;
	border-radius: var(--ds-control-radius, .55rem) !important;
	font-size: .85rem !important;
	line-height: 1.45 !important;
}

@media (max-width: 760px) {
	.ds-contact-form-embed .ds-form-grid,
	.ds-contact-form-embed .ds-form-checks .wpcf7-form-control,
	.ds-contact-form-embed .wpcf7-checkbox {
		grid-template-columns: 1fr !important;
	}

	.ds-contact-form-embed input[type="submit"],
	.ds-contact-form-embed .wpcf7-submit {
		width: 100% !important;
	}
}

/* ==========================================================
   v2.10 – protected dynamic price cards
   ========================================================== */
.ds-price-box[data-ds-price-card] .ds-price-box__subheading {
	margin-top: 1rem !important;
	margin-bottom: .45rem !important;
	font-size: .78rem !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
}

.ds-price-box[data-ds-price-card] .ds-price-box__grid > div {
	min-width: 0;
}

.ds-price-box[data-ds-price-card] strong {
	overflow-wrap: anywhere;
}

/* ==========================================================
   v2.13 – reliable Spotlight fallback + client service control
   ========================================================== */
.ds-spotlight:not([hidden]) {
	display:block !important;
	opacity:1 !important;
	transform:none !important;
	pointer-events:auto !important;
}
.ds-spotlight.is-js-controlled.is-waiting {
	opacity:0 !important;
	transform:translateY(.8rem) !important;
	pointer-events:none !important;
}
.ds-spotlight.is-js-controlled.is-visible {
	opacity:1 !important;
	transform:none !important;
	pointer-events:auto !important;
}
.ds-price-box__availability {
	display:inline-flex;
	margin:0 0 .8rem !important;
	padding:.32rem .58rem;
	border-radius:999px;
	background:var(--ds-orange,#F74900);
	color:#fff;
	font-size:.74rem;
	font-weight:700;
	letter-spacing:.05em;
	text-transform:uppercase;
}
.ds-price-box__note { margin:.8rem 0 0 !important; line-height:1.45; }

/* ==========================================================
   v2.15 – client suite: side menu, Pilates course leads,
   magazine insights and article navigation
   ========================================================== */

/* --- Custom header/navigation: direct main items, elegant side panel --- */
.ds-site-header .ds-header-inner {
	position: relative !important;
}
.ds-main-nav {
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	gap:clamp(.85rem,1.25vw,1.5rem) !important;
	width:auto !important;
	max-width:none !important;
}
.ds-main-nav > a,
.ds-main-nav-legal-toggle {
	font:inherit !important;
	font-size:clamp(.93rem,1vw,1.06rem) !important;
	font-weight:520 !important;
	line-height:1.2 !important;
	color:var(--ds-ink,#2a2522) !important;
	text-decoration:none !important;
	background:transparent !important;
	border:0 !important;
	padding:.55rem .12rem !important;
	cursor:pointer !important;
}
.ds-main-nav > a:hover,
.ds-main-nav > a:focus-visible,
.ds-main-nav-legal-toggle:hover,
.ds-main-nav-legal-toggle:focus-visible {
	color:var(--ds-orange,#F74900) !important;
	outline:none !important;
}
.ds-main-nav > a:focus-visible,
.ds-main-nav-legal-toggle:focus-visible {
	box-shadow:0 3px 0 var(--ds-orange,#F74900) !important;
}
.ds-main-nav-legal { position:relative !important; }
.ds-main-nav-legal-menu {
	position:absolute !important;
	top:calc(100% + .3rem) !important;
	right:0 !important;
	min-width:13rem !important;
	padding:.55rem !important;
	background:var(--ds-paper,#fff9f1) !important;
	border:1px solid rgba(42,37,34,.14) !important;
	border-radius:.65rem !important;
	box-shadow:0 1rem 2.6rem rgba(42,37,34,.12) !important;
	opacity:0 !important;
	visibility:hidden !important;
	pointer-events:none !important;
	transform:translateY(-.25rem) !important;
	transition:opacity .14s ease,transform .14s ease,visibility .14s !important;
	z-index:10050 !important;
}
.ds-main-nav-legal::after {
	content:""; position:absolute; left:0; right:0; top:100%; height:.65rem;
}
.ds-main-nav-legal:hover .ds-main-nav-legal-menu,
.ds-main-nav-legal:focus-within .ds-main-nav-legal-menu {
	opacity:1 !important; visibility:visible !important; pointer-events:auto !important; transform:none !important;
}
.ds-main-nav-legal-menu a {
	display:block !important;
	padding:.72rem .8rem !important;
	border-radius:.45rem !important;
	font-size:.96rem !important;
	color:var(--ds-ink,#2a2522) !important;
	text-decoration:none !important;
}
.ds-main-nav-legal-menu a:hover,
.ds-main-nav-legal-menu a:focus-visible { background:var(--ds-orange,#F74900) !important; color:#fff !important; outline:none !important; }

.ds-menu-toggle,
.ds-mobile-menu-shell { display:none; }

@media (max-width:1280px) {
	.ds-main-nav,
	.ds-site-header .ds-header-cta { display:none !important; }
	.ds-menu-toggle {
		display:inline-flex !important;
		align-items:center !important;
		justify-content:center !important;
		justify-self:end !important;
		align-self:center !important;
		width:3.25rem !important;
		height:3.25rem !important;
		padding:0 !important;
		border:0 !important;
		border-radius:.55rem !important;
		background:transparent !important;
		color:var(--ds-ink,#2a2522) !important;
		cursor:pointer !important;
	}
	.ds-menu-toggle > span,
	.ds-menu-toggle > span::before,
	.ds-menu-toggle > span::after {
		display:block; width:1.8rem; height:2px; background:currentColor; content:""; position:relative;
	}
	.ds-menu-toggle > span::before { position:absolute; top:-7px; left:0; }
	.ds-menu-toggle > span::after { position:absolute; top:7px; left:0; }
	.ds-menu-toggle:focus-visible { outline:3px solid var(--ds-orange,#F74900) !important; outline-offset:2px !important; }

	.ds-mobile-menu-shell:not([hidden]) {
		display:block !important;
		position:fixed !important;
		inset:0 !important;
		z-index:2147482000 !important;
		pointer-events:none !important;
	}
	.ds-mobile-menu-backdrop {
		position:absolute !important;
		inset:0 !important;
		width:100% !important;
		height:100% !important;
		border:0 !important;
		background:rgba(42,37,34,.34) !important;
		opacity:0 !important;
		transition:opacity .2s ease !important;
		cursor:pointer !important;
	}
	.ds-mobile-menu-panel {
		position:absolute !important;
		top:0 !important;
		right:0 !important;
		width:min(82vw,30rem) !important;
		height:100dvh !important;
		overflow-y:auto !important;
		padding:clamp(1.1rem,3vw,1.6rem) clamp(1.2rem,4vw,2rem) 2rem !important;
		background:var(--ds-paper,#fff9f1) !important;
		box-shadow:-1.5rem 0 4rem rgba(42,37,34,.16) !important;
		transform:translateX(105%) !important;
		transition:transform .22s ease !important;
		pointer-events:auto !important;
	}
	.ds-mobile-menu-shell.is-open { pointer-events:auto !important; }
	.ds-mobile-menu-shell.is-open .ds-mobile-menu-backdrop { opacity:1 !important; }
	.ds-mobile-menu-shell.is-open .ds-mobile-menu-panel { transform:none !important; }
	.ds-mobile-menu-topline { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:1rem !important; margin-bottom:clamp(2rem,7vh,4.4rem) !important; }
	.ds-mobile-menu-star { width:4.4rem !important; height:4.4rem !important; object-fit:contain !important; }
	.ds-mobile-menu-close {
		width:3rem !important; height:3rem !important; border:0 !important; border-radius:.55rem !important; background:transparent !important;
		font-size:2.1rem !important; line-height:1 !important; color:var(--ds-ink,#2a2522) !important; cursor:pointer !important;
	}
	.ds-mobile-menu-close:focus-visible { outline:3px solid var(--ds-orange,#F74900) !important; outline-offset:2px !important; }
	.ds-mobile-menu-nav { display:grid !important; gap:.2rem !important; }
	.ds-mobile-menu-nav a {
		display:block !important;
		padding:.48rem 0 !important;
		font-size:clamp(1.85rem,5.8vw,2.75rem) !important;
		font-weight:380 !important;
		line-height:1.04 !important;
		letter-spacing:-.04em !important;
		color:var(--ds-ink,#2a2522) !important;
		text-decoration:none !important;
	}
	.ds-mobile-menu-nav a:hover,
	.ds-mobile-menu-nav a:focus-visible { color:var(--ds-orange,#F74900) !important; outline:none !important; }
	.ds-mobile-menu-legal {
		margin-top:clamp(2rem,7vh,4rem) !important;
		padding-top:1.1rem !important;
		border-top:1px solid rgba(42,37,34,.16) !important;
		display:flex !important; flex-wrap:wrap !important; gap:.45rem 1rem !important;
	}
	.ds-mobile-menu-legal p { flex-basis:100% !important; margin:0 0 .25rem !important; color:var(--ds-orange,#F74900) !important; font-size:.72rem !important; font-weight:750 !important; letter-spacing:.12em !important; text-transform:uppercase !important; }
	.ds-mobile-menu-legal a { color:rgba(42,37,34,.76) !important; text-decoration:none !important; font-size:.93rem !important; }
	.ds-mobile-menu-booking { display:inline-flex !important; margin-top:1.6rem !important; }
	html.ds-menu-open, html.ds-menu-open body { overflow:hidden !important; }
}
@media (max-width:520px) { .ds-mobile-menu-panel { width:88vw !important; } }

/* --- Pilates dynamic course acquisition --- */
.ds-pilates-courses { max-width:var(--ds-content-max,1280px); margin:0 auto; }
.ds-pilates-courses__intro { max-width:52rem; margin-bottom:clamp(1.8rem,4vw,3rem); }
.ds-pilates-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.ds-pilates-course-card {
	display:flex; flex-direction:column; min-height:100%; padding:0; overflow:hidden;
	background:#fff; border:1px solid rgba(42,37,34,.14); border-top:.32rem solid var(--ds-orange,#F74900); border-radius:.28rem;
}
.ds-pilates-course-card__body { display:flex; flex:1; flex-direction:column; min-width:0; padding:clamp(1.2rem,2vw,1.7rem); }
.ds-pilates-course-card__top { position:relative; padding-right:0; }
.ds-pilates-course-card h3 { margin:.25rem 0 1rem !important; font-size:clamp(1.55rem,2.2vw,2.15rem) !important; line-height:1.05 !important; }
.ds-pilates-course-status {
	dis:block; width:100%; margin-top:auto; padding:.62rem clamp(1.2rem,2vw,1.7rem);
	background:var(--ds-orange,#F74900); color:#fff; border-radius:0;
	font-size:.72rem; line-height:1.2; font-weight:750; letter-spacing:.06em; text-transform:uppercase;
	box-sizing:border-box;
}
.ds-pilates-course-facts { display:grid; gap:.7rem; margin:0 0 1.3rem; }
.ds-pilates-course-facts div { display:grid; grid-template-columns:5.5rem 1fr; gap:.65rem; padding-top:.65rem; border-top:1px solid rgba(42,37,34,.11); }
.ds-pilates-course-facts dt { color:var(--ds-orange,#F74900); font-size:.72rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.ds-pilates-course-facts dd { margin:0; font-weight:560; }
.ds-pilates-course-cta { margin-top:auto !important; align-self:flex-start !important; }
.ds-pilates-course-empty { max-width:50rem; padding:clamp(1.4rem,3vw,2.2rem); background:#fff; border:1px solid rgba(42,37,34,.14); border-radius:.72rem; }
.ds-pilates-feature-grid { align-items:center !important; }
.ds-pilates-large-star { width:min(100%,31rem) !important; margin-inline:auto !important; }
@media(max-width:980px){ .ds-pilates-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:680px){ .ds-pilates-course-grid{grid-template-columns:1fr;} .ds-pilates-course-facts div{grid-template-columns:1fr;} }

/* --- About / magazine insights --- */
.ds-about-photo--real { overflow:hidden !important; min-height:clamp(24rem,52vw,44rem) !important; }
.ds-about-photo--real img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; display:block !important; }
.ds-insights-magazine { max-width:var(--ds-content-max,1280px); margin:0 auto; }
.ds-insights-magazine__intro { max-width:58rem; margin-bottom:clamp(2rem,4vw,3.5rem); }
.ds-insights-magazine__grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(1rem,2vw,1.7rem); }
.ds-insight-card { grid-column:span 4; min-width:0; background:#fff; border:1px solid rgba(42,37,34,.12); border-radius:.72rem; overflow:hidden; }
.ds-insight-card--lead { grid-column:span 8; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
.ds-insight-card__media { display:block; aspect-ratio:4/3; overflow:hidden; background:rgba(247,73,0,.08); }
.ds-insight-card--lead .ds-insight-card__media { aspect-ratio:auto; min-height:27rem; }
.ds-insight-card__media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.ds-insight-card:hover .ds-insight-card__media img { transform:scale(1.018); }
.ds-insight-card__placeholder { display:block; width:100%; height:100%; min-height:15rem; background:var(--ds-paper,#fff9f1); }
.ds-insight-card__body { padding:clamp(1.1rem,2vw,1.6rem); display:flex; flex-direction:column; align-items:flex-start; }
.ds-insight-card__meta { display:flex; flex-wrap:wrap; gap:.45rem .8rem; margin-bottom:.8rem; color:rgba(42,37,34,.62); font-size:.74rem; text-transform:uppercase; letter-spacing:.07em; }
.ds-insight-card h3 { margin:0 0 .85rem !important; font-size:clamp(1.45rem,2vw,2.05rem) !important; line-height:1.07 !important; }
.ds-insight-card--lead h3 { font-size:clamp(2rem,3.2vw,3.35rem) !important; }
.ds-insight-card h3 a { color:inherit; text-decoration:none; }
.ds-insight-card__body > p { margin:.1rem 0 1.15rem; line-height:1.55; }
.ds-insight-card__read { margin-top:auto; color:var(--ds-orange,#F74900); font-weight:650; text-decoration:none; }
@media(max-width:980px){ .ds-insight-card{grid-column:span 6;} .ds-insight-card--lead{grid-column:1/-1;} }
@media(max-width:680px){ .ds-insights-magazine__grid{display:block;} .ds-insight-card,.ds-insight-card--lead{display:block;margin-bottom:1rem;} .ds-insight-card--lead .ds-insight-card__media{min-height:0;aspect-ratio:4/3;} }

/* --- Single article: easy return + previous/next switching --- */
.ds-article-page { padding:clamp(2rem,5vw,5rem) clamp(1rem,3vw,2rem) clamp(4rem,8vw,7rem); background:var(--ds-paper,#fff9f1); }
.ds-article-shell { width:min(100%,56rem); margin:0 auto; }
.ds-article-top-back a,.ds-article-back { color:var(--ds-orange,#F74900); font-weight:650; text-decoration:none; }
.ds-article-title { margin:.6rem 0 .8rem !important; font-size:clamp(2.5rem,6vw,5.1rem) !important; line-height:.98 !important; letter-spacing:-.05em !important; }
.ds-article-category,.ds-article-date { color:rgba(42,37,34,.66); font-size:.82rem; }
.ds-article-featured { margin:clamp(1.6rem,4vw,3rem) 0 !important; border-radius:.72rem; overflow:hidden; }
.ds-article-content { font-size:clamp(1rem,1.2vw,1.12rem); line-height:1.72; }
.ds-article-content h2 { margin-top:2.7rem !important; }
.ds-article-navigation { margin-top:clamp(3rem,6vw,5rem); padding-top:1.4rem; border-top:1px solid rgba(42,37,34,.16); }
.ds-article-navigation__switch { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.4rem; }
.ds-article-navigation__switch a { display:flex; flex-direction:column; gap:.25rem; padding:1rem; border:1px solid rgba(42,37,34,.13); border-radius:.65rem; color:var(--ds-ink,#2a2522); text-decoration:none; background:#fff; }
.ds-article-navigation__switch a:last-child { text-align:right; }
.ds-article-navigation__switch span { color:var(--ds-orange,#F74900); font-size:.72rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
@media(max-width:680px){ .ds-article-navigation__switch{grid-template-columns:1fr;} .ds-article-navigation__switch a:last-child{text-align:left;} }

@media (prefers-reduced-motion:reduce) {
	.ds-mobile-menu-panel,.ds-mobile-menu-backdrop,.ds-insight-card__media img { transition:none !important; }
}

/* =========================================================
   v2.16 – topic-cluster article sections + optional CTA
   ========================================================= */

/* Offer-specific article cluster: same visual language as the Home carousel,
   but filtered to the matching editorial category. */
.ds-offer-blog {
	position: relative;
	overflow: hidden;
}
.ds-offer-blog::after {
	content: "";
	position: absolute;
	right: clamp(-4rem, -3vw, -2rem);
	top: clamp(1rem, 3vw, 2.5rem);
	width: clamp(8rem, 12vw, 12rem);
	aspect-ratio: 1;
	background: var(--ds-orange, #F74900);
	opacity: .055;
	-webkit-mask: var(--ds-star-mask) center / contain no-repeat;
	mask: var(--ds-star-mask) center / contain no-repeat;
	pointer-events: none;
}
.ds-offer-blog > * { position: relative; z-index: 1; }
.ds-blog-section-link {
	margin: clamp(1.4rem, 2.8vw, 2.4rem) 0 0 !important;
	text-align: right;
}
.ds-blog-section-link a {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--ds-orange, #F74900);
	font-weight: 700;
	text-decoration: none;
	text-underline-offset: .2em;
}
.ds-blog-section-link a:hover { text-decoration: underline; }
.ds-blog-section-link a:focus-visible {
	outline: 3px solid var(--ds-orange, #F74900);
	outline-offset: 4px;
	border-radius: .25rem;
}

/* Compact optional article/page CTA.
   Editorial toggle = link text. Empty link text means no markup at all. */
.ds-optional-cta {
	width: min(100%, 56rem);
	min-height: 132px;
	max-height: 150px;
	margin: clamp(2.4rem, 5vw, 4rem) auto clamp(2rem, 4vw, 3.2rem);
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1rem, 2.2vw, 1.8rem);
	padding: 0 clamp(1rem, 2.2vw, 1.6rem) 0 0;
	background: var(--ds-orange, #F74900);
	color: #fff;
	border-radius: .72rem;
	overflow: hidden;
	box-sizing: border-box;
}
.ds-optional-cta__visual {
	width: 132px;
	height: 132px;
	align-self: center;
	display: grid;
	place-items: center;
	margin-left: .15rem;
}
.ds-optional-cta__image {
	width: 116px !important;
	height: 116px !important;
	object-fit: cover !important;
	display: block !important;
	-webkit-mask: var(--ds-star-mask) center / contain no-repeat;
	mask: var(--ds-star-mask) center / contain no-repeat;
}
.ds-optional-cta__logo {
	width: 104px;
	height: 104px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	display: block;
}
.ds-optional-cta__copy {
	min-width: 0;
	display: grid;
	gap: .28rem;
}
.ds-optional-cta__title {
	font-size: clamp(1.15rem, 2vw, 1.55rem);
	line-height: 1.08;
	letter-spacing: -.02em;
	color: #fff;
}
.ds-optional-cta__text {
	font-size: clamp(.88rem, 1.2vw, 1rem);
	line-height: 1.35;
	color: rgba(255,255,255,.9);
}
.ds-optional-cta__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: .7rem 1rem;
	border: 1.5px solid #fff;
	border-radius: .55rem;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.ds-optional-cta__link:hover,
.ds-optional-cta__link:focus-visible {
	background: #fff;
	color: var(--ds-orange, #F74900);
}
.ds-optional-cta__link:focus-visible {
	outline: 3px solid #2a2522;
	outline-offset: 3px;
}

@media (max-width: 720px) {
	.ds-blog-section-link { text-align: left; }
	.ds-optional-cta {
		min-height: 0;
		max-height: none;
		grid-template-columns: 88px minmax(0, 1fr);
		gap: .85rem 1rem;
		padding: .85rem 1rem .85rem .5rem;
	}
	.ds-optional-cta__visual { width: 88px; height: 88px; }
	.ds-optional-cta__image { width: 82px !important; height: 82px !important; }
	.ds-optional-cta__logo { width: 74px; height: 74px; }
	.ds-optional-cta__link {
		grid-column: 2;
		justify-self: start;
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ds-offer-blog *, .ds-optional-cta * { scroll-behavior: auto !important; transition: none !important; }
}
/* Do not leave an unfinished topic section on an offer page when no article
   has been assigned to that category yet. */
.ds-offer-blog:has(.ds-blog-empty) { display: none !important; }

/* ==========================================================
   v2.17 – authoritative navigation + safe mobile fallback
   ========================================================== */
@media (min-width:1281px) {
  .ds-main-nav { gap:clamp(.48rem,.72vw,.9rem) !important; }
  .ds-main-nav > a,
  .ds-main-nav-legal-toggle { font-size:clamp(.82rem,.86vw,.96rem) !important; white-space:nowrap !important; }
}

@media (max-width:1280px) {
  .ds-mobile-menu-panel {
    width:min(78vw,27rem) !important;
    max-width:27rem !important;
    min-width:min(21rem,92vw) !important;
  }
  .ds-mobile-menu-topline { margin-bottom:1.35rem !important; }
  .ds-mobile-menu-star { width:3.8rem !important; height:3.8rem !important; }
  .ds-mobile-menu-nav { gap:0 !important; }
  .ds-mobile-menu-nav a {
    padding:.44rem 0 !important;
    font-size:clamp(1.45rem,4.4vw,2.15rem) !important;
    line-height:1.08 !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    white-space:normal !important;
  }
  .ds-mobile-menu-legal { margin-top:1.5rem !important; }

  /* Fallback for any old WordPress Navigation overlay that may still be cached
     by a plugin/server layer. It is styled as the same right-side drawer rather
     than as a full-screen overlay with a narrow text column. */
  .wp-block-navigation__responsive-container.is-menu-open {
    position:fixed !important;
    inset:0 0 0 auto !important;
    width:min(78vw,27rem) !important;
    max-width:27rem !important;
    height:100dvh !important;
    min-height:100dvh !important;
    padding:1.3rem 1.35rem 2rem !important;
    background:var(--ds-paper,#fff9f1) !important;
    box-shadow:-1.5rem 0 4rem rgba(42,37,34,.18) !important;
    overflow-y:auto !important;
    z-index:2147482000 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    padding-top:3.8rem !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
    max-width:none !important;
    gap:0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display:block !important;
    padding:.48rem 0 !important;
    font-size:clamp(1.45rem,4.4vw,2.15rem) !important;
    line-height:1.08 !important;
    color:var(--ds-ink,#2a2522) !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    white-space:normal !important;
    text-decoration:none !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    top:1rem !important;
    right:1rem !important;
  }
}
@media(max-width:520px){
  .ds-mobile-menu-panel,
  .wp-block-navigation__responsive-container.is-menu-open { width:86vw !important; min-width:0 !important; }
}

/* Dynamic offer-card widths when client switches individual offers off. */
@media(min-width:801px){
  .ds-offer-cards-fixed.ds-offer-count-2 .ds-offer-card-fixed { grid-column:span 6 !important; }
  .ds-offer-cards-fixed.ds-offer-count-1 .ds-offer-card-fixed { grid-column:4 / span 6 !important; }
}

/* ==========================================================
   v2.22 – stable floating utility rail + calmer Pilates cards
   ========================================================== */
:root {
	--ds-utility-right: clamp(1rem, 2vw, 2rem);
	--ds-utility-bottom: clamp(1rem, 2vw, 2rem);
	--ds-utility-size: 3.15rem;
	--ds-utility-gap: .65rem;
}

/* One visual axis for Spotlight, help and back-to-top. */
.ds-back-to-top,
.ds-accessibility-help-button {
	right: var(--ds-utility-right) !important;
	width: var(--ds-utility-size) !important;
	height: var(--ds-utility-size) !important;
	box-sizing: border-box !important;
}
.ds-back-to-top {
	bottom: var(--ds-utility-bottom) !important;
}
.ds-accessibility-help-button {
	bottom: calc(var(--ds-utility-bottom) + var(--ds-utility-size) + var(--ds-utility-gap)) !important;
}
.ds-spotlight {
	right: var(--ds-utility-right) !important;
	bottom: calc(var(--ds-utility-bottom) + (var(--ds-utility-size) + var(--ds-utility-gap)) * 2) !important;
}
.ds-spotlight.is-compact {
	width: var(--ds-utility-size) !important;
}
.ds-spotlight.is-expanded {
	width: min(22rem, calc(100vw - 2rem)) !important;
}
.ds-spotlight-compact {
	width: var(--ds-utility-size) !important;
	height: var(--ds-utility-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	display: grid !important;
	place-items: center !important;
	cursor: pointer !important;
}
.ds-spotlight-compact-star {
	display: grid !important;
	place-items: center !important;
	width: var(--ds-utility-size) !important;
	height: var(--ds-utility-size) !important;
	background: var(--ds-orange, #F74900) !important;
	color: #fff !important;
	-webkit-mask: var(--ds-star-mask) center / contain no-repeat !important;
	mask: var(--ds-star-mask) center / contain no-repeat !important;
}
.ds-spotlight-compact-star > span {
	font-size: 1.55rem !important;
	line-height: 1 !important;
	font-weight: 800 !important;
	transform: translateY(-.02em) !important;
}
.ds-spotlight.is-compact .ds-spotlight-teaser {
	display: none !important;
}
.ds-spotlight.is-expanded .ds-spotlight-compact {
	display: none !important;
}
.ds-spotlight.is-expanded .ds-spotlight-teaser {
	display: grid !important;
}

/* Pilates course availability belongs to the card, not on top of its copy. */
.ds-pilates-course-card__body > .ds-pilates-course-actions {
	margin-top: auto !important;
	padding-top: 1rem !important;
}
.ds-pilates-course-card .ds-pilates-course-cta {
	margin-top: 0 !important;
}

@media (max-width: 680px) {
	:root { --ds-utility-size: 3rem; --ds-utility-gap: .55rem; }
}

/* ==========================================================
   v2.23 – rescue master: one vertical rhythm + page-specific fixes
   ========================================================== */
:root {
	--ds-rhythm-section: clamp(5.5rem, 7.5vw, 7.8rem);
	--ds-rhythm-section-compact: clamp(4.4rem, 6vw, 6.25rem);
	--ds-rhythm-edge: clamp(1.25rem, 3vw, 2.25rem);
	--ds-content-max: 1180px;
}

/* WordPress may still carry the historic global "first child = 0 padding" rule.
   Only true photo heroes are allowed to touch the header. Every no-hero page
   receives an intentional first-page breathing zone. */
.ds-no-hero-page {
	margin-top: 0 !important;
	padding-top: var(--ds-rhythm-section) !important;
	padding-bottom: var(--ds-rhythm-section) !important;
}
.ds-no-hero-page > :first-child,
.ds-no-hero-page > .wp-block-group:first-child,
.ds-no-hero-page > .ds-grid:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Consistent vertical rhythm for the high-level Doris sections. */
.ds-offer-template-main > .ds-content-band,
.ds-offer-template-main > .ds-section,
.ds-offer-template-main > .ds-massage-detail-section,
.ds-template-clean > .ds-content-band,
.ds-template-clean > .ds-section,
.ds-about-depth,
.ds-pilates-card-interface > .ds-content-band,
.ds-pilates-card-interface > .ds-massage-detail-section {
	padding-top: var(--ds-rhythm-section) !important;
	padding-bottom: var(--ds-rhythm-section) !important;
}
.ds-offer-template-main > .ds-photo-hero + .ds-content-band,
.ds-pilates-page > .ds-photo-hero + .ds-content-band {
	padding-top: clamp(6.5rem, 9vw, 9rem) !important;
}

/* Header stays usable below the WordPress toolbar for Doris/admins. */
.admin-bar .ds-site-header { top: 32px !important; }
@media (max-width: 782px) {
	.admin-bar .ds-site-header { top: 46px !important; }
}

/* --- Main navigation: About submenu mirrors the legal submenu. --- */
.ds-main-nav-about { position: relative !important; display:flex !important; align-items:center !important; }
.ds-main-nav-about-toggle {
	font: inherit !important;
	font-size: clamp(.82rem,.86vw,.96rem) !important;
	font-weight: 520 !important;
	line-height: 1.2 !important;
	color: var(--ds-ink,#2a2522) !important;
	text-decoration: none !important;
	padding: .55rem .12rem !important;
	white-space: nowrap !important;
}
.ds-main-nav-about-toggle:hover,
.ds-main-nav-about-toggle:focus-visible { color:var(--ds-orange,#F74900) !important; outline:none !important; }
.ds-main-nav-about-toggle:focus-visible { box-shadow:0 3px 0 var(--ds-orange,#F74900) !important; }
.ds-main-nav-about-menu {
	position:absolute !important;
	top:calc(100% + .3rem) !important;
	left:0 !important;
	min-width:13rem !important;
	padding:.55rem !important;
	background:var(--ds-paper,#fff9f1) !important;
	border:1px solid rgba(42,37,34,.14) !important;
	border-radius:.45rem !important;
	box-shadow:0 1rem 2.6rem rgba(42,37,34,.12) !important;
	opacity:0 !important;
	visibility:hidden !important;
	pointer-events:none !important;
	transform:translateY(-.25rem) !important;
	transition:opacity .14s ease,transform .14s ease,visibility .14s !important;
	z-index:10050 !important;
}
.ds-main-nav-about::after { content:""; position:absolute; left:0; right:0; top:100%; height:.65rem; }
.ds-main-nav-about:hover .ds-main-nav-about-menu,
.ds-main-nav-about:focus-within .ds-main-nav-about-menu {
	opacity:1 !important; visibility:visible !important; pointer-events:auto !important; transform:none !important;
}
.ds-main-nav-about-menu a {
	display:block !important;
	padding:.72rem .8rem !important;
	border-radius:.3rem !important;
	font-size:.96rem !important;
	color:var(--ds-ink,#2a2522) !important;
	text-decoration:none !important;
}
.ds-main-nav-about-menu a:hover,
.ds-main-nav-about-menu a:focus-visible { background:var(--ds-orange,#F74900) !important; color:#fff !important; outline:none !important; }
.ds-mobile-menu-group { display:grid !important; gap:0 !important; margin:.7rem 0 !important; padding:.8rem 0 !important; border-top:1px solid rgba(42,37,34,.12); border-bottom:1px solid rgba(42,37,34,.12); }
.ds-mobile-menu-group__label { margin:0 0 .35rem !important; color:var(--ds-orange,#F74900) !important; font-size:.72rem !important; font-weight:750 !important; letter-spacing:.12em !important; text-transform:uppercase !important; }
.ds-mobile-menu-group a { padding:.34rem 0 !important; }

/* --- Pilates: deliberate breathing space and editorial photo accents. --- */
.ds-pilates-page > .ds-pilates-seo-intro {
	padding-top: clamp(7rem, 9vw, 9.25rem) !important;
	padding-bottom: clamp(5.75rem, 7vw, 7.25rem) !important;
}
.ds-pilates-page > .ds-pilates-course-band,
.ds-pilates-page > .ds-pilates-feature,
.ds-pilates-page > .ds-pilates-benefit-band,
.ds-pilates-page > .ds-testimonial-section,
.ds-pilates-page > .ds-offer-blog,
.ds-pilates-page > .ds-pilates-booking-cta {
	padding-top: var(--ds-rhythm-section) !important;
	padding-bottom: var(--ds-rhythm-section) !important;
}
.ds-pilates-feature-grid { align-items:center !important; gap:clamp(2.5rem,6vw,6rem) !important; }
.ds-pilates-star-photo {
	width:min(100%, 23rem) !important;
	aspect-ratio:1 !important;
	margin:0 auto !important;
	overflow:hidden !important;
	-webkit-mask:var(--ds-star-mask) center / contain no-repeat !important;
	mask:var(--ds-star-mask) center / contain no-repeat !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
}
.ds-pilates-star-photo img {
	width:100% !important;
	height:100% !important;
	object-fit:cover !important;
	display:block !important;
}
.ds-pilates-feature-copy { max-width:46rem !important; }
.ds-pilates-benefit-band > .ds-grid { align-items:center !important; gap:clamp(2.5rem,5vw,5.25rem) !important; }
.ds-pilates-third-photo {
	width:min(100%, 24rem) !important;
	aspect-ratio:4 / 5 !important;
	margin:0 0 0 auto !important;
	overflow:hidden !important;
	border-radius:.18rem !important;
	background:#fff !important;
}
.ds-pilates-third-photo img { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; }

/* Course cards: status is a footer strip, never an overlay. */
.ds-pilates-course-band .ds-pilates-courses { width:min(100%, var(--ds-content-max)) !important; margin-inline:auto !important; }
.ds-pilates-courses__intro { max-width:54rem !important; margin-bottom:clamp(2.6rem,5vw,4rem) !important; }
.ds-pilates-course-grid { align-items:stretch !important; gap:clamp(1.15rem,2.2vw,1.75rem) !important; }
.ds-pilates-course-card {
	position:relative !important;
	display:flex !important;
	flex-direction:column !important;
	height:100% !important;
	min-width:0 !important;
	overflow:hidden !important;
	border-radius:.18rem !important;
	border:1px solid rgba(42,37,34,.13) !important;
	border-top:4px solid var(--ds-orange,#F74900) !important;
	box-shadow:none !important;
	background:#fff !important;
}
.ds-pilates-course-card__body { flex:1 1 auto !important; min-width:0 !important; padding:clamp(1.35rem,2.1vw,1.8rem) !important; }
.ds-pilates-course-card h3 { overflow-wrap:anywhere !important; }
.ds-pilates-course-actions { margin-top:auto !important; padding-top:1.35rem !important; }
.ds-pilates-course-status {
	display:block !important;
	position:static !important;
	inset:auto !important;
	width:100% !important;
	margin:0 !important;
	padding:.72rem clamp(1.35rem,2.1vw,1.8rem) !important;
	border-radius:0 !important;
	transform:none !important;
	z-index:auto !important;
	background:var(--ds-orange,#F74900) !important;
	color:#fff !important;
	font-size:.72rem !important;
	font-weight:750 !important;
	line-height:1.25 !important;
	letter-spacing:.055em !important;
	text-transform:uppercase !important;
	white-space:normal !important;
}
.ds-pilates-course-description {
	margin:0 0 1.15rem !important;
	font-size:.94rem !important;
	line-height:1.55 !important;
	color:color-mix(in srgb, var(--ds-ink,#2a2522) 82%, transparent) !important;
}
.ds-pilates-course-bring,
.ds-pilates-course-note {
	margin:1rem 0 !important;
	padding:1rem 1.1rem !important;
	background:var(--ds-paper,#fff9f1) !important;
	border:0 !important;
	border-radius:.14rem !important;
}
.ds-pilates-course-bring h4,
.ds-pilates-course-note h4 {
	margin:0 0 .45rem !important;
	font-size:.78rem !important;
	font-weight:750 !important;
	letter-spacing:.09em !important;
	text-transform:uppercase !important;
}
.ds-pilates-course-bring ul { margin:0 !important; padding-left:1.15rem !important; font-size:.94rem !important; line-height:1.55 !important; }
.ds-pilates-course-note p { margin:0 !important; font-size:.94rem !important; line-height:1.55 !important; }

/* The last Pilates CTA uses the same clean orange-band language as the rest of the site. */
.ds-pilates-booking-cta {
	background:var(--ds-orange,#F74900) !important;
	color:#fff !important;
}
.ds-pilates-booking-cta h2,
.ds-pilates-booking-cta p,
.ds-pilates-booking-cta .ds-kicker { color:#fff !important; }
.ds-pilates-booking-cta .ds-cta-inner { max-width:58rem !important; margin-inline:auto !important; text-align:center !important; }
.ds-pilates-booking-cta .wp-block-buttons { justify-content:center !important; }
.ds-pilates-booking-cta .wp-block-button__link { background:#fff !important; color:var(--ds-orange,#F74900) !important; }
.ds-pilates-booking-cta .wp-block-button__link:hover { background:var(--ds-ink,#2a2522) !important; color:#fff !important; }

/* --- Massage rescue: two-column layout, star + price card stay together. --- */
.ds-offer-template-main .ds-massage-detail-section {
	position:relative !important;
	width:100% !important;
	margin:0 !important;
	padding-inline:var(--ds-rhythm-edge) !important;
	overflow:hidden !important;
}
.ds-offer-template-main .ds-massage-detail-section + .ds-massage-detail-section {
	border-top:3px solid var(--ds-orange,#F74900) !important;
}
.ds-offer-template-main .ds-massage-detail-grid {
	display:grid !important;
	grid-template-columns:minmax(15.5rem,.8fr) minmax(0,1.45fr) !important;
	gap:clamp(3rem,6vw,6rem) !important;
	align-items:start !important;
	width:min(100%, var(--ds-content-max)) !important;
	max-width:var(--ds-content-max) !important;
	margin:0 auto !important;
	padding:0 !important;
}
.ds-offer-template-main .ds-massage-detail-visual,
.ds-offer-template-main .ds-massage-detail-content {
	grid-column:auto !important;
	min-width:0 !important;
	width:auto !important;
	max-width:none !important;
	margin:0 !important;
}
.ds-offer-template-main .ds-massage-detail-visual {
	position:relative !important;
	top:auto !important;
	display:flex !important;
	flex-direction:column !important;
	align-items:center !important;
	justify-content:flex-start !important;
	transform:none !important;
	z-index:1 !important;
}
.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star {
	position:relative !important;
	inset:auto !important;
	transform:none !important;
	z-index:2 !important;
	width:min(13rem,72%) !important;
	max-width:13rem !important;
	aspect-ratio:1 !important;
	margin:0 auto -3.6rem !important;
	display:block !important;
}
.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star img {
	width:100% !important;
	height:100% !important;
	object-fit:cover !important;
}
.ds-offer-template-main .ds-massage-detail-visual .ds-price-box {
	position:relative !important;
	inset:auto !important;
	transform:none !important;
	z-index:1 !important;
	width:100% !important;
	max-width:22rem !important;
	min-width:0 !important;
	height:auto !important;
	min-height:0 !important;
	margin:0 auto !important;
	padding:5.1rem clamp(1.35rem,2.3vw,2rem) clamp(1.45rem,2.4vw,2rem) !important;
	box-sizing:border-box !important;
	overflow:visible !important;
}
.ds-offer-template-main .ds-massage-detail-visual .ds-price-box * { max-width:100% !important; overflow-wrap:anywhere !important; }
.ds-offer-template-main .ds-massage-detail-content { padding-top:clamp(.35rem,1vw,1rem) !important; }
.ds-offer-template-main .ds-massage-detail-content h2 {
	font-size:clamp(2.45rem,4.4vw,4.85rem) !important;
	line-height:1.02 !important;
	max-width:15ch !important;
	margin:.2rem 0 1.45rem !important;
}
.ds-offer-template-main .ds-massage-detail-content .ds-lead { max-width:48rem !important; }
.ds-massage-types .ds-offer-cards-fixed { margin-top:clamp(2.5rem,5vw,4rem) !important; }
.ds-massage-finder { border-top:0 !important; }

/* --- Offer FAQ transition: line/marker only, never an orphan star. --- */
.ds-offer-faq-divider {
	margin:0 !important;
	padding:clamp(2.4rem,4vw,3.7rem) var(--ds-rhythm-edge) 0 !important;
	background:var(--ds-paper,#fff9f1) !important;
}
.ds-offer-faq-divider__inner { width:min(100%,var(--ds-content-max)) !important; margin:0 auto !important; display:flex !important; align-items:center !important; gap:.9rem !important; }
.ds-offer-faq-divider__line { display:block !important; height:2px !important; flex:1 1 auto !important; background:var(--ds-orange,#F74900) !important; }
.ds-offer-faq-divider__mark { display:block !important; width:1.3rem !important; height:.42rem !important; flex:0 0 auto !important; border-radius:999px !important; background:var(--ds-orange,#F74900) !important; }
.ds-offer-faq-divider + .ds-offer-faq { padding-top:clamp(3.2rem,5vw,5rem) !important; }

/* --- Testimonials: give the section room instead of sticking to its predecessor. --- */
.ds-offer-template-main .ds-testimonial-section,
.ds-pilates-page .ds-testimonial-section {
	margin-top:0 !important;
	padding-top:var(--ds-rhythm-section) !important;
	padding-bottom:var(--ds-rhythm-section) !important;
}
.ds-testimonial-section .wp-block-spacer:first-child { height:0 !important; display:none !important; }

/* --- Über mich: smaller hierarchy, real image, balanced split. --- */
.ds-about-hero {
	padding:clamp(5.5rem,7vw,7.5rem) var(--ds-rhythm-edge) !important;
	background:var(--ds-paper,#fff9f1) !important;
	overflow:hidden !important;
}
.ds-about-hero-grid {
	display:grid !important;
	grid-template-columns:minmax(18rem,.82fr) minmax(0,1.18fr) !important;
	gap:clamp(3rem,7vw,7rem) !important;
	align-items:center !important;
	width:min(100%,var(--ds-content-max)) !important;
	max-width:var(--ds-content-max) !important;
	margin:0 auto !important;
	min-height:0 !important;
}
.ds-about-photo--real {
	min-height:0 !important;
	height:auto !important;
	aspect-ratio:4 / 5 !important;
	overflow:hidden !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
}
.ds-about-photo--real img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; display:block !important; }
.ds-about-copy { min-width:0 !important; max-width:42rem !important; }
.ds-about-copy h1 {
	margin:.25rem 0 1.6rem !important;
	font-size:clamp(3rem,5.4vw,5.6rem) !important;
	line-height:.99 !important;
	letter-spacing:-.05em !important;
	overflow-wrap:normal !important;
}
.ds-about-copy h1 span { font-size:.64em !important; line-height:1.08 !important; letter-spacing:-.035em !important; }
.ds-about-depth { padding-inline:var(--ds-rhythm-edge) !important; }
.ds-about-depth-grid { width:min(100%,var(--ds-content-max)) !important; max-width:var(--ds-content-max) !important; margin-inline:auto !important; }

/* --- Einblicke / Magazin: compact masonry with staged loading. --- */
.ds-insights-page.ds-no-hero-page { padding-inline:0 !important; }
.ds-insights-page > .ds-insights-band { padding:0 var(--ds-rhythm-edge) !important; background:var(--ds-paper-warm,#F6EBDD) !important; }
.ds-insights-magazine { width:min(100%,var(--ds-content-max)) !important; max-width:var(--ds-content-max) !important; margin:0 auto !important; }
.ds-insights-magazine__intro { max-width:52rem !important; margin:0 0 clamp(2.8rem,5vw,4.2rem) !important; }
.ds-insights-magazine__intro h1 {
	font-size:clamp(2.9rem,5.4vw,5.6rem) !important;
	line-height:1 !important;
	letter-spacing:-.045em !important;
	margin:.25rem 0 1.35rem !important;
}
.ds-insights-magazine__grid {
	display:block !important;
	column-count:3 !important;
	column-gap:clamp(1rem,2vw,1.5rem) !important;
}
.ds-insight-card,
.ds-insight-card--lead {
	display:inline-block !important;
	width:100% !important;
	margin:0 0 clamp(1rem,2vw,1.5rem) !important;
	break-inside:avoid !important;
	-webkit-column-break-inside:avoid !important;
	page-break-inside:avoid !important;
	border-radius:.28rem !important;
	box-shadow:none !important;
	vertical-align:top !important;
}
.ds-insight-card__media,
.ds-insight-card--lead .ds-insight-card__media {
	display:block !important;
	width:100% !important;
	min-height:0 !important;
	aspect-ratio:4 / 3 !important;
	overflow:hidden !important;
}
.ds-insight-card__media img { width:100% !important; height:100% !important; object-fit:cover !important; }
.ds-insight-card__body { padding:clamp(1rem,1.8vw,1.35rem) !important; }
.ds-insight-card h2 { margin:0 0 .65rem !important; font-size:clamp(1.28rem,1.7vw,1.75rem) !important; line-height:1.12 !important; }
.ds-insight-card h2 a { color:inherit !important; text-decoration:none !important; }
.ds-insight-card__body > p { margin:.1rem 0 .9rem !important; font-size:.94rem !important; line-height:1.52 !important; }
.ds-insight-card__read { font-size:.9rem !important; }
.ds-insights-loader {
	width:max-content !important;
	max-width:100% !important;
	margin:clamp(2rem,4vw,3rem) auto 0 !important;
	padding:.65rem .9rem !important;
	font-size:.82rem !important;
	color:rgba(42,37,34,.68) !important;
	background:rgba(255,255,255,.65) !important;
	border-radius:999px !important;
}
.ds-insights-loader span { display:inline-block !important; width:.75rem !important; height:.75rem !important; margin-right:.45rem !important; border:1.5px solid rgba(42,37,34,.25) !important; border-top-color:var(--ds-orange,#F74900) !important; border-radius:50% !important; animation:ds-insights-spin 1.25s linear infinite !important; vertical-align:-.08rem !important; }
@keyframes ds-insights-spin { to { transform:rotate(360deg); } }

/* --- Legal + contact pages: never glue the first heading to the header. --- */
.ds-legal-page,
.ds-legal-shell,
.ds-contact-page { overflow:visible !important; }
.ds-legal-page { width:min(100%,52rem) !important; max-width:52rem !important; margin:0 auto !important; }
.ds-legal-page h1,
.ds-legal-heading h1 {
	max-width:100% !important;
	margin:.25rem 0 clamp(2rem,4vw,3.2rem) !important;
	font-size:clamp(3.5rem,6.8vw,6.7rem) !important;
	line-height:.96 !important;
	letter-spacing:-.052em !important;
	overflow-wrap:anywhere !important;
}
.ds-legal-page h2,
.ds-legal-content h2 {
	margin:clamp(3.2rem,5vw,4.5rem) 0 1.15rem !important;
	font-size:clamp(2rem,3.7vw,3.6rem) !important;
	line-height:1.04 !important;
	letter-spacing:-.035em !important;
}
.ds-legal-page p { line-height:1.7 !important; }
.ds-legal-shell { width:100% !important; max-width:none !important; padding-inline:var(--ds-rhythm-edge) !important; }
.ds-legal-shell > * { width:min(100%,var(--ds-content-max)) !important; max-width:var(--ds-content-max) !important; margin-inline:auto !important; }
.ds-imprint-contact { margin-top:clamp(2rem,4vw,3.5rem) !important; }
.ds-imprint-contact .wp-block-media-text {
	display:grid !important;
	grid-template-columns:minmax(0,1.1fr) minmax(16rem,.7fr) !important;
	gap:clamp(2.5rem,5vw,5rem) !important;
	align-items:center !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
	padding:clamp(1.5rem,3.2vw,3rem) !important;
}
.ds-imprint-contact .wp-block-media-text__content { padding:0 !important; }
.ds-imprint-contact .wp-block-media-text__media { margin:0 !important; overflow:hidden !important; aspect-ratio:4/5 !important; }
.ds-imprint-contact .wp-block-media-text__media img { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; }
.ds-imprint-credits {
	display:grid !important;
	grid-template-columns:repeat(2,minmax(0,1fr)) !important;
	gap:clamp(1.5rem,4vw,4rem) !important;
	margin-top:clamp(2.4rem,4vw,3.8rem) !important;
	padding:clamp(1.6rem,3vw,2.4rem) 0 !important;
	border-top:1px solid rgba(42,37,34,.16) !important;
	border-bottom:1px solid rgba(42,37,34,.16) !important;
}
.ds-imprint-credits p { margin:0 !important; }
.ds-legal-content { width:min(100%,52rem) !important; max-width:52rem !important; margin:clamp(3rem,5vw,5rem) 0 0 !important; }
.ds-contact-page { padding-inline:var(--ds-rhythm-edge) !important; }
.ds-contact-page > .ds-grid { width:min(100%,var(--ds-content-max)) !important; max-width:var(--ds-content-max) !important; margin-inline:auto !important; gap:clamp(2.5rem,5vw,5rem) !important; align-items:start !important; }
.ds-contact-copy h1 { font-size:clamp(3rem,5vw,5.4rem) !important; line-height:1 !important; margin:.3rem 0 1.4rem !important; }
.ds-contact-card { padding:clamp(1.5rem,3vw,2.6rem) !important; }
.ds-contact-form { display:grid !important; gap:1.1rem !important; }
.ds-contact-form > p,
.ds-contact-form fieldset { margin:0 !important; }
.ds-contact-form input[type="text"],
.ds-contact-form input[type="email"],
.ds-contact-form textarea { width:100% !important; min-height:3rem !important; padding:.78rem .85rem !important; border:1px solid rgba(42,37,34,.24) !important; background:#fff !important; color:var(--ds-ink,#2a2522) !important; font:inherit !important; }
.ds-contact-form textarea { min-height:11rem !important; resize:vertical !important; }
.ds-contact-form fieldset { padding:1rem 0 !important; border:0 !important; border-top:1px solid rgba(42,37,34,.13) !important; border-bottom:1px solid rgba(42,37,34,.13) !important; }
.ds-contact-form fieldset label { display:inline-flex !important; gap:.4rem !important; align-items:center !important; margin:.25rem 1rem .25rem 0 !important; }

@media (max-width: 980px) {
	.ds-offer-template-main .ds-massage-detail-grid,
	.ds-about-hero-grid { grid-template-columns:1fr !important; }
	.ds-offer-template-main .ds-massage-detail-visual { width:min(100%,24rem) !important; margin:0 auto !important; }
	.ds-about-photo--real { width:min(100%,34rem) !important; aspect-ratio:5/4 !important; }
	.ds-about-copy { max-width:46rem !important; }
	.ds-insights-magazine__grid { column-count:2 !important; }
	.ds-imprint-contact .wp-block-media-text { grid-template-columns:1fr !important; }
	.ds-imprint-contact .wp-block-media-text__media { width:min(100%,30rem) !important; }
}

@media (max-width: 680px) {
	:root { --ds-rhythm-section:clamp(4.4rem,14vw,5.7rem); --ds-rhythm-section-compact:clamp(3.6rem,11vw,4.7rem); }
	.ds-pilates-page > .ds-pilates-seo-intro { padding-top:var(--ds-rhythm-section) !important; padding-bottom:var(--ds-rhythm-section) !important; }
	.ds-pilates-feature-grid,
	.ds-pilates-benefit-band > .ds-grid { gap:2.2rem !important; }
	.ds-pilates-star-photo { width:min(78vw,20rem) !important; }
	.ds-pilates-third-photo { width:100% !important; max-width:28rem !important; margin:0 !important; aspect-ratio:4/3 !important; }
	.ds-offer-template-main .ds-massage-detail-content h2 { font-size:clamp(2.25rem,11vw,3.45rem) !important; }
	.ds-offer-template-main .ds-massage-detail-visual .ds-massage-star { width:min(11rem,58vw) !important; margin-bottom:-3rem !important; }
	.ds-offer-template-main .ds-massage-detail-visual .ds-price-box { padding-top:4.5rem !important; }
	.ds-insights-magazine__grid { column-count:1 !important; }
	.ds-insights-magazine__intro h1 { font-size:clamp(2.65rem,12vw,4.1rem) !important; }
	.ds-imprint-credits { grid-template-columns:1fr !important; }
	.ds-legal-page h1,
	.ds-legal-heading h1 { font-size:clamp(3rem,14vw,4.6rem) !important; }
	.ds-legal-page h2,
	.ds-legal-content h2 { font-size:clamp(2rem,10vw,3rem) !important; }
	.ds-about-copy h1 { font-size:clamp(2.75rem,12vw,4.2rem) !important; }
	.ds-about-photo--real { aspect-ratio:4/3 !important; }
	.ds-contact-copy h1 { font-size:clamp(2.75rem,12vw,4.2rem) !important; }
}

@media (prefers-reduced-motion: reduce) {
	.ds-insights-loader span { animation:none !important; }
}
.ds-insight-card--queued:not([hidden]) { opacity:0 !important; transform:translateY(12px) !important; }
.ds-insight-card--queued.is-revealed:not([hidden]) { opacity:1 !important; transform:none !important; transition:opacity .42s ease, transform .42s ease !important; }
@media (prefers-reduced-motion: reduce) {
	.ds-insight-card--queued:not([hidden]), .ds-insight-card--queued.is-revealed:not([hidden]) { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ==========================================================
   v2.24 final – consistent header typography + imprint cards
   ========================================================== */
.ds-site-header,
.ds-site-header *,
.ds-header-brand-zone,
.ds-wordmark,
.ds-main-nav,
.ds-main-nav button,
.ds-mobile-menu-panel,
.ds-mobile-menu-panel * {
	font-family:'Poppins Local',Poppins,Avenir,'Helvetica Neue',Helvetica,Arial,sans-serif !important;
}
.ds-wordmark .ds-brand-name { font-weight:650 !important; letter-spacing:-.025em !important; }
.ds-wordmark .ds-brand-sub { font-weight:350 !important; letter-spacing:0 !important; }
.ds-main-nav > a,
.ds-main-nav-about-toggle,
.ds-main-nav-legal-toggle { font-weight:560 !important; letter-spacing:-.018em !important; }

.ds-imprint-authorisations {
	display:grid !important;
	grid-template-columns:repeat(2,minmax(0,1fr)) !important;
	gap:clamp(1rem,2vw,1.6rem) !important;
	margin-top:clamp(2rem,4vw,3.4rem) !important;
}
.ds-imprint-authorisation {
	min-width:0 !important;
	padding:clamp(1.4rem,2.8vw,2rem) !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
	border-top:4px solid var(--ds-orange,#F74900) !important;
}
.ds-imprint-authorisation h3 { margin:.15rem 0 .8rem !important; font-size:clamp(1.75rem,2.8vw,2.65rem) !important; }
.ds-imprint-authorisation p:not(.ds-kicker) { line-height:1.6 !important; }
.ds-imprint-authorisation a { color:var(--ds-orange,#F74900) !important; font-weight:650 !important; text-decoration:none !important; }
.ds-imprint-authorisation a:hover { text-decoration:underline !important; text-underline-offset:.18em !important; }

@media(max-width:680px){
	.ds-imprint-authorisations { grid-template-columns:1fr !important; }
}

/* ==========================================================
   v2.24.4 – final visual rescue: nav, no-hero rhythm, offers,
   offer insights, Pantarei media, About + legal alignment
   ========================================================== */

/* Header: every navigation item uses one exact typographic rule. */
.ds-main-nav,
.ds-main-nav > a,
.ds-main-nav-about-toggle,
.ds-main-nav-legal-toggle,
.ds-main-nav-about-menu a,
.ds-main-nav-legal-menu a {
	font-family:'Poppins Local',Poppins,Avenir,'Helvetica Neue',Helvetica,Arial,sans-serif !important;
}
.ds-main-nav > a,
.ds-main-nav-about-toggle,
.ds-main-nav-legal-toggle {
	font-size:.9rem !important;
	font-weight:600 !important;
	line-height:1.2 !important;
	letter-spacing:-.012em !important;
	font-style:normal !important;
	text-transform:none !important;
	white-space:nowrap !important;
	padding:.55rem .08rem !important;
	appearance:none !important;
}
.ds-main-nav-about-toggle span,
.ds-main-nav-legal-toggle span { font:inherit !important; font-size:.88em !important; }
@media (min-width:1281px) {
	.ds-main-nav > a,
	.ds-main-nav-about-toggle,
	.ds-main-nav-legal-toggle { font-size:.9rem !important; }
}

/* NO-HERO pages: one reliable start position below the header, regardless of
   older global "main padding-top:0" rescue rules. */
body.page .wp-site-blocks > main.ds-no-hero-page,
body.page .wp-site-blocks > .ds-no-hero-page,
.wp-site-blocks > header.wp-block-template-part + main.ds-no-hero-page,
.wp-site-blocks > .wp-block-template-part + main.ds-no-hero-page,
main.ds-no-hero-page {
	margin-top:0 !important;
	margin-block-start:0 !important;
	padding-top:clamp(5.4rem,7vw,7.4rem) !important;
	padding-bottom:clamp(5rem,7vw,7rem) !important;
}
main.ds-no-hero-page > :first-child,
main.ds-no-hero-page > :first-child > :first-child {
	margin-top:0 !important;
	margin-block-start:0 !important;
}

/* Legal pages: long titles stay readable and never get clipped/wrapped into a
   stray final character on desktop. Body copy stays at a comfortable measure. */
.ds-legal-page {
	width:min(100%,60rem) !important;
	max-width:60rem !important;
	margin-inline:auto !important;
}
.ds-legal-page > h1,
.ds-legal-heading > h1 {
	font-size:clamp(3.5rem,5vw,4.9rem) !important;
	line-height:.98 !important;
	letter-spacing:-.045em !important;
	max-width:100% !important;
	margin:0 0 clamp(2.4rem,4vw,3.6rem) !important;
	word-break:normal !important;
	overflow-wrap:normal !important;
	hyphens:none !important;
}
.ds-legal-page > p,
.ds-legal-page > h2 { max-width:52rem !important; }
.ds-legal-page > h2 { margin-top:clamp(3.5rem,5vw,4.8rem) !important; }

/* Impressum: all major sections share one left edge. Berufsbezeichnung is no
   longer a narrow, separately indented column. */
.ds-imprint-page > .ds-legal-heading,
.ds-imprint-page > .ds-imprint-contact,
.ds-imprint-page > .ds-imprint-credits,
.ds-imprint-page > .ds-legal-content {
	width:min(100%,var(--ds-content-max)) !important;
	max-width:var(--ds-content-max) !important;
	margin-left:auto !important;
	margin-right:auto !important;
}
.ds-imprint-page .ds-legal-content {
	margin-top:clamp(3.2rem,5vw,5rem) !important;
}
.ds-imprint-page .ds-legal-content > h2,
.ds-imprint-page .ds-legal-content > p {
	max-width:56rem !important;
}
.ds-imprint-page .ds-imprint-authorisations {
	width:100% !important;
	max-width:none !important;
	margin-left:0 !important;
	margin-right:0 !important;
}

/* Offer cards: dynamic block must occupy the full 12-column parent grid. This
   fixes the single active Massage card being pushed into a narrow right column. */
.ds-massage-types > .ds-grid > .ds-offer-cards-fixed,
.ds-offer-intro > .ds-grid > .ds-offer-cards-fixed,
.ds-massage-types .ds-offer-cards-editable-block {
	grid-column:1 / -1 !important;
	width:100% !important;
	max-width:100% !important;
	margin:clamp(3.4rem,5vw,4.8rem) 0 0 !important;
}
@media (min-width:801px) {
	.ds-offer-cards-fixed.ds-offer-count-1 .ds-offer-card-fixed {
		grid-column:4 / span 6 !important;
	}
	.ds-offer-cards-fixed.ds-offer-count-2 .ds-offer-card-fixed {
		grid-column:span 6 !important;
	}
}

/* Offer detail pages: no visual is allowed to be clipped by its section. */
.ds-offer-template-main .ds-massage-detail-section { overflow:visible !important; }
.ds-offer-template-main .ds-massage-detail-grid { position:relative !important; }
.ds-offer-template-main .ds-massage-detail-visual { overflow:visible !important; }

/* Pantarei detail imagery: image + price belong to the visual column. The image
   itself is contained within the star, so faces/hands are not chopped off. */
.ds-service--pantarei_session .ds-massage-star img,
.ds-service--pantarei_companion .ds-massage-star img,
.ds-service--pantarei_leadership .ds-massage-star img {
	object-fit:contain !important;
	object-position:center center !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
}
.ds-service--pantarei_session .ds-massage-star,
.ds-service--pantarei_companion .ds-massage-star,
.ds-service--pantarei_leadership .ds-massage-star {
	overflow:hidden !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
}

/* Offer insights: exactly the Home carousel language, compact and embedded. */
.ds-offer-blog {
	padding-top:var(--ds-rhythm-section) !important;
	padding-bottom:var(--ds-rhythm-section) !important;
}
.ds-offer-blog > .ds-grid {
	width:min(100%,var(--ds-content-max)) !important;
	max-width:var(--ds-content-max) !important;
	margin-inline:auto !important;
}
.ds-offer-blog .ds-offer-insights-home-style,
.ds-offer-blog .ds-blog-shortcode-section,
.ds-offer-blog .ds-blog-overlay-carousel {
	width:100% !important;
	max-width:100% !important;
}
.ds-offer-blog .ds-blog-overlay-card-link {
	height:clamp(11rem,14vw,14.5rem) !important;
	min-height:11rem !important;
	max-height:14.5rem !important;
}
.ds-offer-blog .ds-blog-section-link { margin-top:1.1rem !important; }
.ds-offer-blog:has(.ds-blog-empty) { display:none !important; }

/* Booking sections: same visual system on Massage, Pantarei and Pilates. */
.ds-offer-template-main > .ds-cta,
.ds-offer-template-main > .ds-offer-compact-cta,
.ds-pilates-booking-cta {
	width:100% !important;
	margin:0 !important;
	padding:clamp(4.8rem,7vw,6.8rem) var(--ds-rhythm-edge) !important;
	background:var(--ds-orange,#F74900) !important;
	color:#fff !important;
}
.ds-offer-template-main > .ds-cta > .ds-grid,
.ds-offer-template-main > .ds-offer-compact-cta > .ds-grid,
.ds-pilates-booking-cta > .ds-grid {
	width:min(100%,var(--ds-content-max)) !important;
	max-width:var(--ds-content-max) !important;
	margin-inline:auto !important;
}
.ds-offer-template-main > .ds-cta .ds-cta-inner,
.ds-pilates-booking-cta .ds-cta-inner {
	max-width:58rem !important;
	margin-inline:auto !important;
	text-align:center !important;
}
.ds-offer-template-main > .ds-cta h2,
.ds-pilates-booking-cta h2 {
	font-size:clamp(2.5rem,4.8vw,4.8rem) !important;
	line-height:1.02 !important;
	margin:.4rem auto 1.2rem !important;
	text-wrap:balance !important;
}
.ds-offer-template-main > .ds-cta .wp-block-buttons,
.ds-pilates-booking-cta .wp-block-buttons {
	justify-content:center !important;
	gap:.75rem !important;
	margin-top:1.6rem !important;
}

/* Über mich: real editorial split instead of a tall empty photo column. */
.ds-about-hero {
	padding:clamp(5.8rem,8vw,8rem) var(--ds-rhythm-edge) !important;
	overflow:visible !important;
}
.ds-about-hero-grid {
	grid-template-columns:minmax(20rem,.95fr) minmax(0,1.05fr) !important;
	gap:clamp(3rem,6vw,6rem) !important;
	align-items:center !important;
}
.ds-about-photo--real {
	position:relative !important;
	width:100% !important;
	max-width:34rem !important;
	min-height:0 !important;
	height:auto !important;
	aspect-ratio:4 / 5 !important;
	margin:0 auto !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
	overflow:hidden !important;
}
.ds-about-photo--real::after {
	content:"";
	position:absolute;
	right:-1px;
	bottom:-1px;
	width:38%;
	aspect-ratio:1;
	background:var(--ds-orange,#F74900);
	-webkit-mask:var(--ds-star-mask) center/contain no-repeat;
	mask:var(--ds-star-mask) center/contain no-repeat;
	transform:translate(26%,28%);
	pointer-events:none;
}
.ds-about-photo--real img {
	position:absolute !important;
	inset:0 !important;
	width:100% !important;
	height:100% !important;
	min-height:100% !important;
	object-fit:cover !important;
	object-position:43% center !important;
}
.ds-about-copy { max-width:42rem !important; }
.ds-about-copy h1 {
	font-size:clamp(3.2rem,5.2vw,5.4rem) !important;
	line-height:.98 !important;
	margin:.3rem 0 .7rem !important;
}
.ds-about-subline {
	margin:0 0 1.6rem !important;
	font-size:clamp(1.8rem,3vw,3rem) !important;
	line-height:1.05 !important;
	letter-spacing:-.035em !important;
}
.ds-about-tags {
	display:flex !important;
	flex-wrap:wrap !important;
	gap:.55rem !important;
	margin-top:1.6rem !important;
}
.ds-about-tags span {
	display:inline-flex !important;
	align-items:center !important;
	min-height:2.2rem !important;
	padding:.45rem .7rem !important;
	border:1px solid rgba(42,37,34,.18) !important;
	font-size:.78rem !important;
	font-weight:650 !important;
	letter-spacing:.04em !important;
	text-transform:uppercase !important;
}
.ds-about-depth { padding-top:var(--ds-rhythm-section) !important; padding-bottom:var(--ds-rhythm-section) !important; }
.ds-about-quote { color:var(--ds-orange,#F74900) !important; font-size:clamp(1.25rem,2vw,1.65rem) !important; line-height:1.35 !important; }

/* Einblicke magazine itself also starts as a no-hero page, with a calmer title. */
.ds-insights-page .ds-insights-magazine__intro h1 {
	font-size:clamp(2.8rem,4.8vw,4.8rem) !important;
	line-height:1.02 !important;
}

@media (max-width:980px) {
	.ds-about-hero-grid { grid-template-columns:1fr !important; }
	.ds-about-photo--real { max-width:30rem !important; aspect-ratio:5 / 4 !important; }
	.ds-about-copy { max-width:46rem !important; margin-inline:auto !important; }
}
@media (max-width:680px) {
	.ds-main-nav > a,
	.ds-main-nav-about-toggle,
	.ds-main-nav-legal-toggle { font-size:.88rem !important; }
	body.page .wp-site-blocks > main.ds-no-hero-page,
	body.page .wp-site-blocks > .ds-no-hero-page,
	main.ds-no-hero-page { padding-top:clamp(4.4rem,13vw,5.6rem) !important; }
	.ds-legal-page > h1,
	.ds-legal-heading > h1 { font-size:clamp(2.9rem,12vw,4rem) !important; overflow-wrap:anywhere !important; }
	.ds-about-photo--real { aspect-ratio:4 / 3 !important; }
	.ds-about-photo--real::after { width:30% !important; }
	.ds-offer-blog .ds-blog-overlay-card-link { height:clamp(10rem,44vw,13rem) !important; }
}

/* Pantarei offer-card previews also favour the complete editorial image over a
   forced crop. */
.ds-offer-card-fixed.ds-service--pantarei_session .ds-offer-card-fixed__star img,
.ds-offer-card-fixed.ds-service--pantarei_companion .ds-offer-card-fixed__star img,
.ds-offer-card-fixed.ds-service--pantarei_leadership .ds-offer-card-fixed__star img {
	object-fit:contain !important;
	object-position:center center !important;
	background:var(--ds-paper-warm,#F6EBDD) !important;
}


/* ==========================================================
   v2.24.5 – visual consistency pass from live screenshots
   ========================================================== */

/* Header: every first-level navigation control is literally the same type rule,
   regardless of whether WordPress renders it as <a> or <button>. */
@media (min-width: 781px) {
  .ds-main-nav > a,
  .ds-main-nav > .ds-main-nav-about > .ds-main-nav-about-toggle,
  .ds-main-nav > .ds-main-nav-legal > .ds-main-nav-legal-toggle {
    appearance:none !important;
    -webkit-appearance:none !important;
    border:0 !important;
    background:transparent !important;
    color:var(--ds-ink,#2a2522) !important;
    font-family:'Poppins Local',Poppins,Avenir,'Helvetica Neue',Helvetica,Arial,sans-serif !important;
    font-size:.88rem !important;
    font-weight:600 !important;
    line-height:1.2 !important;
    letter-spacing:-.015em !important;
    padding:.45rem .12rem !important;
    margin:0 !important;
    text-decoration:none !important;
    white-space:nowrap !important;
  }
  .ds-main-nav-about-toggle span,
  .ds-main-nav-legal-toggle span { font-size:.82em !important; line-height:1 !important; }
}

/* No-hero pages: one measured start gap everywhere. The first section must not
   add another invisible spacer on top. */
main.ds-no-hero-page,
body.page main.ds-no-hero-page,
body .wp-site-blocks > main.ds-no-hero-page {
  margin-block-start:0 !important;
  padding-top:clamp(4rem,5.2vw,5.2rem) !important;
}
main.ds-no-hero-page > :first-child,
main.ds-no-hero-page > :first-child > :first-child {
  margin-block-start:0 !important;
}
.ds-insights-page > .ds-insights-band { padding-top:0 !important; }
@media (max-width:680px) {
  main.ds-no-hero-page,
  body.page main.ds-no-hero-page,
  body .wp-site-blocks > main.ds-no-hero-page { padding-top:clamp(3.25rem,11vw,4.25rem) !important; }
}

/* Offer insights = the Home carousel, not a large editorial article card. */
.ds-offer-blog .ds-blog-shortcode-section { margin:0 !important; padding:0 !important; }
.ds-offer-blog .ds-blog-overlay-carousel { overflow:visible !important; }
.ds-offer-blog .ds-blog-overlay-track {
  display:flex !important;
  flex-flow:row nowrap !important;
  gap:clamp(1.1rem,2vw,1.8rem) !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scroll-snap-type:x mandatory !important;
  padding:0 0 .9rem !important;
}
.ds-offer-blog .ds-blog-overlay-card {
  display:block !important;
  flex:0 0 calc((100% - (clamp(1.1rem,2vw,1.8rem) * 2)) / 3) !important;
  width:calc((100% - (clamp(1.1rem,2vw,1.8rem) * 2)) / 3) !important;
  min-width:0 !important;
  margin:0 !important;
  scroll-snap-align:start !important;
}
.ds-offer-blog .ds-blog-overlay-card-link {
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:clamp(13rem,18vw,18rem) !important;
  min-height:13rem !important;
  max-height:18rem !important;
  overflow:hidden !important;
}
.ds-offer-blog .ds-blog-overlay-image,
.ds-offer-blog .ds-blog-overlay-image img,
.ds-offer-blog .ds-blog-overlay-image-placeholder {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center !important;
}
.ds-offer-blog .ds-blog-overlay-title-layer { position:absolute !important; inset:0 !important; }
.ds-offer-blog h2 {
  font-size:clamp(2.35rem,4.35vw,4.5rem) !important;
  line-height:1.02 !important;
  max-width:15ch !important;
}
@media (max-width:780px) {
  .ds-offer-blog .ds-blog-overlay-card { flex:0 0 78vw !important; width:78vw !important; }
  .ds-offer-blog .ds-blog-overlay-card-link { height:clamp(10rem,44vw,13.5rem) !important; min-height:10rem !important; max-height:13.5rem !important; }
}

/* Offer testimonial variants intentionally mimic the Massage testimonial sector. */
.ds-offer-testimonials .ds-testimonial-intro { padding-top:clamp(2.5rem,4vw,3.5rem) !important; padding-bottom:clamp(2.5rem,4vw,3.5rem) !important; }
.ds-offer-testimonials .ds-testimonial-area-kicker { margin:1.25rem 0 0 !important; text-align:center !important; }
.ds-offer-testimonials .ds-testimonial-slider { margin-top:0 !important; }

/* About: make the education accordion scan like an editorial CV. */
.ds-about-training-list {
  list-style:none !important;
  margin:1rem 0 0 !important;
  padding:0 !important;
  display:grid !important;
  gap:0 !important;
}
.ds-about-training-list li {
  display:grid !important;
  grid-template-columns:minmax(12rem,.9fr) minmax(0,1.1fr) !important;
  gap:1.2rem !important;
  padding:.95rem 0 !important;
  border-top:1px solid rgba(42,37,34,.14) !important;
}
.ds-about-training-list li:last-child { border-bottom:1px solid rgba(42,37,34,.14) !important; }
.ds-about-training-list strong { font-weight:650 !important; }
.ds-about-training-list span { color:var(--ds-muted,#756a63) !important; }
@media(max-width:680px){ .ds-about-training-list li { grid-template-columns:1fr !important; gap:.2rem !important; } }

/* Einblicke magazine: true three-column magazine rhythm, with intentional
   text-only cards mixed among photographs. */
.ds-insights-page .ds-insights-magazine__intro { margin-top:0 !important; }
.ds-insights-magazine__grid {
  column-count:3 !important;
  column-gap:clamp(1rem,2vw,1.55rem) !important;
}
.ds-insight-card {
  break-inside:avoid !important;
  -webkit-column-break-inside:avoid !important;
  margin:0 0 clamp(1rem,2vw,1.55rem) !important;
  border-radius:0 !important;
}
.ds-insight-card__media { aspect-ratio:4/3 !important; }
.ds-insight-card--portrait .ds-insight-card__media { aspect-ratio:4/5 !important; }
.ds-insight-card--text-only {
  background:var(--ds-paper,#FFF9F1) !important;
  border-top:4px solid var(--ds-orange,#F74900) !important;
}
.ds-insight-card--text-only .ds-insight-card__body { padding:clamp(1.45rem,2.4vw,2rem) !important; }
.ds-insight-card--text-only h2 { font-size:clamp(1.55rem,2.3vw,2.2rem) !important; }
@media(max-width:980px){ .ds-insights-magazine__grid { column-count:2 !important; } }
@media(max-width:680px){ .ds-insights-magazine__grid { column-count:1 !important; } }

/* Impressum authorisation cards: equal height, cleaner labels. */
.ds-imprint-authorisations { align-items:stretch !important; }
.ds-imprint-authorisation {
  height:100% !important;
  min-height:18rem !important;
  display:flex !important;
  flex-direction:column !important;
}
.ds-imprint-authorisation > p:last-child { margin-top:auto !important; padding-top:1rem !important; }
.ds-imprint-authorisation > .ds-kicker { display:none !important; }

/* Massage cards: dynamic card block always gets the full row and stable columns. */
.ds-massage-types > .ds-grid > .ds-offer-cards-fixed { grid-column:1 / -1 !important; }
@media(min-width:801px){
  .ds-massage-types .ds-offer-cards-fixed.ds-offer-count-1 .ds-offer-card-fixed { grid-column:4 / span 6 !important; }
  .ds-massage-types .ds-offer-cards-fixed.ds-offer-count-2 .ds-offer-card-fixed { grid-column:span 6 !important; }
  .ds-massage-types .ds-offer-cards-fixed.ds-offer-count-3 .ds-offer-card-fixed { grid-column:span 4 !important; }
}

/* Einblicke is a magazine page, not an offer paper-warm divider. */
.ds-insights-page > .ds-insights-band {
  border-top:0 !important;
  border-bottom:0 !important;
  margin-top:0 !important;
}

/* ==========================================================
   v2.24.6 – deterministic offer insights + Pantarei explain +
   magazine tools + refined About/Impressum
   ========================================================== */

/* Offer-page Einblicke: dedicated Home-style tiles, 3 visible on desktop. */
.ds-offer-insights-home-style,
.ds-offer-insights-carousel {
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
}
.ds-offer-insights-carousel { position:relative !important; }
.ds-offer-insights-track {
  display:flex !important;
  flex-flow:row nowrap !important;
  gap:clamp(1rem,1.7vw,1.6rem) !important;
  width:100% !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scroll-snap-type:x mandatory !important;
  scrollbar-width:none !important;
  -webkit-overflow-scrolling:touch !important;
  padding:0 0 .7rem !important;
}
.ds-offer-insights-track::-webkit-scrollbar { display:none !important; }
.ds-offer-insight-card {
  flex:0 0 calc((100% - (clamp(1rem,1.7vw,1.6rem) * 2)) / 3) !important;
  width:calc((100% - (clamp(1rem,1.7vw,1.6rem) * 2)) / 3) !important;
  min-width:0 !important;
  margin:0 !important;
  background:transparent !important;
  scroll-snap-align:start !important;
}
.ds-offer-insight-card__link {
  position:relative !important;
  display:block !important;
  width:100% !important;
  aspect-ratio:4 / 3 !important;
  min-height:0 !important;
  overflow:hidden !important;
  background:var(--ds-paper-warm,#F6EBDD) !important;
  text-decoration:none !important;
}
.ds-offer-insight-card__media,
.ds-offer-insight-card__media > img,
.ds-offer-insight-card__placeholder {
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  min-width:100% !important;
  min-height:100% !important;
}
.ds-offer-insight-card__media > img {
  object-fit:cover !important;
  object-position:center !important;
  transform:none !important;
}
.ds-offer-insight-card__placeholder { background:linear-gradient(135deg,#f3e6d8,#fff8ef) !important; }
.ds-offer-insight-card__overlay {
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:flex-end !important;
  padding:clamp(1rem,1.7vw,1.45rem) !important;
  background:linear-gradient(180deg,rgba(247,73,0,0) 25%,rgba(247,73,0,.92) 100%) !important;
  opacity:0 !important;
  transition:opacity .18s ease !important;
}
.ds-offer-insight-card__link:hover .ds-offer-insight-card__overlay,
.ds-offer-insight-card__link:focus-visible .ds-offer-insight-card__overlay { opacity:1 !important; }
.ds-offer-insight-card__title {
  max-width:21ch !important;
  color:#fff !important;
  font-size:clamp(1.15rem,1.55vw,1.65rem) !important;
  font-weight:600 !important;
  line-height:1.08 !important;
  letter-spacing:-.025em !important;
}
.ds-offer-insights-controls {
  display:flex !important;
  justify-content:flex-end !important;
  gap:.45rem !important;
  margin-top:.55rem !important;
}
.ds-offer-insights-controls button {
  width:2.55rem !important;
  height:2.55rem !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--ds-orange,#F74900) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:1.35rem !important;
  cursor:pointer !important;
}
@media(max-width:780px){
  .ds-offer-insight-card { flex:0 0 78vw !important; width:78vw !important; }
  .ds-offer-insight-card__link { aspect-ratio:4 / 3 !important; }
}

/* Pantarei: star photos must actually fill the star, including backend-swapped images. */
body .ds-offer-card-fixed.ds-service--pantarei_session .ds-offer-card-fixed__star img,
body .ds-offer-card-fixed.ds-service--pantarei_companion .ds-offer-card-fixed__star img,
body .ds-offer-card-fixed.ds-service--pantarei_leadership .ds-offer-card-fixed__star img,
body .ds-service--pantarei_session .ds-massage-star img,
body .ds-service--pantarei_companion .ds-massage-star img,
body .ds-service--pantarei_leadership .ds-massage-star img,
.ds-pantarei-explainer-star img {
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  object-fit:cover !important;
  object-position:var(--ds-focal-x,50%) var(--ds-focal-y,50%) !important;
  background:transparent !important;
}

/* Additional Pantarei explanation, visually related to Pilates' explanatory bands. */
.ds-pantarei-explainer { padding-top:var(--ds-rhythm-section) !important; padding-bottom:var(--ds-rhythm-section) !important; }
.ds-pantarei-explainer-grid { align-items:center !important; gap:clamp(2.5rem,5vw,5rem) !important; }
.ds-pantarei-explainer-media { display:flex !important; justify-content:center !important; overflow:visible !important; }
.ds-pantarei-explainer-star {
  width:min(18rem,78%) !important;
  aspect-ratio:1 !important;
  margin:0 auto !important;
  overflow:hidden !important;
}
.ds-pantarei-explainer-copy h2 { font-size:clamp(2.5rem,4.2vw,4.4rem) !important; line-height:1.02 !important; max-width:13ch !important; }
@media(max-width:780px){
  .ds-pantarei-explainer-grid { display:block !important; }
  .ds-pantarei-explainer-media { margin-bottom:2rem !important; }
  .ds-pantarei-explainer-star { width:min(13rem,58vw) !important; }
}

/* Pilates CTA uses exactly the shared offer CTA geometry. */
.ds-standard-booking-cta {
  width:100% !important;
  margin:0 !important;
  padding:clamp(4.8rem,7vw,6.8rem) var(--ds-rhythm-edge) !important;
  background:var(--ds-orange,#F74900) !important;
  color:#fff !important;
}
.ds-standard-booking-cta > .ds-grid { width:min(100%,var(--ds-content-max)) !important; max-width:var(--ds-content-max) !important; margin-inline:auto !important; }
.ds-standard-booking-cta .ds-cta-inner { max-width:58rem !important; margin-inline:auto !important; text-align:center !important; }
.ds-standard-booking-cta h2 { font-size:clamp(2.5rem,4.8vw,4.8rem) !important; line-height:1.02 !important; margin:.4rem auto 1.2rem !important; }
.ds-standard-booking-cta .wp-block-buttons { justify-content:center !important; gap:.75rem !important; margin-top:1.6rem !important; }

/* About: compact editorial education cards instead of an oversized list. */
.ds-about-training-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:.7rem !important;
  margin:1.25rem 0 .4rem !important;
}
.ds-about-training-item {
  display:grid !important;
  grid-template-columns:1rem minmax(0,1fr) !important;
  gap:.7rem !important;
  align-items:start !important;
  min-width:0 !important;
  padding:1rem 1.05rem !important;
  background:rgba(246,235,221,.72) !important;
  border-top:2px solid rgba(247,73,0,.9) !important;
}
.ds-about-training-mark {
  width:.7rem !important;
  height:.7rem !important;
  margin-top:.35rem !important;
  background:var(--ds-orange,#F74900) !important;
  -webkit-mask:var(--ds-star-mask) center/contain no-repeat !important;
  mask:var(--ds-star-mask) center/contain no-repeat !important;
}
.ds-about-training-item strong { display:block !important; font-size:1rem !important; line-height:1.22 !important; font-weight:650 !important; }
.ds-about-training-item small { display:block !important; margin-top:.28rem !important; color:var(--ds-muted,#756a63) !important; font-size:.82rem !important; line-height:1.35 !important; }
@media(max-width:680px){ .ds-about-training-grid { grid-template-columns:1fr !important; } }

/* Einblicke magazine: no white seam above the no-hero page. */
.ds-insights-page { background:var(--ds-paper-warm,#F6EBDD) !important; }
.ds-insights-page > .ds-insights-band {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  padding-top:0 !important;
}

/* Search/filter controls for the magazine. */
.ds-insights-tools {
  display:grid !important;
  grid-template-columns:minmax(0,1.4fr) minmax(14rem,.6fr) !important;
  gap:1rem !important;
  margin:0 0 clamp(2rem,4vw,3.2rem) !important;
  padding:clamp(1rem,2vw,1.35rem) !important;
  background:rgba(255,255,255,.55) !important;
  border-top:3px solid var(--ds-orange,#F74900) !important;
}
.ds-insights-tools label { display:grid !important; gap:.45rem !important; }
.ds-insights-tools label > span { font-size:.76rem !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; }
.ds-insights-tools input,
.ds-insights-tools select {
  width:100% !important;
  min-height:3rem !important;
  padding:.72rem .85rem !important;
  border:1px solid rgba(42,37,34,.2) !important;
  border-radius:0 !important;
  background:#fff !important;
  color:var(--ds-ink,#2a2522) !important;
  font:inherit !important;
}
.ds-insights-tools input:focus,
.ds-insights-tools select:focus { outline:2px solid var(--ds-orange,#F74900) !important; outline-offset:2px !important; }
.ds-insights-results { min-height:1.2rem !important; margin:-1.9rem 0 1.4rem !important; color:var(--ds-muted,#756a63) !important; font-size:.85rem !important; }
.ds-insight-card__meta { margin-bottom:.75rem !important; }
.ds-insight-card__meta span { font-size:.72rem !important; letter-spacing:.08em !important; text-transform:uppercase !important; }
.ds-insights-no-results { padding:2rem 0 !important; }
.ds-magazine-quote {
  margin:clamp(4.5rem,8vw,7rem) 0 0 !important;
  padding:clamp(2.5rem,5vw,4.5rem) !important;
  background:var(--ds-orange,#F74900) !important;
  color:#fff !important;
}
.ds-magazine-quote .ds-kicker { color:#fff !important; text-align:center !important; }
.ds-magazine-quote blockquote {
  max-width:20ch !important;
  margin:.65rem auto 0 !important;
  color:#fff !important;
  font-size:clamp(2rem,4vw,4rem) !important;
  line-height:1.04 !important;
  letter-spacing:-.04em !important;
  text-align:center !important;
}
@media(max-width:680px){ .ds-insights-tools { grid-template-columns:1fr !important; } }

/* Impressum: both permission cards begin on exactly the same baseline. */
.ds-imprint-authorisations {
  align-items:stretch !important;
  grid-auto-rows:1fr !important;
}
.ds-imprint-authorisations > .ds-imprint-authorisation {
  margin-block-start:0 !important;
  margin-top:0 !important;
  align-self:stretch !important;
  min-height:20rem !important;
  box-sizing:border-box !important;
}
.ds-imprint-authorisation h3 { min-height:1.2em !important; }

/* ==========================================================
   v2.24.8 – About testimonials = Home, functional magazine
   filtering, full-bleed quote, reliable full-screen mobile nav
   ========================================================== */

/* Über mich: older page-specific two-column guards must never touch the
   shared Home testimonial pattern. Reset that component to Home geometry. */
body.page-ueber-mich main .ds-testimonial-section,
body.page-ueber-doris main .ds-testimonial-section,
body.page-template-page-ueber-mich main .ds-testimonial-section,
body.page-template-page-ueber-doris main .ds-testimonial-section {
  width:100% !important;
  max-width:none !important;
  overflow:visible !important;
  padding:clamp(4.8rem,7vw,7rem) var(--ds-rhythm-edge) !important;
}
body.page-ueber-mich main .ds-testimonial-section > .ds-grid,
body.page-ueber-doris main .ds-testimonial-section > .ds-grid,
body.page-template-page-ueber-mich main .ds-testimonial-section > .ds-grid,
body.page-template-page-ueber-doris main .ds-testimonial-section > .ds-grid {
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  width:min(100%,var(--ds-content-max,1180px)) !important;
  max-width:var(--ds-content-max,1180px) !important;
  margin-inline:auto !important;
  padding:0 !important;
}
body.page-ueber-mich main .ds-testimonial-intro,
body.page-ueber-doris main .ds-testimonial-intro,
body.page-template-page-ueber-mich main .ds-testimonial-intro,
body.page-template-page-ueber-doris main .ds-testimonial-intro {
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:920px !important;
  margin-inline:auto !important;
  text-align:center !important;
}
body.page-ueber-mich main .ds-testimonial-intro h2,
body.page-ueber-doris main .ds-testimonial-intro h2,
body.page-template-page-ueber-mich main .ds-testimonial-intro h2,
body.page-template-page-ueber-doris main .ds-testimonial-intro h2 {
  width:auto !important;
  max-width:100% !important;
  margin:.45rem auto 1rem !important;
  font-size:clamp(2.2rem,4.6vw,5.2rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.045em !important;
  text-align:center !important;
}
body.page-ueber-mich main .ds-testimonial-intro p,
body.page-ueber-doris main .ds-testimonial-intro p,
body.page-template-page-ueber-mich main .ds-testimonial-intro p,
body.page-template-page-ueber-doris main .ds-testimonial-intro p {
  max-width:52rem !important;
  margin-inline:auto !important;
  text-align:center !important;
}
body.page-ueber-mich main .ds-testimonial-slider,
body.page-ueber-doris main .ds-testimonial-slider,
body.page-template-page-ueber-mich main .ds-testimonial-slider,
body.page-template-page-ueber-doris main .ds-testimonial-slider {
  grid-column:1 / -1 !important;
  width:min(100%,960px) !important;
  max-width:960px !important;
  margin:clamp(2.5rem,5vw,4rem) auto 0 !important;
}

/* Filtering must beat any historical card display rule. */
.ds-insight-card.ds-filter-hidden,
.ds-insight-card[hidden] {
  display:none !important;
}

/* Magazin quote = the established full-width Doris quote band, not a card
   trapped inside the magazine content width. */
.ds-insights-magazine .ds-magazine-quote.ds-quote-band {
  position:relative !important;
  left:50% !important;
  width:100vw !important;
  max-width:none !important;
  margin:clamp(5rem,8vw,8rem) 0 0 -50vw !important;
  padding:clamp(4.8rem,7vw,7rem) var(--ds-rhythm-edge) !important;
  overflow:hidden !important;
  background:var(--ds-orange,#F74900) !important;
  color:#fff !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band > .ds-grid {
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  width:min(100%,var(--ds-content-max,1180px)) !important;
  max-width:var(--ds-content-max,1180px) !important;
  margin-inline:auto !important;
  padding:0 !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-col-12 { grid-column:1 / -1 !important; }
.ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-kicker {
  max-width:52rem !important;
  margin:0 auto .8rem !important;
  color:#fff !important;
  text-align:left !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote {
  max-width:950px !important;
  margin:0 clamp(10rem,18vw,19rem) 0 0 !important;
  padding:0 !important;
  border:0 !important;
  color:#fff !important;
  text-align:left !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p {
  max-width:none !important;
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(2.2rem,4.4vw,4.8rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.045em !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band cite {
  display:block !important;
  margin-top:1.3rem !important;
  color:#fff !important;
  font-size:.78rem !important;
  font-style:normal !important;
  font-weight:650 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
}
.ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-quote-star {
  position:absolute !important;
  right:clamp(1.5rem,6vw,7rem) !important;
  top:50% !important;
  bottom:auto !important;
  width:clamp(8.5rem,14vw,15rem) !important;
  aspect-ratio:1 !important;
  transform:translateY(-50%) rotate(8deg) !important;
}

/* Mobile navigation is a genuine viewport overlay. The shell is moved to body
   by doris-menu.js, avoiding sticky-header containing-block bugs in Safari. */
@media (max-width:1280px) {
  .ds-mobile-menu-shell:not([hidden]) {
    display:block !important;
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-width:none !important;
    z-index:2147483640 !important;
    pointer-events:none !important;
  }
  .ds-mobile-menu-backdrop { display:none !important; }
  .ds-mobile-menu-panel {
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    max-width:none !important;
    min-width:0 !important;
    height:100dvh !important;
    min-height:100dvh !important;
    margin:0 !important;
    padding:max(1.15rem,env(safe-area-inset-top)) clamp(1.25rem,5vw,2.2rem) max(1.5rem,env(safe-area-inset-bottom)) !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    background:var(--ds-paper,#fff9f1) !important;
    box-shadow:none !important;
    transform:translateY(-.65rem) !important;
    opacity:0 !important;
    visibility:hidden !important;
    transition:opacity .16s ease,transform .16s ease,visibility .16s ease !important;
  }
  .ds-mobile-menu-shell.is-open { pointer-events:auto !important; }
  .ds-mobile-menu-shell.is-open .ds-mobile-menu-panel {
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .ds-mobile-menu-topline {
    position:sticky !important;
    top:0 !important;
    z-index:2 !important;
    background:var(--ds-paper,#fff9f1) !important;
    padding-bottom:1rem !important;
  }
  .ds-mobile-menu-nav {
    width:min(100%,46rem) !important;
    margin:clamp(1rem,4vh,2.2rem) auto 0 !important;
  }
  .ds-mobile-menu-nav > a,
  .ds-mobile-menu-group,
  .ds-mobile-menu-legal,
  .ds-mobile-menu-booking {
    width:min(100%,46rem) !important;
    margin-inline:auto !important;
  }
  html.ds-menu-open,
  html.ds-menu-open body,
  body.ds-menu-open { overflow:hidden !important; overscroll-behavior:none !important; }
}
@media (max-width:680px) {
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote { margin-right:0 !important; }
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-quote-star {
    position:relative !important;
    display:block !important;
    right:auto !important;
    top:auto !important;
    width:7rem !important;
    margin:2rem auto 0 !important;
    transform:rotate(8deg) !important;
  }
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-kicker,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band cite { text-align:center !important; }
}

/* v2.24.9 – Pilates booking target below sticky header */
#pilates-kurse,
.ds-pilates-courses {
  scroll-margin-top: clamp(7rem, 10vw, 9rem);
}


/* ==========================================================
   v2.25.0 – reliable editorial Pantarei image, compact mobile CTA,
   native Pilates course anchor and unified Home insights
   ========================================================== */
.ds-pantarei-explainer-media .ds-pantarei-explainer-star,
.ds-pantarei-explainer-media .wp-block-doris-focal-image.ds-pantarei-explainer-star {
  display:block !important;
  width:min(100%,28rem) !important;
  aspect-ratio:1 / 1 !important;
  min-height:16rem !important;
  margin:0 auto !important;
  overflow:hidden !important;
}
.ds-pantarei-explainer-media .ds-pantarei-explainer-star img {
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
}
.ds-home-clean .ds-blog-section .ds-offer-insights-home-style { margin-top:clamp(1.8rem,4vw,3rem) !important; }
.ds-home-clean .ds-blog-section .ds-blog-section-link { margin-top:1rem !important; }

@media (max-width:1280px) {
  .ds-mobile-menu-panel > .ds-mobile-menu-booking,
  .ds-mobile-menu-shell .ds-mobile-menu-booking {
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    max-width:max-content !important;
    min-height:0 !important;
    margin:1.25rem 0 0 !important;
    padding:.72rem 1.05rem !important;
    border-radius:.42rem !important;
    font-size:.98rem !important;
    font-weight:700 !important;
    line-height:1.05 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
  }
}
@media (max-width:480px) {
  .ds-mobile-menu-panel > .ds-mobile-menu-booking,
  .ds-mobile-menu-shell .ds-mobile-menu-booking {
    font-size:.92rem !important;
    padding:.66rem .9rem !important;
  }
}

/* ==========================================================
   v2.25.1 – Pantarei explainer image belongs to its own section
   Never inherit the absolute positioning used by offer-card stars.
   ========================================================== */
.ds-pantarei-explainer-media {
  position: relative !important;
}
.ds-pantarei-explainer-media .ds-pantarei-explainer-star,
.ds-pantarei-explainer-media .wp-block-doris-focal-image.ds-pantarei-explainer-star {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 1 !important;
  float: none !important;
  transform: none !important;
}

/* ==========================================================
   v2.25.2 – compact mobile menu booking CTA
   Prevent the direct mobile-menu CTA from inheriting block/grid stretch.
   ========================================================== */
@media (max-width:1280px) {
  .ds-mobile-menu-panel > a.ds-mobile-menu-booking,
  .ds-mobile-menu-shell a.ds-mobile-menu-booking {
    display:inline-flex !important;
    flex:0 0 auto !important;
    align-self:flex-start !important;
    justify-self:start !important;
    width:auto !important;
    min-width:0 !important;
    max-width:fit-content !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    margin:1.2rem 0 0 !important;
    padding:.72rem 1.05rem !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    box-sizing:border-box !important;
  }
}
@media (max-width:480px) {
  .ds-mobile-menu-panel > a.ds-mobile-menu-booking,
  .ds-mobile-menu-shell a.ds-mobile-menu-booking {
    margin-top:1rem !important;
    padding:.62rem .88rem !important;
    font-size:.9rem !important;
    line-height:1.15 !important;
  }
}
