/* SCR-WEB-SHELL · registry: docs/03-product/screens.md */
/* Public website, hero «Contenida» (2026-10-08). Layout only: every colour, size, radius
   and component comes from brand/tokens.css and brand/components.css (design-system/). The
   website is light-only on purpose: it shows the product's real screens in their real colours. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font-size: var(--fs-18); }
p { margin: 0; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
a { color: var(--link); }
img { max-width: 100%; }
.wrap { max-width: 1160px; margin: 0 auto; padding-inline: var(--space-4); }
.skip { position: absolute; left: -999px; }
.skip:focus { left: var(--space-4); top: var(--space-4); background: var(--surface); padding: var(--space-2) var(--space-4); z-index: 10; }

/* ---------- header ---------- */
.site-head { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; }
.site-head .wrap { display: flex; align-items: center; gap: var(--space-6); min-height: 72px; }
.site-nav { display: flex; gap: var(--space-6); margin-left: auto; font-size: var(--fs-16); font-weight: 500; }
.site-nav a { color: var(--fg); text-decoration: none; }
.site-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-menu { display: none; position: relative; }
.site-menu summary { list-style: none; width: 44px; height: 44px; display: grid; place-content: center; gap: 5px; cursor: pointer; border-radius: var(--radius-m); }
.site-menu summary::-webkit-details-marker { display: none; }
.site-menu summary span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--fg); }
.site-menu nav { position: absolute; right: 0; top: 52px; min-width: 220px; display: grid; padding: var(--space-2); background: var(--surface); border-radius: var(--radius-m); box-shadow: var(--shadow-lift); }
.site-menu nav a { padding: var(--space-3); color: var(--fg); text-decoration: none; border-radius: var(--radius-s); font-size: var(--fs-16); }
.site-menu nav a:hover { background: var(--surface-2); }
@media (max-width: 860px) {
  .site-nav { display: none; }
  .site-head .ds-btn { margin-left: auto; }
  .site-head .wrap { gap: var(--space-3); min-height: 64px; }
  .site-menu { display: block; }
}

/* ---------- hero «Contenida» ---------- */
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; padding-block: var(--space-10) var(--space-16); }
.hero-copy { display: grid; gap: var(--space-5); align-content: center; min-width: 0; }
.hero h1 { font-size: clamp(42px, 6.6vw, var(--fs-80)); /* three fixed lines: the rotating word sits alone on the second, so a longer word never reflows the rest */ line-height: 1.02; font-weight: 700; letter-spacing: -0.035em; text-wrap: wrap; }
.hero .lead { font-size: clamp(var(--fs-18), 2vw, 21px); max-width: 32ch; }
.hero .ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-2); }
.hero .fine { font-size: var(--fs-14); color: var(--muted); }
.hero .fine + .fine { margin-top: calc(var(--space-3) * -1); }
.hero .fine a { color: var(--fg); font-weight: 600; }
.hero-visual { position: relative; display: grid; place-items: center; min-height: 600px; }
.sun-disc { position: absolute; width: min(440px, 92%); aspect-ratio: 1; border-radius: 50%; background: var(--sun); }
.hero-phone { transform: rotate(-3deg); }
.hero-phone .body { padding-top: var(--space-4); justify-items: center; }
.hero-phone .ds-pass { box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.4); }
.hero-answer { position: absolute; left: 0; bottom: -4px; width: min(330px, 82%); padding: var(--space-4) var(--space-5); gap: var(--space-3); transform: rotate(-1.5deg); box-shadow: var(--shadow-device); }
.hero-answer h2 { font-size: var(--fs-18); }
.hero-answer .ds-chain b { font-size: var(--fs-16); }
.hero-answer .ds-chain > div { padding: var(--space-2) var(--space-3); flex-basis: 70px; }
@media (max-width: 900px) {
  .hero .wrap { grid-template-columns: 1fr; padding-block: var(--space-6) var(--space-12); }
  .hero-visual { min-height: 560px; }
}
/* /para-agencias: the portfolio fanned out, and the report the agency shows a client (SCR-WEB-AGENCIES) */
.agency-stack { position: relative; width: min(330px, 86%); height: 400px; margin-top: -90px; }
.agency-card { position: absolute; inset: auto 0 auto 0; padding: var(--space-4) var(--space-5); gap: var(--space-2); box-shadow: var(--shadow-device); }
.agency-card:nth-child(1) { top: 0; transform: rotate(-5deg) translateX(-22px); }
.agency-card:nth-child(2) { top: 128px; transform: rotate(2deg) translateX(30px); }
.agency-card:nth-child(3) { top: 256px; transform: rotate(-2deg) translateX(-10px); }
.agency-card .who { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); }
.agency-card .who i { width: 34px; height: 34px; border-radius: 9px; background: var(--biz); color: #fff; display: grid; place-items: center; font: 700 var(--fs-12)/1 var(--font-sans); font-style: normal; }
.agency-card .who span { font-size: var(--fs-12); color: var(--muted); }
.agency-card p { margin: 0; font-size: var(--fs-14); color: var(--muted); }
.agency-card .fig { font-size: var(--fs-14); }
.agency-card .fig b { font: 600 var(--fs-20)/1 var(--font-mono); }
.agency-answer { right: -8px; left: auto; bottom: -24px; transform: rotate(1.5deg); }
.agency-visual { min-height: 640px; }
@media (max-width: 900px) { .agency-stack { margin-top: -80px; } .agency-visual { min-height: 600px; } }
@media (max-width: 420px) { .hero-phone { --phone-w: 236px !important; } .hero-answer { width: 92%; } }

/* the rotating word wears the rótulo highlight (design-system Highlight) */
.word { display: inline-block; position: relative; isolation: isolate; padding: 0 0.12em; margin: 0 -0.02em; white-space: nowrap; vertical-align: baseline; line-height: 1.02; transition: width 0.5s var(--ease-spring); }
.word::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0.06em; bottom: -0.04em; background: var(--pumpkin); border-radius: 0.16em; }
.word .word-text { display: inline-flex; overflow: hidden; padding-block: 0.12em; margin-block: -0.12em; vertical-align: bottom; }
.word .ch { display: inline-block; transform: translateY(0); opacity: 1; transition: transform 0.42s cubic-bezier(0.2, 0.9, 0.25, 1.15), opacity 0.3s ease; }
.word .ch.gone { transform: translateY(-105%); opacity: 0; transition-timing-function: cubic-bezier(0.5, 0, 0.75, 0), ease; }
.word .ch.below { transform: translateY(105%); opacity: 0; transition: none; }
.word .measure { position: absolute; visibility: hidden; white-space: nowrap; left: 0; top: 0; }
@media (prefers-reduced-motion: reduce) { .word, .word .ch { transition: none; } }

