/* Consistent, comfortable type and control sizing. */
.button,
.nav-book,
.main-nav .nav-book {
  position: relative;
  justify-content: center;
  text-align: center;
  min-height: 50px;
  padding: 13px 21px;
  border-radius: 999px;
  font-size: 14px !important;
  font-weight: 400;
  line-height: 1.25;
}

.button {
  min-width: 210px;
  height: 50px;
  gap: 0;
  font-weight: 400 !important;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
}
.button-dark,
.button-light {
  min-height: 50px;
  height: 50px;
  border-radius: 999px;
}
.nav-book { font-weight: 400 !important; }
.button-label {
  display: block;
  width: 100%;
  text-align: center;
  font-size: inherit !important;
}
.button-arrow {
  position: absolute;
  right: 19px;
  margin: 0 !important;
}
.button > .airbnb-icon,
.button > .wa-icon {
  position: absolute;
  left: 18px;
}
.nav-book .button-label { width: auto; padding-left: 0; }
.nav-book .button-arrow { right: 15px; padding-left: 0; }
.destination-actions .button,
.batam-copy .button,
.contact-info .button { min-width: 210px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
}
.action-link {
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 0 5px !important;
  border: 0 !important;
  border-bottom: 1px solid #aab6ba !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #334d60 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.4;
  justify-content: flex-start;
  text-align: left;
  gap: 6px;
}
.airbnb-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.wa-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.button:has(.airbnb-icon) { justify-content: center; }
.hero-copy { font-size: 15px; }
.hero-places a { font-size: 13px; }
.hero-places a span { font-size: 10px; }
.eyebrow { font-size: 10px; }
.heading-note { font-size: 13px; }
.mood-index,
.mood-text small,
.image-label { font-size: 10px; }
.destination-lead,
.story-copy > p:not(.eyebrow),
.batam-copy > p:not(.eyebrow),
.trust-inner > p:not(.eyebrow) { font-size: 14px; }
.feature-list { font-size: 12px; }
.quick-facts span,
.batam-facts span,
.honest-note,
.batam-copy small,
.trust-stats span { font-size: 11px; }
.footer-links { font-size: 12px; }
.copyright { font-size: 9px; }

