/* Holleyweb storefront skin: the original holleyweb catalogue layout (white
   page, uppercase headings, grey title bars, dotted lists), made compact and
   responsive. Loaded after the Loam styles, so plain selectors override them. */
:root {
  --holley-ink: #141414;
  --holley-text: #2b2b2b;
  --holley-muted: #6a6a6a;
  --holley-line: #e2e2e2;
  --holley-rule: #cfcfcf;
  --holley-dots: #c8c8c8;
  --holley-block: #f1f1f1;
  --holley-bar: #1f1f1f;
  --holley-accent: #0e5f64;
  --holley-accent-soft: #e7f1f1;
  --holley-panel: #f7f8f8;

  /* Prices and ratings. The sale red keeps 5.6:1 contrast on white. The rating
     selector uses the darker amber so the control clears 3:1; the brighter one
     is for display ratings. */
  --holley-price: #c42b23;
  --holley-price-was: var(--holley-muted);
  --holley-star: #f5a623;
  --holley-star-ink: #b7791f;
  --holley-star-empty: #d9d9d9;

  /* Type scale: page titles, body copy and the sidebar lists. */
  --holley-title-size: clamp(1.5rem, 2.2vw, 1.9rem);
  --holley-body-size: 1rem;
  --holley-sidebar-size: 0.86rem;
  --holley-page: #edf0f1;
  --holley-sheet: 76rem;
  --holley-sheet-edge: #dde2e4;
  --loam-content-wide: 72rem;
  --loam-content-gutter: clamp(1.125rem, 3vw, 2rem);
  --loam-color-volt: #a9dadd;
  --color-volt: #a9dadd;
}

/* Boxed layout: header, content and footer share one centred white column on a faint grey page.
   --loam-content-wide matches the column's inner width, so wide blocks (cart, checkout) stay inside it. */
