/* ============================================================
   DESIGN TOKENS — Cristina Gómez
============================================================ */
:root {
    --cg-azul-marino:   #0f2447;
    --cg-azul-cielo:    #0d7dba;
    --cg-verde-light:   #ccf2f2;
    --cg-verde:         #0c4a4a;
    --cg-blanco:        #ffffff;
    --cg-vino:          #701f38;
    --cg-rosa-viejo:    #dbbfcc;
    --cg-rosa-fondo:    #f5e8ef;

    --cg-radius:        36px;
    --cg-radius-sm:     16px;
    --cg-radius-xs:     8px;

    --cg-font:          'Inter', system-ui, -apple-system, sans-serif;

    --cg-shadow-card:   0 1px 1.5px rgba(0,0,0,.1), 0 1px 1px rgba(0,0,0,.1);
    --cg-shadow-icon:   0 10px 15px rgba(12,124,185,.2), 0 4px 6px rgba(12,124,185,.2);

    --cg-transition:    .2s ease;

    --cg-max-width:     1280px;
    --cg-gutter:        80px;
}

/* ============================================================
   RESET & BASE
============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--cg-font);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--cg-azul-marino);
    background: var(--cg-blanco);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

ul, ol { list-style: none; }

button, input, select, textarea {
    font: inherit;
    border: none;
    outline: none;
    background: transparent;
}

h1, h2, h3, h4, h5, h6 { line-height: 1.15; font-weight: 400; }

/* ============================================================
   CONTAINER
============================================================ */
.cg-container {
    width: 100%;
    max-width: var(--cg-max-width);
    margin-inline: auto;
    padding-inline: var(--cg-gutter);
}

/* ============================================================
   TYPOGRAPHY UTILITIES
============================================================ */
.cg-eyebrow {
    font-size: 16px;
    letter-spacing: .48px;
    color: var(--cg-azul-cielo);
    text-transform: none;
}

.cg-eyebrow--light {
    color: var(--cg-verde-light);
}

/* ============================================================
   BUTTONS
============================================================ */
.cg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 40px;
    font-size: 16px;
    letter-spacing: .48px;
    border-radius: var(--cg-radius);
    cursor: pointer;
    transition: opacity var(--cg-transition), transform var(--cg-transition);
    white-space: nowrap;
    border: 1px solid transparent;
    text-decoration: none;
}

.cg-btn:hover { opacity: .88; }
.cg-btn:active { transform: scale(.98); }

.cg-btn--primary {
    background: var(--cg-azul-marino);
    color: var(--cg-verde-light);
}

.cg-btn--outline-wine {
    background: var(--cg-blanco);
    border-color: var(--cg-vino);
    color: var(--cg-vino);
}

.cg-btn--white {
    background: var(--cg-blanco);
    color: var(--cg-azul-marino);
}

.cg-btn--outline-white {
    background: transparent;
    border-color: var(--cg-blanco);
    color: var(--cg-blanco);
}

.cg-btn--full { width: 100%; }

/* ============================================================
   HEADER / NAVBAR
============================================================ */
.cg-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(15,36,71,.08);
    transition: box-shadow var(--cg-transition);
}

.cg-header.is-scrolled {
    box-shadow: 0 2px 12px rgba(15,36,71,.12);
}

.cg-header__inner {
    display: flex;
    align-items: center;
    gap: 32px;
    padding-block: 16px;
    max-width: var(--cg-max-width);
    margin-inline: auto;
    padding-inline: var(--cg-gutter);
}

.cg-header__logo {
    flex-shrink: 0;
    margin-right: auto;
}

.cg-header__logo img {
    height: 40px;
    width: auto;
}

.cg-header__logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.cg-header__logo-text strong {
    font-size: 18px;
    font-weight: 600;
    color: var(--cg-azul-marino);
}

.cg-header__logo-text small {
    font-size: 12px;
    letter-spacing: .5px;
    color: var(--cg-azul-cielo);
}

