/*
Theme Name: WR Media — Ina (Fjordside)
Theme URI: https://eatfjordside.com/
Author: WR Media
Description: Editorial one-page theme for Fjordside / Ina Maria. Ships with a "Fjordside One-Pager" page template — pick it, set the page as your homepage, and edit every headline, photo and link under Fjordside → Homepage. No page builder required (Elementor optional). Nordic "Slow Passages" palette, Lora + Inter typography, WooCommerce ready.
Version: 4.9.3
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: wrmedia_ina
Tags: one-column, editor-style, custom-logo, custom-menu, featured-images, blog, e-commerce
*/

:root {
  --fj-cream:  #FDFCFB;
  --fj-forest: #1D251C;
  --fj-moss:   #232B22;
  --fj-sage:   #4A5D4E;
  --fj-leaf:   #8C7851;
  --fj-stone:  #E8E5DE;
  --fj-muted:  #6E6E68;
  --fj-container: 1120px;
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--fj-cream);
  color: var(--fj-forest);
  font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
  font-weight: 300;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
h1, h2, h3, h4, h5 {
  font-family: "Lora", ui-serif, Georgia, serif;
  font-weight: 400;
  color: var(--fj-forest);
  line-height: 1.15;
  margin: 0;
}
img, video, iframe, embed, object, svg { max-width: 100%; }
img { height: auto; display: block; }
input, select, textarea, button { max-width: 100%; font: inherit; }
a { color: inherit; }

.fj-container > *,
.fj-fb-films > *, .fj-fb-split > *, .fj-shop-grid > *,
.fj-tour-grid > *, .fj-journal-grid > *, .fj-footer__inner > * { min-width: 0; }

.fj-container {
  width: min(calc(100% - 4rem), var(--fj-container));
  margin-inline: auto;
}

/* ---------- header ---------- */
.fj-header {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 30;
}
body.fj-no-hero .fj-header {
  position: relative;
  top: auto;
  background: var(--fj-forest);
  box-shadow: 0 -3px 0 var(--fj-forest);
}

/* WordPress already reserves room for the admin bar; only the transparent
   (absolute) header needs the extra offset. */
body:not(.fj-no-hero).admin-bar .fj-header { top: 32px; }
@media (max-width: 782px) {
  body:not(.fj-no-hero).admin-bar .fj-header { top: 46px; }
}


.fj-header__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  justify-content: space-between;
  padding: 2rem 0;
}
.fj-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: "Lora", serif;
  font-style: italic;
  font-size: 1.25rem;
  color: var(--fj-cream);
  text-decoration: none;
  min-width: 0;
}
.fj-brand img { width: 36px; height: 36px; object-fit: contain; flex: 0 0 auto; }
.fj-brand span { min-width: 0; }

.fj-nav { display: none; align-items: center; gap: 2.5rem; }
@media (min-width: 900px) {
  .fj-header__inner { display: flex; }
  .fj-nav { display: flex; }
}
.fj-nav ul { display: flex; gap: 2.5rem; list-style: none; margin: 0; padding: 0; }
.fj-nav a {
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(253, 252, 251, 0.8);
  text-decoration: none;
  transition: color .2s;
}
.fj-nav a:hover { color: var(--fj-cream); }

.fj-header__cta {
  display: none;
  border: 1px solid rgba(253, 252, 251, 0.4);
  border-radius: 999px;
  padding: 0.65rem 1.25rem;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fj-cream);
  text-decoration: none;
  transition: all .2s;
}
@media (min-width: 900px) { .fj-header__cta { display: inline-block; } }
.fj-header__cta:hover { background: var(--fj-cream); color: var(--fj-forest); }

.fj-burger {
  display: inline-flex; flex-direction: column; gap: 5px;
  background: none; border: 0; cursor: pointer;
  padding: 12px; margin-right: -12px;
  min-width: 44px; min-height: 44px;
  align-items: center; justify-content: center;
}
@media (min-width: 900px) { .fj-burger { display: none; } }
.fj-burger span {
  width: 22px; height: 1px; background: var(--fj-cream);
  transition: transform .3s, opacity .2s;
}
.fj-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.fj-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.fj-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* mobile / tablet nav panel */
.fj-mobile-nav {
  display: block;
  overflow: hidden;
  max-height: 0;
  background: var(--fj-forest);
  border-top: 1px solid rgba(253, 252, 251, .12);
  transition: max-height .35s ease;
}
.fj-mobile-nav.is-open { max-height: calc(100dvh - 5rem); overflow-y: auto; overscroll-behavior: contain; }
.fj-mobile-nav > .fj-container { padding: 1.75rem 0 2rem; }
@media (min-width: 900px) { .fj-mobile-nav { display: none; } }
.fj-mobile-nav ul { list-style: none; margin: 0; padding: 0; display: grid; }
.fj-mobile-nav li { border-bottom: 1px solid rgba(253, 252, 251, .1); }
.fj-mobile-nav a {
  display: block; padding: 1rem 0;
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--fj-cream); text-decoration: none;
}
.fj-mobile-nav__cta {
  display: block !important;
  margin-top: 1.75rem;
  padding: 1.1rem 1.5rem !important;
  text-align: center;
  border-radius: 999px;
  background: var(--fj-cream);
  color: var(--fj-forest) !important;
  font-size: 10px !important; letter-spacing: .3em; text-transform: uppercase;
  text-decoration: none;
}
body.fj-nav-open { overflow: hidden; }


