/*
Theme Name: The Lore Library
Theme URI: https://shop.lorelibrarymyth.com
Description: Ink-and-paper editorial storefront for The Lore Library. Child of Twenty Twenty-Five.
Author: The Lore Library
Template: twentytwentyfive
Version: 2.0.0
Text Domain: lorelibrary
*/

/* ============================================================
   1. Tokens
   ============================================================ */
:root{
  --paper:#f6f2ea;
  --paper-lt:#fcfaf5;
  --paper-dk:#ece5d7;
  --ink:#16130f;
  --ink-2:#3d3730;
  --ink-3:#7a7267;
  --brass:#9a7b45;
  --brass-lt:#b99356;
  --oxblood:#6e2a2a;
  --rule:rgba(22,19,15,.15);
  --rule-soft:rgba(22,19,15,.08);
  --shadow:0 18px 50px -28px rgba(22,19,15,.45);
  --serif:"Fraunces","Iowan Old Style",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --wide:1240px;
  --gutter:clamp(1.25rem,4vw,2.75rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html,body{ overflow-x:clip; }

body{
  background:var(--paper);
  color:var(--ink-2);
  font-family:var(--sans);
  font-size:1.05rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-synthesis-weight:none;
}

/* faint paper grain over everything */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:.5; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
}
.wp-site-blocks{ position:relative; z-index:1; }

h1,h2,h3,h4,.ll-serif{
  font-family:var(--serif);
  font-weight:500;
  color:var(--ink);
  line-height:1.16;
  letter-spacing:-.012em;
  font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 0;
  text-wrap:balance;
}
h1{ font-size:clamp(2.5rem,5.4vw,4.6rem); line-height:1.05; letter-spacing:-.02em; }
h2{ font-size:clamp(1.85rem,3.4vw,2.7rem); }
h3{ font-size:clamp(1.2rem,2vw,1.55rem); }
p{ margin:0 0 1.1em; }
a{ color:var(--ink); text-decoration-color:var(--rule); text-underline-offset:.25em; }
a:hover{ color:var(--brass); }
img{ max-width:100%; height:auto; }
::selection{ background:var(--brass); color:var(--paper-lt); }

/* ============================================================
   2. Utilities
   ============================================================ */
.ll-wrap{ width:min(var(--wide),100% - var(--gutter)*2); margin-inline:auto; }
.ll-narrow{ width:min(760px,100% - var(--gutter)*2); margin-inline:auto; }

.ll-kicker{
  font-family:var(--sans);
  font-size:.72rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--brass); margin:0 0 1.1rem;
}
.ll-kicker--ink{ color:var(--ink-3); }

.ll-lede{
  font-size:clamp(1.05rem,1.5vw,1.2rem);
  line-height:1.72; color:var(--ink-2); max-width:56ch;
}

.ll-rule{
  display:flex; align-items:center; gap:1rem;
  color:var(--rule); margin:0 0 2.6rem;
}
.ll-rule::before,.ll-rule::after{ content:""; height:1px; background:var(--rule); flex:1; }
.ll-rule svg{ width:15px; height:15px; color:var(--brass); flex:none; }

.ll-mark{ color:var(--ink); display:block; }
.ll-mark svg,.ll-mark img{ display:block; width:100%; height:auto; }

/* ============================================================
   3. Buttons
   ============================================================ */
.ll-btn,
.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  background:var(--ink); color:var(--paper-lt);
  border:1px solid var(--ink); border-radius:0;
  font-family:var(--sans); font-weight:600;
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  padding:1.05em 2.1em; text-decoration:none; cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.ll-btn:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce #respond input#submit:hover,.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{
  background:var(--brass); border-color:var(--brass); color:var(--paper-lt);
  transform:translateY(-1px);
}
.ll-btn--ghost,
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent; color:var(--ink); border-color:var(--ink);
}
.ll-btn--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:var(--ink); color:var(--paper-lt); border-color:var(--ink);
}
.ll-btn--quiet{
  background:none; border:0; padding:1.05em 0; color:var(--ink);
  border-bottom:1px solid var(--ink); letter-spacing:.14em;
}
.ll-btn--quiet:hover{ background:none; color:var(--brass); border-color:var(--brass); transform:none; }
.ll-btn--paper{ background:var(--paper-lt); border-color:var(--paper-lt); color:var(--ink); }
.ll-btn--paper:hover{ background:var(--brass); border-color:var(--brass); color:var(--paper-lt); }

