/* Ostroff Electric — extras that theme.json can't express. Colors come from the palette. */

/* Eyebrow label: small, uppercase, tracked (ATS section-label style) */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	line-height: 1.6;
	margin-bottom: 0.25rem;
}

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-brand:has(.wp-block-site-logo img) .wp-block-site-title { display: none; }
.site-brand .wp-block-site-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.site-nav a { text-decoration: none; }
.site-nav .nav-cta > a { border: 1px solid currentColor; padding: 0.55rem 1rem; }
.site-nav .nav-cta > a:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); }

/* Hero and tiles: dark base so the overlay reads well with or without a photo */
.ostroff-hero { background: var(--wp--preset--gradient--hero); }
.ostroff-hero h1 { max-width: 18ch; margin-inline: auto !important; }
.ost-tile { background: linear-gradient(160deg, #2a2d5a, #1b1c24); }
.ost-tile h3 { margin-top: 0.25rem; }
.ost-page-hero h1 { font-size: var(--wp--preset--font-size--xl); }

/* Section header rule (like ATS "01 — PRACTICE") */
.ost-section-head { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.25rem; margin-bottom: var(--wp--preset--spacing--40); }
.has-navy-background-color .ost-section-head,
.has-ink-background-color .ost-section-head { border-top-color: rgba(255,255,255,0.2); }

/* Cards */
.ost-grid { gap: 2px !important; margin-bottom: 2px !important; margin-top: 0 !important; }
.ost-card { background: var(--wp--preset--color--paper); padding: var(--wp--preset--spacing--40); height: 100%; box-sizing: border-box; border-top: 2px solid transparent; transition: border-color .2s; }
.has-paper-background-color .ost-card { background: var(--wp--preset--color--white); }
.ost-card:hover { border-top-color: var(--wp--preset--color--cyan); }
.ost-card h3 { margin-top: 0.5rem; }

/* Service rows */
.ost-row { border-top: 1px solid var(--wp--preset--color--line); padding-top: var(--wp--preset--spacing--40); margin-bottom: var(--wp--preset--spacing--40) !important; }

/* Lists */
.ost-automation ul, .ost-row ul { list-style: none; padding-left: 0; }
.ost-automation li, .ost-row li { padding: 0.6rem 0; border-bottom: 1px solid rgba(127,127,127,0.25); }
.ost-automation li::before, .ost-row li::before { content: "—"; color: var(--wp--preset--color--cyan); margin-right: 0.75rem; }

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--navy); border: 1px solid currentColor; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); }
.wp-block-button.is-style-outline-light > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--white); border: 1px solid rgba(255,255,255,0.7); }
.wp-block-button.is-style-outline-light > .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--navy-deep); }

/* Footer */
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--wp--preset--color--cyan) !important; }

/* Contact form */
.ost-form label { display: block; font-size: var(--wp--preset--font-size--xs); font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--wp--preset--color--slate); margin-bottom: 0.4rem; }
.ost-form input, .ost-form select, .ost-form textarea { width: 100%; box-sizing: border-box; font: inherit; padding: 0.8rem 0.9rem; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink); border-radius: 0; }
.ost-form input:focus, .ost-form select:focus, .ost-form textarea:focus { outline: 2px solid var(--wp--preset--color--cyan); outline-offset: 0; border-color: transparent; }
.ost-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .ost-form-row { grid-template-columns: 1fr; } }
.ost-form button { cursor: pointer; border: 0; }
.ost-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ost-form-msg { padding: 1rem 1.25rem; border-left: 3px solid; }
.ost-form-msg.is-ok { border-color: var(--wp--preset--color--cyan); background: var(--wp--preset--color--white); }
.ost-form-msg.is-err { border-color: #b3261e; background: #fdecea; }

/* Mobile */
@media (max-width: 781px) {
	.ost-section-head .wp-block-column:first-child { flex-basis: auto !important; }
	.ostroff-hero { min-height: 70vh !important; }
}

/* Alignment safety net */
.has-text-align-center { text-align: center; }
.ostroff-hero .wp-block-cover__inner-container > * { margin-left: auto; margin-right: auto; }
.ostroff-hero h1 { max-width: 20ch; }

/* Page hero: keep the lead flush left */
.ost-page-hero > p.has-lg-font-size { max-width: min(46ch, 100%) !important; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }

/* Solid buttons on dark sections use cyan so they stand out */
.ostroff-hero .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link,
.has-navy-background-color .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link,
.has-navy-deep-background-color .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link {
	background: var(--wp--preset--color--cyan);
	color: var(--wp--preset--color--navy-deep);
}
.ostroff-hero .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:hover,
.has-navy-background-color .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:hover,
.has-navy-deep-background-color .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
}

