@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;
  }
}

/* ==========================================================
   v2.27.0 – EN 301 549 / WCAG 2.2 AA accessibility pass
   Brand orange stays #F74900. For normal-size text, accessible
   foreground colours are used instead of changing Doris' orange.
   ========================================================== */
:root{
  --ds-link:#A84224;
  --ds-on-orange:#15100d;
  --ds-focus-inner:#111;
  --ds-focus-outer:#fff;
}

/* Skip navigation */
.ds-skip-link{
  position:fixed!important;
  left:max(.75rem,env(safe-area-inset-left))!important;
  top:.75rem!important;
  z-index:2147483647!important;
  transform:translateY(calc(-100% - 1.5rem))!important;
  padding:.9rem 1.15rem!important;
  min-height:44px!important;
  display:inline-flex!important;
  align-items:center!important;
  background:#15100d!important;
  color:#fff!important;
  border:3px solid #F74900!important;
  border-radius:.35rem!important;
  box-shadow:0 0 0 3px #fff,0 .35rem 1.2rem rgba(0,0,0,.28)!important;
  font-size:1rem!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-decoration:none!important;
  opacity:1!important;
  transition:transform .12s ease!important;
}
.ds-skip-link:focus,
.ds-skip-link:focus-visible{
  transform:translateY(0)!important;
  outline:3px solid #15100d!important;
  outline-offset:5px!important;
}
.admin-bar .ds-skip-link{ top:3.25rem!important; }

/* The skip-link target must land below sticky chrome and accept programmatic focus. */
#main-content{
  scroll-margin-top:clamp(5.5rem,9vw,8rem)!important;
}
#main-content:focus{ outline:none!important; }

/* Persistent contrast control – deliberately separate from the brand palette. */
.ds-contrast-toggle{
  position:fixed!important;
  left:max(1rem,env(safe-area-inset-left))!important;
  bottom:max(1rem,env(safe-area-inset-bottom))!important;
  z-index:100020!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.45rem!important;
  min-height:44px!important;
  min-width:44px!important;
  padding:.62rem .78rem!important;
  border:2px solid var(--ds-ink)!important;
  border-radius:999px!important;
  background:var(--ds-paper)!important;
  color:var(--ds-ink)!important;
  box-shadow:0 4px 18px rgba(42,37,34,.14)!important;
  font:inherit!important;
  font-size:.82rem!important;
  font-weight:700!important;
  line-height:1!important;
  cursor:pointer!important;
}
.ds-contrast-toggle__icon{ font-size:1.1rem!important; line-height:1!important; }
.ds-contrast-toggle[aria-pressed="true"]{ background:#111!important; color:#fff!important; border-color:#111!important; }

/* Strong focus indication works on light, dark and orange surfaces. */
:where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"]),.wp-block-button__link):focus-visible{
  outline:3px solid var(--ds-focus-inner)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px var(--ds-focus-outer)!important;
}
main:focus{ outline:none!important; }
html{ scroll-padding-top:calc(var(--ds-header-height,92px) + 1.5rem)!important; }
:target,:focus{ scroll-margin-top:calc(var(--ds-header-height,92px) + 1.5rem); }

/* Orange is a strong brand colour but not dark enough for ordinary orange text
   on a light background. Terra is already part of the palette and passes AA. */
.ds-site-header .wp-block-navigation a:hover,
.ds-main-nav-about-toggle:hover,
.ds-main-nav-about-toggle:focus-visible,
.ds-main-nav-legal-toggle:hover,
.ds-main-nav-legal-toggle:focus-visible,
.ds-mobile-menu-nav a:focus-visible,
.ds-mobile-menu-legal p,
.ds-mobile-menu-group__label,
.ds-pilates-course-facts dt,
.ds-insight-card__read,
.ds-article-top-back a,
.ds-article-back,
.ds-article-navigation__switch span,
.ds-imprint-authorisation a,
.ds-about-quote,
.ds-button-light .wp-block-button__link,
.ds-cta .wp-block-button__link,
.ds-pilates-booking-cta .wp-block-button__link,
.ds-standard-booking-cta .wp-block-button__link,
.ds-blog-section-link,
.ds-offer-blog a:not(.wp-block-button__link),
.ds-insights-magazine a:not(.wp-block-button__link),
.ds-contact-page a:not(.wp-block-button__link),
.ds-legal-shell a:not(.wp-block-button__link){
  color:var(--ds-link)!important;
}

/* Normal-sized text on Doris orange: keep the orange, change only foreground.
   Large display quotes may remain white (3:1 large-text threshold is met). */
.wp-block-button__link,
.ds-header-cta .wp-block-button__link,
.ds-testimonial-arrow,
.ds-blog-arrow,
.ds-offer-mobile-controls button,
.ds-mobile-card-arrow,
.ds-offer-insights-controls button,
.ds-booking-main-link,
.ds-booking-modal-close,
.ds-booking-modal__button,
.ds-booking-modal__close,
.ds-blog-modal-close,
.ds-blog-overlay-arrow,
.wpcf7 input[type="submit"],
.ds-contact-form input[type="submit"],
.ds-contact-form-embed input[type="submit"],
.ds-contact-form-embed .wpcf7-submit,
.ds-massage-finder-widget button,
.ds-price-box__button,
.ds-back-to-top,
.ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
.ds-mobile-menu-booking,
.ds-nav-help-modal__close,
.ds-spotlight-dialog-close,
.ds-main-nav-about-menu a:hover,
.ds-main-nav-about-menu a:focus-visible,
.ds-main-nav-legal-menu a:hover,
.ds-main-nav-legal-menu a:focus-visible{
  color:var(--ds-on-orange)!important;
}

.ds-cta,
.ds-cta-band,
.ds-standard-booking-cta,
.ds-pilates-booking-cta,
.ds-offer-template-main > .ds-offer-compact-cta,
.ds-course-card,
.ds-price-box,
.ds-clean-price,
.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),
.ds-spotlight-teaser{
  color:var(--ds-on-orange)!important;
}
.ds-cta :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-cta-band :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-standard-booking-cta :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-pilates-booking-cta :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-offer-template-main > .ds-offer-compact-cta :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-course-card :where(p,h1,h2,h3,h4,h5,h6,strong,small,dt,dd),
.ds-price-box :where(p,h1,h2,h3,h4,h5,h6,strong,small,dt,dd),
.ds-clean-price :where(p,h1,h2,h3,h4,h5,h6,strong,small),
.ds-classic-offer-card--orange :where(p,h1,h2,h3,h4,h5,h6,strong,small,a),
.ds-clean-card-grid .ds-clean-card:nth-child(1) :where(p,h1,h2,h3,h4,h5,h6,strong,small,a),
.ds-spotlight-teaser :where(p,h1,h2,h3,h4,h5,h6,strong,small){
  color:inherit!important;
}
.ds-spotlight-teaser .ds-spotlight-teaser-action,
.ds-spotlight-teaser a{ color:var(--ds-link)!important; }

/* Quote bands: large quote stays white; small metadata gets AA-safe dark ink. */
.ds-quote-band .ds-kicker,
.ds-quote-band cite,
.ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-kicker,
.ds-insights-magazine .ds-magazine-quote.ds-quote-band cite{
  color:var(--ds-on-orange)!important;
}
.ds-quote-band blockquote p,
.ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p{
  color:#fff!important;
}

/* Form semantics + visible validation */
.ds-contact-form input[aria-invalid="true"],
.ds-contact-form textarea[aria-invalid="true"]{ border:2px solid #8a1f11!important; }
.ds-field-error{ display:block; margin-top:.35rem; color:#761b0f; font-size:.9rem; font-weight:650; }
.ds-form-error{ border-left:5px solid #761b0f; }
.ds-form-error ul{ margin:.5rem 0 0; padding-left:1.35rem; }
.ds-required-note{ font-size:.88rem; color:var(--ds-muted); }

/* WCAG 2.5.8 – robust touch targets for compact custom controls. */
.ds-testimonial-arrow,
.ds-blog-arrow,
.ds-offer-mobile-controls button,
.ds-mobile-card-arrow,
.ds-offer-insights-controls button,
.ds-blog-modal-close,
.ds-booking-modal-close,
.ds-booking-modal__close,
.ds-nav-help-modal__close,
.ds-spotlight-dialog-close,
.ds-menu-toggle,
.ds-mobile-menu-close{
  min-width:44px!important;
  min-height:44px!important;
}
@media(max-width:1280px){
  .ds-mobile-menu-nav a,
  .ds-mobile-menu-legal a{ min-height:44px!important; display:flex!important; align-items:center!important; }
}

/* High contrast mode: user preference, persisted in localStorage.
   Doris orange stays untouched; surfaces, text and borders are strengthened. */
html.ds-contrast-high{
  --ds-paper:#fff;
  --ds-paper-warm:#fff;
  --ds-apricot:#fff;
  --ds-rose:#fff;
  --ds-sand:#fff;
  --ds-sage:#fff;
  --ds-ink:#000;
  --ds-muted:#222;
  --ds-link:#711f08;
  --ds-on-orange:#000;
  --ds-focus-inner:#000;
  --ds-focus-outer:#fff;
}
html.ds-contrast-high body:before{ display:none!important; }
html.ds-contrast-high .ds-site-header,
html.ds-contrast-high .ds-mobile-menu-panel{ background:#fff!important; backdrop-filter:none!important; }
html.ds-contrast-high :where(.ds-service-card,.ds-clean-card,.ds-classic-offer-card,.ds-insight-card,.ds-pilates-course-card,.ds-contact-form,.ds-imprint-authorisation,.ds-about-training-item){
  border-color:#000!important;
}
html.ds-contrast-high main a:not(.wp-block-button__link){ text-decoration:underline!important; text-decoration-thickness:.12em!important; text-underline-offset:.18em!important; }
html.ds-contrast-high .ds-quote-band blockquote p,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p{ color:#000!important; }
html.ds-contrast-high .ds-quote-band .ds-spuer-star{ background:#fff!important; }

/* Respect motion preferences for all site-owned animation and smooth scrolling. */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto!important; }
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

@media(max-width:560px){
  .ds-contrast-toggle{ padding:.65rem!important; }
  .ds-contrast-toggle__label{ position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
}

/* Specificity-safe colour corrections for legacy rules further up the stylesheet. */
.ds-photo-hero .ds-button-light .wp-block-button__link{ color:var(--ds-link)!important; }
.ds-main-nav > a:hover,
.ds-main-nav > a:focus-visible{ color:var(--ds-link)!important; }
.ds-cta-band .ds-kicker,
.ds-cta-band .ds-lead,
.ds-cta-band h2,
.ds-offer-template-main .ds-cta-band .ds-kicker,
.ds-offer-template-main .ds-cta-band .ds-lead,
.ds-offer-template-main .ds-cta-band h2,
.ds-offer-template-main .ds-offer-compact-cta .ds-kicker,
.ds-offer-template-main .ds-offer-compact-cta .ds-lead,
.ds-pilates-booking-cta .ds-kicker,
.ds-pilates-booking-cta .ds-lead,
.ds-standard-booking-cta .ds-kicker,
.ds-standard-booking-cta .ds-lead{
  color:var(--ds-on-orange)!important;
}
.ds-spotlight-teaser,
.ds-spotlight-teaser .ds-spotlight-kicker,
.ds-spotlight-teaser .ds-spotlight-teaser-title,
.ds-spotlight-teaser .ds-spotlight-teaser-text,
.ds-spotlight-teaser .ds-spotlight-copy,
.ds-spotlight-teaser .ds-spotlight-copy *{
  color:var(--ds-on-orange)!important;
}
.ds-spotlight-teaser .ds-spotlight-dismiss{ color:var(--ds-on-orange)!important; }
.ds-price-box__availability,
.ds-pilates-course-status{ color:var(--ds-on-orange)!important; }


/* ==========================================================
   v2.27.1 – close remaining WCAG 2.2 code gaps
   ========================================================== */

/* Escape must really dismiss desktop hover/focus submenus. The JS adds this
   state until the user deliberately leaves the group or points at it again. */
@media (min-width:1281px){
  .ds-main-nav-about.is-escape-closed .ds-main-nav-about-menu,
  .ds-main-nav-legal.is-escape-closed .ds-main-nav-legal-menu{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-.25rem)!important;
  }
}

/* Site-wide search inside the persistent navigation-help dialog. */
.ds-nav-help-search{
  margin-top:1.4rem!important;
  padding-top:1.15rem!important;
  border-top:1px solid rgba(42,37,34,.22)!important;
}
.ds-nav-help-search label{
  display:block!important;
  margin-bottom:.5rem!important;
  font-weight:700!important;
}
.ds-nav-help-search__row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:.55rem!important;
}
.ds-nav-help-search input[type="search"]{
  width:100%!important;
  min-height:44px!important;
  padding:.68rem .78rem!important;
  border:2px solid var(--ds-ink)!important;
  background:var(--ds-paper)!important;
  color:var(--ds-ink)!important;
  font:inherit!important;
}
.ds-nav-help-search button{
  min-height:44px!important;
  padding:.68rem 1rem!important;
  border:2px solid var(--ds-ink)!important;
  background:var(--ds-orange)!important;
  color:var(--ds-on-orange)!important;
  font:inherit!important;
  font-weight:700!important;
  cursor:pointer!important;
}
@media(max-width:520px){
  .ds-nav-help-search__row{grid-template-columns:1fr!important;}
}

/* Search result page – clear, keyboard-friendly second way to reach content. */
.ds-search-page .wp-block-search{margin:1.5rem 0 2.5rem!important;}
.ds-search-page .wp-block-search__inside-wrapper{display:flex!important;gap:.5rem!important;}
.ds-search-page .wp-block-search__input{min-height:44px!important;border:2px solid var(--ds-ink)!important;padding:.65rem .8rem!important;}
.ds-search-page .wp-block-search__button{min-height:44px!important;background:var(--ds-orange)!important;color:var(--ds-on-orange)!important;border:2px solid var(--ds-ink)!important;font-weight:700!important;}
.ds-search-result{padding:1.4rem 0!important;border-top:1px solid rgba(42,37,34,.22)!important;}
.ds-search-result h2{margin:0 0 .45rem!important;font-size:clamp(1.45rem,2.4vw,2rem)!important;}
.ds-search-result h2 a{color:var(--ds-ink)!important;text-decoration-thickness:.08em!important;text-underline-offset:.14em!important;}

/* Testimonials are semantic blockquotes now; neutralize browser quote margins
   while preserving the established slider design. */
blockquote.ds-testimonial-slide{margin:0!important;}
.ds-testimonial-attribution{margin:0!important;}
.ds-testimonial-name{font-style:normal!important;}

/* ==========================================================
   v2.27.3 – hover contrast hotfix for dark button states
   Buttons may switch to dark ink on hover/focus. In those states,
   the foreground must no longer stay ds-on-orange, otherwise dark
   text can sit on a dark background (e.g. header booking CTA).
   ========================================================== */
:where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):hover,
:where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):focus-visible,
:where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):active{
  color:#fff!important;
}

html.ds-contrast-high :where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):hover,
html.ds-contrast-high :where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):focus-visible,
html.ds-contrast-high :where(
  .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-cta .wp-block-button__link,
  .ds-pilates-booking-cta .wp-block-button__link,
  .ds-standard-booking-cta .wp-block-button__link,
  .ds-booking-main-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button
):active{
  color:#fff!important;
}

/* ==========================================================
   v2.27.4 – About renderer + button state contrast hardening
   ========================================================== */
/* Dark hover/focus button states always need a light foreground. Keep this
   deliberately more specific than legacy header/button colour rules. */
