/*
Theme Name: Nilotic Coffee House
Theme URI: https://github.com/MuzooraBarnabas/nilotic-coffee-house
Author: Muzoora Barnabas
Author URI: https://github.com/MuzooraBarnabas
Developer Email: bmuzoora@gmail.com
Description: Custom WooCommerce-ready theme for the Nilotic Coffee House website.
Version: 0.1.0
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nilotic-coffee-house
Update URI: https://github.com/MuzooraBarnabas/nilotic-coffee-house
*/

@font-face {
  font-display: swap;
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 700;
  src: url("assets/fonts/fraunces-latin.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 300 700;
  src: url("assets/fonts/inter-latin.woff2") format("woff2");
}

:root {
  --nilotic-color-coffee: oklch(22% 0.04 40);
  --nilotic-color-rust: oklch(55% 0.18 35);
  --nilotic-color-cream: oklch(96.5% 0.018 80);
  --nilotic-color-ink: oklch(22% 0.04 40);
  --nilotic-color-card: oklch(98.5% 0.012 85);
  --nilotic-color-muted: oklch(45% 0.03 55);
  --nilotic-color-border: oklch(88% 0.02 70);
  --nilotic-content-width: 80rem;
  --nilotic-serif: "Fraunces", ui-serif, Georgia, serif;
  --nilotic-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
}

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  background: var(--nilotic-color-cream);
  color: var(--nilotic-color-ink);
  font-family: var(--nilotic-sans);
  line-height: 1.6;
  margin: 0;
}

a {
  color: inherit;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.screen-reader-text:focus {
  background: #fff;
  color: var(--nilotic-color-coffee);
  clip: auto;
  clip-path: none;
  height: auto;
  left: 1rem;
  padding: 0.75rem 1rem;
  top: 1rem;
  width: auto;
  z-index: 100000;
}

.announcement-bar {
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  padding: 0.48rem 1.5rem;
  text-align: center;
  text-transform: uppercase;
}

.site-header {
  backdrop-filter: blur(14px);
  background: rgb(255 248 238 / 92%);
  border-bottom: 1px solid var(--nilotic-color-border);
  position: sticky;
  top: 0;
  z-index: 50;
}

.site-header__inner,
.section-shell,
.home-pillars__grid,
.site-footer__grid,
.site-footer__base {
  margin-inline: auto;
  max-width: var(--nilotic-content-width);
  padding-inline: clamp(1.4rem, 4vw, 2.5rem);
}

.site-header__inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 5rem;
}

.site-brand {
  align-items: center;
  display: inline-flex;
  text-decoration: none;
}

.site-brand .custom-logo {
  max-height: 3rem;
  width: auto;
}

.site-brand__name {
  font-family: var(--nilotic-serif);
  font-size: clamp(1.3rem, 2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.site-menu,
.site-menu ul,
.mobile-menu,
.site-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-menu {
  align-items: center;
  display: flex;
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
}

.site-menu > li {
  position: relative;
}

.site-menu a {
  align-items: center;
  display: inline-flex;
  font-size: 0.88rem;
  gap: 0.28rem;
  text-decoration: none;
}

.site-menu > li > a {
  padding-block: 0.4rem;
  position: relative;
}

.site-menu a:hover,
.site-menu a:focus-visible,
.site-menu .current-menu-item > a,
.site-menu .current-menu-ancestor > a,
.site-menu a[aria-current="page"] {
  color: var(--nilotic-color-rust);
}

.site-menu > .current-menu-item > a::after,
.site-menu > .current-menu-ancestor > a::after,
.site-menu > li > a[aria-current="page"]::after {
  background: currentColor;
  bottom: -0.2rem;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
}

.site-menu > .current-menu-item > a,
.site-menu > .current-menu-ancestor > a,
.site-menu > li > a[aria-current="page"] {
  font-weight: 600;
}

.site-menu .sub-menu {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  box-shadow: 0 1rem 2rem rgb(42 20 12 / 12%);
  left: 50%;
  min-width: 12rem;
  opacity: 0;
  padding-block: 0.45rem;
  pointer-events: none;
  position: absolute;
  top: calc(100% + 1rem);
  transform: translate(-50%, 0.4rem);
  transition: 160ms ease;
}

.site-menu .sub-menu::before {
  content: "";
  height: 1rem;
  inset: -1rem 0 auto;
  position: absolute;
}

.site-menu .sub-menu a {
  display: block;
  padding: 0.65rem 1.1rem;
}

.site-menu .sub-menu .current-menu-item > a,
.site-menu .sub-menu a[aria-current="page"] {
  background: rgb(201 57 24 / 8%);
  border-left: 2px solid var(--nilotic-color-rust);
  font-weight: 600;
  padding-left: calc(1.1rem - 2px);
}

.site-menu li:hover > .sub-menu,
.site-menu li:focus-within > .sub-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.site-actions {
  align-items: center;
  display: flex;
  gap: 0.65rem;
}

.nilotic-icon {
  display: block;
  height: 1rem;
  width: 1rem;
}

.site-menu .nilotic-icon--chevron-down,
.mobile-menu .nilotic-icon--chevron-down {
  height: 0.85rem;
  transition: transform 160ms ease;
  width: 0.85rem;
}

.site-menu li:hover > a .nilotic-icon--chevron-down,
.site-menu li:focus-within > a .nilotic-icon--chevron-down {
  transform: rotate(180deg);
}

.site-action,
.mobile-navigation > summary {
  align-items: center;
  border: 0;
  display: inline-flex;
  font-size: 0.72rem;
  justify-content: center;
  min-height: 2.5rem;
  min-width: 2.5rem;
  padding-inline: 0.65rem;
  text-decoration: none;
  text-transform: uppercase;
}

.site-cart {
  border: 1px solid var(--nilotic-color-border);
}

.site-search {
  position: relative;
}

.site-search__trigger {
  background: transparent;
  cursor: pointer;
}

.site-search-dialog {
  background: var(--nilotic-color-cream);
  border: 1px solid var(--nilotic-color-border);
  border-radius: 0;
  box-shadow: 0 1.5rem 4rem rgb(20 12 8 / 28%);
  color: var(--nilotic-color-ink);
  inset: 8vh auto auto 50%;
  margin: 0;
  max-height: 86vh;
  max-width: 48rem;
  overflow: hidden;
  padding: 0;
  position: fixed;
  transform: translateX(-50%);
  width: calc(100% - 2rem);
}

.site-search-dialog::backdrop { background: rgb(0 0 0 / 80%); }

.site-search-dialog__close {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--nilotic-color-muted);
  cursor: pointer;
  display: flex;
  height: 2.5rem;
  justify-content: center;
  position: absolute;
  right: 0.65rem;
  top: 0.65rem;
  width: 2.5rem;
  z-index: 2;
}

.site-search-dialog__close:hover,
.site-search-dialog__close:focus-visible { color: var(--nilotic-color-coffee); }
.site-search-dialog__close .nilotic-icon { height: 1rem; width: 1rem; }

.site-search-dialog__header { border-bottom: 1px solid var(--nilotic-color-border); padding: 1.25rem; }
.site-search-dialog__header h2 { font-family: var(--nilotic-serif); font-size: 1.875rem; font-weight: 400; line-height: 1.2; margin: 0; }
.site-search-dialog__field { align-items: center; background: var(--nilotic-color-card); border: 1px solid var(--nilotic-color-border); display: flex; gap: 0.75rem; margin-top: 1.25rem; padding: 0.75rem 1rem; }
.site-search-dialog__field > .nilotic-icon { color: var(--nilotic-color-muted); flex: 0 0 1rem; height: 1rem; width: 1rem; }
.site-search-dialog__field input[type="search"] { appearance: none; background: transparent; border: 0; color: var(--nilotic-color-ink); flex: 1; font: inherit; min-width: 0; outline: 0; padding: 0; width: 100%; }
.site-search-dialog__field input[type="search"]::-webkit-search-cancel-button { display: none; }
.site-search-dialog__field input::placeholder { color: var(--nilotic-color-muted); }
.site-search-dialog__field button { align-items: center; background: transparent; border: 0; color: var(--nilotic-color-muted); cursor: pointer; display: flex; padding: 0; }
.site-search-dialog__field button .nilotic-icon { height: 1rem; width: 1rem; }

.site-search-dialog__results { max-height: 56vh; overflow-y: auto; padding: 1rem 1.25rem; }
.site-search-dialog__list { display: grid; gap: 0.75rem; }
.site-search-result { align-items: center; background: var(--nilotic-color-cream); border: 1px solid var(--nilotic-color-border); color: var(--nilotic-color-ink); display: grid; gap: 1rem; grid-template-columns: 4.5rem minmax(0, 1fr) auto; padding: 0.75rem; text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease; }
.site-search-result:hover,
.site-search-result:focus-visible { background: var(--nilotic-color-card); border-color: var(--nilotic-color-rust); }
.site-search-result__media { aspect-ratio: 1; background: oklch(92% 0.022 75); display: block; overflow: hidden; position: relative; }
.site-search-result__media::before { background: var(--nilotic-search-image) center / cover; content: ""; filter: blur(0.65rem) saturate(0.85); inset: -12%; opacity: 0.5; position: absolute; }
.site-search-result__media img { height: 100%; object-fit: contain; padding: 0.5rem; position: relative; width: 100%; z-index: 1; }
.site-search-result__copy { display: block; min-width: 0; }
.site-search-result__copy strong,
.site-search-result__copy small,
.site-search-result__tagline { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-search-result__copy strong { font-family: var(--nilotic-serif); font-size: 1.125rem; font-weight: 400; line-height: 1.25; }
.site-search-result__copy small { color: var(--nilotic-color-muted); font-size: 0.625rem; letter-spacing: 0.18em; margin-top: 0.25rem; text-transform: uppercase; }
.site-search-result__tagline { color: var(--nilotic-color-muted); font-size: 0.875rem; margin-top: 0.25rem; }
.site-search-result__price { font-family: var(--nilotic-serif); font-size: 1.125rem; }
.site-search-dialog__empty { padding: 3rem 1rem; text-align: center; }
.site-search-dialog__empty p { font-family: var(--nilotic-serif); font-size: 1.5rem; margin: 0; }
.site-search-dialog__empty span { color: var(--nilotic-color-muted); display: block; font-size: 0.875rem; margin-top: 0.5rem; }

@media (min-width: 768px) {
  .site-search-dialog__header { padding: 1.25rem 1.75rem; }
  .site-search-dialog__results { padding-inline: 1.75rem; }
}

@media (max-width: 520px) {
  .site-search-dialog { inset-block-start: 4vh; max-height: 92vh; width: calc(100% - 1rem); }
  .site-search-result { gap: 0.75rem; grid-template-columns: 3.75rem minmax(0, 1fr) auto; padding: 0.625rem; }
  .site-search-result__price { font-size: 1rem; }
  .site-search-result__tagline { display: none; }
}

.site-action:hover,
.site-action:focus-visible {
  border-color: var(--nilotic-color-rust);
  color: var(--nilotic-color-rust);
}

.site-cart {
  position: relative;
}

.site-cart__count {
  align-items: center;
  background: var(--nilotic-color-rust);
  color: var(--nilotic-color-cream);
  display: inline-flex;
  font-size: 0.625rem;
  font-weight: 600;
  justify-content: center;
  line-height: 1rem;
  min-width: 1.25rem;
  padding: 0.125rem 0.375rem;
  position: absolute;
  right: -0.5rem;
  top: -0.5rem;
}

.site-cart.is-refreshed {
  animation: nilotic-cart-refreshed 600ms ease;
}

@keyframes nilotic-cart-refreshed {
  0%, 100% {
    transform: scale(1);
  }
  45% {
    border-color: var(--nilotic-color-rust);
    color: var(--nilotic-color-rust);
    transform: scale(1.14);
  }
}

.mobile-navigation {
  display: none;
  position: relative;
}

.mobile-navigation > summary {
  cursor: pointer;
  list-style: none;
}

.mobile-navigation > summary::-webkit-details-marker {
  display: none;
}

.mobile-navigation__close-icon,
.mobile-navigation__backdrop,
.mobile-navigation__header,
.mobile-navigation__cart {
  display: none;
}

.home-hero {
  align-items: center;
  background: linear-gradient(125deg, #1f0f09, #56301f 65%, #a94a27);
  color: var(--nilotic-color-cream);
  display: flex;
  isolation: isolate;
  height: 88vh;
  min-height: 37.5rem;
  overflow: hidden;
  position: relative;
}

.home-hero--image {
  background-image: var(--nilotic-hero-image);
  background-position: center;
  background-size: cover;
}

.home-hero__video {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
  z-index: -2;
}

.home-hero__overlay {
  background: linear-gradient(90deg, rgb(24 10 5 / 86%) 0%, rgb(24 10 5 / 50%) 52%, rgb(24 10 5 / 10%) 100%);
  inset: 0;
  position: absolute;
  z-index: -1;
}

.home-hero__content {
  margin-inline: auto;
  max-width: var(--nilotic-content-width);
  padding: clamp(5rem, 9vw, 8rem) clamp(1.4rem, 4vw, 2.5rem);
  width: 100%;
}

.eyebrow {
  color: var(--nilotic-color-rust);
  font-size: 0.68rem;
  letter-spacing: 0.27em;
  margin: 0 0 0.8rem;
  text-transform: uppercase;
}

.home-hero .eyebrow {
  color: #ff8a5e;
}

.home-hero h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 9vw, 3.75rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 0.98;
  margin: 0;
  max-width: 40rem;
}

.home-hero__body {
  color: rgb(255 248 238 / 82%);
  font-size: clamp(1rem, 1.8vw, 1.22rem);
  max-width: 36rem;
}

.button {
  align-items: center;
  display: inline-flex;
  font-size: 0.72rem;
  gap: 0.6rem;
  justify-content: center;
  letter-spacing: 0.2em;
  line-height: 1.2;
  margin-top: 1.4rem;
  min-height: 3.25rem;
  padding: 0.95rem 1.55rem;
  text-decoration: none;
  text-transform: uppercase;
}

.button--cream {
  background: var(--nilotic-color-cream);
  color: var(--nilotic-color-coffee);
}

@property --nilotic-hero-cta-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

.home-hero__actions .button--cream {
  box-shadow:
    0 0 1.15rem rgb(255 248 238 / 24%),
    0 0 2.5rem rgb(196 59 21 / 16%);
  isolation: isolate;
  position: relative;
}

.home-hero__actions .button--cream::before {
  animation: nilotic-hero-cta-border 3.5s linear infinite;
  background: conic-gradient(
    from var(--nilotic-hero-cta-angle),
    var(--nilotic-color-rust),
    var(--nilotic-color-cream),
    oklch(72% 0.09 55),
    var(--nilotic-color-coffee),
    var(--nilotic-color-rust)
  );
  content: "";
  inset: -2px;
  padding: 2px;
  pointer-events: none;
  position: absolute;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  z-index: -1;
}

@keyframes nilotic-hero-cta-border {
  to {
    --nilotic-hero-cta-angle: 360deg;
  }
}

.button--cream:hover,
.button--cream:focus-visible {
  background: var(--nilotic-color-rust);
  color: #fff;
}

.home-hero__actions .button--cream:hover,
.home-hero__actions .button--cream:focus-visible {
  box-shadow:
    0 0 1.5rem rgb(255 248 238 / 32%),
    0 0 3rem rgb(196 59 21 / 28%);
}

.home-hero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.4rem;
}

.home-hero__actions .button {
  margin-top: 0;
}

.button--outline {
  background: transparent;
  border: 1px solid rgb(255 248 238 / 72%);
  color: var(--nilotic-color-cream);
}

.button--outline:hover,
.button--outline:focus-visible {
  background: var(--nilotic-color-cream);
  color: var(--nilotic-color-coffee);
}

.home-pillars {
  background: var(--nilotic-color-card);
  border-block: 1px solid var(--nilotic-color-border);
}

.home-pillars__grid {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-block: clamp(3rem, 6vw, 4.5rem);
}

.home-pillars article {
  display: flex;
  gap: 1.1rem;
}

.home-pillars article > span {
  color: var(--nilotic-color-rust);
  font-family: var(--nilotic-serif);
  font-size: 1.4rem;
}

.home-pillars h2,
.product-card h3,
.site-footer h2 {
  font-family: var(--nilotic-serif);
  font-weight: 400;
  margin: 0;
}

.home-pillars h2 {
  font-size: 1.25rem;
}

.home-pillars p,
.home-story > p,
.site-footer p {
  color: var(--nilotic-color-muted);
  font-size: 0.9rem;
  margin: 0.3rem 0 0;
}

.social-links {
  display: flex;
  gap: 0.65rem;
  margin-top: 1.4rem;
}

.social-links a {
  align-items: center;
  border: 1px solid rgb(255 248 238 / 22%);
  display: inline-flex;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.social-links a:hover,
.social-links a:focus-visible {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
  color: #fff;
}

.home-products,
.home-editor-content,
.home-story {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.home-products {
  border: 0;
}

.home-products + .home-products {
  border-top: 0;
}

.impact-partner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 1fr);
  height: clamp(27rem, 42vw, 35rem);
  margin-block: 0 clamp(3.5rem, 7vw, 6rem);
  max-width: none;
  padding: 0;
  width: 100%;
}

.impact-partner__media {
  background: #d7d0c3;
  min-height: 0;
  overflow: hidden;
}

.impact-partner__media img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.impact-partner__content {
  align-items: flex-start;
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 4.25rem);
}

