/* ========================================================================== */
/* CASTING MEXICO — IDENTIDAD PUBLICA 2026                                    */
/* ========================================================================== */
:root {
    --cm-scene: #e83d5b;
    --cm-scene-hover: #c92e4a;
    --cm-forum: #17131d;
    --cm-light: #f7f2e8;
    --cm-spot: #f3c969;
    --cm-network: #36b7a6;
    --cm-aluminum: #bfc4ca;
    --cm-white: #fff;
    --cm-surface: #fcfaf6;
    --cm-border: #ddd6cc;
    --cm-muted: #5e5865;
    --cm-focus: 0 0 0 4px rgba(54,183,166,.35);
}

.public-site { color: var(--cm-forum); background: var(--cm-light); font-family: Inter, Arial, Helvetica, sans-serif; }
.public-site h1, .public-site h2, .public-site h3, .public-site h4 { font-family: Inter, Arial, Helvetica, sans-serif; font-weight: 800; }
.public-site :focus-visible { outline: 0; box-shadow: var(--cm-focus); }
.public-site .eyebrow { margin-bottom: 22px; color: var(--cm-scene); font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.site-header { background: rgba(23,19,29,.97); border-color: rgba(247,242,232,.14); backdrop-filter: blur(14px); }
.site-header-inner { max-width: 1280px; min-height: 76px; padding-inline: 24px; }
.site-brand { min-height: 64px; display: flex; align-items: center; gap: 12px; overflow: hidden; text-decoration: none; }
.site-brand img { width: 48px; height: 48px; flex: 0 0 auto; display: block; }
.site-brand > span { color: var(--cm-light); font-size: .92rem; font-weight: 900; letter-spacing: .08em; white-space: nowrap; }
.site-brand small { margin-top: 3px; display: block; color: var(--cm-scene); font-size: .42rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.site-menu { gap: clamp(14px,1.8vw,28px); color: var(--cm-light); }
.site-menu a { min-height: 44px; display: inline-flex; align-items: center; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: none; }
.site-menu a:not(.site-contact-link):hover { color: var(--cm-scene); opacity: 1; }
.site-contact-link { padding: 0 20px; border: 0; border-radius: 999px; color: #fff; background: var(--cm-scene); }
.site-contact-link:hover { color: #fff; background: var(--cm-scene-hover); }
.site-login-link { padding-inline: 17px; border: 1px solid #514a55; border-radius: 999px; }
.site-login-link:hover { border-color: var(--cm-light); }
.menu-toggle { min-width: 52px; min-height: 44px; color: var(--cm-light); font: 700 .76rem Inter,Arial,sans-serif; }

.cm-hero { min-height: calc(40.96vh - 31px); overflow: hidden; color: var(--cm-light); background: var(--cm-forum); }
.cm-hero-inner { width: min(calc(100% - 48px),1280px); min-height: calc(40.96vh - 31px); margin: auto; padding-block: clamp(24px,2.56vw,51px); display: grid; grid-template-columns: minmax(0,1.08fr) minmax(300px,.92fr); align-items: center; gap: clamp(19px,3.52vw,51px); }
.cm-hero-copy { position: relative; z-index: 2; }
.cm-hero-copy h1 { max-width: 850px; margin: 0; font-size: clamp(3.7rem,7.2vw,7.4rem); font-weight: 900; letter-spacing: -.065em; line-height: .91; }
.cm-hero-copy h1 span { color: inherit; }
.cm-hero-copy > p:not(.eyebrow) { max-width: 680px; margin: 34px 0; color: #d8d2dc; font-size: clamp(1rem,1.4vw,1.2rem); line-height: 1.65; }
.btn-editorial { min-height: 50px; padding: 0 23px; border-radius: 999px; font-family: Inter,Arial,sans-serif; font-size: .88rem; font-weight: 700; letter-spacing: 0; text-transform: none; transition: transform 220ms cubic-bezier(.2,.8,.2,1), background-color 220ms ease, color 220ms ease; }
.btn-editorial:hover { transform: translateY(-2px); }
.btn-coral { border-color: var(--cm-scene); color: #fff !important; background: var(--cm-scene); }
.btn-coral:hover { border-color: var(--cm-scene-hover); background: var(--cm-scene-hover); }
.btn-spot { border-color: var(--cm-spot); color: var(--cm-forum) !important; background: var(--cm-spot); }
.btn-spot:hover { border-color: #e0b34a; background: #e0b34a; }
.btn-dark { border-color: var(--cm-forum); color: var(--cm-light) !important; background: var(--cm-forum); }
.btn-dark:hover { border-color: var(--cm-scene); background: var(--cm-scene); }
.cm-hero-mark { position: relative; width: min(28.8vw,336px); aspect-ratio: 1; justify-self: end; display: grid; place-items: center; }
.cm-hero-mark img { position: relative; z-index: 2; width: 76%; height: 76%; filter: drop-shadow(0 24px 38px rgba(0,0,0,.36)); }
.cm-hero-mark::after { content: "CASTINGMEXICO.NET"; position: absolute; right: -34px; bottom: 18px; color: var(--cm-scene); font-size: .67rem; font-weight: 800; letter-spacing: .2em; writing-mode: vertical-rl; }
.orbit { position: absolute; border: 1px solid rgba(191,196,202,.22); border-radius: 50%; }
.orbit-one { inset: 4%; }
.orbit-two { inset: 14%; border-color: rgba(232,61,91,.25); }

.cm-trust { padding: 28px max(24px,calc((100vw - 1280px)/2)); display: grid; grid-template-columns: repeat(4,1fr); color: var(--cm-forum); background: var(--cm-white); border-bottom: 1px solid var(--cm-border); }
.cm-trust div { min-width: 0; padding: 8px clamp(18px,2.5vw,36px); border-right: 1px solid var(--cm-border); }
.cm-trust div:first-child { padding-left: 0; }
.cm-trust div:last-child { border-right: 0; }
.cm-trust strong, .cm-trust span { display: block; }
.cm-trust strong { margin-bottom: 5px; font-size: .82rem; }
.cm-trust strong::before { content: none; }
.cm-trust span { color: var(--cm-muted); font-size: .72rem; line-height: 1.45; }

.cm-projects { padding: clamp(76px,9vw,118px) max(24px,calc((100vw - 1280px)/2)); scroll-margin-top: 76px; }
.cm-section-heading { margin-bottom: clamp(42px,6vw,68px); display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.cm-section-heading h2 { margin: 0; font-size: clamp(2.55rem,5.2vw,5.2rem); font-weight: 900; letter-spacing: -.055em; line-height: .98; }
.cm-section-heading > a { min-height: 44px; display: inline-flex; align-items: center; gap: 18px; border-bottom: 2px solid var(--cm-scene); font-weight: 700; text-decoration: none; white-space: nowrap; }
.cm-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.cm-project-grid article { min-height: 355px; padding: clamp(26px,3vw,38px); display: flex; flex-direction: column; align-items: flex-start; border: 1px solid var(--cm-border); border-radius: 18px; background: var(--cm-white); box-shadow: 0 4px 14px rgba(23,19,29,.08); }
.cm-project-grid article > span { padding: 7px 12px; border-radius: 999px; color: var(--cm-scene-hover); background: #fde3e9; font-size: .72rem; font-weight: 800; }
.cm-project-grid article > strong { margin: 28px 0 auto; color: var(--cm-scene); font-size: .7rem; }
.cm-project-grid h3 { margin: 18px 0 12px; font-size: clamp(1.4rem,2.3vw,2.05rem); letter-spacing: -.035em; line-height: 1.05; }
.cm-project-grid p { margin: 0 0 24px; color: var(--cm-muted); line-height: 1.65; }
.cm-project-grid small { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--cm-border); color: var(--cm-muted); line-height: 1.45; }

.talent-section { max-width: 1280px; padding: clamp(76px,9vw,118px) 24px; scroll-margin-top: 76px; }
.section-heading { margin-bottom: clamp(42px,6vw,72px); grid-template-columns: 1.25fr .75fr; }
.section-heading h2, .cm-paths h2, .cm-services h2, .cm-security h2 { margin: 0; font-size: clamp(2.55rem,5.2vw,5.2rem); font-weight: 900; letter-spacing: -.055em; line-height: .98; }
.section-heading > p { color: var(--cm-muted); line-height: 1.7; }
.directory-filters { margin: -18px 0 34px; padding: 18px; display: grid; grid-template-columns: 1fr 1.4fr auto auto; align-items: end; gap: 12px; border: 1px solid var(--cm-border); background: var(--cm-surface); }
.directory-filters label { display: grid; gap: 7px; color: var(--cm-muted); font-size: .72rem; font-weight: 700; }
.directory-filters [hidden] { display: none !important; }
.directory-filters select { min-height: 46px; padding: 0 12px; border: 1px solid var(--cm-border); color: var(--cm-forum); background: var(--cm-white); }
.directory-filters > a { min-height: 46px; display: inline-flex; align-items: center; color: var(--cm-scene); font-size: .78rem; font-weight: 700; }
.editorial-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.talent-card { overflow: hidden; border-radius: 18px; color: var(--cm-light) !important; background: var(--cm-forum); box-shadow: 0 12px 32px rgba(23,19,29,.12); }
.talent-photo { aspect-ratio: 4/5; background: #d8d2c8; }
.talent-photo img { filter: saturate(.9); }
.view-profile { right: 14px; bottom: 14px; padding: 10px 14px; transform: translateY(8px); border-radius: 999px; color: var(--cm-forum); background: var(--cm-spot); opacity: 0; }
.talent-card:hover .view-profile, .talent-card:focus-visible .view-profile { transform: translateY(0); opacity: 1; }
.talent-meta { min-height: 105px; padding: 20px; align-items: end; border: 0; }
.talent-meta > div > span { display: block; margin-bottom: 7px; color: var(--cm-network); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.talent-meta h3 { font: 800 clamp(1.35rem,2vw,1.85rem) Inter,Arial,sans-serif; }
.talent-meta small { max-width: 230px; display: block; margin-top: 6px; overflow: hidden; color: #d5ced8; font-size: .7rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.talent-meta p { color: #bdb7c1; text-align: right; }
.empty-state { padding: 48px; display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--cm-border); border-radius: 18px; text-align: center; background: var(--cm-surface); }
.empty-state span { color: var(--cm-muted); }
.editorial-pagination a { border-radius: 50%; border-color: var(--cm-border); }
.editorial-pagination a.active { background: var(--cm-forum); }

.cm-paths { padding: clamp(76px,9vw,118px) max(24px,calc((100vw - 1280px)/2)); display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 22px; scroll-margin-top: 76px; background: var(--cm-white); }
.cm-paths-heading { padding-right: clamp(0px,3vw,44px); align-self: center; }
.cm-path { min-height: 420px; padding: clamp(30px,3.5vw,48px); display: flex; flex-direction: column; align-items: flex-start; border-radius: 22px; }
.cm-path > span { margin-bottom: auto; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cm-path h3 { margin: 42px 0 18px; font-size: clamp(1.8rem,3vw,3rem); line-height: 1; letter-spacing: -.04em; }
.cm-path p { margin: 0 0 30px; line-height: 1.65; }
.cm-path strong { margin-top: auto; font-size: .84rem; }
.cm-path small { margin-top: 6px; line-height: 1.5; }
.cm-path-talent { color: var(--cm-light); background: var(--cm-scene); }
.cm-path-talent > span, .cm-path-talent small { color: #fbd5dc; }
.cm-path-producer { color: var(--cm-forum); background: var(--cm-spot); }
.cm-path-producer > span { color: #72560f; }
.cm-path-producer .btn-editorial { margin-top: auto; }

.cm-services { padding: clamp(82px,10vw,132px) max(24px,calc((100vw - 1280px)/2)); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(55px,9vw,120px); color: var(--cm-light); background: var(--cm-forum); scroll-margin-top: 76px; }
.cm-services-copy > p:not(.eyebrow) { max-width: 570px; margin-top: 32px; color: #bdb7c1; line-height: 1.7; }
.cm-services ol { margin: 0; padding: 0; list-style: none; }
.cm-services li { padding: 27px 0; display: grid; grid-template-columns: 55px 1fr; gap: 15px; border-top: 1px solid #443d49; }
.cm-services li:last-child { border-bottom: 1px solid #443d49; }
.cm-services li > span { color: var(--cm-scene); font-size: .72rem; font-weight: 800; }
.cm-services h3 { margin: 0 0 8px; font-size: 1.25rem; }
.cm-services li p { margin: 0; color: #bdb7c1; line-height: 1.6; }

.cm-security { width: min(calc(100% - 48px),1280px); margin: auto; padding-block: clamp(78px,10vw,135px); display: grid; grid-template-columns: minmax(250px,.7fr) minmax(0,1.3fr); align-items: center; gap: clamp(45px,9vw,120px); }
.cm-security > img { width: min(100%,380px); padding: 30px; border-radius: 50%; background: var(--cm-forum); }
.cm-security > div > p:not(.eyebrow) { max-width: 680px; margin: 30px 0; color: var(--cm-muted); font-size: 1.05rem; line-height: 1.75; }
.cm-security ol { margin: 0 0 30px; padding: 0; list-style: none; }
.cm-security li { padding: 17px 0; display: grid; grid-template-columns: 48px 1fr; gap: 14px; border-top: 1px solid var(--cm-border); }
.cm-security li:last-child { border-bottom: 1px solid var(--cm-border); }
.cm-security li > strong { color: var(--cm-scene); font-size: .7rem; }
.cm-security li > span { font-weight: 800; }
.cm-security li small { margin-top: 3px; display: block; color: var(--cm-muted); font-weight: 400; }
.cm-security a { min-height: 44px; display: inline-flex; align-items: center; gap: 16px; border-bottom: 2px solid var(--cm-scene); font-weight: 700; text-decoration: none; }
.contact-banner { padding: clamp(80px,10vw,130px) 24px; color: #fff; background: var(--cm-scene); }
.contact-banner .eyebrow { color: #fff; }
.contact-banner h2 { font-size: clamp(2.8rem,6.5vw,6.5rem); font-weight: 900; letter-spacing: -.06em; line-height: .94; }
.btn-light { border-color: #fff; color: var(--cm-forum) !important; background: #fff; }
.btn-light:hover { color: #fff !important; background: transparent; }

.site-footer { padding: 72px 24px 24px; color: var(--cm-light); background: var(--cm-forum); }
.site-footer-grid, .site-footer-bottom { max-width: 1280px; }
.site-footer-grid { grid-template-columns: 1.6fr .7fr .7fr; }
.site-footer img { width: 280px; max-width: 100%; filter: none; opacity: 1; }
.site-footer p { color: #aaa4ae; }
.footer-label { color: #8e8792; }
.site-footer-bottom { border-color: #3f3844; color: #8e8792; }
.whatsapp-float { min-height: 52px; border-radius: 999px; color: #fff !important; background: var(--cm-scene); font-family: Inter,Arial,sans-serif; box-shadow: 0 12px 32px rgba(23,19,29,.24); }
.whatsapp-float:hover { background: var(--cm-scene-hover); }

@media (max-width: 1000px) {
    .cm-hero-inner { grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); }
    .cm-paths { grid-template-columns: 1fr 1fr; }
    .cm-paths-heading { grid-column: 1 / -1; margin-bottom: 24px; }
    .cm-services { grid-template-columns: 1fr; }
}

@media (max-width: 1080px) {
    .menu-toggle { display: block; }
    .site-menu { position: absolute; top: 76px; left: 0; right: 0; padding: 14px 24px 22px; display: none; flex-direction: column; align-items: stretch; gap: 2px; color: var(--cm-light); background: var(--cm-forum); border-top: 1px solid #403944; }
    .site-menu.is-open { display: flex; }
    .site-menu a { width: 100%; padding-inline: 12px; }
    .site-contact-link, .site-login-link { margin-top: 8px; justify-content: center; }
}

@media (max-width: 760px) {
    .site-header-inner { min-height: 70px; padding-inline: 16px; }
    .site-brand { min-height: 60px; }
    .site-brand img { width: 43px; height: 43px; }
    .site-brand > span { font-size: .78rem; }
    .menu-toggle { display: block; }
    .site-menu { position: absolute; top: 70px; left: 0; right: 0; padding: 14px 16px 20px; display: none; flex-direction: column; align-items: stretch; gap: 2px; color: var(--cm-light); background: var(--cm-forum); border-top: 1px solid #403944; }
    .site-menu.is-open { display: flex; }
    .site-menu a { width: 100%; padding-inline: 12px; }
    .site-contact-link { margin-top: 8px; justify-content: center; }
    .cm-hero-inner { width: min(calc(100% - 32px),1280px); min-height: auto; padding-block: 6px 8px; grid-template-columns: 1fr; gap: 0; }
    .cm-hero-copy h1 { font-size: clamp(2.8rem,12.6vw,4.8rem); }
    .cm-hero-copy > p:not(.eyebrow) { margin-block: 18px; font-size: .95rem; line-height: 1.5; }
    .hero-actions { gap: 8px; }
    .hero-actions .btn-editorial { min-height: 44px; }
    .cm-hero-mark { display: none; }
    .cm-hero-mark::after { display: none; }
    .cm-trust { padding: 18px 16px; grid-template-columns: 1fr 1fr; }
    .cm-trust div { padding: 14px; border-bottom: 1px solid var(--cm-border); }
    .cm-trust div:nth-child(2) { border-right: 0; }
    .cm-trust div:nth-child(3), .cm-trust div:nth-child(4) { border-bottom: 0; }
    .cm-section-heading { align-items: flex-start; flex-direction: column; }
    .cm-project-grid { grid-template-columns: 1fr; }
    .section-heading { grid-template-columns: 1fr; align-items: start; }
    .editorial-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .directory-filters { grid-template-columns: 1fr; }
    .cm-paths { grid-template-columns: 1fr; padding-inline: 16px; }
    .cm-paths-heading { grid-column: auto; }
    .cm-path { min-height: 380px; }
    .cm-services { padding-inline: 24px; }
    .cm-security { width: min(calc(100% - 32px),1280px); grid-template-columns: 1fr; }
    .cm-security > img { width: min(72vw,320px); margin: auto; }
    .site-footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .hero-actions { flex-direction: column; }
    .hero-actions .btn-editorial { width: 100%; }
    .cm-trust { grid-template-columns: 1fr; }
    .cm-trust div { padding: 14px 0; border-right: 0; border-bottom: 1px solid var(--cm-border) !important; }
    .cm-trust div:last-child { border-bottom: 0 !important; }
    .cm-projects { padding-inline: 16px; }
    .talent-section { padding-inline: 16px; }
    .editorial-grid { grid-template-columns: 1fr; }
    .view-profile { opacity: 1; transform: none; }
    .talent-meta { align-items: start; flex-direction: column; }
    .talent-meta p { text-align: left; }
    .contact-banner br { display: none; }
    .whatsapp-float { right: 14px; bottom: 14px; }
}

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

/* Páginas públicas compartidas */
.contact-page { max-width: 1280px; }
.contact-intro h1, .profile-intro h1, .profile-cta h2, .contact-confirmation h1 { font-family: Inter,Arial,Helvetica,sans-serif; font-weight: 900; letter-spacing: -.055em; }
.contact-intro h1 em, .profile-intro h1 em { color: var(--cm-scene); font-style: normal; }
.contact-intro > p:not(.eyebrow), .profile-cta > div:last-child > p, .contact-confirmation > p:not(.eyebrow) { color: var(--cm-muted); }
.contact-details span { color: var(--cm-scene); }
.whatsapp-form-wrap { border: 1px solid var(--cm-border); border-radius: 18px; box-shadow: 0 12px 32px rgba(23,19,29,.08); }
.whatsapp-form input:focus, .whatsapp-form select:focus, .whatsapp-form textarea:focus { border-color: var(--cm-network); box-shadow: 0 1px 0 var(--cm-network); }
.btn-whatsapp { border-color: var(--cm-scene); background: var(--cm-scene); }
.btn-whatsapp:hover { border-color: var(--cm-scene-hover); background: var(--cm-scene-hover); }
.profile-breadcrumb, .profile-summary p { color: var(--cm-muted); }
.profile-cta { border-color: var(--cm-border); }
.profile-professional-title { margin: 16px 0 0; color: var(--cm-scene); font-size: clamp(1rem,2vw,1.35rem); font-weight: 700; }
.professional-public-profile { width: min(calc(100% - 48px),1280px); margin: 0 auto clamp(45px,7vw,80px); padding: clamp(28px,5vw,55px); display: grid; grid-template-columns: 1fr 1.2fr; gap: 28px 50px; border: 1px solid var(--cm-border); background: var(--cm-surface); }
.professional-public-profile > div > p:last-child { color: var(--cm-muted); line-height: 1.75; }
.professional-links { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 12px; }
.professional-links a { padding: 11px 14px; border-bottom: 2px solid var(--cm-scene); color: var(--cm-forum); font-weight: 700; text-decoration: none; }
.privacy-hero h1 { font-family: Inter,Arial,Helvetica,sans-serif; font-weight: 900; letter-spacing: -.055em; line-height: .94; }
.privacy-hero h1 em { color: var(--cm-scene); font-style: normal; }
.privacy-summary { border-radius: 18px; color: var(--cm-light); background: var(--cm-forum); }
.privacy-summary li::before { color: var(--cm-network); }
.privacy-content a { color: var(--cm-scene-hover); }
@media (max-width: 760px) {
    .professional-public-profile { width: min(calc(100% - 32px),1280px); grid-template-columns: 1fr; }
    .professional-links { grid-column: auto; }
}
