/* =====================================================================
   Premium Hero Slider — front-end stylesheet.
   ===================================================================== */

/* =====================================================================
   1. TOKENS
   ===================================================================== */
.premium-hero-slider{
	--phs-bg:                 #060605;
	--phs-text:               #f6f4ef;
	--phs-text-dim:           rgba(246,244,239,.74);
	--phs-text-faint:         rgba(246,244,239,.46);
	--phs-accent:             #c9a24d;
	--phs-line:               rgba(246,244,239,.22);
	--phs-line-soft:          rgba(246,244,239,.12);

	--phs-content-width:      640px;

	--phs-speed:              1400ms;
	--phs-ease:               cubic-bezier(.16,1,.3,1);
	--phs-ease-soft:          cubic-bezier(.33,1,.68,1);

	--phs-kb-duration:        9000ms;
	--phs-kb-scale-start:     1.02;
	--phs-kb-scale-end:       1.12;
	--phs-kb-move:            1.4%;

	--phs-min-h:              560px;
	--phs-max-h:              1200px;

	--phs-sbw:                0px;
	--phs-drift-opacity:      .16;
	--phs-btn-arrow:          "→";

	--phs-primary-bg:         #ffffff;
	--phs-primary-color:      #111111;
	--phs-primary-border:     #ffffff;

	--phs-secondary-bg:       transparent;
	--phs-secondary-color:    #f6f4ef;
	--phs-secondary-border:   rgba(246,244,239,.32);

	--phs-font-display:       'Fraunces', Georgia, 'Times New Roman', serif;
	--phs-font-ui:            'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* =====================================================================
   2. BASE / RESET (scoped)
   ===================================================================== */
.premium-hero-slider,
.premium-hero-slider *,
.premium-hero-slider *::before,
.premium-hero-slider *::after{
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

.premium-hero-slider{
	position: relative;
	width: 100%;
	max-width: 100vw;
	background-color: var(--phs-bg);
	color: var(--phs-text);
	font-family: var(--phs-font-ui);
	overflow: hidden;
	isolation: isolate;
}

.premium-hero-slider a:not(.premium-button){
	color: inherit;
	text-decoration: none;
}

.premium-hero-slider button{
	font-family: inherit;
	cursor: pointer;
	background: none;
	border: none;
	color: inherit;
}

.premium-hero-slider.phs-full-width{
	width: calc(100vw - var(--phs-sbw, 0px));
	max-width: calc(100vw - var(--phs-sbw, 0px));
	margin-left: calc(50% - 50vw + (var(--phs-sbw, 0px) / 2));
	margin-right: 0;
}

/* =====================================================================
   3. SLIDER SHELL + FULLSCREEN HEIGHT CHAIN
   ===================================================================== */
.premium-slider{
	position: relative;
	width: 100%;
}

.premium-hero-slider.phs-height-fullscreen{
	height: 100vh;
	height: 100svh;
	min-height: 100vh;
	min-height: 100svh;
	max-height: none;
}

.premium-hero-slider.phs-height-fullscreen .premium-slider{
	height: 100% !important;
	min-height: 100% !important;
	max-height: none !important;
}

.premium-hero-slider.phs-height-fullscreen .swiper-wrapper{
	height: 100% !important;
}

.premium-hero-slider.phs-height-fullscreen .premium-slide{
	height: 100% !important;
	min-height: 100% !important;
}

.premium-hero-slider.phs-height-fullscreen .premium-slide-background{
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	overflow: hidden !important;
}

.phs-height-custom .premium-slider,
.phs-height-auto .premium-slider{
	height: auto;
}

.premium-slide{
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background-color: var(--phs-bg);
}

/* =====================================================================
   4. BACKGROUND LAYERS
   ===================================================================== */
.premium-slide-background{
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 1;
}

.premium-background-image{
	position: absolute;
	inset: -5%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	transform: scale(var(--phs-kb-scale-start, 1.02));
	will-change: transform;
}

.premium-hero-slider.phs-height-fullscreen .premium-background-image{
	position: absolute !important;
	inset: -5% !important;
	top: -5% !important;
	right: -5% !important;
	bottom: -5% !important;
	left: -5% !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	will-change: transform;
}

.swiper-slide-active .premium-background-image{
	animation: phs-kenburns-1 var(--phs-kb-duration) linear forwards;
}
.premium-slide[data-kb-dir="1"].swiper-slide-active .premium-background-image{ animation-name: phs-kenburns-1; }
.premium-slide[data-kb-dir="2"].swiper-slide-active .premium-background-image{ animation-name: phs-kenburns-2; }
.premium-slide[data-kb-dir="3"].swiper-slide-active .premium-background-image{ animation-name: phs-kenburns-3; }
.premium-slide[data-kb-dir="4"].swiper-slide-active .premium-background-image{ animation-name: phs-kenburns-4; }

.phs-kb-off .swiper-slide-active .premium-background-image{
	animation: none !important;
	transform: scale(var(--phs-kb-scale-start, 1.02));
}

.premium-background-video{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 900ms var(--phs-ease-soft);
	pointer-events: none;
}

.premium-hero-slider.phs-height-fullscreen .premium-background-video{
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

.premium-background-video.is-ready{
	opacity: 1;
}

.premium-background-youtube{
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	background: transparent;
}

.premium-hero-slider.phs-height-fullscreen .premium-background-youtube{
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

.premium-background-youtube iframe{
	position: absolute;
	top: 50%;
	left: 50%;
	width: 177.8vh;
	min-width: 100vw;
	height: 100vh;
	min-height: 56.25vw;
	transform: translate(-50%, -50%);
	border: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 900ms var(--phs-ease-soft);
}

.premium-hero-slider.phs-height-fullscreen .premium-background-youtube iframe{
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 177.78vh !important;
	width: 177.78svh !important;
	height: 100vh !important;
	height: 100svh !important;
	min-width: 100% !important;
	min-height: 56.25vw !important;
	max-width: none !important;
	max-height: none !important;
	transform: translate(-50%, -50%) !important;
	border: 0 !important;
	pointer-events: none !important;
}

.premium-background-youtube iframe.is-ready{
	opacity: 1;
}

.premium-slide-background[data-active-bg="image"] .premium-background-video,
.premium-slide-background[data-active-bg="image"] .premium-background-youtube{
	display: none;
}
.premium-slide-background[data-active-bg="video"] .premium-background-youtube{
	display: none;
}
.premium-slide-background[data-active-bg="youtube"] .premium-background-video{
	display: none;
}

.premium-slide-background[data-active-bg="video"] .premium-background-image,
.premium-slide-background[data-active-bg="youtube"] .premium-background-image{
	animation: none !important;
	transform: scale(var(--phs-kb-scale-start, 1.02));
}

/* =====================================================================
   5. OVERLAY
   ===================================================================== */
.premium-slide-overlay{
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
}

.premium-slide-overlay::after{
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, var(--phs-accent), transparent 42%);
	background-repeat: no-repeat;
	background-size: 160% 160%;
	background-position: 22% 28%;
	opacity: 0;
	animation: phs-light-drift 22s ease-in-out infinite;
	animation-play-state: paused;
	transition: opacity 1.2s var(--phs-ease-soft);
	mix-blend-mode: screen;
}

.swiper-slide-active .premium-slide-overlay::after{
	animation-play-state: running;
	opacity: var(--phs-drift-opacity, .16);
}

.phs-drift-off .premium-slide-overlay::after{
	display: none;
}

/* =====================================================================
   6. CONTENT LAYOUT
   ===================================================================== */
.premium-slide-container{
	position: relative;
	z-index: 3;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 0 9%;
}

.premium-slide-content{
	max-width: var(--phs-content-width, 640px);
	width: 100%;
}

.premium-slide-eyebrow,
.premium-slide-description,
.premium-slide-meta,
.premium-slide-actions{
	opacity: 0;
	transform: translateY(28px);
}

.premium-slide-title{
	opacity: 0;
	transform: translateY(60px) scale(.97);
	filter: blur(8px);
}

.swiper-slide-active .premium-slide-eyebrow     { animation: phs-eyebrow-in  800ms var(--phs-ease) 200ms forwards; }
.swiper-slide-active .premium-slide-title       { animation: phs-title-in    900ms var(--phs-ease) 350ms forwards; }
.swiper-slide-active .premium-slide-description { animation: phs-desc-in     800ms var(--phs-ease) 550ms forwards; }
.swiper-slide-active .premium-slide-meta        { animation: phs-meta-in     700ms var(--phs-ease) 700ms forwards; }
.swiper-slide-active .premium-slide-actions     { animation: phs-actions-in  700ms var(--phs-ease) 850ms forwards; }

/* =====================================================================
   7. TYPOGRAPHY
   ===================================================================== */
.premium-slide-eyebrow{
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--phs-font-ui);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--phs-accent);
	margin-bottom: 22px;
}

.premium-slide-eyebrow::before{
	content: "";
	display: block;
	flex: 0 0 auto;
	width: 34px;
	height: 1px;
	background-color: var(--phs-accent);
}

.premium-slide-title{
	font-family: var(--phs-font-display);
	font-weight: 470;
	font-size: clamp(46px, 6.4vw, 96px);
	line-height: 1.02;
	letter-spacing: -.01em;
	color: var(--phs-text);
	margin-bottom: 26px;
}

.premium-slide-description{
	font-family: var(--phs-font-ui);
	font-weight: 400;
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.6;
	color: var(--phs-text-dim);
	max-width: 480px;
	margin-bottom: 30px;
}

.premium-slide-meta{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--phs-text-faint);
	margin-bottom: 40px;
}