/* Photo gallery */
.ost-gallery { gap: 2px !important; }
.ost-gallery.columns-2 .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; }
.ost-gallery.columns-3 .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }

/* No gap between page sections and the footer */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Odd last photo in a 2-column gallery spans the full row */
.ost-gallery.columns-2 > figure.wp-block-image:last-child:nth-child(odd) { width: 100% !important; flex-basis: 100% !important; }
.ost-gallery.columns-2 > figure.wp-block-image:last-child:nth-child(odd) img { aspect-ratio: 21 / 9; }

/* Project grid */
.ost-projects .wp-block-post-template { gap: 2rem 2px; }
.ost-projects .wp-block-post-featured-image { margin-bottom: 0.75rem; overflow: hidden; }
.ost-projects .wp-block-post-featured-image img { transition: transform .5s ease; }
.ost-projects .wp-block-post-featured-image:hover img { transform: scale(1.03); }
.ost-projects .wp-block-post-title { margin-top: 0; padding-inline: 0.25rem; }
.ost-projects .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--navy); }
.ost-page-hero .wp-block-post-title { font-size: var(--wp--preset--font-size--xl); }
.ost-page-hero .is-style-eyebrow a { color: inherit; text-decoration: none; }
.single-ost_project .wp-block-post-navigation-link { font-size: var(--wp--preset--font-size--sm); margin-top: var(--wp--preset--spacing--30); }

/* =========================================================
   Motion: hero, carousel, reveal (v1.3)
   ========================================================= */

/* Hero: crossfading photos with a slow zoom */
.ostroff-hero { overflow: hidden; }
.ostroff-hero .wp-block-cover__image-background { transition: opacity 1.6s ease; }
.ost-js .ostroff-hero .ost-hero-layer { opacity: 0; }
.ost-js .ostroff-hero .ost-hero-layer.is-active { opacity: 1; animation: ost-kenburns 14s ease-out both; }
@keyframes ost-kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }
.ostroff-hero .wp-block-cover__background { z-index: 1; }
.ostroff-hero .wp-block-cover__inner-container { z-index: 2; }

/* Hero text entrance */
.ost-w { display: inline-block; overflow: hidden; vertical-align: bottom; }
.ost-w > span { display: inline-block; transform: translateY(105%); transition: transform 1s cubic-bezier(.2,.7,.1,1); }
.ostroff-hero.is-loaded .ost-w > span { transform: none; }
.ost-js .ostroff-hero .is-style-eyebrow,
.ost-js .ostroff-hero .wp-block-buttons { opacity: 0; transform: translateY(14px); transition: opacity .9s ease, transform .9s ease; }
.ost-js .ostroff-hero.is-loaded .is-style-eyebrow { opacity: 1; transform: none; transition-delay: .05s; }
.ost-js .ostroff-hero.is-loaded .wp-block-buttons { opacity: 1; transform: none; transition-delay: .7s; }
.ostroff-hero::after { content: ""; position: absolute; left: 50%; bottom: 28px; width: 1px; height: 46px; z-index: 3; background: linear-gradient(var(--wp--preset--color--cyan), transparent); animation: ost-scrollcue 2.2s ease-in-out infinite; }
@keyframes ost-scrollcue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* Scroll reveal */
.ost-reveal { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity 1.2s cubic-bezier(.16,1,.3,1), transform 1.4s cubic-bezier(.16,1,.3,1); will-change: opacity, transform; }
.ost-reveal.is-in { opacity: 1; transform: none; }
.ost-reveal-img { clip-path: inset(0 0 100% 0); opacity: .001; transition: clip-path 1.4s cubic-bezier(.77,0,.18,1), opacity .6s ease; }
.ost-reveal-img.is-in { opacity: 1; }
.ost-reveal-img img { transform: scale(1.12); transition: transform 2s cubic-bezier(.16,1,.3,1); will-change: transform; }
.ost-reveal-img.is-in { clip-path: inset(0 0 0 0); }
.ost-reveal-img.is-in img { transform: scale(1); }