/* ============================================================
   4. Announcement + Header
   ============================================================ */
.ll-announce{
  background:var(--ink); color:var(--paper);
  font-size:.7rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  text-align:center; padding:.72rem 1rem;
}
.ll-announce span{ opacity:.72; }
.ll-announce b{ font-weight:600; color:var(--brass-lt); }
.ll-announce__x{ font-style:normal; opacity:.72; }

.ll-header{
  position:sticky; top:0; z-index:80;
  background:rgba(246,242,234,.88);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.ll-header__inner{
  width:min(var(--wide),100% - var(--gutter)*2); margin-inline:auto;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  gap:1.5rem; padding:1.05rem 0;
}
.ll-header__left{ display:flex; align-items:center; gap:1.9rem; }
.ll-header__brand{ justify-self:center; }
.ll-brand{ display:block; width:clamp(148px,17vw,208px); color:var(--ink); }
.ll-brand svg{ display:block; width:100%; height:auto; }
.ll-brand:hover{ color:var(--brass); }

.ll-nav{ display:flex; align-items:center; gap:1.9rem; }
.ll-nav--right{ justify-content:flex-end; }
.ll-nav a{
  font-size:.73rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-2); text-decoration:none; padding-block:.4rem;
  border-bottom:1px solid transparent; white-space:nowrap;
  transition:color .2s ease,border-color .2s ease;
}
.ll-nav a:hover{ color:var(--ink); border-bottom-color:var(--brass); }

.ll-tools{ display:flex; align-items:center; gap:1.15rem; justify-content:flex-end; }
.ll-tools a{ color:var(--ink-2); display:inline-flex; position:relative; text-decoration:none; }
.ll-tools a:hover{ color:var(--brass); }
.ll-tools svg{ width:19px; height:19px; }
.ll-cartcount{
  position:absolute; top:-6px; right:-9px; min-width:16px; height:16px;
  background:var(--brass); color:var(--paper-lt);
  font-size:.6rem; font-weight:700; line-height:16px; text-align:center;
  border-radius:9px; padding:0 4px;
}
.ll-burger{ display:none; background:none; border:0; padding:.35rem; color:var(--ink); cursor:pointer; }
.ll-burger svg{ width:22px; height:22px; }

/* mobile drawer */
.ll-drawer{
  position:fixed; inset:0; z-index:200; background:var(--paper);
  transform:translateX(-100%); transition:transform .34s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column; padding:1.5rem var(--gutter);
  overflow-y:auto;
}
.ll-drawer.is-open{ transform:none; }
.ll-drawer__top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:2.5rem; }
.ll-drawer__close{ background:none; border:0; color:var(--ink); cursor:pointer; padding:.35rem; }
.ll-drawer__close svg{ width:22px; height:22px; }
.ll-drawer nav{ display:flex; flex-direction:column; gap:.2rem; }
.ll-drawer nav a{
  font-family:var(--serif); font-size:1.65rem; color:var(--ink);
  text-decoration:none; padding:.6rem 0; border-bottom:1px solid var(--rule-soft);
}
.ll-drawer__foot{ margin-top:auto; padding-top:2rem; }

/* ============================================================
   5. Hero
   ============================================================ */