/* ---------- shared section type ---------- */
.fj-eyebrow,
.fj-eyebrow p {
  font-family: "Inter", sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--fj-sage) !important;
  margin: 0 !important;
}
.fj-eyebrow--light, .fj-eyebrow--light p { color: rgba(253, 252, 251, 0.7) !important; }

.fj-display h1, .fj-display h2, .fj-display h3,
.fj-display .elementor-heading-title { font-style: italic; }

.fj-body p { font-weight: 300; line-height: 1.8; color: var(--fj-muted); margin: 0 0 1.25rem; }
.fj-body--light p { color: rgba(253, 252, 251, 0.75); }
.fj-body p:last-child { margin-bottom: 0; }

.fj-rule { height: 1px; background: var(--fj-stone); }

/* Elementor button styling to match the React design */
.fj-btn .elementor-button,
.fj-btn-outline .elementor-button {
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 1.1rem 2.25rem;
  transition: all .25s;
}
.fj-btn .elementor-button { background-color: var(--fj-cream) !important; color: var(--fj-forest) !important; }
.fj-btn .elementor-button:hover { background-color: var(--fj-leaf) !important; color: var(--fj-cream) !important; }
.fj-btn-outline .elementor-button {
  background-color: transparent !important; color: var(--fj-cream) !important;
  border: 1px solid rgba(253, 252, 251, 0.4) !important;
}
.fj-btn-outline .elementor-button:hover { background-color: rgba(253, 252, 251, 0.12) !important; }
.fj-btn-dark .elementor-button { background-color: var(--fj-forest) !important; color: var(--fj-cream) !important; }
.fj-btn-dark .elementor-button:hover { background-color: var(--fj-leaf) !important; }

/* underlined text link */
.fj-link .elementor-button {
  background-color: transparent !important; color: var(--fj-forest) !important;
  border: 0; border-bottom: 1px solid var(--fj-forest); border-radius: 0;
  padding: 0 0 0.5rem;
  font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase;
}
.fj-link .elementor-button:hover { opacity: .5; background-color: transparent !important; }

/* ---------- hero ---------- */
.fj-hero video,
.fj-hero .elementor-background-video-container { object-fit: cover; }
.fj-hero__pillars .elementor-widget-heading .elementor-heading-title {
  font-style: italic; font-size: 1.5rem; color: var(--fj-cream);
}
.fj-pillar-label p {
  font-size: 10px !important; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(253, 252, 251, 0.6) !important; margin: 0.25rem 0 0 !important;
}
.fj-hero__stats { border-top: 1px solid rgba(253, 252, 251, 0.2); }

/* ---------- film cards ---------- */
.fj-film .elementor-widget-video .elementor-wrapper { border-radius: 0; }
.fj-film__meta {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  border-bottom: 1px solid var(--fj-stone); padding-bottom: 1rem;
}

/* ---------- shop ---------- */
.fj-product img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; transition: transform .7s; }
.fj-product:hover img { transform: scale(1.05); }
.fj-product .elementor-widget-heading .elementor-heading-title {
  font-style: italic; font-size: 1.25rem;
}
.fj-product-meta p {
  font-size: 10px !important; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--fj-muted) !important; margin: 0.25rem 0 0 !important;
}
.fj-product .fj-basket .elementor-button {
  width: 100%; border-radius: 0; background-color: transparent !important; color: var(--fj-forest) !important;
  border: 1px solid rgba(29, 37, 28, .2); padding: 0.9rem 1rem;
}
.fj-product .fj-basket .elementor-button:hover { background-color: var(--fj-forest) !important; color: var(--fj-cream) !important; }

/* woocommerce products grid inside the shop section */
.fj-shop .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: "Lora", serif; font-style: italic; font-size: 1.25rem; padding: 0.75rem 0 0;
}
.fj-shop .woocommerce ul.products li.product .price { color: var(--fj-forest); font-size: .95rem; }
.fj-shop .woocommerce ul.products li.product .button {
  width: 100%; border-radius: 0; background: transparent; color: var(--fj-forest);
  border: 1px solid rgba(29, 37, 28, .2);
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase; margin-top: .75rem;
}
.fj-shop .woocommerce ul.products li.product .button:hover { background: var(--fj-forest); color: var(--fj-cream); }

/* ---------- journal cards (shortcode) ---------- */
.fj-journal-grid {
  display: grid; gap: 3rem;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 768px) { .fj-journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fj-journal-card { text-decoration: none; display: block; }
.fj-journal-card__media { overflow: hidden; aspect-ratio: 4 / 5; margin-bottom: 1.5rem; background: var(--fj-stone); }
.fj-journal-card__media img { height: 100% !important; width: 100% !important; display: block; object-fit: cover; transition: transform 1s; }
.fj-journal-card:hover .fj-journal-card__media img { transform: scale(1.05); }
.fj-journal-card__meta {
  display: block; font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--fj-muted); margin-bottom: .75rem;
}
.fj-journal-card__title { font-size: 1.25rem; margin-bottom: .75rem; }
.fj-journal-card__dek { font-size: .875rem; color: var(--fj-muted); margin: 0; }

