:root {
    --bg: #111317;
    --surface: #1a1c20;
    --surface-2: #282a2e;
    --surface-3: #333539;
    --text: #e2e2e8;
    --muted: #bccbb5;
    --line: #3d4a3a;
    --primary: #51e858;
    --primary-ink: #003908;
    --secondary: #99cbff;
    --font-body: "Hanken Grotesk", sans-serif;
    --font-title: "Montserrat", sans-serif;
    --radius: 0.5rem;
    --space: clamp(4rem, 8vw, 5rem);
    --wrap: 80rem;
}

html {
    color-scheme: dark;
}

body,
.page {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body::selection {
    background: var(--primary);
    color: var(--primary-ink);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-title);
}

.wrap {
    width: min(100% - 3rem, var(--wrap));
    margin-inline: auto;
}

.section {
    padding-block: var(--space);
}

.label,
.h15,
.s51 {
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.form-label {
    display: block;
    color: var(--muted);
    font: 700 0.875rem/1.2 var(--font-body);
    letter-spacing: 0.05em;
}

.meta {
    margin-bottom: 0.25rem;
    color: var(--muted);
    font: 700 0.875rem/1.2 var(--font-body);
    letter-spacing: 0.05em;
}

.lead,
.muted-lead {
    color: var(--muted);
    font: 400 1.125rem/1.6 var(--font-body);
}

.muted-copy {
    color: var(--muted);
    font: 400 1rem/1.6 var(--font-body);
}

.quote {
    color: var(--muted);
    font: italic 400 1rem/1.6 var(--font-body);
}

.copy {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
}

.lead-font {
    font-family: var(--font-body);
    font-size: 1.125rem;
    line-height: 1.6;
}

.title-sm,
.title-md,
.title-lg,
.title-xl {
    font-family: var(--font-title);
    font-weight: 700;
}

.title-sm { font-size: 1.5rem; line-height: 1.4; }
.title-md { font-size: 2rem; line-height: 1.3; }
.title-lg { font-size: 2.25rem; line-height: 1.2; font-weight: 800; }
.title-xl { font-size: 3.5rem; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; }

.material-symbols-outlined,
.i-sm-fill,
.i-main,
.i-main-fill,
.i-main-lg,
.i-alt-fill,
.i-muted,
.a10,
.a19,
.a27,
.h62 {
    display: inline-block;
    direction: ltr;
    font-family: "Material Symbols Outlined";
    font-feature-settings: "liga";
    font-style: normal;
    font-weight: normal;
    letter-spacing: normal;
    line-height: 1;
    text-transform: none;
    white-space: nowrap;
    word-wrap: normal;
    -webkit-font-smoothing: antialiased;
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.material-symbols-filled,
.i-sm-fill,
.i-main-fill,
.i-main-lg,
.i-alt-fill,
.h62 {
    font-variation-settings: "FILL" 1;
}

.is-filled { font-variation-settings: "FILL" 1; }
.muted,
.h15,
.s51 { color: var(--muted); }
.between { display: flex; justify-content: space-between; }
.cluster { display: flex; align-items: center; gap: 0.5rem; }
.cluster-md { display: flex; align-items: center; gap: 0.75rem; }
.cluster-lg { display: flex; align-items: center; gap: 1rem; }
.stack-sm > * + * { margin-top: 0.5rem; }
.icon-primary,
.i-main,
.i-main-fill,
.i-main-lg,
.a10,
.a27 { color: var(--primary); }
.icon-primary-sm { color: var(--primary); font-size: 0.875rem; }
.icon-primary-md { color: var(--primary); font-size: 1.25rem; }
.icon-secondary-lg { margin-bottom: 1rem; color: var(--secondary); font-size: 2.25rem; }
.i-sm-fill { font-size: 0.875rem; }
.i-main-lg { font-size: 2.25rem; }
.i-alt-fill { color: var(--secondary); }
.i-muted,
.a19 { color: var(--muted); }
.price { color: var(--primary); font: 800 1.75rem/1 var(--font-title); }

.panel,
.card,
.a08,
.c07,
.h72,
.h73,
.h77,
.h89,
.price-featured,
.s24,
.s30 {
    background: rgba(26, 29, 35, 0.6);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.media-layer {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.media-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.field {
    width: 100%;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.field:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 10px rgba(81, 232, 88, 0.4);
}

.btn,
.btn-main-block,
.btn-alt-block,
.tab-active {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 2.5rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font: 700 0.875rem/1.2 var(--font-body);
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: transform 0.2s, filter 0.2s, background 0.2s, color 0.2s;
}

.btn:hover { transform: scale(1.03); }
.btn:active { transform: scale(0.97); }
.btn-main { background: var(--primary); color: var(--primary-ink); }
.btn-main:hover { filter: brightness(1.1); }
.btn-alt { border-color: var(--secondary); background: transparent; color: var(--secondary); }
.btn-alt:hover { background: rgba(153, 203, 255, 0.1); }
.btn-soft { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.1); color: #fff; }
.btn-block { width: 100%; margin-top: 2rem; }
.btn-tab,
.tab-active { padding: 0.5rem 1rem; background: transparent; color: var(--text); }
.btn-tab:hover { background: var(--surface-2); }
.btn-tab.active { background: var(--primary); color: var(--primary-ink); }
.btn-main-block,
.btn-alt-block {
    width: 100%;
    margin-top: 2rem;
}
.btn-main-block { background: var(--primary); color: var(--primary-ink); }
.btn-alt-block { border-color: var(--secondary); background: transparent; color: var(--secondary); }
.tab-active { background: var(--primary); color: var(--primary-ink); }

.service-card {
    display: flex;
    flex-direction: column;
    padding: 2rem;
    border-radius: var(--radius);
    transition: border-color .3s, box-shadow .3s, transform .3s;
}

.service-card:hover {
    border-color: rgba(81,232,88,.3);
    box-shadow: 0 0 20px rgba(81,232,88,.1);
}

.price-card,
.h89,
.price-featured {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 2rem;
    border-radius: var(--radius);
}

.price-card.featured,
.price-featured {
    z-index: 20;
    border-color: rgba(81,232,88,.4);
    background: var(--surface);
    box-shadow: 0 25px 50px -12px rgba(81,232,88,.1);
    transform: scale(1.05);
}

.card-action {
    width: 100%;
    margin-top: 2rem;
    padding: .75rem;
    border: 1px solid rgba(134,149,129,.2);
    background: var(--surface-2);
    color: var(--text);
    font-weight: 700;
    transition: background .2s, color .2s;
}

.card-action:hover { background: var(--primary); color: var(--primary-ink); }

.step-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem;
    border: 1px solid rgba(61,74,58,.2);
    border-radius: var(--radius);
    background: #1e2024;
    text-align: center;
    transition: border-color .3s;
}

.step-card:hover { border-color: rgba(81,232,88,.5); }
.step-icon { position: relative; display: grid; width: 6rem; height: 6rem; margin-bottom: 1.5rem; place-items: center; border: 2px solid var(--line); border-radius: 50%; background: #1e2024; }
.step-icon:hover { border-color: var(--primary); }
.step-num { position: absolute; top: -.5rem; left: -.5rem; display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface-2); color: var(--primary); font-size: .625rem; font-weight: 700; }

.info-card { display: flex; flex-direction: column; align-items: center; padding: 1.5rem; text-align: center; }
.location-card,
.h72,
.h73 { display: flex; align-items: center; gap: .75rem; padding: 1rem; border-radius: var(--radius); }
.label-note { color: var(--muted); font: italic 700 .875rem/1.2 var(--font-body); letter-spacing: .05em; }
.subhead-row { display: flex; align-items: center; gap: .75rem; color: var(--text); font: 700 2rem/1.3 var(--font-title); }
.popular-tag { position: absolute; top: -1rem; left: 50%; padding: .25rem 1rem; border-radius: 999px; background: var(--primary); color: var(--primary-ink); font-size: .625rem; font-weight: 700; letter-spacing: .2em; transform: translateX(-50%); }
.corner-tag { position: absolute; top: 1rem; right: 1rem; padding: .25rem .75rem; background: var(--primary); color: var(--primary-ink); font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.eyebrow { display: inline-block; margin-bottom: 1.5rem; padding: .25rem .75rem; border: 1px solid rgba(81,232,88,.3); border-radius: 999px; background: rgba(81,232,88,.1); color: var(--primary); font: 700 .875rem/1.2 var(--font-body); letter-spacing: .05em; }
.feature-icon { display: grid; width: 4rem; height: 4rem; margin-bottom: 1.5rem; place-items: center; border-radius: 50%; background: rgba(81,232,88,.1); transition: background .2s; }
.feature-icon:hover { background: var(--primary); }
.feature-split { position: relative; display: flex; flex-direction: column; align-items: center; overflow: hidden; border: 1px solid rgba(61,74,58,.3); border-radius: 1rem; background: var(--surface-2); }
.image-label { position: absolute; bottom: 1rem; left: 1rem; padding: .5rem 1rem; border: 1px solid rgba(61,74,58,.3); border-radius: var(--radius); background: rgba(17,19,23,.9); backdrop-filter: blur(8px); }
.floating-card { position: absolute; right: -1.5rem; bottom: -1.5rem; display: none; padding: 1.5rem; border: 1px solid rgba(81,232,88,.3); border-radius: var(--radius); background: var(--surface-2); }
.avatar { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; background: rgba(81,232,88,.2); color: var(--primary); font-weight: 700; }
.wa-float { position: fixed; right: 2rem; bottom: 2rem; z-index: 50; display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.wa-btn { display: grid; width: 4rem; height: 4rem; place-items: center; border: 0; border-radius: 50%; background: #25d366; box-shadow: 0 10px 30px rgba(37,211,102,.3); transition: transform .2s; }
.wa-btn:hover { transform: scale(1.1); }
.chat-tip { padding: .5rem 1rem; border-radius: 999px; background: var(--surface-3); box-shadow: 0 10px 15px rgba(0,0,0,.2); color: var(--primary); font-size: .625rem; font-weight: 700; opacity: 0; transition: opacity .2s, transform .2s; transform: translateY(.5rem); }
.wa-float:hover .chat-tip { opacity: 1; transform: none; }

@media (min-width: 768px) {
    .feature-split { flex-direction: row; }
    .floating-card { display: block; }
}

.neo-glow,
.neon-glow-primary {
    box-shadow: 0 0 20px rgba(81, 232, 88, 0.2);
}

.brand-shine {
    color: rgb(6, 100, 236);
    font-size: 2rem;
    font-weight: bold;
}

.brand-go {
    color: rgb(73, 208, 80);
    font-size: 2rem;
    font-weight: bold;
}

/* Shared header */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    width: 100%;
    border-bottom: 1px solid rgba(61, 74, 58, 0.3);
    background: rgba(17, 19, 23, 0.9);
    box-shadow: 0 10px 15px -3px rgba(81, 232, 88, 0.05);
    backdrop-filter: blur(12px);
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(100% - 2rem, var(--wrap));
    margin-inline: auto;
    padding-block: 1rem;
}

.brand {
    font: 700 2rem/1.3 var(--font-title);
    letter-spacing: -0.025em;
}

.nav-links,
.nav-actions {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.nav-links.menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-actions { gap: 1rem; }

.shinego-language-switcher {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-left: 1rem;
}

.shinego-language-switcher a {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 2.25rem;
    padding: .35rem .5rem;
    border: 1px solid transparent;
    border-radius: .35rem;
    color: var(--muted);
    font: 700 .75rem/1 var(--font-body);
    letter-spacing: .05em;
    text-decoration: none;
}

.shinego-language-switcher a:hover,
.shinego-language-switcher a:focus-visible {
    border-color: rgba(81, 232, 88, .65);
    color: var(--text);
    outline: none;
}

.shinego-language-switcher a[aria-current="page"] {
    border-color: var(--primary);
    background: rgba(81, 232, 88, .12);
    color: var(--primary);
}

.shinego-language-flag {
    font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
    font-size: 1rem;
    line-height: 1;
}

.nav-link,
.nav-links a {
    border-bottom: 2px solid transparent;
    color: var(--muted);
    font: 700 0.875rem/1.2 var(--font-body);
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: color 0.2s;
}

.nav-link:hover,
.nav-links a:hover { color: var(--text); }
.nav-link.active,
.nav-links .current-menu-item > .nav-link,
.nav-links .current_page_item > .nav-link,
.nav-links a[aria-current="page"] { padding-bottom: 0.25rem; border-color: var(--primary); color: var(--primary); }
.nav-book { padding: 0.5rem 1.5rem; }

/* Shared footer */
.site-footer {
    border-top: 1px solid rgba(61, 74, 58, 0.2);
    background: #0c0e12;
}

.footer-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space);
    width: min(100% - 3rem, var(--wrap));
    margin-inline: auto;
    padding-block: var(--space);
}

.footer-about { max-width: 24rem; }
.footer-brand { font: 800 1.5rem/1.4 var(--font-title); }
.footer-copy { margin-block: 1.5rem; color: var(--muted); font-size: 0.875rem; }
.socials { display: flex; gap: 1rem; }
.social-link { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; background: #1e2024; }
.social-link svg { width: 1.25rem; height: 1.25rem; fill: var(--muted); }
.footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; }
.footer-title { margin: 0 0 1rem; color: var(--primary); font: 700 0.875rem/1.2 var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; }
.contact-list { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.contact-row { display: flex; align-items: center; gap: 0.75rem; color: var(--muted); }
.contact-row a { color: inherit; text-decoration: none; }
.contact-row:hover { color: var(--primary); }
.book-box { display: flex; align-items: center; gap: 1rem; }
.qr { width: 5rem; height: 5rem; padding: 0.5rem; border-radius: var(--radius); background: #1e2024; filter: invert(1); opacity: 0.8; }
.book-copy { max-width: 7.5rem; color: var(--muted); font-size: 0.75rem; }
.footer-bottom { padding: 2rem 1.5rem; border-top: 1px solid rgba(61,74,58,.1); color: var(--muted); font-size: .75rem; text-align: center; opacity: .6; }

/* Reusable full-screen image viewer */
.image-zoom {
    position: relative;
}

.image-zoom-trigger {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 1rem;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: zoom-in;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.image-zoom-trigger .material-symbols-outlined {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(12, 14, 18, 0.72);
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(8px);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.image-zoom:hover .image-zoom-trigger,
.image-zoom-trigger:focus-visible {
    opacity: 1;
}

.image-zoom-trigger:hover .material-symbols-outlined,
.image-zoom-trigger:focus-visible .material-symbols-outlined {
    background: var(--primary);
    color: var(--primary-ink);
    transform: scale(1.08);
}

.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 4.5rem 1.5rem 1.5rem;
    border: 0;
    background: rgba(5, 6, 8, 0.96);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.image-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.image-lightbox-image {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 6rem);
    object-fit: contain;
    border-radius: 0.5rem;
    box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.65);
}

.image-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(30, 32, 36, 0.9);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.image-lightbox-close:hover,
.image-lightbox-close:focus-visible {
    background: var(--primary);
    color: var(--primary-ink);
    transform: scale(1.08);
}

body.image-lightbox-open {
    overflow: hidden;
}

@media (max-width: 767px) {
    .nav-links { display: none; }
    .nav-actions .material-symbols-outlined { display: none; }
    .nav-book { padding-inline: 1rem; }
    .title-xl { font-size: 2.25rem; }
    .footer-main { flex-direction: column; }
    .footer-grid { grid-template-columns: 1fr; }
    .image-zoom-trigger { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .image-zoom-trigger,
    .image-zoom-trigger .material-symbols-outlined,
    .image-lightbox,
    .image-lightbox-close {
        transition: none;
    }
}

.brand-logo {
    height: 3rem;
}
/* WordPress mobile dropdown */
.shinego-menu-toggle{display:none;border:1px solid var(--line);background:transparent;color:var(--text);padding:.65rem;border-radius:var(--radius)}
.shinego-menu-toggle .material-symbols-outlined {
    width: 1.5rem;
    height: 1rem;
    background:
        linear-gradient(currentColor 0 0) top / 100% 2px no-repeat,
        linear-gradient(currentColor 0 0) center / 100% 2px no-repeat,
        linear-gradient(currentColor 0 0) bottom / 100% 2px no-repeat;
    font-size: 0;
}
@media(max-width:767px){.shinego-menu-toggle{display:inline-flex}.site-navigation{display:none;position:absolute;top:100%;left:0;right:0;padding:1rem 1.5rem;background:rgba(17,19,23,.98);border-bottom:1px solid var(--line)}.site-navigation.is-open{display:block}.site-navigation .menu{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.site-navigation .nav-links{display:grid}.nav-inner{position:relative}.shinego-language-switcher{margin:1rem 0 0}}

/* Consentimiento de analítica opcional: Google solo se carga tras aceptación. */
.shinego-consent { position: fixed; z-index: 1000; right: 1rem; bottom: 1rem; left: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; max-width: 68rem; margin: 0 auto; padding: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 1rem 3rem rgba(0, 0, 0, .42); }
.shinego-consent[hidden] { display: none; }
.shinego-consent__content h2 { margin: 0; font-size: 1.25rem; }
.shinego-consent__content p { margin: .35rem 0 0; color: var(--muted); }
.shinego-consent__content a { color: var(--secondary); }
.shinego-consent__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: .65rem; }
.shinego-consent__button, .shinego-consent-manage { min-height: 2.75rem; padding: .65rem .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: transparent; color: var(--text); font: 700 .8rem/1 var(--font-body); cursor: pointer; }
.shinego-consent__button--primary { background: var(--primary); border-color: var(--primary); color: var(--primary-ink); }
.shinego-consent__button:focus-visible, .shinego-consent-manage:focus-visible { outline: 3px solid var(--secondary); outline-offset: 3px; }
.shinego-consent-manage { margin: .75rem; color: var(--muted); }
@media (max-width: 700px) { .shinego-consent { align-items: stretch; flex-direction: column; } .shinego-consent__actions { width: 100%; } .shinego-consent__button { flex: 1 1 12rem; } }
