/* Storefront home: approved structure and Nắng ấm tokens. */
body.lp-home .site-main:has(.lp-table-scroll) { max-width:none; padding:0; }
body.lp-home .elementor:has(.lp-sec) { padding-top:0; }
body.lp-home .elementor .lp-sec--hero > .e-con-inner { display:flex; }
body.lp-home .elementor .e-con.lp-sec.lp-sec--hero { max-width:none; padding:0; }
body.lp-home .lp-sec .elementor-widget-html,body.lp-home .lp-sec .elementor-widget-shortcode { width:100%; }
body.lp-home .lp-sec h2 { font-size:var(--lp-fs-h2); margin:0 0 24px; }
body.lp-home .lp-sec p { margin-bottom:16px; }
.lp-hero { position:relative; height:420px; overflow:hidden; background:var(--lp-color-cream-deep); }
.lp-slide { box-sizing:border-box; position:absolute; inset:0; opacity:0; visibility:hidden; display:flex; align-items:center; padding:24px 16px 80px; background:var(--lp-color-cream-deep); transition:opacity 500ms ease-out; }
.lp-slide.is-active { opacity:1; visibility:visible; z-index:1; }
.lp-slide:nth-child(2) { background:var(--lp-color-pink-tint); }
.lp-slide:nth-child(3) { background:var(--lp-color-sun); }
.lp-slide:nth-child(4) { background:var(--lp-color-cream-deep); }
.lp-slide__copy { width:100%; max-width:580px; position:relative; z-index:1; }
body.lp-home .lp-slide :is(h1,h2) { font-size:30px; margin:0 0 16px; color:var(--lp-color-ink); }
body.lp-home .lp-slide p { line-height:1.5; margin-bottom:20px; max-width:52ch; }
body.lp-home .lp-sec .lp-btn,.lp-newsletter button { display:inline-flex; align-items:center; justify-content:center; padding:10px 24px; min-height:44px; border:0; border-radius:var(--lp-radius-md); font:800 16px/1.5 var(--lp-font-body); color:var(--lp-color-ink); background:var(--lp-color-pink); text-decoration:none; }
body.lp-home .lp-sec .lp-btn:hover,.lp-newsletter button:hover { color:var(--lp-color-white); background:var(--lp-color-pink-deep); }
.lp-slide > .lp-slide__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; z-index:0; }
.lp-slide:nth-child(2) > .lp-slide__img { object-position:54% 50%; }
.lp-slide:nth-child(3) > .lp-slide__img { object-position:60% 55%; }
.lp-slide:nth-child(4) > .lp-slide__img { object-position:50% 55%; }
.lp-slide::after { content:""; position:absolute; inset:0; background:inherit; opacity:0.80; pointer-events:none; z-index:0; }
.lp-hero__controls { position:absolute; z-index:2; bottom:16px; left:16px; right:16px; display:none; align-items:center; gap:4px; }
.lp-hero.lp-js .lp-hero__controls { display:flex; }
.lp-hero__controls button { display:inline-flex; align-items:center; justify-content:center; min-width:44px; width:44px; height:44px; min-height:44px; padding:0; border:1px solid var(--lp-color-line); border-radius:var(--lp-radius-pill); color:var(--lp-color-ink); background:var(--lp-color-white); font-size:18px; cursor:pointer; }
.lp-hero__dots { display:flex; margin-left:auto; }
.lp-hero__dots button { border:0; background:transparent; color:var(--lp-color-ink-soft); }
.lp-hero__dots button[aria-current="true"] { color:var(--lp-color-pink-deep); }
body.lp-home .lp-sec :is(a,button,input,summary):focus-visible { outline:3px solid var(--lp-color-pink-deep); outline-offset:3px; }
.lp-trust,.lp-cats,.lp-occasions,.lp-themes,.lp-steps,.lp-materials { list-style:none; padding:0; margin:0; display:grid; gap:24px; }
.lp-trust { grid-template-columns:repeat(2,minmax(0,1fr)); background:var(--lp-color-cream-deep); border-radius:var(--lp-radius-md); padding:24px; font-weight:800; text-align:center; }
.lp-cats,.lp-themes { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.lp-home .lp-sec :is(.lp-cats,.lp-occasions,.lp-themes) a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:88px; height:100%; text-align:center; text-decoration:none; padding:24px 16px; border-radius:var(--lp-radius-lg); color:var(--lp-color-ink); background:var(--lp-color-pink-tint); font-weight:800; }
body.lp-home .lp-sec :is(.lp-cats,.lp-occasions,.lp-themes) li:nth-child(3n+2) a { background:var(--lp-color-cream-deep); }
body.lp-home .lp-sec :is(.lp-cats,.lp-occasions,.lp-themes) li:nth-child(3n) a { background:var(--lp-color-sun); }
.lp-cat__art { display:block; width:56px; height:56px; }
.lp-occasion__themes { display:block; font-size:14px; font-weight:400; }
.lp-home-all-wrap { text-align:center; margin-top:24px; }
body.lp-home .lp-sec .lp-home-all { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:10px 24px; border-radius:var(--lp-radius-sm); background:var(--lp-color-pink-tint); color:var(--lp-color-pink-deep); font-weight:800; text-decoration:none; }
.lp-steps { counter-reset:step; }
.lp-steps > li,.lp-materials > li { background:var(--lp-color-white); border:1px solid var(--lp-color-line); border-radius:var(--lp-radius-lg); padding:24px; }
.lp-steps > li::before { counter-increment:step; content:counter(step); display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:var(--lp-radius-pill); background:var(--lp-color-sun); font-weight:800; margin-bottom:16px; }
.lp-why { padding-left:24px; }
.lp-why li { margin-bottom:16px; }
.lp-home-about { margin-bottom:0; }
.lp-home-why { padding-top:32px; }
.lp-ship { min-width:520px; width:100%; border-collapse:collapse; }
.lp-ship :is(th,td) { padding:16px; text-align:left; border:1px solid var(--lp-color-line); background:var(--lp-color-white); }
.lp-sec--shipping table tbody tr:nth-child(odd) td,.lp-sec--shipping table tbody tr:nth-child(even) td { background:var(--lp-color-white); }
.lp-ship thead th { background:var(--lp-color-cream-deep); }
.lp-sec--shipping .lp-ship tbody th { background:var(--lp-color-cream-deep); }
.lp-faq { background:var(--lp-color-white); border:1px solid var(--lp-color-line); border-radius:var(--lp-radius-md); padding:0 16px; margin-bottom:12px; }
.lp-faq summary { min-height:44px; padding:12px 0; font-weight:800; cursor:pointer; }
body.lp-home .elementor .e-con.lp-sec--newsletter { background:var(--lp-color-ink); color:var(--lp-color-white); padding-block:32px; border-radius:var(--lp-radius-lg); }
body.lp-home .lp-sec--newsletter h2 { color:var(--lp-color-white); }
@media (max-width:767px) {
 .lp-ship { min-width:0; table-layout:fixed; }
 .lp-ship :is(th,td) { padding:12px 8px; white-space:normal; overflow-wrap:anywhere; }
}
@media (min-width:768px) {
 .lp-hero { height:460px; }
 .lp-slide { padding:40px max(24px,calc((100% - 1136px)/2)) 80px; }
 .lp-slide__copy { width:56%; }
 .lp-slide > .lp-slide__img { left:auto; width:min(62%, 880px); -webkit-mask-image:linear-gradient(90deg, transparent 0, black 42%); mask-image:linear-gradient(90deg, transparent 0, black 42%); }
 .lp-slide::after { display:none; }
 body.lp-home .lp-slide :is(h1,h2) { font-size:48px; }
 .lp-hero__controls { left:max(24px,calc((100% - 1136px)/2)); right:max(24px,calc((100% - 1136px)/2)); }
 .lp-hero__dots { margin-left:24px; }
 .lp-occasions { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .lp-steps,.lp-materials { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .lp-trust { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .lp-sec--about .elementor-widget-html .elementor-widget-container { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; }
 .lp-home-about { margin:0; }
 body.lp-home .elementor .lp-sec--newsletter > .e-con-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:center; }
}
@media (min-width:1280px) {
 .lp-cats,.lp-themes { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .lp-occasions { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
 .lp-slide { transition:none; }
}
.lp-newsletter { display:grid; gap:16px; max-width:520px; }
.lp-nl-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.lp-newsletter input[type="email"] { width:100%; box-sizing:border-box; min-height:44px; border:1px solid var(--lp-color-line); border-radius:var(--lp-radius-md); padding:10px 12px; background:var(--lp-color-white); color:var(--lp-color-ink); font:inherit; }
.lp-newsletter__consent { display:flex; align-items:flex-start; gap:12px; }
.lp-newsletter__consent label { min-height:24px; line-height:24px; position:relative; cursor:pointer; }
.lp-newsletter__consent label::after { content:""; position:absolute; inset:-10px 0; }
.lp-newsletter input[type="checkbox"] { flex:none; width:20px; height:20px; margin-top:4px; accent-color:var(--lp-color-pink); }
.lp-newsletter button { justify-self:start; cursor:pointer; }
.lp-newsletter__msg { padding:12px; border:2px solid currentColor; border-radius:var(--lp-radius-md); }
.lp-newsletter__msg[role="alert"] { border:0; padding:0; background:transparent; color:var(--lp-color-pink-tint); }
/* Outrank company.css .elementor .lp-sec p and the home paragraph margin. */
body.lp-home .lp-sec .lp-newsletter input[type="email"] + .lp-newsletter__msg[role="alert"] { margin-top:-8px; }
body.lp-home .lp-sec .lp-newsletter .lp-newsletter__consent + .lp-newsletter__msg[role="alert"] { margin-top:-4px; }
.lp-newsletter__msg[role="alert"]::before { content:"⚠ "; }
.lp-newsletter__msg[role="status"] { background:var(--lp-color-white); color:var(--lp-color-leaf-deep); }

.lp-hero__prev::before,.lp-hero__next::before { content:""; width:20px; height:20px; background:var(--lp-color-ink); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m12 4-6 6 6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m12 4-6 6 6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.lp-hero__next::before { transform:rotate(180deg); }
body.lp-home .lp-hero__controls button:focus-visible { outline:3px solid var(--lp-color-pink-deep); outline-offset:2px; }

/* FR-SHOP-24..26: scoped Woo grid; 4 × 160px + 3 × 24px requires 712px. */
body.lp-home .lp-sec--new .elementor-widget-shortcode { container:lp-arrivals / inline-size; }
body.lp-home .lp-sec--new ul.products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; margin:0; }
body.lp-home .lp-sec--new ul.products::before,body.lp-home .lp-sec--new ul.products::after { display:none; }
body.lp-home .lp-sec--new ul.products li.product { width:auto; margin:0; float:none; min-width:0; display:flex; flex-direction:column; }
/* Outrank Woo product links and woo.css card button spacing. Price lives inside a. */
body.lp-home .lp-sec--new ul.products li.product > a.woocommerce-LoopProduct-link { display:flex; flex-direction:column; flex:1 1 auto; }
body.lp-home .lp-sec--new ul.products li.product .price { margin-top:auto; }
body.lp-home .lp-sec--new ul.products li.product .button { margin-top:16px; align-self:flex-start; }
body.lp-home .lp-sec--new .lp-card-media { background:var(--lp-color-cream-deep); }
body.lp-home .lp-sec--new .woocommerce-loop-product__title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
/* Outrank Woo title padding even when plugin CSS loads after the child theme. */
body.lp-home .lp-sec--new ul.products li.product .woocommerce-loop-product__title { padding-bottom:0; margin-bottom:12px; }
@media (min-width:768px) {
 @container lp-arrivals (min-width:712px) {
  body.lp-home .lp-sec--new ul.products { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
 }
}
