/* namespace 商店街 / approved v10
 * Standalone static page. All components are scoped to .ns-shotengai.
 * Decorative SVG geometry and tile pitch are fixed; see docs/sponsor-v10/HANDOFF.md.
 */
@font-face {
  font-family: "Namespace Sponsor JP";
  src: url("./fonts/noto-sans-jp-400.woff") format("woff");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
/* Complete glyph fallback: downloaded only if future copy needs characters
 * absent from the compact, current-copy font. Same typeface and weights. */
@font-face {
  font-family: "Namespace Sponsor JP Full";
  src: url("./fonts/noto-sans-jp-400-full.woff") format("woff");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Namespace Sponsor JP Full";
  src: url("./fonts/noto-sans-jp-600-full.woff") format("woff");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Namespace Sponsor JP";
  src: url("./fonts/noto-sans-jp-600.woff") format("woff");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
.ns-shotengai {
  --ns-paper: #f8f9f5;
  --ns-white: #ffffff;
  --ns-navy: #012e4c;
  --ns-ink: #223344;
  --ns-body: #445560;
  --ns-muted: #55636e;
  --ns-teal: #2b9294;
  --ns-teal-bright: #57afa7;
  --ns-teal-deep: #1f7881;
  --ns-button: #247f81;
  --ns-sage: #e4eeea;
  --ns-rule: #c5d5ce;
  --ns-line: #dde4e7;
  --ns-link: #1f7881;
  --ns-grout: #c1d6d0;
  --ns-radius: 14px;
  margin: 0;
  background: var(--ns-paper);
  color: var(--ns-ink);
  font: 500 16px/1.9 "Noto Sans JP", "Namespace Sponsor JP", "Namespace Sponsor JP Full", sans-serif;
  font-synthesis: none;
  line-break: strict;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}
.ns-shotengai *, .ns-shotengai *::before, .ns-shotengai *::after { box-sizing: border-box; }
.ns-shotengai :where(h1,h2,h3,h4,p,figure,ul,ol,dl,dd) { margin: 0; }
.ns-shotengai :where(ul,ol) { padding: 0; }
.ns-shotengai :where(h1,h2,h3,h4,strong,b) { font-weight: 700; }
.ns-shotengai h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 900; line-height: 1.5; letter-spacing: 0; color: var(--ns-navy); }
.ns-shotengai h3 { font-size: 20px; line-height: 1.5; color: var(--ns-navy); }
.ns-shotengai h4 { font-size: 16.5px; line-height: 1.5; color: var(--ns-navy); }
.ns-shotengai a { color: var(--ns-link); text-underline-offset: .25em; }
.ns-shotengai a:hover { text-decoration-thickness: 2px; }
.ns-shotengai a:focus-visible { outline: 3px solid var(--ns-teal-deep); outline-offset: 3px; border-radius: 4px; }
.ns-shotengai :where(section,main) { scroll-margin-top: 80px; }
.ns-shotengai .ns-wrap { width: min(1060px, 100%); margin-inline: auto; padding: 0 24px; }
.ns-shotengai .ns-section { padding: 72px 0; }
.ns-shotengai .ns-white { background: var(--ns-white); }
.ns-shotengai .ns-sage { background: var(--ns-sage); }
.ns-shotengai .ns-muted { color: var(--ns-muted); }
.ns-shotengai .ns-small { font-size: 13px; }
.ns-shotengai .ns-intro { margin-top: 0; color: var(--ns-body); line-height: 1.9; }
.ns-shotengai .ns-sec-head + .ns-intro { margin-top: 0; }
.ns-shotengai .ns-fineprint { font-size: 13.5px; line-height: 1.8; color: var(--ns-muted); }
.ns-shotengai .ns-eyebrow {
  display: flex; align-items: baseline; gap: 12px;
  color: var(--ns-teal-deep); font-size: 13px; line-height: 1.8; font-weight: 700;
}
.ns-shotengai .ns-eyebrow::before {
  content: ""; display: inline-block; flex: 0 0 10px; width: 10px; height: 10px;
  background: url("./assets/section-mark.svg") center / 10px 10px no-repeat;
}
.ns-shotengai .ns-eyebrow + h2 { margin-top: 8px; }
.ns-shotengai .ns-sec-head { margin-bottom: 40px; }
.ns-shotengai .ns-sec-head:not(:has(h2)) { margin-bottom: 24px; }
.ns-shotengai .ns-sec-head .ns-kei { margin: 0 0 14px; }
.ns-shotengai .ns-sec-head .ns-eyebrow { margin-bottom: 2px; }
.ns-shotengai .ns-sec-head h2 { margin-top: 8px; }
.ns-shotengai .ns-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ns-shotengai .ns-button {
  display: inline-flex; justify-content: center; align-items: center;
  padding: 11px 26px;
  border: 1.5px solid transparent; border-radius: 999px;
  background: var(--ns-button); color: #fff; text-decoration: none;
  font: inherit; font-size: 15px; font-weight: 700; line-height: 1.5;
  transition: background .15s, color .15s, border-color .15s;
}
.ns-shotengai .ns-button:hover { background: var(--ns-navy); }
.ns-shotengai .ns-button:focus-visible { outline-offset: 4px; }
.ns-shotengai .ns-button--small { padding: 8px 20px; font-size: 13.5px; }
.ns-shotengai .ns-button--ghost {
  background: transparent; color: var(--ns-teal-deep); border-color: var(--ns-teal-bright);
}
.ns-shotengai .ns-button--ghost:hover {
  background: var(--ns-teal-deep); color: #fff; border-color: var(--ns-teal-deep);
}
.ns-shotengai .ns-text-link { font-size: 15px; font-weight: 700; text-decoration: none; }
.ns-shotengai .ns-text-link:hover { text-decoration: underline; }
.ns-shotengai .ns-kei {
  width: 72px; height: 6px; position: relative; margin: 2px 0 22px;
}
.ns-shotengai .ns-kei::before,
.ns-shotengai .ns-kei::after { content: ""; position: absolute; top: 0; height: 100%; }
.ns-shotengai .ns-kei::before { left: 0; width: 64%; background: var(--ns-navy); }
.ns-shotengai .ns-kei::after { left: 64%; width: 36%; background: var(--ns-teal-bright); }
.ns-shotengai .ns-photo { display: block; width: 100%; max-width: 100%; height: auto; border-radius: var(--ns-radius); }
.ns-shotengai .ns-index {
  font-family: Lato, "Noto Sans JP", sans-serif;
  color: var(--ns-teal-deep); font-size: 13px; font-weight: 900; letter-spacing: .1em;
}
.ns-shotengai .ns-tiles {
  background-color: var(--ns-grout);
  background-repeat: repeat-x;
  background-position: left top;
  flex-shrink: 0;
}
/* Never use cover/100% here: each square keeps its physical dimensions. */
.ns-shotengai .ns-tiles--small { height: 22px; background-image: url("./assets/tiles-small.svg"); background-size: 528px 22px; }
.ns-shotengai .ns-tiles--large { height: 52px; background-image: url("./assets/tiles-large.svg"); background-size: 792px 52px; }
.ns-shotengai .ns-skip { position: absolute; top: 8px; left: 16px; padding: 10px 16px; background: white; transform: translateY(-200%); z-index: 2; }
.ns-shotengai .ns-skip:focus { transform: none; }

/* Header: coworking LP chrome (compact sticky bar, navy type, always-on CTA). */
.ns-shotengai .ns-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--ns-line);
}
.ns-shotengai .ns-nav-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 62px;
}
.ns-shotengai .ns-brand {
  display: flex; align-items: center; gap: 10px;
  color: var(--ns-navy); text-decoration: none; min-width: 0;
}
.ns-shotengai .ns-brand img { width: 34px; height: 34px; object-fit: contain; flex: none; }
.ns-shotengai .ns-brand-copy { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.ns-shotengai .ns-brand-name {
  font-family: Lato, "Noto Sans JP", sans-serif;
  font-weight: 900; font-size: 17px; color: var(--ns-navy); letter-spacing: .01em;
  white-space: nowrap;
}
.ns-shotengai .ns-brand-tagline {
  font-size: 11px; font-weight: 700; color: var(--ns-muted); letter-spacing: .02em; white-space: nowrap;
}
.ns-shotengai .ns-nav-end {
  display: flex; align-items: center; gap: 10px; flex: none; position: relative;
}
.ns-shotengai .ns-nav-cta { flex: none; white-space: nowrap; }
.ns-shotengai .ns-nav { display: flex; align-items: center; gap: 22px; font-size: 14px; }
.ns-shotengai .ns-nav a {
  color: var(--ns-navy); text-decoration: none; font-weight: 500; white-space: nowrap;
}
.ns-shotengai .ns-nav a:hover { color: var(--ns-teal-deep); text-decoration: none; }
.ns-shotengai .ns-nav-toggle {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ns-shotengai .ns-nav-toggle-btn { display: none; }
.ns-shotengai .ns-nav-toggle-close { display: none; }

/* Hero: coworking LP type/CTA stack; noren + tiles stay as 商店街 decoration. */
.ns-shotengai .ns-hero { padding: 64px 0 72px; }
.ns-shotengai .ns-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,5fr) minmax(0,6fr);
  grid-template-areas: "copy photos" "prose photos";
  gap: 48px 48px;
  align-items: start;
}
.ns-shotengai .ns-hero-copy { grid-area: copy; }
.ns-shotengai .ns-hero-photos { grid-area: photos; min-width: 0; }
.ns-shotengai .ns-hero-prose { grid-area: prose; font-size: 16px; line-height: 1.9; color: var(--ns-body); }
.ns-shotengai .ns-hero-eyebrow {
  font-size: 12.5px; font-weight: 500; letter-spacing: .08em; color: var(--ns-muted);
}
.ns-shotengai .ns-hero h1 {
  font-size: clamp(34px, 5vw, 52px); font-weight: 900; line-height: 1.35;
  letter-spacing: .02em; color: var(--ns-navy); margin: 18px 0 8px;
  overflow-wrap: normal;
}
.ns-shotengai .ns-br-pc { display: none; }
.ns-shotengai .ns-lede {
  color: var(--ns-body); font-size: 16.5px; line-height: 1.9; margin-bottom: 30px;
}
.ns-shotengai .ns-lede b { color: var(--ns-navy); font-weight: 700; }
.ns-shotengai .ns-cta-row {
  display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
}
.ns-shotengai .ns-hero-price { font-size: 14.5px; color: var(--ns-muted); margin-top: 16px; }
.ns-shotengai .ns-hero-prose p + p { margin-top: 22px; }
.ns-shotengai .ns-noren { display: block; width: 100%; height: auto; aspect-ratio: 62 / 7; margin-bottom: 16px; }
.ns-shotengai .ns-hero-slideshow {
  position: relative;
  width: 100%;
  aspect-ratio: 720 / 415;
  border-radius: var(--ns-radius);
  overflow: hidden;
  background: var(--ns-sage);
}
.ns-shotengai .ns-hero-slideshow .ns-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  opacity: 0;
  transition: opacity 1.7s ease;
  pointer-events: none;
}
.ns-shotengai .ns-hero-slideshow .ns-photo.is-active {
  opacity: 1;
  z-index: 1;
}
.ns-shotengai .ns-photo-pair { display: grid; grid-template-columns: 350fr 254fr; gap: 16px; align-items: end; margin-top: 43px; }
.ns-shotengai .ns-hero-photos > .ns-tiles { margin-top: 16px; }
.ns-shotengai .ns-principles {
  width: min(1060px, 100%); margin: 28px auto 0; padding: 0 24px;
  display: flex; flex-wrap: wrap; gap: 10px 28px;
  list-style: none; color: var(--ns-body); font-size: 14.5px; font-weight: 700;
}
.ns-shotengai .ns-principles li { position: relative; padding-left: 1em; }
.ns-shotengai .ns-principles li::before { content: "・"; position: absolute; left: 0; color: var(--ns-teal); }