.impact-partner__content .eyebrow {
  color: #ef7b55;
}

.impact-partner__logo {
  background: var(--nilotic-color-cream);
  height: auto;
  margin: 1rem 0 1.35rem;
  max-height: 3.5rem;
  max-width: min(100%, 14rem);
  object-fit: contain;
  object-position: left center;
  padding: 0.65rem 0.85rem;
}

.impact-partner h2 {
  color: inherit;
  font-family: var(--nilotic-serif);
  font-size: clamp(2.15rem, 3.6vw, 3.65rem);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 0.98;
  margin: 0;
}

.impact-partner__body {
  color: rgb(255 248 238 / 78%);
  font-size: clamp(0.95rem, 1.15vw, 1.08rem);
  line-height: 1.65;
  margin: 1.15rem 0 0;
  max-width: 32rem;
}

.impact-partner__contribution {
  border-left: 2px solid var(--nilotic-color-rust);
  font-weight: 600;
  line-height: 1.55;
  margin: 1.5rem 0 0;
  padding-left: 1rem;
}

.impact-partner__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.25rem;
  margin-top: 1.3rem;
}

.impact-partner__actions .button {
  margin: 0;
}

.impact-partner__donate {
  background: var(--nilotic-color-rust);
  color: #fff;
}

.impact-partner__donate:hover,
.impact-partner__donate:focus-visible {
  background: var(--nilotic-color-cream);
  color: var(--nilotic-color-coffee);
}

.impact-partner__text-link {
  border-bottom: 1px solid currentColor;
  color: rgb(255 248 238 / 88%);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  padding-block: 0.5rem;
  text-decoration: none;
  text-transform: uppercase;
}

.impact-purchase-message {
  align-items: flex-start;
  background: #f0eadf;
  display: flex;
  gap: 0.65rem;
  margin-top: 1.25rem;
  padding: 0.9rem 1rem;
}

.impact-purchase-message > span {
  color: #42753c;
  font-weight: 700;
}

.impact-purchase-message p {
  line-height: 1.5;
  margin: 0;
}

.impact-purchase-message a {
  border-bottom: 1px solid currentColor;
  color: inherit;
  text-decoration: none;
}

.impact-purchase-message--cart {
  margin: 1rem 0 0;
}

.section-heading {
  display: block;
  margin-bottom: 2.25rem;
}

.section-heading__title-row {
  align-items: baseline;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
}

.section-heading h2,
.home-story h2 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.06;
  margin: 0;
}

.section-heading__title-row > a,
.text-link {
  align-items: center;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-size: 0.7rem;
  gap: 0.5rem;
  letter-spacing: 0.18em;
  padding-bottom: 0.2rem;
  text-decoration: none;
  text-transform: uppercase;
}

.section-heading__title-row > a .nilotic-icon {
  height: 0.9rem;
  width: 0.9rem;
}

.section-heading__title-row > a:hover,
.text-link:hover {
  color: var(--nilotic-color-rust);
}

.section-heading__body {
  color: var(--nilotic-color-muted);
  margin: 0.8rem 0 0;
  max-width: 32rem;
}

