/*
Theme Name: North / Still
Theme URI: https://example.test/
Author: Local Studio
Description: A restrained full-site-editing theme for fine-art photographers selling prints and downloads.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: north-still
*/

:root {
  --ns-border: rgba(29, 31, 29, 0.18);
  --ns-ease: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a { text-underline-offset: .2em; }

.wp-site-blocks { min-height: 100vh; }
.ns-site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--ns-border); }
.home .ns-site-header { position: absolute; inset: 0 0 auto; color: #f6f4ee; border-color: rgba(255,255,255,.35); }
.home .ns-site-header a { color: inherit; }
.ns-wordmark { letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.ns-header-row { min-height: 76px; }

.ns-kicker {
  font-family: var(--wp--preset--font-family--sans);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.ns-hero { margin-top: 0 !important; }
.ns-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(15,18,18,.68), rgba(15,18,18,.06) 70%) !important; opacity: 1 !important; }
.ns-hero .wp-block-cover__inner-container { padding-top: 7rem; }
.ns-hero .wp-block-group { margin-left: 0; }
.ns-hero-title { max-width: 880px; line-height: .87 !important; letter-spacing: -.045em; }
.ns-hero-copy { max-width: 520px; font-size: clamp(1rem, 1.5vw, 1.2rem); }

.ns-intro, .ns-gallery, .ns-process, .ns-page-intro { padding-top: clamp(5rem, 11vw, 10rem); padding-bottom: clamp(5rem, 11vw, 10rem); }
.ns-intro h2 { max-width: 920px; }
.ns-intro .wp-block-columns { gap: clamp(2rem, 8vw, 9rem); }

.ns-gallery { padding-top: 0; }
.ns-gallery .wp-block-columns { justify-content: space-between; gap: 7%; }
.ns-image img { display: block; width: 100%; transition: transform .8s var(--ns-ease), filter .8s var(--ns-ease); }
.ns-image { overflow: hidden; }
.ns-image:hover img { transform: scale(1.012); filter: saturate(.85); }
.ns-image-portrait img { aspect-ratio: 2 / 3; object-fit: cover; }
.ns-image-square { margin-top: clamp(4rem, 12vw, 12rem) !important; float: none !important; margin-left: auto !important; }
.ns-image-square img { width: 100% !important; aspect-ratio: 1 / 1; object-fit: cover; }
.wp-element-caption { font-family: var(--wp--preset--font-family--sans); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }

.ns-shop-section { padding-top: clamp(5rem, 9vw, 9rem); padding-bottom: clamp(5rem, 9vw, 9rem); }
.ns-shop-section > .wp-block-group { border-bottom: 1px solid var(--ns-border); padding-bottom: 1.25rem; margin-bottom: 3rem; }
.ns-text-link { font-family: var(--wp--preset--font-family--sans); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.ns-process .wp-block-columns { gap: clamp(3rem, 10vw, 11rem); }
.ns-process .wp-block-separator { margin-top: 0; margin-bottom: 1.5rem; }
.ns-process h3 { margin-bottom: .5rem; }

.ns-closing .wp-block-cover__background { background: rgba(21,23,22,.16) !important; }
.ns-closing h2 { text-shadow: 0 1px 22px rgba(0,0,0,.32); }
.ns-page-intro { min-height: 55vh; display: flex; flex-direction: column; justify-content: flex-end; }

.ns-site-footer { border-top: 1px solid var(--ns-border); }
.ns-footer-meta { font-family: var(--wp--preset--font-family--sans); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }

.wp-block-button__link { transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); }

.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }
.woocommerce ul.products li.product a img { aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 1rem; transition: transform .6s var(--ns-ease); }
.woocommerce ul.products li.product a:hover img { transform: scale(1.008); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--wp--preset--font-family--serif); font-size: 1.65rem; font-weight: 400; padding: .2rem 0; }
.woocommerce ul.products li.product .price { color: inherit; font-family: var(--wp--preset--font-family--sans); font-size: .78rem; letter-spacing: .08em; }
.woocommerce ul.products li.product .button { background: transparent; color: inherit; border-bottom: 1px solid currentColor; border-radius: 0; padding: .35rem 0; font-family: var(--wp--preset--font-family--sans); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce div.product { padding-top: clamp(3rem, 7vw, 7rem); padding-bottom: clamp(5rem, 9vw, 9rem); }
.woocommerce div.product .product_title { font-size: clamp(2.6rem, 6vw, 5.5rem); font-weight: 400; line-height: .95; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: inherit; }
.woocommerce button.button.alt, .woocommerce a.button.alt { background: #1d1f1d; border-radius: 0; }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: #48504d; }
.woocommerce .quantity .qty, .woocommerce select { min-height: 46px; border: 1px solid var(--ns-border); background: transparent; }

@media (max-width: 781px) {
  .ns-header-row { min-height: 64px; }
  .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; color: #1d1f1d; background: #f6f4ee; }
  .ns-hero .wp-block-cover__inner-container { padding-top: 5rem; }
  .ns-gallery .wp-block-spacer { height: 0 !important; }
  .ns-image-square { width: 78% !important; }
  .woocommerce ul.products { grid-template-columns: 1fr; gap: 3rem; }
}