/* Carousel */
html, body { overflow-x: clip; }
.wp-block-group .ost-carousel, .ost-carousel { position: relative; width: 100vw; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; --ost-edge: max(var(--wp--style--root--padding-left, 1.5rem), calc((100vw - 1240px) / 2)); }
.ost-carousel__track { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 0 var(--ost-edge) 1rem; scroll-padding-inline: var(--ost-edge); scrollbar-width: none; cursor: grab; outline: none; }
.ost-carousel__track::-webkit-scrollbar { display: none; }
.ost-carousel__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.ost-slide { position: relative; flex: 0 0 auto; scroll-snap-align: start; display: block; text-decoration: none; color: var(--wp--preset--color--white); overflow: hidden; background: var(--wp--preset--color--ink); user-select: none; }
.ost-slide__media { margin: 0; height: 100%; }
.ost-slide__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s cubic-bezier(.2,.7,.1,1), filter .6s ease; pointer-events: none; }
.ost-slide:hover .ost-slide__media img, .ost-slide:focus-visible .ost-slide__media img { transform: scale(1.06); }
.ost-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,23,74,0) 40%, rgba(22,23,74,.88) 100%); pointer-events: none; }
.ost-slide__meta { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.5rem 1.5rem 1.4rem; display: flex; flex-direction: column; gap: .35rem; }
.ost-slide__num { font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; color: var(--wp--preset--color--cyan); font-weight: 600; }
.ost-slide__title { font-size: 1.35rem; font-weight: 500; line-height: 1.2; }
.ost-slide__excerpt { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--line); max-width: 52ch; }
.ost-slide__cta { font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; text-transform: uppercase; font-weight: 600; opacity: 0; transform: translateY(8px); transition: opacity .4s ease, transform .4s ease; }
.ost-slide:hover .ost-slide__cta, .ost-slide:focus-visible .ost-slide__cta { opacity: 1; transform: none; }
.ost-slide:focus-visible { outline: 2px solid var(--wp--preset--color--cyan); outline-offset: -2px; }

/* Strip (home): smaller cards */
.ost-carousel.is-strip .ost-slide { width: clamp(260px, 30vw, 420px); aspect-ratio: 4 / 5; }
/* Feature (portfolio): big cinematic cards */
.ost-carousel.is-feature .ost-carousel__track { scroll-snap-type: x mandatory; }
.ost-carousel.is-feature .ost-slide { width: clamp(300px, 72vw, 1100px); aspect-ratio: 16 / 9; scroll-snap-align: center; }
.ost-carousel.is-feature .ost-slide__title { font-size: clamp(1.5rem, 3vw, 2.5rem); text-transform: uppercase; letter-spacing: .06em; font-weight: 400; }
.ost-carousel.is-feature .ost-slide .ost-slide__media img { filter: saturate(.85) brightness(.85); }
.ost-carousel.is-feature .ost-slide.is-current .ost-slide__media img { filter: none; }
.ost-carousel.is-feature .ost-slide__cta { opacity: 1; transform: none; }
@media (max-width: 700px) { .ost-carousel.is-feature .ost-slide { aspect-ratio: 4 / 5; } }

.ost-carousel__ui { display: flex; align-items: center; gap: 1rem; margin: 1rem 0 0; padding-inline: var(--ost-edge); }
.ost-carousel__btn { width: 48px; height: 48px; flex: 0 0 48px; border: 1px solid currentColor; background: transparent; color: inherit; font-size: 1.1rem; cursor: pointer; transition: background .25s, color .25s; }
.ost-carousel__btn:hover, .ost-carousel__btn:focus-visible { background: var(--wp--preset--color--cyan); color: var(--wp--preset--color--navy-deep); border-color: var(--wp--preset--color--cyan); }
.ost-carousel__progress { flex: 1; height: 2px; background: rgba(127,127,127,.3); overflow: hidden; }
.ost-carousel__progress span { display: block; height: 100%; background: var(--wp--preset--color--cyan); transform-origin: left; transform: scaleX(.08); transition: transform .3s ease; }
.has-paper-background-color .ost-carousel__btn, .has-white-background-color .ost-carousel__btn { color: var(--wp--preset--color--navy); }
.ost-feature-band { padding-top: var(--wp--preset--spacing--50) !important; }

/* Compact project grid with hover title */
.ost-projects .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important; gap: 1.5rem 1rem; }
.ost-projects .wp-block-post { position: relative; }
.ost-projects .wp-block-post-featured-image { aspect-ratio: 4 / 3; margin-bottom: .6rem; }
.ost-projects .wp-block-post-featured-image img { height: 100% !important; object-fit: cover; }
.ost-projects .wp-block-post-title { font-size: var(--wp--preset--font-size--sm) !important; font-weight: 500; letter-spacing: .02em; }
.ost-projects .wp-block-post-title a { background: linear-gradient(var(--wp--preset--color--cyan), var(--wp--preset--color--cyan)) left bottom / 0 1px no-repeat; transition: background-size .35s ease; }
.ost-projects .wp-block-post:hover .wp-block-post-title a { background-size: 100% 1px; }

