/* Rockies Pacific Travel – booking add-on (panel, WhatsApp, reviews) */
.rpt, .rpt * { box-sizing: border-box; }
:root, .rpt { --navy:#0b1b2b; --navy7:#1a3349; --navy5:#3a5f7d; --gold:#c9a227; --gold4:#dcb63f; --bone:#fbf9f6; --bone2:#e9e2d6; --line:#e3ddd2; --red:#b42318;
  font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif; color: var(--navy); }

/* ---------- search panel ---------- */
.rpt-panel { background:#fff; border-radius:22px; box-shadow:0 30px 60px -30px rgba(6,15,25,.55), 0 2px 0 rgba(255,255,255,.6) inset; padding:18px 18px 16px; width:100%; }
.rpt-panel-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.rpt .rpt-title { font-family: Fraunces, Georgia, serif; font-size:20px; margin:0; color:var(--navy); }
.rpt-seg { display:inline-flex; background:#f2eee6; border-radius:999px; padding:4px; }
.rpt-seg button { border:0; background:transparent; font:600 12px/1 Inter, sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--navy5); padding:10px 16px; border-radius:999px; cursor:pointer; min-height:36px; }
.rpt-seg button[aria-pressed="true"] { background:var(--navy); color:#fff; }
.rpt-row { display:grid; grid-template-columns: 1.7fr auto 1.4fr 1fr 1fr auto; gap:0; align-items:stretch; border:1px solid var(--line); border-radius:16px; }
.rpt-cell { position:relative; padding:10px 14px; border-right:1px solid var(--line); min-width:0; }
.rpt-cell:last-child { border-right:0; }
.rpt-cell label { display:block; font:600 10.5px/1 Inter, sans-serif; letter-spacing:.14em; text-transform:uppercase; color:var(--navy5); margin-bottom:6px; }
.rpt-cell input, .rpt-cell select { width:100%; border:0; outline:0; background:transparent; font:500 15.5px/1.3 Inter, sans-serif; color:var(--navy); padding:2px 0; min-height:26px; }
.rpt-cell input::placeholder { color:#9aa6b2; font-weight:400; }
.rpt-cell:focus-within { background:#faf7f0; border-radius:12px; }
.rpt-cell.is-off { opacity:.45; }
.rpt-cell.is-off input { cursor:not-allowed; }
.rpt-swap { display:grid; place-items:center; padding:0 2px; border-right:1px solid var(--line); }
.rpt-swap button { width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--navy); cursor:pointer; display:grid; place-items:center; transition:transform .25s; }
.rpt-swap button:hover { transform:rotate(180deg); border-color:var(--gold); }
.rpt-go { padding:8px; display:flex; }
.rpt-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:12px; cursor:pointer; text-decoration:none;
  background:linear-gradient(135deg,var(--gold4),var(--gold)); color:#060f19; font:700 13px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; padding:0 26px; min-height:52px; white-space:nowrap; box-shadow:0 10px 24px -12px rgba(201,162,39,.85); }
.rpt-btn:hover { filter:brightness(1.05); }
.rpt-btn[disabled] { opacity:.6; cursor:wait; }
.rpt-btn.ghost { background:#fff; border:1px solid var(--line); box-shadow:none; color:var(--navy); }
.rpt-btn.navy { background:var(--navy); color:#fff; box-shadow:none; }
.rpt-go .rpt-btn { width:100%; }
.rpt .rpt-foot { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; margin-top:12px; font-size:13px; color:var(--navy5); min-height:20px; }
.rpt-fare strong { color:var(--navy); font-size:15px; }
.rpt-fare a { color:var(--navy); font-weight:600; }
.rpt-err { color:var(--red); font-size:13px; }

/* combobox */
.rpt-list { position:absolute; z-index:60; left:-1px; right:-1px; top:calc(100% + 6px); background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 48px -20px rgba(6,15,25,.45); max-height:300px; overflow:auto; padding:6px; margin:0; list-style:none; min-width:260px; }
.rpt-list li { padding:10px 12px; border-radius:10px; cursor:pointer; font-size:14.5px; display:flex; justify-content:space-between; gap:10px; }
.rpt-list li small { color:var(--navy5); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.rpt-list li[aria-selected="true"], .rpt-list li:hover { background:#f4efe4; }
.rpt-list li[aria-disabled="true"] { opacity:.4; cursor:not-allowed; background:none; }
.rpt-list .rpt-none { color:var(--navy5); cursor:default; }

/* homepage placement */
.rpt-hero { overflow:visible !important; z-index:10; }
.rpt-hero-bg { overflow:hidden; }
.rpt-hero-shell { padding-top:112px !important; padding-bottom:56px !important; row-gap:28px !important; }
.rpt-home-wrap { position:relative; z-index:20; grid-column:1 / -1; width:100%; }
.rpt-hide { display:none !important; }

/* ---------- mobile ---------- */
@media (max-width: 1023px) {
  .rpt-row { grid-template-columns: 1fr 1fr; border:0; gap:10px; }
  .rpt-cell { border:1px solid var(--line) !important; border-radius:14px; }
  .rpt-cell.from, .rpt-cell.to { grid-column: span 2; }
  .rpt-swap { position:absolute; right:22px; margin-top:58px; border:0; z-index:5; }
  .rpt-row { position:relative; }
  .rpt-swap button { transform:rotate(90deg); background:#fff; }
  .rpt-go { grid-column: span 2; padding:0; }
  .rpt-hero-shell { padding-top:96px !important; padding-bottom:40px !important; }
  .rpt-cell input { font-size:16px; }
}
@media (max-width: 380px) { .rpt-row { grid-template-columns: 1fr; } .rpt-cell.from, .rpt-cell.to, .rpt-go { grid-column:auto; } }

/* ---------- WhatsApp ---------- */
.rpt-wa { position:fixed; right:18px; bottom:18px; z-index:9999; display:flex; align-items:center; gap:10px; text-decoration:none; }
.rpt-wa-btn { width:58px; height:58px; border-radius:50%; background:#25d366; display:grid; place-items:center; box-shadow:0 12px 28px -10px rgba(0,0,0,.45); transition:transform .2s; }
.rpt-wa:hover .rpt-wa-btn { transform:scale(1.06); }
.rpt-wa-tip { background:#fff; color:#0b1b2b; font:600 13px/1.2 Inter,sans-serif; padding:9px 13px; border-radius:999px; box-shadow:0 10px 24px -14px rgba(0,0,0,.5); }
@media (max-width:1279px){ .rpt-wa{bottom:92px} }
@media (max-width:640px){ .rpt-wa-tip{display:none} .rpt-wa{right:12px} .rpt-wa-btn{width:52px;height:52px} .rpt-wa-btn svg{width:26px;height:26px} }

/* ---------- reviews ---------- */
.rpt-reviews { padding:88px 20px; background:#fff; }
.rpt-reviews-in { max-width:1360px; margin:0 auto; display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; }
.rpt-eyebrow { font:600 11px/1 Inter,sans-serif; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin:0 0 14px; }
.rpt-reviews h2 { font-family:Fraunces,Georgia,serif; font-weight:400; font-size:clamp(30px,4vw,46px); line-height:1.08; margin:0; }
.rpt-reviews p.lead { color:#475569; font-size:17px; line-height:1.6; margin:16px 0 0; max-width:520px; }
.rpt-gcard { border:1px solid var(--line); border-radius:22px; padding:28px; background:var(--bone); }
.rpt-gcard .g { display:flex; align-items:center; gap:12px; font-weight:600; font-size:16px; }
.rpt-gcard .acts { display:grid; gap:10px; margin-top:22px; }
.rpt-gcard .acts .rpt-btn { width:100%; }
.rpt-gcard small { display:block; margin-top:14px; color:var(--navy5); font-size:12.5px; line-height:1.5; }
@media (max-width:900px){ .rpt-reviews-in{grid-template-columns:1fr} .rpt-reviews{padding:48px 16px !important} }

/* ---------- fare chart (price-list style, 3 vehicles) ---------- */
.rpt-fares { padding:110px 24px; background:#fbf9f6; }
.rpt-fares-in { max-width:1360px; margin:0 auto; }
.rpt-fhead { display:grid; grid-template-columns:1.1fr 1fr; gap:24px 64px; align-items:end; margin-bottom:40px; }
.rpt-fares h2 { font-family:Fraunces,Georgia,serif; font-weight:400; font-size:clamp(30px,4.2vw,52px); line-height:1.04; letter-spacing:-.015em; margin:0; }
.rpt-fares p.lead { color:#55636f; font-size:16px; line-height:1.7; margin:0; }
.rpt-fgroup + .rpt-fgroup { margin-top:40px; }
.rpt-flist { display:block; }
.rpt-fhrow, .rpt-frow { display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); align-items:center; column-gap:16px; }
.rpt-fhrow { padding:0 0 12px; border-bottom:1px solid var(--navy); font:600 11px/1.3 Inter,sans-serif; letter-spacing:.18em; text-transform:uppercase; color:var(--navy5); }
.rpt-fhrow span:not(:first-child) { text-align:right; }
.rpt-fhrow em { display:block; font-style:normal; letter-spacing:.04em; text-transform:none; font-weight:500; color:#8a96a1; margin-top:3px; }
.rpt-frow { border-bottom:1px solid #e6dfd2; }
.rpt-froute { padding:17px 0; font-size:15.5px; color:var(--navy); text-decoration:none; transition:color .25s; }
.rpt-froute:hover { color:var(--gold); }
.rpt-farr { color:var(--gold); padding:0 2px; }
.rpt-fprice { text-align:right; padding:14px 0; text-decoration:none; color:var(--navy); font-family:Fraunces,Georgia,serif; font-size:21px; letter-spacing:-.01em; white-space:nowrap; transition:color .25s; }
.rpt-fprice small { display:none; }
.rpt-fprice:hover { color:var(--gold); }
.rpt-fprice.q span { font-family:Inter,sans-serif; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--navy5); }
.rpt-fmore { margin-top:26px; background:none; border:0; border-bottom:1px solid var(--navy); padding:4px 0; font:600 12px Inter,sans-serif; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); cursor:pointer; }
.rpt-fmore:hover { color:var(--gold); border-color:var(--gold); }
.rpt-fares-cta { display:flex; flex-wrap:wrap; gap:12px; margin-top:44px; }
@media (max-width:860px){
  .rpt-fhead{grid-template-columns:1fr; margin-bottom:24px}
  .rpt-fares{padding:48px 16px}
  .rpt-fhrow span:not(:first-child){display:none}
  .rpt-frow{grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:8px; padding:14px 0; align-items:stretch}
  .rpt-fhrow{grid-template-columns:1fr}
  .rpt-fhrow span:first-child{letter-spacing:.14em}
  .rpt-froute{grid-column:1/-1; padding:0 0 8px; font-size:16px; font-weight:500}
  .rpt-fprice{text-align:left; padding:8px 10px; border:1px solid #e6dfd2; border-radius:10px; background:#fff; font-size:18px}
  .rpt-fprice small{display:block; font:500 10.5px/1.2 Inter,sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--navy5); margin-bottom:3px; white-space:normal}
  .rpt-fprice.q span{font-size:12px}
}
.rpt-guides { margin:28px 0 0; font-size:13.5px; line-height:2; color:var(--navy5); letter-spacing:.01em; }
.rpt-guides a { color:var(--navy); text-decoration:none; } .rpt-guides a:hover { text-decoration:underline; }

/* customer accounts are not used: hide Sign in / My bookings links */
a[href^="/login"], a[href^="/signup"], a[href^="/account"], a[href^="/agent"] { display:none !important; }

/* ---------- luxury polish layer (applies to the whole site) ---------- */
html.rpt-polish { scroll-behavior:smooth; }
.rpt-polish body { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
.rpt-polish ::selection { background:#e8cd74; color:#060f19; }
/* headings: tighter, more editorial */
.rpt-polish h1, .rpt-polish h2 { letter-spacing:-.018em; }
.rpt-polish h3 { letter-spacing:-.005em; }
/* eyebrows get a fine gold rule */
.rpt-polish .eyebrow::before, .rpt .rpt-eyebrow::before { content:""; display:inline-block; vertical-align:middle; width:30px; height:1px; margin:0 14px 2px 0; background:currentColor; opacity:.7; }
/* buttons: quieter glow, crisp hover */
.rpt-polish .btn, .rpt-btn { transition:transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s, background-color .25s, color .25s, border-color .25s, filter .25s; }
.rpt-polish .btn-gold, .rpt-btn:not(.ghost):not(.navy) { box-shadow:0 10px 24px -18px rgba(201,162,39,.9); }
.rpt-polish .btn:hover, .rpt-btn:hover { transform:translateY(-1px); }
.rpt-polish .btn-gold:hover, .rpt-btn:not(.ghost):not(.navy):hover { box-shadow:0 16px 30px -18px rgba(201,162,39,.95); filter:brightness(1.04); }
.rpt-polish .btn:focus-visible, .rpt-btn:focus-visible, .rpt-polish a:focus-visible { outline:2px solid #dcb63f; outline-offset:3px; }
/* imagery: slow, subtle zoom on hover */
.rpt-polish .media img, .rpt-polish article img, .rpt-polish a img { transition:transform 1.4s cubic-bezier(.2,.8,.3,1), filter .6s; }
.rpt-polish a:hover img, .rpt-polish article:hover img, .rpt-polish .media:hover img { transform:scale(1.035); }
/* cards: softer edges and shadows */
.rpt-polish .card { box-shadow:0 1px 0 rgba(11,27,43,.03), 0 24px 48px -36px rgba(11,27,43,.28); border-color:#ebe5da; transition:box-shadow .35s, transform .35s; }
.rpt-polish a.card:hover, .rpt-polish article.card:hover { transform:translateY(-3px); box-shadow:0 1px 0 rgba(11,27,43,.03), 0 30px 60px -34px rgba(11,27,43,.38); }
/* body copy: comfortable measure and colour */
.rpt-polish main p { text-wrap:pretty; }
.rpt-polish .section { padding-top:clamp(52px,7vw,104px); padding-bottom:clamp(52px,7vw,104px); }
/* reviews block refinement */
.rpt-reviews { padding:120px 20px; }
.rpt-gcard { background:#fff; box-shadow:0 30px 60px -40px rgba(11,27,43,.35); }
.rpt-reviews h2 { letter-spacing:-.015em; }
@media (prefers-reduced-motion: reduce) { html.rpt-polish { scroll-behavior:auto; } .rpt-polish *, .rpt * { transition:none !important; animation:none !important; } }
.rpt-polish .media { position:relative; }
.rpt-polish .media > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (min-width:768px){ .rpt-2col { grid-template-columns:repeat(2,minmax(0,1fr)) !important; max-width:820px; } }

/* wider content on large screens (less empty side space) */
.rpt-polish .shell { max-width:1440px !important; }
@media (min-width:1280px){ .rpt-polish .shell { padding-inline:48px !important; } }
@media (max-width:640px){ .rpt-polish .shell { padding-inline:18px !important; } }

/* mobile comfort */
html.rpt-polish, .rpt-polish body { overflow-x:clip; }
@media (max-width:640px){
  .rpt-wa { bottom:96px; }
  .rpt-wa-btn { width:48px; height:48px; }
  .rpt-wa-btn svg { width:24px; height:24px; }
  .rpt-panel { padding:16px 14px 14px; border-radius:18px; }
  .rpt-title { font-size:18px; }
  .rpt-polish h1 { letter-spacing:-.01em; }
}
.rpt-addr { min-width:0; left:0; right:0; top:calc(100% + 4px); }
.rpt-addr li span { white-space:normal; }

/* tighter vertical rhythm on phones */
@media (max-width:640px){
  .rpt-polish .section { padding-top:44px !important; padding-bottom:44px !important; }
  .rpt-polish section.py-20, .rpt-polish section[class*="py-20"] { padding-top:52px !important; padding-bottom:52px !important; }
  .rpt-fares { padding:44px 16px !important; } .rpt-reviews { padding:44px 16px !important; }
  .rpt-guides { margin-top:18px; }
}
/* return-trip offer badge */
.rpt-offer { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(201,162,39,.45); background:#fdf8ea; color:#7a5f12; border-radius:999px; padding:7px 14px; font:600 12px/1.2 Inter,sans-serif; letter-spacing:.04em; cursor:pointer; margin-right:auto; }
.rpt-offer b { color:var(--navy); font-weight:700; }
.rpt-offer:hover { border-color:#c9a227; }
.rpt-fare .save { color:#2f7a3e; font-weight:600; }
@media (max-width:640px){ .rpt-panel-top .rpt-title { flex:1 0 100%; } .rpt-offer { font-size:11.5px; padding:6px 12px; } }

/* tour checkout promo box */
.rpt-tpromo { margin:22px 0 4px; }
.rpt-tpromo label { display:block; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--navy5); margin-bottom:8px; }
.rpt-tpromo-row { display:flex; gap:8px; max-width:420px; }
.rpt-tpromo-row input { flex:1; min-width:0; border:1px solid #ddd5c7; border-radius:12px; padding:12px 14px; font:600 15px Inter,sans-serif; letter-spacing:.06em; text-transform:uppercase; min-height:48px; background:#fff; }
.rpt-tpromo-row button { border:1px solid var(--navy); background:#fff; color:var(--navy); border-radius:12px; padding:0 18px; font:600 13px Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; min-height:48px; }
.rpt-tpromo-row button.on { background:var(--navy); color:#fff; }
.rpt-tpromo-msg { margin:8px 0 0; font-size:13.5px; }
.rpt-tpromo-msg.ok { color:#2f7a3e; } .rpt-tpromo-msg.bad { color:#b42318; }
