/* Home-specific — estética editorial/cinematográfica */
.hero{
  position:relative;
  margin-top:18px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  padding:clamp(22px,3.5vw,44px);
  background:
    radial-gradient(circle at 82% 20%, rgba(196,130,10,.22), transparent 38%),
    radial-gradient(circle at 12% 8%, rgba(26,92,74,.34), transparent 42%),
    var(--gradient-atlantic);
  box-shadow:var(--shadow-deep);
}
.hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    repeating-linear-gradient(112deg, rgba(255,255,255,.06) 0 1px, transparent 1px 26px),
    linear-gradient(to bottom, rgba(5,10,20,.08), rgba(5,10,20,.58));
  mix-blend-mode:soft-light;
  pointer-events:none;
}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(18px,3vw,34px);align-items:center}

.eyebrow{margin:0 0 14px;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.78);font-weight:700}
.hero-copy h1{font-size:var(--step-4);color:#fff;margin:.08rem 0 .65rem;max-width:11ch}
.hero-subtitle{font-size:clamp(1.06rem,1rem + .3vw,1.3rem);max-width:56ch;color:rgba(241,247,255,.88)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.08)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.16)}

.hero-media{
  padding:0;
  background:#0f2138;
}
.hero-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.hero-media::before,
.hero-media::after{
  content:'';
  position:absolute;
  pointer-events:none;
}
.hero-media::before{
  inset:0;
  background:
    linear-gradient(180deg, rgba(6,14,26,.08) 0%, rgba(6,14,26,.36) 52%, rgba(6,14,26,.62) 100%),
    radial-gradient(circle at 78% 78%, rgba(196,130,10,.28), transparent 42%),
    radial-gradient(circle at 15% 22%, rgba(72,146,120,.22), transparent 36%);
  z-index:1;
}
.hero-media::after{
  inset:0;
  background:repeating-linear-gradient(130deg, rgba(255,255,255,.06) 0 1px, transparent 1px 28px);
  mix-blend-mode:soft-light;
  z-index:1;
}

.section-block{padding:clamp(42px,6vw,82px) 0}
.section-head{margin-bottom:22px}
.section-head h2{margin:0;max-width:18ch;font-size:var(--step-3)}
.section-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;color:var(--c-gold);font-weight:700;margin:0 0 12px}
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}

.section-editorial{position:relative}
.section-head-editorial h2{max-width:20ch}
.editorial-prose{
  max-width:80ch;
  padding-left:clamp(12px,2vw,28px);
  border-left:2px solid rgba(196,130,10,.45);
}
.editorial-prose p{font-size:clamp(1.02rem,.98rem + .25vw,1.16rem)}

.card-grid-4{grid-template-columns:repeat(4,1fr)}
.card-grid-3{grid-template-columns:repeat(3,1fr)}
.offerings-grid .info-card{min-height:100%}
.symbol-card{position:relative;padding-top:58px}
.card-symbol{
  position:absolute;
  top:18px;
  left:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-family:var(--font-display);
  color:var(--c-gold);
  border:1px solid rgba(196,130,10,.42);
  background:rgba(196,130,10,.08);
}

.section-impact{
  position:relative;
  border-radius:var(--radius-lg);
  padding-inline:clamp(18px,3vw,30px);
  background:linear-gradient(170deg, rgba(27,45,74,.06), rgba(26,92,74,.08));
}
.feature-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.feature-list li{
  position:relative;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius-sm);
  padding:16px 16px 16px 42px;
  box-shadow:var(--shadow-sm);
}
.feature-list li::before{
  content:'✦';
  position:absolute;
  left:14px;
  top:13px;
  color:var(--c-gold);
  font-family:var(--font-display);
  font-size:1rem;
}