.product-grid {
  display: grid;
  gap: clamp(1.2rem, 3vw, 2.25rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-card__image {
  align-items: center;
  aspect-ratio: 1;
  background: #eee6db;
  display: flex;
  justify-content: center;
  margin-bottom: 1.25rem;
  overflow: hidden;
}

.product-card__image img {
  height: 100%;
  object-fit: contain;
  padding: 1.25rem;
  transition: transform 400ms ease;
  width: 100%;
}

.product-card__image:hover img {
  transform: scale(1.035);
}

.product-card h3 {
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.2;
}

.product-card h3 a {
  text-decoration: none;
}

.product-card__price {
  color: var(--nilotic-color-rust);
  margin-top: 0.6rem;
}

.nilotic-coffee-empty {
  align-items: center;
  display: grid;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  grid-template-columns: minmax(12rem, 19rem) minmax(15rem, 1fr);
  margin: 0 auto;
  max-width: 48rem;
  padding: clamp(0.75rem, 2.5vw, 1.75rem) 0;
}
.nilotic-coffee-empty__image { aspect-ratio: 4 / 3; display: block; height: auto; justify-self: end; max-width: 19rem; object-fit: cover; object-position: 58% 52%; width: 100%; }
.nilotic-coffee-empty__copy { max-width: 25rem; }
.nilotic-coffee-empty__copy h3 { font-size: clamp(1.75rem, 3.25vw, 2.75rem); line-height: 1.06; margin: 0 0 0.8rem; }
.nilotic-coffee-empty__copy > p:last-of-type { color: var(--nilotic-color-muted); line-height: 1.75; margin: 0; }
.nilotic-coffee-empty__action { align-items: center; border-bottom: 1px solid currentColor; color: var(--nilotic-color-rust); display: inline-flex; font-size: 0.68rem; gap: 0.55rem; letter-spacing: 0.2em; margin-top: 1.5rem; padding-bottom: 0.35rem; text-decoration: none; text-transform: uppercase; }
.nilotic-coffee-empty__action .nilotic-icon { height: 0.9rem; width: 0.9rem; }

.home-editor-content {
  border-top: 1px solid var(--nilotic-color-border);
}

.home-story {
  max-width: 58rem;
  text-align: center;
}

.home-story > p {
  font-size: 1rem;
  margin: 1.25rem auto 1.75rem;
  max-width: 42rem;
}

.instagram-strip {
  border-top: 1px solid var(--nilotic-color-border);
  overflow: hidden;
  padding-block: clamp(4rem, 8vw, 7rem);
}

.instagram-strip__heading {
  align-items: end;
  display: flex;
  justify-content: space-between;
  margin-bottom: 2.25rem;
}

.instagram-strip__heading h2 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.06;
  margin: 0;
}

.instagram-strip__heading > a {
  align-items: center;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-size: 0.7rem;
  gap: 0.5rem;
  letter-spacing: 0.18em;
  padding-bottom: 0.2rem;
  text-decoration: none;
  text-transform: uppercase;
}

.instagram-strip__track {
  animation: nilotic-marquee 38s linear infinite;
  display: flex;
  gap: clamp(0.75rem, 1.2vw, 1rem);
  width: max-content;
}

.instagram-strip__track:hover {
  animation-play-state: paused;
}

.instagram-strip__track > a {
  aspect-ratio: 1;
  display: block;
  overflow: hidden;
  position: relative;
  width: clamp(12.5rem, 20vw, 17.5rem);
}

.instagram-strip__track img {
  height: 100%;
  object-fit: cover;
  transition: transform 400ms ease;
  width: 100%;
}

.instagram-strip__track span {
  align-items: center;
  background: rgb(42 20 12 / 45%);
  color: #fff;
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  position: absolute;
  transition: opacity 200ms ease;
}

.instagram-strip__track > a:hover img {
  transform: scale(1.045);
}

.instagram-strip__track > a:hover span {
  opacity: 1;
}

@keyframes nilotic-marquee {
  to {
    transform: translateX(calc(-50% - 0.5rem));
  }
}

.site-footer {
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.site-footer__grid {
  display: grid;
  gap: clamp(2rem, 5vw, 4rem);
  grid-template-columns: repeat(6, minmax(0, 1fr));
  padding-block: clamp(4rem, 8vw, 6rem);
}

.site-footer__brand,
.site-footer__newsletter {
  grid-column: span 2;
}

.site-footer h2 {
  font-size: 1.15rem;
  margin-bottom: 1rem;
}

.site-footer__brand h2 {
  font-size: clamp(1.55rem, 2.2vw, 1.75rem);
}

.site-footer__grid > section:not(.site-footer__brand) > h2 {
  color: rgb(255 248 238 / 50%);
  font-family: var(--nilotic-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.site-footer__identity {
  align-items: center;
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}

.site-footer__identity h2 {
  margin: 0;
}

.site-footer__logo {
  height: 6rem;
  object-fit: contain;
  width: 6rem;
}

.site-footer p {
  color: rgb(255 248 238 / 65%);
  max-width: 32rem;
}

.site-footer li + li {
  margin-top: 0.65rem;
}

.site-footer a {
  color: rgb(255 248 238 / 82%);
  font-size: 0.88rem;
  text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: #ff8a5e;
}

.site-footer a.is-current,
.site-footer a[aria-current="page"] {
  box-shadow: inset 0 -1px #ff8a5e;
  color: #ff8a5e;
  padding-bottom: 0.15rem;
}

.site-footer__newsletter form {
  display: flex;
  gap: 0.5rem;
  margin-top: 1.25rem;
}

.site-footer__newsletter input[type="email"] {
  background: rgb(255 248 238 / 10%);
  border: 1px solid rgb(255 248 238 / 24%);
  color: var(--nilotic-color-cream);
  min-height: 3rem;
  min-width: 0;
  padding: 0.7rem;
  width: 100%;
}

.site-footer__newsletter input::placeholder {
  color: rgb(255 248 238 / 48%);
}

.site-footer__newsletter button {
  background: var(--nilotic-color-cream);
  border: 1px solid var(--nilotic-color-cream);
  color: var(--nilotic-color-coffee);
  cursor: pointer;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  padding-inline: 1rem;
  text-transform: uppercase;
}

.site-footer__newsletter button:hover,
.site-footer__newsletter button:focus-visible {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
  color: #fff;
}

.nilotic-honeypot {
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.site-footer .form-status {
  color: var(--nilotic-color-cream);
  margin-top: 0.75rem;
}

.site-footer .form-status--error {
  color: #ff8a5e;
}

.site-footer__payments {
  border-top: 1px solid rgb(255 248 238 / 12%);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  padding: 1.25rem clamp(1.4rem, 4vw, 2.5rem);
}

.site-footer__payments span {
  align-items: center;
  background: #fff;
  color: var(--nilotic-color-coffee);
  display: inline-flex;
  font-size: 0.6rem;
  font-weight: 700;
  justify-content: center;
  min-width: 3rem;
  padding: 0.32rem 0.48rem;
}

.site-footer__payments img {
  height: 1.45rem;
  max-width: 5rem;
  object-fit: contain;
  width: auto;
}

.site-footer__base {
  display: flex;
  justify-content: space-between;
  padding-block: 1.25rem;
}

.scroll-to-top {
  align-items: center;
  background: var(--nilotic-color-cream);
  border: 1px solid var(--nilotic-color-border);
  border-radius: 50%;
  bottom: clamp(1.25rem, 3vw, 1.75rem);
  box-shadow: 0 0.8rem 2rem rgb(42 20 12 / 25%);
  color: var(--nilotic-color-coffee);
  cursor: pointer;
  display: inline-flex;
  height: 3rem;
  justify-content: center;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  text-transform: uppercase;
  transform: translateY(0.75rem);
  transition: opacity 160ms ease, transform 160ms ease, background-color 160ms ease;
  visibility: hidden;
  width: 3rem;
  z-index: 60;
}

.scroll-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
}

.scroll-to-top:hover,
.scroll-to-top:focus-visible {
  background: var(--nilotic-color-card);
  color: var(--nilotic-color-rust);
  outline: 2px solid var(--nilotic-color-rust);
  outline-offset: 2px;
}

.scroll-to-top__progress {
  height: 100%;
  inset: 0;
  position: absolute;
  transform: rotate(-90deg);
  width: 100%;
}

.scroll-to-top__progress circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.scroll-to-top__progress circle:first-child {
  opacity: 0.15;
}

.scroll-to-top__progress circle:last-child {
  stroke-dasharray: 131.947;
  stroke-dashoffset: 131.947;
  stroke-linecap: round;
  transition: stroke-dashoffset 150ms ease;
}

.scroll-to-top span:last-child {
  font-size: 0.95rem;
  line-height: 1;
}

.site-footer__base p {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  margin: 0;
  text-transform: uppercase;
}

.site-footer__slogan {
  margin-left: auto !important;
  text-align: right;
}

.site-main.section-shell {
  min-height: 50vh;
  padding-block: 4rem;
}

/* Policy pages ---------------------------------------------------------- */

.nilotic-policy__hero {
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  padding-block: 5rem;
}

.nilotic-policy__inner {
  margin-inline: auto;
  max-width: 56rem;
  padding-inline: clamp(1.5rem, 4vw, 2.5rem);
}

.nilotic-policy__eyebrow {
  color: rgb(255 248 238 / 60%);
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.nilotic-policy__hero h1 {
  color: inherit;
  font-family: var(--nilotic-serif);
  font-size: clamp(3rem, 5vw, 3.75rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0;
}

.nilotic-policy__updated {
  color: rgb(255 248 238 / 70%);
  font-size: 0.875rem;
  margin: 1rem 0 0;
}

.nilotic-policy__body {
  padding-block: clamp(4rem, 7vw, 5rem);
}

.nilotic-policy__content {
  color: color-mix(in oklch, var(--nilotic-color-ink) 85%, transparent);
  font-size: 1rem;
  line-height: 1.75;
}

.nilotic-policy__content > :first-child {
  margin-top: 0;
}

.nilotic-policy__content > :last-child {
  margin-bottom: 0;
}

.nilotic-policy__content h2,
.nilotic-policy__content h3 {
  color: var(--nilotic-color-ink);
  font-family: var(--nilotic-serif);
  font-weight: 600;
  line-height: 1.2;
}

.nilotic-policy__content h2 {
  font-size: clamp(1.75rem, 3vw, 2rem);
  margin: 0 0 1.25rem;
}

.nilotic-policy__content h3 {
  font-size: 1.35rem;
  margin: 2rem 0 0.75rem;
}

.nilotic-policy__content p,
.nilotic-policy__content ul,
.nilotic-policy__content ol {
  margin-block: 0 1.25rem;
}

.nilotic-policy__content a {
  text-decoration-color: var(--nilotic-color-rust);
  text-underline-offset: 0.18em;
}

@media (max-width: 640px) {
  .nilotic-policy__hero {
    padding-block: 4rem;
  }

  .nilotic-policy__body {
    padding-block: 3.5rem;
  }
}

/* Nilotic journal and native WordPress article presentation. */
.nilotic-blog-hero {
  padding-block: clamp(3.5rem, 7vw, 5.5rem) clamp(2rem, 4vw, 3rem);
}

.nilotic-blog-hero h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.65rem, 6vw, 4rem);
  font-weight: 400;
  line-height: 1.08;
  margin: 0;
  max-width: 48rem;
}

.nilotic-blog-hero__description {
  color: var(--nilotic-color-muted);
  font-size: 1.05rem;
  max-width: 36rem;
}

.nilotic-blog-hero__description > *:last-child {
  margin-bottom: 0;
}

.nilotic-feature-story {
  padding-block: 1rem clamp(3.5rem, 6vw, 5rem);
}

.nilotic-post-card--featured {
  align-items: center;
  display: grid;
  gap: clamp(2rem, 4vw, 3rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nilotic-post-card__media {
  aspect-ratio: 4 / 3;
  background: #eee6db;
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.nilotic-post-card__media img {
  height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
  width: 100%;
}

.nilotic-post-card:hover .nilotic-post-card__media img,
.nilotic-post-card:focus-within .nilotic-post-card__media img {
  transform: scale(1.045);
}

.nilotic-post-card__media.is-placeholder {
  align-items: center;
  background: linear-gradient(135deg, var(--nilotic-color-coffee), #6b3722);
  color: var(--nilotic-color-cream);
  display: flex;
  justify-content: center;
}

.nilotic-post-card__media.is-placeholder span {
  font-family: var(--nilotic-serif);
  font-size: clamp(1.3rem, 3vw, 2rem);
}

.nilotic-post-card__meta {
  color: var(--nilotic-color-rust);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  margin: 1.15rem 0 0.45rem;
  text-transform: uppercase;
}

.nilotic-post-card--featured .nilotic-post-card__meta {
  margin-top: 0;
}

.nilotic-post-card h2,
.nilotic-post-card h3 {
  font-family: var(--nilotic-serif);
  font-weight: 400;
  line-height: 1.14;
  margin: 0;
}

.nilotic-post-card h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
}

.nilotic-post-card h3 {
  font-size: 1.55rem;
}

.nilotic-post-card h2 a,
.nilotic-post-card h3 a {
  text-decoration: none;
  transition: color 180ms ease;
}

.nilotic-post-card h2 a:hover,
.nilotic-post-card h2 a:focus-visible,
.nilotic-post-card h3 a:hover,
.nilotic-post-card h3 a:focus-visible {
  color: var(--nilotic-color-rust);
}

.nilotic-post-card__excerpt {
  color: var(--nilotic-color-muted);
  line-height: 1.7;
  margin: 0.8rem 0 0;
}

.nilotic-post-card__read {
  align-items: center;
  border-bottom: 1px solid var(--nilotic-color-coffee);
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.5rem;
  letter-spacing: 0.2em;
  margin-top: 1.5rem;
  padding-bottom: 0.25rem;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-post-card__read .nilotic-icon {
  height: 0.85rem;
  width: 0.85rem;
}

.nilotic-post-grid {
  display: grid;
  gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1.25rem, 2.5vw, 2rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-bottom: clamp(4rem, 8vw, 6rem);
}

.nilotic-blog-empty {
  border-block: 1px solid var(--nilotic-color-border);
  margin-bottom: 5rem;
  padding-block: 3rem;
}

.nilotic-blog-empty h2 {
  font-family: var(--nilotic-serif);
  font-size: 2rem;
  font-weight: 400;
  margin: 0;
}

.nilotic-blog-empty p {
  color: var(--nilotic-color-muted);
}

.nilotic-pagination {
  padding-bottom: 5rem;
}

.nilotic-pagination .page-numbers {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nilotic-pagination a,
.nilotic-pagination span {
  align-items: center;
  border: 1px solid var(--nilotic-color-border);
  display: inline-flex;
  font-size: 0.72rem;
  justify-content: center;
  min-height: 2.7rem;
  min-width: 2.7rem;
  padding: 0.45rem 0.7rem;
  text-decoration: none;
}

.nilotic-pagination .current,
.nilotic-pagination a:hover,
.nilotic-pagination a:focus-visible {
  background: var(--nilotic-color-coffee);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.nilotic-article-back {
  max-width: 52rem;
  padding-block: 2rem 0;
}

.nilotic-article-back a,
.nilotic-share-button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--nilotic-color-muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.5rem;
  letter-spacing: 0.2em;
  padding: 0;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-article-back .nilotic-icon,
.nilotic-share-button .nilotic-icon {
  height: 0.9rem;
  width: 0.9rem;
}

.nilotic-article-back a:hover,
.nilotic-article-back a:focus-visible,
.nilotic-share-button:hover,
.nilotic-share-button:focus-visible {
  color: var(--nilotic-color-rust);
}

.nilotic-article__header {
  max-width: 52rem;
  padding-block: clamp(2.5rem, 5vw, 4rem);
}

.nilotic-article__header .eyebrow {
  display: inline-block;
  text-decoration: none;
}

.nilotic-article__header h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.65rem, 6vw, 4.2rem);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
}

.nilotic-article__meta {
  align-items: center;
  color: var(--nilotic-color-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.76rem;
  gap: 1.35rem;
  margin-top: 1.75rem;
}

.nilotic-article__meta span,
.nilotic-article__meta a {
  align-items: center;
  display: inline-flex;
  gap: 0.4rem;
}

.nilotic-article__meta a {
  text-decoration: none;
}

.nilotic-article__meta .nilotic-icon {
  height: 0.9rem;
  width: 0.9rem;
}

.nilotic-article__hero {
  margin-block: 0;
  max-width: 68rem;
}

.nilotic-article__hero img {
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.nilotic-article__body {
  max-width: 52rem;
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}

.nilotic-article__lead {
  color: rgb(23 18 15 / 88%);
  font-family: var(--nilotic-serif);
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.4;
  margin: 0 0 2.5rem;
}

.nilotic-prose {
  color: rgb(23 18 15 / 86%);
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.85;
}

.nilotic-prose > *:first-child {
  margin-top: 0;
}

.nilotic-prose h2,
.nilotic-prose h3,
.nilotic-prose h4 {
  color: var(--nilotic-color-ink);
  font-family: var(--nilotic-serif);
  font-weight: 400;
  line-height: 1.2;
  margin: 2.2em 0 0.65em;
}

.nilotic-prose h2 { font-size: 2rem; }
.nilotic-prose h3 { font-size: 1.6rem; }
.nilotic-prose h4 { font-size: 1.3rem; }

.nilotic-prose a {
  color: var(--nilotic-color-rust);
  text-underline-offset: 0.18em;
}

.nilotic-prose blockquote {
  border-left: 3px solid var(--nilotic-color-rust);
  font-family: var(--nilotic-serif);
  font-size: 1.35rem;
  margin: 2rem 0;
  padding: 0.4rem 0 0.4rem 1.5rem;
}

.nilotic-prose img,
.nilotic-prose figure,
.nilotic-prose .wp-block-image {
  margin-block: 2rem;
}

.nilotic-prose table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
  width: 100%;
}

.nilotic-prose th,
.nilotic-prose td {
  border: 1px solid var(--nilotic-color-border);
  padding: 0.7rem;
  text-align: left;
}

.nilotic-article__footer {
  align-items: center;
  border-top: 1px solid var(--nilotic-color-border);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  margin-top: 3rem;
  padding-top: 1.5rem;
}

.nilotic-article-next {
  align-items: center;
  color: var(--nilotic-color-muted);
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.5rem;
  letter-spacing: 0.2em;
  margin-left: auto;
  max-width: 20rem;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-article-next span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nilotic-article-next .nilotic-icon {
  flex: 0 0 auto;
  height: 0.9rem;
  width: 0.9rem;
}

.nilotic-article-next:hover,
.nilotic-article-next:focus-visible {
  color: var(--nilotic-color-rust);
}

.nilotic-article__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.nilotic-article__tags a {
  border: 1px solid var(--nilotic-color-border);
  font-size: 0.65rem;
  padding: 0.35rem 0.55rem;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-article-nav {
  border-top: 1px solid var(--nilotic-color-border);
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 2rem;
  padding-top: 2rem;
}

.nilotic-article-nav a {
  display: grid;
  text-decoration: none;
}

.nilotic-article-nav a:last-child {
  text-align: right;
}

.nilotic-article-nav small {
  color: var(--nilotic-color-rust);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.nilotic-article-nav span {
  font-family: var(--nilotic-serif);
  font-size: 1.15rem;
}

.nilotic-related {
  background: var(--nilotic-color-card);
  border-top: 1px solid var(--nilotic-color-border);
  overflow: hidden;
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}

.nilotic-related h2,
.nilotic-comments h2,
.nilotic-comments .comment-reply-title {
  font-family: var(--nilotic-serif);
  font-size: 2rem;
  font-weight: 400;
}

.nilotic-related__rail {
  overflow: hidden;
}

.nilotic-related__track {
  animation: nilotic-journal-marquee 60s linear infinite;
  display: flex;
  gap: clamp(1.5rem, 2.5vw, 2rem);
  width: max-content;
}

.nilotic-related__track:hover {
  animation-play-state: paused;
}

.nilotic-related__group {
  display: flex;
  gap: clamp(1.5rem, 2.5vw, 2rem);
}

.nilotic-post-card--related {
  flex: 0 0 17.5rem;
  width: 17.5rem;
}

.nilotic-post-card--related h3 {
  font-size: 1.25rem;
  margin-top: 0;
}

.nilotic-post-card--related .nilotic-post-card__meta {
  margin-top: 1.25rem;
}

@media (min-width: 768px) {
  .nilotic-post-card--related {
    flex-basis: 21.25rem;
    width: 21.25rem;
  }
}

@keyframes nilotic-journal-marquee {
  to {
    transform: translateX(calc(-50% - clamp(0.75rem, 1.25vw, 1rem)));
  }
}

.nilotic-comments {
  border-top: 1px solid var(--nilotic-color-border);
  margin-top: 3rem;
  padding-top: 2rem;
}

.nilotic-comment-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nilotic-comment-list .comment-body {
  border-bottom: 1px solid var(--nilotic-color-border);
  padding-block: 1.5rem;
}

.nilotic-comment-list .comment-meta {
  font-size: 0.75rem;
}

.nilotic-comments input:not([type="checkbox"]),
.nilotic-comments textarea {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  padding: 0.75rem;
  width: 100%;
}

.nilotic-comments label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 0.3rem;
}

.nilotic-comments .nilotic-comment-submit {
  background: var(--nilotic-color-coffee);
  border: 1px solid var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  cursor: pointer;
}

/* WooCommerce shop and product parity. Standard Woo hooks remain active. */
.shop-hero {
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  padding-block: clamp(4rem, 8vw, 6rem);
}

.shop-hero .eyebrow {
  color: rgb(255 248 238 / 62%);
}

.shop-hero h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 400;
  line-height: 1.02;
  margin: 0;
  max-width: 44rem;
}

.shop-hero p:last-child {
  color: rgb(255 248 238 / 78%);
  font-size: clamp(1rem, 2vw, 1.15rem);
  margin: 1rem 0 0;
  max-width: 38rem;
}

.shop-catalog {
  min-height: 35rem;
  padding-block: clamp(3rem, 6vw, 5rem);
}

.shop-catalog .page-title,
.shop-catalog .term-description {
  display: none;
}

.shop-toolbar {
  align-items: end;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-bottom: 3rem;
}

.shop-toolbar__summary {
  min-width: 14rem;
}

.shop-filter-chips {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-height: 2.25rem;
}

.shop-filter-chips span {
  border: 1px solid var(--nilotic-color-border);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  padding: 0.5rem 0.7rem;
  text-transform: uppercase;
}

.shop-filter-chips p {
  color: var(--nilotic-color-muted);
  font-size: 0.88rem;
  margin: 0;
}

.shop-filter-chips a {
  color: var(--nilotic-color-rust);
  font-size: 0.67rem;
  letter-spacing: 0.14em;
  padding: 0.5rem;
  text-decoration: none;
  text-transform: uppercase;
}

.shop-filter-form {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: repeat(4, minmax(9rem, 1fr)) auto;
  width: min(100%, 55rem);
}

.shop-filter-island,
.shadcn-shop-filters {
  width: min(100%, 50rem);
}

.shadcn-shop-filters {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: repeat(4, minmax(9rem, 1fr));
}

.shop-filter-island[data-enhanced="true"] ~ .shop-filter-form--fallback {
  display: none;
}

.shadcn-native-select {
  position: relative;
  width: 100%;
}

.shadcn-native-select__control {
  appearance: none;
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  color: var(--nilotic-color-ink);
  cursor: pointer;
  min-height: 3rem;
  padding: 0.65rem 2.3rem 0.65rem 0.8rem;
  width: 100%;
}

.shadcn-native-select__control:hover,
.shadcn-native-select__control:focus-visible {
  border-color: var(--nilotic-color-rust);
  outline: none;
}

.shadcn-native-select__icon {
  height: 0.9rem;
  pointer-events: none;
  position: absolute;
  right: 0.8rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.9rem;
}

.shop-filter-form select {
  appearance: none;
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  color: var(--nilotic-color-ink);
  min-height: 3rem;
  padding: 0.65rem 2rem 0.65rem 0.8rem;
  width: 100%;
}

.shop-filter-form button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  align-items: center;
  background: var(--nilotic-color-coffee);
  border: 1px solid var(--nilotic-color-coffee);
  border-radius: 0;
  color: var(--nilotic-color-cream);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  justify-content: center;
  line-height: 1.2;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  text-transform: uppercase;
}

.woocommerce .button .nilotic-icon {
  flex: 0 0 auto;
  height: 1rem;
  width: 1rem;
}

.woocommerce .return-to-shop .button {
  margin-top: 0;
}

.woocommerce .nilotic-cart-empty__content .return-to-shop .button {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
}

.woocommerce .nilotic-cart-empty__content .return-to-shop .button:hover,
.woocommerce .nilotic-cart-empty__content .return-to-shop .button:focus-visible {
  background: var(--nilotic-color-coffee);
  border-color: var(--nilotic-color-coffee);
}

.shop-filter-form button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
  color: #fff;
}

.woocommerce ul.products {
  display: grid;
  gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce-page ul.products.columns-3 li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
  display: block;
  float: none;
  margin: 0;
  min-width: 0;
  width: 100%;
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
}

.woocommerce ul.products li.product .nilotic-product-card__media {
  aspect-ratio: 4 / 5;
  background: #eee6db;
  isolation: isolate;
  margin: 0 0 1.25rem;
  overflow: hidden;
  position: relative;
}

.woocommerce ul.products li.product .nilotic-product-card__media::before {
  background-image: var(--nilotic-product-image, none);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  filter: blur(1.5rem) saturate(0.9);
  inset: -2rem;
  opacity: 0.72;
  position: absolute;
  transform: scale(1.08);
  z-index: 0;
}

.nilotic-product-card { position: relative; }
.nilotic-product-card__image-link { color: inherit; display: block; height: 100%; position: relative; text-decoration: none; z-index: 1; }
.nilotic-product-card__badge {
  background: var(--nilotic-color-cream);
  color: var(--nilotic-color-coffee);
  font-size: 0.62rem;
  left: 0.75rem;
  letter-spacing: 0.18em;
  padding: 0.35rem 0.65rem;
  position: absolute;
  text-transform: uppercase;
  top: 0.75rem;
  z-index: 3;
}
.nilotic-product-card__veil { background: rgb(250 244 234 / 35%); inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.nilotic-product-card__ribbon {
  align-items: center;
  background: rgb(250 244 234 / 86%);
  color: var(--nilotic-color-coffee);
  display: flex;
  font-size: 0.7rem;
  font-weight: 600;
  inset: 50% auto auto 50%;
  justify-content: center;
  letter-spacing: 0.28em;
  min-height: 3rem;
  padding: 0.5rem 1rem;
  position: absolute;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
  width: 116%;
  z-index: 2;
}
.nilotic-product-card__ribbon.is-coming_soon { color: var(--nilotic-color-rust); }
.nilotic-product-card__details { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.nilotic-product-card__copy { min-width: 0; }
.nilotic-product-card__price { flex: 0 0 auto; text-align: right; }
.nilotic-product-card__price .price { margin-top: 0 !important; }
.nilotic-product-card__unit,
.nilotic-product-card__status,
.nilotic-product-card__options {
  color: var(--nilotic-color-muted);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  margin: 0.7rem 0 0;
  text-transform: uppercase;
}
.nilotic-product-card__options { color: var(--nilotic-color-rust); }
.nilotic-product-card__unit { margin-top: 0.3rem; }

.woocommerce ul.products li.product .nilotic-product-card__image-link > img {
  height: 100%;
  inset: 0;
  margin: 0;
  object-fit: contain;
  padding: clamp(1rem, 3vw, 2rem);
  position: absolute;
  transition: transform 350ms ease;
  width: 100%;
}

.woocommerce ul.products li.product > a:hover img,
.woocommerce ul.products li.product .nilotic-product-card__image-link:hover > img {
  transform: scale(1.025);
}

.woocommerce ul.products li.product .onsale {
  background: var(--nilotic-color-cream);
  border-radius: 0;
  color: var(--nilotic-color-coffee);
  font-size: 0.62rem;
  left: 0.75rem;
  letter-spacing: 0.15em;
  margin: 0;
  min-height: auto;
  min-width: auto;
  padding: 0.3rem 0.55rem;
  right: auto;
  top: 0.75rem;
  text-transform: uppercase;
}

.product-card__collection,
.single-product__collection {
  color: var(--nilotic-color-rust);
  font-size: 0.64rem;
  letter-spacing: 0.2em;
  margin: 0 0 0.45rem;
  text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--nilotic-color-ink);
  font-family: var(--nilotic-serif);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 400;
  line-height: 1.18;
  padding: 0;
}

.woocommerce ul.products li.product .star-rating {
  color: var(--nilotic-color-rust);
  margin: 0.6rem 0 0;
}

.woocommerce ul.products li.product .price {
  color: var(--nilotic-color-ink);
  font-family: var(--nilotic-serif);
  font-size: 1.15rem;
  margin: 0.55rem 0 0;
}

.product-card__tagline {
  color: var(--nilotic-color-muted);
  font-size: 0.78rem;
  line-height: 1.45;
  margin: 0.45rem 0 0;
}

.woocommerce ul.products li.product .button {
  align-items: center;
  background: var(--nilotic-color-card);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-coffee);
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  letter-spacing: 0.2em;
  margin-top: 1rem;
  width: 100%;
}

.woocommerce ul.products li.product .nilotic-product-card__media > .nilotic-quick-view-button {
  bottom: 1rem;
  font-size: 0.64rem;
  gap: 0.42rem;
  left: 50%;
  line-height: 1;
  margin: 0;
  min-height: 2.4rem;
  opacity: 0;
  padding: 0.45rem 0.9rem;
  position: absolute;
  transform: translate(-50%, 0.5rem);
  transition: background 200ms ease, color 200ms ease, opacity 250ms ease, transform 250ms ease;
  white-space: nowrap;
  width: auto;
  z-index: 4;
}
.woocommerce ul.products li.product .nilotic-product-card__media:hover > .nilotic-quick-view-button,
.woocommerce ul.products li.product .nilotic-product-card__media > .nilotic-quick-view-button:focus-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (hover: none) {
  .woocommerce ul.products li.product .nilotic-product-card__media > .nilotic-quick-view-button { opacity: 1; transform: translate(-50%, 0); }
}

.nilotic-quick-view-button .nilotic-icon {
  height: 0.8rem;
  width: 0.8rem;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
  background: var(--nilotic-color-coffee);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.woocommerce ul.products li.product .button.loading {
  opacity: 0.68;
}

.woocommerce ul.products li.product .nilotic-quick-view__actions .button.is-added {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
  color: var(--nilotic-color-cream);
}

.woocommerce ul.products li.product .added_to_cart {
  color: var(--nilotic-color-rust);
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  padding-top: 0.65rem;
  text-align: center;
  text-transform: uppercase;
}

.nilotic-quick-view {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  color: var(--nilotic-color-ink);
  margin: auto;
  max-height: min(38rem, calc(100vh - 2rem));
  max-width: min(54rem, calc(100vw - 2rem));
  overflow: auto;
  padding: 0;
  width: 100%;
}

.nilotic-quick-view::backdrop {
  background: rgb(23 18 15 / 72%);
  backdrop-filter: blur(3px);
}

.nilotic-quick-view__close {
  align-items: center;
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  color: var(--nilotic-color-ink);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.5rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 0.75rem;
  top: 0.75rem;
  width: 2.5rem;
  z-index: 2;
}

.nilotic-quick-view__close:hover,
.nilotic-quick-view__close:focus-visible {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
  color: var(--nilotic-color-cream);
}

.nilotic-quick-view__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 0;
}

.nilotic-quick-view__image {
  align-items: center;
  background: #eee6db;
  display: flex;
  justify-content: center;
  min-height: 25rem;
  overflow: hidden;
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.nilotic-quick-view__image img {
  background: transparent !important;
  display: block;
  height: auto;
  inset: auto;
  margin: 0 !important;
  max-height: 24rem;
  max-width: 100%;
  object-fit: contain;
  padding: 0 !important;
  position: static;
  width: auto;
}

.nilotic-quick-view__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.75rem, 4vw, 3rem);
}

.nilotic-quick-view__content h2 {
  font-family: var(--nilotic-serif);
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 0;
}

.nilotic-quick-view__content > p:not(.product-card__collection) {
  color: var(--nilotic-color-muted);
  margin: 1rem 0 0;
}

.nilotic-quick-view__price {
  font-family: var(--nilotic-serif);
  font-size: 1.5rem;
  margin-top: 1rem;
}

.nilotic-quick-view__actions {
  align-items: stretch;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: auto;
  padding-top: 1.25rem;
}

.nilotic-quick-view__purchase {
  min-height: 4rem;
  position: relative;
}

.woocommerce ul.products li.product .nilotic-quick-view__purchase .button {
  font-size: 0.64rem;
  gap: 0.4rem;
  height: 2.75rem;
  line-height: 1;
  margin: 0;
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
}

.nilotic-quick-view__purchase .nilotic-icon {
  flex: 0 0 auto;
  height: 0.78rem;
  width: 0.78rem;
}

.woocommerce ul.products li.product .nilotic-quick-view__purchase .added_to_cart {
  bottom: 0;
  left: 0;
  line-height: 1.15rem;
  padding: 0;
  position: absolute;
  right: 0;
}

.nilotic-quick-view__details {
  align-items: center;
  border: 1px solid var(--nilotic-color-coffee);
  color: var(--nilotic-color-rust);
  display: inline-flex;
  font-size: 0.64rem;
  gap: 0.4rem;
  height: 2.75rem;
  justify-content: center;
  letter-spacing: 0.14em;
  margin-top: 0;
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-quick-view__details .nilotic-icon {
  flex: 0 0 auto;
  height: 0.78rem;
  width: 0.78rem;
}

.woocommerce nav.woocommerce-pagination {
  margin-top: 3rem;
}

.woocommerce nav.woocommerce-pagination ul {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 1px solid var(--nilotic-color-border);
  margin: 0.2rem;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 2.5rem;
  padding: 0.7rem;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.shop-empty {
  padding: clamp(1rem, 4vw, 3rem) 0;
}

@media (max-width: 700px) {
  .nilotic-coffee-empty { grid-template-columns: 1fr; text-align: center; }
  .nilotic-coffee-empty__image { margin: 0 auto; max-width: 30rem; }
  .nilotic-coffee-empty__copy { margin: 0 auto; }
}

.single-product__back {
  padding-top: 2rem;
}

.single-product__back a {
  color: var(--nilotic-color-muted);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-decoration: none;
  text-transform: uppercase;
}

.single-product__shell {
  padding-block: 2.5rem 5rem;
}

.nilotic-single-product {
  overflow-x: clip;
}

.woocommerce div.product {
  display: block;
}

.nilotic-product-overview {
  align-items: start;
  display: grid;
  gap: clamp(2.5rem, 5vw, 4rem);
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  position: relative;
}

.woocommerce div.product::before,
.woocommerce div.product::after {
  display: none;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  float: none;
  margin: 0;
  width: auto;
}

.woocommerce div.product div.images {
  align-self: start;
  background: transparent;
  padding: 0;
  position: sticky !important;
  top: 7rem;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
  aspect-ratio: 1;
  background: #eee6db;
  overflow: hidden;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image > a {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image > a > img {
  height: 100%;
  object-fit: contain;
  padding: clamp(1.5rem, 3vw, 2rem);
  width: 100%;
}

.woocommerce div.product div.images .flex-control-thumbs {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
}

.woocommerce div.product div.images .flex-control-thumbs li {
  aspect-ratio: 1;
  float: none;
  overflow: hidden;
  width: 6rem;
}

.woocommerce div.product div.images .flex-control-thumbs img {
  background: #eee6db;
  height: 100%;
  object-fit: contain;
  padding: 0.5rem;
  width: 100%;
}

.woocommerce div.product div.summary {
  padding-top: 1rem;
}

.woocommerce div.product .product_title {
  font-family: var(--nilotic-serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1.25;
  margin: 0;
}

.woocommerce div.product .woocommerce-product-rating {
  margin: 1rem 0;
}

.woocommerce .star-rating,
.woocommerce .star-rating::before {
  color: var(--nilotic-color-rust);
}

.nilotic-product-purchase {
  border-block: 1px solid var(--nilotic-color-border);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin: 1.5rem 0;
  padding-block: 1.25rem;
}

.woocommerce div.product .nilotic-product-purchase p.price,
.woocommerce div.product .nilotic-product-purchase span.price {
  border: 0;
  color: var(--nilotic-color-ink);
  display: block;
  font-family: var(--nilotic-serif);
  font-size: 2.25rem;
  line-height: 1.2;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}

.woocommerce-product-details__short-description {
  color: var(--nilotic-color-muted);
  line-height: 1.7;
}

.woocommerce div.product form.cart {
  align-items: stretch;
  display: flex;
  gap: 0.6rem;
  margin: 0;
}

.woocommerce div.product form.cart .quantity {
  border: 1px solid var(--nilotic-color-border);
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 2.25rem 3.25rem 2.25rem;
  min-height: 3.5rem;
}

.woocommerce div.product form.cart .quantity .qty {
  appearance: textfield;
  background: transparent;
  border: 0;
  border-inline: 1px solid var(--nilotic-color-border);
  min-height: auto;
  padding: 0;
  text-align: center;
  width: 100%;
}

.woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

.nilotic-product-quantity__button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--nilotic-color-coffee);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.15rem;
  justify-content: center;
  padding: 0;
}

.nilotic-product-quantity__button:hover,
.nilotic-product-quantity__button:focus-visible {
  background: #f2e8dc;
  color: var(--nilotic-color-rust);
}

.woocommerce div.product form.cart .button {
  background: var(--nilotic-color-card);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-coffee);
  flex: 1;
  letter-spacing: 0.2em;
  min-height: 3.5rem;
}

.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart .button:focus-visible {
  background: var(--nilotic-color-coffee);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.nilotic-amazon-button {
  background: var(--nilotic-color-rust) !important;
  border-color: var(--nilotic-color-rust) !important;
  display: flex !important;
  justify-content: center;
  margin: 0 0 0.6rem !important;
  width: 100%;
}

.nilotic-product-purchase__actions {
  min-width: 0;
}

.nilotic-product-availability {
  width: 100%;
}

.nilotic-product-availability__label,
.nilotic-quick-view__availability {
  align-items: center;
  background: #eee6db;
  color: var(--nilotic-color-coffee);
  display: flex;
  font-size: 0.68rem;
  justify-content: center;
  letter-spacing: 0.22em;
  min-height: 3.5rem;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
}

.nilotic-product-availability > p:last-child {
  color: var(--nilotic-color-muted);
  margin: 1rem 0 0;
}

.product_meta {
  color: var(--nilotic-color-muted);
  font-size: 0.78rem;
  line-height: 1.8;
  margin-top: 1.5rem;
}

.product_meta > span {
  display: block;
}

.product-assurances {
  border-top: 1px solid var(--nilotic-color-border);
  color: var(--nilotic-color-muted);
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 1.5rem 0 0;
}

.product-assurances li::before {
  color: #42753c;
  content: "✓";
  margin-right: 0.6rem;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
  grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs {
  background: var(--nilotic-color-card);
  border-block: 1px solid var(--nilotic-color-border);
  margin-top: 1rem;
  margin-left: calc(50% - 50vw);
  padding: clamp(1.5rem, 2.5vw, 2.25rem) max(clamp(1.4rem, 4vw, 2.5rem), calc((100vw - 75rem) / 2));
  width: 100vw;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  margin: 0 0 2rem;
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nilotic-color-border);
  border-radius: 0;
  margin: 0 1rem 0 0;
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border-color: var(--nilotic-color-rust);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  padding: 0.75rem;
  text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs h2,
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
  font-family: var(--nilotic-serif);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 400;
}

.woocommerce div.product .related,
.woocommerce div.product .upsells {
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  padding-block: clamp(3rem, 6vw, 5rem);
  width: 100vw;
}

.woocommerce div.product .related > h2,
.woocommerce div.product .related > ul.products,
.woocommerce div.product .upsells > h2,
.woocommerce div.product .upsells > ul.products {
  margin-inline: auto;
  max-width: 75rem;
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
  margin-top: 0;
  text-align: left;
  width: calc(100% - 2.8rem);
}

.woocommerce div.product .related > ul.products,
.woocommerce div.product .upsells > ul.products {
  display: flex;
  gap: 1.5rem;
  margin-inline: 0;
  max-width: none;
  overflow: visible;
  padding: 0;
  width: max-content;
}

.woocommerce div.product .related > ul.products.nilotic-product-grid,
.woocommerce div.product .upsells > ul.products.nilotic-product-grid {
  display: grid;
  gap: clamp(1.25rem, 2vw, 2rem);
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, 10.5rem), 16.25rem)
  );
  justify-content: center;
  margin-inline: auto;
  max-width: 75rem;
  padding-inline: 1.4rem;
  width: 100%;
}

.woocommerce div.product .related > ul.products.nilotic-product-grid li.product,
.woocommerce div.product .upsells > ul.products.nilotic-product-grid li.product {
  min-width: 0;
  width: 100%;
}

.woocommerce div.product .related > ul.products li.product,
.woocommerce div.product .upsells > ul.products li.product {
  flex: 0 0 13.75rem;
  width: 13.75rem;
}

.woocommerce div.product .related .nilotic-product-card.is-compact .nilotic-product-card__media,
.woocommerce div.product .upsells .nilotic-product-card.is-compact .nilotic-product-card__media {
  aspect-ratio: 1;
  margin-bottom: 0;
}

.woocommerce div.product .related .nilotic-product-card.is-compact .nilotic-product-card__image-link > img,
.woocommerce div.product .upsells .nilotic-product-card.is-compact .nilotic-product-card__image-link > img {
  padding: 1rem;
}

.woocommerce div.product .related .nilotic-product-card.is-compact .nilotic-product-card__details,
.woocommerce div.product .upsells .nilotic-product-card.is-compact .nilotic-product-card__details {
  display: block;
  padding-top: 0.75rem;
}

.woocommerce div.product .related .nilotic-product-card.is-compact .woocommerce-loop-product__title,
.woocommerce div.product .upsells .nilotic-product-card.is-compact .woocommerce-loop-product__title {
  font-size: 1rem;
  line-height: 1.35;
  margin: 0;
}

.woocommerce div.product .related .nilotic-product-card__compact-meta,
.woocommerce div.product .upsells .nilotic-product-card__compact-meta {
  margin-top: 0.55rem;
}

.woocommerce div.product .related .nilotic-product-card__compact-meta .price,
.woocommerce div.product .upsells .nilotic-product-card__compact-meta .price {
  font-size: 1rem;
  margin: 0;
}

.woocommerce div.product .related .nilotic-product-card__flavors,
.woocommerce div.product .upsells .nilotic-product-card__flavors {
  color: var(--nilotic-color-muted);
  font-size: 0.75rem;
  line-height: 1.45;
  margin: 0.35rem 0 0;
}

.woocommerce div.product .related > ul.products.nilotic-product-marquee,
.woocommerce div.product .upsells > ul.products.nilotic-product-marquee {
  animation: nilotic-product-marquee 40s linear infinite;
}

.woocommerce div.product .related > ul.products.nilotic-product-marquee:hover,
.woocommerce div.product .upsells > ul.products.nilotic-product-marquee:hover {
  animation-play-state: paused;
}

@keyframes nilotic-product-marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@media (min-width: 48rem) {
  .woocommerce div.product .related > ul.products,
  .woocommerce div.product .upsells > ul.products {
    gap: 2rem;
  }

  .woocommerce div.product .related > ul.products li.product,
  .woocommerce div.product .upsells > ul.products li.product {
    flex-basis: clamp(10.5rem, calc((min(100vw, 75rem) - 10rem) / 6), 16.25rem);
    width: clamp(10.5rem, calc((min(100vw, 75rem) - 10rem) / 6), 16.25rem);
  }

  .woocommerce div.product .related > ul.products.nilotic-product-grid li.product,
  .woocommerce div.product .upsells > ul.products.nilotic-product-grid li.product {
    width: 100%;
  }
}

/* WooCommerce Checkout Block */
.nilotic-checkout {
  padding-block: clamp(1.5rem, 3vw, 2.5rem) clamp(4rem, 7vw, 6rem);
}

.nilotic-checkout__back {
  align-items: center;
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.55rem;
  letter-spacing: 0.2em;
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-checkout__back .nilotic-icon { height: 0.9rem; width: 0.9rem; }

.nilotic-checkout__header {
  margin: clamp(1.75rem, 3vw, 2.75rem) 0 clamp(2rem, 4vw, 3rem);
}

.nilotic-checkout__header h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 0;
}

.nilotic-checkout__content > .wp-block-woocommerce-checkout { margin: 0; max-width: none; }

.nilotic-checkout .wc-block-components-sidebar-layout {
  align-items: start;
  gap: clamp(2rem, 5vw, 5rem);
}

.nilotic-checkout .wc-block-components-main {
  min-width: 0;
  padding-right: 0;
  width: 100%;
}

.nilotic-checkout .wc-block-components-sidebar {
  background: transparent;
  border: 0;
  min-width: 0;
  padding: 0;
  position: sticky;
  top: 7rem;
  width: 100%;
}

@media (min-width: 901px) {
  .nilotic-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.6fr) minmax(22rem, 0.8fr);
  }

  .nilotic-checkout .wc-block-components-main,
  .nilotic-checkout .wc-block-components-sidebar {
    float: none !important;
    margin: 0 !important;
    width: auto !important;
  }
}

.nilotic-checkout .wc-block-components-checkout-step {
  border-bottom: 0;
  margin: 0;
  padding: 0 0 2rem;
}

.nilotic-checkout .wc-block-components-checkout-step + .wc-block-components-checkout-step { padding-top: 2rem; }

.nilotic-checkout .wc-block-components-title,
.nilotic-checkout .wc-block-components-checkout-step__title,
.nilotic-checkout .wc-block-components-checkout-order-summary__title-text {
  font-family: var(--nilotic-serif);
  font-size: 1.65rem;
  font-weight: 500;
}

.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input[type="email"],
.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input[type="number"],
.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input[type="tel"],
.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input[type="text"],
.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input[type="url"],
.nilotic-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
.nilotic-checkout .wc-block-components-textarea {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  border-radius: 0;
  color: var(--nilotic-color-ink);
  font: inherit;
  min-height: 3.5rem;
}

.nilotic-checkout .wc-block-components-form .wc-block-components-text-input input:focus,
.nilotic-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.nilotic-checkout .wc-block-components-textarea:focus {
  border-color: var(--nilotic-color-rust);
  box-shadow: 0 0 0 2px rgb(196 59 21 / 15%);
  outline: 0;
}

.nilotic-checkout .wc-block-components-textarea {
  line-height: 1.55;
  min-height: 7rem;
  padding: 0.85rem 1rem;
  resize: vertical;
}

.nilotic-checkout .wc-block-components-textarea::placeholder { color: var(--nilotic-color-muted); }

.nilotic-checkout .wc-block-components-checkbox label {
  align-items: center;
  gap: 0.75rem;
}

.nilotic-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
  appearance: none !important;
  background: var(--nilotic-color-card) !important;
  border: 1px solid var(--nilotic-color-border);
  border-radius: 0 !important;
  box-shadow: none;
  flex: 0 0 1.25rem;
  height: 1.25rem;
  margin: 0;
  width: 1.25rem;
}

.nilotic-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
  background: var(--nilotic-color-rust) !important;
  border-color: var(--nilotic-color-rust);
}

.nilotic-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus-visible {
  border-color: var(--nilotic-color-rust);
  box-shadow: 0 0 0 2px rgb(196 59 21 / 15%);
  outline: 0;
}

.nilotic-checkout .wc-block-components-checkbox__mark {
  fill: var(--nilotic-color-cream);
  height: 1rem;
  left: 0.125rem;
  top: 0.125rem;
  width: 1rem;
}

.nilotic-checkout .wc-block-components-form .wc-block-components-text-input label,
.nilotic-checkout .wc-blocks-components-select__label { color: var(--nilotic-color-muted); }
.nilotic-checkout .wc-block-components-address-form { gap: 0.85rem; }

.nilotic-checkout .wc-block-components-order-summary-item__image {
  align-self: start;
  aspect-ratio: 1;
  background: #eee6db;
  border-radius: 0;
  height: 4.5rem;
  width: 4.5rem;
}

.nilotic-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 0;
  height: 100%;
  max-width: none;
  object-fit: contain;
  width: 100% !important;
}
.nilotic-checkout .wc-block-components-order-summary-item__description { padding-left: 1rem; }

.nilotic-checkout .wc-block-components-product-name {
  font-family: var(--nilotic-serif);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
}

.nilotic-checkout .wc-block-components-panel,
.nilotic-checkout .wc-block-components-totals-wrapper,
.nilotic-checkout .wc-block-components-checkout-order-summary__title { border-color: var(--nilotic-color-border); }

.nilotic-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.nilotic-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: var(--nilotic-serif);
  font-size: 1.65rem;
}

.nilotic-checkout .wc-block-components-button,
.nilotic-checkout .wc-block-components-checkout-place-order-button {
  align-items: center;
  background: var(--nilotic-color-rust);
  border: 1px solid var(--nilotic-color-rust);
  border-radius: 0;
  color: var(--nilotic-color-cream);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 600;
  justify-content: center;
  letter-spacing: 0.2em;
  min-height: 3.5rem;
  padding: 0.9rem 1.25rem;
  text-align: center;
  text-transform: uppercase;
}

.nilotic-checkout .wc-block-components-button:hover,
.nilotic-checkout .wc-block-components-button:focus-visible {
  background: var(--nilotic-color-coffee);
  border-color: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
}

.nilotic-checkout .wc-block-components-notice-banner { border-radius: 0; font-size: 0.88rem; }
.nilotic-checkout .wc-block-components-notice-banner.is-error { background: #fff1ed; border-color: var(--nilotic-color-rust); }
.nilotic-checkout .wc-block-checkout__terms { color: var(--nilotic-color-muted); font-size: 0.78rem; }
.nilotic-checkout .wc-block-checkout__terms--with-separator { border-top: 0 !important; }
.nilotic-checkout .wc-block-checkout__terms a {
  color: var(--nilotic-color-ink);
  text-decoration: underline;
  text-decoration-color: var(--nilotic-color-rust);
  text-underline-offset: 0.2em;
}
.nilotic-checkout .wc-block-components-checkbox__label { color: var(--nilotic-color-ink); font-size: 0.88rem; }

@media (max-width: 900px) {
  .nilotic-checkout .wc-block-components-sidebar { position: static; }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce div.product .related > ul.products.nilotic-product-marquee,
  .woocommerce div.product .upsells > ul.products.nilotic-product-marquee {
    animation: none;
    flex-wrap: wrap;
    margin-inline: auto;
    max-width: 75rem;
    width: calc(100% - 2.8rem);
  }

  .woocommerce div.product .related > ul.products.nilotic-product-marquee > [data-marquee-clone],
  .woocommerce div.product .upsells > ul.products.nilotic-product-marquee > [data-marquee-clone] {
    display: none;
  }
}

.nilotic-product-details {
  max-width: 42rem;
}

.nilotic-product-details div {
  border-bottom: 1px solid var(--nilotic-color-border);
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  padding-block: 0.75rem;
}

.nilotic-product-details dt {
  color: var(--nilotic-color-muted);
}

.nilotic-product-details dd {
  font-weight: 600;
  margin: 0;
  text-align: right;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--nilotic-color-card);
  border-top-color: var(--nilotic-color-rust);
  color: var(--nilotic-color-ink);
}

/* Cart: native WooCommerce behavior in the Nilotic storefront composition. */
.woocommerce-cart .site-main.section-shell {
  max-width: var(--nilotic-content-width);
  padding-block: clamp(2rem, 5vw, 4.5rem);
}

.woocommerce-cart .site-main > article > h1:first-child {
  display: none;
}

.nilotic-cart__continue {
  align-items: center;
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.55rem;
  letter-spacing: 0.24em;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
  text-decoration: none;
  text-transform: uppercase;
}

.nilotic-cart__continue .nilotic-icon {
  height: 0.8rem;
  width: 0.8rem;
}

.nilotic-cart__continue:hover,
.nilotic-cart__continue:focus-visible {
  color: var(--nilotic-color-rust);
}

.nilotic-cart__layout {
  align-items: start;
  display: grid;
  gap: clamp(2rem, 4vw, 3.75rem);
  grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr);
}