.premium-slide-meta-item{
	display: inline-flex;
	align-items: center;
}

.premium-slide-meta-item + .premium-slide-meta-item::before{
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin-right: 12px;
	background-color: var(--phs-line);
	border-radius: 50%;
	vertical-align: middle;
}

/* =====================================================================
   8. BUTTONS
   ===================================================================== */
.premium-slide-actions{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
}

.premium-hero-slider .premium-button{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 54px;
	padding: 0 34px;
	font-family: var(--phs-font-ui);
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
	border: 1px solid transparent;
	text-decoration: none;
	transition:
		color var(--phs-speed) var(--phs-ease-soft),
		border-color 420ms var(--phs-ease-soft),
		background-color 420ms var(--phs-ease-soft),
		transform 420ms var(--phs-ease-soft);
}

.premium-hero-slider .premium-button:hover,
.premium-hero-slider .premium-button:focus-visible{
	transform: translateY(-2px);
}

.premium-hero-slider .premium-button::after{
	content: var(--phs-btn-arrow, "→");
	display: none;
	font-size: 14px;
	line-height: 1;
	transition: transform 420ms var(--phs-ease-soft);
}

.premium-hero-slider.phs-has-arrow .premium-button::after{
	display: inline-block;
}

.premium-hero-slider .premium-button:hover::after,
.premium-hero-slider .premium-button:focus-visible::after{
	transform: translateX(4px);
}

