/* ==========================================================================
   Hair Studio – frontend
   All colours, fonts, sizes and timings come from CSS custom properties
   printed by the plugin (see Frontend::dynamic_css()).
   ========================================================================== */

/* ---------- Base (full-width template) ---------------------------------- */
body.hs-canvas {
	margin: 0;
	background: var(--hs-bg);
	color: var(--hs-text);
	font-family: var(--hs-font-body);
	font-size: var(--hs-fs);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
.hs-canvas *, .hs-canvas *::before, .hs-canvas *::after,
.hs-section *, .hs-section *::before, .hs-section *::after { box-sizing: border-box; }
.hs-canvas img, .hs-section img { max-width: 100%; height: auto; display: block; }
.hs-canvas a { color: var(--hs-primary); text-decoration: none; transition: color .25s; }
.hs-canvas a:hover { color: var(--hs-primary-hover); }
.hs-canvas :focus-visible { outline: 2px solid var(--hs-primary); outline-offset: 3px; }
.hs-canvas h1, .hs-canvas h2, .hs-canvas h3, .hs-canvas h4 { color: var(--hs-heading); line-height: 1.2; margin: 0 0 .6em; }
.hs-canvas p { margin: 0 0 1em; }
.hs-canvas ul { margin: 0; padding: 0; }
.hs-canvas figure { margin: 0; }
.hs-section ul { list-style: none; margin: 0; padding: 0; }
.hs-section figure, .hs-section blockquote { margin: 0; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.hs-skip {
	position: fixed; top: 8px; left: 8px; z-index: 1000; padding: .8em 1.2em;
	background: #fff; color: var(--hs-heading); transform: translateY(-200%); transition: transform .2s;
}
.hs-skip:focus { transform: none; }
.hs-anchor { display: block; height: 0; }
.hs-main { outline: 0; }
.hs-center { text-align: center; margin-top: 2.5rem; }
.hs-notice { max-width: 700px; margin: 3rem auto; padding: 1rem 1.25rem; background: var(--hs-accent-soft); border-left: 4px solid var(--hs-primary); }

.hs-container { width: 100%; max-width: calc(var(--hs-container) + 48px); margin-inline: auto; padding-inline: 24px; }
.hs-container--narrow { max-width: 900px; }

.hs-section { position: relative; padding-block: var(--hs-space); font-family: var(--hs-font-body); }
.hs-section__head { text-align: center; max-width: 720px; margin: 0 auto clamp(2rem, 5vw, 3.5rem); }
.hs-title {
	font-family: var(--hs-font-title); font-weight: 700; letter-spacing: -.01em;
	font-size: clamp(1.8rem, 3.6vw, 2.6rem); color: var(--hs-heading); margin: 0 0 .5em;
}
.hs-title--left { text-align: left; }
.hs-title--light { color: var(--hs-services-text); text-align: center; }
.hs-lead { font-size: 1.1em; margin: 0; }
.hs-eyebrow { font-family: var(--hs-font-heading); font-size: 1.15rem; letter-spacing: .04em; color: var(--hs-primary); margin: 0 0 .4rem; }

/* Regular editor content inside the canvas template */
.hs-content > :not(.hs-section):not(.hs-anchor):not(.wp-block-shortcode) { max-width: 820px; margin-inline: auto; padding-inline: 24px; }
.hs-content > :not(.hs-section):not(.hs-anchor):first-child { margin-top: var(--hs-space); }
.hs-content > :not(.hs-section):not(.hs-anchor):last-child { margin-bottom: var(--hs-space); }
.hs-content > p:empty { display: none; }
.hs-content--home > :first-child:not(.hs-hero) { margin-top: 0; }

/* ---------- Buttons ------------------------------------------------------ */
.hs-btn {
	--hs-btn-bg: var(--hs-primary);
	position: relative; isolation: isolate; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: .95em 2em; border: 1px solid var(--hs-btn-bg); border-radius: var(--hs-radius);
	background: var(--hs-btn-bg); color: #fff !important;
	font-family: var(--hs-font-heading); font-size: 1rem; line-height: 1.2; letter-spacing: .06em;
	text-transform: var(--hs-btn-transform); cursor: pointer;
	box-shadow: 0 10px 30px -10px rgba(var(--hs-primary-rgb), .6);
	transition: background-color .35s var(--hs-ease), color .35s, border-color .35s, transform .35s var(--hs-ease), box-shadow .35s var(--hs-ease);
	-webkit-tap-highlight-color: transparent;
}
.hs-btn .hs-icon { width: 1.1em; height: 1.1em; }
.hs-btn:hover { --hs-btn-bg: var(--hs-primary-hover); }
.hs-btn--sm { padding: .75em 1.4em; font-size: .92rem; }
.hs-btn--lg { padding: 1.1em 2.4em; font-size: 1.05rem; }
.hs-btn--ghost { background: transparent; color: var(--hs-primary) !important; box-shadow: none; }
.hs-btn--ghost:hover { background: var(--hs-primary); color: #fff !important; }

.hs-btn-style-outline .hs-btn:not(.hs-header__cta) { background: transparent; color: var(--hs-primary) !important; box-shadow: none; }
.hs-btn-style-outline .hs-hero .hs-btn, .hs-btn-style-outline .hs-cta--center .hs-btn { color: #fff !important; border-color: #fff; }
.hs-btn-style-outline .hs-btn:hover { background: var(--hs-primary); color: #fff !important; border-color: var(--hs-primary); }
.hs-btn-style-gradient .hs-btn { background: linear-gradient(120deg, var(--hs-primary), var(--hs-accent), var(--hs-primary)); background-size: 220% 100%; border: 0; }
.hs-btn-style-gradient .hs-btn:hover { background-position: 100% 0; }
.hs-btn-style-glass .hs-btn { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.hs-btn-style-glass .hs-header__bar .hs-btn, .hs-btn-style-glass .hs-section:not(.hs-hero):not(.hs-cta--center) .hs-btn { background: var(--hs-primary); }

/* Button hover effects */
.hs-btn-fx-lift .hs-btn:hover { transform: translateY(-3px); box-shadow: 0 18px 35px -12px rgba(var(--hs-primary-rgb), .75); }
.hs-btn-fx-shine .hs-btn::after {
	content: ""; position: absolute; inset: 0 auto 0 -75%; width: 50%; z-index: 1; pointer-events: none;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent);
	transform: skewX(-20deg); transition: left .8s var(--hs-ease);
}
.hs-btn-fx-shine .hs-btn:hover::after { left: 130%; }
.hs-btn-fx-fill .hs-btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: #fff;
	transform: scaleX(0); transform-origin: right; transition: transform .5s var(--hs-ease);
}
.hs-btn-fx-fill .hs-btn:hover::before { transform: scaleX(1); transform-origin: left; }
.hs-btn-fx-fill .hs-btn:hover { color: var(--hs-primary) !important; }
.hs-btn-fx-pulse .hs-btn { animation: hs-pulse 2.4s infinite; }
.hs-btn-fx-pulse .hs-btn:hover { animation: none; }
.hs-btn-fx-magnetic .hs-btn { transition: transform .25s ease-out, background-color .3s; }

.hs-link { display: inline-flex; align-items: center; gap: .4em; font-weight: 700; color: inherit !important; }
.hs-link .hs-icon { width: 1.1em; transition: transform .3s var(--hs-ease); }
.hs-link:hover .hs-icon { transform: translateX(4px); }

/* ---------- Header ------------------------------------------------------ */
.hs-header {
	position: relative; z-index: 100; width: 100%;
	font-family: var(--hs-font-heading); color: var(--hs-heading); background: #fff;
	transition: transform .45s var(--hs-ease), background-color .4s, box-shadow .4s;
}
.hs-header--sticky { position: sticky; top: 0; }
.admin-bar .hs-header--sticky { top: var(--wp-admin--admin-bar--height, 32px); }
.hs-header-over .hs-header { position: fixed; left: 0; right: 0; top: 0; background: transparent; color: #fff; }
.hs-header-over.admin-bar .hs-header { top: var(--wp-admin--admin-bar--height, 32px); }
.hs-header-over .hs-header:not(.hs-header--sticky) { position: absolute; }
.hs-header.is-scrolled, .hs-header-over .hs-header.is-scrolled { background: rgba(255, 255, 255, .96); color: var(--hs-heading); box-shadow: 0 10px 40px -20px rgba(0, 0, 0, .35); }
.hs-header--blur.is-scrolled { background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.hs-header.is-hidden { transform: translateY(-100%); }
.hs-nav-open .hs-header { transform: none !important; }

.hs-topbar { font-size: .88rem; letter-spacing: .02em; overflow: hidden; max-height: 60px; transition: max-height .4s var(--hs-ease), opacity .3s; }
.hs-topbar__inner { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 1rem; }
.hs-header-over .hs-header:not(.is-scrolled) .hs-topbar { color: rgba(255, 255, 255, .85); }
.hs-header.is-scrolled .hs-topbar { max-height: 0; opacity: 0; }
.hs-clock { font-variant-numeric: tabular-nums; }

.hs-socials { display: flex; gap: .35rem; list-style: none; margin: 0; padding: 0; }
.hs-socials a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: inherit !important; opacity: .8; transition: opacity .25s, background-color .25s, transform .3s var(--hs-ease); }
.hs-socials a:hover { opacity: 1; background: rgba(var(--hs-accent-rgb), .35); transform: translateY(-2px); }
.hs-socials .hs-icon { width: 18px; height: 18px; }

.hs-header__inner { display: flex; align-items: center; gap: 2rem; min-height: 96px; transition: min-height .4s var(--hs-ease); }
.hs-header.is-scrolled.is-shrink .hs-header__inner { min-height: 72px; }
.hs-logo { flex: 0 0 auto; display: block; }
.hs-logo img { width: var(--hs-logo-w); height: auto; transition: width .4s var(--hs-ease); filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .12)); }
.hs-header.is-scrolled.is-shrink .hs-logo img { width: calc(var(--hs-logo-w) * .75); }

.hs-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.hs-nav__list { display: flex; align-items: center; gap: clamp(1.2rem, 3vw, 3.5rem); list-style: none; margin: 0; padding: 0; }
.hs-nav__list li { position: relative; }
.hs-nav__list a { position: relative; display: inline-block; padding: .4em 0; color: inherit !important; font-size: 1.12rem; letter-spacing: .02em; }
.hs-nav__list .sub-menu { position: absolute; top: 100%; left: 50%; min-width: 220px; padding: .6rem 0; list-style: none; background: #fff; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .3); opacity: 0; visibility: hidden; transform: translate(-50%, 10px); transition: .3s var(--hs-ease); }
.hs-nav__list li:hover > .sub-menu, .hs-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.hs-nav__list .sub-menu a { display: block; padding: .5em 1.2em; color: var(--hs-heading) !important; font-size: 1rem; }

/* Menu link effects */
.hs-link-fx-slide .hs-nav__list > li > a::after,
.hs-link-fx-center .hs-nav__list > li > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: currentColor;
	transform: scaleX(0); transform-origin: right; transition: transform .45s var(--hs-ease);
}
.hs-link-fx-center .hs-nav__list > li > a::after { transform-origin: center; }
.hs-link-fx-slide .hs-nav__list > li > a:hover::after,
.hs-link-fx-center .hs-nav__list > li > a:hover::after,
.hs-nav__list > .current-menu-item > a::after,
.hs-nav__list > .current_page_item > a::after { transform: scaleX(1); transform-origin: left; }
.hs-link-fx-fade .hs-nav__list a:hover { color: var(--hs-primary) !important; }
.hs-link-fx-none .hs-nav__list > .current-menu-item > a::after { display: none; }

.hs-header__actions { display: flex; align-items: center; gap: .75rem; margin-left: auto; }
.hs-header__cta { font-size: .95rem; letter-spacing: .02em; text-transform: none; }

.hs-burger { display: none; position: relative; z-index: 95; width: 46px; height: 46px; align-items: center; justify-content: center; border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0; }
.hs-burger__box { position: relative; width: 26px; height: 18px; }
.hs-burger__box span { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; border-radius: 2px; transition: transform .4s var(--hs-ease), opacity .3s, top .4s var(--hs-ease); }
.hs-burger__box span:nth-child(1) { top: 0; }
.hs-burger__box span:nth-child(2) { top: 8px; }
.hs-burger__box span:nth-child(3) { top: 16px; }
.hs-nav-open .hs-burger { color: var(--hs-heading); }
.hs-nav-open .hs-burger__box span:nth-child(1) { top: 8px; transform: rotate(45deg); }
.hs-nav-open .hs-burger__box span:nth-child(2) { opacity: 0; }
.hs-nav-open .hs-burger__box span:nth-child(3) { top: 8px; transform: rotate(-45deg); }
.hs-nav-open { overflow: hidden; }

/* ---------- Hero -------------------------------------------------------- */
.hs-hero {
	display: flex; align-items: center; min-height: max(var(--hs-hero-h), 560px);
	padding-block: 170px 120px; color: #fff; overflow: hidden; isolation: isolate;
	background: var(--hs-accent);
}
.hs-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hs-hero__img { width: 100%; height: 100% !important; object-fit: cover; will-change: transform; }
.hs-hero__overlay { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hs-hero--ov-top .hs-hero__overlay { background: linear-gradient(180deg, rgba(var(--hs-overlay-rgb), var(--hs-overlay-op)) 0%, rgba(var(--hs-overlay-rgb), 0) 45%); }
.hs-hero--ov-bottom .hs-hero__overlay { background: linear-gradient(0deg, rgba(var(--hs-overlay-rgb), var(--hs-overlay-op)) 0%, rgba(var(--hs-overlay-rgb), 0) 60%); }
.hs-hero--ov-full .hs-hero__overlay { background: rgba(var(--hs-overlay-rgb), var(--hs-overlay-op)); }
.hs-hero__inner { position: relative; text-align: center; will-change: opacity, transform; }
.hs-hero--left .hs-hero__inner { text-align: left; }
.hs-hero__title {
	margin: 0 auto .5em; max-width: 1100px; color: #fff !important; text-wrap: balance;
	font-family: var(--hs-font-heading); font-weight: 400; letter-spacing: .01em; line-height: 1.08;
	font-size: clamp(2.4rem, 7vw, var(--hs-hero-fs));
	text-shadow: 0 2px 30px rgba(0, 0, 0, .25);
}
.hs-hero--left .hs-hero__title { margin-left: 0; }
.hs-hero__subtitle { max-width: 38rem; margin: 0 auto 2rem; font-size: 1.2rem; opacity: .9; }
.hs-hero--left .hs-hero__subtitle { margin-left: 0; }
.hs-hero__actions { margin-top: 1.5rem; }

/* Highlight effects */
.hs-hl { color: var(--hs-accent); }
.hs-hl--shimmer .hs-hl {
	background: linear-gradient(100deg, #fff 0%, var(--hs-accent) 25%, #fff 50%, var(--hs-accent) 75%, #fff 100%);
	background-size: 200% auto; -webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent; animation: hs-shimmer 6s linear infinite;
}
.hs-hl--shimmer .hs-hl:has(.hs-split) { background: none; -webkit-text-fill-color: currentColor; animation: none; }
.hs-hl--shimmer .hs-hl .hs-split {
	background: linear-gradient(100deg, #fff 0%, var(--hs-accent) 30%, #fff 60%, var(--hs-accent) 100%);
	background-size: 300% auto; -webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
	animation: hs-shimmer 5s linear infinite; animation-delay: calc(var(--hs-si, 0) * -.35s);
}
.hs-hl--underline .hs-hl {
	color: #fff; background: linear-gradient(var(--hs-accent), var(--hs-accent)) no-repeat 0 92% / 0 .12em;
	animation: hs-underline 1.2s var(--hs-ease) 1.2s forwards;
}
.hs-hl--script .hs-hl { font-family: var(--hs-font-script); color: var(--hs-accent); font-size: 1.15em; letter-spacing: 0; text-transform: none; }

/* Background effects */
.hs-hero--bg-zoom-out .hs-hero__img { transform: scale(1.15); transition: transform 2.8s var(--hs-ease); }
.hs-hero--bg-zoom-out.is-loaded .hs-hero__img { transform: scale(1); }
.hs-hero--bg-kenburns .hs-hero__img { animation: hs-kenburns 22s ease-in-out infinite alternate; }
.hs-hero--bg-parallax .hs-hero__img { height: 120% !important; margin-top: -10%; }

/* Scroll hint */
.hs-scroll-hint { position: absolute; left: 50%; bottom: 96px; width: 26px; height: 42px; margin-left: -13px; border: 2px solid rgba(255, 255, 255, .8); border-radius: 14px; }
.hs-scroll-hint::before { content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: hs-scroll 1.8s ease-in-out infinite; }

/* ---------- Info bar ---------------------------------------------------- */
.hs-section.hs-infobar { position: relative; z-index: 5; margin-top: -60px; padding-block: 0; font-family: var(--hs-font-title); }
.hs-infobar__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); background: #fff; box-shadow: 0 25px 60px -25px rgba(0, 0, 0, .25); border-radius: var(--hs-img-radius); list-style: none; margin: 0; padding: 0; }
.hs-infobar__item + .hs-infobar__item { border-left: 1px solid rgba(0, 0, 0, .06); }
.hs-infobar__link { display: flex; align-items: center; gap: 1rem; height: 100%; padding: 1.6rem 1.8rem; color: #555 !important; transition: background-color .3s; }
a.hs-infobar__link:hover { background: var(--hs-accent-soft); }
.hs-infobar__icon { flex: 0 0 auto; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--hs-accent-soft); color: var(--hs-primary); transition: transform .5s var(--hs-ease), background-color .3s, color .3s; }
a.hs-infobar__link:hover .hs-infobar__icon { transform: rotate(-12deg) scale(1.08); background: var(--hs-primary); color: #fff; }
.hs-infobar__icon .hs-icon { width: 24px; height: 24px; }
.hs-infobar__text { display: flex; flex-direction: column; line-height: 1.35; font-size: .95rem; }
.hs-infobar__label { color: #8a8385; font-size: .88rem; }
.hs-infobar__value { color: var(--hs-heading); font-weight: 500; }

/* ---------- Services ---------------------------------------------------- */
.hs-services { background: var(--hs-services-bg); color: var(--hs-services-text); overflow: hidden; isolation: isolate; }
.hs-infobar + .hs-services, .hs-anchor + .hs-infobar + .hs-services { margin-top: -60px; padding-top: calc(var(--hs-space) + 60px); }
.hs-bgslider { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.hs-bgslider__slide { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 1.6s ease, transform 1.6s var(--hs-ease); }
.hs-bgslider__slide.is-active { opacity: 1; }
.hs-bgslider--kenburns .hs-bgslider__slide.is-active { animation: hs-kenburns var(--hs-slide-dur) linear both; }
.hs-bgslider--slide .hs-bgslider__slide { opacity: 1; transform: translateX(100%); }
.hs-bgslider--slide .hs-bgslider__slide.is-active { transform: none; }
.hs-bgslider--slide .hs-bgslider__slide.is-leaving { transform: translateX(-100%); }

.hs-services__list { display: grid; gap: clamp(3rem, 8vw, 7rem); }
.hs-service { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.hs-services--alternate .hs-service:nth-child(even) .hs-service__media { order: 2; }
.hs-service__media { position: relative; max-width: 440px; width: 100%; justify-self: center; overflow: hidden; border-radius: var(--hs-img-radius); box-shadow: 0 40px 70px -35px rgba(80, 20, 30, .45); }
.hs-service__img { aspect-ratio: 4 / 5; will-change: transform; }
.hs-service__img img { width: 100%; height: 100% !important; object-fit: cover; }
.hs-service__body { text-align: center; max-width: 470px; justify-self: center; }
.hs-service__title {
	color: var(--hs-services-text) !important; font-family: var(--hs-font-title); font-weight: 700;
	font-size: clamp(1.7rem, 3vw, 2.2rem); letter-spacing: .02em; text-transform: uppercase; margin-bottom: .9em;
	text-shadow: 0 2px 20px rgba(150, 40, 60, .15);
}
.hs-service__text { font-family: var(--hs-font-title); font-size: 1.02rem; line-height: 1.8; text-shadow: 0 1px 14px rgba(150, 50, 70, .35); }
.hs-service__text p:last-child { margin: 0; }
.hs-service__price { margin-top: 1.2rem; font-family: var(--hs-font-heading); font-size: 1.3rem; }
.hs-service .hs-link { margin-top: 1rem; }

.hs-services--cards .hs-services__list { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem; }
.hs-services--cards .hs-service { grid-template-columns: 1fr; gap: 1.5rem; }
.hs-services--cards .hs-service__media { order: 0 !important; }

/* ---------- Brands ------------------------------------------------------ */
.hs-brands { background: #fff; overflow: hidden; }
.hs-brands__list { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 1.5rem 0 2.5rem; }
.hs-brand { flex: 0 0 auto; width: 230px; }
.hs-brand__card {
	position: relative; display: grid; place-items: center; height: 150px; overflow: hidden;
	background: #fff; border-radius: var(--hs-img-radius); color: var(--hs-heading) !important;
	box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .35); transition: transform .5s var(--hs-ease), box-shadow .5s var(--hs-ease);
}
.hs-brand__card:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -25px rgba(0, 0, 0, .4); }
.hs-brand__logo, .hs-brand__hover { position: absolute; inset: 0; display: grid; place-items: center; padding: 1.4rem; transition: transform .6s var(--hs-ease), opacity .5s; }
.hs-brand__logo img { max-height: 90px; width: auto; }
.hs-brand__hover { background: linear-gradient(0deg, rgba(var(--hs-accent-rgb), .55), #fff 70%); }
.hs-brand__hover img { max-height: 110px; width: auto; }
.hs-brand__name { font-family: var(--hs-font-heading); font-size: 1.4rem; }
.hs-brands--gray .hs-brand__logo img { filter: grayscale(1); opacity: .75; transition: filter .4s, opacity .4s; }
.hs-brands--gray .hs-brand__card:hover .hs-brand__logo img { filter: none; opacity: 1; }

.hs-brands--hover-reveal .hs-brand__hover { transform: translateY(100%); }
.hs-brands--hover-reveal .hs-brand__card:hover .hs-brand__hover { transform: none; }
.hs-brands--hover-reveal .hs-brand__card:hover .hs-brand__logo { transform: translateY(-30%); opacity: 0; }
.hs-brands--hover-fade .hs-brand__hover { opacity: 0; }
.hs-brands--hover-fade .hs-brand__card:hover .hs-brand__hover { opacity: 1; }
.hs-brands--hover-flip .hs-brand__card { perspective: 800px; overflow: visible; background: transparent; box-shadow: none; }
.hs-brands--hover-flip .hs-brand__logo, .hs-brands--hover-flip .hs-brand__hover { background: #fff; box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .35); backface-visibility: hidden; border-radius: inherit; }
.hs-brands--hover-flip .hs-brand__hover { transform: rotateY(180deg); }
.hs-brands--hover-flip .hs-brand__card:hover .hs-brand__logo { transform: rotateY(-180deg); }
.hs-brands--hover-flip .hs-brand__card:hover .hs-brand__hover { transform: rotateY(0); }
.hs-brands--hover-none .hs-brand__hover { display: none; }

.hs-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.hs-marquee__track { display: flex; width: max-content; animation: hs-marquee var(--hs-marquee-dur) linear infinite; }
.hs-marquee__track .hs-brands__list { padding-right: 1.5rem; }
.hs-marquee.is-paused .hs-marquee__track { animation-play-state: paused; }
.hs-brands__grid { flex-wrap: wrap; justify-content: center; }

/* ---------- Carousel (shared) ------------------------------------------ */
.hs-carousel { position: relative; }
.hs-carousel__track { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; list-style: none; margin: 0; padding: 1rem .25rem 2rem; }
.hs-carousel__track::-webkit-scrollbar { display: none; }
.hs-carousel__track > li { scroll-snap-align: start; }
.hs-carousel__nav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: .5rem; }
.hs-carousel__prev, .hs-carousel__next { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 50%; background: #fff; color: var(--hs-heading); cursor: pointer; transition: background-color .3s, color .3s, transform .3s var(--hs-ease); }
.hs-carousel__prev .hs-icon { transform: rotate(180deg); }
.hs-carousel__prev:hover, .hs-carousel__next:hover { background: var(--hs-primary); color: #fff; border-color: var(--hs-primary); }
.hs-carousel__prev:disabled, .hs-carousel__next:disabled { opacity: .35; pointer-events: none; }
.hs-carousel__dots { display: flex; gap: .5rem; }
.hs-carousel__dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 10px; background: rgba(0, 0, 0, .15); cursor: pointer; transition: width .4s var(--hs-ease), background-color .3s; }
.hs-carousel__dots button[aria-current="true"] { width: 28px; background: var(--hs-primary); }

/* ---------- CTA --------------------------------------------------------- */
.hs-cta { background: linear-gradient(135deg, var(--hs-accent-soft), rgba(var(--hs-accent-rgb), .55)); overflow: hidden; isolation: isolate; }
.hs-cta__waves { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 45%; z-index: -1; pointer-events: none; }
.hs-wave--1 { fill: rgba(var(--hs-accent-rgb), .45); animation: hs-wave 14s ease-in-out infinite alternate; transform-origin: center bottom; }
.hs-wave--2 { fill: rgba(255, 255, 255, .55); animation: hs-wave 10s ease-in-out infinite alternate-reverse; transform-origin: center bottom; }
.hs-cta__inner { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.hs-cta__title { font-family: var(--hs-font-title); font-weight: 700; font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.12; color: var(--hs-heading); margin: 0 0 1.6rem; }
.hs-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
.hs-cta__phone { display: inline-flex; align-items: center; gap: .5em; font-family: var(--hs-font-heading); font-size: 1.2rem; color: var(--hs-heading) !important; }
.hs-cta__phone .hs-icon { width: 1.1em; color: var(--hs-primary); }
.hs-cta__media { position: relative; overflow: hidden; border-radius: var(--hs-img-radius); box-shadow: 0 40px 70px -35px rgba(80, 20, 30, .45); aspect-ratio: 4 / 5; max-width: 420px; justify-self: center; width: 100%; }
.hs-cta__media img { width: 100%; height: 100% !important; object-fit: cover; }
.hs-cta--center { color: #fff; text-align: center; padding-block: calc(var(--hs-space) * 1.2); }
.hs-cta--center .hs-cta__inner { grid-template-columns: 1fr; }
.hs-cta--center .hs-cta__title, .hs-cta--center .hs-cta__phone { color: #fff !important; }
.hs-cta--center .hs-eyebrow { color: var(--hs-accent); }
.hs-cta--center .hs-cta__actions { justify-content: center; }
.hs-cta__bg { position: absolute; inset: -10% 0; z-index: -2; }
.hs-cta__bg img { width: 100%; height: 100% !important; object-fit: cover; }
.hs-cta--center::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(40, 20, 25, .55); }

/* ---------- Reviews ----------------------------------------------------- */
.hs-reviews { background: var(--hs-bg); }
.hs-review { flex: 0 0 calc((100% - 3rem) / 3); min-width: 280px; }
.hs-review__card { position: relative; height: 100%; display: flex; flex-direction: column; padding: 2.2rem 2rem 1.8rem; background: #fff; border: 1px solid rgba(0, 0, 0, .06); border-radius: max(var(--hs-img-radius), 6px); box-shadow: 0 20px 45px -30px rgba(0, 0, 0, .3); transition: transform .5s var(--hs-ease), box-shadow .5s var(--hs-ease); }
.hs-review__card:hover { transform: translateY(-6px); box-shadow: 0 35px 55px -30px rgba(0, 0, 0, .35); }
.hs-review__card > .hs-icon--quote { position: absolute; top: 1.2rem; right: 1.4rem; width: 44px; height: 44px; color: var(--hs-accent); opacity: .5; }
.hs-review__stars { display: flex; gap: 2px; margin-bottom: 1rem; }
.hs-review__stars span { color: #ddd; }
.hs-review__stars span.is-on { color: #f5b301; }
.hs-review__stars .hs-icon { width: 18px; height: 18px; }
.hs-review__text { flex: 1; font-size: .98rem; font-style: italic; }
.hs-review__author { display: flex; align-items: center; gap: .8rem; margin-top: 1.2rem; line-height: 1.3; }
.hs-review__author small { display: block; color: #999; }
.hs-review__avatar { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--hs-accent-soft); color: var(--hs-primary); font-weight: 700; }

/* ---------- Gallery ----------------------------------------------------- */
.hs-gallery__grid { display: grid; grid-template-columns: repeat(var(--hs-cols, 3), minmax(0, 1fr)); gap: 14px; list-style: none; margin: 0; padding: 0; }
.hs-gallery__item { position: relative; overflow: hidden; border-radius: var(--hs-img-radius); background: var(--hs-accent-soft); }
.hs-gallery--grid .hs-gallery__item { aspect-ratio: 1; }
.hs-gallery--grid .hs-gallery__item img { width: 100%; height: 100% !important; object-fit: cover; }
.hs-gallery--masonry .hs-gallery__grid { display: block; columns: var(--hs-cols, 3) 220px; column-gap: 14px; }
.hs-gallery--masonry .hs-gallery__item { break-inside: avoid; margin-bottom: 14px; }
.hs-gallery__link { display: block; cursor: zoom-in; }
.hs-gallery__link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(var(--hs-primary-rgb), .45), transparent 60%); opacity: 0; transition: opacity .4s; }
.hs-gallery__link:hover::after { opacity: 1; }

/* ---------- Image hover effects (shared) -------------------------------- */
.hs-imgfx img { transition: transform 1s var(--hs-ease), filter .6s; }
.hs-img-fx-zoom .hs-imgfx:hover img { transform: scale(1.07); }
.hs-img-fx-lift .hs-imgfx { transition: transform .6s var(--hs-ease), box-shadow .6s var(--hs-ease); }
.hs-img-fx-lift .hs-imgfx:hover { transform: translateY(-8px); }
.hs-img-fx-grayscale .hs-imgfx img { filter: grayscale(1); }
.hs-img-fx-grayscale .hs-imgfx:hover img { filter: none; }
.hs-img-fx-tilt .hs-imgfx { transform-style: preserve-3d; transition: transform .25s ease-out; }

/* ---------- About ------------------------------------------------------- */
.hs-about__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.hs-about__media { position: relative; width: 100%; max-width: 460px; justify-self: center; }
.hs-about__media img { width: 100%; }
.hs-about__media img { position: relative; z-index: 1; border-radius: var(--hs-img-radius); aspect-ratio: 4 / 5; object-fit: cover; }
.hs-about__frame { position: absolute; inset: 24px -24px -24px 24px; border: 2px solid var(--hs-gold); border-radius: var(--hs-img-radius); z-index: 0; }
.hs-prose p { margin-bottom: 1.1em; }
.hs-signature { font-family: var(--hs-font-script); font-size: 2.6rem; color: var(--hs-primary); margin: .2em 0 0; line-height: 1.2; }
.hs-stats { display: flex; flex-wrap: wrap; gap: 2.5rem; margin-top: 2.5rem !important; }
.hs-stat { display: flex; flex-direction: column; }
.hs-stat__value { font-family: var(--hs-font-title); font-weight: 700; font-size: 2.6rem; line-height: 1; color: var(--hs-primary); font-variant-numeric: tabular-nums; }
.hs-stat__label { margin-top: .4rem; font-size: .92rem; }

/* ---------- Pricing ----------------------------------------------------- */
.hs-pricing__group + .hs-pricing__group { margin-top: 3.5rem; }
.hs-pricing__cat { font-family: var(--hs-font-heading); font-weight: 400; font-size: 1.9rem; color: var(--hs-primary) !important; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 1px solid rgba(var(--hs-accent-rgb), .7); }
.hs-pricing__catdesc { margin-top: -.5rem; color: #888; }
.hs-price { padding: 1rem 0; border-bottom: 1px dashed rgba(0, 0, 0, .08); transition: background-color .3s, padding .4s var(--hs-ease); }
.hs-price:hover { background: var(--hs-accent-soft); padding-inline: .8rem; }
.hs-price__row { display: flex; align-items: baseline; gap: .8rem; }
.hs-price__name { font-weight: 600; color: var(--hs-heading); }
.hs-price__dots { flex: 1; border-bottom: 2px dotted rgba(0, 0, 0, .18); transform: translateY(-4px); min-width: 20px; }
.hs-price__value { font-family: var(--hs-font-heading); font-size: 1.15rem; white-space: nowrap; color: var(--hs-heading); }
.hs-price__meta { display: inline-flex; align-items: center; gap: .3em; font-size: .85rem; color: #999; }
.hs-price__meta .hs-icon { width: 14px; height: 14px; }
.hs-pricing__note { margin-top: 2.5rem; font-size: .9rem; color: #888; text-align: center; }

/* ---------- Contact ----------------------------------------------------- */
.hs-contact { background: var(--hs-accent-soft); }
.hs-contact__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(2rem, 6vw, 5rem); align-items: stretch; }
.hs-contact__list li { display: flex; align-items: center; gap: .8rem; margin-bottom: .8rem; }
.hs-contact__list .hs-icon { width: 22px; color: var(--hs-primary); flex: 0 0 auto; }
.hs-contact__sub { font-family: var(--hs-font-heading); font-weight: 400; font-size: 1.4rem; margin-top: 2rem !important; }
.hs-contact__hours { margin-bottom: 2rem !important; }
.hs-contact__hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid rgba(0, 0, 0, .06); }
.hs-map { position: relative; min-height: 380px; overflow: hidden; border-radius: var(--hs-img-radius); background: #fff; box-shadow: 0 30px 60px -35px rgba(0, 0, 0, .35); }
.hs-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.hs-map__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; padding: 2rem; text-align: center; font-size: .9rem; }
.hs-map__placeholder > .hs-icon { width: 48px; height: 48px; color: var(--hs-primary); }

/* ---------- Page header ------------------------------------------------- */
.hs-pagehead { position: relative; display: flex; align-items: flex-end; min-height: 420px; padding: 190px 0 70px; color: #fff; overflow: hidden; isolation: isolate; background: var(--hs-accent); }
.hs-pagehead__media { position: absolute; inset: -15% 0; z-index: -2; }
.hs-pagehead__media img { width: 100%; height: 100% !important; object-fit: cover; object-position: center 20%; }
.hs-pagehead::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .1) 60%, rgba(var(--hs-accent-rgb), .45)); }
.hs-pagehead__title { color: #fff !important; font-family: var(--hs-font-heading); font-weight: 400; font-size: clamp(2.4rem, 6vw, 4.2rem); margin: 0; text-shadow: 0 2px 30px rgba(0, 0, 0, .3); }

/* ---------- Footer ------------------------------------------------------ */
.hs-footer { position: relative; color: var(--hs-footer-text); font-family: var(--hs-font-heading); background: var(--hs-accent) var(--hs-footer-bg) center / cover no-repeat; isolation: isolate; }
.hs-footer::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--hs-primary-rgb), .08), rgba(var(--hs-primary-rgb), .3)); }
.hs-footer a { color: inherit !important; }
.hs-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.hs-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 3rem; padding-block: 5rem 3rem; }
.hs-footer__logo img { width: 120px; margin-bottom: 1.2rem; filter: drop-shadow(0 6px 16px rgba(0, 0, 0, .12)); }
.hs-footer__title { color: inherit !important; font-family: var(--hs-font-heading); font-weight: 700; font-size: 1.2rem; letter-spacing: .04em; margin-bottom: 1.1rem !important; }
.hs-footer__address { font-style: normal; line-height: 1.9; }
.hs-footer__hours, .hs-footer__menu { list-style: none; margin: 0; padding: 0; line-height: 1.9; }
.hs-footer .hs-socials { margin-top: 1rem; }
.hs-footer .hs-socials a { background: rgba(255, 255, 255, .18); }
.hs-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .35); padding-block: 1.3rem; font-size: .9rem; }
.hs-footer__bottom p { margin: 0; }

/* ---------- Utilities: back to top, progress, preloader, lightbox ------- */
.hs-totop { position: fixed; right: 22px; bottom: 22px; z-index: 80; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--hs-primary); color: #fff !important; box-shadow: 0 10px 25px -8px rgba(var(--hs-primary-rgb), .7); opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity .4s, visibility .4s, transform .4s var(--hs-ease), background-color .3s; }
.hs-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.hs-totop:hover { background: var(--hs-primary-hover); transform: translateY(-3px); }
.hs-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200; pointer-events: none; }
.hs-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--hs-accent), var(--hs-primary)); transform: scaleX(0); transform-origin: left; }
.admin-bar .hs-progress { top: var(--wp-admin--admin-bar--height, 32px); }

.hs-preloader { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: #fff; transition: opacity .6s ease, visibility .6s; }
.hs-preloader.is-done { opacity: 0; visibility: hidden; }
.hs-preloader img { width: 120px; animation: hs-breathe 1.6s ease-in-out infinite; }
.hs-preloader__spinner { width: 46px; height: 46px; border: 3px solid var(--hs-accent-soft); border-top-color: var(--hs-primary); border-radius: 50%; animation: hs-spin .9s linear infinite; }
.hs-preloader .hs-icon--scissors { width: 64px; height: 64px; color: var(--hs-primary); animation: hs-snip .8s ease-in-out infinite alternate; }

.hs-lightbox { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; border: 0; background: rgba(20, 10, 14, .92); color: #fff; }
.hs-lightbox:not([open]) { display: none; }
.hs-lightbox::backdrop { background: transparent; }
.hs-lightbox__img { max-width: min(92vw, 1400px); max-height: 84vh; width: auto; height: auto; object-fit: contain; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); animation: hs-lb-in .45s var(--hs-ease); }
.hs-lightbox__cap { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; font-size: .95rem; opacity: .85; }
.hs-lightbox button { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; transition: background-color .3s; }
.hs-lightbox button:hover { background: rgba(255, 255, 255, .25); }
.hs-lightbox__close { top: 20px; right: 20px; }
.hs-lightbox__prev { left: 20px; top: 50%; margin-top: -26px; }
.hs-lightbox__prev .hs-icon { transform: rotate(180deg); }
.hs-lightbox__next { right: 20px; top: 50%; margin-top: -26px; }

.hs-page-leave { opacity: 0; transition: opacity .35s ease; }

/* ==========================================================================
   Scroll animations. Initial state is applied only when JS has confirmed
   animations are active (html.hs-anim-on), so content never stays hidden.
   ========================================================================== */
.hs-anim-on [data-hs-anim] {
	transition-property: opacity, transform, filter, clip-path;
	transition-duration: var(--hs-dur);
	transition-timing-function: var(--hs-ease);
	transition-delay: calc(var(--hs-delay) + var(--hs-i, 0) * var(--hs-stagger));
}
.hs-anim-on [data-hs-anim]:not(.is-in) { opacity: 0; }
.hs-anim-on [data-hs-anim="fade-up"]:not(.is-in) { transform: translate3d(0, var(--hs-dist), 0); }
.hs-anim-on [data-hs-anim="fade-down"]:not(.is-in) { transform: translate3d(0, calc(var(--hs-dist) * -1), 0); }
.hs-anim-on [data-hs-anim="fade-left"]:not(.is-in) { transform: translate3d(var(--hs-dist), 0, 0); }
.hs-anim-on [data-hs-anim="fade-right"]:not(.is-in) { transform: translate3d(calc(var(--hs-dist) * -1), 0, 0); }
.hs-anim-on [data-hs-anim="zoom-in"]:not(.is-in) { transform: scale(.85); }
.hs-anim-on [data-hs-anim="zoom-out"]:not(.is-in) { transform: scale(1.15); }
.hs-anim-on [data-hs-anim="flip-up"]:not(.is-in) { transform: perspective(900px) rotateX(35deg) translate3d(0, calc(var(--hs-dist) * .6), 0); transform-origin: 50% 100%; }
.hs-anim-on [data-hs-anim="flip-left"]:not(.is-in) { transform: perspective(900px) rotateY(-35deg); transform-origin: 0 50%; }
.hs-anim-on [data-hs-anim="blur"]:not(.is-in) { filter: blur(14px); transform: scale(1.04); }
.hs-anim-on [data-hs-anim="rotate"]:not(.is-in) { transform: rotate(-6deg) translate3d(0, var(--hs-dist), 0); transform-origin: 0 100%; }
.hs-anim-on [data-hs-anim="bounce"]:not(.is-in) { transform: translate3d(0, calc(var(--hs-dist) * 1.4), 0) scale(.92); }
.hs-anim-on [data-hs-anim="bounce"] { transition-timing-function: cubic-bezier(.34, 1.56, .64, 1); }
/* Reveal clips the children, not the observed element – a fully clipped target
   has no visible area and IntersectionObserver would never fire. */
.hs-anim-on [data-hs-anim^="reveal"]:not(.is-in) { opacity: 1; }
.hs-anim-on [data-hs-anim^="reveal"] > * { transition: clip-path calc(var(--hs-dur) * 1.4) var(--hs-ease); transition-delay: calc(var(--hs-delay) + var(--hs-i, 0) * var(--hs-stagger)); clip-path: inset(0 0 0 0); }
.hs-anim-on [data-hs-anim="reveal"]:not(.is-in) > * { clip-path: inset(0 100% 0 0); }
.hs-anim-on [data-hs-anim="reveal-up"]:not(.is-in) > * { clip-path: inset(100% 0 0 0); }
.hs-anim-on [data-hs-anim^="reveal"] img { transition: transform calc(var(--hs-dur) * 2) var(--hs-ease); }
.hs-anim-on [data-hs-anim^="reveal"]:not(.is-in) img { transform: scale(1.3); }

/* Hero title text effects (JS splits text into .hs-split units) */
.hs-split { display: inline-block; white-space: pre; will-change: transform, opacity; }
.hs-split-word { display: inline-block; white-space: nowrap; }
.hs-text-ready .hs-split { transition: opacity .8s var(--hs-ease), transform 1s var(--hs-ease), filter .9s var(--hs-ease); transition-delay: calc(var(--hs-delay) + 200ms + var(--hs-si, 0) * var(--hs-split-step, 80ms)); }
.hs-text-ready[data-hs-text="words"]:not(.is-in) .hs-split { opacity: 0; transform: translate3d(0, .6em, 0) rotate(3deg); }
.hs-text-ready[data-hs-text="letters"]:not(.is-in) .hs-split { opacity: 0; transform: translate3d(0, .5em, 0) scale(.6); }
.hs-text-ready[data-hs-text="letters"] { --hs-split-step: 35ms; }
.hs-text-ready[data-hs-text="blur"]:not(.is-in) .hs-split { opacity: 0; filter: blur(12px); }
.hs-text-ready[data-hs-text="mask"] .hs-split-word { overflow: hidden; vertical-align: bottom; padding-bottom: .08em; }
.hs-text-ready[data-hs-text="mask"]:not(.is-in) .hs-split { transform: translate3d(0, 110%, 0); }
.hs-text-ready[data-hs-text="fade"] { transition: opacity 1.4s var(--hs-ease), transform 1.4s var(--hs-ease); transition-delay: calc(var(--hs-delay) + 200ms); }
.hs-text-ready[data-hs-text="fade"]:not(.is-in) { opacity: 0; transform: translate3d(0, 20px, 0); }
.hs-text-ready[data-hs-text="typewriter"] .hs-split { transition: none; }
.hs-text-ready[data-hs-text="typewriter"] .hs-split:not(.is-typed) { opacity: 0; }
.hs-typing::after { content: ""; display: inline-block; width: .06em; height: .9em; margin-left: .06em; background: currentColor; vertical-align: -.05em; animation: hs-caret .8s steps(1) infinite; }

/* ---------- Keyframes --------------------------------------------------- */
@keyframes hs-shimmer { to { background-position: -200% center; } }
@keyframes hs-underline { to { background-size: 100% .12em; } }
@keyframes hs-kenburns { 0% { transform: scale(1) translate3d(0, 0, 0); } 100% { transform: scale(1.14) translate3d(-2%, -2%, 0); } }
@keyframes hs-scroll { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 80% { opacity: 0; transform: translateY(12px); } 100% { opacity: 0; } }
@keyframes hs-marquee { to { transform: translate3d(calc(-1 * var(--hs-mq-shift, 50%)), 0, 0); } }
@keyframes hs-wave { 0% { transform: scaleY(1) translateX(0); } 100% { transform: scaleY(1.25) translateX(-3%); } }
@keyframes hs-pulse { 0% { box-shadow: 0 0 0 0 rgba(var(--hs-primary-rgb), .55); } 70% { box-shadow: 0 0 0 16px rgba(var(--hs-primary-rgb), 0); } 100% { box-shadow: 0 0 0 0 rgba(var(--hs-primary-rgb), 0); } }
@keyframes hs-breathe { 50% { transform: scale(.9); opacity: .6; } }
@keyframes hs-spin { to { transform: rotate(360deg); } }
@keyframes hs-snip { to { transform: rotate(-25deg); } }
@keyframes hs-caret { 50% { opacity: 0; } }
@keyframes hs-lb-in { from { opacity: 0; transform: scale(.94); } }
@keyframes hs-menu-in { from { opacity: 0; transform: translateY(20px); } }

/* ---------- Responsive -------------------------------------------------- */
@media (max-width: 1100px) {
	.hs-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.hs-service, .hs-cta__inner, .hs-about__grid, .hs-contact__grid { grid-template-columns: 1fr; }
	.hs-services--alternate .hs-service:nth-child(even) .hs-service__media { order: 0; }
	.hs-service__media { max-width: 380px; }
	.hs-review { flex-basis: calc((100% - 1.5rem) / 2); }
	.hs-infobar__item:nth-child(odd) { border-left: 0; }
	.hs-infobar__item:nth-child(n+3) { border-top: 1px solid rgba(0, 0, 0, .06); }
	.hs-cta__media { max-width: 320px; }
	.hs-about__media { max-width: 360px; }
}
@media (max-width: 600px) {
	.hs-container { padding-inline: 16px; }
	.hs-header__inner { min-height: 76px; gap: 1rem; }
	.hs-topbar__inner { justify-content: center; }
	.hs-topbar__left { display: none; }
	.hs-hero { padding-block: 150px 110px; }
	.hs-section.hs-infobar { margin-top: -40px; }
	.hs-infobar__list { grid-template-columns: 1fr; }
	.hs-infobar__item + .hs-infobar__item { border-left: 0; border-top: 1px solid rgba(0, 0, 0, .06); }
	.hs-infobar__link { padding: 1.1rem 1.2rem; }
	.hs-review { flex-basis: 88%; min-width: 0; }
	.hs-brand { width: 180px; }
	.hs-brand__card { height: 130px; }
	.hs-gallery__grid { --hs-cols: 2; gap: 8px; }
	.hs-footer__grid { grid-template-columns: 1fr; gap: 2rem; padding-block: 3.5rem 2rem; }
	.hs-stats { gap: 1.5rem; }
	.hs-stat__value { font-size: 2rem; }
	.hs-lightbox__prev, .hs-lightbox__next { top: auto; bottom: 20px; margin: 0; }
	.hs-about__frame { inset: 14px -10px -14px 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.hs-marquee__track, .hs-hero__img, .hs-bgslider__slide, .hs-wave--1, .hs-wave--2, .hs-hl, .hs-scroll-hint::before, .hs-btn { animation: none !important; }
	.hs-marquee__track { flex-wrap: wrap; width: auto; justify-content: center; }
	.hs-marquee__track .hs-brands__list[aria-hidden] { display: none; }
}

@media print {
	.hs-header, .hs-totop, .hs-progress, .hs-preloader, .hs-bgslider, .hs-scroll-hint { display: none !important; }
	.hs-anim-on [data-hs-anim] { opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; }
}