body { background: var(--holley-page); }
.entry-content { font-size: var(--holley-body-size); line-height: 1.7; }
.site-header, .site-main, .site-footer { width: min(100%, var(--holley-sheet)); margin-inline: auto; }
.site-main { background: #fff; }
.site-header, .site-main { box-shadow: 1px 0 0 var(--holley-sheet-edge), -1px 0 0 var(--holley-sheet-edge); }

/* Grey title bar shared by sidebars, section headings and panels. */
.holley-categories__title,
.holley-legacy-menu h2,
.entry-content .holley-contact-panel h2,
.holley-products__heading h2 { margin: 0; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.95rem; font-stretch: 100%; font-weight: 800; letter-spacing: 0.03em; line-height: 1.2; text-transform: uppercase; }
.holley-categories__title,
.holley-legacy-menu h2,
.entry-content .holley-contact-panel h2 { padding: 0.7rem 0.9rem; background: var(--holley-block); }

/* Top bar */
.usp-bar { background: var(--holley-bar); color: #d9d9d9; }
.usp-bar__list { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); justify-content: flex-start; gap: 0; padding-block: 0.4rem; overflow-x: auto; font-family: var(--loam-font-sans); font-size: 0.78rem; font-weight: 500; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.usp-bar .usp-bar__item:nth-child(n) { display: flex; }
.usp-bar__item svg { display: none; }
.usp-bar__social { display: flex; flex: none; align-items: center; gap: 0.35rem; margin-left: auto; padding-left: 1rem; }
.usp-bar .social-link { display: grid; width: 1.6rem; height: 1.6rem; place-items: center; color: #cfcfcf; transition: color 150ms; }
.usp-bar .social-link:hover { color: #a9dadd; }
.usp-bar .social-link__icon { width: 0.95rem; height: 0.95rem; }
.usp-bar__item + .usp-bar__item::before { width: 1px; height: 0.85em; margin-inline: 0.85rem 0.45rem; background: rgb(255 255 255 / 0.28); content: ""; }

/* Header: logo, open search field and square tools. */
.site-header { background: #fff; backdrop-filter: none; }
.site-header__inner { border-bottom: 0; }
.site-brand__img { width: 160px; height: auto; max-height: none; }
.site-brand__logo img { max-width: 160px; max-height: 52px; }
.site-header__tools { gap: 0.5rem; color: var(--holley-ink); }
.header-search, .header-account, .header-cart-fallback { border-color: var(--holley-rule); border-radius: 2px; background: #fff; }
.header-search { background: #f6f6f6; }
.header-search:focus-within { border-color: var(--holley-ink); background: #fff; box-shadow: none; }
.header-account:hover, .header-cart-fallback:hover { border-color: var(--holley-ink); background: var(--holley-ink); color: #fff; }
.header-cart-slot { padding-left: 0; border-left: 0; }

@media (min-width: 68rem) {
  /* A static header keeps the compact three-row masthead out of the reading area. */
  .site-header { position: relative; border-bottom: 0; }
  .site-header .container-header { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); }
  .site-header__inner { display: grid; grid-template-columns: 1fr auto; gap: 0; min-height: 0; padding-block: 0.9rem 0; }
  .site-brand { grid-column: 1; grid-row: 1; justify-self: start; }
  .site-header__tools { grid-column: 2; grid-row: 1; }

  /* Search stays a square icon beside account and cart, and opens on hover or
     keyboard focus (Loam's behaviour); it also stays open while it holds a query. */
  .site-header .header-search--desktop { width: 2.6rem; min-height: 2.6rem; justify-content: flex-end; transition: width 200ms ease-out, border-color 150ms, background-color 150ms; }
  .site-header .header-search--desktop:is(:hover, :focus-within, :has(input[type="search"]:not(:placeholder-shown))) { width: clamp(15rem, 22vw, 20rem); }
  .site-header .header-search--desktop input[type="search"] { flex: 0 0 auto; width: 0; min-width: 0; padding-left: 0; font-size: 0.9rem; opacity: 0; transition: opacity 150ms; }
  .site-header .header-search--desktop:is(:hover, :focus-within, :has(input[type="search"]:not(:placeholder-shown))) input[type="search"] { flex: 1 1 auto; width: auto; padding-left: 0.85rem; opacity: 1; }
  .site-header .header-search--desktop button { flex: none; width: 2.5rem; height: 2.5rem; }
  .header-account--desktop, .header-cart-fallback { width: 2.6rem; height: 2.6rem; }

  /* Uppercase text menu between two rules, as on the original site. The display and
     border values are repeated because the starter's mobile menu query also matches at 68rem. */
  .site-nav--desktop { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; margin: 0.85rem 0 0; padding: 0; border-block: 1px solid var(--holley-rule); background: none; }
  .site-nav--desktop .site-nav__list, .site-nav--desktop .menu { display: flex; justify-content: space-between; gap: 0.75rem; }
  .site-nav--desktop a { display: inline-flex; min-height: 2.85rem; border-bottom: 0; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.82rem; font-weight: 650; letter-spacing: 0.03em; text-decoration: none; text-transform: uppercase; }
  .site-nav--desktop a::after { bottom: -1px; height: 2px; background: var(--holley-accent); }
  .site-nav--desktop a:hover, .site-nav--desktop .current-menu-item > a { color: var(--holley-accent); }
}

@media (max-width: 67.99rem) {
  .site-header__inner { min-height: 4rem; }
  .site-nav-panel .site-nav a { min-height: 2.9rem; font-family: var(--loam-font-sans); font-size: 0.9rem; font-weight: 650; letter-spacing: 0.04em; }
  .site-brand__img, .site-brand__logo img { width: 128px; }
}

/* Focused checkout header: logo, a secure-checkout note and a way back to the cart. */
.checkout-header { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; font-size: 0.82rem; }
.checkout-header__secure { display: inline-flex; align-items: center; gap: 0.45rem; margin: 0; color: var(--holley-ink); font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
.checkout-header__secure svg { width: 1.05rem; height: 1.05rem; color: var(--holley-accent); }
.checkout-header__back { color: var(--holley-muted); font-weight: 600; text-decoration: none; white-space: nowrap; }
.checkout-header__back:hover { color: var(--holley-accent); text-decoration: underline; }

/* Logo left, reassurance right at every width (the full header centres the logo on phones). */
body.woocommerce-checkout:not(.woocommerce-order-received) .site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.9rem; border-bottom: 1px solid var(--holley-rule); }

@media (min-width: 68rem) {
  .checkout-header { grid-column: 2; grid-row: 1; }
}

@media (max-width: 30rem) {
  .checkout-header { gap: 0.9rem; }

  /* Icon only on small phones; the label stays available to screen readers. */
  .checkout-header__secure span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

/* Checkout: the title and the progress steps share one compact row above the form. */
body.woocommerce-checkout:not(.woocommerce-order-received) .entry-header--page { padding-block: 1rem 0.6rem; border-bottom: 0; }
body.woocommerce-checkout:not(.woocommerce-order-received) .entry-header--page h1 { font-size: clamp(1.5rem, 2.2vw, 1.85rem); }
body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress { margin-bottom: 1rem; padding-block: 0 0.9rem; border-bottom: 1px solid var(--holley-line); }
body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__marker { flex-basis: 1.5rem; width: 1.5rem; height: 1.5rem; font-size: 0.72rem; }
body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__item.is-current .commerce-progress__marker { box-shadow: none; }

@media (min-width: 48rem) {
  body.woocommerce-checkout:not(.woocommerce-order-received) .entry { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0; width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); margin-inline: auto; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .entry > * { width: auto; margin-inline: 0; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .entry-header--page,
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress { grid-row: 1; margin-bottom: 1.1rem; padding-block: 0.9rem; border-bottom: 1px solid var(--holley-line); }
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress { display: flex; grid-column: 2; align-items: center; justify-content: flex-end; padding-left: 2rem; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__item:last-child { flex: none; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__list { width: min(100%, 27rem); margin: 0; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__item { font-size: 0.82rem; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .commerce-progress__item:not(:last-child)::after { margin-inline: 0.6rem; }
  body.woocommerce-checkout:not(.woocommerce-order-received) .entry-content { grid-column: 1 / -1; }
}

/* Checkout footer: one slim bar with the copyright and ways to get help. */
.checkout-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1.5rem; padding-block: 1rem; color: #9a9a9a; font-size: 0.8rem; }
.checkout-footer__copy { margin: 0; }
.checkout-footer__help { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1rem; margin: 0; padding: 0; list-style: none; }
.checkout-footer__help-label { color: #fff; font-weight: 700; }
.checkout-footer__help a { color: #d6d6d6; text-decoration: none; }
.checkout-footer__help a:hover { color: #a9dadd; text-decoration: underline; }

/* Footer: brand note beside four ruled columns, then a slim copyright row. */
.site-footer { border-top: 3px solid var(--holley-accent); background: #181818; }
.site-footer__top { gap: 2rem; padding-block: 2.5rem 2.25rem; }
.site-footer__brand { gap: 1rem; }
.site-footer__brand-link { max-width: 150px; }

/* The transparent SVG logo is black; invert it for the dark footer. */
.site-footer__logo img { width: 150px; max-width: 100%; height: auto; filter: invert(1); }
.site-footer__social { display: flex; gap: 0.5rem; margin-top: 0.25rem; }
.site-footer .social-link { display: grid; width: 2.1rem; height: 2.1rem; place-items: center; border: 1px solid rgb(255 255 255 / 0.22); border-radius: 2px; color: #fff; transition: border-color 150ms, color 150ms; }
.site-footer .social-link:hover { border-color: #a9dadd; color: #a9dadd; }
.site-footer .social-link__icon { width: 1rem; height: 1rem; }
.site-footer__brand p { max-width: 20rem; color: #b8b8b8; font-size: 0.86rem; font-weight: 400; line-height: 1.6; }
.site-footer__cols { gap: 2rem 1.5rem; }
.footer-col__heading { position: relative; margin-bottom: 0.9rem; padding-bottom: 0.65rem; border-bottom: 1px solid rgb(255 255 255 / 0.12); color: #fff; font-family: var(--loam-font-sans); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.footer-col__heading::after { position: absolute; bottom: -1px; left: 0; width: 1.75rem; height: 2px; background: #a9dadd; content: ""; }
.footer-col__list { gap: 0.55rem; line-height: 1.45; }
.site-footer .footer-col__link { color: #d6d6d6; font-size: 0.86rem; line-height: 1.45; text-decoration: none; }
.site-footer .footer-col__link:hover { color: #a9dadd; text-decoration: underline; }
.site-footer .footer-col__text { color: #9a9a9a; font-size: 0.86rem; line-height: 1.45; }
.footer-col--why-choose-us .footer-col__text { display: inline-flex; align-items: baseline; gap: 0.55rem; color: #d6d6d6; }
.footer-col--why-choose-us .footer-col__text::before { flex: none; width: 0.6rem; height: 0.32rem; border-bottom: 2px solid #a9dadd; border-left: 2px solid #a9dadd; content: ""; transform: translateY(-0.2rem) rotate(-45deg); }
.site-footer__bottom { padding-block: 0.9rem; border-top: 1px solid rgb(255 255 255 / 0.12); color: #8c8c8c; font-size: 0.78rem; }
.site-footer .back-to-top { width: 2.2rem; height: 2.2rem; border-color: rgb(255 255 255 / 0.25); border-radius: 2px; }
.site-footer .back-to-top:hover { border-color: #a9dadd; color: #a9dadd; }

/* Accepted payment marks, beside the back-to-top button. A faint ring keeps the
   dark cards (Maestro, Discover) distinct from the footer. */
.site-footer__payments { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 0 auto; padding: 0; list-style: none; }
.site-footer__payments li { display: flex; }
.site-footer__payments img { width: 38px; height: 24px; border-radius: 3px; box-shadow: 0 0 0 1px rgb(255 255 255 / 0.14); object-fit: contain; }

@media (max-width: 40rem) {
  .site-footer__bottom { flex-wrap: wrap; }
  .site-footer__bottom > p { flex-basis: 100%; }
  .site-footer__payments { margin-left: 0; }
}

@media (min-width: 64rem) {
  .site-footer__top { grid-template-columns: minmax(14rem, 19rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); }
  .site-footer__brand, .site-footer__cols { grid-column: auto; }
}

/* Homepage: categories sidebar beside the video, intro and product selections. */
.holley-home { background: #fff; }
.holley-home__shell { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); margin-inline: auto; display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: clamp(1.25rem, 2.2vw, 2rem); padding-block: 1.5rem 3rem; }
.holley-home__content { min-width: 0; }

.holley-categories { position: relative; z-index: 5; align-self: start; }
.holley-categories__list, .holley-categories__list ul { margin: 0; padding: 0; list-style: none; }
.holley-categories__list > li { position: relative; display: flex; align-items: center; border-bottom: 1px dotted var(--holley-dots); }
.holley-categories__list > li > a { flex: 1; min-width: 0; padding: 0.55rem 0.4rem 0.55rem 0.9rem; color: var(--holley-ink); font-size: var(--holley-sidebar-size); font-weight: 600; line-height: 1.3; text-decoration: none; }
.holley-categories__list .count { flex: none; padding-right: 0.9rem; color: #9a9a9a; font-size: 0.76rem; }
.holley-categories__list > li:has(> .children)::after { flex: none; width: 0.36rem; height: 0.36rem; margin: 0 0.95rem 0 -0.35rem; border-top: 1.5px solid #9a9a9a; border-right: 1.5px solid #9a9a9a; content: ""; transform: rotate(45deg); }
.holley-categories__list > li:hover, .holley-categories__list > li:focus-within { background: #fafafa; }
.holley-categories__list > li:hover > a, .holley-categories__list > li:focus-within > a { color: var(--holley-accent); }
.holley-categories__list a:focus-visible { outline-offset: -3px; }

/* Subcategories open as a flyout, like a classic catalogue menu. */
.holley-categories__list .children { position: absolute; z-index: 20; top: -1px; left: 100%; display: none; width: 16rem; padding: 0.35rem 0; background: #fff; border: 1px solid var(--holley-rule); box-shadow: 0 14px 30px rgb(0 0 0 / 0.12); }
.holley-categories__list > li:hover > .children, .holley-categories__list > li:focus-within > .children { display: block; }
.holley-categories__list .children li { color: #9a9a9a; font-size: 0.76rem; }
.holley-categories__list .children a { display: inline-block; padding: 0.42rem 0.25rem 0.42rem 0.9rem; color: var(--holley-text); font-size: 0.88rem; font-weight: 500; text-decoration: none; }
.holley-categories__list .children a:hover { color: var(--holley-accent); text-decoration: underline; }
.holley-categories__list .children .count { padding-right: 0; }
.holley-categories__list .children .children { position: static; display: block; width: auto; padding: 0 0 0 0.75rem; border: 0; box-shadow: none; }

.holley-intro__video { position: relative; aspect-ratio: 16 / 9; background: #111; }
.holley-intro__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* "Why choose Holleyweb?": one light panel. Wide: the heading, lead and quick facts on
   the left, the copy on the right, and the button beside the closing line. Narrow: stacked. */
.holley-intro { container-type: inline-size; }
.holley-why { display: grid; gap: 0.8rem; margin-top: 1rem; padding: 1.1rem 1.25rem; border: 1px solid var(--holley-line); background: var(--holley-panel); color: var(--holley-text); }
.holley-why__head > * { margin: 0; }
.holley-why__eyebrow { color: var(--holley-accent); font-size: 0.68rem; font-weight: 750; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.holley-why .holley-why__title { margin-top: 0.2rem; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 1.2rem; font-stretch: 100%; font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; }
.holley-why .holley-why__lead { margin-top: 0.45rem; color: var(--holley-ink); font-size: 0.9rem; font-weight: 600; line-height: 1.45; }
.holley-why__points { display: grid; gap: 0.35rem 1rem; margin: 0; padding: 0; list-style: none; }
.holley-why__points li { display: flex; align-items: center; gap: 0.5rem; color: var(--holley-ink); font-size: 0.8rem; font-weight: 600; line-height: 1.3; }
.holley-why__points li::before { flex: none; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--holley-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230e5f64' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3.8 8.4 2.8 2.8 5.6-6.4'/%3E%3C/svg%3E") center / 0.72rem no-repeat; content: ""; }
.holley-why__body { font-size: 0.88rem; line-height: 1.65; }
.holley-why__body p { margin: 0; }
.holley-why__body p + p { margin-top: 0.6rem; }
.holley-why__closing { margin: 0; color: var(--holley-muted); font-size: 0.84rem; line-height: 1.55; }
.holley-why__button { display: inline-flex; align-items: center; justify-self: start; min-height: 2.2rem; padding: 0.4rem 1.1rem; border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.72rem; font-weight: 750; letter-spacing: 0.06em; text-decoration: none; text-transform: uppercase; }
.holley-why__button:hover { background: var(--holley-accent); color: #fff; }

@container (min-width: 26rem) {
  .holley-why__points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container (min-width: 44rem) {
  .holley-why { grid-template: "head body" auto "points body" 1fr "button closing" auto / minmax(0, 15rem) minmax(0, 1fr); gap: 0.9rem 2rem; }
  .holley-why__head { grid-area: head; }
  .holley-why__points { grid-area: points; grid-template-columns: minmax(0, 1fr); align-self: start; }
  .holley-why__body { grid-area: body; }
  .holley-why__closing { grid-area: closing; align-self: center; }
  .holley-why__button { grid-area: button; align-self: center; }
}

.holley-products { margin-top: 2rem; }
.holley-products__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.9rem; padding: 0.7rem 1rem; background: var(--holley-block); }
.holley-products__heading h2 { font-size: 1.05rem; }
.holley-products__heading a { color: var(--holley-accent); font-size: 0.8rem; font-weight: 750; letter-spacing: 0.04em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.holley-products__heading a:hover { text-decoration: underline; }
.holley-products ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.85rem; margin: 0; padding: 0; list-style: none; }
.holley-products ul.products::before, .holley-products ul.products::after { display: none; }

/* Compact product cards for the homepage selections and shop archives.
   "html" and "[class]" outrank woo.css and WooCommerce's small-screen
   stylesheet, which otherwise sets 48% widths and float margins. */
html .woocommerce ul.products[class] li.product { display: flex; flex-direction: column; float: none; width: auto; min-width: 0; margin: 0; padding: 0 0 0.85rem; overflow: hidden; border: 1px solid var(--holley-line); border-radius: 0; background: #fff; box-shadow: none; transition: border-color 150ms, box-shadow 150ms; }
html .woocommerce ul.products[class] li.product:hover { border-color: #b9b9b9; box-shadow: 0 8px 20px rgb(0 0 0 / 0.08); }
html .woocommerce ul.products[class] li.product a.woocommerce-LoopProduct-link { display: block; color: var(--holley-ink); text-decoration: none; }
html .woocommerce ul.products[class] li.product a img { width: 100%; margin: 0 0 0.7rem; aspect-ratio: 1 / 1; object-fit: cover; background: #f6f6f6; }
html .woocommerce ul.products[class] li.product .woocommerce-loop-product__title { display: -webkit-box; min-height: 2.8em; margin: 0; padding: 0 0.75rem; overflow: hidden; color: var(--holley-text); font-family: var(--loam-font-sans); font-size: 0.84rem; font-stretch: 100%; font-weight: 500; letter-spacing: 0; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
html .woocommerce ul.products[class] li.product:hover .woocommerce-loop-product__title { color: var(--holley-accent); }
html .woocommerce ul.products[class] li.product .star-rating { margin: 0.4rem 0.75rem 0; font-size: 0.72rem; }
html .woocommerce ul.products[class] li.product .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.4rem; margin: 0.4rem 0 0.7rem; padding: 0 0.75rem; color: var(--holley-price); font-size: 1.02rem; font-weight: 750; line-height: 1.25; }
html .woocommerce ul.products[class] li.product .price del { order: 2; color: var(--holley-price-was); font-size: 0.78rem; font-weight: 500; opacity: 1; }
html .woocommerce ul.products[class] li.product .price ins { color: inherit; font-weight: inherit; text-decoration: none; }
html .woocommerce ul.products[class] li.product :is(.button, a.added_to_cart) { display: inline-flex; align-items: center; justify-content: center; width: calc(100% - 1.5rem); min-height: 2.15rem; margin: auto 0.75rem 0; padding: 0.35rem 0.6rem; border: 1px solid var(--holley-ink); border-radius: 2px; background: #fff; color: var(--holley-ink); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; line-height: 1.2; text-decoration: none; text-transform: uppercase; }

/* Sale flash: a small square red tag that matches the sale price. */
.woocommerce span.onsale,
.woocommerce ul.products li.product span.onsale,
.woocommerce div.product span.onsale { inset: 0.6rem auto auto 0.6rem; padding: 0.3rem 0.5rem; border-radius: 2px; background: var(--holley-price); color: #fff; font-family: var(--loam-font-sans); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; }
html .woocommerce ul.products[class] li.product :is(.button, a.added_to_cart):hover { border-color: var(--holley-ink); background: var(--holley-ink); color: #fff; }

/* After an AJAX add to cart: a compact "View cart" text link under the button, so the
   card grows only a little and its button stays in line with its neighbours. */
html .woocommerce ul.products[class] li.product a.added_to_cart,
html .woocommerce ul.products[class] li.product a.added_to_cart:hover { min-height: 0; margin: 0.45rem 0.75rem 0; padding: 0; border: 0; background: none; color: var(--holley-accent); font-size: 0.72rem; letter-spacing: 0.04em; text-decoration: underline; text-underline-offset: 0.2em; }
html .woocommerce ul.products[class] li.product a.added_to_cart::after { margin-left: 0.3rem; content: "→"; }
html .woocommerce ul.products[class] li.product a.added_to_cart:hover { color: var(--holley-ink); }

/* Store notices: square and flat like the rest of the skin. */
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { border-radius: 2px; box-shadow: none; font-size: 0.88rem; }

/* Success notices ("added to your cart"): one row of icon, message and button on a light
   teal tint. A grid keeps the message in the middle column, so a long product name wraps
   there instead of pushing the icon and the button onto lines of their own. */
.woocommerce .woocommerce-message { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.5rem 0.75rem; padding: 0.55rem 0.6rem 0.55rem 0.75rem; border-color: color-mix(in srgb, var(--holley-accent) 22%, #fff); background: color-mix(in srgb, var(--holley-accent) 5%, #fff); color: var(--holley-ink); font-weight: 500; line-height: 1.45; }
.woocommerce .woocommerce-message:focus { outline: none; }

/* WooCommerce's clearfix ::after would otherwise take the button's column. */
.woocommerce .woocommerce-message::after { content: none; }
.woocommerce .woocommerce-message::before { width: 1.4rem; height: 1.4rem; background: var(--holley-accent); font-size: 0.72rem; }
.woocommerce .woocommerce-message .button { min-height: 2.1rem; margin: 0; padding: 0.35rem 0.85rem; border: 1px solid var(--holley-ink); border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.7rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }
.woocommerce .woocommerce-message .button:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }

@media (max-width: 40rem) {
  .woocommerce .woocommerce-message { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .woocommerce .woocommerce-message .button { grid-column: 2; justify-self: start; }
}

@media (min-width: 75rem) {
  body.woocommerce-shop ul.products, body.tax-product_cat ul.products, body.tax-product_tag ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.85rem; }
}

/* Shop archives: compact title, square category chips and search. */
.commerce-breadcrumbs a { color: var(--holley-muted); text-decoration: none; }
.commerce-breadcrumbs a:hover { color: var(--holley-accent); text-decoration: underline; }

/* Category and tag archives: the term title and description in a light panel. Long
   descriptions show three lines and a "Read more" toggle, an empty <details> (see CategoryIntro). */
.shop-intro { display: block; margin: 0.5rem 0 1rem; padding: 1.1rem 1.35rem 1rem; border: 1px solid var(--holley-line); border-radius: 0; background: var(--holley-panel); }
.shop-intro__title { color: var(--holley-ink); font-size: var(--holley-title-size); font-stretch: 100%; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
.shop-intro__title::after { display: block; width: 2.25rem; height: 3px; margin-top: 0.55rem; background: var(--holley-accent); content: ""; }
.shop-intro__copy { max-width: 62rem; margin-top: 0.75rem; color: var(--holley-text); font-size: 0.92rem; line-height: 1.65; }
.shop-intro__copy p { margin: 0; }
.shop-intro__copy--clamp { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.shop-intro:has(.shop-intro__toggle[open]) .shop-intro__copy--clamp { display: block; -webkit-line-clamp: none; }
.shop-intro__toggle summary { display: inline-flex; align-items: center; gap: 0.45rem; margin-top: 0.5rem; color: var(--holley-accent); cursor: pointer; font-size: 0.74rem; font-weight: 750; letter-spacing: 0.06em; list-style: none; text-transform: uppercase; }
.shop-intro__toggle summary::-webkit-details-marker { display: none; }
.shop-intro__toggle summary::after { width: 0.38rem; height: 0.38rem; margin-top: -0.2rem; border-right: 1.5px solid currentcolor; border-bottom: 1.5px solid currentcolor; content: ""; transform: rotate(45deg); }
.shop-intro__toggle[open] summary::after { margin-top: 0.2rem; transform: rotate(-135deg); }
.shop-intro__toggle summary:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.shop-intro__toggle[open] .shop-intro__toggle-more,
.shop-intro__toggle:not([open]) .shop-intro__toggle-less { display: none; }
.site-main--shop .page-title { font-size: var(--holley-title-size); font-stretch: 100%; font-weight: 800; letter-spacing: -0.01em; }
.catalog-discovery__chip a { min-height: 2rem; padding: 0.3rem 0.7rem; border-color: var(--holley-rule); border-radius: 2px; background: #fff; font-size: 0.78rem; font-weight: 650; }
.catalog-discovery__chip a:hover, .catalog-discovery__chip a[aria-current="page"] { border-color: var(--holley-ink); background: var(--holley-ink); color: #fff; }
.catalog-discovery__search-row { border-color: var(--holley-rule); border-radius: 2px; }
.catalog-discovery__search-row:focus-within { border-color: var(--holley-ink); box-shadow: none; }

/* Product pages: white page, plain title and solid black primary buttons. */
body.single-product .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main { background: #fff; }
.woocommerce div.product .product_title { font-size: clamp(1.2rem, 1.5vw, 1.35rem); font-stretch: 100%; font-weight: 800; line-height: 1.25; letter-spacing: -0.01em; }
.woocommerce div.product form.cart .button,
.woocommerce button.button.alt,
.woocommerce a.button.alt { border-color: var(--holley-ink); border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.9rem; letter-spacing: 0.05em; text-transform: uppercase; }
.woocommerce div.product form.cart .button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }

/* Shop, cart, checkout and account headings use the normal-width face like the rest of the site. */
.woocommerce-page :where(h1, h2, h3, h4) { font-stretch: 100%; }

/* stylelint-disable selector-id-pattern -- WooCommerce's #place_order ID cannot be renamed. */

/* Cart block, classic checkout and mini-cart: the same solid black primary button.
   Checkout stays on the classic [woocommerce_checkout] shortcode (see woo.css CLASSIC CHECKOUT). */
body.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button,
body.woocommerce-checkout #place_order,
.wc-block-mini-cart__footer-checkout.wc-block-components-button { border-color: var(--holley-ink); border-radius: 2px; background: var(--holley-ink); box-shadow: none; color: #fff; font-size: 0.9rem; letter-spacing: 0.05em; text-transform: uppercase; }
body.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button:hover:not(:disabled),
body.woocommerce-checkout #place_order:hover:not(:disabled),
.wc-block-mini-cart__footer-checkout.wc-block-components-button:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }
/* stylelint-enable selector-id-pattern */

/* Under "Proceed to checkout": the accepted payment marks, the same list as the footer
   (payment_icons in config/site.php; keep the two in step). This replaces the starter's
   trust image, which this theme does not ship and whose badges Holleyweb does not hold. */
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block::after {
  width: 258px;
  max-width: 100%;
  height: 24px;
  aspect-ratio: auto;
  background:
    url("../images/payments/paypal.svg") 0 0 / 38px 24px no-repeat,
    url("../images/payments/visa.svg") 44px 0 / 38px 24px no-repeat,
    url("../images/payments/mastercard.svg") 88px 0 / 38px 24px no-repeat,
    url("../images/payments/maestro.svg") 132px 0 / 38px 24px no-repeat,
    url("../images/payments/amex.svg") 176px 0 / 38px 24px no-repeat,
    url("../images/payments/discover.svg") 220px 0 / 38px 24px no-repeat;
}

/* Classic checkout "Returning customer?" login: same left-column width as Loam's coupon
   box, as a compact card with the fields side by side and one action row. */
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) { display: inline-block; width: auto; margin: 0 0.5rem 0.75rem 0; vertical-align: top; }
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .woocommerce-info { display: flex; align-items: center; gap: 0.35rem; min-height: 0; margin: 0; padding: 0.5rem 0.85rem; border: 1px solid var(--holley-line); border-radius: 2px; background: #fafafa; box-shadow: none; color: var(--holley-text); font-size: 0.85rem; line-height: 1.35; }
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .woocommerce-info::before { display: none; }
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) :is(.showlogin, .showcoupon) { margin-left: 0.1rem; color: var(--holley-accent); font-size: inherit; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
body.woocommerce-checkout form.checkout_coupon { gap: 0.6rem; margin-top: 0; padding: 0.75rem; border: 1px solid var(--holley-line); border-radius: 0; box-shadow: none; }
body.woocommerce-checkout form.checkout_coupon .input-text { min-height: 2.6rem; height: 2.6rem; border: 1px solid var(--holley-rule); border-radius: 2px; background: #fff; box-shadow: none; }
body.woocommerce-checkout form.checkout_coupon .input-text:focus { border-color: var(--holley-ink); outline: 2px solid var(--holley-accent-soft); outline-offset: 0; }
body.woocommerce-checkout form.checkout_coupon .button { min-height: 2.6rem; height: 2.6rem; padding-inline: 1.2rem; border-color: var(--holley-ink); border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.82rem; font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
body.woocommerce-checkout form.checkout_coupon .button:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }
body.woocommerce-checkout form.woocommerce-form-login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 0.85rem 1rem; width: 61%; margin: 0 0 var(--loam-space-40); padding: 1.1rem 1.25rem 1.15rem; border: 1px solid var(--holley-line); border-radius: 0; background: #fff; box-shadow: none; }
body.woocommerce-checkout form.woocommerce-form-login > p:first-child { grid-column: 1 / -1; margin: 0; color: var(--holley-muted); font-size: 0.86rem; line-height: 1.5; }

/* grid-area resets the named first/last lines Loam gives these rows in the billing grid
   (columns on desktop, rows on small screens). */
body.woocommerce-checkout form.woocommerce-form-login :is(.form-row-first, .form-row-last) { display: grid; grid-area: auto; gap: 0.35rem; float: none; width: auto; margin: 0; padding: 0; }
body.woocommerce-checkout form.woocommerce-form-login :is(.form-row-first, .form-row-last) label { margin: 0; color: var(--holley-ink); font-size: 0.8rem; font-weight: 700; line-height: 1.3; }
body.woocommerce-checkout form.woocommerce-form-login .input-text { width: 100%; min-height: 2.75rem; padding: 0.5rem 0.75rem; border: 1px solid var(--holley-rule); border-radius: 2px; background: #fff; }
body.woocommerce-checkout form.woocommerce-form-login .input-text:focus { border-color: var(--holley-ink); outline: 2px solid var(--holley-accent-soft); outline-offset: 0; }
body.woocommerce-checkout form.woocommerce-form-login .clear { display: none; }
body.woocommerce-checkout form.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem; margin: 0; padding: 0; }
body.woocommerce-checkout form.woocommerce-form-login .woocommerce-form-login__submit { order: -1; min-height: 2.6rem; margin: 0; padding-inline: 1.4rem; border: 1px solid var(--holley-ink); border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.82rem; font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
body.woocommerce-checkout form.woocommerce-form-login .woocommerce-form-login__submit:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }
body.woocommerce-checkout form.woocommerce-form-login .form-row label.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.45rem; margin: 0; color: var(--holley-text); font-size: 0.85rem; font-weight: 600; line-height: 1.3; }
body.woocommerce-checkout form.woocommerce-form-login .woocommerce-form-login__rememberme input { margin: 0; accent-color: var(--holley-accent); }
body.woocommerce-checkout form.woocommerce-form-login .lost_password { place-self: center end; margin: 0; font-size: 0.85rem; }
body.woocommerce-checkout form.woocommerce-form-login .lost_password a { color: var(--holley-accent); font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }

@media (max-width: 63.999rem) {
  body.woocommerce-checkout form.woocommerce-form-login { width: 100%; }
}

@media (max-width: 36rem) {
  body.woocommerce-checkout form.woocommerce-form-login { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-checkout form.woocommerce-form-login .lost_password { justify-self: start; }
}

/* Product gallery: thumbnails in a row under the main image. */
.woocommerce div.product div.images:has(.flex-control-thumbs) { grid-template-columns: minmax(0, 1fr); row-gap: 0.6rem; }
.woocommerce div.product div.images:has(.flex-control-thumbs) .flex-viewport { grid-column: 1; grid-row: 1; }
.woocommerce div.product div.images .flex-control-thumbs { grid-column: 1; grid-row: 2; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; }

/* The photo fills its frame: product shots carry their own backdrop, so the extra padding read as a second border. */
.woocommerce div.product div.images .woocommerce-product-gallery__image img { padding: 0; border-color: var(--holley-line); border-radius: 0; background: #fff; }
.woocommerce div.product div.images .flex-control-thumbs img { padding: 0; border-color: var(--holley-line); border-radius: 0; background: #fff; cursor: pointer; opacity: 0.7; }
.woocommerce div.product div.images .flex-control-thumbs img:is(:hover, .flex-active) { border-color: var(--holley-ink); opacity: 1; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: 0.6rem; right: 0.6rem; width: 2.25rem; height: 2.25rem; }

/* Product price, sized to the column beside the gallery (the title is sized above).
   Current and sale prices are red. The original price follows it, struck through in grey. */
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--holley-price); font-size: 1.35rem; font-weight: 750; }
.woocommerce div.product .summary :is(p, span).price:has(del) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.55rem; }
.woocommerce div.product .summary .price del { order: 2; margin: 0; color: var(--holley-price-was); font-size: 0.66em; font-weight: 500; opacity: 1; text-decoration-thickness: 1px; }
.woocommerce div.product .summary .price ins { color: inherit; font-weight: inherit; text-decoration: none; }

/* Ratings: amber stars on a light grey track. */
.woocommerce .star-rating::before { color: var(--holley-star-empty); opacity: 1; }
.woocommerce .star-rating span::before,
.product-card__stars-fill::before { color: var(--holley-star); }
.woocommerce div.product .woocommerce-Reviews .comment-form-rating .stars a { color: var(--holley-star-ink); }
.woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: 0.5rem; margin: 0.35rem 0 0; }
.woocommerce div.product .woocommerce-product-rating .star-rating { margin: 0; font-size: 0.85rem; }
.woocommerce div.product .woocommerce-product-rating .woocommerce-review-link { color: var(--holley-muted); font-size: 0.8rem; }

/* Description and reviews: square panels, a small uppercase heading and body-size text. */
.woocommerce div.product .woocommerce-tabs .panel { padding: 1.25rem 1.5rem; border-color: var(--holley-line); border-radius: 0; box-shadow: none; }
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel--description > * { max-width: 52rem; margin-inline: 0; }
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel--description > h2:first-child { max-width: none; margin: 0 0 1rem; padding-bottom: 0.7rem; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.08em; }
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel--description > h2:first-child::before { display: none; }
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel--description > p,
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel--description > p:first-of-type { color: var(--holley-text); font-size: var(--holley-body-size); line-height: 1.7; }
.woocommerce div.product .woocommerce-Reviews .woocommerce-noreviews { margin: 0; color: var(--holley-muted); font-size: 0.9rem; }
.woocommerce div.product .woocommerce-Reviews [id="review_form_wrapper"] { margin-top: 0.75rem; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.woocommerce div.product .woocommerce-Reviews .comment-reply-title { display: block; margin: 0 0 0.3rem; color: var(--holley-ink); font-size: 1rem; font-stretch: 100%; font-weight: 800; line-height: 1.35; }
.woocommerce div.product .woocommerce-Reviews .comment-form { gap: 0.7rem 1rem; }
.woocommerce div.product .woocommerce-Reviews .comment-notes { color: var(--holley-muted); font-size: 0.82rem; }
.woocommerce div.product .woocommerce-Reviews .comment-form label { display: block; margin-bottom: 0.3rem; color: var(--holley-ink); font-size: 0.8rem; font-weight: 700; }
.woocommerce div.product .woocommerce-Reviews :is(input[type="text"], input[type="email"], textarea) { min-height: 2.6rem; padding: 0.5rem 0.75rem; border-color: var(--holley-rule); border-radius: 2px; font-size: 0.95rem; }
.woocommerce div.product .woocommerce-Reviews textarea { min-height: 6rem; }
.woocommerce div.product .woocommerce-Reviews .comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; color: var(--holley-muted); font-size: 0.82rem; }
.woocommerce div.product .woocommerce-Reviews .comment-form-cookies-consent label { display: inline; margin: 0; color: inherit; font-size: inherit; font-weight: 400; }
/* stylelint-disable selector-id-pattern -- WooCommerce's #respond/#submit IDs cannot be renamed. */
.woocommerce div.product .woocommerce-Reviews #respond input#submit { min-height: 2.6rem; padding-inline: 1.4rem; border-color: var(--holley-ink); border-radius: 2px; background: var(--holley-ink); box-shadow: none; color: #fff; font-size: 0.82rem; font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-Reviews #respond input#submit:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; transform: none; }
/* stylelint-enable selector-id-pattern */

/* Related and upsell products: a square panel with the grey section bar. */
.woocommerce div.product :is(.related, .upsells) { padding: 1.25rem 1.5rem 1.5rem; border-color: var(--holley-line); border-radius: 0; box-shadow: none; }
.woocommerce div.product :is(.related, .upsells) > h2 { margin: 0 0 1rem; padding: 0.7rem 1rem; background: var(--holley-block); color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.95rem; font-stretch: 100%; font-weight: 800; letter-spacing: 0.03em; line-height: 1.2; text-transform: uppercase; }

/* woo.css sizes the related cards with longer selectors; bring them back to the shop card scale. */
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title { padding-inline: 0.75rem; font-size: 0.84rem; font-weight: 500; line-height: 1.4; }
.woocommerce div.product .related ul.products li.product .price { margin-bottom: 0.7rem; padding-inline: 0.75rem; font-size: 1.02rem; }
.woocommerce div.product .related ul.products li.product .button { width: calc(100% - 1.5rem); min-height: 2.15rem; margin: auto 0.75rem 0; border-color: var(--holley-ink); background: #fff; color: var(--holley-ink); }
.woocommerce div.product .related ul.products li.product .button:hover { background: var(--holley-ink); color: #fff; }

/* Phones: two related cards per row, like the category grid (woo.css stacks them singly). */
@media (max-width: 36rem) {
  .woocommerce div.product .related { padding: 1rem; }
  .woocommerce div.product .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
}

/* Product add-ons (Extra Product Options): stacked fields with small uppercase
   labels, square inputs, an upload box and a grey totals panel. */
.summary .tc-extra-product-options { margin: 0.25rem 0 0; padding: 0; }
.summary .tc-extra-product-options .tm-extra-product-options-fields { margin-bottom: 0; }
.summary .tc-extra-product-options .cpf-element { --flex-items: 1; }
.summary .tc-extra-product-options .tc-section-fields > .tc-row { row-gap: 1rem; }
.summary .tc-extra-product-options .tc-epo-label { margin: 0 0 0.4rem; padding: 0; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.76rem; font-stretch: 100%; font-weight: 750; letter-spacing: 0.07em; line-height: 1.3; text-transform: uppercase; }
.summary .tc-extra-product-options .tm-epo-field-label { display: block; width: 100%; }
.summary .tc-extra-product-options :is(select.tmcp-select, input.tmcp-textfield) { width: 100%; min-height: 2.75rem; padding: 0.55rem 0.85rem; border: 1px solid var(--holley-rule); border-radius: 2px; background-color: #fff; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.95rem; line-height: 1.3; }
.summary .tc-extra-product-options select.tmcp-select { padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1.5 5 5 5-5' fill='none' stroke='%23141414' stroke-width='1.6'/%3E%3C/svg%3E"); background-position: right 0.9rem center; background-repeat: no-repeat; background-size: 0.7rem; cursor: pointer; appearance: none; }
.summary .tc-extra-product-options :is(select.tmcp-select, input.tmcp-textfield):hover { border-color: #9a9a9a; }
.summary .tc-extra-product-options :is(select.tmcp-select, input.tmcp-textfield):focus { border-color: var(--holley-ink); outline: 2px solid var(--holley-accent-soft); outline-offset: 0; }
.summary .tc-extra-product-options label.cpf-upload-container-basic { display: block; width: 100%; }
.summary .tc-extra-product-options .cpf-upload-wrap { padding: 0.7rem 0.8rem; border: 1px dashed #bdbdbd; border-radius: 2px; background: #fafafa; transition: border-color 150ms; }
.summary .tc-extra-product-options .cpf-upload-wrap:hover { border-color: var(--holley-ink); }
.summary .tc-extra-product-options input.tmcp-upload { width: 100%; color: var(--holley-muted); font-family: var(--loam-font-sans); font-size: 0.86rem; cursor: pointer; }
.summary .tc-extra-product-options input.tmcp-upload::file-selector-button { margin-right: 0.8rem; padding: 0.5rem 0.85rem; border: 1px solid var(--holley-ink); border-radius: 2px; background: #fff; color: var(--holley-ink); font: inherit; font-size: 0.72rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.summary .tc-extra-product-options input.tmcp-upload::file-selector-button:hover { background: var(--holley-ink); color: #fff; }
.summary .tc-extra-product-options .tc-max-file-size { display: block; margin-top: 0.35rem; color: var(--holley-muted); font-size: 0.78rem; }
.summary .tc-totals-form { margin: 0.9rem 0 1rem; }
.summary .tc-totals-form .tc-epo-totals { padding-top: 0; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.3rem 0; margin: 0; padding: 0.75rem 1rem; background: var(--holley-block); line-height: 1.35; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals :is(dt, dd) { display: flex; align-items: center; margin: 0; padding: 0; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals dt { color: var(--holley-muted); font-size: 0.86rem; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals dd { justify-content: flex-end; padding-left: 1rem; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals .price { margin: 0; color: var(--holley-ink); font-size: 0.95rem; font-weight: 700; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals .tm-final-totals { padding-top: 0.45rem; border-top: 1px solid #d9d9d9; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals dt.tm-final-totals { color: var(--holley-ink); font-weight: 750; }
.woocommerce div.product .summary dl.tm-extra-product-options-totals dd.tm-final-totals .price { color: var(--holley-price); font-size: 1.3rem; font-weight: 800; }

/* My Account: square panels with grey title bars, a dotted navigation list, black
   submit buttons and small outline buttons for order actions. Loam's layout is kept:
   a centred login/register track when logged out, navigation + content when logged in. */
body.woocommerce-page .breadcrumbs a { color: var(--holley-muted); text-decoration: none; }
body.woocommerce-page .breadcrumbs a:hover { color: var(--holley-accent); text-decoration: underline; }
body.woocommerce-account .entry-header--page { padding-bottom: 0.9rem; border-bottom: 1px solid var(--holley-line); }
body.woocommerce-account.logged-in .entry-header--page { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); }
body.woocommerce-account:not(.logged-in) [id="customer_login"] :is(.u-column1, .u-column2),
body.woocommerce-account:not(.logged-in) form.lost_reset_password,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content { border-color: var(--holley-line); border-radius: 0; box-shadow: none; }
.woocommerce-account .u-column1 > h2,
.woocommerce-account .u-column2 > h2 { margin: -1.15rem -1.15rem 1rem; padding: 0.7rem 1.15rem; background: var(--holley-block); color: var(--holley-ink); font-size: 0.95rem; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; }
.woocommerce-account .woocommerce-form-login .form-row label.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.5rem; line-height: 1.3; }
.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"] { margin: 0; }
.woocommerce-account button.button,
.woocommerce-account input.button { min-height: 2.6rem; padding-inline: 1.25rem; border-color: var(--holley-ink); border-radius: 2px; background: var(--holley-ink); color: #fff; font-size: 0.82rem; letter-spacing: 0.05em; text-transform: uppercase; }
.woocommerce-account button.button:hover,
.woocommerce-account input.button:hover { border-color: var(--holley-accent); background: var(--holley-accent); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content a.button { min-height: 2.1rem; padding: 0.35rem 0.85rem; border-color: var(--holley-ink); border-radius: 2px; background: #fff; color: var(--holley-ink); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.woocommerce-account .woocommerce-MyAccount-content a.button:hover { background: var(--holley-ink); color: #fff; }
.woocommerce-MyAccount-navigation { padding: 0; font-size: 0.9rem; }
.woocommerce-MyAccount-navigation ul { gap: 0; }
.woocommerce-MyAccount-navigation-link { border-bottom: 1px dotted var(--holley-dots); }
.woocommerce-MyAccount-navigation-link:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation-link a { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.6rem 0.9rem; border-radius: 0; color: var(--holley-ink); font-weight: 650; text-decoration: none; }
.woocommerce-MyAccount-navigation-link a::after { flex: none; width: 0.36rem; height: 0.36rem; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; content: ""; opacity: 0.35; transform: rotate(45deg); }
.woocommerce-MyAccount-navigation-link a:hover { background: #fafafa; color: var(--holley-accent); }
.woocommerce-MyAccount-navigation-link.is-active a { background: var(--holley-accent-soft); box-shadow: inset 3px 0 var(--holley-accent); color: var(--holley-accent); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--holley-muted); }
.woocommerce-MyAccount-content { padding: 1.25rem 1.4rem; color: var(--holley-text); font-size: 0.95rem; line-height: 1.6; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--holley-accent); font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }

/* Pages: a compact title row. Commerce pages keep their woo.css headers.
   This also replaces the starter's card header on its support pages (FAQ, Contact). */
body:not(.woocommerce-page) .site-main--page { background: #fff; }
body:not(.woocommerce-page) .site-main--page .entry { padding-bottom: 3rem; }
body:not(.woocommerce-page) .site-main--page .entry-header--page { position: static; display: grid; min-height: 0; gap: 0.3rem; margin-block: 0 1.75rem; padding: 1.25rem 0 1rem; overflow: visible; border: 0; border-bottom: 1px solid var(--holley-line); border-radius: 0; background: none; box-shadow: none; }
:where(body:not(.woocommerce-page)) .site-main--page .entry-header--page { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-width)); }
body:not(.woocommerce-page) .site-main--page .entry-header--page::after { content: none; }
body:not(.woocommerce-page) .site-main--page .breadcrumbs { margin: 0; padding: 0; color: var(--holley-muted); font-size: 0.78rem; }
body:not(.woocommerce-page) .site-main--page .breadcrumbs a { color: var(--holley-muted); text-decoration: none; }
body:not(.woocommerce-page) .site-main--page .breadcrumbs a:hover { color: var(--holley-accent); text-decoration: underline; }
body:not(.woocommerce-page) .site-main--page .entry-header--page .eyebrow { display: none; }
body:not(.woocommerce-page) .site-main--page .entry-header--page h1 { max-width: none; margin: 0; color: var(--holley-ink); font-size: var(--holley-title-size); font-stretch: 100%; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
body:not(.woocommerce-page) .site-main--page .entry-header--page .entry-header__dek { max-width: 44rem; margin: 0.1rem 0 0; color: var(--holley-muted); font-size: 1rem; font-weight: 400; line-height: 1.5; }

/* Imported guide pages: "Hot research" menu beside the article. */
.holley-guide-page .entry-header--page,
.holley-guide-page .entry-content { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); }
.holley-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.25rem, 2.2vw, 2rem); align-items: start; }
.holley-col { grid-column: span var(--holley-span, 12); min-width: 0; }
.holley-row--aside { grid-template-columns: 15.5rem minmax(0, 1fr); }
.holley-row--aside > .holley-col { grid-column: auto; }

.holley-legacy-menu ul { display: grid; margin: 0; padding: 0; list-style: none; }
.holley-legacy-menu li { margin: 0; border-bottom: 1px dotted var(--holley-dots); }
.holley-legacy-menu a { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.55rem 0.9rem; color: var(--holley-ink); font-size: var(--holley-sidebar-size); font-weight: 600; line-height: 1.3; text-decoration: none; }
.holley-legacy-menu a::after { flex: none; width: 0.36rem; height: 0.36rem; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; content: ""; opacity: 0.35; transform: rotate(45deg); }
.holley-legacy-menu a:hover { background: #fafafa; color: var(--holley-accent); }
.holley-legacy-menu a:hover::after { opacity: 1; }
.holley-legacy-menu .current-menu-item > a { background: var(--holley-accent-soft); box-shadow: inset 3px 0 var(--holley-accent); color: var(--holley-accent); }

/* Legacy article copy. Inline colours from the old editor give way to the palette. */
.holley-text { max-width: 46rem; color: var(--holley-text); font-size: var(--holley-body-size); line-height: 1.7; }
.holley-text > * + * { margin-top: 1em; }
.holley-text > p:first-child:not(:has(img)) { color: var(--holley-ink); font-size: 1.06em; font-weight: 500; line-height: 1.65; }
.holley-text :is(h2, h3, h4) { margin-top: 1.6em; color: var(--holley-ink); font-size: 1.15em; font-stretch: 100%; line-height: 1.3; text-transform: uppercase; }
.holley-text ul { padding-left: 1.3em; list-style: disc; }
.holley-text ol { padding-left: 1.3em; list-style: decimal; }
.holley-text [style*="color"] { color: inherit !important; }
.holley-text a { color: var(--holley-accent); font-weight: 600; text-decoration-color: rgb(14 95 100 / 0.35); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.holley-text a:hover { text-decoration-color: currentColor; }
.holley-text a:has(> img) { display: inline-block; cursor: zoom-in; }
.holley-text img { display: block; max-width: 100%; height: auto; border-radius: 0; }
.holley-text :is(p, div):has(> img, > a > img) { margin-block: 1.5em; }

@media (min-width: 62rem) and (min-height: 40rem) {
  .holley-row--aside > .holley-col--aside { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem); }
}

/* Contact page (page-contact.php): contact cards, opening hours and help links. */
.holley-contact-page .entry-header--page,
.holley-contact-page .entry-content { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); }
.holley-contact { display: grid; gap: 1rem; }
.entry-content .holley-contact__methods { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.entry-content .holley-contact-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; column-gap: 1rem; height: 100%; padding: 1.1rem 1.25rem; border: 1px solid var(--holley-line); border-radius: 0; background: #fff; color: var(--holley-ink); font-weight: 400; text-decoration: none; transition: border-color 150ms, box-shadow 150ms; }
.entry-content .holley-contact-card:hover { border-color: #b9b9b9; box-shadow: 0 8px 20px rgb(0 0 0 / 0.08); }
.holley-contact-card__icon { display: grid; grid-row: 1 / span 3; width: 2.6rem; height: 2.6rem; place-items: center; border-radius: 2px; background: var(--holley-accent-soft); color: var(--holley-accent); }
.holley-contact-card__icon svg { width: 1.25rem; height: 1.25rem; }
.holley-contact-card__label { color: var(--holley-muted); font-size: 0.74rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.holley-contact-card__badge { display: inline-block; margin-left: 0.4rem; padding: 0.12rem 0.4rem; border-radius: 2px; background: var(--holley-accent-soft); color: var(--holley-accent); font-size: 0.62rem; letter-spacing: 0.06em; vertical-align: 0.1em; }
.holley-contact-card--primary .holley-contact-card__badge { background: #a9dadd; color: var(--holley-ink); }

/* The line under the contact cards that steers visitors to email. */
.entry-content .holley-contact__note { margin: 0; padding: 0.6rem 0.9rem; border-left: 3px solid var(--holley-accent); background: var(--holley-accent-soft); color: var(--holley-ink); font-size: 0.9rem; font-weight: 600; line-height: 1.45; }
.holley-contact-card__value { margin-top: 0.15rem; font-size: clamp(1.05rem, 1.5vw, 1.25rem); font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.holley-contact-card__action { margin-top: 0.45rem; color: var(--holley-accent); font-size: 0.84rem; font-weight: 700; }
.entry-content .holley-contact-card--primary { border-color: var(--holley-bar); background: var(--holley-bar); color: #fff; }
.entry-content .holley-contact-card--primary:hover { border-color: var(--holley-bar); }
.holley-contact-card--primary .holley-contact-card__icon { background: rgb(255 255 255 / 0.1); color: #a9dadd; }
.holley-contact-card--primary .holley-contact-card__label { color: rgb(255 255 255 / 0.62); }
.holley-contact-card--primary .holley-contact-card__action { color: #a9dadd; }

.holley-contact__details { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 1rem; align-items: start; }
.holley-contact-panel { padding-bottom: 1rem; border: 1px solid var(--holley-line); background: #fff; }
.entry-content .holley-contact-panel h2 { margin-bottom: 0.35rem; }
.holley-hours { display: grid; margin: 0 1rem; }
.holley-hours > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; padding: 0.7rem 0; border-bottom: 1px dotted var(--holley-dots); font-size: 0.95rem; }
.holley-hours dt { color: var(--holley-muted); }
.holley-hours dd { margin: 0; color: var(--holley-ink); font-weight: 750; }
.holley-contact-panel__note { margin: 0.75rem 1rem 0; color: var(--holley-muted); font-size: 0.82rem; }
.entry-content .holley-help-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; margin: 0 1rem; padding: 0; list-style: none; }
.entry-content .holley-help-links li { border-bottom: 1px dotted var(--holley-dots); }
.entry-content .holley-help-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 100%; padding: 0.7rem 0; color: var(--holley-ink); font-weight: 400; text-decoration: none; }
.entry-content .holley-help-links a::after { flex: none; width: 0.36rem; height: 0.36rem; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; content: ""; opacity: 0.35; transform: rotate(45deg); }
.entry-content .holley-help-links a:hover { color: var(--holley-accent); }
.entry-content .holley-help-links a:hover::after { opacity: 1; }
.holley-help-links strong { display: block; font-size: 0.92rem; font-weight: 750; line-height: 1.3; }
.holley-help-links strong + span { display: block; margin-top: 0.1rem; color: var(--holley-muted); font-size: 0.8rem; line-height: 1.4; }

/* Other legacy builder output. */
.holley-legacy-pricing { margin: 1rem 0; padding: 1.25rem; border: 1px solid var(--holley-line); background: #fff; }
.holley-legacy-pricing h2 { font-size: 1.3rem; text-transform: uppercase; }
.holley-legacy-pricing__price { font-size: 2rem; font-weight: 800; }

@media (max-width: 61.99rem) {
  .holley-home__shell { grid-template-columns: minmax(0, 1fr); padding-top: 1rem; }

  /* Categories become a scrolling row of chips above the content. */
  .holley-categories__title { padding: 0 0 0.5rem; background: none; font-size: 0.8rem; }
  .holley-categories__list { display: flex; gap: 0.4rem; padding-bottom: 0.4rem; overflow-x: auto; scrollbar-width: thin; }
  .holley-categories__list > li { flex: none; border: 1px solid var(--holley-rule); border-radius: 2px; }
  .holley-categories__list > li > a { padding: 0.45rem 0.35rem 0.45rem 0.7rem; font-size: 0.84rem; white-space: nowrap; }
  .holley-categories__list .count { padding-right: 0.7rem; }
  .holley-categories__list > li:has(> .children)::after,
  .holley-categories__list .children { display: none; }
  .holley-categories__list > li:hover > .children, .holley-categories__list > li:focus-within > .children { display: none; }
  .holley-products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .holley-row, .holley-row--aside { grid-template-columns: minmax(0, 1fr); }
  .holley-row > .holley-col { grid-column: 1 / -1; }
  .holley-row--aside > .holley-col--aside { order: 1; }
  .holley-contact__details { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 36rem) and (max-width: 61.99rem) {
  .holley-legacy-menu ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
}

@media (max-width: 47.99rem) {
  .entry-content .holley-contact__methods { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 40rem) {
  .usp-bar .usp-bar__item:first-child { display: none; }
  .usp-bar__item:nth-child(2)::before { display: none; }
  .usp-bar__social { display: none; }
  .holley-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
  .entry-content .holley-help-links { grid-template-columns: minmax(0, 1fr); }
}

/* Zorbing guide: a focused editorial layout for the original article copy. */
body.holley-zorbing-page .site-main--page { background: #f5f8f8; }
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page {
  position: relative;
  display: grid;
  align-content: center;
  justify-items: start;
  width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide));
  min-height: clamp(20rem, 31vw, 24rem);
  margin: 1.5rem auto 0;
  padding: clamp(2rem, 5vw, 4.25rem);
  gap: 0.65rem;
  overflow: hidden;
  border: 0;
  background-color: #103c43;
  background-image: linear-gradient(90deg, #103c43 0%, #103c43 42%, rgb(16 60 67 / 0.94) 55%, rgb(16 60 67 / 0.32) 100%), url('../images/zorbing-play.jpg');
  background-position: center, right center;
  background-repeat: no-repeat;
  background-size: cover, auto 100%;
  box-shadow: 0 20px 45px rgb(11 53 59 / 0.12);
}
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page .breadcrumbs { color: rgb(255 255 255 / 0.72); font-size: 0.8rem; }
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page .breadcrumbs a { color: #fff; }
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page .eyebrow { display: block; margin: 1.1rem 0 0; color: #a9dadd; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page h1 { max-width: 11ch; margin: 0; color: #fff; font-size: clamp(3.2rem, 6vw, 5.5rem); font-weight: 850; line-height: 0.98; letter-spacing: -0.055em; }
body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page .entry-header__dek { max-width: 26rem; margin: 0.3rem 0 0; color: #dfefed; font-size: clamp(1rem, 1.7vw, 1.2rem); line-height: 1.5; }

body.holley-zorbing-page .site-main--page .entry-content { width: min(calc(100% - (2 * var(--loam-content-gutter))), var(--loam-content-wide)); max-width: none; padding: 2rem 0 4rem; }
body.holley-zorbing-page .holley-row--aside { grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
body.holley-zorbing-page .holley-col--main { min-width: 0; padding: clamp(1.5rem, 3.5vw, 3rem); border: 1px solid #e2eaeb; background: #fff; box-shadow: 0 12px 34px rgb(16 60 67 / 0.045); }
body.holley-zorbing-page .holley-text { max-width: 49rem; color: #334448; font-size: 1.02rem; line-height: 1.83; }
body.holley-zorbing-page .holley-text > * + * { margin-top: 1.45rem; }
body.holley-zorbing-page .holley-text > p:first-child:not(:has(img)) { margin-top: 0; padding-bottom: 1.5rem; border-bottom: 1px solid #dce8e8; color: #153d43; font-size: clamp(1.12rem, 1.55vw, 1.27rem); font-weight: 600; line-height: 1.65; }

body.holley-zorbing-page .holley-legacy-menu { overflow: hidden; border: 1px solid #dce7e8; background: #fff; box-shadow: 0 10px 25px rgb(16 60 67 / 0.035); }
body.holley-zorbing-page .holley-legacy-menu h2 { margin: 0; padding: 1.1rem 1.25rem; background: #e9f2f2; color: #164a51; font-size: 0.76rem; letter-spacing: 0.12em; }
body.holley-zorbing-page .holley-legacy-menu ul { padding: 0.35rem 0.55rem; }
body.holley-zorbing-page .holley-legacy-menu li { border-bottom: 1px solid #edf1f1; }
body.holley-zorbing-page .holley-legacy-menu li:last-child { border-bottom: 0; }
body.holley-zorbing-page .holley-legacy-menu a { min-height: 2.6rem; padding: 0.55rem 0.7rem; color: #34484c; font-size: 0.86rem; font-weight: 600; line-height: 1.35; }
body.holley-zorbing-page .holley-legacy-menu a:hover { background: #f2f8f8; color: #0e5f64; }

@media (max-width: 61.99rem) {
  body.holley-zorbing-page .holley-row--aside { grid-template-columns: minmax(0, 1fr); }
  body.holley-zorbing-page .holley-row--aside > .holley-col--aside { order: 1; position: static; }
  body.holley-zorbing-page .holley-legacy-menu ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
}

@media (max-width: 40rem) {
  body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page { min-height: 19rem; margin-top: 0.8rem; padding: 1.6rem; background-image: linear-gradient(90deg, rgb(16 60 67 / 0.98), rgb(16 60 67 / 0.82)), url('../images/zorbing-play.jpg'); background-size: cover; }
  body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page .eyebrow { margin-top: 0.6rem; }
  body.holley-zorbing-page:not(.woocommerce-page) .site-main--page .entry-header--page h1 { font-size: clamp(2.7rem, 13vw, 3.8rem); }
  body.holley-zorbing-page .site-main--page .entry-content { padding-top: 1rem; }
  body.holley-zorbing-page .holley-col--main { padding: 1.25rem; }
  body.holley-zorbing-page .holley-text { font-size: 0.98rem; line-height: 1.75; }
  body.holley-zorbing-page .holley-legacy-menu ul { grid-template-columns: minmax(0, 1fr); }
}

/* Catalog sidebar on inner pages. The header and footer templates wrap <main> in
   .catalog-shell, so pages, blog, shop, categories and products all share one
   categories column inside the white column. */
.catalog-shell { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 0 clamp(1.25rem, 2.2vw, 2rem); width: min(100%, var(--holley-sheet)); margin-inline: auto; padding-inline: var(--loam-content-gutter); background: #fff; box-shadow: 1px 0 0 var(--holley-sheet-edge), -1px 0 0 var(--holley-sheet-edge); }
.catalog-shell__aside { margin: 1.25rem 0 3rem; }
.catalog-shell__aside .holley-legacy-menu { margin-top: 1.5rem; }

/* Inside the column Loam's containers fill it from the left instead of centring. */
.catalog-shell__main { --loam-content-gutter: 0px; min-width: 0; }
.catalog-shell__main .site-main { width: auto; box-shadow: none; }
.catalog-shell__main :is(.entry-header, .entry-content, .entry-comments, .commerce-progress, .container-wide, .container-content) { margin-inline: 0; }
.catalog-shell__main .site-main--page .entry-header--page { width: auto; }

/* Guide pages: the "Hot research" menu sits in the sidebar, so the article takes the column. */
body .catalog-shell .holley-row--aside { grid-template-columns: minmax(0, 1fr); }
body .catalog-shell .holley-row--aside > .holley-col--aside { display: none; }

/* Shop and category archives: the sidebar replaces the category chips; four products a row. */
.catalog-shell .catalog-discovery__categories { display: none; }
body:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag) .catalog-shell ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Contact cards in the narrower column: icon above the text so the email address fits. */
.catalog-shell .entry-content .holley-contact-card { grid-template-columns: minmax(0, 1fr); }
.catalog-shell .holley-contact-card__icon { grid-row: auto; margin-bottom: 0.7rem; }
.catalog-shell .holley-contact-card__value { font-size: clamp(1rem, 1.25vw, 1.15rem); }

/* Current category (and its parent) in the sidebar. */
.holley-categories__list li.current-cat > a,
.holley-categories__list li:is(.current-cat-parent, .current-cat-ancestor) > a { color: var(--holley-accent); }
.holley-categories__list > li.current-cat,
.holley-categories__list > li:is(.current-cat-parent, .current-cat-ancestor) { background: var(--holley-accent-soft); box-shadow: inset 3px 0 var(--holley-accent); }

@media (max-width: 61.99rem) {
  .catalog-shell { grid-template-columns: minmax(0, 1fr); }
  .catalog-shell__aside { margin: 1rem 0 0; }

  /* On phones the category chips lead; a guide's research menu stays after the article. */
  .catalog-shell__aside .holley-legacy-menu { display: none; }
  body .catalog-shell .holley-row--aside > .holley-col--aside { display: block; }
  body:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag) .catalog-shell ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 40rem) {
  body:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag) .catalog-shell ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Blog index, blog archives and search: compact title, a grey "Latest articles" bar
   and a dotted text list of posts (the posts have no featured images). A post that
   gains a featured image shows it as a small thumbnail on the left. */
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero { display: grid; gap: 0.35rem; min-height: 0; margin: 0 0 1.25rem; padding: 1.25rem 0 1rem; border-bottom: 1px solid var(--holley-line); background: none; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero .eyebrow { display: none; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero .breadcrumbs { margin: 0; color: var(--holley-muted); font-size: 0.78rem; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero .breadcrumbs a { color: var(--holley-muted); text-decoration: none; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero h1 { max-width: none; margin: 0; color: var(--holley-ink); font-size: var(--holley-title-size); font-stretch: 100%; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-hero__intro { max-width: 44rem; margin: 0; color: var(--holley-muted); font-size: 1rem; line-height: 1.5; }
:is(.site-main--archive, .site-main--index, .site-main--search) .listing-section { padding-block: 0 2.5rem; border-top: 0; }
.listing-section__title { margin: 0 0 0.25rem; padding: 0.7rem 1rem; background: var(--holley-block); color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 0.95rem; font-stretch: 100%; font-weight: 800; letter-spacing: 0.03em; line-height: 1.2; text-transform: uppercase; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: 1.5rem; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__link { display: grid; grid-template-rows: auto; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; padding: 1rem 0.25rem; border: 0; border-bottom: 1px dotted var(--holley-dots); border-radius: 0; background: none; box-shadow: none; transform: none; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__link:has(.card__media) { grid-template-columns: 8rem minmax(0, 1fr); }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__link:hover { background: #fafafa; box-shadow: none; transform: none; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__media { aspect-ratio: 4 / 3; border-radius: 0; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__body { gap: 0.3rem; min-height: 0; padding: 0; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__meta { margin: 0; color: var(--holley-accent); font-size: 0.72rem; letter-spacing: 0.08em; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__title { margin: 0; color: var(--holley-ink); font-family: var(--loam-font-sans); font-size: 1.1rem; font-stretch: 100%; font-weight: 800; line-height: 1.3; letter-spacing: 0; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__link:hover .card__title { color: var(--holley-accent); }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__excerpt { display: -webkit-box; margin: 0; overflow: hidden; color: var(--holley-muted); font-size: 0.92rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
:is(.site-main--archive, .site-main--index, .site-main--search) .card__action { margin-top: 0.15rem; color: var(--holley-accent); font-size: 0.8rem; }

/* Single posts: the same compact, normal-width title as the pages. */
.site-main--single .entry-header { gap: 0.35rem; padding-block: 1.25rem 1rem; border-bottom: 1px solid var(--holley-line); }
.site-main--single .entry-header .breadcrumbs a { color: var(--holley-muted); text-decoration: none; }
.site-main--single .entry-header .breadcrumbs a:hover { color: var(--holley-accent); text-decoration: underline; }
.site-main--single .entry-header .eyebrow { color: var(--holley-accent); font-family: var(--loam-font-sans); font-size: 0.74rem; font-weight: 750; letter-spacing: 0.08em; }
.site-main--single .entry-header .eyebrow::before { display: none; }
.site-main--single .entry-header h1 { max-width: none; color: var(--holley-ink); font-size: var(--holley-title-size); font-stretch: 100%; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
.site-main--single .entry-content { margin-top: 1.5rem; color: var(--holley-text); font-size: var(--holley-body-size); line-height: 1.7; }

@media (max-width: 40rem) {
  :is(.site-main--archive, .site-main--index, .site-main--search) .card__link:has(.card__media) { grid-template-columns: 5.5rem minmax(0, 1fr); gap: 0.9rem; }
}