/* ---------- classic templates (journal archive / single) ---------- */
.fj-page { padding: 10rem 0 6rem; }
.fj-page__title { font-size: clamp(2.5rem, 6vw, 4rem); font-style: italic; margin-bottom: 2rem; }
.fj-entry { max-width: 46rem; }
.fj-entry p { color: var(--fj-forest); }
.fj-entry img { margin: 2rem 0; }
.fj-meta { font-size: 10px; letter-spacing: .25em; text-transform: uppercase; color: var(--fj-muted); }

/* ---------- footer ---------- */
.fj-footer { border-top: 1px solid var(--fj-stone); }
.fj-footer__inner {
  display: flex; flex-direction: column; gap: 1rem;
  justify-content: space-between; padding: 2.5rem 0; font-size: .8rem; color: var(--fj-muted);
}
@media (min-width: 768px) { .fj-footer__inner { flex-direction: row; align-items: center; } }
.fj-footer__brand {
  display: inline-flex; align-items: center; gap: .75rem;
  font-family: "Lora", serif; font-style: italic; font-size: 1.05rem; color: var(--fj-forest);
  text-decoration: none;
}
.fj-footer__brand img { width: 32px; height: 32px; object-fit: contain; }

/* ---------- full-bleed safety for Elementor sections ---------- */
.fj-site-main > .elementor { overflow-x: clip; }

/* ---------- fallback (no-Elementor) homepage ---------- */
.fj-fb-hero { position: relative; min-height: 92vh; display: flex; align-items: center; overflow: hidden; padding: 10rem 0 5rem; }
.fj-fb-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fj-fb-hero__overlay { position: absolute; inset: 0; background: rgba(29, 37, 28, .62); }
.fj-fb-hero__inner { position: relative; z-index: 2; }
.fj-fb-hero h1 { color: var(--fj-cream); font-style: italic; font-size: clamp(3rem, 8vw, 5.5rem); margin: 1.5rem 0 2rem; max-width: 880px; }
.fj-fb-hero p { color: rgba(253, 252, 251, .85); max-width: 35rem; margin: 0 0 2.5rem; }
.fj-fb-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.fj-fb-actions--stack { flex-direction: column; align-items: flex-start; }
.fj-fb-btn {
  display: inline-flex; align-items: center; gap: .75rem; border-radius: 999px;
  background: var(--fj-cream); color: var(--fj-forest); text-decoration: none;
  padding: 1.05rem 2.25rem; font-size: 10px; letter-spacing: .3em; text-transform: uppercase;
  transition: all .25s;
  max-width: 100%;
}
.fj-fb-btn:hover { background: var(--fj-leaf); color: var(--fj-cream); }
.fj-fb-btn--ghost { background: transparent; color: var(--fj-cream); border: 1px solid rgba(253,252,251,.4); }
.fj-fb-btn--ghost:hover { background: rgba(253,252,251,.12); color: var(--fj-cream); }
.fj-fb-pillars {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem;
  max-width: 42rem; margin-top: 5rem; padding-top: 2rem;
  border-top: 1px solid rgba(253,252,251,.2);
}
.fj-fb-pillars strong { display: block; font-family: "Lora", serif; font-style: italic; font-weight: 400; font-size: 1.5rem; color: var(--fj-cream); }
.fj-fb-pillars span { display: block; margin-top: .25rem; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: rgba(253,252,251,.6); }

.fj-fb-section { padding: 8rem 0; }
.fj-fb-section--tight { padding-top: 0; }
.fj-fb-section--moss { background: var(--fj-moss); color: var(--fj-cream); }
.fj-fb-h2 { font-style: italic; font-size: clamp(2rem, 4vw, 2.5rem); margin: 1.5rem 0; }
.fj-fb-h2--light { color: var(--fj-cream); font-style: normal; font-size: clamp(2.25rem, 5vw, 3.5rem); }
.fj-fb-lead { color: var(--fj-muted); max-width: 34rem; font-weight: 300; }
.fj-fb-lead--light { color: rgba(253,252,251,.7); }
.fj-fb-films { display: grid; gap: 4rem; grid-template-columns: repeat(1, minmax(0, 1fr)); margin-top: 4rem; }
@media (min-width: 900px) { .fj-fb-films { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fj-fb-embed { position: relative; aspect-ratio: 16 / 9; background: var(--fj-stone); margin-bottom: 2rem; }
.fj-fb-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fj-film__meta h3 { font-size: 1.4rem; max-width: 28rem; }
.fj-fb-split { display: grid; gap: 4rem; align-items: center; grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 900px) { .fj-fb-split { grid-template-columns: 7fr 5fr; } }
.fj-fb-split__media img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.fj-fb-section--moss .fj-fb-split__media img { aspect-ratio: 3 / 4; }
.fj-fb-textlink {
  display: inline-block; margin-top: 2rem; padding-bottom: .5rem;
  border-bottom: 1px solid var(--fj-forest); text-decoration: none;
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase;
}


.fj-shop-grid { display: grid; gap: 2.5rem 2.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 4rem; }
@media (min-width: 900px) { .fj-shop-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fj-product--static { display: flex; flex-direction: column; }
.fj-product__row { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; flex: 1; }
.fj-product--static h3 { font-style: italic; font-size: 1.25rem; }
.fj-product__detail { font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--fj-muted); margin: .25rem 0 0; }
.fj-product__price { font-size: .9rem; white-space: nowrap; }
.fj-product__btn {
  margin-top: 1.25rem; width: 100%; background: transparent; cursor: pointer;
  border: 1px solid rgba(29,37,28,.2); padding: .9rem 1rem;
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase; transition: all .2s;
}
.fj-product__btn:hover { background: var(--fj-forest); color: var(--fj-cream); }
.fj-entry-cover { margin: 2rem 0 3rem; }
.fj-pagination { margin-top: 4rem; font-size: .85rem; }

/* ---- Tours (CSV-imported) ---- */
.fj-tour-grid { display: grid; gap: 3rem 2.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); margin-top: 4rem; }
@media (min-width: 700px) { .fj-tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .fj-tour-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fj-tour { display: flex; flex-direction: column; }
.fj-tour__media { display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--fj-stone); }
.fj-tour__media img { height: 100% !important; width: 100% !important; display: block; object-fit: cover; transition: transform 1s; }
.fj-tour:hover .fj-tour__media img { transform: scale(1.05); }
.fj-tour__index { display: block; margin-top: 1.25rem; font-size: 10px; letter-spacing: .3em; color: var(--fj-muted); }
.fj-tour__title { font-size: 1.25rem; font-style: italic; margin: .5rem 0 .25rem; }
.fj-tour__title a { text-decoration: none; color: inherit; }
.fj-tour__meta { font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--fj-muted); margin: 0 0 .75rem; }
.fj-tour__dek { font-size: .875rem; color: var(--fj-muted); margin: 0 0 1.25rem; flex: 1; }
.fj-tour__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; }
.fj-tour__price { font-size: .9rem; white-space: nowrap; }
.fj-tour__btn {
	font-size: 10px; letter-spacing: .3em; text-transform: uppercase; text-decoration: none;
	border: 1px solid var(--fj-forest); color: var(--fj-forest); padding: .75rem 1.25rem; transition: all .3s;
}
.fj-tour__btn:hover { background: var(--fj-forest); color: var(--fj-cream); }

