/* =========================================================
   Roses Jetski Rental — estilos compartidos
   Paleta: mar Mediterráneo + sol Costa Brava
   ========================================================= */

:root{
  --deep:   #053b47;   /* mar profundo */
  --teal:   #0c8a9a;   /* agua media   */
  --aqua:   #19c5d6;   /* turquesa marca */
  --spray:  #eaf7f8;   /* blanco agua  */
  --sand:   #fbf6ec;   /* arena cálida */
  --ink:    #072e35;   /* texto sobre claro */
  --muted:  #4d6a70;   /* texto secundario */
  --sun:    #db4d1b;   /* coral CTA (texto blanco AA) */
  --sun-2:  #ff6a3d;   /* coral decorativo */
  --line:   #d8e6e7;   /* hairlines */
  --white:  #ffffff;

  --maxw: 1120px;
  --r: 14px;
  --r-lg: 22px;
  --shadow: 0 18px 50px -20px rgba(5,59,71,.45);
  --shadow-sm: 0 8px 24px -14px rgba(5,59,71,.4);

  --display: "Archivo", system-ui, sans-serif;
  --body: "Inter", system-ui, sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  font-size:17px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 22px; }
.section{ padding:84px 0; }
.section--sand{ background:var(--sand); }
.section--spray{ background:var(--spray); }

h1,h2,h3{ font-family:var(--display); line-height:1.05; letter-spacing:-.02em; margin:0 0 .4em; }
h1{ font-weight:800; font-size:clamp(2.3rem, 6vw, 4.1rem); }
h2{ font-weight:800; font-size:clamp(1.7rem, 4vw, 2.7rem); }
h3{ font-weight:700; font-size:1.28rem; letter-spacing:-.01em; }
p{ margin:0 0 1rem; }
.lead{ font-size:1.18rem; color:var(--muted); }

.eyebrow{
  display:inline-block; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.18em; font-size:.78rem;
  color:var(--teal); margin-bottom:14px;
}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--display); font-weight:700; font-size:1.02rem;
  text-decoration:none; cursor:pointer; border:0;
  padding:.85em 1.5em; border-radius:999px;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.btn:focus-visible{ outline:3px solid var(--aqua); outline-offset:3px; }
.btn--sun{ background:var(--sun); color:#fff; box-shadow:var(--shadow-sm); }
.btn--sun:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -14px rgba(219,77,27,.7); }
.btn--ghost{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.55); padding:calc(.85em - 2px) calc(1.5em - 2px); }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.12); }
.btn--dark{ background:var(--deep); color:#fff; }
.btn--dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.btn--block{ width:100%; justify-content:center; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; gap:22px; height:68px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; font-family:var(--display); font-weight:800; letter-spacing:-.01em; color:var(--deep); font-size:1.12rem; }
.brand svg{ flex:none; }
.brand b{ color:var(--teal); }
.nav-links{ display:flex; gap:24px; margin-left:auto; }
.nav-links a{ text-decoration:none; font-weight:500; color:var(--ink); font-size:.98rem; padding:6px 2px; border-bottom:2px solid transparent; }
.nav-links a:hover, .nav-links a[aria-current="page"]{ border-color:var(--aqua); }
.nav .btn{ padding:.6em 1.1em; font-size:.95rem; }
.nav-cta{ margin-left:6px; }
.burger{ display:none; }

/* ---------- Hero ---------- */
.hero{ position:relative; color:#fff; overflow:hidden;
  background:
    radial-gradient(120% 90% at 82% -10%, rgba(25,197,214,.30), transparent 55%),
    linear-gradient(155deg, rgba(12,138,154,.62) 0%, rgba(5,59,71,.86) 78%),
    url('https://framerusercontent.com/images/DWGOaf4cyysH7KHQKt1SuLc2w.jpg?width=2000') center 32%/cover no-repeat,
    var(--deep);
}
.hero__inner{ position:relative; z-index:2; padding:86px 0 150px; }
.hero h1{ max-width:14ch; }
.hero .lead{ color:rgba(255,255,255,.86); max-width:46ch; font-size:1.22rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.chip{ display:inline-flex; align-items:center; gap:8px; font-size:.92rem; font-weight:500;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  padding:8px 14px; border-radius:999px; }
.chip svg{ flex:none; }

/* ola decorativa */
.hero__wave{ position:absolute; left:0; right:0; bottom:-1px; z-index:1; line-height:0; }
.hero__wave svg{ width:100%; height:auto; display:block; }

/* destello animado sutil */
.hero__shine{ position:absolute; inset:0; z-index:0;
  background:radial-gradient(40% 30% at 20% 20%, rgba(255,255,255,.18), transparent 70%);
  animation:drift 14s ease-in-out infinite alternate; }
@keyframes drift{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(40px,20px,0); } }

/* ---------- Grid de servicios / tarjetas ---------- */
.grid{ display:grid; gap:24px; }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--2{ grid-template-columns:1.1fr .9fr; align-items:center; }

.card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:30px; box-shadow:var(--shadow-sm); }
.card .ic{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center;
  background:var(--spray); color:var(--teal); margin-bottom:16px; }
