@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("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJz48cGF0aCBmaWxsPSdibGFjaycgZD0nTTI1NiAxOGMxNiAwIDI1IDQ1IDQwIDQ5IDE0IDQgNDYtMzAgNTktMjJzLTEgNTIgMTAgNjNjMTEgMTEgNTUtMiA2MyAxMXMtMjcgNDUtMjMgNTljNCAxNSA0OSAyNCA0OSA0MHMtNDUgMjUtNDkgNDBjLTQgMTQgMzEgNDYgMjMgNTlzLTUyIDAtNjMgMTFjLTExIDExIDMgNTUtMTAgNjNzLTQ1LTI3LTU5LTIzYy0xNSA0LTI0IDQ5LTQwIDQ5cy0yNS00NS00MC00OWMtMTQtNC00NiAzMS01OSAyM3MxLTUyLTEwLTYzYy0xMS0xMS01NSAyLTYzLTExczI3LTQ1IDIzLTU5Yy00LTE1LTQ5LTI0LTQ5LTQwczQ1LTI1IDQ5LTQwYzQtMTQtMzEtNDYtMjMtNTlzNTIgMCA2My0xMWMxMS0xMS0zLTU1IDEwLTYzczQ1IDI2IDU5IDIyYzE1LTQgMjQtNDkgNDAtNDlaJy8+PC9zdmc+");
--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;
	}
}
