.public-page {
    min-height: 100vh;
    background: var(--color-background);
    background-image: none;
}

.public-container {
    width: min(1160px, calc(100% - 40px));
    margin-inline: auto;
}

.public-page h1,
.public-page h2,
.public-page h3 {
    letter-spacing: 0;
    text-transform: none;
}

.public-page h2 {
    max-width: 800px;
    margin: 0;
    padding: 0;
    font-size: 2.5rem;
    line-height: 1.15;
    text-align: left;
}

.public-page h2::after,
.public-page h3::after {
    content: none;
}

.public-page .btn-cta,
.public-page .btn-outline {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border-radius: var(--radius-sm);
    font-family: var(--font-titulos);
    font-size: var(--font-size-small);
    letter-spacing: 0;
    line-height: 1.2;
}

.public-page .btn-cta {
    border: 1px solid var(--color-accent);
    color: var(--color-on-accent);
    background: var(--color-accent);
}

.public-page .btn-cta:hover {
    color: var(--color-on-accent);
    background: var(--color-accent-hover);
    box-shadow: var(--shadow-glow);
}

.public-page .btn-outline {
    border: 1px solid rgba(249, 250, 251, 0.6);
}

.public-page .btn-outline:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}

.public-hero {
    position: relative;
    isolation: isolate;
    min-height: min(680px, calc(100svh - 160px));
    display: grid;
    align-items: center;
    overflow: hidden;
    background-position: center;
    background-size: cover;
}

.home-hero { background-image: url("../../img/mirai-studio-hero.webp"); }
.artists-hero { background-image: url("../../img/mirai-artists-hero.webp"); }
.creators-hero { background-image: url("../../img/mirai-creators-hero.webp"); }
.media-games-hero { background-image: url("../../img/mirai-studio-hero.webp"); background-position: 42% center; }

.public-hero__shade {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: rgba(3, 8, 15, 0.66);
}

.public-hero__content {
    padding-block: var(--space-10);
}

.public-hero__content h1 {
    max-width: 780px;
    margin: 0 0 var(--space-5);
    font-size: 3.75rem;
    line-height: 1.04;
    text-wrap: balance;
}

.public-hero__content > p:not(.public-eyebrow) {
    max-width: 620px;
    color: #d5dce7;
    font-size: 1.2rem;
}

.public-eyebrow {
    margin-bottom: var(--space-3);
    color: var(--color-accent);
    font-family: var(--font-subtitulos);
    font-size: var(--font-size-small);
    font-weight: 700;
    text-transform: uppercase;
}

.public-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.public-section,
.public-band,
.public-cta {
    padding-block: 96px;
}

.public-band {
    border-block: var(--border-subtle);
    background: var(--color-surface);
}

.public-band--compact { padding-block: 48px; }

.value-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}

.value-strip p {
    color: var(--color-text-secondary);
    line-height: 1.55;
}

.value-strip strong {
    display: block;
    margin-bottom: var(--space-2);
    color: var(--color-text-primary);
    font-family: var(--font-subtitulos);
    font-size: 1.15rem;
}

.vertical-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-8);
}

.vertical-card {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    padding: var(--space-6);
    border: var(--border-subtle);
    border-radius: var(--radius-md);
    background: var(--color-surface-elevated);
}

.vertical-card__index,
.service-capabilities article > span {
    color: var(--color-accent);
    font-family: var(--font-subtitulos);
    font-size: var(--font-size-small);
}

.vertical-card h3,
.service-capabilities h3 {
    margin: var(--space-5) 0 var(--space-3);
    padding: 0;
    font-size: 1.55rem;
}

.vertical-card > p:not(.vertical-card__index),
.service-capabilities p,
.section-copy {
    color: var(--color-text-secondary);
}

.vertical-card a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: auto;
    padding-top: var(--space-5);
    color: var(--color-accent);
    font-family: var(--font-titulos);
    font-size: var(--font-size-small);
}

.vertical-card a:hover,
.text-link:hover { text-decoration: underline; }

.offers-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(340px, 1.1fr);
    align-items: start;
    gap: var(--space-10);
}

.offers-layout .section-copy { margin-top: var(--space-5); }

.offer-list,
.process-list,
.artist-process {
    list-style: none;
}

.offer-list li {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-4) 0;
    border-bottom: var(--border-subtle);
    font-family: var(--font-subtitulos);
    font-size: 1.25rem;
}

.offer-list span,
.process-list span,
.artist-process span {
    color: var(--color-accent);
    font-size: var(--font-size-small);
}

.public-page .home-portfolio {
    position: relative;
    left: auto;
    width: auto;
    padding-block: 96px;
    transform: none;
}

.public-section__heading,
.proof-callout__inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.text-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: var(--color-accent);
    font-family: var(--font-titulos);
    font-size: var(--font-size-small);
}

.carousel-container {
    position: relative;
    margin-top: var(--space-8);
}

.public-page .scrolling-wrapper {
    min-height: 250px;
    padding: var(--space-4) max(6%, calc((100vw - 1160px) / 2));
    cursor: auto;
    scroll-snap-type: x proximity;
}

.public-page .scrolling-card {
    border-radius: var(--radius-md);
    scroll-snap-align: start;
}

.public-page .scrolling-card:hover { transform: translateY(-4px); }