body :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .wp-block-button__link,
  .wp-element-button
):is(:hover,:focus-visible,:active){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .wp-block-button__link,
  .wp-element-button
):is(:hover,:focus-visible,:active) :where(span,strong,small){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* ==========================================================
   v2.27.5 – About fragment fix + contrast-mode visual cleanup
   ========================================================== */
:root{
  /* Warmest AA-safe foreground we can use on Doris orange for normal text. */
  --ds-on-orange:#2B1D16;
}

/* High contrast should strengthen legibility without turning Doris' decorative
   paper/star language into white cut-outs. Keep the brand surfaces intact and
   increase text/border contrast instead. */
html.ds-contrast-high{
  --ds-paper:#FFF9F1;
  --ds-paper-warm:#F6EBDD;
  --ds-apricot:#FAD7C5;
  --ds-rose:#EEDDD8;
  --ds-sand:#E8D4B9;
  --ds-sage:#D9DEC8;
  --ds-ink:#000;
  --ds-muted:#1e1a18;
  --ds-link:#711f08;
  --ds-on-orange:#000;
  --ds-focus-inner:#000;
  --ds-focus-outer:#fff;
}

/* The quote star is decorative. In high-contrast mode render it dark instead
   of as a large white bite/hole in the orange band. */
html.ds-contrast-high .ds-quote-band .ds-spuer-star,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-spuer-star{
  background:transparent!important;
}
html.ds-contrast-high .ds-quote-band .ds-spuer-star::before,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-spuer-star::before{
  background:#000!important;
}

/* Normal orange buttons use the AA-safe warm dark brown. Dark hover/focus
   states keep a white label. */
body :where(
  .wp-block-button__link,
  .wp-element-button,
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit
){
  -webkit-text-fill-color:currentColor;
}
body :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .wp-block-button__link,
  .wp-element-button
):is(:hover,:focus-visible,:active){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* ============================================================
   v2.27.6 – keyboard navigation order / header focus hardening
   ============================================================ */
/* Header links and controls must remain unmistakably visible when reached by Tab. */
body:not(.wp-admin) .ds-site-header :where(
  .ds-header-star-link,
  .ds-wordmark,
  .ds-main-nav a,
  .ds-main-nav button,
  .ds-header-cta a,
  .ds-menu-toggle
):focus-visible {
  outline: 3px solid #2b1d16 !important;
  outline-offset: 4px !important;
  border-radius: .25rem;
  box-shadow: 0 0 0 2px #fff8ef !important;
}

/* Keep dropdown keyboard focus visible even when a submenu overlays nearby content. */
body:not(.wp-admin) .ds-main-nav-about-menu a:focus-visible,
body:not(.wp-admin) .ds-main-nav-legal-menu a:focus-visible {
  outline: 3px solid #2b1d16 !important;
  outline-offset: -3px !important;
  background: #fff8ef !important;
  color: #2b1d16 !important;
}

/* The contrast control is fixed visually but now comes after the document content in DOM order. */
.ds-contrast-toggle { z-index: 10020 !important; }

/* v2.27.7 – robust visible skip-link + actual viewport/focus jump */

/* ============================================================
   v2.27.8 – Skip destination + keyboard focus state correction
   ============================================================ */
body:not(.wp-admin) main :is(h1,h2)[data-ds-skip-focus="true"]:focus {
  outline: 3px solid #2b1d16 !important;
  outline-offset: 8px !important;
  scroll-margin-top: clamp(6rem, 10vw, 9rem) !important;
}
html.ds-contrast-high body:not(.wp-admin) main :is(h1,h2)[data-ds-skip-focus="true"]:focus {
  outline-color: #000 !important;
  box-shadow: 0 0 0 4px #fff !important;
}

/* Keyboard focus is not a pointer hover state. */
body:not(.wp-admin) :where(
  .wp-block-button__link,
  .wp-element-button,
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit
):focus-visible {
  color: #2b1d16 !important;
  -webkit-text-fill-color: #2b1d16 !important;
  outline: 3px solid #111 !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 3px #fff8ef !important;
  transform: none !important;
}

/* White/light CTA buttons keep their light surface and dark label on focus. */
body:not(.wp-admin) :where(
  .ds-cta,
  .ds-pilates-booking-cta,
  .ds-standard-booking-cta,
  .ds-button-light,
  .is-style-outline
) :where(.wp-block-button__link,.wp-element-button):focus-visible {
  background: #fff !important;
  color: #2b1d16 !important;
  -webkit-text-fill-color: #2b1d16 !important;
}

/* Orange buttons keep orange on focus; hover/active may switch dark. */
body:not(.wp-admin) :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit
):focus-visible {
  background: var(--ds-orange) !important;
}

/* White labels are reserved for actual pointer/pressed dark states. */
body:not(.wp-admin) :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .wp-block-button__link,
  .wp-element-button
):is(:hover,:active) {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}


/* ============================================================
   v2.27.9 – true high-contrast palette (black / white / rust)
   ============================================================ */
:root{
  --ds-rust-contrast:#7B341E;
}

html.ds-contrast-high{
  --ds-paper:#FFFFFF;
  --ds-paper-warm:#FFFFFF;
  --ds-apricot:#FFFFFF;
  --ds-rose:#FFFFFF;
  --ds-sand:#FFFFFF;
  --ds-sage:#FFFFFF;
  --ds-ink:#000000;
  --ds-muted:#111111;
  --ds-link:var(--ds-rust-contrast);
  --ds-orange:var(--ds-rust-contrast);
  --ds-on-orange:#FFFFFF;
  --ds-focus-inner:#FFFFFF;
  --ds-focus-outer:#000000;
  color-scheme:light;
}

html.ds-contrast-high body,
html.ds-contrast-high .wp-site-blocks,
html.ds-contrast-high main,
html.ds-contrast-high .ds-paper,
html.ds-contrast-high .ds-paper-warm,
html.ds-contrast-high .ds-rose,
html.ds-contrast-high .ds-apricot,
html.ds-contrast-high .ds-sand,
html.ds-contrast-high .ds-sage{
  background:#FFFFFF !important;
  color:#000000 !important;
}

html.ds-contrast-high .ds-site-header,
html.ds-contrast-high .ds-mobile-menu-panel,
html.ds-contrast-high .ds-nav-help-modal__panel,
html.ds-contrast-high .ds-spotlight-dialog{
  background:#FFFFFF !important;
  color:#000000 !important;
  border-color:#000000 !important;
}

html.ds-contrast-high .ds-footer,
html.ds-contrast-high .ds-footer :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a),
html.ds-contrast-high .ds-footer .wp-block-heading,
html.ds-contrast-high .ds-footer .wp-block-paragraph{
  background:#000000 !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high .ds-footer a{
  color:#FFFFFF !important;
}

/* Content links become rust-brown, not just underlined. */
html.ds-contrast-high main a:not(.wp-block-button__link):not(.wp-element-button),
html.ds-contrast-high .ds-main-nav > a:hover,
html.ds-contrast-high .ds-main-nav > a:focus-visible,
html.ds-contrast-high .ds-main-nav-about-toggle,
html.ds-contrast-high .ds-main-nav-legal-toggle,
html.ds-contrast-high .ds-mobile-menu-nav a,
html.ds-contrast-high .ds-mobile-menu-legal a,
html.ds-contrast-high .ds-blog-section-link a,
html.ds-contrast-high .ds-insight-card__read,
html.ds-contrast-high .ds-article-top-back a,
html.ds-contrast-high .ds-article-back,
html.ds-contrast-high .ds-imprint-authorisation a,
html.ds-contrast-high .ds-offer-blog a:not(.wp-block-button__link),
html.ds-contrast-high .ds-insights-magazine a:not(.wp-block-button__link),
html.ds-contrast-high .ds-contact-page a:not(.wp-block-button__link),
html.ds-contrast-high .ds-legal-shell a:not(.wp-block-button__link){
  color:var(--ds-rust-contrast) !important;
}

/* Black borders / dividers on light surfaces. */
html.ds-contrast-high :where(
  .ds-service-card,
  .ds-clean-card,
  .ds-classic-offer-card,
  .ds-insight-card,
  .ds-pilates-course-card,
  .ds-contact-form,
  .ds-imprint-authorisation,
  .ds-about-training-item,
  .ds-accordion details,
  .ds-blog-overlay-title-layer,
  .ds-blog-card,
  .ds-current-highlight-card,
  .ds-course-card,
  .ds-price-box,
  .ds-clean-price,
  .ds-offer-card-fixed,
  .ds-offer-card-editable,
  .ds-massage-type-card,
  .ds-pantarei-type-card,
  .ds-pilates-type-card
){
  border-color:#000000 !important;
  box-shadow:none !important;
}

/* Strong-surface components switch from bright orange to rust-brown. */
html.ds-contrast-high :where(
  .ds-quote-band,
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-course-card,
  .ds-price-box,
  .ds-clean-price,
  .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),
  .ds-spotlight-teaser,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-photo-hero .wp-block-button__link,
  .ds-header-cta .wp-block-button__link,
  .ds-testimonial-arrow,
  .ds-blog-arrow,
  .ds-offer-mobile-controls button,
  .ds-mobile-card-arrow,
  .ds-offer-insights-controls button,
  .ds-booking-main-link,
  .ds-booking-modal-close,
  .ds-booking-modal__button,
  .ds-booking-modal__close,
  .ds-blog-modal-close,
  .ds-blog-overlay-arrow,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit,
  .ds-massage-finder-widget button,
  .ds-price-box__button,
  .ds-back-to-top,
  .ds-mobile-overlay-booking .ds-mobile-overlay-booking-button,
  .ds-mobile-menu-booking,
  .ds-nav-help-modal__close,
  .ds-spotlight-dialog-close,
  .ds-main-nav-about-menu a:hover,
  .ds-main-nav-about-menu a:focus-visible,
  .ds-main-nav-legal-menu a:hover,
  .ds-main-nav-legal-menu a:focus-visible
){
  background:var(--ds-rust-contrast) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#000000 !important;
}

html.ds-contrast-high :where(
  .ds-quote-band,
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-course-card,
  .ds-price-box,
  .ds-clean-price,
  .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),
  .ds-spotlight-teaser
) :is(h1,h2,h3,h4,h5,h6,p,strong,small,span,dt,dd,a,cite){
  color:#FFFFFF !important;
}

/* Secondary / light buttons become white with black text and rust border. */
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-button-light,
  .is-style-outline,
  .ds-cta,
  .ds-pilates-booking-cta,
  .ds-standard-booking-cta
) :where(.wp-block-button__link,.wp-element-button),
html.ds-contrast-high .ds-booking-secondary-link{
  background:#FFFFFF !important;
  color:#000000 !important;
  -webkit-text-fill-color:#000000 !important;
  border:2px solid var(--ds-rust-contrast) !important;
}

/* Decorative stars must not turn into white holes. */
html.ds-contrast-high :where(
  .ds-spuer-star,
  .ds-quote-star,
  .ds-header-star,
  .ds-mobile-menu-star,
  .ds-hero-star,
  .ds-pantarei-explainer-star,
  .ds-spotlight-star,
  .ds-spotlight-compact-star,
  .ds-offer-card-fixed__star,
  .ds-offer-card-editable__star
){
  color:#FFFFFF !important;
}
html.ds-contrast-high :where(
  .ds-spuer-star,
  .ds-quote-star,
  .ds-header-star,
  .ds-mobile-menu-star,
  .ds-hero-star,
  .ds-pantarei-explainer-star,
  .ds-spotlight-star,
  .ds-spotlight-compact-star,
  .ds-offer-card-fixed__star,
  .ds-offer-card-editable__star
)::before{
  background:#000000 !important;
}
html.ds-contrast-high .ds-quote-band .ds-spuer-star::before,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-spuer-star::before{
  background:#000000 !important;
}

/* Quote bands stay legible on the rust background. */
html.ds-contrast-high .ds-quote-band blockquote p,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p,
html.ds-contrast-high .ds-quote-band .ds-kicker,
html.ds-contrast-high .ds-quote-band cite,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-kicker,
html.ds-contrast-high .ds-insights-magazine .ds-magazine-quote.ds-quote-band cite{
  color:#FFFFFF !important;
}

/* Menus/dropdowns: white base, black text, rust current/focus states. */
html.ds-contrast-high .ds-main-nav-about-menu,
html.ds-contrast-high .ds-main-nav-legal-menu,
html.ds-contrast-high .wp-block-navigation__submenu-container{
  background:#FFFFFF !important;
  border:2px solid #000000 !important;
}
html.ds-contrast-high .ds-main-nav-about-menu a,
html.ds-contrast-high .ds-main-nav-legal-menu a,
html.ds-contrast-high .wp-block-navigation__submenu-container a{
  color:#000000 !important;
}

/* Stronger generic focus treatment inside high-contrast mode. */
html.ds-contrast-high :where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"]),.wp-block-button__link):focus-visible{
  outline:3px solid #FFFFFF !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 6px #000000 !important;
}

/* But on plain white surfaces, use a rust/black combination instead of white-on-white. */
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-site-header,
  .ds-mobile-menu-panel,
  main,
  .ds-paper,
  .ds-paper-warm,
  .ds-rose,
  .ds-apricot,
  .ds-sand,
  .ds-sage,
  .ds-footer a,
  .ds-contrast-toggle
) :where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"]),.wp-block-button__link):focus-visible,
html.ds-contrast-high .ds-contrast-toggle:focus-visible{
  outline:3px solid #000000 !important;
  box-shadow:0 0 0 3px #FFFFFF, 0 0 0 6px var(--ds-rust-contrast) !important;
}


/* ============================================================
   v2.27.10 – high-contrast keyboard dropdown focus hotfix
   ============================================================ */
/* A focused submenu entry must be unmistakable in high-contrast mode.
   Override older light-focus rules with an explicit rust surface + white text. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-about-menu a:focus-visible,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-legal-menu a:focus-visible,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .wp-block-navigation__submenu-container a:focus-visible {
  background:#7B341E !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  outline:3px solid #000000 !important;
  outline-offset:-3px !important;
  box-shadow:0 0 0 3px #FFFFFF, 0 0 0 6px #000000 !important;
  text-decoration:none !important;
}

/* Pointer hover gets the same unambiguous visual treatment. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-about-menu a:hover,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-legal-menu a:hover,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .wp-block-navigation__submenu-container a:hover {
  background:#7B341E !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Unfocused submenu entries stay black on white. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-about-menu a:not(:hover):not(:focus-visible),
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav-legal-menu a:not(:hover):not(:focus-visible),
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .wp-block-navigation__submenu-container a:not(:hover):not(:focus-visible) {
  background:#FFFFFF !important;
  color:#000000 !important;
  -webkit-text-fill-color:#000000 !important;
}


/* ============================================================
   v2.27.13 – Evolize accessibility scan corrections
   ============================================================ */
:root{
  --ds-a11y-rust:#7B341E;
  --ds-a11y-on-orange:#2B1D16;
}

/* Defensive fallback: the parent-theme/core skip link is removed in PHP/JS,
   but if a cache serves it briefly it must not create a second tab stop. */
#wp-skip-link{ display:none !important; }

/* Hidden utilities must really be out of the interaction tree. */
.ds-nav-help-modal[hidden],
.ds-blog-modal[hidden],
.ds-mobile-menu-shell[hidden],
.ds-back-to-top[hidden]{ display:none !important; }

/* Normal mode: small text on brand orange uses AA-safe warm dark ink. */
body:not(.wp-admin) :where(
  .ds-cta .ds-kicker,
  .ds-cta .ds-lead,
  .ds-standard-booking-cta .ds-kicker,
  .ds-standard-booking-cta .ds-lead,
  .ds-pilates-booking-cta .ds-kicker,
  .ds-pilates-booking-cta .ds-lead
){ color:var(--ds-a11y-on-orange) !important; }

body:not(.wp-admin) :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .ds-workshop-card .wp-block-button__link,
  .ds-hero-buttons .ds-booking-link,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit
){
  color:var(--ds-a11y-on-orange) !important;
  -webkit-text-fill-color:var(--ds-a11y-on-orange) !important;
}

/* Links/kickers that previously used the vivid orange on pale paper use rust. */
body:not(.wp-admin) :where(
  .ds-blog-section-link a,
  .ds-workshop-fact strong,
  .ds-offer-card-fixed__kicker,
  .ds-offer-card-editable__kicker,
  .ds-pilates-course-facts dt
){ color:var(--ds-a11y-rust) !important; }

/* Light/outline buttons: rust or black text on white, not vivid orange. */
body:not(.wp-admin) :where(
  .ds-button-light .wp-block-button__link,
  .is-style-outline .wp-block-button__link,
  .ds-photo-hero .ds-button-light .wp-block-button__link,
  .ds-hero-buttons .wp-block-button:not(:first-child) .wp-block-button__link
){
  color:var(--ds-a11y-rust) !important;
  -webkit-text-fill-color:var(--ds-a11y-rust) !important;
  border-color:var(--ds-a11y-rust) !important;
}

/* Hero text stays white, so the photo receives a stronger dark reading layer. */
.ds-photo-hero::before{
  background:
    linear-gradient(90deg,rgba(20,16,14,.78) 0%,rgba(20,16,14,.64) 48%,rgba(20,16,14,.28) 100%),
    linear-gradient(0deg,rgba(20,16,14,.48) 0%,rgba(20,16,14,.10) 62%) !important;
}
.ds-photo-hero :where(h1,.ds-kicker,.ds-lead){
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}

