.d15act-single,
.d15act-single *,
.d15act-single *::before,
.d15act-single *::after{
	box-sizing:border-box;
}

.d15act-single{
	position:relative;
	width:100vw !important;
	max-width:100vw !important;
	margin-left:calc(50% - 50vw) !important;
	margin-right:calc(50% - 50vw) !important;
	padding:0 !important;
	overflow:hidden;
	background:transparent;
	color:inherit;
}

.d15act-inner{
	width:100%;
	max-width:1580px;
	margin:0 auto;
	padding:clamp(46px,4.5vw,78px) clamp(24px,3.4vw,54px) clamp(60px,5vw,92px);
}

/* Intro */
.d15act-intro{
	display:grid;
	grid-template-columns:minmax(300px,31%) minmax(0,69%);
	gap:clamp(36px,4vw,66px);
	align-items:stretch;
}

.d15act-main-media{
	position:relative;
	width:100%;
	min-width:0;
min-height:0;
	height:100%;
	aspect-ratio:1.50 / 1;
	align-self:stretch;
}

.d15act-main-image{
	position:absolute;
	inset:0;
	display:block;
	width:100% !important;
	height:100% !important;
	object-fit:cover;
	object-position:center;
	border-radius:14px;
	margin:0 !important;
	padding:0 !important;
}

.d15act-intro-copy{
	min-width:0;
	padding-top:2px;
display:flex;
	flex-direction:column;
	align-items:flex-start;
	min-height:0;
}

.d15act-kicker{
	margin:0 0 9px;
	padding:0;
	font-family:inherit;
	font-size:11px;
	font-weight:400;
	line-height:1.2;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:rgba(17,17,17,.48);
}

/* Kept in the markup for backward compatibility, but the new
   editorial heading treatment does not use a separator rule. */
.d15act-copy-rule{
	display:none;
}

.d15act-content-title{
	margin:0 0 24px !important;
	padding:0 !important;
	max-width:1000px;
	font-family:inherit !important;
	font-size:clamp(32px,10vw,43px) !important;
	font-weight:400 !important;
	line-height:1.05 !important;
	letter-spacing:-.045em !important;
	text-align:left !important;
	text-transform:none !important;
	color:#111 !important;
}

.d15act-content-text{
	margin:0;
	padding:0;
	font-family:inherit;
	font-size:clamp(14px,.90vw,16px);
	font-weight:400;
	line-height:1.68;
	color:inherit;
}

.d15act-content-text p{
	margin:0 0 1.25em !important;
	padding:0 !important;
}

.d15act-content-text p:last-child{
	margin-bottom:0 !important;
}

/* Maintain readable spacing before the bottom-aligned CTA.
   Only applies if the current activity has a WhatsApp button. */
.d15act-intro-copy:has(> .d15act-whatsapp-info) .d15act-content-text{
	margin-bottom:26px;
}

/* DERIN15 Runtime WhatsApp CTA below Activity Text */
.d15act-intro-copy .d15act-whatsapp-info{
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	gap:11px;
	min-height:46px;
	max-width:100%;
	margin:auto 0 0 !important;
	padding:12px 20px !important;
	border:1px solid #1c1c1c !important;
	border-radius:0 !important;
	background:#1c1c1c !important;
	color:#fff !important;
	box-shadow:none !important;
	text-align:center;
	text-decoration:none !important;
	font-family:inherit !important;
	font-size:12px !important;
	font-weight:500 !important;
	line-height:1.35 !important;
	letter-spacing:.035em;
	text-transform:none !important;
	white-space:normal;
	transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease !important;
}
.d15act-intro-copy .d15act-whatsapp-info:hover,
.d15act-intro-copy .d15act-whatsapp-info:focus-visible{
	background:#25D366 !important;
	border-color:#25D366 !important;
	color:#111 !important;
	transform:translateY(-2px);
}
.d15act-intro-copy .d15act-whatsapp-info:focus-visible{
	outline:2px solid #111 !important;
	outline-offset:3px;
}
.d15act-whatsapp-info-icon{
	display:block;
	width:19px;
	height:19px;
	min-width:19px;
	flex:0 0 19px;
	fill:currentColor;
}
@media (prefers-reduced-motion:reduce){
	.d15act-intro-copy .d15act-whatsapp-info{transition:none !important;transform:none !important;}
}

