/* Shared visual system for the promotional site and every linked page. */
:root {
  --accent: #6250d8;
  --accent-strong: #4d3cb5;
  --accent-deep: #252442;
  --accent-soft: #eeebff;
  --accent-pale: #f7f6fc;
  --orange: var(--accent);
  --orange-soft: var(--accent-soft);
  --bg: var(--accent-pale);
  --surface: #ffffff;
  --surface-muted: #f1eff8;
  --ink: #272837;
  --text: #393d48;
  --muted: #5a5c68;
  --line: #e4e1ef;
  --line-strong: #cbc5df;
  --warning: var(--accent-strong);
  --warning-soft: var(--accent-soft);
  --on-deep: #e3e0f1;
  --on-deep-muted: #c5c0d9;
  --shadow-sm: 0 5px 18px #25244206;
  --shadow-md: 0 12px 34px #2524420a;
  --shadow-lg: 0 24px 64px #25244210;
  --radius-sm: 14px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --radius-xl: 32px;
  --shell: 1760px;
  --font: "Shiftpon Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;
}

html[data-lp-variant="b"] {
  --accent: #12786c;
  --accent-strong: #0d6258;
  --accent-deep: #183b38;
  --accent-soft: #e2f3ed;
  --accent-pale: #f3faf7;
  --surface-muted: #eaf3ef;
  --ink: #20352f;
  --text: #33463f;
  --muted: #53645f;
  --line: #dce9e3;
  --line-strong: #bdcfc7;
  --on-deep: #e2f0eb;
  --on-deep-muted: #bed5cc;
  --shadow-sm: 0 5px 18px #183b3806;
  --shadow-md: 0 12px 34px #183b380a;
  --shadow-lg: 0 24px 64px #183b3810;
}

html { scroll-padding-top: 112px; }
body { background: var(--bg); font-family: var(--font); font-weight: 400; font-synthesis: none; font-size: 16px; line-height: 1.9; -webkit-font-smoothing: antialiased; }
p, li, dd { color: var(--text); }
strong { font-weight: 600; }
h1, h2, h3 { letter-spacing: 0; line-height: 1.5; font-weight: 600; }
h1, h2 { text-wrap: pretty; }
main a:not(.button):focus-visible,
.site-header a:focus-visible,
.site-footer a:focus-visible,
button:focus-visible,
summary:focus-visible,
.button:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.site-shell { width: min(calc(100% - clamp(32px, 6.5vw, 128px)), 1760px); margin-inline: auto; }
.section { padding: clamp(58px, 5.2vw, 94px) 0; }
.section-tight { padding: 48px 0 76px; }
.section-tint { background: var(--accent-pale); border-color: var(--line); }
.section-dark { background: var(--accent-deep); }
.section-dark p, .section-dark li, .section-dark small, .section-dark .section-lead { color: var(--on-deep); }
.section-dark .eyebrow { color: var(--on-deep-muted); }

