/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.2
Version: 1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}
/*
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.1.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; }
}

/* ============================================================
   19. Policy links at the buy button
   ============================================================ */
.ll-policy{
  display:flex !important;flex-wrap:wrap;gap:.5rem .85rem;align-items:center;
  margin:1.4rem 0 0 !important;padding-top:1.2rem;border-top:1px solid var(--rule);
  font-size:.82rem;line-height:1.4;
}
.ll-policy a{color:var(--ink-3);text-decoration:none;border-bottom:1px solid var(--rule)}
.ll-policy a:hover{color:var(--brass);border-bottom-color:var(--brass)}
.ll-policy span{color:var(--rule)}

/* ============================================================
   20. Search overlay
   ============================================================ */
.ll-search{
  position:fixed;inset:0;z-index:220;
  background:rgba(22,19,15,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;
  display:grid;place-items:start center;padding:clamp(3rem,12vh,9rem) var(--gutter) 2rem;
}
.ll-search.is-open{opacity:1;visibility:visible}
.ll-search__inner{
  position:relative;width:min(640px,100%);
  background:var(--paper-lt);border:1px solid var(--rule);
  padding:clamp(1.6rem,4vw,2.4rem);box-shadow:var(--shadow);
  transform:translateY(-10px);transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.ll-search.is-open .ll-search__inner{transform:none}
.ll-search form{display:flex;gap:.6rem}
.ll-search input[type="search"]{
  flex:1;background:var(--paper);border:1px solid var(--rule);border-radius:0;
  padding:1em 1.1em;font-family:var(--serif);font-size:1.15rem;color:var(--ink);
  -webkit-appearance:none;appearance:none;
}
.ll-search input[type="search"]:focus{outline:none;border-color:var(--brass)}
.ll-search__hint{margin:1rem 0 0;font-size:.85rem;color:var(--ink-3)}
.ll-search__hint a{color:var(--ink-2)}
.ll-search__close{
  position:absolute;top:.4rem;right:.7rem;background:none;border:0;
  font-size:1.7rem;line-height:1;color:var(--ink-3);cursor:pointer;padding:.3rem;
}
.ll-search__close:hover{color:var(--brass)}