:root {
    --bg: #F6FBF9;
    --surface: #FFFFFF;
    --surface-alt: #EAF4EF;
    --text: #16231D;
    --text-muted: #5A7267;
    --border: #D8E4DE;
    --primary: #10844D;
    --primary-hover: #0C643A;
    --accent: #7EE1B3;
    --dark-band: #10422B;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    color: var(--text);
    font-family: 'Andada Pro', serif;
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a,
a:hover,
a:focus {
    text-decoration: none;
    color: inherit;
    transition: color 200ms ease, opacity 200ms ease;
}

button {
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
    transition: background-color 200ms ease, transform 200ms ease, color 200ms ease;
}

button:active {
    transform: translateY(1px);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    line-height: 1.2;
    font-weight: 700;
}

h1 {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
}

h2 {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
}

h3 {
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

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

:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    h1 {
        font-size: clamp(1.75rem, 7vw, 2.25rem);
    }

    h2 {
        font-size: clamp(1.4rem, 5.5vw, 1.75rem);
    }

    h3 {
        font-size: clamp(1.15rem, 4.5vw, 1.35rem);
    }

    h4,
    h5,
    h6 {
        font-size: 1rem;
    }

    a,
    p,
    span,
    code,
    td,
    th {
        overflow-wrap: break-word;
        word-break: break-word;
    }
}

/* ===== header ===== */
#header {
    hyphens: auto;
}

.js-mobile-menu.open {
    display: block !important;
}

/* ===== hero ===== */
#hero {
    overflow: hidden;
    position: relative;
    background-color: var(--bg, #F6FBF9);
}

.hero-dot-grid {
    background-image: radial-gradient(var(--border, #D8E4DE) 1.5px, transparent 1.5px);
    background-size: 24px 24px;
}

#hero h1,
#hero h2,
#hero h3,
#hero p,
#hero span,
#hero a {
    hyphens: auto;
}

/* ===== catalog ===== */
#catalogo {
    overflow: hidden;
}

#catalogo h2,
#catalogo h3 {
    hyphens: auto;
}

.velnaris-underline {
    width: 76px;
    height: 4px;
    border-radius: 9999px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
}

.velnaris-pill {
    background-color: var(--surface);
    color: var(--text);
}

.velnaris-pill:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.velnaris-pill.is-active {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #FFFFFF;
}

.velnaris-pill.is-active i {
    color: #FFFFFF;
}

.velnaris-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(126, 225, 179, 0.35);
}

.velnaris-input::placeholder {
    color: var(--text-muted);
}

.velnaris-card {
    box-shadow: 0 4px 16px rgba(16, 66, 43, 0.04);
}

.velnaris-card:hover {
    transform: translateY(-4px);
    border-color: var(--accent);
    box-shadow: 0 14px 30px rgba(126, 225, 179, 0.28);
}

.velnaris-media-box {
    clip-path: inset(0 round 8px);
}

.velnaris-card:hover .velnaris-card-img {
    transform: scale(1.04);
}

.velnaris-card-img {
    transition: transform 0.3s ease;
}

.is-hidden {
    display: none !important;
}

/* ===== technology_essentials ===== */
#esenciales {
    overflow: hidden;
}

#esenciales h2,
#esenciales h3 {
    hyphens: auto;
}

@media(max-width:767px) {
    #esenciales h2 {
        line-height: 1.2;
    }

    #esenciales h3 {
        line-height: 1.2;
    }
}

/* ===== product_comparison ===== */
#comparativa {
    overflow: hidden;
}

#comparativa .js-comp-col {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    hyphens: auto;
}

@media(max-width:767px) {
    #comparativa h2 {
        font-size: 16px;
        line-height: 1.2;
    }

    #comparativa h3 {
        font-size: 14px;
        line-height: 1.2;
    }
}

/* ===== security_guide ===== */
#seguridad-guia {
    word-break: break-word;
    hyphens: auto;
}

/* ===== featured_devices ===== */
#destacados {
    hyphens: auto;
}

#destacados h2,
#destacados h3 {
    line-height: 1.2;
}

/* ===== faq ===== */
#preguntas-frecuentes button[aria-expanded="true"] i {
    transform: rotate(180deg);
}

#preguntas-frecuentes .js-faq-toggle:hover span {
    color: var(--primary);
}

/* ===== contact_form ===== */
#contacto input::placeholder,
#contacto textarea::placeholder {
    color: #5A7267;
    opacity: 0.8;
}

#contacto select option {
    background-color: #FFFFFF;
    color: #16231D;
}

/* ===== footer ===== */
#footer {
    hyphens: auto;
}

#footer a {
    text-decoration: none;
}

#footer a:hover {
    text-decoration: underline;
}

/* Keep every solid green action legible, including its hover/focus state. */
:is(a, button)[class~="bg-[#10844D]"],
:is(a, button)[class~="bg-[#10844D]"]:is(:hover, :focus-visible),
.velnaris-pill.is-active:hover {
    color: #FFFFFF;
}
