/* Site Studio owns the complete work presentation inside Publisher-managed pages.
   Preserve shared site chrome (header/footer/shiori), but suppress legacy work-page
   presentation so WordPress does not visually correct or duplicate the Site Studio page. */
body.otobon-web-build-page .single-hero,
body.otobon-web-build-page .work-journey-nav,
body.otobon-web-build-page .single-reader-end { display: none !important; }
body.otobon-web-build-page .single-shell { background: transparent; }
body.otobon-web-build-page article { margin: 0; padding: 0; }
body.otobon-web-build-page .single-content,
body.otobon-web-build-page .single-content-webfeature {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit;
  line-height: inherit;
}

body.otobon-web-build-page .single-hero.compact { display: none !important; }
body.otobon-web-build-page .single-content { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; font-size: inherit; line-height: inherit; }
body.otobon-web-build-page .single-content > :first-child { margin-top: 0; }
body.otobon-web-build-page .single-content > :last-child { margin-bottom: 0; }
body.otobon-web-build-page .single-shell { overflow: clip; }
body.otobon-web-build-page .single-content img { max-width: 100%; height: auto; }

/* Block themes such as Twenty Twenty-Five constrain direct post-content children. */
body.otobon-web-build-page .entry-content > *,
body.otobon-web-build-page .wp-block-post-content > * { max-width: none !important; }

/* Site Studio and Web Build consume the same presentation data attributes. */
.site-studio-section { position: relative; overflow: hidden; }
.site-studio-section[data-site-text-align="left"] { text-align: left; }
.site-studio-section[data-site-text-align="center"] { text-align: center; }
.site-studio-section[data-site-text-align="right"] { text-align: right; }
.site-studio-section .site-studio-asset { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: calc(var(--site-focal-x, .5) * 100%) calc(var(--site-focal-y, .5) * 100%); transform: scale(var(--site-image-scale, 1)); transform-origin: center; opacity: .72; }
.site-studio-section .site-block { position: relative; z-index: 1; }
.site-studio-section { min-height: 260px; display: flex; flex-direction: column; justify-content: center; gap: 22px; padding: 58px clamp(22px, 7vw, 86px); }
.site-studio-section.variant-dark { color: #f7efe0; background: radial-gradient(circle at 70% 20%, #4b1f2a, transparent 48%), #171b20; }
.site-studio-section.variant-light { background: #e7d7bc; }
.site-studio-section.variant-full-screen, .site-studio-section.variant-cta { min-height: 480px; }
.site-studio-section[data-site-image-position="left"] .site-studio-asset { object-position: left center; }
.site-studio-section[data-site-image-position="center"] .site-studio-asset { object-position: center center; }
.site-studio-section[data-site-image-position="right"] .site-studio-asset { object-position: right center; }
.site-studio-section[data-site-image-position="top"] .site-studio-asset { object-position: center top; }
.site-studio-section[data-site-image-position="bottom"] .site-studio-asset { object-position: center bottom; }

.site-studio-section.variant-cta .site-cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  min-width: min(320px, 86vw);
  margin-top: 10px;
  padding: 14px 24px;
  border: 1px solid rgba(255,255,255,.54);
  border-radius: 999px;
  background: rgba(110,33,48,.88);
  color: #fff;
  text-decoration: none;
  letter-spacing: .04em;
  transition: transform .18s ease, background .18s ease;
}
.site-studio-section.variant-cta .site-cta-link:hover,
.site-studio-section.variant-cta .site-cta-link:focus-visible {
  background: #8b2c40;
  transform: translateY(-1px);
}



/* Fluid cinematic stage fallback. The per-build runtime carries the same
   contract; this keeps Publisher-managed pages stable during runtime reloads. */
.site-studio-canvas { container-type: inline-size; width:100%; min-width:960px; }
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] .site-studio-preview-section:not(.composite-hero) {
  min-height: 56.25cqw;
  padding-block: clamp(48px, 6.5cqw, 160px);
  padding-inline: clamp(28px, 7.5cqw, 180px);
}
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] .site-studio-preview-section.variant-full-screen,
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] .site-studio-preview-section.variant-cta {
  min-height: 56.25cqw;
}
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] .site-studio-preview-content {
  width: min(54cqw, 1100px);
  max-width: none;
}
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] h1.site-block {
  font-size: clamp(28px, calc(3.2cqw * var(--site-font-scale, 1)), 40px);
}
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] h2.site-block {
  font-size: clamp(22px, calc(2.4cqw * var(--site-font-scale, 1)), 32px);
}
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] p.site-block,
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] span.site-block,
.site-studio-canvas[data-site-id="work-nagon-kuruichou"] a.site-block {
  font-size: clamp(13px, calc(1.1cqw * var(--site-font-scale, 1)), 16px);
}


/* Minimum cinematic stage width ---------------------------------------------
   Below 960px, preserve the authored desktop composition and expose horizontal
   scrolling instead of reflowing sections vertically. */
body.otobon-web-build-page .single-content,
body.otobon-web-build-page .single-content-webfeature {
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
}
body.otobon-web-build-page .site-studio-canvas {
  width: 100%;
  min-width: 960px;
}
body.otobon-web-build-page .site-studio-preview-section {
  margin: 0;
}
