/* =====================================================================
   CODESENZE – Homepage (modern, mobile-first)            prefix: hm-
   Load AFTER main.css. Also needs projects-modern.css for the projects slider.
   NOTE: your theme sets html{font-size:10px}, so this file uses px / clamp() only (no rem).
   ===================================================================== */
.hm-page{
  --hm-ink:#0b1b2e; --hm-muted:#5a6a7d; --hm-navy:#07111f; --hm-navy-2:#0c2036;
  --hm-blue:#256199; --hm-cyan:#4fd1ff; --hm-violet:#a074ff; --hm-accent:#ffc83d;
  --hm-soft:#f3f7fb; --hm-line:rgba(11,27,46,.1); --hm-r:26px; --hm-gap:clamp(16px,2vw,24px);
  --hm-grad:linear-gradient(100deg,#5fd8ff 0%,#6f9bff 50%,#b985ff 100%);
  color:var(--hm-ink); background:#fff; overflow-x:clip; -webkit-font-smoothing:antialiased; line-height:1.7;
}
.hm-page *,.hm-page *::before,.hm-page *::after{ box-sizing:border-box; }
.hm-page h1,.hm-page h2,.hm-page h3,.hm-page h4,.hm-page h5{ margin:0; font-family:inherit; font-weight:600; letter-spacing:-.02em; line-height:1.15; color:inherit; text-wrap:balance; }
.hm-page p{ margin:0; font-size:16px; line-height:1.75; color:var(--hm-muted); }
.hm-page ul,.hm-page ol{ list-style:none; margin:0; padding:0; }
.hm-page a{ color:inherit; text-decoration:none; }
.hm-page img{ max-width:100%; }
.hm-page figure{ margin:0; }
.hm-page button{ font-family:inherit; }
.hm-wrap{ width:100%; max-width:1240px; margin:0 auto; padding:0 24px; }
@media (max-width:575.98px){ .hm-wrap{ padding:0 20px; } }
.hm-sec{ position:relative; padding:clamp(64px,8vw,116px) 0; }
.hm-soft{ background:var(--hm-soft); }
.hm-dark{ background:var(--hm-navy); color:#fff; }
.hm-dark p{ color:rgba(255,255,255,.76); }
.hm-grad{ background:var(--hm-grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }

/* ---------- reveal on scroll (home-modern.js adds .hm-js) ---------- */
.hm-js [data-hm-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.hm-js [data-hm-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .hm-js [data-hm-reveal]{ opacity:1; transform:none; transition:none; } }

/* ---------- shared bits ---------- */
.hm-eyebrow{ display:inline-flex; align-items:center; gap:10px; margin-bottom:18px; padding:8px 16px 8px 14px; border-radius:999px; font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; line-height:1;
  color:var(--hm-blue); background:rgba(37,97,153,.08); border:1px solid rgba(37,97,153,.15); }
.hm-eyebrow::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--hm-accent); box-shadow:0 0 0 4px rgba(255,200,61,.25); }
.hm-dark .hm-eyebrow,.hm-hero .hm-eyebrow{ color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); }
.hm-h2{ font-size:clamp(28px,4vw,50px); font-weight:600; }
.hm-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px 30px; flex-wrap:wrap; margin-bottom:clamp(32px,5vw,60px); }
.hm-head .hm-h2{ max-width:720px; }
.hm-head.is-center{ justify-content:center; text-align:center; }
.hm-head.is-center .hm-h2{ margin-inline:auto; }
.hm-link{ display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:600; color:var(--hm-blue); }
.hm-link svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s ease; }
.hm-link:hover svg{ transform:translateX(5px); }
.hm-dark .hm-link{ color:#fff; }
.hm-dark .hm-link:hover{ color:var(--hm-accent); }

.hm-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:17px 30px; border-radius:999px; border:1px solid transparent; font-size:15.5px; font-weight:600; line-height:1; text-align:center; cursor:pointer;
  transition:transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease; }
