body:has(.cg-homepage) {
  background: var(--wp--preset--color--white-canvas);
}

body:has(.cg-homepage) main > .wp-block-post-content {
  max-width: var(--wp--style--global--wide-size);
}

body:is(:has(.cg-homepage), .cg-commerce-preview) .wp-site-blocks > header.wp-block-template-part {
  border-block-end: 1px solid #eee7e3;
}

body:is(:has(.cg-homepage), .cg-commerce-preview) header.wp-block-template-part > .wp-block-group:not(.cg-shop-header) {
  max-inline-size: var(--wp--style--global--wide-size);
  margin-inline: auto;
  padding-block: .85rem;
  gap: .75rem 1rem;
}

body:is(:has(.cg-homepage), .cg-commerce-preview) header .wp-block-site-title { font-weight: 700; }
body:is(:has(.cg-homepage), .cg-commerce-preview) header .wp-block-page-list li:has(> a[href$="/sample-page/"]) { display: none; }
body:is(:has(.cg-homepage), .cg-commerce-preview) header .pll-switcher ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0; }
body:is(:has(.cg-homepage), .cg-commerce-preview) header .pll-switcher a { display: block; color: var(--wp--preset--color--ink); padding: .26rem .5rem; border-radius: .25rem; font-size: .85rem; }
body:is(:has(.cg-homepage), .cg-commerce-preview) header .pll-switcher a[aria-current] { background: var(--wp--preset--color--pale-yellow); text-decoration: none; }

.cg-homepage {
  --cg-border: #e8dfd9;
  --cg-muted: #5d514a;
  padding-block: clamp(1.5rem, 4vw, 4rem) clamp(2.5rem, 6vw, 5rem);
}

.cg-homepage .cg-home-hero {
  gap: clamp(1.5rem, 5vw, 5rem);
  margin-block: 0 clamp(1.4rem, 3.5vw, 3rem);
}

.cg-homepage .cg-home-copy h1 {
  font-size: clamp(2.65rem, 5.7vw, 5.15rem);
  line-height: 1.02;
  letter-spacing: -0.055em;
  margin-block: .45em .28em;
  text-wrap: balance;
}

.cg-homepage .cg-home-kicker {
  display: inline-block;
  color: var(--wp--preset--color--ink);
  background: var(--wp--preset--color--golden-yellow);
  padding: .35rem .75rem;
  border-radius: .3rem;
  font-size: .83rem;
  font-weight: 700;
  margin: 0;
}

.cg-homepage .cg-home-intro {
  color: var(--cg-muted);
  font-size: clamp(1rem, 1.6vw, 1.22rem);
  max-inline-size: 35ch;
  margin-block: 0 1.4rem;
}

.cg-homepage .cg-home-photo { margin: 0; }
.cg-homepage .cg-home-photo img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .65rem;
}

.cg-homepage .wp-block-buttons { gap: .65rem; }
.cg-homepage .wp-block-button__link {
  border: 1px solid var(--wp--preset--color--warm-red);
  border-radius: .35rem;
  padding: .66rem .95rem;
  font-size: .94rem;
  font-weight: 650;
  line-height: 1.35;
}