.public-empty {
    width: 100%;
    align-self: center;
    padding: var(--space-8) var(--space-5);
    color: var(--color-text-secondary);
    text-align: center;
}

.process-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
    margin-top: var(--space-8);
}

.process-list li { border-top: 1px solid var(--color-accent); padding-top: var(--space-4); }
.process-list strong { display: block; margin: var(--space-3) 0 var(--space-2); font-family: var(--font-subtitulos); font-size: 1.2rem; }
.process-list p { color: var(--color-text-secondary); }

.public-cta { text-align: center; }
.public-cta h2 { margin-inline: auto; text-align: center; }
.public-cta .btn-cta { margin-top: var(--space-6); }
.public-actions--center { justify-content: center; }
.public-cta .public-actions--center .btn-cta { margin-top: 0; }

.artists-intro {
    display: grid;
    grid-template-columns: 0.75fr 1.25fr;
    gap: var(--space-8);
    align-items: start;
}

.creators-value {
    display: grid;
    grid-template-columns: 0.55fr 1.25fr 0.8fr;
    gap: var(--space-8);
    align-items: start;
}

.creators-value h2 { font-size: 2rem; }
.creators-value > p:last-child { color: var(--color-text-secondary); }

.artists-intro > p:last-child { max-width: 720px; font-size: 1.25rem; }

.service-capabilities {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-8);
}

.service-capabilities article {
    grid-column: span 2;
    min-height: 230px;
    padding: var(--space-5);
    border-top: 1px solid var(--color-accent);
    background: #0e1522;
}

.service-capabilities article:nth-child(4) { grid-column: 2 / span 2; }
.creator-capabilities article,
.creator-capabilities article:nth-child(4),
.creator-capabilities article:last-child { grid-column: span 2; }

.media-capabilities { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.media-capabilities article,
.media-capabilities article:nth-child(4),
.media-capabilities article:last-child { grid-column: auto; }

.application-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
    margin-top: var(--space-8);
}

.application-grid article {
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-accent);
}

.application-grid h3 {
    margin: 0 0 var(--space-3);
    padding: 0;
    font-size: 1.35rem;
}

.application-grid p { color: var(--color-text-secondary); }

.artist-process li {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: var(--space-3);
    padding: var(--space-4) 0;
    border-bottom: var(--border-subtle);
}

.artist-process strong { display: block; margin-bottom: var(--space-1); font-family: var(--font-subtitulos); font-size: 1.15rem; }
.artist-process p { color: var(--color-text-secondary); }
.proof-callout { border-top: var(--border-subtle); }
.proof-callout .section-copy { max-width: 700px; margin-top: var(--space-4); }
.proof-callout .btn-outline { flex: 0 0 auto; }

@media (max-width: 900px) {
    .public-hero { background-position: 60% center; }
    .public-hero__content h1 { max-width: 680px; font-size: 3rem; }
    .offers-layout { grid-template-columns: 1fr; gap: var(--space-8); }
    .service-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-capabilities article,
    .service-capabilities article:nth-child(4) { grid-column: auto; }
    .service-capabilities article:last-child { grid-column: 1 / -1; }
    .creator-capabilities article,
    .creator-capabilities article:nth-child(4),
    .creator-capabilities article:last-child { grid-column: auto; }
    .media-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .public-container { width: min(100% - 32px, 1160px); }
    .public-page h2 { font-size: 2rem; }
    .public-hero { background-position: 66% center; }
    .public-hero__content { padding-block: var(--space-8); }
    .public-hero__shade { background: rgba(3, 8, 15, 0.72); }
    .public-hero__content h1 { font-size: 2.45rem; }
    .public-hero__content > p:not(.public-eyebrow) { max-width: 90%; font-size: 1.05rem; }
    .public-section,
    .public-band,
    .public-cta,
    .public-page .home-portfolio { padding-block: 72px; }
    .public-band--compact { padding-block: 40px; }
    .value-strip,
    .vertical-grid,
    .process-list,
    .artists-intro,
    .creators-value,
    .application-grid { grid-template-columns: 1fr; }
    .vertical-card { min-height: 260px; }
    .public-section__heading,
    .proof-callout__inner { align-items: flex-start; flex-direction: column; }
    .service-capabilities { grid-template-columns: 1fr; }
    .media-capabilities { grid-template-columns: 1fr; }
    .service-capabilities article:last-child { grid-column: auto; }
    .carousel-btn { display: none; }
    .public-page .scrolling-wrapper { padding-inline: 16px; }
}

@media (max-width: 430px) {
    .public-hero { background-position: 70% center; }
    .public-hero__content h1 { font-size: 2.1rem; }
    .public-actions { align-items: stretch; flex-direction: column; }
    .public-actions a { width: 100%; }
    .offer-list li { font-size: 1.1rem; }
    .public-page .input-group { align-items: stretch; flex-direction: column; }
    .public-page .input-group input,
    .public-page .input-group button { width: 100%; min-width: 0; }
}

@media (max-height: 600px) {
    .public-hero__content { padding-block: var(--space-5); }
    .public-hero__content h1 { font-size: 2rem; margin-bottom: var(--space-3); }
    .public-hero .public-actions { margin-top: var(--space-4); }
}
