/* =========================================================
   LA LONJA 77 — sistema de diseño editorial premium 2.0
   ========================================================= */

:root{
  --ink:#0d0d0d;
  --ink-soft:#1a1a1a;
  --paper:#ffffff;
  --paper-2:#F4F4F1;
  --accent:#4A7259;        /* verde botella elegante - acento principal */
  --accent-dark:#2C4A38;   /* verde botella oscuro - hover / precios */
  --olive:#5B6B4F;         /* verde oliva secundario */
  --sage:#A8C39A;          /* verde salvia claro - labels/eyebrow sobre fondo oscuro */
  --line: rgba(13,13,13,.14);
  --line-light: rgba(255,255,255,.25);
  --radius: 2px;
  --ff-display:'Fraunces', Georgia, serif;
  --ff-sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --ff-label:'Space Grotesk', 'Inter', sans-serif;
}

/* ---------- fonts ---------- */
html{ scroll-behavior:smooth; }

body{
  background:var(--paper) !important;
  color:var(--ink) !important;
  font-family:var(--ff-sans);
  font-size:16.5px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6,
.entry-title,.page-title,.woocommerce-loop-product__title,.product_title,
.wp-block-heading{
  font-family:var(--ff-display) !important;
  font-weight:600;
  color:var(--ink);
  letter-spacing:-.01em;
  line-height:1.02;
  text-transform:none;
}

.ll-eyebrow, .ll-label{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
  font-weight:500;
  color:var(--accent);
}

a{ color:var(--accent); }
a:hover{ color:var(--accent-dark); }

/* ================= FULL BLEED UTILITY ================= */
/* Solo la home usa secciones a sangre completa (hero, marquee, cita editorial,
   banner split). Estas mismas clases se reutilizan en páginas interiores
   (Tapería, Quiénes somos...) pero ahí deben quedarse dentro de la caja de
   contenido de 1290px de Kadence, no romper el viewport. */
body.home .ll-marquee,
body.home .ll-hero,
body.home .ll-editorial,
body.home .ll-split{
  width:100vw;
  position:relative;
  left:50%; right:50%;
  margin-left:-50vw; margin-right:-50vw;
}
body{ overflow-x:hidden; }

/* hide default Kadence page-hero banner on the front page only (we build our own hero) */
body.home .entry-hero.page-hero-section{ display:none !important; }
body.home .entry-content{ margin-top:0 !important; padding-top:0 !important; }
body.home .site-main,body.home .content-area,body.home main#inner-wrap{ padding-top:0 !important; }
body.home #primary,body.home .content-container{ margin-top:0 !important; padding-top:0 !important; }
body.home .content-wrap,body.home .entry-content-wrap,body.home article.entry{ margin-top:0 !important; padding-top:0 !important; }
.woocommerce-notices-wrapper:empty{ display:none !important; margin:0 !important; padding:0 !important; border:none !important; }

/* interior pages + shop/product archive/single title bars: restyle to match the new system */
.entry-hero.page-hero-section,
.entry-hero.product-archive-hero-section,
.entry-hero.single-product-hero-section{
  background:var(--ink) !important;
}
.entry-hero.page-hero-section .entry-title,
.entry-hero.product-archive-hero-section .entry-title,
.entry-hero.product-archive-hero-section .page-title,
.entry-hero.single-product-hero-section .entry-title{
  font-family:var(--ff-display) !important;
  color:var(--paper) !important;
  font-size:clamp(2.2rem,5vw,3.6rem) !important;
  text-transform:none;
}
.entry-hero.page-hero-section .hero-container,
.entry-hero.product-archive-hero-section .hero-container,
.entry-hero.single-product-hero-section .hero-container,
.entry-hero.page-hero-section .entry-hero-container-inner,
.entry-hero.product-archive-hero-section .entry-hero-container-inner,
.entry-hero.single-product-hero-section .entry-hero-container-inner{ background:transparent !important; }
.entry-hero.product-archive-hero-section nav.woocommerce-breadcrumb,
.entry-hero.page-hero-section .breadcrumbs,
.entry-hero.product-archive-hero-section .breadcrumbs{
  color:var(--paper) !important;
  opacity:.6;
}
.entry-hero.product-archive-hero-section nav.woocommerce-breadcrumb a,
.entry-hero.page-hero-section .breadcrumbs a,
.entry-hero.product-archive-hero-section .breadcrumbs a{
  color:var(--paper) !important;
}

/* ================= HEADER ================= */
/* show the real brand mark (uploaded logo) instead of a text-only wordmark */
.site-header .site-title-wrap{ margin:0 !important; display:none; }
.site-header .brand{ display:flex; align-items:center; }
.site-header .custom-logo,
.site-header img.custom-logo{
  display:block !important;
  height:56px;
  width:auto;
  max-width:none !important;
}

.site-header,header.site-header,#masthead{
  background:var(--paper) !important;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:50;
}
.site-header *{ color:var(--ink); }
.site-header a{ color:var(--ink) !important; }

.site-title,.site-branding .site-title a,
.site-header .site-title a,
.site-header p.site-title,
.site-header .brand .site-title{
  font-family:var(--ff-display) !important;
  font-weight:700 !important;
  font-size:1.9rem !important;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--ink) !important;
  margin:0 !important;
}
.site-header .brand:hover .site-title{ color:var(--accent) !important; }

