a:hover { color: var(--secundario); } ol li { margin-left: 3em; list-style: decimal; } blockquote { position: relative; padding: 2.5rem 2rem; margin: 2rem 0; background: linear-gradient(135deg, var(--principal), var(--complemento)); color: white; box-shadow: var(--shadow); a{color: var(--secundario);} } blockquote::before { content: '"'; position: absolute; top: -0.5rem; left: 1rem; font-family: var(--fuenteTitulos); font-size: 6rem; line-height: 1; color: var(--accion); opacity: 0.3; } blockquote p { position: relative; font-family: var(--fuenteTitulos); font-size: clamp(1.25rem, 1rem + 0.5vw, 1.75rem); line-height: 1.4; margin-bottom: 1rem; } blockquote small { display: block; color: var(--accion); font-family: var(--fuenteTexto); font-size: 1rem; font-weight: 700; margin-top: 1rem; text-align: right; } blockquote .boton { margin-top: 1.5rem; background-color: var(--accion); color: var(--principal); margin: 1em auto 0; } blockquote .boton:hover { background-color: var(--secundario); color: white; } table { width: 100%; margin: 2em 0 4em; } table tr { border-bottom: 2px dotted var(--gris1); display: flex; padding: 1.2em; flex-wrap: wrap; gap: 1em; width: 100%; } table tr:nth-child(even) { background-color: var(--gris1); } table th { font-weight: 900; } table td, table th { flex: 1 0 200px; } hr { border: 0; height: 1px; background: #333; background-image: linear-gradient(to right, #ccc, #333, #ccc); } .two_columns { display: flex; flex-wrap: wrap; gap: 3em; justify-content: space-around; height: -webkit-min-content; height: -moz-min-content; height: min-content; & > div, figure { flex: 1 0 400px; max-width: 100%; } img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; -o-object-position: center right; object-position: center right; } .two_columns-image { line-height: 0; } } .two_columns_left { flex-direction: row-reverse; } .three_columns { display: flex; flex-wrap: wrap; gap: 1em; justify-content: center; align-items: flex-start; margin-bottom: 4em; & > div { position: relative; width: min(100%, 276px); text-align: center; display: grid; place-items: center; border-radius: var(--radius-cards); overflow: hidden; img { transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); } img:hover { transform: scale(1.015); } h4 { font-size: 24px; max-width: 296px; margin: 0; } } } .icons { max-width: 180px; } .icons svg { width: 48px; height: 48px; color: var(--accion); } .footer { background-color: #002b4d; color: white; padding: 2rem 1rem; font-family: Arial, sans-serif; } .footer-content { width: min(100%, 1440px); margin: 0 auto; display: flex; gap: 1em; flex-wrap: wrap; justify-content: space-between; align-items: center; } .footer-logo { flex: 1 1 200px; margin-bottom: 1rem; } .footer-logo img { max-width: 200px; width: 100%; height: auto; } .footer-section { flex: 1 1 200px; margin: 0 1rem 1rem 0; min-width: 0; /* Permite que las secciones se reduzcan más allá de su contenido */ } .footer-section h3 { font-size: clamp(1rem, 2vw, 1.2rem); margin-bottom: 0.5rem; } .footer-section p { margin: 0.25rem 0; font-size: clamp(0.875rem, 1.5vw, 1rem); color: rgba(255, 255, 255, 0.95); } .social-icons { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; } .social-icon { width: clamp(20px, 4vw, 24px); height: clamp(20px, 4vw, 24px); fill: white; } .footer-bottom { margin-top: 2rem; text-align: center; font-size: clamp(0.8rem, 1.5vw, 0.9rem); border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 1rem; width: 100%; color: rgba(255, 255, 255, 0.9); a { color: #f0dfc8; font-size: 16px; font-weight: 500; text-decoration: none; } small { color: rgba(255, 255, 255, 0.85); } } .background_full{ background-color: var(--gris1); box-shadow: 0 0 0 100vmax var(--gris1); clip-path: inset(0 -100vmax); } /* ============================================================================ COOKIE BANNER & MODAL STYLES ============================================================================ */ /* Cookie Bubble */ .cookie-bubble { position: fixed; bottom: 20px; left: 20px; background: #fff; border-radius: var(--radius-cards); box-shadow: var(--shadow); padding: 12px 16px; z-index: 9999; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(20px); transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0.4s; border: 1px solid var(--gris1); max-width: 320px; } .cookie-bubble.show { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0s; } .cookie-bubble__content { display: flex; flex-direction: column; gap: 10px; } .cookie-bubble__text { display: flex; align-items: center; gap: 8px; } .cookie-bubble__icon { font-size: 16px; flex-shrink: 0; } .cookie-bubble__message { font-size: 13px; color: var(--grisTexto); line-height: 1.4; } .cookie-bubble__actions { display: flex; align-items: center; gap: 12px; } .cookie-bubble__link { font-size: 12px; color: var(--gris2); background: none; border: none; cursor: pointer; text-decoration: underline; padding: 6px 8px; transition: color 0.2s ease; white-space: nowrap; } .cookie-bubble__link:hover { color: var(--grisTexto); } .cookie-bubble__btn { padding: 8px 16px; border: none; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; background: var(--accion); color: var(--principal); } .cookie-bubble__btn:hover { background: var(--secundario); color: #fff; transform: translateY(-1px); } /* Ocultar elementos del banner antiguo */ .cookie-banner, .cookie-banner__content, .cookie-banner__text, .cookie-banner__title, .cookie-banner__description, .cookie-banner__link, .cookie-banner__actions { display: none !important; } /* Cookie Modal */ .cookie-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(4px); z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1rem; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s ease, visibility 0s linear 0.3s; } .cookie-modal.show { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 0.3s ease, visibility 0s linear 0s; } .cookie-modal__content { background: #fff; border-radius: var(--radius-cards); max-width: 600px; width: 100%; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow); animation: modalSlideIn 0.3s ease; } @keyframes modalSlideIn { from { transform: scale(0.9) translateY(20px); opacity: 0; } to { transform: scale(1) translateY(0); opacity: 1; } } .cookie-modal__header { padding: 1.5rem; border-bottom: 1px solid var(--gris1); display: flex; justify-content: space-between; align-items: center; } .cookie-modal__title { margin: 0; font-size: 1.25rem; font-weight: 700; color: var(--principal); } .cookie-modal__close { background: transparent; border: none; font-size: 2rem; line-height: 1; cursor: pointer; color: var(--gris2); padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s; } .cookie-modal__close:hover { background: var(--gris1); color: var(--grisTexto); } .cookie-modal__body { padding: 1.5rem; overflow-y: auto; flex: 1; } .cookie-modal__intro { margin: 0 0 1.5rem; font-size: 0.875rem; line-height: 1.6; color: var(--gris2); } .cookie-category { margin-bottom: 1.5rem; padding: 1rem; background: var(--gris1); border-radius: 8px; border: 1px solid var(--gris1); } .cookie-category__header { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 0.75rem; } .cookie-category__info { flex: 1; display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; } .cookie-category__title { margin: 0; font-size: 1rem; font-weight: 600; color: var(--principal); } .cookie-category__badge { display: inline-block; padding: 0.25rem 0.75rem; background: var(--accion); color: var(--principal); font-size: 0.75rem; font-weight: 600; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; } .cookie-category__description { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--gris2); } /* Toggle Switch */ .cookie-toggle { position: relative; display: inline-block; width: 50px; height: 26px; cursor: pointer; flex-shrink: 0; } .cookie-toggle input { opacity: 0; width: 0; height: 0; } .cookie-toggle__slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--gris1); transition: 0.3s; border-radius: 26px; } .cookie-toggle__slider:before { position: absolute; content: ""; height: 20px; width: 20px; left: 3px; bottom: 3px; background-color: white; transition: 0.3s; border-radius: 50%; } .cookie-toggle input:checked + .cookie-toggle__slider { background-color: var(--secundario); } .cookie-toggle input:checked + .cookie-toggle__slider:before { transform: translateX(24px); } .cookie-toggle input:disabled + .cookie-toggle__slider { opacity: 0.6; cursor: not-allowed; } .cookie-modal__footer { padding: 1.5rem; border-top: 1px solid var(--gris1); display: flex; gap: 0.75rem; flex-wrap: wrap; } .cookie-modal__btn { flex: 1; min-width: 140px; padding: 10px 16px; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; border: 2px solid var(--accion); } .cookie-modal__btn--primary { background: var(--accion); color: var(--principal); } .cookie-modal__btn--primary:hover { background: var(--secundario); border-color: var(--secundario); color: #fff; } .cookie-modal__btn--secondary { background: transparent; color: var(--principal); border-color: var(--principal); } .cookie-modal__btn--secondary:hover { background: var(--principal); color: #fff; } /* Responsive Design - Burbuja flotante */ @media (max-width: 768px) { .cookie-bubble { bottom: 12px; left: 12px; right: 12px; max-width: none; padding: 10px 14px; } .cookie-bubble__content { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; } .cookie-bubble__text { flex: 1 1 auto; min-width: 0; } .cookie-bubble__message { font-size: 12px; } .cookie-bubble__actions { flex-shrink: 0; gap: 8px; } .cookie-bubble__btn { padding: 6px 12px; font-size: 12px; } .cookie-bubble__link { font-size: 11px; padding: 6px 8px; } /* Modal styles remain the same */ .cookie-modal__content { max-height: 95vh; } .cookie-modal__header, .cookie-modal__body, .cookie-modal__footer { padding: 1rem; } .cookie-modal__footer { flex-direction: column; } .cookie-modal__btn { width: 100%; } .cookie-category__header { gap: 0.75rem; } } @media (max-width: 480px) { .cookie-bubble { bottom: 10px; left: 10px; right: 10px; padding: 8px 12px; border-radius: 10px; } .cookie-bubble__content { flex-direction: column; align-items: stretch; gap: 8px; } .cookie-bubble__text { justify-content: center; } .cookie-bubble__actions { justify-content: center; } .cookie-bubble__message { font-size: 11px; text-align: center; } .cookie-bubble__btn { flex: 1; } .cookie-bubble__link { flex: 1; text-align: center; } } /* Accessibility */ .cookie-modal__close:focus, .cookie-bubble__btn:focus, .cookie-modal__btn:focus, .cookie-toggle input:focus + .cookie-toggle__slider { outline: 2px solid var(--accion); outline-offset: 2px; } /* Reduced Motion */ @media (prefers-reduced-motion: reduce) { .cookie-bubble, .cookie-modal, .cookie-modal__btn, .cookie-toggle__slider, .cookie-toggle__slider:before { transition: none; } @keyframes modalSlideIn { from, to { transform: none; opacity: 1; } } } /* ===== SISTEMA DE COMPONENTES REUTILIZABLES ===== Diseño base compartido entre layouts (tipografía, section, hero, bento, card, glass, cta, media/contact grids). Se inyecta inline como critical en la home y puede incluirse (deferred) en cualquier layout que lo reutilice. No añadir aquí nada que no se use en el HTML. */ :root { --surface: #f9f9f9; --surface-container-low: #f3f3f4; --surface-container: #eeeeee; --surface-variant: #e2e2e2; --surface-container-highest: #e2e2e2; --on-surface: #1a1c1c; --on-surface-variant: #43474e; --outline: #73777f; --outline-variant: #c3c7cf; --clinical-white: #fefefe; --shadow-ambient: 0 20px 40px -15px rgba(0, 46, 81, 0.1); } /* Typography tokens */ .text-display-lg-mobile { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.75rem, 1.5rem + 0.8vw, 2.25rem); font-weight: 600; line-height: 1.2; } .text-headline-md { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.5rem, 1.3rem + 0.6vw, 2rem); font-weight: 500; line-height: 1.25; } .text-headline-sm { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.5rem); font-weight: 500; line-height: 1.3; } .text-body-lg { font-family: "DM Sans", sans-serif; font-size: clamp(1rem, 0.9rem + 0.2vw, 1.125rem); font-weight: 400; line-height: 1.6; } .text-body-md { font-family: "DM Sans", sans-serif; font-size: clamp(0.875rem, 0.8rem + 0.2vw, 1rem); font-weight: 400; line-height: 1.5; } .text-body-sm { font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 400; line-height: 1.4; } /* ===== NAV ===== */ .home-redesign-body { overflow-x: clip; } .home-redesign-body .site-header { position: sticky; top: 0; z-index: 50; } .home-redesign-body .site-header::before { content: ''; position: absolute; inset: 0; background: rgba(254, 254, 254, 0.92); backdrop-filter: blur(12px); box-shadow: 0 1px 0 var(--outline-variant); pointer-events: none; z-index: -1; } .home-redesign-body .site-header nav { box-shadow: none; background: transparent; } .home-redesign-body .logo-nav img { height: 36px; } /* Reduce gap del nav en escritorio angosto para evitar que desborde */ @media screen and (min-width: 1025px) and (max-width: 1300px) { .home-redesign-body .navegacion { gap: 0.75rem; } .home-redesign-body .dropdown > span { font-size: 0.875rem; } } /* ===== CENTERED CONTENT UTILITY ===== */ .content-center { display: flex; flex-direction: column; align-items: center; text-align: center; } /* ===== HERO ===== */ .hero { position: relative; padding: 3rem 0 4rem; overflow: hidden; background: var(--clinical-white); text-align: center; } .hero__inner { max-width: 800px; margin: 0 auto; padding: 0 var(--gutter, 20px); position: relative; z-index: 2; } .hero__badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(199, 231, 255, 0.3); color: var(--principal); padding: 0.5rem 1rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 1.5rem; } .hero__title { color: var(--principal); margin-bottom: 1rem; } .hero__description { color: var(--on-surface); max-width: 600px; margin: 0 auto 1.5rem; } .hero__actions { display: flex; gap: 1rem; justify-content: center; padding-top: 1rem; } .hero__image-wrapper { max-width: var(--container-max, 1200px); margin: 3rem auto 0; padding: 0 var(--gutter, 20px); position: relative; z-index: 2; } .hero__image { border-radius: 1.5rem; overflow: hidden; box-shadow: var(--shadow-ambient); border: 1px solid rgba(195, 199, 207, 0.2); aspect-ratio: 16 / 9; } .hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: top; } .hero__gradient { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(199, 231, 255, 0.15), transparent); pointer-events: none; z-index: 0; } /* ===== BUTTON ===== */ .btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.75rem 1.5rem; border-radius: 0.75rem; transition: all 0.3s ease; cursor: pointer; border: none; line-height: 1; } .btn--primary { background: var(--principal); color: var(--clinical-white); } .btn--primary:hover { background: var(--complemento); } .btn--secondary { background: var(--clinical-white); color: var(--principal); border: 1px solid var(--secundario); width: fit-content; margin-top: 1rem; } .btn--secondary:hover { background: var(--surface-container-low); } /* ===== SECTIONS ===== */ .section { padding: 4rem 0; } .section--tint { background: var(--surface); } .section--white { background: var(--clinical-white); } .section--dark { background: var(--principal); color: white; } .section__inner { max-width: var(--container-max, 1200px); margin: 0 auto; padding: 0 var(--gutter, 20px); } .section__header { text-align: center; max-width: 768px; margin: 0 auto 3rem; } .section__header > * { margin-inline: auto; } .section__header .text-headline-md { margin-bottom: 1rem; } /* ===== CARD PRINCIPAL (reusable — fondo azul, texto blanco) ===== */ .card--feature { background: var(--principal); color: white; padding: 2rem; border-radius: 1.5rem; display: flex; flex-direction: column; gap: 1rem; } :is(.section) .card--feature :where(.text-body-lg, .text-body-md, .text-body-sm) { color: white; } .card--feature a:not(.btn):not(.btn-whatsapp) { color: var(--secundario); text-decoration: underline; text-decoration-thickness: 2px; } .card--feature a:not(.btn):not(.btn-whatsapp):hover { color: white; } /* ===== CTA CARD (extiende card--feature) ===== */ .cta-card { justify-content: center; } .cta-card__icon { font-size: 2.5rem; color: var(--secondary-fixed, #c7e7ff); } .cta-card__title { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.5rem); font-weight: 500; color: white; } .cta-card__text { color: white; font-size: clamp(0.875rem, 0.8rem + 0.2vw, 1rem); } .cta-card__btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--clinical-white); color: var(--principal); text-decoration: none; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.85rem 1.5rem; border-radius: 0.75rem; width: 100%; text-align: center; transition: all 0.3s ease; word-break: break-word; hyphens: auto; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15); } .cta-card__btn:hover { background: var(--surface-container-low); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25); } .cta-card__btn::after { content: "→"; transition: transform 0.2s ease; } .cta-card__btn:hover::after { transform: translateX(4px); } /* ===== BENTO GRID ===== */ .bento-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; } /* ===== BENTO CARD ===== */ .bento-card { position: relative; border-radius: 1.5rem; overflow: hidden; min-height: 300px; } .bento-card :where(.text-headline-sm, .text-headline-md) { word-break: break-word; overflow-wrap: break-word; } .bento-card--full { grid-column: 1 / -1; } .bento-card--text { padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; } .bento-card--text-center { justify-content: center; } .bento-card--dark { background: var(--principal); color: white; } .bento-card--light { background: var(--surface-container-low); } .bento-card--tint { background: var(--surface-variant); } .bento-card--glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.3); } .bento-card__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .bento-card:hover .bento-card__image { transform: scale(1.05); } .bento-card__overlay { position: absolute; inset: 0; pointer-events: none; } .bento-card__overlay--gradient-t { background: linear-gradient(to top, var(--principal) 0%, transparent 60%); } .bento-card__overlay--gradient-r { background: linear-gradient(to right, var(--principal) 0%, transparent 60%); } .bento-card__overlay--dark { background: rgba(0, 46, 81, 0.4); } .bento-card__content { position: relative; z-index: 2; padding: 1.5rem; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; color: white; overflow: hidden; } .bento-card__content :where(.text-headline-sm, .text-body-sm, .text-body-md) { word-break: break-word; overflow-wrap: break-word; } .bento-card__content--center { justify-content: center; } .bento-card__link { display: inline-flex; align-items: center; gap: 0.35rem; color: white; text-decoration: none; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 0.75rem; transition: opacity 0.2s; border-bottom: 1px solid transparent; align-self: flex-start; } .bento-card__link::after { content: "→"; transition: transform 0.2s ease; } .bento-card__link:hover { opacity: 0.85; border-bottom-color: rgba(255, 255, 255, 0.5); } .bento-card__link:hover::after { transform: translateX(4px); } .bento-card__tag { display: inline-block; padding: 0.25rem 0.75rem; background: rgba(209, 228, 255, 0.3); color: var(--principal); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; border-radius: 9999px; margin-bottom: 1rem; width: fit-content; } .bento-card__tag--light { background: rgba(166, 203, 230, 0.3); } /* ===== TEXT CARD ===== */ .bento-card--text h3 { color: var(--principal); margin-bottom: 0.75rem; } .bento-card--text :where(.text-body-md, .text-body-sm) { color: var(--on-surface); max-width: 480px; } /* ===== SERVICE CARD TEXT LINK ===== */ .link--cta-text { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--principal); text-decoration: none; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 1rem; padding-bottom: 0.25rem; border-bottom: 2px solid var(--principal); width: fit-content; transition: all 0.2s; align-self: flex-start; } .link--cta-text::after { content: "→"; transition: transform 0.2s ease; } .link--cta-text:hover { opacity: 0.8; gap: 0.5rem; } .link--cta-text:hover::after { transform: translateX(4px); } /* Link-button secundario — fondos claros (ej. bento-card--light) */ .btn-link--secondary { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--principal); text-decoration: none; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 1rem; padding-bottom: 0.25rem; border-bottom: 2px solid var(--principal); width: fit-content; transition: all 0.2s; align-self: flex-start; } .btn-link--secondary::after { content: "→"; transition: transform 0.2s ease; } .btn-link--secondary:hover { opacity: 0.75; gap: 0.5rem; } .btn-link--secondary:hover::after { transform: translateX(4px); } /* Link-button secundario claro — fondos oscuros/imagen (ej. glass-card) */ .btn-link--secondary-light { display: inline-flex; align-items: center; gap: 0.35rem; color: white; text-decoration: none; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 0.75rem; border-bottom: 1px solid transparent; width: fit-content; transition: all 0.2s; align-self: flex-start; } .btn-link--secondary-light::after { content: "→"; transition: transform 0.2s ease; } .btn-link--secondary-light:hover { opacity: 0.85; border-bottom-color: rgba(255,255,255,0.5); gap: 0.5rem; } .btn-link--secondary-light:hover::after { transform: translateX(4px); } /* ===== GLASS CARD ===== */ .glass-card { background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 1rem; padding: 1.5rem; color: white; } .glass-card h3 { color: white; } .glass-card p { opacity: 0.9; } .glass-card--narrow { max-width: 280px; } /* ===== BENTO CARD BACKGROUND MODIFIERS ===== */ .bento-card--bg-principal { background: var(--principal); } .bento-card--bg-complemento { background: var(--complemento); } .bento-card--bg-secundario { background: var(--secundario); } .bento-card--bg-surface-highest { background: var(--surface-container-highest); } .bento-card__content--end { justify-content: flex-end; } /* ===== SURFACE HIGHEST ===== */ .bento-card--bg-surface-highest .bento-card__content { color: var(--on-surface); } .bento-card--bg-surface-highest .text-headline-sm { color: var(--principal); } .bento-card--bg-surface-highest .text-body-sm { color: var(--on-surface); } .bento-card--bg-surface-highest .bento-card__link { color: var(--principal); border-bottom: 2px solid var(--principal); } /* ===== DARK OVERLAY ===== */ .bento-card--dark-overlay { color: white; } .bento-card--dark-overlay .text-body-md { color: white; opacity: 0.9; max-width: 450px; } /* ===== VIDEO ===== */ .video-embed { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 1rem; overflow: hidden; box-shadow: var(--shadow-ambient); border: 1px solid rgba(195, 199, 207, 0.1); } .video-summary { display: grid; place-items: center; cursor: pointer; list-style: none; height: 100%; } .video-summary::-webkit-details-marker { display: none; } .video-thumbnail { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: cover; display: block; } .video-playicon { grid-area: 1 / 1; width: 72px; height: 72px; filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.5)); transition: transform 0.2s ease; } .video-summary:hover .video-playicon { transform: scale(1.1); } .video-content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .video-content iframe { width: 100%; height: 100%; border: 0; } .video-embed[open] .video-summary { visibility: hidden; pointer-events: none; } /* ===== GRID-2 / WHY CHOOSE US ===== */ .grid-2 { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; } .about-img { border-radius: 1rem; width: 100%; height: auto; box-shadow: var(--shadow-ambient); border: 1px solid rgba(195, 199, 207, 0.2); } /* ===== MEDIA GRID ===== */ .media-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; } .media-content { display: flex; flex-direction: column; gap: 1.5rem; order: -1; color: var(--on-surface); } .media-content__label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--secundario); } .media-content :where(.text-headline-md) { color: var(--principal); } .media-content :where(.text-body-lg, .text-body-md) { color: var(--on-surface); } .media-content .btn { width: fit-content; } /* ===== CONTACT ===== */ .contact-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; } .contact-grid .text-headline-md { color: var(--principal); margin-bottom: 1rem; } .contact-grid .text-body-md { color: var(--on-surface); } .contact-list { display: flex; flex-direction: column; gap: 1rem; list-style: none; margin: 1.5rem 0 0; padding: 0; } .contact-list li { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0; font-size: clamp(0.875rem, 0.8rem + 0.2vw, 1rem); color: var(--on-surface); } .contact-list .icon { color: var(--principal); flex-shrink: 0; margin-top: 0.125rem; } .contact-map { border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.08); border: 1px solid rgba(195, 199, 207, 0.2); min-height: 400px; } .contact-map iframe { width: 100%; height: 100%; border: none; } .contact-cta-wrapper { margin-top: 2rem; } /* ===== BENTO CARD CONTENT PARAGRAPHS ===== */ .bento-card__content :where(.text-body-sm, .text-body-md) { margin-top: 0.5rem; } /* ===== SECTION TEXT COLORS ===== */ .section :where(.text-headline-md) { color: var(--principal); } .section :where(.text-body-lg, .text-body-md) { color: var(--on-surface); } /* ===== MOBILE (< 480px): 2 columnas + texto compacto ===== */ @media (max-width: 480px) { .bento-grid { grid-template-columns: 1fr 1fr; } .bento-card--wide, .cta-card { grid-column: span 2; } .bento-card { min-height: 200px; } .bento-card--text { padding: 1rem; } .bento-card--text .text-headline-sm { font-size: 0.9rem; } .bento-card--text .text-body-sm { font-size: 0.75rem; } .bento-card__content { padding: 0.75rem; } .bento-card__content .text-headline-sm { font-size: 0.85rem; word-break: break-word; overflow-wrap: break-word; hyphens: auto; } .bento-card__content .text-body-sm { font-size: 0.7rem; word-break: break-word; overflow-wrap: break-word; } .bento-card__content .bento-card__link { font-size: 0.65rem; margin-top: 0.5rem; } .glass-card { padding: 0.75rem; max-width: 100%; overflow: hidden; word-break: break-word; } .glass-card--narrow { max-width: 100%; } .glass-card .text-headline-sm { font-size: 0.85rem; word-break: break-word; overflow-wrap: break-word; } .glass-card .text-body-sm { font-size: 0.7rem; } .bento-card--dark-overlay .text-body-md { font-size: 0.75rem; max-width: 100%; } .card--feature { padding: 1rem; } .card--feature .text-headline-sm { font-size: 1rem; } .card--feature .text-body-md { font-size: 0.8rem; } .cta-card__title { font-size: 1rem; } .cta-card__text { font-size: 0.8rem; } .cta-card__btn { font-size: 0.65rem; padding: 0.5rem 0.75rem; } } /* ===== MEDIA QUERIES (layout global + bento desktop) ===== */ @media (min-width: 768px) { .bento-grid { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 300px; } .bento-card--wide { grid-column: span 2; } .bento-card--tall { grid-row: span 2; } .section { padding: 6rem 0; } .bento-card__content { padding: 2rem; } .hero { padding: 4rem 0 6rem; } .hero__image-wrapper { margin-top: 4rem; } .grid-2 { grid-template-columns: 1fr 1fr; } .media-grid { grid-template-columns: 1fr 1fr; } .video-embed { order: -1; } .media-content { order: 0; } .contact-grid { grid-template-columns: 1fr 1fr; } } /* Tablet text overflow */ @media (min-width: 481px) and (max-width: 767px) { .bento-card { min-height: 260px; } .bento-card__content .text-headline-sm { font-size: clamp(1rem, 1.8vw, 1.25rem); } .bento-card__content .text-body-sm { font-size: clamp(0.75rem, 1.4vw, 0.875rem); } .bento-card--text .text-body-sm { font-size: clamp(0.75rem, 1.4vw, 0.875rem); } .glass-card { padding: 1rem; max-width: 100%; overflow: hidden; word-break: break-word; } .glass-card--narrow { max-width: 100%; } .bento-card--text { padding: 1rem; overflow: hidden; word-break: break-word; } .bento-card--text .text-headline-sm { font-size: 0.9rem; } } /* Why Choose Us — tablet */ @media (min-width: 768px) and (max-width: 1023px) { .grid-2 { grid-template-columns: 1fr; } .grid-2 .about-img { max-height: 400px; width: 100%; object-fit: cover; object-position: top; } } @media (max-width: 767px) { .grid-2 { gap: 2rem; } .grid-2 .about-img { max-height: 400px; width: 100%; object-fit: cover; } .section { padding: 2rem 0; } } @media (max-width: 480px) { .hero__actions { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 320px; } } @media (min-width: 1200px) { .hero__inner { max-width: 900px; } .hero__image { aspect-ratio: 21 / 9; } } /* ===== SECTION NARROW ===== */ .section__inner--narrow { max-width: 800px; margin: 0 auto; } /* ===== TRUST BADGE / SECTION ===== */ .trust-badge { display: inline-block; width: fit-content; align-self: flex-start; padding: 0.25rem 0.75rem; background: rgba(0, 46, 81, 0.08); color: var(--principal); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; border-radius: 9999px; margin-bottom: 1rem; } .trust-section__title { color: var(--principal); margin-bottom: 1rem; } .trust-section__body { color: var(--on-surface); } /* ===== FLOW PADDED ===== */ .flow--padded { padding: 2rem; } /* ===== FOOTER OVERRIDE (solo home) ===== */ .home-redesign-body .footer { margin-top: 0; } /* ===== SERVICE REDESIGN ===== Estilos específicos para páginas de servicio con el nuevo diseño. Depende de components.css (tipografía, bento, section, btn, etc.). */ /* ===== SERVICE HERO (split layout) ===== */ .service-hero { position: relative; padding: 2rem 0 4rem; overflow: hidden; background: var(--clinical-white); } .service-hero__bg { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(199, 231, 255, 0.15), transparent); pointer-events: none; z-index: 0; } .service-hero .section__inner { position: relative; z-index: 1; } .service-hero__grid { display: grid; gap: 3rem; align-items: center; } .service-hero__content { display: flex; flex-direction: column; gap: 1.5rem; } .service-hero__badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(199, 231, 255, 0.3); color: var(--principal); padding: 0.5rem 1rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; width: fit-content; } .service-hero__badge svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; } .service-hero__title { color: var(--principal); } .service-hero__description { color: var(--on-surface-variant); max-width: 560px; } .service-hero__actions { display: flex; flex-direction: column; gap: 0.75rem; padding-top: 0.5rem; } .service-hero__actions .btn { width: 100%; text-align: center; } .service-hero__social { display: flex; align-items: center; gap: 1rem; padding-top: 0.5rem; } .service-hero__avatars { display: flex; } .service-hero__avatar { width: 2.5rem; height: 2.5rem; border-radius: 9999px; border: 2px solid white; object-fit: cover; } .service-hero__avatar + .service-hero__avatar { margin-left: -0.75rem; } .service-hero__social-text { font-size: 0.875rem; color: var(--on-surface-variant); } .service-hero__media { position: relative; border-radius: 1.5rem; overflow: hidden; box-shadow: var(--shadow-ambient); border: 1px solid rgba(195, 199, 207, 0.2); aspect-ratio: 4 / 3; } @media (min-width: 768px) { .service-hero__media { aspect-ratio: auto; min-height: 24rem; } } .service-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; } .service-hero__media-badge { position: absolute; bottom: 1.5rem; left: 1.5rem; background: rgba(254, 254, 254, 0.9); backdrop-filter: blur(8px); padding: 0.75rem 1.25rem; border-radius: 1rem; display: flex; align-items: center; gap: 0.75rem; } .service-hero__media-badge-icon { width: 2rem; height: 2rem; border-radius: 0.5rem; background: var(--surface-container-low); display: flex; align-items: center; justify-content: center; color: var(--principal); flex-shrink: 0; } .service-hero__media-badge-icon svg { width: 1.25rem; height: 1.25rem; } .service-hero__media-badge-text { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--principal); line-height: 1.2; } .service-hero__media-badge-sub { font-size: 0.625rem; color: var(--on-surface-variant); line-height: 1; } @media (min-width: 768px) { .service-hero { padding: 3rem 0 6rem; } .service-hero__grid { grid-template-columns: 1fr 1fr; } .service-hero__actions { flex-direction: row; } .service-hero__actions .btn { width: auto; } } /* ===== FEATURE CARDS (technical content) ===== */ .feature-grid { display: grid; gap: 1.5rem; } .feature-card { display: flex; flex-direction: column; gap: 1.25rem; padding: 2rem; background: var(--clinical-white); border-radius: 1.5rem; border: 1px solid rgba(195, 199, 207, 0.3); transition: all 0.3s ease; } .feature-card:hover { border-color: var(--secundario); } .feature-card__header { display: flex; align-items: center; gap: 1rem; } .feature-card__icon { width: 3rem; height: 3rem; flex-shrink: 0; background: var(--surface-container-low); border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: var(--secundario); transition: transform 0.3s ease; } .feature-card:hover .feature-card__icon { transform: scale(1.1); } .feature-card__icon--sand { color: var(--accion); } .feature-card__icon svg { width: 1.5rem; height: 1.5rem; } .feature-card__header h4 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.125rem, 1rem + 0.3vw, 1.375rem); font-weight: 500; color: var(--principal); line-height: 1.3; margin: 0; } .feature-card__body { width: 100%; } .feature-card__body p { font-size: clamp(0.875rem, 0.8rem + 0.2vw, 1rem); color: var(--on-surface-variant); line-height: 1.6; max-width: 100%; } .feature-card--dark { background: var(--principal); border-color: transparent; position: relative; overflow: hidden; } .feature-card--dark::before { content: ''; position: absolute; right: 0; top: 0; width: 12rem; height: 12rem; opacity: 0.06; background: radial-gradient(circle, currentColor 0%, transparent 70%); pointer-events: none; } .feature-card--dark .feature-card__icon { background: rgba(255, 255, 255, 0.1); color: var(--secundario); } .feature-card--dark h4 { color: white; } .feature-card--dark p { color: rgba(255, 255, 255, 0.8); } .feature-card--dark:hover { border-color: rgba(130, 167, 193, 0.5); } .feature-card__certs { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.1); } .feature-card__certs-label { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.6); width: 100%; margin-bottom: 0.25rem; } .feature-card__cert { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; background: rgba(255, 255, 255, 0.08); padding: 0.375rem 0.75rem; border-radius: 0.5rem; color: rgba(255, 255, 255, 0.8); } @media (min-width: 768px) { .feature-grid { grid-template-columns: 1fr 1fr; } } /* ===== CONTENT SPLIT (2-column text + features) ===== */ .content-split { display: grid; gap: 3rem; align-items: start; } .content-split__text { display: flex; flex-direction: column; gap: 1.5rem; } .content-split__label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--secundario); } .content-split__text h2 { color: var(--principal); } .content-split__text p { color: var(--on-surface-variant); } .content-split__text .text-body-lg strong { color: var(--principal); } @media (min-width: 768px) { .content-split { grid-template-columns: 5fr 7fr; } } /* ===== PROTOCOL STEPS ===== */ .protocol-grid { display: grid; gap: 1.5rem; } .protocol-card { padding: 2rem; background: var(--surface); border-radius: 2rem; border: 1px solid rgba(195, 199, 207, 0.2); display: flex; flex-direction: column; gap: 1rem; } .protocol-card__number { font-family: "Lexend Deca", sans-serif; font-size: 3rem; font-weight: 700; color: rgba(130, 167, 193, 0.2); line-height: 1; } .protocol-card h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.125rem, 1rem + 0.3vw, 1.375rem); font-weight: 500; color: var(--principal); } .protocol-card p { font-size: 0.875rem; color: var(--on-surface-variant); line-height: 1.6; } .protocol-card ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; } .protocol-card li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--on-surface-variant); margin: 0; } .protocol-card li::before { content: ''; width: 0.5rem; height: 0.5rem; background: var(--secundario); border-radius: 9999px; flex-shrink: 0; } .protocol-card--highlight { background: var(--clinical-white); border-color: rgba(130, 167, 193, 0.3); box-shadow: 0 8px 32px rgba(0, 46, 81, 0.1); position: relative; z-index: 1; } @media (min-width: 768px) { .protocol-grid { grid-template-columns: 1fr 1fr 1fr; } } /* ===== PRICING GRID ===== */ .pricing-grid { display: grid; gap: 1.5rem; } .pricing-card { padding: 2rem; border-radius: 2.5rem; background: var(--surface-container-low); border: 1px solid rgba(195, 199, 207, 0.3); display: flex; flex-direction: column; justify-content: space-between; transition: all 0.3s ease; } .pricing-card:hover { box-shadow: 0 12px 40px -12px rgba(0, 46, 81, 0.15); } .pricing-card__header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; } .pricing-card__icon { width: 3rem; height: 3rem; background: rgba(130, 167, 193, 0.1); border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: var(--secundario); } .pricing-card__icon svg { width: 1.5rem; height: 1.5rem; } .pricing-card__icon--sand { background: rgba(207, 186, 163, 0.1); color: var(--accion); } .pricing-card__tag { padding: 0.25rem 0.75rem; background: white; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; border-radius: 9999px; color: var(--on-surface-variant); border: 1px solid rgba(195, 199, 207, 0.2); } .pricing-card__title { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.125rem, 1rem + 0.3vw, 1.375rem); font-weight: 500; color: var(--principal); margin-bottom: 0.5rem; } .pricing-card__description { font-size: 0.875rem; color: var(--on-surface-variant); margin-bottom: 2rem; line-height: 1.5; } .pricing-card__price { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.5rem, 1.3rem + 0.6vw, 2rem); font-weight: 600; color: var(--principal); margin-bottom: 1.5rem; } .pricing-card__features { list-style: none; padding: 0; margin: 0 0 2rem; display: flex; flex-direction: column; gap: 0.75rem; } .pricing-card__feature { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--on-surface-variant); margin: 0; } .pricing-card__check { width: 1.25rem; height: 1.25rem; color: var(--secundario); flex-shrink: 0; } .pricing-card__check svg { width: 100%; height: 100%; } .pricing-card .btn { width: 100%; text-align: center; } .pricing-card--highlight { background: var(--principal); border-color: transparent; position: relative; overflow: visible; } .pricing-card--highlight::before { content: ''; position: absolute; top: 0; right: 0; width: 10rem; height: 10rem; border-radius: inherit; opacity: 0.06; background: radial-gradient(circle, currentColor 0%, transparent 70%); pointer-events: none; } .pricing-card--highlight .pricing-card__title { color: white; } .pricing-card--highlight .pricing-card__description { color: rgba(255, 255, 255, 0.7); } .pricing-card--highlight .pricing-card__price { color: white; } .pricing-card--highlight .pricing-card__feature { color: rgba(255, 255, 255, 0.9); } .pricing-card--highlight .pricing-card__check { color: var(--secundario); } .pricing-card--highlight .pricing-card__tag { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.7); border-color: transparent; } .pricing-card--highlight .pricing-card__icon { background: rgba(255, 255, 255, 0.1); color: var(--secundario); } .pricing-card--highlight .btn--primary { background: var(--secundario); color: var(--principal); } .pricing-card--highlight .btn--primary:hover { background: var(--clinical-white); } .pricing-card__badge { position: absolute; top: -0.75rem; left: 50%; transform: translateX(-50%); background: var(--secundario); color: white; padding: 0.25rem 1rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; z-index: 2; } @media (min-width: 768px) { .pricing-grid { grid-template-columns: 1fr 1fr 1fr; } } /* ===== AUTHORITY / TRUST SECTION ===== */ .trust-grid { display: grid; gap: 3rem; align-items: center; } .trust-quote { background: var(--clinical-white); padding: 2.5rem; border-radius: 2.5rem; box-shadow: 0 32px 64px -16px rgba(0, 46, 81, 0.15); border: 1px solid rgba(195, 199, 207, 0.2); position: relative; } .trust-quote__icon { position: absolute; top: 1.5rem; right: 1.5rem; color: rgba(130, 167, 193, 0.15); width: 3rem; height: 3rem; } .trust-quote__icon svg { width: 100%; height: 100%; } .trust-quote blockquote { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.75rem); font-weight: 600; color: var(--principal); line-height: 1.3; margin-bottom: 1.5rem; padding: 0; background: none; box-shadow: none; margin: 0 0 2rem; } .trust-quote blockquote::before { display: none; } .trust-quote blockquote p { font-family: inherit; font-size: inherit; font-weight: inherit; color: inherit; line-height: inherit; margin: 0; padding: 0; } .trust-quote__author { display: flex; align-items: center; gap: 1rem; } .trust-quote__photo { width: 4.5rem; height: 4.5rem; border-radius: 1rem; overflow: hidden; border: 2px solid rgba(130, 167, 193, 0.2); flex-shrink: 0; } .trust-quote__photo img { width: 100%; height: 100%; object-fit: cover; } .trust-quote__name { font-family: "Lexend Deca", sans-serif; font-size: 1.125rem; font-weight: 500; color: var(--principal); } .trust-quote__title { font-size: 0.875rem; color: var(--on-surface-variant); margin-top: 0.125rem; } .trust-content { display: flex; flex-direction: column; gap: 2rem; } .trust-content__header { display: flex; flex-direction: column; gap: 0.75rem; } .trust-content__header h2 { color: var(--principal); } .trust-content__header p { color: var(--on-surface-variant); } .trust-cards { display: grid; gap: 1rem; } .trust-card { padding: 1.5rem; background: rgba(254, 254, 254, 0.5); backdrop-filter: blur(8px); border-radius: 1.5rem; border: 1px solid rgba(255, 255, 255, 0.4); } .trust-card h4 { font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--principal); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.5rem; } .trust-card h4 svg { width: 1.25rem; height: 1.25rem; color: var(--secundario); flex-shrink: 0; } .trust-card p { font-size: 0.875rem; color: var(--on-surface-variant); line-height: 1.6; } .trust-card--wide { grid-column: 1 / -1; } @media (min-width: 768px) { .trust-grid { grid-template-columns: 1fr 1fr; } .trust-cards { grid-template-columns: 1fr 1fr; } } /* ===== COMPARISON TABLE ===== */ .comparison-wrap { overflow: hidden; border-radius: 2rem; border: 1px solid rgba(195, 199, 207, 0.2); background: var(--clinical-white); } .comparison-table { width: 100%; border-collapse: collapse; } .comparison-table thead { background: var(--surface-container-low); } .comparison-table th { padding: 1.25rem 1.5rem; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; text-align: left; } .comparison-table th:first-child { color: var(--principal); } .comparison-table th:last-child { color: var(--secundario); } .comparison-table td { padding: 1.25rem 1.5rem; font-size: 0.875rem; color: var(--on-surface-variant); border-bottom: 1px solid rgba(195, 199, 207, 0.1); } .comparison-table td:first-child { font-weight: 700; color: var(--principal); } .comparison-table tr:last-child td { border-bottom: none; } /* ===== RELATED READING LINKS ===== */ .related-links { display: flex; flex-direction: column; gap: 0.75rem; } .related-link { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; background: var(--clinical-white); border-radius: 1rem; border: 1px solid rgba(195, 199, 207, 0.2); text-decoration: none; font-size: 0.9375rem; font-weight: 600; color: var(--principal); transition: all 0.2s ease; } .related-link:hover { border-color: var(--secundario); } .related-link__arrow { color: var(--secundario); transition: transform 0.2s ease; width: 1.25rem; height: 1.25rem; flex-shrink: 0; } .related-link:hover .related-link__arrow { transform: translateX(0.25rem); } .related-link__arrow svg { width: 100%; height: 100%; } /* ===== FAQ GRID ===== */ .faq-grid { display: grid; gap: 1.5rem; } .faq-item { padding: 2rem; border-radius: 2.5rem; border: 1px solid rgba(195, 199, 207, 0.2); transition: all 0.2s ease; } .faq-item:hover { box-shadow: 0 4px 16px rgba(0, 46, 81, 0.06); } .faq-item:nth-child(odd) { background: var(--surface-container-low); } .faq-item:nth-child(even) { background: var(--clinical-white); } .faq-item h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1rem, 0.9rem + 0.3vw, 1.25rem); font-weight: 500; color: var(--principal); margin-bottom: 0.75rem; display: flex; align-items: flex-start; gap: 1rem; } .faq-item__marker { color: var(--secundario); font-size: 1.5rem; font-weight: 700; flex-shrink: 0; line-height: 1; } .faq-item p { font-size: 0.9375rem; color: var(--on-surface-variant); line-height: 1.7; padding-left: 2.5rem; } @media (min-width: 768px) { .faq-grid { grid-template-columns: 1fr 1fr; } } /* ===== FINAL CTA ===== */ .cta-final { background: var(--principal); position: relative; overflow: hidden; } .cta-final::before { content: ''; position: absolute; inset: 0; opacity: 0.04; background: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.03) 4px), repeating-linear-gradient(-45deg, transparent, transparent 2px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.03) 4px); pointer-events: none; } .cta-final .section__inner { position: relative; z-index: 1; } .cta-final h2 { color: white; } .cta-final p { color: rgba(255, 255, 255, 0.8); } .cta-final__actions { display: flex; flex-direction: column; gap: 1rem; justify-content: center; padding-top: 1rem; } .cta-final__actions .btn--primary { background: var(--secundario); color: var(--principal); } .cta-final__actions .btn--primary:hover { background: var(--clinical-white); } .cta-final__actions .btn--secondary { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); color: white; margin-top: 0; width: auto; } .cta-final__actions .btn--secondary:hover { background: rgba(255, 255, 255, 0.2); } .cta-final__location { display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.875rem; color: rgba(255, 255, 255, 0.5); padding-top: 1rem; } .cta-final__location svg { width: 1rem; height: 1rem; flex-shrink: 0; } @media (min-width: 768px) { .cta-final__actions { flex-direction: row; } } /* ===== RELATED TREATMENTS ===== */ .related-grid { display: grid; gap: 1.5rem; } .related-card { display: flex; flex-direction: column; background: var(--surface); border-radius: 2rem; overflow: hidden; border: 1px solid rgba(195, 199, 207, 0.2); transition: all 0.3s ease; } .related-card:hover { box-shadow: 0 12px 32px -12px rgba(0, 46, 81, 0.12); } .related-card__image { aspect-ratio: 4 / 3; overflow: hidden; } .related-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .related-card:hover .related-card__image img { transform: scale(1.05); } .related-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex-grow: 1; } .related-card__body h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1rem, 0.9rem + 0.3vw, 1.25rem); font-weight: 500; color: var(--principal); margin-bottom: 0.75rem; } .related-card__body p { font-size: 0.875rem; color: var(--on-surface-variant); flex-grow: 1; margin-bottom: 1.5rem; line-height: 1.6; } .related-card__link { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--secundario); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; transition: all 0.2s ease; width: fit-content; } .related-card__link:hover { gap: 0.75rem; } .related-card__link svg { width: 1.25rem; height: 1.25rem; transition: transform 0.2s ease; } .related-card__link:hover svg { transform: translateX(0.25rem); } @media (min-width: 768px) { .related-grid { grid-template-columns: 1fr 1fr 1fr; } } /* ===== FACILITIES ===== */ .facilities-grid { display: grid; gap: 3rem; align-items: center; } .facilities-images { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .facilities-images figure { border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); } .facilities-images figure:last-child { margin-top: 2rem; } .facilities-images img { width: 100%; height: 100%; object-fit: cover; display: block; } .facilities-list { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-direction: column; gap: 0.75rem; } .facilities-list li { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9375rem; color: var(--on-surface-variant); margin: 0; } .facilities-list li svg { width: 1.25rem; height: 1.25rem; color: var(--secundario); flex-shrink: 0; } @media (min-width: 768px) { .facilities-grid { grid-template-columns: 1fr 1fr; } } /* ===== CLINICAL CASES BENTO ===== */ .bento-clinical .bento-grid { grid-template-columns: 1fr; } .bento-clinical .bento-card { min-height: 250px; } @media (min-width: 640px) { .bento-clinical .bento-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 768px) { .bento-clinical .bento-grid { grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(250px, 1fr); } .bento-clinical .bento-card--wide { grid-column: span 2; } } /* ===== STICKY SIDE COL ===== */ @media (min-width: 768px) { .sticky-col { position: sticky; top: 6rem; } } /* ===== BUTTON OUTLINE ===== */ .btn--outline { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.75rem 1.5rem; border-radius: 0.75rem; transition: all 0.3s ease; cursor: pointer; border: 2px solid var(--outline); background: transparent; color: var(--principal); line-height: 1; } .btn--outline:hover { background: var(--surface-container-low); border-color: var(--principal); } /* ===== UTILITY CLASSES ===== */ .flex-between { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; } .mb-16 { margin-bottom: 4rem; } .mt-6 { margin-top: 1.5rem; } .mt-12 { margin-top: 3rem; } .text-italic { font-style: italic; } .text-muted { color: var(--on-surface-variant); } .text-center { text-align: center; } .max-w-2xl { max-width: 48rem; } .mx-auto { margin-inline: auto; } /* ===== BODY OVERRIDES ===== */ .service-redesign-body { overflow-x: clip; } .service-redesign-body .site-header { position: sticky; top: 0; z-index: 50; } .service-redesign-body .site-header::before { content: ''; position: absolute; inset: 0; background: rgba(254, 254, 254, 0.92); backdrop-filter: blur(12px); box-shadow: 0 1px 0 var(--outline-variant); pointer-events: none; z-index: -1; } .service-redesign-body .site-header nav { box-shadow: none; background: transparent; } .service-redesign-body .logo-nav img { height: 36px; } /* ===== TESTIMONIOS (reseñas reales) ===== */ .service-redesign section.padding.flow { padding: 4rem var(--gutter, 20px); background: var(--surface-container-low); } .service-redesign section.padding.flow > * { max-width: var(--container-max, 1200px); margin-inline: auto; } .service-redesign .intro { text-align: center; max-width: 640px; } .service-redesign .intro small { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--secundario); } .service-redesign .intro h2, .service-redesign .intro h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.5rem, 1.3rem + 0.6vw, 2rem); font-weight: 500; line-height: 1.25; color: var(--principal); margin: 0.5rem 0; } .service-redesign .reviews-container { display: grid; grid-template-columns: 1fr; gap: 1.5rem; max-width: 840px; margin-top: 3rem; padding: 0; } @media (min-width: 640px) { .service-redesign .reviews-container { grid-template-columns: repeat(2, 1fr); } } .service-redesign .review-card { position: relative; background: var(--clinical-white); border-radius: 1.5rem; padding: 2.5rem 2rem 2rem; box-shadow: 0 8px 32px rgba(0, 46, 81, 0.08); overflow: hidden; } .service-redesign .review-card__mark { position: absolute; top: 1.25rem; right: 1.5rem; width: 2.75rem; height: 2.75rem; color: var(--secundario); opacity: 0.16; pointer-events: none; } .service-redesign .review-card .stars { display: flex; gap: 0.25rem; margin-bottom: 1rem; } .service-redesign .review-card .stars svg { width: 18px; height: 18px; color: var(--accion); } .service-redesign .review-card p { position: relative; font-size: 1.0625rem; line-height: 1.6; color: var(--on-surface); } .service-redesign .review-card__footer { display: flex; align-items: center; gap: 0.875rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--outline-variant); } .service-redesign .review-card__avatar { width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: 9999px; background: var(--principal); color: white; display: flex; align-items: center; justify-content: center; font-family: "Lexend Deca", sans-serif; font-weight: 700; font-size: 1.0625rem; } .service-redesign .review-card__footer strong { display: block; color: var(--principal); font-size: 0.9375rem; } .service-redesign .review-card__footer small { color: var(--on-surface-variant); font-size: 0.8125rem; } /* ===== EEAT / AUTOR ===== */ .service-redesign .eeat-author { display: grid; grid-template-columns: auto 1fr; gap: 2rem; align-items: start; max-width: var(--container-max, 1200px); margin: 3rem auto 0; padding: 4rem var(--gutter, 20px); background: var(--surface); } .service-redesign .eeat-author img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid var(--clinical-white); box-shadow: 0 8px 24px rgba(0, 46, 81, 0.12); } .service-redesign .eeat-author-info h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.5rem); font-weight: 500; color: var(--principal); margin: 0 0 0.25rem; } .service-redesign .eeat-credentials { font-size: 0.875rem; color: var(--secundario); font-weight: 600; font-style: normal; margin-bottom: 1rem; } .service-redesign .eeat-author-info p { font-size: clamp(0.875rem, 0.8rem + 0.2vw, 1rem); color: var(--on-surface); line-height: 1.6; } .service-redesign .eeat-social { display: flex; gap: 0.75rem; margin-top: 1rem; } .service-redesign .eeat-social svg { width: 24px; height: 24px; } .service-redesign .eeat-social .social-link { color: var(--secundario); } .service-redesign .eeat-author-info .boton_auxiliar { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--principal); text-decoration: none; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0; background: none; border: none; box-shadow: none; border-radius: 0; margin-top: 1rem; } .service-redesign .eeat-author-info .boton_auxiliar::after { content: "→"; transition: transform 0.2s ease; } .service-redesign .eeat-author-info .boton_auxiliar:hover { opacity: 0.75; gap: 0.5rem; } .service-redesign .eeat-author-info .boton_auxiliar:hover::after { transform: translateX(4px); } /* ===== TRATAMIENTOS RELACIONADOS ===== */ .service-redesign section.wrapper { max-width: var(--container-max, 1200px); margin: 0 auto; padding: 4rem var(--gutter, 20px); background: var(--clinical-white); } .service-redesign section.wrapper > h2 { max-width: none; font-family: "Lexend Deca", sans-serif; font-size: clamp(1.5rem, 1.3rem + 0.6vw, 2rem); font-weight: 500; text-align: center; color: var(--principal); margin-bottom: 3rem; } .service-redesign .service-cards { display: grid; grid-template-columns: 1fr; gap: 2rem; } @media (min-width: 768px) { .service-redesign .service-cards { grid-template-columns: repeat(3, 1fr); } } .service-redesign .service-cards .card { background: var(--clinical-white); border: 1px solid var(--outline-variant); border-radius: 1.5rem; padding: 0; overflow: hidden; box-shadow: 0 4px 16px rgba(0, 46, 81, 0.08); display: flex; flex-direction: column; transform: none; transition: box-shadow 0.3s ease, transform 0.3s ease; } .service-redesign .service-cards .card:hover { box-shadow: 0 12px 32px rgba(0, 46, 81, 0.15); transform: translateY(-4px); } .service-redesign .service-cards .card-image { aspect-ratio: 16 / 9; overflow: hidden; } .service-redesign .service-cards .card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .service-redesign .service-cards .card:hover .card-image img { transform: scale(1.05); } .service-redesign .service-cards .card-content { padding: 1.5rem; flex: 1; } .service-redesign .service-cards .card-content h3 { font-family: "Lexend Deca", sans-serif; font-size: clamp(1.125rem, 1rem + 0.3vw, 1.25rem); font-weight: 500; color: var(--principal); margin: 0 0 0.75rem; } .service-redesign .service-cards .card-content p { font-size: 0.9375rem; color: var(--on-surface-variant); line-height: 1.5; margin: 0; } .service-redesign .service-cards .card .boton_auxiliar { margin: 0 1.5rem 1.5rem; display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; border-radius: 0.75rem; font-family: "DM Sans", sans-serif; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; color: var(--principal); border: 2px solid var(--principal); background: transparent; transition: all 0.3s ease; } .service-redesign .service-cards .card .boton_auxiliar:hover { background: var(--principal); color: white; } /* ===== WHATSAPP BUTTON (Primary CTA — destaque) ===== */ .btn-whatsapp { display: inline-flex; align-items: center; justify-content: center; gap: 0.625rem; background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); color: #fff; text-decoration: none; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.875rem 1.75rem; border-radius: 0.75rem; border: none; cursor: pointer; line-height: 1; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(37, 211, 102, 0.35); position: relative; overflow: hidden; } .btn-whatsapp:hover { transform: translateY(-2px); box-shadow: 0 6px 25px rgba(37, 211, 102, 0.5); color: #fff; background: linear-gradient(135deg, #20bd5a 0%, #0e6b5f 100%); } .btn-whatsapp:active { transform: translateY(0); box-shadow: 0 2px 10px rgba(37, 211, 102, 0.3); } .btn-whatsapp--wide { width: 100%; justify-content: center; } .btn-whatsapp__icon { display: inline-flex; align-items: center; flex-shrink: 0; animation: btn-whatsapp-pulse 2s ease-in-out infinite; } @keyframes btn-whatsapp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } /* ===== LINK SECONDARY (navegación interna importante) ===== */ .btn-link--secondary { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--principal); text-decoration: none; font-family: "DM Sans", sans-serif; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding-bottom: 0.25rem; border-bottom: 2px solid var(--principal); width: fit-content; transition: all 0.2s; line-height: 1; align-self: flex-start; } .btn-link--secondary::after { content: "→"; transition: transform 0.2s ease; line-height: 1; } .btn-link--secondary:hover { gap: 0.5rem; color: var(--complemento); border-bottom-color: var(--complemento); } .btn-link--secondary:hover::after { transform: translateX(4px); } /* Light variant for dark backgrounds */ .btn-link--secondary-light { color: #fff; border-bottom-color: rgba(255, 255, 255, 0.5); } .btn-link--secondary-light:hover { border-bottom-color: #fff; } /* ===== LINK TERTIARY (enlaces secundarios, texto inline) ===== */ .btn-link--tertiary { display: inline; color: var(--on-surface-variant); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; font-family: "DM Sans", sans-serif; font-size: inherit; font-weight: 500; transition: all 0.2s; } .btn-link--tertiary:hover { color: var(--principal); } /* WhatsApp Button */ .boton-whatsapp { position: fixed; bottom: 8rem; right: 12px; z-index: 100; -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0.5s 6 alternate-reverse both; animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0.5s 6 alternate-reverse both; transition: all .2s ease-in-out; width: -webkit-max-content; width: -moz-max-content; width: max-content; text-decoration: none; } .boton-whatsapp:hover { -webkit-filter: drop-shadow(5px 5px 5px rgba(190, 190, 190, .7)); filter: drop-shadow(5px 5px 5px rgba(190, 190, 190, .7)); transform: scale(1.05); } /* Keyframes for the animation */ @-webkit-keyframes scale-up-center { 0% { transform: scale(1); } 100% { transform: scale(1.1); } } @keyframes scale-up-center { 0% { transform: scale(1); } 100% { transform: scale(1.1); } } /* scroll top */ .boton-up { position: fixed; right: 15px; bottom: 48px; width: 50px; height: 50px; display: flex; justify-content: center; align-items: center; background-color: var(--accion); border-radius: var(--radius); box-shadow: var(--shadow); transition: all 300ms ease-in; z-index: 5; opacity: 0; visibility: hidden; } .boton-up.visible { opacity: 1; visibility: visible; } .boton-up:hover { transform: scale(1.1); } /* Asegurarse de que el icono sea blanco */ .boton-up svg { color: white; }