.cg-nav { display: flex; }

.cg-nav__list {
    display: flex;
    align-items: center;
    gap: 32px;
}

.cg-nav__list a {
    font-size: 15px;
    color: var(--cg-azul-marino);
    opacity: .8;
    transition: opacity var(--cg-transition), color var(--cg-transition);
}

.cg-nav__list a:hover { opacity: 1; color: var(--cg-azul-cielo); }

.cg-header__cta { flex-shrink: 0; padding: 10px 28px; font-size: 15px; }

/* Hamburger */
.cg-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 8px;
    margin-left: 8px;
}

.cg-menu-toggle__bar {
    width: 22px;
    height: 2px;
    background: var(--cg-azul-marino);
    border-radius: 2px;
    transition: transform var(--cg-transition), opacity var(--cg-transition);
}

.cg-menu-toggle[aria-expanded="true"] .cg-menu-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.cg-menu-toggle[aria-expanded="true"] .cg-menu-toggle__bar:nth-child(2) {
    opacity: 0;
}
.cg-menu-toggle[aria-expanded="true"] .cg-menu-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile menu */
.cg-mobile-menu {
    display: none;
    background: var(--cg-verde);
    padding: 24px var(--cg-gutter) 40px;
    transform: translateY(-8px);
    opacity: 0;
    transition: opacity var(--cg-transition), transform var(--cg-transition);
}

.cg-mobile-menu.is-open {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

.cg-mobile-menu__list { display: flex; flex-direction: column; gap: 4px; }

.cg-mobile-menu__link {
    display: block;
    padding: 12px 0;
    font-size: 22px;
    color: var(--cg-blanco);
    border-bottom: 1px solid rgba(255,255,255,.12);
    transition: color var(--cg-transition);
}

.cg-mobile-menu__link:hover { color: var(--cg-verde-light); }

.cg-mobile-menu__link--cta {
    color: var(--cg-verde-light);
    font-weight: 600;
    border: none;
    margin-top: 8px;
}

/* ============================================================
   HERO SECTION
============================================================ */
.cg-hero {
    background: var(--cg-blanco);
    padding-top: calc(80px + 80px); /* header height + section padding */
    padding-bottom: 80px;
    overflow: hidden;
}

.cg-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
}

.cg-hero__content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.cg-hero__title {
    font-size: clamp(36px, 4vw, 54px);
    color: var(--cg-azul-marino);
    line-height: 1.1;
}

.cg-hero__subtitle {
    font-size: 24px;
    color: var(--cg-azul-marino);
    opacity: .7;
    max-width: 413px;
    line-height: 1.5;
}

.cg-hero__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
}

/* Hero image card */
.cg-hero__image-wrap {
    display: flex;
    justify-content: center;
}

.cg-hero__image-card {
    position: relative;
    border-radius: var(--cg-radius);
    background: linear-gradient(to top, var(--cg-azul-cielo), #cdf3f3 144%);
    overflow: hidden;
    width: 100%;
    max-width: 522px;
    min-height: 400px;
}

.cg-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.cg-hero__image-placeholder {
    width: 100%;
    height: 500px;
    background: linear-gradient(to top, var(--cg-azul-cielo), var(--cg-verde-light));
    border-radius: var(--cg-radius);
}

/* ============================================================
   ABOUT SECTION
============================================================ */
.cg-about {
    background: var(--cg-verde);
    padding-block: 100px;
    overflow: hidden;
}

.cg-about__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 80px;
}

.cg-about__content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.cg-about__intro {
    font-size: 24px;
    color: var(--cg-verde-light);
}

.cg-about__title {
    font-size: clamp(28px, 3vw, 42px);
    color: var(--cg-blanco);
}

.cg-about__body {
    font-size: 18px;
    color: rgba(255,255,255,.8);
    line-height: 1.7;
}

.cg-about__stats {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--cg-radius-sm);
    overflow: hidden;
}