.contact {
  display: grid;
  grid-template-columns: 1fr .8fr;
  align-items: center;
  gap: 12%;
  padding: 78px 10%;
  background: #e8ecec;
}
.contact-copy { max-width: 480px; }
.contact-copy h2 {
  margin: 20px 0;
  font: 500 clamp(38px, 4.2vw, 56px)/1.08 var(--display);
  letter-spacing: -.035em;
}
.contact-copy > p:last-child {
  max-width: 400px;
  margin: 0;
  color: #59656a;
  font-size: 14px;
  line-height: 1.8;
}
.contact-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  color: #334d60;
  font-size: 14px;
}
.contact-info .button { margin-bottom: 5px; }
.contact-info > a:not(.button) { border-bottom: 1px solid #aab6ba; padding-bottom: 4px; }
.trust-side { aspect-ratio: 4 / 3; }
.trust-side img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

@media (max-width: 900px) {
  .feature-list { font-size: 12px; }
}

@media (max-width: 650px) {
  .contact {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 62px 23px;
  }
  .contact-copy h2 { font-size: 43px; }
  .contact-info { gap: 14px; font-size: 13px; }
  .trust-side { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
  .button,
  .destination-actions .button {
    min-width: 210px;
    min-height: 50px;
    padding: 13px 19px;
    font-size: 13px !important;
  }

  .eyebrow { font-size: 9px; }
  .hero-copy,
  .destination-lead,
  .story-copy > p:not(.eyebrow),
  .batam-copy > p:not(.eyebrow),
  .trust-inner > p:not(.eyebrow) { font-size: 14px; }
  .feature-list { font-size: 12px; }
  .honest-note,
  .batam-copy small,
  .trust-stats span { font-size: 10px; }
  .text-link { font-size: 12px; }
}

/* Subheadings: remove the short rule before the label and improve legibility. */
.eyebrow { font-size: 11px; }
.eyebrow span { display: inline-block; width: 8px; height: 1px; flex: 0 0 8px; }
.main-nav { font-size: 14px; }
@media (max-width: 650px) {
  .eyebrow { font-size: 10px; }
}

/* Slightly larger supporting descriptions across the home page. */
.destination-lead,.batam-copy>p:not(.eyebrow),.story-copy>p:not(.eyebrow),.trust-inner>p:not(.eyebrow),.contact-copy>p:last-child{font-size:15px;line-height:1.8}
.heading-note{font-size:14px}
@media(max-width:650px){.destination-lead,.batam-copy>p:not(.eyebrow),.story-copy>p:not(.eyebrow),.trust-inner>p:not(.eyebrow),.contact-copy>p:last-child{font-size:15px}}

/* Another 2px for descriptive copy. */
.destination-lead,.batam-copy>p:not(.eyebrow),.story-copy>p:not(.eyebrow),.trust-inner>p:not(.eyebrow),.contact-copy>p:last-child{font-size:17px;line-height:1.8}
.heading-note{font-size:16px}
.location-note .honest-note{font-size:13px}
.location-note small,.batam-copy small{font-size:12px}
@media(max-width:650px){.destination-lead,.batam-copy>p:not(.eyebrow),.story-copy>p:not(.eyebrow),.trust-inner>p:not(.eyebrow),.contact-copy>p:last-child{font-size:17px}}

/* Match supporting copy throughout the three home location sections. */
.destination-copy .quick-facts span,.batam-copy .batam-facts span{font-size:14px}
.destination-copy .quick-facts b{font-size:21px}
.batam-copy .batam-facts b{font-size:20px}
.batam-copy .batam-facts{display:flex;gap:0;margin:27px 0 26px;padding:17px 0;border-top:1px solid rgba(245,243,238,.28);border-bottom:1px solid rgba(245,243,238,.28)}
.batam-copy .batam-facts span{min-width:0;padding:0 15px;border-left:1px solid rgba(245,243,238,.2)}
.batam-copy .batam-facts span:first-child{padding-left:0;border-left:0}
@media(max-width:650px){.batam-copy .batam-facts span{padding-right:12px;padding-left:12px}.batam-copy .batam-facts span:first-child{padding-left:0}}
.destination-copy .feature-list{font-size:15px;line-height:1.6;gap:14px 18px}
.destination-bali .feature-list{grid-template-columns:minmax(0,1fr);gap:10px}
.destination-copy .honest-note,.location-note small,.batam-copy small{font-size:15px;line-height:1.6}
.destination-actions .text-link,.location-note .text-link,.batam-copy .text-link{font-size:14px;line-height:1.4}
.destination-copy .quick-facts span{white-space:normal}
@media(max-width:650px){.destination-copy .quick-facts b{font-size:19px}}

.contact-social{display:flex;align-items:center;gap:16px;margin-top:7px;color:#334d60;font-size:13px}
.contact-social>a{display:inline-flex;align-items:center;gap:6px;border:0!important;padding:0!important;color:inherit!important}
.social-icon{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-tiktok{fill:currentColor;stroke:none}
@media(max-width:650px){.contact-social{flex-wrap:wrap;gap:12px;font-size:12px}}

.contact-social{font-size:15px}
.contact-social .social-icon{width:20px;height:20px}
@media(max-width:650px){.contact-social{font-size:15px}}

/* Keep the full site comfortable between phone and desktop widths. */
@media (min-width: 651px) and (max-width: 1100px) {
  .site-header { height: 76px; padding: 0 28px; }
  .site-header .brand-logo { width: min(330px, calc(100vw - 120px)); height: auto; max-height: 72px; }
  .menu-toggle { display: flex; flex-direction: column; gap: 5px; padding: 10px; z-index: 4; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span { width: 22px; height: 1px; background: #263b4a; transition: .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .main-nav { display: none; position: fixed; inset: 76px 0 0; padding: 28px; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); z-index: 3; overflow-y: auto; }
  .main-nav.open { display: flex; }
  .main-nav > a { padding: 16px 4px; border-bottom: 1px solid var(--line); font-size: 16px !important; }
  body.menu-open { overflow: hidden; }
  .site-footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 14px 20px; padding: 24px 28px; }
  .site-footer > p { text-align: right; }
  .footer-links { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; flex-wrap: wrap; gap: 16px; margin-left: 0; border-top: 1px solid var(--line); padding-top: 16px; }
  .copyright { grid-column: 1 / -1; grid-row: 3; margin: 0; }
}

@media (min-width: 651px) and (max-width: 900px) {
  .closing { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .closing-map { grid-column: 1; grid-row: 1; width: min(100%, 680px); margin: 0 auto; }
  .closing-copy { grid-column: 1; grid-row: 2; width: min(100%, 680px); margin: 0 auto; }
}

/* Keep contact links and social labels at one text size. */
.contact-info,.contact-info .action-link,.contact-social{font-size:14px}
.contact-info .action-link{font-size:14px!important}
.contact-social .social-icon{width:18px;height:18px}
@media(max-width:650px){.contact-info,.contact-info .action-link,.contact-social{font-size:14px}}


/* Make the destination links under the hero easier to read. */
.hero-places a{font-size:15px}
.hero-places a span{font-size:11px}
@media(max-width:650px){.hero-places a{font-size:14px}.hero-places a span{font-size:10px}}

/* Increase the hero introduction copy while keeping it responsive. */
.hero-copy{font-size:16px}
@media(max-width:650px){.hero-copy{font-size:14px}}

.destination-toba .feature-list{grid-template-columns:minmax(0,1fr);gap:10px}

/* Tablet layout fixes reported from device review. */
@media (min-width: 651px) and (max-width: 1100px) {
  .site-header { backdrop-filter: none; }
  .main-nav { max-height: calc(100dvh - 76px); overflow-y: auto; }
  .destination-toba,
  .destination-bali { align-items: start; }
  .destination-toba .destination-image,
  .destination-bali .destination-image { align-self: start; margin-top: 36px; }
  .trust-side { min-height: 0; height: auto; aspect-ratio: 4 / 3; align-self: center; }
  .trust-side img { object-fit: contain; }
  .site-footer { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 12px; padding: 24px 28px; }
  .site-footer .brand-footer { flex: 0 1 240px; min-width: 0; }
  .site-footer .brand-logo { width: min(240px, 100%); height: auto; max-height: 74px; }
  .site-footer .footer-links { flex: 1 1 auto; width: auto; min-width: 0; justify-content: center; flex-wrap: nowrap; gap: clamp(8px, 1.2vw, 14px); margin: 0; border: 0; padding: 0; white-space: nowrap; }
  .site-footer .copyright { flex: 0 0 auto; margin: 0; white-space: nowrap; }
}
/* Mobile header, menu, and footer spacing. */
@media (max-width: 650px) {
  .site-header { padding-left: 10px; padding-right: 16px; backdrop-filter: none; }
  .site-header .brand-logo { width: min(309px, calc(100vw - 70px)); margin-left: -4px; }
  .main-nav { max-height: calc(100dvh - 66px); overflow-y: auto; overscroll-behavior: contain; }
  body.menu-open { overflow: hidden; }
  .site-footer { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 14px; }
  .site-footer .brand-logo { width: min(289px, calc(100vw - 40px)); height: auto; max-height: 63px; margin-left: -4px; }
  .site-footer .copyright { margin: 0; }
}
.website-credit { font-size: 13.5px; color: var(--muted); white-space: nowrap; }
.website-credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 650px) {
  .site-header .brand { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
  .site-header .brand-logo { width: min(250px, calc(100vw - 140px)); height: auto; max-height: 58px; margin-left: 0; }
  .closing-map { height: 350px; }
  .closing-map img { width: 125%; height: 125%; max-width: none; flex: 0 0 auto; }
  .site-footer { align-items: center; text-align: center; }
  .site-footer .brand-footer { justify-content: center; margin: 0 auto; }
  .site-footer .brand-logo { width: min(289px, calc(100vw - 40px)); height: auto; max-height: 63px; margin-left: 0; }
  .site-footer .website-credit { margin-top: 2px; }
}
.site-footer .copyright { font-size: 12.5px; }

/* Keep the host portrait flush with the trust section at every width. */
@media (min-width: 1101px) {
  .trust-side { min-height: 400px; height: 100%; aspect-ratio: auto; align-self: stretch; }
  .trust-side img { object-fit: cover; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .trust-side { min-height: 0; height: 100%; aspect-ratio: auto; align-self: stretch; }
  .trust-side img { object-fit: cover; }
}
@media (min-width: 651px) and (max-width: 900px) {
  .trust { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .trust-inner { padding-left: 10%; padding-right: 10%; }
  .trust-side { min-height: 0; height: auto; aspect-ratio: 4 / 3; align-self: auto; }
  .trust-side img { object-fit: cover; }
}
/* Use one readable size for destination and detail action links. */
.text-link{font-size:14px}
.batam-copy .text-link{color:#fff;border-color:rgba(255,255,255,.75)}
.batam-copy .text-link:hover{color:#fff}

/* Make action links distinct from nearby descriptive copy. */
.text-link{color:#203b4b;border-color:#526c78;border-bottom-width:1px;font-weight:600}
.text-link:hover{color:#172f3b;border-color:#172f3b}
.batam-copy .text-link,.detail-cta .text-link{color:#fff;border-color:rgba(255,255,255,.85)}
.batam-copy .text-link:hover,.detail-cta .text-link:hover{color:#fff;border-color:#fff}

/* Keep Batam home action links simple and dark against their light surface. */
.batam-copy .location-note-links .text-link{color:#203b4b;background:transparent;border:0;border-bottom:1px solid #526c78;border-radius:0;padding:0 0 5px}
.batam-copy .location-note-links .text-link:hover{color:#172f3b;border-color:#172f3b}




.batam-copy .batam-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:650px){.batam-copy .batam-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}.batam-copy .batam-facts span:nth-child(3){padding-left:0;border-left:0}}

.language-switch{display:flex;align-items:center;gap:7px;margin-left:14px;flex:0 0 auto;z-index:5;color:#64736e;font-size:12px;letter-spacing:.08em;white-space:nowrap}
.language-switch button{padding:6px 2px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.language-switch button[aria-pressed=true]{color:#263b4a;font-weight:700}
.language-switch button:focus-visible{outline:2px solid #526c78;outline-offset:3px;border-radius:2px}
@media(max-width:1100px){.language-switch{margin-left:0}}
@media(max-width:650px){.language-switch{gap:5px;font-size:11px;margin-left:auto;position:relative;z-index:5}}

.main-nav{font-size:15px}
.language-switch{font-size:14px}
@media(min-width:651px) and (max-width:1100px){.main-nav>a{font-size:17px!important}}
@media(max-width:650px){.main-nav>a{font-size:17px!important}.language-switch{font-size:13px}}
