/* ============================================================
   Hung Viet Land — vỏ giao diện trên Flatsome
   Nạp SAU flatsome-main để token màu ghi đè được.
   ============================================================ */

:root{
  --hvl-ink:#201e1d; --hvl-paper:#f3f2f2; --hvl-surface:#e9e7e6;
  --hvl-b:#7a2e3e;
  --hvl-b-100:#fbf0f2; --hvl-b-200:#f2dade; --hvl-b-300:#e3b6bf;
  --hvl-b-500:#a75d70; --hvl-b-700:#7a2e3e; --hvl-b-800:#5b2130; --hvl-b-900:#3c1620;
  --hvl-g:#c99a3f;
  --hvl-g-200:#f7e8c6; --hvl-g-400:#ddb96a; --hvl-g-500:#c99a3f; --hvl-g-700:#8c6624;
  --hvl-chrome:"Montserrat",system-ui,-apple-system,sans-serif;
  --hvl-serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --hvl-wrap:1280px;
}

/* ---------------------------------------------------------- nền tảng */

body{ background:var(--hvl-paper); color:var(--hvl-ink); font-family:var(--hvl-serif); }
h1,h2,h3,h4,h5,h6{ font-family:var(--hvl-serif); font-weight:600; letter-spacing:-.01em; text-wrap:pretty; }
a{ color:var(--hvl-b-700); }
a:hover{ color:var(--hvl-b-500); }
.hvl-wrap{ max-width:var(--hvl-wrap); margin:0 auto; padding:0 32px; }

/* Chrome giao diện dùng sans của logo; nội dung đọc giữ serif. */
.hvl-chrome,.button,.hvl-tag,.hvl-label,.hvl-num,
.header-nav-main a,.nav > li > a{ font-family:var(--hvl-chrome); }

/* --------------------------------------------------- header Flatsome */

/* Menu căn giữa. Flatsome dùng .header-nav-main trong .flex-row. */
.header-nav-main{ margin-left:auto; margin-right:auto; }
.header-main .nav > li > a{
  font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--hvl-ink);
}
.header-main .nav > li.active > a,
.header-main .nav > li > a:hover{ color:var(--hvl-b-700); }
.header-main .nav > li > a::after{ border-color:var(--hvl-b-700) !important; }
.header-bottom{ border-bottom:3px solid var(--hvl-b-700); }

/* header.php dựng menu bằng wp_nav_menu() thuần, không qua walker mega-menu
   riêng của Flatsome — nên CSS dropdown gốc của Flatsome không áp dụng được
   cho markup này (thiếu lớp nội bộ Flatsome cần). Viết CSS dropdown độc lập
   ở đây, không phụ thuộc lớp Flatsome, chỉ dùng đúng lớp WordPress mặc định
   (.nav, li.menu-item-has-children, ul.sub-menu) đang thực sự xuất ra. */
.header-nav-main .nav{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  list-style:none; margin:0; padding:0; gap:2px;
}
.header-nav-main .nav > li{ position:relative; }
.header-nav-main .nav > li > a{
  display:block; padding:14px 14px; text-decoration:none; white-space:nowrap;
}
.header-nav-main .sub-menu{
  display:none; position:absolute; top:100%; left:0; z-index:100;
  list-style:none; margin:0; padding:8px 0; min-width:230px;
  background:#fff; border-radius:4px; box-shadow:0 10px 28px rgba(32,30,29,.14);
}
.header-nav-main li.menu-item-has-children:hover > .sub-menu,
.header-nav-main li.menu-item-has-children:focus-within > .sub-menu{ display:block; }
.header-nav-main .sub-menu li{ list-style:none; }
.header-nav-main .sub-menu a{
  display:block; padding:9px 20px; white-space:nowrap; text-decoration:none;
  font-size:13px; font-weight:500; text-transform:none; letter-spacing:normal; color:var(--hvl-ink);
}
.header-nav-main .sub-menu a:hover{ background:var(--hvl-b-100); color:var(--hvl-b-700); }