.ll-hero{
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--rule);
  background:
    radial-gradient(80% 60% at 88% 8%, rgba(154,123,69,.10), transparent 62%),
    linear-gradient(180deg,var(--paper-lt) 0%, var(--paper) 68%);
}
.ll-hero__inner{
  width:min(var(--wide),100% - var(--gutter)*2); margin-inline:auto;
  display:grid; grid-template-columns:1.05fr .95fr; align-items:center;
  gap:clamp(2rem,5vw,5rem); padding:clamp(3.5rem,7vw,6.5rem) 0;
}
.ll-hero h1{ margin:0 0 1.4rem; }
.ll-hero h1 em{
  font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1;
  color:var(--brass);
}
.ll-hero__actions{ display:flex; flex-wrap:wrap; gap:1rem 1.6rem; align-items:center; margin-top:2.2rem; }
.ll-hero__art{ position:relative; display:flex; justify-content:center; }
.ll-hero__frame{
  position:relative; width:min(100%,470px); aspect-ratio:1/1.06;
  border:1px solid var(--rule); background:var(--paper-lt);
  display:grid; place-items:center; padding:clamp(1.6rem,3vw,2.6rem);
  box-shadow:var(--shadow);
}
.ll-hero__frame::after{
  content:""; position:absolute; inset:9px; border:1px solid var(--rule-soft); pointer-events:none;
}
.ll-hero__frame .ll-mark{ width:88%; color:var(--ink); }
.ll-hero__cap{
  position:absolute; left:50%; transform:translateX(-50%); bottom:-.85rem;
  background:var(--paper); padding:0 .9rem;
  font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-3);
  white-space:nowrap;
}
.ll-hero__stat{
  display:flex; gap:2.4rem; margin-top:2.6rem; padding-top:1.8rem;
  border-top:1px solid var(--rule);
}
.ll-hero__stat div strong{
  display:block; font-family:var(--serif); font-size:1.5rem; color:var(--ink); font-weight:500;
}
.ll-hero__stat div span{
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3);
}

/* ============================================================
   6. Marquee
   ============================================================ */
.ll-marquee{
  background:var(--ink); color:var(--paper);
  padding:.95rem 0; overflow:hidden; white-space:nowrap;
  border-block:1px solid var(--ink);
}
.ll-marquee__track{ display:inline-flex; gap:2.6rem; animation:ll-slide 42s linear infinite; }
.ll-marquee span{
  font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; opacity:.62;
  display:inline-flex; align-items:center; gap:2.6rem;
}
.ll-marquee span::after{ content:"✦"; color:var(--brass-lt); opacity:.85; font-size:.6rem; }
@keyframes ll-slide{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .ll-marquee__track{ animation:none; } }

/* ============================================================
   7. Sections
   ============================================================ */
.ll-section{ padding:clamp(3.5rem,7vw,6.5rem) 0; }
.ll-section--tight{ padding:clamp(2.5rem,5vw,4.5rem) 0; }
.ll-section--paper{ background:var(--paper-lt); border-block:1px solid var(--rule); }
.ll-section--deep{ background:var(--paper-dk); }
.ll-section--ink{ background:var(--ink); color:rgba(246,242,234,.78); }
.ll-section--ink h2,.ll-section--ink h3{ color:var(--paper); }
.ll-section--ink .ll-kicker{ color:var(--brass-lt); }
.ll-section--ink .ll-rule{ color:rgba(246,242,234,.2); }
.ll-section--ink .ll-rule::before,.ll-section--ink .ll-rule::after{ background:rgba(246,242,234,.2); }

.ll-shead{ text-align:center; margin:0 auto 3rem; max-width:640px; }
.ll-shead h2{ margin:0 0 .9rem; }
.ll-shead p{ color:var(--ink-3); margin:0; }
.ll-section--ink .ll-shead p{ color:rgba(246,242,234,.6); }

/* ============================================================
   8. Product grid — shared by shortcode + block markup
   ============================================================ */
