/* ==========================================================================
   Trang chủ (index.html) — page styles, scoped under .p-home (boot() adds it).
   Shared components come from app.css; this file only lays out home sections
   and adds the few home-only pieces (bento gallery, method steps, map facade…).
   ========================================================================== */

/* anchor offset under the sticky header: html{ scroll-padding-top } in app.css */
.p-home #dang-ky{ scroll-margin-top:12px; }

/* horizontal swipe rows on phones (flash, coupons, resources, categories) */
.p-home .hm-swipe{ scrollbar-width:none; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
.p-home .hm-swipe::-webkit-scrollbar{ display:none; }

/* --------------------------------------------------------------------------
   HERO additions
   -------------------------------------------------------------------------- */
/* the photo strip under the hero on phones: real class photos, slightly larger frames */
@media (max-width:959px){
  .p-home .hm-hero .ta-hero__strip{ margin-top:16px; }
}

/* --------------------------------------------------------------------------
   SKELETONS (home-only shapes)
   -------------------------------------------------------------------------- */
.p-home .hm-skel-tile{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:14px 10px; border-radius:var(--ta-r-xl); background:#fff; border:1px solid #EFE4D4; }
.p-home .hm-skel-tile__art{ width:66px; height:66px; border-radius:16px; flex:0 0 auto; }
.p-home .hm-skel-tile__txt{ display:grid; gap:8px; width:100%; justify-items:center; }
.p-home .hm-skel-tile__txt .ta-skel{ width:80%; }
.p-home .hm-skel-tile__txt .ta-skel.w40{ width:45%; }
@media (min-width:600px){
  .p-home .hm-skel-tile{ flex-direction:row; padding:12px; }
  .p-home .hm-skel-tile__txt{ justify-items:start; }
}
.p-home .hm-flash-skel .ta-flash__head{ min-height:96px; }
.p-home .hm-skel-pill{ width:min(260px, 70%); height:30px; border-radius:99px; background:rgba(255,255,255,.22); }
.p-home .hm-skel-pill--sm{ width:200px; height:44px; border-radius:10px; }
.p-home .hm-skel-tabs{ display:flex; gap:10px; margin-bottom:16px; }
.p-home .hm-skel-tabs .ta-skel{ width:110px; height:34px; border-radius:99px; }
.p-home .hm-skel-rows{ display:grid; }
.p-home .hm-skel-row{ display:flex; align-items:center; gap:14px; padding:14px; border-bottom:1px solid var(--ta-line); }
.p-home .hm-skel-row .ta-skel--date{ width:58px; height:46px; }
.p-home .hm-skel-row__txt{ flex:1; display:grid; gap:8px; }
.p-home .hm-skel-row__btn{ width:86px; flex:0 0 auto; }
.p-home .hm-skel-fill{ position:absolute; inset:0; border-radius:inherit; }

/* --------------------------------------------------------------------------
   CATEGORY TILES
   -------------------------------------------------------------------------- */
.p-home .hm-cats .ta-grid--cats{ min-height:150px; }
@media (max-width:1023px){
  .p-home .hm-cats .ta-grid--cats{
    grid-template-columns:none; grid-auto-flow:column; grid-template-rows:repeat(2, auto); grid-auto-columns:41%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding:2px 2px 8px; margin-inline:-2px;
    scrollbar-width:none;
  }
  .p-home .hm-cats .ta-grid--cats::-webkit-scrollbar{ display:none; }
  .p-home .hm-cats .ta-grid--cats > *{ scroll-snap-align:start; }
}
@media (min-width:600px) and (max-width:1023px){ .p-home .hm-cats .ta-grid--cats{ grid-auto-columns:31%; gap:12px; } }

/* --------------------------------------------------------------------------
   FLASH SALE
   -------------------------------------------------------------------------- */
.p-home .hm-flash .ta-flash__note{ max-width:62rem; margin-inline:auto; }
@media (min-width:1024px) and (max-width:1199px){
  .p-home .hm-flash__grid.ta-grid--5{ gap:12px; }
}
@media (max-width:767px){
  .p-home .hm-flash__grid{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:46%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding:2px 4px 6px; scrollbar-width:none;
  }
  .p-home .hm-flash__grid::-webkit-scrollbar{ display:none; }
  .p-home .hm-flash__grid > *{ scroll-snap-align:start; }
}

/* --------------------------------------------------------------------------
   COUPONS
   -------------------------------------------------------------------------- */
.p-home .hm-coupons__grid{ display:grid; gap:12px; grid-template-columns:repeat(2, minmax(0,1fr)); }
@media (min-width:1100px){ .p-home .hm-coupons__grid{ grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; } }
@media (max-width:599px){
  .p-home .hm-coupons__grid{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:86%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding:2px 2px 8px; scrollbar-width:none;
  }
  .p-home .hm-coupons__grid::-webkit-scrollbar{ display:none; }
  .p-home .hm-coupons__grid > *{ scroll-snap-align:start; }
}

/* --------------------------------------------------------------------------
   PRODUCT FAMILIES (tabs)
   -------------------------------------------------------------------------- */
.p-home .hm-tabs{ margin-bottom:16px; }
.p-home .hm-tabs__n{ display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; margin-left:7px; border-radius:99px; background:var(--ta-cream); border:1px solid var(--ta-line-2); font-size:11px; font-weight:800; line-height:1; color:var(--ta-muted); vertical-align:1px; }
.p-home .ta-tabs__btn[aria-selected="true"] .hm-tabs__n{ background:var(--ta-red); border-color:var(--ta-red); color:#fff; }
.p-home .hm-tabpanel:focus-visible{ outline-offset:6px; }
.p-home .hm-tabpanel:not([hidden]){ animation:hmFade .35s var(--ta-ease-out); }
@keyframes hmFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.p-home .hm-family__body{ min-height:200px; }
.p-home .hm-family__foot{ display:none; justify-content:center; margin-top:14px; }
.p-home .hm-family__foot .ta-btn .ta-ico{ width:15px; height:15px; }
@media (max-width:767px){
  /* phones: 4 cards per tab (2 rows), the rest one tap away */
  .p-home .hm-tabpanel > .ta-card:nth-child(n+5){ display:none; }
  .p-home .hm-family__foot{ display:flex; }
  .p-home .hm-family .ta-sec__head > .ta-sec__more{ display:none; }
}
.p-home .hm-family__body[aria-busy="false"]{ min-height:0; }

/* --------------------------------------------------------------------------
   PROGRAMS
   -------------------------------------------------------------------------- */
.p-home .hm-skills{ display:flex; flex-wrap:wrap; gap:6px; margin:-2px 0 16px; }

/* --------------------------------------------------------------------------
   SCHEDULE
   -------------------------------------------------------------------------- */
.p-home .hm-schedule__where{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:rgba(255,255,255,.95); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.p-home .hm-schedule__where .ta-ico{ width:15px; height:15px; color:#FFD66B; flex:0 0 auto; }
.p-home .hm-schedule__box .ta-box__head{ min-width:0; }
.p-home .hm-schedule__box .ta-box__title{ margin:0; flex:0 0 auto; }
.p-home .hm-kg__title{ display:grid; gap:3px; justify-items:start; }
.p-home .hm-kg__badges{ display:flex; flex-wrap:wrap; gap:5px; margin-bottom:2px; }
.p-home .hm-kg__badges .ta-badge{ height:20px; font-size:9.5px; box-shadow:none; }
.p-home .hm-kg__prog{ font-size:12px; font-weight:600; color:var(--ta-muted); }
.p-home .hm-kg .ta-table__strong{ font-size:14.5px; line-height:1.35; }
.p-home .hm-kg td{ vertical-align:middle; }
.p-home .hm-kg .ta-table__action{ text-align:right; }
.p-home .hm-kg .ta-table__action .ta-btn{ white-space:nowrap; }
@media (min-width:768px) and (max-width:1023px){ .p-home .hm-kg th, .p-home .hm-kg td{ padding-inline:10px; } .p-home .hm-kg .ta-table__lead{ min-width:200px; } }
@media (min-width:768px){ .p-home .hm-kg .ta-table__lead{ min-width:240px; } }
.p-home .hm-kg__mdate{ display:none; }
@media (max-width:767px){
  .p-home .hm-kg tr{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px; padding:14px; }
  .p-home .hm-kg td{ display:block; padding:0; text-align:left; }
  .p-home .hm-kg td::before{ display:none; }
  .p-home .hm-kg td.ta-table__lead{ grid-column:1 / -1; display:flex; justify-content:flex-start; align-items:flex-start; gap:12px; font-size:14px; }
  .p-home .hm-kg__mdate{ display:grid; justify-items:center; align-content:center; flex:0 0 auto; width:52px; padding:6px 2px; border-radius:10px; background:var(--ta-g-gold); color:#4A2A00; font-size:10px; font-weight:800; text-transform:uppercase; line-height:1.1; box-shadow:var(--ta-sh-gold); }
  .p-home .hm-kg__mdate b{ font-size:19px; font-weight:900; }
  .p-home .hm-kg td[data-label="Lịch học"]{ grid-column:1 / -1; font-size:13px; color:var(--ta-text-2); padding-left:64px; }
  .p-home .hm-kg td[data-label="Bắt đầu"]{ display:none; }
  .p-home .hm-kg td[data-label="Tình trạng"]{ padding-left:64px; }
  .p-home .hm-kg td.ta-table__action{ padding:0; text-align:right; }
  .p-home .ta-table--stack.hm-kg td.ta-table__action .ta-btn{ width:auto; min-width:96px; }
}
.p-home .hm-schedule__cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 18px; margin-top:14px; }
.p-home .hm-schedule__fee{ display:flex; align-items:flex-start; gap:8px; font-size:13.5px; color:var(--ta-text-2); max-width:44rem; }
.p-home .hm-schedule__fee:empty{ display:none; }
.p-home .hm-schedule__fee .ta-ico{ width:16px; height:16px; margin-top:3px; color:var(--ta-red); }
.p-home .hm-schedule__empty{ padding:14px; }
.p-home .hm-schedule__empty .ta-empty{ border:0; }
@media (max-width:599px){ .p-home .hm-schedule__cta .ta-cluster{ width:100%; } .p-home .hm-schedule__cta .ta-cluster .ta-btn{ flex:1 1 100%; } }

/* --------------------------------------------------------------------------
   ONLINE COURSES · student strip
   -------------------------------------------------------------------------- */
@media (min-width:768px){ .p-home #hm-courses, .p-home #hm-posts{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; } }
@media (min-width:1024px){ .p-home #hm-courses, .p-home #hm-posts{ gap:20px; } }
.p-home .hm-student{ display:flex; align-items:center; gap:12px; margin-top:16px; padding:12px 14px; border-radius:var(--ta-r-lg); background:var(--ta-ink-50); border:1px dashed #A9D3E1; }
.p-home .hm-student__ico{ width:42px; height:42px; flex:0 0 auto; border-radius:50%; display:grid; place-items:center; background:#fff; color:var(--ta-ink); box-shadow:0 4px 10px rgba(10,111,143,.15); }
.p-home .hm-student__ico .ta-ico{ width:20px; height:20px; }
.p-home .hm-student__text{ flex:1; min-width:0; font-size:13.5px; line-height:1.5; color:var(--ta-text-2); }
.p-home .hm-student__text b{ color:var(--ta-ink-700); }
@media (max-width:599px){ .p-home .hm-student{ flex-wrap:wrap; } .p-home .hm-student .ta-btn{ width:100%; } }

/* --------------------------------------------------------------------------
   TEAM & METHOD
   -------------------------------------------------------------------------- */
.p-home .hm-team__grid{ display:grid; gap:16px; }
.p-home .hm-team__photo{ position:relative; margin:0; border-radius:var(--ta-r-2xl); overflow:hidden; background:#2A0B0D; border:5px solid #fff; box-shadow:0 0 0 2px var(--ta-gold-300), 0 18px 40px rgba(60,10,10,.18); }
.p-home .hm-team__photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 40%; }
.p-home .hm-team__photo figcaption{ position:absolute; left:0; right:0; bottom:0; display:grid; gap:2px; padding:56px 18px 16px; color:#fff; background:linear-gradient(180deg, rgba(50,8,10,0), rgba(50,8,10,.86)); }
.p-home .hm-team__script{ font-family:var(--ta-font-script); font-size:clamp(28px, 1rem + 1.6vw, 42px); line-height:1.1; color:#FFE7A3; text-shadow:0 2px 8px rgba(0,0,0,.35); }
.p-home .hm-team__cap{ font-size:13px; font-weight:600; color:rgba(255,255,255,.92); }
.p-home .hm-steps{ list-style:none; display:grid; gap:10px; }
.p-home .hm-step{ display:flex; align-items:center; gap:14px; padding:12px 14px 12px 12px; background:#fff; border:1px solid #EFEAE4; border-radius:var(--ta-r-xl); box-shadow:var(--ta-sh-card); transition:transform .2s var(--ta-ease), box-shadow .2s; }
.p-home .hm-step:hover{ transform:translateX(3px); box-shadow:var(--ta-sh-card-h); }
.p-home .hm-step__ph{ flex:0 0 auto; width:76px; height:76px; border-radius:50%; padding:3px; background:var(--ta-g-gold); box-shadow:var(--ta-sh-gold); }
.p-home .hm-step__ph img{ width:100%; height:100%; object-fit:cover; border-radius:50%; border:2px solid #fff; }
.p-home .hm-step__body{ position:relative; flex:1; min-width:0; }
.p-home .hm-step__num{ position:absolute; right:0; top:-6px; font-family:var(--ta-font-display); font-weight:900; font-size:30px; line-height:1; color:var(--ta-gold-500); opacity:.55; }
.p-home .hm-step__title{ padding-right:44px; font-family:var(--ta-font-title); font-weight:700; font-size:17px; line-height:1.3; color:var(--ta-maroon-500); }
.p-home .hm-step__text{ margin-top:3px; font-size:13.5px; line-height:1.5; color:var(--ta-text-2); }
@media (min-width:960px){
  .p-home .hm-team__grid{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:24px; align-items:stretch; }
  .p-home .hm-team__photo{ min-height:420px; }
  .p-home .hm-team__photo img{ position:absolute; inset:0; height:100%; aspect-ratio:auto; }
  .p-home .hm-steps{ grid-template-rows:repeat(4, 1fr); }
  .p-home .hm-step__ph{ width:84px; height:84px; }
}

/* --------------------------------------------------------------------------
   GALLERY (bento + lightbox)
   -------------------------------------------------------------------------- */
.p-home .hm-gallery__filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.p-home .hm-gallery__filters:empty{ display:none; }
.p-home .hm-gallery__filters .ta-chip{ padding:7px 14px; font-size:12.5px; min-height:34px; }
.p-home .hm-bento{ display:grid; gap:8px; grid-template-columns:repeat(2, minmax(0,1fr)); grid-auto-rows:150px; grid-auto-flow:dense; }
.p-home .hm-bento__item{ position:relative; display:block; overflow:hidden; border-radius:var(--ta-r-lg); background:#5A3B33; box-shadow:var(--ta-sh-card); cursor:zoom-in; isolation:isolate; }
.p-home .hm-bento__item:first-child{ grid-column:span 2; grid-row:span 2; }
.p-home .hm-bento__item img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ta-ease); }
.p-home .hm-bento__item:hover img{ transform:scale(1.05); }
.p-home .hm-bento__item::after{ content:""; position:absolute; inset:30% 0 0; z-index:0; background:linear-gradient(180deg, rgba(40,6,8,0), rgba(40,6,8,.88) 70%); opacity:.0; transition:opacity .25s; pointer-events:none; }
.p-home .hm-bento__item:first-child::after,
.p-home .hm-bento__item:hover::after,
.p-home .hm-bento__item:focus-visible::after{ opacity:1; }
.p-home .hm-bento__tag{ position:absolute; z-index:1; top:8px; left:8px; display:inline-flex; align-items:center; padding:3px 9px; border-radius:99px; background:rgba(255,255,255,.92); color:var(--ta-maroon-600); font-size:10.5px; font-weight:800; letter-spacing:.02em; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.p-home .hm-bento__cap{ position:absolute; z-index:1; left:12px; right:44px; bottom:10px; font-size:12.5px; font-weight:700; line-height:1.35; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.85), 0 0 8px rgba(40,6,8,.6); opacity:0; transform:translateY(6px); transition:opacity .25s, transform .25s; }
.p-home .hm-bento__item:first-child .hm-bento__cap,
.p-home .hm-bento__item:hover .hm-bento__cap,
.p-home .hm-bento__item:focus-visible .hm-bento__cap{ opacity:1; transform:none; }
.p-home .hm-bento__item:first-child .hm-bento__cap{ font-size:14px; }
.p-home .hm-bento__zoom{ position:absolute; z-index:1; right:8px; bottom:8px; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.92); color:var(--ta-maroon-600); box-shadow:0 2px 8px rgba(0,0,0,.2); }
.p-home .hm-bento__zoom svg{ width:15px; height:15px; }
.p-home .hm-bento--few{ grid-auto-rows:220px; }
.p-home .hm-bento > .hm-bento__item[hidden]{ display:none; }
.p-home .hm-gallery__more{ display:flex; justify-content:center; margin-top:14px; }
/* phones: big tile + 6 small; the rest behind "Xem thêm" */
@media (max-width:767px){
  .p-home .hm-bento:not(.is-all) > .hm-bento__item:nth-child(n+8){ display:none; }
}
@media (hover:none){ .p-home .hm-bento__cap{ opacity:1; transform:none; font-size:12.5px; } .p-home .hm-bento__item::after{ opacity:1; } }
@media (min-width:768px){
  .p-home .hm-bento{ grid-template-columns:repeat(4, minmax(0,1fr)); grid-auto-rows:170px; gap:12px; }
}
@media (min-width:1200px){ .p-home .hm-bento{ grid-auto-rows:190px; } }

/* --------------------------------------------------------------------------
   TESTIMONIALS (only real, consented ones)
   -------------------------------------------------------------------------- */
.p-home .hm-reviews__list.is-multi{ display:grid; grid-auto-flow:column; grid-auto-columns:min(860px, 92%); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none; }
.p-home .hm-reviews__list.is-multi::-webkit-scrollbar{ display:none; }
.p-home .hm-reviews__list.is-multi > *{ scroll-snap-align:center; }

/* --------------------------------------------------------------------------
   VALUES & STATS
   -------------------------------------------------------------------------- */
.p-home .hm-pill-h{ margin:0; font-size:inherit; line-height:1.2; }
.p-home .hm-values__grid{ margin-top:18px; }
@media (max-width:767px){
  /* phones: compact value rows (icon left) */
  .p-home .hm-values__grid{ gap:10px; }
  .p-home .hm-values__grid .ta-value{ display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:14px; align-items:start; padding:14px 16px; text-align:left; }
  .p-home .hm-values__grid .ta-value__icon{ grid-row:span 2; width:40px; height:40px; margin:2px 0 0; }
  .p-home .hm-values__grid .ta-value__desc{ margin-top:4px; }
}
.p-home .hm-stats .ta-stat__num span{ font:inherit; }
@media (min-width:768px){ .p-home .hm-stats{ grid-template-columns:repeat(var(--n, 3), minmax(0,1fr)); } }
@media (max-width:767px){
  .p-home .hm-stats{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .p-home .hm-stats > .ta-stat:last-child:nth-child(odd){ grid-column:1 / -1; }
  .p-home .hm-stats .ta-stat{ padding:16px 10px; }
  .p-home .hm-stats .ta-stat__num{ font-size:30px; }
  .p-home .hm-stats .ta-stat__label{ font-size:13px; }
}

/* --------------------------------------------------------------------------
   FREE RESOURCES
   -------------------------------------------------------------------------- */
.p-home .hm-res__panel{
  position:relative; overflow:hidden; display:grid; gap:18px; padding:20px 16px; border-radius:var(--ta-r-2xl);
  background:radial-gradient(220px 140px at 8% 100%, rgba(255,255,255,.7), transparent 70%), radial-gradient(260px 160px at 100% 0%, rgba(255,255,255,.55), transparent 70%), var(--ta-cream-2);
  border:1px solid #E8D2A6; box-shadow:0 12px 30px rgba(120,70,20,.10);
}
.p-home .hm-res__panel::after{ content:""; position:absolute; right:-30px; bottom:-40px; width:160px; height:160px; background:var(--ta-ic-blossom-gold) center/contain no-repeat; opacity:.18; pointer-events:none; }
.p-home .hm-res__intro{ position:relative; z-index:1; display:grid; gap:6px; align-content:center; }
.p-home .hm-res__ctas{ margin-top:10px; }
.p-home .hm-res__grid{ position:relative; z-index:1; display:grid; gap:12px; grid-template-columns:repeat(3, minmax(0,1fr)); }
@media (min-width:960px){
  .p-home .hm-res__panel{ grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr); padding:28px; gap:28px; align-items:center; }
}
@media (max-width:767px){
  .p-home .hm-res__grid{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:58%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding:2px 2px 8px; scrollbar-width:none;
  }
  .p-home .hm-res__grid::-webkit-scrollbar{ display:none; }
  .p-home .hm-res__grid > *{ scroll-snap-align:start; }
}
@media (max-width:599px){ .p-home .hm-res__ctas .ta-btn{ flex:1 1 100%; } }

/* --------------------------------------------------------------------------
   CTV STRIP
   -------------------------------------------------------------------------- */
.p-home .hm-ctv__card{ flex-direction:row; align-items:center; gap:18px; min-height:0; padding:20px 22px; }
.p-home .hm-ctv__icon{ flex:0 0 auto; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; background:var(--ta-g-gold); color:#5A2E00; box-shadow:0 0 0 4px rgba(255,231,163,.25), var(--ta-sh-gold); }
.p-home .hm-ctv__icon .ta-ico{ width:26px; height:26px; }
.p-home .hm-ctv__text{ display:grid; gap:4px; flex:1; min-width:0; }
.p-home .hm-ctv__card .ta-guide__desc{ max-width:48rem; }
.p-home .hm-ctv__card .ta-guide__cta{ margin-top:0; flex:0 0 auto; }
@media (max-width:767px){
  .p-home .hm-ctv__card{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* --------------------------------------------------------------------------
   REGISTRATION FORM + MAP
   -------------------------------------------------------------------------- */
.p-home .hm-contact__grid{ display:grid; gap:16px; }
@media (min-width:960px){ .p-home .hm-contact__grid{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:20px; align-items:stretch; } }
.p-home .hm-contact__form{ background:#fff; border-radius:var(--ta-r-2xl); border:1px solid #EFE6DC; box-shadow:0 12px 30px rgba(60,20,10,.10); }
.p-home .hm-contact__form .ta-split__title{ margin:0; }
.p-home .hm-type{ border:0; padding:0; margin:0; min-width:0; display:grid; gap:6px; }
.p-home .hm-type legend{ padding:0; margin-bottom:6px; }
.p-home .hm-type__opts{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:4px; padding:4px; border-radius:var(--ta-r-pill); background:#F3EFEB; border:1px solid #E8E1D9; }
.p-home .hm-type__opt{ position:relative; display:block; }
.p-home .hm-type__opt input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.p-home .hm-type__opt span{ display:grid; place-items:center; min-height:40px; height:100%; padding:6px 8px; border-radius:var(--ta-r-pill); text-align:center; font-size:13px; font-weight:800; line-height:1.2; color:var(--ta-text-2); transition:background .15s, color .15s, box-shadow .15s; }
.p-home .hm-type__opt input:checked + span{ background:#fff; color:var(--ta-maroon-600); box-shadow:0 6px 14px rgba(0,0,0,.08), inset 0 0 0 1px rgba(163,21,28,.18); }
.p-home .hm-type__opt input:focus-visible + span{ outline:3px solid rgba(232,38,44,.45); outline-offset:1px; }
.p-home .hm-opt{ font-weight:500; color:var(--ta-muted); }
/* a field with a hint under it is taller: keep its neighbour in the row top-aligned, not stretched */
.p-home .hm-contact__form .ta-field{ align-content:start; }
.p-home .hm-note{ min-height:74px; }
.p-home .hm-form__foot{ font-size:12px; color:var(--ta-muted); text-align:center; }
.p-home .hm-pulse{ animation:hmPulse 1.2s var(--ta-ease-out); border-radius:12px; }
@keyframes hmPulse{ 0%{ box-shadow:0 0 0 0 rgba(255,183,3,.0); } 20%{ box-shadow:0 0 0 6px rgba(255,183,3,.45); } 100%{ box-shadow:0 0 0 14px rgba(255,183,3,0); } }

.p-home .hm-thanks{ display:grid; justify-items:center; gap:10px; padding:28px 8px 12px; text-align:center; outline:0; }
.p-home .hm-thanks__icon{ width:70px; height:70px; border-radius:50%; display:grid; place-items:center; background:var(--ta-green-50); color:var(--ta-green); box-shadow:0 0 0 8px rgba(22,163,74,.08); }
.p-home .hm-thanks__icon svg{ width:36px; height:36px; }
.p-home .hm-thanks__title{ font-family:var(--ta-font-title); font-weight:700; font-size:24px; color:var(--ta-maroon-500); }
.p-home .hm-thanks__text{ max-width:30rem; font-size:15px; color:var(--ta-text-2); }
.p-home .hm-thanks__evt{ display:flex; gap:8px; align-items:flex-start; max-width:30rem; padding:10px 12px; border-radius:var(--ta-r-md); background:var(--ta-cream); border:1px dashed #E2C99B; font-size:13.5px; text-align:left; }
.p-home .hm-thanks__evt .ta-ico{ width:16px; height:16px; margin-top:3px; color:var(--ta-red); }
.p-home .hm-thanks__ctas{ justify-content:center; margin-top:6px; }

.p-home .hm-contact__map{ display:flex; flex-direction:column; min-width:0; background:#fff; border-radius:var(--ta-r-2xl); border:1px solid #EFE6DC; box-shadow:0 12px 30px rgba(60,20,10,.10); overflow:hidden; }
.p-home .hm-map{ position:relative; flex:1 1 auto; min-height:230px; background:#ECE5D8; }
@media (min-width:960px){ .p-home .hm-map{ min-height:280px; } }
.p-home .hm-map iframe{ position:absolute; inset:0; z-index:2; width:100%; height:100%; border:0; }
.p-home .hm-map__facade{
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 74% 26%, #CFE3C2 0 46px, transparent 47px),
    radial-gradient(circle at 16% 78%, #D6E8F2 0 38px, transparent 39px),
    linear-gradient(28deg, transparent 0 46%, #FFF7E3 46% 49.5%, #F4C76A 49.5% 50.5%, #FFF7E3 50.5% 54%, transparent 54%),
    repeating-linear-gradient(0deg, transparent 0 44px, rgba(255,255,255,.95) 44px 50px),
    repeating-linear-gradient(90deg, transparent 0 62px, rgba(255,255,255,.95) 62px 68px),
    #E9E1D2;
}
.p-home .hm-map__pin{ position:absolute; left:50%; top:46%; width:52px; height:52px; margin:-26px 0 0 -26px; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(180deg, var(--ta-red-hi), var(--ta-maroon-600)); box-shadow:0 10px 22px rgba(120,10,10,.35), 0 0 0 6px rgba(210,35,34,.18); }
.p-home .hm-map__pin::after{ content:""; position:absolute; inset:-14px; border-radius:50%; border:2px solid rgba(210,35,34,.35); animation:hmRing 2.2s ease-out infinite; }
.p-home .hm-map__pin .ta-ico{ width:24px; height:24px; }
@keyframes hmRing{ from{ transform:scale(.7); opacity:1; } to{ transform:scale(1.5); opacity:0; } }
.p-home .hm-map__load{ position:absolute; z-index:1; left:50%; bottom:14px; transform:translateX(-50%); white-space:nowrap; }
.p-home .hm-map__load:hover{ transform:translate(-50%, -1px); }
.p-home .hm-map__info{ list-style:none; display:grid; gap:12px; padding:16px 18px 4px; }
.p-home .hm-map__info li{ display:flex; gap:12px; font-size:14px; line-height:1.45; }
.p-home .hm-map__info .ta-ico{ width:18px; height:18px; margin-top:2px; color:var(--ta-red); }
.p-home .hm-map__info li > span{ display:grid; gap:1px; min-width:0; }
.p-home .hm-map__info b{ font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ta-muted); }
.p-home .hm-map__info a{ font-weight:800; color:var(--ta-maroon-600); overflow-wrap:anywhere; }
.p-home .hm-map__info a:hover{ text-decoration:underline; text-underline-offset:3px; }
.p-home .hm-map__ctas{ display:flex; flex-wrap:wrap; gap:8px; padding:12px 18px 18px; }
.p-home .hm-map__ctas .ta-btn{ flex:1 1 auto; }

/* --------------------------------------------------------------------------
   REDUCED MOTION
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .p-home .hm-tabpanel:not([hidden]),
  .p-home .hm-pulse,
  .p-home .hm-map__pin::after{ animation:none !important; }
  .p-home .hm-step:hover,
  .p-home .hm-bento__item:hover img{ transform:none; }
}