/* Decorative arrows/icons still need enough visual contrast. */
.ds-main-nav-about-toggle > span[aria-hidden="true"],
.ds-main-nav-legal-toggle > span[aria-hidden="true"],
.ds-blog-section-link span[aria-hidden="true"]{
  color:currentColor !important;
  opacity:1 !important;
}
.ds-contrast-toggle__icon{ color:#000 !important; opacity:1 !important; }

/* Touch targets. */
.ds-wordmark{
  min-height:44px !important;
  display:inline-flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
.ds-footer a{
  min-height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  padding-block:3px !important;
}

/* Stable visible/focusable dropdowns and controls. */
.ds-main-nav-about-menu,
.ds-main-nav-legal-menu{ min-width:13rem !important; }

/* The nav-help overlay is an aside landmark; dialog remains the modal focus scope. */
.ds-nav-help-modal{ contain:layout style; }


/* ============================================================
   v2.27.14 – refined high contrast / WP admin bar / logo shape
   ============================================================ */
:root{
  --ds-hc-red:#7A1F2B;
}

/* High-contrast palette: true burgundy + white, no brown-orange. */
html.ds-contrast-high{
  --ds-rust-contrast:var(--ds-hc-red);
  --ds-a11y-rust:var(--ds-hc-red);
  --ds-link:var(--ds-hc-red);
  --ds-orange:var(--ds-hc-red);
  --ds-on-orange:#FFFFFF;
}

/* Every strong high-contrast action surface gets white type explicitly. */
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .ds-workshop-card .wp-block-button__link,
  .ds-hero-buttons .ds-booking-link,
  .ds-testimonial-arrow,
  .ds-blog-arrow,
  .ds-blog-overlay-arrow,
  .ds-back-to-top,
  .ds-offer-mobile-controls button,
  .ds-mobile-card-arrow,
  .ds-offer-insights-controls button,
  .wpcf7 input[type="submit"],
  .ds-contact-form input[type="submit"],
  .ds-contact-form-embed input[type="submit"],
  .ds-contact-form-embed .wpcf7-submit
){
  background:var(--ds-hc-red) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:var(--ds-hc-red) !important;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-header-cta .ds-booking-link,
  .ds-mobile-menu-booking,
  .ds-mobile-overlay-booking-button,
  .ds-booking-main-link,
  .ds-booking-modal__button,
  .ds-price-box__button,
  .ds-workshop-card .wp-block-button__link,
  .ds-hero-buttons .ds-booking-link
) :where(span,strong,small){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Quote / CTA bands use the same high-contrast red. */
html.ds-contrast-high :where(
  .ds-quote-band,
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-spotlight-teaser
){
  background:var(--ds-hc-red) !important;
}
html.ds-contrast-high :where(
  .ds-quote-band,
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-spotlight-teaser
) :where(h1,h2,h3,h4,h5,h6,p,strong,small,span,cite){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Blog image overlay / hover is burgundy in high contrast, never the brand orange. */
html.ds-contrast-high body:not(.wp-admin) .ds-blog-overlay-title-layer,
html.ds-contrast-high body:not(.wp-admin) .ds-blog-overlay-carousel.ds-blog-overlay-masonry .ds-blog-overlay-title-layer,
html.ds-contrast-high body:not(.wp-admin) .ds-offer-template-main .ds-offer-blog .ds-blog-compact-grid .ds-blog-overlay-title-layer,
html.ds-contrast-high body:not(.wp-admin) .ds-blog-section .ds-blog-overlay-title-layer,
html.ds-contrast-high body:not(.wp-admin) .ds-home-blog .ds-blog-overlay-title-layer,
html.ds-contrast-high body:not(.wp-admin) .ds-offer-blog .ds-blog-overlay-title-layer{
  background:rgba(122,31,43,.94) !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-blog-overlay-title-layer *{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
html.ds-contrast-high .ds-blog-modal-close{
  background:var(--ds-hc-red) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
html.ds-contrast-high .ds-blog-modal-backdrop{
  background:rgba(24,8,10,.84) !important;
}

/* Keyboard focus in high contrast: subtle white inner / burgundy outer ring,
   no chunky black nested rectangles. */
html.ds-contrast-high body:not(.wp-admin) :where(
  a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"]),.wp-block-button__link
):focus-visible{
  outline:2px solid #FFFFFF !important;
  outline-offset:2px !important;
  box-shadow:0 0 0 4px var(--ds-hc-red) !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav-about-menu a,
  .ds-main-nav-legal-menu a,
  .wp-block-navigation__submenu-container a
):focus-visible{
  background:var(--ds-hc-red) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  outline:2px solid #FFFFFF !important;
  outline-offset:-3px !important;
  box-shadow:0 0 0 2px var(--ds-hc-red) !important;
  text-decoration:none !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav-about-menu a,
  .ds-main-nav-legal-menu a,
  .wp-block-navigation__submenu-container a
):hover{
  background:var(--ds-hc-red) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Critical: logo stars must never become rectangular/square in high contrast.
   Restore the actual logo artwork for legacy pseudo-element markup and keep
   IMG implementations transparent + star-masked. */
html.ds-contrast-high .ds-site-header .ds-spuer-star.ds-header-star,
html.ds-contrast-high header.wp-block-template-part .ds-spuer-star.ds-header-star,
html.ds-contrast-high .ds-photo-hero .ds-spuer-star.ds-hero-star,
html.ds-contrast-high .ds-hero-focal .ds-spuer-star.ds-hero-star,
html.ds-contrast-high .ds-footer .ds-spuer-star.ds-footer-star{
  background:transparent !important;
  overflow:visible !important;
}
html.ds-contrast-high .ds-site-header .ds-spuer-star.ds-header-star::before,
html.ds-contrast-high header.wp-block-template-part .ds-spuer-star.ds-header-star::before,
html.ds-contrast-high .ds-photo-hero .ds-spuer-star.ds-hero-star::before,
html.ds-contrast-high .ds-hero-focal .ds-spuer-star.ds-hero-star::before,
html.ds-contrast-high .ds-footer .ds-spuer-star.ds-footer-star::before{
  background-color:transparent !important;
  background-image:var(--ds-star-logo) !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  -webkit-mask:none !important;
  mask:none !important;
}
html.ds-contrast-high :where(.ds-header-star-svg,.ds-hero-star-svg,.ds-footer-star-svg){
  background-color:#FFFFFF !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;
  border-radius:0 !important;
}

/* Decorative (non-logo) stars may be dark red, but stay clipped to the star mask. */
html.ds-contrast-high :where(
  .ds-quote-star,
  .ds-pantarei-explainer-star,
  .ds-spotlight-star,
  .ds-spotlight-compact-star
)::before{
  background:var(--ds-hc-red) !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;
}

/* Logged-in WordPress: never cover the admin bar with the skip link. */
body.admin-bar .ds-skip-link{
  top:calc(var(--wp-admin--admin-bar--height,32px) + .55rem) !important;
  left:.75rem !important;
  z-index:99990 !important;
  max-width:min(24rem,calc(100vw - 1.5rem)) !important;
}
body.admin-bar #wpadminbar{
  z-index:100000 !important;
}
@media (max-width:782px){
  body.admin-bar .ds-skip-link{
    top:calc(var(--wp-admin--admin-bar--height,46px) + .45rem) !important;
  }
}


/* ============================================================
   v2.27.15 – softer keyboard focus + complete HC blog overlay
   ============================================================ */

/* Main navigation focus: clearly visible without the heavy boxed control look. */
body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav > a,
  .ds-main-nav-about-toggle,
  .ds-main-nav-legal-toggle
):focus-visible{
  outline:none !important;
  box-shadow:inset 0 -3px 0 var(--ds-a11y-rust,#7B341E) !important;
  border-radius:.18rem !important;
  background:rgba(123,52,30,.055) !important;
  color:var(--ds-a11y-rust,#7B341E) !important;
  -webkit-text-fill-color:var(--ds-a11y-rust,#7B341E) !important;
  text-decoration:none !important;
}

/* High contrast uses the burgundy accent but stays visually restrained. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav > a,
  .ds-main-nav-about-toggle,
  .ds-main-nav-legal-toggle
):focus-visible{
  outline:none !important;
  box-shadow:inset 0 -3px 0 var(--ds-hc-red,#7A1F2B) !important;
  border-radius:.18rem !important;
  background:rgba(122,31,43,.075) !important;
  color:var(--ds-hc-red,#7A1F2B) !important;
  -webkit-text-fill-color:var(--ds-hc-red,#7A1F2B) !important;
}

/* Do not let the generic high-contrast focus ring re-wrap top-level nav items. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav > a,
  .ds-main-nav-about-toggle,
  .ds-main-nav-legal-toggle
):focus-visible::before,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav > a,
  .ds-main-nav-about-toggle,
  .ds-main-nav-legal-toggle
):focus-visible::after{
  box-shadow:none !important;
  outline:none !important;
}

/* Newer Einblicke / offer teaser cards use a separate overlay class.
   In high contrast this must use burgundy as well, not Doris orange. */
html.ds-contrast-high body:not(.wp-admin) .ds-offer-insight-card__overlay{
  background:linear-gradient(
    180deg,
    rgba(122,31,43,0) 16%,
    rgba(122,31,43,.32) 46%,
    rgba(122,31,43,.97) 100%
  ) !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-offer-insight-card__overlay :where(
  .ds-offer-insight-card__title,
  span,strong,small
){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Cover every blog overlay variant, including touch-device gradient rules. */
html.ds-contrast-high body:not(.wp-admin) :where(
  .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,
  .ds-blog-overlay-carousel .ds-blog-overlay-title-layer
){
  background:rgba(122,31,43,.94) !important;
}

@media (hover:none){
  html.ds-contrast-high body:not(.wp-admin) :where(
    .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,
    .ds-blog-overlay-carousel .ds-blog-overlay-title-layer
  ){
    background:linear-gradient(0deg,rgba(122,31,43,.98),rgba(122,31,43,0)) !important;
  }
}


/* ============================================================
   v2.28.1 – coherent hero buttons + Doris high-contrast palette
   ============================================================ */
:root{
  --ds-hc-accent:#8A2F17;       /* dark burnt orange / brick: close to Doris orange, WCAG-safe with white */
  --ds-hc-accent-soft:#F5E9E3;
  --ds-button-ink:#2B1D16;
}

/* Normal mode: intentional primary/secondary hierarchy, but one text colour.
   Primary = Doris orange, secondary = light paper. */
body:not(.wp-admin):not(.ds-contrast-high) .ds-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
body:not(.wp-admin):not(.ds-contrast-high) .ds-hero-focal .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
body:not(.wp-admin):not(.ds-contrast-high) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link{
  background:#F74900 !important;
  color:var(--ds-button-ink) !important;
  -webkit-text-fill-color:var(--ds-button-ink) !important;
  border:2px solid #F74900 !important;
}
body:not(.wp-admin):not(.ds-contrast-high) .ds-photo-hero .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link,
body:not(.wp-admin):not(.ds-contrast-high) .ds-hero-focal .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link,
body:not(.wp-admin):not(.ds-contrast-high) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link{
  background:#FFF9F3 !important;
  color:var(--ds-button-ink) !important;
  -webkit-text-fill-color:var(--ds-button-ink) !important;
  border:2px solid #F74900 !important;
}
body:not(.wp-admin):not(.ds-contrast-high) .ds-photo-hero .ds-hero-buttons .wp-block-button .wp-block-button__link:hover,
body:not(.wp-admin):not(.ds-contrast-high) .ds-hero-focal .ds-hero-buttons .wp-block-button .wp-block-button__link:hover,
body:not(.wp-admin):not(.ds-contrast-high) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button .wp-block-button__link:hover{
  background:var(--ds-hc-accent) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:var(--ds-hc-accent) !important;
}

/* High contrast stays recognisably Doris: a deeper burnt-orange version of the
   brand colour rather than burgundy/black. White on this accent is > 8:1. */
html.ds-contrast-high{
  --ds-hc-red:var(--ds-hc-accent);
  --ds-rust-contrast:var(--ds-hc-accent);
  --ds-a11y-rust:var(--ds-hc-accent);
  --ds-link:var(--ds-hc-accent);
  --ds-orange:var(--ds-hc-accent);
  --ds-on-orange:#FFFFFF;
}

/* High-contrast primary buttons use the deep Doris orange; secondary buttons
   stay light. This creates hierarchy without introducing unrelated colours. */
html.ds-contrast-high body:not(.wp-admin) .ds-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-hero-focal .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-header-cta .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-header-cta .ds-booking-link{
  background:var(--ds-hc-accent) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:var(--ds-hc-accent) !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-photo-hero .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-hero-focal .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link{
  background:#FFFFFF !important;
  color:#111111 !important;
  -webkit-text-fill-color:#111111 !important;
  border:2px solid var(--ds-hc-accent) !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-photo-hero .ds-hero-buttons .wp-block-button .wp-block-button__link:hover,
html.ds-contrast-high body:not(.wp-admin) .ds-hero-focal .ds-hero-buttons .wp-block-button .wp-block-button__link:hover,
html.ds-contrast-high body:not(.wp-admin) .ds-editable-photo-hero .ds-hero-buttons .wp-block-button .wp-block-button__link:hover{
  background:#5E1D0E !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#5E1D0E !important;
}

/* Apply the same deep-orange palette to all high-contrast blog overlays. */
html.ds-contrast-high body:not(.wp-admin) .ds-offer-insight-card__overlay{
  background:linear-gradient(
    180deg,
    rgba(138,47,23,0) 14%,
    rgba(138,47,23,.38) 46%,
    rgba(138,47,23,.98) 100%
  ) !important;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .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,
  .ds-blog-overlay-carousel .ds-blog-overlay-title-layer
){
  background:rgba(138,47,23,.96) !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-blog-overlay-title-layer,
  .ds-offer-insight-card__overlay
) :where(*,h2,h3,p,span,strong,small){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
@media (hover:none){
  html.ds-contrast-high body:not(.wp-admin) :where(
    .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,
    .ds-blog-overlay-carousel .ds-blog-overlay-title-layer
  ){
    background:linear-gradient(0deg,rgba(138,47,23,.99),rgba(138,47,23,0)) !important;
  }
}

/* High-contrast focus stays visible but warm/subtle – no black box. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header :where(
  .ds-main-nav > a,
  .ds-main-nav-about-toggle,
  .ds-main-nav-legal-toggle
):focus-visible{
  outline:none !important;
  box-shadow:inset 0 -3px 0 var(--ds-hc-accent) !important;
  background:var(--ds-hc-accent-soft) !important;
  color:#6D2412 !important;
  -webkit-text-fill-color:#6D2412 !important;
  border-radius:.12rem !important;
}


/* ============================================================
   v2.28.2 – audit: standard skip link + label-in-name + focus order
   ============================================================ */

/* Keep the standard WordPress/audit-friendly skip-link class while our own
   transform controls its hidden/visible state. screen-reader-text must not
   clip the element once it is used as the primary skip link. */
.ds-skip-link.screen-reader-text{
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  clip:auto !important;
  clip-path:none !important;
  overflow:visible !important;
  white-space:normal !important;
}
.ds-skip-link.screen-reader-text:focus,
.ds-skip-link.screen-reader-text:focus-visible{
  width:auto !important;
  height:auto !important;
  clip:auto !important;
  clip-path:none !important;
}

/* Normal brand orange needs a genuinely dark foreground for normal-sized text. */
:root{ --ds-orange-text-aa:#211510; }
body:not(.wp-admin):not(.ds-contrast-high) :where(
  .ds-header-cta .ds-booking-link,
  .ds-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
  .ds-hero-focal .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link,
  .ds-editable-photo-hero .ds-hero-buttons .wp-block-button:first-child .wp-block-button__link
){
  color:var(--ds-orange-text-aa) !important;
  -webkit-text-fill-color:var(--ds-orange-text-aa) !important;
}

/* Secondary hero action: light surface + dark ink. */
body:not(.wp-admin):not(.ds-contrast-high) :where(
  .ds-photo-hero,
  .ds-hero-focal,
  .ds-editable-photo-hero
) .ds-hero-buttons .wp-block-button.is-style-outline .wp-block-button__link{
  color:#211510 !important;
  -webkit-text-fill-color:#211510 !important;
}

/* Improve readability of white hero typography against photography without
   changing Doris' photography itself. The left/text side gets a stronger
   neutral veil and fades away before the decorative star. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
  background:linear-gradient(90deg,rgba(18,15,13,.68) 0%,rgba(18,15,13,.56) 37%,rgba(18,15,13,.22) 63%,rgba(18,15,13,0) 82%) !important;
}
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) :where(h1,.ds-kicker,.ds-lead){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  text-shadow:0 1px 2px rgba(0,0,0,.22) !important;
}

/* Small orange/meta text and arrows on light surfaces use the dark functional
   orange rather than the bright brand orange. */
body:not(.wp-admin):not(.ds-contrast-high) :where(
  .ds-offer-card-fixed__kicker,
  .ds-offer-card-editable__kicker,
  .ds-blog-section-link a,
  .ds-blog-section-link a span,
  .ds-offer-insights-home-style a,
  .ds-offer-insights-home-style a span,
  .ds-main-nav-about-toggle > span[aria-hidden="true"],
  .ds-main-nav-legal-toggle > span[aria-hidden="true"]
){
  color:#8A2F17 !important;
  -webkit-text-fill-color:#8A2F17 !important;
}

/* The contrast-toggle symbol inherits the same strong ink as its label. */
.ds-contrast-toggle__icon{
  color:#211510 !important;
  -webkit-text-fill-color:#211510 !important;
}
html.ds-contrast-high .ds-contrast-toggle__icon{
  color:#111111 !important;
  -webkit-text-fill-color:#111111 !important;
}


/* ============================================================
   v2.28.3 – scanner hardening: real fallback anchors + AA colour
   ============================================================ */

/* Normal mode: Doris orange remains unchanged. Small/normal text on orange uses
   very dark warm ink; this is materially stronger than white on #F74900. */
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-quote-band
) :where(h1,h2,h3,h4,h5,h6,p,cite,strong,small,.ds-kicker,.ds-lead){
  color:#211510 !important;
  -webkit-text-fill-color:#211510 !important;
  text-shadow:none !important;
}

/* Quote bands use the same strong warm ink in normal mode. */
html:not(.ds-contrast-high) body:not(.wp-admin) .ds-quote-band blockquote,
html:not(.ds-contrast-high) body:not(.wp-admin) .ds-quote-band blockquote p,
html:not(.ds-contrast-high) body:not(.wp-admin) .ds-quote-band cite{
  color:#211510 !important;
  -webkit-text-fill-color:#211510 !important;
}

/* CTA buttons on bright orange sections are light cards with dark ink. */
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta
) .wp-block-button__link{
  background:#FFF9F3 !important;
  color:#2B1D16 !important;
  -webkit-text-fill-color:#2B1D16 !important;
  border:2px solid #8A2F17 !important;
}
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta
) .wp-block-button__link:hover{
  background:#8A2F17 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#8A2F17 !important;
}

/* Hero typography: make the text side genuinely dark enough rather than
   relying on a soft photographic veil. */
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-photo-hero,
  .ds-hero-focal,
  .ds-editable-photo-hero
)::after{
  background:linear-gradient(
    90deg,
    rgba(18,15,13,.82) 0%,
    rgba(18,15,13,.75) 38%,
    rgba(18,15,13,.46) 60%,
    rgba(18,15,13,.08) 82%
  ) !important;
}
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-photo-hero,
  .ds-hero-focal,
  .ds-editable-photo-hero
) :where(h1,.ds-kicker,.ds-lead){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Text/meta colours on light surfaces. */
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-offer-card-fixed__kicker,
  .ds-offer-card-editable__kicker,
  .ds-testimonial-name,
  .ds-blog-section-link a,
  .ds-blog-section-link a span,
  .ds-offer-insights-home-style > a,
  .ds-offer-insights-home-style > a span
){
  color:#7A2915 !important;
  -webkit-text-fill-color:#7A2915 !important;
}

/* Carousel controls: deep burnt orange + white. */
html:not(.ds-contrast-high) body:not(.wp-admin) :where(
  .ds-testimonial-arrow,
  .ds-blog-arrow,
  .ds-offer-insights-controls button,
  .ds-mobile-card-arrow,
  .ds-offer-mobile-controls button
){
  background:#8A2F17 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Blog/Einblicke overlay text sits on a sufficiently opaque background. */
html:not(.ds-contrast-high) body:not(.wp-admin) .ds-offer-insight-card__overlay{
  background:linear-gradient(
    180deg,
    rgba(138,47,23,0) 8%,
    rgba(138,47,23,.60) 48%,
    rgba(92,27,13,.98) 100%
  ) !important;
}
html:not(.ds-contrast-high) body:not(.wp-admin) .ds-offer-insight-card__overlay :where(
  .ds-offer-insight-card__title,span,strong,small
){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Visually hidden live status: keep the computed colour strong as well. */
.ds-testimonial-status{
  color:#211510 !important;
}

/* High contrast stays recognisably Doris: burnt red + white. */
html.ds-contrast-high{
  --ds-hc-accent:#7A2418;
  --ds-hc-accent-soft:#F6E9E4;
  --ds-link:#7A2418;
  --ds-orange:#7A2418;
  --ds-on-orange:#FFFFFF;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-quote-band
){
  background:#7A2418 !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-quote-band
) :where(h1,h2,h3,h4,h5,h6,p,cite,strong,small,.ds-kicker,.ds-lead,blockquote){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-testimonial-arrow,
  .ds-blog-arrow,
  .ds-offer-insights-controls button,
  .ds-mobile-card-arrow,
  .ds-offer-mobile-controls button
){
  background:#7A2418 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Logged-in WordPress: first Tab remains below the admin bar. */
body.admin-bar .ds-skip-link{
  top:calc(32px + .75rem) !important;
}
@media(max-width:782px){
  body.admin-bar .ds-skip-link{
    top:calc(46px + .75rem) !important;
  }
}

/* ============================================================
   v2.28.4 – photographic media monochrome in high-contrast mode
   ============================================================ */

/* High contrast keeps Doris' functional accent colour, while photographic
   content is rendered monochrome. Apply the filter to the image itself – not
   its section/card – so text, controls, overlays and the spuer-dich artwork
   retain their intended contrast colours. SVG artwork and local icon assets
   are deliberately excluded. */
html.ds-contrast-high body:not(.wp-admin) img:not([src*=".svg"]):not([src*="/assets/icons/"]):not(.ds-hero-star-svg):not(.ds-header-star-svg):not(.ds-footer-star-svg):not(.ds-optional-cta__logo){
  filter:grayscale(100%) !important;
}


/* ============================================================
   v2.28.5 – high-contrast fix for article/page optional CTA
   ============================================================ */

/* The generic high-contrast content-link rule makes normal links rust on
   white. The compact article CTA is itself a rust surface, so its outlined
   action must explicitly keep a white foreground. */
html.ds-contrast-high body:not(.wp-admin) .ds-optional-cta{
  background:var(--ds-hc-accent, #7A2418) !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-optional-cta :where(
  .ds-optional-cta__title,
  .ds-optional-cta__text
){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) main .ds-optional-cta .ds-optional-cta__link{
  background:transparent !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#FFFFFF !important;
  text-decoration:none !important;
}
html.ds-contrast-high body:not(.wp-admin) main .ds-optional-cta .ds-optional-cta__link span{
  color:inherit !important;
  -webkit-text-fill-color:inherit !important;
}
html.ds-contrast-high body:not(.wp-admin) main .ds-optional-cta .ds-optional-cta__link:hover,
html.ds-contrast-high body:not(.wp-admin) main .ds-optional-cta .ds-optional-cta__link:focus-visible{
  background:#FFFFFF !important;
  color:var(--ds-hc-accent, #7A2418) !important;
  -webkit-text-fill-color:var(--ds-hc-accent, #7A2418) !important;
  border-color:#FFFFFF !important;
}


/* ============================================================
   v2.28.6 – Hero contrast without permanently darkening the photo
   ============================================================ */

/* Accessibility note:
   The delayed, full-image veil is deliberately NOT responsible for text
   contrast. The immediate text-side scrim below carries that job, so the
   Hero remains readable from the first painted frame while most of the photo
   stays considerably brighter. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content{
  isolation:isolate;
}
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  inset:clamp(-2.2rem,-2.4vw,-1.4rem) clamp(-8rem,-7vw,-4rem) clamp(-2.4rem,-2.6vw,-1.5rem) clamp(-5rem,-5vw,-2rem);
  background:linear-gradient(
    90deg,
    rgba(18,15,13,.58) 0%,
    rgba(18,15,13,.58) 60%,
    rgba(18,15,13,.42) 76%,
    rgba(18,15,13,.16) 91%,
    rgba(18,15,13,0) 100%
  );
  border-radius:1.25rem;
}

/* The broad cinematic veil is only a visual finish. It appears after the
   Hero image has loaded and a short delay has elapsed. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
  background:linear-gradient(
    90deg,
    rgba(18,15,13,.12) 0%,
    rgba(18,15,13,.08) 40%,
    rgba(18,15,13,.03) 68%,
    rgba(18,15,13,0) 88%
  ) !important;
  opacity:0 !important;
  transition:opacity .9s cubic-bezier(.22,.61,.36,1) !important;
}
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero).ds-hero-overlay-ready::after{
  opacity:1 !important;
}

/* In the optional high-contrast mode the accessibility preference wins over
   the delayed visual treatment. Keep the local text scrim stronger and show
   the subtle veil immediately. */
html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  background:linear-gradient(
    90deg,
    rgba(17,17,17,.72) 0%,
    rgba(17,17,17,.72) 64%,
    rgba(17,17,17,.52) 80%,
    rgba(17,17,17,.20) 93%,
    rgba(17,17,17,0) 100%
  );
}
html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
  opacity:1 !important;
  transition:none !important;
}

@media (max-width:780px){
  body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    inset:-2.25rem -1.25rem -2.5rem -1.25rem;
    background:linear-gradient(
      180deg,
      rgba(18,15,13,.58) 0%,
      rgba(18,15,13,.58) 72%,
      rgba(18,15,13,.34) 88%,
      rgba(18,15,13,0) 100%
    );
    border-radius:0;
  }
  html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    background:linear-gradient(
      180deg,
      rgba(17,17,17,.72) 0%,
      rgba(17,17,17,.72) 76%,
      rgba(17,17,17,.50) 90%,
      rgba(17,17,17,0) 100%
    );
  }
}

/* Users who request reduced motion get the final visual state without a fade. */
@media (prefers-reduced-motion:reduce){
  body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
    opacity:1 !important;
    transition:none !important;
  }
}

/* ============================================================
   v2.28.7 – brighter full-bleed Hero + slower contrast finish
   ============================================================ */

/* The photographic Hero is a viewport element, not a content-column element.
   This makes the image meet both browser edges even when WordPress wraps the
   pattern in a constrained layout container. */
body:not(.wp-admin) :where(.ds-photo-hero.ds-hero-focal,.ds-editable-photo-hero){
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  margin-inline-start:calc(50% - 50vw) !important;
  margin-inline-end:calc(50% - 50vw) !important;
  box-sizing:border-box !important;
}

body:not(.wp-admin) :where(.ds-photo-hero.ds-hero-focal,.ds-editable-photo-hero) .ds-hero-focal-image{
  inset:0 !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

body:not(.wp-admin) :where(.ds-photo-hero.ds-hero-focal,.ds-editable-photo-hero) .ds-hero-focal-image img{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* Keep only a restrained warm scrim directly behind the copy. The previous
   neutral-black layer made the whole left half of the photograph look muddy. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  inset:clamp(-1.7rem,-1.8vw,-1.15rem) clamp(-3.5rem,-3vw,-2rem) clamp(-1.9rem,-2vw,-1.25rem) clamp(-2.4rem,-2.5vw,-1.4rem) !important;
  background:linear-gradient(
    90deg,
    rgba(42,37,34,.34) 0%,
    rgba(42,37,34,.30) 52%,
    rgba(42,37,34,.18) 74%,
    rgba(42,37,34,.06) 91%,
    rgba(42,37,34,0) 100%
  ) !important;
  border-radius:1rem !important;
}

/* A very soft text shadow helps the lettering remain legible without making
   the photograph itself darker. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) :where(h1,.ds-kicker,.ds-lead){
  text-shadow:0 1px 16px rgba(18,15,13,.22) !important;
}

/* The broad finish is intentionally subtle and slow. JS adds the ready class
   only after 2.2 s; the transition then takes another 1.65 s. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
  background:linear-gradient(
    90deg,
    rgba(42,37,34,.09) 0%,
    rgba(42,37,34,.055) 42%,
    rgba(42,37,34,.018) 70%,
    rgba(42,37,34,0) 90%
  ) !important;
  opacity:0 !important;
  transition:opacity 1.65s cubic-bezier(.22,.61,.36,1) !important;
}
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero).ds-hero-overlay-ready::after{
  opacity:1 !important;
}

/* High-contrast remains stronger than the normal presentation, but avoids the
   near-black block introduced in v2.28.6. */
html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  background:linear-gradient(
    90deg,
    rgba(24,22,21,.52) 0%,
    rgba(24,22,21,.48) 56%,
    rgba(24,22,21,.30) 77%,
    rgba(24,22,21,.10) 92%,
    rgba(24,22,21,0) 100%
  ) !important;
}

@media (max-width:780px){
  body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    inset:-1.5rem -.75rem -1.9rem -.75rem !important;
    background:linear-gradient(
      180deg,
      rgba(42,37,34,.30) 0%,
      rgba(42,37,34,.27) 70%,
      rgba(42,37,34,.14) 87%,
      rgba(42,37,34,0) 100%
    ) !important;
  }

  html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    background:linear-gradient(
      180deg,
      rgba(24,22,21,.50) 0%,
      rgba(24,22,21,.46) 72%,
      rgba(24,22,21,.27) 88%,
      rgba(24,22,21,0) 100%
    ) !important;
  }
}

/* ============================================================
   v2.28.8 – Hero contrast only behind copy, never across photo
   ============================================================ */

/* Remove all legacy full-surface Hero veils. Earlier theme generations used
   both ::before and ::after on the Hero wrapper; later overrides only changed
   one of them, which could still make the complete photograph look muddy. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::before,
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero)::after{
  background:none !important;
  opacity:0 !important;
  transition:none !important;
  pointer-events:none !important;
}

/* The only contrast treatment now lives directly behind the copy block.
   It extends just a little beyond the text/buttons and fades out before it
   reaches the portrait/photo area. A mild base state is present immediately;
   the final strength arrives later and slowly. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  inset:clamp(-1.15rem,-1.2vw,-.8rem) clamp(-2.5rem,-2.4vw,-1.4rem) clamp(-1.35rem,-1.4vw,-.9rem) clamp(-1.5rem,-1.5vw,-1rem) !important;
  background:linear-gradient(
    90deg,
    rgba(78,58,49,.40) 0%,
    rgba(78,58,49,.34) 58%,
    rgba(78,58,49,.19) 80%,
    rgba(78,58,49,.05) 94%,
    rgba(78,58,49,0) 100%
  ) !important;
  opacity:.68 !important;
  border-radius:.85rem !important;
  transition:opacity 1.9s cubic-bezier(.22,.61,.36,1) !important;
}

body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero).ds-hero-overlay-ready .ds-photo-hero-content::before{
  opacity:1 !important;
}

/* Keep text crisp rather than compensating with a darker photograph. */
body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) :where(h1,.ds-kicker,.ds-lead){
  text-shadow:0 1px 12px rgba(28,20,17,.20) !important;
}

/* High contrast is still local: stronger behind the copy, never a black wash
   over the complete Hero image. */
html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
  background:linear-gradient(
    90deg,
    rgba(40,33,29,.62) 0%,
    rgba(40,33,29,.58) 62%,
    rgba(40,33,29,.34) 82%,
    rgba(40,33,29,.10) 95%,
    rgba(40,33,29,0) 100%
  ) !important;
  opacity:1 !important;
  transition:none !important;
}

@media (max-width:780px){
  body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    inset:-1rem -.7rem -1.25rem -.7rem !important;
    background:linear-gradient(
      180deg,
      rgba(78,58,49,.35) 0%,
      rgba(78,58,49,.32) 68%,
      rgba(78,58,49,.17) 86%,
      rgba(78,58,49,0) 100%
    ) !important;
    border-radius:.7rem !important;
  }

  html.ds-contrast-high body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    background:linear-gradient(
      180deg,
      rgba(40,33,29,.60) 0%,
      rgba(40,33,29,.56) 72%,
      rgba(40,33,29,.31) 88%,
      rgba(40,33,29,0) 100%
    ) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  body:not(.wp-admin) :where(.ds-photo-hero,.ds-hero-focal,.ds-editable-photo-hero) .ds-photo-hero-content::before{
    opacity:1 !important;
    transition:none !important;
  }
}

/* ============================================================
   v2.28.9 – Mobile menu control alignment
   Hamburger and open-menu close control share the exact same
   viewport edge, hit area and optical centre.
   ============================================================ */
@media (max-width:1280px){
  :root{
    --ds-mobile-nav-edge:clamp(1.25rem,5vw,2.2rem);
    --ds-mobile-nav-control:3rem;
  }

  /* The closed header uses the same right gutter as the full-screen menu. */
  .ds-header-inner,
  .ds-site-header .ds-header-inner,
  header.wp-block-template-part .ds-header-inner,
  .ds-site-header .alignwide{
    padding-right:var(--ds-mobile-nav-edge) !important;
  }

  .ds-menu-toggle,
  .ds-mobile-menu-close{
    width:var(--ds-mobile-nav-control) !important;
    height:var(--ds-mobile-nav-control) !important;
    min-width:var(--ds-mobile-nav-control) !important;
    min-height:var(--ds-mobile-nav-control) !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
  }

  .ds-menu-toggle{
    display:grid !important;
    place-items:center !important;
  }

  /* Slightly finer hamburger: same visual weight as the × in the open menu. */
  .ds-menu-toggle > span,
  .ds-menu-toggle > span::before,
  .ds-menu-toggle > span::after{
    width:1.65rem !important;
    height:2px !important;
    border-radius:999px !important;
  }
  .ds-menu-toggle > span::before{ top:-6px !important; }
  .ds-menu-toggle > span::after{ top:6px !important; }

  .ds-mobile-menu-close{
    display:grid !important;
    place-items:center !important;
    font-size:2rem !important;
    line-height:1 !important;
  }

  /* The panel uses the identical edge token, so toggle and × occupy the
     same x-position before and after opening the menu. */
  .ds-mobile-menu-panel{
    padding-left:var(--ds-mobile-nav-edge) !important;
    padding-right:var(--ds-mobile-nav-edge) !important;
  }
}


/* ==========================================================
   v2.29.0 – mobile quote centering refinement
   The quote band on small screens should feel optically centered,
   not just technically centered. Force a centered inner layout,
   balance line breaks and keep a little breathing room around the
   quotation marks so the mobile composition reads calmer.
   ========================================================== */
@media (max-width: 680px){
  .ds-quote-band{
    padding-inline: clamp(1.35rem, 5.5vw, 2rem) !important;
  }

  .ds-quote-band > .ds-grid,
  .ds-quote-band .ds-grid,
  .ds-quote-band .ds-col-12,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band > .ds-grid,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-col-12{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    max-width:none !important;
  }

  .ds-quote-band .ds-kicker,
  .ds-quote-band blockquote,
  .ds-quote-band .wp-block-quote,
  .ds-quote-band blockquote p,
  .ds-quote-band .wp-block-quote p,
  .ds-quote-band cite,
  .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;
  }

  .ds-quote-band blockquote,
  .ds-quote-band .wp-block-quote,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote{
    width:100% !important;
    max-width:min(100%, 19rem) !important;
    margin:0 auto !important;
    padding-inline:.35rem !important;
    border:0 !important;
  }

  .ds-quote-band blockquote p,
  .ds-quote-band .wp-block-quote p,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p{
    margin-inline:auto !important;
    max-width:100% !important;
    text-wrap:balance !important;
    hanging-punctuation:first last !important;
  }

  .ds-quote-band cite,
  .ds-insights-magazine .ds-magazine-quote.ds-quote-band cite{
    margin-inline:auto !important;
  }
}


/* ============================================================
   v2.29.3 – clean hero baseline, white quotes, reliable header CTA
   Built from v2.29.0; intentionally high-specificity to beat legacy rules.
   ============================================================ */

/* ----- QUOTES: white on a slightly deeper orange (AA-safe for small cite). ----- */
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band {
  background:#D63C00 !important;
  color:#FFFFFF !important;
}
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band .wp-block-quote,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band .wp-block-quote p,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band blockquote,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band blockquote p,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band cite,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band .ds-kicker {
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  text-shadow:none !important;
}
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band .wp-block-quote,
html:not(.ds-contrast-high) body:not(.wp-admin) main#main-content .ds-quote-band blockquote {
  border-color:#FFFFFF !important;
}

/* ----- HEADER CTA: white label at rest and on every interactive state. ----- */
body:not(.wp-admin) .ds-site-header .ds-header-inner .ds-header-cta > a.ds-booking-link {
  background:#F74900 !important;
  border-color:#F74900 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
body:not(.wp-admin) .ds-site-header .ds-header-inner .ds-header-cta > a.ds-booking-link:hover,
body:not(.wp-admin) .ds-site-header .ds-header-inner .ds-header-cta > a.ds-booking-link:focus-visible,
body:not(.wp-admin) .ds-site-header .ds-header-inner .ds-header-cta > a.ds-booking-link:active {
  background:#7A2915 !important;
  border-color:#7A2915 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* ----- DESKTOP HERO: one horizontal stage with no hard overlay edge. ----- */
@media (min-width:781px) {
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero {
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    width:100vw !important;
    max-width:100vw !important;
    height:clamp(35rem,40vw,42rem) !important;
    min-height:0 !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    overflow:hidden !important;
    background:transparent !important;
    isolation:isolate !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal::before,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero::before {
    content:none !important;
    display:none !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > figure.ds-hero-focal-image,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > figure.ds-hero-focal-image {
    position:absolute !important;
    inset:0 !important;
    z-index:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:transparent !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > figure.ds-hero-focal-image > img,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > figure.ds-hero-focal-image > img {
    position:absolute !important;
    inset:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:cover !important;
    object-position:var(--ds-hero-focus,50% 50%) !important;
    filter:none !important;
    transform:none !important;
  }

  /* One smooth left-side veil. It starts readable, then very slowly deepens. */
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal::after,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero::after {
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    pointer-events:none !important;
    background:linear-gradient(90deg,
      rgba(35,28,24,.46) 0%,
      rgba(35,28,24,.38) 22%,
      rgba(35,28,24,.23) 40%,
      rgba(35,28,24,.09) 54%,
      rgba(35,28,24,0) 68%) !important;
    opacity:.68 !important;
    transition:opacity 11s cubic-bezier(.22,.61,.36,1) !important;
  }
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal.ds-hero-overlay-ready::after,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero.ds-hero-overlay-ready::after {
    opacity:.92 !important;
  }

  /* Kill the later rectangular copy scrim from older experiments. */
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal .ds-photo-hero-content::before,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero .ds-photo-hero-content::before {
    content:none !important;
    display:none !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-photo-hero-content,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-photo-hero-content {
    position:relative !important;
    z-index:3 !important;
    width:min(38rem,44vw) !important;
    max-width:38rem !important;
    margin:0 auto 0 clamp(3rem,8vw,8rem) !important;
    padding:0 !important;
    color:#FFFFFF !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-photo-hero-content h1,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-photo-hero-content h1 {
    margin:0 !important;
    max-width:100% !important;
    font-size:clamp(3.55rem,4.55vw,4.75rem) !important;
    line-height:.99 !important;
    letter-spacing:-.04em !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
  }

  body:not(.wp-admin) main#main-content .ds-home-hero > .ds-photo-hero-content h1 {
    font-size:clamp(3.8rem,4.9vw,5.05rem) !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-photo-hero-content .ds-kicker,
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-photo-hero-content .ds-lead,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-photo-hero-content .ds-kicker,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-photo-hero-content .ds-lead {
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-photo-hero-content .ds-lead,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-photo-hero-content .ds-lead {
    max-width:35rem !important;
    margin-top:1.35rem !important;
    font-size:clamp(1rem,1.15vw,1.15rem) !important;
    line-height:1.55 !important;
  }

  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal .ds-hero-buttons,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero .ds-hero-buttons {
    display:flex !important;
    flex-wrap:wrap !important;
    gap:1rem !important;
    margin-top:2rem !important;
  }

  /* Inner-page star: restrained size, deliberately clipped at right edge. */
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-spuer-star.ds-hero-star,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-spuer-star.ds-hero-star {
    position:absolute !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    top:52% !important;
    right:-3.4rem !important;
    bottom:auto !important;
    left:auto !important;
    width:clamp(16rem,19vw,20rem) !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
    margin:0 !important;
    transform:translateY(-50%) rotate(2deg) !important;
    z-index:4 !important;
    pointer-events:none !important;
  }

  /* Home uses the finished SVG signet, same visual scale as inner pages. */
  body:not(.wp-admin) main#main-content .ds-home-hero > img.ds-hero-star-svg {
    position:absolute !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    top:53% !important;
    right:-3.8rem !important;
    bottom:auto !important;
    left:auto !important;
    width:clamp(16.5rem,20vw,21rem) !important;
    height:auto !important;
    max-width:none !important;
    margin:0 !important;
    transform:translateY(-50%) rotate(2deg) !important;
    z-index:4 !important;
    pointer-events:none !important;
  }

  /* Home portrait focal point: face stays central, copy keeps breathing room. */
  body:not(.wp-admin) main#main-content .ds-home-hero {
    --ds-hero-focus:42% 40% !important;
  }
  body:not(.wp-admin) main#main-content .ds-home-hero > figure.ds-hero-focal-image > img {
    object-position:42% 40% !important;
  }
}

/* Reduced motion / high contrast: no delayed veil. */
@media (prefers-reduced-motion:reduce) {
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal::after,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero::after {
    opacity:.82 !important;
    transition:none !important;
  }
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal::after,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-editable-photo-hero::after {
  opacity:.88 !important;
  transition:none !important;
}


/* ============================================================
   v2.29.4 – UI polish: stronger hero affordance, star controls,
   mobile hyphenation and horizontal Pilates course cards
   ============================================================ */

/* Booking CTAs on orange: force white text wherever the booking link itself
   is the orange primary action (header + hero). */
body:not(.wp-admin) .ds-site-header .ds-header-cta > a.ds-booking-link,
body:not(.wp-admin) main#main-content .ds-photo-hero .ds-hero-buttons .wp-block-button:not(.is-style-outline) > a.ds-booking-link,
body:not(.wp-admin) main#main-content .ds-hero-focal .ds-hero-buttons .wp-block-button:not(.is-style-outline) > a.ds-booking-link {
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
body:not(.wp-admin) .ds-site-header .ds-header-cta > a.ds-booking-link :where(span,strong,small),
body:not(.wp-admin) main#main-content .ds-photo-hero .ds-hero-buttons .wp-block-button:not(.is-style-outline) > a.ds-booking-link :where(span,strong,small),
body:not(.wp-admin) main#main-content .ds-hero-focal .ds-hero-buttons .wp-block-button:not(.is-style-outline) > a.ds-booking-link :where(span,strong,small){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Make the decorative 'spür dich' signet a little more intentional again. */
@media (min-width:781px){
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal > .ds-spuer-star.ds-hero-star,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero > .ds-spuer-star.ds-hero-star{
    width:clamp(19rem,23vw,24rem) !important;
    right:-4.2rem !important;
  }
  body:not(.wp-admin) main#main-content .ds-home-hero > img.ds-hero-star-svg{
    width:clamp(20rem,24vw,25rem) !important;
    right:-4.6rem !important;
  }

  /* Desktop needs a clearly perceptible but still restrained veil. It begins
     already visible and then slowly deepens after the JS delay. */
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal::after,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero::after{
    background:linear-gradient(90deg,
      rgba(35,28,24,.56) 0%,
      rgba(35,28,24,.46) 22%,
      rgba(35,28,24,.29) 40%,
      rgba(35,28,24,.12) 54%,
      rgba(35,28,24,0) 70%) !important;
    opacity:.74 !important;
    transition:opacity 12s cubic-bezier(.22,.61,.36,1) !important;
  }
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal.ds-hero-overlay-ready::after,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero.ds-hero-overlay-ready::after{
    opacity:1 !important;
  }
}

/* Mobile hero headings: permit natural German hyphenation instead of clipping
   long compounds such as "Körperbewusstsein". */
@media (max-width:780px){
  body:not(.wp-admin) main#main-content .ds-photo-hero.ds-hero-focal .ds-photo-hero-content h1,
  body:not(.wp-admin) main#main-content .ds-editable-photo-hero .ds-photo-hero-content h1{
    -webkit-hyphens:auto !important;
    hyphens:auto !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
    text-wrap:balance !important;
    max-width:100% !important;
  }
}

/* Mobile swipe controls: use the Doris orange star itself as the button shape.
   This makes "there is more content horizontally" unmistakable without text. */
@media (max-width:780px){
  .ds-mobile-card-controls{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:clamp(.7rem,3vw,1rem) !important;
    margin-top:clamp(.9rem,4vw,1.35rem) !important;
  }
  button.ds-mobile-card-arrow{
    width:3.9rem !important;
    height:3.9rem !important;
    min-width:3.9rem !important;
    min-height:3.9rem !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background-color:transparent !important;
    background-image:url('../icons/spuer-dich-star-rounded.svg') !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:contain !important;
    box-shadow:none !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
    font-size:2.25rem !important;
    font-weight:700 !important;
    line-height:1 !important;
    display:inline-grid !important;
    place-items:center !important;
  }
  button.ds-mobile-card-arrow > span[aria-hidden="true"]{
    display:block !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
    line-height:.8 !important;
    transform:translateY(-.04em) !important;
  }
  button.ds-mobile-card-arrow:focus-visible{
    outline:3px solid #2A2522 !important;
    outline-offset:.22rem !important;
  }
}

/* Pilates course list: mobile becomes the same obvious horizontal card system
   as the offer cards instead of a long vertical stack. */
@media (max-width:780px){
  .ds-pilates-course-grid.ds-mobile-card-track{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:clamp(1rem,5vw,1.35rem) !important;
    width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    scroll-snap-type:x mandatory !important;
    scroll-padding-inline:clamp(1rem,5vw,1.4rem) !important;
    -webkit-overflow-scrolling:touch !important;
    padding:0 0 1.1rem !important;
    scrollbar-width:none !important;
  }
  .ds-pilates-course-grid.ds-mobile-card-track::-webkit-scrollbar{
    display:none !important;
  }
  .ds-pilates-course-grid.ds-mobile-card-track > .ds-pilates-course-card{
    flex:0 0 min(82vw,21rem) !important;
    width:min(82vw,21rem) !important;
    max-width:min(82vw,21rem) !important;
    min-height:100% !important;
    scroll-snap-align:start !important;
  }
  .ds-pilates-course-card__body{
    padding:1.25rem !important;
  }
  .ds-pilates-course-card h3{
    font-size:clamp(1.45rem,7vw,1.9rem) !important;
  }
  .ds-pilates-course-facts{
    gap:.5rem !important;
    margin-bottom:1rem !important;
  }
  .ds-pilates-course-facts div{
    grid-template-columns:4.8rem 1fr !important;
    gap:.55rem !important;
    padding-top:.55rem !important;
  }
}


/* ============================================================
   v2.29.5 – persistent header, unified mobile quote bands,
   magazine-style search result cards
   ============================================================ */

/* The whole template-part must be sticky. A sticky child inside a header-height
   wrapper is constrained by that wrapper and can disappear while scrolling. */
body:not(.wp-admin) > .wp-site-blocks > header.wp-block-template-part,
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
  position:sticky !important;
  top:0 !important;
  z-index:2147483000 !important;
  width:100% !important;
  overflow:visible !important;
}
body:not(.wp-admin) > .wp-site-blocks > header.wp-block-template-part .ds-site-header,
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part .ds-site-header{
  position:relative !important;
  top:auto !important;
  z-index:auto !important;
  width:100% !important;
  overflow:visible !important;
}
body.admin-bar:not(.wp-admin) > .wp-site-blocks > header.wp-block-template-part,
body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
  top:32px !important;
}
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) > .wp-site-blocks > header.wp-block-template-part,
  body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
    top:46px !important;
  }
}

/* Mobile quote bands: every Doris quote is a true full-bleed viewport section.
   The Einblicke quote deliberately uses the exact same mobile composition as
   all other quote bands. */
@media (max-width:680px){
  body:not(.wp-admin) main#main-content .ds-quote-band,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band{
    position:relative !important;
    left:50% !important;
    right:auto !important;
    width:100vw !important;
    max-width:none !important;
    box-sizing:border-box !important;
    margin-left:-50vw !important;
    margin-right:0 !important;
    padding:clamp(4rem,15vw,5.5rem) clamp(1.35rem,5.5vw,2rem) !important;
    overflow:hidden !important;
    background:#D63C00 !important;
  }
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band{
    margin-top:clamp(4rem,14vw,5.5rem) !important;
    margin-bottom:0 !important;
  }

  body:not(.wp-admin) main#main-content .ds-quote-band > .ds-grid,
  body:not(.wp-admin) main#main-content .ds-quote-band .ds-grid,
  body:not(.wp-admin) main#main-content .ds-quote-band .ds-col-12,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band > .ds-grid,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-col-12{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  body:not(.wp-admin) main#main-content .ds-quote-band blockquote,
  body:not(.wp-admin) main#main-content .ds-quote-band .wp-block-quote,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote{
    width:min(100%,21rem) !important;
    max-width:21rem !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    text-align:center !important;
  }
  body:not(.wp-admin) main#main-content .ds-quote-band blockquote p,
  body:not(.wp-admin) main#main-content .ds-quote-band .wp-block-quote p,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band blockquote p{
    margin:0 auto !important;
    max-width:100% !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:clamp(2rem,10.4vw,3rem) !important;
    line-height:1.04 !important;
    letter-spacing:-.035em !important;
    text-align:center !important;
    text-wrap:balance !important;
  }
  body:not(.wp-admin) main#main-content .ds-quote-band cite,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band cite{
    display:block !important;
    margin:1.25rem auto 0 !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:.76rem !important;
    font-style:normal !important;
    font-weight:700 !important;
    line-height:1.25 !important;
    letter-spacing:.11em !important;
    text-transform:uppercase !important;
    text-align:center !important;
  }

  /* Same small cropped decorative star on every mobile quote band. */
  body:not(.wp-admin) main#main-content .ds-quote-band .ds-quote-star,
  body:not(.wp-admin) main#main-content .ds-insights-magazine .ds-magazine-quote.ds-quote-band .ds-quote-star{
    position:absolute !important;
    display:block !important;
    top:auto !important;
    right:-2.35rem !important;
    bottom:-2.6rem !important;
    left:auto !important;
    width:7.5rem !important;
    height:7.5rem !important;
    margin:0 !important;
    transform:rotate(8deg) !important;
  }
}

