.proto-note { display: none !important; }
/* Evita repintados de pantalla completa que provocaban destellos en monitores grandes. */
body { background-attachment: scroll; }
body::after { animation: none; transform: none; }
.public-hero .slide .im { backface-visibility: hidden; will-change: opacity; }
.brand-logo { display:block; flex:none; background-repeat:no-repeat; background-position:center; }
.brand-logo-header { width:195px; height:64px; background-image:url("../img/logo-travels-life-horizontal.png"); background-size:195px auto; mix-blend-mode:screen; }
.brand-logo-footer { width:135px; height:135px; margin:0 auto 34px; background-image:url("../img/logo-travels-life-triangle.png"); background-size:135px auto; }
.foot-brand { max-width:360px; }
.nav-book { padding: 11px 24px; font-size: 14px; }
.public-empty { padding: 90px 20px; text-align: center; }
.public-empty p { margin: 12px auto 24px; color: var(--muted); }
.footer { display: block; }
.nav a, .brand { cursor: pointer; }
.pagination-public { margin-top: 40px; color: var(--paper); }
.pagination-public nav > div:first-child { display: none; }
.pagination-public nav > div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.pagination-public a, .pagination-public span { color: var(--paper); }
.pagination-public svg { width: 18px; }
.center-action { display:flex; justify-content:center; margin-top:46px; }
.rec .img > .im { position:absolute; inset:0; z-index:1; width:100%; height:100%; background-position:center; background-size:cover; transform:scale(1.04); transition:transform .6s var(--ease); }
.public-hero .hero-top { display:flex; align-items:center; }
.hero-public-content { padding-top:80px; }
.public-calendar .cal-hero { padding-top:170px; }
.calendar-section { padding-top:30px; }
.trip-hero-content { position:relative; z-index:3; padding-top:220px; }
.trip-hero-content > p { max-width:720px; margin:20px 0; color:var(--muted); font-size:18px; }
.trip-facts { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; }
.trip-facts span { padding:8px 12px; border:1px solid var(--glass-brd); border-radius:999px; background:var(--glass); font-size:13px; }
.subnav { position:sticky; top:72px; z-index:20; border-bottom:1px solid var(--line); background:rgba(10,21,25,.93); backdrop-filter:blur(18px); }
.subnav .wrap { display:flex; gap:28px; overflow:auto; }
.subnav a { padding:17px 0; color:var(--muted); white-space:nowrap; }
.subnav a:hover,.subnav a.on { color:var(--paper); }
.public-prices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:36px; }
.public-prices article { display:grid; gap:10px; padding:26px; border:1px solid var(--glass-brd); border-radius:var(--r); background:var(--glass); }
.public-prices article.featured { border-color:var(--accent); box-shadow:0 0 35px var(--glow-warm); }
.public-prices span { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:11px; }
.public-prices strong { font-family:var(--disp); font-size:32px; }
.public-prices small { color:var(--muted); }
.reserve-action { margin-top:30px; text-align:center; }
.reserve-action p { margin-top:15px; color:var(--muted); }
.map-pattern { position:absolute; inset:0; background:radial-gradient(circle at 30% 40%,var(--teal-soft),transparent 35%),linear-gradient(135deg,var(--ink-2),var(--ink-3)); }
.community-public-grid,.general-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:36px; }
.community-public-grid figure,.general-gallery figure { position:relative; overflow:hidden; min-height:300px; border-radius:var(--r); }
.community-public-grid img,.general-gallery img { width:100%; height:100%; position:absolute; object-fit:cover; transition:transform .6s var(--ease); }
.community-public-grid figure:hover img,.general-gallery figure:hover img { transform:scale(1.05); }
.community-public-grid figcaption,.general-gallery figcaption { position:absolute; left:0; right:0; bottom:0; padding:40px 18px 16px; background:linear-gradient(transparent,rgba(0,0,0,.8)); }
.community-public-grid figcaption span { display:block; color:var(--muted); }
.empty-state-public { padding:30px; color:var(--muted); text-align:center; }
.includes-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:42px; }
.includes-grid article { padding:24px; border:1px solid var(--glass-brd); border-radius:var(--r); background:var(--glass); }
.includes-grid li { margin:10px 0; color:var(--muted); }
.addons-heading { margin:50px 0 20px; }
.calendar-buttons { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
.reservation-form { max-width:820px; display:grid; gap:16px; margin:45px auto 0; padding:28px; border:1px solid var(--glass-brd); border-radius:var(--r); background:var(--glass); }
.reservation-form label { display:grid; gap:7px; color:var(--muted); font-size:13px; }
.reservation-form input,.reservation-form select,.reservation-form textarea { width:100%; padding:13px; border:1px solid var(--line-2); border-radius:9px; color:var(--paper); background:var(--ink-2); font:inherit; }
.two-public-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.reservation-success { max-width:820px; margin:30px auto 0; padding:16px; border-radius:10px; color:var(--green-lite); background:var(--green-soft); text-align:center; }
.reservation-errors { color:#ff9b8d; }
.book-bar { position:fixed; left:50%; bottom:18px; z-index:80; width:min(720px,calc(100% - 30px)); display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px 14px 12px 22px; border:1px solid var(--glass-brd); border-radius:16px; background:rgba(10,21,25,.94); backdrop-filter:blur(18px); box-shadow:var(--shadow); transform:translate(-50%,140%); transition:transform .4s var(--ease-out); }
.book-bar.show { transform:translate(-50%,0); }
.book-bar span { display:block; color:var(--muted); font-size:12px; }
@media(max-width:700px){.public-prices{grid-template-columns:1fr}.trip-hero-content{padding-top:180px}.hero-public-content{padding-top:120px}}
@media(max-width:900px){
  .nav-links.mobile-open { display:flex; position:absolute; top:70px; left:18px; right:18px; flex-direction:column; padding:20px; border:1px solid var(--glass-brd); border-radius:14px; background:rgba(10,21,25,.96); }
}
@media(max-width:560px){
  .brand-logo-header { width:150px; height:58px; background-size:160px auto; }
  .nav-right { gap:12px; }
  .nav-book { display:none; }
  .brand-logo-footer { width:115px; height:115px; margin-bottom:26px; background-size:115px auto; }
}