@media (max-width:900px){
  .header-nav-main .nav{ flex-direction:column; align-items:flex-start; gap:0; }
  .header-nav-main .nav > li{ width:100%; }
  .header-nav-main .sub-menu{
    position:static; box-shadow:none; padding-left:14px; display:block; min-width:0;
  }
}

/* Hàng logo + 2 nút CTA đè lên nhau ở màn hẹp vì flex hàng ngang không co lại
   được — dựng lại thành cột trên mobile. */
@media (max-width:640px){
  .hvl-header-top{ flex-direction:column !important; align-items:flex-start !important; gap:14px !important; }
  .hvl-header-logo{ max-width:100%; }
  .hvl-header-title{ font-size:22px !important; }
  .hvl-header-tagline{ white-space:normal; font-size:9.5px !important; letter-spacing:.12em !important; }
  .hvl-header-cta{ width:100%; flex-wrap:wrap; }
  .hvl-header-cta .button{ flex:1; min-width:140px; text-align:center; }
  /* Flatsome tự đặt height cố định cho .header-main (dựa trên header 1 hàng
     nguyên bản) — với layout xếp cột này nội dung cao hơn nhiều, header cố
     định lùn khiến nội dung phía sau (hero, menu) đè lên nhau. */
  .header-main{ height:auto !important; min-height:0 !important; }
  .header-main .header-bottom{ position:relative !important; top:auto !important; }
}
.top-bar{ background:var(--hvl-b-900) !important; }
.top-bar,.top-bar a{ color:#fff !important; font-family:var(--hvl-chrome); font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; }
.top-bar .hvl-slogan{ color:var(--hvl-g-400) !important; }

/* Header dính, thu gọn logo khi cuộn. */
.hvl-stuck .header-main{ box-shadow:0 2px 14px rgba(60,22,32,.14); }
.hvl-stuck .header-main img.header_logo_dark,
.hvl-stuck .header-main .logo img{ max-height:52px !important; transition:max-height .3s cubic-bezier(.2,.7,.2,1); }
.header-main .logo img{ transition:max-height .3s cubic-bezier(.2,.7,.2,1); }
body.admin-bar-showing .sticky-hide-on-scroll,
body.admin-bar-showing .stuck{ top:32px; }

/* ------------------------------------------------------------ nút */

.button.hvl-primary,.button.primary{
  background:var(--hvl-b-700); border-color:var(--hvl-b-700); color:#fff;
  border-radius:2px; font-weight:600; letter-spacing:.01em; text-transform:none;
}
.button.hvl-primary:hover,.button.primary:hover{ background:var(--hvl-b-800); border-color:var(--hvl-b-800); }
.button.hvl-secondary,.button.secondary{
  background:transparent; border:1px solid var(--hvl-b-300); color:var(--hvl-b-700); border-radius:2px; text-transform:none;
}
.button.hvl-secondary:hover{ background:var(--hvl-b-100); border-color:var(--hvl-b-700); }
.button.hvl-gold{ background:var(--hvl-g-500); border-color:var(--hvl-g-500); color:var(--hvl-b-900); font-weight:700; }
:focus-visible{ outline:2px solid var(--hvl-b-700); outline-offset:2px; }

/* --------------------------------------------------------- hero */

.hvl-hero{ position:relative; background:var(--hvl-b-800); color:#fff; overflow:hidden; }
.hvl-hero-media{ position:absolute; inset:0; }
.hvl-hero-media img,.hvl-hero-video{ width:100%; height:100%; object-fit:cover; }
.hvl-hero-media img{ opacity:.62; animation:hvlKen 24s ease-out forwards; }
.hvl-hero-video{ position:absolute; inset:0; opacity:0; transition:opacity .9s ease; }
.hvl-hero-video.hvl-playing{ opacity:1; }
.hvl-hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(60,22,32,.82) 0%,rgba(91,33,48,.46) 52%,rgba(122,46,62,.10) 100%);
}
.hvl-hero-inner{ position:relative; padding:76px 0 64px; }
.hvl-hero h1{ font-size:clamp(34px,5vw,62px); line-height:1.04; margin:0 0 18px; max-width:20ch; color:#fff; }
.hvl-hero .hvl-kicker{ font-family:var(--hvl-chrome); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--hvl-g-400); margin-bottom:20px; }
.hvl-hero p{ font-size:clamp(16px,1.6vw,19px); line-height:1.6; max-width:52ch; }
.hvl-hero-rule{ height:3px; width:180px; background:var(--hvl-g-500); margin:26px 0; transform-origin:left; animation:hvlRule 1.1s .25s cubic-bezier(.2,.7,.2,1) both; }