/* Project gallery: even tiles, click-free */
.single-ost_project .ost-gallery .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.ost-reveal, .ost-reveal-img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}

/* =========================================================
   Header — matches the ATS site (v1.4)
   ========================================================= */
.site-header { background: rgba(246, 245, 242, 0.82) !important; -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid rgba(216, 214, 208, 0.7) !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.site-header > .wp-block-group { min-height: 92px; align-items: center; }
.site-brand .wp-block-site-logo { line-height: 0; }
.site-brand .wp-block-site-logo a { position: relative; display: inline-block; }
.site-brand .wp-block-site-logo img { height: 32px !important; width: auto !important; transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .7s ease; will-change: opacity, transform; }
.site-brand .wp-block-site-logo a::after { content: ""; position: absolute; left: 0; top: 50%; width: 96px; height: 28px; margin-top: -14px; background: no-repeat left center / contain; opacity: 0; transform: translate3d(0, 8px, 0) scale(.96); transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); pointer-events: none; will-change: opacity, transform; }
.site-header.is-scrolled .site-brand .wp-block-site-logo img { opacity: 0; transform: translate3d(0, -8px, 0); filter: blur(2px); }
.site-header.is-scrolled .site-brand .wp-block-site-logo a::after { opacity: 1; transform: none; }

.site-nav { font-size: 11px !important; letter-spacing: 3px !important; font-weight: 600 !important; }
.site-nav .wp-block-navigation__container { gap: 2.25rem; align-items: center; }
.site-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--navy); padding: 14px 0; position: relative; }
.site-nav .wp-block-navigation-item:not(.nav-cta) .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 3px; bottom: 8px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.site-nav .wp-block-navigation-item:not(.nav-cta) .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.site-nav .nav-cta > a, .site-nav .nav-cta > .wp-block-navigation-item__content { border: 1px solid var(--wp--preset--color--navy); padding: 13px 22px !important; }
@media (max-width: 781px) {
	.site-header > .wp-block-group { min-height: 72px; }
	.site-brand .wp-block-site-logo img { height: 26px !important; }
}

/* Portfolio page: grid only */
.ost-portfolio { padding-top: var(--wp--preset--spacing--50) !important; }
.ost-projects .wp-block-post-featured-image a { cursor: pointer; }

/* =========================================================
   Lightbox
   ========================================================= */
