/* Homepage concept. Scoped to .home-page; shared page styles stay independent. */
.home-page {
  --cream: #f8f8f4;
  --sand: #eef1eb;
  --sand-dk: #dfe8df;
  --dark: #173b35;
  --mid: #35564e;
  --muted: #526861;
  --text-muted: #526861;
  --ocean: #216153;
  --terra: #216153;
  --terra-lt: #174b40;
  --border: rgba(23,59,53,.15);
  --r-sm: 12px;
  --r-md: 999px;
  --r-lg: 22px;
  background: var(--cream);
}
.home-page .container, .home-page .nav-inner { max-width: 1320px; padding-inline: 48px; }
.home-page .section { padding-block: 88px; }
.home-page .section-header { text-align: left; max-width: 760px; margin: 0 0 40px; }
.home-page h2 { font-size: clamp(2.6rem, 4.2vw, 4.2rem); line-height: 1.06; letter-spacing: -.035em; }
.home-page h2 em { color: var(--terra); }
.home-page .label { letter-spacing: .14em; font-size: .68rem; font-weight: 600; }
.home-page .section-header p { max-width: 580px; line-height: 1.75; }
.home-page .navbar, .home-page .navbar.scrolled {
  padding: 16px 0; background: #f8f8f4; border-bottom: 1px solid var(--border);
  box-shadow: none; backdrop-filter: none;
}
.home-page .navbar .logo-visit { color: var(--muted); font-size: .58rem; letter-spacing: .22em; }
.home-page .navbar .logo-ps { color: var(--dark); font-size: 1.5rem; }
.home-page .navbar .nav-links a { color: var(--dark); font-size: .8rem; padding: 10px 12px; }
.home-page .navbar .nav-links a:hover { background: var(--sand); }
.home-page .navbar .nav-cta { background: transparent !important; color: var(--dark) !important; border: 1px solid var(--border); border-radius: 999px; box-shadow: none; }
.home-page .nav-toggle span { background: var(--dark); }
.home-page .hero { min-height: 660px; min-height: min(820px, 92svh); margin: 92px 20px 0; border-radius: 24px; background: #123d39; }
.home-page .hero-content { width: 100%; max-width: 1280px; padding: 76px 48px 130px; }
.home-page .hero-media img { object-position: 58% center; }
.home-page .hero-gradient { background: linear-gradient(90deg, rgba(8,32,30,.87), rgba(8,32,30,.46) 53%, rgba(8,32,30,.1)), linear-gradient(0deg, rgba(8,32,30,.6), transparent 35%); }
.home-page .hero-pattern { display: none; }
.home-page .home-eyebrow { color: #fff; font-size: .69rem; text-transform: uppercase; letter-spacing: .2em; margin-bottom: 28px; }
.home-page .hero-title { font-family: var(--font-body); font-size: clamp(1rem, 1.8vw, 1.4rem); font-weight: 500; margin-bottom: 12px; letter-spacing: -.02em; }
.home-page .home-hero-line { color: #fff; font-family: var(--font-display); font-size: clamp(3.8rem, 6.8vw, 7rem); font-weight: 500; line-height: .99; letter-spacing: -.035em; margin-bottom: 24px; }
.home-page .hero-subtitle { max-width: 450px; font-size: .95rem; line-height: 1.8; margin-bottom: 28px; color: #f4f6f2; }
.home-page .hero-actions { margin: 0; gap: 12px; }
.home-page .hero-actions .btn { min-height: 50px; font-size: .83rem; padding: 14px 24px; }
.home-page .hero-actions .btn-primary { background: #f5f5eb; color: #173b35; box-shadow: none; }
.home-page .hero-actions .btn-ghost { backdrop-filter: none; background: rgba(8,32,30,.3); border-color: rgba(255,255,255,.55); }
.home-page .home-hero-bottom { position: absolute; z-index: 2; bottom: 28px; left: 48px; right: 48px; display: flex; justify-content: space-between; align-items: center; gap: 24px; color: #fff; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.3); font-size: .74rem; }
.home-page .home-hero-bottom a { min-height: 44px; display: flex; align-items: center; gap: 24px; }
.home-page .trip-start { background: var(--cream); padding: 80px 0 40px; border: 0; }
.home-page .trip-start-layout { display: grid; grid-template-columns: .8fr 2fr; gap: 60px; align-items: start; }
.home-page .trip-start-heading h2 { font-size: clamp(2.6rem, 3.5vw, 3.7rem); margin: 18px 0; }
.home-page .trip-start-heading p { max-width: 280px; font-size: .94rem; color: var(--muted); }
.home-page .home-steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0; border-top: 1px solid var(--border); }
.home-page .home-steps li { min-width: 0; border-bottom: 1px solid var(--border); }
.home-page .home-steps a { display: flex; flex-direction: column; height: 100%; padding: 22px 18px; border-radius: 12px; transition: background-color .2s; }
.home-page .home-steps a:hover { background: #e9eee7; }
.home-page .home-step-number { font-size: .7rem; color: var(--muted); margin-bottom: 22px; font-variant-numeric: tabular-nums; }
.home-page .home-steps h3 { font-family: var(--font-body); font-size: 1.04rem; font-weight: 600; letter-spacing: -.025em; margin-bottom: 10px; }
.home-page .home-steps p { font-size: .81rem; line-height: 1.65; flex: 1; color: var(--muted); }
.home-page .home-step-action { display: flex; justify-content: space-between; gap: 8px; font-size: .72rem; font-weight: 600; margin-top: 20px; }
.home-page .trip-start-grid { grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 40px; gap: 0; border-block: 1px solid var(--border); }
.home-page .trip-start-link { min-height: 92px; padding: 20px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.home-page .trip-start-link + .trip-start-link { border-left: 1px solid var(--border); }
.home-page .trip-start-link strong { font-size: .88rem; }
.home-page #guias { padding-top: 44px; background: var(--cream); }
.home-page #guias .section-header { display: grid; grid-template-columns: 1fr 1fr; max-width: none; column-gap: 32px; }
.home-page #guias .section-header .label { grid-column: 1 / -1; }
.home-page #guias h2 { font-size: 2.7rem; }
.home-page #guias .section-header p { align-self: end; }
.home-page #guias .guide-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 32px; }
.home-page #guias .guide-card { background: transparent; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; padding: 22px 0; box-shadow: none; transform: none; }
.home-page #guias .guide-card h3 { font-family: var(--font-body); font-size: .98rem; letter-spacing: -.02em; }
.home-page #guias .guide-card p { font-size: .82rem; line-height: 1.65; }
.home-page #guias .guide-card .btn-link { margin-top: 8px; font-size: .76rem; }
.home-page .beaches { background: #eaf0e9; }
.home-page .beaches-grid { gap: 28px 24px; }
.home-page .beach-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; transform: none; }
.home-page .beach-img { height: 300px; border-radius: 18px; overflow: hidden; }
.home-page .beach-info { padding: 22px 0 4px; }
.home-page .beach-info h3 { font-size: 1.4rem; }
.home-page .beach-info p { font-size: .88rem; }
.home-page .carousel-arrow { opacity: 1; }
.home-page .tours { background: var(--cream); }
.home-page .tours-grid { gap: 24px; }
.home-page .tour-item { border: 0; border-radius: 18px; background: #fff; }
.home-page .tour-image { height: 240px; }
.home-page .tour-body { padding: 26px; }
.home-page .tour-content h3 { font-size: 1.2rem; }
.home-page .hotels { background: #edf0e8; }
.home-page .hotel-card { border: 0; border-radius: 20px; box-shadow: none; }
.home-page .food { background: #173b35; }
.home-page .food-text .label, .home-page .food-text h2, .home-page .food-text h2 em { color: #f5f5eb; }
.home-page .food-text > p { color: #dae5de; }
.home-page .food-card { border-radius: 18px; border: 0; }
.home-page .food-note { background: transparent; border-color: #71867e; }
.home-page .food-note span, .home-page .food-note p { color: #e1e9e2; }
.home-page .season-card { border-radius: 18px; padding: 28px; background: #fff; }
.home-page .season-card.best { background: #eef1df; border-color: #bac798; }
.home-page .about { background: #eeefe7; }
.home-page .about-card { border-radius: 16px; box-shadow: none; }
.home-page .faq-list { max-width: none; }
.home-page .faq-item { border: 0; border-bottom: 1px solid var(--border); border-radius: 0; box-shadow: none; background: transparent; }
.home-page .faq-item[open] { box-shadow: none; }
.home-page .faq-item summary { padding: 22px 4px; font-size: 1rem; }
.home-page .faq-answer { padding-inline: 4px; max-width: 820px; }
.home-page .footer { background: #102e29; }
.home-page .fade-in { opacity: 1; transform: none; }
.home-page :is(section, h2)[id] { scroll-margin-top: 100px; }

@media (min-width: 1100px) {
  .home-page .beach-card:first-child { grid-column: span 2; }
  .home-page .beach-card:first-child .beach-img { height: 390px; }
  .home-page .beach-card:nth-child(2) .beach-img { height: 390px; }
  .home-page .beach-card:last-child { grid-column: span 2; }
}
@media (max-width: 1099px) {
  .home-page .container, .home-page .nav-inner { padding-inline: 28px; }
  .home-page .trip-start-layout { grid-template-columns: 1fr; gap: 28px; }
  .home-page .trip-start-heading p { max-width: 540px; }
  .home-page .hero-content { padding-inline: 32px; }
  .home-page .navbar .nav-links a { padding-inline: 9px; }
}
@media (max-width: 768px) {
  .home-page .container, .home-page .nav-inner { padding-inline: 22px; }
  .home-page .navbar { padding-block: 12px; }
  .home-page .hero { margin: 82px 10px 0; border-radius: 18px; min-height: 640px; }
  .home-page .hero-content { padding: 44px 24px 110px; }
  .home-page .home-hero-line { font-size: clamp(3.3rem, 10vw, 5rem); }
  .home-page .hero-gradient { background: linear-gradient(90deg,rgba(8,32,30,.82),rgba(8,32,30,.34)),linear-gradient(0deg,rgba(8,32,30,.65),transparent); }
  .home-page .home-hero-bottom { left: 24px; right: 24px; bottom: 18px; flex-wrap: wrap; gap: 2px; font-size: .65rem; }
  .home-page .hero-subtitle { font-size: .9rem; }
  .home-page .hero-actions { flex-direction: row; gap: 10px; }
  .home-page .hero-actions .btn { padding-inline: 16px; font-size: .76rem; }
  .home-page .section { padding-block: 58px; }
  .home-page .trip-start { padding-top: 48px; }
  .home-page .home-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-page .home-steps a { padding: 20px 12px; }
  .home-page .home-step-number { margin-bottom: 14px; }
  .home-page .trip-start-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 28px; }
  .home-page .trip-start-link { padding: 18px 12px; }
  .home-page .trip-start-link:nth-child(3) { border-left: 0; }
  .home-page .trip-start-link:nth-child(n+3) { border-top: 1px solid var(--border); }
  .home-page #guias .section-header { display: block; }
  .home-page #guias .guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; }
  .home-page #guias .guide-card { padding-block: 18px; }
  .home-page .beach-img { height: 280px; }
  .home-page .beaches-grid { gap: 30px; }
  .home-page .tour-image { height: 240px; }
  .home-page .navbar .nav-links.open { background: #102e29; padding-top: 100px; }
  .home-page .navbar .nav-links.open a { color: #fff; font-size: 1.3rem; }
  .home-page .navbar .nav-links.open .nav-cta { color: #fff !important; border-color: #6e8980; }
  .home-page .navbar .nav-links.open a:hover { background: #284c40; }
  .home-page.menu-open .navbar { backdrop-filter: none; }
  .home-page .nav-toggle[aria-expanded="true"] span { background: #fff; }
}
@media (min-width: 769px) and (max-width: 1000px) {
  .home-page .nav-inner { gap: 12px; padding-inline: 20px; }
  .home-page .navbar .nav-links { gap: 0; }
  .home-page .navbar .nav-links a { font-size: .72rem; padding-inline: 8px; }
  .home-page .navbar .logo-ps { font-size: 1.25rem; white-space: nowrap; }
  .home-page .navbar .nav-cta { padding: 9px 12px !important; }
}
@media (max-width: 359px) {
  .home-page #guias .guide-grid { grid-template-columns: 1fr; }
  .home-page .hero-actions { flex-direction: column; }
  .home-page .home-step-action { font-size: .65rem; }
}
/* Compact, non-modal privacy notice: keep the hero and its actions visible. */
.home-page .consent-banner {
  left: auto;
  right: 20px;
  bottom: 20px;
  width: calc(100% - 40px);
  max-width: 390px;
  max-height: calc(100svh - 40px);
  overflow-y: auto;
  margin: 0;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(23, 59, 53, .14);
}
.home-page .consent-inner { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
.home-page .consent-copy p { font-size: .8125rem; line-height: 1.6; }
.home-page .consent-actions { width: 100%; }
.home-page .consent-actions .btn { flex: 1; min-width: 0; min-height: 44px; }
.home-page .consent-banner :focus-visible { outline: 2px solid var(--ocean); outline-offset: 3px; }
@media (max-width: 480px) {
  .home-page .consent-banner { right: 12px; bottom: 12px; width: calc(100% - 24px); max-height: calc(100svh - 24px); }
  .home-page .consent-inner { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page *, .home-page *::before, .home-page *::after { transition: none !important; animation: none !important; }
}
