/*
Theme Name: JV Editorial Studio
Theme URI: https://www.jventures.photography/
Author: J Ventures
Description: Editorial WordPress block theme for the J Ventures personal brand: a living front page for creative ventures, blogging, photography, resources, automation work, and WooCommerce products.
Version: 1.1.2
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jv-editorial-studio
Tags: block-patterns, full-site-editing, portfolio, blog, e-commerce, photography
*/

:root {
  --jv-shadow: 0 18px 48px rgba(37,42,39,.08);
  --jv-paper-shadow: 0 1px 0 rgba(110,78,61,.08), 0 12px 30px rgba(110,78,61,.05);
}
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
body,
.wp-site-blocks {
  background-color: var(--wp--preset--color--paper);
}
.wp-site-blocks {
  background-image:
    radial-gradient(circle at 12% 8%, rgba(110,78,61,.032) 0 1px, transparent 1.5px),
    radial-gradient(circle at 84% 16%, rgba(185,111,82,.026) 0 1px, transparent 1.5px);
  background-size: 34px 34px, 47px 47px;
}
a { text-underline-offset: .18em; }

/* Editorial / field-journal helpers */
.jv-kicker {
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .72rem;
  font-family: var(--wp--preset--font-family--system);
  font-weight: 600;
}
.jv-field-note {
  font-family: var(--wp--preset--font-family--field-note);
  font-size: .78rem;
  line-height: 1.5;
  letter-spacing: .02em;
}
.jv-scribble {
  display: inline-block;
  font-family: var(--wp--preset--font-family--field-note);
  transform: rotate(-1.2deg);
}
.jv-stamp {
  display: inline-block;
  border: 1px solid var(--wp--preset--color--clay);
  color: var(--wp--preset--color--walnut);
  padding: .38rem .55rem .28rem;
  font-family: var(--wp--preset--font-family--field-note);
  font-size: .68rem;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  transform: rotate(-1.5deg);
}
.jv-rule { border-top: 1px solid var(--wp--preset--color--line); }
.jv-rough-rule { position: relative; border-top: 1px solid var(--wp--preset--color--line); }
.jv-rough-rule::after {
  content:"";
  position:absolute;
  top:3px;
  left:0;
  width:22%;
  border-top:1px solid color-mix(in srgb, var(--wp--preset--color--clay) 55%, transparent);
  transform:rotate(-.25deg);
}
.jv-frame { position: relative; isolation: isolate; }
.jv-frame::before {
  content:"";
  position:absolute;
  inset: 28px 28px -28px -28px;
  background:var(--wp--preset--color--sage);
  z-index:-1;
}
.jv-frame--clay::before { background: color-mix(in srgb, var(--wp--preset--color--clay) 82%, var(--wp--preset--color--paper)); }
.jv-card {
  border-top: 1px solid var(--wp--preset--color--line);
  padding-top: var(--wp--preset--spacing--40);
}
.jv-meta {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-family: var(--wp--preset--font-family--system);
  font-size: .72rem;
}
.jv-soft-panel { background: var(--wp--preset--color--mist); }
.jv-clay-panel { background: color-mix(in srgb, var(--wp--preset--color--clay) 78%, var(--wp--preset--color--paper)); }
.jv-dark-panel { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.jv-dark-panel a { color: inherit; }
.jv-product-note { font-size:.92rem; opacity:.82; }
.jv-tape { position:relative; }
.jv-tape::before {
  content:"";
  position:absolute;
  width:74px;
  height:22px;
  top:-9px;
  left:50%;
  transform:translateX(-50%) rotate(-2.5deg);
  background:rgba(207,197,181,.58);
  border:1px solid rgba(110,78,61,.08);
  z-index:2;
}

/* Header / footer */
.wp-site-blocks > header {
  border-bottom:1px solid color-mix(in srgb, var(--wp--preset--color--ink) 18%, transparent);
}
.wp-block-site-title a { text-decoration:none; }
header .wp-block-navigation-item__content {
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  text-decoration:none;
}
header .wp-block-navigation-item__content:hover {
  color:var(--wp--preset--color--walnut);
  text-decoration:underline;
  text-underline-offset:.35em;
}
footer .wp-block-navigation-item__content { font-size:.82rem; }
.jv-footer-mark { font-family:var(--wp--preset--font-family--field-note); }

/* Hero */
.jv-hero-title {
  font-size:clamp(3.7rem, 9vw, 8.6rem);
  letter-spacing:-.035em;
  line-height:.82;
  margin-bottom:.28em;
}
.jv-hero-dek { max-width: 820px; }
.jv-hero-media img { min-height: 500px; object-fit: cover; }

/* Content */
.wp-block-post-title { text-wrap: balance; }
.wp-block-post-content > :where(h2,h3,h4) { margin-top: 1.75em; }
.wp-block-post-content > p { margin-block: 0 1.15em; }
.wp-block-post-featured-image img, .wp-block-image img { display:block; }
.wp-block-post-featured-image img,
.wp-block-image:not(.is-style-rounded) img {
  border-radius:0;
}
.wp-block-query .wp-block-post-template { margin-top:0; }
.wp-block-post-template > li {
  border-top:1px solid var(--wp--preset--color--line);
  padding-top:var(--wp--preset--spacing--40);
}
.jv-article-shell { max-width: 830px; }
.jv-article-shell .wp-block-post-content p,
.jv-article-shell .wp-block-post-content li { font-size:1.07em; }

/* Venture world grid */
.jv-venture-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1px;
  background:var(--wp--preset--color--line);
  border:1px solid var(--wp--preset--color--line);
}
.jv-venture-card {
  grid-column:span 4;
  min-width:0;
  background:var(--wp--preset--color--paper);
  padding:clamp(1.15rem,2.5vw,2rem);
  position:relative;
  transition:transform .18s ease, background-color .18s ease;
}
.jv-venture-card--wide { grid-column:span 6; }
.jv-venture-card--feature { grid-column:span 8; }
.jv-venture-card:hover {
  background:color-mix(in srgb, var(--wp--preset--color--mist) 68%, var(--wp--preset--color--paper));
  transform:translateY(-2px);
  z-index:1;
}
.jv-venture-card__head {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  margin-bottom:1rem;
}
.jv-venture-card__title {
  margin:0;
  font-family:var(--wp--preset--font-family--system);
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.jv-venture-card__dek { margin:.35rem 0 0; font-size:.92rem; line-height:1.45; }
.jv-venture-card__image {
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  margin:1rem 0;
  background:var(--wp--preset--color--mist);
}
.jv-venture-card--feature .jv-venture-card__image { aspect-ratio:16/9; }
.jv-venture-card__image img {
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.93) contrast(.99);
  transition:transform .3s ease;
}
.jv-venture-card:hover .jv-venture-card__image img { transform:scale(1.015); }
.jv-venture-card__latest {
  margin:.1rem 0 .25rem;
  font-family:var(--wp--preset--font-family--system);
  font-size:.67rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--wp--preset--color--walnut);
}
.jv-venture-card__post {
  margin:.2rem 0 .4rem;
  font-size:clamp(1.25rem,2vw,1.8rem);
  line-height:1.03;
}
.jv-venture-card__post a { text-decoration:none; }
.jv-venture-card__post a:hover { text-decoration:underline; }
.jv-venture-card__footer {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  margin-top:1rem;
  padding-top:.85rem;
  border-top:1px solid var(--wp--preset--color--line);
}
.jv-venture-card__date {
  font-family:var(--wp--preset--font-family--system);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.jv-venture-card__explore {
  font-family:var(--wp--preset--font-family--system);
  font-size:.7rem;
  font-weight:650;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.jv-editor-note {
  margin-top:.8rem;
  padding:.55rem .65rem;
  font-family:var(--wp--preset--font-family--field-note);
  font-size:.72rem;
  background:rgba(185,111,82,.12);
}

/* Latest / related posts */
.jv-latest-strip .wp-block-post-template { gap:1.15rem; }
.jv-latest-strip .wp-block-post-template > li {
  border-top:0;
  padding-top:0;
}
.jv-related-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
}
.jv-related-card { border-top:1px solid var(--wp--preset--color--line); padding-top:1rem; }
.jv-related-card img { width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:.8rem; }

/* Buttons */
.wp-element-button, .wp-block-button__link {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.wp-element-button:hover, .wp-block-button__link:hover {
  background:var(--wp--preset--color--walnut);
  border-color:var(--wp--preset--color--walnut);
  color:var(--wp--preset--color--paper);
  transform:translateY(-1px);
}
.is-style-outline > .wp-block-button__link:hover {
  background:var(--wp--preset--color--clay);
  border-color:var(--wp--preset--color--clay);
  color:var(--wp--preset--color--ink);
}

/* Forms */
input:not([type=checkbox]):not([type=radio]), select, textarea {
  border:1px solid var(--wp--preset--color--line);
  background:color-mix(in srgb, var(--wp--preset--color--white) 44%, transparent);
  color:inherit;
  padding:.8rem .9rem;
  border-radius:0;
  font:inherit;
}
input:focus, select:focus, textarea:focus {
  outline:2px solid var(--wp--preset--color--clay);
  outline-offset:2px;
}

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb, .wc-block-breadcrumbs {
  font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; font-family:var(--wp--preset--font-family--system);
}
.woocommerce ul.products,
.wc-block-product-template {
  gap:1.5rem;
}
.woocommerce ul.products li.product,
.wc-block-product,
.wc-block-grid__product {
  text-align:left;
  border-top:1px solid var(--wp--preset--color--line);
  padding-top:1rem;
}
.woocommerce ul.products li.product img,
.wc-block-components-product-image img { border-radius:0 !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title { font-size:1.3rem; font-weight:500; }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.wc-block-components-product-price { color:var(--wp--preset--color--walnut); }
.woocommerce span.onsale {
  border-radius:0;
  background:var(--wp--preset--color--clay);
  color:var(--wp--preset--color--ink);
  min-height:auto; min-width:auto; line-height:1;
  padding:.55rem .65rem;
  text-transform:uppercase; letter-spacing:.09em; font-size:.68rem;
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button {
  border-radius:0;
  border:1px solid var(--wp--preset--color--ink);
  background:var(--wp--preset--color--ink);
  color:var(--wp--preset--color--paper);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.74rem;
  padding:.8rem 1.15rem;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.wc-block-components-button:not(.is-link):hover {
  background:var(--wp--preset--color--walnut);
  color:var(--wp--preset--color--paper);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color:var(--wp--preset--color--line); }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  border-radius:0;
  background:var(--wp--preset--color--mist);
  border-color:var(--wp--preset--color--sage);
  color:var(--wp--preset--color--ink);
}
.wc-block-components-order-summary,
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar { font-family:inherit; }

/* Small screens */
@media (max-width: 900px) {
  .jv-venture-card,
  .jv-venture-card--wide,
  .jv-venture-card--feature { grid-column:span 6; }
}
@media (max-width: 781px) {
  .jv-frame::before { inset:18px 18px -18px -18px; }
  .jv-mobile-stack { flex-direction:column !important; }
  .jv-mobile-stack > * { flex-basis:auto !important; width:100%; }
  .wp-site-blocks > header .wp-block-group { gap:1rem; }
  .jv-hero-title { font-size:clamp(3.2rem,18vw,6rem); }
  .jv-hero-media img { min-height:340px; }
  .jv-venture-card,
  .jv-venture-card--wide,
  .jv-venture-card--feature { grid-column:1/-1; }
  .jv-related-grid { grid-template-columns:1fr; }
}


/* Site Editor: keep dynamic shortcode placeholders readable instead of collapsing into the venture grid. */
.editor-styles-wrapper .jv-venture-grid .wp-block-shortcode,
.block-editor-block-list__layout .jv-venture-grid .wp-block-shortcode {
  min-height: 7rem;
  padding: 1rem;
  background: var(--wp--preset--color--mist);
  border: 1px dashed var(--wp--preset--color--sage);
  font-family: var(--wp--preset--font-family--field-note);
  font-size: .72rem;
  line-height: 1.35;
  overflow: hidden;
}
