/* Revolution Slider needs to escape the constrained Shortcode block wrapper. */
.asb-revolution-slider-slot.is-layout-constrained > p{
	width:100%!important;
	max-width:none!important;
	margin:0!important;
	padding:0!important;
}
.asb-revolution-slider-slot sr7-module,
.asb-revolution-slider-slot sr7-adjuster{
	display:block!important;
	width:100%!important;
	max-width:none!important;
}
.asb-revolution-slider-slot sr7-module{overflow:hidden!important}
/* The block theme's global block-gap can create a white seam above and below
   the hero. The slider and the trust strip should connect directly. */
body.home .wp-site-blocks>header+.asb-trust-strip,
body.home .asb-trust-strip+.asb-revolution-slider-slot,
body.home .asb-revolution-slider-slot,
body.home .asb-revolution-slider-slot+.asb-trust-strip{
	margin-top:0!important;
	margin-bottom:0!important;
	padding-top:0!important;
	padding-bottom:0!important;
}
/* Keep the block in document flow while the carousel's internal slide wrappers are absolute. */
.asb-revolution-slider-slot{height:500px!important;min-height:500px!important;overflow:hidden!important}
/* Keep every Revolution slide at the module height when custom full-bleed artwork is used. */
.asb-revolution-slider-slot sr7-module,
.asb-revolution-slider-slot sr7-adjuster,
.asb-revolution-slider-slot sr7-slide{height:500px!important;min-height:500px!important}
/* Preserve paragraphs that contain later Revolution slides; only empty autop paragraphs are hidden. */
.asb-revolution-slider-slot > p:has(sr7-slide){display:block!important;width:100%!important;height:500px!important;margin:0!important;padding:0!important;position:absolute!important;inset:0!important}
/* WordPress autop inserts paragraph wrappers around later carousel slides; keep them in the stage. */
.asb-revolution-slider-slot sr7-content > p:has(sr7-slide){display:block!important;width:100%!important;height:500px!important;margin:0!important;padding:0!important;position:absolute!important;inset:0!important}
/* The Shortcode block injects extra empty paragraphs around Revolution Slider markup. */
.asb-revolution-slider-slot > p:not(:has(sr7-module)):not(:has(sr7-slide)){display:none!important}

/* The first slide artwork fills the full banner, but its copy group was
   positioned too low. Move only that group upward; the hero height and image
   crop remain unchanged. */
@media (min-width:701px){
	#SR7_3_1-8-4{top:50px!important}
	/* Slides two and three use taller copy groups. Keep their button and
	   supporting text fully inside the compact 500px hero stage. */
	#SR7_3_1-9-4,
	#SR7_3_1-10-4{top:110px!important}
}

/* Phone layout: keep the slider inside the viewport and avoid a desktop-size
   700px empty stage between the navigation and the bookstore content. */
@media (max-width: 700px){
	.asb-revolution-slider-slot{
		height:clamp(290px,78vw,340px)!important;
		min-height:clamp(290px,78vw,340px)!important;
		overflow:hidden!important;
	}
	.asb-revolution-slider-slot sr7-module,
	.asb-revolution-slider-slot sr7-adjuster,
	.asb-revolution-slider-slot sr7-slide,
	.asb-revolution-slider-slot > p:has(sr7-slide),
	.asb-revolution-slider-slot sr7-content > p:has(sr7-slide){
		height:clamp(290px,78vw,340px)!important;
		min-height:clamp(290px,78vw,340px)!important;
	}
}

/* Compatible homepage hero for the installed Slider Revolution 6.7.23
   runtime. It uses the same three saved module images and copy, while avoiding
   the incompatible SR7 layer payload introduced by the later editor build. */