/* --- One-pager template ------------------------------------------------- */
.fj-onepager { display: block; }
.fj-fb-hero__media { z-index: 0; }
.fj-fb-hero__overlay { z-index: 1; }
.fj-fb-hero__inner { z-index: 2; }
/* --- Subscribe block ---------------------------------------------------- */
.fj-sub { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 900px) {
  .fj-sub--split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; align-items: center; }
}
.fj-sub--center { max-width: 42rem; margin-inline: auto; text-align: center; justify-items: center; }
.fj-sub--center .fj-sub__form { margin-inline: auto; }

.fj-sub__copy > * + * { margin-top: 1.25rem; }
.fj-sub__panel {
  width: 100%; display: grid; gap: 1.25rem;
  padding: clamp(1.4rem, 3.5vw, 2.25rem);
  border: 1px solid rgba(253,252,251,.14); border-radius: 18px;
  background: linear-gradient(180deg, rgba(253,252,251,.09), rgba(253,252,251,.04));
  box-shadow: 0 24px 60px -40px rgba(0,0,0,.7);
}
.fj-sub--center .fj-sub__panel { justify-items: center; }
.fj-sub__image { overflow: hidden; border-radius: 2px; }
.fj-sub__image img { display: block; width: 100%; height: 160px; object-fit: cover; }