.cg-homepage .cg-button-primary .wp-block-button__link:not(.has-background) { background: var(--wp--preset--color--warm-red); }
.cg-homepage .cg-button-primary .wp-block-button__link:not(.has-text-color) { color: #fff; }
.cg-homepage :is(.cg-button-outline, .cg-button-text) .wp-block-button__link:not(.has-background) { background: transparent; }
.cg-homepage :is(.cg-button-outline, .cg-button-text) .wp-block-button__link:not(.has-text-color) { color: var(--wp--preset--color--warm-red); }
.cg-homepage .cg-button-text .wp-block-button__link { border-color: transparent; padding-inline: 0; text-decoration: underline; text-underline-offset: .24em; }
.cg-homepage a:focus-visible { outline: 2px solid var(--wp--preset--color--warm-red); outline-offset: 4px; }

.cg-homepage .cg-delivery-strip {
  gap: .3rem 1rem;
  border-inline-start: .35rem solid var(--wp--preset--color--golden-yellow);
  border-radius: .3rem;
  padding: .85rem 1.15rem;
}
.cg-homepage .cg-delivery-strip p { margin: 0; }

.cg-homepage .cg-home-section { margin-block: clamp(2rem, 5vw, 4.25rem) 0; }
.cg-homepage .cg-home-section > h2 {
  font-size: clamp(1.85rem, 3.7vw, 3.25rem);
  line-height: 1.15;
  letter-spacing: -.04em;
  margin-block: 0 .65rem;
}
.cg-homepage .cg-shopping-paths { gap: 1rem; margin-block: 1.2rem 0; }
.cg-homepage .cg-shopping-path {
  border: 1px solid var(--cg-border);
  border-block-start: .25rem solid var(--wp--preset--color--golden-yellow);
  border-radius: .4rem;
  padding: clamp(1.1rem, 2.8vw, 1.8rem);
}
.cg-homepage .cg-shopping-path h3 { font-size: clamp(1.17rem, 2vw, 1.55rem); margin-block: 0 .4rem; }
.cg-homepage .cg-shopping-path p { color: var(--cg-muted); margin-block: .3rem .7rem; }

.cg-homepage .cg-shopping-path:has(> .cg-path-photo) {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border: 1px solid var(--cg-border);
  border-radius: .65rem;
  background: #fcf8f4;
}

.cg-homepage .cg-path-photo {
  position: relative;
  margin: 0 0 1.35rem;
}

.cg-homepage .cg-path-photo > a {
  display: block;
  overflow: hidden;
  border-radius: .6rem .6rem 0 0;
}

.cg-homepage .cg-path-photo > a:focus-visible {
  outline: 2px solid var(--wp--preset--color--warm-red);
  outline-offset: 2px;
}

@media (hover: hover) {
  .cg-homepage .cg-path-photo > a:hover img { filter: brightness(.94); }
}

@media (prefers-reduced-motion: no-preference) {
  .cg-homepage .cg-path-photo > a img { transition: transform 180ms ease, filter 180ms ease; }
  .cg-homepage .cg-path-photo > a:focus-visible img { transform: scale(1.035); }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cg-homepage .cg-path-photo > a:hover img { transform: scale(1.035); }
}

.cg-homepage .cg-path-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .6rem .6rem 0 0;
}

.cg-path-photo-ready {
  --cg-path-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a72f2c' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 9h18v4H3zm2 4h14v8H5zm7-4v12m0-12H8a3 3 0 1 1 3-3zm0 0h4a3 3 0 1 0-3-3z'/%3E%3C/svg%3E");
}

.cg-path-photo-build {
  --cg-path-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a72f2c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3Ccircle cx='9' cy='6' r='2' fill='%23fff4d6'/%3E%3Ccircle cx='15' cy='12' r='2' fill='%23fff4d6'/%3E%3Ccircle cx='10' cy='18' r='2' fill='%23fff4d6'/%3E%3C/svg%3E");
}

.cg-path-photo-single {
  --cg-path-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a72f2c' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20 4.7 12.7a4.8 4.8 0 0 1 6.8-6.8l.5.6.5-.6a4.8 4.8 0 0 1 6.8 6.8z'/%3E%3C/svg%3E");
}

.cg-homepage .cg-path-photo::after {
  content: "";
  position: absolute;
  pointer-events: none;
  inset-inline-start: 1rem;
  inset-block-end: -1rem;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border: 1px solid var(--wp--preset--color--golden-yellow);
  border-radius: 50%;
  background: var(--wp--preset--color--pale-yellow) var(--cg-path-icon) center / 1.2rem no-repeat;
}

.cg-homepage .cg-shopping-path:has(> .cg-path-photo) > :is(h3, p, .wp-block-buttons) {
  margin-inline: 1rem;
}

