/* DH category landing zones.
   Palette, type treatment and the button style are the site's own; only
   structure is defined here. The 2px accent rule is the one new idea: on a
   raw denim site it reads as a selvedge ID, and it appears in exactly two
   places — the hero panel edge and the card hover. */

.dh-hero,
.dh-entry{
	--dh-accent:#c98f69;
	--dh-ink:#111;
	--dh-panel:#f6f6f6;
}

/* ---------- Zone 1 ---------- */

.dh-hero{
	position:relative;
	background-color:#324154;
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	background-blend-mode:multiply;
}

.dh-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(50,65,84,.5);
	mix-blend-mode:multiply;
	pointer-events:none;
}

.dh-hero__inner{
	position:relative;
	z-index:1;
	max-width:1200px;
	margin:0 auto;
	padding:72px 30px;
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
	gap:56px;
	align-items:center;
	min-height:520px;
}

.dh-hero__crumbs,
.dh-hero__crumbs a,
.dh-hero__crumbs span{
	font-size:12px;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:rgba(255,255,255,.65);
	text-decoration:none;
}
.dh-hero__crumbs{margin-bottom:26px;}
.dh-hero__crumbs a:hover{color:#fff;}

.dh-hero__title{
	font-size:44px;
	line-height:1.12;
	font-weight:700;
	letter-spacing:.06em;
	text-transform:uppercase;
	color:#fff;
	margin:0 0 20px;
}

.dh-hero__text{
	font-size:18px !important;
	line-height:31px !important;
	color:rgba(255,255,255,.86) !important;
	margin:0 !important;
	max-width:46ch;
}

.dh-hero__panel{
	position:relative;
	background:#fff;
	padding:40px;
	border-radius:2px;
}

/* The selvedge rule. */
.dh-hero__panel::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:2px;
	background:var(--dh-accent);
}

.dh-hero__kicker{
	display:inline-block;
	background:var(--dh-accent);
	color:#fff;
	font-size:11px;
	font-weight:600;
	letter-spacing:.14em;
	text-transform:uppercase;
	padding:5px 12px;
	margin-bottom:20px;
}

.dh-hero__heading{
	font-size:29px;
	line-height:1.3;
	font-weight:600;
	margin:0 0 16px;
}
.dh-hero__heading a{
	color:var(--dh-ink);
	text-decoration:none;
	border-bottom:0 !important;
	box-shadow:0 -2px 0 0 rgba(201,143,105,0) inset;
	transition:box-shadow .3s ease;
}
.dh-hero__heading a:hover{box-shadow:0 -2px 0 0 var(--dh-accent) inset;}

.dh-hero__excerpt{
	font-size:17px !important;
	line-height:29px !important;
	margin:0 0 28px !important;
	color:#5b5e5e !important;
}

.dh-hero__btn{
	display:inline-block;
	background:var(--dh-ink);
	color:#fff !important;
	text-decoration:none !important;
	border-bottom:0 !important;
	font-size:15px;
	font-weight:700;
	letter-spacing:.18em;
	text-transform:uppercase;
	padding:17px 38px;
	transition:background .3s ease,box-shadow .3s ease,transform .3s ease;
}
.dh-hero__btn:hover{
	background:var(--dh-accent);
	box-shadow:0 5px 10px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.07);
	transform:translateY(-1px);
}

/* ---------- Zone 2 ---------- */

.dh-entry{background:var(--dh-panel);}

.dh-entry__inner{
	max-width:1200px;
	margin:0 auto;
	padding:64px 30px 68px;
}

.dh-entry__title{
	font-size:14px;
	font-weight:600;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--dh-ink);
	margin:0 0 34px;
}

.dh-entry__items{
	list-style:none;
	margin:0 !important;
	padding:0 !important;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:24px;
}
.dh-entry__items li{margin:0;padding:0 !important;}

.dh-entry__link{
	position:relative;
	display:block;
	background:#fff;
	text-decoration:none !important;
	border-bottom:0 !important;
	height:100%;
	transition:transform .3s ease,box-shadow .3s ease;
}
.dh-entry__link::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:2px;
	height:0;
	background:var(--dh-accent);
	transition:height .35s ease;
	z-index:2;
}
.dh-entry__link:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.07);}
.dh-entry__link:hover::before{height:100%;}

.dh-entry__media{
	display:block;
	position:relative;
	overflow:hidden;
	background:#e3e5e8;
	aspect-ratio:74/49;
}
.dh-entry__media img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
}
.dh-entry__media::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(0deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 75%);
}

.dh-entry__body{display:block;padding:20px 20px 24px;}

.dh-entry__label{
	display:block;
	font-size:11px;
	font-weight:600;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:var(--dh-accent);
	margin-bottom:9px;
}

.dh-entry__heading{
	display:block;
	font-size:18px;
	line-height:26px;
	font-weight:600;
	color:var(--dh-ink);
	margin-bottom:8px;
}

.dh-entry__text{
	display:block;
	font-size:14px;
	line-height:22px;
	color:#505050;
}

/* ---------- Astra's own archive banner ----------
   Hidden when our hero replaces it. Cleaner still is to switch the archive
   banner off in Customizer, which removes it from the markup entirely. */

body.dh-has-hero .ast-archive-entry-banner{display:none !important;}

/* ---------- Responsive ---------- */

@media (max-width:1000px){
	.dh-hero__inner{grid-template-columns:1fr;gap:36px;min-height:0;padding:56px 30px;}
	.dh-hero__title{font-size:34px;}
	.dh-entry__items{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:600px){
	.dh-hero__inner{padding:44px 20px;}
	.dh-hero__title{font-size:27px;}
	.dh-hero__text{font-size:16px !important;line-height:28px !important;}
	.dh-hero__panel{padding:30px 26px 28px;}
	.dh-hero__heading{font-size:23px;}
	.dh-entry__inner{padding:48px 20px 52px;}
	.dh-entry__items{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
	.dh-entry__link,
	.dh-entry__link::before,
	.dh-hero__btn,
	.dh-hero__heading a{transition:none;}
}