.woocommerce ul.products,
.wc-block-product-template{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(1.25rem,2.4vw,2.1rem) !important;
  list-style:none; margin:0 !important; padding:0 !important;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{ display:none !important; }

.woocommerce ul.products li.product,
.wc-block-product-template > li{
  position:relative; display:flex; flex-direction:column;
  width:auto !important; margin:0 !important; float:none !important;
  background:var(--paper-lt); border:1px solid var(--rule);
  padding:0 0 1.6rem; overflow:hidden;
  transition:border-color .24s ease,transform .24s ease,box-shadow .24s ease;
}
.woocommerce ul.products li.product:hover,
.wc-block-product-template > li:hover{
  border-color:var(--brass); transform:translateY(-4px); box-shadow:var(--shadow);
}

.woocommerce ul.products li.product a img,
.wc-block-product-template > li img{
  width:100%; display:block; aspect-ratio:4/5; object-fit:cover;
  margin:0 0 1.35rem !important; border-bottom:1px solid var(--rule-soft);
}
.wc-block-product-template > li .wp-block-woocommerce-product-image{ margin:0 0 1.35rem; }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-product-template > li .wp-block-post-title{
  font-family:var(--serif) !important; font-weight:500;
  font-size:1.06rem !important; line-height:1.32;
  color:var(--ink); padding:0 1.35rem; margin:0 0 .6rem !important; flex:0 0 auto;
}
.wc-block-product-template > li .wp-block-post-title a{ color:var(--ink); text-decoration:none; }
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.wc-block-product-template > li:hover .wp-block-post-title a{ color:var(--brass); }

.woocommerce ul.products li.product .price,
.wc-block-product-template > li .wc-block-components-product-price{
  display:block; padding:0 1.35rem; color:var(--ink);
  margin-top:auto !important;
  font-family:var(--sans); font-size:.95rem; font-weight:600; letter-spacing:.01em;
}
.woocommerce ul.products li.product .price del,
.wc-block-product-template > li .wc-block-components-product-price del,
.wc-block-product-template > li .wc-block-components-product-price__regular{
  color:var(--ink-3); font-weight:400; opacity:.8; margin-right:.45em; font-size:.9em;
}
.woocommerce ul.products li.product .price ins,
.wc-block-product-template > li .wc-block-components-product-price ins{ text-decoration:none; }

.woocommerce ul.products li.product .button,
.wc-block-product-template > li .wp-block-woocommerce-product-button{
  margin:1.15rem 1.35rem 0; padding-inline:0;
}
.wc-block-components-product-button__button{
  background:var(--ink) !important; color:var(--paper-lt) !important;
  border:1px solid var(--ink) !important; border-radius:0 !important;
  font-family:var(--sans) !important; font-weight:600 !important;
  font-size:.7rem !important; letter-spacing:.14em; text-transform:uppercase;
  padding:.95em 1.4em !important; width:100%;
  transition:background .22s ease,border-color .22s ease;
}
.wc-block-components-product-button__button:hover{
  background:var(--brass) !important; border-color:var(--brass) !important; color:var(--paper-lt) !important;
}

/* sale badge */
.woocommerce span.onsale,
.wc-block-components-product-sale-badge{
  position:absolute !important; z-index:3;
  top:1rem !important; left:1rem !important; right:auto !important;
  width:auto !important; min-width:0 !important; height:auto !important; min-height:0 !important;
  background:var(--ink) !important; color:var(--paper-lt) !important;
  font-family:var(--sans) !important; font-size:.6rem !important; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  border:0 !important; border-radius:0 !important;
  padding:.5em .85em !important; line-height:1 !important; margin:0 !important;
  white-space:nowrap;
}
.wp-block-woocommerce-product-sale-badge{ position:static !important; }

@media (max-width:940px){
  .woocommerce ul.products,.wc-block-product-template{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:540px){
  .woocommerce ul.products,.wc-block-product-template{ grid-template-columns:1fr !important; }
}

/* keep assistive-only text hidden */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ============================================================
   9. Editorial split + principles
   ============================================================ */
.ll-split{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,5rem); align-items:center;
}
.ll-split__art{
  border:1px solid var(--rule); background:var(--paper);
  padding:clamp(2rem,4vw,3.4rem); display:grid; place-items:center; position:relative;
}
.ll-split__art::after{ content:""; position:absolute; inset:10px; border:1px solid var(--rule-soft); }
.ll-split__art .ll-mark{ width:min(100%,300px); }

.ll-principles{ list-style:none; margin:2.2rem 0 0; padding:0; counter-reset:p; }
.ll-principles li{
  counter-increment:p; position:relative;
  padding:1.4rem 0 1.4rem 3.4rem; border-top:1px solid var(--rule);
}
.ll-principles li:last-child{ border-bottom:1px solid var(--rule); }
.ll-principles li::before{
  content:counter(p,decimal-leading-zero);
  position:absolute; left:0; top:1.5rem;
  font-family:var(--sans); font-size:.68rem; font-weight:700;
  letter-spacing:.14em; color:var(--brass);
}
.ll-principles h3{ font-size:1.1rem; margin:0 0 .35rem; }
.ll-principles p{ margin:0; color:var(--ink-3); font-size:.97rem; }

/* ============================================================
   10. Bundle feature
   ============================================================ */
.ll-feature{ position:relative; overflow:hidden; }
.ll-feature__bg{
  position:absolute; right:-6%; top:50%; transform:translateY(-50%);
  width:min(52%,620px); color:var(--paper); opacity:.05; pointer-events:none;
}
.ll-feature__inner{ position:relative; max-width:620px; }
.ll-feature__price{
  display:flex; align-items:baseline; gap:1rem; margin:1.8rem 0 0;
  font-family:var(--serif);
}
.ll-feature__price b{ font-size:2.6rem; font-weight:500; color:var(--paper); }
.ll-feature__price s{ font-size:1.3rem; color:rgba(246,242,234,.42); }
.ll-feature__price em{
  font-style:normal; font-family:var(--sans); font-size:.66rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--brass-lt);
  border:1px solid rgba(185,147,86,.5); padding:.42em .8em;
}

