/*
Theme Name: Llegue's Motorsports
Theme URI: https://lleguesmotorsports.com
Author: Llegue's Motorsports
Author URI: https://lleguesmotorsports.com
Description: Full Site Editing block theme for a Yamaha Banshee 350 shop — machines and parts are post types, every heading on this page is a block you can click and edit in the Site Editor with a live preview.
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: llegues-motorsports
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, one-column, two-columns, dark
*/

/* ---------------------------------------------------------------- shell */
body {
  background:
    radial-gradient(90% 60% at 80% -10%, rgba(139, 92, 246, .16), transparent 60%),
    radial-gradient(70% 50% at 0% 0%, rgba(255, 45, 85, .09), transparent 60%),
    var(--wp--preset--color--ink);
  background-attachment: fixed;
}

.lsx-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.lsx-header-inner { padding-block: 14px; align-items: center; }
.lsx-brand-name a { text-decoration: none; }
.lsx-brand-sub {
  font-size: 10px !important; letter-spacing: .2em; text-transform: uppercase;
  color: var(--wp--preset--color--amber) !important; margin: 0 !important;
}
.lsx-nav a { text-decoration: none; }
.lsx-nav a:hover { color: var(--wp--preset--color--amber); }
.wp-block-site-logo img { border-radius: 10px; }

.lsx-footer { border-top: 1px solid var(--wp--preset--color--line); margin-top: 64px; }
.lsx-footer .wp-block-group { padding-block: 34px 44px; }
.lsx-footer h4, .lsx-footer .lsx-col-title {
  font-family: var(--wp--preset--font-family--display); font-size: 12px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--wp--preset--color--dim); margin-bottom: 10px;
}
.lsx-footer p, .lsx-footer a { font-size: 13px; color: var(--wp--preset--color--muted); text-decoration: none; }
.lsx-footer a:hover { color: var(--wp--preset--color--amber); }
.lsx-legal { font-size: 11.5px !important; color: var(--wp--preset--color--dim) !important; }

/* ---------------------------------------------------------------- sections */
.lsx-section { padding-block: clamp(34px, 6vw, 76px); }
.lsx-eyebrow {
  font-size: 11px !important; letter-spacing: .2em; text-transform: uppercase; font-weight: 800;
  color: var(--wp--preset--color--amber) !important; margin-bottom: .35rem !important;
}
.lsx-note { font-size: 12.5px !important; color: var(--wp--preset--color--dim) !important; }
.lsx-empty { color: var(--wp--preset--color--dim); font-size: 13px; }