.single-ost_project .ost-gallery .wp-block-image img { cursor: zoom-in; }
.ost-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(16, 17, 40, 0.96); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s; }
.ost-lb.is-open { opacity: 1; visibility: visible; }
.ost-lb__stage { position: relative; width: min(92vw, 1600px); height: 80vh; display: flex; align-items: center; justify-content: center; touch-action: pan-y; }
.ost-lb__img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 30px 80px rgba(0,0,0,.45); transform: scale(.96); opacity: 0; transition: transform .45s cubic-bezier(.2,.7,.1,1), opacity .35s ease; user-select: none; }
.ost-lb__img.is-ready { transform: none; opacity: 1; }
.ost-lb__btn { position: absolute; top: 50%; width: 56px; height: 56px; margin-top: -28px; border: 1px solid rgba(255,255,255,.5); background: rgba(16,17,40,.35); color: #fff; font-size: 1.3rem; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.ost-lb__btn:hover, .ost-lb__btn:focus-visible { background: var(--wp--preset--color--cyan); color: var(--wp--preset--color--navy-deep); border-color: var(--wp--preset--color--cyan); outline: none; }
.ost-lb__prev { left: 2vw; } .ost-lb__next { right: 2vw; }
.ost-lb__close { position: absolute; top: 20px; right: 24px; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.ost-lb__close:hover, .ost-lb__close:focus-visible { background: #fff; color: var(--wp--preset--color--navy-deep); outline: none; }
.ost-lb__bar { position: absolute; left: 0; right: 0; bottom: 22px; display: flex; justify-content: center; gap: 1.5rem; color: var(--wp--preset--color--line); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; font-weight: 600; }
.ost-lb__count { color: var(--wp--preset--color--cyan); }
.admin-bar .ost-lb__close { top: 52px; }
@media (max-width: 700px) { .ost-lb__btn { width: 44px; height: 44px; margin-top: -22px; } .ost-lb__stage { width: 100vw; } }
body.ost-lb-open { overflow: hidden; }

/* Keep the header pinned while scrolling (the template-part wrapper is what must be sticky) */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 1000; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.site-header { position: relative !important; top: auto !important; }


/* Smooth scrolling (Lenis) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }
html:not(.lenis) { scroll-behavior: smooth; }

/* Header: soft shadow fades in once scrolled */
.site-header { transition: box-shadow .6s ease, background-color .6s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(22, 23, 74, .35); }

/* Slower, softer hover zooms */
.ost-projects .wp-block-post-featured-image img { transition: transform 1.2s cubic-bezier(.16,1,.3,1) !important; }
.ost-slide__media img { transition: transform 1.4s cubic-bezier(.16,1,.3,1), filter .8s ease !important; }
.ost-lb__img { transition: transform .7s cubic-bezier(.16,1,.3,1), opacity .5s ease !important; }

/* Home strip carousel: stay inside the content column, 3 full cards per view (v1.5.1) */
.wp-block-group .ost-carousel.is-strip, .ost-carousel.is-strip { width: 100%; max-width: 1240px !important; margin-left: auto !important; margin-right: auto !important; --ost-edge: 0px; overflow: hidden; }
.ost-carousel.is-strip .ost-carousel__track { padding: 0 0 1rem; scroll-padding-inline: 0; }
.ost-carousel.is-strip .ost-slide { width: calc((100% - 2.5rem) / 3); aspect-ratio: 3 / 4; scroll-snap-align: start; }
@media (max-width: 900px) { .ost-carousel.is-strip .ost-slide { width: calc((100% - 1.25rem) / 2); } }
@media (max-width: 600px) { .ost-carousel.is-strip .ost-slide { width: 82%; } }
.ost-carousel.is-strip .ost-carousel__ui { padding-inline: 0; }
.ostroff-hero h1 { max-width: 24ch !important; }

/* =========================================================
   v1.6 — magazine-ad content + mobile menu fix
   ========================================================= */

/* Numbers band */
.ost-numbers .wp-block-column > p:first-child { font-size: clamp(2.75rem, 5.5vw, 4.25rem); font-weight: 300; line-height: 1; letter-spacing: .02em; margin-bottom: .6rem; font-variant-numeric: tabular-nums; }
.ost-numbers .wp-block-column { border-left: 1px solid rgba(255,255,255,.15); padding-left: 1.25rem; }
.ost-numbers .is-style-eyebrow { margin-top: 0; }
.ost-li-sub { color: var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--sm); }
.ost-automation li strong { font-weight: 600; }

/* Mobile menu: the header's blur used to trap the full-screen menu inside the header bar,
   so it had to be scrolled. The blur now lives on a pseudo-element instead. */
.site-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: transparent !important; isolation: isolate; }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(246, 245, 242, 0.82); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); }

.site-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); padding: 10px; border: 1px solid var(--wp--preset--color--navy); }
.site-nav .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }
.wp-block-navigation__responsive-container.is-menu-open { position: fixed !important; inset: 0 !important; height: 100dvh !important; padding: 0 !important; background: var(--wp--preset--color--navy-deep) !important; color: #fff !important; animation: ost-menu-in .45s cubic-bezier(.16,1,.3,1) both; overflow-y: auto; }
@keyframes ost-menu-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 46px !important; height: calc(100dvh - 46px) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; height: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { min-height: 100%; display: flex; flex-direction: column; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 22px; right: 22px; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.5); color: #fff; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 100px 28px 40px !important; align-items: flex-start !important; justify-content: flex-start !important; gap: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column !important; align-items: flex-start !important; gap: 0 !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.14); opacity: 0; animation: ost-menu-item .5s cubic-bezier(.16,1,.3,1) forwards; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: .06s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .12s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .18s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .24s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: .30s; }
@keyframes ost-menu-item { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; padding: 1.1rem 0 !important; font-size: 1.05rem; letter-spacing: .2em; color: #fff !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta { border-bottom: 0; margin-top: 1.75rem; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta > .wp-block-navigation-item__content { border: 0 !important; background: var(--wp--preset--color--cyan); color: var(--wp--preset--color--navy-deep) !important; text-align: center; padding: 1.1rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { box-sizing: border-box; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 84px !important; padding-bottom: 24px !important; box-sizing: border-box; }