.experiences-grid .experience-card{padding:14px 14px 18px}
.card-photo{
  display:block;
  width:100%;
  height:230px;
  object-fit:cover;
  object-position:center;
  border-radius:14px;
  margin-bottom:16px;
  border:1px solid rgba(255,255,255,.68);
  box-shadow:inset 0 -80px 90px rgba(5,10,18,.12), 0 12px 28px rgba(8,18,30,.18);
}
.exp-faros{
  background-image:
    linear-gradient(to bottom, rgba(20,38,66,.12), rgba(10,22,35,.75)),
    radial-gradient(circle at 25% 15%, rgba(72,157,126,.5), transparent 42%),
    linear-gradient(140deg, #2b4363, #13263f 62%, #0a1829);
}
.exp-ezaro{
  background-image:
    linear-gradient(180deg, rgba(7, 31, 52, .18) 0%, rgba(8, 42, 63, .62) 52%, rgba(4, 23, 38, .86) 100%),
    radial-gradient(120% 70% at 50% -12%, rgba(233,247,255,.92) 0%, rgba(189,233,255,.58) 24%, transparent 62%),
    repeating-linear-gradient(168deg, rgba(156, 236, 255, .22) 0 14px, rgba(111, 207, 233, .10) 14px 28px, transparent 28px 44px),
    linear-gradient(158deg, #2b7782 0%, #1b5c70 36%, #184a67 58%, #163c59 72%, #102d49 100%);
}
.exp-ezaro::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 52% 30%, rgba(255,255,255,.72) 0 8%, transparent 18%),
    radial-gradient(circle at 46% 34%, rgba(245,255,255,.52) 0 7%, transparent 22%),
    linear-gradient(180deg, transparent 0 38%, rgba(255,255,255,.24) 46%, rgba(255,255,255,.10) 59%, transparent 78%);
  mix-blend-mode:screen;
  opacity:.92;
}
.exp-ezaro::after{
  content:'';
  position:absolute;
  inset:auto 14% 12% auto;
  width:56px;
  height:22px;
  border-radius:999px 999px 12px 12px;
  background:linear-gradient(90deg, #c4820a 0%, #f1b43b 58%, #c4820a 100%);
  box-shadow:0 0 0 2px rgba(6,24,38,.26), 0 8px 22px rgba(5,15,28,.28);
  transform:rotate(-8deg);
}
.exp-fisterra{
  background-image:
    linear-gradient(to bottom, rgba(22,40,60,.12), rgba(9,18,32,.76)),
    radial-gradient(circle at 76% 18%, rgba(196,130,10,.36), transparent 35%),
    linear-gradient(145deg, #264565, #122e4a 60%, #0d223a);
}

.planner-band-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,40px);
  border:1px solid rgba(255,255,255,.16);
  background:
    radial-gradient(circle at 84% 18%, rgba(196,130,10,.33), transparent 38%),
    linear-gradient(150deg,#142945,#0f1f36 56%,#153629);
  color:rgba(245,250,255,.92);
  box-shadow:var(--shadow-deep);
}
.planner-band h2,
.planner-band p{color:inherit}
.planner-band .section-kicker{color:rgba(196,130,10,.98)}
.planner-band .btn{background:linear-gradient(135deg,#d2972d,#c4820a 62%,#ab7007);box-shadow:0 12px 30px rgba(196,130,10,.32)}

.newsletter-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
  border-radius:var(--radius);
  background:linear-gradient(145deg,var(--c-surface),var(--c-bg-alt));
  border:1px solid var(--c-border);
  padding:clamp(20px,2.8vw,34px);
  box-shadow:var(--shadow-sm);
}

@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr}
  .hero-copy h1{max-width:14ch}
  .hero-media{min-height:360px}
  .card-grid-4{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:760px){
  .hero{margin-top:10px;padding:20px}
  .hero-copy h1{font-size:clamp(2.4rem,12vw,3.4rem)}
  .hero-subtitle{font-size:1rem}
  .hero-media{min-height:290px;padding:18px}
  .section-head h2{max-width:100%}
  .feature-list{grid-template-columns:1fr}
  .card-grid-3,
  .card-grid-4{grid-template-columns:1fr}
  .card-photo{height:205px}
  .cta-row .btn{width:100%}
  .newsletter-inner .btn,
  .planner-band-inner .btn{width:100%}
}


.section-highlight{
  border-radius:var(--radius-lg);
  padding:clamp(40px,5vw,72px) clamp(18px,3vw,34px);
  position:relative;
}
.section-highlight + .section-highlight{margin-top:22px}
.section-intro{max-width:72ch;font-size:clamp(1rem,.96rem + .28vw,1.18rem)}

.section-planifica{
  background:
    radial-gradient(circle at 86% 12%, rgba(196,130,10,.26), transparent 36%),
    linear-gradient(145deg,#10233d,#132e49 52%,#16523f);
  color:rgba(246,250,255,.95);
  box-shadow:var(--shadow-deep);
}
.section-planifica h2{font-size:clamp(2rem,1.65rem + 2vw,3.3rem);max-width:18ch;color:#fff}
.section-planifica .section-intro,
.section-planifica .section-kicker{color:rgba(239,246,255,.9)}
.planifica-cta-wrap{margin-top:24px}
.btn-planifica{
  font-size:1.02rem;
  padding:15px 28px;
  background:linear-gradient(135deg,#d49f3b,#c4820a 62%,#aa7008);
  box-shadow:0 14px 34px rgba(196,130,10,.35);
}

.section-dormir{
  background:linear-gradient(150deg,var(--c-surface),#efe8da);
  border:1px solid var(--c-border);
}
.lodging-grid .info-card{background:linear-gradient(160deg,#fdfbf5,#f6efe1)}
.ph-lodging{
  background-image:
    linear-gradient(to bottom, rgba(20,36,58,.15), rgba(12,22,39,.72)),
    radial-gradient(circle at 72% 24%, rgba(207,148,40,.46), transparent 36%),
    linear-gradient(145deg,#43627a,#22415a 60%,#16314a);
}

.section-blog{
  background:
    radial-gradient(circle at 14% 8%, rgba(26,92,74,.14), transparent 36%),
    linear-gradient(160deg,#f8f4eb,#ece4d7);
  border:1px solid var(--c-border);
}
.blog-grid .info-card{background:linear-gradient(155deg,#fdfcf8,#f5efe4)}
.ph-blog{
  background-image:
    linear-gradient(to bottom, rgba(17,30,50,.08), rgba(10,20,34,.74)),
    radial-gradient(circle at 78% 18%, rgba(196,130,10,.42), transparent 34%),
    linear-gradient(145deg,#325273,#1f3d5c 62%,#122b46);
}

.section-contacto{
  background:
    radial-gradient(circle at 82% 24%, rgba(196,130,10,.28), transparent 40%),
    linear-gradient(145deg,#0f1f35,#173454 55%,#1d5d4a);
  color:rgba(245,250,255,.95);
  box-shadow:var(--shadow-deep);
}
.section-contacto h2,
.section-contacto a,
.section-contacto label{color:#fff}
.section-contacto .section-intro{color:rgba(235,245,255,.88)}
.contact-lines{margin:.55rem 0}
.contacto-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:clamp(18px,3vw,34px);
  align-items:start;
}
.contact-form{
  display:grid;
  gap:10px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.3);
  border-radius:16px;
  padding:16px;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(8,16,28,.5);
  color:#fff;
  padding:10px 12px;
  font:500 .95rem/1.4 var(--font-body);
}
.contact-form input::placeholder,
.contact-form textarea::placeholder{color:rgba(255,255,255,.65)}

@media (max-width:900px){
  .contacto-grid{grid-template-columns:1fr}
}