/* Carousel foundation */
.d15act-carousel{
	--d15act-gap:18px;
	position:relative;
	width:100%;
	margin:0;
	padding:0;
}

.d15act-carousel-viewport{
	position:relative;
	width:100%;
	overflow:hidden;
}

.d15act-carousel-track{
	display:flex;
	align-items:stretch;
	gap:var(--d15act-gap);
	width:max-content;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	transform:translate3d(0,0,0);
	transition:transform .62s cubic-bezier(.22,.61,.36,1);
	will-change:transform;
}

.d15act-carousel-slide{
	flex:0 0 auto;
	min-width:0;
	margin:0 !important;
	padding:0 !important;
}

/* Gallery */
.d15act-gallery-carousel{
	margin-top:clamp(48px,5vw,78px);
}

.d15act-gallery-slide{
	width:calc((100vw - 2 * clamp(24px,3.4vw,54px) - 2 * var(--d15act-gap)) / 3);
	max-width:calc((1580px - 2 * clamp(24px,3.4vw,54px) - 2 * var(--d15act-gap)) / 3);
}

.d15act-gallery-slide img{
	display:block;
	width:100% !important;
	height:auto !important;
/*	aspect-ratio:2.02 / 1;*/
	
	aspect-ratio:3 / 2;
	
	object-fit:cover;
	object-position:center;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	border-radius:13px;
}

/* Arrows */
.d15act-carousel-arrow{
	-webkit-appearance:none !important;
	appearance:none !important;
	position:absolute;
	z-index:12;
	top:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	width:38px;
	height:38px;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	outline:0 !important;
	border-radius:0 !important;
	background:rgba(255,255,255,.90) !important;
	color:#111 !important;
	box-shadow:0 4px 18px rgba(0,0,0,.08) !important;
	font-family:inherit !important;
	font-size:18px !important;
	line-height:1 !important;
	cursor:pointer;
	transform:translateY(-50%);
	transition:background .2s ease, transform .2s ease, opacity .2s ease;
	-webkit-tap-highlight-color:transparent;
}

.d15act-carousel-arrow:hover{
	background:#fff !important;
	transform:translateY(-50%) scale(1.05);
}

.d15act-carousel-arrow:focus,
.d15act-carousel-arrow:focus-visible,
.d15act-carousel-arrow:active{
	border:0 !important;
	outline:0 !important;
	box-shadow:0 4px 18px rgba(0,0,0,.08) !important;
}

.d15act-carousel-prev{
	left:0;
}

.d15act-carousel-next{
	right:0;
}

.d15act-carousel-dots{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	min-height:12px;
	margin-top:10px;
}

.d15act-carousel-dot{
	width:6px;
	height:6px;
	border-radius:999px;
	background:rgba(17,17,17,.20);
	transition:background .2s ease, transform .2s ease;
}

.d15act-carousel-dot.is-active{
	background:#111;
	transform:scale(1.15);
}

/* Full content-width separator between activity content/gallery and related activities */
.d15act-section-separator{
	display:block !important;
	width:100% !important;
	max-width:none !important;
	height:1px !important;
	margin:clamp(52px,6vw,88px) 0 0 !important;
	padding:0 !important;
	border:0 !important;
	background:rgba(17,17,17,.17) !important;
}

/* DERIN15 — Optional heading-less detailed description between two separator lines */
.d15act-detailed-description{
	width:100%;
	margin:clamp(52px,6vw,88px) 0 0;
	padding:0;
}

.d15act-detailed-description__separator{
	display:block;
	width:100%;
	height:1px;
	margin:0;
	padding:0;
	border:0;
	background:rgba(17,17,17,.17);
}

