/* Travel editorial direction: immersive panorama, turquoise, airy destination cards. */
:root{--navy:#062f3c;--blue:#136c87;--gold:#24c4aa;--ink:#102e39;--muted:#59747e;--line:#d9e9ee;--paper:#f0f8fa}body{background:#f8fcfd}header{background:#062f3cf5;color:#fff;border-bottom:1px solid #ffffff14;height:84px;backdrop-filter:blur(15px)}.brand{letter-spacing:.07em}.mark{color:#25ceb4;background:transparent;border:1px solid #24c4aa70;font-style:italic}.brand-sub{color:#a2cccF;font-weight:400}.nav-cta{background:var(--gold);border:none;border-radius:9px;color:#04312d;font-weight:700}nav{gap:5px}nav a{padding:8px 13px;border-radius:30px}nav a:hover{background:#fff;color:var(--navy)}.hero{display:block;position:relative;isolation:isolate;min-height:825px;overflow:hidden;padding:0 0 55px;background:#063645}.hero-photo{position:absolute;inset:0;z-index:-2;height:100%;width:100%}.hero-photo img{object-position:center;width:100%;height:100%;object-fit:cover;filter:saturate(.72)}.hero-photo:after{background:linear-gradient(180deg,rgba(2,41,57,.8) 0%,rgba(2,30,39,.58) 37%,rgba(1,20,24,.96) 92%)}.hero-photo figcaption,.photo-label{display:none}.hero-copy{text-align:center;padding:65px 24px 35px;max-width:970px;margin:auto}.hero .eyebrow{color:#a9eee3;font-size:12px;letter-spacing:.18em;margin-bottom:22px}.hero h1{font-size:clamp(54px,5.8vw,82px);line-height:1.08;letter-spacing:-.035em}.hero h1 em{font-weight:400}.hero .lead{max-width:610px;margin:22px auto 0;color:#e0edf1;font-size:17px}.hero-actions{justify-content:center;margin:24px 0 22px}.button{border-radius:8px;transition:transform .2s,background .2s}.gold{background:var(--gold);color:#032f29}.gold:hover{background:#65e6cf;transform:translateY(-2px)}.hero-meta{justify-content:center;gap:25px;color:#c4e4e8;font-size:12px}.hero-meta span+span:before{content:'·';margin-right:25px;color:#6cafb5}.hero-discover{max-width:1160px;margin:25px auto 0;display:grid;grid-template-columns:1.35fr 1fr;gap:60px;padding:0 30px;align-items:center}.destination-stack{display:flex;align-items:center;gap:13px;height:250px}.mini-destination{position:relative;display:block;flex:1;height:210px;border-radius:18px;overflow:hidden;box-shadow:0 18px 25px #00151860;text-decoration:none;border:1px solid #ffffff40;transition:transform .25s}.mini-destination:nth-child(2){height:246px;transform:translateY(-8px)}.mini-destination:nth-child(3){height:230px}.mini-destination:hover{transform:translateY(-10px)}.mini-destination img{width:100%;height:100%;object-fit:cover}.mini-destination:nth-child(3) img{object-position:24% center}.mini-destination:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#001f2ade)}.mini-destination span{position:absolute;bottom:18px;left:14px;right:10px;color:white;font-size:13px;line-height:1.4;z-index:1}.discover-copy .eyebrow{font-size:10px;letter-spacing:.13em;color:#80d8c8;margin-bottom:12px}.discover-copy h2{font-size:35px;line-height:1.12;letter-spacing:-.025em}.discover-copy p:not(.eyebrow){font-size:14px;color:#c4d9df;margin:14px 0 20px;max-width:350px}.discover-copy .button{padding:10px 19px;font-size:13px}.route-strip{position:relative;max-width:1160px;z-index:2;margin:-18px auto 0;background:white;border:1px solid #e1edf0;border-radius:16px;box-shadow:0 16px 45px #1a586110;padding:28px 32px;gap:0}.route-strip>div{padding:0 24px;border-right:1px solid var(--line)}.route-strip strong{font-size:27px}.route-strip span{color:#137c7d;font-size:11px;font-weight:700}.route-strip small{font-size:11px}.section{padding-top:80px;padding-bottom:70px}.section-head .eyebrow,.intro .eyebrow,.travelers .eyebrow{color:#188a85;font-size:11px;letter-spacing:.16em}h2{font-size:clamp(36px,3.7vw,52px);letter-spacing:-.035em}.travelers{padding-bottom:35px}.travelers .section-head{align-items:center}.families{gap:20px}.family{background:white;border:1px solid #dfecef;border-radius:16px;padding:28px 18px;box-shadow:0 8px 25px #0c405804}.family h3{font-size:24px;text-align:center;margin-bottom:25px}.portrait-placeholder{background:#e8f6f3;color:#138b7c;border:5px solid white;box-shadow:0 0 0 1px #bfe4df}.photo-note{text-align:center;font-size:12px}.intro{padding-top:35px;padding-bottom:55px;gap:18px 80px}.intro>div>p:first-child{font-size:17px}.intro h2{font-size:43px}.outline{border-radius:30px;background:transparent;padding:11px 19px}.outline:hover{background:#dff4ef}.day{background:#fff;border:1px solid #dcebef;border-radius:13px;margin-bottom:12px;box-shadow:0 4px 15px #104a6003;overflow:hidden;transition:border-color .2s}.day:last-child{border:1px solid #dcebef}.day:hover{border-color:#78cfc2}.day summary{padding:24px;grid-template-columns:72px 1fr 150px 20px}.day-date{font-size:34px;color:#087d78}.day-date small{font-size:10px;color:#71888e}.day-title{font-size:27px}.day-sub{font-size:13px}.day-type{color:#207a75;background:#e7f8f2;border-radius:25px;padding:6px 12px;font-size:11px;text-align:center}.day summary:after{background:#1ab49e;color:white;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:20px;line-height:1}.day-body{border-radius:10px;margin:0 22px 22px 116px;background:#f0f8fa;padding:25px;gap:25px}.day-links a{color:#087d78;border-color:#93d0c5}.weather{border-left-color:#24b59f;background:#eaf7f2;border-radius:0 14px 14px 0;padding:26px}.food-section{background:#063442;position:relative;padding:75px 0;color:white}.food-section .eyebrow{color:#73dfcd}.food-grid{background:transparent;border:0;gap:18px}.food-card{border-radius:15px;background:#0b4150;border:1px solid #2b5965;padding:30px;transition:transform .25s}.food-card:hover{transform:translateY(-4px)}.food-card .city{color:#80dfd0;font-size:11px}.food-card h3{font-size:31px}.food-card p{font-size:14px}.food-card a{color:#7ae5d1}.food-note{font-size:12px}.filters{gap:8px}.filters button{background:#fff;border-color:#dcecef;padding:10px 19px}.filters button.active{background:#0b8d80;border-color:#0b8d80}.filters button:hover{border-color:#19ac96}.booking-grid{gap:20px}.booking-card{background:white;border-radius:15px;border:1px solid #dcebef;padding:25px;box-shadow:0 10px 25px #113f5004;transition:transform .2s,border-color .2s}.booking-card:hover{transform:translateY(-3px);border-color:#62c4b4}.booking-card .topline{font-size:10px;flex-wrap:wrap;gap:7px}.booking-card h3{font-family:Georgia,serif;font-weight:400;font-size:25px}.booking-card a{color:#078474}.booking-card .status{color:#668188;font-size:11px}.planning{background:#eaf6f9;padding:80px 0}.planning .eyebrow{color:#168b84}.planning-grid{gap:35px}.planning-grid article{padding:25px;background:#ffffffb8;border:1px solid #dbecef;border-radius:15px}.large-num{font-size:30px;color:#0c9d8c}.planning h3{font:25px Georgia;margin:15px 0}.planning p,.planning a{font-size:14px}.request{border-color:#c3dfe5}.request textarea{border-radius:12px;border-color:#c7e0e4}footer.wrap{max-width:none;background:#073e50;color:#fff;padding:45px max(36px,calc((100vw - 1188px)/2))!important;gap:35px}footer .brand{color:white}footer .brand .mark{color:#63e0ca}footer p,footer a:not(.brand){color:#c0dbe2}.made-by{padding:20px;text-align:center;font-size:13px;background:#052f3d;color:#c8e4e9;border-top:1px solid #ffffff12}.made-by a{color:white;font-weight:700;text-decoration:none}.made-by a:hover{text-decoration:underline}.heart{color:#40d9ba;font-size:18px;display:inline-block;vertical-align:-1px;margin:0 3px}.section,.food-section,.planning{scroll-margin-top:15px}.brand-sub{display:block!important}@media(max-width:1000px){header{gap:15px}nav a{padding:7px 9px;font-size:13px}.hero{min-height:800px}.hero-discover{gap:35px}.route-strip{margin-left:24px;margin-right:24px}.family{padding:25px}.day-type{font-size:10px}.families{grid-template-columns:1fr}.members{max-width:none;justify-content:center}.member{flex:0 1 115px}}@media(max-width:680px){header{min-height:90px;height:auto;padding:13px 20px;gap:12px}nav{gap:3px!important;flex-wrap:wrap;justify-content:space-between!important}nav a{font-size:11px;padding:5px 6px}.hero{padding-bottom:42px;min-height:0}.hero-copy{padding:45px 22px 20px}.hero h1{font-size:46px}.hero .eyebrow{font-size:10px}.hero .lead{font-size:16px;margin-top:18px}.hero-actions{gap:20px}.hero-meta{font-size:11px;gap:12px}.hero-meta span+span:before{margin-right:12px}.hero-discover{grid-template-columns:1fr;padding:0 23px;margin-top:8px;gap:24px}.destination-stack{height:190px;gap:9px}.mini-destination{height:166px;border-radius:13px}.mini-destination:nth-child(2){height:190px;transform:none}.mini-destination:nth-child(3){height:174px}.mini-destination span{font-size:11px;bottom:12px;left:10px;right:8px}.discover-copy{text-align:center}.discover-copy h2{font-size:29px}.discover-copy h2 br{display:none}.discover-copy p:not(.eyebrow){margin:12px auto 18px}.route-strip{padding:22px;margin: -12px 16px 0;gap:22px 12px;border-radius:13px}.route-strip strong{font-size:25px}.route-strip span{font-size:9px}.route-strip small{font-size:10px}.section{padding-top:50px;padding-bottom:40px}.travelers .section-head>p{margin-top:18px}.intro{padding-top:15px;padding-bottom:25px;gap:20px}.intro h2{font-size:36px}.section-head{margin-bottom:28px}.family{padding:22px 15px}.family h3{font-size:23px}.member{min-width:55px;flex:1}.day summary{grid-template-columns:42px 1fr 20px;padding:20px 16px;gap:12px}.day-title{font-size:23px}.day-date{font-size:29px}.day-sub{font-size:11px;line-height:1.5}.day-body{margin:0 12px 14px;padding:20px;grid-template-columns:1fr}.day-type{display:none}.weather{padding:20px}.food-section{padding:50px 0}.food-card{padding:25px}.planning{padding:50px 0}.planning-grid{gap:15px}.booking-card{padding:23px}footer.wrap{padding:35px 24px!important}.brand{font-size:12px}.brand-sub{font-size:9px}.photo-note{font-size:11px}.hero-photo img{object-position:23% center}.hero-photo:after{background:linear-gradient(180deg,#032f40d9,#012329d4 45%,#011c20 85%)}}@media(prefers-reduced-motion:reduce){.mini-destination,.food-card,.booking-card,.button{transition:none;transform:none!important}}@media print{.hero-discover,.made-by{display:none}.hero{background:white;min-height:0}.hero h1,.hero .lead,.hero .eyebrow{color:black}.route-strip{box-shadow:none}.food-card{background:white;color:black}.food-card p{color:black}footer.wrap{background:white;color:black}}

.mini-destination:nth-child(2) img{object-position:80% 70%}

/* Retratos do grupo */
.families {
  align-items: stretch;
}

.family {
  display: flex;
  flex-direction: column;
}

.family h3 {
  min-height: 2.6em;
}

.members {
  align-items: flex-start;
}

.member {
  min-width: 0;
}

.portrait-crop {
  width: 86px;
  height: 86px;
  margin: 0 auto 0.75rem;
  overflow: hidden;
  border-radius: 50%;
  background-color: #d8ede8;
  background-repeat: no-repeat;
  border: 3px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 8px 24px rgba(6, 49, 62, 0.14);
}

.member-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.face-perola .member-photo { object-position: 50% 38%; }
.face-ricky .member-photo { object-position: 50% 38%; }
.face-ricardo-augusto .member-photo { object-position: 50% 34%; }
.face-gabi .member-photo { object-position: 50% 34%; }
.face-ricardo .member-photo { object-position: 50% 30%; }

.face-rafa {
  background-image: url("assets/kids.png");
  background-size: 275% auto;
  background-position: 8% 47%;
}

.face-maria {
  background-image: url("assets/kids.png");
  background-size: 275% auto;
  background-position: 92% 46%;
}

.face-luizinho {
  background-image: url("assets/familia-luizinho.png");
  background-size: 400% auto;
  background-position: 72% 18%;
}

.face-fernanda {
  background-image: url("assets/familia-luizinho.png");
  background-size: 400% auto;
  background-position: 46% 45%;
}

.face-bel {
  background-image: url("assets/familia-luizinho.png");
  background-size: 400% auto;
  background-position: 17% 77%;
}

.member figcaption {
  line-height: 1.2;
  text-align: center;
}

.member figcaption small {
  display: block;
  margin-top: 0.25rem;
  color: var(--muted, #64767b);
  font-size: 0.72rem;
  font-weight: 500;
}

.family-note {
  margin: 1rem 0 0;
  color: var(--muted, #64767b);
  font-size: 0.82rem;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .family h3 { min-height: 0; }
  .portrait-crop { width: 78px; height: 78px; }
}

/* Calendário-resumo da viagem */
.trip-calendar {
  padding-top: 28px;
  padding-bottom: 76px;
}

.calendar-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 30px;
}

.calendar-heading .eyebrow {
  color: #188a85;
  font-size: 11px;
  letter-spacing: .16em;
}

.calendar-heading h2 {
  font-size: clamp(34px, 3.5vw, 48px);
}

.calendar-heading > p {
  max-width: 390px;
  color: var(--muted);
  font-size: 14px;
}

.calendar-days {
  display: grid;
  grid-template-columns: repeat(11, minmax(92px, 1fr));
  overflow-x: auto;
  padding: 2px 2px 15px;
  scrollbar-color: #8bd3c7 #e5f2f4;
}

.calendar-day {
  position: relative;
  min-height: 168px;
  padding: 17px 12px 15px;
  background: #fff;
  border: 1px solid #dcebef;
  border-right: 0;
  color: var(--ink);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.calendar-day:first-child { border-radius: 14px 0 0 14px; }
.calendar-day:last-child { border-right: 1px solid #dcebef; border-radius: 0 14px 14px 0; }
.calendar-day::before { content: ''; position: absolute; inset: 0 0 auto; height: 5px; background: #188a85; }
.calendar-day.city-plitvice::before { background: #6e9e57; }
.calendar-day.city-zadar::before { background: #238db0; }
.calendar-day.city-split::before { background: #d09b47; }
.calendar-day:hover,
.calendar-day:focus-visible { z-index: 1; transform: translateY(-4px); border-color: #60c6b6; box-shadow: 0 12px 28px rgba(17, 91, 98, .12); }

.calendar-day time {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 18px;
}

.calendar-day time strong { color: #087d78; font: 31px/1 Georgia, serif; }
.calendar-day time span { color: #6a8188; font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.calendar-place { display: block; min-height: 42px; font: 17px/1.18 Georgia, serif; }
.calendar-day small { display: block; margin-top: 9px; color: #688087; font-size: 10px; line-height: 1.35; }
.calendar-day.birthday { background: #fffaf0; }

@media (max-width: 680px) {
  .trip-calendar { padding-top: 20px; padding-bottom: 46px; }
  .calendar-heading { display: block; margin-bottom: 22px; }
  .calendar-heading > p { margin-top: 15px; }
  .calendar-days { margin-right: -24px; grid-template-columns: repeat(11, 112px); }
  .calendar-day { min-height: 156px; }
  .calendar-place { font-size: 16px; }
}

@media print {
  .calendar-days { grid-template-columns: repeat(6, 1fr); overflow: visible; }
  .calendar-day { min-height: 130px; border-right: 1px solid #dcebef; border-radius: 0!important; }
}

/* A assinatura é uma única frase, não o antigo rodapé em colunas. */
footer.made-by {
  display: block;
  text-align: center;
}

/* Mapa interativo do roteiro */
.trip-map {
  padding-top: 4px;
  padding-bottom: 80px;
}

.map-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 28px;
}

.map-heading .eyebrow {
  color: #188a85;
  font-size: 11px;
  letter-spacing: .16em;
}

.map-heading h2 { font-size: clamp(34px, 3.5vw, 48px); }
.map-heading > p { max-width: 390px; color: var(--muted); font-size: 14px; }

.map-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  min-height: 520px;
  overflow: hidden;
  border: 1px solid #d7e7eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 45px rgba(17, 73, 88, .08);
}

#trip-map {
  position: relative;
  z-index: 0;
  min-height: 520px;
  background: #deece9;
}

#trip-map .leaflet-tile-pane { filter: saturate(.72) sepia(.08) brightness(1.04); }

.map-fallback { padding: 30px; color: var(--muted); }
.map-panel { display: flex; flex-direction: column; padding: 24px; border-left: 1px solid #dcebef; background: #f8fcfd; }
.map-panel-heading { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.map-panel-heading strong { font: 20px Georgia, serif; }
.map-panel-heading span { color: #11867d; font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.map-day-list { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }

.map-day-button {
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 8px;
  min-height: 47px;
  padding: 8px 9px;
  border: 1px solid #d8e8eb;
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}

.map-day-button span { color: #087d78; font: 20px Georgia, serif; }
.map-day-button strong { font-size: 10px; line-height: 1.25; }
.map-day-button:hover { border-color: #51bdad; background: #effaf7; }
.map-day-button.active { border-color: #078879; background: #0b8d80; color: #fff; box-shadow: 0 7px 18px rgba(8, 125, 120, .18); }
.map-day-button.active span { color: #fff; }
.map-day-button.birthday:not(.active) { background: #fff8e8; }
.map-overview { margin-top: auto; padding: 12px; border: 0; border-radius: 9px; background: #073e50; color: #fff; font-size: 13px; font-weight: 700; }
.map-overview:hover { background: #0b596c; }

.trip-map-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 12px;
  background: #073e50;
  color: #fff;
  box-shadow: 0 5px 14px rgba(3, 49, 62, .28);
  transform: rotate(-45deg);
}

.trip-map-marker span { font-size: 19px; line-height: 1; transform: rotate(45deg) translate(4px, -1px); }
.trip-map-marker small { margin-top: -2px; color: #fff; font-size: 8px; font-weight: 900; letter-spacing: .04em; transform: rotate(45deg) translate(2px, -1px); }
.trip-map-marker.active { width: 58px; height: 58px; background: #12a992; box-shadow: 0 0 0 8px rgba(18, 169, 146, .2), 0 7px 17px rgba(3, 49, 62, .3); }
.trip-map-marker.active span { font-size: 23px; }

.trip-plane {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #ffd66b;
  color: #073e50;
  font-size: 27px;
  line-height: 1;
  box-shadow: 0 7px 18px rgba(6, 49, 62, .25);
  transform: rotate(12deg);
  animation: plane-bob 2.3s ease-in-out infinite;
}

@keyframes plane-bob {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -6px; }
}
.leaflet-popup-content-wrapper { border-radius: 12px; }
.leaflet-popup-content { margin: 15px 17px; font: 13px/1.45 Arial, sans-serif; }
.leaflet-popup-content strong { display: block; color: #063e4f; font: 21px Georgia, serif; }
.leaflet-popup-content span { color: #55727b; }
.leaflet-control-attribution { font-size: 10px; }

@media (max-width: 850px) {
  .map-shell { grid-template-columns: 1fr; }
  #trip-map { min-height: 440px; }
  .map-panel { border-top: 1px solid #dcebef; border-left: 0; }
  .map-day-list { grid-template-columns: repeat(4, 1fr); }
  .map-overview { margin-top: 18px; }
}

@media (max-width: 680px) {
  .trip-map { padding-top: 0; padding-bottom: 48px; }
  .map-heading { display: block; margin-bottom: 21px; }
  .map-heading > p { margin-top: 14px; }
  .map-shell { margin: 0; border-radius: 14px; }
  #trip-map { min-height: 380px; }
  .map-panel { padding: 18px; }
  .map-day-list { grid-template-columns: 1fr 1fr; }
}

@media print {
  .map-panel { display: none; }
  .map-shell { display: block; min-height: 360px; }
  #trip-map { min-height: 360px; }
}

@media (prefers-reduced-motion: reduce) {
  .trip-plane { animation: none; }
}

/* Navegação entre roteiros */
.trip-switcher{position:relative;margin-left:auto}
.trip-switcher summary{list-style:none;cursor:pointer;border:1px solid #ffffff52;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;white-space:nowrap}
.trip-switcher summary::-webkit-details-marker{display:none}
.trip-switcher summary:after{content:'⌄';margin-left:7px;color:#62e1cc}
.trip-switcher[open] summary,.trip-switcher summary:hover{background:#fff;color:var(--navy)}
.trip-switcher-menu{position:absolute;right:0;top:calc(100% + 12px);width:270px;padding:8px;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 20px 55px #00171f42;border:1px solid var(--line)}
.trip-switcher-menu a{display:grid;grid-template-columns:34px 1fr;gap:1px 10px;padding:11px 12px;border-radius:10px;text-decoration:none}
.trip-switcher-menu a:hover{background:#eef9f7}
.trip-switcher-menu a.current{background:#e5f7f3}
.trip-switcher-menu a span{grid-row:1/3;font-size:22px;align-self:center}
.trip-switcher-menu a strong{font-size:13px}
.trip-switcher-menu a small{font-size:10px;color:var(--muted)}
@media(max-width:1000px){.trip-switcher{order:2}.trip-switcher summary{font-size:12px;padding:7px 10px}}
@media(max-width:680px){.trip-switcher{margin-left:0}.trip-switcher-menu{left:0;right:auto}.trip-switcher summary{padding:5px 9px;font-size:11px}}