.cg-about__stat {
    padding: 20px 30px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.cg-about__stat:last-child { border-bottom: none; }

.cg-about__stat-label {
    font-size: 12px;
    letter-spacing: .6px;
    color: var(--cg-azul-cielo);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.cg-about__stat-value {
    font-size: 16px;
    color: var(--cg-verde-light);
    letter-spacing: .3px;
}

.cg-about__image-wrap {
    display: flex;
    justify-content: center;
}

.cg-about__image-card {
    position: relative;
    border-radius: var(--cg-radius);
    overflow: hidden;
    background: var(--cg-rosa-viejo);
    width: 100%;
    max-width: 420px;
    min-height: 500px;
}

.cg-about__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    border-radius: var(--cg-radius);
}

.cg-about__image-placeholder { min-height: 480px; }

/* ============================================================
   CÓMO TRABAJO SECTION
============================================================ */
.cg-como-trabajo {
    background: var(--cg-blanco);
    padding-block: 100px;
}

.cg-proceso__header {
    text-align: center;
    max-width: 629px;
    margin-inline: auto;
    margin-bottom: 60px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cg-proceso__title {
    font-size: clamp(26px, 3vw, 36px);
    color: var(--cg-azul-marino);
}

.cg-proceso__subtitle {
    font-size: 24px;
    color: var(--cg-azul-marino);
    opacity: .7;
}

/* Process card */
.cg-proceso__card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
    border: 1px solid var(--cg-verde-light);
    border-radius: var(--cg-radius);
    padding: 48px;
    margin-bottom: 80px;
}

.cg-proceso__image-wrap {
    position: relative;
}

.cg-proceso__image-bg {
    position: absolute;
    inset: 12% 0 0 0;
    background: var(--cg-rosa-viejo);
    border-radius: var(--cg-radius-sm);
}

.cg-proceso__image {
    position: relative;
    width: 100%;
    border-radius: var(--cg-radius-sm);
    object-fit: cover;
    max-height: 360px;
}

.cg-proceso__steps {
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.cg-proceso__step {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.cg-proceso__step-number {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--cg-verde-light);
    color: var(--cg-azul-marino);
    font-size: 18px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cg-proceso__step-title {
    font-size: 20px;
    color: var(--cg-azul-marino);
    margin-bottom: 8px;
}

.cg-proceso__step-desc {
    font-size: 16px;
    color: var(--cg-azul-marino);
    opacity: .7;
    letter-spacing: .3px;
    line-height: 1.6;
}

/* Testimonials */
.cg-testimonios__header {
    max-width: 522px;
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cg-testimonios__title {
    font-size: clamp(24px, 2.5vw, 36px);
    color: var(--cg-azul-marino);
    line-height: 1.2;
}

.cg-testimonios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.cg-testimonio {
    background: var(--cg-blanco);
    border: 1px solid var(--cg-verde-light);
    border-radius: var(--cg-radius);
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    box-shadow: var(--cg-shadow-card);
    min-height: 260px;
}

.cg-testimonio__quote {
    font-size: 16px;
    color: var(--cg-azul-marino);
    opacity: .7;
    letter-spacing: .3px;
    line-height: 1.65;
    flex: 1;
}

.cg-testimonio__footer {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cg-testimonio__divider {
    display: block;
    width: 4px;
    height: 20px;
    background: var(--cg-vino);
    border-radius: 2px;
    flex-shrink: 0;
}

.cg-testimonio__name {
    font-size: 12px;
    letter-spacing: .6px;
    color: var(--cg-vino);
    text-transform: uppercase;
    font-style: normal;
}

/* ============================================================
   SERVICIOS SECTION
============================================================ */
.cg-servicios {
    background: var(--cg-azul-marino);
    padding-block: 100px;
}

.cg-servicios__header {
    margin-bottom: 60px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 522px;
}

.cg-servicios__title {
    font-size: clamp(26px, 3vw, 36px);
    color: var(--cg-blanco);
    line-height: 1.2;
}

.cg-servicios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 80px;
}

.cg-servicio {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--cg-radius);
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: background var(--cg-transition), border-color var(--cg-transition);
}

.cg-servicio:hover {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.2);
}

.cg-servicio__icon {
    width: 56px;
    height: 56px;
    background: var(--cg-azul-cielo);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cg-blanco);
    box-shadow: var(--cg-shadow-icon);
    flex-shrink: 0;
}

.cg-servicio__icon svg { width: 24px; height: 24px; }

.cg-servicio__name {
    font-size: 22px;
    color: var(--cg-blanco);
}

.cg-servicio__desc {
    font-size: 16px;
    color: rgba(205,243,243,.65);
    letter-spacing: .3px;
    line-height: 1.6;
}

.cg-servicios__cierre {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}

.cg-servicios__cierre-text {
    font-size: 22px;
    color: var(--cg-blanco);
    max-width: 520px;
    line-height: 1.4;
}

/* ============================================================
   ASEGURADORAS SECTION
============================================================ */
.cg-aseguradoras {
    background: var(--cg-verde);
    padding-block: 100px;
}

.cg-aseguradoras__header {
    margin-bottom: 60px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 640px;
}

.cg-aseguradoras__title {
    font-size: clamp(26px, 3vw, 36px);
    color: var(--cg-blanco);
    line-height: 1.2;
}

.cg-aseguradoras__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 16px;
}

