/*
Theme Name: sasakgardenresort Agency
Theme URI: https://models.sasakgardenresort.store
Author: sasakgardenresort Agency
Description: Bilingual editorial model-agency catalog with React islands.
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: luxagency
*/

:root {
  --lux-bone: #f2f1ed;
  --lux-paper: #faf9f5;
  --lux-ink: #17191c;
  --lux-muted: #6d7075;
  --lux-line: #d9d8d3;
  --lux-cobalt: #305d88;
  --lux-serif: "Cormorant Garamond", Georgia, serif;
  --lux-sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--lux-bone); color: var(--lux-ink); scroll-behavior: smooth; }
body { margin: 0; background: var(--lux-bone); color: var(--lux-ink); font-family: var(--lux-sans); }
body.admin-bar .lux-header { top: 32px; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 2px solid var(--lux-cobalt); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: 1rem; z-index: 100; transform: translateY(-180%); padding: .75rem 1rem; background: var(--lux-ink); color: var(--lux-paper); }
.skip-link:focus { transform: translateY(0); }

.lux-header { position: sticky; top: 0; z-index: 30; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; min-height: 72px; padding: 0 clamp(1rem, 4vw, 4rem); background: color-mix(in srgb, var(--lux-bone) 90%, transparent); backdrop-filter: blur(14px); border-bottom: 1px solid color-mix(in srgb, var(--lux-line) 70%, transparent); }
.lux-wordmark { font-family: var(--lux-serif); font-size: 1.35rem; letter-spacing: .08em; text-decoration: none; }
.lux-nav { display: flex; gap: clamp(1rem, 3vw, 2.8rem); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.lux-nav a { text-decoration: none; }
.lux-nav a:hover { color: var(--lux-cobalt); }
.lux-tools { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.lux-mobile-menu { display: none; }
.lux-mobile-menu button { display: grid; gap: 4px; width: 42px; height: 42px; place-content: center; border: 1px solid var(--lux-line); border-radius: 50%; background: transparent; cursor: pointer; }
.lux-mobile-menu button span:not(.screen-reader-text) { display: block; width: 15px; height: 1px; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.lux-mobile-menu button[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.lux-mobile-menu button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lux-mobile-menu button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
.lux-lang a { text-decoration: none; }

.lux-main { min-height: 70vh; }
.lux-shell { width: min(1440px, calc(100% - 2rem)); margin-inline: auto; }
.lux-split-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .65fr); min-height: min(88dvh, 980px); border-bottom: 1px solid var(--lux-line); }
.lux-split-hero__media { position: relative; min-height: 72dvh; overflow: hidden; background: #d5d4cf; }
.lux-split-hero__media::before { content: ""; position: absolute; z-index: 5; inset: 4%; border: 1px solid rgb(250 249 245 / .85); border-radius: 2.5rem .25rem 2.5rem .25rem; box-shadow: 9px 9px 0 -8px var(--lux-ink); pointer-events: none; }
.lux-split-hero__panel { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82); opacity: 0; transform: scale(1.025); transition: opacity 900ms ease, transform 6s linear; }
.lux-split-hero[data-active="girls"] [data-hero-panel="girls"], .lux-split-hero[data-active="boys"] [data-hero-panel="boys"] { opacity: 1; transform: scale(1); }
.lux-split-hero__copy { display: flex; min-width: 0; flex-direction: column; justify-content: flex-end; gap: 1.5rem; padding: clamp(2rem, 5vw, 6rem) clamp(1rem, 2vw, 2rem) clamp(2rem, 5vw, 6rem) clamp(1.25rem, 4vw, 4rem); }
.lux-split-hero .lux-title { max-width: 8ch; font-size: clamp(4rem, 7.2vw, 7.5rem); }
.lux-hero-collage { overflow: hidden; background: #d8d3ca; filter: none; }
.lux-hero-collage::before, .lux-hero-collage::after { content: ""; position: absolute; z-index: 3; pointer-events: none; }
.lux-hero-collage::before { inset: 4%; border: 1px solid rgb(250 249 245 / .9); border-radius: 2.5rem .25rem 2.5rem .25rem; box-shadow: 9px 9px 0 -8px var(--lux-ink); }
.lux-hero-collage::after { inset: 7% 6%; border-block: 1px solid rgb(23 25 28 / .7); }
.lux-hero-collage img { position: absolute; object-fit: cover; filter: saturate(.8); }
.lux-hero-collage__primary { inset: 0 25% 0 0; width: 75%; height: 100%; object-position: 52% center; }
.lux-hero-collage__secondary { right: 5%; bottom: 7%; z-index: 2; width: 36%; height: 45%; border: .45rem solid var(--lux-paper); object-position: 42% center; box-shadow: 0 1rem 3rem rgb(23 25 28 / .2); }
.lux-hero-collage__benefits-art { top: 5%; right: 5%; z-index: 2; width: 29%; height: 35%; border: .45rem solid var(--lux-paper); object-fit: contain; object-position: center; background: var(--lux-paper); box-shadow: 0 1rem 3rem rgb(23 25 28 / .18); }
.lux-hero-collage__badge { position: absolute; z-index: 4; display: block; border: 1px solid rgb(250 249 245 / .82); pointer-events: none; }
.lux-hero-collage__badge--rose { top: 5%; left: 4%; width: 5.5rem; height: 1.25rem; background: #cf8f84; }
.lux-hero-collage__badge--blue { right: 4%; bottom: 4%; width: 1.4rem; height: 6rem; border-radius: 999px; background: #233f67; }
.lux-hero-benefits { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.lux-hero-benefits li { border: 1px solid var(--lux-line); border-radius: 999px; padding: .48rem .7rem; color: var(--lux-muted); font-size: .62rem; letter-spacing: .11em; text-transform: uppercase; }
@keyframes lux-hero-pan { from { transform: scale(1.025) translate3d(-1%, 0, 0); } to { transform: scale(1.07) translate3d(1.5%, -1%, 0); } }
.lux-hero-switch { display: flex; gap: .4rem; }
.lux-hero-switch button, .lux-rail-controls button { border: 1px solid var(--lux-line); border-radius: 999px; background: transparent; color: var(--lux-muted); padding: .55rem .85rem; cursor: pointer; }
.lux-hero-switch button[aria-pressed="true"] { border-color: var(--lux-ink); background: var(--lux-ink); color: var(--lux-paper); }
.lux-manifesto { padding: clamp(5rem, 12vw, 12rem) max(1rem, calc((100vw - 1440px) / 2)); }
.lux-cta-mockup { padding-top: clamp(2rem, 6vw, 6rem); }
.lux-cta-mockup a { display: block; overflow: hidden; border: 1px solid var(--lux-line); background: var(--lux-paper); }
.lux-cta-mockup img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 900ms cubic-bezier(.16,1,.3,1); }
.lux-cta-mockup a:hover img { transform: scale(1.015); }
.lux-manifesto p { max-width: 15ch; margin: 0; font-family: var(--lux-serif); font-size: clamp(3.5rem, 8vw, 9rem); line-height: .88; letter-spacing: -.045em; }
.lux-source-editorial { display: grid; grid-template-columns: 1.15fr .85fr 1fr .8fr; gap: clamp(.5rem, 1.2vw, 1.25rem); align-items: start; width: min(1600px, calc(100% - 2rem)); margin: 0 auto clamp(6rem, 12vw, 12rem); }
.lux-source-editorial figure { margin: 0; overflow: hidden; }
.lux-source-editorial figure:nth-child(2), .lux-source-editorial figure:nth-child(4) { margin-top: clamp(3rem, 8vw, 9rem); }
.lux-source-editorial img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; filter: saturate(.78); transition: transform 800ms cubic-bezier(.16,1,.3,1), filter 500ms ease; }
.lux-source-editorial figure:hover img { transform: scale(1.025); filter: saturate(1); }
.lux-section-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: 0 max(1rem, calc((100vw - 1440px) / 2)) 2rem; }
.lux-section-head h2, .lux-feature h2, .lux-showreel h2 { margin: .25rem 0 0; font-family: var(--lux-serif); font-size: clamp(3rem, 7vw, 7rem); font-weight: 400; line-height: .9; letter-spacing: -.04em; }
.lux-section-head > a { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-rail-controls { display: flex; gap: .4rem; }
.lux-lookbook { padding: 0 0 clamp(6rem, 11vw, 11rem); overflow: hidden; }
.lux-featured-voted { padding: clamp(5rem, 10vw, 10rem) 0; }
.lux-featured-voted__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.lux-featured-voted__card { display: grid; gap: .75rem; min-width: 0; text-decoration: none; }
.lux-featured-voted__card img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; filter: saturate(.8); }
.lux-featured-voted__card h3 { margin: 0; font-family: var(--lux-serif); font-size: clamp(1.6rem, 2.8vw, 3rem); font-weight: 400; line-height: .95; }
.lux-featured-voted__card p { margin: .5rem 0 0; color: var(--lux-muted); font-size: .82rem; line-height: 1.5; }
.lux-lookbook__rail { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 24vw, 390px); gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 max(1rem, calc((100vw - 1440px) / 2)); }
.lux-lookbook__rail::-webkit-scrollbar { display: none; }
.lux-lookbook__card { position: relative; scroll-snap-align: start; text-decoration: none; overflow: hidden; }
.lux-lookbook__card img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; filter: saturate(.78); transition: transform 700ms cubic-bezier(.16,1,.3,1), filter 500ms ease; }
.lux-lookbook__card:hover img { transform: scale(1.03); filter: saturate(1); }
.lux-lookbook__card span { display: block; padding: .65rem 0; border-top: 1px solid var(--lux-line); font-family: var(--lux-serif); font-size: 1.35rem; }
.lux-feature > a, .lux-showreel > a { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .65fr); min-height: 70dvh; color: inherit; text-decoration: none; }
.lux-feature__media, .lux-showreel__media { min-height: 60dvh; overflow: hidden; background: #d5d4cf; }
.lux-feature__media img, .lux-showreel__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms cubic-bezier(.16,1,.3,1); }
.lux-feature:hover img, .lux-showreel:hover img { transform: scale(1.025); }
.lux-feature__copy, .lux-showreel__copy { display: flex; flex-direction: column; justify-content: flex-end; gap: 1rem; padding: clamp(2rem, 5vw, 6rem); }
.lux-feature__copy > p:last-child, .lux-showreel__copy > span { color: var(--lux-muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-showreel { background: var(--lux-ink); color: var(--lux-paper); }
.lux-new-faces { padding: clamp(6rem, 11vw, 11rem) 0; }
.lux-new-faces .lux-section-head { padding-inline: 0; }
.lux-new-faces__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; }
.lux-new-faces__grid a { text-decoration: none; }
.lux-new-faces__grid img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.lux-new-faces__grid span { display: block; padding-top: .5rem; font-family: var(--lux-serif); font-size: 1.2rem; }
.lux-catalog-head { display: grid; gap: 1.5rem; padding: clamp(3.5rem, 8vw, 8rem) 0 2.5rem; }
.lux-kicker { margin: 0; color: var(--lux-muted); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }
.lux-title { max-width: 10ch; margin: 0; font-family: var(--lux-serif); font-size: clamp(4rem, 10vw, 10rem); font-weight: 400; line-height: .82; letter-spacing: -.045em; }
.lux-intro { max-width: 36rem; margin: 0; color: var(--lux-muted); font-size: 1rem; line-height: 1.55; }
.lux-catalog-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(.65rem, 1.25vw, 1.25rem); padding-bottom: 8rem; }
.lux-model-card { position: relative; grid-column: span 3; min-width: 0; text-decoration: none; }
.lux-model-card:nth-child(6n + 2), .lux-model-card:nth-child(6n + 5) { grid-column: span 4; }
.lux-model-card:nth-child(6n + 3) { grid-column: span 2; margin-top: 5rem; }
.lux-model-card:nth-child(6n + 4) { grid-column: span 3; margin-top: 2rem; }
.lux-model-card:nth-child(6n + 6) { grid-column: span 4; margin-top: -2rem; }
.lux-model-card__media { position: relative; overflow: hidden; aspect-ratio: 2 / 3; background: #d5d4cf; }
.lux-model-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); transition: transform 700ms cubic-bezier(.16,1,.3,1), filter 500ms ease; }
.lux-model-card:hover .lux-model-card__media img { transform: scale(1.035); filter: saturate(1); }
.lux-model-card__meta { display: flex; justify-content: space-between; gap: .75rem; padding-top: .75rem; border-top: 1px solid var(--lux-line); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-model-card__name { font-family: var(--lux-serif); font-size: 1.4rem; line-height: 1; letter-spacing: -.02em; text-transform: none; }
.lux-model-card__division { color: var(--lux-muted); text-align: right; }

.lux-filterbar { display: grid; grid-template-columns: minmax(10rem, 1fr) repeat(4, minmax(7rem, auto)); gap: .5rem; align-items: center; padding: .75rem 0; border-block: 1px solid var(--lux-line); }
.lux-filterbar input, .lux-filterbar select { min-height: 42px; border: 1px solid var(--lux-line); border-radius: 0; background: transparent; color: var(--lux-ink); padding: 0 .75rem; }
.lux-filterbar input::placeholder { color: var(--lux-muted); }
.lux-filterbar button { min-height: 42px; border: 1px solid var(--lux-ink); background: var(--lux-ink); color: var(--lux-paper); cursor: pointer; }
.lux-filter-chips { grid-column: 1 / -1; display: flex; gap: .45rem; flex-wrap: wrap; }
.lux-chip { border: 1px solid var(--lux-line); border-radius: 999px; padding: .5rem .75rem; background: transparent; color: var(--lux-muted); cursor: pointer; }
.lux-chip[aria-pressed="true"] { border-color: var(--lux-ink); color: var(--lux-ink); }
.lux-count { color: var(--lux-muted); font-size: .72rem; }

.lux-model-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .7fr); min-height: calc(100dvh - 72px); }
.lux-model-hero__media { min-height: 70dvh; background: #d5d4cf; }
.lux-model-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.lux-model-hero__copy { display: flex; flex-direction: column; justify-content: flex-end; gap: 1.5rem; padding: clamp(2rem, 5vw, 6rem); }
.lux-model-name { max-width: 8ch; margin: 0; font-family: var(--lux-serif); font-size: clamp(4rem, 9vw, 9rem); font-weight: 400; line-height: .82; letter-spacing: -.05em; }
.lux-model-line { margin: 0; color: var(--lux-muted); font-size: .72rem; letter-spacing: .15em; text-transform: uppercase; }
.lux-model-bio { max-width: 30rem; color: var(--lux-muted); line-height: 1.6; }
.lux-model-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; padding-top: 1rem; border-top: 1px solid var(--lux-line); }
.lux-model-stat dt { color: var(--lux-muted); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
.lux-model-stat dd { margin: .2rem 0 0; font-size: .9rem; }

.lux-book { padding: 5rem 0 8rem; }
.lux-book__tabs { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: 1rem; border-bottom: 1px solid var(--lux-line); }
.lux-book__tab { border: 0; border-bottom: 1px solid transparent; padding: .5rem .75rem; background: transparent; color: var(--lux-muted); cursor: pointer; }
.lux-book__tab[aria-selected="true"] { border-color: var(--lux-ink); color: var(--lux-ink); }
.lux-book__grid { columns: 3 220px; column-gap: 1rem; padding-top: 1.5rem; }
.lux-book__item { break-inside: avoid; margin: 0 0 1rem; cursor: zoom-in; }
.lux-book__item img { width: 100%; transition: transform 650ms cubic-bezier(.16,1,.3,1); }
.lux-book__item:hover img { transform: scale(1.02); }
.lux-book__source { display: block; padding: .35rem 0; color: var(--lux-muted); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-book__bio { max-width: 48rem; padding: 3rem 0; font-family: var(--lux-serif); font-size: clamp(2rem, 4vw, 4.5rem); line-height: 1.1; }
.lux-reel-stack { display: grid; gap: 1rem; padding-top: 1.5rem; }
.lux-reel-stack video { width: 100%; max-height: 78dvh; background: var(--lux-ink); }
.lux-lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 2rem; background: rgb(23 25 28 / .92); }
.lux-lightbox img { max-width: min(92vw, 1100px); max-height: 88dvh; object-fit: contain; }
.lux-lightbox button { position: absolute; top: 1.5rem; right: 1.5rem; border: 1px solid rgb(250 249 245 / .45); background: transparent; color: var(--lux-paper); padding: .6rem .8rem; cursor: pointer; }
.lux-campaign-grid, .lux-editorial-list, .lux-reel-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); padding-bottom: 8rem; }
.lux-campaign-card, .lux-editorial-card, .lux-reel-card { grid-column: span 4; text-decoration: none; }
.lux-campaign-card:nth-child(3n + 2), .lux-editorial-card:nth-child(3n + 2), .lux-reel-card:nth-child(3n + 2) { grid-column: span 5; margin-top: 4rem; }
.lux-campaign-card:nth-child(3n + 3), .lux-editorial-card:nth-child(3n + 3), .lux-reel-card:nth-child(3n + 3) { grid-column: span 3; margin-top: 8rem; }
.lux-campaign-card__media, .lux-editorial-card img, .lux-reel-card img { aspect-ratio: 4 / 3; overflow: hidden; background: #d5d4cf; }
.lux-campaign-card__media img, .lux-editorial-card img, .lux-reel-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.16,1,.3,1); }
.lux-campaign-card:hover img, .lux-editorial-card:hover img, .lux-reel-card:hover img { transform: scale(1.03); }
.lux-campaign-card h2, .lux-editorial-card h2, .lux-reel-card h2 { margin: .5rem 0 0; font-family: var(--lux-serif); font-size: clamp(1.8rem, 3vw, 3.5rem); font-weight: 400; line-height: .95; }
.lux-campaign-card p:last-child { margin: .35rem 0 0; color: var(--lux-muted); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-campaign-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(20rem, .7fr); min-height: 72dvh; }
.lux-campaign-hero__media { min-height: 60dvh; background: #d5d4cf; }
.lux-campaign-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.lux-campaign-hero__copy { display: flex; flex-direction: column; justify-content: flex-end; gap: 1.5rem; padding: clamp(2rem, 5vw, 6rem); }
.lux-related { padding-bottom: 8rem; }
.lux-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.lux-related__grid a { padding: 1rem 0; border-top: 1px solid var(--lux-line); text-decoration: none; font-family: var(--lux-serif); font-size: 1.5rem; }
.lux-prose { padding: clamp(4rem, 9vw, 9rem) 0 8rem; }
.lux-prose__body { max-width: 48rem; margin-top: 3rem; font-size: 1.05rem; line-height: 1.8; }
.lux-prose__body > * + * { margin-top: 1.5rem; }
.lux-prose__hero { margin: 3rem 0 0; }
.lux-prose__hero img { width: 100%; max-height: 72dvh; object-fit: cover; }
.lux-prose__body h2, .lux-contact-grid h2 { margin: 3rem 0 .75rem; font-family: var(--lux-serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1; }
.lux-prose__body a, .lux-contact-grid a { text-underline-offset: .2em; }
.lux-about-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .75rem; margin-top: 4rem; }
.lux-about-bento section { grid-column: span 5; min-height: 18rem; padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--lux-line); }
.lux-about-bento section:nth-child(2), .lux-about-bento section:nth-child(3) { grid-column: span 7; }
.lux-about-bento h2 { margin: 0 0 3rem; font-family: var(--lux-serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1; }
.lux-about-bento p { max-width: 38rem; color: var(--lux-muted); line-height: 1.7; }
[data-lux-story-scroll] > *, [data-lux-scroll-tilt] > *, [data-lux-container-scroll] { opacity: .35; transform: perspective(1000px) translateY(5rem) rotateX(7deg) scale(.96); transform-origin: 50% 100%; transition: opacity 900ms ease, transform 1100ms cubic-bezier(.16,1,.3,1); }
[data-lux-story-scroll] > *.is-visible, [data-lux-scroll-tilt] > *.is-visible, [data-lux-container-scroll].is-visible { opacity: 1; transform: perspective(1000px) translateY(0) rotateX(0) scale(1); }
.lux-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; max-width: 900px; margin-top: 4rem; }
.lux-contact-grid section { border-top: 1px solid var(--lux-line); }
.lux-contact-grid p { color: var(--lux-muted); line-height: 1.7; }
.lux-faq { max-width: 900px; margin-top: 4rem; border-top: 1px solid var(--lux-line); }
.lux-faq details { border-bottom: 1px solid var(--lux-line); }
.lux-faq summary { padding: 1.35rem 2.5rem 1.35rem 0; cursor: pointer; font-family: var(--lux-serif); font-size: clamp(1.4rem, 2.2vw, 2.2rem); list-style: none; }
.lux-faq summary::-webkit-details-marker { display: none; }
.lux-faq p { max-width: 48rem; margin: 0; padding: 0 0 1.5rem; color: var(--lux-muted); line-height: 1.7; }
.lux-apply-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 760px; margin-top: 3rem; }
.lux-apply-form label { display: grid; gap: .45rem; color: var(--lux-muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.lux-apply-form input, .lux-apply-form textarea { width: 100%; border: 1px solid var(--lux-line); border-radius: 0; background: transparent; padding: .8rem; color: var(--lux-ink); }
.lux-apply-form textarea, .lux-apply-form label:nth-of-type(n+5), .lux-form-privacy, .lux-submit { grid-column: 1 / -1; }
.lux-check { display: flex !important; grid-template-columns: auto 1fr; align-items: start; gap: .5rem !important; letter-spacing: 0 !important; text-transform: none !important; }
.lux-check input { width: auto; margin-top: .2rem; }
.lux-submit { min-height: 48px; border: 1px solid var(--lux-ink); background: var(--lux-ink); color: var(--lux-paper); cursor: pointer; text-align: left; padding: 0 1rem; }
.lux-form-message { max-width: 42rem; padding: 1rem; border: 1px solid var(--lux-line); }
.lux-form-message--error { border-color: #9b4b45; color: #9b4b45; }
.lux-form-privacy { margin: 0; color: var(--lux-muted); font-size: .78rem; line-height: 1.6; }
.lux-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lux-footer { display: grid; grid-template-columns: 1fr auto; gap: 2rem; padding: 2rem clamp(1rem, 4vw, 4rem); border-top: 1px solid var(--lux-line); color: var(--lux-muted); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.lux-footer a { color: inherit; }

@media (max-width: 900px) {
  body.admin-bar .lux-header { top: 46px; }
  .lux-header { grid-template-columns: 1fr auto; }
  .lux-mobile-menu { display: block; }
  .lux-nav { display: none; position: absolute; inset: 72px 0 auto; z-index: 20; padding: 1rem; background: var(--lux-bone); border-bottom: 1px solid var(--lux-line); }
  .lux-nav.is-open { display: grid; gap: 0; }
  .lux-nav a { padding: .9rem 0; border-bottom: 1px solid var(--lux-line); }
  .lux-tools { gap: .6rem; }
  .lux-filterbar { grid-template-columns: 1fr 1fr; }
  .lux-model-card, .lux-model-card:nth-child(n) { grid-column: span 6; margin-top: 0; }
  .lux-model-hero { grid-template-columns: 1fr; }
  .lux-model-hero__media { min-height: 68dvh; }
  .lux-model-hero__copy { padding: 2rem 1rem 4rem; }
  .lux-split-hero { grid-template-columns: 1fr; }
  .lux-split-hero__media { min-height: 60dvh; }
  .lux-split-hero__media::before { inset: 3%; border-radius: 1.5rem .15rem 1.5rem .15rem; }
  .lux-hero-collage__benefits-art { top: 4%; right: 4%; width: 31%; height: 28%; border-width: .3rem; }
  .lux-hero-collage__secondary { right: 4%; bottom: 6%; width: 39%; height: 38%; border-width: .3rem; }
  .lux-split-hero__copy { padding: 2rem 0 4rem; }
  .lux-feature > a, .lux-showreel > a { grid-template-columns: 1fr; }
  .lux-feature__copy, .lux-showreel__copy { padding: 2rem 1rem 4rem; }
  .lux-new-faces__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lux-featured-voted__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lux-campaign-hero { grid-template-columns: 1fr; }
  .lux-campaign-hero__copy { padding: 2rem 1rem 4rem; }
  .lux-campaign-card, .lux-editorial-card, .lux-reel-card, .lux-campaign-card:nth-child(n), .lux-editorial-card:nth-child(n), .lux-reel-card:nth-child(n) { grid-column: span 6; margin-top: 0; }
}
@media (max-width: 560px) {
  .lux-shell { width: min(100% - 1.25rem, 1440px); }
  .lux-title { font-size: clamp(4rem, 21vw, 6.5rem); }
  .lux-split-hero__media { min-height: 68dvh; }
  .lux-split-hero__media::before { inset: 3%; }
  .lux-hero-collage__benefits-art { top: 5%; right: 5%; width: 35%; height: 25%; }
  .lux-hero-collage__secondary { right: 5%; bottom: 6%; width: 42%; height: 34%; }
  .lux-hero-benefits { gap: .3rem; }
  .lux-hero-benefits li { padding: .4rem .55rem; font-size: .54rem; letter-spacing: .08em; }
  .lux-filterbar { grid-template-columns: 1fr; }
  .lux-model-card, .lux-model-card:nth-child(n) { grid-column: span 12; }
  .lux-model-card:nth-child(even) { padding-left: 12vw; }
  .lux-model-card__meta { padding-top: .5rem; }
  .lux-footer { grid-template-columns: 1fr; }
  .lux-campaign-grid, .lux-editorial-list, .lux-reel-grid { grid-template-columns: 1fr; }
  .lux-campaign-card, .lux-editorial-card, .lux-reel-card, .lux-campaign-card:nth-child(n), .lux-editorial-card:nth-child(n), .lux-reel-card:nth-child(n) { grid-column: auto; }
  .lux-campaign-card:nth-child(even), .lux-editorial-card:nth-child(even), .lux-reel-card:nth-child(even) { padding-left: 12vw; }
  .lux-apply-form { grid-template-columns: 1fr; }
  .lux-apply-form label:nth-of-type(n+5), .lux-form-privacy, .lux-submit { grid-column: auto; }
  .lux-related__grid { grid-template-columns: 1fr; }
  .lux-contact-grid { grid-template-columns: 1fr; }
  .lux-about-bento { grid-template-columns: 1fr; }
  .lux-about-bento section, .lux-about-bento section:nth-child(n) { grid-column: auto; min-height: 0; }
  .lux-section-head { align-items: start; }
  .lux-new-faces__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lux-featured-voted__grid { grid-template-columns: 1fr; }
  .lux-source-editorial { grid-template-columns: 1fr 1fr; }
  .lux-source-editorial figure:nth-child(n) { margin-top: 0; }
  .lux-source-editorial figure:nth-child(even) { margin-top: 2.5rem; }
}
/* Admin media rows use this state while a native file is dragged over the card. */
.lux-media-row.is-dragging { outline: 2px dashed currentColor; outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