/* Ô tra cứu nhanh */
.hvl-search{ display:flex; gap:10px; flex-wrap:wrap; max-width:760px; }
.hvl-search input[type=search],.hvl-search input[type=text]{
  flex:1; min-width:260px; min-height:48px; margin:0; border:0; border-radius:2px; background:#fff; font-size:15px;
}
.hvl-chips{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:14px; font-size:12px; }
.hvl-chips a{ font-family:var(--hvl-chrome); padding:5px 12px; border:1px solid rgba(255,255,255,.35); border-radius:2px; color:#fff; }
.hvl-chips a:hover{ background:rgba(255,255,255,.12); color:#fff; }

/* Tiết kiệm 4G của khách: mobile không tải video. */
@media (max-width:768px){ .hvl-hero-video{ display:none; } }

/* ----------------------------------------------------- dải số liệu */

.hvl-stats{ background:var(--hvl-b-100); }
.hvl-stats-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:28px; padding:38px 0; }
.hvl-num{ font-family:var(--hvl-chrome); font-weight:700; font-size:44px; line-height:1; color:var(--hvl-b-700); }
.hvl-stats .hvl-cap{ font-size:14px; margin-top:8px; }
@media (max-width:900px){ .hvl-stats-grid{ grid-template-columns:repeat(2,1fr); } }

/* ----------------------------------------------------------- card */

.hvl-section{ padding:64px 0 0; }
.hvl-section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  border-bottom:2px solid var(--hvl-b-700); padding-bottom:12px;
}
.hvl-section-head h2{ font-size:clamp(24px,3vw,32px); margin:0; }
.hvl-section-head .hvl-sub{ font-size:13px; color:rgba(32,30,29,.55); }

/* ------------------------------------------------------- 6 dịch vụ */

.hvl-services-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-top:8px; }
.hvl-service{ padding:24px 28px 24px 0; border-top:1px solid var(--hvl-b-200); }
.hvl-service-no{ font-family:var(--hvl-chrome); font-weight:700; font-size:22px; color:var(--hvl-g-500); margin-bottom:6px; }
.hvl-service h3{ font-size:19px; margin:0 0 2px; text-transform:uppercase; letter-spacing:.01em; }
.hvl-service-en{ font-family:var(--hvl-chrome); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(32,30,29,.45); margin-bottom:10px; }
.hvl-service p{ font-size:14px; line-height:1.6; margin:0 0 6px; color:rgba(32,30,29,.7); }
.hvl-service-handoff{ font-size:12.5px !important; color:rgba(32,30,29,.5) !important; }
@media (max-width:680px){ .hvl-services-grid{ grid-template-columns:1fr; } .hvl-service{ padding-right:0; } }

.hvl-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:26px; }
.hvl-grid.hvl-grid-list{ grid-template-columns:repeat(auto-fit,minmax(560px,1fr)); gap:24px; }
@media (max-width:1024px){ .hvl-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .hvl-grid,.hvl-grid.hvl-grid-list{ grid-template-columns:1fr; } }

