/* Airport Cabo traveler stories: Airport typography with Tripadvisor green accents. */
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof--tripadvisor { padding-block:clamp(48px,6vw,80px); border-block:1px solid #e2d9cf; background:#f6f1e9; }
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof--tripadvisor::after { display:none; }
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof__intro { margin:0; min-width:0; }
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof__intro .ac-eyebrow { color:#006b4f; font-size:16px; font-weight:650; line-height:1.5; letter-spacing:0; text-transform:none; }
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof__intro h2 { margin:12px 0 0; max-width:620px; color:var(--color-navy-950,#0b3047); font-family:var(--ac-serif); font-size:clamp(34px,3.6vw,48px); font-weight:500; line-height:1.2; letter-spacing:-.025em; }
:is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof__intro h2 em { color:#006b4f; font-weight:400; }
.ac-traveler-reviews { --rv-ink:var(--color-navy-950,#0b3047); --rv-muted:#4b5d67; --rv-line:#d9d4cc; --rv-green:#006b4f; overflow:visible; border:0; border-radius:0; background:none; box-shadow:none; }
.ac-traveler-reviews * { box-sizing:border-box; }
.ac-traveler-reviews .ac-story-reviews-widget__bar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px 20px; align-items:center; padding:20px 24px; border:1px solid var(--rv-line); border-radius:10px; background:#f1fcf7; }
.ac-traveler-reviews .ac-story-reviews-widget__identity { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; min-width:0; }
.ac-traveler-reviews .ac-story-reviews-widget__identity > span { color:var(--rv-muted); font-size:15px; line-height:1.5; }
.ac-traveler-reviews .ac-story-reviews-widget__logo { display:block; width:156px; max-width:100%; height:auto; }
.ac-traveler-reviews .ac-story-reviews-widget__summary { display:flex; align-items:center; gap:12px; padding:0 0 0 20px; border:0; border-left:1px solid var(--rv-line); }
.ac-traveler-reviews .ac-story-reviews-widget__summary > strong { color:var(--rv-ink); font-size:36px; line-height:1; letter-spacing:-.04em; }
.ac-traveler-reviews .ac-story-reviews-widget__summary > span { display:grid; gap:4px; }
.ac-traveler-reviews .ac-story-reviews-widget__summary small { color:var(--rv-muted); font-size:15px; line-height:1.5; white-space:nowrap; }
.ac-traveler-reviews .ac-story-reviews-widget__stars { color:#00864f; font-size:20px; line-height:1.2; letter-spacing:2px; }
.ac-traveler-reviews .ac-story-reviews-widget__write { grid-column:1 / -1; justify-self:end; display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:12px; padding:8px 0; border:0; border-radius:0; background:none; color:var(--rv-green); font-size:16px; font-weight:650; line-height:1.5; text-decoration:underline; text-underline-offset:4px; }
.ac-traveler-reviews .ac-story-reviews-widget__viewport { position:relative; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-behavior:smooth; scroll-snap-type:x proximity; scroll-padding-inline:24px; scrollbar-width:none; cursor:grab; touch-action:auto; -webkit-overflow-scrolling:touch; }
.ac-traveler-reviews .ac-story-reviews-widget__viewport::-webkit-scrollbar { display:none; }
.ac-traveler-reviews .ac-story-reviews-widget__viewport.is-dragging { cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; user-select:none; }
.ac-traveler-reviews .ac-story-reviews-widget__track { position:relative; display:flex; align-items:stretch; gap:18px; padding:12px 24px 24px; }
.ac-traveler-reviews .ac-story-review-card { position:relative; display:grid; flex:0 0 calc((100% - 36px) / 3); grid-template-rows:56px 24px 62px 168px 72px; row-gap:12px; height:480px; min-width:0; margin:0; padding:24px; overflow:hidden; border:1px solid var(--rv-line); border-radius:8px; background:#fff; box-shadow:none; scroll-snap-align:start; scroll-snap-stop:normal; }
.ac-traveler-reviews .ac-story-review-card[hidden] { display:none; }
.ac-traveler-reviews .ac-story-review-card__head { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; align-items:center; min-width:0; }
.ac-traveler-reviews .ac-story-review-card__avatar { display:grid; place-items:center; width:48px; height:48px; overflow:hidden; color:var(--rv-ink); border:1px solid var(--rv-line); border-radius:50%; background:#eee7dd; box-shadow:none; font-size:20px; font-weight:700; }
.ac-traveler-reviews .ac-story-review-card__avatar img { width:100%; height:100%; object-fit:cover; }
.ac-traveler-reviews .ac-story-review-card__author { min-width:0; }
.ac-traveler-reviews .ac-story-review-card__author strong,.ac-traveler-reviews .ac-story-review-card__author small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ac-traveler-reviews .ac-story-review-card__author strong { color:var(--rv-ink); font-size:17px; line-height:1.5; }
.ac-traveler-reviews .ac-story-review-card__author small { margin-top:3px; color:var(--rv-muted); font-size:15px; line-height:1.5; }
.ac-traveler-reviews .ac-story-review-card__stars { color:var(--rv-green); font-size:20px; line-height:24px; letter-spacing:2px; }
.ac-traveler-reviews .ac-story-review-card h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; height:62px; min-height:0; overflow:hidden; margin:0; color:var(--rv-ink); font-family:var(--ac-serif); font-size:26px; font-weight:500; line-height:31px; letter-spacing:-.015em; overflow-wrap:anywhere; }
.ac-traveler-reviews .ac-story-review-card > .ac-story-review-card__quote { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6; height:168px; min-height:0; overflow:hidden; margin:0; color:var(--rv-muted); font-size:17px; line-height:28px; overflow-wrap:anywhere; }
.ac-traveler-reviews .ac-story-review-card__date { display:flex; min-width:0; flex-direction:column; align-items:flex-start; justify-content:flex-end; border-top:1px solid var(--rv-line); }
.ac-traveler-reviews .ac-story-review-card__date > span { display:block; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:var(--rv-muted); font-size:14px; line-height:21px; }
.ac-traveler-reviews .ac-story-review-card__more { display:inline-flex; min-height:48px; align-items:center; gap:8px; padding:4px 0; color:var(--rv-green); font-size:16px; font-weight:650; line-height:1.5; text-decoration:underline; text-underline-offset:4px; }
.ac-traveler-reviews .ac-story-review-card__more:hover { color:var(--rv-ink); }
.ac-traveler-reviews .ac-story-reviews-widget__nav { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px 28px; align-items:center; padding:0 24px 24px; }
.ac-traveler-reviews .ac-story-reviews-widget__position { display:grid; gap:8px; }
.ac-traveler-reviews [data-reviews-position] { min-height:24px; color:var(--rv-muted); font-size:15px; line-height:24px; font-variant-numeric:tabular-nums; }
.ac-traveler-reviews .ac-story-reviews-widget__progress { height:3px; overflow:hidden; border-radius:0; background:#ded8cf; }
.ac-traveler-reviews .ac-story-reviews-widget__progress span { display:block; width:100%; height:100%; background:var(--rv-green); transform:scaleX(.04); transform-origin:left; transition:transform .18s ease; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows { display:flex; gap:10px; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows button { display:inline-flex; min-width:122px; min-height:50px; align-items:center; justify-content:center; gap:10px; padding:10px 18px; color:var(--rv-ink); border:1px solid #9babb0; border-radius:8px; background:#fff; font-size:16px; font-weight:650; line-height:1.5; cursor:pointer; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows b { font:inherit; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows button > span { font-size:22px; line-height:1; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows button:hover:not(:disabled) { border-color:var(--rv-ink); background:#e7f8ef; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows button:disabled { opacity:.4; cursor:default; }
.ac-traveler-reviews :is(a,button):focus-visible { outline:3px solid #006b4f; outline-offset:3px; }
.ac-traveler-reviews .ac-story-reviews-widget__viewport:focus-visible { outline:3px solid #006b4f; outline-offset:-3px; }
@media(max-width:1179px) {
  .ac-traveler-reviews .ac-story-review-card { flex-basis:calc((100% - 18px) / 2); }
  .ac-traveler-reviews .ac-story-review-card__head { grid-template-columns:48px minmax(0,1fr); }
  .ac-traveler-reviews .ac-story-reviews-widget__identity > span { display:none; }
}
@media(max-width:899px) {
  .ac-traveler-reviews .ac-story-reviews-widget__bar { grid-template-columns:minmax(0,1fr) auto; }
  .ac-traveler-reviews .ac-story-reviews-widget__summary { padding-right:0; border-right:0; }
  .ac-traveler-reviews .ac-story-reviews-widget__write { display:none; }
}
@media(max-width:719px) {
  :is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof--tripadvisor .ac-shell { padding-inline:12px; }
  :is(body.ac-editorial-home, body.page-airport-route) .ac-home-proof__intro h2 em { display:block; }
  .ac-traveler-reviews .ac-story-reviews-widget__bar { grid-template-columns:minmax(0,1fr); padding:20px; gap:18px; }
  .ac-traveler-reviews .ac-story-reviews-widget__identity > span { display:inline; }
  .ac-traveler-reviews .ac-story-reviews-widget__summary { padding:16px 0 0; border:0; border-top:1px solid var(--rv-line); }
  .ac-traveler-reviews .ac-story-reviews-widget__viewport { scroll-snap-type:x mandatory; scroll-padding-inline:18px; cursor:auto; }
  .ac-traveler-reviews .ac-story-reviews-widget__track { gap:12px; padding:20px 18px; }
  .ac-traveler-reviews .ac-story-review-card { flex-basis:calc(100% - 12px); padding:24px 20px; scroll-snap-stop:always; }
  .ac-traveler-reviews .ac-story-reviews-widget__nav { grid-template-columns:minmax(0,1fr) auto; gap:16px; padding:0 18px 20px; }
  .ac-traveler-reviews .ac-story-reviews-widget__arrows { gap:8px; }
  .ac-traveler-reviews .ac-story-reviews-widget__arrows button { min-width:50px; width:50px; height:50px; padding:0; }
  .ac-traveler-reviews .ac-story-reviews-widget__arrows b { display:none; }
}
@media(max-width:390px) {
  .ac-traveler-reviews .ac-story-review-card { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) {
  .ac-traveler-reviews .ac-story-reviews-widget__viewport { scroll-behavior:auto; }
  .ac-traveler-reviews .ac-story-reviews-widget__progress span { transition:none; }
}

.ac-traveler-reviews .ac-reviews-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; margin:0 24px 26px; }
.ac-traveler-reviews .ac-story-review-card::before { content:""; position:absolute; top:0; left:24px; right:24px; height:3px; background:#34e0a1; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows [data-review-next] { background:#34e0a1; border-color:#34e0a1; color:#002b1d; }
.ac-traveler-reviews .ac-story-reviews-widget__arrows [data-review-next]:hover:not(:disabled) { background:#25ce90; }
@media(max-width:1100px) {
  .ac-traveler-reviews .ac-reviews-heading { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ac-traveler-reviews .ac-story-reviews-widget__bar { grid-template-columns:minmax(0,1fr) auto auto; }
  .ac-traveler-reviews .ac-story-reviews-widget__write { display:inline-flex; grid-column:auto; padding-left:12px; }
}
@media(max-width:719px) {
  .ac-traveler-reviews .ac-reviews-heading { margin:0 18px 16px; gap:22px; }
  .ac-traveler-reviews .ac-story-reviews-widget__bar { grid-template-columns:minmax(0,1fr); padding:20px; gap:14px; }
  .ac-traveler-reviews .ac-story-reviews-widget__summary { padding:14px 0 0; border:0; border-top:1px solid var(--rv-line); }
  .ac-traveler-reviews .ac-story-reviews-widget__write { display:none; }
  .ac-traveler-reviews .ac-story-review-card::before { left:20px; right:20px; }
}

/* Tripadvisor uses rating bubbles; preserve the existing fixed rating rows. */
.ac-traveler-reviews :is(.ac-story-reviews-widget__stars,.ac-story-review-card__stars) { display:inline-flex; align-items:center; gap:4px; height:24px; color:#00864f; letter-spacing:0; }
.ac-traveler-reviews :is(.ac-story-reviews-widget__stars,.ac-story-review-card__stars) > span { display:block; flex:0 0 17px; width:17px; height:17px; border:2px solid currentColor; border-radius:50%; padding:2px; background:currentColor; background-clip:content-box; }