/* Letter */
.ns-shotengai .ns-about-grid { display: grid; grid-template-columns: minmax(0,464fr) minmax(0,724fr); gap: 48px; margin-top: 0; }
.ns-shotengai .ns-about-grid h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.5; }
.ns-shotengai .ns-mission { font-size: 15px; font-weight: 700; color: var(--ns-teal-deep); margin-top: 16px; }
.ns-shotengai .ns-about-grid figure { width: min(408px,100%); margin-top: 28px; margin-left: 0; }
.ns-shotengai figcaption { color: var(--ns-muted); font-size: 12.5px; margin-top: 12px; }
.ns-shotengai .ns-letter { padding-top: 0; font-size: 16px; line-height: 1.9; color: var(--ns-body); }
.ns-shotengai .ns-letter > p + p { margin-top: 22px; }
.ns-shotengai .ns-signature { margin-top: 30px; }
.ns-shotengai .ns-signature::before {
  content: ""; display: block; width: 72px; height: 6px; margin-bottom: 20px;
  background: linear-gradient(to right, var(--ns-navy) 64%, var(--ns-teal-bright) 64%);
}
.ns-shotengai .ns-signature > .ns-muted { font-size: 13.5px; }
.ns-shotengai .ns-signature-name { font-size: 16px; font-weight: 700; color: var(--ns-navy); margin-top: 6px; }
.ns-shotengai .ns-profile { font-size: 15px; line-height: 1.9; margin-top: 16px; color: var(--ns-muted); }
.ns-shotengai .ns-operator { font-size: 13px; margin-top: 14px; color: var(--ns-muted); }
.ns-shotengai .ns-signature > a { display: inline-block; margin-top: 18px; font-size: 14px; }

