@font-face {
  font-family: "Montserrat BOATVIX";
  src: url("assets/Montserrat-VariableFont_wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root { --navy:#071c55; --blue:#0b76ff; --orange:#f4a000; --white:#fff; --sand:#f3f6fb; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--navy); background:var(--white); font-family:"Montserrat BOATVIX", Arial, sans-serif; }
main { overflow:hidden; }
.hero { min-height:100svh; position:relative; isolation:isolate; display:flex; flex-direction:column; color:var(--navy); background:url("assets/p02_hero_limpia.png") center center / cover no-repeat; }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, var(--white) 0%, rgba(255,255,255,.98) 30%, rgba(255,255,255,.86) 39%, rgba(255,255,255,.42) 47%, rgba(255,255,255,.10) 52%, rgba(255,255,255,0) 56%); }
.header { min-height:84px; width:min(1240px, 100%); margin:0 auto; padding:20px 32px; display:flex; align-items:center; justify-content:space-between; }
.brand-panel { position:relative; display:block; width:288.0405px; height:74px; }
.brand { position:absolute; inset:0; display:block; width:288.0405px; height:auto; image-rendering:auto; }
.header-link, .scroll-cue { color:var(--navy); font-size:12px; line-height:1; font-weight:725; letter-spacing:.10em; text-decoration:none; }
.header, .hero-content, .scroll-cue { position:relative; z-index:1; }
.header-link { padding:12px 0; border-bottom:2px solid var(--orange); }
.language-switcher { display:inline-flex; align-items:center; gap:8px; color:#7890bb; font-size:12px; line-height:1; font-weight:725; letter-spacing:.10em; }
.language-switcher a { padding:8px 0 6px; color:inherit; text-decoration:none; }
.language-switcher .is-active { color:var(--navy); border-bottom:2px solid var(--orange); }
.hero-content { width:min(1240px, 100%); margin:auto; padding:46px 32px 96px; }
.eyebrow, .section-kicker { margin:0 0 12px; font-size:14px; line-height:1; font-weight:735; letter-spacing:.10em; color:var(--blue); }
.hero .eyebrow { color:var(--blue); }
h1, h2, h3, p { margin-top:0; }
h1 { max-width:520px; margin-bottom:24px; color:var(--navy); font-size:clamp(46px, 4.15vw, 66px); line-height:.91; letter-spacing:-.045em; font-weight:750; }
.hero-text { max-width:470px; margin-bottom:30px; font-size:clamp(17px, 2.2vw, 22px); line-height:1.4; font-weight:500; }
.hero-text strong { color:var(--orange); font-weight:735; }
.button { min-height:52px; padding:16px 23px; display:inline-flex; align-items:center; justify-content:center; border:0; font:inherit; font-size:13px; line-height:1; font-weight:725; letter-spacing:.05em; text-decoration:none; cursor:pointer; transition:transform .2s ease, background .2s ease; }
.button:hover, .button:focus-visible { transform:translateY(-2px); }
.button-primary { background:var(--orange); color:var(--navy); }
.scroll-cue { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); opacity:.86; }
.promise, .experiences { width:min(1240px, 100%); margin:0 auto; padding:96px 32px; }
.promise { text-align:center; }
.promise h2, .section-heading h2, .consultation h2 { margin-bottom:14px; font-size:clamp(36px, 4.4vw, 59px); line-height:.96; letter-spacing:-.045em; font-weight:750; }
.promise > p:not(.section-kicker) { max-width:600px; margin:0 auto; font-size:18px; line-height:1.45; font-weight:500; }
.steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:54px; text-align:left; }
.steps article { padding:28px; background:var(--sand); border-radius:3px; }
.steps > article > span { display:block; margin-bottom:42px; color:var(--blue); font-size:13px; font-weight:735; letter-spacing:.08em; }
.steps h3, .experience-card h3 { margin-bottom:8px; font-size:18px; line-height:1.1; font-weight:768; letter-spacing:-.02em; }
.steps p { margin:0; font-size:15px; line-height:1.45; font-weight:500; }
.accent { color:var(--orange); font-weight:735; }
.experiences { padding-top:20px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:28px; }
.section-heading h2 { margin:0; text-align:right; }
.experience-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:16px; }
.experience-card { min-height:320px; position:relative; display:flex; align-items:end; overflow:hidden; color:var(--white); background-size:cover; background-position:center; }
.experience-card.day { background-image:url("assets/p02_dia_en_el_mar.png"); }
.experience-card.sunset { background-image:url("assets/p02_atardecer.png"); }
.experience-card.celebrate { background-image:url("assets/p02_celebraciones.png"); }
.card-shade { width:100%; padding:24px 20px 20px; background:linear-gradient(transparent, rgba(7,28,85,.86)); }
.experience-card h3 { margin:0 0 6px; color:var(--white); font-size:16px; letter-spacing:.02em; }
.experience-card p { margin:0; font-size:14px; line-height:1.3; font-weight:500; }
.consultation { display:grid; grid-template-columns:.92fr 1.08fr; gap:72px; margin-top:72px; padding:88px max(32px, calc((100vw - 1176px) / 2)); background:var(--navy); color:var(--white); }
.consultation .section-kicker { color:var(--orange); }
.consultation-copy > p:not(.section-kicker) { max-width:420px; margin-bottom:26px; font-size:18px; line-height:1.45; font-weight:500; }
.consultation-copy .microcopy { color:#cfdaef; font-size:14px; }
.direct-contact { max-width:360px; margin:0 0 26px; color:#cfdaef; font-size:14px; line-height:1.45; font-weight:500; }
.direct-contact a { color:var(--white); font-weight:725; }
.partner-contact { margin-top:-12px; }
.transparency-note { max-width:350px; display:flex; align-items:flex-start; gap:10px; margin:34px 0 0; color:#cfdaef; font-size:13px; line-height:1.4; font-weight:500; }
.transparency-note strong { color:var(--white); font-weight:725; }
.tariff-underlined { text-decoration-line:underline; text-decoration-color:var(--orange); text-decoration-thickness:1px; text-underline-offset:4px; }
.lock-icon { width:16px; height:13px; flex:0 0 auto; position:relative; margin-top:3px; border:2px solid var(--orange); border-radius:2px; }
.lock-icon::before { content:""; position:absolute; width:8px; height:7px; left:2px; top:-8px; border:2px solid var(--orange); border-bottom:0; border-radius:7px 7px 0 0; }
.proposal-form { display:grid; gap:16px; align-content:start; }
.honeypot { display:none; }
.proposal-form label { display:grid; gap:7px; color:var(--white); font-size:13px; font-weight:725; }
.optional { color:#bdcbe2; font-size:11px; font-weight:500; }
.proposal-form input, .proposal-form select { width:100%; min-height:48px; padding:0 13px; border:1px solid rgba(255,255,255,.44); border-radius:0; background:transparent; color:var(--white); font:inherit; font-size:15px; font-weight:500; }
.proposal-form textarea { width:100%; min-height:112px; padding:13px; border:1px solid rgba(255,255,255,.44); border-radius:0; background:transparent; color:var(--white); font:inherit; font-size:15px; line-height:1.4; font-weight:500; resize:vertical; }
.proposal-form input::placeholder { color:#bdcbe2; }
.proposal-form textarea::placeholder { color:#bdcbe2; }
.proposal-form select { color:#bdcbe2; }
.proposal-form select:valid { color:var(--white); }
.proposal-form option { color:var(--navy); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.proposal-form .button { width:100%; margin-top:4px; }
.form-note, .form-status { margin:0; font-size:12px; line-height:1.4; color:#cfdaef; }
.form-status { min-height:18px; color:#fff; font-weight:725; }
@media (max-width:760px) { .hero { min-height:650px; background:url("assets/p02_hero_limpia.png") 85% bottom / auto 200px no-repeat; background-color:var(--white); } .hero::before { background:linear-gradient(180deg, var(--white) 0%, var(--white) 64%, rgba(255,255,255,.28) 74%, rgba(255,255,255,0) 84%); } .header { min-height:74px; padding:16px 20px; } .brand-panel { width:200px; height:52px; } .brand { width:200px; } .language-switcher { gap:6px; font-size:11px; } .hero-content { margin:42px auto auto; padding:0 24px; } .promise, .experiences { padding:68px 24px; } .steps { grid-template-columns:1fr; gap:12px; margin-top:36px; } .steps article { padding:22px; } .section-heading { display:block; } .experience-grid { grid-template-columns:1fr; gap:12px; } .experience-card { min-height:240px; } .consultation { grid-template-columns:1fr; gap:32px; margin-top:0; padding:68px 24px; } .form-row { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