.main-navigation a,.site-header .kadence-menu-container a,
nav[aria-label] a{
  font-family:var(--ff-label) !important;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem !important;
  font-weight:500;
  position:relative;
  padding-bottom:2px;
}
.main-navigation a::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  width:0; height:1px;
  background:var(--accent);
  transition:width .28s ease;
}
.main-navigation a:hover::after,
.main-navigation a:hover{ color:var(--accent) !important; }
.main-navigation a:hover::after{ width:100%; }


/* ================= FOOTER ================= */
.site-footer,footer.site-footer,#colophon{
  background:var(--ink) !important;
  color:var(--paper) !important;
  position:relative;
  overflow:hidden;
  padding-top:64px !important;
}
.site-footer *{ color:var(--paper); }
.site-footer a{ color:var(--paper); opacity:.82; }
.site-footer a:hover{ color:var(--sage); opacity:1; }
.site-footer h2,.site-footer h3,.site-footer h4{ color:var(--sage) !important; }

.footer-html-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem 2rem;
  padding-top:2.4rem;
  border-top:1px solid var(--line-light);
  margin-top:1rem;
  position:relative;
  z-index:1;
}
.ll-footer-legal{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.6rem;
}
.ll-footer-legal a{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.68rem;
  opacity:.7;
}
.ll-footer-legal a:hover{ opacity:1; }

.site-footer::before{
  content:"LA LONJA 77";
  position:absolute;
  left:-4%; bottom:-6%;
  font-family:var(--ff-display);
  font-weight:700;
  font-size:min(16vw,220px);
  color:rgba(255,255,255,.045);
  white-space:nowrap;
  pointer-events:none;
  line-height:1;
  letter-spacing:-.02em;
}

/* ================= BOXED CONTENT LAYOUT =================
   La página va a ancho completo (header, hero, footer siguen de borde a
   borde). Lo que se "encaja" en una caja centrada es el CONTENIDO: Kadence ya
   trae de serie el wrapper `.content-container.site-container` a max-width
   1290px — nos apoyamos en ese wrapper nativo en vez de meter todo el sitio
   dentro de una tarjeta con sombra sobre fondo gris (eso no encajaba bien).
   Las secciones editoriales a sangre completa (ll-editorial, ll-split,
   ll-pillars-section, ll-cta-dark, ll-contact-section) dejan de romper el
   viewport y pasan a vivir dentro de esa misma caja de 1290px, tanto en
   Tapería/Quiénes somos como en cualquier página que las use — así todo el
   sitio comparte un único ancho de contenido consistente. */
body{ background:var(--paper); }

/* ================= LINKS / BUTTONS ================= */
.button,button,input[type="submit"],
.wp-block-button__link,.kt-button,
.woocommerce a.button,.woocommerce button.button,
.single_add_to_cart_button,.checkout-button{
  background:var(--ink) !important;
  color:var(--paper) !important;
  border:1px solid var(--ink) !important;
  border-radius:var(--radius);
  font-family:var(--ff-label) !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78rem !important;
  font-weight:500;
  padding:.9em 1.7em !important;
  transition:transform .22s ease, background .22s ease, color .22s ease;
}
.button:hover,button:hover,input[type="submit"]:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,
.single_add_to_cart_button:hover{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
  transform:translateY(-2px);
}
.is-style-outline .wp-block-button__link{
  background:transparent !important;
  color:var(--ink) !important;
}
.is-style-outline .wp-block-button__link:hover{
  background:var(--ink) !important;
  color:var(--paper) !important;
}

/* ================= WOOCOMMERCE PRODUCT GRID ================= */
.woocommerce ul.products{ gap:2.2rem 1.6rem; }
.woocommerce ul.products li.product{
  background:transparent;
  padding:0 !important;
  border:none !important;
  border-radius:0;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
  display:flex !important;
  flex-direction:column;
  height:100%;
}
.woocommerce ul.products li.product a img{
  border-radius:var(--radius);
  transition:transform .6s cubic-bezier(.2,.7,.2,1), filter .4s ease;
  aspect-ratio:1/1.05;
  object-fit:cover;
}
.woocommerce ul.products li.product:hover a img{
  transform:scale(1.045);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:1.05rem !important;
  margin-top:.9em !important;
  font-weight:600;
}

/* Kadence's "show button on hover" pattern absolutely-positions the add-to-cart
   button and sizes its wrapper to the theme's default (smaller) button, which
   overflows/misaligns once our custom padding makes the button taller. We turn
   it into a normal, always-visible, in-flow element instead so every card in a
   row lines its button up at the same baseline regardless of title length. */