.nilotic-cart__main > .eyebrow {
  color: var(--nilotic-color-rust);
  margin: 0 0 0.65rem;
}

.nilotic-cart__main > h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 500;
  line-height: 1;
  margin: 0 0 2.1rem;
}

.nilotic-cart__items {
  border-top: 1px solid var(--nilotic-color-border);
}

.nilotic-cart-item {
  align-items: center;
  border-bottom: 1px solid var(--nilotic-color-border);
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 7.5rem minmax(0, 1fr) auto minmax(5rem, auto);
  padding-block: 1.45rem;
}

.nilotic-cart-item__image {
  align-items: center;
  aspect-ratio: 1;
  background: #eee6db;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

.nilotic-cart-item__image a {
  height: 100%;
  width: 100%;
}

.nilotic-cart-item__image img {
  height: 100%;
  object-fit: contain;
  padding: 0.65rem;
  width: 100%;
}

.nilotic-cart-item__details h2 {
  font-family: var(--nilotic-serif);
  font-size: 1.18rem;
  line-height: 1.25;
  margin: 0 0 0.15rem;
}

.nilotic-cart-item__details h2 a {
  text-decoration: none;
}

.nilotic-cart-item__details .variation,
.nilotic-cart-item__details .wc-item-meta {
  color: var(--nilotic-color-muted);
  font-size: 0.85rem;
  margin: 0.25rem 0;
}

.nilotic-cart-item__unit-price {
  color: var(--nilotic-color-muted);
  font-size: 0.82rem;
  margin: 0.35rem 0 0.7rem;
}

.woocommerce a.remove.nilotic-cart-item__remove {
  align-items: center;
  color: var(--nilotic-color-muted) !important;
  display: inline-flex;
  font-size: 0.62rem;
  font-weight: 500;
  gap: 0.4rem;
  height: auto;
  letter-spacing: 0.18em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  width: auto;
}

.woocommerce a.remove.nilotic-cart-item__remove:hover,
.woocommerce a.remove.nilotic-cart-item__remove:focus-visible {
  background: transparent;
  color: var(--nilotic-color-rust) !important;
}

.nilotic-cart-item__remove .nilotic-icon {
  height: 0.8rem;
  width: 0.8rem;
}

.nilotic-cart-quantity {
  align-items: stretch;
  border: 1px solid var(--nilotic-color-border);
  display: grid;
  grid-template-columns: 2.25rem 2.7rem 2.25rem;
  min-height: 2.8rem;
}

.nilotic-cart-quantity button {
  background: transparent;
  border: 0;
  color: var(--nilotic-color-muted);
  cursor: pointer;
  padding: 0;
}

.nilotic-cart-quantity button:hover,
.nilotic-cart-quantity button:focus-visible {
  color: var(--nilotic-color-rust);
  outline: 1px solid var(--nilotic-color-rust);
  outline-offset: -1px;
}

.nilotic-cart-quantity .quantity {
  display: contents;
}

.woocommerce .nilotic-cart-quantity .quantity .qty {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--nilotic-color-ink);
  min-height: 0;
  padding: 0;
  text-align: center;
  width: 100%;
}