.cg-aseguradora {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--cg-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 20px;
    min-height: 80px;
    transition: background var(--cg-transition);
}

.cg-aseguradora:hover { background: rgba(255,255,255,.14); }

.cg-aseguradora a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.cg-aseguradora__logo {
    max-width: 100px;
    max-height: 50px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: .85;
    transition: opacity var(--cg-transition);
}

.cg-aseguradora:hover .cg-aseguradora__logo { opacity: 1; }

.cg-aseguradora__name {
    font-size: 14px;
    color: rgba(255,255,255,.75);
    text-align: center;
}

.cg-aseguradoras__empty {
    color: rgba(255,255,255,.6);
    font-size: 16px;
    padding: 24px;
    background: rgba(255,255,255,.06);
    border-radius: var(--cg-radius-sm);
    border: 1px dashed rgba(255,255,255,.2);
}

/* ============================================================
   NO HAGO SECTION
============================================================ */
.cg-no-hago {
    background: var(--cg-rosa-fondo);
    padding-block: 100px;
}

.cg-no-hago__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
}

.cg-no-hago__text {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.cg-no-hago__text .cg-eyebrow { color: var(--cg-vino); }

.cg-no-hago__title {
    font-size: clamp(28px, 3vw, 40px);
    color: var(--cg-azul-marino);
    line-height: 1.1;
}

.cg-no-hago__description {
    font-size: 18px;
    color: var(--cg-azul-marino);
    opacity: .7;
    line-height: 1.6;
}

.cg-no-hago__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cg-no-hago__item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 24px;
    background: var(--cg-blanco);
    border-radius: var(--cg-radius-sm);
    box-shadow: var(--cg-shadow-card);
}

.cg-no-hago__icon {
    flex-shrink: 0;
    color: var(--cg-vino);
    margin-top: 2px;
}

.cg-no-hago__item-text {
    font-size: 16px;
    color: var(--cg-azul-marino);
    line-height: 1.5;
}

/* ============================================================
   CONTACTO SECTION
============================================================ */
.cg-contacto {
    background: var(--cg-blanco);
    padding-block: 100px;
}

.cg-contacto__layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: start;
}

.cg-contacto__info {
    display: flex;
    flex-direction: column;
    gap: 28px;
    position: sticky;
    top: 120px;
}

.cg-contacto__title {
    font-size: clamp(26px, 3vw, 36px);
    color: var(--cg-azul-marino);
    line-height: 1.2;
}

