:root {
  --jis-page-width: 1320px;
  --jis-ink: #111111;
  --jis-accent: #ff5a1f;
  --jis-surface: #f5f3ef;
  --jis-white: #fff;
  --jis-muted: #6f6f6f;
  --jis-border: rgba(17, 17, 17, 0.14);
  --jis-radius-card: 24px;
  --jis-section-space: clamp(64px, 8vw, 128px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--jis-ink); background: var(--jis-surface); overflow-wrap: anywhere; }
img, video, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.jis-container { width: min(calc(100% - 40px), var(--jis-page-width)); margin-inline: auto; }
.jis-section { position: relative; padding-block: var(--jis-space-top, var(--jis-section-space)) var(--jis-space-bottom, var(--jis-section-space)); background: var(--jis-section-bg, transparent); }
.jis-section[hidden] { display: none !important; }
.jis-grid { display: grid; gap: clamp(20px, 3vw, 40px); min-width: 0; }
.jis-grid--editable { grid-template-columns: repeat(var(--jis-columns), minmax(0, 1fr)); }
.jis-section-heading { display: grid; gap: 16px; max-width: 780px; margin-bottom: clamp(32px, 5vw, 64px); }
.jis-section-heading--center { margin-inline: auto; text-align: center; }
.jis-eyebrow { margin: 0; color: var(--jis-accent); font-size: 0.78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.jis-section h1, .jis-section h2, .jis-section h3 { margin-top: 0; line-height: 1.02; letter-spacing: -0.045em; }
.jis-section h1 { font-size: clamp(3.2rem, 8vw, 8.4rem); }
.jis-section h2 { font-size: clamp(2.2rem, 5vw, 5rem); }
.jis-section h3 { font-size: clamp(1.25rem, 2vw, 2rem); }
.jis-section p { line-height: 1.7; }
.jis-card { min-width: 0; border: 1px solid var(--jis-border); border-radius: var(--jis-radius-card); background: rgba(255,255,255,.7); overflow: hidden; }
.jis-card__body { padding: clamp(20px, 3vw, 36px); }
.jis-product-card, .jis-collection-card, .jis-article-card { min-width: 0; overflow: hidden; border-radius: var(--jis-radius-card); background: #fff; }
.jis-product-card__media, .jis-collection-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #ece9e3; }
.jis-product-card__media img, .jis-collection-card__media img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transition: transform .5s ease; }
.jis-product-card:hover img, .jis-collection-card:hover img { transform: scale(1.035); }
.jis-product-card__body, .jis-collection-card__body { padding: 22px; }
.jis-product-card h3 a, .jis-collection-card h3 a, .jis-article-card h3 a { color: inherit; text-decoration: none; }
.jis-text-link { font-weight: 750; text-decoration: none; }
.jis-editor-placeholder { padding: 32px; border: 1px dashed var(--jis-border); border-radius: 18px; text-align: center; color: var(--jis-muted); }
.jis-editor-only { display: none !important; }
.jis-theme-editor .jis-editor-only { display: block !important; }
.jis-home-hero__inner { min-height: min(780px, calc(100vh - 76px)); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: clamp(32px, 7vw, 100px); }
.jis-home-hero--left .jis-home-hero__copy { order: 2; }
.jis-home-hero--left .jis-home-hero__media { order: 1; }
.jis-home-hero__body { max-width: 640px; font-size: clamp(1rem, 1.5vw, 1.3rem); }
.jis-home-hero__actions, .jis-project-form__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.jis-home-hero__proof { margin-top: 28px; color: var(--jis-muted); }
.jis-home-hero__media { min-width: 0; overflow: hidden; border-radius: clamp(24px, 4vw, 56px); }
.jis-home-hero__media img, .jis-home-hero__media video { width: 100%; min-height: 520px; -o-object-fit: cover; object-fit: cover; }
.jis-home-hero--overlay { min-height: min(920px, calc(100svh - 106px)); overflow: hidden; color: #fff; isolation: isolate; }
.jis-home-hero--overlay::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 0, 0, .84) 0%, rgba(0, 0, 0, .55) 48%, rgba(0, 0, 0, .15) 78%), linear-gradient(0deg, rgba(0, 0, 0, .62) 0%, transparent 48%); pointer-events: none; }
.jis-home-hero--overlay .jis-home-hero__inner { min-height: min(920px, calc(100svh - 106px)); display: flex; align-items: flex-end; }
.jis-home-hero--overlay .jis-home-hero__copy { position: relative; z-index: 1; width: min(850px, 78%); padding-block: clamp(120px, 18vh, 210px) clamp(64px, 10vh, 112px); }
.jis-home-hero--overlay .jis-home-hero__copy h1 { max-width: 820px; margin-bottom: 24px; font-size: clamp(3.5rem, 7.4vw, 7.6rem); text-wrap: balance; }
.jis-home-hero--overlay .jis-home-hero__body { color: rgba(255, 255, 255, .84); }
.jis-home-hero--overlay .jis-home-hero__proof { color: rgba(255, 255, 255, .72); }
.jis-home-hero--overlay .jis-home-hero__media { position: absolute; inset: 0; z-index: -2; border-radius: 0; }
.jis-home-hero--overlay .jis-home-hero__media img,
.jis-home-hero--overlay .jis-home-hero__media video { width: 100%; height: 100%; min-height: 100%; -o-object-fit: cover; object-fit: cover; }
.jis-home-hero--overlay .jis-button--secondary { border-color: rgba(255, 255, 255, .68); background: rgba(255, 255, 255, .08); color: #fff; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.jis-featured-collection + .jis-featured-collection { margin-top: 72px; }
.jis-featured-collection__heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.jis-process-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--jis-border); }
.jis-process-step { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 24px; padding-block: 28px; border-bottom: 1px solid var(--jis-border); }
.jis-process-step > span { color: var(--jis-accent); font-weight: 850; }
.jis-support-card { padding: clamp(24px, 3vw, 40px); border-top: 1px solid var(--jis-border); }
.jis-support-card__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: 32px; border-radius: 50%; background: var(--jis-accent); color: #fff; font-weight: 800; }
.jis-faq-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 8vw, 120px); align-items: start; }
.jis-faq-item { border-top: 1px solid var(--jis-border); padding-block: 20px; }
.jis-faq-item:last-child { border-bottom: 1px solid var(--jis-border); }
.jis-faq-item summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: 1.15rem; font-weight: 750; }
.jis-faq-item summary::-webkit-details-marker { display: none; }
.jis-project-form__layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 8vw, 120px); }
.jis-project-form__app { padding: clamp(24px, 4vw, 48px); border-radius: var(--jis-radius-card); background: #fff; }
.jis-project-form__privacy { color: var(--jis-muted); font-size: .86rem; }
.jis-page-hero__inner, .jis-image-text__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 8vw, 120px); align-items: center; }
.jis-page-hero__media, .jis-image-text__media { overflow: hidden; border-radius: clamp(24px, 4vw, 48px); }
.jis-page-hero__media img, .jis-page-hero__media video, .jis-image-text__media img, .jis-image-text__media video { width: 100%; aspect-ratio: 4 / 3; -o-object-fit: cover; object-fit: cover; }
.jis-image-text--right .jis-image-text__media { order: 2; }
.jis-image-text--right .jis-image-text__copy { order: 1; }
.jis-stat { padding: 28px 0; border-top: 1px solid var(--jis-border); }
.jis-stat strong { display: block; font-size: clamp(2.4rem, 5vw, 5.4rem); line-height: 1; letter-spacing: -.06em; }
.jis-stat span { display: block; margin-top: 12px; }
.jis-gallery-item { margin: 0; min-width: 0; overflow: hidden; border-radius: 24px; }
.jis-gallery-item img, .jis-gallery-item video { width: 100%; aspect-ratio: 4 / 3; -o-object-fit: cover; object-fit: cover; }
.jis-gallery-item figcaption { padding: 12px 4px; color: var(--jis-muted); }
.jis-rte { width: min(100%, 860px); margin-inline: auto; }
.jis-rte--wide { width: 100%; }
.jis-pagination { display: flex; justify-content: center; margin-top: 48px; }
.jis-product-main__layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr); gap: clamp(40px, 7vw, 100px); align-items: start; }
.jis-product-main--right .jis-product-main__gallery { order: 2; }
.jis-product-main--right .jis-product-main__info { order: 1; }
.jis-product-main__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }
.jis-product-main__gallery figure { margin: 0; min-width: 0; overflow: hidden; border-radius: 20px; background: #fff; }
.jis-product-main__gallery figure:first-child { grid-column: 1 / -1; }
.jis-product-main__gallery img { width: 100%; aspect-ratio: 1; -o-object-fit: contain; object-fit: contain; }
.jis-product-main__info { position: sticky; top: 110px; min-width: 0; }
.jis-product-main__info h1 { font-size: clamp(2.4rem, 5vw, 5.2rem); }
.jis-product-main__price { font-size: 1.5rem; font-weight: 800; }
.jis-product-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.jis-quantity-label { display: block; margin-top: 24px; font-weight: 700; }
.jis-product-main input[type="number"] { width: 96px; min-height: 48px; margin-top: 8px; padding: 8px 12px; border: 1px solid var(--jis-border); border-radius: 12px; background: #fff; }
.js [data-jis-animate] { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js [data-jis-animate].is-visible { opacity: 1; transform: none; }
.jis-article-card { padding-bottom: 24px; }
.jis-article-card > a { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.jis-article-card img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }
.jis-article-card > :not(a) { margin-inline: 22px; }
.jis-article-main__header { width: min(100%, 980px); margin: 0 auto 48px; }
.jis-article-main__image { width: min(100%, var(--jis-page-width)); max-height: 720px; margin: 0 auto 64px; border-radius: clamp(24px, 4vw, 48px); -o-object-fit: cover; object-fit: cover; }
.jis-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 12px 24px; border: 1px solid transparent; border-radius: 999px; background: var(--jis-accent); color: #fff; font-weight: 700; text-decoration: none; cursor: pointer; }
.jis-button--secondary { border-color: currentColor; background: transparent; color: var(--jis-ink); }
.jis-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.jis-noscript-nav { display: flex; flex-wrap: wrap; gap: 16px; padding: 16px 24px; background: #111; color: #fff; }
.jis-noscript-nav a { min-height: 44px; display: inline-flex; align-items: center; }

@media (max-width: 767px) {
  .jis-container { width: min(calc(100% - 28px), var(--jis-page-width)); }
  .jis-section { padding-block: var(--jis-space-top-mobile, 56px) var(--jis-space-bottom-mobile, 56px); }
  .jis-grid--editable { grid-template-columns: repeat(var(--jis-columns-mobile), minmax(0, 1fr)); }
  .jis-home-hero__inner, .jis-faq-layout, .jis-project-form__layout { min-height: 0; grid-template-columns: 1fr; }
  .jis-page-hero__inner, .jis-image-text__inner { grid-template-columns: 1fr; }
  .jis-product-main__layout { grid-template-columns: 1fr; }
  .jis-product-main__info { position: static; }
  .jis-page-hero--mobile-media-first .jis-page-hero__media, .jis-image-text--mobile-media-first .jis-image-text__media { order: 1; }
  .jis-page-hero--mobile-media-first .jis-page-hero__inner > :first-child, .jis-image-text--mobile-media-first .jis-image-text__copy { order: 2; }
  .jis-home-hero--mobile-media-first .jis-home-hero__copy { order: 2; }
  .jis-home-hero--mobile-media-first .jis-home-hero__media { order: 1; }
  .jis-home-hero__media img, .jis-home-hero__media video { min-height: 360px; }
  .jis-home-hero--overlay,
  .jis-home-hero--overlay .jis-home-hero__inner { min-height: min(780px, calc(100svh - 106px)); }
  .jis-home-hero--overlay .jis-home-hero__copy { width: 100%; padding-block: 112px 48px; }
  .jis-home-hero--overlay .jis-home-hero__copy h1 { font-size: clamp(2.8rem, 14vw, 5.2rem); }
  .jis-home-hero--overlay::after { background: linear-gradient(0deg, rgba(0, 0, 0, .86) 0%, rgba(0, 0, 0, .54) 62%, rgba(0, 0, 0, .18) 100%); }
  .jis-process-step { grid-template-columns: 48px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
