/* 3i revamp — shared component layer. Loaded last in <head>. */
:root{ --r-brand:#2A2B39; --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 DPDP consent line is a legal notice and ships at 13px; a client has
   already complained about it being unreadable on a phone.
--------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .dpdp-footer-line,
  .dpdp-footer-line a { font-size: 14px !important; line-height: 1.6; }
}

/* ---------------------------------------------------------------------------
   WhatsApp: the site already ships the Click to Chat plugin, so its container
   is restyled rather than a second button added (section 3.7). The plugin
   writes position/bottom/right INLINE on #ht-ctc-chat, so left AND right both
   need !important or the inline right wins. House default is bottom-left, and
   unlike mycabudaipur.com this site has no other floating button there - the
   corner is free (checked, not assumed).
--------------------------------------------------------------------------- */
#ht-ctc-chat.ht-ctc,
.ht-ctc.ht-ctc-chat {
  left: 16px !important;
  right: auto !important;
  bottom: 16px !important;
}
#ht-ctc-chat .ctc_s_2,
#ht-ctc-chat svg,
#ht-ctc-chat img { width: 62px !important; height: 62px !important; }
@media (max-width: 767px) {
  #ht-ctc-chat.ht-ctc, .ht-ctc.ht-ctc-chat { left: 14px !important; bottom: 14px !important; }
  #ht-ctc-chat .ctc_s_2,
  #ht-ctc-chat svg,
  #ht-ctc-chat img { width: 56px !important; height: 56px !important; }
}

/* The floating WhatsApp button sits bottom-left, and at the very end of the
   page that is exactly where the footer credit line is - measured: it covered
   the "Udaipur Web Designer" link on phones. A little room at the END of the
   document clears it without moving anything above. */
@media (max-width: 767px) {
  /* body{padding-bottom} loses to the theme's own body rule, so add the room as
     a block of our own at the very end of the document instead. */
  body::after { content: ""; display: block; height: 76px; }
}