.cg-contacto__subtitle {
    font-size: 18px;
    color: var(--cg-azul-marino);
    opacity: .7;
    line-height: 1.6;
}

.cg-contacto__details {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.cg-contacto__detail-label {
    font-size: 12px;
    letter-spacing: .6px;
    color: var(--cg-azul-cielo);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.cg-contacto__detail-value {
    font-size: 18px;
    color: var(--cg-azul-marino);
    font-weight: 500;
}

a.cg-contacto__detail-value:hover { color: var(--cg-azul-cielo); }

.cg-contacto__detail-sub {
    font-size: 14px;
    color: var(--cg-azul-marino);
    opacity: .6;
    margin-top: 4px;
}

/* Form */
.cg-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: var(--cg-blanco);
    border: 1px solid var(--cg-verde-light);
    border-radius: var(--cg-radius);
    padding: 48px;
    box-shadow: var(--cg-shadow-card);
}

.cg-form__row {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cg-form__label {
    font-size: 14px;
    color: var(--cg-azul-marino);
    font-weight: 500;
}

.cg-form__label span { color: var(--cg-vino); }

.cg-form__input,
.cg-form__select,
.cg-form__textarea {
    padding: 12px 16px;
    border: 1px solid rgba(15,36,71,.2);
    border-radius: var(--cg-radius-xs);
    font-size: 16px;
    color: var(--cg-azul-marino);
    background: var(--cg-blanco);
    transition: border-color var(--cg-transition), box-shadow var(--cg-transition);
    width: 100%;
}

.cg-form__input:focus,
.cg-form__select:focus,
.cg-form__textarea:focus {
    border-color: var(--cg-azul-cielo);
    box-shadow: 0 0 0 3px rgba(13,125,186,.12);
}

.cg-form__input::placeholder,
.cg-form__textarea::placeholder {
    color: rgba(15,36,71,.35);
}

.cg-form__textarea { resize: vertical; min-height: 100px; }

.cg-form__select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230f2447' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

/* Radio buttons as pill buttons */
.cg-form__contact-options {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.cg-form__option {
    display: flex;
    align-items: center;
    gap: 0;
    cursor: pointer;
}

.cg-form__option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.cg-form__option {
    padding: 10px 24px;
    border: 1px solid rgba(15,36,71,.2);
    border-radius: var(--cg-radius);
    font-size: 15px;
    color: var(--cg-azul-marino);
    transition: background var(--cg-transition), border-color var(--cg-transition), color var(--cg-transition);
}

.cg-form__option:has(input:checked) {
    background: var(--cg-azul-marino);
    border-color: var(--cg-azul-marino);
    color: var(--cg-verde-light);
}

.cg-form__option:hover:not(:has(input:checked)) {
    border-color: var(--cg-azul-cielo);
    color: var(--cg-azul-cielo);
}

.cg-form__message {
    padding: 12px 16px;
    border-radius: var(--cg-radius-xs);
    font-size: 15px;
    display: none;
}

.cg-form__message.is-success {
    display: block;
    background: rgba(13,125,186,.08);
    color: var(--cg-azul-marino);
    border: 1px solid var(--cg-verde-light);
}

.cg-form__message.is-error {
    display: block;
    background: rgba(112,31,56,.08);
    color: var(--cg-vino);
    border: 1px solid var(--cg-rosa-viejo);
}

/* ============================================================
   FOOTER
============================================================ */
.cg-footer {
    background: var(--cg-azul-marino);
    padding-block: 60px 40px;
}

.cg-footer__inner {
    max-width: var(--cg-max-width);
    margin-inline: auto;
    padding-inline: var(--cg-gutter);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 48px;
}

.cg-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cg-footer__name {
    font-size: 20px;
    font-weight: 600;
    color: var(--cg-blanco);
}

.cg-footer__tagline {
    font-size: 13px;
    color: rgba(255,255,255,.5);
    letter-spacing: .3px;
}

.cg-footer__links {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-end;
}

.cg-footer__links a {
    font-size: 15px;
    color: rgba(255,255,255,.6);
    transition: color var(--cg-transition);
}

.cg-footer__links a:hover { color: var(--cg-verde-light); }

.cg-footer__bottom {
    max-width: var(--cg-max-width);
    margin-inline: auto;
    padding-inline: var(--cg-gutter);
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.cg-footer__copy {
    font-size: 13px;
    color: rgba(255,255,255,.4);
}

.cg-footer__values {
    font-size: 13px;
    color: rgba(255,255,255,.4);
    display: flex;
    align-items: center;
    gap: 10px;
}

.cg-footer__dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,.3);
    flex-shrink: 0;
}

/* ============================================================
   PAGE / SINGLE
============================================================ */
.cg-main--page {
    padding-block: calc(80px + 60px) 80px;
}

.cg-post__title {
    font-size: clamp(28px, 4vw, 48px);
    color: var(--cg-azul-marino);
    margin-bottom: 32px;
}

.cg-post__content {
    font-size: 18px;
    line-height: 1.7;
    color: var(--cg-azul-marino);
    max-width: 720px;
}

.cg-post__content h2, .cg-post__content h3 { margin-block: 32px 16px; }
.cg-post__content p { margin-bottom: 20px; }
.cg-post__content a { color: var(--cg-azul-cielo); text-decoration: underline; }

/* ============================================================
   RESPONSIVE — Tablet (≤ 1024px)
============================================================ */
@media (max-width: 1024px) {
    :root {
        --cg-gutter: 40px;
    }

    .cg-hero__inner,
    .cg-about__inner,
    .cg-no-hago__content,
    .cg-contacto__layout {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .cg-hero { padding-top: calc(72px + 60px); }

    .cg-hero__image-wrap { order: -1; }

    .cg-hero__image-card { max-width: 100%; max-height: 380px; }

    .cg-hero__image { max-height: 380px; }

    .cg-proceso__card {
        grid-template-columns: 1fr;
    }

    .cg-servicios__grid,
    .cg-testimonios__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .cg-contacto__info { position: static; }

    .cg-nav { display: none; }

    .cg-header__cta { display: none; }

    .cg-menu-toggle { display: flex; }
}

/* ============================================================
   RESPONSIVE — Mobile (≤ 640px)
============================================================ */
@media (max-width: 640px) {
    :root {
        --cg-gutter: 20px;
    }

    .cg-hero__buttons { flex-direction: column; }
    .cg-hero__buttons .cg-btn { width: 100%; }

    .cg-servicios__grid { grid-template-columns: 1fr; }

    .cg-testimonios__grid { grid-template-columns: 1fr; }

    .cg-servicios__cierre { flex-direction: column; align-items: flex-start; }
    .cg-servicios__cierre .cg-btn { width: 100%; }

    .cg-proceso__card { padding: 28px; }

    .cg-form { padding: 28px; }

    .cg-footer__inner { flex-direction: column; }
    .cg-footer__links { align-items: flex-start; }

    .cg-footer__bottom { flex-direction: column; align-items: flex-start; }

    .cg-about__stat { padding: 16px 20px; }

    .cg-form__contact-options { gap: 8px; }
}

/* ============================================================
   ACCESSIBILITY
============================================================ */
:focus-visible {
    outline: 2px solid var(--cg-azul-cielo);
    outline-offset: 3px;
    border-radius: 4px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* Skip link */
.skip-to-content {
    position: absolute;
    top: -999px;
    left: 16px;
    z-index: 999;
    background: var(--cg-azul-marino);
    color: var(--cg-verde-light);
    padding: 12px 24px;
    border-radius: var(--cg-radius-xs);
    font-size: 15px;
}

.skip-to-content:focus { top: 16px; }

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