/*
Theme Name: HappyCaps Child
Theme URI: https://happy-caps.ca/
Description: Clean HappyCaps storefront child theme for Hello Elementor.
Author: HappyCaps
Template: hello-elementor
Version: 1.0.0
Text Domain: happycaps-child
*/

:root {
  --hc-ink: #17212b;
  --hc-muted: #66727d;
  --hc-accent: #e85d4a;
  --hc-accent-dark: #c84635;
  --hc-surface: #ffffff;
  --hc-soft: #f7f5f2;
  --hc-border: #e6e2dd;
  --hc-radius: 6px;
  --hc-shadow: 0 12px 30px rgba(23, 33, 43, 0.08);
}

html { scroll-behavior: smooth; }
body { color: var(--hc-ink); background: var(--hc-surface); font-family: "Inter", "Helvetica Neue", Arial, sans-serif; }
a { color: var(--hc-accent-dark); }
a:hover { color: var(--hc-ink); }
button, input, select, textarea { border-radius: var(--hc-radius); }

.hc-site-header { border-bottom: 1px solid var(--hc-border); background: #fff; }
.hc-header-inner { position: relative; display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 28px; min-height: 88px; max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.hc-header-top-actions { position: absolute; top: 8px; right: 24px; display: flex; gap: 14px; }
.hc-header-top-actions .hc-header-action { font-size: .75rem; }
.hc-header-actions { justify-self: end; }
.hc-brand { display: inline-flex; align-items: center; color: var(--hc-ink); text-decoration: none; }
.hc-brand img { display: block; width: 170px; height: 15px; object-fit: contain; }
.hc-menu-toggle { display: none; border: 1px solid var(--hc-border); background: #fff; color: var(--hc-ink); padding: 9px 12px; }
.hc-primary-menu .menu { display: flex; align-items: center; justify-content: center; gap: 22px; margin: 0; padding: 0; list-style: none; }
.hc-primary-menu .menu > li { position: relative; }
.hc-primary-menu .menu > li.menu-item-has-children > a::after { content: '⌄'; display: inline-block; margin-left: 5px; font-size: .8em; }
.hc-primary-menu .sub-menu { position: absolute; z-index: 30; top: 100%; left: -14px; display: none; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 0 32px; width: min(820px, calc(100vw - 48px)); max-height: min(70vh, 520px); overflow-y: auto; margin: 0; padding: 14px 18px; border: 1px solid var(--hc-border); border-radius: var(--hc-radius); background: #fff; box-shadow: var(--hc-shadow); list-style: none; }
.hc-primary-menu .menu > li:hover > .sub-menu, .hc-primary-menu .menu > li:focus-within > .sub-menu { display: grid; }
.hc-primary-menu .sub-menu li { margin: 0; }
.hc-primary-menu .sub-menu a { display: block; padding: 9px 14px; white-space: normal; line-height: 1.25; }
.hc-primary-menu a { color: var(--hc-ink); font-size: .86rem; font-weight: 700; text-decoration: none; }
.hc-primary-menu a:hover { color: var(--hc-accent-dark); }
.hc-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.hc-header-action { color: var(--hc-ink); font-size: .82rem; font-weight: 700; text-decoration: none; }
.hc-search { display: flex; align-items: center; border-bottom: 1px solid var(--hc-ink); }
.hc-search input { width: 96px; border: 0; outline: 0; padding: 6px 0; font-size: .82rem; }
.hc-catalog-filters { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(4, minmax(110px, 1fr)) auto auto; align-items: end; gap: 12px; margin: 0 0 28px; padding: 18px; border: 1px solid var(--hc-border); border-radius: var(--hc-radius); background: var(--hc-soft); }
.hc-catalog-filters label { display: block; color: var(--hc-ink); font-size: .78rem; font-weight: 800; }
.hc-filter-field { min-width: 0; }
.hc-catalog-filters input, .hc-catalog-filters select { width: 100%; min-height: 42px; margin-top: 5px; border: 1px solid var(--hc-border); background: #fff; }
.hc-catalog-filters > .hc-button { align-self: end; min-height: 42px; white-space: nowrap; }
.hc-filter-search { position: relative; }
.hc-search-suggestions { position: absolute; z-index: 30; top: 100%; left: 0; right: 0; border: 1px solid var(--hc-border); border-top: 0; background: #fff; box-shadow: var(--hc-shadow); }
.hc-search-suggestions a { display: block; padding: 9px 12px; color: var(--hc-ink); text-decoration: none; }
.hc-search-suggestions a:hover { background: var(--hc-soft); }
.hc-filter-reset { align-self: end; color: var(--hc-ink); font-size: .85rem; font-weight: 700; text-decoration: none; }
.hc-search button { border: 0; background: transparent; color: var(--hc-ink); padding: 4px; font-size: 1.15rem; }
.hc-cart-count { display: inline-grid; min-width: 20px; min-height: 20px; place-items: center; margin-left: 4px; border-radius: 999px; background: var(--hc-accent); color: #fff; font-size: .72rem; }
.hc-footer-brand { padding: 22px; border-radius: 10px; background: #fff; color: var(--hc-ink); }
.hc-footer-logo { display: inline-flex; padding: 10px 14px; border-radius: 6px; background: #fff; }
.hc-footer-logo img { display: block; width: 170px; height: 15px; object-fit: contain; }
.hc-footer-brand p { color: var(--hc-ink); }
.hc-footer-brand .hc-footer-small { color: var(--hc-muted); }
.hc-back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 50; display: grid; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: var(--hc-accent); color: #fff; opacity: .9; cursor: pointer; }
.hc-back-to-top:hover { background: var(--hc-accent-dark); }
.hc-footer-main { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 36px; padding: 58px 24px 42px; }
.hc-footer-menu { display: grid; gap: 9px; }
.hc-footer-menu a { color: rgba(255,255,255,.78); text-decoration: none; }
.hc-footer-menu a:hover { color: #fff; }
.hc-footer-small { color: rgba(255,255,255,.58); font-size: .82rem; }
.hc-footer-contact p { color: rgba(255,255,255,.78); }
.hc-footer-bottom-inner { display: flex; justify-content: space-between; gap: 20px; }

.hc-main { min-height: 50vh; }
.hc-container { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }
.hc-page-content { padding: 48px 0; }
.hc-site-footer { margin-top: 64px; background: var(--hc-ink); color: #fff; }
.hc-footer-inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; max-width: 1240px; margin: 0 auto; padding: 48px 24px 28px; }
.hc-site-footer a { color: #fff; }
.hc-footer-title { margin: 0 0 12px; color: #fff; font-size: 1.1rem; }
.hc-footer-menu .menu { margin: 0; padding: 0; list-style: none; }
.hc-footer-menu li + li { margin-top: 8px; }
.hc-footer-bottom { border-top: 1px solid rgba(255,255,255,.15); padding: 16px 24px; text-align: center; color: rgba(255,255,255,.72); font-size: .85rem; }

.hc-featured-slider { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 44px; max-width: 1240px; margin: 0 auto; padding: 58px 24px 72px; background: linear-gradient(135deg, #fff4ee 0%, #f8f5ef 100%); }
.hc-featured-slider-heading h1 { margin: 10px 0 14px; font-size: clamp(2.2rem, 4vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.hc-featured-slider-heading p { color: var(--hc-muted); line-height: 1.65; }
.hc-slider-track { position: relative; min-height: 430px; }
.hc-slide { display: none; grid-template-columns: 1fr .9fr; align-items: center; gap: 24px; height: 100%; padding: 22px; border-radius: 12px; background: #fff; box-shadow: var(--hc-shadow); }
.hc-slide.is-active { display: grid; }
.hc-slide-image img { display: block; width: 100%; height: 360px; object-fit: contain; }
.hc-slide-content h2 { font-size: 1.3rem; }
.hc-slide-content h2 a { color: var(--hc-ink); text-decoration: none; }
.hc-slide-content .price { display: block; margin: 14px 0 22px; color: var(--hc-accent-dark); font-weight: 800; }
.hc-slider-controls { display: flex; grid-column: 2; align-items: center; justify-content: center; gap: 14px; margin-top: -30px; }
.hc-slider-controls > button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--hc-border); border-radius: 50%; background: #fff; color: var(--hc-ink); font-family: Arial, sans-serif; font-size: 0; line-height: 1; box-shadow: 0 4px 12px rgba(23,33,43,.08); cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.hc-slider-controls > button::before { display: block; font-size: 25px; font-weight: 300; line-height: 1; }
.hc-slider-controls > button[data-hc-slider-prev]::before { content: "‹"; transform: translate(-1px, -1px); }
.hc-slider-controls > button[data-hc-slider-next]::before { content: "›"; transform: translate(1px, -1px); }
.hc-slider-controls > button:hover, .hc-slider-controls > button:focus-visible { background: var(--hc-accent); border-color: var(--hc-accent); color: #fff; transform: translateY(-2px); outline: none; }
.hc-slider-dots { display: flex; align-items: center; gap: 7px; }
.hc-slider-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #d8d0c8; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.hc-slider-dots button:hover, .hc-slider-dots button:focus-visible { background: var(--hc-accent-dark); outline: none; }
.hc-slider-dots button.is-active { width: 24px; border-radius: 9px; background: var(--hc-accent); }
.hc-hero { background: linear-gradient(135deg, #fff4ee 0%, #f8f5ef 100%); } 
.hc-hero-inner { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 48px; max-width: 1240px; margin: 0 auto; padding: 88px 24px; }
.hc-eyebrow { color: var(--hc-accent-dark); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hc-hero h1 { max-width: 680px; margin: 12px 0 18px; font-size: clamp(2.4rem, 6vw, 5rem); line-height: .98; letter-spacing: -.05em; }
.hc-hero p { max-width: 570px; color: var(--hc-muted); font-size: 1.1rem; line-height: 1.7; }
.hc-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hc-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce a.add_to_cart_button, .woocommerce a.product_type_simple, .woocommerce a.product_type_variable, .woocommerce button.single_add_to_cart_button, .elementor-button { border: 0; border-radius: var(--hc-radius); background: var(--hc-accent) !important; color: #fff !important; font-weight: 800; padding: 13px 20px; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.hc-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .elementor-button:hover { background: var(--hc-accent-dark); color: #fff !important; transform: translateY(-1px); }
.hc-button-secondary { background: transparent; color: var(--hc-ink) !important; border: 1px solid var(--hc-ink); }
.hc-hero-card { min-height: 300px; border-radius: 18px; background: #fff; box-shadow: var(--hc-shadow); padding: 28px; }
.hc-hero-card strong { display: block; margin-bottom: 8px; font-size: 1.6rem; }
.hc-hero-card p { font-size: .95rem; }

.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { float: none; width: auto; margin: 0; padding: 0 0 18px; border: 1px solid var(--hc-border); border-radius: var(--hc-radius); overflow: hidden; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.woocommerce ul.products li.product:hover { box-shadow: var(--hc-shadow); transform: translateY(-3px); }
.woocommerce ul.products li.product a img { margin: 0 0 14px; aspect-ratio: 1 / 1; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: 16px; margin-right: 16px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--hc-ink); font-size: .98rem; }
.woocommerce ul.products li.product .price { color: var(--hc-accent-dark); font-weight: 800; }
.woocommerce span.onsale { top: 12px; left: 12px; min-width: auto; min-height: auto; padding: 7px 10px; border-radius: 4px; background: var(--hc-accent); line-height: 1; }
.woocommerce div.product { padding: 40px 0; }
.woocommerce div.product .product_title { font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.04em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--hc-accent-dark); font-weight: 800; }
.woocommerce div.product div.images img { border-radius: var(--hc-radius); }
.woocommerce div.product form.cart { margin-top: 24px; }
.woocommerce .quantity .qty, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { min-height: 44px; border: 1px solid var(--hc-border); background: #fff; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--hc-accent); border-radius: var(--hc-radius); background: var(--hc-soft); }
.woocommerce table.shop_table { border-collapse: collapse; border-radius: var(--hc-radius); overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--hc-border); }

.elementor-widget-woocommerce-products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hc-trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 48px 0; }
.hc-trust-item { border: 1px solid var(--hc-border); border-radius: var(--hc-radius); padding: 22px; background: #fff; }
.hc-trust-item strong { display: block; margin-bottom: 6px; }
.hc-trust-item span { color: var(--hc-muted); font-size: .92rem; }
.hc-page-heading { max-width: 680px; margin-bottom: 34px; }
.hc-page-heading h1 { margin: 8px 0 10px; }
.hc-page-heading p { margin: 0; color: var(--hc-muted); }
.hc-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.hc-category-card { display: flex; flex-direction: column; min-height: 180px; overflow: hidden; border: 1px solid var(--hc-border); border-radius: var(--hc-radius); background: #fff; color: var(--hc-ink); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.hc-category-card:hover { color: var(--hc-ink); transform: translateY(-3px); box-shadow: var(--hc-shadow); }
.hc-category-card-image { min-height: 110px; background: var(--hc-soft); }
.hc-category-card-image img { display: block; width: 100%; height: 110px; object-fit: cover; }
.hc-category-card-title { padding: 15px 15px 4px; font-size: 1rem; font-weight: 800; }
.hc-category-card-count { padding: 0 15px 15px; color: var(--hc-muted); font-size: .82rem; }

@media (max-width: 900px) {
  .hc-catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hc-filter-search { grid-column: 1 / -1; }
  .hc-featured-slider { grid-template-columns: 1fr; gap: 18px; padding: 42px 20px; }
  .hc-slider-track { min-height: 390px; }
  .hc-slider-controls { grid-column: 1; margin-top: 0; }
  .hc-slide { grid-template-columns: 1fr .9fr; }
  .hc-slide-image img { height: 290px; }
  .hc-header-inner { grid-template-columns: auto 1fr auto; gap: 14px; }
  .hc-header-top-actions { display: none; }
  .hc-menu-toggle { display: inline-block; }
  .hc-primary-menu { display: none; position: absolute; z-index: 20; top: 120px; left: 0; right: 0; border-bottom: 1px solid var(--hc-border); background: #fff; padding: 16px 24px; }
  .hc-primary-menu.is-open { display: block; }
  .hc-primary-menu .menu { display: block; }
  .hc-primary-menu li + li { margin-top: 12px; }
  .hc-primary-menu .sub-menu { position: static; display: block; width: auto; max-height: none; overflow: visible; margin: 8px 0 0 12px; padding: 0 0 0 12px; border: 0; border-left: 1px solid var(--hc-border); border-radius: 0; box-shadow: none; }
  .hc-primary-menu .sub-menu a { padding: 6px 0; }
  .hc-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hc-search { display: none; }
  .hc-hero-inner { grid-template-columns: 1fr; padding-block: 60px; }
  .woocommerce ul.products, .elementor-widget-woocommerce-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hc-footer-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .hc-catalog-filters { grid-template-columns: 1fr; }
  .hc-category-grid { grid-template-columns: 1fr; }
  .hc-filter-search { grid-column: auto; }
  .hc-announcement-inner { display: block; padding-inline: 16px; text-align: center; }
  .hc-announcement-contact { display: none; }
  .hc-header-inner, .hc-container { width: calc(100% - 32px); padding-inline: 0; }
  .hc-header-inner { min-height: 68px; }
  .hc-brand img, .hc-footer-logo img { width: 145px; }
  .hc-made-canada { display: none; }
  .hc-account-link { display: none; }
  .hc-hero-inner { padding: 48px 16px; }
  .hc-hero h1 { font-size: 2.7rem; }
  .woocommerce ul.products, .elementor-widget-woocommerce-products ul.products, .hc-trust-grid { grid-template-columns: 1fr; }
  .hc-footer-main { grid-template-columns: 1fr; padding-inline: 16px; }
  .hc-footer-bottom-inner { display: block; text-align: center; }
  .hc-footer-bottom-inner span + span { display: block; margin-top: 6px; }
}