.hm-btn svg{ width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s ease; }
.hm-btn:hover svg{ transform:translateX(5px); }
.hm-btn-solid{ background:var(--hm-accent); color:#0b1b2e; }
.hm-btn-solid:hover{ background:#fff; color:#0b1b2e; transform:translateY(-3px); }
.hm-btn-ghost{ color:#fff; border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.06); }
.hm-btn-ghost:hover{ background:#fff; color:#0b1b2e; transform:translateY(-3px); }
.hm-btn-dark{ background:var(--hm-ink); color:#fff; }
.hm-btn-dark:hover{ background:var(--hm-blue); color:#fff; transform:translateY(-3px); }
.hm-btn-outline{ color:var(--hm-ink); border-color:rgba(11,27,46,.22); }
.hm-btn-outline:hover{ background:var(--hm-ink); color:#fff; transform:translateY(-3px); }
.hm-arrow-btn{ width:50px; height:50px; padding:0; border-radius:50%; display:grid; place-items:center; cursor:pointer; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); transition:.3s ease; }
.hm-arrow-btn svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.hm-arrow-btn:hover:not(.swiper-button-disabled){ background:var(--hm-accent); border-color:var(--hm-accent); color:#0b1b2e; }
.hm-arrow-btn.swiper-button-disabled{ opacity:.35; cursor:default; }

/* keep Swiper's slide maths intact whatever the theme CSS does */
.hm-page .swiper-wrapper{ display:flex !important; flex-wrap:nowrap !important; gap:0 !important; }
.hm-page .swiper-slide{ flex-shrink:0 !important; float:none !important; margin-left:0 !important; }

/* ================= HERO ================= */
.hm-hero{ position:relative; background:var(--hm-navy); color:#fff; }
.hm-hero-swiper{ overflow:hidden; }
.hm-slide{ position:relative; display:flex !important; align-items:center; min-height:clamp(600px,84vh,800px); }
.hm-slide-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.1); transition:transform 9s ease-out; }
.swiper-slide-active .hm-slide-bg{ transform:scale(1); }
.hm-slide-shade{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,17,31,.92) 0%,rgba(7,17,31,.66) 46%,rgba(7,17,31,.18) 100%); }
.hm-slide-inner{ position:relative; z-index:2; width:100%; padding-top:70px; padding-bottom:170px; }
.hm-slide-inner > *{ max-width:680px; opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
.swiper-slide-active .hm-slide-inner > *{ opacity:1; transform:none; }
.swiper-slide-active .hm-slide-inner > *:nth-child(1){ transition-delay:.25s; }
.swiper-slide-active .hm-slide-inner > *:nth-child(2){ transition-delay:.4s; }
.swiper-slide-active .hm-slide-inner > *:nth-child(3){ transition-delay:.55s; }
.swiper-slide-active .hm-slide-inner > *:nth-child(4){ transition-delay:.7s; }
.hm-hero-title{ margin-bottom:22px; font-size:clamp(32px,5.5vw,76px); font-weight:600; letter-spacing:-.035em; line-height:1.15; color:#fff; word-break:break-word; overflow-wrap:break-word; }
.hm-hero-title span{ display:block; }
.hm-hero .hm-slide p{ max-width:560px; margin-bottom:32px; font-size:clamp(15px,1.4vw,18px); color:rgba(255,255,255,.82); line-height:1.6; }
.hm-hero-ctrl{ position:absolute; left:0; right:0; bottom:104px; z-index:4; }
.hm-hero-ctrl .hm-wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.hm-bars{ display:flex; gap:8px; flex:1; max-width:520px; }
.hm-bar{ position:relative; flex:1; height:22px; padding:0; cursor:pointer; background:transparent; border:0; }
.hm-bar::before{ content:""; position:absolute; left:0; right:0; top:9px; height:3px; border-radius:3px; background:rgba(255,255,255,.28); }
.hm-bar i{ position:absolute; left:0; top:9px; height:3px; width:0; border-radius:3px; background:#fff; }
.hm-bar.is-done i{ width:100%; }
.hm-hero.is-running .hm-bar.is-active i{ animation:hmFill var(--hm-dur,6500ms) linear forwards; }
.hm-bar.is-active i{ width:100%; }
.hm-hero.is-running .hm-bar.is-active i{ width:0; }
.hm-hero.is-paused .hm-bar.is-active i{ animation-play-state:paused; }
@keyframes hmFill{ from{ width:0; } to{ width:100%; } }
.hm-hero-side{ display:flex; align-items:center; gap:18px; }
.hm-count{ font-size:15px; font-weight:600; letter-spacing:.08em; color:rgba(255,255,255,.8); }
.hm-count b{ color:#fff; font-size:22px; }
.hm-hero-nav{ display:flex; gap:10px; }
@media (max-width:767.98px){
  .hm-slide{ min-height:640px; align-items:flex-end; }
  .hm-slide-shade{ background:linear-gradient(180deg,rgba(7,17,31,.45) 0%,rgba(7,17,31,.82) 55%,rgba(7,17,31,.96) 100%); }
  .hm-slide-inner{ padding-top:60px; padding-bottom:170px; }
  .hm-hero .hm-slide p{ margin-bottom:26px; }
  .hm-hero-ctrl{ bottom:96px; }
  .hm-hero-nav{ display:none; }
  .hm-bars{ max-width:none; }
  .hm-slide .hm-btn{ width:100%; }
}

/* ================= ABOUT ================= */
.hm-about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:center; }
.hm-about-img{ position:relative; margin:0 20px 20px 0; }
.hm-about-img::before{ content:""; position:absolute; inset:20px -20px -20px 20px; border-radius:34px; background:linear-gradient(135deg,var(--hm-cyan),var(--hm-violet)); opacity:.4; }
.hm-about-img img{ position:relative; z-index:1; display:block; width:100%; height:auto; border-radius:30px; }
.hm-exp{ position:absolute; z-index:2; right:-6px; bottom:30px; padding:18px 22px; border-radius:22px; background:#fff; border:1px solid var(--hm-line); box-shadow:0 18px 40px rgba(7,17,31,.16); animation:hmFloat 4.5s ease-in-out infinite; }
@keyframes hmFloat{ 50%{ transform:translateY(-10px); } }
.hm-exp strong{ display:block; font-size:34px; line-height:1; font-weight:600; color:var(--hm-ink); }
.hm-exp strong em{ font-style:normal; color:var(--hm-blue); }
.hm-exp span{ display:block; margin-top:6px; font-size:13px; font-weight:600; color:var(--hm-muted); }
.hm-about-copy .hm-h2{ margin-bottom:24px; }
.hm-about-copy p + p{ margin-top:16px; }
.hm-checks{ display:grid; grid-template-columns:repeat(3,auto); gap:12px 26px; justify-content:start; margin:28px 0 34px; }
.hm-checks li{ position:relative; padding-left:30px; font-size:15px; font-weight:600; color:var(--hm-ink); line-height:1.4; }
.hm-checks li::before{ content:""; position:absolute; left:0; top:1px; width:21px; height:21px; border-radius:50%; background:var(--hm-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%230b1b2e' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat; }
@media (max-width:991.98px){ .hm-about-grid{ grid-template-columns:1fr; } .hm-about-img{ max-width:620px; } }
@media (max-width:575.98px){ .hm-checks{ grid-template-columns:1fr; } .hm-exp{ right:6px; bottom:16px; padding:14px 18px; } .hm-exp strong{ font-size:28px; } }

/* ================= SERVICES (tabs + stage) ================= */
.hm-svc{ background:radial-gradient(900px 420px at 10% 0%,#12365a 0%,transparent 60%), radial-gradient(700px 400px at 100% 100%,#1a2a66 0%,transparent 60%), var(--hm-navy); }
.hm-svc .hm-h2{ color:#fff; }
.hm-svc-grid{ display:grid; grid-template-columns:minmax(300px,380px) 1fr; gap:var(--hm-gap); align-items:stretch; }
.hm-svc-tabs{ position:relative; display:flex; flex-direction:column; gap:10px; }
.hm-svc-tab{ position:relative; display:flex; align-items:center; gap:16px; width:100%; padding:13px 18px 13px 13px; text-align:left; cursor:pointer; overflow:hidden; border-radius:20px;
  border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:rgba(255,255,255,.82); transition:background .35s ease, color .35s ease, border-color .35s ease, transform .35s ease; }
.hm-svc-tab:hover{ background:rgba(255,255,255,.09); transform:translateX(4px); }
.hm-svc-tab.is-active{ background:#fff; color:var(--hm-ink); border-color:#fff; transform:translateX(8px); }
.hm-svc-tab:focus-visible{ outline:3px solid var(--hm-accent); outline-offset:2px; }
.hm-svc-ico{ flex:0 0 54px; width:54px; height:54px; display:grid; place-items:center; border-radius:16px; background:#fff; transition:background .35s ease; }
.hm-svc-tab.is-active .hm-svc-ico{ background:var(--hm-soft); }
.hm-svc-ico img{ width:34px; height:34px; object-fit:contain; }
.hm-svc-name{ flex:1; font-size:16px; font-weight:600; line-height:1.3; }
.hm-svc-num{ font-size:12.5px; font-weight:700; letter-spacing:.06em; opacity:.45; }
.hm-svc-bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:transparent; }
.hm-svc-bar b{ display:block; width:0; height:100%; background:linear-gradient(90deg,#256199,#8a4dff); }
.hm-svc-tab.is-active .hm-svc-bar b{ width:100%; }
.hm-svc.is-running .hm-svc-tab.is-active .hm-svc-bar b{ width:0; animation:hmFill var(--hm-dur,6500ms) linear forwards; }
.hm-svc.is-paused .hm-svc-tab.is-active .hm-svc-bar b{ animation-play-state:paused; }

.hm-svc-stage{ position:relative; display:grid; overflow:hidden; border-radius:28px; background:#fff; color:var(--hm-ink); touch-action:pan-y; }
.hm-svc-panel{ grid-area:1 / 1; display:grid; grid-template-columns:1fr 1fr; opacity:0; visibility:hidden; transform:translateY(18px); transition:opacity .45s ease, transform .6s ease, visibility 0s linear .45s; }
.hm-svc-panel.is-active{ opacity:1; visibility:visible; transform:none; transition:opacity .5s ease .12s, transform .6s ease .12s, visibility 0s; }
.hm-svc-img{ position:relative; min-height:340px; background:#e8f0f9; overflow:hidden; }
.hm-svc-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.2s ease; }
.hm-svc-panel.is-active .hm-svc-img img{ transform:scale(1); }
.hm-svc-body{ display:flex; flex-direction:column; justify-content:center; padding:clamp(26px,3.4vw,48px); }
.hm-svc-count{ margin-bottom:14px; font-size:13px; font-weight:700; letter-spacing:.14em; color:var(--hm-blue); }
.hm-svc-body h3{ margin-bottom:12px; font-size:clamp(22px,2.2vw,30px); font-weight:600; color:var(--hm-ink); line-height:1.25; }
.hm-svc-body p{ margin-bottom:20px; color:var(--hm-muted); }
.hm-svc-list{ display:grid; gap:11px; margin-bottom:28px; }
.hm-svc-list li{ position:relative; padding-left:30px; font-size:15px; font-weight:600; color:var(--hm-ink); line-height:1.45; }
.hm-svc-list li::before{ content:""; position:absolute; left:0; top:1px; width:21px; height:21px; border-radius:50%; background:linear-gradient(135deg,#256199,#1f7bff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat; }
.hm-svc-body .hm-btn{ align-self:flex-start; }
.hm-svc-body .def-btn{ align-self:flex-start; }
.hm-svc-ctrl{ position:absolute; z-index:4; left:18px; top:18px; display:flex; gap:8px; }
.hm-svc-ctrl .hm-arrow-btn{ width:44px; height:44px; background:rgba(7,17,31,.55); border-color:rgba(255,255,255,.3); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
@media (max-width:1199.98px){ .hm-svc-grid{ grid-template-columns:minmax(260px,320px) 1fr; } .hm-svc-img{ min-height:300px; } }
@media (max-width:991.98px){
  .hm-svc-grid{ grid-template-columns:1fr; }
  .hm-svc-tabs{ flex-direction:row; gap:10px; overflow-x:auto; scroll-snap-type:x proximity; margin:0 -24px; padding:2px 24px 6px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .hm-svc-tabs::-webkit-scrollbar{ display:none; }
  .hm-svc-tab{ flex:0 0 auto; width:auto; gap:10px; padding:9px 20px 9px 9px; border-radius:999px; scroll-snap-align:center; transform:none !important; }
  .hm-svc-ico{ flex-basis:40px; width:40px; height:40px; border-radius:50%; }
  .hm-svc-ico img{ width:24px; height:24px; }
  .hm-svc-name{ white-space:nowrap; font-size:14.5px; }
  .hm-svc-num{ display:none; }
  .hm-svc-panel{ grid-template-columns:1fr; }
  .hm-svc-img{ min-height:0; aspect-ratio:16/9; }
}
@media (max-width:575.98px){ .hm-svc-tabs{ margin:0 -20px; padding:2px 20px 6px; } .hm-svc-body{ padding:24px 22px 28px; } .hm-svc-body .hm-btn{ width:100%; } .hm-svc-body .def-btn{ width:100%; } }

/* ================= PROJECTS (cards styled in projects-modern.css) ================= */
.hm-projects .ps-ui{ margin-top:34px; }

/* ================= WHY CHOOSE ================= */
.hm-why-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px); align-items:stretch; }
.hm-why-cards{ display:grid; grid-template-columns:1fr 1fr; gap:var(--hm-gap); }
.hm-card{ position:relative; isolation:isolate; padding:30px 28px; border-radius:var(--hm-r); background:#fff; border:1px solid var(--hm-line); transition:transform .35s ease, border-color .35s ease; }
.hm-card:hover{ transform:translateY(-6px); border-color:rgba(37,97,153,.4); }
.hm-card::before{ content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; opacity:0; transition:opacity .35s ease; background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(37,97,153,.1),transparent 45%); pointer-events:none; }
.hm-card:hover::before{ opacity:1; }
.hm-ico{ width:58px; height:58px; display:grid; place-items:center; margin-bottom:22px; border-radius:18px; color:#fff; background:linear-gradient(135deg,#256199,#1f7bff); transition:transform .35s ease, background .35s ease; }
.hm-ico svg{ width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.hm-card:hover .hm-ico{ background:linear-gradient(135deg,#8a4dff,#1f7bff); transform:rotate(-6deg) scale(1.05); }
.hm-card h3{ margin-bottom:10px; font-size:20px; font-weight:600; color:var(--hm-ink); }
.hm-card p{ font-size:15px; }
.hm-why-visual{ position:relative; min-height:100%; border-radius:30px; overflow:hidden; background:#dbe7f3; }
.hm-why-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hm-why-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(7,17,31,.35)); }
@media (max-width:991.98px){ .hm-why-grid{ grid-template-columns:1fr; } .hm-why-visual{ min-height:0; aspect-ratio:16/10; order:-1; } }
@media (max-width:575.98px){ .hm-why-cards{ grid-template-columns:1fr; } .hm-card{ padding:26px 22px; } }

/* ================= TESTIMONIALS ================= */
.hm-testi{ background:radial-gradient(800px 380px at 90% 0%,#12365a 0%,transparent 60%), var(--hm-navy); }
.hm-testi .hm-h2{ color:#fff; }
.hm-testi-swiper{ overflow:hidden; }
.hm-testi-swiper .swiper-slide{ height:auto !important; }
.hm-quote{ display:flex; flex-direction:column; height:100%; padding:32px 30px; border-radius:var(--hm-r); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); transition:border-color .35s ease, background .35s ease; }
.hm-quote:hover{ border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.08); }
.hm-stars{ display:flex; gap:4px; margin-bottom:20px; }
.hm-stars svg{ width:19px; height:19px; fill:var(--hm-accent); }
.hm-quote p{ flex:1; margin-bottom:26px; font-size:16.5px; line-height:1.75; color:rgba(255,255,255,.88); }
.hm-who{ display:flex; align-items:center; gap:14px; }
.hm-avatar{ flex:0 0 48px; width:48px; height:48px; display:grid; place-items:center; border-radius:50%; font-size:16px; font-weight:700; color:#fff; background:linear-gradient(135deg,#1f7bff,#8a4dff); }
.hm-who strong{ display:block; font-size:16px; font-weight:600; color:#fff; line-height:1.3; }
.hm-who span{ font-size:13px; color:rgba(255,255,255,.6); }
.hm-testi-foot{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:34px; }
.hm-testi-dots{ position:static !important; width:auto !important; display:flex; gap:8px; }
.hm-testi-dots .swiper-pagination-bullet{ width:9px; height:9px; margin:0 !important; border-radius:50%; background:rgba(255,255,255,.35); opacity:1; transition:.3s ease; }
.hm-testi-dots .swiper-pagination-bullet-active{ width:30px; border-radius:6px; background:var(--hm-accent); }
.hm-testi-nav{ display:flex; gap:10px; }
@media (max-width:575.98px){ .hm-quote{ padding:26px 22px; } .hm-testi-nav{ display:none; } .hm-testi-foot{ justify-content:center; } }

/* ================= BLOG ================= */
.hm-blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--hm-gap); }
.hm-post{ display:flex; flex-direction:column; height:100%; padding:8px; border-radius:24px; background:#fff; border:1px solid var(--hm-line); transition:transform .4s ease, border-color .4s ease; }
.hm-post:hover{ transform:translateY(-6px); border-color:rgba(37,97,153,.4); }
.hm-post-img{ display:block; aspect-ratio:16/10; overflow:hidden; border-radius:18px; background:linear-gradient(135deg,#dbe7f3,#c9d8f5); }
.hm-post-img img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.hm-post:hover .hm-post-img img{ transform:scale(1.06); }
.hm-post-body{ display:flex; flex-direction:column; flex:1; padding:22px 16px 16px; }
.hm-meta{ display:flex; flex-wrap:wrap; gap:6px 16px; margin-bottom:12px; font-size:13px; font-weight:600; color:var(--hm-muted); }
.hm-post h3{ margin-bottom:18px; font-size:20px; line-height:1.35; color:var(--hm-ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.hm-post h3 a:hover{ color:var(--hm-blue); }
.hm-post .hm-link{ margin-top:auto; }
@media (max-width:991.98px){ .hm-blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:575.98px){ .hm-blog-grid{ grid-template-columns:1fr; } }

/* ================= QUOTE FORM ================= */
.hm-quote-sec{ background:var(--hm-soft); }
.hm-quote-grid{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px,4vw,56px); align-items:center; }
.hm-quote-copy .hm-h2{ margin-bottom:20px; }
.hm-quote-copy p{ margin-bottom:28px; }
.hm-quote-copy figure img{ display:block; width:100%; height:auto; max-height:340px; object-fit:cover; border-radius:26px; }
.hm-form-card{ padding:clamp(24px,3.6vw,48px); border-radius:30px; background:#fff; border:1px solid var(--hm-line); }
.hm-form-card h3{ margin-bottom:6px; font-size:clamp(22px,2.4vw,28px); color:var(--hm-ink); }
.hm-form-card > p{ margin-bottom:26px; font-size:15px; }
.hm-fields{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.hm-field.full,.hm-captcha,.hm-submit{ grid-column:1 / -1; }
.hm-form label{ display:block; margin:0 0 8px; font-size:14px; font-weight:600; color:#33445a; }
.hm-form .hm-input{ display:block; width:100%; height:56px; padding:0 18px; margin:0; border:1.5px solid #dbe3ec; border-radius:14px; background:#f8fafc; font:inherit; font-size:15.5px; line-height:normal; color:var(--hm-ink); box-shadow:none; outline:0; transition:border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.hm-form select.hm-input{ appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer;
  background:#f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%235a6a7d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 16px center/18px no-repeat; }
.hm-form textarea.hm-input{ height:auto; min-height:130px; padding:15px 18px; line-height:1.6; resize:vertical; }
.hm-form .hm-input::placeholder{ color:#9aa8b8; font-size:15px; }
.hm-form .hm-input:hover{ border-color:#c3cfdc; }
.hm-form .hm-input:focus{ border-color:var(--hm-blue); background-color:#fff; box-shadow:0 0 0 4px rgba(37,97,153,.14); }
.hm-form .hm-input.is-invalid{ border-color:#e5484d; background-color:#fff6f6; }
.hm-form em{ display:block; margin-top:6px; font-style:normal; font-size:13.5px; font-weight:500; color:#e5484d; }
.hm-form em:empty{ display:none; }
.hm-submit .hm-btn{ min-width:220px; }
.hm-submit .hm-btn:disabled{ opacity:.85; cursor:wait; transform:none; }
.hm-submit .hm-btn.is-loading svg{ display:none; }
.hm-submit .hm-btn.is-loading::after{ content:""; width:18px; height:18px; border-radius:50%; border:2.5px solid currentColor; border-right-color:transparent; animation:hmSpin .7s linear infinite; }
@keyframes hmSpin{ to{ transform:rotate(360deg); } }
.hm-alert{ margin-top:16px; padding:14px 18px; border-radius:14px; font-size:15px; font-weight:500; text-align:left; }
.hm-alert:empty{ display:none; }
.hm-alert.is-ok{ color:#146c3a; background:#e9f9ef; border:1px solid #bfe8cf; }
.hm-alert.is-err{ color:#b42318; background:#fff1f1; border:1px solid #f5c2c0; }
.hm-extra{ padding-top:clamp(40px,5vw,70px); padding-bottom:clamp(20px,3vw,40px); }
@media (max-width:991.98px){ .hm-quote-grid{ grid-template-columns:1fr; } .hm-quote-copy figure{ display:none; } }
@media (max-width:575.98px){ .hm-fields{ grid-template-columns:1fr; } .hm-submit .hm-btn{ width:100%; } .hm-captcha .g-recaptcha{ transform-origin:0 0; } }
@media (max-width:359.98px){ .hm-captcha .g-recaptcha{ transform:scale(.88); } }

/* ================= FOOTER & BUTTON FIXES ================= */
.hm-whatsapp{ position:fixed; z-index:99; right:27px; bottom:85px; width:48px; }
.hm-whatsapp img{ display:block; width:100%; height:auto; }
@media (max-width:575.98px){ .hm-whatsapp{ right:16px; bottom:76px; width:44px; } }
.footer-bottom span{ padding-right:1.5rem; }

/* Fix footer responsiveness, list items spacing, and widget layouts */
footer .footer-main { padding-top: 60px; }
footer .footer-widget-2 ul.service-list li { margin-left: 20px; margin-bottom: 12px; }
footer .footer-widget-2 ul.service-list li a { color: #fff; text-decoration: none; word-break: break-word; }
footer .footer-widget-2 ul.service-list li a:hover { color: var(--hm-accent); }

@media (max-width:991.98px){
  .footer-main .footer-widget-2.pl-50{ padding-left:0; margin-top: 30px; }
  .footer-main .footer-widget-1 p.mt-40{ margin-top:22px !important; margin-bottom:22px !important; }
  .footer-main .footer-title{ margin-bottom:14px !important; }
}
@media (max-width:575.98px){
  .footer-main .footer-top.section-space-top{ padding-top:40px; }
  .footer-bottom span{ padding-right:0; display:block; line-height:1.6; }
  .footer-main .footer-socials{ display:flex; flex-wrap:wrap; gap:10px; }
}

/* ================= MODERN HOMEPAGE POLISH ================= */
/* Buttons follow the About page palette: accent yellow, ink navy, and Codesenze blue. */
.hm-page .hm-btn,
.hm-footer .hm-btn {
  font-family: inherit;
  border-radius: 999px;
  font-weight: 600;
}
.hm-page .hm-btn-solid,
.hm-footer .hm-btn-solid {
  background: var(--hm-accent, #ffc83d);
  color: #0b1b2e;
}
.hm-page .hm-btn-solid:hover,
.hm-footer .hm-btn-solid:hover {
  background: #fff;
  color: #0b1b2e;
}
.hm-page .hm-btn-dark { background: #0b1b2e; color: #fff; }
.hm-page .hm-btn-dark:hover { background: #256199; color: #fff; }

/* Working experience badge */
.hm-exp {
  right: -10px;
  bottom: 28px;
  width: min(275px, 76%);
  padding: 21px 23px 20px;
  border: 1px solid rgba(11, 27, 46, .08);
  border-radius: 24px;
  box-shadow: 0 22px 55px rgba(7, 17, 31, .18);
  animation: none;
}
.hm-exp .hm-exp-kicker {
  display: block;
  margin: 0 0 10px;
  color: #256199;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hm-exp strong { display:flex; align-items:center; gap:10px; font-size:36px; letter-spacing:-.04em; }
.hm-exp strong em { color:#256199; font-style:normal; }
.hm-exp .hm-exp-plus { display:inline-grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#f3f7fb; color:#256199; font-size:20px; }
.hm-exp .hm-exp-caption { margin-top:8px; color:#5a6a7d; font-size:12px; font-weight:600; line-height:1.5; }

/* Modern footer, independent of legacy theme footer styles */
.hm-footer { color:rgba(255,255,255,.76); background:#07111f; }
.hm-footer-top { padding:clamp(58px, 7vw, 92px) 0 52px; background:radial-gradient(700px 350px at 0% 0%, rgba(37,97,153,.24), transparent 70%), #07111f; }
.hm-footer-grid { display:grid; grid-template-columns:1.35fr .9fr .7fr 1fr; gap:clamp(28px, 4vw, 58px); }
.hm-footer-brand, .hm-footer-links, .hm-footer-contact { min-width:0; }
.hm-footer-logo { display:inline-flex; align-items:center; max-width:210px; margin-bottom:24px; }
.hm-footer-logo img { display:block; width:100%; max-height:56px; object-fit:contain; object-position:left center; }
.hm-footer-brand > p, .hm-footer-contact > p { margin:0 0 24px; color:rgba(255,255,255,.66); font-size:14px; line-height:1.85; }
.hm-footer-cta { padding:14px 21px; font-size:14px; }
.hm-footer-cta svg, .hm-footer-contact-link svg { width:17px; height:17px; }
.hm-footer-socials { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; }
.hm-footer-socials a { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.18); border-radius:50%; color:#fff; font-size:13px; font-weight:700; text-decoration:none; transition:background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease; }
.hm-footer-socials a:hover { background:#ffc83d; border-color:#ffc83d; color:#0b1b2e; transform:translateY(-3px); }
.hm-footer-links h2, .hm-footer-contact h2 { margin:0 0 23px; color:#fff; font-size:17px; font-weight:700; letter-spacing:-.01em; }
.hm-footer-links ul { display:grid; gap:13px; margin:0; padding:0; list-style:none; }
.hm-footer-links li { margin:0; padding:0; }
.hm-footer-links a, .hm-footer-bottom a { color:rgba(255,255,255,.68); font-size:14px; line-height:1.6; text-decoration:none; overflow-wrap:anywhere; transition:color .2s ease; }
.hm-footer-links a:hover, .hm-footer-bottom a:hover { color:#ffc83d; }
.hm-footer-kicker { display:block; margin-bottom:13px; color:#ffc83d; font-size:10px; font-weight:800; letter-spacing:.14em; line-height:1.5; }
.hm-footer-contact h2 { max-width:260px; margin-bottom:14px; font-size:clamp(25px, 2.5vw, 32px); line-height:1.2; }
.hm-footer-contact > p { margin-bottom:20px; }
.hm-footer-contact-link { display:inline-flex; align-items:center; gap:8px; margin-bottom:17px; color:#ffc83d; font-size:14px; font-weight:700; text-decoration:none; }
.hm-footer-contact-link:hover { color:#fff; }
.hm-footer-email { display:block; color:rgba(255,255,255,.68); font-size:13px; text-decoration:none; overflow-wrap:anywhere; }
.hm-footer-email:hover { color:#ffc83d; }
.hm-footer-bottom { border-top:1px solid rgba(255,255,255,.1); }
.hm-footer-bottom-inner { display:flex; align-items:center; justify-content:space-between; gap:16px 26px; min-height:76px; padding-top:18px; padding-bottom:18px; }
.hm-footer-bottom-inner > span { color:rgba(255,255,255,.52); font-size:12px; }
.hm-footer-bottom a { font-size:12px; }

@media (max-width:1050px) {
  .hm-footer-grid { grid-template-columns:1.2fr 1fr 1fr; }
  .hm-footer-contact { grid-column:2 / 4; padding-top:8px; }
}
@media (max-width:767.98px) {
  .hm-exp { right:6px; bottom:16px; width:min(250px, 82%); padding:17px 18px; }
  .hm-exp strong { font-size:31px; }
  .hm-footer-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:34px 24px; }
  .hm-footer-brand { grid-column:1 / -1; }
  .hm-footer-contact { grid-column:auto; }
  .hm-footer-bottom-inner { align-items:flex-start; flex-direction:column; gap:9px; }
}
@media (max-width:480px) {
  .hm-footer-grid { grid-template-columns:1fr; gap:30px; }
  .hm-footer-brand, .hm-footer-contact { grid-column:auto; }
  .hm-footer-top { padding-top:52px; }
  .hm-footer-contact h2 { max-width:none; }
}


.hm-back-to-top {
  position: fixed; right: 27px; bottom: 145px; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%;
  color: #0b1b2e; background: #ffc83d; box-shadow: 0 8px 24px rgba(11,27,46,.18);
  cursor: pointer; transition: transform .25s ease, background .25s ease, opacity .25s ease;
  opacity: 0;
}
.hm-back-to-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hm-back-to-top:hover { transform: translateY(-3px); background: #fff; }
.hm-back-to-top:focus-visible { outline: 3px solid #256199; outline-offset: 3px; }

@media (max-width: 575.98px) { .hm-back-to-top { right: 16px; bottom: 132px; width: 44px; height: 44px; } }

/* WhatsApp should be the upper icon; back-to-top arrow sits underneath it. */
.hm-whatsapp { bottom: 145px !important; }
.hm-back-to-top { bottom: 85px !important; }
@media (max-width: 575.98px) {
  .hm-whatsapp { right: 16px; bottom: 132px !important; width: 44px; }
  .hm-back-to-top { right: 16px; bottom: 76px !important; width: 44px; height: 44px; }
}

/* Give the service CTA breathing room after the checklist. */
.hm-svc-body .hm-btn { margin-top: 16px; }
.hm-svc-body .def-btn { margin-top: 16px; }

/* Tick icons for service links in the footer. */
footer .footer-widget-2 ul.service-list li {
  position: relative;
  margin-left: 0;
  padding-left: 25px;
}
footer .footer-widget-2 ul.service-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  color: #0b1b2e;
  background: #ffc83d;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}
/* Ensure the modern service feature list also displays a crisp tick. */
.hm-svc-list li::before {
  content: "✓" !important;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  background: #256199 !important;
  background-image: none !important;
}

/* =====================================================================
   HEADER  (fixed, compact-on-scroll)  — markup in header.php
   ===================================================================== */
.hm-header{ --hm-h:80px; position:relative; z-index:1000; height:var(--hm-h); margin:0; padding:0; background:transparent; }
html{ scroll-padding-top:92px; }
.hm-hdr, .hm-hdr.sticky{
  --ink:#0b1b2e; --muted:#5a6a7d; --blue:#256199; --soft:#f3f7fb; --line:rgba(11,27,46,.1); --accent:#ffc83d;
  position:fixed !important; top:0; left:0; right:0; z-index:1000; width:100%; margin:0; padding:0;
  transform:none !important; animation:none !important;
  background:#fff; border-bottom:1px solid var(--line); box-shadow:none;
  transition:background .3s ease, box-shadow .3s ease;
}
.hm-hdr.is-scrolled{ box-shadow:0 10px 30px rgba(11,27,46,.1); }
/* mobile drawer + its overlays sit above the fixed header */
.offcanvas__info{ z-index:1200 !important; }
.offcanvas__overlay, .offcanvas__overlay-white{ z-index:1150 !important; }
.admin-bar .hm-hdr, .admin-bar .hm-hdr.sticky{ top:32px; }
@media (max-width:782px){ .admin-bar .hm-hdr, .admin-bar .hm-hdr.sticky{ top:46px; } }
@media (max-width:600px){ .admin-bar .hm-hdr, .admin-bar .hm-hdr.sticky{ top:0; } }

.hm-hdr *, .hm-hdr *::before, .hm-hdr *::after{ box-sizing:border-box; }
.hm-hdr-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--hm-h); transition:height .3s ease; }
.hm-hdr.is-scrolled .hm-hdr-inner{ height:66px; }

.hm-hdr-logo{ display:flex; align-items:center; flex:0 0 auto; }
.hm-hdr-logo img{ display:block; width:auto; height:42px; max-width:none; transition:height .3s ease; }
.hm-hdr.is-scrolled .hm-hdr-logo img{ height:36px; }

/* ---- primary nav (desktop) ---- */
.hm-hdr .hm-nav{ display:none !important; flex:1 1 auto; justify-content:center; }
.hm-hdr #mobile-menu > ul{ display:flex; align-items:center; gap:2px; margin:0; padding:0; list-style:none; }
.hm-hdr #mobile-menu > ul > li{ position:relative; display:block; float:none; height:auto; margin:0; padding:0; line-height:normal; list-style:none; }
.hm-hdr #mobile-menu > ul > li > a{
  position:relative; display:inline-flex; align-items:center; gap:7px; height:auto; padding:10px 14px; border-radius:999px;
  font-size:15px; font-weight:600; line-height:1.2; letter-spacing:0; text-transform:none; color:var(--ink); text-decoration:none; background:transparent;
  transition:background .25s ease, color .25s ease;
}
.hm-hdr #mobile-menu > ul > li > a::before{ content:none; }
.hm-hdr #mobile-menu > ul > li:hover > a,
.hm-hdr #mobile-menu > ul > li:focus-within > a{ background:var(--soft); color:var(--blue); }
.hm-hdr #mobile-menu > ul > li.active > a{ background:rgba(37,97,153,.1); color:var(--blue); }
.hm-hdr #mobile-menu a:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }

.hm-hdr #mobile-menu > ul > li.hm-has-sub > a::after{
  content:""; display:block; width:6px; height:6px; margin:-3px 0 0 1px; border:solid currentColor; border-width:0 2px 2px 0;
  transform:rotate(45deg); transition:transform .25s ease;
}
.hm-hdr #mobile-menu > ul > li.hm-has-sub:hover > a::after,
.hm-hdr #mobile-menu > ul > li.hm-has-sub:focus-within > a::after{ transform:rotate(225deg) translate(-1px,-1px); }

/* ---- services dropdown ---- */
.hm-hdr #mobile-menu .submenu{
  position:absolute; top:calc(100% + 10px); left:50%; display:block; width:340px; height:auto; margin:0; padding:8px; list-style:none;
  background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 24px 60px rgba(11,27,46,.16);
  opacity:0; visibility:hidden; transform:translate(-50%,10px); z-index:5;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
.hm-hdr #mobile-menu .submenu::before{ content:""; position:absolute; left:0; right:0; top:-12px; height:12px; background:transparent; }
.hm-hdr #mobile-menu > ul > li:hover > .submenu,
.hm-hdr #mobile-menu > ul > li:focus-within > .submenu{ opacity:1; visibility:visible; transform:translate(-50%,0); transition-delay:0s; }
.hm-hdr #mobile-menu .submenu li{ display:block; float:none; width:auto; height:auto; margin:0; padding:0; list-style:none; }
.hm-hdr #mobile-menu .submenu li a{
  display:block; width:auto; padding:11px 14px; border-radius:12px; font-size:14.5px; font-weight:600; line-height:1.35; color:var(--ink); text-decoration:none; white-space:normal; background:transparent;
  transition:background .2s ease, color .2s ease;
}
.hm-hdr #mobile-menu .submenu li a::before, .hm-hdr #mobile-menu .submenu li a::after{ content:none; }
.hm-hdr #mobile-menu .submenu li a:hover, .hm-hdr #mobile-menu .submenu li a:focus-visible{ background:var(--soft); color:var(--blue); }

/* ---- right side: phone, CTA, menu button ---- */
.hm-hdr-actions{ display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.hm-hdr-phone{ display:inline-flex; align-items:center; gap:11px; color:var(--ink); text-decoration:none; }
.hm-hdr-phone-ico{ display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:50%; background:var(--soft); color:var(--blue); transition:background .25s ease, color .25s ease; }
.hm-hdr-phone-ico svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.hm-hdr-phone:hover .hm-hdr-phone-ico{ background:var(--accent); color:var(--ink); }
.hm-hdr-phone:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; border-radius:999px; }
.hm-hdr-phone-txt{ display:none; flex-direction:column; line-height:1.25; }
.hm-hdr-phone-txt small{ display:none; font-size:12px; font-weight:500; color:var(--muted); }
.hm-hdr-phone-txt strong{ font-size:15px; font-weight:700; color:var(--ink); white-space:nowrap; }

.hm-hdr .hm-hdr-cta{ display:none; padding:12px 20px; font-size:14.5px; white-space:nowrap; background:#ffc83d; color:#0b1b2e; }
.hm-hdr .hm-hdr-cta:hover{ background:#0b1b2e; color:#fff; box-shadow:none; }
.hm-hdr .hm-hdr-cta:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }

.hm-hdr .sidebar__toggle{ display:block; margin:0; padding:0; }
.hm-hdr .sidebar__toggle .bar-icon{ display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:50%; background:var(--ink); color:#fff; transition:background .25s ease; }
.hm-hdr .sidebar__toggle .bar-icon:hover{ background:var(--blue); }
.hm-hdr .sidebar__toggle .bar-icon:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }
.hm-hdr .sidebar__toggle svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }

/* ---- scroll progress line ---- */
.hm-hdr-progress{ position:absolute; left:0; right:0; bottom:-1px; height:2px; overflow:hidden; pointer-events:none; }
.hm-hdr-progress i{ display:block; height:100%; transform:scaleX(0); transform-origin:0 50%; background:var(--hm-grad, linear-gradient(100deg,#5fd8ff 0%,#6f9bff 50%,#b985ff 100%)); will-change:transform; }

/* ---- breakpoints ---- */
@media (min-width:576px){ .hm-hdr .hm-hdr-cta{ display:inline-flex; } }
@media (min-width:768px){ .hm-hdr-phone-txt{ display:flex; } }
@media (min-width:1200px){
  .hm-hdr .hm-nav{ display:flex !important; }
  .hm-hdr #mobile-menu{ display:block !important; }
  .hm-hdr .hm-hdr-cta{ display:inline-flex; }
  .hm-hdr .sidebar__toggle{ display:none !important; }
}
@media (min-width:1360px){ .hm-hdr-phone-txt small{ display:block; } }
@media (max-width:1199.98px){ .hm-header{ --hm-h:72px; } .hm-hdr.is-scrolled .hm-hdr-inner{ height:62px; } .hm-hdr-logo img{ height:38px; } html{ scroll-padding-top:80px; } }
@media (max-width:575.98px){ .hm-header{ --hm-h:64px; } .hm-hdr-inner{ gap:12px; } .hm-hdr.is-scrolled .hm-hdr-inner{ height:58px; } .hm-hdr-logo img{ height:34px; } .hm-hdr.is-scrolled .hm-hdr-logo img{ height:32px; } .hm-hdr-actions{ gap:10px; } }
@media (prefers-reduced-motion:reduce){ .hm-hdr, .hm-hdr *{ transition:none !important; } }

/* =====================================================================
   PARTNERS  (logo rail)  — markup in front-page.php
   ===================================================================== */
.hm-partners{ overflow:hidden; }
.hm-pt-head{ display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:20px clamp(28px,6vw,90px); margin-bottom:clamp(30px,4vw,48px); }
.hm-pt-head .hm-h2{ max-width:640px; }
.hm-pt-head > p{ max-width:460px; }
/* Client logo slider: white cards, progress bar + prev/next arrows (same pattern as the projects slider) */
.hm-pt-slider{ position:relative; }
.hm-pt-swiper{ overflow:hidden; padding:10px 4px 26px; margin:-10px -4px -26px; }   /* room for hover lift + shadow */
.hm-pt-swiper .swiper-slide{ height:auto; }
.hm-pt-card{ display:grid; place-items:center; height:clamp(112px,10.5vw,144px); padding:18px clamp(18px,2vw,28px);
  background:#fff; border:1px solid var(--hm-line); border-radius:22px; box-shadow:0 1px 2px rgba(11,27,46,.04), 0 10px 26px rgba(11,27,46,.05);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.hm-pt-card img{ display:block; width:auto; height:auto; max-width:100%; max-height:clamp(54px,5.6vw,150px); object-fit:contain; transition:transform .3s ease; }
.hm-pt-card:hover{ transform:translateY(-5px); border-color:rgba(37,97,153,.35); box-shadow:0 16px 36px rgba(11,27,46,.12); }
.hm-pt-card:hover img{ transform:scale(1.05); }
.hm-pt-foot{ display:flex; align-items:center; gap:clamp(16px,3vw,32px); margin-top:clamp(22px,3vw,34px); }
.hm-pt-progress{ position:relative !important; flex:1 1 auto; width:auto !important; height:6px !important; border-radius:6px; overflow:hidden; background:rgba(11,27,46,.1) !important; }
.hm-pt-progress .swiper-pagination-progressbar-fill{ position:absolute; left:0; top:0; width:100%; height:100%; border-radius:6px; transform-origin:left top; background:var(--hm-grad) !important; }
.hm-pt-nav{ display:flex; gap:10px; flex:0 0 auto; }
.hm-pt-arrow{ width:50px; height:50px; padding:0; display:grid; place-items:center; border-radius:50%; cursor:pointer; color:var(--hm-ink); background:#fff; border:1px solid rgba(11,27,46,.16); transition:.3s ease; }
.hm-pt-arrow svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.hm-pt-arrow:hover:not(.swiper-button-disabled){ background:var(--hm-accent); border-color:var(--hm-accent); transform:translateY(-2px); }
.hm-pt-arrow:focus-visible{ outline:2px solid var(--hm-blue); outline-offset:2px; }
.hm-pt-arrow.swiper-button-disabled{ opacity:.4; cursor:default; }
@media (max-width:767.98px){
  .hm-pt-head{ grid-template-columns:1fr; }
  .hm-pt-arrow{ width:44px; height:44px; }
  .hm-pt-card{ height:104px; padding:14px 16px; border-radius:18px; }
  .hm-pt-card img{ max-height:50px; }
}
@media (max-width:575.98px){ .hm-pt-card{ height:124px; } .hm-pt-card img{ max-height:68px; } }   /* one logo per slide on phones */

/* =====================================================================
   MOBILE MENU DRAWER  — markup in header.php (restyles the meanmenu clone)
   ===================================================================== */
.fix .offcanvas__info.hm-drawer{ background:#07111f !important; border-left:1px solid rgba(255,255,255,.1) !important; color:#fff; }
.hm-drawer .offcanvas__wrapper{ height:100%; }
.hm-drawer .offcanvas__content{ display:flex; flex-direction:column; min-height:100%; padding:20px 24px 28px !important; }
.hm-drawer .offcanvas__top{ display:flex; align-items:center; justify-content:space-between; margin:0 0 10px !important; padding:0 0 18px; border-bottom:1px solid rgba(255,255,255,.1); }
.hm-drawer-logo{ display:block; }
.hm-drawer-logo img{ display:block; width:auto; height:34px; }
.hm-drawer .offcanvas__close button{ display:grid; place-items:center; width:42px; height:42px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.06); color:#fff; transition:background .25s ease, color .25s ease, transform .25s ease; }
.hm-drawer .offcanvas__close button:hover{ background:#ffc83d; color:#0b1b2e; border-color:#ffc83d; transform:rotate(90deg); }
.hm-drawer .offcanvas__close button:focus-visible, .hm-drawer a:focus-visible{ outline:3px solid #ffc83d; outline-offset:3px; }
.hm-drawer .offcanvas__close svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }

/* menu list */
.hm-drawer .mobile-menu{ margin:0 0 24px !important; }
.hm-drawer .mean-container .mean-nav{ float:none; margin:0 !important; background:transparent !important; }
.hm-drawer .mean-container .mean-nav ul{ margin:0; padding:0; list-style:none; background:transparent; }
.hm-drawer .mean-container .mean-nav ul li{ position:relative; float:none; width:100%; margin:0; border:0 !important; }
.hm-drawer .mean-container .mean-nav > ul > li{ border-bottom:1px solid rgba(255,255,255,.1) !important; }
.hm-drawer .mean-container .mean-nav ul li a{
  display:block; float:none; width:auto !important; margin:0; padding:15px 56px 15px 0 !important; border:0 !important; background:transparent !important;
  font-size:19px; font-weight:600; line-height:1.3; text-align:left; text-transform:none; text-decoration:none; color:#fff !important; transition:color .2s ease;
}
.hm-drawer .mean-container .mean-nav ul li a:hover,
.hm-drawer .mean-container .mean-nav ul li.active > a{ color:#ffc83d !important; }
.hm-drawer .mean-container .mean-nav ul li a.mean-expand{
  position:absolute; top:10px; right:0; width:36px !important; height:36px !important; margin:0; padding:0 !important; border-radius:50%;
  border:1px solid rgba(255,255,255,.25) !important; background:rgba(255,255,255,.06) !important; color:#fff !important;
  font-size:18px; font-weight:400; line-height:34px; text-align:center;
}
.hm-drawer .mean-container .mean-nav ul li a.mean-expand:hover{ background:#ffc83d !important; border-color:#ffc83d !important; color:#0b1b2e !important; }
.hm-drawer .mean-container .mean-nav ul ul{ margin:0 0 10px 2px; padding:0 0 0 14px; border-left:1px solid rgba(255,255,255,.14); }
.hm-drawer .mean-container .mean-nav ul ul li a{ padding:10px 0 !important; font-size:16px; font-weight:500; color:rgba(255,255,255,.78) !important; }
.hm-drawer .mean-container .mean-nav ul ul li a.mean-expand{ top:4px; }

/* CTA + contact */
.hm-drawer-cta{ margin-top:auto; padding-top:8px; }
.hm-drawer .hm-drawer-btn{ display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:16px 22px; border-radius:999px; font-size:15.5px; font-weight:700; text-decoration:none; background:#ffc83d; color:#0b1b2e; box-shadow:0 10px 24px rgba(255,200,61,.25); transition:background .25s ease, transform .25s ease; }
.hm-drawer .hm-drawer-btn:hover{ background:#fff; transform:translateY(-2px); }
.hm-drawer .hm-drawer-btn svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.hm-drawer-contact{ display:grid; gap:12px; margin:22px 0 0; padding:0; list-style:none; }
.hm-drawer-contact a{ display:flex; align-items:center; gap:12px; font-size:15px; font-weight:500; color:rgba(255,255,255,.85); text-decoration:none; transition:color .2s ease; }
.hm-drawer-contact a:hover{ color:#ffc83d; }
.hm-drawer-contact span{ display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); color:#ffc83d; }
.hm-drawer-contact svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.hm-drawer-tag{ margin:24px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.1); font-size:13px; color:rgba(255,255,255,.55); }
@media (prefers-reduced-motion:reduce){ .hm-drawer *{ transition:none !important; } }

/* =====================================================================
   CONTENT PAGES (Privacy Policy, Terms…)  — markup in cms.php
   ===================================================================== */
.hm-pagehero{ position:relative; isolation:isolate; overflow:hidden; background:var(--hm-navy); color:#fff; padding:clamp(56px,8vw,104px) 0 clamp(52px,7vw,92px); }
.hm-pagehero::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(60% 90% at 88% 0%,rgba(111,155,255,.28),transparent 62%), radial-gradient(50% 80% at 0% 100%,rgba(185,133,255,.18),transparent 62%); }
.hm-pagehero-bg{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center; opacity:.14; }
.hm-crumbs ol{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 22px; padding:0; list-style:none; font-size:14px; }
.hm-crumbs li{ display:flex; align-items:center; gap:8px; margin:0; padding:0; list-style:none; color:#fff; }
.hm-crumbs li + li::before{ content:"/"; color:rgba(255,255,255,.4); }
.hm-crumbs a{ color:rgba(255,255,255,.68); text-decoration:none; transition:color .2s ease; }
.hm-crumbs a:hover{ color:#ffc83d; }
.hm-pagehero-title{ margin:0 0 16px; font-size:clamp(36px,5.5vw,68px); font-weight:600; line-height:1.08; letter-spacing:-.02em; color:#fff; }
.hm-pagehero-lead{ max-width:640px; margin:0 0 20px; font-size:clamp(16px,1.6vw,19px); line-height:1.7; color:rgba(255,255,255,.75); }
.hm-pagehero-meta{ display:inline-flex; align-items:center; gap:10px; padding:8px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); font-size:13.5px; color:rgba(255,255,255,.78); }
.hm-pagehero-meta::before{ content:""; width:7px; height:7px; border-radius:50%; background:#ffc83d; }

.hm-cms-sec{ background:#fff; padding:clamp(44px,6vw,84px) 0 clamp(56px,7vw,100px); }
.hm-cms-grid{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:start; }
.hm-cms-grid.no-toc{ grid-template-columns:minmax(0,1fr); max-width:800px; margin:0 auto; }
.hm-cms-side[hidden]{ display:none; }
.hm-cms-article{ max-width:780px; min-width:0; }

/* table of contents */
.hm-cms-side{ position:sticky; top:104px; }
.hm-toc{ background:var(--hm-soft); border:1px solid var(--hm-line); border-radius:20px; padding:20px 18px 12px; }
.hm-toc summary{ display:flex; align-items:center; justify-content:space-between; cursor:pointer; list-style:none; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--hm-muted); }
.hm-toc summary::-webkit-details-marker{ display:none; }
.hm-toc summary::after{ content:""; width:8px; height:8px; margin-right:4px; border:solid currentColor; border-width:0 2px 2px 0; transform:rotate(45deg); transition:transform .25s ease; }
.hm-toc[open] summary::after{ transform:rotate(225deg); }
.hm-toc ol{ max-height:calc(100vh - 240px); overflow:auto; margin:12px 0 0; padding:0; list-style:none; }
.hm-toc li{ margin:0; padding:0; list-style:none; }
.hm-toc a{ display:block; margin-bottom:2px; padding:8px 12px; border-left:2px solid transparent; border-radius:0 10px 10px 0; font-size:14.5px; line-height:1.4; color:var(--hm-muted); text-decoration:none; transition:color .2s ease, background .2s ease, border-color .2s ease; }
.hm-toc a:hover{ color:var(--hm-ink); background:rgba(255,255,255,.7); }
.hm-toc a.is-active{ color:var(--hm-blue); font-weight:600; border-left-color:var(--hm-accent); background:#fff; }
.hm-toc a:focus-visible{ outline:3px solid var(--hm-accent); outline-offset:2px; }

/* article typography */
.hm-prose{ font-size:17px; line-height:1.85; color:#3b4a5c; overflow-wrap:break-word; }
.hm-prose > :first-child{ margin-top:0; }
.hm-prose h2{ margin:2.2em 0 .6em; font-size:clamp(24px,2.6vw,32px); font-weight:600; line-height:1.25; letter-spacing:-.01em; color:var(--hm-ink); scroll-margin-top:100px; }
.hm-prose h3{ margin:1.8em 0 .5em; font-size:21px; font-weight:600; line-height:1.35; color:var(--hm-ink); scroll-margin-top:100px; }
.hm-prose h4{ margin:1.5em 0 .4em; font-size:18px; font-weight:600; color:var(--hm-ink); }
.hm-prose p{ margin:0 0 1.2em; color:#3b4a5c; }
.hm-prose strong, .hm-prose b{ font-weight:700; color:var(--hm-ink); }
.hm-prose a{ color:var(--hm-blue); text-decoration:underline; text-decoration-color:rgba(37,97,153,.35); text-underline-offset:3px; transition:color .2s ease, text-decoration-color .2s ease; }
.hm-prose a:hover{ color:var(--hm-ink); text-decoration-color:var(--hm-accent); }
.hm-prose ul, .hm-prose ol{ margin:0 0 1.4em; padding:0; list-style:none; }
.hm-prose li{ position:relative; margin:0 0 .6em; padding-left:28px; list-style:none; }
.hm-prose li ul, .hm-prose li ol{ margin:.6em 0 0; }
.hm-prose ul > li::before{ content:""; position:absolute; left:4px; top:.78em; width:8px; height:8px; border-radius:50%; background:var(--hm-accent); box-shadow:0 0 0 3px rgba(255,200,61,.25); }
.hm-prose ol{ counter-reset:hmli; }
.hm-prose ol > li{ counter-increment:hmli; }
.hm-prose ol > li::before{ content:counter(hmli); position:absolute; left:0; top:.4em; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--hm-soft); color:var(--hm-blue); font-size:12px; font-weight:700; line-height:1; }
.hm-prose blockquote{ margin:1.6em 0; padding:18px 22px; border-left:4px solid var(--hm-accent); border-radius:0 16px 16px 0; background:var(--hm-soft); }
.hm-prose blockquote p:last-child{ margin-bottom:0; }
.hm-prose hr{ margin:2.4em 0; border:0; border-top:1px solid var(--hm-line); }
.hm-prose img{ max-width:100%; height:auto; border-radius:16px; }
.hm-prose table{ display:block; width:100%; max-width:100%; overflow-x:auto; margin:0 0 1.6em; border-collapse:collapse; font-size:15px; line-height:1.6; }
.hm-prose th, .hm-prose td{ padding:12px 14px; border:1px solid var(--hm-line); text-align:left; vertical-align:top; }
.hm-prose th{ background:var(--hm-soft); color:var(--hm-ink); font-weight:600; }
.hm-prose code{ padding:2px 6px; border-radius:6px; background:var(--hm-soft); font-size:.9em; }


/* Projects slider progress line: track + coloured fill (fill is created and updated by home-modern.js, section 8) */
.hm-projects .ps-progress{ position:relative; overflow:hidden; flex:1 1 auto; height:6px; border-radius:6px; background:rgba(11,27,46,.1); }
.hm-projects .ps-progress-fill{ position:absolute; left:0; top:0; bottom:0; width:0; border-radius:inherit; background:var(--hm-grad); transition:width .35s ease; }
@media (prefers-reduced-motion:reduce){ .hm-projects .ps-progress-fill{ transition:none; } }

/* contact note */
.hm-cms-note{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; margin-top:52px; padding:26px 28px; border-radius:var(--hm-r); background:var(--hm-navy); color:#fff; }
.hm-cms-note strong{ display:block; margin-bottom:4px; font-size:19px; font-weight:600; color:#fff; }
.hm-cms-note span{ color:rgba(255,255,255,.7); font-size:15px; }

@media (max-width:991.98px){
  .hm-cms-grid{ grid-template-columns:minmax(0,1fr); gap:28px; }
  .hm-cms-side{ position:static; }
  .hm-toc ol{ max-height:none; }
}
@media (min-width:992px){ .hm-toc summary{ pointer-events:none; } .hm-toc summary::after{ display:none; } }
@media (max-width:575.98px){ .hm-prose{ font-size:16px; } .hm-cms-note{ padding:22px; } }

/* =====================================================================
   SERVICE PAGE SIDEBAR FORM: validation + status messages only
   (the form's own look stays in its existing stylesheet)
   ===================================================================== */
.sd-form .sd-field em{ display:block; margin-top:6px; font-size:13px; font-style:normal; line-height:1.4; color:#d93025; }
.sd-form .sd-field em:empty{ display:none; }
.sd-form .is-invalid{ border-color:#d93025 !important; box-shadow:0 0 0 3px rgba(217,48,37,.12); }
.sd-form button[disabled]{ opacity:.7; cursor:progress; }
.sd-alert{ margin-top:14px; font-size:14.5px; line-height:1.5; }
.sd-alert:empty{ display:none; }
.sd-alert.is-ok{ padding:12px 14px; border-radius:12px; background:#e8f7ee; color:#146c43; }
.sd-alert.is-err{ padding:12px 14px; border-radius:12px; background:#fdecea; color:#b3261e; }

/* =====================================================================
   PHONE FIELD with country-code picker (footer form + service form)
   Height / border / radius / colours are copied from the neighbouring input by quote-form.js
   (--pb-* variables); the values below are the fallbacks.
   ===================================================================== */
.hm-phone{ position:relative; display:flex; align-items:stretch; width:100%; height:var(--pb-h,56px); border:var(--pb-w,1.5px) solid var(--pb-c,#dbe3ec); border-radius:var(--pb-r,14px); background:var(--pb-bg,#f8fafc); color:var(--pb-fc,#0b1b2e); font-size:var(--pb-fs,15.5px); transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.hm-phone:hover{ border-color:#c3cfdc; }
.hm-phone.is-focus{ border-color:#256199; background-color:#fff; box-shadow:0 0 0 4px rgba(37,97,153,.14); }
.hm-phone.is-invalid{ border-color:#e5484d; background-color:#fff6f6; }
.hm-cc-btn{ display:inline-flex; align-items:center; gap:8px; flex:0 0 auto; margin:0; padding:0 12px 0 16px; border:0; border-right:1px solid rgba(11,27,46,.14); border-radius:0; background:transparent; color:inherit; font:inherit; line-height:1; cursor:pointer; }
.hm-cc-btn:focus-visible{ outline:2px solid #256199; outline-offset:-2px; border-radius:inherit; }
.hm-cc-flag{ font-size:20px; line-height:1; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; }
.hm-cc-dial{ font-weight:600; white-space:nowrap; }
.hm-cc-caret{ display:block; width:7px; height:7px; margin:-3px 0 0 2px; border:solid currentColor; border-width:0 2px 2px 0; transform:rotate(45deg); opacity:.55; transition:transform .2s ease; }
.hm-phone.is-open .hm-cc-caret{ transform:rotate(225deg); margin-top:3px; }
.hm-phone .hm-phone-input{ flex:1 1 auto; min-width:0; width:auto !important; height:100% !important; margin:0 !important; padding:0 16px !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; outline:0 !important; font:inherit; color:inherit; }
.hm-phone .hm-phone-input::placeholder{ color:#9aa8b8; }

.hm-cc-panel{ position:absolute; z-index:60; top:calc(100% + 8px); left:0; width:min(340px, calc(100vw - 32px)); padding:10px; background:#fff; color:#0b1b2e; border:1px solid rgba(11,27,46,.12); border-radius:16px; box-shadow:0 24px 60px rgba(11,27,46,.22); }
.hm-cc-panel[hidden]{ display:none; }
.hm-cc-search{ display:block; width:100%; height:42px; margin:0 0 8px; padding:0 14px; border:1.5px solid #dbe3ec; border-radius:10px; background:#f8fafc; color:#0b1b2e; font-size:14.5px; box-sizing:border-box; outline:0; }
.hm-cc-search:focus{ border-color:#256199; background:#fff; }
.hm-cc-list{ max-height:240px; margin:0; padding:0; overflow:auto; list-style:none; }
.hm-cc-list li{ display:flex; align-items:center; gap:10px; margin:0; padding:9px 10px; border-radius:10px; font-size:14.5px; line-height:1.3; cursor:pointer; list-style:none; }
.hm-cc-list li[hidden]{ display:none; }
.hm-cc-list li.is-active{ background:#f3f7fb; }
.hm-cc-list li[aria-selected="true"] .hm-cc-name{ font-weight:700; }
.hm-cc-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hm-cc-d{ flex:0 0 auto; color:#5a6a7d; font-variant-numeric:tabular-nums; }
.sd-form .sd-recaptcha{ max-width:100%; overflow:hidden; }
@media (prefers-reduced-motion:reduce){ .hm-phone, .hm-cc-caret{ transition:none; } }
/* ================= QUOTE POPUP (common enquiry modal) ================= */
html.hm-modal-open{ overflow:hidden; }
.hm-modal{ position:fixed; inset:0; z-index:1300; display:flex; padding:20px; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  visibility:hidden; opacity:0; transition:opacity .28s ease, visibility 0s linear .28s; }
.hm-modal.is-open{ visibility:visible; opacity:1; transition:opacity .28s ease, visibility 0s; }
.hm-modal-backdrop{ position:fixed; inset:0; background:rgba(7,17,31,.62); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.hm-modal-card{ position:relative; width:100%; max-width:640px; margin:auto; padding:clamp(24px,4vw,44px); border-radius:28px; background:#fff;
  box-shadow:0 30px 80px rgba(7,17,31,.35); outline:0; transform:translateY(24px) scale(.98); transition:transform .32s cubic-bezier(.2,.8,.2,1); overflow:visible; }
.hm-modal.is-open .hm-modal-card{ transform:none; }
.hm-modal-x{ position:absolute; top:14px; right:14px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:50%;
  background:#f3f7fb; color:#0b1b2e; cursor:pointer; transition:background .2s ease, transform .2s ease; }
.hm-modal-x:hover{ background:#e4ecf5; transform:rotate(90deg); }
.hm-modal-x:focus-visible{ outline:2px solid #256199; outline-offset:2px; }
.hm-modal-x svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.hm-modal-card h3{ margin:0 44px 8px 0; font-size:clamp(22px,3vw,28px); color:var(--hm-ink); }
.hm-modal-sub{ margin:0 0 24px !important; font-size:15px; }
.hm-modal .hm-fields{ gap:16px; }
.hm-modal .hm-form textarea.hm-input{ min-height:110px; }
.hm-modal .hm-captcha{ max-width:100%; }
@media (max-width:575.98px){
  .hm-modal{ padding:10px; }
  .hm-modal-card{ padding:26px 18px 22px; border-radius:22px; }
  .hm-modal-x{ top:10px; right:10px; width:40px; height:40px; }
  .hm-modal-card h3{ margin-right:40px; }
  .hm-modal-sub{ margin-bottom:18px; font-size:14.5px; }
  .hm-modal .hm-fields{ gap:14px; }
  .hm-modal .hm-form .hm-input, .hm-modal .hm-phone .hm-phone-input{ font-size:16px; }   /* stops iOS zooming into the field */
  .hm-modal .hm-form .hm-input{ height:52px; }
  .hm-modal .hm-form textarea.hm-input{ height:auto; min-height:96px; }
  .hm-modal .hm-submit .hm-btn{ width:100%; min-width:0; }
}
@media (max-width:339.98px){
  .hm-modal .hm-captcha{ height:64px; }
  .hm-modal .hm-captcha .g-recaptcha{ transform:scale(.8); transform-origin:0 0; }
}
@media (max-height:520px) and (orientation:landscape){ .hm-modal{ padding:8px; } .hm-modal-card{ padding:20px 22px; } }
@media (prefers-reduced-motion:reduce){ .hm-modal, .hm-modal-card, .hm-modal-x{ transition:none; transform:none; } }