/* Requirements 5: public presentation only. Native auth, booking and public
   roster selection continue to own their actual data and form actions. */
.agency-design .agency-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.agency-design .agency-home-introduction { max-width: 1080px; margin-inline: auto; padding: clamp(36px, 5vw, 76px) 24px 32px; text-align: center; }
.agency-design .agency-home-introduction p { font: 500 clamp(15px, 1.45vw, 23px)/1.55 var(--agency-serif); letter-spacing: .015em; }
.agency-design .agency-underlined-action { display: inline-flex; align-items: center; min-height: 44px; margin-top: 18px; font: 400 12px/1.5 var(--agency-sans); letter-spacing: .16em; text-decoration: underline; text-underline-offset: 6px; }
.agency-design .agency-campaigns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 54px clamp(24px, 4.5vw, 78px); align-items: start; padding-top: 0; }
.agency-design .agency-campaigns > .agency-section-intro:not(.agency-visually-hidden) { grid-column: 1 / -1; }
.agency-design .agency-campaign + .agency-campaign { margin-top: 0; }
.agency-design .agency-campaign--multiple, .agency-design .agency-campaign--wide { grid-column: 1 / -1; }
.agency-design .agency-campaign--single { grid-column: 1 / -1; width: min(100%, 880px); justify-self: center; }
.agency-design .agency-campaign--single .sc-home-legacy-media { background: transparent; }
.agency-design .agency-campaign-spread { gap: clamp(24px, 4.5vw, 78px); }
.agency-design .agency-campaign-caption { display: block; padding-top: 14px; text-align: center; }
.agency-design .agency-campaign-caption h3 { font-size: clamp(34px, 4.1vw, 66px); letter-spacing: -.025em; }
.agency-design :is(.agency-campaign-caption h3, .sc-home-legacy-caption h2) a { font: inherit; letter-spacing: inherit; }
.agency-design :is(.agency-campaign-caption h3, .sc-home-legacy-caption h2) a:hover { text-decoration: underline; }
.agency-design .agency-campaign-caption p { margin-top: 4px; font: 400 11px/1.5 var(--agency-sans); letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.agency-design .agency-campaign-tile { min-width: 0; }
.agency-design .agency-campaign-display,
.agency-design .agency-hero-photo[data-agency-display-frame] { width: var(--agency-display-width, 100%); max-width: 100%; margin-inline: auto; }
.agency-design .agency-campaign-tile .agency-campaign-film video { aspect-ratio: auto var(--agency-film-ratio, 16 / 9); }
.agency-design .sc-content-page.sc-about-page { background: #fff; }

/* Original Legal page groups alternate full-bleed photos and text on desktop.
   On phones each photo group is immediately above its corresponding copy. */
.agency-design .sc-legacy-legal { background: #fff; color: #000; }
.agency-design .sc-legacy-legal-group { display: grid; gap: 11px; padding: 24px 6vw 20px; }
.agency-design .sc-legacy-legal-photos { display: grid; gap: 11px; }
.agency-design .sc-legacy-legal-photos figure { margin: 0; overflow: hidden; }
.agency-design .sc-legacy-legal-portrait { aspect-ratio: 1.28; }
.agency-design .sc-legacy-legal-landscape { aspect-ratio: 1.72; }
.agency-design .sc-legacy-legal-photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.agency-design .sc-legacy-legal-copy { min-width: 0; font: 400 15.5px/1.28 var(--agency-sans); }
.agency-design .sc-legacy-legal-copy > p { margin: 0 0 1em; text-align: justify; white-space: pre-wrap; overflow-wrap: anywhere; }
.agency-design .sc-legacy-legal-heading { display: block; max-width: none; text-align: center; }
.agency-design .sc-legacy-legal-heading h1 { margin: 26px 0 16px; font: 400 clamp(54px, 6vw, 108px)/1.1 "Agency EB Garamond", Georgia, serif; text-transform: uppercase; }
.agency-design .sc-legacy-legal-heading p { margin: 0; font: inherit; text-transform: uppercase; }
.agency-design .sc-legacy-legal-heading hr { height: 1px; margin: 28px 0 34px; border: 0; background: #000; }
@media (min-width: 761px) {
  .agency-design .sc-legacy-legal-group { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; padding: 0; }
  .agency-design .sc-legacy-legal-media { grid-area: 1 / 2; }
  .agency-design .sc-legacy-legal-copy { grid-area: 1 / 1; padding: clamp(20px, 2.7vw, 48px) 3.8vw 20px max(2vw, calc((100vw - 1674px) / 2)); font-size: 15px; }
  .agency-design .sc-legacy-legal-group--reverse .sc-legacy-legal-media { grid-column: 1; }
  .agency-design .sc-legacy-legal-group--reverse .sc-legacy-legal-copy { grid-column: 2; padding: 0 max(2vw, calc((100vw - 1674px) / 2)) 20px 3.8vw; }
  .agency-design .sc-legacy-legal-portrait { height: clamp(500px, calc(33vw + 510px), 1200px); aspect-ratio: auto; }
  .agency-design .sc-legacy-legal-landscape { aspect-ratio: 1.6; }
  .agency-design .sc-legacy-legal-heading { padding-top: clamp(80px, 11vw, 220px); }
  .agency-design .sc-legacy-legal-heading hr { margin-top: clamp(70px, 13vw, 230px); }
}
@container agency-preview (max-width: 760px) {
  .agency-design.agency-preview .sc-legacy-legal-group { grid-template-columns: minmax(0, 1fr); padding: 24px 6cqw 20px; }
  .agency-design.agency-preview .sc-legacy-legal-group :is(.sc-legacy-legal-media, .sc-legacy-legal-copy) { grid-area: auto; padding: 0; }
  .agency-design.agency-preview .sc-legacy-legal-portrait { height: auto; aspect-ratio: 1.28; }
  .agency-design.agency-preview .sc-legacy-legal-landscape { aspect-ratio: 1.72; }
  .agency-design.agency-preview .sc-legacy-legal-heading { padding: 0; }
  .agency-design.agency-preview .sc-legacy-legal-heading hr { margin-top: 28px; }
}
.agency-design .agency-campaign-tile :is(figure, img, video) { width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; }
.agency-design .agency-authored-block { min-width: 0; margin: 22px auto; overflow-wrap: anywhere; }
.agency-design .agency-authored-block img { display: block; width: 100%; height: auto; object-fit: contain; }

/* A white range popover replaces native numeric single-value selects. */
.agency-design .agency-model-filters.sc-public-models-filters { position: relative; z-index: 5; display: flex; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 34px; padding: 0; border: 0; border-bottom: 0; }
.agency-design .agency-model-filters > .sc-public-select-filter { flex: 1 1 105px; max-width: 170px; }
.agency-design .agency-model-filters > .sc-public-search-filter { flex: 1 1 150px; }
.agency-design .agency-range-filter { position: relative; flex: 1 1 112px; min-width: 0; }
.agency-design .agency-range-toggle { width: 100%; min-height: 44px; padding: 4px 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; border: 0; border-radius: 0; background: #fff; font-size: 12px; text-align: left; }
.agency-design .agency-range-toggle svg { flex: 0 0 14px; }
.agency-design .agency-range-popover { position: absolute; z-index: 40; top: calc(100% + 12px); left: 0; width: min(340px, calc(100vw - 24px)); padding: 22px; border: 1px solid #e8e8e8; border-radius: 7px; background: #fff; box-shadow: 0 5px 22px #00000017; transition: none !important; animation: none !important; }
.agency-design .agency-range-heading { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; letter-spacing: .08em; }
.agency-design .agency-range-heading output { white-space: nowrap; font-variant-numeric: tabular-nums; }
.agency-design .agency-range-slider { position: relative; height: 48px; margin: 4px 10px 9px; }
.agency-design .agency-range-track { position: absolute; top: 23px; left: 0; right: 0; height: 2px; background: linear-gradient(to right, #d8d8d8 var(--range-low), #000 var(--range-low), #000 var(--range-high), #d8d8d8 var(--range-high)); }
.agency-design .agency-range-slider input[type="range"] { position: absolute; inset: 0; z-index: 2; width: 100%; height: 48px; margin: 0; padding: 0; appearance: none; -webkit-appearance: none; border: 0; border-radius: 0; background: transparent; box-shadow: none; pointer-events: none; touch-action: pan-y; }
.agency-design .agency-range-slider input[type="range"]::-webkit-slider-runnable-track { height: 2px; background: transparent; }
.agency-design .agency-range-slider input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; margin-top: -9px; appearance: none; -webkit-appearance: none; border: 0; border-radius: 50%; background: #000; cursor: ew-resize; pointer-events: auto; touch-action: none; }
.agency-design .agency-range-slider input[type="range"]::-moz-range-track { height: 2px; background: transparent; }
.agency-design .agency-range-slider input[type="range"]::-moz-range-thumb { width: 20px; height: 20px; border: 0; border-radius: 50%; background: #000; cursor: ew-resize; pointer-events: auto; touch-action: none; }
.agency-design .agency-range-slider[data-active-bound="min"] input[data-agency-range-bound="min"] { z-index: 3; }
.agency-design .agency-range-slider input:focus-visible { outline-offset: 2px; }
.agency-design .agency-range-exact { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 16px; align-items: end; }
.agency-design .agency-range-exact > span { padding-bottom: 12px; }
.agency-design .agency-range-exact label { display: grid; gap: 5px; font-size: 11px; }
.agency-design .agency-range-exact input { width: 100%; min-width: 0; min-height: 44px; padding: 8px 10px; border: 1px solid #dedede; border-radius: 0; background: #fff; font-size: 15px; font-variant-numeric: tabular-nums; }
.agency-design .agency-range-reset, .agency-design .agency-filter-reset-all { min-height: 44px; padding: 8px 0; border: 0; border-radius: 0; background: transparent; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.agency-design .agency-range-reset { margin-top: 8px; }
.agency-design .agency-filter-reset-all { flex: 0 0 auto; }
.agency-design .sc-public-models-grid { border-top: 0; }
.agency-design .sc-public-page.sc-models-page { padding-bottom: var(--sc-public-closed-summary-inset, 0px); }
body:has(.agency-design .sc-models-page .sc-public-casting-drawer.has-models:not(.is-open)) > .toast {
  bottom: max(18px, env(safe-area-inset-bottom), var(--sc-public-closed-summary-inset, 0px));
  right: max(18px, env(safe-area-inset-right));
  max-width: min(420px, calc(100vw - max(18px, env(safe-area-inset-left)) - max(18px, env(safe-area-inset-right))));
}

/* Authored rectangles display the selected source region exactly. Natural
   photographs keep their existing layout until an explicit crop is saved. */
.agency-design .agency-crop-frame { display: block; position: relative; width: 100%; height: auto; aspect-ratio: var(--agency-crop-ratio); overflow: hidden; }
.agency-design.agency-preview .agency-hero.agency-hero--cropped { height: auto; min-height: 0; }
.agency-design .agency-crop-frame > img { display: block; position: absolute; width: var(--agency-crop-width); height: var(--agency-crop-height); left: var(--agency-crop-left); top: var(--agency-crop-top); max-width: none; max-height: none; aspect-ratio: auto; object-fit: fill; }
/* A new upload starts with the complete original. Its header has its own flow
   so a shallow photograph cannot overlap navigation or the introduction. */
.agency-design .agency-hero.agency-hero--natural { height: auto; min-height: 0; background: #fff; }
.agency-design .agency-hero--natural .agency-hero-photo { position: relative; inset: auto; }
.agency-design .agency-hero--natural .agency-hero-photo img { width: 100%; height: auto; object-fit: contain; }
.agency-design .agency-hero--natural .agency-hero-photo::after { content: none; }
.agency-design.agency-home--natural-hero > .agency-site-header--home { position: relative; inset: auto; padding: clamp(74px, 6vw, 92px) var(--agency-page-gutter) 28px; background: #fff; }
.agency-design.agency-home--natural-hero .agency-site-header--home .agency-identity { position: relative; inset: auto; }
.agency-design .agency-campaign-models { margin-top: 6px; font: 400 clamp(22px, 2.5vw, 36px)/1.2 var(--agency-serif); }
.agency-design .agency-campaign-models a { font: inherit; }
.agency-design .agency-campaign-models a:hover { text-decoration: underline; }
.agency-design :is(.agency-campaign--layout-single, .agency-campaign--layout-stacked) { grid-column: 1 / -1; width: min(100%, 880px); justify-self: center; }
.agency-design :is(.agency-campaign--layout-two, .agency-campaign--layout-three) { grid-column: 1 / -1; width: 100%; }
.agency-design :is(.agency-campaign--layout-single, .agency-campaign--layout-two, .agency-campaign--layout-three, .agency-campaign--layout-stacked) .agency-campaign-tile { width: min(100%, 880px); justify-self: center; }
@media (max-width: 700px) {
  .agency-design .agency-crop-frame { aspect-ratio: var(--agency-crop-ratio-mobile); }
  .agency-design .agency-crop-frame > img { width: var(--agency-crop-width-mobile); height: var(--agency-crop-height-mobile); left: var(--agency-crop-left-mobile); top: var(--agency-crop-top-mobile); }
  .agency-design :is(.agency-campaign--layout-single, .agency-campaign--layout-two, .agency-campaign--layout-three, .agency-campaign--layout-stacked) .agency-campaign-spread { grid-template-columns: 1fr; }
}
@container agency-preview (max-width: 700px) {
  .agency-design.agency-preview .agency-crop-frame { aspect-ratio: var(--agency-crop-ratio-mobile); }
  .agency-design.agency-preview .agency-crop-frame > img { width: var(--agency-crop-width-mobile); height: var(--agency-crop-height-mobile); left: var(--agency-crop-left-mobile); top: var(--agency-crop-top-mobile); }
  .agency-design.agency-preview :is(.agency-campaign--layout-single, .agency-campaign--layout-two, .agency-campaign--layout-three, .agency-campaign--layout-stacked) .agency-campaign-spread { grid-template-columns: 1fr; }
}
.agency-design .agency-public-freshness:empty { display: none; }
.agency-design .agency-public-freshness { margin: 0 0 16px; color: #626262; font: 400 12px/1.5 var(--agency-sans); }
.agency-design .agency-public-model-count { margin: 0 0 12px; color: #626262; font: 400 13px/1.5 var(--agency-sans); }
.agency-design .agency-models-empty p { margin: 0 0 8px; }
.agency-design .agency-public-retry { min-height: 44px; margin: 0 0 18px; padding: 6px 0; border: 0; background: transparent; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.agency-design .sc-portfolio-page .sc-portfolio-section:is(.is-gallery, .is-fluid) .sc-portfolio-media { background: transparent; }
.agency-design .sc-portfolio-page .sc-portfolio-section.is-gallery .sc-portfolio-media { aspect-ratio: auto; align-self: start; }
.agency-design .sc-portfolio-page .sc-portfolio-section:is(.is-gallery, .is-fluid) .sc-portfolio-media :is(img, video) { object-fit: contain; }
.agency-design .sc-portfolio-page .sc-portfolio-section.is-gallery .sc-portfolio-media :is(img, video) { height: auto; }
.agency-design .sc-public-models-filters::before, .agency-design .sc-public-models-filters::after { display: none; }

/* The visual heart has one thin stroke. The button retains a 44px hit target. */
.agency-design .sc-public-models-grid .brand-model-add,
.agency-design .sc-public-models-grid .brand-model-card.selected .brand-model-add,
.agency-design .sc-public-models-grid .brand-model-card:hover .brand-model-add,
.agency-design .sc-public-models-grid .brand-model-card:focus-within .brand-model-add { width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #000; filter: none; }
.agency-design .sc-public-models-grid .brand-model-add span { text-shadow: none; filter: none; }
.agency-design .sc-public-models-grid .brand-model-add svg { display: block; width: var(--agency-heart-size, 24px); height: var(--agency-heart-size, 24px); filter: none; }
.agency-design .sc-public-models-grid .public-model-card .brand-model-add,
.agency-design .sc-public-models-grid .public-model-card.selected .brand-model-add {
  --agency-heart-active-top: var(--agency-heart-top, 8px);
  --agency-heart-active-right: var(--agency-heart-right, 8px);
  top: max(0px, var(--agency-heart-active-top));
  right: max(0px, var(--agency-heart-active-right));
  place-items: center;
  padding: 0;
}
/* Keep the whole target inside the card while the glyph follows the photo. */
.agency-design .sc-public-models-grid .public-model-card .brand-model-add svg {
  translate: calc(0px - min(0px, var(--agency-heart-active-right))) min(0px, var(--agency-heart-active-top));
}
.agency-design .sc-public-models-grid .public-model-card .brand-model-open:focus-visible:has(.has-hover-image) + .brand-model-add {
  --agency-heart-active-top: var(--agency-heart-top-hover, var(--agency-heart-top, 8px));
  --agency-heart-active-right: var(--agency-heart-right-hover, var(--agency-heart-right, 8px));
  --agency-heart-size: var(--agency-heart-size-hover, 24px);
}
@media (hover: hover) and (pointer: fine) {
  .agency-design .sc-public-models-grid .public-model-card:hover:has(.brand-model-media.has-hover-image) > .brand-model-add {
    --agency-heart-active-top: var(--agency-heart-top-hover, var(--agency-heart-top, 8px));
    --agency-heart-active-right: var(--agency-heart-right-hover, var(--agency-heart-right, 8px));
    --agency-heart-size: var(--agency-heart-size-hover, 24px);
  }
}

/* Native application entry stays separate from this public introduction. */
.agency-design .agency-apply-introduction { display: grid; grid-template-columns: minmax(0, 1fr); gap: 38px; padding: 0 0 64px; }
.agency-design .agency-apply-portrait { margin: 0; }
.agency-design .agency-apply-portrait img { width: 100%; height: auto; filter: grayscale(1); }
.agency-design .agency-apply-portrait--reference { position: relative; aspect-ratio: 720 / 635; overflow: hidden; }
.agency-design .agency-apply-portrait--reference img { position: absolute; top: -15.905511811%; left: 0; width: 188.472222222%; max-width: none; height: auto; }
.agency-design .agency-apply-copy { align-self: start; padding-inline: 24px; }
.agency-design .agency-apply-copy h1 { max-width: 600px; margin-bottom: 26px; font-size: clamp(42px, 5vw, 76px); letter-spacing: -.04em; }
.agency-design .agency-apply-copy p { max-width: 610px; margin-top: 20px; font: 400 14px/1.65 var(--agency-sans); }
.agency-design .agency-apply-copy .agency-apply-note { margin-top: 24px; }
.agency-design .agency-apply-note em { font-style: italic; font-synthesis: style; }
.agency-design .agency-apply-copy .agency-underlined-action { margin-top: 22px; }
.agency-design .agency-apply-copy .agency-apply-summary { font-size: 16px; }
.agency-design .agency-apply-details { margin-top: 30px; border-top: 1px solid #bdbdbd; border-bottom: 1px solid #bdbdbd; }
.agency-design .agency-apply-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 64px; padding-block: 14px; cursor: pointer; list-style: none; font: 500 clamp(24px, 2.5vw, 34px)/1.2 var(--agency-serif); }
.agency-design .agency-apply-details > summary::-webkit-details-marker { display: none; }
.agency-design .agency-apply-details > summary::after { content: "+"; flex: none; font: 400 24px/1 var(--agency-sans); }
.agency-design .agency-apply-details[open] > summary::after { content: "-"; }
.agency-design .agency-apply-details > div { padding-bottom: 24px; }
.agency-design .agency-apply-details > summary:focus-visible { outline: 2px solid #000; outline-offset: 4px; }

/* The complete native auth form is retained, including code and errors. */
.agency-design > .sc-agency-family[data-agency-surface="login"] { gap: 0; padding: 0 0 64px; }
.agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-portrait { display: block; margin-top: 30px; }
.agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-portrait img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-content { align-self: center; padding: 30px 24px 0; }
.agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-title { margin-bottom: 20px; font-size: clamp(46px, 5.1vw, 74px); }
.agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-introduction { max-width: 390px; margin: 0 0 30px; font-size: clamp(27px, 2.8vw, 39px); }
.agency-design .sc-agency-family[data-agency-surface="login"] .parent-auth-form > .auth-actions { align-items: start; }
.agency-design .sc-agency-family[data-agency-surface="login"] .parent-auth-form > .auth-actions > .btn.primary { width: auto; min-height: 44px; margin-top: 12px; padding: 10px 0; border: 0; background: transparent; color: #000; text-decoration: underline; text-underline-offset: 7px; }
.agency-design .sc-agency-family[data-agency-surface="login"] .parent-auth-form > .auth-actions > .btn.primary:hover:not(:disabled) { background: transparent; }

@media (min-width: 761px) {
  .agency-design .agency-apply-introduction { grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr); gap: 0; align-items: start; }
  .agency-design .agency-apply-copy { padding: 40px clamp(32px, 6vw, 110px); }
  .agency-design > .sc-agency-family[data-agency-surface="login"] { grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr); align-items: start; }
  .agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-portrait { grid-column: 1; grid-row: 1; height: calc(100svh - 178px); margin-top: 0; }
  .agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-portrait img { width: 100%; height: 100%; object-fit: contain; }
  .agency-design .sc-agency-family[data-agency-surface="login"] .sc-agency-family-content { grid-column: 2; grid-row: 1; padding: 44px clamp(40px, 7vw, 132px); }
}
@media (max-width: 600px) {
  .agency-design .agency-campaigns { gap: 30px 18px; margin-inline: 20px; }
  .agency-design .agency-campaign-spread { gap: 18px; }
  .agency-design .agency-campaign-caption h3 { font-size: clamp(25px, 6.5vw, 36px); }
  .agency-design .agency-campaign-caption p { font-size: 9px; letter-spacing: .08em; }
  .agency-design .agency-model-filters.sc-public-models-filters { gap: 4px 18px; }
  .agency-design .agency-model-filters > .sc-public-select-filter, .agency-design .agency-range-filter { flex: 1 1 calc(50% - 18px); max-width: none; }
  .agency-design .agency-model-filters > .sc-public-search-filter { flex-basis: calc(100% - 80px); }
  .agency-design .agency-range-popover { padding: 18px; }
  .agency-design .agency-home-introduction { padding-inline: 24px; }
  .agency-design .agency-home-introduction p { font-size: 16px; }
}