/* ---------------------------------------------------------------- hero */
.lsx-hero { border-radius: 0 0 28px 28px; }
.lsx-hero .wp-block-cover__inner-container { padding-block: clamp(40px, 9vw, 120px); }
.lsx-hero-title { font-size: clamp(2.4rem, 7vw, 4.6rem); }
.lsx-buy { margin: 1.1rem 0 1.4rem !important; }
.lsx-buy form.cart { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 !important; }
.lsx-buy .quantity { margin: 0 !important; }
.lsx-buy .quantity .qty {
  width: 84px; padding: .72rem .6rem; border-radius: 999px; text-align: center;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18); color: var(--wp--preset--color--paper);
}
.lsx-buy .single_add_to_cart_button,
.lsx-buy button.button.alt {
  background: var(--wp--preset--color--amber) !important; color: var(--wp--preset--color--ink) !important;
  border: 0 !important; border-radius: 999px !important; padding: .8rem 1.7rem !important;
  font-weight: 800 !important; letter-spacing: .01em; cursor: pointer;
}
.lsx-buy .single_add_to_cart_button:hover { filter: brightness(1.06); }
.lsx-buy .stock { color: var(--wp--preset--color--muted); font-size: .9rem; }
.lsx-buy .woocommerce-variation-price { color: var(--wp--preset--color--paper); }
.lsx-buy a.added_to_cart { color: var(--wp--preset--color--amber); font-size: .9rem; margin-left: .4rem; }
/* ---------------------------------------------------------------- Trustpilot panel */
.tp-panel {
  position: relative; margin-top: clamp(26px, 3.4vw, 44px); border-radius: 26px; overflow: hidden;
  background: linear-gradient(160deg, #101018, #08080d 70%);
  border: 1px solid rgba(255,255,255,.12); box-shadow: 0 50px 100px -60px #000;
  display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(22px, 3.2vw, 48px);
  padding: clamp(22px, 3.2vw, 42px); perspective: 1200px;
}
.tp-panel::before {
  content: ""; position: absolute; inset: -30% 55% 55% -10%; pointer-events: none;
  background: radial-gradient(circle, rgba(0,182,122,.16), transparent 70%); filter: blur(10px);
}
.tp-left, .tp-right { position: relative; min-width: 0; }
.tp-lockup { display: flex; align-items: center; gap: 9px; margin-bottom: 18px; }
.tp-lockup svg { width: 26px; height: 26px; flex-shrink: 0; }
.tp-wordmark { font-weight: 800; letter-spacing: -.02em; font-size: 19px; color: var(--wp--preset--color--paper); }
.tp-tag {
  font-size: 9.5px; text-transform: uppercase; letter-spacing: .14em; font-weight: 800;
  padding: 4px 9px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: var(--wp--preset--color--muted);
}
.tp-tag.is-live { border-color: rgba(0,182,122,.5); color: #00b67a; }
.tp-headline { font-size: clamp(1.2rem, 2.2vw, 1.6rem) !important; line-height: 1.2; margin: 0 0 .6rem !important; }
.tp-lede { font-size: 13.5px !important; color: var(--wp--preset--color--muted) !important; max-width: 52ch; margin: 0 0 1.1rem !important; }
.tp-stars { display: inline-flex; gap: 3px; margin: 0 0 8px; }
.tp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 1rem 0 1.2rem; }
.tp-btn {
  display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: .72rem 1.15rem;
  font-size: 12.5px; font-weight: 800; text-decoration: none; background: #00b67a; color: #04120c;
  transition: transform .18s cubic-bezier(.22,1,.36,1), box-shadow .25s ease, filter .2s ease;
  box-shadow: 0 14px 30px -18px rgba(0,182,122,.9);
}
.tp-btn:hover { transform: translateY(-2px) scale(1.015); filter: brightness(1.06); }
.tp-btn.ghost { background: transparent; color: var(--wp--preset--color--paper); border: 1px solid rgba(255,255,255,.22); box-shadow: none; }
.tp-btn.ghost:hover { border-color: rgba(255,255,255,.5); }
.tp-mini { display: flex; gap: clamp(14px, 2vw, 26px); margin-top: 4px; }
.tp-mini b { display: block; font-family: var(--wp--preset--font-family--display); font-size: 1.15rem; }
.tp-mini span { font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--dim); }
.tp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 14px; }
.tp-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); border-radius: 16px;
  padding: 16px 16px 0; transform-style: preserve-3d;
  transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .3s ease;
}
.tp-card:hover { box-shadow: 0 30px 60px -34px #000; border-color: rgba(0,182,122,.35); }
.tp-card p { font-size: 12.5px !important; color: var(--wp--preset--color--muted) !important; line-height: 1.55; margin: 0 0 12px !important; }
.tp-card .who {
  display: flex; align-items: center; gap: 7px; margin: 0 -16px; padding: 10px 16px;
  border-top: 1px solid rgba(255,255,255,.08); font-size: 10.5px; color: var(--wp--preset--color--dim);
}
.tp-card .who { flex-wrap: wrap; }
.tp-card .who b { color: var(--wp--preset--color--paper); white-space: nowrap; }
.tp-card .who svg { width: 13px; height: 13px; margin-left: auto; color: #00b67a; }
.tp-note {
  display: flex; gap: 9px; align-items: flex-start; margin: 1rem 0 0 !important;
  font-size: 11.5px !important; color: var(--wp--preset--color--dim) !important; line-height: 1.5;
}
.tp-note svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; }
.tp-panel.is-connected .tp-cards, .tp-panel.is-connected .tp-note { display: none; }
@media (max-width: 900px) {
  .tp-panel { grid-template-columns: 1fr; }
  .tp-cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) { .tp-cards { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- more depth */
.lsx-card { position: relative; }
.lsx-card::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(112deg, transparent 32%, rgba(255,255,255,.11) 46%, transparent 62%);
  opacity: 0; transform: translateX(-18%); transition: opacity .45s ease;
}
.lsx-card:hover::after { opacity: 1; transform: translateX(18%); transition: opacity .45s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.lsx-hero { transform-style: preserve-3d; transition: transform .45s cubic-bezier(.22,1,.36,1); will-change: transform; }
.lsx-hero-title { text-shadow: 0 1px 0 rgba(0,0,0,.5), 0 18px 40px rgba(0,0,0,.55); }
.lsx-stats .wp-block-column {
  transform-style: preserve-3d;
  box-shadow: 0 24px 48px -30px rgba(0,0,0,.9);
  transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}
.lsx-stats .wp-block-column:hover { transform: translateY(-4px); box-shadow: 0 34px 60px -30px rgba(0,0,0,.95); }
.lsx-stat-num { text-shadow: 0 10px 30px rgba(255,209,102,.22); }
@keyframes lsxFloat { 0%, 100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-7px,0); } }
@media (prefers-reduced-motion: no-preference) {
  .lsx-stats .wp-block-column { animation: lsxFloat 7.5s ease-in-out infinite; }
  .lsx-stats .wp-block-column:nth-child(2) { animation-delay: .9s; }
  .lsx-stats .wp-block-column:nth-child(3) { animation-delay: 1.8s; }
  .lsx-hero .wp-block-cover__inner-container { animation: lsxFloat 11s ease-in-out infinite; }
}
@media (prefers-reduced-motion: reduce) {
  .lsx-stats .wp-block-column, .lsx-hero .wp-block-cover__inner-container { animation: none !important; }
}

/* ---------------------------------------------------------------- 3D & motion */
.lsx-hero { perspective: 1400px; }
.lsx-hero .wp-block-cover__image-background { transform: translate3d(0,0,0) scale(1.08); }
.lsx-card, .lsx-single-media { transform-style: preserve-3d; }
.lsx-card {
  transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .3s ease;
}
.lsx-card:hover {
  box-shadow: 0 34px 70px -34px rgba(0,0,0,.95), 0 0 0 1px rgba(255,209,102,.28);
}
.lsx-card .wp-block-post-featured-image, .lsx-card .wp-block-post-featured-image img {
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.lsx-card:hover .wp-block-post-featured-image { transform: translateZ(24px) scale(1.04); }
.wp-block-button__link, .lsx-buy .single_add_to_cart_button {
  transition: transform .18s cubic-bezier(.22,1,.36,1), box-shadow .25s ease, filter .2s ease;
}
.wp-block-button__link:hover, .lsx-buy .single_add_to_cart_button:hover {
  transform: translateY(-2px); box-shadow: 0 18px 34px -18px rgba(255,209,102,.75);
}
.wp-block-button__link.is-pressed, .tp-btn.is-pressed, .lsx-buy .single_add_to_cart_button.is-pressed {
  transform: translateY(1px) scale(.985);
}
@media (prefers-reduced-motion: no-preference) {
  .lsx-reveal { opacity: 0; transform: translate3d(0,28px,0) scale(.986); }
  .lsx-reveal.is-in {
    opacity: 1; transform: none;
    transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lsx-reveal, .lsx-reveal.is-in { opacity: 1 !important; transform: none !important; transition: none !important; }
  .lsx-card:hover, .tp-card:hover, .lsx-buy .single_add_to_cart_button:hover { transform: none !important; }
  .lsx-hero .wp-block-cover__image-background { transform: scale(1.02) !important; }
}
.lsx-archive-title { font-size: var(--wp--preset--font-size--x-large) !important; line-height: 1.1 !important; margin: .1rem 0 .6rem !important; }
.lsx-hero-lede {
  max-width: 56ch; font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: #dcdce6 !important;
}
.lsx-stats { margin-top: -34px; position: relative; z-index: 2; }
.lsx-stats .wp-block-column {
  background: rgba(12, 12, 20, .92); border: 1px solid var(--wp--preset--color--line);
  border-radius: 16px; padding: 16px 18px; backdrop-filter: blur(8px);
}
.lsx-stat-num {
  font-family: var(--wp--preset--font-family--display); font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important;
  line-height: 1; letter-spacing: -.02em; margin: 0 0 6px !important;
}
.lsx-stat-label {
  font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase;
  color: var(--wp--preset--color--dim) !important; margin: 0 !important;
}

/* ---------------------------------------------------------------- cards */
.lsx-grid .wp-block-post-template { margin: 0; }
.lsx-card {
  background: var(--wp--preset--color--panel); border: 1px solid var(--wp--preset--color--line);
  border-radius: 18px; overflow: hidden; padding: 0 !important; gap: 0 !important;
  transition: transform .25s ease, border-color .25s ease;
}
.lsx-card:hover { transform: translateY(-3px); border-color: rgba(255, 176, 32, .45); }
.lsx-card-media, .lsx-card > .wp-block-post-featured-image { margin: 0 !important; }
.lsx-card-media img, .lsx-card .wp-block-post-featured-image img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; display: block;
}
.lsx-card > *:not(.wp-block-post-featured-image) { padding-inline: 14px; }
.lsx-card > .wp-block-post-title { padding-top: 6px; }
.lsx-card > *:last-child { padding-bottom: 16px; }
.lsx-card-kicker { margin: 8px 0 0 !important; }
.lsx-card-kicker a {
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-weight: 800;
  color: var(--wp--preset--color--dim) !important; text-decoration: none;
}
.lsx-card-title { font-size: 1.02rem !important; line-height: 1.25 !important; margin: .2rem 0 .4rem !important; }
.lsx-card-title a { text-decoration: none; color: var(--wp--preset--color--paper); }
.lsx-card-title a:hover { color: var(--wp--preset--color--amber); }
.lsx-price {
  font-family: var(--wp--preset--font-family--display); font-size: 1.15rem !important;
  margin: 0 !important; color: var(--wp--preset--color--paper);
}
.lsx-stock {
  font-size: 10.5px !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 800;
  color: var(--wp--preset--color--green) !important; margin: 0 0 4px !important;
}

/* ---------------------------------------------------------------- heritage / reviews */
.lsx-era-grid { gap: 26px; }
.lsx-era-img img { border-radius: 16px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.lsx-era-year {
  font-family: var(--wp--preset--font-family--display); font-size: 1.6rem !important;
  color: var(--wp--preset--color--amber) !important; margin: .6rem 0 0 !important; line-height: 1;
}
.lsx-trust .wp-block-column { border-left: 1px solid var(--wp--preset--color--line); padding-left: 18px; }
.lsx-review-grid { gap: 18px; }
.lsx-review { padding: 18px !important; gap: .4rem !important; }
.lsx-review > * { padding-inline: 0 !important; }
.lsx-stars { color: var(--wp--preset--color--amber) !important; letter-spacing: .12em; margin: 0 !important; }
.lsx-review-who {
  font-size: 11.5px !important; letter-spacing: .08em; text-transform: uppercase;
  color: var(--wp--preset--color--dim) !important; margin-top: .4rem !important;
}
.lsx-giveaway-img img { border-radius: 18px; }

/* ---------------------------------------------------------------- faq / contact */
.lsx-faq {
  border-bottom: 1px solid var(--wp--preset--color--line); padding: 14px 0;
  font-family: var(--wp--preset--font-family--sans);
}
.lsx-faq summary {
  cursor: pointer; font-weight: 800; font-size: 1rem; color: var(--wp--preset--color--paper);
  font-family: var(--wp--preset--font-family--display); letter-spacing: -.01em;
}
.lsx-faq summary::marker { color: var(--wp--preset--color--amber); }
.lsx-faq p { font-size: .95rem; color: #d6d6e2; }
.lsx-contact .wp-block-column { border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 18px; }
.lsx-contact a { text-decoration: none; }

/* ---------------------------------------------------------------- single product */
.lsx-single { padding-block: 28px 8px; }
.lsx-crumbs { font-size: 12.5px; color: var(--wp--preset--color--dim); }
.lsx-crumbs a { color: var(--wp--preset--color--dim); text-decoration: none; }
.lsx-crumbs a:hover { color: var(--wp--preset--color--amber); }
.lsx-single-title { font-size: clamp(1.9rem, 4vw, 3rem) !important; }
.lsx-single-media img { border-radius: 20px; width: 100%; }
.lsx-single-price { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3vw, 2.2rem) !important; margin: 0 !important; }
.lsx-single-badge { color: var(--wp--preset--color--green) !important; font-size: 11px !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; }
.lsx-spec { width: 100%; border-collapse: collapse; font-size: .92rem; }
.lsx-spec th, .lsx-spec td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--wp--preset--color--line); }
.lsx-spec th { color: var(--wp--preset--color--dim); font-weight: 700; width: 38%; }

/* ---------------------------------------------------------------- commerce bits */
.wp-block-post-terms a, .wp-block-tag-cloud a {
  font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 800;
  color: var(--wp--preset--color--muted); text-decoration: none;
  border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: 5px 11px; display: inline-block;
}
.wp-block-post-terms a:hover, .wp-block-tag-cloud a:hover {
  color: var(--wp--preset--color--amber); border-color: rgba(255, 176, 32, .5);
}
.wp-block-query-pagination { margin-top: 28px; gap: 8px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers {
  border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: 7px 14px; text-decoration: none;
}
.lsx-index-list .wp-block-post-title { font-size: .95rem !important; margin: 0 0 2px !important; }
.lsx-index-list .lsx-price { font-size: .85rem !important; color: var(--wp--preset--color--dim); }
@media (max-width: 700px) {
  .lsx-trust .wp-block-column { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); padding: 12px 0 0; }
  .lsx-stats { margin-top: -18px; }
}

/* ---------------------------------------------------------------- icon & widget guardrails */
/* WooCommerce block chrome ships an 80px empty-cart illustration and other
   em-sized plugin icons. On a dark page those read as blown-up clip-art, so
   every plugin icon is pinned back to a human size here. */
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
.wc-block-cart__empty-cart__title.with-empty-cart-icon::after {
  width: 44px !important; height: 44px !important;
  -webkit-mask-size: 44px 44px !important; mask-size: 44px 44px !important;
  margin: 0 auto 12px !important; opacity: .5 !important;
}
.wc-block-cart__empty-cart__title {
  font-size: clamp(1.05rem, 3.2vw, 1.35rem) !important; max-width: 100%;
}
.wc-block-components-notice-banner > svg,
.wc-block-components-notice-banner__content svg,
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before {
  width: 20px; height: 20px; flex: 0 0 20px; font-size: 1em;
}
.star-rating, .wc-block-grid__product-rating .star-rating, .woocommerce ul.products li.product .star-rating {
  font-size: 12px; width: 5.4em; line-height: 1;
}
/* inline icons (Trustpilot lockup, badges) must never outgrow their box */
.lsx-reveal svg, .tp-panel svg, .tp-card svg, .lsx-buy svg, .entry-content svg { max-width: 100%; height: auto; flex-shrink: 0; }
.tp-card .who svg, .tp-panel .tp-lockup svg, .tp-panel .tp-verified svg { width: 16px !important; height: 16px !important; }
/* no floating widget may hang off the edge of a phone */
#ht-ctc-chat, .ht-ctc-chat, #tawkchat-minified-container, .tawk-min-container {
  max-width: calc(100vw - 28px) !important;
}
@media (max-width: 700px) {
  .lsx-header-inner { gap: 8px; row-gap: 2px; }
  .wp-block-site-logo img { max-height: 40px; width: auto; }
  .lsx-brand-name { font-size: 1.05rem !important; }
  .lsx-brand-sub { font-size: 10px !important; letter-spacing: .1em; }
  .lsx-single-media img { border-radius: 14px; }
}