.d15act-detailed-description__content{
	width:100%;

	margin:0;
	padding:clamp(34px,4vw,58px) 0;
	font-family:inherit;
	font-size:clamp(15px,1vw,17px);
	font-weight:400;
	line-height:1.8;
	color:inherit;
}

.d15act-detailed-description__content p{
	margin:0 0 1.35em !important;
	padding:0 !important;
}

.d15act-detailed-description__content p:last-child{
	margin-bottom:0 !important;
}

.d15act-detailed-description__content ul,
.d15act-detailed-description__content ol{
	margin:0 0 1.35em 1.25em;
	padding:0;
}

.d15act-detailed-description__content li + li{
	margin-top:.45em;
}

.d15act-detailed-description + .d15act-related{
	margin-top:clamp(42px,4.5vw,70px);
}

/* Other Activities */
.d15act-related{
	margin-top:clamp(42px,4.5vw,70px);
}

.d15act-related-head{
	margin:0 0 clamp(30px,3vw,46px);
}

.d15act-related-kicker{
	margin:0 0 9px;
	padding:0;
	font-family:inherit;
	font-size:11px;
	font-weight:400;
	line-height:1.2;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:rgba(17,17,17,.48);
}

.d15act-related-heading{
	margin:0 !important;
	padding:0 !important;
	max-width:1000px;
	font-family:inherit !important;
	font-size:clamp(34px,3.25vw,58px) !important;
	font-weight:400 !important;
	line-height:1.05 !important;
	letter-spacing:-.045em !important;
	text-align:left !important;
	text-transform:none !important;
	color:#111 !important;
}

.d15act-related-carousel{
	--d15act-gap:26px;
}

.d15act-related-slide{
	width:calc((100vw - 2 * clamp(24px,3.4vw,54px) - 2 * var(--d15act-gap)) / 3);
	max-width:calc((1580px - 2 * clamp(24px,3.4vw,54px) - 2 * var(--d15act-gap)) / 3);
}

.d15act-related-card{
	position:relative;
	display:flex;
	flex-direction:column;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	background:#fff;
	border:1px solid rgba(17,17,17,.55);
	overflow:hidden;
	color:#111;
}


/* DERIN15 — Whole activity card link */
.d15act-related-card-link{
	position:absolute;
	inset:0;
	z-index:8;
	display:block;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	background:transparent !important;
	text-decoration:none !important;
}

.d15act-related-card-link:focus-visible{
	outline:2px solid #111;
	outline-offset:-3px;
}

.d15act-related-image-link{
	position:relative;
	display:block;
	width:100%;
	overflow:hidden;
	background:#f2f0ec;
	text-decoration:none !important;
}

.d15act-related-image{
	display:block;
	width:100% !important;
	height:auto !important;
	aspect-ratio:1.62 / 1;
	object-fit:cover;
	object-position:center;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	transition:transform .6s cubic-bezier(.22,.61,.36,1);
}

.d15act-related-card:hover .d15act-related-image,
.d15act-related-card:focus-within .d15act-related-image{
	transform:scale(1.035);
}

.d15act-related-content{
	display:flex;
	flex-direction:column;
	flex:1;
	padding:clamp(23px,2vw,31px) clamp(22px,2vw,32px) clamp(24px,2.2vw,34px);
	text-align:center;
}

.d15act-related-title{
	margin:0 0 22px !important;
	padding:0 !important;
	font-family:inherit !important;
	font-size:clamp(24px,1.75vw,34px) !important;
	font-weight:400 !important;
	line-height:1.12 !important;
	letter-spacing:-.035em !important;
	text-transform:none !important;
}

/* DERIN15 — Title is visual content; stretched card link handles navigation. */
.d15act-related-title{
	color:#111 !important;
}

.d15act-related-excerpt{
	max-width:390px;
	margin:0 auto 27px;
	font-family:inherit;
	font-size:clamp(14px,.92vw,16px);
	font-weight:400;
	line-height:1.55;
	color:#111;
}

.d15act-related-more{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:13px;
	align-self:center;
	margin-top:auto;
	color:#111 !important;
	font-family:inherit;
	font-size:14px;
	font-weight:500;
	line-height:1;
	text-decoration:none !important;
}