.fj-sub__form { width: 100%; max-width: 32rem; position: relative; }
.fj-sub__fields { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
.fj-sub__field { flex: 1 1 14rem; min-width: 0; margin: 0; }
.fj-sub__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.fj-sub__form input[type="email"],
.fj-sub__form input[type="text"] {
  width: 100%; padding: .95rem 1.1rem; border-radius: 999px;
  border: 1px solid rgba(253,252,251,.35);
  background: rgba(253,252,251,.06); color: var(--fj-cream);
  font-family: inherit; font-size: .95rem;
}
.fj-sub__form input::placeholder { color: rgba(253,252,251,.55); }
.fj-sub__form input:focus-visible { outline: 2px solid var(--fj-cream); outline-offset: 2px; }
.fj-sub__btn { border: 0; cursor: pointer; white-space: nowrap; }
.fj-sub__btn[disabled] { opacity: .6; cursor: progress; }
.fj-sub__form.is-disconnected .fj-sub__btn[disabled] { cursor: not-allowed; }
.fj-sub__trap { position: absolute; left: -5000px; }
.fj-sub__note { margin: .85rem 0 0; font-size: 12px; color: rgba(253,252,251,.6); }
.fj-sub__connection-note { margin: .85rem 0 0; font-size: 12px; color: rgba(253,252,251,.7); }
.fj-sub__connection-note a { color: var(--fj-cream); text-underline-offset: .2em; }
.fj-sub__status { margin: .85rem 0 0; font-size: 13px; line-height: 1.5; min-height: 0; }
.fj-sub__status:empty { margin: 0; }
.fj-sub__status.is-pending { color: rgba(253,252,251,.7); }
.fj-sub__status.is-success { color: var(--fj-cream); font-family: var(--fj-serif, Lora), Georgia, serif; font-size: 1.05rem; }
.fj-sub__status.is-error { color: #f2b8a3; }
.fj-sub__links { display: flex; flex-wrap: wrap; gap: .75rem; }

.fj-sub__embed { width: 100%; max-width: 26rem; }
.fj-sub__embed input[type="email"],
.fj-sub__embed input[type="text"] {
  width: 100%; padding: .9rem 1rem; border: 1px solid rgba(253,252,251,.35);
  background: rgba(253,252,251,.06); color: var(--fj-cream); font-family: inherit;
}
.fj-sub__embed button, .fj-sub__embed input[type="submit"] {
  margin-top: .75rem; padding: .95rem 2rem; border: 0; cursor: pointer;
  background: var(--fj-cream); color: var(--fj-forest);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
}

@media (max-width: 599px) {
  .fj-sub { gap: 1.5rem; }
  .fj-sub__copy > * + * { margin-top: .75rem; }
  .fj-sub__panel {
    padding: 1.2rem 1.1rem;
    gap: .9rem;
    border-radius: 14px;
  }
  .fj-sub__image img { height: 130px; }
  .fj-sub__fields { gap: .6rem; }
  .fj-sub__field, .fj-sub__btn { flex: 1 1 100%; width: 100%; text-align: left; }
  .fj-sub__btn { text-align: center; justify-content: center; padding-block: .95rem; }
  .fj-sub__form input[type="email"],
  .fj-sub__form input[type="text"] { padding: .8rem 1rem; font-size: 1rem; }
  .fj-sub__note,
  .fj-sub__connection-note { margin-top: .7rem; line-height: 1.5; }
  .fj-sub__links { flex-direction: column; }
  .fj-sub__links .fj-fb-btn { width: 100%; justify-content: center; text-align: center; }
}


/* ---------- responsive: phones and portrait tablets ---------- */
@media (max-width: 899px) {
  .fj-container { width: min(calc(100% - 2.5rem), var(--fj-container)); }
  body { line-height: 1.65; }

  .fj-header__inner { padding: 1.25rem 0; gap: 1rem; }
  .fj-brand { font-size: 1.05rem; gap: .55rem; }
  .fj-brand img { width: 30px; height: 30px; }
  .fj-brand span { max-width: 60vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .fj-burger { flex: 0 0 44px; margin-right: -10px; }
  .fj-mobile-nav > .fj-container { padding: 1.25rem 0 max(2rem, env(safe-area-inset-bottom)); }
  .fj-mobile-nav__cta { width: 100%; }

  /* hero */
  .fj-fb-hero { min-height: 88svh; padding: 7.5rem 0 3.5rem; align-items: flex-end; }
  .fj-fb-hero__overlay { background: linear-gradient(180deg, rgba(29,37,28,.55) 0%, rgba(29,37,28,.72) 60%, rgba(29,37,28,.88) 100%); }
  .fj-fb-hero h1 { font-size: clamp(2.35rem, 11vw, 3.4rem); margin: 1rem 0 1.25rem; }
  .fj-fb-hero p { font-size: .95rem; margin-bottom: 2rem; }
  .fj-fb-actions { flex-direction: column; align-items: stretch; gap: .75rem; }
  .fj-fb-actions .fj-fb-btn { width: 100%; justify-content: center; text-align: center; }
  .fj-fb-pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem; margin-top: 2.75rem; padding-top: 1.5rem;
  }
  .fj-fb-pillars strong { font-size: 1.1rem; }
  .fj-fb-pillars span { font-size: 8px; letter-spacing: .14em; line-height: 1.4; }

  /* sections */
  .fj-fb-section { padding: 4.5rem 0; }
  .fj-fb-section--tight { padding-top: 0; }
  .fj-fb-h2 { font-size: clamp(1.7rem, 7vw, 2.1rem); margin: 1rem 0; }
  .fj-fb-h2--light { font-size: clamp(1.9rem, 8vw, 2.4rem); }
  .fj-fb-lead { font-size: .95rem; }
  .fj-fb-films { gap: 2.75rem; margin-top: 2.5rem; }
  .fj-fb-embed { margin-bottom: 1.25rem; }
  .fj-film__meta { flex-direction: column; align-items: flex-start; gap: .35rem; }
  .fj-film__meta h3 { font-size: 1.15rem; }
  .fj-fb-split { gap: 2rem; }
  .fj-fb-split__media img { max-height: 34rem; }
  .fj-fb-section--moss .fj-fb-split__media img { aspect-ratio: 4 / 3; }
  .fj-fb-textlink { margin-top: 1.5rem; }

  /* shop */
  .fj-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.25rem; margin-top: 2.5rem; }
  .fj-product__row { flex-direction: column; gap: .35rem; margin-top: .9rem; }
  .fj-product--static h3 { font-size: 1.05rem; }
  .fj-product__detail { font-size: 9px; letter-spacing: .18em; }
  .fj-product__btn { margin-top: .9rem; padding: .95rem 1rem; }

  /* tours */
  .fj-tour-grid { gap: 2.5rem 1.25rem; margin-top: 2.5rem; }
  .fj-tour__foot { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .fj-tour__btn { width: 100%; text-align: center; padding: .9rem 1rem; }

  /* journal */
  .fj-journal-grid { gap: 2.5rem; }
  .fj-journal-card__media { margin-bottom: 1rem; }

  /* subscribe */
  .fj-sub { gap: 1.75rem; }
  .fj-sub > *, .fj-sub__panel { width: 100%; }
  .fj-sub__embed, .fj-sub__embed input { max-width: 100%; }
  .fj-sub__embed button, .fj-sub__embed input[type="submit"] { width: 100%; }

  /* classic pages */
  .fj-page { padding: 7rem 0 4rem; }
  .fj-page__title { font-size: clamp(2rem, 9vw, 2.75rem); }
}

/* ---------- small phones ---------- */
@media (max-width: 480px) {
  .fj-container { width: min(calc(100% - 2rem), var(--fj-container)); }
  .fj-fb-hero { min-height: 88svh; padding-bottom: 2.5rem; }
  .fj-fb-hero h1 { font-size: 2.35rem; }
  .fj-fb-btn { padding-inline: 1.25rem; letter-spacing: .22em; }
  .fj-shop-grid { grid-template-columns: minmax(0, 1fr); }
  .fj-fb-pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
  .fj-fb-pillars strong { font-size: .95rem; }
}

/* ---------- tablet portrait ---------- */
@media (min-width: 481px) and (max-width: 899px) {
  .fj-container { width: min(calc(100% - 5rem), var(--fj-container)); }
  .fj-fb-hero h1 { font-size: 3.4rem; max-width: 42rem; }
  .fj-fb-hero p { max-width: 32rem; }
  .fj-fb-actions:not(.fj-fb-actions--stack) { flex-direction: row; align-items: center; }
  .fj-fb-actions:not(.fj-fb-actions--stack) .fj-fb-btn { width: auto; }
  .fj-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 1.75rem; }
}

/* ---------- compact desktop / tablet landscape ---------- */
@media (min-width: 900px) and (max-width: 1099px) {
  .fj-container { width: min(calc(100% - 5rem), var(--fj-container)); }
  .fj-header__inner { gap: 1.5rem; }
  .fj-nav, .fj-nav ul { gap: 1.25rem; }
  .fj-nav a, .fj-header__cta { letter-spacing: .2em; }
  .fj-fb-hero { min-height: 90svh; padding: 8rem 0 4rem; }
  .fj-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fj-tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fj-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- wide desktop ---------- */
@media (min-width: 1100px) {
  .fj-shop-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .fj-journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Short landscape screens need a compact hero even at desktop widths. */
@media (min-width: 700px) and (max-height: 760px) {
  .fj-fb-hero { min-height: 100svh; padding: 7rem 0 2.25rem; align-items: flex-end; }
  .fj-fb-hero h1 { font-size: 3rem; margin: .75rem 0 1rem; }
  .fj-fb-hero p { margin-bottom: 1.25rem; }
  .fj-fb-pillars { margin-top: 1.5rem; padding-top: 1rem; }
  .fj-fb-pillars strong { font-size: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .fj-fb-hero video { display: none; }
}

/* ---- One-pager navigation + growing lists (4.3.0) ---- */
.fj-site-main section[id] { scroll-margin-top: 6.5rem; }
@media (max-width: 899px) { .fj-site-main section[id] { scroll-margin-top: 5rem; } }

.fj-nav a.fj-is-active,
.fj-mobile-nav a.fj-is-active { opacity: 1; }
.fj-nav a.fj-is-active::after { transform: scaleX(1); }
.fj-mobile-nav a.fj-is-active { color: var(--fj-rust, #b4573a); }

.fj-see-all { margin: 2.75rem 0 0; }
.fj-see-all a,
.fj-more-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  font: inherit; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase;
  color: inherit; text-decoration: none; cursor: pointer;
  background: none; border: 1px solid currentColor; border-radius: 999px;
  padding: .85rem 1.6rem; transition: opacity .2s ease, transform .2s ease;
}
.fj-see-all a:hover,
.fj-more-btn:hover { opacity: .7; transform: translateY(-1px); }
@media (max-width: 480px) {
  .fj-see-all { margin-top: 2rem; }
  .fj-see-all a, .fj-more-btn { width: 100%; justify-content: center; }
}

/* ================= Subpages (4.5.0) =================
   Journal archive, single story, plain pages, search, 404.
   One shared shell so all subpages share spacing + type. */

.fj-pagehead { max-width: 46rem; margin-bottom: 4rem; }
.fj-pagehead .fj-page__title { margin-bottom: 1.25rem; }
.fj-pagehead__intro { color: var(--fj-muted); font-size: 1.05rem; margin: 0; }
.fj-pagehead__meta { margin: 1.25rem 0 0; }

/* --- featured post on the journal archive --- */
.fj-feature {
  display: grid; gap: 2.5rem; text-decoration: none;
  align-items: center; margin-bottom: 5rem;
  padding-bottom: 5rem; border-bottom: 1px solid var(--fj-stone);
}
.fj-feature > * { min-width: 0; }
.fj-feature__media { overflow: hidden; background: var(--fj-stone); aspect-ratio: 4 / 3; }
.fj-feature__media img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 1s; }
.fj-feature:hover .fj-feature__media img { transform: scale(1.04); }
.fj-feature__title { font-style: italic; font-size: clamp(1.85rem, 4vw, 2.75rem); margin: .35rem 0 1rem; }
.fj-feature__dek { color: var(--fj-muted); margin: 0; }
.fj-feature__link {
  display: inline-block; margin-top: 1.75rem;
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--fj-leaf);
}
@media (min-width: 900px) { .fj-feature { grid-template-columns: 1.15fr 1fr; gap: 3.5rem; } }

/* --- archive grid + pagination --- */
.fj-journal-grid--archive { gap: 3rem 2rem; }
.fj-pagination { margin-top: 4.5rem; border-top: 1px solid var(--fj-stone); padding-top: 2rem; }
.fj-pagination ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.fj-pagination a, .fj-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.75rem; min-height: 2.75rem; padding: 0 1rem;
  border: 1px solid var(--fj-stone); border-radius: 999px;
  font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--fj-forest); text-decoration: none; transition: all .2s;
}
.fj-pagination a:hover { background: var(--fj-forest); color: var(--fj-cream); border-color: var(--fj-forest); }
.fj-pagination .current { background: var(--fj-forest); color: var(--fj-cream); border-color: var(--fj-forest); }

/* --- single story --- */
.fj-story__cover {
  position: relative; display: flex; align-items: flex-end;
  min-height: 62svh; padding: 11rem 0 4rem;
  background-size: cover; background-position: center; background-color: var(--fj-forest);
}
.fj-story__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(29,37,28,.55) 0%, rgba(29,37,28,.25) 40%, rgba(29,37,28,.92) 100%);
}
.fj-story__cover-inner { position: relative; z-index: 2; }
.fj-story__title {
  color: var(--fj-cream); font-style: italic;
  font-size: clamp(2.25rem, 5.5vw, 4rem); max-width: 44rem; margin: 1rem 0 1.25rem;
}
.fj-meta--light { color: rgba(253,252,251,.75); margin: 0; }

