/*
 * Live Love Loaf mobile density pass — theme 0.8.0
 *
 * The desktop design remains unchanged. These rules make the existing site
 * genuinely task-led on phones instead of simply stacking desktop sections.
 */

@media (max-width: 900px) {
  .lll-section { padding-block: 3rem; }
  .lll-page-layout { padding-block: 2.5rem; }
  .lll-public-hero-grid,
  .lll-story-hero-grid { min-height: 0; }
  .lll-public-hero-image { min-height: 330px; }
  .lll-story-hero { padding-block: 3rem; }
  .lll-public-section-heading { margin-bottom: 1.6rem; }
  .lll-course-page-shell { padding-block: 2.5rem; }
}

@media (max-width: 760px) {
  :root {
    --lll-shell: min(100% - 1.25rem, 1280px);
    --lll-radius: 14px;
    --lll-radius-large: 18px;
  }

  body {
    font-size: 15.5px;
    line-height: 1.52;
  }

  input,
  select,
  textarea {
    font-size: 16px;
  }

  h2 { font-size: clamp(1.8rem, 8vw, 2.25rem); }
  h3 { font-size: 1.15rem; }
  p { margin-bottom: .8rem; }

  /* Header and global controls. */
  .lll-header-inner { min-height: 64px; }
  .lll-brand .custom-logo { max-height: 43px; max-width: 155px; }
  .lll-wordmark strong { font-size: 1.25rem; }
  .lll-wordmark span { font-size: .46rem; margin-top: .3rem; }
  .lll-menu-toggle { height: 42px; width: 42px; }
  .lll-primary-nav {
    gap: .6rem;
    max-height: calc(100dvh - 64px);
    padding: .7rem .65rem calc(.9rem + env(safe-area-inset-bottom));
    top: 64px;
  }
  .lll-primary-nav li a { font-size: .86rem; padding: .62rem .25rem; }
  .lll-header-actions {
    gap: .45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding-top: .25rem;
  }
  .lll-account-link,
  .lll-basket-link { min-height: 42px; padding: .52rem .65rem; }

  .lll-eyebrow {
    font-size: .66rem;
    letter-spacing: .12em;
    margin-bottom: .35rem;
  }
  .lll-section { padding-block: 2.15rem; }
  .lll-page-layout { padding-block: 1.8rem; }
  .lll-page-header { margin-bottom: 1.2rem; }
  .lll-page-header h1,
  .woocommerce .woocommerce-products-header__title,
  .lll-public-hero-compact h1 {
    font-size: clamp(2.15rem, 10vw, 2.65rem);
    line-height: .98;
    margin-bottom: .65rem;
  }
  .lll-entry-content { font-size: .96rem; }
  .lll-card { border-radius: 13px; padding: .95rem; }
  .lll-section-heading,
  .lll-public-section-heading {
    gap: .55rem;
    margin-bottom: 1.1rem;
  }
  .lll-public-section-heading > p { font-size: .86rem; line-height: 1.48; }

  .lll-actions {
    align-items: stretch;
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 1rem;
  }
  .lll-actions .lll-button { width: 100%; }
  .lll-button,
  .wp-element-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    font-size: .82rem;
    min-height: 44px;
    padding: .62rem .78rem !important;
  }

  /* Homepage: the main order action, essentials and four routes fit quickly. */
  body.home .lll-hero-copy,
  .lll-home .lll-hero-copy {
    padding: 1.55rem 0 1.25rem;
  }
  body.home .lll-hero h1,
  .lll-home .lll-hero h1 {
    font-size: clamp(2.2rem, 10.8vw, 2.75rem);
    line-height: .98;
    margin: .2rem 0 .65rem;
    max-width: 14ch;
  }
  body.home .lll-hero-copy > p:not(.lll-eyebrow),
  .lll-home .lll-hero-copy > p:not(.lll-eyebrow) {
    font-size: .9rem;
    line-height: 1.48;
    margin-bottom: .7rem;
  }
  body.home .lll-hero-media,
  .lll-home .lll-hero-media,
  .lll-home-simple .lll-hero-media {
    min-height: 190px;
  }
  .lll-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lll-service-grid > div {
    gap: .08rem .35rem;
    grid-template-columns: 22px minmax(0, 1fr);
    min-height: 64px;
    padding: .58rem .5rem;
  }
  .lll-service-grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--lll-border); }
  .lll-service-grid > div:nth-child(4) { border-top: 1px solid var(--lll-border); }
  .lll-service-icon svg { height: 17px; width: 17px; }
  .lll-service-grid strong { font-size: .7rem; }
  .lll-service-grid small { font-size: .61rem; line-height: 1.25; }

  .lll-home-links { padding: 1.45rem 0 1.65rem; }
  .lll-home-links-heading { margin-bottom: .75rem; }
  .lll-home-links-heading h2 { font-size: 1.65rem; }
  .lll-home-links-grid {
    gap: .5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lll-home-link {
    gap: .45rem;
    min-height: 72px;
    padding: .7rem .72rem;
  }
  .lll-home-link span { gap: 0; }
  .lll-home-link strong { font-size: .78rem; line-height: 1.25; }
  .lll-home-link small { display: none; }
  .lll-home-link b { font-size: 1rem; }

  /* Public pages: compact split heroes and information strips. */
  .lll-public-hero-grid { width: 100%; }
  .lll-public-hero-copy {
    padding: 1.65rem 0 1.35rem;
    width: var(--lll-shell);
  }
  .lll-public-hero-copy h1,
  .lll-story-hero h1,
  .lll-courses-page .lll-public-hero-copy h1,
  .lll-visit-page .lll-public-hero-copy h1 {
    font-size: clamp(2.25rem, 10.5vw, 2.8rem);
    line-height: .96;
    margin: .2rem 0 .65rem;
    max-width: 13ch;
  }
  .lll-public-hero-copy > p:not(.lll-eyebrow),
  .lll-story-hero-grid > div:first-child > p:not(.lll-eyebrow) {
    font-size: .9rem;
    line-height: 1.5;
  }
  .lll-public-hero-image,
  .lll-courses-page .lll-public-hero-image,
  .lll-visit-page .lll-public-hero-image { min-height: 205px; }

  .lll-page-service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lll-page-service-grid > div {
    align-content: start;
    gap: .25rem;
    grid-template-columns: 1fr;
    min-width: 0;
    padding: .65rem .42rem;
    text-align: center;
  }
  .lll-page-service-grid > div + div {
    border-left: 1px solid var(--lll-border);
    border-top: 0;
  }
  .lll-page-service-grid svg {
    grid-row: auto;
    height: 18px;
    margin: 0 auto .08rem;
    width: 18px;
  }
  .lll-page-service-grid strong { font-size: .69rem; line-height: 1.25; }
  .lll-page-service-grid span { font-size: .61rem; line-height: 1.3; }

  .lll-public-cta { padding-block: 2rem; }
  .lll-public-cta-inner { gap: .8rem; }
  .lll-public-cta-inner h2 { font-size: 1.9rem; max-width: 20ch; }
  .lll-public-cta-inner .lll-actions { margin-top: 0; }

  /* Visit, story, contact and FAQ content. */
  .lll-visit-main-grid,
  .lll-story-intro-grid,
  .lll-story-principles,
  .lll-course-expect-grid,
  .lll-course-faq { gap: 1rem; }
  .lll-visit-address-card,
  .lll-hours-card { padding: 1.05rem; }
  .lll-visit-address-card h2,
  .lll-hours-card h2 { font-size: 1.85rem; }
  .lll-contact-links { margin: 1rem 0; }
  .lll-hours-list { margin: .8rem 0; }
  .lll-hours-list > div { padding: .52rem 0; }
  .lll-visit-info-grid {
    gap: .55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lll-info-card { padding: .85rem; }
  .lll-info-card > span { height: 34px; width: 34px; }
  .lll-info-card svg { height: 18px; width: 18px; }
  .lll-info-card h2 { font-size: .84rem; margin: .65rem 0 .3rem; }
  .lll-info-card p { font-size: .74rem; line-height: 1.42; }

  .lll-story-hero { padding-block: 1.8rem; }
  .lll-story-hero-grid { gap: 1.2rem; }
  .lll-story-hero-image {
    aspect-ratio: auto;
    border-radius: 38% 38% 6% 6%;
    height: 220px;
  }
  .lll-story-prose { font-size: 1.02rem; line-height: 1.55; }
  .lll-timeline { gap: .65rem; }
  .lll-timeline article { min-height: 0; padding: 1rem; }
  .lll-timeline h3 { font-size: 1.35rem; margin: .8rem 0 .4rem; }
  .lll-story-principles-grid { gap: 0 .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lll-story-principles-grid article { padding: .85rem 0 1rem; }
  .lll-story-principles-grid p { font-size: .76rem; }

  .lll-faq-list { gap: .5rem; }
  .lll-faq-list details { padding-inline: .85rem; }
  .lll-faq-list summary { font-size: 1.02rem; padding: .75rem 1.8rem .75rem 0; }
  .lll-faq-list summary::after { top: .72rem; }
  .lll-faq-list details p { font-size: .84rem; padding-bottom: .8rem; }

  /* Ordering catalogue and fulfilment selection. */
  .lll-shop-main { padding-block: 1rem 2rem; }
  .woocommerce .woocommerce-products-header { margin-bottom: .55rem; }
  .lll-fulfilment-selector {
    gap: .7rem;
    margin: 0 0 .85rem;
    padding: .8rem;
  }
  .lll-fulfilment-selector-product { margin: .75rem 0; }
  .lll-fulfilment-intro { gap: .25rem .6rem; }
  .lll-fulfilment-intro strong { font-size: .92rem; }
  .lll-fulfilment-intro > span:not(.lll-fulfilment-kicker) { font-size: .8rem; }
  .lll-quick-dates { gap: .4rem; }
  .lll-quick-date { min-width: 66px; padding: .55rem .58rem; }
  .lll-quick-date span { font-size: .62rem; }
  .lll-quick-date strong { font-size: .82rem; }
  .lll-order-day-summary { gap: .55rem; margin-bottom: .75rem; padding: .75rem .8rem; }
  .lll-order-day-summary span { font-size: .66rem; }
  .lll-catalogue-navigation { margin: .2rem 0 .75rem; }
  .lll-shop-categories { margin-bottom: .45rem; padding: .3rem; }
  .lll-shop-categories a { font-size: .72rem; padding: .5rem .65rem; }
  .lll-bread-filters { gap: .3rem; margin-top: .35rem; }
  .lll-bread-filters span,
  .lll-bread-filters a { font-size: .7rem; }
  .woocommerce ul.products { gap: .65rem; margin-top: .7rem; }
  .woocommerce ul.products li.product { border-radius: 11px; padding-bottom: .7rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .86rem;
    min-height: 0;
  }
  .woocommerce ul.products li.product .lll-product-day-status {
    font-size: .68rem;
    line-height: 1.32;
    min-height: 0;
  }
  .woocommerce ul.products li.product .lll-loop-purchase { margin-top: .5rem; }
  .lll-loop-quantity { min-height: 42px; }

  .lll-order-progress { margin-bottom: .75rem; }
  .lll-order-progress li { font-size: .66rem; gap: .3rem; }
  .lll-order-progress-number { height: 1.65rem; width: 1.65rem; }
  .lll-order-progress li:not(:last-child)::after { top: .82rem; }
  .lll-cart-continue { gap: .6rem; margin: .65rem 0 .9rem; padding: .75rem; }
  .lll-cart-continue span { font-size: .72rem; }

  /* Product pages, basket and checkout. */
  .single-product .lll-shop-main { padding-top: .7rem; }
  .single-product .woocommerce div.product { gap: .9rem; }
  .single-product .woocommerce-product-gallery__image > a { aspect-ratio: 3 / 2; }
  .single-product .woocommerce div.product .product_title {
    font-size: clamp(2rem, 9.5vw, 2.5rem);
    margin-bottom: .4rem;
  }
  .woocommerce div.product .woocommerce-product-details__short-description {
    font-size: .88rem;
    line-height: 1.52;
  }
  .woocommerce div.product form.cart { margin-top: .75rem; padding-block: .75rem; }
  .lll-product-options { gap: .5rem; margin: .8rem 0; }
  .lll-option-card { padding: .7rem .75rem; }
  .lll-product-facts { margin-top: 1rem; }
  .lll-product-facts summary { padding-block: .75rem; }
  .lll-product-reassurance > div { padding-block: .65rem; }
  .woocommerce div.product .woocommerce-tabs { margin-top: 1.2rem; }

  .woocommerce-cart .cart-collaterals .cart_totals { padding: .9rem; }
  .woocommerce-cart .cart-collaterals .cart_totals h2,
  .woocommerce-checkout h3 { font-size: 1.65rem; }
  .woocommerce form .form-row { margin-bottom: .55rem; }
  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td { padding: .65rem; }
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error { font-size: .82rem; padding: .8rem .85rem .8rem 2.35rem; }
  .woocommerce-checkout #order_review { padding: .75rem; }
  .wc-block-components-sidebar { padding: .85rem !important; }

  /* Account screens: preserve tasks, reduce introductory and navigation height. */
  .woocommerce-account .lll-page-header h1 { font-size: 2.25rem; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: .8rem; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    gap: .25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding: .3rem;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation a {
    font-size: .74rem;
    min-height: 40px;
    padding: .48rem .35rem;
  }
  .lll-account-hub { border-radius: 13px; }
  .lll-account-hub-intro { padding: .9rem; }
  .lll-account-hub-intro h2 { font-size: 1.75rem; }
  .lll-account-hub-intro p:last-child { font-size: .82rem; }
  .lll-account-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lll-account-hub-grid a {
    min-height: 92px;
    padding: .75rem;
  }
  .lll-account-hub-grid a:nth-child(even) { border-left: 1px solid var(--lll-border-soft); }
  .lll-account-hub-grid a + a { border-top: 0; }
  .lll-account-hub-grid a:nth-child(n+3) { border-top: 1px solid var(--lll-border-soft); }
  .lll-account-hub-grid strong { font-size: 1.05rem; }
  .lll-account-hub-grid span { display: none; }
  .lll-account-hub-grid small { font-size: .65rem; }

  .lll-account-orders-intro { margin-bottom: .75rem; }
  .lll-account-orders-intro h2 { font-size: 1.8rem; }
  .woocommerce-account table.my_account_orders tbody tr { margin-bottom: .55rem; }
  .woocommerce-account table.my_account_orders tbody th,
  .woocommerce-account table.my_account_orders tbody td {
    gap: .5rem;
    grid-template-columns: 82px minmax(0, 1fr);
    padding: .52rem .65rem;
  }
  .woocommerce-account table.my_account_orders .woocommerce-orders-table__cell-order-actions { padding: .6rem; }
  .lll-account-order-summary { gap: .75rem; margin: .7rem 0 1rem; padding: .85rem; }
  .lll-account-order-summary-lead h2 { font-size: 1.85rem; }
  .lll-account-order-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lll-account-order-facts > div { padding: .65rem .7rem; }
  .lll-account-order-facts > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--lll-border); }
  .lll-account-order-facts > div:nth-child(4) { border-top: 1px solid var(--lll-border); }

  /* Course catalogue, expanded information and booking management. */
  .lll-courses-page #course-dates { padding-top: 1.8rem; }
  .lll-course-session-browser { margin-top: .75rem; }
  .lll-course-browser-help { font-size: .76rem; line-height: 1.4; margin-bottom: .65rem; }
  .lll-course-session-grid { gap: .6rem; }
  .lll-course-session-card {
    gap: .65rem;
    grid-template-columns: 62px minmax(0, 1fr);
    padding: .72rem;
  }
  .lll-course-session-date { min-height: 76px; padding: .4rem; }
  .lll-course-session-date span { font-size: .62rem; }
  .lll-course-session-date strong { font-size: 1.55rem; }
  .lll-course-session-date small { font-size: .61rem; }
  .lll-course-kicker { font-size: .64rem; margin-bottom: .15rem; }
  .lll-course-session-copy h3 { font-size: 1.2rem; margin: 0 0 .25rem; }
  .lll-course-session-copy > p:not(.lll-course-kicker) {
    display: -webkit-box;
    font-size: .78rem;
    line-height: 1.4;
    margin-bottom: .45rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .lll-course-session-meta { gap: .35rem .55rem; }
  .lll-course-session-meta strong { font-size: .78rem; }
  .lll-course-availability,
  .lll-course-status { font-size: .59rem; padding: .26rem .45rem; }
  .lll-course-session-action {
    align-items: stretch;
    display: grid;
    gap: .45rem;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  .lll-course-session-action .lll-button { width: auto; }
  .lll-course-details-toggle { justify-content: center; margin: 0; min-height: 44px; }
  .lll-course-session-details { padding: .85rem 0 .1rem; }
  .lll-course-detail-intro > p:last-child { font-size: .84rem; line-height: 1.5; margin-bottom: .75rem; }
  .lll-course-detail-columns { gap: .55rem; margin-bottom: .55rem; }
  .lll-course-detail-columns section,
  .lll-course-public-timeline,
  .lll-course-included,
  .lll-course-practical-summary { border-radius: 11px; padding: .8rem; }
  .lll-course-session-details h4 { font-size: .7rem; margin-bottom: .45rem; }
  .lll-course-session-details li { font-size: .77rem; line-height: 1.42; padding-block: .18rem; }
  .lll-course-public-timeline ol li {
    gap: .4rem;
    grid-template-columns: 54px minmax(0, 1fr);
    padding: 0 0 .55rem .65rem;
  }
  .lll-course-public-timeline time { font-size: .69rem; }
  .lll-course-public-timeline ol span { font-size: .75rem; }
  .lll-course-included-grid { gap: .45rem; }
  .lll-course-included-grid > div { padding: .65rem; }

  .lll-course-page-shell { padding: 1.35rem .65rem 2rem; }
  .lll-course-back { font-size: .76rem; margin-bottom: .75rem; }
  .lll-course-booking-header { margin-bottom: 1rem; padding-bottom: .9rem; }
  .lll-course-booking-header h1 { font-size: 2.2rem; }
  .lll-course-booking-header > p:not(.lll-eyebrow) { font-size: .88rem; }
  .lll-course-form,
  .lll-course-manage-section,
  .lll-course-info-card { border-radius: 13px; padding: .9rem; }
  .lll-course-form-heading { margin-bottom: .8rem; }
  .lll-course-form-heading h2,
  .lll-course-manage-section h2 { font-size: 1.55rem; }
  .lll-course-participant-list,
  .lll-course-manage-main,
  .lll-course-manage-grid { gap: .75rem; }
  .lll-course-participant { padding: .8rem !important; }
  .lll-course-account > h2 { font-size: 1.9rem; }
  .lll-course-account-card { margin-bottom: .6rem; padding: .85rem; }
  .lll-course-account-card h3 { font-size: 1.2rem; }
  .lll-course-info-card dl > div { padding: .55rem 0; }
  .lll-course-timeline li { padding-bottom: .75rem; }
  .lll-course-terms-dialog-inner { padding: 1rem; }
  .lll-course-terms-dialog h2 { font-size: 1.85rem; }

  /* Repeating orders and their account panels. */
  .lll-account-repeat-summary,
  .lll-create-repeat-offer { margin: .8rem 0; padding: .85rem; }
  .lll-account-repeat-summary { gap: .7rem; }
  .lll-account-repeat-summary h2,
  .lll-create-repeat-copy h3 { font-size: 1.5rem; }
  .lll-account-repeat-summary p,
  .lll-create-repeat-copy p { font-size: .8rem; line-height: 1.45; }
  .lll-create-repeat-icon { display: none; }
  .lll-repeat-heading { margin-bottom: .75rem; }
  .lll-repeat-heading h2,
  .lll-repeat-manage-header h2 { font-size: 2rem; }
  .lll-repeat-heading p,
  .lll-repeat-manage-header p { font-size: .82rem; }
  .lll-repeat-cards,
  .lll-repeat-scope-grid,
  .lll-repeat-manage-grid,
  .lll-repeat-account-grid { gap: .7rem; }
  .lll-repeat-card,
  .lll-repeat-editor,
  .lll-repeat-add-panel,
  .lll-repeat-items-panel,
  .lll-repeat-actions-panel,
  .lll-repeat-payment-panel,
  .lll-repeat-activity-panel,
  .lll-repeat-occurrence-panel { border-radius: 13px; padding: .85rem; }
  .lll-repeat-card h3 { font-size: 1.25rem; }
  .lll-repeat-card ul { margin: .55rem 0 .7rem; }
  .lll-repeat-card li { padding: .24rem 0; }
  .lll-repeat-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin-bottom: .7rem;
  }
  .lll-repeat-overview > div { padding: .65rem .7rem; }
  .lll-repeat-overview > div:nth-child(odd) { border-left: 0 !important; }
  .lll-repeat-overview > div:nth-child(even) { border-left: 1px solid var(--lll-repeat-line) !important; }
  .lll-repeat-overview > div:nth-child(n+3) { border-top: 1px solid var(--lll-repeat-line); }
  .lll-repeat-overview strong { font-size: .88rem; }
  .lll-repeat-editor h3,
  .lll-repeat-add-panel h3,
  .lll-repeat-items-panel h3,
  .lll-repeat-actions-panel h3 { font-size: 1.45rem; }
  .lll-repeat-quantity-rows { margin: .6rem 0; }
  .lll-repeat-quantity-row,
  .lll-repeat-extra-summary label { gap: .6rem; padding: .55rem 0; }
  .lll-repeat-add-panel { margin-bottom: .7rem; }
  .lll-repeat-schedule-list { margin: .55rem 0; }
  .lll-repeat-schedule-row {
    align-items: start;
    display: grid;
    gap: .5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .58rem 0;
  }
  .lll-repeat-schedule-badges { justify-content: flex-end; }
  .lll-repeat-schedule-badges span { font-size: .57rem; padding: .22rem .38rem; }
  .lll-repeat-action-form { gap: .55rem; padding: .65rem 0; }
  .lll-repeat-payment-details,
  .lll-repeat-recovery-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lll-repeat-payment-details > div + div,
  .lll-repeat-recovery-meta > div + div {
    border-left: 1px solid var(--lll-repeat-line-soft);
    border-top: 0;
    padding-left: .65rem;
  }

  /* Footer: brand first, then contact and links beside one another. */
  .lll-footer { padding: 1.75rem 0 .85rem; }
  .lll-footer-grid {
    gap: 1.1rem .8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lll-footer-brand { grid-column: 1 / -1; }
  .lll-footer h2 { font-size: 1.55rem; margin-bottom: .35rem; }
  .lll-footer h3 { font-size: .68rem; margin-bottom: .55rem; }
  .lll-footer p,
  .lll-footer li a { font-size: .75rem; line-height: 1.45; }
  .lll-footer-actions { gap: .45rem; }
  .lll-footer-actions a { font-size: .7rem; padding: .48rem .62rem; }
  .lll-footer-bottom { margin-top: 1.25rem; padding-top: .75rem; }
  .lll-footer-legal { flex-wrap: wrap; gap: .65rem; }
}

@media (max-width: 560px) {
  /* Compact horizontal product rows show far more of the catalogue per screen. */
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
  .woocommerce ul.products li.product {
    padding: .6rem;
  }
  .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
  .woocommerce ul.products li.product > a.woocommerce-loop-product__link {
    align-content: start;
    column-gap: .7rem;
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
  }
  .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
  .woocommerce ul.products li.product > a.woocommerce-loop-product__link > img {
    aspect-ratio: 1;
    border-radius: 8px;
    grid-column: 1;
    grid-row: 1 / span 5;
    height: 96px;
    margin: 0 !important;
    max-height: none;
    object-fit: cover;
    width: 96px;
  }
  .woocommerce ul.products li.product .lll-product-group-badge,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product .star-rating,
  .woocommerce ul.products li.product .lll-rating-placeholder,
  .woocommerce ul.products li.product .price {
    grid-column: 2;
    margin-left: 0;
    margin-right: 0;
  }
  .woocommerce ul.products li.product .lll-product-group-badge { margin-top: .05rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { margin-bottom: .1rem; }
  .woocommerce ul.products li.product .star-rating,
  .woocommerce ul.products li.product .lll-rating-placeholder { margin-bottom: .28rem; margin-top: 0; }
  .woocommerce ul.products li.product .price { margin-bottom: 0; }
  .woocommerce ul.products li.product .lll-product-day-status,
  .woocommerce ul.products li.product .lll-loop-purchase {
    margin-left: 0;
    margin-right: 0;
  }
  .woocommerce ul.products li.product .lll-product-day-status { margin-top: .45rem; }
  .woocommerce ul.products li.product .lll-loop-purchase {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .lll-cart-continue {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .lll-cart-continue .lll-button { align-self: center; }

  .woocommerce-cart table.shop_table_responsive tr.cart_item {
    grid-template-columns: 60px minmax(0, 1fr) auto;
    padding: .55rem;
  }
  .woocommerce-cart table.cart img { width: 60px; }

  .lll-course-detail-columns,
  .lll-course-included-grid { grid-template-columns: 1fr; }

  .lll-repeat-payment-details,
  .lll-repeat-recovery-meta { grid-template-columns: 1fr; }
  .lll-repeat-payment-details > div + div,
  .lll-repeat-recovery-meta > div + div {
    border-left: 0;
    border-top: 1px solid var(--lll-repeat-line-soft);
    padding-left: 0;
  }
}

@media (max-width: 380px) {
  :root { --lll-shell: min(100% - .9rem, 1280px); }
  .lll-actions { gap: .4rem; }
  .lll-button,
  .wp-element-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button { font-size: .76rem; padding-inline: .55rem !important; }
  .lll-home-link { padding-inline: .58rem; }
  .lll-home-link strong { font-size: .73rem; }
  .lll-page-service-grid span { display: none; }
  .lll-course-session-action { grid-template-columns: 1fr; }
  .lll-cart-continue { grid-template-columns: 1fr; }
  .lll-cart-continue .lll-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lll-home-link,
  .woocommerce ul.products li.product,
  .lll-course-session-card { transform: none !important; }
}

/* Mobile-first compact correction 0.8.1
 *
 * The earlier density pass still left desktop-style hero proportions on very
 * small screens. These final overrides make the first screen genuinely useful:
 * a shorter header, smaller type, concise copy and fully visible hero imagery.
 */
@media (max-width: 600px) {
  :root {
    --lll-shell: min(100% - 1rem, 1280px);
    --lll-radius: 12px;
    --lll-radius-large: 14px;
  }

  body {
    font-size: 15px;
    line-height: 1.46;
  }

  /* Compact, useful header: logo + direct order shortcut + menu. */
  .lll-header-inner {
    gap: .45rem;
    min-height: 52px;
  }
  .lll-brand .custom-logo {
    max-height: 38px;
    max-width: 122px;
  }
  .lll-wordmark strong { font-size: 1.08rem; }
  .lll-wordmark span { display: none; }
  .lll-mobile-order-link {
    align-items: center;
    background: var(--lll-terracotta);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 850;
    justify-content: center;
    margin-left: auto;
    min-height: 36px;
    padding: .35rem .75rem;
    text-decoration: none;
  }
  .lll-menu-toggle {
    flex: 0 0 38px;
    height: 38px;
    width: 38px;
  }
  .lll-primary-nav {
    max-height: calc(100dvh - 52px);
    padding: .5rem .55rem calc(.75rem + env(safe-area-inset-bottom));
    top: 52px;
  }
  .lll-primary-nav li a {
    font-size: .82rem;
    min-height: 40px;
    padding: .48rem .25rem;
  }
  .lll-header-actions { gap: .4rem; }
  .lll-account-link,
  .lll-basket-link {
    min-height: 40px;
    padding: .45rem .55rem;
  }

  /* Global phone scale: readable, but no longer poster-sized. */
  .lll-eyebrow {
    font-size: .61rem;
    letter-spacing: .11em;
    margin-bottom: .22rem;
  }
  h2 { font-size: clamp(1.55rem, 7vw, 1.9rem); }
  h3 { font-size: 1.05rem; }
  p { margin-bottom: .62rem; }
  .lll-section { padding-block: 1.55rem; }
  .lll-page-layout { padding-block: 1.35rem; }
  .lll-page-header { margin-bottom: .8rem; }
  .lll-page-header h1,
  .woocommerce .woocommerce-products-header__title,
  .lll-public-hero-compact h1 {
    font-size: clamp(1.9rem, 9vw, 2.25rem);
    line-height: 1;
    margin-bottom: .42rem;
  }
  .lll-entry-content { font-size: .91rem; }
  .lll-card { padding: .78rem; }
  .lll-section-heading,
  .lll-public-section-heading {
    gap: .35rem;
    margin-bottom: .75rem;
  }
  .lll-public-section-heading > p {
    font-size: .8rem;
    line-height: 1.4;
  }

  .lll-actions {
    gap: .42rem;
    margin-top: .72rem;
  }
  .lll-button,
  .wp-element-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    font-size: .76rem;
    min-height: 44px;
    padding: .54rem .62rem !important;
  }

  /* Homepage: complete task, image and first navigation within far less height. */
  body.home .lll-hero-copy,
  .lll-home .lll-hero-copy {
    padding: .9rem 0 .78rem;
  }
  body.home .lll-hero h1,
  .lll-home .lll-hero h1 {
    font-size: clamp(1.95rem, 9.4vw, 2.3rem);
    line-height: 1;
    margin: .12rem 0 .42rem;
    max-width: 15ch;
  }
  body.home .lll-hero-copy > p:not(.lll-eyebrow),
  .lll-home .lll-hero-copy > p:not(.lll-eyebrow) {
    display: -webkit-box;
    font-size: .82rem;
    line-height: 1.4;
    margin-bottom: .5rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  body.home .lll-hero-media,
  .lll-home .lll-hero-media,
  .lll-home-simple .lll-hero-media {
    background-position: center 58%;
    min-height: 145px;
  }
  .lll-service-grid > div {
    min-height: 52px;
    padding: .42rem .4rem;
  }
  .lll-service-grid small { display: none; }
  .lll-service-grid strong { font-size: .66rem; }
  .lll-home-links { padding: 1rem 0 1.15rem; }
  .lll-home-links-heading { margin-bottom: .5rem; }
  .lll-home-links-heading h2 { font-size: 1.42rem; }
  .lll-home-link {
    min-height: 60px;
    padding: .55rem .58rem;
  }

  /* Public split heroes: compact copy followed by a complete image strip. */
  .lll-public-hero-copy {
    padding: .82rem 0 .72rem;
  }
  .lll-public-hero-copy h1,
  .lll-story-hero h1,
  .lll-courses-page .lll-public-hero-copy h1,
  .lll-visit-page .lll-public-hero-copy h1 {
    font-size: clamp(1.9rem, 9vw, 2.2rem);
    line-height: 1;
    margin: .08rem 0 .38rem;
    max-width: 15ch;
  }
  .lll-public-hero-copy > p:not(.lll-eyebrow),
  .lll-story-hero-grid > div:first-child > p:not(.lll-eyebrow) {
    font-size: .82rem;
    line-height: 1.4;
    margin-bottom: .45rem;
  }
  .lll-public-hero-image,
  .lll-courses-page .lll-public-hero-image,
  .lll-visit-page .lll-public-hero-image {
    min-height: 145px;
  }
  .lll-courses-page .lll-public-hero-image {
    background-position: center 68%;
  }
  .lll-visit-page .lll-public-hero-image {
    background-position: center 55%;
  }
  .lll-course-intro-mobile { display: block; }
  .lll-course-intro-desktop { display: none; }

  .lll-page-service-grid > div {
    gap: .12rem;
    padding: .42rem .25rem;
  }
  .lll-page-service-grid svg {
    height: 15px;
    margin-bottom: 0;
    width: 15px;
  }
  .lll-page-service-grid strong { font-size: .63rem; }
  .lll-page-service-grid span { display: none; }

  /* Course page: reach live dates quickly. */
  .lll-courses-page #course-dates {
    padding-top: 1.25rem;
  }
  .lll-course-session-browser { margin-top: .45rem; }
  .lll-course-browser-help { margin-bottom: .45rem; }
  .lll-course-session-grid { gap: .45rem; }
  .lll-course-session-card {
    gap: .5rem;
    grid-template-columns: 54px minmax(0, 1fr);
    padding: .58rem;
  }
  .lll-course-session-date {
    min-height: 68px;
    padding: .3rem;
  }
  .lll-course-session-date strong { font-size: 1.35rem; }
  .lll-course-session-copy h3 { font-size: 1.08rem; }
  .lll-course-session-copy > p:not(.lll-course-kicker) {
    -webkit-line-clamp: 1;
  }
  .lll-course-session-action { margin-top: -.05rem; }
  .lll-course-details-toggle { min-height: 42px; }
  .lll-course-expect-grid,
  .lll-course-faq { gap: .7rem; }

  /* Story and other editorial pages. */
  .lll-story-hero { padding-block: 1rem; }
  .lll-story-hero-grid { gap: .7rem; }
  .lll-story-hero-image { height: 155px; }
  .lll-story-prose { font-size: .92rem; line-height: 1.48; }
  .lll-timeline article { padding: .78rem; }
  .lll-timeline h3 { font-size: 1.2rem; margin: .55rem 0 .28rem; }

  /* Shop, basket and accounts: reduce framing, preserve controls. */
  .lll-shop-main { padding-block: .65rem 1.35rem; }
  .lll-fulfilment-selector { padding: .65rem; }
  .lll-order-day-summary { padding: .58rem .65rem; }
  .woocommerce ul.products { gap: .48rem; }
  .woocommerce ul.products li.product { padding: .5rem; }
  .woocommerce-account .lll-page-header h1 { font-size: 1.95rem; }
  .woocommerce-account .woocommerce-MyAccount-navigation a {
    font-size: .69rem;
    min-height: 38px;
    padding: .4rem .25rem;
  }
  .lll-account-hub-intro { padding: .72rem; }
  .lll-account-hub-intro h2 { font-size: 1.5rem; }
  .lll-account-hub-grid a { min-height: 78px; padding: .6rem; }
  .lll-account-order-summary,
  .lll-account-repeat-summary,
  .lll-create-repeat-offer { padding: .7rem; }

  /* Footer remains complete but no longer feels like another full page. */
  .lll-footer { padding: 1.25rem 0 .7rem; }
  .lll-footer-grid { gap: .8rem .6rem; }
  .lll-footer h2 { font-size: 1.35rem; }
  .lll-footer p,
  .lll-footer li a { font-size: .7rem; }
  .lll-footer-bottom { margin-top: .85rem; }
}

@media (min-width: 601px) {
  .lll-mobile-order-link,
  .lll-course-intro-mobile { display: none; }
  .lll-course-intro-desktop { display: block; }
}

/* Compact mobile shop grid 0.8.2
 *
 * The four nearest bakery days are kept visible as a 2 x 2 selector, and the
 * phone catalogue uses two genuinely compact product cards per row.
 */
@media (max-width: 600px) {
  /* Date selection: all four immediate choices visible without sideways scroll. */
  .lll-fulfilment-selector-shop {
    gap: .48rem;
    margin-bottom: .62rem;
    padding: .55rem;
  }
  .lll-fulfilment-selector-shop .lll-fulfilment-intro {
    gap: .12rem .4rem;
  }
  .lll-fulfilment-selector-shop .lll-fulfilment-kicker {
    font-size: .56rem;
    letter-spacing: .1em;
  }
  .lll-fulfilment-selector-shop .lll-fulfilment-intro strong {
    font-size: .8rem;
    line-height: 1.25;
  }
  .lll-fulfilment-selector-shop .lll-fulfilment-intro > span:not(.lll-fulfilment-kicker) {
    display: none;
  }
  .lll-fulfilment-selector-shop .lll-quick-dates {
    display: grid !important;
    gap: .32rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    padding: 0;
  }
  .lll-fulfilment-selector-shop .lll-quick-date {
    align-content: center;
    column-gap: .35rem;
    display: grid;
    flex: none;
    grid-template-columns: auto 1fr;
    min-height: 48px;
    min-width: 0;
    padding: .32rem .42rem;
    text-align: left;
    width: 100%;
  }
  .lll-fulfilment-selector-shop .lll-quick-date span {
    font-size: .54rem;
    grid-column: 1;
    letter-spacing: .06em;
    line-height: 1.1;
    margin: 0;
  }
  .lll-fulfilment-selector-shop .lll-quick-date strong {
    font-size: .74rem;
    grid-column: 2;
    line-height: 1.1;
    margin: 0;
  }
  .lll-fulfilment-selector-shop .lll-quick-date small {
    font-size: .49rem;
    grid-column: 1 / -1;
    line-height: 1.1;
    margin-top: .12rem;
  }
  .lll-fulfilment-selector-shop .lll-view-more-dates {
    font-size: .67rem;
    margin-top: .34rem;
    padding: .1rem 0;
  }

  /* Catalogue: two compact cards across even on small phone previews. */
  .woocommerce ul.products {
    gap: .48rem !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .woocommerce ul.products li.product {
    border-radius: 9px;
    display: flex;
    min-width: 0;
    overflow: hidden;
    padding: 0 0 .5rem !important;
  }
  .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
  .woocommerce ul.products li.product > a.woocommerce-loop-product__link {
    align-content: initial;
    column-gap: 0;
    display: block !important;
    grid-template-columns: none;
    min-width: 0;
  }
  .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
  .woocommerce ul.products li.product > a.woocommerce-loop-product__link > img {
    aspect-ratio: 4 / 3;
    border-radius: 0;
    display: block;
    grid-column: auto;
    grid-row: auto;
    height: auto;
    margin: 0 0 .38rem !important;
    max-height: none;
    object-fit: cover;
    width: 100%;
  }
  .woocommerce ul.products li.product .lll-product-group-badge,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product .star-rating,
  .woocommerce ul.products li.product .lll-rating-placeholder,
  .woocommerce ul.products li.product .price,
  .woocommerce ul.products li.product .lll-product-day-status,
  .woocommerce ul.products li.product .lll-loop-purchase {
    grid-column: auto;
    margin-left: .48rem;
    margin-right: .48rem;
  }
  .woocommerce ul.products li.product .lll-product-group-badge {
    font-size: .5rem;
    margin-bottom: .12rem;
    margin-top: 0;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    font-size: .74rem;
    line-height: 1.18;
    margin-bottom: .12rem;
    min-height: 2.35em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .woocommerce ul.products li.product .star-rating {
    font-size: .62rem;
    margin-bottom: .18rem;
    margin-top: 0;
  }
  .woocommerce ul.products li.product .lll-rating-placeholder {
    display: none;
  }
  .woocommerce ul.products li.product .price {
    font-size: .7rem;
    line-height: 1.2;
    margin-bottom: 0;
  }
  .woocommerce ul.products li.product .lll-product-day-status {
    display: -webkit-box;
    font-size: .57rem;
    line-height: 1.22;
    margin-bottom: 0;
    margin-top: .28rem;
    min-height: 2.44em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .woocommerce ul.products li.product .lll-loop-purchase {
    gap: .32rem;
    grid-template-columns: 1fr !important;
    margin-top: .36rem;
  }
  .woocommerce ul.products li.product .lll-loop-quantity {
    grid-template-columns: 30px minmax(30px, 1fr) 30px;
    min-height: 40px;
  }
  .woocommerce ul.products li.product .lll-loop-quantity-step {
    font-size: .88rem;
  }
  .woocommerce ul.products li.product .lll-loop-quantity-input {
    font-size: .75rem;
  }
  .woocommerce ul.products li.product .lll-loop-purchase > .button,
  .woocommerce ul.products li.product .lll-loop-purchase > .lll-quick-order-trigger {
    font-size: .68rem;
    min-height: 42px;
    padding: .45rem .35rem !important;
    width: 100%;
  }
  .woocommerce ul.products li.product .lll-loop-purchase .added_to_cart.wc-forward {
    font-size: .62rem;
    grid-column: 1;
    min-height: 38px;
    padding: .42rem .35rem;
  }
  .lll-loop-purchase .lll-catalogue-capacity-status {
    font-size: .58rem;
    grid-column: 1;
    line-height: 1.25;
  }
  .lll-loop-purchase .lll-catalogue-capacity-status:not(:empty) {
    padding: .42rem .45rem;
  }
}

/* Version 0.8.3 - show complete product images in catalogue cards. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
.woocommerce ul.products li.product > a.woocommerce-loop-product__link > img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img {
  background: var(--lll-cream-deep, #f3ede4);
  box-sizing: border-box;
  object-fit: contain !important;
  object-position: center center;
  padding: clamp(.35rem, 3.5%, .72rem);
}

/* Keep the compact mobile cards neat without cropping tall jars or bags. */
@media (max-width: 560px) {
  .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
  .woocommerce ul.products li.product > a.woocommerce-loop-product__link > img {
    padding: .32rem;
  }
}
/* Version 0.8.4 - consistently framed supplier product images. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
.woocommerce ul.products li.product > a.woocommerce-loop-product__link > img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img {
  background: var(--lll-cream-deep, #f3ede4);
  box-sizing: border-box;
  object-fit: contain !important;
  object-position: center center;
  padding: 0 !important;
}

/* Version 0.9.2 - approved product page phone refinements. */
@media (max-width: 600px) {
  body.lll-ordinary-product-page .lll-shop-main {
    padding-top: .65rem;
  }

  body.lll-ordinary-product-page .woocommerce-breadcrumb {
    margin-bottom: 1rem;
  }

  body.lll-ordinary-product-page
  .lll-product-order-panel {
    padding: .9rem !important;
  }

  body.lll-ordinary-product-page
  .lll-product-order-panel .lll-quick-dates {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Version 0.9.4 - mobile legibility and touch-target pass. */
@media (max-width: 600px) {
  .lll-home-launch .lll-home-intro {
    padding: 2.2rem 0 1.9rem;
  }

  .lll-home-launch .lll-home-intro h1 {
    font-size: clamp(2.75rem, 14vw, 4rem);
    max-width: 11ch;
  }

  .lll-home-launch .lll-home-intro-copy {
    font-size: 1rem;
    line-height: 1.5;
    margin-top: .9rem;
  }

  .lll-home-launch .lll-home-intro .lll-button {
    min-height: 48px;
    width: 100%;
  }

  .lll-home-launch .lll-home-intro-links {
    align-items: flex-start;
    flex-direction: column;
    font-size: .84rem;
    gap: .5rem;
  }

  .lll-home-launch .lll-home-intro-links span {
    display: none;
  }

  .lll-service-grid small,
  .lll-page-service-grid span,
  .lll-course-session-date span,
  .lll-course-session-date small,
  .lll-course-kicker,
  .lll-course-status,
  .lll-course-public-timeline time,
  .lll-footer h3 {
    font-size: .7rem !important;
    line-height: 1.35 !important;
  }

  .woocommerce ul.products li.product .lll-product-group-badge {
    font-size: .62rem !important;
  }

  .woocommerce ul.products li.product .lll-product-day-status,
  .lll-loop-purchase .lll-catalogue-capacity-status {
    font-size: .66rem !important;
    line-height: 1.35 !important;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .8rem !important;
    line-height: 1.25 !important;
  }

  .woocommerce ul.products li.product .price {
    font-size: .78rem !important;
  }

  .woocommerce ul.products li.product
  .lll-loop-purchase > .button,
  .woocommerce ul.products li.product
  .lll-loop-purchase > .lll-quick-order-trigger,
  .lll-quick-date,
  .lll-home-link {
    min-height: 44px;
  }
}

/*
 * The existing mobile-density stylesheet deliberately forces two catalogue
 * cards across. At a real 320px viewport that leaves only about 148px per
 * card, so this final rule must appear after that forced two-column rule.
 */
@media (max-width: 340px) {
  body.woocommerce ul.products,
  body.woocommerce-page ul.products,
  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.lll-ordinary-product-page .related.products ul.products,
  body.lll-ordinary-product-page .upsells.products ul.products {
    display: grid !important;
    gap: .75rem !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.woocommerce ul.products li.product,
  body.woocommerce-page ul.products li.product,
  body.post-type-archive-product ul.products li.product,
  body.tax-product_cat ul.products li.product,
  body.lll-ordinary-product-page .related.products ul.products li.product,
  body.lll-ordinary-product-page .upsells.products ul.products li.product {
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
  }
}