.site-header { top: 12px; width: min(calc(100% - clamp(32px, 6.5vw, 128px)), 1760px); margin: 12px auto 0; background: #fffffff2; border: 1px solid #ffffff; border-radius: 24px; box-shadow: var(--shadow-md); backdrop-filter: blur(18px); }
.header-inner { min-height: 80px; gap: 24px; }
.header-inner.site-shell { width: 100%; padding-inline: 24px; }
.brand { gap: 11px; }
.brand img { border-radius: 11px; box-shadow: none; }
.brand strong { font-size: 1.15rem; font-weight: 600; }
.brand small { color: var(--muted); font-size: .72rem; }
.global-nav { gap: clamp(14px, 1.6vw, 28px); }
.global-nav > a:not(.button) { padding-block: 10px; color: var(--muted); font-size: .9rem; font-weight: 600; }
.global-nav > a:not(.button):hover, .global-nav > a[aria-current="page"] { color: var(--accent-strong); border-color: transparent; }
.global-nav .store-button { padding: 12px 16px; font-size: .82rem; }
.nav-toggle { border-radius: 50%; background: var(--accent-pale); }
.button { min-height: 52px; padding: 14px 24px; border-radius: 999px; font-weight: 600; box-shadow: none; transition: background .16s, border-color .16s, color .16s; }
.button:hover { transform: none; box-shadow: none; }
.button-primary { color: #fff; background: var(--accent); border-color: var(--accent); box-shadow: 0 4px 12px #2524420a; }
.button-primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); box-shadow: none; }
.button-secondary { color: var(--ink); background: #fff; border-color: var(--line-strong); }
.button-secondary:hover { color: var(--accent-strong); background: var(--accent-pale); border-color: var(--accent); }
.button-small { min-height: 44px; padding: 11px 18px; border-radius: 999px; }
.store-button { min-width: 194px; }
.store-button-platform { padding: 5px 8px; font-size: .75rem; border-radius: 999px; font-weight: 600; }
.store-button-google.button-secondary .store-button-platform { color: var(--accent-strong); background: var(--accent-soft); }
.eyebrow { padding-left: 0; color: var(--accent-strong); font-size: .8rem; font-weight: 600; letter-spacing: .06em; }
.eyebrow::before { display: none; }
.section-heading { max-width: none; margin-bottom: 36px; }
.section-heading h2 { margin-bottom: 15px; }
.section-heading h2::after { display: none; }
.section-lead { max-width: 72em; font-size: 1.05rem; line-height: 1.9; }
.section-heading-center { text-align: left; }
.section-heading-center .section-lead { margin-inline: 0; }
.breadcrumb { padding-top: 22px; }
.breadcrumb ol { flex-wrap: wrap; font-size: .8rem; }

.page-hero { position: relative; isolation: isolate; padding: 52px 0 76px; background: radial-gradient(ellipse at 92% 20%, var(--accent-soft), transparent 55%), linear-gradient(120deg, var(--accent-pale), #fff); border: 0; border-radius: 0 0 40px 40px; }
.page-hero::before, .page-hero::after { content: ""; position: absolute; z-index: -1; pointer-events: none; width: 400px; height: 400px; right: -105px; top: -175px; border: 1px solid var(--line); border-radius: 50%; }
.page-hero::after { width: 540px; height: 540px; right: -175px; top: -245px; opacity: .65; }
.page-hero-compact { padding-bottom: 60px; }
.page-hero-grid { grid-template-columns: minmax(0, 1.4fr) minmax(270px, .6fr); gap: clamp(32px, 5vw, 88px); }
.page-hero-single { grid-template-columns: minmax(0, 1fr); }
.page-hero-copy h1 { max-width: none; font-size: clamp(2.3rem, 3.5vw, 4rem); line-height: 1.5; }
.page-hero-lead { max-width: 64em; margin-top: 22px; font-size: clamp(1rem, 1.18vw, 1.15rem); line-height: 1.95; }
.page-hero-aside { max-width: none; }
.page-icon-panel, .support-icon-panel, .company-mark, .page-summary-panel, .faq-count-panel, .price-hero-card, .privacy-gate-card { background: #ffffffde; border-color: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.page-icon-panel img, .support-icon-panel img, .company-mark img { max-width: 170px; border-radius: 24%; box-shadow: var(--shadow-sm); }
.page-summary-panel { padding: 28px; }
.page-summary-panel a { background: var(--accent-pale); border: 1px solid transparent; border-radius: var(--radius-sm); font-weight: 600; }
.page-summary-panel a:hover { border-color: var(--accent); }
.faq-count-panel { padding: 32px; }
.faq-count-panel strong { font-size: 4rem; }
.price-hero-card p, .trial-badge, .pricing-trial { color: var(--accent-strong); background: var(--accent-soft); border-radius: var(--radius-sm); font-weight: 600; }
.price-hero-platforms { gap: 12px; }
.price-hero-platforms article, .platform-hero-card > div { background: #fff; border-color: var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.price-hero-platforms strong { font-size: 2rem; }
.privacy-gate-card.privacy-gate-approved { border-color: var(--line); background: var(--accent-pale); }
.privacy-gate-card li { font-size: .9rem; }

.workflow-layout, .workflow-layout-wide { grid-template-columns: minmax(290px, .58fr) minmax(0, 1.42fr); gap: clamp(28px, 3.5vw, 60px); }
.workflow-shots, .workflow-shots-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 20px; }
.numbered-process { gap: 14px; }
.numbered-process li { grid-template-columns: 38px minmax(0, 1fr); gap: 14px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.process-number { width: 36px; height: 36px; color: var(--accent-strong); background: var(--accent-soft); border-radius: 50%; font-size: .82rem; font-weight: 600; }
.numbered-process h3 { font-size: 1.05rem; }
.numbered-process p { font-size: .9rem; line-height: 1.85; }
.section-dark .numbered-process li { background: #ffffff08; border-color: #ffffff20; }
.section-dark .process-number { color: #fff; background: #ffffff1a; }
.product-shot-frame, .product-shot-compact .product-shot-frame { padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow-md); }
.product-shot-frame > img { width: 100%; height: auto; max-height: 560px; object-fit: contain; background: transparent; border-radius: 18px; }
.product-shot figcaption { padding-top: 12px; }
.product-shot figcaption strong { font-size: .88rem; line-height: 1.65; }
.product-shot figcaption span { color: var(--muted); font-size: .8rem; }
.shot-gallery, .shot-gallery-featured { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.chapter-shots.one-up, .story-shots.one-up { width: 100%; max-width: 500px; }
.feature-chapter, .feature-chapter-reverse { gap: clamp(32px, 4vw, 70px); }
.chapter-number { color: var(--accent); opacity: .7; font-size: 3.5rem; font-weight: 600; }
.operational-note { margin-top: 32px; padding: 24px 28px; background: var(--accent-soft); border: 1px solid transparent; border-radius: var(--radius-md); box-shadow: none; }
.operational-note-warning { background: var(--surface-muted); border-color: var(--line); }
.operational-note p { font-size: .9rem; }
.condition-grid article, .policy-grid article, .after-publish-grid article, .voice-flow-grid article, .privacy-check-grid article, .support-route-grid article { padding: 30px; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.condition-grid p, .policy-grid p, .after-publish-grid p, .voice-flow-grid p, .privacy-check-grid p, .support-route-grid p, .boundary-card p { font-size: .9rem; line-height: 1.85; }
.role-panel:hover { transform: none; box-shadow: none; }
.role-staff { border-top-color: var(--ink); }
.role-staff .role-label span { color: var(--ink); background: var(--surface-muted); }
.role-label span, .boundary-card > span, .status, .faq-category { border-radius: 999px; font-weight: 600; }
.check-list li { line-height: 1.85; }
.check-list li::before { top: .28em; border-radius: 50%; }
.voice-flow-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.voice-flow-grid article { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; }
.voice-summary-panel { color: #fff; background: var(--accent-deep); border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.voice-summary-panel p:not(.eyebrow) { color: var(--on-deep); }
.voice-summary-panel .eyebrow { color: var(--on-deep-muted); }

.platform-pricing-grid, .platform-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.pricing-grid-full { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; gap: 28px; }
.pricing-detail-card, .platform-detail-card, .price-card { padding: clamp(26px, 3vw, 46px); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.pricing-primary { border: 1px solid var(--accent); background: linear-gradient(160deg, #fff 70%, var(--accent-pale)); }
.price-card-featured { background: #fff; border-color: var(--accent); }
.pricing-card-head h2 { font-size: 1.55rem; }
.pricing-card-head p, .pricing-card-head span { font-size: .82rem; }
.pricing-amount { margin: 28px 0; }
.pricing-amount strong { font-size: clamp(3rem, 4vw, 4.7rem); }
.pricing-amount small, .pricing-amount em { font-size: .88rem; }
.pricing-trial { font-size: .9rem; text-align: left; }
.pricing-legal-note, .price-note { font-size: .84rem; line-height: 1.85; }
.store-fact-list { border-radius: var(--radius-sm); }
.store-fact-list dt, .store-fact-list dd { font-size: .86rem; }
.platform-shot-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.platform-shot-pair .product-shot-frame > img { max-height: 560px; }
.pricing-pending, .platform-detail-pending { background: var(--warning-soft); border-color: var(--line-strong); }
.platform-data-pending { border-color: var(--line-strong) !important; background: var(--warning-soft) !important; }
.policy-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.faq-preview-grid { grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); gap: clamp(32px, 4vw, 70px); }
.faq-page-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 48px; }
.faq-index { padding: 24px 18px; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.faq-index a { padding: 10px 12px; font-size: .88rem; border-radius: 12px; }
.faq-index a:hover { background: var(--accent-soft); color: var(--accent-strong); }
.faq-sections { gap: 44px; }
.faq-list { gap: 12px; }
.faq-item { border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.faq-item summary { padding: 24px 52px 24px 24px; font-size: .96rem; font-weight: 600; line-height: 1.75; }
.faq-item summary::after { right: 22px; }
.faq-answer { padding: 0 24px 24px; }
.faq-answer p { font-size: .9rem; line-height: 1.95; }
.faq-category-heading h2 { font-size: 1.45rem; }

.contact-layout, .do-not-send-grid, .company-layout { gap: clamp(32px, 4vw, 70px); }
.contact-card, .company-responsibility-card { border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.platform-contact-links a { padding: 15px 18px; background: var(--accent-pale); border-radius: var(--radius-sm); font-size: .88rem; }
.contact-card small, .contact-os-note { font-size: .82rem; }
.support-cta-strip { padding: 56px 0; background: var(--accent-deep); }
.support-cta-inner p { color: var(--on-deep); }
.prose-card { max-width: none; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.company-table { border-radius: var(--radius-md); }
.company-table dt, .company-table dd { padding: 19px 22px; font-size: .9rem; }
.company-table div { grid-template-columns: 190px minmax(0, 1fr); }
.legal-doc-grid { width: min(calc(100% - clamp(32px, 6.5vw, 128px)), 1540px); gap: 30px; }
.legal-doc { min-width: 0; padding: clamp(22px, 2.8vw, 40px); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.legal-doc h2 { margin-top: 28px; font-size: 1.22rem; line-height: 1.65; }
.legal-doc p { font-size: .9rem; line-height: 2; overflow-wrap: anywhere; }
.legal-doc .card-kicker { margin-top: 0; }
.legal-facts { border-radius: var(--radius-sm); }
.legal-facts div { grid-template-columns: 120px minmax(0, 1fr); }
.legal-facts dt, .legal-facts dd { font-size: .82rem; overflow-wrap: anywhere; }
.legal-platform-card, .legal-link-grid a { border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.legal-platform-card p, .legal-link-grid small { font-size: .88rem; }
.legal-link-grid:not(.legal-link-grid-light) span { color: var(--on-deep-muted); }
.legal-link-grid a:hover { border-color: var(--accent); }
.comparison-table-wrap { border-radius: var(--radius-md); }
.comparison-table th, .comparison-table td { font-size: .9rem; padding: 18px; }
.status-limited { color: var(--on-deep); background: #ffffff1a; }

.final-cta { padding: 56px 0; background: var(--accent-soft); border: 0; }
.final-cta-inner { grid-template-columns: 76px minmax(0, 1fr) auto; gap: 28px; padding: 36px; background: #ffffffd9; border: 1px solid #fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); }
.final-cta-inner > img { width: 76px; border-radius: 20px; }
.final-cta-inner > .store-button-group { grid-column: auto; justify-content: flex-end; }
.final-cta h2 { font-size: clamp(1.45rem, 1.9vw, 2.15rem); }
.final-cta p { font-size: .9rem; }
.site-footer { padding: 72px 0 28px; background: var(--accent-deep); }
.footer-grid { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 72px); }
.brand-footer strong { color: #fff; }
.brand-footer small, .footer-brand-block > p, .footer-column a { color: var(--on-deep); }
.footer-brand-block > p { max-width: 36em; font-size: .88rem; }
.footer-column { gap: 12px; }
.footer-column > strong { font-size: .94rem; }
.footer-column a { font-size: .84rem; line-height: 1.7; }
.footer-column a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { margin-top: 44px; color: var(--on-deep-muted); border-color: #ffffff20; font-size: .75rem; }

@media (min-width: 1200px) {
  .faq-sections { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; column-gap: 40px; }
}

@media (max-width: 1200px) {
  .header-inner { gap: 16px; }
  .global-nav { gap: 14px; }
  .global-nav > a:not(.button) { font-size: .82rem; }
  .global-nav .store-button { padding-inline: 12px; font-size: .78rem; }
  .workflow-layout, .workflow-layout-wide { grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); gap: 28px; }
  .workflow-shots, .workflow-shots-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .final-cta-inner { grid-template-columns: 76px minmax(0, 1fr); }
  .final-cta-inner > .store-button-group { grid-column: 2; justify-content: flex-start; }
  .policy-grid, .support-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  html { scroll-padding-top: 106px; }
  .header-inner { min-height: 72px; }
  .global-nav { position: absolute; top: calc(100% + 10px); left: 0; right: 0; max-height: calc(100dvh - 110px); overflow-y: auto; padding: 18px; border-radius: 24px; background: #fff; box-shadow: var(--shadow-lg); }
  .global-nav > a:not(.button) { padding: 12px; font-size: .94rem; }
  .global-nav .store-button { min-height: 48px; font-size: .9rem; }
  .page-hero-grid { grid-template-columns: minmax(0, 1.35fr) minmax(230px, .65fr); gap: 30px; }
  .page-hero-single { grid-template-columns: 1fr; }
  .page-hero-copy h1 { font-size: clamp(2.1rem, 4.5vw, 3rem); }
  .page-hero-aside { max-width: none; }
  .workflow-layout, .workflow-layout-wide { grid-template-columns: 1fr; gap: 32px; }
  .workflow-layout > .numbered-process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .workflow-shots, .workflow-shots-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feature-chapter, .feature-chapter-reverse, .purchase-flow-grid, .contact-layout, .do-not-send-grid, .company-layout { grid-template-columns: 1fr; gap: 36px; }
  .shot-gallery, .shot-gallery-featured { gap: 24px; }
  .platform-pricing-grid, .platform-detail-grid, .pricing-grid-full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-detail-card, .platform-detail-card { padding: 26px; }
  .store-fact-list div { grid-template-columns: 1fr; }
  .store-fact-list dt { padding-bottom: 6px; }
  .store-fact-list dd { padding-top: 8px; }
  .voice-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
  .faq-page-layout { grid-template-columns: 1fr; gap: 32px; }
  .faq-index { grid-template-columns: repeat(3, minmax(0, 1fr)); position: static; }
  .faq-index strong { grid-column: 1 / -1; }
  .faq-sections { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-brand-block { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .section { padding: 56px 0; }
  .section-tight { padding: 36px 0 54px; }
  .page-hero { padding: 36px 0 50px; border-radius: 0 0 28px 28px; }
  .page-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .page-hero-copy h1 { font-size: clamp(1.85rem, 6vw, 2.8rem); }
  .page-hero-lead { font-size: 1rem; }
  .page-summary-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 20px; }
  .page-summary-panel strong { grid-column: 1 / -1; }
  .page-summary-panel a { font-size: .86rem; padding: 10px; }
  .price-hero-platforms { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
  .price-hero-platforms article { padding: 18px; }
  .faq-count-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 22px; text-align: left; }
  .faq-count-panel strong { font-size: 2.7rem; }
  .faq-count-panel span, .faq-count-panel small { margin-top: 0; }
  .faq-count-panel small { flex-basis: 100%; }
  .workflow-shots, .workflow-shots-grid, .shot-gallery, .shot-gallery-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; }
  .platform-pricing-grid, .platform-detail-grid, .pricing-grid-full { grid-template-columns: 1fr; }
  .faq-preview-grid { grid-template-columns: 1fr; gap: 22px; }
  .company-table div { grid-template-columns: 150px minmax(0, 1fr); }
  .legal-doc-grid { grid-template-columns: 1fr; }
  .legal-doc { padding: 24px; }
  .final-cta-inner { grid-template-columns: 64px minmax(0, 1fr); gap: 20px; padding: 28px; }
  .final-cta-inner > img { width: 64px; }
  .final-cta-inner > .store-button-group { grid-column: 1 / -1; justify-content: flex-start; }
  .footer-grid { gap: 32px 22px; }
}

@media (max-width: 520px) {
  body { font-size: 15px; }
  .site-shell { width: calc(100% - 32px); }
  .site-header { top: 8px; width: calc(100% - 24px); margin-top: 8px; border-radius: 20px; }
  .header-inner { min-height: 68px; }
  .header-inner.site-shell { padding-inline: 15px; }
  .brand img { width: 42px; height: 42px; }
  .brand strong { font-size: 1.07rem; }
  .button { padding: 14px 15px; }
  .store-button-group { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .store-button { width: 100%; min-width: 0; }
  .section-heading { margin-bottom: 28px; }
  .section-lead { font-size: .96rem; }
  .page-hero-copy h1 { font-size: clamp(1.85rem, 7.5vw, 2.4rem); }
  .page-summary-panel { grid-template-columns: 1fr; }
  .price-hero-platforms strong { font-size: 1.7rem; }
  .workflow-layout > .numbered-process { grid-template-columns: 1fr; }
  .numbered-process li { padding: 22px; }
  .workflow-shots, .workflow-shots-grid, .shot-gallery, .shot-gallery-featured, .platform-shot-pair { gap: 24px 12px; }
  .product-shot-frame, .product-shot-compact .product-shot-frame { padding: 5px; border-radius: 18px; }
  .product-shot-frame > img { border-radius: 12px; }
  .product-shot figcaption strong { font-size: .78rem; }
  .product-shot figcaption span { display: block; font-size: .8rem; }
  .voice-flow-grid, .condition-grid, .policy-grid, .after-publish-grid, .privacy-check-grid, .support-route-grid { grid-template-columns: 1fr; gap: 22px; }
  .condition-grid article, .policy-grid article, .after-publish-grid article, .privacy-check-grid article, .support-route-grid article { padding: 22px; }
  .pricing-detail-card, .platform-detail-card { padding: 24px 20px; }
  .faq-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faq-item summary { padding: 21px 46px 21px 20px; font-size: .91rem; }
  .faq-answer { padding: 0 20px 22px; }
  .contact-card, .company-responsibility-card, .prose-card { padding: 24px 20px; }
  .company-table div, .legal-facts div { grid-template-columns: 1fr; }
  .company-table dt, .company-table dd { padding-inline: 16px; }
  .legal-doc-grid { width: calc(100% - 32px); }
  .legal-doc { padding: 22px 18px; }
  .legal-facts dt { padding-bottom: 6px; }
  .legal-facts dd { padding-top: 8px; }
  .final-cta { padding: 42px 0; }
  .final-cta-inner { grid-template-columns: 1fr; padding: 24px; text-align: left; justify-items: start; }
  .final-cta-inner > img { width: 64px; }
  .final-cta-inner > .store-button-group { width: 100%; }
  .site-footer { padding-top: 46px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 22px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-column a { font-size: .8rem; }
  .footer-bottom { flex-direction: column; gap: 10px; margin-top: 32px; font-size: .8rem; }
}