.cg-homepage .cg-shopping-path:has(> .cg-path-photo) > p { flex: 1; }
.cg-homepage .cg-shopping-path:has(> .cg-path-photo) > .wp-block-buttons { margin-block: .25rem 1rem; }

.cg-homepage .cg-featured-gifts > p { color: var(--cg-muted); margin-block: 0 1.15rem; }
.cg-homepage .cg-featured-gifts ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.75rem, 1.5vw, 1.25rem);
  padding: 0;
  margin-block: 0 1.2rem;
}
.cg-homepage .cg-featured-gifts ul.products::before,
.cg-homepage .cg-featured-gifts ul.products::after { display: none; }
.cg-homepage .cg-featured-gifts .woocommerce ul.products > li.product {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  float: none;
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 1px solid var(--cg-border);
  border-radius: .55rem;
  padding: clamp(.65rem, 1.5vw, 1rem);
}
.cg-homepage .cg-featured-gifts .woocommerce-LoopProduct-link {
  display: flex;
  flex: 1;
  flex-direction: column;
  overflow-wrap: anywhere;
}
.cg-homepage .cg-featured-gifts .woocommerce ul.products > li.product img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .35rem;
  margin: 0;
}
.cg-homepage .cg-featured-gifts .woocommerce ul.products > li.product img.woocommerce-placeholder { display: none; }
.cg-homepage .cg-featured-gifts .woocommerce ul.products > li.product .price {
  margin-block: auto 0;
  padding-block-start: .35rem;
  color: var(--wp--preset--color--ink);
  font-weight: 650;
}
.cg-homepage .cg-featured-gifts .product .button {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  box-sizing: border-box;
  min-block-size: 2.75rem;
  max-inline-size: 100%;
  margin-block-start: .75rem;
  padding: .55rem .85rem;
  border-radius: .35rem;
  background: var(--wp--preset--color--pale-yellow);
  color: var(--wp--preset--color--ink);
  white-space: normal;
}

[dir="rtl"] .cg-homepage :is(h1, h2) {
  letter-spacing: normal;
  line-height: 1.28;
}

@media (max-width: 781px) {
  .cg-homepage .cg-home-hero { gap: 1.5rem; }
  .cg-homepage .cg-featured-gifts ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .cg-homepage .cg-featured-gifts ul.products { grid-template-columns: minmax(0, 1fr); }
}

.cg-homepage .cg-featured-gifts ul.products.cg-featured-carousel {
  --cg-featured-gap: clamp(.75rem, 1.5vw, 1.25rem);
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - var(--cg-featured-gap)) / 2);
  gap: var(--cg-featured-gap);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
}

.cg-featured-carousel > li.product { scroll-snap-align: start; }

.cg-featured-carousel :is(a, button):focus-visible {
  outline: 2px solid var(--wp--preset--color--warm-red);
  outline-offset: -2px;
}

.cg-featured-controls:not([hidden]) {
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
  margin-block-end: .65rem;
}

.cg-featured-controls button {
  display: grid;
  place-items: center;
  min-inline-size: 2.75rem;
  min-block-size: 2.75rem;
  border: 1px solid var(--wp--preset--color--warm-red);
  border-radius: 50%;
  background: var(--wp--preset--color--white-canvas);
  color: var(--wp--preset--color--warm-red);
  font: inherit;
  font-size: 1.25rem;
  cursor: pointer;
}

.cg-featured-controls button[aria-disabled="true"] { opacity: .55; cursor: default; }
.cg-featured-controls button:hover:not([aria-disabled="true"]) { background: var(--wp--preset--color--pale-yellow); }
.cg-featured-controls button:focus-visible { outline: 2px solid var(--wp--preset--color--warm-red); outline-offset: 2px; }
[dir="rtl"] .cg-featured-controls span { transform: scaleX(-1); }

@media (max-width: 600px) {
  .cg-homepage .cg-featured-gifts ul.products.cg-featured-carousel { grid-auto-columns: 88%; }
}

@media (prefers-reduced-motion: no-preference) {
  .cg-featured-carousel { scroll-behavior: smooth; }
}
