/* Essential Healthcare: accessible, responsive component layer */
:root { --primary:#087e8b; --primary-dark:#05616b; --secondary:#16324f; --light:#f4f8fa; --dark:#14243a; --ink:#26384d; --focus:#f59e0b; }
html { scroll-behavior:smooth; }
body { color:var(--ink); font-family:"Roboto",system-ui,sans-serif; line-height:1.6; }
h1,h2,h3,h4,h5,h6,.navbar-brand { color:var(--dark); font-family:"Roboto Condensed",Arial,sans-serif; font-weight:700; letter-spacing:.01em; }
a { color:var(--primary-dark); }
a:hover { color:#034c54; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid var(--focus)!important; outline-offset:3px; box-shadow:none!important; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:2000; padding:.75rem 1rem; color:#fff; background:var(--dark); border-radius:.35rem; }
.skip-link:focus { top:1rem; color:#fff; }
.btn { min-height:44px; font-weight:700; border-radius:.5rem; transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.btn:hover { transform:translateY(-2px); box-shadow:0 .6rem 1.4rem rgba(20,36,58,.18); }
.btn-primary { color:#fff; background-color:var(--primary); border-color:var(--primary); }
.btn-primary:hover,.btn-primary:focus { background-color:var(--primary-dark); border-color:var(--primary-dark); }
.btn-square { width:36px; height:36px; }.btn-sm-square { width:32px; height:32px; }.btn-lg-square { width:46px; height:46px; }
.btn-square,.btn-sm-square,.btn-lg-square { padding-inline:0; text-align:center; }
.navbar-brand h1 { font-size:clamp(1.25rem,2vw,1.8rem); letter-spacing:.025em; }
.navbar-light .navbar-nav .nav-link { position:relative; margin-left:1.5rem; padding:1.45rem 0; font-size:1rem; font-weight:700; color:var(--dark); }
.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link.active { color:var(--primary-dark); }
@media (min-width:992px) { .navbar-light .navbar-nav .nav-link::after { position:absolute; content:""; width:0; height:3px; bottom:.8rem; left:50%; background:var(--primary); transition:.2s; }.navbar-light .navbar-nav .nav-link:hover::after,.navbar-light .navbar-nav .nav-link.active::after { width:100%; left:0; } }
@media (max-width:991.98px) { .navbar-light .navbar-nav .nav-link { margin-left:0; padding:.7rem 0; }.navbar-brand { max-width:82%; }.navbar-toggler { min-width:44px; min-height:44px; } }
.hero-header { position:relative; isolation:isolate; min-height:clamp(400px,55vw,620px); display:flex; align-items:center; background:linear-gradient(90deg,rgba(12,38,61,.93) 0%,rgba(12,38,61,.78) 48%,rgba(12,38,61,.22) 100%),url(../img/hero.jpg) center/cover no-repeat; }
.hero-header h1 { max-width:800px; font-size:clamp(2.6rem,6vw,5.4rem); line-height:1.04; }.hero-header .eyebrow { color:#bdeff2; font-weight:700; letter-spacing:.12em; }
.section-kicker { display:inline-block; color:var(--primary-dark); font-size:.8rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.section-title { font-size:clamp(2rem,4vw,3.25rem); line-height:1.1; }
.feature-card,.contact-card { height:100%; padding:1.5rem; background:#fff; border:1px solid #dce8ed; border-radius:.75rem; box-shadow:0 .4rem 1.4rem rgba(17,51,77,.06); }.feature-card { transition:transform .2s ease,box-shadow .2s ease; }.feature-card:hover { transform:translateY(-4px); box-shadow:0 .8rem 1.6rem rgba(17,51,77,.12); }
.service-item { position:relative; height:350px; padding:0 30px; transition:.25s; }.service-item .service-icon { width:120px; height:100px; display:flex; align-items:center; justify-content:center; background:var(--primary); border-radius:50%; transform:rotate(-14deg); }.service-item .service-icon i { transform:rotate(15deg); }.service-item a.btn { position:absolute; width:60px; bottom:-48px; left:50%; margin-left:-30px; opacity:0; }.service-item:hover a.btn { bottom:-24px; opacity:1; }
.price-carousel::after { position:absolute; content:""; width:100%; height:50%; bottom:0; left:0; background:var(--primary); border-radius:8px 8px 50% 50%; z-index:-1; }.price-carousel .owl-nav { margin-top:35px; width:100%; text-align:center; display:flex; justify-content:center; }.price-carousel .owl-nav .owl-prev,.price-carousel .owl-nav .owl-next { margin:0 5px; width:45px; height:45px; display:flex; align-items:center; justify-content:center; color:var(--primary); background:#fff; font-size:22px; border-radius:50%; }
@media (min-width:576px) { .team-item .row { height:350px; } }.team-carousel .owl-nav { position:absolute; padding:0 45px; width:100%; height:45px; top:calc(50% - 22.5px); left:0; display:flex; justify-content:space-between; }.team-carousel .owl-nav .owl-prev,.team-carousel .owl-nav .owl-next { width:45px; height:45px; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--primary); border-radius:50%; font-size:22px; }
.testimonial-carousel .owl-dots { margin-top:15px; display:flex; align-items:center; justify-content:center; }.testimonial-carousel .owl-dot { display:inline-block; margin:0 5px; width:14px; height:14px; background:var(--light); border:2px solid var(--primary); border-radius:50%; transition:.2s; }.testimonial-carousel .owl-dot.active { width:28px; border-radius:14px; background:var(--primary); }.testimonial-carousel .owl-item img { width:120px; height:120px; object-fit:cover; }
.form-control,.form-select { min-height:48px; border:1px solid #b8ccd5!important; }.form-control:focus,.form-select:focus { border-color:var(--primary)!important; }.form-control::placeholder { color:#657887; opacity:1; }
.back-to-top { position:fixed; display:none; right:1.25rem; bottom:1.25rem; border-radius:50%; z-index:99; box-shadow:0 .5rem 1rem rgba(0,0,0,.18); }.site-footer a { text-decoration:none; }.site-footer a:hover { text-decoration:underline; }
/* Contact actions – WhatsApp, Call, floating dock, invitation popup */
:root { --whatsapp-green:#25d366; --whatsapp-green-dark:#1da851; }
.btn-whatsapp { color:#fff!important; background-color:var(--whatsapp-green); border-color:var(--whatsapp-green); }
.btn-whatsapp:hover,.btn-whatsapp:focus { color:#fff!important; background-color:var(--whatsapp-green-dark); border-color:var(--whatsapp-green-dark); }
.btn-contact-call,.btn-contact-whatsapp { min-height:44px; white-space:nowrap; }
.navbar-contact-actions { width:100%; }
@media (min-width:992px) { .navbar-contact-actions { width:auto; } }
.contact-action-group { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; justify-content:center; }
.contact-action-group .btn { min-width:44px; }
.contact-float-dock { position:fixed; left:max(1rem,env(safe-area-inset-left)); bottom:max(1.25rem,env(safe-area-inset-bottom)); z-index:101; display:flex; flex-direction:column; gap:.65rem; pointer-events:none; }
.contact-float-btn { pointer-events:auto; width:56px; height:56px; min-height:56px; padding:0; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; font-size:1.45rem; text-decoration:none; box-shadow:0 .45rem 1.1rem rgba(20,36,58,.22); transition:transform .2s ease,box-shadow .2s ease; }
.contact-float-btn:hover,.contact-float-btn:focus { color:#fff; transform:translateY(-3px); box-shadow:0 .65rem 1.4rem rgba(20,36,58,.28); }
.contact-float-btn--whatsapp { background:var(--whatsapp-green); }
.contact-float-btn--whatsapp:hover,.contact-float-btn--whatsapp:focus { background:var(--whatsapp-green-dark); }
.contact-float-btn--call { background:var(--primary); }
.contact-float-btn--call:hover,.contact-float-btn--call:focus { background:var(--primary-dark); }
.whatsapp-invite { position:fixed; left:max(1rem,env(safe-area-inset-left)); bottom:calc(max(1.25rem,env(safe-area-inset-bottom)) + 8.5rem); z-index:102; width:min(320px,calc(100vw - 2rem)); padding:1.15rem 1.15rem 1rem; background:#fff; border:1px solid #dce8ed; border-radius:.85rem; box-shadow:0 1rem 2.2rem rgba(20,36,58,.18); opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .35s ease,transform .35s ease,visibility .35s; }
.whatsapp-invite.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.whatsapp-invite__close { position:absolute; top:.55rem; right:.55rem; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.whatsapp-invite__close:hover { background:var(--light); }
.whatsapp-invite__avatar { width:44px; height:44px; margin-bottom:.65rem; border-radius:50%; background:rgba(37,211,102,.14); color:var(--whatsapp-green); display:flex; align-items:center; justify-content:center; font-size:1.35rem; }
.whatsapp-invite__eyebrow { margin:0 0 .2rem; color:var(--whatsapp-green-dark); font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.whatsapp-invite__title { margin:0 0 .45rem; font-size:1.05rem; line-height:1.25; }
.whatsapp-invite__text { margin:0 0 .85rem; font-size:.9rem; color:#5a6b7a; }
.whatsapp-invite__cta { width:100%; min-height:44px; }
.cta-contact-band { background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%); }
.faq-accordion .accordion-button { font-weight:700; color:var(--dark); }
.faq-accordion .accordion-button:not(.collapsed) { color:var(--primary-dark); background:var(--light); box-shadow:none; }
.trust-stat { padding:1.25rem; background:#fff; border:1px solid #dce8ed; border-radius:.75rem; height:100%; text-align:center; }
.trust-stat__value { display:block; font-size:clamp(1.75rem,4vw,2.4rem); font-weight:700; color:var(--primary-dark); line-height:1.1; }
.trust-stat__label { display:block; margin-top:.35rem; font-size:.92rem; color:#5a6b7a; }
@media (max-width:575.98px) { .contact-float-btn { width:52px; height:52px; min-height:52px; font-size:1.35rem; }.whatsapp-invite { bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 7.75rem); }.hero-header .contact-action-group .btn { width:100%; } }
@media (prefers-reduced-motion:reduce) { .whatsapp-invite { transition:none; }.contact-float-btn { transition:none; } }
@media (max-width:575.98px) { .hero-header { text-align:center; }.hero-header .btn { width:100%; margin:.35rem 0!important; }.display-4 { font-size:2.2rem; }.team-carousel .owl-nav { display:none; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