/* ---------- trust row ---------- */
.trust { background: var(--surface); }
.trust .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); padding-block: var(--space-8); }
.trust .wrap > div { display: flex; gap: var(--space-3); align-items: center; min-width: 0; }
.trust img { flex: none; }
.trust p { font-size: var(--fs-14); color: var(--muted); }
.trust b { display: block; color: var(--fg); font-size: var(--fs-16); }
@media (max-width: 860px) { .trust .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) {
  .trust .wrap { grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-3); padding-block: var(--space-6); }
  .trust .wrap > div { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .trust img { width: 44px; height: 44px; }
}

/* ---------- sections ---------- */
.section { padding-block: var(--space-16) 0; }
.section-head { display: grid; gap: var(--space-2); max-width: 62ch; margin-bottom: var(--space-8); }
.section-head h2, .example h2 { font-size: clamp(30px, 4vw, var(--fs-40)); line-height: 1.08; font-weight: 700; letter-spacing: -0.025em; }
.section-head p { color: var(--muted); }
.section-head.with-art { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 260px); align-items: end; gap: var(--space-8); }
.section-head.with-art > div { display: grid; gap: var(--space-2); max-width: 62ch; }
.section-head.with-art img { width: 100%; height: auto; border-radius: var(--radius-l); }
@media (max-width: 760px) { .section-head.with-art { grid-template-columns: 1fr; } .section-head.with-art img { max-width: 360px; } }
@media (max-width: 600px) { .section { padding-block: var(--space-12) 0; } }

/* how it works: a real sequence, so numbered */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.steps li { background: var(--surface); border-radius: var(--radius-l); padding: var(--space-6) var(--space-5); display: grid; gap: var(--space-3); align-content: start; min-width: 0; }
.steps li:nth-child(2) { background: var(--surface-2); }
.steps li:nth-child(3) { background: #e9f1e1; }
.steps img { width: 104px; height: 104px; }
.steps .n { font: 500 var(--fs-14)/1 var(--font-mono); color: var(--muted); }
.steps h3 { font-size: var(--fs-20); line-height: 1.25; letter-spacing: -0.01em; }
.steps p { font-size: var(--fs-16); color: var(--muted); }
@media (max-width: 980px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .steps { grid-template-columns: 1fr; gap: var(--space-3); }
  .steps li { grid-template-columns: 72px 1fr; column-gap: var(--space-4); row-gap: var(--space-1); padding: var(--space-4); align-items: start; }
  .steps img { grid-row: 1 / span 3; width: 72px; height: 72px; }
  .steps .n { display: none; }
  .steps h3 { font-size: var(--fs-18); }
  .steps p { font-size: var(--fs-14); }
}