.premium-hero-slider .premium-button-primary{
	color: var(--phs-primary-color, #111111);
	background-color: var(--phs-primary-bg, #ffffff);
	border-color: var(--phs-primary-border, transparent);
	overflow: hidden;
	z-index: 0;
}

.premium-hero-slider .premium-button-primary::before{
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: var(--phs-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 480ms var(--phs-ease-soft);
}

.premium-hero-slider .premium-button-primary:hover::before,
.premium-hero-slider .premium-button-primary:focus-visible::before{
	transform: scaleX(1);
}

.premium-hero-slider .premium-button-secondary{
	color: var(--phs-secondary-color, #f6f4ef);
	background-color: var(--phs-secondary-bg, transparent);
	border-color: var(--phs-secondary-border, rgba(246,244,239,.32));
}

.premium-hero-slider .premium-button-secondary:hover,
.premium-hero-slider .premium-button-secondary:focus-visible{
	border-color: var(--phs-text);
	background-color: rgba(246,244,239,.06);
}

.premium-hero-slider .premium-button:focus-visible{
	outline: 2px solid var(--phs-accent);
	outline-offset: 3px;
}

.premium-button-label{
	position: relative;
	z-index: 1;
	display: inline-block;
}

/* =====================================================================
   9. NAVIGATION (desktop / tablet)
   ===================================================================== */
.premium-hero-slider .premium-slider-prev,
.premium-hero-slider .premium-slider-next{
	position: absolute;
	top: 50%;
	z-index: 6;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	min-width: 44px;
	min-height: 44px;
	border-radius: 50%;
	border: 1px solid var(--phs-line-soft);
	border-style: solid;
	color: var(--phs-text);
	background-color: rgba(6,6,5,.32);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	transform: translateY(-50%);
	cursor: pointer;
	transition:
		color 380ms var(--phs-ease-soft),
		border-color 380ms var(--phs-ease-soft),
		background-color 380ms var(--phs-ease-soft),
		transform 380ms var(--phs-ease-soft);
}

.premium-hero-slider .premium-slider-prev{ left: 46px; }
.premium-hero-slider .premium-slider-next{ right: 46px; }

.premium-hero-slider .premium-slider-prev svg,
.premium-hero-slider .premium-slider-next svg,
.premium-hero-slider .premium-slider-prev i,
.premium-hero-slider .premium-slider-next i{
	width: 18px;
	height: 18px;
	font-size: 18px;
	display: block;
	transition: transform 380ms var(--phs-ease-soft);
}

.premium-hero-slider .premium-slider-prev:hover,
.premium-hero-slider .premium-slider-next:hover{
	color: #0b0a08;
	border-color: var(--phs-accent);
	background-color: var(--phs-accent);
}

.premium-hero-slider .premium-slider-prev:hover svg,
.premium-hero-slider .premium-slider-prev:focus-visible svg{ transform: translateX(-3px); }
.premium-hero-slider .premium-slider-next:hover svg,
.premium-hero-slider .premium-slider-next:focus-visible svg{ transform: translateX(3px); }

.premium-hero-slider .premium-slider-prev:focus-visible,
.premium-hero-slider .premium-slider-next:focus-visible{
	outline: 2px solid var(--phs-accent);
	outline-offset: 3px;
}

.premium-hero-slider .premium-slider-prev.swiper-button-disabled,
.premium-hero-slider .premium-slider-next.swiper-button-disabled{
	opacity: .35;
	pointer-events: none;
}

/* =====================================================================
   10. PAGINATION (desktop / tablet)
   ===================================================================== */
.premium-slider-pagination{
	position: absolute;
	right: 46px;
	bottom: 56px;
	z-index: 6;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 14px;
}

.premium-pagination-bullet{
	display: flex;
	align-items: center;
	gap: 12px;
	opacity: .5;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	transition: opacity 380ms var(--phs-ease-soft);
}
.premium-pagination-bullet:hover,
.premium-pagination-bullet:focus-visible{ opacity: .85; }
.premium-pagination-bullet.is-active{ opacity: 1; }

.premium-pagination-number{
	font-family: var(--phs-font-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--phs-text-faint);
	transition: color 380ms var(--phs-ease-soft);
}

.premium-pagination-bullet.is-active .premium-pagination-number{
	color: var(--phs-text);
}

.premium-pagination-track{
	position: relative;
	display: block;
	width: 34px;
	height: 2px;
	background-color: var(--phs-line-soft);
	overflow: hidden;
}

.premium-pagination-fill{
	position: absolute;
	inset: 0;
	transform-origin: left center;
	transform: scaleX(0);
	background-color: var(--phs-accent);
}

.premium-pagination-bullet.is-active .premium-pagination-fill{
	animation-name: phs-pagination-fill;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
}

.premium-slider-pagination.is-paused .premium-pagination-bullet.is-active .premium-pagination-fill{
	animation-play-state: paused;
}

.premium-slider-pagination[data-pagination-type="bullets"]{
	flex-direction: row;
	align-items: center;
}

.premium-pagination-dot{
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--phs-line-soft);
	padding: 0;
	border: 0;
	cursor: pointer;
	transition:
		background-color 380ms var(--phs-ease-soft),
		transform 380ms var(--phs-ease-soft);
}
.premium-pagination-dot.is-active{
	background-color: var(--phs-accent);
	transform: scale(1.25);
}

.premium-slider-pagination[data-pagination-type="fraction"]{
	flex-direction: row;
	align-items: baseline;
}
.premium-pagination-fraction{
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-family: var(--phs-font-ui);
}
.premium-pagination-current{
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
	color: var(--phs-text);
}
.premium-pagination-sep{
	font-size: 14px;
	color: var(--phs-text-faint);
}
.premium-pagination-total{
	font-size: 12px;
	color: var(--phs-text-faint);
}

/* =====================================================================
   11. SCROLL INDICATOR
   ===================================================================== */
.premium-scroll-indicator{
	position: absolute;
	left: 46px;
	bottom: 56px;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--phs-text-faint);
}
.premium-scroll-indicator span{
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}
.premium-scroll-indicator-line{
	position: relative;
	width: 1px;
	height: 46px;
	background-color: var(--phs-line-soft);
	overflow: hidden;
}
.premium-scroll-indicator-line::after{
	content: "";
	position: absolute;
	left: 0;
	top: -100%;
	width: 100%;
	height: 100%;
	background-color: var(--phs-accent);
	animation: phs-scroll-travel 2.2s var(--phs-ease-soft) infinite;
}

/* =====================================================================
   12. ANIMATIONS
   ===================================================================== */
@keyframes phs-eyebrow-in{
	from{ opacity: 0; transform: translateY(25px); }
	to  { opacity: 1; transform: translateY(0); }
}
@keyframes phs-title-in{
	from{ opacity: 0; transform: translateY(60px) scale(.97); filter: blur(8px); }
	to  { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes phs-desc-in{
	from{ opacity: 0; transform: translateY(30px); }
	to  { opacity: 1; transform: translateY(0); }
}
@keyframes phs-meta-in{
	from{ opacity: 0; transform: translateY(20px); }
	to  { opacity: 1; transform: translateY(0); }
}
@keyframes phs-actions-in{
	from{ opacity: 0; transform: translateY(25px); }
	to  { opacity: 1; transform: translateY(0); }
}

@keyframes phs-kenburns-1{
	from{ transform: scale(var(--phs-kb-scale-start, 1.02)) translate3d(0,0,0); }
	to  { transform: scale(var(--phs-kb-scale-end, 1.12)) translate3d(calc(var(--phs-kb-move, 1.4%) * -1), calc(var(--phs-kb-move, 1.4%) * -1), 0); }
}
@keyframes phs-kenburns-2{
	from{ transform: scale(var(--phs-kb-scale-start, 1.02)) translate3d(0,0,0); }
	to  { transform: scale(var(--phs-kb-scale-end, 1.12)) translate3d(var(--phs-kb-move, 1.4%), var(--phs-kb-move, 1.4%), 0); }
}
@keyframes phs-kenburns-3{
	from{ transform: scale(var(--phs-kb-scale-start, 1.02)) translate3d(0,0,0); }
	to  { transform: scale(var(--phs-kb-scale-end, 1.12)) translate3d(calc(var(--phs-kb-move, 1.4%) * -1), var(--phs-kb-move, 1.4%), 0); }
}
@keyframes phs-kenburns-4{
	from{ transform: scale(var(--phs-kb-scale-start, 1.02)) translate3d(0,0,0); }
	to  { transform: scale(var(--phs-kb-scale-end, 1.12)) translate3d(var(--phs-kb-move, 1.4%), calc(var(--phs-kb-move, 1.4%) * -1), 0); }
}

@keyframes phs-light-drift{
	0%   { background-position: 18% 24%; }
	50%  { background-position: 30% 34%; }
	100% { background-position: 18% 24%; }
}
@keyframes phs-pagination-fill{
	from{ transform: scaleX(0); }
	to  { transform: scaleX(1); }
}
@keyframes phs-scroll-travel{
	0%  { top: -100%; }
	60% { top: 100%; }
	100%{ top: 100%; }
}

/* =====================================================================
   13. RESPONSIVE — ULTRAWIDE
   ===================================================================== */
@media (min-width: 1920px){
	.premium-slide-container{
		max-width: 1800px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* =====================================================================
   14. RESPONSIVE — TABLET
   ===================================================================== */
@media (max-width: 1024px){
	.premium-slide-title{ font-size: clamp(42px, 7vw, 70px); }
}

/* =====================================================================
   15. RESPONSIVE — SMALL PHONES / SHORT LANDSCAPE
   ===================================================================== */
@media (max-width: 380px){
	.premium-slide-title{ font-size: clamp(32px, 9.5vw, 44px); }
	.premium-button{ height: 50px; padding: 0 24px; font-size: 12.5px; }
}

@media (max-height: 500px) and (orientation: landscape){
	.phs-height-fullscreen .premium-slider{ min-height: auto; }
	.premium-slide-title{ font-size: clamp(28px, 6vw, 42px); }
	.premium-slide-actions{ flex-direction: row; }
	.premium-button{ height: 42px; width: auto; }
	.premium-scroll-indicator{ display: none; }
	.premium-slide-container{ padding-bottom: 70px; }
}

/* =====================================================================
   16. REDUCED MOTION
   ===================================================================== */
@media (prefers-reduced-motion: reduce){
	.swiper-slide-active .premium-slide-eyebrow,
	.swiper-slide-active .premium-slide-title,
	.swiper-slide-active .premium-slide-description,
	.swiper-slide-active .premium-slide-meta,
	.swiper-slide-active .premium-slide-actions{
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}
	.swiper-slide-active .premium-background-image,
	.premium-background-image{
		animation: none !important;
		transform: scale(1) !important;
	}
	.premium-slide-overlay::after{ animation: none !important; opacity: 0 !important; }
	.premium-pagination-fill{ animation: none !important; transform: scaleX(1) !important; }
	.premium-scroll-indicator-line::after{ animation: none !important; }
	.premium-button-primary::before{ transition: none !important; }
	.premium-button{ transition: color 200ms linear, border-color 200ms linear, background-color 200ms linear !important; }
	.premium-button:hover,
	.premium-button:focus-visible{ transform: none !important; }
	.premium-button::after{ transition: none !important; }
	.premium-button:hover::after,
	.premium-button:focus-visible::after{ transform: none !important; }
	.premium-background-video,
	.premium-background-youtube iframe{ transition: none !important; }
}

/* =====================================================================
   17. ELEMENTOR EDITOR HELPERS
   ===================================================================== */
.elementor-editor-active .premium-hero-slider .swiper-slide:not(.swiper-slide-active) .premium-slide-eyebrow,
.elementor-editor-active .premium-hero-slider .swiper-slide:not(.swiper-slide-active) .premium-slide-title,
.elementor-editor-active .premium-hero-slider .swiper-slide:not(.swiper-slide-active) .premium-slide-description,
.elementor-editor-active .premium-hero-slider .swiper-slide:not(.swiper-slide-active) .premium-slide-meta,
.elementor-editor-active .premium-hero-slider .swiper-slide:not(.swiper-slide-active) .premium-slide-actions{
	opacity: 1;
	transform: none;
	filter: none;
}

/* =====================================================================
   18. MOBILE — SURGICAL FIX (bulletproof revision)
   =====================================================================
   Every rule uses high specificity (`body .a .b .c`) + `!important` so
   it outranks Elementor's own frontend resets, theme globals, and any
   `button { all: unset }` type reset that may be present.

   Scope: strictly @media (max-width: 767px). Desktop and tablet are
   not affected.
   ===================================================================== */
@media (max-width: 767px){

	/* ---------------------------------------------------------------
	   A. HIDE NAVIGATION ARROWS — total removal from layout & paint
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slider-prev,
	body .premium-hero-slider .premium-slider-next,
	body .premium-hero-slider .elementor-swiper-button-prev,
	body .premium-hero-slider .elementor-swiper-button-next,
	body .premium-hero-slider button.premium-slider-prev,
	body .premium-hero-slider button.premium-slider-next{
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		position: absolute !important;
		left: -9999px !important;
		top: -9999px !important;
		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;
		max-width: 0 !important;
		max-height: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		border: 0 !important;
		overflow: hidden !important;
		clip-path: inset(50%) !important;
	}

	/* ---------------------------------------------------------------
	   B. FULL-HEIGHT CHAIN (mode-independent)
	   ------------------------------------------------------------- */
	body .premium-hero-slider{
		height: 100vh !important;
		height: 100svh !important;
		min-height: 100vh !important;
		min-height: 100svh !important;
		max-height: none !important;
		overflow: hidden !important;
	}

	body .premium-hero-slider .premium-slider,
	body .premium-hero-slider .swiper-wrapper,
	body .premium-hero-slider .premium-slide,
	body .premium-hero-slider .premium-slide-background{
		height: 100% !important;
		min-height: 100% !important;
		max-height: none !important;
	}

	body .premium-hero-slider .premium-slide-background{
		position: absolute !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100% !important;
		overflow: hidden !important;
	}

	/* ---------------------------------------------------------------
	   C. MEDIA COVER — every layer
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-background-image{
		position: absolute !important;
		inset: -5% !important;
		top: -5% !important;
		right: -5% !important;
		bottom: -5% !important;
		left: -5% !important;
		background-size: cover !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
	}

	body .premium-hero-slider .premium-background-video{
		position: absolute !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		min-width: 100% !important;
		min-height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		object-fit: cover !important;
		object-position: center center !important;
		display: block !important;
	}

	body .premium-hero-slider .premium-background-youtube{
		position: absolute !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		overflow: hidden !important;
		pointer-events: none !important;
	}

	body .premium-hero-slider .premium-background-youtube iframe{
		position: absolute !important;
		top: 50% !important;
		left: 50% !important;
		width: 177.78vh !important;
		width: 177.78svh !important;
		height: 100vh !important;
		height: 100svh !important;
		min-width: 100% !important;
		min-height: 56.25vw !important;
		max-width: none !important;
		max-height: none !important;
		transform: translate(-50%, -50%) !important;
		border: 0 !important;
		pointer-events: none !important;
	}

	/* ---------------------------------------------------------------
	   D. PAGINATION CONTAINER — force flex row, visible, centred
	   ---------------------------------------------------------------
	   `body .premium-hero-slider .premium-slider .premium-slider-pagination`
	   has specificity (0,3,1) with !important. It will outrank any
	   theme reset up to and including `.elementor-widget-container
	   .swiper-pagination { display: none !important }`.
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slider .premium-slider-pagination,
	body .premium-hero-slider .premium-slider .premium-slider-pagination.swiper-pagination{
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 10px !important;

		position: absolute !important;
		left: 50% !important;
		right: auto !important;
		top: auto !important;
		bottom: 22px !important;
		bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important;
		transform: translateX(-50%) !important;

		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
		min-height: 40px !important;
		max-width: calc(100vw - 32px) !important;
		max-height: none !important;

		margin: 0 !important;
		padding: 8px 12px !important;

		z-index: 99 !important;

		overflow: visible !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;

		background: transparent !important;
		border: 0 !important;
		list-style: none !important;
		text-align: center !important;
	}

	/* ---------------------------------------------------------------
	   E. PAGINATION DOTS — force each button to be a fixed round dot
	   ---------------------------------------------------------------
	   Applies to BOTH `.premium-pagination-bullet` (progress mode, the
	   default) and `.premium-pagination-dot` (bullets mode) because the
	   JS chooses one or the other based on the widget's Pagination
	   Style control. `> button` covers both at once.
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > .premium-pagination-bullet,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > .premium-pagination-dot{
		display: block !important;

		position: static !important;
		float: none !important;
		inset: auto !important;
		left: auto !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		transform: none !important;

		flex: 0 0 10px !important;
		order: initial !important;
		align-self: auto !important;

		width: 10px !important;
		height: 10px !important;
		min-width: 10px !important;
		min-height: 10px !important;
		max-width: 10px !important;
		max-height: 10px !important;

		margin: 0 !important;
		padding: 0 !important;

		border: 0 !important;
		border-radius: 50% !important;

		background-color: rgba(246, 244, 239, 0.42) !important;
		background-image: none !important;

		opacity: 1 !important;
		visibility: visible !important;

		overflow: hidden !important;
		text-indent: -9999px !important;
		font-size: 0 !important;
		line-height: 0 !important;
		color: transparent !important;

		box-shadow:
			0 0 0 1px rgba(0, 0, 0, 0.35),
			0 1px 4px rgba(0, 0, 0, 0.25) !important;

		cursor: pointer !important;
		pointer-events: auto !important;

		transition:
			background-color 300ms ease,
			transform 300ms ease,
			box-shadow 300ms ease !important;
	}

	body .premium-hero-slider .premium-slider .premium-slider-pagination > button:hover,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button:focus-visible{
		background-color: rgba(246, 244, 239, 0.75) !important;
	}

	body .premium-hero-slider .premium-slider .premium-slider-pagination > button.is-active,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > .is-active{
		background-color: #c9a24d !important;
		background-color: var(--phs-accent, #c9a24d) !important;
		transform: scale(1.35) !important;
		box-shadow:
			0 0 0 1px rgba(0, 0, 0, 0.4),
			0 0 10px rgba(201, 162, 77, 0.7) !important;
	}

	/* ---------------------------------------------------------------
	   F. KILL THE PROGRESS INTERNALS INSIDE EACH DOT
	   ---------------------------------------------------------------
	   In progress mode each button contains a number span and a track
	   span. Both must be removed from the layout, from paint, and from
	   any residual contribution to the button's box model. Setting
	   them to position:absolute; left:-9999px guarantees they cannot
	   influence the button's intrinsic size.
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button > span,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button .premium-pagination-number,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button .premium-pagination-track,
	body .premium-hero-slider .premium-slider .premium-slider-pagination > button .premium-pagination-fill{
		display: none !important;
		visibility: hidden !important;
		position: absolute !important;
		left: -9999px !important;
		top: -9999px !important;
		width: 0 !important;
		height: 0 !important;
		min-width: 0 !important;
		min-height: 0 !important;
		max-width: 0 !important;
		max-height: 0 !important;
		overflow: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		padding: 0 !important;
		margin: 0 !important;
		border: 0 !important;
	}

	/* ---------------------------------------------------------------
	   G. FRACTION MODE — untouched DOM, style kept as-is
	   ---------------------------------------------------------------
	   If the widget's Pagination Style is set to Fraction, the JS
	   builds a single `.premium-pagination-fraction` span rather than
	   dots. Restore normal rendering for that element only, so a user
	   who explicitly chose Fraction still sees the fraction.
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slider .premium-slider-pagination[data-pagination-type="fraction"] > .premium-pagination-fraction,
	body .premium-hero-slider .premium-slider .premium-slider-pagination[data-pagination-type="fraction"] > .premium-pagination-fraction > span{
		display: inline-block !important;
		visibility: visible !important;
		position: static !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
		min-height: 0 !important;
		max-width: none !important;
		max-height: none !important;
		overflow: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		font-size: inherit !important;
		line-height: 1 !important;
		color: inherit !important;
		text-indent: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
		padding: 0 !important;
		margin: 0 !important;
		transform: none !important;
	}

	/* ---------------------------------------------------------------
	   H. Mobile content spacing — preserves room for the dot row
	   ------------------------------------------------------------- */
	body .premium-hero-slider .premium-slide-container{
		padding-left: calc(6% + env(safe-area-inset-left, 0px)) !important;
		padding-right: calc(6% + env(safe-area-inset-right, 0px)) !important;
		padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)) !important;
	}

	body .premium-hero-slider .premium-scroll-indicator{
		display: none !important;
	}
}

/* =====================================================================
   END OF FILE
   ===================================================================== */