.asb-revolution-slider-slot:has(.asb-hero-slider){
	height:500px!important;
	min-height:500px!important;
	position:relative;
	background:#102d1d;
}
.asb-revolution-slider-slot.is-layout-constrained>.asb-hero-slider{
	width:100%!important;
	max-width:none!important;
	margin:0!important;
}
.asb-hero-slider,
.asb-hero-slide{
	width:100%;
	height:100%;
}
.asb-hero-slider{
	position:relative;
	overflow:hidden;
	background:#102d1d;
}
.asb-hero-slide{
	position:absolute;
	inset:0;
	display:grid;
	align-items:center;
	opacity:0;
	visibility:hidden;
	transition:opacity .55s ease,visibility .55s ease;
}
.asb-hero-slide.is-active{
	opacity:1;
	visibility:visible;
	z-index:1;
}
.asb-hero-slide>img,
.asb-hero-slide__overlay{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}
.asb-hero-slide>img{
	object-fit:cover;
	object-position:center;
}
.asb-hero-slide__overlay{
	background:linear-gradient(90deg,rgba(5,27,16,.96) 0%,rgba(5,27,16,.87) 31%,rgba(5,27,16,.34) 57%,rgba(5,27,16,.02) 78%);
}
.asb-hero-slide__content{
	position:relative;
	z-index:1;
	box-sizing:border-box;
	max-width:610px;
	margin-left:clamp(34px,10.7vw,205px);
	padding:24px 0 54px;
	color:#fffdfa;
}
.asb-hero-slide__eyebrow{
	margin:0 0 25px;
	color:#c99a46;
	font-size:13px;
	font-weight:800;
	letter-spacing:.45em;
	line-height:1.2;
	text-transform:uppercase;
}
.asb-hero-slide h1{
	margin:0;
	color:#fffdfa;
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(40px,3.15vw,58px);
	font-weight:700;
	line-height:1.05;
}
.asb-hero-slide__description{
	max-width:520px;
	margin:27px 0 31px;
	font-size:18px;
	font-weight:500;
	line-height:1.55;
}
.asb-hero-slide__button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:61px;
	padding:0 30px;
	border-radius:10px;
	background:#c99a46;
	color:#143a26!important;
	font-size:16px;
	font-weight:800;
	line-height:1;
	text-decoration:none;
	text-transform:uppercase;
	transition:background-color .2s ease,transform .2s ease;
}
.asb-hero-slide__button:hover,
.asb-hero-slide__button:focus-visible{
	background:#e0b763;
	transform:translateY(-2px);
}
.asb-hero-slider__controls{
	position:absolute;
	bottom:20px;
	left:clamp(34px,10.7vw,205px);
	z-index:2;
	display:flex;
	align-items:center;
	gap:15px;
}
.asb-hero-slider__arrow,
.asb-hero-slider__dots button{
	appearance:none;
	border:0;
	padding:0;
	cursor:pointer;
}
.asb-hero-slider__arrow{
	width:34px;
	height:34px;
	border-radius:50%;
	background:rgba(4,20,12,.72);
	color:#fff;
	font-size:28px;
	line-height:1;
}
.asb-hero-slider__dots{
	display:flex;
	gap:10px;
}
.asb-hero-slider__dots button{
	width:36px;
	height:3px;
	background:rgba(255,253,250,.45);
}
.asb-hero-slider__dots button[aria-selected="true"]{
	background:#fffdfa;
}
@media (max-width:700px){
	.asb-revolution-slider-slot:has(.asb-hero-slider),
	.asb-hero-slider,
	.asb-hero-slide{
		height:clamp(290px,78vw,340px)!important;
		min-height:clamp(290px,78vw,340px)!important;
	}
	.asb-hero-slide>img{object-position:65% center}
	.asb-hero-slide__overlay{background:linear-gradient(90deg,rgba(5,27,16,.9) 0%,rgba(5,27,16,.62) 54%,rgba(5,27,16,.08) 100%)}
	.asb-hero-slide__content{
		max-width:70%;
		margin-left:25px;
		padding:22px 0 42px;
	}
	.asb-hero-slide__eyebrow{margin-bottom:11px;font-size:8px;letter-spacing:.33em}
	.asb-hero-slide h1{font-size:clamp(26px,8vw,34px);line-height:1.04}
	.asb-hero-slide__description{margin:13px 0 17px;font-size:12px;line-height:1.45}
	.asb-hero-slide__button{min-height:40px;padding:0 17px;border-radius:8px;font-size:11px}
	.asb-hero-slider__controls{bottom:12px;left:25px;gap:9px}
	.asb-hero-slider__arrow{width:26px;height:26px;font-size:21px}
	.asb-hero-slider__dots{gap:6px}
	.asb-hero-slider__dots button{width:20px}
}
@media (prefers-reduced-motion:reduce){
	.asb-hero-slide{transition:none}
}