.d15act-related-more > span:first-child{
	position:relative;
	display:block;
	padding-bottom:4px;
}

.d15act-related-more > span:first-child::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:1px;
	background:#111;
	transform-origin:left center;
	transition:transform .25s ease;
}

.d15act-related-more-arrow{
	font-size:21px;
	line-height:1;
	transform:translateY(-1px);
	transition:transform .25s ease;
}

.d15act-related-card:hover .d15act-related-more-arrow,
.d15act-related-card:focus-within .d15act-related-more-arrow{
	transform:translate(4px,-1px);
}

.d15act-related-carousel .d15act-carousel-arrow{
	background:rgba(255,255,255,.94) !important;
	border:1px solid rgba(17,17,17,.18) !important;
	box-shadow:0 5px 20px rgba(0,0,0,.08) !important;
}

@media (max-width:1100px){

	.d15act-intro{
		grid-template-columns:minmax(260px,38%) minmax(0,62%);
		gap:34px;
	}

	.d15act-gallery-slide{
		width:calc((100vw - 2 * 34px - var(--d15act-gap)) / 2);
		max-width:none;
	}

	.d15act-related-slide{
		width:calc((100vw - 68px - var(--d15act-gap)) / 2);
		max-width:none;
	}
}

@media (max-width:767px){

	.d15act-inner{
		padding:40px 18px 58px;
	}

	.d15act-intro{
		display:block;
	}

	.d15act-main-media{
		height:auto;
		aspect-ratio:1.50 / 1;
	}

	.d15act-main-image{
		position:absolute;
		inset:0;
	}

	.d15act-intro-copy{
		padding-top:32px;
	}

	.d15act-intro-copy .d15act-whatsapp-info{
		margin:26px 0 0 !important;
	}

	.d15act-intro-copy:has(> .d15act-whatsapp-info) .d15act-content-text{
		margin-bottom:0;
	}

	.d15act-kicker{
		font-size:10px;
		margin-bottom:8px;
	}

	.d15act-content-title{
		font-size:clamp(32px,10vw,31px) !important;
		line-height:1.04 !important;
		margin-bottom:20px !important;
	}

	.d15act-gallery-carousel{
		margin-top:42px;
	}

	.d15act-gallery-slide,
	.d15act-related-slide{
		width:calc(100vw - 36px);
		max-width:none;
	}

	.d15act-gallery-slide img{
		aspect-ratio:1.55 / 1;
	}

	.d15act-related{
		margin-top:58px;
	}

	.d15act-related-head{
		margin-bottom:27px;
	}

	.d15act-related-kicker{
		font-size:10px;
		margin-bottom:8px;
	}

	.d15act-related-heading{
		font-size:clamp(32px,10vw,43px) !important;
		line-height:1.04 !important;
	}

	.d15act-related-content{
		padding:23px 22px 27px;
	}

	.d15act-related-title{
		font-size:26px !important;
		margin-bottom:17px !important;
	}

	.d15act-related-excerpt{
		font-size:14px;
		margin-bottom:23px;
	}

	.d15act-carousel-arrow{
		width:34px;
		height:34px;
		font-size:16px !important;
	}
}

@media (prefers-reduced-motion:reduce){

	.d15act-carousel-track,
	.d15act-related-image,
	.d15act-carousel-arrow{
		transition:none !important;
	}
}

/* =========================================================
   ACTIVITIES PAGE — BLOCK THEME CONSTRAINT RESET
   ========================================================= */

/*
 * DERIN15 is a block theme, so WordPress adds the generic
 * .is-layout-constrained child max-width to the normal Page content.
 * The Activities Page owns its own 1580px inner container, therefore
 * only this selected page must escape the block-theme content width.
 */
body.d15-activities-page .d15-core-template-main.is-layout-constrained > .entry-content.wp-block-post-content,
body.d15-activities-page .d15-core-template-main.is-layout-constrained > .wp-block-post-content{
	width:100% !important;
	max-width:none !important;
	margin-left:0 !important;
	margin-right:0 !important;
	padding-left:0 !important;
	padding-right:0 !important;
}