.fj-story__lead {
  max-width: 46rem; margin: 4.5rem 0 2rem;
  font-family: "Lora", serif; font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.6; color: var(--fj-forest);
}
.fj-story__body { padding-bottom: 1rem; }
.fj-story__body > *:first-child { margin-top: 0; }
.fj-entry h2 { font-style: italic; font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 3rem 0 1rem; }
.fj-entry h3 { font-size: clamp(1.25rem, 2.4vw, 1.5rem); margin: 2.25rem 0 .75rem; }
.fj-entry ul, .fj-entry ol { color: var(--fj-forest); padding-left: 1.25rem; margin: 0 0 1.5rem; }
.fj-entry li { margin-bottom: .5rem; }
.fj-entry blockquote {
  margin: 3rem 0; padding: 0 0 0 1.75rem;
  border-left: 2px solid var(--fj-leaf);
  font-family: "Lora", serif; font-style: italic; font-size: 1.35rem; line-height: 1.5;
}
.fj-entry blockquote p { color: var(--fj-forest); }
.fj-entry figure { margin: 2.5rem 0; }
.fj-entry figcaption, .fj-entry .wp-caption-text {
  font-size: .8rem; color: var(--fj-muted); margin-top: .75rem; text-align: left;
}
.fj-entry a:not(.fj-fb-btn) { color: var(--fj-leaf); text-decoration: underline; text-underline-offset: .2em; }
.fj-entry hr { border: 0; border-top: 1px solid var(--fj-stone); margin: 3rem 0; }