/* Photographic evidence and results */
.ns-shotengai .ns-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; align-items: end; margin-top: 40px; }
.ns-shotengai .ns-gallery + .ns-tiles { margin-top: 14px; }
.ns-shotengai .ns-stats-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 16px; margin-top: 36px; }
.ns-shotengai .ns-stats-heading h3 { font-size: 20px; font-weight: 700; }
.ns-shotengai .ns-stats-heading p { font-size: 14px; color: var(--ns-muted); }
.ns-shotengai .ns-stats {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr));
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
  padding: 24px 0; margin-top: 20px;
}
.ns-shotengai .ns-stats > div { display: flex; flex-direction: column; padding: 0 24px; }
.ns-shotengai .ns-stats > div + div { border-left: 1px solid var(--ns-line); }
.ns-shotengai .ns-stats dt { font-size: 14px; font-weight: 700; margin-top: 8px; color: var(--ns-navy); }
.ns-shotengai .ns-stat-number { order: -1; color: var(--ns-navy); font-size: 34px; font-weight: 900; line-height: 1.2; white-space: nowrap; letter-spacing: .01em; }
.ns-shotengai .ns-stat-number span { font-size: 14px; font-weight: 500; margin-left: 6px; color: var(--ns-muted); }
.ns-shotengai .ns-stat-detail { font-size: 13px; line-height: 1.7; color: var(--ns-muted); margin-top: 10px; }
.ns-shotengai .ns-proof-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 28px; }
.ns-shotengai .ns-proof {
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
  padding: 30px 28px; min-height: 0;
}
.ns-shotengai .ns-proof h3 { font-size: 20px; font-weight: 700; margin-top: 16px; }
.ns-shotengai .ns-proof > p:not(.ns-eyebrow) { font-size: 14.5px; line-height: 1.9; margin-top: 12px; color: var(--ns-body); }
.ns-shotengai .ns-proof--fund { background: var(--ns-white); }
.ns-shotengai .ns-proof--fund h3 { font-size: 34px; font-weight: 900; margin-top: 16px; line-height: 1.2; letter-spacing: .01em; }
.ns-shotengai .ns-proof--fund .ns-fund-support { font-size: 15px; font-weight: 700; margin-top: 8px; color: var(--ns-navy); }
.ns-shotengai .ns-proof--fund .ns-fund-speed { font-weight: 700; color: var(--ns-teal-deep); margin-top: 16px; font-size: 14.5px; }