.woocommerce ul.products li.product .product-details{
  display:flex !important;
  flex-direction:column;
  flex:1;
}
.woocommerce ul.products li.product .product-action-wrap{
  position:static !important;
  inset:auto !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  pointer-events:auto !important;
  height:auto !important;
  width:auto !important;
  margin-top:auto;
  padding-top:1rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price{
  flex:none;
}
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.button{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  box-sizing:border-box;
  white-space:normal;
  line-height:1.3;
}
/* hide the redundant state icons Kadence swaps in during the AJAX add-to-cart
   sequence (Continuar/Cargando/Hecho) so only the button label shows */
.woocommerce ul.products li.product a.add_to_cart_button .kadence-svg-iconset{
  display:none;
}
.woocommerce span.onsale{
  background:var(--accent) !important;
  color:#fff !important;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.68rem;
  border-radius:0 !important;
  right:0; left:auto;
  min-height:auto;
  padding:.35em .7em;
}
.woocommerce .price,.price ins{
  color:var(--accent-dark);
  font-family:var(--ff-sans);
  font-weight:600;
}
.woocommerce ul.products li.product .price{ font-size:.98rem; }

/* Shop / archive header */
.woocommerce-products-header,.page-title-bar,.entry-header{
  border-bottom:1px solid var(--line);
}
.woocommerce-products-header__title,
.woocommerce nav.woocommerce-breadcrumb{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.1em;
}

/* ================= SINGLE PRODUCT ================= */
.woocommerce div.product .product_title{
  font-size:clamp(2rem,4vw,2.8rem) !important;
  margin-bottom:.4em;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-size:1.4rem;
  color:var(--accent-dark);
}
.woocommerce div.product .woocommerce-product-gallery{
  border-radius:var(--radius);
  overflow:hidden;
}
.woocommerce div.product .woocommerce-product-gallery img{
  border-radius:var(--radius);
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs{
  margin-top:14px;
  display:flex;
  gap:10px;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li{
  width:70px;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img{
  border-radius:var(--radius);
  opacity:.55;
  transition:opacity .25s ease;
  border:1px solid var(--line);
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img:hover{
  opacity:1;
  border-color:var(--accent);
}
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger{
  background:var(--ink) !important;
  border-radius:50% !important;
  width:36px !important; height:36px !important;
  opacity:.8;
  top:16px !important; right:16px !important;
}
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover{ opacity:1; }

/* quantity stepper (classic single-product + cart) */
.quantity{ position:relative; display:inline-block; vertical-align:middle; }
.quantity .qty,
input.qty{
  width:74px !important;
  height:48px !important;
  box-sizing:border-box !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius);
  background:var(--paper);
  font-family:var(--ff-sans);
  font-size:.95rem;
  text-align:center;
  color:var(--ink);
  vertical-align:middle;
}
.quantity .qty:focus,
input.qty:focus{
  outline:none;
  border-color:var(--accent) !important;
}

/* align qty stepper + add-to-cart button on the same row/baseline (single product) */
.woocommerce div.product form.cart{
  display:flex !important;
  align-items:center;
  flex-wrap:wrap;
  gap:.9rem;
}
.woocommerce div.product form.cart .quantity{ margin:0 !important; }
.woocommerce div.product form.cart .single_add_to_cart_button{
  height:48px !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin:0 !important;
}

/* product summary block (short meta: sku / category) */
.woocommerce div.product .product_meta{
  margin-top:2rem;
  padding-top:1.4rem;
  border-top:1px solid var(--line);
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  opacity:.75;
}
.woocommerce div.product .product_meta a{ opacity:1; }

/* product tabs (Descripción / Valoraciones) */
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex;
  gap:2.4rem;
  border-bottom:1px solid var(--line);
  margin:0 0 2.4rem;
  padding:0;
  list-style:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  margin:0;
  padding:0 0 1rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.78rem;
  font-weight:600;
  color:var(--ink);
  opacity:.5;
  text-decoration:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ opacity:1; color:var(--accent-dark); }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ position:relative; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-1px;
  height:2px; background:var(--accent);
}
.woocommerce div.product .woocommerce-Tabs-panel h2{ display:none; } /* redundant "Descripción" repeated as h2 inside panel */

/* related products rail */
.woocommerce div.product .related.products{
  margin-top:5rem;
  padding-top:3rem;
  border-top:1px solid var(--line);
}
.woocommerce div.product .related.products > h2{
  font-size:clamp(1.7rem,3vw,2.3rem);
  margin-bottom:1.6rem;
}

/* ================= NOTICES / ALERTS (classic + blocks) ================= */
.woocommerce-message,.woocommerce-info,.woocommerce-error,
.woocommerce-noreviews, p.no-comments{
  background:var(--paper-2) !important;
  border:1px solid var(--line) !important;
  border-left:3px solid var(--accent) !important;
  color:var(--ink) !important;
  border-radius:var(--radius);
  font-family:var(--ff-sans);
  padding:1.1em 1.4em !important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.8em;
}
.woocommerce-message::before,.woocommerce-info::before{ display:none !important; }
.woocommerce-error{ border-left-color:#8a2c20 !important; }
.woocommerce-message .button,.woocommerce-info .button{ margin:0 !important; }

.wc-block-components-notice-banner{
  border-radius:var(--radius) !important;
  border:1px solid var(--line) !important;
  background:var(--paper-2) !important;
  font-family:var(--ff-sans) !important;
}
.wc-block-components-notice-banner.is-error{
  border-color:rgba(138,44,32,.35) !important;
  background:rgba(138,44,32,.06) !important;
}
.wc-block-components-notice-banner.is-success{
  border-color:rgba(74,114,89,.35) !important;
  background:rgba(74,114,89,.08) !important;
}
.wc-block-components-notice-banner .wc-block-components-notice-banner__title{
  font-family:var(--ff-label) !important;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.82rem !important;
}

/* ================= WOOCOMMERCE BLOCKS — CART ================= */
.wp-block-woocommerce-cart{
  font-family:var(--ff-sans);
  padding:0 clamp(20px,4vw,60px) 6rem;
  max-width:1280px;
  margin-left:auto; margin-right:auto;
}
.wc-block-cart__main{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(20px,3vw,40px) !important;
}
.wc-block-cart-items{ width:100%; }
.wc-block-cart-items__header{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
  opacity:.6;
  border-bottom:1px solid var(--line);
}
.wc-block-cart-items__header-image,.wc-block-cart-items__header-product{ padding-bottom:1rem !important; }
.wc-block-cart-items__row{
  border-bottom:1px solid var(--line);
  padding-top:1.6rem !important;
  padding-bottom:1.6rem !important;
}
.wc-block-cart-item__image img{
  border-radius:var(--radius);
}
.wc-block-cart-item__product-name{
  font-family:var(--ff-display) !important;
  font-weight:600;
  font-size:1.05rem !important;
  color:var(--ink) !important;
  text-decoration:none;
}
.wc-block-components-product-price .wc-block-components-formatted-money-amount,
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-formatted-money-amount{
  color:var(--accent-dark);
  font-weight:600;
}
.wc-block-components-quantity-selector{
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  overflow:hidden;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{
  background:var(--paper-2) !important;
  color:var(--ink) !important;
  font-family:var(--ff-sans);
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input{
  font-family:var(--ff-sans) !important;
  color:var(--ink) !important;
}
.wc-block-cart-item__remove-link{
  font-family:var(--ff-label) !important;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.68rem !important;
  color:var(--ink) !important;
  opacity:.55;
}
.wc-block-cart-item__remove-link:hover{ opacity:1; color:var(--accent-dark) !important; }

.wc-block-cart__totals,
.wp-block-woocommerce-cart-order-summary-block,
.wc-block-components-sidebar{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(20px,3vw,32px) !important;
}
.wc-block-cart__totals-title,
.wp-block-woocommerce-cart-order-summary-block > .wc-block-components-panel > .wc-block-components-panel__button,
.wc-block-components-totals-wrapper ~ h2{
  font-family:var(--ff-display) !important;
  font-size:1.3rem !important;
  margin-bottom:1.2rem !important;
}
.wc-block-components-totals-item__label{ font-family:var(--ff-sans); opacity:.75; }
.wc-block-components-totals-item .wc-block-components-formatted-money-amount{
  font-weight:600;
  color:var(--ink);
}
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:var(--ff-display) !important;
  font-size:1.25rem !important;
  font-weight:600;
  color:var(--ink) !important;
}
.wc-block-components-totals-item{ border-color:var(--line) !important; }

/* primary CTA buttons inside blocks (proceed to checkout, place order, apply coupon) */
.wc-block-components-button.wp-element-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  background:var(--ink) !important;
  color:var(--paper) !important;
  border:1px solid var(--ink) !important;
  border-radius:var(--radius) !important;
  font-family:var(--ff-label) !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem !important;
  font-weight:500;
  padding:1em 1.7em !important;
  transition:transform .22s ease, background .22s ease, color .22s ease;
}
.wc-block-components-button.wp-element-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
  transform:translateY(-2px);
}
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  width:100%;
  text-align:center;
  justify-content:center;
}
/* outline-style secondary buttons (coupon apply, etc.) keep contained but slightly smaller */
.wc-block-components-totals-coupon__button{
  background:transparent !important;
  color:var(--ink) !important;
  border:1px solid var(--ink) !important;
}
.wc-block-components-totals-coupon__button:hover{
  background:var(--ink) !important;
  color:var(--paper) !important;
}

/* empty cart state */
.wp-block-woocommerce-filled-cart-block ~ .wp-block-woocommerce-empty-cart-block,
.wc-block-cart__empty-cart__title{
  font-family:var(--ff-display) !important;
}
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before{
  filter:none;
  opacity:.25;
}

/* ================= WOOCOMMERCE BLOCKS — CHECKOUT ================= */
.wp-block-woocommerce-checkout{
  font-family:var(--ff-sans);
  padding:0 clamp(20px,4vw,60px) 6rem;
  max-width:1280px;
  margin-left:auto; margin-right:auto;
}
.wc-block-checkout__form fieldset{
  border:none; padding:0; margin:0 0 2.6rem;
}
.wc-block-checkout__form h2,
.wc-block-components-checkout-step__title{
  font-family:var(--ff-display) !important;
  font-size:1.4rem !important;
  margin-bottom:1.2rem !important;
}
.wc-block-components-checkout-step{
  border-bottom:1px solid var(--line);
  padding-bottom:2.2rem;
  margin-bottom:2.2rem;
}
.wc-block-components-checkout-step__heading{ margin-bottom:1rem; }
.wc-block-components-checkout-step__description{ opacity:.65; font-size:.9rem; }

.wc-block-components-text-input input,
.wc-block-components-select-input select,
.wc-block-components-combobox input,
.wc-block-components-textarea textarea{
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  background:#fff !important;
  font-family:var(--ff-sans) !important;
  color:var(--ink) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select-input select:focus,
.wc-block-components-combobox input:focus,
.wc-block-components-textarea textarea:focus{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 1px var(--accent) !important;
}
.wc-block-components-text-input label,
.wc-block-components-select-input label{
  font-family:var(--ff-sans) !important;
  color:var(--ink) !important;
  opacity:.55;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-select-input.is-active label{ opacity:.85; }

.wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-totals-block{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(20px,3vw,32px) !important;
}
.wc-block-components-order-summary__title-text,
.wc-block-components-checkout-order-summary__title-text{
  font-family:var(--ff-display) !important;
  font-size:1.3rem !important;
}
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-product-name{
  font-family:var(--ff-sans);
}

/* order summary line item (cart sidebar + checkout sidebar): the block markup
   stacks product name, a redundant unit price and a short-description excerpt
   on top of each other with no visual hierarchy — clean that up to just
   "thumbnail — name — total", the standard order-summary pattern. */
.wc-block-components-order-summary-item{
  display:flex !important;
  align-items:center;
  gap:.8rem;
  padding-top:1rem !important;
  padding-bottom:1rem !important;
}
.wc-block-components-order-summary-item__image{
  flex:none;
  width:44px !important;
}
.wc-block-components-order-summary-item__image img{
  width:44px !important;
  height:44px !important;
  object-fit:cover;
  border-radius:var(--radius);
}
.wc-block-components-order-summary-item__description{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name{
  font-family:var(--ff-sans) !important;
  font-size:.86rem !important;
  font-weight:600;
  color:var(--ink) !important;
  display:block;
  line-height:1.3;
}
/* the per-unit price line and the short-description excerpt are redundant
   clutter next to the line total in a compact summary — hide both. */
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-product-metadata__description{
  display:none !important;
}
.wc-block-components-order-summary-item__total-price{
  flex:none;
  margin-left:auto;
  font-family:var(--ff-sans) !important;
  font-size:.86rem !important;
  font-weight:600;
  color:var(--ink) !important;
  white-space:nowrap;
}

.wc-block-checkout__terms{
  font-size:.85rem;
  opacity:.75;
  margin:1.4rem 0;
}
.wc-block-components-radio-control__option{
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  padding:1em !important;
  margin-bottom:.6rem !important;
}
.wc-block-components-radio-control__option.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control input:checked + label{
  border-color:var(--accent) !important;
}
.wc-block-components-radio-control__input:checked{
  border-color:var(--accent) !important;
}
.wc-block-components-radio-control__input:checked::before{
  background:var(--accent) !important;
}

/* ================= MI CUENTA (classic account pages) ================= */
.woocommerce-account .woocommerce-MyAccount-navigation{
  border-right:1px solid var(--line);
  padding-right:1.6rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li{
  border:none !important;
  margin-bottom:.2rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.76rem;
  font-weight:600;
  color:var(--ink);
  opacity:.55;
  padding:.55em 0;
  border-left:2px solid transparent;
  padding-left:1em;
  text-decoration:none;
  transition:opacity .2s ease, border-color .2s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{ opacity:.85; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active,
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active{
  border-left-color:var(--accent) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a{
  opacity:1 !important;
  color:var(--accent-dark) !important;
  border-left-color:var(--accent) !important;
}
.woocommerce-account .woocommerce-MyAccount-content{ font-family:var(--ff-sans); }
.woocommerce-account .woocommerce-MyAccount-content mark{
  background:none;
  color:var(--accent-dark);
  font-weight:600;
}
.woocommerce-account .addresses .title h3{ font-family:var(--ff-display) !important; }
.woocommerce-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table{
  border:1px solid var(--line);
  border-collapse:collapse;
  width:100%;
}
.woocommerce-account table.woocommerce-orders-table th,
.woocommerce-account table.shop_table th{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.7rem;
  text-align:left;
  border-bottom:1px solid var(--line);
  padding:.9em 1em;
  opacity:.65;
}
.woocommerce-account table.woocommerce-orders-table td,
.woocommerce-account table.shop_table td{
  padding:.9em 1em;
  border-bottom:1px solid var(--line);
}
.woocommerce-account table .order-status.status-completed,
.woocommerce-account table .order-status.status-processing{
  color:var(--accent-dark);
  font-weight:600;
}
.woocommerce-account form .form-row input.input-text,
.woocommerce-account form .form-row select,
.woocommerce-account form .form-row textarea{
  border:1px solid var(--line);
  border-radius:var(--radius);
  font-family:var(--ff-sans);
  padding:.8em 1em;
  background:#fff;
}
.woocommerce-account form .form-row input.input-text:focus,
.woocommerce-account form .form-row select:focus{
  outline:none;
  border-color:var(--accent);
}
.woocommerce-account form .form-row label{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.72rem;
  opacity:.65;
}
.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button{ margin-top:.6rem; }

.woocommerce-form-login,.woocommerce-form-register{
  max-width:460px;
  padding:clamp(24px,3vw,40px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
}
.woocommerce-account .u-columns{ gap:2.4rem; }
.woocommerce-account .u-columns .woocommerce-Button{ margin-top:1rem; }

/* ================= ORDER RECEIVED / THANK YOU ================= */
.woocommerce-order-received .entry-hero .entry-title{ display:none; } /* avoid duplicating "Finalizar compra" title */
.woocommerce-order{
  max-width:820px;
  margin:0 auto;
}
.woocommerce-order .woocommerce-notice,
.woocommerce-order > p.woocommerce-thankyou-order-received{
  font-family:var(--ff-display) !important;
  font-size:clamp(1.5rem,3vw,2.2rem) !important;
  color:var(--ink) !important;
  background:none !important;
  border:none !important;
  padding:0 0 1.6rem !important;
  display:block !important;
  line-height:1.15;
}
.woocommerce-order .woocommerce-order-overview{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 2.6rem;
  padding:1.6rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.woocommerce-order .woocommerce-order-overview li{
  flex:1 1 25%;
  padding:0 1.4rem;
  border-right:1px solid var(--line);
  font-family:var(--ff-sans);
}
.woocommerce-order .woocommerce-order-overview li:first-child{ padding-left:0; }
.woocommerce-order .woocommerce-order-overview li:last-child{ border-right:none; }
.woocommerce-order .woocommerce-order-overview li strong{
  display:block;
  font-family:var(--ff-display);
  font-size:1.2rem;
  margin-top:.2rem;
}
.woocommerce-order table.woocommerce-table{
  border:1px solid var(--line);
  border-collapse:collapse;
  width:100%;
}
.woocommerce-order table.woocommerce-table th{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.7rem;
  opacity:.65;
  border-bottom:1px solid var(--line);
  padding:.9em 1em;
  text-align:left;
}
.woocommerce-order table.woocommerce-table td{
  padding:.9em 1em;
  border-bottom:1px solid var(--line);
}
.woocommerce-order table.woocommerce-table tfoot td,
.woocommerce-order table.woocommerce-table tfoot th{ font-weight:600; }
.woocommerce-order h2{ margin-top:2.4rem; }

/* ================= 404 ================= */
.error404 .page-content,
.error-404 .page-content{
  max-width:640px;
  margin:0 auto;
  text-align:center;
  padding:5rem clamp(20px,4vw,40px) !important;
}
.error404 .page-title,
.error-404 .page-title{
  font-size:clamp(2.4rem,6vw,4rem) !important;
  margin-bottom:.4em;
}
.error404 .page-content p,
.error-404 .page-content p{
  opacity:.75;
  margin-bottom:1.8rem;
}
.error404 .search-form,
.error-404 .search-form{
  display:flex;
  max-width:420px;
  margin:0 auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.error404 .search-form .search-field,
.error-404 .search-form .search-field{
  flex:1;
  border:none;
  padding:1em 1.2em;
  font-family:var(--ff-sans);
  background:#fff;
}
.error404 .search-form .search-field:focus,
.error-404 .search-form .search-field:focus{ outline:none; }
.error404 .search-form .search-submit,
.error-404 .search-form .search-submit{
  border-radius:0 !important;
  border:none !important;
  padding:0 1.8em !important;
  white-space:nowrap;
  flex:none;
  width:auto !important;
  min-width:max-content;
  font-size:.72rem !important;
  letter-spacing:.1em;
}
.error404 .page-content::before,
.error-404 .page-content::before{
  content:"404";
  display:block;
  font-family:var(--ff-display);
  font-weight:700;
  font-size:clamp(4rem,12vw,7rem);
  color:var(--accent);
  opacity:.18;
  line-height:1;
  margin-bottom:.1em;
}

/* ================= GENERIC PAGE CONTENT ================= */
.entry-content p{ max-width:72ch; }
.entry-content h2{ margin-top:2.2em; }

/* ================= UTILITY / EDITORIAL COMPONENTS ================= */

/* marquee ticker */
.ll-marquee{
  background:var(--accent);
  color:#fff;
  overflow:hidden;
  white-space:nowrap;
  padding:10px 0;
  position:relative;
  z-index:60;
}
.ll-marquee__track{
  display:inline-flex;
  gap:3.5rem;
  animation:ll-marquee 26s linear infinite;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.78rem;
  font-weight:600;
}
.ll-marquee__track span{ opacity:.95; }
@keyframes ll-marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* hero */
.ll-hero{
  position:relative;
  min-height:78vh;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  grid-template-rows:78vh;
  align-items:stretch;
  background:var(--ink);
  color:var(--paper);
  overflow:hidden;
}
.ll-hero__text{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:60px 5vw 70px clamp(24px,6vw,90px);
  position:relative;
  z-index:2;
}
.ll-hero__eyebrow{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.3em;
  font-size:.72rem;
  color:var(--sage);
  margin-bottom:1.6em;
}
.ll-hero__title{
  font-family:var(--ff-display);
  font-weight:600;
  font-size:clamp(3.2rem,8vw,6.4rem);
  line-height:.94;
  letter-spacing:-.02em;
  margin:0 0 .4em;
  color:var(--paper);
}
.ll-hero__title em{
  font-style:italic;
  color:var(--accent);
}
.ll-hero__sub{
  font-size:1.05rem;
  max-width:38ch;
  color:rgba(255,255,255,.78);
  margin-bottom:2.2em;
}
.ll-hero__img{
  position:relative;
  overflow:hidden;
}
.ll-hero__img img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.02);
}
.ll-hero__img::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,13,13,0) 40%, rgba(13,13,13,.55) 100%);
}
@media (max-width:900px){
  .ll-hero{ grid-template-columns:1fr; grid-template-rows:auto; min-height:auto; }
  .ll-hero__text{ padding:150px 6vw 50px; order:2; }
  .ll-hero__img{ height:52vh; order:1; }
}

/* stat strip */
.ll-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.ll-stats__item{
  padding:2.4rem 1.2rem;
  text-align:center;
  border-right:1px solid var(--line);
}
.ll-stats__item:last-child{ border-right:none; }
.ll-stats__num{
  font-family:var(--ff-display);
  font-size:clamp(2rem,3.4vw,2.8rem);
  color:var(--accent);
  display:block;
  line-height:1;
}
.ll-stats__label{
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.68rem;
  color:var(--ink);
  opacity:.65;
  margin-top:.6em;
  display:block;
}
@media (max-width:700px){
  .ll-stats{ grid-template-columns:repeat(2,1fr); }
  .ll-stats__item:nth-child(2){ border-right:none; }
}

/* bento category grid */
.ll-bento{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:280px 280px;
  gap:14px;
  padding:0 clamp(20px,5vw,70px);
}
.ll-bento__tile{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  display:flex;
  align-items:flex-end;
  color:#fff;
  grid-column:span 1;
  grid-row:span 1;
  text-decoration:none !important;
}
.ll-bento__tile.is-lg{ grid-column:span 2; grid-row:span 2; }
.ll-bento__tile img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.ll-bento__tile::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,13,13,0) 35%, rgba(13,13,13,.78) 100%);
  z-index:1;
  transition:background .3s ease;
}
.ll-bento__tile:hover img{ transform:scale(1.08); }
.ll-bento__label{
  position:relative; z-index:2;
  padding:1.4rem 1.5rem;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.ll-bento__label h3{
  font-family:var(--ff-display);
  color:#fff !important;
  font-size:clamp(1.15rem,1.8vw,1.8rem);
  margin:0;
  text-decoration:none;
  white-space:nowrap;
}
.ll-bento__tile.is-lg .ll-bento__label h3{ font-size:clamp(1.5rem,2.6vw,2.3rem); }
.ll-bento__arrow{
  width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;
  transform:rotate(-45deg);
  transition:transform .3s ease, background .3s ease;
  flex:none;
}
.ll-bento__tile:hover .ll-bento__arrow{ background:var(--accent); border-color:var(--accent); transform:rotate(0deg); }
@media (max-width:820px){
  .ll-bento{ grid-template-columns:repeat(2,1fr); grid-template-rows:auto; }
  .ll-bento__tile{ height:220px; }
  .ll-bento__tile.is-lg{ grid-column:span 2; grid-row:span 1; height:260px; }
}

/* editorial dark quote section */
.ll-editorial{
  background:var(--ink);
  color:var(--paper);
  padding:7rem clamp(20px,6vw,90px);
  position:relative;
}
.ll-editorial__quote{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(1.7rem,3.6vw,3rem);
  line-height:1.2;
  max-width:20ch;
  color:var(--paper);
}
.ll-editorial__quote .accent{ color:var(--accent); font-style:normal; }
.ll-editorial__meta{
  margin-top:2.2rem;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.72rem;
  color:var(--sage);
}

/* product rail heading row */
.ll-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:0 clamp(20px,5vw,70px);
  margin-bottom:2rem;
  flex-wrap:wrap;
  gap:1rem;
}
.ll-section-head h2{
  font-size:clamp(2rem,4vw,3.2rem);
  margin:0;
}

/* full-bleed split banner (tapería) */
.ll-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:70vh;
}
.ll-split__img{ position:relative; overflow:hidden; }
.ll-split__img img{ width:100%;height:100%;object-fit:cover; }
.ll-split__text{
  background:var(--paper-2);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(30px,5vw,80px);
}
.ll-split__text h2{ font-size:clamp(2.2rem,4vw,3.4rem); }
@media (max-width:820px){
  .ll-split{ grid-template-columns:1fr; }
  .ll-split__img{ height:44vh; }
}

/* scroll reveal (JS toggled, safe default = visible) */
[data-reveal].pre-reveal{
  opacity:0;
  transform:translateY(28px);
}
[data-reveal]{
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
[data-reveal].revealed{
  opacity:1 !important;
  transform:translateY(0) !important;
}

/* =========================================================
   INTERIOR PAGES — pillars / cta-dark / contact / legal
   (Tapería, Quiénes somos, Aviso Legal, Privacidad, Cookies, Condiciones)
   ========================================================= */

/* .ll-pillars-section, .ll-cta-dark y .ll-contact-section ya NO rompen el
   viewport: se quedan dentro de la caja de contenido de 1290px (ver la nueva
   sección "BOXED CONTENT LAYOUT" más arriba), ocupando el 100% del ancho del
   contenido en vez de sangrar hasta el borde de la pantalla. */

/* reversed split (image swaps to the right on desktop) */
.ll-split--reversed .ll-split__img{ order:2; }
.ll-split--reversed .ll-split__text{ order:1; }
@media (max-width:820px){
  .ll-split--reversed .ll-split__img,
  .ll-split--reversed .ll-split__text{ order:initial; }
}

/* reusable buttons (dark-bg + light-bg variants) */
.ll-btn-accent,.ll-btn-outline{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  font-weight:600;
  padding:1em 2.2em;
  border-radius:var(--radius);
  text-decoration:none !important;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  white-space:nowrap;
}
.ll-btn-accent{ background:var(--accent); color:#fff !important; border:1px solid var(--accent); }
.ll-btn-accent:hover{ background:var(--accent-dark); border-color:var(--accent-dark); }
.ll-btn-outline{ background:transparent; color:var(--paper) !important; border:1px solid var(--line-light); }
.ll-btn-outline:hover{ background:var(--paper); color:var(--ink) !important; border-color:var(--paper); }

/* reusable inline text link with arrow */
.ll-link-arrow{
  display:inline-block;
  font-family:var(--ff-label);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.74rem;
  font-weight:600;
  color:var(--accent) !important;
  text-decoration:none !important;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, opacity .3s ease;
}
.ll-link-arrow:hover{ border-color:currentColor; opacity:.8; }

/* three-column feature grid (Quiénes somos — "nuestras líneas de producto") */
.ll-pillars-section{ background:var(--paper); padding:7rem clamp(20px,6vw,90px); }
.ll-pillars-inner{ max-width:1280px; margin:0 auto !important; }
.ll-pillars-head{ max-width:46ch; }
.ll-pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,48px); }
.ll-pillar{ padding-top:1.6rem; border-top:1px solid var(--line); }
.ll-pillar__accent{ width:34px; height:3px; background:var(--accent); margin-bottom:1.4rem; }
.ll-pillar__title{ font-size:clamp(1.3rem,1.8vw,1.6rem); margin:0 0 .8rem; }
.ll-pillar__text{ opacity:.78; margin:0 0 1.4rem; max-width:38ch; }
@media (max-width:900px){
  .ll-pillars{ grid-template-columns:1fr; gap:2.4rem; }
}

/* full-bleed dark CTA banner (bottom of Quiénes somos) */
.ll-cta-dark{ background:var(--ink); color:var(--paper); text-align:center; padding:7rem clamp(20px,6vw,90px); }
.ll-cta-dark__title{ color:var(--paper) !important; font-size:clamp(2rem,4.2vw,3.4rem); margin:0 auto .5em !important; max-width:18ch !important; text-align:center !important; }
.ll-cta-dark__sub{ max-width:52ch !important; margin:0 auto 2.6rem !important; opacity:.7; text-align:center !important; }
.ll-cta-dark__btns{ display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* "find us" / contact section (bottom of Tapería) */
.ll-contact-section{ background:var(--paper-2); padding:7rem clamp(20px,6vw,90px); }
.ll-contact-inner{ max-width:1000px; margin:0 auto !important; }
.ll-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,60px); margin-top:.5rem; }
.ll-contact-col p{ margin:0 0 .3rem; opacity:.85; }
.ll-contact-label{ font-family:var(--ff-label); text-transform:uppercase; letter-spacing:.1em; font-size:.76rem; font-weight:600; color:var(--ink); margin:0 0 .8rem; }
@media (max-width:700px){
  .ll-contact-grid{ grid-template-columns:1fr; gap:2rem; }
}

/* ================= LEGAL PAGES ================= */
/* (Aviso Legal, Política de Privacidad, Política de Cookies, Condiciones de Uso y Venta) */
.ll-legal-intro{
  max-width:900px;
  margin:0 auto !important;
  padding:4.5rem clamp(20px,6vw,70px) 3rem;
  border-bottom:1px solid var(--line);
}
.ll-legal-body{
  max-width:900px;
  margin:0 auto !important;
  padding:1rem clamp(20px,6vw,70px) 6rem;
}
.ll-legal-body h2{
  font-size:clamp(1.3rem,2vw,1.7rem);
  margin:2.6em 0 .8em;
  padding-top:1.6em;
  border-top:1px solid var(--line);
}
.ll-legal-body h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.ll-legal-body h3{
  font-size:1.15rem;
  margin:2.2em 0 .7em;
  padding-top:1.4em;
  border-top:1px solid var(--line);
  font-family:var(--ff-sans);
  font-weight:700;
  letter-spacing:-.005em;
}
.ll-legal-body h3:first-child{ margin-top:0; padding-top:0; border-top:none; }
.ll-legal-body p{ max-width:70ch; opacity:.85; margin:0 0 1.2em; }
.ll-legal-body strong{ color:var(--ink); opacity:1; }
.ll-legal-body a{ text-decoration:underline; text-underline-offset:2px; }
.ll-legal-body ul,.ll-legal-body ol{ max-width:70ch; opacity:.85; padding-left:1.3em; margin:0 0 1.2em; }
.ll-legal-body li{ margin-bottom:.4em; }
