/* Dharahara – behaviour & motion styles. Layout, colours and fonts live in the Elementor classes dh-* / variables --dh-*. */

/* ---------- Header: sticks to the top, shrinks after the first scroll ---------- */
.elementor-location-header { position: sticky; top: 0; z-index: 1000; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }
body .dh-hdr { -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); transition: padding .35s ease, box-shadow .35s ease, background-color .35s ease; }
.dh-scrolled body .dh-hdr { box-shadow: 0 10px 30px rgba(26, 23, 32, .08); background-color: rgba(246, 242, 236, .96); }
body .dh-hdr .dh-logo { transition: width .35s ease, height .35s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.dh-scrolled body .dh-hdr .dh-logo { width: 42px; height: 42px; }
body .dh-hdr .dh-brand:hover .dh-logo { transform: rotate(-8deg) scale(1.05); }
@media (max-width: 767px) { .dh-scrolled body .dh-hdr .dh-logo { width: 36px; height: 36px; } .dh-scrolled body .dh-hdr .dh-brandsub { opacity: 0; max-height: 0; } body .dh-hdr .dh-brandsub { transition: opacity .3s ease, max-height .3s ease; max-height: 20px; overflow: hidden; } }
.dh-nav { scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.dh-nav::-webkit-scrollbar { display: none; }
@media (max-width: 1024px) {
	/* nav pills scroll sideways; the edges fade out so it is clear there is more */
	body .dh-hdr .dh-nav { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
}
a, button, [role="tab"], summary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

/* GloriaFood buttons made from Elementor buttons keep the site look */
body a.dh-glf.glf-button { box-shadow: none; text-shadow: none; }
/* the original GloriaFood widgets ("See MENU & Order", "Table Reservations") in the home hero: same size/feel as the site buttons */
body .dh-hero-c .elementor-widget[data-widget_type^="glf_"] { margin: 0 !important; width: auto; }
body .dh-hero-c .elementor-glf-button { padding: 17px 30px; font-family: Manrope, system-ui, sans-serif; font-size: 15px; font-weight: 800; line-height: 1; letter-spacing: .01em; transition: transform .3s ease, filter .3s ease; }
body .dh-hero-c .elementor-glf-button:hover { transform: translateY(-2px); filter: brightness(1.08); }
@media (max-width: 767px) { body .dh-hero-c .elementor-glf-button { padding: 15px 22px; font-size: 14px; } }

/* ---------- Text accents ---------- */
body .dh-kicker { display: inline-flex; align-items: center; gap: 12px; }
body .dh-kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; flex: none; }
body .dh-head-c .dh-kicker::after { content: ""; width: 26px; height: 2px; background: currentColor; flex: none; }
.dh-title em, .dh-hero-title em, .dh-phero-title em, .dh-cta-title em, .dh-card-big em, .dh-wm-title em {
	font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--dh-red, #C8231E);
}
.dh-phero-title em, .dh-title-light em, .dh-cta-title em { color: var(--dh-marigold, #F0A030); }
.dh-hero-title em { display: block; font-size: .62em; line-height: 1.05; margin-top: .08em; }

/* ---------- Live open / closed badge ---------- */
.dh-status::before { content: ""; width: 9px; height: 9px; flex: none; border-radius: 50%; background: #C9C1B6; }
.dh-status.is-open::before { background: #22A55A; animation: dh-live 2s ease-out infinite; }
.dh-status.is-closed::before { background: #E0473F; }
@keyframes dh-live { 0% { box-shadow: 0 0 0 0 rgba(34, 165, 90, .5); } 100% { box-shadow: 0 0 0 11px rgba(34, 165, 90, 0); } }

/* ---------- Opening hours: today's row ---------- */
.dh-hrow { transition: background-color .3s ease, color .3s ease; }
body .dh-hrow.is-today { background: var(--dh-ink, #1A1720); }
body .dh-hrow.is-today > * { color: #FFFFFF; }
body .dh-hrow.is-today > :first-child::after { content: " · tänään"; font-weight: 600; color: var(--dh-marigold, #F0A030); }
.dh-sec-dark .dh-hrow > * , .dh-card-dark .dh-hrow > * { color: var(--dh-cream-text, #EDE4D8); }
.dh-sec-dark .dh-hrow.is-today, .dh-card-dark .dh-hrow.is-today { background: var(--dh-red, #C8231E); }

/* Footer is dark: hours rows in light text, today's row lifted */
body .dh-ftr .dh-hrow { padding: 8px 12px; margin-inline: -12px; width: calc(100% + 24px); }
body .dh-ftr .dh-hrow > * { color: var(--dh-cream-text, #EDE4D8); }
body .dh-ftr .dh-hrow.is-today { background: rgba(255, 255, 255, .08); }
body .dh-ftr .dh-hrow.is-today > * { color: #FFFFFF; }
/* empty texts / buttons left in a component instance are not shown */
.dh-pill:empty, .dh-btns > .dh-btn:empty, .dh-kicker:empty, .dh-lead:empty { display: none; }

/* ---------- Hero ---------- */
.dh-hero .dh-chip { animation: dh-float 6s ease-in-out infinite; }
.dh-hero .dh-chip-b { animation-delay: -3s; }
@keyframes dh-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.dh-hero .dh-arch { will-change: transform; transform-origin: 50% 80%; }
.dh-hero-c > * { animation: dh-up 1s cubic-bezier(.2, .8, .2, 1) backwards; }
.dh-hero-c > :nth-child(2) { animation-delay: .08s; }
.dh-hero-c > :nth-child(3) { animation-delay: .16s; }
.dh-hero-c > :nth-child(4) { animation-delay: .24s; }
.dh-hero-c > :nth-child(5) { animation-delay: .32s; }
.dh-hero-media { animation: dh-arch-in 1.3s cubic-bezier(.2, .8, .2, 1) backwards .1s; }
@keyframes dh-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes dh-arch-in { from { opacity: 0; clip-path: inset(30% 10% 0 10% round 999px 999px 28px 28px); } to { opacity: 1; clip-path: inset(0 0 0 0 round 0); } }
.dh-deco { -webkit-user-select: none; user-select: none; }
.dh-phero .dh-phero-bg { will-change: transform; transform: scale(1.08); }
.dh-phero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(22, 19, 26, .2) 0%, rgba(22, 19, 26, .55) 60%, rgba(22, 19, 26, .92) 100%); }
.dh-phero-c > * { animation: dh-up .9s cubic-bezier(.2, .8, .2, 1) backwards; }
.dh-phero-c > :nth-child(2) { animation-delay: .08s; }
.dh-phero-c > :nth-child(3) { animation-delay: .16s; }
.dh-phero-c > :nth-child(4) { animation-delay: .24s; }

/* ---------- Endless photo strip ---------- */
.dh-mq { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.dh-mq-track.is-running { padding-inline-end: 28px; animation: dh-marquee var(--dh-mq-dur, 50s) linear infinite; }
.dh-mq:hover .dh-mq-track { animation-play-state: paused; }
@keyframes dh-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.dh-mq-item .dh-mq-img { transition: transform .7s cubic-bezier(.2, .8, .2, 1), box-shadow .7s ease; }
.dh-mq-item:hover .dh-mq-img { transform: translateY(-8px) rotate(-4deg); box-shadow: 0 24px 46px rgba(26, 23, 32, .16); }

/* ---------- Service cards (dh-sv-*): one card open ---------- */
.dh-sv-row { counter-reset: dh-sv; transition: grid-template-columns .75s cubic-bezier(.2, .8, .2, 1); }
.dh-sv-card { counter-increment: dh-sv; cursor: pointer; isolation: isolate; }
.dh-sv-card .dh-sv-img { transform: scale(1.03); filter: brightness(.8) saturate(.9); transition: transform 1.2s cubic-bezier(.2, .8, .2, 1), filter .7s ease; }
.dh-sv-card.is-active .dh-sv-img { transform: scale(1.1); filter: brightness(1) saturate(1.05); }
body .dh-sv-row .dh-sv-card::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; background: linear-gradient(180deg, rgba(22, 19, 26, 0) 35%, rgba(22, 19, 26, .6) 66%, rgba(22, 19, 26, .94) 100%); }
body .dh-sv-row .dh-sv-card::before {
	content: counter(dh-sv, decimal-leading-zero); position: absolute; top: 22px; left: 22px; z-index: 2; display: flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .45); background: rgba(22, 19, 26, .25);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #FFFFFF; font: 800 17px/1 'Big Shoulders Display', sans-serif;
	transition: background-color .5s ease, border-color .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}
body .dh-sv-row .dh-sv-card.is-active::before { background: var(--dh-red, #C8231E); border-color: var(--dh-red, #C8231E); transform: rotate(-8deg) scale(1.08); }
.dh-sv-row.is-ready .dh-sv-text, .dh-sv-row.is-ready .dh-sv-link { max-height: 0; margin-block-start: 0; opacity: 0; overflow: hidden; transform: translateY(14px); transition: max-height .6s cubic-bezier(.2, .8, .2, 1), margin .6s cubic-bezier(.2, .8, .2, 1), opacity .45s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.dh-sv-row.is-ready .dh-sv-card.is-active .dh-sv-text { max-height: 8em; margin-block-start: 10px; opacity: 1; transform: none; transition-delay: .15s; }
.dh-sv-row.is-ready .dh-sv-card.is-active .dh-sv-link { max-height: 5em; margin-block-start: 18px; opacity: 1; transform: none; transition-delay: .25s; }
body .dh-sv-card .dh-sv-text { margin-block-start: 10px; }
body .dh-sv-card .dh-sv-link { margin-block-start: 18px; }
.dh-sv-title { background: linear-gradient(var(--dh-marigold, #F0A030), var(--dh-marigold, #F0A030)) 0 100% / 0 3px no-repeat; padding-bottom: 8px; transition: background-size .7s cubic-bezier(.2, .8, .2, 1); }
.dh-sv-card.is-active .dh-sv-title { background-size: 60px 3px; }
@media (min-width: 1025px) {
	.dh-sv-row:has(> .dh-sv-card:nth-child(1).is-active) { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
	.dh-sv-row:has(> .dh-sv-card:nth-child(2).is-active) { grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr); }
	.dh-sv-row:has(> .dh-sv-card:nth-child(3).is-active) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2.2fr) minmax(0, 1fr); }
	.dh-sv-row:has(> .dh-sv-card:nth-child(4).is-active) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2.2fr); }
}

/* ---------- Lunch day tabs (Elementor Tabs with class dh-days) ---------- */
body .dh-days .dh-tabs-menu { position: sticky; top: calc(var(--dh-top, 0px) + 0px); scrollbar-width: none; }
.dh-tabs-menu::-webkit-scrollbar { display: none; }
body .dh-days [role="tab"][aria-selected="true"], body .dh-days [role="tab"][aria-selected="true"]:hover { background-color: var(--dh-ink, #1A1720); border-color: var(--dh-ink, #1A1720); color: #FFFFFF; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(26, 23, 32, .18); }
body .dh-days [role="tab"].is-today { position: relative; }
body .dh-days [role="tab"].is-today::after { content: "tänään"; position: absolute; top: -9px; right: 8px; padding: 3px 7px; border-radius: 999px; background: var(--dh-red, #C8231E); color: #FFFFFF; font: 800 10px/1 Manrope, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
body .dh-days .dh-tabs-menu { padding-top: 14px; }
.dh-days.is-switch [role="tabpanel"]:not([hidden]) .dh-wc-card { animation: dh-in .6s cubic-bezier(.2, .8, .2, 1) backwards; }
.dh-days.is-switch [role="tabpanel"]:not([hidden]) .e-collection-loop-item:nth-child(2) .dh-wc-card,
.dh-days.is-switch [role="tabpanel"]:not([hidden]) .dh-wc-card:nth-child(2) { animation-delay: .05s; }
@keyframes dh-in { from { opacity: 0; transform: translateY(22px) scale(.97); filter: blur(5px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- Home "today's lunch": only today's loop (before the script runs: Monday's) ---------- */
.dh-today .dh-wc-loop ~ .dh-wc-loop { display: none; }
body .dh-today.is-set .dh-wc-loop { display: none; }
body .dh-today.is-set .dh-wc-loop.is-today { display: block; }
.dh-today-label:empty { display: none; }

/* ---------- Map ---------- */
.dh-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.25) contrast(1.05); }

/* ---------- FAQ (Elementor Accordion) ---------- */
.dh-faq-item { transition: border-color .3s ease, box-shadow .3s ease; }
.dh-faq-item[open] { border-color: var(--dh-ink, #1A1720); box-shadow: 0 16px 36px rgba(26, 23, 32, .08); }
.dh-faq-item[open] .dh-faq-icon { background-color: var(--dh-red, #C8231E); color: #FFFFFF; }
.dh-faq-head { list-style: none; position: relative; padding-right: 72px; }
.dh-faq-head::-webkit-details-marker { display: none; }
body .dh-faq-head::after { content: "+"; position: absolute; right: 22px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%; display: grid; place-items: center; background: var(--dh-stone, #F6F2EC); color: var(--dh-ink, #1A1720); font: 600 22px/1 Manrope, sans-serif; transition: transform .35s cubic-bezier(.2, .8, .2, 1), background-color .3s ease, color .3s ease; }
body .dh-faq-item[open] .dh-faq-head::after { transform: rotate(45deg); background: var(--dh-red, #C8231E); color: #FFFFFF; }
.dh-faq-item[open] .dh-faq-a { animation: dh-up .45s cubic-bezier(.2, .8, .2, 1); }
/* forms: Elementor date/time inputs and selects get the same look */
html body .dh-input.dh-input, html body .dh-area.dh-area { box-shadow: none; -webkit-appearance: none; appearance: none; }
html body select.dh-input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1720' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; padding-right: 40px; }

/* ---------- Bullet lists (catering packages) ---------- */
body .dh-li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 9px; height: 9px; border-radius: 50%; background: var(--dh-red, #C8231E); }
.dh-pkg-hot .dh-li { color: var(--dh-cream-text, #EDE4D8); }
.dh-pkg-hot .dh-li::before { background: var(--dh-marigold, #F0A030); }

/* ---------- Phone dock (dh-dock in the footer): round icons, slides in, hides while scrolling down ---------- */
@media (max-width: 767px) {
	body .dh-dock { -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); transition: transform .55s cubic-bezier(.2, .9, .3, 1.15), opacity .4s ease; }
	html:not(.dh-ready) body .dh-dock, .dh-dock-hide body .dh-dock { transform: translateY(150%); opacity: 0; }
	body .dh-dock .dh-dock-btn::before { content: ""; width: 22px; height: 22px; background-color: currentColor; -webkit-mask: var(--dh-ico) center / contain no-repeat; mask: var(--dh-ico) center / contain no-repeat; transition: transform .35s cubic-bezier(.2, .9, .3, 1.4); }
	body .dh-dock .dh-dock-btn:active::before { transform: scale(.82); }
	body .dh-dock .dh-dock-btn { transition: background-color .25s ease, transform .25s ease; }
	body .dh-dock .dh-dock-btn:active { transform: scale(.94); }
	body .dh-dock a[href^="tel:"] { --dh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
	body .dh-dock a[href*="google.com/maps"] { --dh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
	body .dh-dock a[href*="foodbooking.com"] { --dh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E"); }
	body .dh-dock a[href*="/lounas"] { --dh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11h18a9 9 0 0 1-18 0z'/%3E%3Cpath d='M7 7c0-1.5 1-2 1-3.5M12 7c0-1.5 1-2 1-3.5M17 7c0-1.5 1-2 1-3.5'/%3E%3C/svg%3E"); }
	body .dh-dock a[href*="varaa"] { --dh-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); }
	body .dh-dock .dh-dock-main { position: relative; }
	body .dh-dock .dh-dock-main::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: 0 0 0 0 rgba(200, 35, 30, .6); animation: dh-ring 2.6s ease-out infinite 1.5s; pointer-events: none; }
	/* content never hides behind the dock */
	body { padding-bottom: 0; }
}
@keyframes dh-ring { 0% { box-shadow: 0 0 0 0 rgba(200, 35, 30, .55); } 70%, 100% { box-shadow: 0 0 0 14px rgba(200, 35, 30, 0); } }

/* ---------- Tap ripple ---------- */
.dh-ripple { position: absolute; border-radius: 50%; background: currentColor; opacity: .22; transform: scale(0); animation: dh-ripple .6s ease-out forwards; pointer-events: none; z-index: 0; }
@keyframes dh-ripple { to { transform: scale(1); opacity: 0; } }
@media (hover: none) {
	.dh-btn:active, .dh-sv-link:active, .dh-submit:active { transform: scale(.96); }
	.dh-wc-card:active { transform: scale(.975); }
}

/* =====================================================================
   Motion (only once the script runs: html.dh-sx-on). Runs while scrolling on phones too.
   ===================================================================== */
.dh-rise { transition: opacity .8s cubic-bezier(.2, .8, .2, 1), transform .8s cubic-bezier(.2, .8, .2, 1), filter .8s ease, border-color .35s ease, box-shadow .35s ease; transition-delay: var(--dh-d, 0ms); }
.dh-sx-on .dh-rise:not(.is-in) { opacity: 0; transform: translateY(30px) scale(.97); filter: blur(6px); }
.dh-rise.is-in { transition-delay: 0ms, 0ms, 0ms, 0ms, 0ms; }
.dh-sx-on .dh-rise.is-in:not(:hover) { transition-delay: var(--dh-d, 0ms), var(--dh-d, 0ms), var(--dh-d, 0ms), 0ms, 0ms; }

.dh-sx-words .dh-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.dh-sx-words .dh-w > span { display: inline-block; transition: transform 1s cubic-bezier(.2, .8, .2, 1), opacity 1s ease; transition-delay: calc(var(--i, 0) * 60ms); }
.dh-sx-on .dh-sx-words:not(.is-in) .dh-w > span { transform: translateY(105%); opacity: 0; }

.dh-zoom { clip-path: inset(calc((1 - var(--p, 1)) * 7%) calc((1 - var(--p, 1)) * 9%) round calc(28px + (1 - var(--p, 1)) * 60px)); }
.dh-zoom .dh-zoom-img { transform: scale(calc(1.25 - var(--p, 1) * .25)); will-change: transform; }

.dh-row { display: block; will-change: transform; }
body .dh-words-sec .dh-row-outline { color: transparent; -webkit-text-stroke: 2px var(--dh-ink, #1A1720); }
@media (max-width: 767px) { body .dh-words-sec .dh-row-outline { -webkit-text-stroke-width: 1.3px; } }

.dh-stack-card { transform-origin: 50% 0; will-change: transform; }
.dh-tilt { transition: transform .6s cubic-bezier(.2, .8, .2, 1); will-change: transform; }
.dh-hero .dh-btn, .dh-cta .dh-btn { transition: transform .45s cubic-bezier(.2, .8, .2, 1), background-color .3s ease, color .3s ease; }

@media (hover: none) {
	.dh-rev-grid { scroll-snap-type: x mandatory; scrollbar-width: none; }
	.dh-rev-grid::-webkit-scrollbar { display: none; }
	.dh-rev-grid .dh-rev-card { scroll-snap-align: center; transition: transform .5s cubic-bezier(.2, .8, .2, 1), opacity .5s ease; }
	.dh-rev-grid.is-snapping .dh-rev-card:not(.is-center) { transform: scale(.93); opacity: .65; }
}

.dh-progress { position: fixed; top: var(--dh-top, 0px); left: 0; right: 0; height: 3px; z-index: 999; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--dh-red, #C8231E), var(--dh-marigold, #F0A030)); pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
	.dh-hero .dh-chip, .dh-hero-c > *, .dh-hero-media, .dh-phero-c > *, .dh-mq-track.is-running, .dh-status.is-open::before, .dh-dock-main::after { animation: none !important; }
	.dh-sv-row, .dh-sv-card .dh-sv-img, .dh-sv-row.is-ready .dh-sv-text, .dh-sv-row.is-ready .dh-sv-link, .dh-rise, .dh-sx-words .dh-w > span { transition: none !important; }
}