body.d15-activities-page .wp-block-post-content.is-layout-constrained > .d15act-archive,
body.d15-activities-page .wp-block-post-content > .d15act-archive{
	width:100% !important;
	max-width:none !important;
	margin-left:0 !important;
	margin-right:0 !important;
}

/* =========================================================
   ACTIVITIES ARCHIVE
   ========================================================= */

.d15act-archive,
.d15act-archive *,
.d15act-archive *::before,
.d15act-archive *::after{
	box-sizing:border-box;
}

.d15act-archive{
	position:relative;
	width:100%;
	margin:0;
	padding:0;
	color:inherit;
}

.d15act-archive-inner{
	width:100%;
	max-width:1580px;
	margin:0 auto;
	padding:clamp(58px,6vw,100px) clamp(24px,3.4vw,54px) clamp(70px,6vw,110px);
}

.d15act-archive-head{
	margin:0 0 clamp(34px,4vw,56px);
}

.d15act-archive-kicker{
	margin:0 0 9px;
	padding:0;
	font-family:inherit;
	font-size:11px;
	font-weight:400;
	line-height:1.2;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:rgba(17,17,17,.48);
}

.d15act-archive-heading{
	margin:0 !important;
	padding:0 !important;
	max-width:1000px;
	font-family:inherit !important;
	font-size: clamp(52px, 3.1vw, 58px) !important;
	font-weight:400 !important;
	line-height:1.02 !important;
	letter-spacing:-.05em !important;
	text-align:left !important;
	text-transform:none !important;
	color:#111 !important;
}

.d15act-archive-intro{
	max-width:1000px;
	margin:clamp(18px,2.2vw,30px) 0 0;
	padding:0;
	font-family:inherit;
	font-size:clamp(14px,.95vw,17px);
	font-weight:400;
	line-height:1.75;
	color:inherit;
}
.d15act-archive-intro p{margin:0 0 1em !important;padding:0 !important;}
.d15act-archive-intro p:last-child{margin-bottom:0 !important;}
.d15act-archive-intro--standalone{margin:0 0 clamp(34px,4vw,56px);}

.d15act-archive-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(24px,2vw,32px);
	align-items:stretch;
}

.d15act-archive-item{
	min-width:0;
	margin:0;
	padding:0;
}

.d15act-archive-item .d15act-related-card{
	height:100%;
}

.d15act-archive-pagination{
	margin-top:clamp(42px,5vw,72px);
}

.d15act-archive-pagination .page-numbers{
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	gap:8px;
	margin:0 !important;
	padding:0 !important;
}

.d15act-archive-pagination .page-numbers li{
	margin:0 !important;
	padding:0 !important;
}

.d15act-archive-pagination a.page-numbers,
.d15act-archive-pagination span.page-numbers{
	display:flex;
	align-items:center;
	justify-content:center;
	min-width:40px;
	height:40px;
	padding:0 12px;
	border:1px solid rgba(17,17,17,.22);
	color:#111 !important;
	font-family:inherit;
	font-size:13px;
	line-height:1;
	text-decoration:none !important;
	background:transparent;
}

.d15act-archive-pagination span.page-numbers.current,
.d15act-archive-pagination a.page-numbers:hover{
	background:#111;
	border-color:#111;
	color:#fff !important;
}

.d15act-archive-empty{
	margin:0;
	font-family:inherit;
	font-size:16px;
	line-height:1.6;
}

@media (max-width:1100px){
	.d15act-archive-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:767px){
	.d15act-archive-inner{
		padding:46px 18px 64px;
	}

	.d15act-archive-head{
		margin-bottom:28px;
	}

	.d15act-archive-kicker{
		font-size:10px;
	}

	.d15act-archive-heading{
		font-size:clamp(36px,11vw,48px) !important;
	}

	.d15act-archive-grid{
		grid-template-columns:1fr;
		gap:22px;
	}
}
