/*
Theme Name: Loop DTF
Template: blocksy
Version: 0.2.0
Description: Loop DTF child theme. Brand tokens here; schema, artwork upload, forms and performance in inc/.
*/

/* ---- Brand tokens — PROPOSAL, pending CMO-007 lock (brand-config.json design_tokens) ---- */

/* ---- Brand tokens — warm/colourful direction, CEO decision 2026-09-12.
   Supersedes the architectural ink-and-chalk proposal in brand-config draft v1.
   Teal leads, coral supports, amber flags. Deliberately clear of Atlantic's rust
   orange, zizodtf's purple and dtf724's neon, so the four sites stay distinguishable. */
:root {
  --lp-cream:   #FBF7F0;
  --lp-sand:    #F2EADC;
  --lp-paper:   #FFFFFF;
  --lp-ink:     #1D2B30;
  --lp-ink-2:   #3C4F55;
  --lp-concrete:#6C7F85;
  --lp-line:    #E6DCCB;
  --lp-teal:    #0F8E88;
  --lp-teal-dk: #0A6F6A;
  --lp-coral:   #EF6B45;
  --lp-amber:   #F3B43C;
  --lp-accent:  var(--lp-teal);
  --lp-chalk:   var(--lp-sand);

  --lp-r:   16px;
  --lp-r-s: 10px;
  --lp-shadow:   0 1px 2px rgba(29,43,48,.06), 0 8px 24px rgba(29,43,48,.07);
  --lp-shadow-h: 0 2px 6px rgba(29,43,48,.09), 0 16px 40px rgba(29,43,48,.13);

  /* Blocksy palette mapping */
  --theme-palette-color-1: var(--lp-teal);
  --theme-palette-color-2: var(--lp-ink);
  --theme-palette-color-3: var(--lp-ink);
  --theme-palette-color-4: var(--lp-ink-2);
  --theme-palette-color-5: var(--lp-line);
  --theme-palette-color-6: var(--lp-sand);
  --theme-palette-color-7: var(--lp-cream);
  --theme-palette-color-8: var(--lp-paper);

  --theme-font-family: -apple-system, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --theme-heading-font-family: "Poppins", "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
}

body { color: var(--lp-ink); background: var(--lp-cream); }
h1, h2, h3, .lp-display { font-family: var(--theme-heading-font-family); letter-spacing: -.022em;
  line-height: 1.1; font-weight: 700; text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 5vw, 3.7rem); }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
h3 { font-size: 1.2rem; }
a { color: var(--lp-teal-dk); }

.lp-accent { color: var(--lp-coral); }
.lp-eyebrow { font-size: .78rem; letter-spacing: .13em; text-transform: uppercase;
  color: var(--lp-teal-dk); font-weight: 700; }
.lp-lede { font-size: 1.14rem; color: var(--lp-ink-2); max-width: 42rem; }
.lp-band { border-top: 1px solid var(--lp-line); border-bottom: 1px solid var(--lp-line); padding: 1.25rem 0; }
.lp-card { background: var(--lp-paper); border: 1px solid var(--lp-line); border-radius: var(--lp-r);
  padding: 1.6rem; height: 100%; box-shadow: var(--lp-shadow); }
.lp-card h3 { margin-top: 0; }
.lp-steps ol { counter-reset: lp; list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.5rem; }
.lp-steps li { counter-increment: lp; background: var(--lp-paper); border: 1px solid var(--lp-line);
  border-radius: var(--lp-r); padding: 1.4rem; box-shadow: var(--lp-shadow); }
.lp-steps li::before { content: counter(lp, decimal-leading-zero);
  font-family: var(--theme-heading-font-family); font-weight: 700; font-size: 1.5rem;
  color: var(--lp-teal); display: block; margin-bottom: .45rem; }
.lp-spec table, .wp-block-table.lp-spec table { border-collapse: collapse; width: 100%; }
.lp-spec td, .lp-spec th { border-bottom: 1px solid var(--lp-line); padding: .7rem .4rem; text-align: left; vertical-align: top; }
.lp-spec th { font-weight: 700; width: 34%; color: var(--lp-concrete); font-size: .88rem;
  text-transform: uppercase; letter-spacing: .06em; }