/* Search results: visually related to Einblicke cards, but broad enough for
   pages as well as posts. */
body:not(.wp-admin) main.ds-search-page{
  padding-top:clamp(4.5rem,8vw,7rem) !important;
  padding-bottom:clamp(5rem,9vw,8rem) !important;
}
.ds-search-page > .ds-kicker{
  margin-bottom:.75rem !important;
}
.ds-search-page > h1{
  max-width:52rem !important;
  margin:0 0 1rem !important;
  font-size:clamp(3rem,6vw,5.7rem) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}
.ds-search-intro{
  max-width:43rem !important;
  margin:0 0 2rem !important;
  font-size:clamp(1.05rem,1.4vw,1.22rem) !important;
  line-height:1.55 !important;
}
.ds-search-page .wp-block-search{
  max-width:48rem !important;
  margin:0 0 clamp(2.7rem,5vw,4.2rem) !important;
}
.ds-search-query-title{
  margin:0 0 1.4rem !important;
  font-size:clamp(1.15rem,1.8vw,1.5rem) !important;
  font-weight:500 !important;
  color:var(--ds-muted,#756a63) !important;
}
.ds-search-results-grid.wp-block-post-template{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(1rem,2vw,1.7rem) !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.ds-search-results-grid.wp-block-post-template > li{
  min-width:0 !important;
  margin:0 !important;
}
.ds-search-card{
  position:relative !important;
  height:100% !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid rgba(42,37,34,.12) !important;
  border-radius:.72rem !important;
}
.ds-search-card > .ds-search-card__media,
.ds-search-card > .wp-block-post-featured-image{
  display:block !important;
  width:100% !important;
  aspect-ratio:4/3 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:rgba(247,73,0,.08) !important;
}
.ds-search-card > .ds-search-card__media img,
.ds-search-card > .wp-block-post-featured-image img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  transition:transform .25s ease !important;
}
.ds-search-card:hover > .ds-search-card__media img,
.ds-search-card:hover > .wp-block-post-featured-image img{
  transform:scale(1.018) !important;
}
/* Pages often have no featured image; give them a quiet editorial header area. */
.ds-search-card:not(:has(.wp-block-post-featured-image))::before{
  content:"" !important;
  display:block !important;
  width:100% !important;
  aspect-ratio:4/3 !important;
  background:linear-gradient(145deg,var(--ds-paper-warm,#F6EBDD),rgba(247,73,0,.13)) !important;
}
.ds-search-card__body{
  display:flex !important;
  flex:1 !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  padding:clamp(1.1rem,2vw,1.55rem) !important;
}
.ds-search-card__meta{
  margin:0 0 .72rem !important;
  color:var(--ds-muted,#756a63) !important;
  font-size:.72rem !important;
  font-weight:650 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
.ds-search-card__meta a{
  color:inherit !important;
  text-decoration:none !important;
}
.ds-search-card h2{
  margin:0 0 .75rem !important;
  font-size:clamp(1.45rem,2vw,2rem) !important;
  line-height:1.08 !important;
}
.ds-search-card h2 a{
  color:var(--ds-ink,#2a2522) !important;
  text-decoration:none !important;
}
.ds-search-card .wp-block-post-excerpt{
  display:flex !important;
  flex:1 !important;
  flex-direction:column !important;
  margin:0 !important;
}
.ds-search-card .wp-block-post-excerpt__excerpt{
  margin:.05rem 0 1.15rem !important;
  font-size:.95rem !important;
  line-height:1.55 !important;
}
.ds-search-card .wp-block-post-excerpt__more-text{
  margin:auto 0 0 !important;
}
.ds-search-card .wp-block-post-excerpt__more-link{
  color:var(--ds-link,var(--ds-orange,#F74900)) !important;
  font-weight:700 !important;
  text-decoration:none !important;
}
.ds-search-card .wp-block-post-excerpt__more-link:hover,
.ds-search-card .wp-block-post-excerpt__more-link:focus-visible,
.ds-search-card h2 a:hover,
.ds-search-card h2 a:focus-visible{
  text-decoration:underline !important;
  text-decoration-thickness:.1em !important;
  text-underline-offset:.16em !important;
}
.ds-search-pagination{
  margin-top:clamp(2.5rem,5vw,4rem) !important;
  padding-top:1.25rem !important;
  border-top:1px solid rgba(42,37,34,.18) !important;
}
.ds-search-no-results{
  padding:2rem !important;
  background:var(--ds-paper-warm,#F6EBDD) !important;
  border:1px solid rgba(42,37,34,.12) !important;
  border-radius:.72rem !important;
}
@media (max-width:980px){
  .ds-search-results-grid.wp-block-post-template{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:680px){
  body:not(.wp-admin) main.ds-search-page{
    padding-top:clamp(3.2rem,11vw,4.5rem) !important;
  }
  .ds-search-page > h1{
    font-size:clamp(2.7rem,12vw,4rem) !important;
  }
  .ds-search-results-grid.wp-block-post-template{
    grid-template-columns:1fr !important;
    gap:1rem !important;
  }
  .ds-search-card > .ds-search-card__media,
  .ds-search-card > .wp-block-post-featured-image,
  .ds-search-card:not(:has(.wp-block-post-featured-image))::before{
    aspect-ratio:4/3 !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .ds-search-card > .wp-block-post-featured-image img,
  .ds-search-card > .ds-search-card__media img{
    transition:none !important;
  }
}


/* ============================================================
   v2.29.6 – mobile booking CTA at top-right + deterministic close
   ============================================================ */
@media (max-width:1280px){
  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-topline{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:1rem !important;
    width:100% !important;
    margin:0 0 clamp(1.25rem,4vh,2rem) !important;
    padding-bottom:.8rem !important;
  }

  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:.55rem !important;
    margin-left:auto !important;
    flex:0 0 auto !important;
  }

  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions > a.ds-mobile-menu-booking{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:44px !important;
    height:auto !important;
    margin:0 !important;
    padding:.72rem 1rem !important;
    align-self:center !important;
    justify-self:auto !important;
    background:var(--ds-orange,#F74900) !important;
    border:2px solid var(--ds-orange,#F74900) !important;
    border-radius:.42rem !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:.94rem !important;
    font-weight:700 !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    text-decoration:none !important;
  }

  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions > a.ds-mobile-menu-booking:is(:hover,:focus-visible,:active){
    background:#7A2915 !important;
    border-color:#7A2915 !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
  }

  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions .ds-mobile-menu-close{
    flex:0 0 var(--ds-mobile-nav-control,3rem) !important;
  }
}

@media (max-width:420px){
  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-star{
    width:3.35rem !important;
    height:3.35rem !important;
  }
  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions{
    gap:.35rem !important;
  }
  body:not(.wp-admin) .ds-mobile-menu-panel .ds-mobile-menu-top-actions > a.ds-mobile-menu-booking{
    padding:.66rem .78rem !important;
    font-size:.86rem !important;
  }
}


/* ============================================================
   v2.29.7 – edge star arrows, compact Pilates cards, menu close bridge
   ============================================================ */
@media (max-width:780px){
  /* The slider shell owns the two edge controls. The track receives a safe
     side gutter so the star buttons can sit on the card edge without ever
     covering copy. */
  body:not(.wp-admin) .ds-mobile-card-slider-shell{
    position:relative !important;
    overflow:visible !important;
  }

  body:not(.wp-admin) .ds-mobile-card-track{
    box-sizing:border-box !important;
    padding-left:clamp(2.8rem,10vw,3.4rem) !important;
    padding-right:clamp(2.8rem,10vw,3.4rem) !important;
    scroll-padding-left:clamp(2.8rem,10vw,3.4rem) !important;
    scroll-padding-right:clamp(2.8rem,10vw,3.4rem) !important;
  }

  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls{
    position:absolute !important;
    top:var(--ds-card-controls-y,50%) !important;
    left:0 !important;
    right:0 !important;
    z-index:20 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    height:0 !important;
    margin:0 !important;
    padding:0 .15rem !important;
    transform:translateY(-50%) !important;
    pointer-events:none !important;
  }

  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow{
    position:relative !important;
    width:3.55rem !important;
    height:3.55rem !important;
    min-width:3.55rem !important;
    min-height:3.55rem !important;
    flex:0 0 3.55rem !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background-color:transparent !important;
    background-image:url('../icons/spuer-dich-star-rounded.svg') !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:contain !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    box-shadow:0 .25rem .75rem rgba(42,37,34,.10) !important;
    display:grid !important;
    place-items:center !important;
    pointer-events:auto !important;
  }

  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow > span[aria-hidden="true"]{
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:1.55rem !important;
    font-weight:700 !important;
    line-height:1 !important;
    transform:none !important;
  }

  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow--prev{
    transform:translateX(-.15rem) !important;
  }
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow--next{
    transform:translateX(.15rem) !important;
  }

  /* Give card text a second internal safety zone in addition to the slider
     gutter; especially useful on the orange Massage/Pantarei cards. */
  body:not(.wp-admin) .ds-mobile-card-track > :where(
    .ds-service-card,.ds-offer-card,.ds-course-card,.ds-anchor-card,
    .ds-massage-type-card,.ds-pantarei-type-card,.ds-pilates-type-card,
    .ds-pilates-course-card
  ){
    scroll-snap-align:center !important;
  }

  /* Pilates cards intentionally start as short editorial teasers. Course
     logistics and registration are revealed only after explicit activation. */
  body:not(.wp-admin) .ds-pilates-course-grid.ds-mobile-card-track > .ds-pilates-course-card{
    flex:0 0 min(78vw,20rem) !important;
    width:min(78vw,20rem) !important;
    max-width:min(78vw,20rem) !important;
    min-height:0 !important;
    height:max-content !important;
    align-self:flex-start !important;
  }

  body:not(.wp-admin) .ds-pilates-course-card__body{
    display:flex !important;
    flex-direction:column !important;
    min-height:18rem !important;
    padding:1.3rem 1.35rem !important;
  }

  body:not(.wp-admin) .ds-pilates-course-card__top{
    flex:1 1 auto !important;
  }

  body:not(.wp-admin) .ds-pilates-course-card h3{
    margin-bottom:.75rem !important;
    font-size:clamp(1.45rem,7vw,1.85rem) !important;
    line-height:1.07 !important;
  }

  body:not(.wp-admin) .ds-pilates-course-short{
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:4 !important;
    overflow:hidden !important;
    margin-bottom:1rem !important;
    font-size:.98rem !important;
    line-height:1.48 !important;
  }

  body:not(.wp-admin) button.ds-pilates-course-more{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:.75rem !important;
    width:100% !important;
    min-height:44px !important;
    margin:1rem 0 0 !important;
    padding:.72rem .85rem !important;
    border:1.5px solid var(--ds-orange,#F74900) !important;
    border-radius:.4rem !important;
    background:transparent !important;
    color:var(--ds-link,#8A2C15) !important;
    -webkit-text-fill-color:var(--ds-link,#8A2C15) !important;
    font:inherit !important;
    font-size:.92rem !important;
    font-weight:700 !important;
    text-align:left !important;
    cursor:pointer !important;
  }

  body:not(.wp-admin) button.ds-pilates-course-more::after{
    content:'+' !important;
    font-size:1.35rem !important;
    line-height:1 !important;
  }
  body:not(.wp-admin) button.ds-pilates-course-more[aria-expanded="true"]::after{
    content:'−' !important;
  }

  body:not(.wp-admin) .ds-pilates-course-details{
    margin-top:1rem !important;
    padding-top:.15rem !important;
  }
  body:not(.wp-admin) .ds-pilates-course-details[hidden]{
    display:none !important;
  }
  body:not(.wp-admin) .ds-pilates-course-description{
    margin-top:0 !important;
    font-size:.94rem !important;
    line-height:1.5 !important;
  }
  body:not(.wp-admin) .ds-pilates-course-facts div{
    grid-template-columns:1fr !important;
    gap:.18rem !important;
  }
}

/* Desktop/tablet keep the complete course card and do not need an expand
   control. */
@media (min-width:781px){
  body:not(.wp-admin) button.ds-pilates-course-more{
    display:none !important;
  }
  body:not(.wp-admin) .ds-pilates-course-details[hidden]{
    display:block !important;
  }
}


/* ============================================================
   v2.29.8 – unified mobile gutters, all card sliders, true star controls,
   desktop navigation restored at desktop widths
   ============================================================ */
:root{
  --ds-mobile-safe:clamp(1.15rem,5vw,1.55rem);
}

/* Desktop means desktop: the full navigation returns above 1024px. The older
   1280px hamburger breakpoint remains in the legacy CSS but is deliberately
   overridden here. */
@media (min-width:1025px){
  body:not(.wp-admin) .ds-site-header .ds-main-nav{
    display:flex !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-header-cta{
    display:flex !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-menu-toggle,
  body:not(.wp-admin) .ds-site-header .ds-mobile-menu-shell{
    display:none !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-header-inner{
    grid-template-columns:minmax(15rem,auto) minmax(0,1fr) auto !important;
    column-gap:clamp(.8rem,1.6vw,1.6rem) !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-main-nav{
    gap:clamp(.42rem,.82vw,.85rem) !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-main-nav > a,
  body:not(.wp-admin) .ds-site-header .ds-main-nav-about-toggle,
  body:not(.wp-admin) .ds-site-header .ds-main-nav-legal-toggle{
    font-size:clamp(.82rem,.88vw,.96rem) !important;
    white-space:nowrap !important;
  }
}
@media (max-width:1024px){
  body:not(.wp-admin) .ds-site-header .ds-main-nav,
  body:not(.wp-admin) .ds-site-header .ds-header-cta{
    display:none !important;
  }
  body:not(.wp-admin) .ds-site-header .ds-menu-toggle{
    display:grid !important;
  }
}

/* Mobile rhythm: content keeps a consistent safe gutter while the coloured
   outer sections themselves remain full-bleed. */
@media (max-width:780px){
  body:not(.wp-admin) main#main-content :where(
    .ds-content-band > .ds-grid,
    .ds-paper > .ds-grid,
    .ds-paper-warm > .ds-grid,
    .ds-offer-intro > .ds-grid,
    .ds-testimonial-section > .ds-grid,
    .ds-blog-section > .ds-grid,
    .ds-about-section > .ds-grid,
    .ds-pilates-courses,
    .ds-search-page
  ){
    box-sizing:border-box !important;
    padding-left:var(--ds-mobile-safe) !important;
    padding-right:var(--ds-mobile-safe) !important;
  }

  /* Strong-colour bands always reach the viewport edges; only their content
     receives the safe inset. */
  body:not(.wp-admin) main#main-content :where(
    .ds-quote-band,
    .ds-cta,
    .ds-cta-band,
    .ds-standard-booking-cta,
    .ds-pilates-booking-cta,
    .ds-offer-compact-cta
  ){
    position:relative !important;
    left:50% !important;
    width:100vw !important;
    max-width:none !important;
    margin-left:-50vw !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }
  body:not(.wp-admin) main#main-content :where(
    .ds-quote-band,
    .ds-cta,
    .ds-cta-band,
    .ds-standard-booking-cta,
    .ds-pilates-booking-cta,
    .ds-offer-compact-cta
  ) > .ds-grid{
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
    padding-left:var(--ds-mobile-safe) !important;
    padding-right:var(--ds-mobile-safe) !important;
  }

  /* Every supported card collection uses the same safe horizontal scroller. */
  body:not(.wp-admin) :where(
    .ds-services-grid,
    .ds-massage-type-grid > .ds-grid,
    .ds-offer-overview .ds-services-grid,
    .ds-services-wrap .ds-services-grid,
    .ds-pilates-course-grid,
    .ds-offer-cards-fixed
  ).ds-mobile-card-track{
    box-sizing:border-box !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    gap:clamp(.9rem,4vw,1.2rem) !important;
    padding-left:calc(var(--ds-mobile-safe) + 2.25rem) !important;
    padding-right:calc(var(--ds-mobile-safe) + 2.25rem) !important;
    padding-bottom:1rem !important;
    scroll-padding-left:calc(var(--ds-mobile-safe) + 2.25rem) !important;
    scroll-padding-right:calc(var(--ds-mobile-safe) + 2.25rem) !important;
    scroll-snap-type:x mandatory !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch !important;
  }
  body:not(.wp-admin) :where(
    .ds-services-grid,
    .ds-massage-type-grid > .ds-grid,
    .ds-offer-overview .ds-services-grid,
    .ds-services-wrap .ds-services-grid,
    .ds-pilates-course-grid,
    .ds-offer-cards-fixed
  ).ds-mobile-card-track::-webkit-scrollbar{
    display:none !important;
  }

  body:not(.wp-admin) .ds-offer-cards-fixed.ds-mobile-card-track{
    margin-left:calc(-1 * var(--ds-mobile-safe)) !important;
    margin-right:calc(-1 * var(--ds-mobile-safe)) !important;
    width:calc(100% + (2 * var(--ds-mobile-safe))) !important;
    max-width:none !important;
    padding-top:4rem !important;
  }
  body:not(.wp-admin) .ds-offer-cards-fixed.ds-mobile-card-track > .ds-offer-card-fixed{
    flex:0 0 min(80vw,21rem) !important;
    width:min(80vw,21rem) !important;
    max-width:min(80vw,21rem) !important;
    scroll-snap-align:center !important;
  }

  /* The control rail itself has no visual surface at all. */
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls{
    background:transparent !important;
    background-image:none !important;
    border:0 !important;
    box-shadow:none !important;
    filter:none !important;
  }
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls::before,
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls::after{
    content:none !important;
    display:none !important;
  }

  /* Visible control = star only. The rectangular hit area remains generous,
     but masking makes every pixel outside the star fully transparent. */
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow{
    width:3.65rem !important;
    height:3.65rem !important;
    min-width:3.65rem !important;
    min-height:3.65rem !important;
    flex:0 0 3.65rem !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#F74900 !important;
    background-image:none !important;
    box-shadow:none !important;
    filter:none !important;
    -webkit-mask:url('../icons/spuer-dich-star-rounded.svg') center / contain no-repeat !important;
    mask:url('../icons/spuer-dich-star-rounded.svg') center / contain no-repeat !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    overflow:hidden !important;
  }
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow::before,
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow::after{
    content:none !important;
    display:none !important;
  }
  body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow > span[aria-hidden="true"]{
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:1.5rem !important;
    font-weight:700 !important;
    line-height:1 !important;
  }
}


/* ============================================================
   v2.29.9 – persistent sticky header, centred mobile Pilates,
   embedded-insight mobile overlays, Pilates CTA routing
   ============================================================ */

/* Sticky is a hard site-wide rule. The template-part itself owns sticky; the
   inner header remains relative so the two layers cannot compete. */
body:not(.wp-admin) .wp-site-blocks{
  overflow:visible !important;
}
body:not(.wp-admin) .wp-site-blocks > :first-child,
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part,
body:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:first-child,
body:not(.wp-admin) header.wp-block-template-part:first-child{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  inset-block-start:0 !important;
  z-index:2147483000 !important;
  align-self:start !important;
  overflow:visible !important;
  transform:none !important;
  contain:none !important;
}
body:not(.wp-admin) .wp-site-blocks > :first-child .ds-site-header,
body:not(.wp-admin) header.wp-block-template-part:first-child .ds-site-header{
  position:relative !important;
  top:auto !important;
  inset-block-start:auto !important;
  z-index:auto !important;
  overflow:visible !important;
  transform:none !important;
}
body.admin-bar:not(.wp-admin) .wp-site-blocks > :first-child{ top:32px !important; }
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) .wp-site-blocks > :first-child{ top:46px !important; }
}

@media (max-width:780px){
  /* Pilates: each compact course card sits optically centred in the usable
     mobile width. The first and last card receive equal breathing room. */
  body:not(.wp-admin) .ds-pilates-courses .ds-pilates-course-grid.ds-mobile-card-track{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:calc((100% - min(78vw,20rem)) / 2) !important;
    padding-right:calc((100% - min(78vw,20rem)) / 2) !important;
    scroll-padding-left:calc((100% - min(78vw,20rem)) / 2) !important;
    scroll-padding-right:calc((100% - min(78vw,20rem)) / 2) !important;
  }
  body:not(.wp-admin) .ds-pilates-courses .ds-pilates-course-grid.ds-mobile-card-track > .ds-pilates-course-card{
    flex:0 0 min(78vw,20rem) !important;
    width:min(78vw,20rem) !important;
    max-width:min(78vw,20rem) !important;
    scroll-snap-align:center !important;
  }

  /* Embedded Einblicke on Home and product pages: touch devices have no hover.
     Keep the topic/title overlay visible in a smaller, calm treatment. This
     selector does NOT touch the /einblicke/ magazine/archive page. */
  body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__overlay{
    opacity:1 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-end !important;
    gap:.3rem !important;
    padding:.8rem .9rem !important;
    background:linear-gradient(180deg,rgba(247,73,0,0) 38%,rgba(247,73,0,.82) 100%) !important;
  }
  body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__topic{
    display:block !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:.68rem !important;
    font-weight:750 !important;
    line-height:1.1 !important;
    letter-spacing:.09em !important;
    text-transform:uppercase !important;
  }
  body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__title{
    max-width:24ch !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:clamp(.9rem,4.2vw,1.08rem) !important;
    font-weight:650 !important;
    line-height:1.13 !important;
  }
}


/* ============================================================
   v2.29.11 – Doris high-contrast: white + deep brick orange
   High contrast keeps the Doris identity: neutral surfaces are white, while
   strong branded surfaces use a deep brick/rust orange. Photography remains monochrome.
   ============================================================ */
html.ds-contrast-high{
  --ds-paper:#FFFFFF !important;
  --ds-paper-warm:#FFFFFF !important;
  --ds-apricot:#FFFFFF !important;
  --ds-rose:#FFFFFF !important;
  --ds-sand:#FFFFFF !important;
  --ds-sage:#FFFFFF !important;
  --ds-white:#FFFFFF !important;
  --ds-ink:#050505 !important;
  --ds-muted:#202020 !important;
  --ds-link:#050505 !important;
  --ds-orange:#7A2915 !important;
  --ds-on-orange:#FFFFFF !important;
  --ds-hc-accent:#7A2915 !important;
  --ds-hc-accent-soft:#FFFFFF !important;
  --ds-rust-contrast:#7A2915 !important;
}

/* Page and all former warm paper surfaces become white. */
html.ds-contrast-high body:not(.wp-admin),
html.ds-contrast-high body:not(.wp-admin) .wp-site-blocks,
html.ds-contrast-high body:not(.wp-admin) main#main-content,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-paper,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-paper-warm,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-apricot,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-rose,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-sand,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-sage,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-testimonial-section,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-insights-page,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-insights-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-blog-section,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-course-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-content-band{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
}

/* Cards: white, dark ink, strong dark outline. No beige/apricot card fills. */
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-service-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-clean-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-classic-offer-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card-fixed,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card-editable,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-massage-type-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pantarei-type-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-type-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-course-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-course-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-insight-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-blog-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-search-result,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-search-card,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-testimonial-slide,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-about-training-item,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-contact-form,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-price-box,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-clean-price{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  color:#050505 !important;
  border-color:#050505 !important;
  box-shadow:none !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-service-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-clean-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-classic-offer-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card-fixed *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-card-editable *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-massage-type-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pantarei-type-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-type-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-course-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-course-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-search-card *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-testimonial-slide *{
  color:#050505;
}

/* Strong bands are always dark with white copy: quotes, booking CTAs, banners. */
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-quote-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-magazine-quote.ds-quote-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-about-quote-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta-band,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-standard-booking-cta,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-booking-cta,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-compact-cta,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-booking-banner,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-booking-cta,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-optional-cta{
  background:#7A2915 !important;
  background-color:#7A2915 !important;
  color:#FFFFFF !important;
  border-color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-quote-band *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-magazine-quote.ds-quote-band *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-about-quote-band *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta-band *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-standard-booking-cta *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-booking-cta *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-compact-cta *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-booking-banner *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-booking-cta *,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-optional-cta *{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* The decorative quote star stays visible on the dark surface. */
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-quote-band .ds-spuer-star,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-magazine-quote.ds-quote-band .ds-spuer-star{
  background:transparent !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-quote-band .ds-spuer-star::before,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-magazine-quote.ds-quote-band .ds-spuer-star::before{
  background:#FFFFFF !important;
}

/* Mobile card navigation: dark star only, white arrow, deep brick/rust orange. */
@media (max-width:780px){
  html.ds-contrast-high body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls{
    background:transparent !important;
    background-image:none !important;
  }
  html.ds-contrast-high body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow{
    background:#7A2915 !important;
    background-color:#7A2915 !important;
    background-image:none !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
    border:0 !important;
    box-shadow:none !important;
  }
  html.ds-contrast-high body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow > span[aria-hidden="true"]{
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
  }

  /* Embedded insight overlays are dark in HC instead of orange. */
  html.ds-contrast-high body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__overlay{
    background:linear-gradient(180deg,rgba(122,41,21,0) 34%,rgba(122,41,21,.94) 100%) !important;
  }
}

/* Other branded controls that used orange use the dark Doris brick accent in HC. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-header-cta > a.ds-booking-link,
html.ds-contrast-high body:not(.wp-admin) main#main-content .wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) main#main-content .wp-element-button,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-testimonial-arrow,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-blog-arrow,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-insights-controls button,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-back-to-top{
  background:#7A2915 !important;
  background-color:#7A2915 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#7A2915 !important;
}

/* Inputs/forms are white with a strong dark edge. */
html.ds-contrast-high body:not(.wp-admin) input,
html.ds-contrast-high body:not(.wp-admin) textarea,
html.ds-contrast-high body:not(.wp-admin) select,
html.ds-contrast-high body:not(.wp-admin) fieldset{
  background:#FFFFFF !important;
  color:#050505 !important;
  border-color:#050505 !important;
}


/* HC interactive states: keep the brick-orange identity but make state changes
   unmistakable with a deeper rust tone. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-header-cta > a.ds-booking-link:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .wp-block-button__link:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .wp-element-button:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-testimonial-arrow:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-blog-arrow:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-insights-controls button:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-back-to-top:is(:hover,:focus-visible,:active){
  background:#541B0D !important;
  background-color:#541B0D !important;
  border-color:#541B0D !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

@media (max-width:780px){
  html.ds-contrast-high body:not(.wp-admin) .ds-mobile-card-slider-shell > .ds-mobile-card-controls > button.ds-mobile-card-arrow:is(:hover,:focus-visible,:active){
    background:#541B0D !important;
    background-color:#541B0D !important;
  }
}


/* ============================================================
   v2.29.12 – WP admin-bar stacking + complete HC photo grayscale
   ============================================================ */

/* The WordPress admin bar must always remain the top-most logged-in UI.
   The public sticky site header stays below it, including dropdown/account menus. */
body.admin-bar:not(.wp-admin) #wpadminbar{
  z-index:2147483647 !important;
}
body.admin-bar:not(.wp-admin) .wp-site-blocks > :first-child,
body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part,
body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:first-child,
body.admin-bar:not(.wp-admin) header.wp-block-template-part:first-child{
  z-index:9990 !important;
  top:32px !important;
  inset-block-start:32px !important;
}
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) .wp-site-blocks > :first-child,
  body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part,
  body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:first-child,
  body.admin-bar:not(.wp-admin) header.wp-block-template-part:first-child{
    top:46px !important;
    inset-block-start:46px !important;
  }
}
body:not(.admin-bar):not(.wp-admin) .wp-site-blocks > :first-child,
body:not(.admin-bar):not(.wp-admin) .wp-site-blocks > header.wp-block-template-part,
body:not(.admin-bar):not(.wp-admin) .wp-site-blocks > .wp-block-template-part:first-child,
body:not(.admin-bar):not(.wp-admin) header.wp-block-template-part:first-child{
  z-index:9990 !important;
}

/* High contrast: every photographic raster image is monochrome. These
   component-specific selectors deliberately beat older !important image filters. */
html.ds-contrast-high body:not(.wp-admin) .ds-photo-hero .ds-hero-focal-image img,
html.ds-contrast-high body:not(.wp-admin) .ds-hero-focal .ds-hero-focal-image img,
html.ds-contrast-high body:not(.wp-admin) .ds-editable-photo-hero img,
html.ds-contrast-high body:not(.wp-admin) .ds-home-hero img:not(.ds-hero-star-svg),
html.ds-contrast-high body:not(.wp-admin) .ds-offer-insight-card__media > img,
html.ds-contrast-high body:not(.wp-admin) .ds-insight-card__media > img,
html.ds-contrast-high body:not(.wp-admin) .ds-service-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-clean-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-classic-offer-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-offer-card-fixed img,
html.ds-contrast-high body:not(.wp-admin) .ds-offer-card-editable img,
html.ds-contrast-high body:not(.wp-admin) .ds-massage-type-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-pantarei-type-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-pilates-type-card img,
html.ds-contrast-high body:not(.wp-admin) .ds-testimonial-section img,
html.ds-contrast-high body:not(.wp-admin) .ds-about-page img,
html.ds-contrast-high body:not(.wp-admin) .ds-pilates-page img:not([src*=".svg"]):not([src*="/assets/icons/"]),
html.ds-contrast-high body:not(.wp-admin) .ds-offer-template-main img:not([src*=".svg"]):not([src*="/assets/icons/"]),
html.ds-contrast-high body:not(.wp-admin) main#main-content img.wp-post-image,
html.ds-contrast-high body:not(.wp-admin) main#main-content figure:not(.ds-logo):not(.ds-icon) > img:not([src*=".svg"]):not([src*="/assets/icons/"]){
  filter:grayscale(100%) !important;
  -webkit-filter:grayscale(100%) !important;
}

/* Preserve brand artwork/icons in colour even when nested inside a section
   covered by one of the photo selectors above. */
html.ds-contrast-high body:not(.wp-admin) :where(
  .ds-header-star-svg,
  .ds-hero-star-svg,
  .ds-footer-star-svg,
  .ds-mobile-menu-star,
  .ds-optional-cta__logo
){
  filter:none !important;
  -webkit-filter:none !important;
}


/* ============================================================
   v2.29.13 – sticky About header, HC CTA outlines, compact mobile
   detail rhythm, embedded insight hierarchy, search cleanup
   ============================================================ */

/* Sticky header: target the actual template part containing the site header,
   not only "first child" assumptions. This also fixes About/Über mich. */
body:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  inset-block-start:0 !important;
  z-index:2147483000 !important;
  align-self:start !important;
  overflow:visible !important;
  transform:none !important;
  contain:none !important;
}
body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
  top:32px !important;
  inset-block-start:32px !important;
}
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
  body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
    top:46px !important;
    inset-block-start:46px !important;
  }
}

/* Embedded Einblicke only (Home + product pages): category sits above title,
   both anchored calmly to the bottom. /einblicke/ archive remains untouched. */
body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__overlay{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  gap:.32rem !important;
  text-align:left !important;
}
body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__topic{
  display:block !important;
  order:1 !important;
  margin:0 !important;
  font-size:.7rem !important;
  line-height:1.1 !important;
  font-weight:760 !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
}
body:not(.wp-admin) .ds-offer-insights-home-style .ds-offer-insight-card__title{
  order:2 !important;
  margin:0 !important;
  line-height:1.1 !important;
}

/* Search cards without a featured image no longer get a decorative placeholder
   panel/star before the result. The card starts directly with its content. */
body:not(.wp-admin) .ds-search-card:not(:has(.wp-block-post-featured-image))::before{
  content:none !important;
  display:none !important;
}

/* High contrast price/detail cards: white card means DARK copy. Older HC rules
   had left some descendants white-on-white, visually creating huge empty gaps. */
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-price-box,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-massage-detail-visual .ds-price-box{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  color:#050505 !important;
  border:2px solid #050505 !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-price-box :where(
  p,span,strong,small,div,dt,dd,.ds-price-box__label,.ds-price-box__note,.ds-price-box__availability
){
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-price-box__grid > div{
  border-color:#050505 !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-price-box__button{
  background:#7A2915 !important;
  background-color:#7A2915 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border:2px solid #050505 !important;
}

/* HC final booking/contact CTA buttons: always visibly button-shaped BEFORE
   hover. White fill + dark outline is unmistakable on the brick band. */
html.ds-contrast-high body:not(.wp-admin) main#main-content :where(
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-cta,
  .ds-cta-band,
  .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
) :where(.wp-block-button__link,.wp-element-button,a.ds-booking-link){
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
  border:3px solid #050505 !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content :where(
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-cta,
  .ds-cta-band,
  .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
) :where(.wp-block-button__link,.wp-element-button,a.ds-booking-link):is(:hover,:focus-visible,:active){
  background:#541B0D !important;
  background-color:#541B0D !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#FFFFFF !important;
}

/* Mobile service-detail rhythm: keep star + price box + copy a coherent unit. */
@media (max-width:680px){
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-section{
    padding-top:clamp(3.4rem,11vw,4.5rem) !important;
    padding-bottom:clamp(3.4rem,11vw,4.5rem) !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-grid{
    gap:clamp(2rem,8vw,3rem) !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-visual{
    width:min(100%,22rem) !important;
    margin-inline:auto !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-visual .ds-massage-star{
    width:min(9.5rem,42vw) !important;
    margin:0 auto -2.25rem !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-visual .ds-price-box{
    padding:3.5rem 1.2rem 1.35rem !important;
    margin:0 auto !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-content{
    padding-top:0 !important;
  }
  body:not(.wp-admin) .ds-offer-template-main .ds-massage-detail-content .ds-kicker{
    margin-top:0 !important;
  }
}


/* ============================================================
   v2.29.14 – remove search-result list stars + restore sticky About header
   ============================================================ */

/* Search results are rendered by Core Query as <li> elements. The site's
   generic star-bullet rule must never decorate these structural list items. */
body:not(.wp-admin) main.ds-search-page .ds-search-results-grid.wp-block-post-template > li,
body:not(.wp-admin) main.ds-search-page ul.ds-search-results-grid.wp-block-post-template > li{
  padding-left:0 !important;
  margin-left:0 !important;
  list-style:none !important;
}
body:not(.wp-admin) main.ds-search-page .ds-search-results-grid.wp-block-post-template > li::before,
body:not(.wp-admin) main.ds-search-page ul.ds-search-results-grid.wp-block-post-template > li::before{
  content:none !important;
  display:none !important;
  width:0 !important;
  height:0 !important;
  background:none !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
}

/* Safari/iOS: overflow-x:hidden on the scrolling body creates a containing
   context that can disable position:sticky. About pages used this legacy
   overflow fix. `clip` still prevents horizontal spill without becoming a
   scroll container, so the site header can remain sticky. */
body.page-ueber-mich,
body.page-uber-mich,
body.page-about,
body.page-ueber-doris,
body.page-template-page-ueber-mich,
body.page-template-page-uber-mich,
body.page-template-page-about,
body.page-template-page-ueber-doris{
  overflow-x:clip !important;
  overflow-y:visible !important;
}

/* Reassert the real header template-part after the About overflow correction. */
body:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  inset-block-start:0 !important;
  z-index:2147483000 !important;
  overflow:visible !important;
  transform:none !important;
  contain:none !important;
}
body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
  top:32px !important;
  inset-block-start:32px !important;
}
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) .wp-site-blocks > .wp-block-template-part:has(.ds-site-header),
  body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part:has(.ds-site-header){
    top:46px !important;
    inset-block-start:46px !important;
  }
}


/* ============================================================
   v2.29.16 – harden HC CTA button outlines
   ============================================================ */
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta .ds-cta-inner .wp-block-buttons > .wp-block-button > a.wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-standard-booking-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-booking-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link,
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-compact-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
  border:3px solid #050505 !important;
  outline:0 !important;
  box-shadow:0 0 0 2px #FFFFFF, 0 0 0 5px #050505 !important;
  text-decoration:none !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-cta .ds-cta-inner .wp-block-buttons > .wp-block-button > a.wp-block-button__link:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-standard-booking-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-pilates-booking-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link:is(:hover,:focus-visible,:active),
html.ds-contrast-high body:not(.wp-admin) main#main-content .ds-offer-compact-cta .wp-block-buttons > .wp-block-button > a.wp-block-button__link:is(:hover,:focus-visible,:active){
  background:#541B0D !important;
  background-color:#541B0D !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#050505 !important;
  box-shadow:0 0 0 2px #FFFFFF, 0 0 0 5px #050505 !important;
}


/* ============================================================
   v2.29.17 – global booking CTA colour + FAQ breathing room
   ============================================================ */

/* Global booking/contact CTA bands: always white copy on Doris orange,
   regardless of page/template variant. Buttons remain visually distinct. */
body:not(.wp-admin) main#main-content :is(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
){
  background:#F74900 !important;
  background-color:#F74900 !important;
  color:#FFFFFF !important;
}
body:not(.wp-admin) main#main-content :is(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
) :is(h1,h2,h3,h4,h5,h6,p,.ds-kicker,.ds-lead,strong,em,small,span,cite){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* In strong-contrast mode keep the Doris brick-orange language, just darker. */
html.ds-contrast-high body:not(.wp-admin) main#main-content :is(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
){
  background:#7A2915 !important;
  background-color:#7A2915 !important;
  color:#FFFFFF !important;
}
html.ds-contrast-high body:not(.wp-admin) main#main-content :is(
  .ds-cta,
  .ds-cta-band,
  .ds-standard-booking-cta,
  .ds-pilates-booking-cta,
  .ds-offer-template-main > .ds-offer-compact-cta,
  .ds-booking-banner,
  .ds-booking-cta,
  .ds-optional-cta
) :is(h1,h2,h3,h4,h5,h6,p,.ds-kicker,.ds-lead,strong,em,small,span,cite){
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* FAQ rhythm: a little more air between the divider and the question,
   without making the accordion feel loose. */
body:not(.wp-admin) :is(
  .ds-offer-faq,
  .ds-massage-mini-faq,
  .ds-accordion,
  .ds-clean-faq
) details.wp-block-details,
body:not(.wp-admin) :is(
  .ds-offer-faq,
  .ds-massage-mini-faq,
  .ds-accordion,
  .ds-clean-faq
) details{
  padding-top:1.28rem !important;
}
body:not(.wp-admin) :is(
  .ds-offer-faq,
  .ds-massage-mini-faq,
  .ds-accordion,
  .ds-clean-faq
) summary{
  padding-top:.12rem !important;
}


/* ============================================================
   v2.29.18 – accordion open state without persistent outline
   Keep the strong outline exclusively for keyboard focus.
   ============================================================ */
body:not(.wp-admin) details[open] > summary:not(:focus-visible),
body:not(.wp-admin) summary:focus:not(:focus-visible){
  outline:none !important;
  outline-offset:0 !important;
  box-shadow:none !important;
}

body:not(.wp-admin) summary:focus-visible{
  outline:3px solid var(--ds-focus-inner,#2A2522) !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 6px var(--ds-focus-outer,#FFFFFF) !important;
}

html.ds-contrast-high body:not(.wp-admin) details[open] > summary:not(:focus-visible),
html.ds-contrast-high body:not(.wp-admin) summary:focus:not(:focus-visible){
  outline:none !important;
  outline-offset:0 !important;
  box-shadow:none !important;
}

html.ds-contrast-high body:not(.wp-admin) summary:focus-visible{
  outline:3px solid #000000 !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 3px #FFFFFF, 0 0 0 6px #7A2915 !important;
}

/* ============================================================
   v2.30.0 – editable WordPress Navigation + stable sticky header
   ============================================================ */

/* The header template-part itself is the sticky element on every page.
   This avoids page-specific wrappers (especially About) breaking sticky. */
body:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  inset-block-start:0 !important;
  z-index:2147483000 !important;
  overflow:visible !important;
  transform:none !important;
  contain:none !important;
}
body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
  top:32px !important;
  inset-block-start:32px !important;
}
@media (max-width:782px){
  body.admin-bar:not(.wp-admin) .wp-site-blocks > header.wp-block-template-part{
    top:46px !important;
    inset-block-start:46px !important;
  }
}

/* Core Navigation is now the single editable source for desktop + mobile. */
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation{
  justify-self:center !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__container{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:center !important;
  gap:clamp(.42rem,.82vw,.85rem) !important;
  margin:0 !important;
  padding:0 !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item{
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item::before{
  content:none !important;
  display:none !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item__content{
  color:var(--ds-ink,#2A2522) !important;
  -webkit-text-fill-color:var(--ds-ink,#2A2522) !important;
  text-decoration:none !important;
  font-size:clamp(.82rem,.88vw,.96rem) !important;
  font-weight:650 !important;
  line-height:1.2 !important;
  white-space:nowrap !important;
  padding:.5rem .08rem !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item__content:hover,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content{
  color:var(--ds-link,#8A2C15) !important;
  -webkit-text-fill-color:var(--ds-link,#8A2C15) !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item__content:focus-visible{
  outline:3px solid var(--ds-orange,#F74900) !important;
  outline-offset:3px !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-icon{
  width:.72rem !important;
  height:.72rem !important;
  margin-left:.12rem !important;
  color:currentColor !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container{
  min-width:13.5rem !important;
  padding:.55rem !important;
  border:1px solid rgba(42,37,34,.18) !important;
  background:var(--ds-paper,#FFF9F1) !important;
  box-shadow:0 1rem 2.4rem rgba(42,37,34,.10) !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  display:block !important;
  width:100% !important;
  padding:.72rem .8rem !important;
  font-size:.96rem !important;
  white-space:normal !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible{
  background:var(--ds-orange,#F74900) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__responsive-container-open,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__responsive-container-close{
  display:none !important;
}

@media (min-width:1025px){
  body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation{ display:flex !important; }
}
@media (max-width:1024px){
  body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation{ display:none !important; }
}

/* High contrast keeps the editable core navigation in the Doris brick language. */
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-item__content{
  color:#050505 !important;
  -webkit-text-fill-color:#050505 !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container{
  background:#FFFFFF !important;
  border:2px solid #050505 !important;
}
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
html.ds-contrast-high body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible{
  background:#7A2915 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Footer legal links are synchronised from the same Navigation source. */
body:not(.wp-admin) .ds-footer-legal-nav{
  display:grid !important;
  justify-items:start !important;
  gap:.45rem !important;
  margin-top:.45rem !important;
}
body:not(.wp-admin) .ds-footer-legal-nav a{
  color:inherit !important;
  text-decoration:underline !important;
  text-decoration-color:var(--ds-orange,#F74900) !important;
  text-underline-offset:.22em !important;
  text-decoration-thickness:1px !important;
}
body:not(.wp-admin) .ds-footer-legal-nav a:focus-visible{
  outline:3px solid #FFFFFF !important;
  outline-offset:3px !important;
}

/* v2.30 editable offer-detail price rows (core paragraphs instead of raw HTML). */
.ds-clean-price__row .ds-clean-price__row-label{
  margin:0 !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-clean-price__row .ds-clean-price__row-value{
  margin:0 !important;
}
.ds-clean-price__row .ds-clean-price__row-value 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:#FFFFFF !important;
}


/* ============================================================
   v2.30.1 – editable navigation + full-width modular page canvas
   ============================================================ */

/* The normal Page editor is a full-width section canvas. Text safety comes
   from each section's inner .ds-grid, not from an outer 760px post column. */
body:not(.wp-admin) .ds-modular-page,
body:not(.wp-admin) .ds-modular-page .ds-page-content-full,
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > .ds-pattern-full,
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > .alignfull{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
body:not(.wp-admin) .ds-page-auto-title-wrap{
  padding-block:clamp(3rem,6vw,6rem) clamp(1.5rem,3vw,3rem) !important;
}
/* When the first inserted section supplies its own page H1, do not print the
   automatic WordPress title a second time. */
body:not(.wp-admin) .ds-modular-page:has(.ds-page-content-full > .ds-section-intro:first-child) .ds-page-auto-title-wrap{
  display:none !important;
}

/* Gutenberg canvas: let Doris sections preview at real section width instead
   of being visually trapped inside the normal paragraph column. */
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .ds-pattern-full,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .alignfull{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .ds-pattern-full{
  box-sizing:border-box !important;
}

/* Core Navigation already renders an accessible submenu toggle icon. Avoid
   legacy/custom carets: exactly one core chevron remains visible. */
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content::after,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__label::after{
  content:none !important;
  display:none !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon{
  display:inline-flex !important;
  flex:0 0 auto !important;
  margin-left:.18rem !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon ~ .wp-block-navigation__submenu-icon{
  display:none !important;
}


/* ============================================================
   v2.30.2 – editor full-width canvas + one submenu chevron
   ============================================================ */

/* Gutenberg top-level section patterns are allowed to use the entire editor
   canvas. Inner .ds-grid containers remain responsible for readable margins. */
.editor-styles-wrapper .is-root-container,
.editor-styles-wrapper .block-editor-block-list__layout.is-root-container,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full{
  max-width:none !important;
  width:100% !important;
}
.editor-styles-wrapper .is-root-container > [data-align="full"],
.editor-styles-wrapper .is-root-container > .alignfull,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > [data-align="full"],
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .alignfull,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .ds-pattern-full{
  width:100% !important;
  max-width:none !important;
  margin-inline:0 !important;
}

/* Exactly one dropdown indicator: keep WordPress' accessible core icon and
   suppress any decorative legacy arrows generated by old Doris CSS. */
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content::before,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content::after,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__label::before,
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__label::after{
  content:none !important;
  display:none !important;
}
body:not(.wp-admin) .ds-site-header .ds-main-nav.wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon{
  display:inline-flex !important;
}


/* ============================================================
   v2.30.3 – restore normal text measure inside full-width page canvas
   ============================================================ */

/* The page remains a full-width modular canvas, but ordinary blocks use the
   WordPress/Doris standard content measure (760px). Sections explicitly set
   to wide/full remain wide/full. */
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full){
  width:calc(100% - (var(--ds-pad) * 2)) !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > .alignwide{
  width:calc(100% - (var(--ds-pad) * 2)) !important;
  max-width:1140px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* The automatic page title follows the wide Doris grid and gets the same
   edge protection as the rest of the site. */
body:not(.wp-admin) .ds-page-auto-title-wrap{
  box-sizing:border-box !important;
  padding-left:max(var(--ds-pad), calc((100% - 1140px) / 2 + var(--ds-pad))) !important;
  padding-right:max(var(--ds-pad), calc((100% - 1140px) / 2 + var(--ds-pad))) !important;
}

/* Editor parity: ordinary inserted text reads at the real front-end measure,
   while full-width Doris patterns still span the section canvas. */
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]){
  width:calc(100% - (var(--ds-pad) * 2)) !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .alignwide,
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > [data-align="wide"]{
  width:calc(100% - (var(--ds-pad) * 2)) !important;
  max-width:1140px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

@media (max-width:780px){
  body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full),
  body:not(.wp-admin) .ds-modular-page .ds-page-content-full > .alignwide{
    width:calc(100% - (var(--ds-mobile-safe) * 2)) !important;
  }
  body:not(.wp-admin) .ds-page-auto-title-wrap{
    padding-left:var(--ds-mobile-safe) !important;
    padding-right:var(--ds-mobile-safe) !important;
  }
  .editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]),
  .editor-styles-wrapper .wp-block-post-content.ds-page-content-full > .alignwide,
  .editor-styles-wrapper .wp-block-post-content.ds-page-content-full > [data-align="wide"]{
    width:calc(100% - (var(--ds-mobile-safe) * 2)) !important;
  }
}

/* ============================================================
   v2.30.4 – actual editable section blocks + standard text measure
   ============================================================ */
.wp-block-doris-section-page-intro-block,
.wp-block-doris-section-intro-split-block,
.wp-block-doris-section-image-left-block,
.wp-block-doris-section-image-right-block,
.wp-block-doris-section-quote-block,
.wp-block-doris-section-faq-block,
.wp-block-doris-section-cta-block,
.wp-block-doris-section-contact-block,
.wp-block-doris-section-insights-block,
.wp-block-doris-section-photo-grid-block{
  display:contents;
}

.editor-styles-wrapper :where(
  .wp-block-doris-section-page-intro-block,
  .wp-block-doris-section-intro-split-block,
  .wp-block-doris-section-image-left-block,
  .wp-block-doris-section-image-right-block,
  .wp-block-doris-section-quote-block,
  .wp-block-doris-section-faq-block,
  .wp-block-doris-section-cta-block,
  .wp-block-doris-section-contact-block,
  .wp-block-doris-section-insights-block,
  .wp-block-doris-section-photo-grid-block
){
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin-inline:0 !important;
  position:relative;
  outline:1px dashed rgba(122,41,21,.28);
  outline-offset:4px;
}
.editor-styles-wrapper .ds-section-block-editor__label{
  font-size:11px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  color:#7A2915;
  margin:0 0 8px;
}

/* Normal text remains in Doris' standard text column. Only explicit full/wide
   sections break out of it. */
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]){
  width:calc(100% - (var(--ds-pad) * 2)) !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
@media (max-width:780px){
  body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]){
    width:calc(100% - (var(--ds-mobile-safe) * 2)) !important;
  }
}


/* ============================================================
   v2.30.5 – standard text aligns to the Doris grid, not page centre
   ============================================================ */
/* Ordinary page text keeps a readable measure, but its LEFT EDGE follows the
   normal Doris grid. This avoids the overly deep centred indent introduced in
   v2.30.3/2.30.4. Full-width/wide sections stay unchanged. */
body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]){
  width:min(760px, calc(100% - (var(--ds-pad) * 2))) !important;
  max-width:760px !important;
  margin-left:max(var(--ds-pad), calc((100% - var(--ds-grid-max)) / 2 + var(--ds-pad))) !important;
  margin-right:auto !important;
}

/* Same visual alignment in the editor. */
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]):not([class*="wp-block-doris-section-"]){
  width:min(760px, calc(100% - (var(--ds-pad) * 2))) !important;
  max-width:760px !important;
  margin-left:max(var(--ds-pad), calc((100% - var(--ds-grid-max)) / 2 + var(--ds-pad))) !important;
  margin-right:auto !important;
}

@media (max-width:780px){
  body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]),
  .editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]):not([class*="wp-block-doris-section-"]){
    width:calc(100% - (var(--ds-mobile-safe) * 2)) !important;
    max-width:none !important;
    margin-left:var(--ds-mobile-safe) !important;
    margin-right:var(--ds-mobile-safe) !important;
  }
}


/* ============================================================
   v2.30.6 – one consistent reading grid for normal Pages
   ============================================================ */

/* Normal pages use the same left edge as the Doris 1140px grid. The automatic
   page title and ordinary content must never drift into separate WP containers. */
body:not(.wp-admin) .ds-modular-page{
  --ds-page-reading-max: 820px;
  --ds-page-left: max(var(--ds-pad), calc((100vw - var(--ds-grid-max)) / 2 + var(--ds-pad)));
}

body:not(.wp-admin) .ds-modular-page .ds-page-auto-title-wrap{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:var(--ds-page-left) !important;
  padding-right:var(--ds-pad) !important;
  box-sizing:border-box !important;
}
body:not(.wp-admin) .ds-modular-page .ds-page-auto-title-wrap > .wp-block-post-title,
body:not(.wp-admin) .ds-modular-page .ds-page-auto-title{
  width:min(var(--ds-page-reading-max), calc(100vw - var(--ds-page-left) - var(--ds-pad))) !important;
  max-width:var(--ds-page-reading-max) !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]){
  width:min(var(--ds-page-reading-max), calc(100vw - var(--ds-page-left) - var(--ds-pad))) !important;
  max-width:var(--ds-page-reading-max) !important;
  margin-left:var(--ds-page-left) !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Editor parity: same reading edge, but based on editor canvas rather than viewport. */
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full{
  --ds-page-reading-max:820px;
}
.editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]):not([class*="wp-block-doris-section-"]){
  width:min(var(--ds-page-reading-max), calc(100% - (var(--ds-pad) * 2))) !important;
  max-width:var(--ds-page-reading-max) !important;
  margin-left:var(--ds-pad) !important;
  margin-right:0 !important;
}

@media (max-width:1180px){
  body:not(.wp-admin) .ds-modular-page{
    --ds-page-left:clamp(1.4rem, 5vw, 3.25rem);
  }
}

@media (max-width:780px){
  body:not(.wp-admin) .ds-modular-page{
    --ds-page-left:var(--ds-mobile-safe);
  }
  body:not(.wp-admin) .ds-modular-page .ds-page-auto-title-wrap{
    padding-left:var(--ds-mobile-safe) !important;
    padding-right:var(--ds-mobile-safe) !important;
  }
  body:not(.wp-admin) .ds-modular-page .ds-page-auto-title-wrap > .wp-block-post-title,
  body:not(.wp-admin) .ds-modular-page .ds-page-auto-title,
  body:not(.wp-admin) .ds-modular-page .ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([class*="wp-block-doris-section-"]){
    width:calc(100vw - (var(--ds-mobile-safe) * 2)) !important;
    max-width:none !important;
    margin-left:var(--ds-mobile-safe) !important;
    margin-right:var(--ds-mobile-safe) !important;
  }
  body:not(.wp-admin) .ds-modular-page .ds-page-auto-title-wrap > .wp-block-post-title,
  body:not(.wp-admin) .ds-modular-page .ds-page-auto-title{
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .editor-styles-wrapper .wp-block-post-content.ds-page-content-full > :not(.alignfull):not(.alignwide):not(.ds-pattern-full):not([data-align="full"]):not([data-align="wide"]):not([class*="wp-block-doris-section-"]){
    width:calc(100% - (var(--ds-mobile-safe) * 2)) !important;
    max-width:none !important;
    margin-left:var(--ds-mobile-safe) !important;
    margin-right:var(--ds-mobile-safe) !important;
  }
}

/* v2.31.0 – ordinary content mail links stay in the Doris visual language.
   This deliberately does not alter layout, section widths or mobile geometry. */
body:not(.wp-admin) main#main-content a[href^="mailto:"] {
	color: var(--ds-rust, #8c2d17) !important;
	background: transparent !important;
	box-shadow: none !important;
	text-decoration-line: underline;
	text-decoration-thickness: .075em;
	text-underline-offset: .16em;
	text-decoration-color: currentColor;
}
body:not(.wp-admin) main#main-content a[href^="mailto:"]:hover {
	color: var(--ds-orange, #f74900) !important;
}