/* Company example: example status remains explicit. */
.ns-shotengai .ns-shop-grid { display: grid; grid-template-columns: minmax(0,580fr) minmax(0,596fr); gap: 40px; margin-top: 8px; }
.ns-shotengai .ns-shop-example {
  padding: 34px 32px; background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
}
.ns-shotengai .ns-shop-example h3 { font-size: 20px; margin-top: 20px; }
.ns-shotengai .ns-shop-example h3 + p { margin-top: 16px; }
.ns-shotengai .ns-expertise { font-size: 15px; font-weight: 700; margin-top: 8px; color: var(--ns-navy); }
.ns-shotengai .ns-expertise + p { font-size: 15px; line-height: 1.9; margin-top: 16px; color: var(--ns-body); }
.ns-shotengai .ns-shop-example .ns-small + .ns-shop-introduction { margin-top: 24px; }
.ns-shotengai .ns-shop-example > .ns-small { margin-top: 16px; }
.ns-shotengai .ns-shop-introduction { border-top: 1px solid var(--ns-line); padding-top: 20px; }
.ns-shotengai .ns-shop-introduction h4 { font-size: 16.5px; }
.ns-shotengai .ns-shop-introduction p { font-size: 15px; line-height: 1.9; margin-top: 12px; color: var(--ns-body); }
.ns-shotengai .ns-example-note { font-size: 11px; line-height: 1.8; color: var(--ns-muted); margin-top: 18px; }
.ns-shotengai .ns-shop-explanation ol { list-style: none; }
.ns-shotengai .ns-shop-explanation li { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 16px; margin-bottom: 28px; }
.ns-shotengai .ns-shop-explanation li > .ns-index { padding-top: 4px; }
.ns-shotengai .ns-shop-explanation li p { margin-top: 10px; color: var(--ns-body); }

/* Values */
.ns-shotengai #value h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.5; }
.ns-shotengai .ns-values { list-style: none; margin-top: 8px; }
.ns-shotengai .ns-values li { display: grid; grid-template-columns: 32px minmax(0,453fr) minmax(0,694fr); gap: 20px; border-top: 1px solid var(--ns-line); padding: 24px 0; min-height: 0; }
.ns-shotengai .ns-values li > .ns-index { padding-top: 4px; font-size: 13px; }
.ns-shotengai .ns-values h3 { margin-top: 6px; font-size: 18px; }
.ns-shotengai .ns-values li > p { margin-top: 0; font-size: 15px; line-height: 1.9; color: var(--ns-body); }
.ns-shotengai .ns-values + .ns-fineprint { margin-top: 20px; }

/* Founding partners */
.ns-shotengai .ns-first-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; list-style: none; margin-top: 8px; }
.ns-shotengai .ns-first-grid li {
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
  padding: 30px 28px; display: grid; grid-template-rows: auto minmax(0,auto) 1fr; gap: 12px; min-height: 0;
}
.ns-shotengai .ns-first-grid h3 { font-size: 18px; line-height: 1.5; }
.ns-shotengai .ns-first-grid p { font-size: 14.5px; line-height: 1.9; color: var(--ns-body); }
.ns-shotengai .ns-first-note { font-size: 13.5px; line-height: 1.9; color: var(--ns-muted); margin-top: 22px; }