/* ============================================================
   11. Quote
   ============================================================ */
.ll-quote{ text-align:center; max-width:840px; margin-inline:auto; }
.ll-quote blockquote{
  margin:0; font-family:var(--serif);
  font-size:clamp(1.4rem,2.8vw,2.1rem); line-height:1.42; color:var(--ink);
  font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 1;
}
.ll-quote cite{
  display:block; margin-top:1.8rem; font-style:normal;
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
}

/* ============================================================
   12. Newsletter
   ============================================================ */
.ll-news{ text-align:center; max-width:560px; margin-inline:auto; }
.ll-news form{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.8rem; }
.ll-news small{ flex:0 0 100%; }
.ll-news input[type="email"]{
  flex:1; background:var(--paper-lt); border:1px solid var(--rule);
  padding:1.05em 1.1em; font-family:var(--sans); font-size:.92rem; color:var(--ink);
  border-radius:0;
}
.ll-news input[type="email"]:focus{ outline:none; border-color:var(--brass); }
.ll-news small{ display:block; margin-top:1rem; color:var(--ink-3); font-size:.78rem; }

/* ============================================================
   13. Footer
   ============================================================ */
.ll-footer{ background:var(--ink); color:rgba(246,242,234,.62); padding:clamp(3.5rem,6vw,5.5rem) 0 2.5rem; }
.ll-footer__grid{
  display:grid; grid-template-columns:1.5fr repeat(3,1fr);
  gap:clamp(2rem,4vw,3.5rem); padding-bottom:3.5rem;
  border-bottom:1px solid rgba(246,242,234,.14);
}
.ll-footer__brand .ll-mark{ width:min(100%,230px); color:var(--paper); margin-bottom:1.4rem; }
.ll-footer__brand p{ font-size:.9rem; line-height:1.68; max-width:34ch; margin:0; }
.ll-footer h3{
  font-family:var(--sans); font-size:.68rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase;
  color:rgba(246,242,234,.42); margin:0 0 1.2rem;
}
.ll-footer ul{ list-style:none; margin:0; padding:0; }
.ll-footer li{ margin:0 0 .7rem; }
.ll-footer li a{ color:rgba(246,242,234,.8); text-decoration:none; font-size:.92rem; }
.ll-footer li a:hover{ color:var(--brass-lt); }
.ll-footer__base{
  display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
  padding-top:2rem; font-size:.76rem; color:rgba(246,242,234,.42);
}
.ll-footer__base a{ color:rgba(246,242,234,.6); text-decoration:none; }
.ll-footer__base a:hover{ color:var(--brass-lt); }

/* ============================================================
   14. Archive chrome
   ============================================================ */
.ll-pagehead{
  border-bottom:1px solid var(--rule); background:var(--paper-lt);
  padding:clamp(2.8rem,5vw,4.5rem) 0 clamp(2.2rem,4vw,3.2rem); text-align:center;
}
.ll-pagehead h1{ margin:0 0 .8rem; font-size:clamp(2.1rem,4.4vw,3.4rem); }
.ll-pagehead p,.ll-pagehead .term-description{
  color:var(--ink-3); max-width:58ch; margin-inline:auto;
}
.woocommerce-breadcrumb,.wp-block-woocommerce-breadcrumbs{
  font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3);
  margin:0 0 1.4rem;
}
.woocommerce-breadcrumb a,.wp-block-woocommerce-breadcrumbs a{ color:var(--ink-3); }
.woocommerce-breadcrumb a:hover,.wp-block-woocommerce-breadcrumbs a:hover{ color:var(--brass); }

