/* Kälida Proyectos — sistema visual premium contemporáneo · escala tipográfica refinada */
:root {
  --color_fondo: #f2f0eb;
  --color_superficie: #fbfaf7;
  --color_blanco: #ffffff;
  --color_texto: #111111;
  --color_texto_suave: #625f5a;
  --color_linea: rgba(17, 17, 17, 0.14);
  --color_linea_fuerte: rgba(17, 17, 17, 0.28);
  --color_berenjena: #321d31;
  --color_violeta: #51284f;
  --color_naranja: #ff8200;
  --color_acento: #c96a32;
  --color_exito: #2d6c3b;
  --color_error: #9a2626;
  --color_alerta: #745814;
  --fuente_display: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --fuente_texto: "Inter", "Helvetica Neue", Arial, sans-serif;
  --ancho_maximo: 1500px;
  --altura_header: 84px;
  --transicion: 180ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; max-width: 100%; overflow-x: hidden; background: var(--color_fondo); color: var(--color_texto); font-family: var(--fuente_texto); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, picture, svg, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, h4, ol, ul { margin-top: 0; }
h1, h2, h3, h4 { margin-bottom: 0; font-family: var(--fuente_display); font-weight: 500; }
h1, h2 { letter-spacing: -0.044em; }
h3, h4 { letter-spacing: -0.03em; }
h1 { font-size: clamp(3.15rem, 5.4vw, 6.25rem); line-height: 0.94; }
h2 { font-size: clamp(2.1rem, 3.7vw, 4.25rem); line-height: 0.98; }
h3 { font-size: clamp(1.2rem, 1.65vw, 1.8rem); line-height: 1.08; }
h4 { font-size: 1rem; line-height: 1.2; }
p { margin-bottom: 1.15rem; }
::selection { background: var(--color_berenjena); color: #fff; }
:focus-visible { outline: 2px solid var(--color_naranja); outline-offset: 4px; }
[hidden] { display: none !important; }
.wrap { width: min(var(--ancho_maximo), calc(100% - 64px)); margin-inline: auto; }
.section_border { border-top: 1px solid var(--color_linea); }
.skip_link { position: fixed; top: 12px; left: 12px; z-index: 500; transform: translateY(-160%); padding: 10px 14px; background: var(--color_texto); color: #fff; }
.skip_link:focus { transform: translateY(0); }

/* Navegación */
.site_header, header.site { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid var(--color_linea); background: rgba(242, 240, 235, 0.96); backdrop-filter: blur(16px); }
.topbar { display: none; }
.nav { display: grid; width: min(var(--ancho_maximo), calc(100% - 64px)); min-height: var(--altura_header); margin-inline: auto; grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr); align-items: center; gap: 28px; }
.brand { display: inline-flex; width: max-content; align-items: baseline; gap: 9px; color: var(--color_violeta); font-family: var(--fuente_display); font-size: 1.7rem; font-weight: 600; letter-spacing: -0.045em; }
.brand small { color: var(--color_texto_suave); font-family: var(--fuente_texto); font-size: 0.56rem; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase; }
.nav_links { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 2.3vw, 38px); font-size: 0.79rem; font-weight: 600; }
.nav_links a { position: relative; padding: 11px 0; }
.nav_links a::after { position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--color_texto); content: ""; transition: transform var(--transicion); }
.nav_links a:hover::after, .nav_links a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.nav_actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.nav_cta, .button, .btn { display: inline-flex; min-height: 48px; padding: 0 22px; align-items: center; justify-content: center; border: 1px solid var(--color_texto); border-radius: 0; background: var(--color_texto); color: #fff; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; transition: background var(--transicion), border-color var(--transicion), color var(--transicion); }
.nav_cta:hover, .button_dark:hover, .btn_primary:hover { border-color: var(--color_violeta); background: var(--color_violeta); }
.button_light, .btn_outline { background: transparent; color: var(--color_texto); }
.button_light:hover, .btn_outline:hover { background: var(--color_texto); color: #fff; }
.button_white { border-color: #fff; background: #fff; color: var(--color_texto); }
.button_white:hover { border-color: var(--color_naranja); background: var(--color_naranja); color: var(--color_texto); }
.button_full, .btn_block { width: 100%; }
.menu_toggle { display: none; width: 48px; height: 48px; padding: 0; border: 1px solid var(--color_linea); background: transparent; }
.menu_toggle span { display: block; width: 22px; height: 1px; margin: 6px auto; background: var(--color_texto); }

/* Tipografía editorial y enlaces */
.section_marker, .micro_label, .eyebrow, .project_story_meta, .blog_card time { display: inline-block; color: var(--color_texto_suave); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.11em; text-transform: uppercase; }
.text_link { display: inline-flex; align-items: center; gap: 9px; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.03em; }
.text_link:hover { color: var(--color_violeta); }
.link_arrow { font-family: var(--fuente_display); font-size: 1.4rem; line-height: 1; }
.section_header { display: grid; grid-template-columns: 2fr 6fr 3fr; gap: 32px; align-items: end; padding: 96px 0 44px; }
.section_header h2 { font-size: clamp(2.15rem, 3.4vw, 3.9rem); }
.section_header > p { max-width: 34rem; margin: 0; color: var(--color_texto_suave); }
.section_header > .text_link { justify-self: end; align-self: center; }
.section_header_left { grid-template-columns: 2fr 6fr 3fr; }

/* Marcos de imágenes */
.media_frame { position: relative; overflow: hidden; background: #d1cec7; }
.media_frame::after { position: absolute; inset: 0; border: 1px solid rgba(17,17,17,.08); content: ""; pointer-events: none; }
.media_frame_dark { background: #aaa49b; }
.media_note { position: absolute; bottom: 18px; left: 18px; padding: 8px 10px; background: rgba(242,240,235,.9); color: var(--color_texto); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; backdrop-filter: blur(8px); }
.ratio_landscape { aspect-ratio: 16 / 10; }
.ratio_portrait { aspect-ratio: 4 / 5; }
.ratio_portrait_wide { aspect-ratio: 4 / 4.8; }
.ratio_cinematic { aspect-ratio: 16 / 8; }
.ratio_service { aspect-ratio: 4 / 4.7; }
.ratio_editorial { aspect-ratio: 4 / 3; }

/* Inicio */
.home_hero { padding: 72px 0 96px; }
.hero_grid { display: grid; grid-template-columns: 2fr 7fr 3fr; gap: 32px; align-items: end; }
.hero_kicker { align-self: start; padding-top: 9px; color: var(--color_texto_suave); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.hero_grid h1 { max-width: 10.6ch; }
.hero_summary { max-width: 29rem; padding-bottom: 8px; color: var(--color_texto_suave); }
.hero_summary p { font-size: 1.08rem; }
.hero_actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.featured_project { display: block; margin-top: 72px; }
.media_frame_hero { aspect-ratio: 16 / 7.2; }
.featured_caption { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; padding: 24px 0 0; }
.featured_caption h2 { max-width: 20ch; margin-top: 8px; font-size: clamp(1.75rem, 2.7vw, 3.2rem); }
.editorial_grid { display: grid; grid-template-columns: 2fr 5fr 4fr 1fr; gap: 32px; padding: 96px 0; }
.editorial_grid h2 { max-width: 14ch; font-size: clamp(2.25rem, 3.6vw, 4.2rem); }
.rich_copy { grid-column: 3 / 4; max-width: 34rem; }
.rich_copy p { color: var(--color_texto_suave); }
.quiet_list { margin: 30px 0; padding: 0; list-style: none; border-top: 1px solid var(--color_linea); }
.quiet_list li { padding: 12px 0; border-bottom: 1px solid var(--color_linea); font-size: 0.84rem; }
.project_mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 20px; padding-bottom: 100px; align-items: start; }
.project_item a { display: block; }
.project_item_featured { grid-row: span 2; }
.project_caption { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; padding-top: 18px; }
.project_caption h3 { max-width: 20ch; margin-top: 7px; font-size: clamp(1.2rem, 1.55vw, 1.75rem); }
.project_caption > span { color: var(--color_texto_suave); font-size: .7rem; }
.index_rows { padding-bottom: 96px; border-top: 1px solid var(--color_linea_fuerte); }
.index_row { display: grid; grid-template-columns: 1fr 4fr 5fr auto; gap: 28px; align-items: center; min-height: 98px; border-bottom: 1px solid var(--color_linea); transition: padding var(--transicion), color var(--transicion); }
.index_row:hover { padding-inline: 14px; color: var(--color_violeta); }
.index_row > span:first-child { color: var(--color_texto_suave); font-size: .7rem; }
.index_row h3 { font-size: clamp(1.25rem, 1.65vw, 1.85rem); }
.index_row p { margin: 0; color: var(--color_texto_suave); }
.service_spotlight { padding: 84px 0; background: var(--color_berenjena); color: #fff; }
.spotlight_grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(48px, 7vw, 110px); align-items: stretch; }
.spotlight_content { display: flex; flex-direction: column; justify-content: center; max-width: 42rem; padding: 36px 0; }
.spotlight_content .micro_label { color: rgba(255,255,255,.66); }
.spotlight_content h2 { margin: 12px 0 24px; color: #fff; }
.spotlight_content p { max-width: 38rem; color: rgba(255,255,255,.76); }
.line_list { margin: 28px 0 36px; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.24); }
.line_list li { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.24); font-size: .84rem; }
.price_row { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin-top: auto; }
.price_row strong { font-family: var(--fuente_display); font-size: clamp(1.8rem, 2.4vw, 2.8rem); font-weight: 500; letter-spacing: -.04em; }
.process_preview_grid { display: grid; grid-template-columns: repeat(4, 1fr); padding-bottom: 96px; border-top: 1px solid var(--color_linea); }
.process_preview_grid article { min-height: 220px; padding: 24px 26px 30px 0; border-right: 1px solid var(--color_linea); }
.process_preview_grid article:not(:first-child) { padding-left: 26px; }
.process_preview_grid article:last-child { border-right: 0; }
.process_preview_grid article > span { color: var(--color_acento); font-size: .68rem; }
.process_preview_grid h3 { margin: 64px 0 14px; }
.process_preview_grid p { margin: 0; color: var(--color_texto_suave); font-size: .9rem; }
.journal_grid { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; padding-bottom: 96px; }
.journal_feature h3 { max-width: 22ch; margin: 16px 0 13px; font-size: clamp(1.6rem, 2.4vw, 2.8rem); }
.journal_feature p { max-width: 42rem; color: var(--color_texto_suave); }
.journal_list { border-top: 1px solid var(--color_linea); }
.journal_list article { padding: 26px 0 32px; border-bottom: 1px solid var(--color_linea); }
.journal_list h3 { margin: 14px 0 24px; font-size: clamp(1.35rem, 1.8vw, 2.05rem); }
.closing_cta { padding: 88px 0 96px; background: var(--color_texto); color: #fff; }
.closing_cta .wrap { display: grid; grid-template-columns: 2fr 7fr 3fr; gap: 32px; align-items: end; }
.closing_cta .micro_label { align-self: start; color: rgba(255,255,255,.6); }
.closing_cta h2 { max-width: 12ch; color: #fff; }
.closing_cta .button { justify-self: end; }
.closing_cta_light { border-top: 1px solid var(--color_linea); background: var(--color_fondo); color: var(--color_texto); }
.closing_cta_light h2 { color: var(--color_texto); }
.closing_cta_light .micro_label { color: var(--color_texto_suave); }

/* Cabeceras interiores */
.page_hero { padding: 94px 0 108px; }
.page_hero_grid { display: grid; grid-template-columns: 2fr 7fr 3fr; gap: 32px; align-items: end; }
.page_hero_grid .section_marker { align-self: start; padding-top: 10px; }
.page_hero h1 { max-width: 13.5ch; font-size: clamp(3.1rem, 5vw, 5.8rem); }
.page_lead { max-width: 31rem; margin: 0; color: var(--color_texto_suave); font-size: 1.06rem; }

/* Proyectos */
.portfolio_lead { padding: 80px 0 96px; }
.portfolio_feature a { display: grid; grid-template-columns: 8fr 4fr; gap: 44px; align-items: end; }
.portfolio_feature_copy { padding-bottom: 8px; }
.portfolio_feature_copy h2 { margin: 16px 0 24px; font-size: clamp(2.2rem, 3.5vw, 4rem); }
.portfolio_feature_copy p { color: var(--color_texto_suave); }
.portfolio_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding-bottom: 96px; }
.portfolio_card_copy { padding-top: 20px; }
.portfolio_card h3 { margin: 12px 0 14px; }
.portfolio_card p { min-height: 4.7em; color: var(--color_texto_suave); }
.content_band { padding: 84px 0; background: var(--color_superficie); border-top: 1px solid var(--color_linea); }
.content_band_grid { display: grid; grid-template-columns: 2fr 7fr 3fr; gap: 32px; align-items: end; }
.content_band h2 { max-width: 15ch; font-size: clamp(2.2rem, 3.5vw, 4.1rem); }
.content_band p { margin: 0; color: var(--color_texto_suave); }
.content_band .button { justify-self: end; }

/* Servicio */
.service_detail { padding: 92px 0 104px; }
.service_detail_grid { display: grid; grid-template-columns: 7fr 4fr; gap: 9vw; align-items: start; }
.service_scope h2 { max-width: 12ch; margin: 16px 0 24px; }
.lead_text { max-width: 47rem; color: var(--color_texto_suave); font-size: 1.08rem; }
.service_scope_list { margin: 48px 0 26px; padding: 0; list-style: none; border-top: 1px solid var(--color_linea_fuerte); }
.service_scope_list li { display: grid; grid-template-columns: 70px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--color_linea); }
.service_scope_list li > span { color: var(--color_acento); font-size: .68rem; }
.service_scope_list h3 { margin-bottom: 5px; font-size: 1.35rem; }
.service_scope_list p { margin: 0; color: var(--color_texto_suave); }
.service_note { color: var(--color_texto_suave); font-size: .86rem; }
.service_purchase { position: sticky; top: calc(var(--altura_header) + 32px); padding: 36px; border: 1px solid var(--color_linea_fuerte); background: var(--color_superficie); }
.service_purchase h2 { margin: 18px 0 12px; font-size: clamp(1.8rem, 2.3vw, 2.5rem); }
.service_purchase p { color: var(--color_texto_suave); }
.service_price { display: block; margin: 34px 0 22px; color: var(--color_violeta); font-family: var(--fuente_display); font-size: clamp(1.8rem, 2.5vw, 3.1rem); font-weight: 600; letter-spacing: -.04em; }
.service_purchase small { display: block; margin-top: 13px; color: var(--color_texto_suave); font-size: .72rem; text-align: center; }
.service_philosophy { padding: 84px 0; background: var(--color_berenjena); color: #fff; }
.service_philosophy_grid { display: grid; grid-template-columns: 6fr 6fr; gap: 7vw; align-items: center; }
.service_philosophy h2 { margin: 14px 0 24px; color: #fff; }
.service_philosophy p { max-width: 38rem; color: rgba(255,255,255,.74); }
.service_philosophy .micro_label { color: rgba(255,255,255,.58); }
.faq_section { padding: 96px 0; }
.faq_layout { display: grid; grid-template-columns: 5fr 7fr; gap: 7vw; align-items: start; }
.faq_layout h2 { max-width: 13ch; margin-top: 16px; font-size: clamp(2.2rem, 3.4vw, 3.8rem); }
.faq { border-top: 1px solid var(--color_linea_fuerte); }
.faq_item { border-bottom: 1px solid var(--color_linea); }
.faq_question { display: flex; width: 100%; padding: 24px 0; justify-content: space-between; gap: 24px; border: 0; background: transparent; color: var(--color_texto); font-weight: 600; text-align: left; }
.faq_question::after { content: "+"; font-family: var(--fuente_display); font-size: 1.35rem; font-weight: 400; }
.faq_item.is_open .faq_question::after { content: "−"; }
.faq_answer { padding: 0 50px 24px 0; color: var(--color_texto_suave); }

/* Proceso */
.process_timeline { padding-bottom: 96px; }
.timeline_rows { border-top: 1px solid var(--color_linea_fuerte); }
.timeline_rows article { display: grid; grid-template-columns: 1fr 4fr 6fr 1fr; gap: 28px; min-height: 122px; align-items: center; border-bottom: 1px solid var(--color_linea); }
.timeline_rows article > span { color: var(--color_acento); font-size: .68rem; }
.timeline_rows h3 { font-size: clamp(1.3rem, 1.8vw, 2rem); }
.timeline_rows p { grid-column: 3 / 4; max-width: 40rem; margin: 0; color: var(--color_texto_suave); }
.collaboration_section { padding: 84px 0; background: var(--color_berenjena); color: #fff; }
.collaboration_grid { display: grid; grid-template-columns: 6fr 6fr; gap: 7vw; align-items: center; }
.collaboration_grid h2 { max-width: 11ch; margin: 14px 0 24px; color: #fff; }
.collaboration_grid p { max-width: 40rem; color: rgba(255,255,255,.74); }
.collaboration_grid .micro_label { color: rgba(255,255,255,.58); }
.principles_grid { display: grid; grid-template-columns: repeat(3,1fr); padding-bottom: 96px; border-top: 1px solid var(--color_linea_fuerte); }
.principles_grid article { min-height: 250px; padding: 30px 34px 34px 0; border-right: 1px solid var(--color_linea); }
.principles_grid article:not(:first-child) { padding-left: 34px; }
.principles_grid article:last-child { border-right: 0; }
.principles_grid h3 { margin: 56px 0 14px; }
.principles_grid p { color: var(--color_texto_suave); }

/* Blog */
.journal_feature_section { padding: 80px 0 96px; }
.journal_feature_grid { display: grid; grid-template-columns: 7fr 5fr; gap: 5vw; align-items: end; }
.journal_feature_grid h2 { margin: 16px 0 24px; font-size: clamp(2.2rem, 3.5vw, 4rem); }
.journal_feature_grid p { color: var(--color_texto_suave); }
.article_grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; padding-bottom: 96px; }
.article_card .micro_label { margin-top: 20px; }
.article_card h3 { margin: 14px 0; }
.article_card p { color: var(--color_texto_suave); }

/* Contacto */
.contact_main { padding: 88px 0 96px; }
.contact_main_grid { display: grid; grid-template-columns: 6fr 6fr; gap: 24px; align-items: stretch; }
.contact_statement { display: flex; min-height: 540px; padding: 46px; flex-direction: column; justify-content: flex-end; background: var(--color_berenjena); color: #fff; }
.contact_statement .micro_label { margin-bottom: auto; color: rgba(255,255,255,.6); }
.contact_statement h2 { max-width: 10ch; margin-bottom: 24px; color: #fff; }
.contact_statement p { max-width: 34rem; color: rgba(255,255,255,.74); }
.contact_statement .button { align-self: flex-start; margin-top: 14px; }
.contact_brief { padding: 46px; border: 1px solid var(--color_linea_fuerte); background: var(--color_superficie); }
.contact_brief h2 { max-width: 13ch; margin: 16px 0 36px; font-size: clamp(2.15rem, 3.2vw, 3.6rem); }
.contact_brief ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color_linea_fuerte); }
.contact_brief li { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 19px 0; border-bottom: 1px solid var(--color_linea); }
.contact_brief li > span { color: var(--color_acento); font-size: .68rem; }
.contact_brief h3 { margin-bottom: 4px; font-size: 1.25rem; }
.contact_brief p { margin: 0; color: var(--color_texto_suave); }
.contact_option_grid { display: grid; grid-template-columns: repeat(3,1fr); padding-bottom: 96px; border-top: 1px solid var(--color_linea_fuerte); }
.contact_option { position: relative; min-height: 250px; padding: 28px 44px 34px 0; border-right: 1px solid var(--color_linea); }
.contact_option:not(:first-child) { padding-left: 44px; }
.contact_option:last-child { border-right: 0; }
.contact_option > span:first-child { color: var(--color_acento); font-size: .68rem; }
.contact_option h3 { margin: 68px 0 14px; }
.contact_option p { color: var(--color_texto_suave); }
.contact_option .link_arrow { position: absolute; right: 24px; bottom: 28px; }

/* Checkout */
.checkout_intro { padding: 80px 0 72px; }
.checkout_intro_grid { display: grid; grid-template-columns: 2fr 7fr 3fr; gap: 32px; align-items: end; }
.checkout_intro_grid .section_marker { align-self: start; padding-top: 10px; }
.checkout_intro h1 { max-width: 12ch; font-size: clamp(3rem, 4.8vw, 5.4rem); }
.checkout_intro p { max-width: 28rem; margin: 0; color: var(--color_texto_suave); }
.checkout_section { padding: 64px 0 96px; }
.checkout_layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(340px, 4fr); gap: 28px; align-items: start; }
.checkout_card { border: 1px solid var(--color_linea_fuerte); background: var(--color_superficie); }
.checkout_form_card { padding: 42px; }
.checkout_summary_card { position: sticky; top: calc(var(--altura_header) + 28px); padding: 34px; }
.card_heading { margin-bottom: 36px; padding-bottom: 28px; border-bottom: 1px solid var(--color_linea); }
.card_heading h2 { margin: 12px 0 10px; font-size: clamp(2rem, 3vw, 3.4rem); }
.card_heading p { margin: 0; color: var(--color_texto_suave); }
.form_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.field { display: grid; gap: 8px; }
.field_full { grid-column: 1 / -1; }
.field > span { color: var(--color_texto); font-size: .72rem; font-weight: 600; }
.field small { color: var(--color_texto_suave); font-weight: 400; }
.field input, .field select, .field textarea { width: 100%; min-height: 52px; padding: 13px 15px; border: 1px solid var(--color_linea_fuerte); border-radius: 0; outline: 0; background: var(--color_blanco); color: var(--color_texto); }
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--color_violeta); box-shadow: 0 0 0 1px var(--color_violeta); }
.field input:disabled, .field select:disabled, .field textarea:disabled { background: #e9e7e2; color: var(--color_texto_suave); }
.check_field { display: flex; align-items: flex-start; gap: 12px; margin: 28px 0 20px; color: var(--color_texto_suave); font-size: .82rem; }
.check_field input { margin-top: 3px; accent-color: var(--color_violeta); }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form_message { min-height: 1.5em; margin: 14px 0; font-size: .82rem; font-weight: 600; }
.form_message.error { color: var(--color_error); }
.form_message.success { color: var(--color_exito); }
.secure_note { margin: 12px 0 0; color: var(--color_texto_suave); font-size: .72rem; text-align: center; }
.checkout_warning { margin-bottom: 24px; padding: 15px 18px; border: 1px solid #d6ba75; background: #fff7dc; color: var(--color_alerta); font-size: .85rem; }
.service_summary h3 { margin: 14px 0 12px; font-size: clamp(1.6rem, 2.2vw, 2.3rem); }
.service_summary p, .service_summary ul { color: var(--color_texto_suave); }
.service_summary ul { padding-left: 18px; }
.checkout_totals { margin-top: 26px; }
.checkout_grand_total { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid var(--color_linea_fuerte); font-size: 1rem; }
.checkout_grand_total strong { font-family: var(--fuente_display); font-size: 1.35rem; }
.summary_reassurance { display: grid; gap: 8px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--color_linea); color: var(--color_texto_suave); font-size: .72rem; }

/* Resultado del pago */
.payment_result_page { background: var(--color_fondo); }
.payment_result_wrap { min-height: calc(100vh - var(--altura_header) - 290px); padding: 88px 0; }
.payment_result_card { width: min(760px, 100%); margin: 0 auto; padding: 64px; border: 1px solid var(--color_linea_fuerte); background: var(--color_superficie); text-align: center; }
.payment_result_icon { display: grid; width: 72px; height: 72px; margin: 0 auto 24px; place-items: center; border: 1px solid var(--color_linea_fuerte); font-family: var(--fuente_display); font-size: 2rem; }
.payment_result_card h1 { margin: 14px 0 20px; font-size: clamp(2.2rem, 3.5vw, 3.8rem); }
.payment_result_card > p:not(.micro_label):not(.eyebrow) { max-width: 36rem; margin: 0 auto 18px; color: var(--color_texto_suave); }
.payment_result_note { padding: 12px 14px; background: #e8e5de; font-size: .8rem; }
.payment_result_actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.payment_result_card.success .payment_result_icon { border-color: var(--color_exito); color: var(--color_exito); }
.payment_result_card.error .payment_result_icon { border-color: var(--color_error); color: var(--color_error); }
.payment_result_card.warning .payment_result_icon { border-color: var(--color_alerta); color: var(--color_alerta); }

/* Alertas */
.site_alert { padding: 12px 20px; text-align: center; font-size: .84rem; font-weight: 600; }
.site_alert_error { border-bottom: 1px solid #e1b5b5; background: #fae7e7; color: #7e1d1d; }

/* Pie */
.site_footer, footer.site { padding: 64px 0 28px; background: #101010; color: rgba(255,255,255,.72); }
.footer_top { display: grid; grid-template-columns: 5fr 7fr; gap: 8vw; }
.footer_intro { max-width: 26rem; }
.footer_brand { color: #fff; font-family: var(--fuente_display); font-size: 2rem; font-weight: 600; letter-spacing: -.045em; }
.footer_intro p { margin-top: 22px; color: rgba(255,255,255,.62); }
.footer_nav { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.footer_nav h2 { margin-bottom: 18px; color: #fff; font-family: var(--fuente_texto); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.footer_nav a { display: block; width: fit-content; padding: 5px 0; color: rgba(255,255,255,.7); font-size: .86rem; }
.footer_nav a:hover { color: #fff; }
.footer_bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 72px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.48); font-size: .7rem; }

/* Adaptación de clases antiguas */
.page_hero .wrap:not(.page_hero_grid) { max-width: none; text-align: left; }
.grid { display: grid; gap: 24px; }
.grid_3 { grid-template-columns: repeat(3,1fr); }
.card { border: 1px solid var(--color_linea_fuerte); background: var(--color_superficie); }
.card_media { position: relative; min-height: 320px; background: #d1cec7; }
.card_body { padding: 28px; }
.tag { display: inline-flex; padding: 6px 8px; border: 1px solid var(--color_linea); font-size: .66rem; text-transform: uppercase; }

/* Responsive */
@media (max-width: 1180px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav_links { display: none; }
  .menu_toggle { display: block; }
  .nav_links.is_open { position: absolute; top: var(--altura_header); right: 0; left: 0; display: flex; padding: 28px 32px 38px; flex-direction: column; align-items: flex-start; gap: 10px; border-bottom: 1px solid var(--color_linea); background: var(--color_fondo); box-shadow: 0 24px 40px rgba(0,0,0,.08); }
  body.menu_open { overflow: hidden; }
  .hero_grid, .page_hero_grid, .checkout_intro_grid { grid-template-columns: 1fr; }
  .hero_grid h1, .page_hero h1, .checkout_intro h1 { max-width: 12ch; }
  .hero_summary, .page_lead, .checkout_intro p { max-width: 42rem; }
  .editorial_grid { grid-template-columns: 1fr 2fr 2fr; }
  .editorial_grid .rich_copy { grid-column: 3; }
  .section_header { grid-template-columns: 1fr 3fr 2fr; }
  .portfolio_feature a { grid-template-columns: 7fr 5fr; }
  .service_detail_grid { gap: 5vw; }
  .contact_statement, .contact_brief { padding: 38px; }
}

@media (max-width: 900px) {
  .wrap, .nav { width: min(100% - 40px, var(--ancho_maximo)); }
  .nav_cta { display: none; }
  .home_hero { padding-top: 64px; }
  .media_frame_hero { aspect-ratio: 4 / 3; }
  .editorial_grid, .section_header, .section_header_left, .closing_cta .wrap, .content_band_grid { grid-template-columns: 1fr; }
  .editorial_grid .rich_copy { grid-column: auto; }
  .section_header { gap: 18px; padding: 88px 0 40px; }
  .section_header > .text_link, .closing_cta .button, .content_band .button { justify-self: start; }
  .project_mosaic { grid-template-columns: 1fr 1fr; }
  .project_item_featured { grid-column: 1 / -1; }
  .index_row { grid-template-columns: 54px 1fr auto; padding: 22px 0; }
  .index_row p { grid-column: 2 / 3; }
  .spotlight_grid, .service_philosophy_grid, .collaboration_grid, .journal_grid, .journal_feature_grid, .service_detail_grid, .faq_layout, .contact_main_grid, .footer_top { grid-template-columns: 1fr; }
  .service_purchase, .checkout_summary_card { position: static; }
  .process_preview_grid { grid-template-columns: 1fr 1fr; }
  .process_preview_grid article:nth-child(2) { border-right: 0; }
  .portfolio_feature a { grid-template-columns: 1fr; }
  .portfolio_grid, .article_grid, .contact_option_grid, .principles_grid { grid-template-columns: 1fr 1fr; }
  .contact_option:nth-child(2), .principles_grid article:nth-child(2) { border-right: 0; }
  .contact_option:last-child, .principles_grid article:last-child { grid-column: 1 / -1; border-top: 1px solid var(--color_linea); }
  .timeline_rows article { grid-template-columns: 54px 1fr; padding: 24px 0; }
  .timeline_rows p { grid-column: 2; }
  .checkout_layout { grid-template-columns: 1fr; }
  .checkout_summary_card { order: -1; }
}

@media (max-width: 640px) {
  :root { --altura_header: 72px; }
  body { font-size: 15px; }
  .wrap, .nav { width: min(100% - 28px, var(--ancho_maximo)); }
  .brand small { display: none; }
  .nav { min-height: var(--altura_header); }
  h1 { font-size: clamp(2.65rem, 12vw, 3.9rem); }
  h2 { font-size: clamp(2rem, 9.5vw, 3.1rem); }
  .home_hero, .page_hero { padding: 52px 0 64px; }
  .hero_grid h1, .page_hero h1, .checkout_intro h1 { max-width: none; }
  .hero_actions { align-items: stretch; flex-direction: column; }
  .hero_actions .button { width: 100%; }
  .featured_project { margin-top: 44px; }
  .featured_caption { grid-template-columns: 1fr auto; gap: 14px; }
  .editorial_grid { padding: 68px 0; }
  .project_mosaic, .portfolio_grid, .article_grid, .contact_option_grid, .principles_grid { grid-template-columns: 1fr; }
  .project_item_featured, .contact_option:last-child, .principles_grid article:last-child { grid-column: auto; }
  .ratio_portrait, .ratio_portrait_wide { aspect-ratio: 4 / 3; }
  .index_row { grid-template-columns: 40px 1fr auto; gap: 14px; }
  .index_row p { grid-column: 2 / -1; }
  .spotlight_grid { gap: 34px; }
  .price_row { grid-template-columns: 1fr; }
  .price_row .button { justify-self: start; }
  .process_preview_grid { grid-template-columns: 1fr; }
  .process_preview_grid article, .process_preview_grid article:not(:first-child) { min-height: auto; padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--color_linea); }
  .process_preview_grid h3 { margin-top: 30px; }
  .closing_cta { padding: 68px 0; }
  .service_purchase, .checkout_form_card, .checkout_summary_card { padding: 24px; }
  .service_scope_list li { grid-template-columns: 44px 1fr; }
  .contact_statement { min-height: 500px; padding: 28px; }
  .contact_brief { padding: 28px; }
  .contact_option, .contact_option:not(:first-child), .principles_grid article, .principles_grid article:not(:first-child) { min-height: auto; padding: 28px 0 62px; border-right: 0; border-bottom: 1px solid var(--color_linea); }
  .form_grid { grid-template-columns: 1fr; }
  .field_full { grid-column: auto; }
  .checkout_intro { padding: 52px 0 48px; }
  .checkout_section { padding: 44px 0 68px; }
  .payment_result_card { padding: 38px 22px; }
  .footer_top, .footer_nav { grid-template-columns: 1fr; }
  .footer_nav { margin-top: 32px; }
  .footer_bottom { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