/* Plans: equal storefronts. Tiles stay as 商店街 decoration; chrome matches coworking price cards. */
.ns-shotengai .ns-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; align-items: stretch; margin-top: 8px; }
.ns-shotengai .ns-plan {
  border: 1px solid var(--ns-line); border-radius: var(--ns-radius); background: var(--ns-paper);
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
}
.ns-shotengai .ns-plan-header { background: var(--ns-navy); color: #fff; border-radius: 0; overflow: hidden; padding-bottom: 16px; }
.ns-shotengai .ns-plan:nth-child(2) .ns-plan-header { background: var(--ns-teal-deep); }
.ns-shotengai .ns-plan:nth-child(3) .ns-plan-header { background: var(--ns-teal-bright); color: var(--ns-navy); }
.ns-shotengai .ns-plan-header h3 { font-size: 18px; line-height: 1.5; padding: 14px 24px 0; color: inherit; }
.ns-shotengai .ns-plan-header p { font-size: 13px; color: inherit; opacity: .82; padding: 4px 24px 0; }
.ns-shotengai .ns-plan-price { margin: 0 24px; padding-bottom: 24px; border-bottom: 1px solid var(--ns-line); }
.ns-shotengai .ns-plan-description { font-size: 14.5px; color: var(--ns-body); margin-top: 16px; }
.ns-shotengai .ns-price { display: flex; align-items: baseline; gap: 6px; margin-top: 10px; white-space: nowrap; width: fit-content; }
.ns-shotengai .ns-price strong { font-size: 34px; font-weight: 900; line-height: 1.2; color: var(--ns-navy); letter-spacing: .01em; }
.ns-shotengai .ns-price span { font-size: 14px; color: var(--ns-muted); font-weight: 500; }
.ns-shotengai .ns-annual { font-size: 13.5px; color: var(--ns-muted); margin-top: 10px; }
.ns-shotengai .ns-plan-features { list-style: none; padding: 20px 24px 0; margin-bottom: 20px; flex: 1; }
.ns-shotengai .ns-plan-features li { position: relative; padding-left: 19px; font-size: 14.5px; line-height: 1.8; color: var(--ns-body); }
.ns-shotengai .ns-plan-features li::before { content: "・"; position: absolute; left: 0; color: var(--ns-teal); }
.ns-shotengai .ns-plan-features li + li { margin-top: 10px; }
.ns-shotengai .ns-plan-usage { margin: 0 24px; border-top: 1px solid var(--ns-line); padding: 18px 0 28px; min-height: 0; }
.ns-shotengai .ns-plan-usage > p:last-child { font-size: 14.5px; line-height: 1.9; margin-top: 12px; color: var(--ns-body); }
/* Shared rows keep usage headings aligned even when copy grows. Flex above is
 * a readable fallback for older engines that do not support subgrid. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 960px) {
    .ns-shotengai .ns-plan { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
    .ns-shotengai .ns-plan-usage { min-height: 0; }
  }
}
.ns-shotengai .ns-plan-notes { list-style: none; margin-top: 24px; font-size: 13.5px; line-height: 1.8; color: var(--ns-muted); }
.ns-shotengai .ns-plan-notes li { padding-left: 1em; position: relative; }
.ns-shotengai .ns-plan-notes li::before { content: "・"; position: absolute; left: 0; }
.ns-shotengai .ns-plan-notes li + li { margin-top: 8px; }
.ns-shotengai .ns-plan-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; }
.ns-shotengai .ns-plan-cta p { font-size: 14.5px; color: var(--ns-muted); }

/* Optional menus and sequence */
.ns-shotengai #options h2 { font-size: clamp(24px, 3vw, 32px); }
.ns-shotengai #options .ns-intro { font-size: 15px; }
.ns-shotengai .ns-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 8px; }
.ns-shotengai .ns-options article {
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
  padding: 30px 28px;
}
.ns-shotengai .ns-options h3 { font-size: 17.5px; }
.ns-shotengai .ns-options p { font-size: 14.5px; line-height: 1.9; margin-top: 10px; color: var(--ns-body); }
.ns-shotengai .ns-options + .ns-fineprint { margin-top: 22px; }
.ns-shotengai .ns-flow { border-top: 0; margin-top: 40px; padding-top: 0; }
.ns-shotengai .ns-flow > h3 { font-size: 20px; margin-bottom: 0; }
.ns-shotengai .ns-flow ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin-top: 20px; list-style: none; }
.ns-shotengai .ns-flow li {
  background: var(--ns-white); border: 1px solid var(--ns-line); border-radius: var(--ns-radius);
  padding: 26px 22px;
}
.ns-shotengai .ns-flow .ns-index { display: block; margin-bottom: 10px; }
.ns-shotengai .ns-flow h4 { margin-top: 0; }
.ns-shotengai .ns-flow p { font-size: 13.5px; line-height: 1.8; margin-top: 8px; color: var(--ns-body); }