.nilotic-cart-quantity .qty::-webkit-inner-spin-button,
.nilotic-cart-quantity .qty::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

.nilotic-cart-item__subtotal {
  font-family: var(--nilotic-serif);
  font-size: 1.5rem;
  text-align: right;
  white-space: nowrap;
}

.nilotic-cart-actions {
  align-items: center;
  display: flex;
  gap: 0.65rem;
  justify-content: space-between;
  padding-top: 1rem;
}

.nilotic-cart-actions .coupon {
  display: flex;
  gap: 0.5rem;
}

.nilotic-cart-actions .input-text {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  min-height: 3rem;
  padding: 0.65rem 0.8rem;
}

.nilotic-cart__summary {
  background: rgb(255 253 248 / 55%);
  border: 1px solid var(--nilotic-color-border);
  padding: clamp(1.5rem, 3vw, 2rem);
  position: sticky;
  top: 7.5rem;
}

.woocommerce .nilotic-cart__summary .cart_totals {
  float: none;
  width: auto;
}

.woocommerce .nilotic-cart__summary .cart_totals > h2 {
  color: var(--nilotic-color-rust);
  font-family: var(--nilotic-sans);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.woocommerce .nilotic-cart__summary table.shop_table {
  border: 0;
  border-collapse: collapse;
  border-radius: 0;
  margin: 0;
}

.woocommerce .nilotic-cart__summary table.shop_table th,
.woocommerce .nilotic-cart__summary table.shop_table td {
  border: 0;
  font-size: 0.82rem;
  font-weight: 400;
  padding: 0.55rem 0;
}

.woocommerce .nilotic-cart__summary table.shop_table td {
  text-align: right;
}

.woocommerce .nilotic-cart__summary tr.order-total {
  border-top: 1px solid var(--nilotic-color-border);
}

.woocommerce .nilotic-cart__summary tr.order-total th,
.woocommerce .nilotic-cart__summary tr.order-total td {
  font-family: var(--nilotic-serif);
  font-size: 1.5rem;
  font-weight: 600;
  padding-top: 0.9rem;
}

.woocommerce .nilotic-cart__summary .wc-proceed-to-checkout {
  padding: 1.25rem 0 0;
}

.woocommerce-cart .woocommerce .nilotic-cart__summary a.checkout-button.button.alt {
  align-items: center;
  background: var(--nilotic-color-rust) !important;
  border: 1px solid var(--nilotic-color-rust) !important;
  border-radius: 0;
  box-shadow: none;
  color: #fff !important;
  display: flex;
  font-size: 0.68rem;
  font-weight: 500;
  gap: 0.65rem;
  justify-content: center;
  line-height: 1.2;
  margin: 0;
  min-height: 3.5rem;
  padding: 0.9rem 1rem;
  text-shadow: none;
}

.woocommerce-cart .woocommerce .nilotic-cart__summary a.checkout-button.button.alt:hover,
.woocommerce-cart .woocommerce .nilotic-cart__summary a.checkout-button.button.alt:focus-visible {
  background: var(--nilotic-color-coffee) !important;
  border-color: var(--nilotic-color-coffee) !important;
}

.woocommerce-cart .nilotic-cart input,
.woocommerce-cart .nilotic-cart select,
.woocommerce-cart .nilotic-cart textarea {
  border-radius: 0;
  color: var(--nilotic-color-ink);
}

.woocommerce-cart .woocommerce .nilotic-cart button.button:disabled,
.woocommerce-cart .woocommerce .nilotic-cart button.button:disabled:hover {
  background: #d8cec5;
  border-color: #d8cec5;
  color: var(--nilotic-color-muted);
  opacity: 1;
}

.nilotic-cart__summary .checkout-button .nilotic-icon {
  height: 1rem;
  width: 1rem;
}

.nilotic-cart__security-note {
  color: var(--nilotic-color-muted);
  font-size: 0.72rem;
  line-height: 1.55;
  margin: 1rem 0 0;
}

.nilotic-cart__cross-sells {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

/* Contact page */
.nilotic-contact__hero {
  padding-block: 5rem;
}

.nilotic-contact__hero .eyebrow {
  color: var(--nilotic-color-rust);
}

.nilotic-contact__hero h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(3rem, 5vw, 3.75rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 0.98;
  margin: 0.65rem 0 1.25rem;
  max-width: 48rem;
}

.nilotic-contact__hero > p:last-child {
  color: var(--nilotic-color-muted);
  font-size: 1rem;
  line-height: 1.5;
  margin: 1rem 0 0;
  max-width: 36rem;
}

.nilotic-contact__layout {
  align-items: start;
  display: grid;
  gap: clamp(2.5rem, 6vw, 6rem);
  grid-template-columns: minmax(16rem, 2fr) minmax(0, 3fr);
  padding-bottom: 6rem;
}

.nilotic-contact__details {
  display: grid;
  gap: 2rem;
}

.nilotic-contact-card {
  align-items: flex-start;
  display: flex;
  gap: 1.25rem;
}

.nilotic-contact-card__icon {
  align-items: center;
  background: var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  display: inline-flex;
  flex: 0 0 3rem;
  height: 3rem;
  justify-content: center;
}

.nilotic-contact-card__icon .nilotic-icon {
  height: 1.2rem;
  width: 1.2rem;
}

.nilotic-contact-card h2 {
  font-family: var(--nilotic-serif);
  font-size: 1.45rem;
  font-weight: 500;
  margin: 0;
}

.nilotic-contact-card p,
.nilotic-contact-card strong,
.nilotic-contact-card a {
  display: block;
  font-size: 0.88rem;
  line-height: 1.55;
}

.nilotic-contact-card p {
  color: var(--nilotic-color-muted);
  margin: 0.35rem 0 0;
}

.nilotic-contact-card strong,
.nilotic-contact-card a {
  font-weight: 600;
  margin-top: 0.2rem;
}

.nilotic-contact__page-content {
  border-top: 1px solid var(--nilotic-color-border);
  margin-top: 1rem;
  padding-top: 2rem;
}

.nilotic-contact__form-card {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
  padding: clamp(1.5rem, 4vw, 2.75rem);
}

.nilotic-contact-form,
.nilotic-contact-form label {
  display: grid;
  gap: 0.55rem;
}

.nilotic-contact-form {
  gap: 1.25rem;
}

.nilotic-contact-form__grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nilotic-contact-form label > span {
  color: var(--nilotic-color-muted);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.nilotic-contact-form input,
.nilotic-contact-form textarea {
  background: var(--nilotic-color-cream);
  border: 1px solid var(--nilotic-color-border);
  border-radius: 0;
  color: var(--nilotic-color-ink);
  font: inherit;
  min-width: 0;
  padding: 0.85rem 1rem;
  width: 100%;
}

.nilotic-contact-form input:focus,
.nilotic-contact-form textarea:focus {
  border-color: var(--nilotic-color-rust);
  outline: 2px solid rgb(196 59 21 / 15%);
  outline-offset: 0;
}

.nilotic-contact-form textarea {
  resize: vertical;
}

.nilotic-contact-form .button {
  background: var(--nilotic-color-coffee);
  border: 1px solid var(--nilotic-color-coffee);
  color: var(--nilotic-color-cream);
  cursor: pointer;
  margin-top: 0.25rem;
  min-height: 3rem;
  padding-block: 0.75rem;
  width: 100%;
}

.nilotic-contact-form .button:hover,
.nilotic-contact-form .button:focus-visible {
  background: var(--nilotic-color-rust);
  border-color: var(--nilotic-color-rust);
}

.nilotic-contact-form .button .nilotic-icon {
  height: 1rem;
  width: 1rem;
}

.nilotic-form-notice {
  border: 1px solid currentColor;
  font-size: 0.88rem;
  line-height: 1.55;
  margin-bottom: 1.5rem;
  padding: 0.9rem 1rem;
}

.nilotic-form-notice.is-success { color: #42753c; }
.nilotic-form-notice.is-error { color: #9f2f25; }

@media (max-width: 760px) {
  .nilotic-contact__layout,
  .nilotic-contact-form__grid {
    grid-template-columns: 1fr;
  }
}

/* Company pages: live-site parity */
.nilotic-company-page .eyebrow {
  color: var(--nilotic-color-rust);
  font-size: 0.75rem;
  line-height: 1.333;
  letter-spacing: 0.3em;
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.nilotic-company-page h1,
.nilotic-company-page h2,
.nilotic-company-page h3 {
  font-family: var(--nilotic-serif);
  font-weight: 400;
}

.company-image-hero,
.company-location-hero {
  background-image: linear-gradient(90deg, rgb(42 20 12 / 88%), rgb(42 20 12 / 58%), rgb(42 20 12 / 20%)), var(--company-hero);
  background-position: center;
  background-size: cover;
  color: var(--nilotic-color-cream);
  min-height: 72vh;
}

.company-image-hero__inner {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 72vh;
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.company-image-hero .eyebrow,
.company-location-hero .eyebrow,
.company-team-hero .eyebrow,
.company-values .eyebrow {
  color: rgb(255 248 238 / 72%);
}

.company-image-hero h1 {
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: 0.98;
  margin: 0;
  max-width: 48rem;
}

.company-split-intro,
.company-cause > .section-shell {
  display: grid;
  gap: clamp(2.5rem, 6vw, 6rem);
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  padding-block: clamp(4rem, 8vw, 7rem);
}

.company-split-intro { gap: 2.5rem; padding-block: 6rem; }

.company-split-intro h2,
.company-focus-preview h2,
.company-focus-details > h2,
.company-cause h2,
.company-values h2 {
  font-size: clamp(2.4rem, 4vw, 3rem);
  line-height: 1.25;
  margin: 0;
}

.company-principles {
  background: var(--nilotic-color-border);
  border: 1px solid var(--nilotic-color-border);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.company-principles article {
  background: var(--nilotic-color-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 16rem;
  padding: 1.75rem;
}

.company-principle__mark {
  color: #42753c;
  display: block;
  height: 1.75rem;
  width: 1.75rem;
}

.company-principle__mark .nilotic-icon { height: 100%; width: 100%; }

.company-principles h3 {
  font-size: 1.5rem;
  line-height: 1.333;
  margin: 0;
}

.company-principles p { margin: 0.75rem 0 0; }

.company-principles p,
.company-focus-card p,
.company-feature p,
.company-story-copy p,
.story-band p,
.company-cause p,
.company-values p,
.company-team-grid p {
  color: var(--nilotic-color-muted);
  line-height: 1.75;
}

.company-principles p,
.company-focus-card p { font-size: 0.875rem; line-height: 1.625; }

.company-focus-preview {
  background: oklch(92% 0.022 75);
  padding-block: 6rem;
}

.company-focus-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 3rem;
}

.company-focus-card {
  background: var(--nilotic-color-card);
  border: 1px solid var(--nilotic-color-border);
}

.company-focus-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}

.company-focus-card__media img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.company-focus-card__media span {
  align-items: center;
  background: rgb(255 250 241 / 94%);
  color: var(--nilotic-color-coffee);
  display: flex;
  height: 2.75rem;
  justify-content: center;
  left: 1rem;
  position: absolute;
  top: 1rem;
  width: 2.75rem;
}

.company-focus-card__media .nilotic-icon { height: 1.25rem; width: 1.25rem; }

.company-focus-card > div { padding: 1.75rem; }
.company-focus-card .eyebrow { font-size: 0.625rem; line-height: 1.6; }
.company-focus-card h3 { font-size: 1.875rem; line-height: 1.25; margin: 0; }
.company-focus-card div > p:not(.eyebrow) { margin: 1rem 0 0; }
.company-focus-card .text-link { margin-top: 1.25rem; }

.text-link {
  align-items: center;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-size: 0.68rem;
  gap: 0.5rem;
  letter-spacing: 0.2em;
  padding-bottom: 0.25rem;
  text-decoration: none;
  text-transform: uppercase;
}
.text-link .nilotic-icon { height: 0.9rem; width: 0.9rem; }

.company-focus-details { padding-block: 6rem; }
.company-focus-details > h2 { margin-bottom: 3rem; max-width: 48rem; }
.company-feature { background: var(--nilotic-color-card); border: 1px solid var(--nilotic-color-border); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.5rem; }
.company-focus-details > .company-feature:first-of-type { margin-top: 0; }
.company-feature.is-reversed > img { order: 2; }
.company-feature > img { height: 100%; min-height: 31rem; object-fit: cover; width: 100%; }
.company-feature > div { align-self: center; padding: 3.5rem; }
.company-feature__icon { align-items: center; background: var(--nilotic-color-cream); border: 1px solid var(--nilotic-color-border); color: var(--nilotic-color-rust); display: flex; height: 3rem; justify-content: center; margin-bottom: 2rem; width: 3rem; }
.company-feature__icon .nilotic-icon { height: 1.5rem; width: 1.5rem; }
.company-feature h3 { font-size: clamp(2.2rem, 3vw, 2.25rem); line-height: 1.25; margin: 0; }
.company-feature > div > p:not(.eyebrow) { line-height: 1.625; margin: 1.25rem 0 0; }
.company-feature ul { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 1.75rem 0 0; padding: 0; }
.company-feature li { border: 1px solid var(--nilotic-color-border); font-size: 0.875rem; line-height: 1.5; padding: 0.75rem 1rem; }

.company-story-lead { display: grid; gap: 3rem; grid-template-columns: minmax(0, 41fr) minmax(0, 59fr); padding-block: 6rem; }
.company-story-lead h1 { font-size: clamp(2.8rem, 4vw, 3rem); line-height: 1.05; margin: 0; }
.company-story-copy h2 { font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.15; margin: 2.5rem 0 0; }
.company-story-copy p { font-size: 1rem; line-height: 1.8; margin: 1.25rem 0 0; }
.company-offer { background: var(--nilotic-color-card); border-block: 1px solid var(--nilotic-color-border); }
.company-offer .company-split-intro { gap: 3rem; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); padding-block: 5rem; }
.story-band { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 38rem; }
.story-band.is-reversed > img { order: 2; }
.story-band > img { height: 100%; min-height: 30rem; object-fit: cover; width: 100%; }
.story-band > div { align-self: center; padding: clamp(3rem, 8vw, 7rem); }
.story-band h2 { font-size: clamp(2.6rem, 5vw, 3.75rem); line-height: 1.02; margin: 0; }
.story-band p { font-size: 1.1rem; margin-top: 1.75rem; }
.company-cause { background: var(--nilotic-color-card); border-block: 1px solid var(--nilotic-color-border); }
.company-cause p { font-size: 1.05rem; }
.company-values { background: var(--nilotic-color-coffee); color: var(--nilotic-color-cream); padding-block: clamp(4rem, 8vw, 7rem); }
.company-values h2 { max-width: 52rem; }
.company-values .section-shell > div { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 3rem; }
.company-values article { background: var(--nilotic-color-cream); color: var(--nilotic-color-coffee); min-height: 17rem; padding: 2rem; }
.company-values article:nth-child(2) { background: #eef5ef; }
.company-values article:nth-child(3) { background: #f7edf4; }
.company-values article > span { color: var(--nilotic-color-rust); display: block; height: 1.8rem; width: 1.8rem; }
.company-values article > span .nilotic-icon { height: 100%; width: 100%; }
.company-values h3 { font-size: 1.875rem; line-height: 1.2; margin: 5rem 0 0; }
.company-values article { min-height: 18rem; }

.company-team-hero { background: var(--nilotic-color-coffee); color: var(--nilotic-color-cream); padding-block: 6rem; }
.company-team-hero h1 { font-size: clamp(3rem, 5vw, 3.75rem); line-height: 1; margin: 0; }
.company-team-hero p:last-child { color: rgb(255 248 238 / 78%); max-width: 38rem; }
.company-team-hero p:last-child { margin: 1rem 0 0; }
.company-team-grid { display: grid; gap: 3.5rem 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: 5rem; }
.company-team-grid img,
.company-team-placeholder { aspect-ratio: 4 / 5; background: #eee6db; height: auto; margin-bottom: 1.25rem; object-fit: cover; width: 100%; }
.company-team-placeholder { align-items: center; display: flex; justify-content: center; }
.company-team-placeholder .nilotic-icon { color: var(--nilotic-color-muted); height: 5rem; width: 5rem; }
.company-team-grid h2 { font-size: 1.5rem; line-height: 1.333; margin: 0; }
.company-team-grid .eyebrow { margin: 0.3rem 0 0; }
.company-team-bio { font-size: 0.875rem; line-height: 1.625; margin: 0.75rem 0 0; }
.company-team-bio p { margin: 0; }
.company-team-socials { display: flex; gap: 0.55rem; margin-top: 1rem; }
.company-team-socials a { align-items: center; border: 1px solid color-mix(in srgb, var(--nilotic-color-coffee) 24%, transparent); color: var(--nilotic-color-coffee); display: inline-flex; height: 2.4rem; justify-content: center; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease; width: 2.4rem; }
.company-team-socials a:hover,
.company-team-socials a:focus-visible { background: var(--nilotic-color-coffee); border-color: var(--nilotic-color-coffee); color: var(--nilotic-color-cream); }
.company-team-socials .nilotic-icon { height: 1rem; width: 1rem; }

.nilotic-gallery-page { background: oklch(92% 0.022 75); }
.company-gallery-hero { padding-block: 6rem 3.5rem; }
.company-gallery-hero h1 { font-size: clamp(3rem, 4vw, 3rem); line-height: 1; margin: 0; max-width: 44rem; }
.company-gallery { columns: 3; column-gap: 1rem; padding-bottom: 6rem; }
.company-gallery__item { break-inside: avoid; margin: 0 0 1rem; }
.company-gallery__item button { background: #eee6db; border: 0; cursor: zoom-in; display: block; overflow: hidden; padding: 0; position: relative; width: 100%; }
.company-gallery__item.is-square button { aspect-ratio: 1; }
.company-gallery__item.is-4-5 button { aspect-ratio: 4 / 5; }
.company-gallery__item.is-3-4 button { aspect-ratio: 3 / 4; }
.company-gallery__item.is-4-3 button { aspect-ratio: 4 / 3; }
.company-gallery__item img,
.company-gallery__item video { display: block; height: 100%; object-fit: cover; transition: transform 500ms ease; width: 100%; }
.company-gallery__item button:hover img { transform: scale(1.025); }
.company-gallery__item span { background: linear-gradient(transparent, rgb(42 20 12 / 88%)); bottom: 0; color: var(--nilotic-color-cream); left: 0; padding: 4rem 1.5rem 1.4rem; position: absolute; right: 0; text-align: left; }
.company-gallery__item small { display: block; font-size: 0.6rem; letter-spacing: 0.25em; text-transform: uppercase; }
.company-gallery__item strong { display: block; font-family: var(--nilotic-serif); font-size: 1.45rem; font-weight: 400; margin-top: 0.4rem; }
.company-gallery-dialog { background: rgb(42 20 12 / 97%); border: 0; color: var(--nilotic-color-cream); height: 100vh; max-height: none; max-width: none; padding: 0; width: 100vw; }
.company-gallery-dialog::backdrop { background: rgb(23 18 15 / 94%); }
.company-gallery-dialog > header { align-items: center; border-bottom: 1px solid rgb(255 248 238 / 18%); display: flex; justify-content: space-between; min-height: 5.25rem; padding: 1rem 1.5rem; }
.company-gallery-dialog > header .eyebrow { color: rgb(255 248 238 / 68%); margin: 0 0 0.2rem; }
.company-gallery-dialog > header h2 { font-size: 1.35rem; margin: 0; }
.company-gallery-dialog__actions { display: flex; gap: 0.75rem; }
.company-gallery-dialog > [data-gallery-stage] { align-items: center; display: flex; height: calc(100vh - 10.5rem); justify-content: center; padding: 1.5rem 5rem; }
.company-gallery-dialog img,
.company-gallery-dialog video { height: 100%; object-fit: contain; width: 100%; }
.company-gallery-dialog__close,
.company-gallery-dialog__share,
.company-gallery-dialog__previous,
.company-gallery-dialog__next { align-items: center; background: transparent; border: 1px solid rgb(255 248 238 / 32%); color: var(--nilotic-color-cream); cursor: pointer; display: flex; height: 2.75rem; justify-content: center; width: 2.75rem; z-index: 2; }
.company-gallery-dialog__previous,
.company-gallery-dialog__next { position: absolute; top: 50%; }
.company-gallery-dialog__previous { left: 1rem; }
.company-gallery-dialog__next { right: 1rem; }
.company-gallery-dialog .nilotic-icon { height: 1.1rem; width: 1.1rem; }
.company-gallery-dialog footer { align-items: center; border-top: 1px solid rgb(255 248 238 / 18%); color: rgb(255 248 238 / 72%); display: flex; font-size: 0.78rem; justify-content: space-between; min-height: 5.25rem; padding: 1rem 1.5rem; }
.company-gallery-dialog footer p { margin: 0; }
.company-gallery-dialog footer > div { align-items: center; display: flex; gap: 1.5rem; }
.company-gallery-dialog footer .text-link { color: var(--nilotic-color-cream); }

.company-location-hero { min-height: 50vh; }
.company-location-hero > .section-shell { display: flex; flex-direction: column; justify-content: flex-end; min-height: 50vh; padding-bottom: 3.5rem; }
.company-location-hero h1 { font-size: clamp(3rem, 5vw, 3.75rem); line-height: 1; margin: 0; }
.company-location-layout { display: grid; gap: clamp(3rem, 7vw, 7rem); grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 5rem; }
.company-location-details { display: grid; gap: 2rem; }
.company-location-details article { display: flex; gap: 1.25rem; }
.company-location-details article > span { color: var(--nilotic-color-rust); padding-top: 0.4rem; }
.company-location-details h2 { font-size: 1.5rem; margin: 0; }
.company-location-details p { color: var(--nilotic-color-muted); margin: 0.5rem 0 0; }
.company-location-details .button { align-self: start; min-height: 3rem; width: fit-content; }
.company-location-map { aspect-ratio: 4 / 3; border: 1px solid var(--nilotic-color-border); }
.company-location-map iframe { border: 0; height: 100%; width: 100%; }

@media (max-width: 900px) {
  .company-focus-grid,
  .company-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-principles { grid-template-columns: 1fr; }
  .company-principles article { min-height: 12rem; }
  .company-gallery { columns: 2; }
}

@media (max-width: 700px) {
  .company-image-hero,
  .company-image-hero__inner { min-height: 34rem; }
  .company-split-intro,
  .company-cause > .section-shell,
  .company-story-lead,
  .company-feature,
  .story-band,
  .company-location-layout { grid-template-columns: 1fr; }
  .company-feature.is-reversed > img,
  .story-band.is-reversed > img { order: 0; }
  .company-feature > img { min-height: 20rem; }
  .company-focus-grid,
  .company-team-grid,
  .company-values .section-shell > div { grid-template-columns: 1fr; }
  .company-gallery { columns: 1; }
  .company-feature ul { grid-template-columns: 1fr; }
  .company-gallery-dialog > [data-gallery-stage] { height: 62vh; }
  .company-gallery-dialog > header h2 { font-size: 1rem; }
  .company-gallery-dialog > [data-gallery-stage] { height: calc(100vh - 10.5rem); padding-inline: 3.75rem; }
  .company-gallery-dialog footer p { max-width: 65%; }
}

.woocommerce-cart .cart-empty,
.woocommerce-cart .woocommerce-info.cart-empty {
  margin-top: 2rem;
}

.nilotic-cart--empty > .eyebrow {
  color: var(--nilotic-color-rust);
  margin: 0 0 0.65rem;
}

.nilotic-cart--empty > h1 {
  font-family: var(--nilotic-serif);
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 500;
  line-height: 1;
  margin: 0 0 2rem;
}

.nilotic-cart-empty__content {
  border-block: 1px solid var(--nilotic-color-border);
  max-width: 48rem;
  padding-block: 2rem;
}

.woocommerce .nilotic-cart-empty__content .cart-empty {
  background: transparent;
  border: 0;
  margin: 0 0 1.25rem;
  padding: 0;
}

.woocommerce .nilotic-cart-empty__content .cart-empty::before {
  display: none;
}

.nilotic-cart-empty__content .return-to-shop {
  margin: 0;
}

@media (max-width: 1080px) {
  .shop-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .shop-filter-form,
  .shadcn-shop-filters {
    width: 100%;
  }
}

@media (max-width: 960px) {
  .site-navigation--desktop {
    display: none;
  }

  .mobile-navigation {
    display: block;
    position: static;
  }

  .mobile-navigation > summary {
    border: 0;
    box-sizing: border-box;
    height: 2.25rem;
    min-height: 2.25rem;
    min-width: 2.25rem;
    padding: 0.5rem;
    position: relative;
    width: 2.25rem;
    z-index: 73;
  }

  .mobile-navigation[open] > summary {
    border: 1px solid var(--nilotic-color-rust);
    color: var(--nilotic-color-rust);
    position: fixed;
    right: 1rem;
    top: 1rem;
  }

  .mobile-navigation[open] .mobile-navigation__open-icon {
    display: none;
  }

  .mobile-navigation[open] .mobile-navigation__close-icon {
    display: block;
  }

  .mobile-navigation__backdrop {
    background: rgb(15 9 6 / 78%);
    border: 0;
    cursor: pointer;
    inset: 0;
    padding: 0;
    position: fixed;
    z-index: 70;
  }

  .mobile-navigation[open] .mobile-navigation__backdrop {
    display: block;
  }

  .mobile-navigation nav {
    background: var(--nilotic-color-card);
    border: 0;
    box-sizing: border-box;
    box-shadow: -1rem 0 2.5rem rgb(20 12 8 / 22%);
    bottom: 0;
    max-height: none;
    overflow-y: auto;
    padding: 0 1.5rem 2rem;
    position: fixed;
    right: 0;
    top: 0;
    width: min(21rem, calc(100vw - 3.5rem));
    z-index: 71;
  }

  .mobile-navigation__header {
    align-items: center;
    border-bottom: 1px solid var(--nilotic-color-border);
    display: flex;
    height: 5.5rem;
    margin: 0 -1.5rem 1rem;
    padding: 1rem 1.5rem;
  }

  .mobile-navigation__header .custom-logo {
    max-height: 3rem;
    width: auto;
  }

  .mobile-menu,
  .mobile-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .mobile-menu a {
    align-items: center;
    border-bottom: 1px solid var(--nilotic-color-border);
    display: flex;
    justify-content: space-between;
    padding: 0.8rem 0;
    text-decoration: none;
  }

  .mobile-menu .sub-menu {
    padding-left: 0;
  }

  .mobile-menu .sub-menu a {
    font-size: 1rem;
    padding-left: 0;
  }

  .mobile-menu > .menu-item-has-children > a {
    border-bottom: 0;
    color: var(--nilotic-color-muted);
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    padding-bottom: 0.3rem;
    text-transform: uppercase;
  }

  .mobile-menu .nilotic-icon--chevron-down {
    display: none;
  }

  .mobile-navigation__cart {
    display: block;
    margin-top: 2rem;
  }

  .mobile-navigation__cart .site-cart {
    border: 1px solid var(--nilotic-color-coffee);
    display: flex;
    min-height: 3.25rem;
    width: 100%;
  }

  body.nilotic-mobile-navigation-open {
    overflow: hidden;
  }

  body.nilotic-mobile-navigation-open .site-header {
    backdrop-filter: none;
    z-index: 100003;
  }

  body.admin-bar .mobile-navigation[open] > summary {
    top: 3rem;
  }

  body.admin-bar .mobile-navigation__backdrop,
  body.admin-bar .mobile-navigation nav {
    top: 2rem;
  }

  .mobile-menu .current-menu-item > a,
  .mobile-menu .current-menu-ancestor > a,
  .mobile-menu a[aria-current="page"] {
    border-left: 2px solid var(--nilotic-color-rust);
    color: var(--nilotic-color-rust);
    font-weight: 600;
    padding-left: 0.75rem;
  }

  .home-pillars__grid,
  .site-footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .site-footer__brand,
  .site-footer__newsletter {
    grid-column: 1 / -1;
  }

  .shop-filter-form,
  .shadcn-shop-filters {
    grid-template-columns: 1fr 1fr;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nilotic-quick-view__grid {
    grid-template-columns: 1fr;
  }

  .nilotic-quick-view__image {
    height: min(36vh, 18rem);
    min-height: 0;
    padding: 1.25rem;
  }

  .nilotic-quick-view__image img {
    max-height: 100%;
  }

  .nilotic-quick-view__content {
    padding: 1.5rem;
  }

  .woocommerce div.product div.images {
    position: relative !important;
    top: auto;
  }

  .nilotic-cart__layout {
    grid-template-columns: 1fr;
  }

  .nilotic-cart__summary {
    position: static;
  }

  .nilotic-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .impact-partner {
    grid-template-columns: 1fr;
    height: auto;
  }

  .impact-partner__media {
    height: clamp(14rem, 72vw, 20rem);
  }
}

@media (max-width: 680px) {
  .impact-partner {
    margin-bottom: 3.5rem;
  }

  .impact-partner__media {
    min-height: 0;
  }

  .impact-partner__content {
    padding: 2rem 1.4rem 2.2rem;
  }

  .impact-partner__actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .impact-partner__actions .button,
  .impact-partner__text-link {
    justify-content: center;
    text-align: center;
    width: 100%;
  }

  .announcement-bar {
    font-size: 0.59rem;
    letter-spacing: 0.16em;
  }

  .site-header__inner {
    min-height: 4.4rem;
  }

  .nilotic-product-overview {
    grid-template-columns: 1fr;
  }

  .woocommerce div.product div.images {
    margin-inline: auto;
    max-width: 32rem;
    width: 100%;
  }

  .site-brand__name {
    max-width: 9rem;
  }

  .home-hero {
    align-items: end;
    height: 78vh;
    min-height: 32.5rem;
  }

  .home-hero__overlay {
    background: linear-gradient(0deg, rgb(24 10 5 / 92%) 0%, rgb(24 10 5 / 35%) 76%, rgb(24 10 5 / 12%) 100%);
  }

  .home-hero__actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .home-hero__actions .button {
    width: 100%;
  }

  .home-pillars__grid,
  .product-grid,
  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .section-heading__title-row {
    align-items: start;
    flex-direction: column;
    gap: 1rem;
  }

  .instagram-strip__heading {
    align-items: start;
    flex-direction: column;
    gap: 1rem;
  }

  .site-footer__newsletter form {
    flex-direction: column;
  }

  .site-footer__base {
    align-items: start;
    flex-direction: column;
    gap: 0.5rem;
  }

  .site-footer__slogan {
    margin-left: 0;
    text-align: left;
  }

  .shop-filter-form,
  .shadcn-shop-filters,
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .woocommerce div.product form.cart {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .woocommerce div.product form.cart .button {
    min-width: calc(100% - 8.35rem);
  }

  .nilotic-product-purchase {
    grid-template-columns: 1fr;
  }

  .nilotic-cart-item {
    align-items: start;
    grid-template-columns: 5.75rem minmax(0, 1fr) auto;
  }

  .nilotic-cart-item__image {
    grid-row: 1 / 3;
  }

  .nilotic-cart-item__quantity {
    grid-column: 2;
  }

  .nilotic-cart-item__subtotal {
    font-size: 1.2rem;
    grid-column: 3;
    grid-row: 1;
  }

  .nilotic-cart-actions,
  .nilotic-cart-actions .coupon {
    align-items: stretch;
    flex-direction: column;
  }

  .nilotic-post-card--featured,
  .nilotic-post-grid,
  .nilotic-article-nav {
    grid-template-columns: 1fr;
  }

  .nilotic-article-nav a:last-child {
    text-align: left;
  }
}

@media (max-width: 782px) {
  body.admin-bar .mobile-navigation[open] > summary {
    top: 1rem;
    z-index: 100002;
  }

  body.admin-bar .mobile-navigation__backdrop {
    top: 0;
    z-index: 100000;
  }

  body.admin-bar .mobile-navigation nav {
    top: 0;
    z-index: 100001;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .instagram-strip__track {
    animation: none;
  }

  .nilotic-related__track {
    animation: none;
  }

  .home-hero__actions .button--cream::before {
    animation: none;
  }
}
