/* 3i revamp — shared component layer. Loaded last in <head>. */
:root{ --r-brand:#FF7F27; --r-ease:cubic-bezier(.2,.7,.2,1); }

/* WhatsApp button — house default, bottom LEFT (right collides with
   back-to-top and most chat widgets). Number read from the page's own tel:
   link, never typed in. */
.u-wa{
  position:fixed !important; left:16px !important; right:auto !important; bottom:16px !important;
  width:62px; height:62px; border-radius:50%; background:#25D366;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.45); z-index:9000; display:block; text-decoration:none;
  transition:transform .2s var(--r-ease), box-shadow .2s ease;
}
.u-wa::after{
  content:""; position:absolute; inset:0; margin:auto; width:34px; height:34px; background:#fff;
  -webkit-mask:var(--wa) center/contain no-repeat; mask:var(--wa) center/contain no-repeat;
}
.u-wa{ --wa:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.04 2A9.9 9.9 0 0 0 2.1 11.9a9.8 9.8 0 0 0 1.35 4.96L2 22l5.3-1.38a9.9 9.9 0 0 0 4.74 1.21h.01A9.9 9.9 0 0 0 22 11.93 9.9 9.9 0 0 0 12.04 2zm5.8 14.06c-.24.68-1.4 1.3-1.94 1.35-.5.05-.96.23-3.23-.67-2.72-1.07-4.45-3.84-4.58-4.02-.13-.18-1.1-1.46-1.1-2.79s.7-1.98.95-2.25c.25-.27.54-.34.72-.34h.52c.17 0 .4-.06.62.47.24.57.8 1.97.87 2.11.07.14.12.3.02.48-.1.18-.15.3-.3.46l-.44.5c-.14.14-.3.3-.13.6.17.3.75 1.23 1.6 2 1.1.98 2.02 1.28 2.32 1.43.3.15.47.13.64-.08.18-.2.74-.86.94-1.16.2-.3.4-.25.66-.15.27.1 1.67.79 1.96.93.29.14.48.21.55.33.07.12.07.7-.17 1.38z'/></svg>"); }
.u-wa:hover{ transform:translateY(-3px); box-shadow:0 10px 26px -8px rgba(0,0,0,.5); }
.u-wa:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
@media (max-width:767px){ .u-wa{ width:56px; height:56px; left:14px !important; bottom:14px !important; } }
@media (prefers-reduced-motion:reduce){ .u-wa{ transition:none; } .u-wa:hover{ transform:none; } }

/* Phone row in the mobile menu. The theme's own menu is left alone wherever it
   works; this is the one thing it lacks. Full menu width, 48px target. */
.u-menu-call{
  display:none; box-sizing:border-box; width:100%; align-items:center; gap:10px;
  min-height:48px; padding:12px 20px; background:var(--r-brand); color:#fff !important;
  font-weight:600; text-decoration:none; white-space:nowrap;
}
.u-menu-call svg{ width:18px; height:18px; fill:currentColor; flex:0 0 auto; }
@media (max-width:980px){ .u-menu-call{ display:flex; } }
.u-menu-call-item{ list-style:none; }
.u-menu-call-item{ margin:0 !important; padding:0 !important; border:0 !important; }

/* Mobile type floor. These themes drop body copy to 13-14px on phones.
   Body text only; heading sizes stay the designer's, desktop is untouched. */
@media (max-width:767px){
  body{ font-size:16px; }
  p, li, td, .et_pb_text, .et_pb_text_inner{ font-size:16px; line-height:1.65; }
  footer p, footer li, footer a, #main-footer p, #main-footer li, #main-footer a{ font-size:15px; line-height:1.6; }
  small, .small{ font-size:14px; }
}

/* The enquiry form's reply box: success and failure printed in the same grey
   on every site seen so far. The live handler tags the FORM, so the states are
   styled from those classes. */
.wpcf7 form .wpcf7-response-output, form[data-3i] .wpcf7-response-output{
  margin:16px 0 0; padding:12px 16px; border:1px solid transparent; border-radius:10px;
  font-size:15px; line-height:1.5;
}
.wpcf7 form.sent .wpcf7-response-output, form[data-3i].sent .wpcf7-response-output{
  border-color:rgba(26,156,91,.40) !important; background:#effaf4 !important; color:#12623a !important;
}
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.invalid .wpcf7-response-output,
form[data-3i].failed .wpcf7-response-output{
  border-color:rgba(190,120,20,.45) !important; background:#fff8ec !important; color:#8a5a06 !important;
}

/* The home page's subject line shipped as an <h3> (nexttrip2rajasthan.com), so
   the page had no <h1> at all. Promoted to <h1> and pinned to the exact look it
   had: measured on the untouched build at 34px / 700, Algerian, #ff7f27. The
   inline style already carries the family and colour; only the tag-derived size
   and weight had to be restored. */
/* measured on the untouched build: 34px / 700 / line-height 44.2px / padding-bottom 10px - copy them rather than guess, or everything below the heading shifts a few pixels up. */
h1.u-was-h3{font-size:34px;font-weight:700;line-height:44.2px;margin:0;padding:0 0 10px}

/* Rate tables on the package pages are 10 columns and ~585px wide, so at 390px
   they dragged the WHOLE page sideways - measured identically on the untouched
   build, so this is a defect the site already had. The table now scrolls inside
   its own box. A wrapper div rather than display:block on the table (which
   collapses a table's layout) or :has() on the parent (not safe on older
   Android). The hint only shows where the table is actually wider than the box. */
.u-tablescroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.u-tablescroll>table{min-width:520px}
@media (max-width:767px){
  .u-tablescroll{position:relative;border-right:1px solid rgba(0,0,0,.08)}
}
