/* Homepage accents: bounded motion, real catalog prices, and local service content. */
.shop-home {
  --home-coral: #b74722;
  --home-coral-soft: #fff0e5;
  --home-lilac: #f1edfc;
  --home-sky: #e8f3fc;
}

.shop-home .shop-hero {
  position: relative;
  background: radial-gradient(ellipse at 94% 8%, #ffe5c880, transparent 43%),
    linear-gradient(115deg, #f3faf7 12%, #e4f4f0 65%, #eef6fc);
}
.shop-home .shop-hero-grid { min-height: 600px; gap: 36px; }
.shop-home .shop-hero-copy { position: relative; z-index: 2; padding-block: 44px; }
.shop-home .shop-hero-copy > .shop-eyebrow { margin-bottom: 12px; font-size: .64rem; }
.home-local-tag {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px;
  padding: 7px 12px; border: 1px solid #f4d6c1; border-radius: 6px;
  background: var(--home-coral-soft); color: #943719; font-size: .7rem; font-weight: 650;
}
.shop-home .shop-hero h1 { font-size: clamp(2.5rem, 4.25vw, 4rem); letter-spacing: -.05em; }
.shop-home .shop-hero h1 em { position: relative; display: inline-block; z-index: 0; }
.shop-home .shop-hero h1 em::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 1px; height: 9px;
  background: #f8c776; border-radius: 50%; z-index: -1; transform: rotate(-1.5deg);
}
.shop-home .shop-hero-copy > p { font-size: .96rem; max-width: 500px; }
.shop-home .home-shop-button { background: var(--home-coral); border-color: var(--home-coral); color: #fff; }
.shop-home .home-shop-button:hover { background: #973719; border-color: #973719; box-shadow: 0 7px 20px #b7472220; }
.home-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.home-shortcuts a {
  display: inline-flex; gap: 7px; align-items: center; padding: 7px 11px;
  border-radius: 7px; border: 1px solid #c9e0d9; background: #ffffff90;
  font-size: .7rem; font-weight: 600; color: var(--text-main); transition: var(--transition);
}
.home-shortcuts a:hover { border-color: var(--cyan); background: var(--bg-card); transform: translateY(-2px); }
.home-shortcuts i { color: var(--cyan-dark); }
.shop-home .shop-hero-notes { margin-top: 20px; font-size: .7rem; gap: 18px; }
.shop-home .shop-hero-visual { padding-bottom: 145px; }
.shop-home .shop-hero-orbit { background: #cce9df; top: 62px; width: 400px; height: 400px; }
.shop-home .shop-hero-orbit::after { border-color: #99cebc; }
.shop-home .shop-hero-floating { top: 46px; left: -5px; transform: rotate(-4deg); }
.home-hero-spark { position: absolute; pointer-events: none; font-weight: 400; color: var(--home-coral); line-height: 1; }
.home-spark-one { top: 41px; right: 4px; font-size: 44px; transform: rotate(12deg); }
.home-spark-two { left: 18px; bottom: 184px; font-size: 35px; color: #087c83; }
.shop-home .shop-hero-product { bottom: 38px; padding: 20px 24px; border-top: 3px solid #efb764; }
.home-hero-price { float: right; margin: 0 0 9px 12px; font-size: 1.15rem; line-height: 1.4; font-weight: 800; color: var(--cyan-dark); }
.shop-home .shop-hero-product > strong { clear: both; }
.shop-home .shop-benefits i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: #e9f6f4; flex-shrink: 0; }
.shop-home .shop-benefits .container > div:nth-child(2) i { background: var(--home-coral-soft); color: var(--home-coral); }
.shop-home .shop-benefits .container > div:nth-child(3) i { background: var(--home-lilac); color: #6c4ba0; }
.shop-home .shop-category-tile { position: relative; overflow: hidden; border-bottom: 3px solid #b8ddd1; }
.shop-home .shop-category-tile:nth-child(4n+2) { border-bottom-color: #edccaf; }
.shop-home .shop-category-tile:nth-child(4n+2) > span { background: var(--home-coral-soft); color: var(--home-coral); }
.shop-home .shop-category-tile:nth-child(4n+3) { border-bottom-color: #ccc0e8; }
.shop-home .shop-category-tile:nth-child(4n+3) > span { background: var(--home-lilac); color: #6c4ba0; }
.shop-home .shop-category-tile:nth-child(4n+4) { border-bottom-color: #b5d8ef; }
.shop-home .shop-category-tile:nth-child(4n+4) > span { background: var(--home-sky); color: #246791; }
.shop-home .shop-category-tile > span { transition: transform .2s; }
.shop-home .shop-category-tile:hover > span { transform: rotate(-6deg) scale(1.08); }
.home-color-label { display: inline-flex; align-items: center; gap: 8px; background: var(--home-coral-soft); color: var(--home-coral); padding: 6px 10px; border-radius: 5px; }
.shop-home .shop-sale-tag { background: #fff0e5; color: #943719; }
.shop-home .shop-product-card .btn:hover { background: #087c83; color: #fff; }
.shop-home .shop-promo-service { background: linear-gradient(125deg, #fff2e5, #f9e4c8); border-color: #edcfaa; }
.shop-home .shop-promo-service .shop-eyebrow { color: #943719; }
.shop-home .shop-promo-service .shop-promo-icon { color: #b74722; }
.shop-home .resource-card { border-top: 3px solid #a9d4cb; }
.shop-home .resource-card:nth-child(2) { border-top-color: #e9c797; }
.shop-home .resource-card:nth-child(3) { border-top-color: #c5b8e6; }

/* Useful local content, with the same address and phone used in JSON-LD. */
.home-local-section { border-block: 1px solid var(--border-color); background: var(--bg-card); }
.home-local-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; gap: 80px; }
.home-local-copy > p { font-size: .91rem; line-height: 1.9; color: var(--text-muted); margin: 20px 0; max-width: 650px; }
.home-districts { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 24px; }
.home-districts span { border-radius: 30px; padding: 6px 16px; background: var(--cyan-light); color: var(--cyan-dark); font-size: .77rem; font-weight: 650; }
.home-local-links { display: grid; gap: 10px; }
.home-local-links a { display: flex; gap: 20px; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--border-color); color: var(--text-main); font-weight: 650; font-size: .85rem; }
.home-local-links a:hover { color: var(--cyan-dark); }
.home-local-links i { color: var(--cyan-dark); font-size: .8rem; }
.home-visit-card { position: relative; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 18px; padding: 34px; }
.home-visit-icon { display: flex; gap: 12px; align-items: center; color: var(--cyan-dark); margin-bottom: 20px; }
.home-visit-icon i { background: var(--cyan-light); width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; font-size: 1.25rem; }
.home-visit-icon span { font-size: .73rem; font-weight: 800; letter-spacing: 3px; }
.home-visit-card > p { color: var(--text-muted); font-size: .85rem; line-height: 1.8; margin-block: 12px; }
.home-visit-phone { display: block; font-size: clamp(1.25rem, 2.3vw, 1.65rem); font-weight: 800; color: var(--text-main); margin-block: 20px 15px; }
.home-visit-card address { font-style: normal; font-size: .83rem; line-height: 1.8; }
.home-visit-card .home-visit-hours { font-size: .72rem; margin-block: 15px 22px; }
.home-visit-card > .shop-text-link { margin-top: 20px; font-size: .78rem; }

[data-theme=dark] .shop-home { --home-coral-soft: #412b24; --home-lilac: #302940; --home-sky: #203848; }
[data-theme=dark] .shop-home .shop-hero { background: radial-gradient(ellipse at 95% 0%, #3a392f, transparent 55%), linear-gradient(115deg, #143039, #152e36); }
[data-theme=dark] .home-local-tag { background: #412b24; border-color: #71503c; color: #ffca99; }
[data-theme=dark] .shop-home .shop-hero h1 em::after { background: #775626; }
[data-theme=dark] .home-shortcuts a { background: #172e39; border-color: #34585b; }
[data-theme=dark] .shop-home .shop-hero-orbit { background: #27514f; }
[data-theme=dark] .shop-home .shop-hero-orbit::after { border-color: #3b7066; }
[data-theme=dark] .shop-home .shop-promo-service { background: linear-gradient(120deg, #3b3026, #2f2924); border-color: #5a4735; }
[data-theme=dark] .shop-home :is(.shop-promo-service .shop-eyebrow, .home-color-label) { color: #ffca99; }
[data-theme=dark] .shop-home .shop-category-tile:nth-child(4n+2) > span { color: #ffca99; }
[data-theme=dark] .shop-home .shop-category-tile:nth-child(4n+3) > span { color: #d7c3ff; }
[data-theme=dark] .shop-home .shop-category-tile:nth-child(4n+4) > span { color: #aedcff; }
[data-theme=dark] .shop-home .shop-benefits i { background: #173a40; }
[data-theme=dark] .shop-home .shop-benefits .container > div:nth-child(2) i { background: #412b24; color: #ffca99; }
[data-theme=dark] .shop-home .shop-benefits .container > div:nth-child(3) i { background: #302940; color: #d7c3ff; }

@media (prefers-reduced-motion: no-preference) {
  .shop-home .shop-hero-copy { animation: home-enter .55s ease-out both; }
  .shop-home .shop-hero-product { animation: home-enter .65s .1s ease-out both; }
  .shop-home .shop-hero-floating { animation: home-bob 1.8s ease-in-out 2; }
}
@keyframes home-enter { from { transform: translateY(12px); } to { transform: translateY(0); } }
@keyframes home-bob { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-6px) rotate(-4deg); } }
@media (max-width: 1100px) {
  .home-local-grid { gap: 36px; }
  .shop-home .shop-hero-orbit { width: 320px; height: 320px; }
  .shop-home .shop-hero-floating { left: 0; font-size: .65rem; padding: 10px 13px; }
  .home-spark-one { right: 0; }
}
@media (max-width: 800px) {
  .home-local-grid { grid-template-columns: minmax(0, 1fr); }
  .home-visit-card { max-width: 600px; }
}
@media (max-width: 700px) {
  .shop-home .shop-hero-grid { min-height: auto; gap: 0; }
  .shop-home .shop-hero-copy { padding-block: 30px 15px; }
  .shop-home .shop-hero h1 { font-size: clamp(2rem, 8.5vw, 3.3rem); }
  .shop-home .shop-hero-copy > p { font-size: .87rem; }
  .shop-home .shop-hero-copy > .shop-eyebrow { font-size: .55rem; letter-spacing: 1.2px; }
  .home-local-tag { font-size: .64rem; margin-bottom: 18px; }
  .home-shortcuts { gap: 6px; margin-top: 20px; }
  .home-shortcuts a { font-size: .64rem; padding: 7px 9px; }
  .shop-home .shop-hero-notes { gap: 15px; font-size: .63rem; }
  .shop-home .shop-hero-visual { min-height: 385px; padding: 15px 45px 145px; }
  .shop-home .shop-hero-orbit { width: 245px; height: 245px; top: 15px; }
  .shop-home .shop-hero-product { bottom: 20px; left: 0; right: 0; padding: 16px 18px; }
  .home-hero-price { font-size: 1rem; }
  .home-spark-one { top: 12px; right: 18px; font-size: 32px; }
  .home-spark-two { left: 16px; bottom: 155px; font-size: 25px; }
  .home-local-copy > p { font-size: .85rem; }
  .home-visit-card { padding: 26px; }
  .home-local-links a { font-size: .78rem; }
  .home-color-label { font-size: .6rem; }
}
/* Rotating hero and category-by-category storefront. */
.shop-home .shop-hero-visual.home-hero-carousel { display: flex; flex-direction: column; justify-content: center; padding: 16px 0 22px; min-height: 590px; }
.home-carousel-slides { position: relative; width: 100%; }
.home-carousel-slide { display: flex; flex-direction: column; padding: 8px 8px 0; }
.home-carousel-slide[hidden], .home-carousel-controls[hidden] { display: none; }
.home-carousel-image { position: relative; z-index: 1; display: block; height: 340px; padding: 0 35px; mix-blend-mode: multiply; }
[data-theme=dark] .home-carousel-image { mix-blend-mode: normal; }
.shop-home .home-carousel-image img { width: 100%; height: 100%; object-fit: contain; }
.shop-home .home-hero-carousel .shop-hero-product { position: relative; inset: auto; width: 100%; min-height: 165px; margin-top: 12px; padding: 18px 22px; animation: none; }
.home-carousel-meta { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.home-carousel-meta > span { font-size: .58rem; font-weight: 700; letter-spacing: .8px; color: var(--text-muted); max-width: 58%; }
.home-carousel-meta .home-hero-price { float: none; margin: 0; flex-shrink: 0; }
.shop-home .home-hero-carousel .shop-hero-product > strong { font-size: .9rem; line-height: 1.5; min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.home-carousel-controls { position: relative; z-index: 3; display: flex; gap: 7px; align-items: center; justify-content: center; margin-top: 14px; }
.home-carousel-controls button { display: grid; place-items: center; border: 1px solid var(--border-color); border-radius: 50%; background: var(--bg-card); color: var(--cyan-dark); width: 36px; height: 36px; cursor: pointer; flex-shrink: 0; }
.home-carousel-controls button:hover { background: var(--cyan-light); }
.home-carousel-controls button:focus-visible { outline: 3px solid var(--cyan-dark); outline-offset: 2px; }
.home-carousel-dots { display: flex; align-items: center; gap: 0; }
.home-carousel-dots button { border: 0; background: transparent; width: 26px; height: 36px; }
.home-carousel-dots button span { width: 7px; height: 7px; border-radius: 9px; background: #82a4a0; transition: width .2s; }
.home-carousel-dots button[aria-current=true] span { width: 20px; background: var(--cyan-dark); }
.shop-home .home-hero-carousel .home-spark-two { bottom: 225px; }
.home-category-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 0 0 26px; }
.home-category-heading h2 { font-size: clamp(1.3rem, 2.4vw, 2rem); margin-bottom: 8px; }
.home-category-heading p { color: var(--text-muted); font-size: .86rem; line-height: 1.75; max-width: 740px; margin: 0; }
.home-category-icon { width: 64px; height: 64px; border-radius: 16px; background: var(--cyan-light); color: var(--cyan-dark); display: grid; place-items: center; font-size: 1.6rem; }
.home-category-section:nth-child(4n+2) .home-category-icon { background: var(--home-coral-soft); color: var(--home-coral); }
.home-category-section:nth-child(4n+3) .home-category-icon { background: var(--home-lilac); color: #7651a0; }
.home-category-section:nth-child(4n+4) .home-category-icon { background: var(--home-sky); color: #246791; }
.home-category-section .shop-products-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (prefers-reduced-motion: no-preference) {
  .home-carousel-slide:not([hidden]) .home-carousel-image { animation: home-slide-in .4s ease-out; }
}
@keyframes home-slide-in { from { opacity: .25; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
@media (max-width: 1000px) {
  .home-category-heading { grid-template-columns: auto minmax(0, 1fr); }
  .home-category-heading > a { grid-column: 2; justify-self: start; }
}
@media (max-width: 700px) {
  .shop-home .shop-hero-visual.home-hero-carousel { padding: 12px 0 22px; min-height: 460px; }
  .home-carousel-image { height: 240px; padding: 0 38px; }
  .home-carousel-slide { padding-inline: 0; }
  .shop-home .home-hero-carousel .shop-hero-product { min-height: 156px; padding: 16px 18px; }
  .shop-home .home-hero-carousel .shop-hero-product > strong { font-size: .82rem; min-height: 3.7em; }
  .home-carousel-controls { gap: 4px; }
  .home-carousel-dots button { width: 24px; }
  .home-category-heading { gap: 12px; }
  .home-category-heading h2 { font-size: 1.25rem; line-height: 1.4; }
  .home-category-heading p { font-size: .79rem; }
  .home-category-heading .shop-eyebrow { font-size: .57rem; letter-spacing: .5px; }
  .home-category-icon { width: 44px; height: 44px; border-radius: 12px; font-size: 1.1rem; align-self: start; }
  .home-category-heading > a { padding: 8px 14px; font-size: .77rem; }
  .home-category-section .shop-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
