/* Figma 328:18 desktop geometry; stacked artwork fills the mobile content width. */
.ccstl-hero-spirit { position: relative; height: 100%; min-width: 0; background: #031c35; color: #fff; isolation: isolate; }
.ccstl-hero-spirit::before { content: ''; position: absolute; inset: 0; background: url('assets/texture.webp') center / cover; mix-blend-mode: overlay; opacity: .3; z-index: -1; pointer-events: none; }
.ccstl-hero-spirit-layout { display: grid; grid-template-columns: minmax(0,359px) minmax(0,616px); gap: 80px; align-items: center; max-width: 1440px; min-height: 682px; margin: auto; padding: 65px 70px; }
.ccstl-hero-spirit-artwork { display: block; width: 100%; height: auto; }
.ccstl-hero-spirit-copy { padding-top: 100px; min-width: 0; }
.ccstl-hero-spirit .ccstl-hero-spirit-eyebrow { margin: 0 0 20.4px; font: 400 12px/1.3 'lulo-one',sans-serif; letter-spacing: .2em; color: #fff; }
.ccstl-hero-spirit .ccstl-hero-spirit-heading { margin: 0 0 20px; font: 400 72px/1 'cochin-lt-pro',Cochin,Georgia,serif; letter-spacing: .3em; text-transform: uppercase; color: #b4823b; overflow-wrap: anywhere; }
.ccstl-hero-spirit .ccstl-hero-spirit-body { margin: 0 0 29.4px; font: 400 18px/1.4 'cochin-lt-pro',Cochin,Georgia,serif; color: #fff; }
.ccstl-hero-spirit .ccstl-hero-spirit-button { display: inline-flex; justify-content: center; align-items: center; min-height: 51.2px; padding: 16.5px 28.5px 13.5px; border: 1.5px solid #b4823b; color: #fff; background: transparent; text-decoration: none; font: 400 14px/1.3 'lulo-one',sans-serif; letter-spacing: .2em; text-transform: uppercase; max-width: 100%; text-align: center; }
.ccstl-hero-spirit .ccstl-hero-spirit-button:hover { background: #b4823b; color: #fff; }
.ccstl-hero-spirit .ccstl-hero-arrows { margin-top: 50px; }
.ccstl-hero-spirit .ccstl-hero-arrow--next img { transform: rotate(180deg); }
.ccstl-hero-spirit-frame { pointer-events: none; position: absolute; inset: 0; }
.ccstl-hero-spirit-frame img { position: absolute; }
.ccstl-hero-spirit-frame--top, .ccstl-hero-spirit-frame--bottom { left: 46px; width: calc(100% - 92px); height: 25.8452px; }
.ccstl-hero-spirit-frame--top { top: 10.15px; }
.ccstl-hero-spirit-frame--bottom { bottom: 10.15px; }
.ccstl-hero-spirit-frame--left, .ccstl-hero-spirit-frame--right { top: 10.15px; height: calc(100% - 20.3px); width: 25.8452px; }
.ccstl-hero-spirit-frame--left { left: 10px; }
.ccstl-hero-spirit-frame--right { right: 10.15px; }
@media (max-width: 1100px) {
    .ccstl-hero-spirit-layout { grid-template-columns: minmax(0,30%) minmax(0,1fr); gap: 40px; padding: 60px 54px; min-height: 600px; }
    .ccstl-hero-spirit-copy { padding-top: 30px; }
    .ccstl-hero-spirit .ccstl-hero-spirit-heading { font-size: 54px; letter-spacing: .2em; }
    .ccstl-hero-spirit .ccstl-hero-spirit-eyebrow { font-size: 10px; }
}
@media (max-width: 767px) {
    .ccstl-hero-spirit-layout { grid-template-columns: minmax(0,1fr); justify-items: center; padding: 42px 36px 48px; gap: 28px; min-height: 0; }
    /* Keep the base 100% artwork width; layout padding supplies side margins. */
    .ccstl-hero-spirit-copy { padding: 0; width: 100%; text-align: center; }
    .ccstl-hero-spirit .ccstl-hero-spirit-eyebrow { font-size: 9px; line-height: 1.7; margin-bottom: 16px; }
    .ccstl-hero-spirit .ccstl-hero-spirit-heading { font-size: 40px; letter-spacing: .18em; margin-bottom: 20px; }
    .ccstl-hero-spirit .ccstl-hero-spirit-body { font-size: 17px; margin-bottom: 24px; }
    .ccstl-hero-spirit .ccstl-hero-spirit-button { font-size: 11px; padding: 15px 20px; }
    .ccstl-hero-spirit .ccstl-hero-arrows { justify-content: center; margin-top: 28px; gap: 14px; }
    /* Preserve readable artwork; simplify the frame instead of shrinking its stars. */
    .ccstl-hero-spirit-frame img { display: none; }
    .ccstl-hero-spirit-frame { inset: 14px; border: 1px solid #b4823b; }
}
