.contact-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.mini-contact { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.mini-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; box-shadow: var(--shadow-soft); }
.mini-form label { display: grid; gap: .4rem; font-size: .9rem; font-weight: 750; }
.mini-form .check { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .7rem; font-weight: 500; }
.mini-form .check input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--color-blue); }
.mini-form label:nth-of-type(3), .mini-form .check, .mini-form .button { grid-column: 1 / -1; }
.mini-form input:not([type="checkbox"]), .mini-form textarea { width: 100%; padding: .85rem 1rem; border: 1px solid #b9cada; border-radius: 10px; }
.lead-form { box-shadow: var(--shadow-soft); }
.lead-form fieldset { display: grid; gap: 1rem; padding: 0; border: 0; }
.lead-form legend { margin-bottom: 1.25rem; font-size: 1.55rem; font-weight: 800; letter-spacing: -.025em; }
.lead-form label { display: grid; gap: .4rem; color: var(--color-ink); font-size: .9rem; font-weight: 750; }
.lead-form input:not([type="checkbox"]), .lead-form select, .lead-form textarea { width: 100%; border: 1px solid #b9cada; border-radius: 10px; padding: .85rem 1rem; background: #fff; color: var(--color-ink); }
.lead-form textarea { resize: vertical; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { border-color: var(--color-blue); outline: 0; box-shadow: var(--focus); }
.lead-form .check { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .7rem; font-weight: 500; }
.lead-form .check input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--color-blue); }
.form-progress { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: 2rem; color: var(--color-muted); font-size: .82rem; font-weight: 800; }
.form-progress span { padding-bottom: .55rem; border-bottom: 3px solid var(--color-line); }
.form-progress span.is-active { border-color: var(--color-cyan); color: var(--color-blue-dark); }
.form-actions { display: flex; gap: .75rem; }
.form-error { color: #a31325; font-size: .85rem; }
.contact-alt { margin-top: 2.5rem; padding: 1.25rem; border-left: 3px solid var(--color-cyan); background: white; }
.whatsapp-fab { position: fixed; z-index: 45; right: 1.25rem; bottom: 1.25rem; display: inline-flex; min-height: 52px; align-items: center; gap: .5rem; padding: .75rem 1rem; border-radius: 999px; background: #087b45; color: white; box-shadow: 0 14px 34px rgba(7,27,54,.22); font-weight: 800; text-decoration: none; }
.whatsapp-fab:hover { background: #056638; }
.whatsapp-fab.whatsapp--compact { width: 52px; padding-inline: .75rem; justify-content: center; }
.whatsapp-fab.whatsapp--compact .whatsapp-fab__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.whatsapp-fab.whatsapp--parked { opacity: 0; pointer-events: none; }
.footer-consent { padding: 0; border: 0; background: none; color: inherit; }
.cookie-banner { position: fixed; z-index: 100; right: 1rem; bottom: 1rem; left: 1rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; max-width: 850px; margin-inline: auto; padding: 1.1rem; border: 1px solid var(--color-line); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-soft); }
.cookie-banner p { margin: 0; font-size: .9rem; }
.cookie-actions { display: flex; gap: .5rem; }
.cookie-dialog { width: min(92vw, 540px); border: 0; border-radius: var(--radius-md); padding: 0; box-shadow: 0 30px 90px rgba(0,0,0,.35); }
.cookie-dialog::backdrop { background: rgba(3,19,41,.7); }
.cookie-dialog__inner { padding: 1.5rem; }
.cookie-option { display: grid; grid-template-columns: 1fr auto; gap: 1rem; margin-block: 1rem; padding: 1rem 0; border-block: 1px solid var(--color-line); }
.status-message { padding: 1rem; border-radius: 10px; background: #e8f7ee; color: #135c36; }
.legal-content h1 { margin-bottom: 2rem; font-size: clamp(2.4rem, 5vw, 4.5rem); }
.legal-content h2 { margin-top: 2.5rem; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.legal-content h3 { margin-top: 1.75rem; }
.legal-content p, .legal-content li { color: var(--color-muted); }
.phone-frame { position: absolute; right: 1rem; bottom: .75rem; width: 62px; height: 116px; display: grid; align-content: start; gap: .45rem; padding: .8rem .45rem; border: 3px solid #eaf3fb; border-radius: 14px; background: #fff; box-shadow: 0 12px 24px rgba(0,0,0,.22); }
.phone-frame span { height: 10px; border-radius: 4px; background: #d7e9f8; }
.phone-frame span:first-child { height: 28px; background: #b8ddfb; }
.case-visual { position: relative; }
.case-visual--2 .mock-block:first-child, .case-visual--2 .phone-frame span:first-child { background: #c7f0ee; }
.case-visual--3 .mock-block:first-child, .case-visual--3 .phone-frame span:first-child { background: #d9deea; }
.case-showcase { position: relative; min-height: 480px; overflow: hidden; padding: clamp(1.25rem, 5vw, 4rem); border-radius: var(--radius-lg); background: linear-gradient(145deg, #062447, #0873d7); }
.case-showcase.case-visual--cyan { background: linear-gradient(145deg, #083a53, #0aa7b8); }
.case-showcase.case-visual--ink { background: linear-gradient(145deg, #071b36, #243b55); }
.case-screen--large { width: 78%; height: 380px; }
.phone-frame--large { right: 7%; bottom: 2rem; width: 150px; height: 300px; padding: 2rem .8rem; gap: 1rem; border-width: 6px; border-radius: 28px; }
.phone-frame--large span { height: 28px; }
.phone-frame--large span:first-child { height: 80px; }
.case-result { margin-block: 1.25rem 3rem; }
.plan-groups { display: grid; gap: 1rem; }
.plan-group { border: 1px solid var(--color-line); border-radius: var(--radius-md); background: #fff; overflow: hidden; }
.plan-group summary { display: grid; grid-template-columns: .7fr 1.3fr; gap: 1rem; padding: 1.4rem; cursor: pointer; list-style-position: inside; }
.plan-group summary span { font-size: 1.2rem; font-weight: 800; }
.plan-group summary small { color: var(--color-muted); font-size: .95rem; }
.plan-group__content { padding: 0 1.4rem 1.4rem; }
.plan-note { padding: 1rem; border-left: 3px solid var(--color-cyan); background: var(--color-surface); color: var(--color-muted); }
@media (max-width: 720px) {
  .contact-layout { grid-template-columns: 1fr; }
  .mini-contact, .mini-form { grid-template-columns: 1fr; }
  .mini-form label, .mini-form label:nth-of-type(3), .mini-form .check, .mini-form .button { grid-column: auto; }
  .case-showcase { min-height: 360px; padding: 1rem; }
  .case-screen--large { width: 88%; height: 290px; }
  .phone-frame--large { right: 4%; width: 100px; height: 220px; }
  .plan-group summary { grid-template-columns: 1fr; }
  .whatsapp-fab { right: .75rem; bottom: .75rem; width: 52px; padding: .75rem; justify-content: center; }
  .whatsapp-fab__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  body:has(.lead-form) .whatsapp-fab { bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .cookie-banner { grid-template-columns: 1fr; padding-bottom: 4.75rem; }
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
}