.card h3{ margin-bottom:.35em; }
.card p{ color:var(--muted); margin:0; font-size:1rem; }
.card .price{ display:block; margin-top:14px; font-family:var(--display); font-weight:700; color:var(--sun); }

.section-head{ max-width:640px; margin-bottom:48px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head p{ color:var(--muted); font-size:1.12rem; margin:0; }

/* ---------- Bloque CTA ---------- */
.cta-band{ background:linear-gradient(150deg, var(--deep), var(--teal)); color:#fff;
  border-radius:var(--r-lg); padding:54px; text-align:center; box-shadow:var(--shadow); }
.cta-band h2{ margin-bottom:.3em; }
.cta-band p{ color:rgba(255,255,255,.85); max-width:48ch; margin:0 auto 26px; }
.cta-band .hero__cta{ justify-content:center; margin-top:0; }

/* ---------- Lista de checks ---------- */
.checks{ list-style:none; padding:0; margin:18px 0 0; display:grid; gap:12px; }
.checks li{ display:flex; gap:12px; align-items:flex-start; color:var(--muted); }
.checks svg{ flex:none; margin-top:3px; color:var(--teal); }

/* ---------- Contacto ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.contact-actions{ display:grid; gap:14px; margin:22px 0 30px; max-width:380px; }
.nap{ display:grid; gap:14px; margin-top:8px; }
.nap .row{ display:flex; gap:14px; align-items:flex-start; }
.nap .row svg{ flex:none; color:var(--teal); margin-top:3px; }
.nap .row strong{ display:block; font-family:var(--display); }
.nap .row span{ color:var(--muted); }
.map{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.map iframe{ width:100%; height:380px; border:0; display:block; }

.field{ display:block; margin-bottom:16px; }
.field label{ display:block; font-weight:600; margin-bottom:6px; font-size:.95rem; }
.field input, .field textarea{ width:100%; padding:13px 15px; border:1px solid var(--line);
  border-radius:12px; font-family:inherit; font-size:1rem; background:#fff; color:var(--ink); }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--aqua); box-shadow:0 0 0 3px rgba(25,197,214,.2); }

/* ---------- Aviso de edición (quítalo al publicar) ---------- */
.editme{ background:#fff7ed; border:1px dashed var(--sun-2); color:#7a3410;
  border-radius:12px; padding:14px 18px; font-size:.92rem; margin:18px 0; }
.editme b{ font-family:var(--display); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--deep); color:#cfe6ea; padding:56px 0 30px; font-size:.95rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px; }
.site-footer h4{ font-family:var(--display); color:#fff; font-size:1rem; margin:0 0 14px; letter-spacing:.02em; }
.site-footer a{ color:#cfe6ea; text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:9px; }
.footer-bottom{ margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; color:#90b6bd; font-size:.86rem; }

/* ---------- Reveal (solo si hay JS; sin JS el contenido es visible) ---------- */
.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.js .reveal.in{ opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .grid--3{ grid-template-columns:1fr 1fr; }
  .grid--2{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .section{ padding:60px 0; }
  .grid--3{ grid-template-columns:1fr; }
  .nav-links{ display:none; }
  .burger{ display:inline-flex; }
  .cta-band{ padding:38px 24px; }
  .footer-grid{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- Selector de idioma ---------- */
.langs{ display:flex; gap:2px; align-items:center; margin-left:16px; }
.langs a{ font-family:var(--display); font-weight:700; font-size:.8rem; text-decoration:none;
  color:var(--muted); padding:4px 7px; border-radius:7px; line-height:1; }
.langs a:hover{ color:var(--ink); }
.langs a[aria-current="true"]{ color:var(--teal); background:var(--spray); }
@media (max-width:680px){
  .langs{ margin-left:auto; }
  .nav .nav-cta{ display:none; } /* en móvil, el botón Reservar grande ya está en el hero */
}

/* ---------- Tarjetas de excursión ---------- */
.exc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.exc{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.exc>img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.exc__body{ padding:26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.exc__body h3{ margin:0; }
.exc__meta{ display:flex; flex-wrap:wrap; gap:8px; }
.exc__meta span{ font-size:.8rem; background:var(--spray); color:var(--teal);
  padding:5px 11px; border-radius:999px; font-weight:600; }
.exc__body p{ color:var(--muted); margin:0; }
.exc__body .checks{ margin:0; }
.exc__body .checks li{ font-size:.97rem; }
.exc__price{ margin-top:auto; display:flex; align-items:baseline; gap:10px; padding-top:6px; }
.exc__price b{ font-family:var(--display); font-size:1.9rem; color:var(--ink); line-height:1; }
.exc__price span{ color:var(--muted); font-size:.9rem; }
.exc__body .btn{ margin-top:6px; justify-content:center; }
@media (max-width:760px){ .exc-grid{ grid-template-columns:1fr; } }
