/* Contact actions: strong contrast, generous tap targets and clear labels. */
.button{min-height:54px;padding:15px 23px;font-size:14px;font-weight:700;border-radius:10px;gap:10px}
.button-orange{color:#fff;background:linear-gradient(120deg,#d9460b,#b83208);border:1px solid #ff9b63;box-shadow:0 5px 0 #892505,0 10px 22px #c63f1530}
.button-orange:hover{color:#fff;background:linear-gradient(120deg,#c63e08,#a32b06);box-shadow:0 5px 0 #892505,0 14px 27px #c63f1540}
.button-zalo{background:linear-gradient(120deg,#0864eb,#0649b7);color:#fff;border:1px solid #69a4ff;box-shadow:0 5px 0 #073786,0 10px 22px #175fe92b}
.button-zalo:hover{background:linear-gradient(120deg,#0757ce,#043b9b);color:#fff;box-shadow:0 5px 0 #073786,0 14px 27px #175fe93b}
.button:active{transform:translateY(2px);box-shadow:0 2px 0 #172e5d}
.button-dark{background:linear-gradient(120deg,#df4b0d,#b93208);border:1px solid #fcaa7c;box-shadow:0 4px 0 #8a2909,0 7px 18px #b9320826}
.button-dark:hover{background:linear-gradient(120deg,#c43c08,#a82d06)}
.nav-cta{font-size:12px;min-height:46px;padding:11px 17px}
.hero-actions{gap:16px;flex-wrap:wrap;align-items:stretch}
.hero-actions .button{font-size:12px;padding:15px 18px}
.service-card .card-link{min-height:46px;padding:11px 13px;margin-top:22px;gap:8px;background:#1754cf;border:1px solid #3a75e9;color:#fff;border-radius:8px;box-shadow:0 3px 0 #0b3490;font-size:11px;font-weight:600;transition:background .2s,transform .2s}
.service-card:nth-child(2) .card-link{background:#bc400d;border-color:#e98350;color:#fff;box-shadow:0 3px 0 #842b07}
.service-card:nth-child(3) .card-link{background:#00775a;border-color:#39a88b;color:#fff;box-shadow:0 3px 0 #00503e}
.service-card:nth-child(4) .card-link{background:#7132b7;border-color:#a671dd;color:#fff;box-shadow:0 3px 0 #4a1c80}
.service-card .card-link:hover{filter:brightness(1.12);transform:translateY(-2px)}
.service-help button{padding:12px 17px;border:1px solid #afc8f8;border-radius:8px;background:#e0ecff;color:#1547a9;font-weight:700;min-height:44px}
.service-help button:hover{background:#cfe0ff}
.why-copy>.button{margin-top:7px;font-size:12px}
.section-cta{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:36px;padding:27px 29px;background:linear-gradient(120deg,#e6efff,#d9f8f1);border:1px solid #b6d6f6;border-left:5px solid #2467e8;border-radius:13px;box-shadow:0 5px 18px #1a4c9b08}
.cta-kicker{display:block;font-size:8px;font-weight:700;letter-spacing:1.2px;color:#225cc1;margin-bottom:6px}
.section-cta h3{font-size:17px;line-height:1.6;font-weight:650;letter-spacing:-.3px;color:#123566}
.section-cta p{font-size:11px;line-height:1.9;color:#526780;margin-top:5px}
.section-cta-actions{display:flex;gap:12px;flex-wrap:wrap;flex-shrink:0}
.section-cta-actions .button{font-size:11px;min-height:49px;padding:12px 16px}
.section-cta-actions .button svg{width:19px;height:19px}
.gallery-section .section-cta{background:linear-gradient(110deg,#1b4384,#116064);border-color:#477aab;border-left-color:#ffae54}
.gallery-section .section-cta h3{color:#fff}
.gallery-section .section-cta p{color:#d8eaff}
.gallery-section .cta-kicker{color:#a0f8dc}
.reviews .section-cta{background:linear-gradient(110deg,#fff0d5,#ffe5cf);border-color:#edc18d;border-left-color:#e9691e}
.reviews .cta-kicker{color:#a53a0d}
.faq-cta{margin-top:9px;font-size:12px}
.contact-actions>.button{min-height:56px;font-size:14px}
.modal-contact{gap:16px}
.floating-contact{right:20px;bottom:28px;gap:17px}
.floating-contact>a{width:60px;height:60px;border-width:3px;box-shadow:0 6px 20px #102b5e40}
.float-zalo{background:#075de5}
.float-zalo b{font-size:15px}
.float-phone{background:linear-gradient(135deg,#d9460b,#b83208);color:white;box-shadow:0 0 0 6px #f5742824,0 6px 20px #bd3f1540}
.float-phone svg{width:27px;height:27px}
.float-tooltip{right:72px;font-weight:600}
@media(min-width:851px){.hero-actions .button-orange{animation:cta-intro 2.5s ease-in-out 3}}
@keyframes cta-intro{0%,100%{box-shadow:0 5px 0 #892505,0 0 0 0 #ff9a4c00}50%{box-shadow:0 5px 0 #892505,0 0 0 7px #ff9a4c25}}
@media(max-width:1100px){.section-cta{align-items:start;flex-direction:column;gap:18px}.section-cta-actions{flex-shrink:1}.nav-cta{font-size:11px;padding:10px 12px}}
@media(max-width:850px){.hero-actions .button{font-size:11px;padding:13px 15px;min-height:48px}.nav-cta{min-height:40px;font-size:10px}.service-help{gap:15px}.service-help button{font-size:10px}.section-cta h3{font-size:16px}}
@media(max-width:600px){.nav-cta{font-size:9px;padding:9px 10px;min-height:38px}.hero-actions{gap:13px}.hero-actions .button{font-size:11px;padding:14px 15px;min-height:49px}.hero-actions .button svg{width:17px;height:17px}.service-card .card-link{font-size:9px;min-height:46px;padding:10px 8px}.service-card .card-link svg{width:14px;height:14px}.service-help button{padding:12px 14px;font-size:10px}.why-copy>.button{font-size:11px;min-height:49px;padding:13px 16px}.section-cta{padding:22px 19px;margin-top:27px;gap:18px;border-radius:11px;border-left-width:4px}.section-cta h3{font-size:16px;line-height:1.65}.cta-kicker{font-size:7px;letter-spacing:1px}.section-cta p{font-size:10px}.section-cta-actions{display:grid;grid-template-columns:1fr;width:100%;gap:14px}.section-cta-actions .button{font-size:12px;min-height:49px}.faq-cta{font-size:11px;min-height:49px;padding:13px 16px}.contact-actions>.button{font-size:13px;min-height:53px}.floating-contact{right:12px;bottom:max(20px,env(safe-area-inset-bottom));gap:14px}.floating-contact>a{width:53px;height:53px}.float-zalo b{font-size:13px}.float-phone svg{width:24px;height:24px}.modal-contact .button{min-height:52px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-actions .button-orange{animation:none}}

/* Floating contact buttons: ripple rings and a short, staggered shake. */
.floating-contact{gap:25px;right:23px;bottom:32px}
.floating-contact>a{width:66px;height:66px;border:3px solid #fff;isolation:isolate;overflow:visible;box-shadow:0 7px 24px #071f6247}
.floating-contact .float-zalo{--contact-glow:29,117,255;background:linear-gradient(145deg,#1688ff,#064fda);box-shadow:0 0 0 5px #1688ff25,0 7px 25px #064fda5c}
.floating-contact .float-phone{--contact-glow:248,103,35;background:linear-gradient(145deg,#ff8b36,#d7430b);color:white;box-shadow:0 0 0 5px #ff8b362b,0 7px 25px #d7430b5c}
.floating-contact>a::before,.floating-contact>a::after{content:'';position:absolute;inset:-5px;border:2px solid rgba(var(--contact-glow),.65);border-radius:50%;z-index:-1;pointer-events:none;opacity:0;animation:contact-ripple 3s ease-out infinite}
.floating-contact>a::after{animation-delay:1.5s}
.floating-contact .float-phone::before{animation-delay:.7s}
.floating-contact .float-phone::after{animation-delay:2.2s}
.float-zalo b{display:block;font-size:17px;transform-origin:center;animation:contact-shake 4.8s ease-in-out infinite}
.float-phone>svg{width:30px;height:30px;transform-origin:center;animation:contact-shake 4.8s ease-in-out 1.2s infinite}
.floating-contact>a:hover,.floating-contact>a:focus-visible{transform:translateY(-3px) scale(1.05)}
.floating-contact>a:hover::before,.floating-contact>a:hover::after,.floating-contact>a:focus-visible::before,.floating-contact>a:focus-visible::after,.floating-contact>a:hover>b,.floating-contact>a:hover>svg,.floating-contact>a:focus-visible>b,.floating-contact>a:focus-visible>svg{animation-play-state:paused}
.floating-contact .float-tooltip{right:80px;opacity:1;display:block;padding:7px 12px;border:1px solid #ffffff40;box-shadow:0 4px 14px #071f6229;font-size:13px}
.float-zalo .float-tooltip{background:#0756c9}
.float-phone .float-tooltip{background:#a9360b}
@keyframes contact-ripple{0%{transform:scale(.95);opacity:.6}65%,100%{transform:scale(1.55);opacity:0}}
@keyframes contact-shake{0%,25%,100%{transform:rotate(0)}3%,9%,15%{transform:rotate(-15deg)}6%,12%,18%{transform:rotate(15deg)}21%{transform:rotate(-6deg)}}
@media(max-width:600px){.floating-contact{right:15px;bottom:max(25px,env(safe-area-inset-bottom));gap:23px}.floating-contact>a{width:58px;height:58px}.float-zalo b{font-size:15px}.float-phone>svg{width:27px;height:27px}.floating-contact .float-tooltip{display:none}}
@media(prefers-reduced-motion:reduce){.floating-contact>a::before,.floating-contact>a::after,.float-zalo b,.float-phone>svg{animation:none}.floating-contact>a{transition:none}}