.hvl-card{
  background:#fff; border-radius:2px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 1px 3px rgba(60,22,32,.10);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;
}
.hvl-card:hover{ transform:translateY(-4px); box-shadow:0 10px 28px rgba(60,22,32,.16); }
.hvl-card-media{ aspect-ratio:3/2; overflow:hidden; background:var(--hvl-b-100); }
.hvl-card-media img{ image-rendering:auto; }
.hvl-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.hvl-card:hover .hvl-card-media img{ transform:scale(1.05); }
.hvl-card-body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.hvl-card h3{ font-size:20px; line-height:1.2; margin:0; }
.hvl-card h3 a{ color:inherit; }
.hvl-card-rule{ height:3px; background:var(--hvl-g-500); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.hvl-card:hover .hvl-card-rule{ transform:scaleX(1); }

/* Card ngang ở trang danh sách */
.hvl-card-wide{ display:grid; grid-template-columns:minmax(0,240px) minmax(0,1.35fr); }
.hvl-card-wide .hvl-card-media{ aspect-ratio:auto; min-height:230px; }
.hvl-card-wide .hvl-card-rule{ grid-column:1/-1; }
@media (max-width:680px){ .hvl-card-wide{ grid-template-columns:1fr; } .hvl-card-wide .hvl-card-media{ min-height:0; aspect-ratio:3/2; } }

.hvl-tag{
  display:inline-block; font-size:11px; letter-spacing:.02em; padding:3px 9px; border-radius:2px;
  background:var(--hvl-b-100); color:var(--hvl-b-700);
}
.hvl-tag.hvl-tag-neutral{ background:var(--hvl-surface); color:var(--hvl-ink); }
.hvl-tag.hvl-tag-outline{ background:transparent; border:1px solid var(--hvl-b-300); }
.hvl-posted{ font-family:var(--hvl-chrome); font-size:11px; color:rgba(32,30,29,.5); margin-left:auto; }

/* Bảng thông số trong card: 2 cột, nhãn cố định 88px. */
.hvl-specs{ margin:6px 0 0; display:grid; grid-template-columns:88px minmax(0,1fr); gap:8px 16px; font-size:13.5px; align-items:center; }
.hvl-specs dt{ font-family:var(--hvl-chrome); font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:rgba(32,30,29,.52); margin:0; }
.hvl-specs dd{ margin:0; }

/* Thanh tỷ lệ lấp đầy — chuyển động duy nhất mang thông tin mới. */
.hvl-fill{ display:flex; align-items:center; gap:9px; }
.hvl-fill-track{ height:5px; flex:1; min-width:60px; background:var(--hvl-b-200); border-radius:3px; overflow:hidden; }
.hvl-fill-bar{ display:block; height:100%; background:var(--hvl-g-500); width:var(--fill,0%); transition:width 1.1s .25s cubic-bezier(.2,.7,.2,1); }
.hvl-rv .hvl-fill-bar{ width:0; }
.hvl-rv.hvl-in .hvl-fill-bar{ width:var(--fill,0%); }
.hvl-fill-pct{ font-family:var(--hvl-chrome); font-size:12px; min-width:34px; text-align:right; }

.hvl-card-foot{
  margin-top:auto; padding-top:14px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
  border-top:1px solid var(--hvl-b-200);
}
.hvl-price{ font-family:var(--hvl-chrome); font-weight:700; font-size:17px; line-height:1.25; color:var(--hvl-b-700); }
.hvl-label{ font-family:var(--hvl-chrome); font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:rgba(32,30,29,.52); }

/* -------------------------------------------------------- bộ lọc */

.hvl-filters{
  display:flex; flex-wrap:wrap; gap:24px; align-items:flex-end;
  padding:26px 0 16px; border-bottom:2px solid var(--hvl-b-700);
}
.hvl-filters .hvl-group{ display:flex; gap:8px; flex-wrap:wrap; }
.hvl-filters a{
  font-family:var(--hvl-chrome); font-size:12px; padding:5px 12px; border-radius:2px;
  border:1px solid var(--hvl-b-200); background:var(--hvl-surface); color:var(--hvl-ink);
}
.hvl-filters a.hvl-on{ background:var(--hvl-b-100); border-color:var(--hvl-b-700); color:var(--hvl-b-700); font-weight:600; }
.hvl-filters form{ min-width:250px; flex:1; margin:0; }
.hvl-filters input{ min-height:40px; margin:0; }
.hvl-portfolio{ display:flex; gap:36px; text-align:right; }

/* ----------------------------------------- chi tiết dự án */

.hvl-detail{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:60px; align-items:start; }
.hvl-detail h1{ font-size:clamp(30px,4.4vw,56px); line-height:1.03; margin:0 0 16px; max-width:24ch; }
.hvl-detail .hvl-summary{ font-size:21px; line-height:1.58; max-width:52ch; }
.hvl-aside{ position:sticky; top:24px; background:var(--hvl-b-100); padding:24px; border-radius:2px; }
@media (max-width:1024px){ .hvl-detail{ grid-template-columns:1fr; gap:36px; } .hvl-aside{ position:static; } }

table.hvl-table{ width:100%; border-collapse:collapse; }
table.hvl-table td{ padding:10px 0; border-bottom:1px solid var(--hvl-b-200); vertical-align:top; }
table.hvl-table td:first-child{ width:36%; font-family:var(--hvl-chrome); font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:rgba(32,30,29,.58); }

.hvl-links{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 36px; }
.hvl-links > div{ display:flex; justify-content:space-between; gap:16px; padding-bottom:10px; border-bottom:1px solid var(--hvl-b-200); font-size:14.5px; }
.hvl-links strong{ font-family:var(--hvl-chrome); }
@media (max-width:680px){ .hvl-links{ grid-template-columns:1fr; } }

/* Tiến độ pháp lý 5 cửa */
.hvl-progress{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.hvl-progress .bar{ height:5px; border-radius:3px; background:var(--hvl-b-200); }
.hvl-progress .done .bar{ background:var(--hvl-b-700); }
.hvl-progress .now  .bar{ background:var(--hvl-g-500); }
.hvl-progress .name{ font-family:var(--hvl-chrome); font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-top:9px; color:rgba(32,30,29,.45); }
.hvl-progress .done .name,.hvl-progress .now .name{ color:var(--hvl-ink); }
.hvl-progress .note{ font-size:12px; margin-top:3px; color:rgba(32,30,29,.55); }
@media (max-width:680px){ .hvl-progress{ grid-template-columns:repeat(2,1fr); } }

/* ------------------------------------------------ tin tức & bài viết */

.hvl-news-item{ display:grid; grid-template-columns:340px 1fr; gap:36px; padding:30px 0; border-bottom:1px solid var(--hvl-b-200); align-items:start; }
.hvl-news-item h3{ font-size:clamp(20px,2.4vw,30px); line-height:1.16; margin:0 0 10px; max-width:44ch; }
.hvl-news-item p{ font-size:16.5px; line-height:1.6; color:rgba(32,30,29,.66); max-width:58ch; }
.hvl-news-date{ font-family:var(--hvl-chrome); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--hvl-g-700); margin-bottom:6px; }
@media (max-width:768px){ .hvl-news-item{ grid-template-columns:1fr; gap:16px; } }

.hvl-article{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:64px; align-items:start; }
.hvl-article h1{ font-size:clamp(30px,4.6vw,58px); line-height:1.04; margin:0 0 20px; max-width:26ch; }
.hvl-article .hvl-stand{ font-size:22px; line-height:1.55; font-style:italic; max-width:44ch; color:rgba(32,30,29,.72); }
.hvl-article .entry-content p,.hvl-article > article p{ font-size:19px; line-height:1.72; max-width:62ch; }
@media (max-width:1024px){ .hvl-article{ grid-template-columns:1fr; gap:36px; } }

/* -------------------------------------------------------- dải CTA */

.hvl-cta-band{ background:var(--hvl-b-800); color:#fff; }
.hvl-cta-band .hvl-wrap{ display:flex; gap:28px; align-items:center; flex-wrap:wrap; padding:34px 32px; }
.hvl-cta-band h2{ font-size:clamp(20px,2.4vw,25px); line-height:1.25; margin:0; color:#fff; }

/* --------------------------------------------------------- footer */

.hvl-footer{ background:var(--hvl-b-800); color:#fff; border-top:3px solid var(--hvl-b-900); }
.hvl-footer a{ color:#fff; }
.hvl-footer a:hover{ color:var(--hvl-g-400); }
.hvl-footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding:44px 32px 52px; }
.hvl-footer h4{ font-family:var(--hvl-chrome); font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--hvl-g-400); margin:0 0 10px; }
.hvl-footer .hvl-co{ font-family:var(--hvl-chrome); font-weight:700; font-size:17px; color:var(--hvl-g-400); margin-bottom:10px; }
.hvl-footer li{ list-style:none; line-height:2.1; font-size:13.5px; }
.hvl-footer ul{ margin:0; padding:0; }
.hvl-slide{ display:inline-block; transition:transform .25s cubic-bezier(.2,.7,.2,1); }
.hvl-slide:hover{ transform:translateX(4px); }
@media (max-width:900px){ .hvl-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .hvl-footer-grid{ grid-template-columns:1fr; } }

/* ------------------------------------------------------ bản đồ */

#hvl-map{ height:520px; border:1px solid var(--hvl-b-200); border-radius:2px; }
@media (max-width:768px){ #hvl-map{ height:380px; } }
.leaflet-container{ font-family:var(--hvl-serif); background:var(--hvl-paper); }
.hvl-pin{
  display:block; width:14px; height:14px; border-radius:50%; background:var(--hvl-b);
  box-shadow:0 0 0 3px var(--hvl-paper),0 1px 4px rgba(0,0,0,.4);
  transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s;
}
.hvl-pin.ccn{ background:var(--hvl-g); }
.hvl-pin.kho{ background:var(--hvl-ink); }
.hvl-pin.on{ transform:scale(1.9); box-shadow:0 0 0 4px var(--hvl-paper),0 0 0 9px rgba(122,46,62,.22),0 2px 8px rgba(0,0,0,.4); }
.hvl-map-legend{ display:flex; gap:20px; list-style:none; margin:12px 0 0; padding:0; font-size:13px; flex-wrap:wrap; }
.hvl-map-legend i{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; }
.hvl-map-legend .kcn{ background:var(--hvl-b); }
.hvl-map-legend .ccn{ background:var(--hvl-g); }
.hvl-map-legend .kho{ background:var(--hvl-ink); }
.hvl-map-note{ font-size:12.5px; color:rgba(32,30,29,.6); margin-top:8px; }
.hvl-pop{ display:grid; gap:6px; font-size:13px; }
.hvl-pop img{ width:100%; height:110px; object-fit:cover; }
.hvl-pop strong{ font-size:15px; }
.hvl-pop .legal{ color:var(--hvl-b-700); }

/* ------------------------------------------------- form & chuyển động */

.hvl-form{ display:flex; flex-direction:column; gap:11px; }
.hvl-form label{ font-family:var(--hvl-chrome); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:rgba(32,30,29,.6); margin-bottom:4px; display:block; }
.hvl-form input,.hvl-form textarea{ margin:0; border-radius:2px; border:1px solid var(--hvl-b-200); background:#fff; }
.hvl-form input:focus,.hvl-form textarea:focus{ border-color:var(--hvl-b-700); box-shadow:none; }
.hvl-check{ display:flex; gap:8px; align-items:flex-start; font-size:13px; }
.hvl-ok{ background:var(--hvl-b-100); border-left:3px solid var(--hvl-b-700); padding:12px 16px; margin-bottom:14px; }

@keyframes hvlKen{ from{ transform:scale(1.05); } to{ transform:scale(1.15); } }
@keyframes hvlRule{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.hvl-rv{ opacity:0; transform:translateY(14px); transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); }
.hvl-rv.hvl-in{ opacity:1; transform:none; }
.hvl-arrow{ display:inline-block; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.hvl-cta:hover .hvl-arrow{ transform:translateX(5px); }

@media (prefers-reduced-motion:reduce){
  .hvl-rv,.hvl-rv.hvl-in{ opacity:1 !important; transform:none !important; transition:none; }
  .hvl-hero-media img,.hvl-hero-rule{ animation:none; }
  .hvl-card:hover,.hvl-slide:hover{ transform:none; }
  .hvl-pin{ transition:none; }
  .hvl-fill-bar,.hvl-rv .hvl-fill-bar,.hvl-rv.hvl-in .hvl-fill-bar{ transition:none; width:var(--fill,0%); }
  .hvl-hero-video{ display:none; }
}