.woocommerce-result-count,.wp-block-woocommerce-product-results-count{
  font-size:.78rem; letter-spacing:.08em; color:var(--ink-3);
}
.woocommerce-ordering select,
.wc-block-product-sort-select select,
.wc-block-components-sort-select__select{
  background:var(--paper-lt); color:var(--ink); border:1px solid var(--rule);
  border-radius:0; padding:.65em 2.2em .65em .9em; font-family:var(--sans); font-size:.82rem;
}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers,
.woocommerce nav.woocommerce-pagination a,.woocommerce nav.woocommerce-pagination span{
  color:var(--ink-3); font-size:.85rem; border:0;
}
.wp-block-query-pagination .current,
.woocommerce nav.woocommerce-pagination span.current{ color:var(--ink); font-weight:600; }

/* ============================================================
   15. Single product
   ============================================================ */
.woocommerce div.product{ padding-top:clamp(2rem,4vw,3.5rem); }
.woocommerce div.product .product_title{ font-size:clamp(1.9rem,3.6vw,2.9rem); margin:.2rem 0 1rem; }
.woocommerce div.product p.price,.woocommerce div.product span.price{
  color:var(--ink); font-family:var(--sans); font-size:1.35rem; font-weight:600;
}
.woocommerce div.product p.price del{ color:var(--ink-3); font-weight:400; font-size:.78em; }
.woocommerce div.product p.price ins{ text-decoration:none; }
.woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--ink-2); font-size:1.06rem; line-height:1.72; max-width:48ch;
  padding-top:1.4rem; margin-top:1.4rem; border-top:1px solid var(--rule);
}
.woocommerce div.product div.images img{ border:1px solid var(--rule); }
.woocommerce div.product form.cart{ margin-top:1.8rem; }
.woocommerce div.product form.cart div.quantity input,
.woocommerce .quantity input.qty,
.woocommerce div.product form.cart .variations select{
  background:var(--paper-lt); color:var(--ink);
  border:1px solid var(--rule); border-radius:0; padding:.85em;
}
.woocommerce div.product form.cart .variations label{
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); font-weight:600;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{ border:0; padding:0; margin:0 0 1.8rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border-color:var(--rule); }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none; border:0; border-bottom:2px solid transparent; border-radius:0;
  margin:0 2rem 0 0; padding:0 0 .7rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--brass); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--ink); }

.ll-instant{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--sans); font-size:.66rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--brass);
  border:1px solid rgba(154,123,69,.42); padding:.6em 1em; margin:1.2rem 0;
  white-space:nowrap;
}
.ll-instant svg{ width:13px; height:13px; flex:none; }

/* related / upsell headings */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2{
  font-size:clamp(1.35rem,2.2vw,1.75rem); margin:0 0 1.8rem;
  padding-top:3rem; border-top:1px solid var(--rule);
}
.woocommerce .related,.woocommerce .upsells{ margin-top:3.5rem; }

/* meta line under add-to-cart */
.woocommerce div.product .product_meta{
  font-size:.78rem; letter-spacing:.04em; color:var(--ink-3);
  padding-top:1.4rem; margin-top:1.6rem; border-top:1px solid var(--rule);
}
.woocommerce div.product .product_meta a{ color:var(--ink-3); }
.woocommerce div.product .product_meta a:hover{ color:var(--brass); }
.ll-assure{ list-style:none; margin:2rem 0 0; padding:1.6rem 0 0; border-top:1px solid var(--rule); }
.ll-assure li{
  display:flex; gap:.75rem; align-items:flex-start;
  font-size:.9rem; color:var(--ink-3); margin:0 0 .7rem;
}
.ll-assure svg{ width:15px; height:15px; color:var(--brass); flex:none; margin-top:.28rem; }

/* ============================================================
   16. Notices, cart, checkout
   ============================================================ */
.woocommerce-message,.woocommerce-info,.woocommerce-error,
.wc-block-components-notice-banner{
  background:var(--paper-lt) !important; color:var(--ink) !important;
  border:1px solid var(--rule) !important; border-top:2px solid var(--brass) !important;
  border-radius:0 !important;
}
.woocommerce-error,.wc-block-components-notice-banner.is-error{ border-top-color:var(--oxblood) !important; }
.woocommerce-message::before,.woocommerce-info::before{ color:var(--brass); }
.wc-block-components-notice-banner > svg{ fill:var(--brass); }
.wc-block-components-notice-banner.is-error > svg{ fill:var(--oxblood); }

