/* Home Style Library reusable components */
:root{
  --hsl-bg:#e5e5e3;--hsl-surface:#f4f4f2;--hsl-surface-2:#d8d8d5;
  --hsl-text:#0a0a0a;--hsl-muted:#626262;--hsl-accent:#555555;
  --hsl-line:rgba(0,0,0,.13);--hsl-radius:24px;--hsl-radius-sm:16px;
  --hsl-shadow:0 18px 50px rgba(0,0,0,.10);--hsl-section-space:88px;
  --hsl-body-font:Inter,Arial,sans-serif;--hsl-heading-font:"Cormorant Garamond",Georgia,serif;
  --hsl-icon-box-bg:#f4f4f2;--hsl-icon-box-text:#0a0a0a;--hsl-icon-box-border:rgba(0,0,0,.12);
  --hsl-icon-bg:#0a0a0a;--hsl-icon-color:#fff;--hsl-icon-size:58px;
  --hsl-simple-box-bg:#f4f4f2;--hsl-simple-box-text:#0a0a0a;--hsl-simple-box-border:rgba(0,0,0,.12);
  --hsl-button-bg:#0a0a0a;--hsl-button-text:#fff;--hsl-button-hover:#303030;
}
.hsl-component,.hsl-icon-box,.hsl-simple-box,.hsl-button,.hsl-card{box-sizing:border-box;font-family:var(--hsl-body-font);}
.hsl-icon-box{
  position:relative;display:flex;gap:18px;align-items:flex-start;padding:28px;
  color:var(--hsl-icon-box-text);background:var(--hsl-icon-box-bg);
  border:1px solid var(--hsl-icon-box-border);border-radius:var(--hsl-radius);
  box-shadow:var(--hsl-shadow);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.hsl-icon-box__icon{width:var(--hsl-icon-size);height:var(--hsl-icon-size);flex:0 0 var(--hsl-icon-size);display:grid;place-items:center;border-radius:50%;background:var(--hsl-icon-bg);color:var(--hsl-icon-color);font-size:calc(var(--hsl-icon-size)*.42);line-height:1;}
.hsl-icon-box__icon i{font-size:inherit;color:inherit;}
.hsl-icon-box__content{min-width:0;}
.hsl-icon-box__title{margin:0 0 8px;font-family:var(--hsl-heading-font);font-size:32px;line-height:1.05;color:inherit;}
.hsl-icon-box__text{margin:0;color:var(--hsl-muted);font-size:14px;line-height:1.75;}
.hsl-icon-box__link{display:inline-flex;margin-top:16px;align-items:center;gap:8px;color:inherit;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;}
.hsl-icon-box__link::after{content:"↗";}
.hsl-icon-box--stacked{display:block;text-align:center;}
.hsl-icon-box--stacked .hsl-icon-box__icon{margin:0 auto 18px;}
.hsl-icon-box--dark{--hsl-icon-box-bg:#0a0a0a;--hsl-icon-box-text:#fff;--hsl-icon-box-border:#202020;--hsl-muted:#b4b4b0;--hsl-icon-bg:#ededE8;--hsl-icon-color:#0a0a0a;}
.hsl-icon-box--accent{--hsl-icon-box-bg:#d8d8d5;--hsl-icon-box-border:rgba(0,0,0,.18);}
.hsl-icon-box--outline{--hsl-icon-box-bg:transparent;box-shadow:none;}
.hsl-align-center{text-align:center;justify-content:center;}.hsl-align-right{text-align:right;justify-content:flex-end;}
.hsl-simple-box{padding:30px;color:var(--hsl-simple-box-text);background:var(--hsl-simple-box-bg);border:1px solid var(--hsl-simple-box-border);border-radius:var(--hsl-radius);box-shadow:var(--hsl-shadow);}
.hsl-simple-box__title{margin:0 0 10px;font-family:var(--hsl-heading-font);font-size:38px;line-height:1;color:inherit;}
.hsl-simple-box__text{margin:0;color:var(--hsl-muted);font-size:15px;line-height:1.75;}
.hsl-simple-box--dark{--hsl-simple-box-bg:#0a0a0a;--hsl-simple-box-text:#fff;--hsl-simple-box-border:#202020;--hsl-muted:#b4b4b0;}
.hsl-simple-box--accent{--hsl-simple-box-bg:#d8d8d5;}.hsl-simple-box--outline{--hsl-simple-box-bg:transparent;box-shadow:none;}
.hsl-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 24px;border:1px solid transparent;border-radius:999px;background:var(--hsl-button-bg);color:var(--hsl-button-text);font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:transform .25s ease,background .25s ease,color .25s ease;}
.hsl-button:hover{background:var(--hsl-button-hover);color:var(--hsl-button-text);transform:translateY(-2px);}
.hsl-button--outline{background:transparent;color:var(--hsl-text);border-color:var(--hsl-line);}.hsl-button--outline:hover{background:var(--hsl-text);color:#fff;}
.hsl-card{background:var(--hsl-surface);border:1px solid var(--hsl-line);border-radius:var(--hsl-radius);box-shadow:var(--hsl-shadow);overflow:hidden;}
.hsl-hover-lift{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}.hsl-hover-lift:hover{transform:translateY(-8px);box-shadow:0 28px 65px rgba(0,0,0,.15);border-color:rgba(0,0,0,.28);}
.hsl-no-shadow{box-shadow:none!important}.hsl-radius-none{border-radius:0!important}.hsl-radius-small{border-radius:var(--hsl-radius-sm)!important}.hsl-radius-pill{border-radius:999px!important}
.hsl-grid{display:grid;grid-template-columns:repeat(var(--hsl-columns,3),minmax(0,1fr));gap:var(--hsl-gap,20px)}
.hsl-grid-2{--hsl-columns:2}.hsl-grid-3{--hsl-columns:3}.hsl-grid-4{--hsl-columns:4}.hsl-gap-small{--hsl-gap:12px}.hsl-gap-large{--hsl-gap:32px}
.hsl-section{padding:var(--hsl-section-space) 0}.hsl-container{width:min(var(--hsl-container,1320px),calc(100% - 40px));margin-inline:auto}
.hsl-eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--hsl-accent);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.hsl-eyebrow::before{content:"";width:34px;height:1px;background:currentColor;opacity:.55}
.hsl-heading{margin:0;font-family:var(--hsl-heading-font);font-size:clamp(42px,5vw,68px);font-weight:600;line-height:.95;letter-spacing:-.03em;color:var(--hsl-text)}
@media(max-width:820px){.hsl-grid-3,.hsl-grid-4{--hsl-columns:2}.hsl-icon-box{padding:22px}.hsl-simple-box{padding:24px}}
@media(max-width:560px){.hsl-grid,.hsl-grid-2,.hsl-grid-3,.hsl-grid-4{--hsl-columns:1}.hsl-icon-box{display:block}.hsl-icon-box__icon{margin-bottom:16px}.hsl-icon-box__title{font-size:29px}}

/* Elementor compatibility and theme-color overrides */
.hsl-heading,
.hsl-heading a,
.hsl-title-dark,
.hsl-title-dark a{
  color:var(--hsl-text)!important;
}
.hsl-title-light,
.hsl-title-light a{
  color:#fff!important;
}
.hsl-card .elementor-image-box-title,
.hsl-card .elementor-image-box-title a,
.hsl-card .elementor-icon-box-title,
.hsl-card .elementor-icon-box-title a,
.hsl-card .elementor-heading-title,
.hsl-card .elementor-heading-title a{
  color:var(--hsl-text)!important;
  font-family:var(--hsl-heading-font)!important;
}
.hsl-icon-box .elementor-icon-box-title,
.hsl-icon-box .elementor-icon-box-title a,
.hsl-icon-box .elementor-heading-title,
.hsl-icon-box .elementor-heading-title a{
  color:var(--hsl-icon-box-text)!important;
  font-family:var(--hsl-heading-font)!important;
}
.hsl-simple-box .elementor-heading-title,
.hsl-simple-box .elementor-heading-title a,
.hsl-simple-box .elementor-image-box-title,
.hsl-simple-box .elementor-image-box-title a{
  color:var(--hsl-simple-box-text)!important;
  font-family:var(--hsl-heading-font)!important;
}
.category-content h1,
.category-content h2,
.category-content h3,
.category-content h4,
.category-content h5,
.category-content h6,
.category-content h1 a,
.category-content h2 a,
.category-content h3 a,
.category-content h4 a,
.category-content h5 a,
.category-content h6 a{
  color:#fff!important;
  font-family:var(--hsl-heading-font)!important;
}
.category-content p{color:rgba(255,255,255,.84)!important;}
.category-content .text-link{color:#fff!important;}

/* v1.0.3 — safe Elementor Image Box card.
   Apply to the Image Box widget itself: hsl-image-box-card hsl-hover-lift */
.hsl-image-box-card.elementor-widget-image-box{
  position:relative;
  overflow:hidden;
  border:1px solid var(--hsl-line);
  border-radius:28px;
  background:var(--hsl-surface);
  box-shadow:var(--hsl-shadow);
}
.hsl-image-box-card.elementor-widget-image-box > .elementor-widget-container{
  height:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border-radius:inherit;
  background:transparent!important;
}
.hsl-image-box-card.elementor-widget-image-box .elementor-image-box-wrapper{
  display:flex!important;
  height:100%;
  flex-direction:column;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border-radius:inherit;
}
.hsl-image-box-card.elementor-widget-image-box figure.elementor-image-box-img,
.hsl-image-box-card.elementor-widget-image-box .elementor-image-box-img{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  overflow:hidden;
  flex:0 0 auto;
}
.hsl-image-box-card.elementor-widget-image-box .elementor-image-box-img a{
  display:block;
  width:100%;
}
.hsl-image-box-card.elementor-widget-image-box .elementor-image-box-img img{
  display:block;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/3;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:0!important;
  transform:scale(1.001);
  transition:transform .45s cubic-bezier(.2,.8,.2,1)!important;
}
.hsl-image-box-card.elementor-widget-image-box:hover .elementor-image-box-img img{
  transform:scale(1.045);
}
.hsl-image-box-card.elementor-widget-image-box .elementor-image-box-content{
  display:flex;
  min-height:190px;
  padding:25px 24px 28px!important;
  flex:1 1 auto;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:var(--hsl-surface)!important;
  text-align:center!important;
}
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title,
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title a,
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title a:visited,
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title a:hover{
  margin:0 0 10px!important;
  color:var(--hsl-text)!important;
  font-family:var(--hsl-heading-font)!important;
  font-size:clamp(30px,3vw,40px)!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:-.025em!important;
  text-decoration:none!important;
}
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-description,
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-description a,
body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-description a:visited{
  margin:0!important;
  color:var(--hsl-muted)!important;
  font-family:var(--hsl-body-font)!important;
  font-size:15px!important;
  line-height:1.7!important;
  text-decoration:none!important;
}
.hsl-image-box-card--dark.elementor-widget-image-box{
  --hsl-surface:#0f1320;
  --hsl-text:#fff;
  --hsl-muted:rgba(255,255,255,.72);
  --hsl-line:rgba(255,255,255,.10);
}
.hsl-image-box-card--compact.elementor-widget-image-box .elementor-image-box-img img{
  aspect-ratio:16/10;
}
.hsl-image-box-card--compact.elementor-widget-image-box .elementor-image-box-content{
  min-height:150px;
  padding:21px 20px 23px!important;
}

/* Keep the original category-card for purpose-built containers only.
   It is intentionally not mapped to Elementor's Image Box widget. */
.category-card .category-kicker,
.category-card .category-explore{
  display:block;
  position:relative;
  z-index:2;
}
.category-card .category-kicker{
  margin-bottom:12px;
  color:#e2d3b7!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.22em!important;
  line-height:1.4!important;
  text-transform:uppercase!important;
}
.category-card .category-explore,
.category-card .category-explore a{
  margin-top:15px;
  color:#fff!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.16em!important;
  line-height:1.4!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}

@media(max-width:760px){
  .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-content{
    min-height:165px;
    padding:22px 19px 24px!important;
  }
  body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title,
  body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-title a{
    font-size:32px!important;
  }
  body .hsl-image-box-card.elementor-widget-image-box .elementor-image-box-description{
    font-size:14px!important;
  }
}