/* Gutenberg wide / full blocks stay inside the reading column's container */
.fj-entry .alignwide { width: min(100%, 60rem); max-width: none; margin-inline: auto; }
.fj-entry .alignfull { width: 100%; max-width: none; }
.fj-entry .alignleft { float: left; margin: .5rem 2rem 1.5rem 0; max-width: 45%; }
.fj-entry .alignright { float: right; margin: .5rem 0 1.5rem 2rem; max-width: 45%; }
.fj-entry .aligncenter { margin-inline: auto; }
.fj-entry--page { max-width: 46rem; }

.fj-story__tags { margin: 2.5rem 0 0; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--fj-muted); }
.fj-story__tags a { text-decoration: none; }
.fj-story__back { margin: 3rem 0 0; }

/* --- story CTA + related --- */
.fj-story-cta { background: var(--fj-moss); color: var(--fj-cream); margin-top: 5rem; padding: 5rem 0; }
.fj-story-cta__inner { display: grid; gap: 2rem; align-items: end; }
.fj-story-cta__inner > * { min-width: 0; }
@media (min-width: 900px) { .fj-story-cta__inner { grid-template-columns: 1.4fr auto; } }
.fj-story-cta .fj-fb-h2--light { margin-top: 1rem; }

.fj-story-related { padding: 5rem 0 6rem; }
.fj-journal-grid--related { grid-template-columns: minmax(0, 1fr); margin-top: 2rem; }
@media (min-width: 768px) { .fj-journal-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fj-journal-grid--related .fj-journal-card__media { aspect-ratio: 3 / 2; }

/* --- search + 404 --- */
.fj-search { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 3rem; max-width: 32rem; }
.fj-search input[type="search"] {
  flex: 1 1 14rem; min-width: 0; padding: .95rem 1.25rem;
  border: 1px solid var(--fj-stone); border-radius: 999px; background: transparent; color: var(--fj-forest);
}
.fj-search button {
  border: 1px solid var(--fj-forest); border-radius: 999px; background: var(--fj-forest); color: var(--fj-cream);
  padding: .95rem 1.75rem; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; cursor: pointer;
}
.fj-search button:hover { background: var(--fj-leaf); border-color: var(--fj-leaf); }
.fj-404-actions { margin-top: 1rem; }
.fj-fb-btn--dark { background: var(--fj-forest); color: var(--fj-cream); }
.fj-fb-btn--dark:hover { background: var(--fj-leaf); color: var(--fj-cream); }
.fj-fb-btn--outline { background: transparent; color: var(--fj-forest); border: 1px solid rgba(29,37,28,.25); }
.fj-fb-btn--outline:hover { background: var(--fj-forest); color: var(--fj-cream); }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap;
}

