/* Classor hero layouts. Opt-in adapters for the retained Elementor image slider and shared Swiper runtime. */
.classor-hero {
    --classor-hero-background: var(--jds-color-surface-soft, #f4f8f8);
    --classor-hero-foreground: var(--jds-color-text, #18343d);
    --classor-hero-min-height: 32rem;
    --classor-hero-gap: var(--jds-space-5, 1.25rem);
    --classor-hero-column-gap: var(--jds-space-10, 2.5rem);
    --classor-hero-radius: var(--jds-radius-feature, 32px);
    --classor-hero-image-radius: var(--jds-radius-media, 18px);
    --classor-hero-control-radius: var(--jds-radius-control, 12px);
    --classor-hero-overlay-color: #071e28;
    --classor-hero-overlay-opacity: .68;
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: var(--classor-hero-radius);
    background: var(--classor-hero-background);
    color: var(--classor-hero-foreground);
    font-family: var(--jds-font-family, inherit);
    box-shadow: var(--jds-shadow-card);
}
.classor-hero *, .classor-hero *::before, .classor-hero *::after { box-sizing: border-box; }
.classor-hero > .swiper-wrapper { align-items: stretch; }
.classor-hero__slide {
    position: relative;
    display: grid;
    align-items: center;
    min-width: 0;
    min-height: var(--classor-hero-min-height);
    height: auto;
    padding: clamp(var(--jds-space-6, 1.5rem), 5vw, var(--jds-space-12, 3rem));
    background: var(--classor-hero-background);
    color: var(--classor-hero-foreground);
    overflow: hidden;
}
.classor-hero__copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--classor-hero-gap);
    width: 100%;
    max-width: var(--classor-hero-copy-width, 44rem);
    min-width: 0;
    text-align: var(--classor-hero-align, start);
    overflow-wrap: anywhere;
}
.classor-hero__eyebrow {
    margin: 0;
    color: var(--classor-hero-eyebrow-color, var(--jds-color-accent-text, currentColor));
    font: var(--jds-weight-label, 700) var(--jds-type-small, .875rem)/var(--jds-leading-body, 1.9) var(--jds-font-family, inherit);
}
.classor-hero__title {
    margin: 0;
    color: var(--classor-hero-title-color, inherit);
    font: var(--jds-weight-heading, 800) clamp(1.75rem, 4vw, 3.5rem)/1.4 var(--jds-font-heading, inherit);
    text-wrap: balance;
}
.classor-hero__description {
    margin: 0;
    color: inherit;
    font: var(--jds-weight-body, 400) var(--jds-type-body, 1rem)/var(--jds-leading-body, 1.9) var(--jds-font-family, inherit);
}
.classor-hero__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: var(--classor-hero-align, start);
    gap: var(--jds-space-3, .75rem);
    max-width: 100%;
}
.classor-hero .classor-hero__action {
    min-height: var(--jds-touch-target, 44px);
    max-width: 100%;
    border-radius: var(--classor-hero-control-radius);
    transition: box-shadow var(--jds-duration-fast, 160ms) var(--jds-ease, ease), background-color var(--jds-duration-fast, 160ms) var(--jds-ease, ease);
}
.classor-hero__action:hover { box-shadow: var(--jds-shadow-raised); }
.classor-hero__media-link { display: block; min-width: 0; width: 100%; }
.classor-hero--editorial .classor-hero__media-link { grid-area: media; }
.classor-hero--cinematic .classor-hero__media-link { position: absolute; inset: 0; }
.classor-hero__media { display: block; min-width: 0; width: 100%; overflow: hidden; border-radius: var(--classor-hero-image-radius); }
.classor-hero__media img { display: block; width: 100%; height: 100%; max-width: 100%; margin: 0; object-position: var(--classor-hero-image-position, center); object-fit: var(--classor-hero-image-fit, cover); }
.classor-hero--showcase { --classor-hero-align: center; --classor-hero-image-fit: contain; }
.classor-hero--showcase .classor-hero__slide { grid-template-columns: minmax(0, 1fr); gap: var(--classor-hero-column-gap); justify-items: center; align-content: center; }
.classor-hero--showcase .classor-hero__media { max-width: min(100%, 64rem); aspect-ratio: 21 / 9; }
.classor-hero--editorial .classor-hero__slide { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: 'copy media'; gap: var(--classor-hero-column-gap); }
.classor-hero--editorial .classor-hero__copy { grid-area: copy; }
.classor-hero--editorial .classor-hero__media { grid-area: media; aspect-ratio: 4 / 3; }
.classor-hero--editorial.classor-hero--media-start .classor-hero__slide { grid-template-areas: 'media copy'; }
.classor-hero--editorial .classor-hero__slide--no-media { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'copy'; }
.classor-hero--editorial .classor-hero__slide--media-only { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'media'; }
.classor-hero--cinematic { --classor-hero-foreground: #fff; --classor-hero-eyebrow-color: currentColor; }
.classor-hero--cinematic .classor-hero__slide { align-content: end; padding-block: clamp(var(--jds-space-10, 2.5rem), 6vw, 5rem); background: var(--classor-hero-overlay-color); }
.classor-hero--cinematic .classor-hero__slide::before { content: ''; position: absolute; z-index: 1; inset: 0; background: var(--classor-hero-overlay-color); opacity: var(--classor-hero-overlay-opacity); pointer-events: none; }
.classor-hero--cinematic .classor-hero__media { position: absolute; inset: 0; height: 100%; border-radius: 0; }
.classor-hero--cinematic .classor-hero__action--secondary { background: var(--jds-color-surface, #fff); color: var(--jds-color-accent-text, #18343d); }
.classor-hero--cinematic .classor-hero__slide--media-only::before { display: none; }
/* The search's visible boundary and focus boundary belong to the same form. */
.classor-hero__search {
    display: flex;
    align-items: center;
    gap: var(--jds-space-2, .5rem);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: var(--jds-space-2, .5rem);
    background: var(--classor-hero-search-background, var(--jds-color-surface, #fff));
    color: var(--classor-hero-search-text, var(--jds-color-text, #18343d));
    border: 1px solid var(--jds-color-control-border, #89979c);
    border-radius: var(--classor-hero-control-radius);
    box-shadow: var(--jds-shadow-sm);
}
.classor-hero__search:focus-within { outline: var(--jds-focus-width, 2px) solid var(--jds-focus-color, #18343d); outline-offset: var(--jds-focus-offset, 3px); }
.classor-hero .classor-hero__search input[type=search] { flex: 1; min-width: 0; width: 100%; height: auto; min-height: var(--jds-touch-target, 44px); padding: var(--jds-space-2, .5rem) var(--jds-space-3, .75rem); margin: 0; border: 0; border-radius: 0; background: transparent; color: inherit; box-shadow: none; outline: none; font: inherit; }
.classor-hero__search input::placeholder { opacity: .85; color: inherit; }
.classor-hero .classor-hero__search button { flex: none; min-height: var(--jds-touch-target, 44px); border-radius: var(--classor-hero-control-radius); }
/* Controls occupy their own row; they never overlap headings, copy, images or calls to action. */
.classor-hero__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--jds-space-2, .5rem); min-width: 0; padding: var(--jds-space-3, .75rem) var(--jds-space-4, 1rem); color: var(--jds-color-text, #18343d); background: var(--jds-color-surface, #fff); }
.classor-hero .classor-hero__controls :is(.swiper-button-prev, .swiper-button-next) { position: static; flex: 0 0 var(--jds-touch-target, 44px); margin: 0; transform: none; }
.classor-hero .classor-hero__controls .swiper-pagination { position: static; display: flex; flex-wrap: wrap; justify-content: center; flex: 0 1 auto; width: auto; max-width: 100%; min-width: 0; line-height: 1; }
.classor-hero .classor-hero__controls .swiper-pagination-bullet { display: inline-flex; align-items: center; justify-content: center; width: var(--jds-touch-target, 44px); height: var(--jds-touch-target, 44px); min-width: var(--jds-touch-target, 44px); margin: 0; padding: 0; border: 0; background: transparent; opacity: 1; border-radius: var(--classor-hero-control-radius); }
.classor-hero .classor-hero__controls .swiper-pagination-bullet::before { content: ''; display: block; width: var(--jds-space-2, 8px); height: var(--jds-space-2, 8px); border-radius: var(--jds-radius-pill, 999px); background: var(--jds-color-control-border, #89979c); }
.classor-hero .classor-hero__controls .swiper-pagination-bullet-active::before { width: var(--jds-space-5, 20px); background: var(--jds-color-accent-text, #18343d); }
.classor-hero__pause { flex: none; margin: 0; min-height: var(--jds-touch-target, 44px); font-size: var(--jds-type-small, .875rem); }
.classor-hero :is(a, button, [tabindex]):focus-visible { outline: var(--jds-focus-width, 2px) solid var(--jds-focus-color, #18343d); outline-offset: var(--jds-focus-offset, 3px); }
.classor-hero--cinematic .classor-hero__copy :is(a, button, [tabindex]):focus-visible { outline-color: currentColor; }
.classor-hero__empty { padding: var(--jds-space-8, 2rem); border-radius: var(--jds-radius-card, 24px); background: var(--jds-color-surface-soft, #f4f8f8); text-align: center; }
@media (max-width: 767px) {
    .classor-hero { --classor-hero-min-height: 24rem; }
    .classor-hero__slide { padding: var(--jds-space-5, 1.25rem); }
    .classor-hero--editorial .classor-hero__slide, .classor-hero--editorial.classor-hero--media-start .classor-hero__slide { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'copy' 'media'; }
    .classor-hero--editorial .classor-hero__slide--no-media { grid-template-areas: 'copy'; }
    .classor-hero--editorial .classor-hero__slide--media-only { grid-template-areas: 'media'; }
    .classor-hero--showcase .classor-hero__media { aspect-ratio: 16 / 9; }
    .classor-hero--cinematic .classor-hero__slide { min-height: max(var(--classor-hero-min-height), 30rem); }
    .classor-hero__title { font-size: clamp(1.625rem, 6vw, 2.5rem); }
}
@container jaygah-widget (max-width: 600px) {
    .classor-hero--editorial .classor-hero__slide, .classor-hero--editorial.classor-hero--media-start .classor-hero__slide { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'copy' 'media'; }
    .classor-hero--editorial .classor-hero__slide--no-media { grid-template-areas: 'copy'; }
    .classor-hero--editorial .classor-hero__slide--media-only { grid-template-areas: 'media'; }
}
@media (max-width: 380px) {
    .classor-hero__actions .classor-hero__action { flex: 1 1 100%; }
    .classor-hero__search { flex-wrap: wrap; }
    .classor-hero__search input[type=search] { flex-basis: 100%; }
    .classor-hero__search button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .classor-hero *, .classor-hero *::before, .classor-hero *::after { transition: none; animation: none; } }
body.jaygah-reduced-motion .classor-hero *, body.jaygah-reduced-motion .classor-hero *::before, body.jaygah-reduced-motion .classor-hero *::after { transition: none; animation: none; }

/* Semantic action colors must outrank generic Elementor link color; explicit controls still win. */
.classor-hero .classor-hero__action--primary{background:var(--jds-action-background);color:var(--jds-action-text)}
.classor-hero .classor-hero__action--secondary{background:var(--jds-color-surface-soft);color:var(--jds-color-accent-text)}

.classor-hero .classor-hero__action{display:inline-flex;align-items:center;justify-content:center;padding:var(--jds-space-3) var(--jds-space-5);line-height:var(--jds-leading-heading);text-align:center;text-decoration:none;overflow-wrap:anywhere}
