:root {
    --site-navy: #052e55;
    --site-navy-dark: #021f3d;
    --site-blue: #0b7ff5;
    --site-turquoise: #08a9ad;
    --site-yellow: #ffd100;
    --site-pink: #f72673;
    --site-violet: #6d38d7;
    --site-ink: #061f45;
    --site-muted: #516a89;
    --site-surface: #f4f9ff;
    --site-line: #d6e5f3;
    --site-radius: 26px;
    --site-shadow: 0 18px 46px rgba(5, 46, 85, .12);
}

html { scroll-behavior: smooth; }

.site-shell {
    min-height: 100vh;
    background: #fff;
    color: var(--site-ink);
    font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.site-shell *, .site-shell *::before, .site-shell *::after { box-sizing: border-box; }
.site-shell a { color: inherit; }
.site-shell img { display: block; max-width: 100%; }
.site-shell main { overflow: clip; }
.site-skip-link { position: fixed; top: -80px; left: 1rem; z-index: 9999; background: #fff; color: var(--site-navy); padding: .8rem 1rem; border-radius: 0 0 12px 12px; font-weight: 800; }
.site-skip-link:focus { top: 0; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    color: #fff;
    background: rgba(2, 31, 61, .97);
    box-shadow: 0 8px 24px rgba(0, 20, 48, .17);
    backdrop-filter: blur(12px);
}

.site-header__inner {
    width: min(1440px, calc(100% - 40px));
    min-height: 76px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.site-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; flex: 0 0 auto; }
.site-brand img { width: 58px; height: 58px; object-fit: contain; }
.site-brand span { display: grid; line-height: .97; font-size: .95rem; letter-spacing: .02em; }
.site-brand strong { color: #fff; }
.site-brand small { margin-top: .25rem; color: var(--site-yellow); font-weight: 900; letter-spacing: .13em; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(.8rem, 1.8vw, 2rem); font-weight: 700; }
.site-nav > a, .site-nav summary { position: relative; text-decoration: none; cursor: pointer; list-style: none; padding: 1.65rem 0; white-space: nowrap; }
.site-nav > a::after, .site-nav > a.active::after, .site-nav summary::after { content: ""; position: absolute; right: 0; bottom: 1.15rem; left: 0; height: 3px; border-radius: 3px; background: var(--site-yellow); transform: scaleX(0); transition: transform .2s ease; }
.site-nav > a:hover::after, .site-nav > a:focus-visible::after, .site-nav > a.active::after, .site-nav__services[open] summary::after { transform: scaleX(1); }
.site-nav__services { position: relative; }
.site-nav__services summary::-webkit-details-marker, .site-mobile-nav summary::-webkit-details-marker { display: none; }
.site-nav__menu { position: absolute; top: calc(100% - .25rem); left: 50%; width: 270px; transform: translateX(-50%); display: grid; padding: .65rem; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: var(--site-navy-dark); box-shadow: var(--site-shadow); }
.site-nav__menu a { padding: .85rem 1rem; border-radius: 10px; text-decoration: none; }
.site-nav__menu a:hover, .site-nav__menu a:focus-visible { color: var(--site-navy); background: var(--site-yellow); }
.site-login { border: 2px solid var(--site-yellow); border-radius: 999px; padding: .7rem 1.2rem !important; background: var(--site-yellow); color: var(--site-navy) !important; box-shadow: 0 8px 18px rgba(0,0,0,.16); }
.site-nav .site-login::after { display: none; }
.site-login:hover, .site-login:focus-visible { border-color: #fff2a8; background: #fff2a8; color: var(--site-navy-dark) !important; box-shadow: 0 10px 24px rgba(0,0,0,.22); outline: 3px solid rgba(255,209,0,.35); outline-offset: 3px; }
.site-mobile-nav { display: none; }

.site-section { padding: clamp(3.5rem, 6vw, 6.8rem) 0; }
.site-section--soft { background: linear-gradient(180deg, #f7fbff 0%, #edf7ff 100%); }
.site-container { width: min(1380px, calc(100% - 40px)); margin-inline: auto; }
.site-section-heading { max-width: 820px; margin: 0 auto clamp(2rem, 4vw, 3.5rem); text-align: center; }
.site-kicker { margin: 0 0 .65rem; color: var(--site-turquoise); font-size: .82rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.site-section h2, .site-hero h1 { margin: 0; color: var(--site-ink); letter-spacing: -.045em; line-height: .98; }
.site-section h2 { font-size: clamp(2rem, 4vw, 3.7rem); }
.site-section-heading > p:last-child { margin: 1rem auto 0; color: var(--site-muted); font-size: clamp(1rem, 1.5vw, 1.22rem); line-height: 1.65; }
.site-highlight { position: relative; display: inline; color: var(--site-ink); z-index: 0; }
.site-highlight::before { content: ""; position: absolute; z-index: -1; right: -.12em; bottom: .02em; left: -.12em; height: .5em; border-radius: 999px 22px; background: var(--site-yellow); transform: rotate(-1.3deg); }

.site-hero {
    position: relative;
    min-height: clamp(610px, 72vh, 820px);
    display: grid;
    align-items: center;
    isolation: isolate;
    background-color: #eaf6ff;
    /* Keep the upper portion of each 16:9 source image visible: faces no longer
       lose their forehead or hairline when a wide hero crops the lower edge. */
    background-position: center top;
    background-size: cover;
}
.site-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(246,252,255,.98) 0%, rgba(246,252,255,.95) 34%, rgba(246,252,255,.58) 54%, rgba(246,252,255,.08) 76%); }
.site-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 52px; background: #fff; clip-path: polygon(0 45%, 15% 72%, 32% 48%, 50% 82%, 68% 54%, 84% 76%, 100% 40%, 100% 100%, 0 100%); }
.site-hero__content { width: min(1380px, calc(100% - 40px)); margin-inline: auto; padding: 6rem 0 7rem; }
.site-hero__copy { max-width: 610px; }
.site-hero h1 { max-width: 12ch; font-size: clamp(3.2rem, 6.6vw, 6.6rem); }
.site-hero--service h1 { font-size: clamp(3rem, 5.5vw, 5.7rem); }
.site-hero__lead { max-width: 560px; margin: 1.5rem 0 2rem; color: #15385e; font-size: clamp(1.12rem, 2vw, 1.45rem); font-weight: 600; line-height: 1.5; }
.site-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.site-whatsapp { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 54px; padding: .8rem 1.4rem; border: 2px solid var(--site-yellow); border-radius: 999px; background: var(--site-yellow); color: #061a35 !important; box-shadow: 0 12px 24px rgba(236, 181, 0, .22); font-weight: 900; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.site-whatsapp:hover, .site-whatsapp:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(236, 181, 0, .32); }
.site-whatsapp svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.site-button { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: .8rem 1.4rem; border: 2px solid var(--site-navy); border-radius: 999px; color: var(--site-navy) !important; font-weight: 900; text-decoration: none; }
.site-button:hover, .site-button:focus-visible { background: var(--site-navy); color: #fff !important; }
.site-note { margin: 1rem 0 0; color: var(--site-muted); font-size: .94rem; }

.site-benefits { position: relative; z-index: 2; width: min(1280px, calc(100% - 40px)); margin: -3rem auto 0; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(11,127,245,.15); border-radius: var(--site-radius); background: rgba(255,255,255,.94); box-shadow: var(--site-shadow); backdrop-filter: blur(14px); }
.site-benefit { min-height: 122px; padding: 1.4rem; display: flex; align-items: center; gap: 1rem; }
.site-benefit + .site-benefit { border-left: 1px solid var(--site-line); }
.site-icon { width: 58px; height: 58px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 18px; background: #e9f6ff; color: var(--site-turquoise); font-size: 1.7rem; font-weight: 900; }
.site-benefit strong { display: block; font-size: 1.05rem; line-height: 1.2; }

.site-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.site-card { position: relative; min-height: 280px; padding: 2rem; border: 1px solid rgba(5,46,85,.08); border-radius: var(--site-radius); background: #fff; box-shadow: 0 14px 34px rgba(5,46,85,.08); overflow: hidden; }
.site-card:nth-child(4n+1) { background: linear-gradient(145deg, #eef8ff, #dff3ff); }
.site-card:nth-child(4n+2) { background: linear-gradient(145deg, #fff8e0, #fff0bf); }
.site-card:nth-child(4n+3) { background: linear-gradient(145deg, #fff1f7, #ffe1ed); }
.site-card:nth-child(4n+4) { background: linear-gradient(145deg, #eafcf8, #d7f8ee); }
.site-card .site-icon { margin-bottom: 1.5rem; width: 68px; height: 68px; background: rgba(255,255,255,.75); }
.site-card h3 { margin: 0 0 .75rem; color: var(--site-ink); font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.1; }
.site-card p { margin: 0; color: #294969; line-height: 1.55; }
.site-card--link { color: inherit !important; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.site-card--link:hover, .site-card--link:focus-visible { transform: translateY(-5px); box-shadow: var(--site-shadow); }

/* Public service shortcuts: a more visual, travel-oriented presentation. */
.site-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.site-service-card { position: relative; isolation: isolate; min-height: 220px; display: flex; flex-direction: column; justify-content: flex-end; gap: .8rem; padding: 1.35rem; overflow: hidden; border: 1px solid rgba(5,46,85,.1); border-radius: 24px; background: #e9f6ff; color: var(--site-ink) !important; box-shadow: 0 14px 32px rgba(3,41,73,.11); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.site-service-card::before { content: ""; position: absolute; z-index: -2; inset: 0; background: var(--service-image) center / cover no-repeat; }
.site-service-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(150deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 43%, rgba(255,255,255,.08) 100%); }
.site-service-card:nth-child(2)::after { background: linear-gradient(150deg, rgba(255,249,217,.97) 0%, rgba(255,243,190,.86) 45%, rgba(255,255,255,.06) 100%); }
.site-service-card:nth-child(3)::after { background: linear-gradient(150deg, rgba(232,252,247,.97) 0%, rgba(214,248,237,.86) 45%, rgba(255,255,255,.06) 100%); }
.site-service-card:nth-child(4)::after { background: linear-gradient(150deg, rgba(246,239,255,.97) 0%, rgba(232,219,255,.86) 45%, rgba(255,255,255,.06) 100%); }
.site-service-card:hover, .site-service-card:focus-visible { transform: translateY(-6px); box-shadow: 0 22px 42px rgba(3,41,73,.19); }
.site-service-card:focus-visible { outline: 3px solid var(--site-yellow); outline-offset: 4px; }
.site-service-card__icon { width: 56px; height: 56px; padding: 11px; display: grid; place-items: center; border-radius: 18px; background: rgba(255,255,255,.88); color: var(--site-turquoise); box-shadow: 0 8px 18px rgba(3,41,73,.1); }
.site-service-card:nth-child(2) .site-service-card__icon { color: #d09200; }
.site-service-card:nth-child(3) .site-service-card__icon { color: #078c74; }
.site-service-card:nth-child(4) .site-service-card__icon { color: var(--site-violet); }
.site-service-card__icon svg { width: 100%; height: 100%; }
.site-service-card__copy { display: grid; gap: .22rem; max-width: 13ch; }
.site-service-card__copy strong { font-size: clamp(1.15rem, 1.6vw, 1.5rem); line-height: 1.02; }
.site-service-card__copy small { color: #315271; font-weight: 700; line-height: 1.25; }
.site-service-card__arrow { position: absolute; right: 1.15rem; bottom: 1.15rem; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--site-navy); box-shadow: 0 7px 15px rgba(3,41,73,.13); font-size: 1.25rem; font-weight: 900; }

.site-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.6rem); }
.site-step { position: relative; min-height: 285px; padding: 1.8rem 1.35rem 1.5rem; border: 1px solid rgba(8,124,243,.12); border-radius: 28px; background: linear-gradient(145deg, #ecf8ff, #dff2ff); box-shadow: 0 16px 32px rgba(3,41,73,.09); text-align: center; transition: transform .2s ease, box-shadow .2s ease; }
.site-step:nth-child(2) { background: linear-gradient(145deg, #fff9e9, #fff0bd); }
.site-step:nth-child(3) { background: linear-gradient(145deg, #fff1f7, #ffe1ed); }
.site-step:nth-child(4) { background: linear-gradient(145deg, #ebfffb, #d8f7ef); }
.site-step:hover { transform: translateY(-5px); box-shadow: 0 21px 38px rgba(3,41,73,.14); }
.site-step:not(:last-child)::after { content: "›"; position: absolute; z-index: 2; top: 50%; right: calc(-1 * clamp(1rem, 2vw, 1.6rem) / 2 - .4rem); transform: translateY(-50%); color: var(--site-turquoise); font-size: 2.15rem; font-weight: 800; }
.site-step h3 { margin: 0 0 .65rem; font-size: clamp(1.22rem, 1.6vw, 1.55rem); line-height: 1.15; }
.site-step p { margin: 0; color: #365879; line-height: 1.55; }

.site-story { position: relative; min-height: 420px; display: grid; align-items: center; color: #fff; background: linear-gradient(105deg, #043b6d 0%, #087db1 52%, #10a9ad 100%); overflow: hidden; }
.site-story::before, .site-story::after { content: ""; position: absolute; border-radius: 50%; border: 40px solid rgba(255,255,255,.07); }
.site-story::before { width: 360px; height: 360px; right: -80px; top: -160px; }
.site-story::after { width: 250px; height: 250px; left: -100px; bottom: -140px; }
.site-story__inner { position: relative; z-index: 1; width: min(1160px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: 4rem; align-items: center; }
.site-story__visual { min-height: 260px; border-radius: var(--site-radius); background: linear-gradient(145deg, rgba(255,255,255,.2), rgba(255,255,255,.06)); display: grid; place-items: center; font-size: clamp(5rem, 12vw, 9rem); }
.site-story h2 { color: #fff; }
.site-story p { font-size: 1.2rem; line-height: 1.65; }

.site-faq { display: grid; gap: .8rem; max-width: 1000px; margin: 0 auto; }
.site-faq details { border: 1px solid var(--site-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 18px rgba(5,46,85,.06); }
.site-faq summary { cursor: pointer; list-style: none; padding: 1.2rem 4rem 1.2rem 1.4rem; font-size: 1.08rem; font-weight: 800; position: relative; }
.site-faq summary::after { content: "+"; position: absolute; right: 1.4rem; top: 50%; transform: translateY(-50%); font-size: 1.6rem; color: var(--site-blue); }
.site-faq details[open] summary::after { content: "−"; }
.site-faq details p { margin: 0; padding: 0 1.4rem 1.4rem; color: var(--site-muted); line-height: 1.65; }

.site-cta-band { padding: clamp(2.5rem, 5vw, 4rem) 0; color: #fff; background: linear-gradient(100deg, var(--site-navy), #075e91 60%, var(--site-turquoise)); }
.site-cta-band__inner { width: min(1200px, calc(100% - 40px)); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.site-cta-band h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); }
.site-cta-band p { margin: .6rem 0 0; font-size: 1.13rem; }

.site-service-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.site-service-intro__panel { padding: clamp(2rem, 4vw, 4rem); border-radius: var(--site-radius); background: linear-gradient(145deg, #e9f7ff, #f9fcff); box-shadow: var(--site-shadow); }
.site-service-intro__panel h2 { font-size: clamp(2rem, 3.5vw, 3.3rem); }
.site-service-intro__panel p { color: var(--site-muted); font-size: 1.12rem; line-height: 1.7; }
.site-check-list { display: grid; gap: .85rem; padding: 0; margin: 1.5rem 0 0; list-style: none; }
.site-check-list li { position: relative; padding-left: 2rem; font-weight: 700; }
.site-check-list li::before { content: "✓"; position: absolute; left: 0; top: -.15rem; width: 1.45rem; height: 1.45rem; display: grid; place-items: center; border-radius: 50%; background: #dff7e9; color: #04834d; }
.site-disclaimer { width: min(1180px, calc(100% - 40px)); margin: 2rem auto; padding: 1.2rem 1.5rem; border: 1px solid #c9e4f8; border-radius: 18px; background: #eef8ff; color: #234667; text-align: center; line-height: 1.5; }

.site-footer { color: #fff; background: var(--site-navy-dark); }
.site-footer__inner { width: min(1380px, calc(100% - 40px)); margin: 0 auto; padding: 4rem 0 3rem; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.45fr; gap: 3rem; }
.site-footer__brand img { width: 96px; height: 96px; object-fit: contain; margin-bottom: 1rem; }
.site-footer h2 { margin: 0 0 1rem; color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; }
.site-footer p { color: #bdd2e7; line-height: 1.55; }
.site-footer__inner > div > a:not(.site-whatsapp) { display: block; width: max-content; max-width: 100%; margin: .55rem 0; color: #d8e7f5; text-decoration: none; }
.site-footer__inner > div > a:hover, .site-footer__inner > div > a:focus-visible { color: var(--site-yellow); }
.site-footer__contact .site-whatsapp { color: var(--site-navy-dark) !important; }
.site-footer__legal { width: min(1380px, calc(100% - 40px)); margin: 0 auto; padding: 1.2rem 0 2rem; border-top: 1px solid rgba(255,255,255,.18); display: flex; justify-content: space-between; gap: 1rem; color: #a9c2d9; font-size: .88rem; }

@media (max-width: 1100px) {
    .site-nav { display: none; }
    .site-mobile-nav { display: block; position: relative; }
    .site-mobile-nav > summary { width: 48px; height: 48px; display: grid; place-content: center; gap: 5px; border: 1px solid rgba(255,255,255,.3); border-radius: 14px; cursor: pointer; list-style: none; }
    .site-mobile-nav > summary span { width: 22px; height: 2px; border-radius: 2px; background: #fff; }
    .site-mobile-nav nav { position: absolute; top: calc(100% + .75rem); right: 0; width: min(340px, calc(100vw - 40px)); max-height: calc(100vh - 100px); overflow: auto; display: grid; gap: .2rem; padding: .75rem; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: var(--site-navy-dark); box-shadow: var(--site-shadow); }
    .site-mobile-nav nav a, .site-mobile-nav__label { padding: .78rem 1rem; border-radius: 10px; color: #fff; text-decoration: none; }
    .site-mobile-nav nav a:hover, .site-mobile-nav nav a:focus-visible { background: rgba(255,255,255,.1); }
    .site-mobile-nav__label { padding-bottom: .3rem; color: var(--site-yellow); font-size: .75rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
    .site-mobile-nav nav .site-login { margin-top: .35rem; text-align: center; }
    .site-benefits, .site-card-grid, .site-service-grid { grid-template-columns: repeat(2, 1fr); }
    .site-benefit:nth-child(3) { border-left: 0; border-top: 1px solid var(--site-line); }
    .site-benefit:nth-child(4) { border-top: 1px solid var(--site-line); }
    .site-steps { grid-template-columns: repeat(2, 1fr); }
    .site-step:nth-child(2)::after { display: none; }
    .site-story__inner, .site-service-intro, .site-contact-section__inner { grid-template-columns: 1fr; }
    .site-story__visual { min-height: 180px; }
    .site-footer__inner { grid-template-columns: 1.3fr 1fr 1fr; }
    .site-footer__contact { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
    .site-header__inner { width: min(100% - 24px, 1440px); min-height: 66px; }
    .site-brand img { width: 48px; height: 48px; }
    .site-brand span { font-size: .82rem; }
    .site-container, .site-hero__content, .site-story__inner, .site-cta-band__inner, .site-footer__inner, .site-footer__legal, .site-disclaimer { width: min(100% - 28px, 1380px); }
    .site-hero { min-height: 760px; align-items: end; background-position: 67% top; background-size: auto 58%; background-repeat: no-repeat; }
    .site-hero::before { background: linear-gradient(180deg, rgba(246,252,255,.08) 0%, rgba(246,252,255,.24) 36%, #f6fcff 57%, #f6fcff 100%); }
    .site-hero__content { padding: 22rem 0 6rem; }
    .site-hero__copy { max-width: none; }
    .site-hero h1, .site-hero--service h1 { max-width: 12ch; font-size: clamp(2.8rem, 14vw, 4.4rem); }
    .site-hero__lead { font-size: 1.08rem; }
    .site-hero__actions { align-items: stretch; flex-direction: column; }
    .site-whatsapp, .site-button { width: 100%; }
    .site-benefits { width: min(100% - 28px, 1280px); margin-top: -1.5rem; grid-template-columns: 1fr; }
    .site-benefit + .site-benefit { border-left: 0; border-top: 1px solid var(--site-line); }
    .site-card-grid, .site-service-grid, .site-steps, .site-contact-form { grid-template-columns: 1fr; }
    .site-service-card { min-height: 190px; }
    .site-card { min-height: 230px; }
    .site-step:not(:last-child)::after { display: none; }
    .site-story__inner { gap: 2rem; padding: 4rem 0; }
    .site-cta-band__inner { align-items: stretch; flex-direction: column; text-align: center; }
    .site-footer__inner { grid-template-columns: 1fr 1fr; gap: 2.2rem 1.4rem; }
    .site-footer__brand, .site-footer__contact { grid-column: 1 / -1; }
    .site-footer__legal { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .site-shell *, .site-shell *::before, .site-shell *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Immersive presentation shared by every public page. */
.site-feature-icon { width: 100%; height: 100%; display: block; }
.site-card-grid { gap: 1.4rem; }
.site-card { isolation: isolate; border-radius: 28px; box-shadow: 0 18px 42px rgba(3, 41, 73, .11); transition: transform .2s ease, box-shadow .2s ease; }
.site-card::before { content: ""; position: absolute; z-index: -1; right: -58px; bottom: -76px; width: 160px; height: 160px; border-radius: 50%; background: rgba(255,255,255,.48); }
.site-card:hover { transform: translateY(-5px); box-shadow: 0 24px 50px rgba(3, 41, 73, .16); }
.site-card .site-icon { width: 74px; height: 74px; padding: 15px; border-radius: 22px; background: rgba(255,255,255,.88); box-shadow: 0 10px 24px rgba(3,41,73,.08); }
.site-card .site-icon svg, .site-step__icon svg { width: 100%; height: 100%; }
.site-card__arrow { position: absolute; right: 1.5rem; bottom: 1.35rem; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--site-navy); box-shadow: 0 8px 18px rgba(3,41,73,.12); font-size: 1.45rem; font-weight: 900; }

/* Pasaporte: cuatro temas visuales, como el bloque editorial del mockup. */
.passport-prep-section { padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.passport-prep-section .site-section-heading { margin-bottom: clamp(2.1rem, 4vw, 3.25rem); }
.passport-prep-grid { gap: clamp(1rem, 2.1vw, 1.65rem); max-width: 1280px; margin: 0 auto; }
.passport-prep-card { min-height: 340px; display: flex; flex-direction: column; align-items: center; padding: clamp(1.65rem, 2.4vw, 2.3rem) 1.35rem 1.7rem; text-align: center; }
.passport-prep-card .site-icon { width: clamp(104px, 8.4vw, 132px); height: clamp(104px, 8.4vw, 132px); margin: 0 0 1.35rem; padding: clamp(22px, 2vw, 29px); border-radius: 30px; background: rgba(255,255,255,.93); box-shadow: 0 14px 28px rgba(3,41,73,.12); }
.passport-prep-card h3 { font-size: clamp(1.28rem, 1.7vw, 1.62rem); margin-bottom: .7rem; }
.passport-prep-card p { max-width: 21ch; font-size: 1rem; line-height: 1.48; }
.passport-prep-card:nth-child(1) .site-icon { color: #009db1; }
.passport-prep-card:nth-child(2) .site-icon { color: #0a9cac; }
.passport-prep-card:nth-child(3) .site-icon { color: #0d9cac; }
.passport-prep-card:nth-child(4) .site-icon { color: #0a9cac; }
.site-step__icon { width: clamp(92px, 7vw, 116px); height: clamp(92px, 7vw, 116px); margin: 0 auto 1.25rem; padding: 20px; display: grid; place-items: center; border-radius: 30px; background: rgba(255,255,255,.94); color: var(--site-turquoise); box-shadow: 0 14px 28px rgba(3,41,73,.12); }
.site-step:nth-child(2) .site-step__icon { color: #d09200; }
.site-step:nth-child(3) .site-step__icon { color: #d35181; }
.site-step:nth-child(4) .site-step__icon { color: #078c74; }

.site-service-intro { align-items: stretch; gap: 1.6rem; }
.site-service-intro > div { min-height: 410px; border-radius: 32px; }
.site-service-intro__panel, .site-purpose-panel { padding: clamp(2rem, 4vw, 3.2rem); box-shadow: 0 20px 48px rgba(3,41,73,.11); }
.site-service-intro__panel { background: linear-gradient(145deg, #edf8ff, #dcefff); }
.site-purpose-panel { background: linear-gradient(145deg, #fff7d6, #e6faf4); }
.site-purpose-panel h2 { font-size: clamp(2rem, 3.5vw, 3.3rem); }
.site-purpose-panel p { color: var(--site-muted); font-size: 1.12rem; line-height: 1.7; }
.site-panel-icon, .site-photo-panel__icon { width: 66px; height: 66px; margin-bottom: 1.2rem; padding: 14px; display: grid; place-items: center; border-radius: 20px; background: rgba(255,255,255,.92); color: var(--site-turquoise); box-shadow: 0 12px 26px rgba(3,41,73,.12); }
.site-panel-icon svg, .site-photo-panel__icon svg { width: 100%; height: 100%; }
.site-photo-panel { position: relative; min-height: 420px; display: flex; align-items: flex-end; overflow: hidden; background-image: linear-gradient(90deg,rgba(0,32,67,.94),rgba(0,77,125,.45)), var(--panel-image); background-position: center; background-size: cover; box-shadow: 0 22px 52px rgba(3,41,73,.2); }
.site-photo-panel::after { content: ""; position: absolute; right: -70px; top: -70px; width: 220px; height: 220px; border: 36px solid rgba(255,255,255,.09); border-radius: 50%; }
.site-photo-panel__content { position: relative; z-index: 1; max-width: 600px; padding: clamp(2rem, 4vw, 3rem); color: #fff; }
.site-photo-panel__content h2 { color: #fff; font-size: clamp(2rem, 3.5vw, 3.3rem); }
.site-photo-panel__content p { font-size: 1.12rem; line-height: 1.65; }

.site-story__visual--photo { position: relative; min-height: 350px; overflow: hidden; background-position: center; background-size: cover; }
.site-story__visual--about { background-position: 100% center; }
.site-contact-section { padding: clamp(3.5rem, 6vw, 6rem) 0; background: linear-gradient(120deg, #062f57 0%, #0878a5 58%, #08a9ad 100%); }
.site-contact-section__inner { width: min(1160px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 7vw, 6rem); align-items: center; }
.site-contact-section__intro { color: #fff; }
.site-contact-section__intro h2 { margin: 0 0 1.2rem; color: #fff; font-size: clamp(2.3rem, 4.5vw, 4.2rem); line-height: 1; }
.site-contact-section__intro p:not(.site-kicker) { max-width: 48ch; margin: 0 0 1.5rem; font-size: 1.1rem; line-height: 1.65; }
.site-contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: clamp(1.35rem, 3vw, 2rem); border-radius: 28px; background: #fff; box-shadow: 0 22px 48px rgba(0,27,57,.22); }
.site-contact-form label { display: grid; gap: .45rem; color: var(--site-navy); font-size: .85rem; font-weight: 800; }
.site-contact-form input, .site-contact-form textarea { width: 100%; border: 1px solid #c8dced; border-radius: 12px; padding: .8rem .9rem; background: #fbfdff; color: var(--site-ink); font: inherit; line-height: 1.35; }
.site-contact-form textarea { resize: vertical; }
.site-contact-form input:focus, .site-contact-form textarea:focus { border-color: var(--site-turquoise); outline: 3px solid rgba(8,169,173,.18); }
.site-contact-form__wide, .site-contact-form__notice { grid-column: 1 / -1; }
.site-contact-form__submit { width: fit-content; min-height: 50px; padding: .75rem 1.35rem; border: 2px solid var(--site-yellow); border-radius: 999px; background: var(--site-yellow); color: var(--site-navy); cursor: pointer; font: inherit; font-weight: 900; }
.site-contact-form__submit:hover, .site-contact-form__submit:focus-visible { background: #fff2a8; outline: 3px solid rgba(255,209,0,.35); outline-offset: 3px; }
.site-contact-form__notice { margin: 0; color: #b42828; font-weight: 700; }
.site-contact-form__notice.success { color: #087346; }
.site-story__visual--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(0,31,63,.72)); }
.site-story__visual--photo > span { position: absolute; z-index: 1; right: 1.5rem; bottom: 1.5rem; width: 70px; height: 70px; padding: 15px; display: grid; place-items: center; border-radius: 22px; background: #fff; color: var(--site-turquoise); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.site-story__visual--photo svg { width: 100%; height: 100%; }

.site-outcomes-section { background: linear-gradient(180deg, #f6fbff, #eaf7ff); }
.site-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.4rem; }
.site-outcome { min-height: 250px; padding: 2rem; border: 1px solid rgba(3,41,73,.08); border-radius: 28px; background: #fff; box-shadow: 0 18px 40px rgba(3,41,73,.09); }
.site-outcome:nth-child(1) { background: linear-gradient(145deg,#e8f6ff,#d8efff); }
.site-outcome:nth-child(2) { background: linear-gradient(145deg,#fff6d9,#fff0bd); }
.site-outcome:nth-child(3) { background: linear-gradient(145deg,#e6faf4,#d4f5eb); }
.site-outcome__icon { width: 64px; height: 64px; margin-bottom: 1.25rem; padding: 13px; display: grid; place-items: center; border-radius: 20px; background: rgba(255,255,255,.9); color: var(--site-turquoise); box-shadow: 0 10px 24px rgba(3,41,73,.09); }
.site-outcome__icon svg { width: 100%; height: 100%; }
.site-outcome h3 { margin: 0 0 .7rem; font-size: 1.55rem; }
.site-outcome p { margin: 0; color: var(--site-muted); line-height: 1.6; }

@media (max-width: 1100px) {
    .site-service-intro > div { min-height: auto; }
    .site-photo-panel { min-height: 400px !important; }
}

@media (max-width: 820px) {
    .site-outcomes { grid-template-columns: 1fr; }
    .site-outcome { min-height: 220px; }
}

@media (max-width: 720px) {
    .site-photo-panel { min-height: 380px !important; border-radius: 24px !important; }
    .site-photo-panel__content { padding: 1.6rem; }
    .site-service-intro__panel, .site-purpose-panel { padding: 1.7rem; border-radius: 24px !important; }
    .site-card { min-height: 245px; border-radius: 24px; }
    .passport-prep-card { min-height: 310px; }
}