.woocommerce table.shop_table,
.wc-block-components-sidebar .wc-block-components-panel,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block{
  background:var(--paper-lt) !important; border:1px solid var(--rule) !important;
  border-radius:0 !important; color:var(--ink-2);
}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{ border-color:var(--rule); }
.woocommerce table.shop_table thead th,
.wc-block-cart-items__header{
  font-family:var(--sans) !important; font-size:.68rem !important; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3) !important;
}
.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__title,
.wp-block-woocommerce-cart-order-summary-heading-block{
  font-family:var(--sans) !important; color:var(--ink) !important;
  text-transform:uppercase; letter-spacing:.14em; font-size:.72rem !important; font-weight:600;
}
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox-control input.components-combobox-control__input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  background:var(--paper-lt) !important; color:var(--ink) !important;
  border:1px solid var(--rule) !important; border-radius:0 !important;
  box-shadow:none !important; padding:.95em !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input.is-active input{
  border-color:var(--brass) !important; outline:none;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label{ color:var(--ink-3) !important; }
.wc-block-components-text-input.is-active label{ color:var(--brass) !important; }
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-product-name{ color:var(--ink) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  color:var(--ink) !important; font-family:var(--sans); font-weight:700;
}
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link){
  background:var(--ink) !important; color:var(--paper-lt) !important;
  border:1px solid var(--ink) !important; border-radius:0 !important;
  font-family:var(--sans) !important; font-weight:600 !important;
  letter-spacing:.14em; text-transform:uppercase; font-size:.74rem !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover{ background:var(--brass) !important; border-color:var(--brass) !important; }
.wc-block-components-button.is-link{ color:var(--brass) !important; }
.wc-block-components-quantity-selector{ background:var(--paper-lt); border:1px solid var(--rule); border-radius:0; }
.wc-block-components-quantity-selector__input,
.wc-block-components-quantity-selector__button{ color:var(--ink) !important; background:transparent !important; }
.wc-block-components-sale-badge{ background:var(--ink) !important; color:var(--paper-lt) !important; border:0 !important; }

/* ============================================================
   17. Interior pages
   ============================================================ */
.ll-main{ padding-bottom:clamp(3rem,6vw,5rem); }
.ll-prose h2{ margin:2.8rem 0 1rem; }
.ll-prose h3{ margin:2.2rem 0 .8rem; }
.ll-prose ul,.ll-prose ol{ padding-left:1.2rem; }
.ll-prose li{ margin:0 0 .6rem; }
.ll-prose hr{ border:0; border-top:1px solid var(--rule); margin:3rem 0; }
.ll-prose blockquote{
  border-left:2px solid var(--brass); margin:2rem 0; padding:0 0 0 1.5rem;
  font-family:var(--serif); font-size:1.2rem; color:var(--ink);
}

/* ============================================================
   18. Responsive
   ============================================================ */
@media (max-width:1024px){
  .ll-hero__inner{ grid-template-columns:1fr; gap:3rem; }
  .ll-hero__art{ order:-1; }
  .ll-hero__frame{ width:min(100%,380px); }
  .ll-split{ grid-template-columns:1fr; }
  .ll-footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .ll-header__inner{ grid-template-columns:auto 1fr auto; }
  .ll-nav--left{ display:none; }
  .ll-nav--right > a{ display:none; }
  .ll-burger{ display:inline-flex; }
  .ll-brand{ width:150px; }
}
@media (max-width:600px){
  .ll-footer__grid{ grid-template-columns:1fr; gap:2.4rem; }
  .ll-hero__stat{ gap:1.6rem; }
  .ll-news form{ flex-direction:column; }
  .ll-quote blockquote{ font-size:1.3rem; }
  .ll-announce{ font-size:.6rem; letter-spacing:.12em; padding:.62rem .9rem; }
  .ll-announce__x{ display:none; }
  .ll-hero__frame{ width:min(100%,270px); padding:1.1rem; }
  .ll-hero__inner{ padding:2.5rem 0 3rem; gap:2.2rem; }
  .ll-hero__cap{ font-size:.56rem; }
  .ll-section{ padding:3rem 0; }
  .ll-hero__actions{ gap:.9rem; }
  .ll-hero__actions .ll-btn{ width:100%; }
  .ll-hero__actions .ll-btn--quiet{ width:auto; }
}