.wp-block-details { border: 1px solid var(--lp-line); border-radius: var(--lp-r-s);
  background: var(--lp-paper); padding: 1rem 1.2rem; margin-bottom: .7rem; }
.wp-block-details summary { font-weight: 700; cursor: pointer; }
.wp-block-details > :not(summary) { margin-top: .6rem; }
.lp-legal { max-width: 46rem; }
.lp-legal h2 { font-size: 1.35rem; margin-top: 2.2rem; }
.lp-form { display: grid; gap: 1rem; max-width: 40rem; }
.lp-form label { font-weight: 600; display: block; margin-bottom: .3rem; }
.lp-form input[type=text], .lp-form input[type=email], .lp-form textarea, .lp-form select {
  width: 100%; border: 1px solid #cfc4b2; border-radius: var(--lp-r-s); padding: .75rem; background: #fff; font: inherit; }
.lp-form .lp-hp { position: absolute; left: -9999px; }
.lp-form button { background: var(--lp-teal); color: #fff; border: 0; border-radius: 999px;
  padding: .9rem 1.8rem; font-weight: 700; cursor: pointer; }
.lp-notice { border-left: 4px solid var(--lp-coral); background: var(--lp-sand);
  border-radius: var(--lp-r-s); padding: 1rem 1.2rem; margin: 1rem 0; }
.lp-artwork-field { margin: 1rem 0 1.25rem; padding: 1.1rem; border: 2px dashed #c9bda9;
  border-radius: var(--lp-r); background: var(--lp-sand); }
.lp-artwork-field label { font-weight: 700; display: block; margin-bottom: .4rem; }
.lp-artwork-field small { display: block; color: var(--lp-concrete); margin-top: .4rem; }
.lp-per-inch { display: block; font-size: .9rem; color: var(--lp-concrete); font-weight: 400; margin-top: .2rem; }
.lp-ink-note { background: var(--lp-sand); border-left: 4px solid var(--lp-teal);
  border-radius: var(--lp-r-s); padding: .85rem 1.1rem; margin: 0 0 1.1rem; font-size: .93rem; line-height: 1.5; }
.lp-actions-item{display:flex;align-items:center}
.lp-actions-item::before,.lp-actions-item::after{content:none!important}
.lp-actions{display:flex;align-items:center;gap:.4rem;margin-left:.5rem}
.lp-actions a{display:inline-flex;align-items:center;gap:.42rem;text-decoration:none;color:var(--lp-ink);
  font-weight:600;font-size:.88rem;padding:.5rem .85rem;border-radius:999px;border:1px solid transparent;
  transition:background .15s ease,border-color .15s ease}
.lp-actions a:hover{background:var(--lp-sand)}
.lp-actions__cart{border-color:var(--lp-line);position:relative}
.lp-actions__cart.has-items{background:var(--lp-teal);border-color:var(--lp-teal);color:#fff}
.lp-actions__cart.has-items:hover{background:var(--lp-teal-dk)}
.lp-actions__cart .amount{font-weight:700}
.lp-actions__n{min-width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;
  background:var(--lp-coral);color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;padding:0 .3rem}
.lp-actions a{white-space:nowrap}
/* Signing in is NOT required to order — guest checkout is on — so the account link is an
   icon only: there for repeat customers, never a gate. Label kept for screen readers. */
.lp-actions__acct{padding-left:.6rem;padding-right:.6rem}
.lp-actions__acct .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:1200px){.lp-actions a{padding:.5rem .7rem}}
@media (max-width:1040px){.lp-actions__label{display:none}}

/* Mobile keeps the actions in the off-canvas panel, where a cart with something in it is
   invisible. A compact bar appears instead, and only once there is something to lose. */
.lp-minicart{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;
  background:var(--lp-ink);color:#fff;text-decoration:none;
  padding:.85rem 1.1rem calc(.85rem + env(safe-area-inset-bottom));
  align-items:center;justify-content:space-between;gap:.9rem;
  box-shadow:0 -6px 20px rgba(29,43,48,.22)}
.lp-minicart strong{font-weight:700}
.lp-minicart__go{background:var(--lp-teal);border-radius:999px;padding:.5rem 1.1rem;font-weight:700;font-size:.9rem}
body.lp-has-cart .lp-minicart{display:flex}
@media (min-width:861px){.lp-minicart{display:none!important}}
@media (max-width:860px){body.lp-has-cart{padding-bottom:4.2rem}}
.lp-area-buy{margin:1.6rem 0 2.4rem}
.lp-area-buy__rail{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
@media (max-width:860px){.lp-area-buy__rail{grid-template-columns:1fr}}
.lp-area-buy .lp-route__body{padding:1.1rem}
.lp-area-buy .lp-route h3{font-size:1.12rem}
.lp-area-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem;
  margin-top:1.1rem;background:var(--lp-sand);border-radius:var(--lp-r);padding:1.1rem 1.3rem}
.lp-area-facts span{font-size:.92rem;color:var(--lp-ink-2);line-height:1.45}
.lp-area-facts strong{color:var(--lp-ink);display:block}
.lp-area-others{margin:2.5rem 0 0;padding-top:1.6rem;border-top:1px solid var(--lp-line)}
.lp-area-others__list{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.7rem}
.lp-area-others__list a{display:inline-block;padding:.5rem 1rem;border:1px solid var(--lp-line);
  border-radius:999px;text-decoration:none;color:var(--lp-ink);font-weight:600;font-size:.9rem;background:var(--lp-paper)}
.lp-area-others__list a:hover{border-color:var(--lp-teal);color:var(--lp-teal-dk)}
.lp-guide-cta{background:var(--lp-ink);color:#E7EFEE;border-radius:var(--lp-r);
  padding:1.6rem 1.8rem;margin:2.5rem 0 0}
.lp-guide-cta h3{color:#fff;margin:0 0 .4rem}
.lp-guide-cta p{color:#C6D4D3;margin:0 0 1.1rem;max-width:40rem}
.lp-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--lp-teal);color:#fff;
  text-decoration:none;font-weight:700;padding:.85rem 1.7rem;border-radius:999px}
.lp-btn:hover{background:#12A39C;color:#fff}
.lp-guides{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.2rem}
@media (max-width:900px){.lp-guides{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.lp-guides{grid-template-columns:1fr}}
.lp-guide{display:flex;flex-direction:column;gap:.5rem;background:var(--lp-paper);border:1px solid var(--lp-line);
  border-radius:var(--lp-r);padding:1.3rem;text-decoration:none;color:inherit;box-shadow:var(--lp-shadow);
  transition:transform .18s ease,box-shadow .18s ease}
.lp-guide:hover{transform:translateY(-3px);box-shadow:var(--lp-shadow-h)}
.lp-guide h3{margin:0;font-size:1.05rem;line-height:1.25}
.lp-guide p{margin:0;color:var(--lp-ink-2);font-size:.92rem;line-height:1.5;flex:1}
.lp-index-tiles{margin-bottom:2.5rem}
.lp-area-others__list a small{color:var(--lp-concrete);font-weight:600;margin-left:.25rem}
.lp-ship-note{background:var(--lp-sand);border-radius:var(--lp-r);padding:1rem 1.2rem;margin:0 0 1.2rem}
.lp-ship-note p{margin:0}
.lp-ship-note--done{border-left:4px solid var(--lp-teal)}
.lp-ship-bar{height:7px;background:#DFD3BE;border-radius:999px;margin-top:.7rem;overflow:hidden}
.lp-ship-bar span{display:block;height:100%;background:var(--lp-teal);border-radius:999px;transition:width .3s ease}
.woocommerce .related.products{margin-top:3rem;padding-top:2.2rem;border-top:1px solid var(--lp-line)}
.woocommerce .related.products > h2{font-family:var(--theme-heading-font-family);font-weight:700;
  font-size:1.5rem;margin-bottom:1.2rem}
.lp-ink-note em { font-style: normal; font-weight: 700; }
.lp-quote { border-left: 4px solid var(--lp-coral); padding: .2rem 0 .2rem 1.2rem; margin: 1.8rem 0;
  font-size: 1.12rem; line-height: 1.55; max-width: 38rem; }
.lp-figure-note { color: var(--lp-concrete); font-size: .86rem; margin-top: .5rem; }

/* Pre-launch: every number that waits on the supplier is wrapped in .lp-token.
   Go-live step: strip the class site-wide, then delete this rule. */
.lp-token{background:none;color:inherit;padding:0;border-bottom:1px dotted rgba(243,180,60,.95);text-decoration:none}

/* ==========================================================================
   Components — reference architecture, Loop's warm palette (CEO direction
   2026-09-12). Rounded cards, soft shadows, teal lead, coral support.
   ========================================================================== */

/* Announcement bar */
.lp-announce{background:var(--lp-ink);color:#EBF3F2;font-size:.83rem}
.lp-announce__inner{max-width:1240px;margin:0 auto;padding:.6rem 1.25rem;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:.35rem .9rem;text-align:center}
.lp-announce strong{color:#fff;font-weight:700}
.lp-announce .lp-token{background:none;color:inherit;border-radius:0;border-bottom:1px dotted rgba(247,199,102,.85)}
.lp-announce__dot{width:5px;height:5px;border-radius:50%;background:var(--lp-amber);flex:0 0 auto}
@media (max-width:640px){.lp-announce__dot{display:none}.lp-announce__inner{gap:.15rem .8rem;font-size:.77rem}}

/* Full-bleed bands */
.lp-hero,.lp-section-chalk,.lp-section-ink,.lp-specs{
  width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  padding-left:max(1.25rem,calc(50vw - 620px));padding-right:max(1.25rem,calc(50vw - 620px))}
.lp-hero > .wp-block-columns,.lp-section-chalk > *,.lp-section-ink > *{max-width:1240px;margin-left:auto;margin-right:auto}

/* Section rhythm */
.lp-section{padding:clamp(3rem,7vw,5.5rem) 0}
.lp-section-chalk{background:var(--lp-sand)}
.lp-section-ink{background:var(--lp-ink);color:#E7EFEE}
.lp-section-ink h2,.lp-section-ink h3{color:#fff}
.lp-section-ink p{color:#C6D4D3}
.lp-section-ink .lp-eyebrow{color:var(--lp-amber)}
.lp-section-ink a{color:#7FD8D2}
.lp-section > .lp-eyebrow,.lp-section > h2,.lp-section > h2 + p{text-align:center}
.lp-section h2{margin-bottom:.4rem}
.lp-section > h2 + p{margin-top:0;color:var(--lp-concrete);max-width:44rem;
  margin-left:auto;margin-right:auto;font-size:1.05rem}
.lp-section .wp-block-columns .lp-eyebrow,.lp-section .wp-block-columns h2,
.lp-section .wp-block-columns p{text-align:left}

/* Hero — warm, product-forward */
.lp-hero{background:
   radial-gradient(120% 100% at 88% 12%, rgba(15,142,136,.14) 0%, rgba(15,142,136,0) 55%),
   radial-gradient(90% 80% at 6% 92%, rgba(239,107,69,.13) 0%, rgba(239,107,69,0) 60%),
   var(--lp-cream);
  padding:clamp(2.5rem,6vw,4.5rem) 0;overflow:hidden}
.lp-hero .wp-block-columns{align-items:center;gap:clamp(1.5rem,4vw,3.5rem)}
.lp-hero h1{margin:.45rem 0 0}
.lp-hero h1 em{font-style:normal;color:var(--lp-coral)}
.lp-hero p.lp-lede{margin-top:1rem}
.lp-hero__pic{margin:0}
.lp-hero__pic img{width:100%;height:auto;display:block;border-radius:var(--lp-r);box-shadow:var(--lp-shadow-h)}
.lp-hero__art{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.lp-hero__cell{display:block;overflow:hidden;border-radius:var(--lp-r);background:var(--lp-sand);
  aspect-ratio:4/3;box-shadow:var(--lp-shadow)}
.lp-hero__cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.lp-hero__cell:hover img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.lp-hero__cell img{transition:none}}

/* Buttons */
.wp-block-buttons{gap:.75rem;align-items:stretch}
.wp-block-buttons > .wp-block-button{display:flex}
.wp-block-button > .wp-block-button__link,
.wp-block-button > .wp-block-button__link:visited{
  border-radius:999px;font-weight:700;line-height:1.2;padding:.95rem 1.9rem;min-height:3.25rem;
  border:2px solid transparent;box-sizing:border-box;display:inline-flex;align-items:center;
  justify-content:center;width:100%;text-align:center;background:var(--lp-teal);color:#fff;
  box-shadow:0 6px 16px rgba(15,142,136,.24);transition:transform .16s ease,box-shadow .16s ease}
.wp-block-button > .wp-block-button__link:hover{background:var(--lp-teal-dk);transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(15,142,136,.3)}
.wp-block-button.is-style-outline > .wp-block-button__link,
.is-style-outline > .wp-block-button__link{background:transparent;border:2px solid var(--lp-ink);
  color:var(--lp-ink);padding:.95rem 1.9rem;min-height:3.25rem;box-shadow:none}
.wp-block-button.is-style-outline > .wp-block-button__link:hover{background:var(--lp-ink);color:#fff}
.lp-section-ink .is-style-outline > .wp-block-button__link{border-color:#7FD8D2;color:#fff}
.lp-section-ink .is-style-outline > .wp-block-button__link:hover{background:#7FD8D2;color:var(--lp-ink)}
@media (max-width:420px){.wp-block-buttons{width:100%}.wp-block-buttons > .wp-block-button{flex:1 1 100%}}

/* Feature strip */
.lp-specs{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;background:transparent;
  padding-top:0;padding-bottom:0;margin-top:-2.2rem;position:relative;z-index:2}
.lp-spec-item{padding:1.2rem 1.3rem;background:var(--lp-paper);border:1px solid var(--lp-line);
  border-radius:var(--lp-r);box-shadow:var(--lp-shadow)}
.lp-spec-item__k{display:block;font-family:var(--theme-heading-font-family);font-weight:700;
  font-size:1.05rem;letter-spacing:-.015em;color:var(--lp-ink)}
.lp-spec-item__v{display:block;color:var(--lp-concrete);font-size:.9rem;margin-top:.25rem;line-height:1.45}
@media (max-width:1000px){.lp-specs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.lp-specs{grid-template-columns:1fr;margin-top:-1.2rem}}

/* Route cards */
.lp-page-art{margin:1.8rem 0 2.2rem;max-width:520px}
.lp-page-art img{width:100%;height:auto;display:block;border-radius:var(--lp-r);border:1px solid var(--lp-line);box-shadow:var(--lp-shadow)}
/* nav: Blocksy's default is small for a 8-item bar — lift it and tighten the gaps
   so the extra size does not push the row onto two lines */
.header-menu-1 > .menu > li > a.ct-menu-link{font-size:1rem;font-weight:600;letter-spacing:-.005em}
.header-menu-1 .sub-menu a.ct-menu-link{font-size:.95rem}
@media (max-width:1320px){.header-menu-1 > .menu > li > a.ct-menu-link{font-size:.95rem}}
@media (max-width:1180px){.header-menu-1 > .menu > li > a.ct-menu-link{font-size:.9rem}}

/* custom apparel: upload your own, or press one of ours */
/* wordmark: sized by height so the dot never clips */
/* The wordmark already says the name, so the text site-title under it is a duplicate —
   kept in the DOM for screen readers and structured data, hidden visually. */
.site-title{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-logo-container{display:inline-flex;align-items:center;line-height:0}
.site-logo-container img,.site-logo-container svg{height:40px!important;width:auto!important;display:block}
/* step down before the wordmark's width pushes a nav item into Blocksy's 'More' overflow */
@media (max-width:1240px){.site-logo-container img,.site-logo-container svg{height:36px!important}}
@media (max-width:1100px){.site-logo-container img,.site-logo-container svg{height:32px!important}}
@media (max-width:782px){.site-logo-container img,.site-logo-container svg{height:30px!important}}
.lp-logo{display:inline-flex;align-items:center;line-height:0;text-decoration:none}
.lp-logo svg{height:40px;width:auto;display:block}

.lp-source-field{margin:0 0 .9rem}
.lp-source-field>strong{display:block;margin-bottom:.45rem}
.lp-source-options{display:flex;gap:.5rem;flex-wrap:wrap}
.lp-source-opt{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .95rem;
  border:1px solid var(--lp-line);border-radius:999px;background:var(--lp-paper);
  cursor:pointer;font-weight:600;font-size:.95rem;line-height:1.3;transition:background .15s ease,border-color .15s ease}
.lp-source-opt:hover{border-color:var(--lp-teal)}
.lp-source-opt.is-active{border-color:var(--lp-teal);background:var(--lp-teal);color:#fff}
.lp-source-opt input{accent-color:var(--lp-coral);margin:0}
.lp-source-opt small{opacity:.85;font-weight:700}
.lp-design-field{background:var(--lp-sand);border:1px dashed var(--lp-line);border-radius:var(--lp-r);padding:1rem 1.15rem;margin:1rem 0}
.lp-design-field label{display:block;margin-bottom:.5rem;line-height:1.45}
.lp-design-pick{display:flex;gap:.8rem;align-items:center}
/* Blocksy pins selects to height:40px; with 11.2px padding that leaves a 15.6px content
   box for a 21.6px line, and overflow:clip eats the descenders. Let height follow content. */
.lp-design-pick select{flex:1 1 auto;min-width:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;
  height:auto;min-height:0;
  padding:.75rem 2.4rem .75rem .85rem;font-family:inherit;font-size:1rem;font-weight:500;line-height:1.35;
  border:1px solid var(--lp-line);border-radius:var(--lp-r-s);color:var(--lp-ink);
  background-color:var(--lp-paper);
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%236C7F85' stroke-width='2'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .95rem center}
.lp-design-pick select:focus{outline:none;border-color:var(--lp-teal);box-shadow:0 0 0 3px rgba(15,142,136,.15)}
.lp-design-pick select:invalid{color:var(--lp-concrete)}
.lp-design-preview{width:72px;height:72px;object-fit:cover;border-radius:var(--lp-r-s);
  border:1px solid var(--lp-line);background:var(--lp-paper)}
.lp-design-note{margin:.6rem 0 0;font-size:.85rem;color:var(--lp-concrete)}

.lp-placement-field{margin:0 0 1.1rem}
.lp-placement-field label{display:block;margin-bottom:.4rem}
/* `font:inherit` also inherited the page line-height, which overflowed the box and
   clipped the option text. Set the type explicitly and let the height follow it. */
.lp-placement-field select{-webkit-appearance:none;appearance:none;
  width:100%;max-width:320px;height:auto;min-height:0;box-sizing:border-box;
  padding:.75rem 2.4rem .75rem .85rem;
  font-family:inherit;font-size:1rem;font-weight:500;line-height:1.35;
  color:var(--lp-ink);background-color:var(--lp-paper);
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%236C7F85' stroke-width='2'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .95rem center;
  border:1px solid var(--lp-line);border-radius:var(--lp-r-s)}
.lp-placement-field select:focus{outline:none;border-color:var(--lp-teal);box-shadow:0 0 0 3px rgba(15,142,136,.15)}
.lp-placement-field select:invalid{color:var(--lp-concrete)}
.lp-routes{display:grid;grid-template-columns:repeat(4,1fr);gap:1.35rem;margin-top:2.2rem}
@media (max-width:1100px){.lp-routes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.lp-routes{grid-template-columns:1fr}}
.lp-route{position:relative;display:flex;flex-direction:column;background:var(--lp-paper);
  border:1px solid var(--lp-line);border-radius:var(--lp-r);overflow:hidden;text-decoration:none;
  color:inherit;box-shadow:var(--lp-shadow);transition:transform .18s ease,box-shadow .18s ease}
.lp-route:hover{transform:translateY(-3px);box-shadow:var(--lp-shadow-h)}
.lp-route__img{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--lp-sand)}
.lp-route__img img{width:100%;height:100%;object-fit:cover;display:block}
.lp-route__body{padding:1.35rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.lp-route__n{position:absolute;top:.9rem;left:.9rem;z-index:2;
  background:var(--lp-coral);color:#fff;font-family:var(--theme-heading-font-family);font-weight:700;
  font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;padding:.34rem .7rem;border-radius:999px;
  box-shadow:0 3px 10px rgba(29,43,48,.2)}
.lp-route--free .lp-route__n{background:var(--lp-teal)}
.lp-route--plain .lp-route__n{background:var(--lp-ink)}
.lp-route h3{margin:0;font-size:1.28rem}
.lp-route p{margin:0;color:var(--lp-ink-2);font-size:.96rem;line-height:1.55}
.lp-route__go{margin-top:auto;padding-top:.85rem;font-weight:700;font-size:.95rem;color:var(--lp-teal-dk)}
.lp-route:hover .lp-route__go{color:var(--lp-coral)}

/* Collection tiles */
.lp-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:2.2rem}
@media (max-width:900px){.lp-tiles{grid-template-columns:repeat(2,1fr)}}
.lp-tile{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--lp-paper);
  border:1px solid var(--lp-line);border-radius:var(--lp-r);overflow:hidden;box-shadow:var(--lp-shadow);
  transition:transform .18s ease,box-shadow .18s ease}
.lp-tile:hover{transform:translateY(-3px);box-shadow:var(--lp-shadow-h)}
.lp-tile__img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--lp-sand);border-bottom:1px solid var(--lp-line)}
.lp-tile__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.lp-tile:hover .lp-tile__img img{transform:scale(1.05)}
.lp-tile__body{padding:.95rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.2rem;flex:1}
.lp-tile__name{font-family:var(--theme-heading-font-family);font-weight:700;font-size:1.04rem;
  line-height:1.2;letter-spacing:-.015em;min-height:2.4em;display:flex;align-items:flex-start}
.lp-tile__n{font-size:.82rem;color:#fff;background:var(--lp-teal);border-radius:999px;
  padding:.14rem .6rem;align-self:flex-start;margin-top:auto;font-weight:600}

/* Design row */
.lp-designs{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem 1.25rem;margin-top:2.2rem}
@media (max-width:900px){.lp-designs{grid-template-columns:repeat(2,1fr)}}
.lp-design{text-decoration:none;color:inherit;display:flex;flex-direction:column;
  background:var(--lp-paper);border:1px solid var(--lp-line);border-radius:var(--lp-r);
  overflow:hidden;box-shadow:var(--lp-shadow);transition:transform .18s ease,box-shadow .18s ease}
.lp-design:hover{transform:translateY(-3px);box-shadow:var(--lp-shadow-h);border-color:#D8CAB2}
.lp-design__img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--lp-sand);
  border-bottom:1px solid var(--lp-line)}
.lp-design__img img{width:100%;height:100%;object-fit:cover;display:block}
.lp-design__name{font-weight:600;font-size:.94rem;line-height:1.32;padding:.85rem 1rem 0;
  min-height:3.2em}
.lp-design__price{font-size:.95rem;color:var(--lp-teal-dk);font-weight:700;padding:0 1rem 1rem;margin-top:auto}
.lp-design__price .amount{color:var(--lp-teal-dk)}

/* Footer — Blocksy ships none of this; the markup is ours, so the styling has to be too. */
.lp-footer{background:var(--lp-ink);color:#C6D4D3;
  width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  padding:clamp(2.5rem,5vw,4rem) max(1.25rem,calc(50vw - 620px))}
.lp-footer-inner{max-width:1240px;margin:0 auto;display:grid;
  grid-template-columns:1.3fr 1.4fr 1fr;gap:clamp(1.5rem,4vw,3.5rem)}
@media (max-width:880px){.lp-footer-inner{grid-template-columns:1fr;gap:2rem}}
.lp-footer p{margin:.5rem 0;line-height:1.6;font-size:.93rem}
.lp-footer a{color:#8FDCD6;text-decoration:none}
.lp-footer a:hover{color:#fff;text-decoration:underline}
.lp-footer-name{font-family:var(--theme-heading-font-family);font-weight:700;font-size:1.3rem;
  color:#fff;letter-spacing:-.02em;margin:0 0 .3rem}
.lp-footer-brand p{color:#A9BDBC;max-width:26rem}
.lp-footer-menu{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem 1.5rem}
.lp-footer-menu li{margin:0}
.lp-footer-menu a{font-size:.92rem}
@media (max-width:520px){.lp-footer-menu{grid-template-columns:1fr}}
.lp-footer-contact p:first-child a{font-weight:700;font-size:1.02rem;color:#fff}
.lp-footer-contact p{color:#A9BDBC}
.ct-footer-copyright,.site-footer .ct-container{color:#8E9FA3}

/* Category header */
.lp-cathead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);
  align-items:center;background:var(--lp-sand);border-radius:var(--lp-r);
  padding:clamp(1.8rem,4vw,3rem);margin-bottom:2.5rem}
.lp-cathead__h{font-size:clamp(2rem,4.2vw,3rem);margin:.3rem 0 0}
.lp-cathead__desc{margin-top:.9rem;color:var(--lp-ink-2);max-width:38rem}
.lp-cathead__desc p{margin:0}
.lp-cathead__art{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.lp-cathead__art span{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--lp-r-s);
  background:var(--lp-paper);box-shadow:var(--lp-shadow)}
.lp-cathead__art img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:880px){.lp-cathead{grid-template-columns:1fr}.lp-cathead__art{order:-1}}

/* WooCommerce grid — the whole loop item is the card, matching the design row above it. */
.woocommerce ul.products li.product{background:var(--lp-paper);border:1px solid var(--lp-line);
  border-radius:var(--lp-r);overflow:hidden;padding:0 0 1.35rem;box-shadow:var(--lp-shadow);
  transition:transform .18s ease,box-shadow .18s ease}
.woocommerce ul.products li.product:hover{transform:translateY(-3px);box-shadow:var(--lp-shadow-h)}
.woocommerce ul.products li.product figure,
.woocommerce ul.products li.product .ct-media-container{margin:0 0 .9rem}
/* every product image square: Blocksy defaults are 3/4 on the PDP gallery and 4/3 on cards */
.woocommerce ul.products li.product img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  display:block;border:0;border-radius:0;margin:0;box-shadow:none;background:var(--lp-sand)}
.woocommerce-product-gallery .ct-media-container img,
.woocommerce-product-gallery .flexy-items img,
ul.products li.product .ct-media-container img,
ul.products li.product .woocommerce-loop-product__link img,
.related ul.products li.product img,.upsells ul.products li.product img{aspect-ratio:1/1!important;object-fit:cover}
.woocommerce-product-gallery .flexy-pills img{aspect-ratio:1/1!important}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .entry-meta,
.woocommerce ul.products li.product .ct-woo-card-extra{padding-left:1.1rem;padding-right:1.1rem}
/* Blocksy renders the category row as a filled band; in a card it should read as a
   quiet label under the price, not a second highlight competing with the button. */
.woocommerce ul.products li.product .entry-meta{background:none;margin:.35rem 0 .75rem;
  font-size:.78rem;letter-spacing:.02em;text-transform:none;line-height:1.4}
.woocommerce ul.products li.product .entry-meta a{color:var(--lp-concrete);text-decoration:none;
  background:none;padding:0}
.woocommerce ul.products li.product .entry-meta a:hover{color:var(--lp-teal-dk)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--theme-heading-font-family);font-weight:700;font-size:1rem;
  letter-spacing:-.015em;line-height:1.25;margin-bottom:.35rem}
.woocommerce ul.products li.product .price{color:var(--lp-teal-dk);font-weight:700;display:block}
.woocommerce ul.products li.product .button{border-radius:999px;font-weight:700;
  background:var(--lp-teal);color:#fff;margin-left:1.1rem;margin-right:1.1rem;
  padding-left:1.4rem;padding-right:1.4rem}
.woocommerce ul.products li.product .button:hover{background:var(--lp-teal-dk)}
