/* Rowan & Salt — brand layer over GeneratePress + wpguy-starter-kit.
   Candlelit dark. The colour of an unlit hearth; light comes from one warm
   source. Near-total restraint on a dark ground, one hairline as the whole
   visual system (the "threshold rule" — a line of salt at the door), type
   doing the rest. Fraunces display, Spectral body. */

:root{
  --soot:#17130f;      /* ground — warm near-black */
  --hearth:#1f1a15;    /* raised surfaces, cards */
  --hearth-lift:#261f18;
  --ash:#33291f;       /* hairlines, quiet fills */
  --bone:#e9dfca;      /* primary text */
  --bone-dim:#cfc3a8;
  --smoke:#9a8d76;     /* secondary text */
  --tallow:#c8933f;    /* the candle-glow accent — light, used sparingly */
  --tallow-quiet:#7a5c31;
  --rowan:#9a3438;     /* dried-berry red */
  --rowan-lift:#b04a4c;
  --vesper:#241823;    /* deep aubergine, large fields only */

  --rs-read:39rem;
  --rs-w:1120px;
  --rs-gut:clamp(1.25rem,5vw,3rem);
}

/* ---------- ground + grain ---------- */
html{ background:var(--soot); }
html,body{ overflow-x:clip; }
body{
  background:var(--soot);
  color:var(--bone-dim);
  font-family:"Spectral","Iowan Old Style",Georgia,serif;
  font-size:1.075rem;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
/* the theme paints white behind content — everything is soot */
.site-content,.site-content .container,#content,#primary,#main,.site-main,
.content-area,article,.inside-article,.entry-content,.page-content,
.wp-block-group,.wp-site-blocks,.woocommerce-page,
.site-footer,.footer-widgets,.inside-site-info{
  background-color:transparent !important;
}
.separate-containers .inside-article,
.separate-containers .site-main > *,
.one-container .site-content{ background:transparent !important; box-shadow:none !important; }
body::after{
  content:"";
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3,h4,h5,.site-title{
  font-family:"Fraunces","Spectral",Georgia,serif;
  font-weight:400;
  font-optical-sizing:auto;
  font-variation-settings:"SOFT" 60,"WONK" 1;
  color:var(--bone);
  line-height:1.1;
  letter-spacing:.005em;
}
a{ color:var(--tallow); text-decoration:none; }
a:hover{ color:var(--rowan-lift); }
.entry-content a:not(.button):not(.wp-block-button__link){
  text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:4px; text-decoration-color:var(--tallow-quiet);
}
::selection{ background:var(--rowan); color:var(--bone); }
:focus-visible{ outline:2px solid var(--tallow); outline-offset:3px; }

.inside-header,.rs-inner{
  max-width:var(--rs-w); margin-inline:auto; padding-inline:var(--rs-gut); box-sizing:border-box;
}

/* eyebrow / small-caps utility */
.rs-eyebrow,
.woocommerce-breadcrumb{
  font-family:"Spectral",serif;
  font-size:.72rem; font-weight:500;
  letter-spacing:.32em; text-transform:uppercase;
  color:var(--smoke);
}

/* the threshold rule — a grain of salt, then a hairline. used everywhere. */
.rs-rule,
.rs-section-title{ position:relative; }
.rs-section-title::before,
.rs-rule::before{
  content:""; position:absolute; left:0; top:-1.25rem;
  width:5px; height:5px; background:var(--tallow);
}
.rs-section-title::after,
.rs-rule::after{
  content:""; position:absolute; left:11px; right:0; top:calc(-1.25rem + 2px);
  height:1px; background:linear-gradient(90deg,var(--tallow-quiet),transparent 62%);
}

/* ---------- header ---------- */
.site-header{
  background:var(--soot);
  border-bottom:1px solid var(--ash);
}
.inside-header{ padding-top:1.4rem; padding-bottom:1.4rem; align-items:center; }
.site-header .site-title,.site-header .main-title,.site-header .site-description{ display:none !important; }
.site-logo img,.site-header img.header-image{ height:30px; width:auto; display:block; }
@media (max-width:767px){ .site-logo img,.site-header img.header-image{ height:24px; } }

.main-navigation,.site-header .main-navigation,
.main-navigation .inside-navigation{ background:transparent !important; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-item > a{
  color:var(--bone-dim) !important;
  font-family:"Spectral",serif;
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:color .15s ease;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a{ color:var(--tallow) !important; background:transparent !important; box-shadow:none; }
.main-navigation ul ul{ background:var(--hearth) !important; border:1px solid var(--ash); }
.main-navigation ul ul li a{ color:var(--bone-dim) !important; text-transform:none; letter-spacing:.04em; }
@media (min-width:1025px){
  .main-navigation .main-nav > ul{ display:flex; align-items:stretch; }
  .main-navigation .main-nav > ul > li.rs-nav-item{ display:flex; align-items:center; }
}

/* header actions */
.rs-nav-item{ position:relative; display:flex; align-items:center; }
.main-navigation .main-nav ul li.rs-nav-item > a,.rs-nav-btn{
  display:flex; align-items:center; gap:.35rem; color:var(--bone-dim) !important;
  background:none; border:0; cursor:pointer; padding:.35rem .5rem;
}
.rs-nav-btn:hover,.main-navigation .main-nav ul li.rs-nav-cart:hover > a{ color:var(--tallow) !important; }
.rs-cart-count{
  font-family:"Spectral",serif; font-size:.7rem; font-weight:600;
  min-width:1.35em; height:1.35em; line-height:1.35em; text-align:center;
  border-radius:0; background:var(--rowan); color:var(--bone); padding:0 .3em;
}
.rs-cart-count.is-empty{ background:transparent; color:var(--smoke); box-shadow:inset 0 0 0 1px var(--ash); }
.rs-search-panel{
  position:absolute; top:calc(100% + .75rem); right:0; z-index:60;
  background:var(--hearth); border:1px solid var(--ash); padding:.6rem;
}
.rs-search-panel form{ display:flex; gap:.4rem; }
.rs-search-panel input[type="search"]{
  width:min(70vw,300px); border:1px solid var(--ash); background:var(--soot);
  color:var(--bone); padding:.6em .8em; font-family:"Spectral",serif;
}
.rs-search-panel input::placeholder{ color:var(--smoke); }
.rs-search-panel button{ background:var(--rowan) !important; color:var(--bone) !important; border:0; padding:0 .9em; display:flex; align-items:center; }
.rs-minicart{
  position:absolute; top:calc(100% + .75rem); right:0; z-index:60; width:330px;
  background:var(--hearth); border:1px solid var(--ash); padding:1.1rem; display:none; color:var(--bone-dim);
}
@media (min-width:1025px){ .rs-nav-cart:hover .rs-minicart{ display:block; } }
.rs-minicart a{ color:var(--bone); }
.rs-minicart ul.cart_list li{ padding:.7rem 0; border-bottom:1px solid var(--ash); }
.rs-minicart .woocommerce-mini-cart__buttons{ display:flex; gap:.5rem; margin:.6rem 0 0; }
.rs-minicart .woocommerce-mini-cart__buttons .button{ flex:1; text-align:center; }
@media (max-width:1024px){ .rs-search-panel{ right:auto; left:0; } .rs-minicart{ display:none !important; } }

/* ---------- buttons ---------- */
.button,button,input[type="submit"],
.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,
.woocommerce a.button.alt,.woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button,.woocommerce #place_order,
.wc-block-components-button:not(.is-link){
  background:transparent !important;
  color:var(--tallow) !important;
  border:1px solid var(--tallow-quiet) !important;
  border-radius:0 !important;
  font-family:"Spectral",serif !important;
  font-weight:500; letter-spacing:.18em; text-transform:uppercase; font-size:.74rem;
  padding:1em 2em; text-decoration:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.button:hover,button:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover,.woocommerce #place_order:hover,
.wc-block-components-button:not(.is-link):hover{
  background:var(--tallow) !important; color:var(--soot) !important; border-color:var(--tallow) !important;
}
/* the one solid button — primary CTA only */
.rs-cta-solid .button,.rs-hero-cta .button:first-child{
  background:var(--rowan) !important; color:var(--bone) !important; border-color:var(--rowan) !important;
}
.rs-cta-solid .button:hover,.rs-hero-cta .button:first-child:hover{ background:var(--rowan-lift) !important; border-color:var(--rowan-lift) !important; }

/* ---------- homepage ---------- */
.rs-home .entry-header{ display:none; }
.rs-home .entry-content{ max-width:100% !important; margin-top:0 !important; }
.rs-home .site-content .container,
.rs-home #primary,.rs-home #main,.rs-home .inside-article,.rs-home article.page{
  padding-top:0 !important; margin-top:0 !important;
}
.rs-home .inside-article{ padding-left:0 !important; padding-right:0 !important; }
.rs-home .entry-content > *:not(.wp-block-cover):not(.rs-strip){
  max-width:var(--rs-w); margin-inline:auto; padding-inline:var(--rs-gut); box-sizing:border-box;
}
.rs-home .entry-content > .woocommerce{ margin-block:0; }

/* hero — the thesis. dark field, vignette for depth, name as a charm. */
.rs-home .wp-block-cover{
  min-height:auto !important; padding:0 !important;
  width:100vw !important; max-width:none !important;
  margin:0 !important; margin-inline:calc(50% - 50vw) !important;
  background:
    radial-gradient(120% 80% at 50% 0%,rgba(200,147,63,.10),transparent 55%),
    radial-gradient(140% 120% at 50% 120%,var(--vesper),transparent 60%),
    var(--soot);
  border-bottom:1px solid var(--ash);
}
.rs-home .wp-block-cover .wp-block-cover__inner-container{
  max-width:var(--rs-w); margin-inline:auto;
  padding:clamp(3.5rem,8vw,6rem) var(--rs-gut) clamp(3rem,6vw,4.5rem);
  text-align:center; box-sizing:border-box;
}
.rs-home .wp-block-cover .rs-eyebrow{ display:block; color:var(--smoke) !important; margin:0 0 1.6rem !important; }
.rs-hero-title{
  font-size:clamp(2.8rem,7.5vw,5.6rem) !important;
  font-weight:400 !important;
  font-variation-settings:"SOFT" 80,"WONK" 1 !important;
  max-width:16ch; margin:0 auto .9rem !important; color:var(--bone) !important;
  line-height:1.02; letter-spacing:-.01em;
}
.rs-hero-title em{ font-style:italic; color:var(--tallow); }
.rs-hero-sub{
  max-width:36ch; margin:1.4rem auto 0 !important; color:var(--smoke) !important;
  font-size:1.06rem; font-style:italic; line-height:1.7;
}
.rs-hero-note{ margin:2rem auto 0 !important; color:var(--smoke) !important; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; }
.rs-home .wp-block-cover .rs-eyebrow,.rs-home .wp-block-cover .rs-hero-title,
.rs-home .wp-block-cover .rs-hero-sub,.rs-home .wp-block-cover .rs-hero-note{ text-shadow:none !important; opacity:1 !important; }
.rs-hero-cta{ display:flex; flex-wrap:wrap; gap:.75rem 1rem; justify-content:center; margin-top:2.4rem; }

/* section titles hang on the threshold rule */
.rs-home .rs-section-title{
  font-size:clamp(1.5rem,3.4vw,2.1rem);
  margin:5rem auto 1.6rem;
  font-variation-settings:"SOFT" 60,"WONK" 1;
}
.rs-home .rs-section-title:first-of-type{ margin-top:4.5rem; }

/* "what we'll carry" — a plain list, generously set, not cards */
.rs-carry{ columns:2; column-gap:3rem; max-width:34rem; margin:0 auto; }
.rs-carry p{ break-inside:avoid; margin:0 0 .55rem; color:var(--bone-dim); }
.rs-carry p::before{ content:"▪"; color:var(--tallow); font-size:.6em; vertical-align:.18em; margin-right:.7rem; }
@media (max-width:520px){ .rs-carry{ columns:1; } }

.rs-lede{ max-width:38rem; margin:0 auto; text-align:center; color:var(--bone-dim); font-size:1.12rem; }
.rs-lede::first-letter{
  font-family:"Fraunces",serif; float:left; font-size:3.2rem; line-height:.82;
  padding:.1rem .6rem 0 0; color:var(--tallow);
}

/* three rules of the shop — stanzas on the line, thin verticals between */
.rs-strip{
  width:100vw !important; max-width:none !important;
  margin:6rem 0 0 !important; margin-inline:calc(50% - 50vw) !important;
  background:var(--hearth); border-block:1px solid var(--ash);
}
.rs-strip > .wp-block-columns{
  max-width:var(--rs-w); margin-inline:auto !important;
  padding:clamp(3rem,6vw,4.5rem) var(--rs-gut);
  gap:0 !important;
}
.rs-strip .wp-block-column{ padding:0 clamp(1rem,3vw,2.4rem); border-left:1px solid var(--ash); }
.rs-strip .wp-block-column:first-child{ border-left:0; padding-left:0; }
.rs-strip h3{
  font-size:1.12rem; margin:0 0 .55rem;
  font-variation-settings:"SOFT" 40,"WONK" 0;
}
.rs-strip p{ color:var(--smoke); margin:0; font-size:.98rem; }
@media (max-width:781px){
  .rs-strip .wp-block-column{ border-left:0; border-top:1px solid var(--ash); padding:1.4rem 0 0; }
  .rs-strip .wp-block-column:first-child{ border-top:0; padding-top:0; }
}

/* ---------- content pages ---------- */
.entry-content{ line-height:1.78; }
.page:not(.rs-home) .entry-content{ max-width:var(--rs-read); }
.page:not(.rs-home) .entry-title{
  margin-bottom:1.75rem; font-size:clamp(2rem,4vw,2.8rem);
  font-variation-settings:"SOFT" 70,"WONK" 1;
}
.entry-content h3{
  margin:2.4rem 0 .6rem; font-size:1.2rem;
  font-variation-settings:"SOFT" 40,"WONK" 0;
}
.entry-content p{ color:var(--bone-dim); }

/* Fluent Forms */
.fluentform .ff-el-input--label label{ font-family:"Spectral",serif; font-weight:500; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--smoke); }
.fluentform input.ff-el-form-control,.fluentform textarea.ff-el-form-control,.fluentform select.ff-el-form-control,.fluentform .ff-el-form-control{
  border:1px solid var(--ash) !important; border-radius:0 !important; background:var(--hearth) !important;
  color:var(--bone) !important; padding:.75em .85em !important; box-shadow:none !important; font-family:"Spectral",serif;
}
.fluentform .ff-el-form-control::placeholder{ color:var(--smoke); }
.fluentform .ff-el-form-control:focus{ border-color:var(--tallow) !important; box-shadow:none !important; outline:none !important; }
.fluentform .ff-btn-submit,.fluentform button[type="submit"]{
  background:var(--rowan) !important; color:var(--bone) !important; border:1px solid var(--rowan) !important;
  border-radius:0 !important; text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; padding:1em 2.2em !important;
}
.ff-message-success{ border:1px solid var(--tallow-quiet); background:var(--hearth); color:var(--bone); padding:1rem; }

/* ---------- shop ---------- */
.woocommerce ul.products,.woocommerce-page ul.products{
  display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2.5vw,2rem) clamp(1rem,2.5vw,1.75rem); margin:0;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{ display:none !important; content:none !important; }
.woocommerce ul.products li.product{
  width:100% !important; margin:0 !important; float:none !important; display:flex; flex-direction:column;
  background:transparent; border:0; padding:0;
}
.woocommerce ul.products li.product img{
  margin-bottom:1rem; aspect-ratio:4/5; object-fit:cover; background:var(--hearth);
  border:1px solid var(--ash); transition:border-color .18s ease;
}
.woocommerce ul.products li.product:hover img{ border-color:var(--tallow-quiet); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:"Fraunces",serif; font-size:1.12rem; font-weight:400;
  font-variation-settings:"SOFT" 40,"WONK" 0; line-height:1.25; color:var(--bone);
  padding:0; margin:0 0 .3rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.woocommerce ul.products li.product .price{ color:var(--tallow); font-weight:400; font-family:"Spectral",serif; margin-top:auto; }
.woocommerce ul.products li.product .button{
  margin-top:.9rem; width:100%; text-align:center; font-size:.68rem;
  border-color:var(--ash) !important; color:var(--bone-dim) !important;
}
.woocommerce ul.products li.product .button:hover{ background:var(--tallow) !important; color:var(--soot) !important; border-color:var(--tallow) !important; }
.woocommerce span.onsale{ background:var(--rowan); color:var(--bone); border-radius:0; }

.woocommerce ul.products li.product-category{ text-align:center; }
.woocommerce ul.products li.product-category h2,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title{
  font-family:"Fraunces",serif; font-size:1.15rem; font-weight:400; color:var(--bone); margin:0; padding:0;
}
.woocommerce ul.products li.product-category .count{ display:block; color:var(--smoke); font-size:.8rem; background:transparent; margin-top:.1rem; }

.woocommerce-breadcrumb{ margin-bottom:1.25rem; }
.woocommerce-breadcrumb a{ color:var(--smoke); }
.term-description{ color:var(--smoke); max-width:var(--rs-read); font-style:italic; }
.woocommerce-products-header__title,.woocommerce .page-title{
  font-variation-settings:"SOFT" 70,"WONK" 1;
}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{ color:var(--smoke); }
.woocommerce .woocommerce-ordering select{ background:var(--hearth); color:var(--bone); border:1px solid var(--ash); border-radius:0; padding:.5em 2em .5em .8em; }

/* single product */
.single-product div.product .product_title{ font-size:clamp(1.9rem,3.4vw,2.7rem); margin-bottom:.5rem; font-variation-settings:"SOFT" 80,"WONK" 1; }
.single-product div.product p.price,.single-product div.product span.price{ color:var(--tallow); font-size:1.4rem; font-family:"Spectral",serif; }
.single-product .woocommerce-product-gallery{ border:1px solid var(--ash); background:var(--hearth); }
.single-product div.product .product_meta{ font-size:.85rem; color:var(--smoke); border-top:1px solid var(--ash); padding-top:1rem; margin-top:1.5rem; }
.single-product div.product .product_meta .sku_wrapper{ display:none; }
.woocommerce-tabs ul.tabs li{ background:var(--hearth); border-color:var(--ash); }
.woocommerce-tabs ul.tabs li.active{ background:var(--soot); }
.woocommerce-tabs ul.tabs li a{ color:var(--smoke); }
.woocommerce-tabs ul.tabs li.active a{ color:var(--bone); }

/* empty / info states */
.woocommerce-no-products-found,.woocommerce .woocommerce-info,.woocommerce-message{
  background:var(--hearth); border:1px solid var(--ash); border-left:2px solid var(--tallow-quiet);
  color:var(--bone-dim); border-radius:0;
}
.woocommerce .woocommerce-info::before,.woocommerce-message::before{ color:var(--tallow); }

/* cart + checkout blocks */
.wc-block-components-button:not(.is-link),
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button{ border-radius:0 !important; }
.wc-block-components-text-input input,.wc-block-components-textarea,.wc-block-components-select .wc-block-components-select__container{
  border-color:var(--ash) !important; border-radius:0 !important; background:var(--hearth) !important; color:var(--bone) !important;
}
.wc-block-components-totals-item__value,.wc-block-components-product-name{ color:var(--bone); }

/* ---------- footer ---------- */
.site-footer .site-info{ background:var(--soot); border-top:1px solid var(--ash); color:var(--smoke); padding-block:2.6rem; }
.site-footer .copyright-bar{ text-align:left; }
.rs-footer-inner{ width:100%; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem 2rem; }
.rs-footer-menu{ list-style:none; display:flex; flex-wrap:wrap; gap:.6rem 1.8rem; margin:0; padding:0; }
.site-footer .rs-footer-menu a{ color:var(--smoke); font-family:"Spectral",serif; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }
.site-footer .rs-footer-menu a:hover{ color:var(--tallow); }
.rs-copyright{ margin:0; font-size:.82rem; color:var(--ash); color:var(--smoke); }

@media (max-width:1024px){ .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px){
  .woocommerce ul.products,.woocommerce-page ul.products{ gap:1.4rem .8rem; }
  .rs-hero-cta .button{ flex:1 1 100%; text-align:center; }
  .rs-footer-inner{ justify-content:flex-start; }
  .rs-home .rs-section-title{ margin:3.5rem auto 1.2rem; }
}