/* --- responsive --- */
@media (max-width: 899px) {
  .fj-pagehead { margin-bottom: 2.75rem; }
  .fj-feature { margin-bottom: 3.25rem; padding-bottom: 3.25rem; gap: 1.5rem; }
  .fj-story__cover { min-height: 52svh; padding: 8rem 0 2.5rem; }
  .fj-story__lead { margin: 2.75rem 0 1.5rem; }
  .fj-story-cta { margin-top: 3.5rem; padding: 3.5rem 0; }
  .fj-story-related { padding: 3.5rem 0 4rem; }
  .fj-journal-grid--archive { gap: 2.5rem; }
  .fj-pagination { margin-top: 3rem; }
}
@media (max-width: 480px) {
  .fj-story__cover { min-height: 48svh; padding: 7rem 0 2rem; }
  .fj-entry blockquote { padding-left: 1.15rem; font-size: 1.15rem; margin: 2rem 0; }
  .fj-entry .alignleft, .fj-entry .alignright { float: none; max-width: 100%; margin: 1.5rem 0; }
  .fj-search { flex-direction: column; }
  .fj-search button { width: 100%; }
  .fj-404-actions .fj-fb-btn { width: 100%; justify-content: center; }
}
@media (min-width: 481px) and (max-width: 899px) {
  .fj-journal-grid--archive { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mailchimp plugin form, restyled for the moss panel */
.fj-sub__plugin { width: 100%; max-width: 32rem; }
.fj-sub--center .fj-sub__plugin { margin-inline: auto; }
.fj-sub__plugin #mc_embed_signup,
.fj-sub__plugin .mc_form_inside,
.fj-sub__plugin form { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; width: 100% !important; font: inherit !important; }
.fj-sub__plugin .mc_custom_border_hdr,
.fj-sub__plugin .mc_header_image,
.fj-sub__plugin .indicates-required,
.fj-sub__plugin #mc_display_rewards,
.fj-sub__plugin .mc_powered_by { display: none !important; }
.fj-sub__plugin .mc_merge_var { margin: 0 0 .9rem; }
.fj-sub__plugin .mc_var_label,
.fj-sub__plugin label {
  display: block; margin: 0 0 .45rem; font-size: 10px; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(253,252,251,.62); font-weight: 500;
}
.fj-sub__plugin .mc_input,
.fj-sub__plugin input[type="text"],
.fj-sub__plugin input[type="email"],
.fj-sub__plugin input[type="url"],
.fj-sub__plugin input[type="tel"],
.fj-sub__plugin select,
.fj-sub__plugin textarea {
  width: 100% !important; box-sizing: border-box; padding: .95rem 1.25rem;
  border: 1px solid rgba(253,252,251,.22); border-radius: 999px;
  background: rgba(253,252,251,.07); color: var(--fj-cream); font: inherit;
  font-size: .95rem; line-height: 1.4;
  transition: border-color .2s ease, background-color .2s ease;
}
.fj-sub__plugin textarea { border-radius: 12px; }
.fj-sub__plugin input:hover,
.fj-sub__plugin select:hover { border-color: rgba(253,252,251,.4); }
.fj-sub__plugin input::placeholder { color: rgba(253,252,251,.5); }
.fj-sub__plugin input:focus,
.fj-sub__plugin select:focus,
.fj-sub__plugin textarea:focus {
  outline: none; border-color: var(--fj-cream); background: rgba(253,252,251,.12);
}
.fj-sub__plugin input:focus-visible,
.fj-sub__plugin select:focus-visible { outline: 2px solid var(--fj-cream); outline-offset: 2px; }
.fj-sub__plugin .mc_signup_submit { margin: 1.25rem 0 0; text-align: left; }
.fj-sub__plugin #mc_signup_submit,
.fj-sub__plugin input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer; width: 100%; padding: 1.05rem 1.75rem;
  border-radius: 999px; background: var(--fj-cream); color: var(--fj-forest);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
  transition: transform .2s ease, opacity .2s ease;
}
.fj-sub__plugin #mc_signup_submit:hover,
.fj-sub__plugin input[type="submit"]:hover { opacity: .92; transform: translateY(-1px); }
.fj-sub__plugin .mc_error_msg,
.fj-sub__plugin .mc_success_msg,
.fj-sub__plugin #mc_message { margin: .9rem 0 0; font-size: 13px; line-height: 1.5; }
.fj-sub__plugin .mc_error_msg { color: #f2b8a3; }
.fj-sub__plugin .mc_success_msg { color: var(--fj-cream); font-family: var(--fj-serif, Lora), Georgia, serif; font-size: 1.05rem; }
.fj-sub__plugin .mc_interests_header { margin: 1rem 0 .5rem; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(253,252,251,.7); }
.fj-sub__plugin .mc_interest label { display: inline-block; text-transform: none; letter-spacing: 0; font-size: 13px; }
@media (min-width: 600px) {
  .fj-sub__plugin #mc_signup_submit,
  .fj-sub__plugin input[type="submit"] { width: auto; min-width: 12rem; }
}
@media (max-width: 599px) {
  .fj-sub__plugin, .fj-sub__plugin form { max-width: 100%; }
  .fj-sub__plugin .mc_merge_var { margin-bottom: .7rem; }
  .fj-sub__plugin input[type="text"],
  .fj-sub__plugin input[type="email"] { padding: .85rem 1.1rem; font-size: 1rem; }
  .fj-sub__plugin .mc_signup_submit { margin-top: 1rem; text-align: center; }
  .fj-sub__plugin #mc_signup_submit,
  .fj-sub__plugin input[type="submit"] { width: 100%; padding-block: 1rem; }
}