/* FAQ stays expanded so terms can be reviewed on one page without interaction. */
.ns-shotengai .ns-faq-section { background: var(--ns-white); }
.ns-shotengai .ns-faq { margin-top: 0; display: flex; flex-direction: column; gap: 12px; }
.ns-shotengai .ns-faq > div {
  background: var(--ns-paper); border: 1px solid var(--ns-line); border-radius: 12px;
  padding: 18px 24px 20px;
}
.ns-shotengai .ns-faq dt {
  display: flex; gap: 12px; align-items: baseline;
  font-size: 15.5px; line-height: 1.6; font-weight: 700; color: var(--ns-navy);
}
.ns-shotengai .ns-faq dt span {
  display: inline; width: auto; height: auto; flex-shrink: 0;
  background: transparent; color: var(--ns-teal-deep);
  font-family: Lato, "Noto Sans JP", sans-serif; font-size: 14px; font-weight: 900; border-radius: 0;
}
.ns-shotengai .ns-faq dd { margin-left: 30px; margin-top: 10px; font-size: 14.5px; line-height: 1.9; color: var(--ns-body); }

/* Closing */
.ns-shotengai .ns-closing { padding-bottom: 72px; }
.ns-shotengai .ns-closing-grid { max-width: 640px; margin-top: 0; }
.ns-shotengai .ns-closing h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.5; }
.ns-shotengai .ns-closing-grid > div > p:not(.ns-closing-contact) { font-size: 16px; line-height: 1.9; margin-top: 16px; color: var(--ns-body); }
.ns-shotengai .ns-closing .ns-button { margin-top: 24px; }
.ns-shotengai .ns-closing-contact { font-size: 14.5px; color: var(--ns-muted); margin-top: 18px; }
.ns-shotengai .ns-closing-strip {
  margin-top: 48px;
  overflow: hidden;
}
.ns-shotengai .ns-closing-strip-track {
  display: flex;
  width: max-content;
  animation: ns-closing-marquee 100s linear infinite;
}
.ns-shotengai .ns-closing-strip:hover .ns-closing-strip-track,
.ns-shotengai .ns-closing-strip:focus-within .ns-closing-strip-track {
  animation-play-state: paused;
}
.ns-shotengai .ns-closing-strip-set {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding-right: 10px;
}
.ns-shotengai .ns-closing-strip img {
  display: block;
  height: 148px;
  width: auto;
  flex: 0 0 auto;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
}
@keyframes ns-closing-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.ns-shotengai .ns-footer { background: var(--ns-navy); color: #cfdbe3; padding: 48px 0 40px; border-top: 0; }
.ns-shotengai .ns-footer > .ns-wrap { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 40px; }
.ns-shotengai .ns-footer-name { font-size: 17px; font-weight: 900; font-family: Lato, "Noto Sans JP", sans-serif; color: #fff; }
.ns-shotengai .ns-footer-name + p { font-size: 12.5px; margin-top: 10px; color: #9fb2bf; }
.ns-shotengai .ns-footer nav { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.ns-shotengai .ns-footer a { color: #cfdbe3; font-size: 12.5px; text-decoration: none; }
.ns-shotengai .ns-footer a:hover { color: #8fd0d1; text-decoration: none; }
.ns-shotengai .ns-footer a:focus-visible { outline-color: white; }

@media (max-width: 1199px) {
  .ns-shotengai .ns-hero-grid, .ns-shotengai .ns-about-grid { gap: 40px; }
  .ns-shotengai .ns-shop-grid { gap: 48px; }
  .ns-shotengai .ns-first-grid, .ns-shotengai .ns-plan-grid, .ns-shotengai .ns-gallery { gap: 24px; }
  .ns-shotengai .ns-stats > div { padding-inline: 20px; }
  .ns-shotengai .ns-plan-header h3 { font-size: 17px; }
  .ns-shotengai .ns-plan-header :is(h3,p) { padding-inline: 20px; }
  .ns-shotengai .ns-plan-price, .ns-shotengai .ns-plan-usage { margin-inline: 20px; }
  .ns-shotengai .ns-plan-features { padding-inline: 20px; }
  .ns-shotengai .ns-price { gap: 6px; }
  .ns-shotengai .ns-plan-usage { min-height: 0; }
}
@media (min-width: 960px) {
  .ns-shotengai .ns-nav-toggle,
  .ns-shotengai .ns-nav-toggle-btn { display: none; }
  .ns-shotengai .ns-br-pc { display: unset; }
}
@media (max-width: 959px) {
  .ns-shotengai .ns-wrap { padding: 0 16px; }
  .ns-shotengai .ns-principles { padding: 0 16px; }
  .ns-shotengai .ns-brand { gap: 8px; }
  .ns-shotengai .ns-brand img { width: 30px; height: 30px; }
  .ns-shotengai .ns-brand-name { font-size: 15px; }
  .ns-shotengai .ns-brand-tagline { font-size: 10px; letter-spacing: 0; }
  .ns-shotengai .ns-nav-cta { padding: 8px 14px; font-size: 12.5px; }
  .ns-shotengai .ns-nav-toggle-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    box-sizing: border-box;
    width: 40px;
    height: 40px;
    padding: 0;
    margin: 0;
    border: 1px solid var(--ns-line);
    border-radius: 10px;
    background: #fff;
    color: var(--ns-navy);
    cursor: pointer;
    position: relative;
    z-index: 1;
  }
  .ns-shotengai .ns-nav-toggle-btn > span[aria-hidden="true"] {
    display: block; width: 18px; height: 2px; background: var(--ns-navy); border-radius: 1px;
    transition: transform .15s, opacity .15s;
  }
  .ns-shotengai .ns-nav-toggle:focus-visible ~ .ns-nav-toggle-btn {
    outline: 3px solid var(--ns-teal-deep); outline-offset: 3px;
  }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav-toggle-btn > span[aria-hidden="true"]:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav-toggle-btn > span[aria-hidden="true"]:nth-child(2) { opacity: 0; }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav-toggle-btn > span[aria-hidden="true"]:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav-toggle-btn .ns-nav-toggle-open { display: none; }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav-toggle-btn .ns-nav-toggle-close { display: inline; }
  .ns-shotengai .ns-nav-toggle-open,
  .ns-shotengai .ns-nav-toggle-close {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0);
  }
  .ns-shotengai .ns-nav {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 240px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(1,46,76,.12);
    font-size: 14.5px;
    z-index: 2;
  }
  .ns-shotengai .ns-nav-toggle:checked ~ .ns-nav { display: flex; }
  .ns-shotengai .ns-nav a {
    display: block; padding: 12px 14px; border-radius: 8px;
    white-space: normal; color: var(--ns-navy);
  }
  .ns-shotengai .ns-nav a:hover,
  .ns-shotengai .ns-nav a:focus-visible { background: var(--ns-paper); }
  .ns-shotengai .ns-hero { padding: 40px 0 56px; }
  .ns-shotengai .ns-section { padding: 56px 0; }
  .ns-shotengai .ns-hero-grid,
  .ns-shotengai .ns-about-grid,
  .ns-shotengai .ns-shop-grid {
    grid-template-columns: minmax(0,1fr);
    grid-template-areas: "copy" "photos" "prose";
    gap: 36px;
  }
  .ns-shotengai .ns-hero-photos { width: min(620px,100%); margin-inline: auto; }
  .ns-shotengai .ns-hero h1 { font-size: clamp(32px, 8vw, 44px); }
  .ns-shotengai .ns-about-grid figure { margin-left: 0; }
  .ns-shotengai .ns-proof-grid { gap: 20px; }
  .ns-shotengai .ns-proof h3 { font-size: 18px; }
  .ns-shotengai .ns-proof--fund h3 { font-size: 32px; }
  .ns-shotengai .ns-stats { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 20px; }
  .ns-shotengai .ns-stats > div:nth-child(3) { border-left: 0; }
  .ns-shotengai .ns-stats > div:nth-child(n+3) { border-top: 1px solid var(--ns-line); padding-top: 20px; }
  .ns-shotengai .ns-values li { grid-template-columns: 30px minmax(0,1fr); gap: 20px; }
  .ns-shotengai .ns-values li > p { grid-column: 2; margin-top: 0; }
  .ns-shotengai .ns-first-grid, .ns-shotengai .ns-plan-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .ns-shotengai .ns-first-grid li { min-height: 0; grid-template-rows: auto auto auto; gap: 12px; }
  .ns-shotengai .ns-plan-header h3 { font-size: 18px; }
  .ns-shotengai .ns-plan-price { padding-bottom: 20px; }
  .ns-shotengai .ns-plan-usage { min-height: 0; }
  .ns-shotengai .ns-price strong { font-size: 34px; }
  .ns-shotengai .ns-price { max-width: 340px; }
  .ns-shotengai .ns-flow ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .ns-shotengai .ns-closing-strip { margin-top: 36px; }
  .ns-shotengai .ns-closing-strip img { height: 128px; }
  .ns-shotengai .ns-plan-cta { flex-wrap: wrap; }
}
@media (max-width: 599px) {
  .ns-shotengai { font-size: 15px; line-height: 1.85; }
  .ns-shotengai .ns-section { padding: 56px 0; }
  .ns-shotengai h2, .ns-shotengai .ns-about-grid h2, .ns-shotengai #value h2, .ns-shotengai #options h2 { font-size: 26px; line-height: 1.5; }
  .ns-shotengai h3 { font-size: 18px; }
  .ns-shotengai .ns-eyebrow { font-size: 11px; gap: 10px; }
  .ns-shotengai .ns-sec-head { margin-bottom: 28px; }
  .ns-shotengai .ns-intro,
  .ns-shotengai #options .ns-intro { margin-top: 0; font-size: 15px; }
  .ns-shotengai .ns-hero { padding: 32px 0 48px; }
  .ns-shotengai .ns-hero h1 { font-size: clamp(28px, 8vw, 40px); margin-top: 14px; }
  .ns-shotengai .ns-hero-grid { gap: 28px; }
  .ns-shotengai .ns-lede { font-size: 16px; margin-bottom: 22px; }
  .ns-shotengai .ns-hero-eyebrow { letter-spacing: .04em; }
  .ns-shotengai .ns-nav-cta { padding: 7px 12px; font-size: 12px; }
  .ns-shotengai .ns-cta-row .ns-button { width: auto; }
  .ns-shotengai .ns-photo-pair { margin-top: 20px; gap: 10px; }
  .ns-shotengai .ns-letter { padding-top: 0; }
  .ns-shotengai .ns-mission { font-size: 15px; margin-top: 12px; }
  .ns-shotengai .ns-gallery { gap: 10px; margin-top: 28px; }
  .ns-shotengai .ns-stat-number { font-size: 32px; }
  .ns-shotengai .ns-stat-number span { font-size: 13px; margin-left: 5px; }
  .ns-shotengai .ns-stats > div { padding-inline: 14px; }
  .ns-shotengai .ns-stats dt { font-size: 14px; }
  .ns-shotengai .ns-stat-detail { font-size: 12px; margin-top: 8px; }
  .ns-shotengai .ns-stats-heading p { font-size: 13px; }
  .ns-shotengai .ns-proof-grid, .ns-shotengai .ns-options { grid-template-columns: minmax(0,1fr); }
  .ns-shotengai .ns-proof { padding: 24px; min-height: 0; }
  .ns-shotengai .ns-proof h3 { font-size: 18px; }
  .ns-shotengai .ns-proof--fund h3 { font-size: 32px; }
  .ns-shotengai .ns-shop-grid { margin-top: 0; }
  .ns-shotengai .ns-shop-example { padding: 24px; }
  .ns-shotengai .ns-shop-example h3 { font-size: 18px; }
  .ns-shotengai .ns-shop-explanation li { gap: 15px; grid-template-columns: 26px minmax(0,1fr); }
  .ns-shotengai .ns-values { margin-top: 0; }
  .ns-shotengai .ns-values h3 { font-size: 17px; }
  .ns-shotengai .ns-values li { grid-template-columns: 24px minmax(0,1fr); gap: 14px; }
  .ns-shotengai .ns-first-grid { margin-top: 0; }
  .ns-shotengai .ns-plan-grid { margin-top: 0; }
  .ns-shotengai .ns-flow ol { grid-template-columns: minmax(0,1fr); }
  .ns-shotengai .ns-flow h4 { margin-top: 0; }
  .ns-shotengai .ns-flow p { margin-top: 8px; }
  .ns-shotengai .ns-faq { margin-top: 0; }
  .ns-shotengai .ns-faq dt { font-size: 15.5px; gap: 12px; }
  .ns-shotengai .ns-faq dd { margin-left: 26px; }
  .ns-shotengai .ns-closing h2 { font-size: 26px; line-height: 1.5; }
  .ns-shotengai .ns-closing-grid > div > p:not(.ns-closing-contact) { margin-top: 16px; }
  .ns-shotengai .ns-closing-strip { margin-top: 28px; }
  .ns-shotengai .ns-closing-strip img { height: 112px; }
  .ns-shotengai .ns-footer > .ns-wrap { grid-template-columns: 1fr; gap: 28px; }
  .ns-shotengai .ns-footer nav { gap: 10px 18px; }
  .ns-shotengai .ns-footer a { padding-block: 5px; }
}
@media (max-width: 360px) {
  .ns-shotengai .ns-brand { gap: 6px; }
  .ns-shotengai .ns-brand img { width: 26px; height: 26px; }
  .ns-shotengai .ns-brand-name { font-size: 13px; }
  .ns-shotengai .ns-nav-end { gap: 6px; }
  .ns-shotengai .ns-nav-cta { padding: 6px 10px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .ns-shotengai * { scroll-behavior: auto; }
  .ns-shotengai .ns-closing-strip-track { animation: none; }
  .ns-shotengai .ns-hero-slideshow .ns-photo { transition: none; }
}
@media print {
  .ns-shotengai { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .ns-shotengai .ns-skip { display: none; }
  .ns-shotengai .ns-nav-toggle, .ns-shotengai .ns-nav-toggle-btn { display: none; }
  .ns-shotengai .ns-nav {
    display: flex; position: static; flex-direction: row; gap: 16px;
    border: 0; box-shadow: none; padding: 0; min-width: 0;
  }
  .ns-shotengai .ns-plan, .ns-shotengai .ns-proof, .ns-shotengai .ns-faq > div { break-inside: avoid; }
}
