/* Mobile-only compact rhythm. Copy, media, navigation and desktop styling stay intact.
   Keep 28px card/32px section gutters for the existing inset red frames.
   No zoom, transforms on page containers, content hiding or line clamping. */
@media screen and (max-width: 768px) {
    /* Shared rhythm and comfortable type hierarchy. */
    body.home-page .section,
    body.info-theme .section { padding-block: 42px; }
    body.home-page #vision { padding-block: 42px; }
    body.home-page #contact { padding-block: 40px; }
    body.home-page .trust-section { padding-block: 32px; }
    body.home-page :is(.section-title,.section-title-large) { font-size: 28px; line-height: 1.4; }
    body.home-page .policy-section .section-title { font-size: 25px; }
    body.home-page .section-title::before { margin-bottom: 12px; }
    body.home-page .section-subtitle { margin-top: 8px; }
    body.home-page .section-header { margin-bottom: 22px; }
    body.home-page #service .section-header { padding: 24px 28px; }
    body.home-page :is(.vision-text,.service-description,.cancellation-text,.contact-text) { line-height: 1.8; }
    body.home-page .vision-headline { font-size: 21px; line-height: 1.65; margin-bottom: 16px; }

    /* Top page hero and original portfolio: smaller, never cropped. */
    body.home-page .hero-content { padding-top: 24px; padding-bottom: 42px; gap: 22px; }
    body.home-page .hero-main { margin-top: 12px; font-size: clamp(20px,5.3vw,27px); }
    body.home-page .hero-keyword { font-size: clamp(43px,12vw,62px); }
    body.home-page .hero-subtitle { font-size: 12px; }
    body.home-page .hero-portfolio { max-width: 450px; }
    body.home-page .portfolio-heading-row { padding: 14px 20px; margin-bottom: 10px; }
    body.home-page .portfolio-caption { padding-block: 7px; }
    body.home-page .portfolio-project-grid { margin-top: 10px; }
    body.home-page .trust-highlight { font-size: 60px; }
    body.home-page .trust-title { margin-top: 0; }
    body.home-page .trust-text { margin-top: 20px; padding-top: 18px; line-height: 1.85; }
    body.home-page .trust-features { margin-top: 16px; }
    body.home-page .trust-ceo { margin-top: 16px; padding-top: 16px; }
    body.home-page .vision-grid { gap: 24px; }
    body.home-page .vision-left { width: 180px; }
    body.home-page .vision-left .section-title-large { font-size: 25px; }
    body.home-page .vision-left img { width: 54px !important; height: 54px; }
    body.home-page .vision-text { margin-bottom: 16px; }
    body.home-page .service-card { padding: 26px 28px; }
    body.home-page .service-card::after { font-size: 36px; }
    body.home-page .service-icon { width: 50px; height: 50px; font-size: 24px; margin-bottom: 14px; }
    body.home-page .service-title { font-size: 18px; }
    body.home-page .service-price { margin-block: 8px 13px; }
    body.home-page .price-large { font-size: 30px; }
    body.home-page .service-features { gap: 8px; margin-block: 16px; }
    body.home-page .service-description { padding-bottom: 16px; }
    body.home-page .service-note { margin-bottom: 16px; }
    body.home-page .flow-grid { margin-top: 24px; }
    body.home-page .flow-step { padding-block: 18px; gap: 14px; }
    body.home-page .flow-number { width: 36px; height: 36px; font-size: 15px; }
    body.home-page .cancellation-policy-box { margin-top: 22px; padding-top: 20px; }
    body.home-page .cancellation-item { margin-bottom: 18px; padding-bottom: 18px; }
    body.home-page .cancellation-title { margin-bottom: 9px; }
    body.home-page .company-grid { margin-top: 24px; }
    body.home-page .company-item { padding-block: 16px; }
    body.home-page .contact-title { font-size: 34px; }
    body.home-page .contact-text { margin-top: 14px; }
    body.home-page .contact-buttons { margin-top: 22px; }

    /* LINE: preserve all three stages, use tighter internal rhythm. */
    body.home-page .line-support { padding-block: 34px; }
    body.home-page #line-support-title { font-size: clamp(21px,5.65vw,27px); line-height: 1.65; }
    body.home-page .line-support-eyebrow { margin-bottom: 12px; }
    body.home-page .line-support-eyebrow > i { font-size: 30px; }
    body.home-page .line-support-description { margin-top: 13px; line-height: 1.85; }
    body.home-page .line-support-intro { gap: 20px; }
    body.home-page .line-support-services a { padding-block: 12px; min-height: 44px; }
    body.home-page .line-support-steps { margin-top: 22px; gap: 17px; }
    body.home-page .line-support-steps li { padding-top: 14px; }
    body.home-page .line-support-steps h3 { font-size: 15px; margin-block: 6px; }
    body.home-page .line-support-steps p { line-height: 1.75; }

    /* Detailed services: remove desktop-sized empty space, not information. */
    body.detail-theme :is(.pain-section,.feature-section,.works-section,.why-section,.compare-section,.ba-section,.process-section,.fly-process-section,.plans-section,.fly-plans-section,.faq-section,.fly-faq-section) { padding-block: 44px; }
    body.detail-theme :is(.svc-section-title,.fly-section-title) { font-size: 23px; line-height: 1.45; margin-bottom: 12px; text-wrap: balance; }
    body.detail-theme :is(.svc-eyebrow,.fly-eyebrow) { margin-bottom: 12px; letter-spacing: .2em; }
    body.detail-theme :is(.svc-section-lead,.fly-section-lead) { font-size: 13px; line-height: 1.8; text-wrap: balance; }
    body.detail-theme :is(.pain-grid,.works-grid,.why-grid,.process-flow,.fly-process-flow,.compare-table-wrap,.plans-grid,.fly-plans-grid,.ba-grid,.faq-list,.fly-faq-list) { margin-top: 26px; }
    body.detail-theme :is(.pain-grid,.works-grid,.why-grid,.plans-grid,.fly-plans-grid) { gap: 16px; }
    body.detail-theme :is(.plans-section .svc-section-header,.fly-plans-section .fly-section-header) { padding-block: 24px; }
    body.detail-theme .pain-card { padding: 26px 28px; display: grid; grid-template-columns: 1fr auto; gap: 10px 14px; align-items: center; }
    body.detail-theme .pain-num { font-size: 34px; line-height: 1; margin-bottom: 0; }
    body.detail-theme .pain-icon { font-size: 22px; line-height: 1; margin-bottom: 0; }
    body.detail-theme :is(.pain-title,.pain-text) { grid-column: 1 / -1; margin: 0; }
    body.detail-theme .pain-title { font-size: 15px; line-height: 1.6; }
    body.detail-theme :is(.pain-text,.work-desc,.why-text) { font-size: 13px; line-height: 1.75; }
    body.detail-theme .feature-block { gap: 22px; margin-bottom: 36px; }
    body.detail-theme .feature-title { font-size: 21px; line-height: 1.5; margin-bottom: 12px; }
    body.detail-theme .feature-tag { margin-bottom: 10px; }
    body.detail-theme .feature-body { font-size: 13px; line-height: 1.8; margin-bottom: 18px; }
    body.detail-theme .feature-list { gap: 8px; }
    body.detail-theme .feature-list li { font-size: 13px; gap: 9px; }
    body.detail-theme .feature-visual { width: 100%; max-width: 260px; margin-inline: auto; }
    body.detail-theme .work-visual { height: 140px; }
    body.detail-theme .work-card-body { padding: 20px 28px 26px; }
    body.detail-theme .ba-col { padding: 24px; }
    body.detail-theme .ba-label { margin-bottom: 14px; }
    body.detail-theme .ba-title { font-size: 16px; margin-bottom: 14px; }
    body.detail-theme .work-name { font-size: 16px; margin-bottom: 8px; }
    body.detail-theme .why-card { padding: 26px 28px; gap: 13px; }
    body.detail-theme .why-icon-wrap { width: 40px; height: 40px; font-size: 18px; }
    body.detail-theme .why-body { min-width: 0; }
    body.detail-theme .why-title { font-size: 15px; line-height: 1.6; }
    body.detail-theme :is(.process-flow,.fly-process-flow) { gap: 20px; }
    body.detail-theme :is(.process-step,.fly-process-step) { padding-inline: 0; gap: 13px; }
    body.detail-theme :is(.process-icon-wrap,.fly-process-icon-wrap) { width: 48px; height: 48px; font-size: 20px; }
    body.detail-theme :is(.process-label,.fly-process-label) { margin-bottom: 5px; }
    body.detail-theme :is(.process-text,.fly-process-text) { font-size: 12px; line-height: 1.7; }
    body.detail-theme :is(.stats-strip,.fly-stats-strip) { padding-block: 16px; }
    body.detail-theme :is(.stat-item,.fly-stat-item) { padding: 14px 10px; }
    body.detail-theme :is(.stat-num,.fly-stat-num) { font-size: 32px; }
    body.detail-theme :is(.stat-unit,.fly-stat-unit) { font-size: 14px; }
    body.detail-theme :is(.stat-label,.fly-stat-label) { margin-top: 5px; font-size: 11px; letter-spacing: .025em; }
    body.detail-theme :is(.plan-card,.fly-plan-card) { padding: 26px 28px !important; }
    body.detail-theme :is(.plan-badge,.fly-plan-badge) { margin-bottom: 12px; }
    body.detail-theme :is(.plan-name,.fly-plan-name) { font-size: 18px; }
    body.detail-theme .fly-plan-price { font-size: 34px; }
    body.detail-theme :is(.plan-price-note,.fly-plan-price-note) { margin-bottom: 18px; }
    body.detail-theme :is(.plan-divider,.fly-plan-divider) { margin-bottom: 18px; }
    body.detail-theme :is(.plan-features,.fly-plan-features) { margin-bottom: 18px; }
    body.detail-theme :is(.plan-features,.fly-plan-features) li { line-height: 1.7 !important; padding-block: 5px !important; margin-bottom: 0 !important; }
    body.detail-theme :is(.plan-recommend,.fly-plan-recommend) { font-size: 12px; line-height: 1.75; margin-bottom: 18px; padding: 12px; }
    body.detail-theme :is(.plan-note,.fly-plan-note) { margin-bottom: 16px; }
    body.detail-theme :is(.plans-footnote,.fly-plans-footnote) { margin-top: 20px; padding: 18px; line-height: 1.8; }
    body.detail-theme :is(.faq-question,.fly-faq-question) { padding-block: 16px; min-height: 48px; }
    body.detail-theme :is(.faq-q-text,.fly-faq-q-text) { font-size: 13px; line-height: 1.7; }
    body.detail-theme :is(.faq-a-inner,.fly-faq-a-inner) { font-size: 13px; line-height: 1.8; }
    body.detail-theme :is(.svc-cta,.fly-cta) { padding-block: 42px; }
    body.detail-theme :is(.svc-cta-title,.fly-cta-title) { font-size: 24px; line-height: 1.55; }
    body.detail-theme :is(.svc-cta-lead,.fly-cta-lead) { font-size: 13px; line-height: 1.8; margin-bottom: 22px; }
    body.detail-theme .crosslink-banner { padding-block: 24px; }

    /* Hero panels remain clear of the fixed header and the inset red ring. */
    body.detail-theme :is(.svc-hero,.fly-hero) { min-height: 0; }
    body.detail-theme :is(.svc-hero-content,.fly-hero-content) { padding-top: 106px; padding-bottom: 66px; }
    body.detail-theme :is(.svc-hero-content,.fly-hero-content)::before { inset-block: 78px 40px; }
    body.detail-theme :is(.svc-hero-title,.fly-hero-title) { font-size: clamp(25px,6.7vw,31px); line-height: 1.5; margin-bottom: 16px; }
    body.detail-theme :is(.svc-hero-eyebrow,.fly-hero-eyebrow) { font-size: 10px; letter-spacing: .08em; padding: 6px 10px; margin-bottom: 16px; }
    body.detail-theme :is(.svc-hero-lead,.fly-hero-lead) { font-size: 13px; line-height: 1.8; margin-bottom: 20px; }
    body.detail-theme :is(.svc-hero-tags,.fly-hero-tags) { margin-bottom: 22px; gap: 6px; }
    body.detail-theme :is(.svc-hero-tag,.fly-hero-tag) { font-size: 11px; padding: 6px 8px; }
    body.detail-theme :is(.svc-hero-cta,.fly-hero-cta,.svc-cta-btns,.fly-cta-btns) { gap: 10px; }
    body.detail-theme :is(.btn-primary-blue,.btn-primary-amber,.btn-outline-white,.btn-plan,.btn-plan-amber) { padding-block: 13px; min-height: 46px; font-size: 13px; }

    /* Company, CEO, contact and legal pages: reduce blank space, retain readable body text. */
    body.info-theme .page-hero { padding-block: 92px 32px; }
    body.info-theme .page-hero-title { font-size: 25px; line-height: 1.5; margin-bottom: 10px; }
    body.info-theme .page-hero-subtitle { font-size: 12px; }
    body.info-theme .company-row { padding-block: 17px; gap: 6px; }
    body.info-theme .company-label { font-size: 12px; }
    body.info-theme .company-value { font-size: 14px; line-height: 1.8; }
    body.info-theme .map-title { font-size: 19px; margin-bottom: 18px; }
    body.info-theme .map-container { height: 280px; }
    body.info-theme .map-container iframe { height: 100%; }
    /* CEO: keep only the outer translucent surface and its safe frame gutter. */
    body.info-theme .ceo-content { padding-block: 24px; padding-inline: 0; background: transparent; }
    body.info-theme .ceo-text { margin-bottom: 16px; }
    body.info-theme .ceo-text h3 { font-size: 16px; line-height: 1.65; margin-bottom: 18px; padding-bottom: 12px; }
    body.info-theme .ceo-text p { font-size: 14px; line-height: 1.75; margin-bottom: 16px; }
    body.info-theme .ceo-signature { margin-top: 24px; padding-top: 22px; }
    body.info-theme .ceo-signature p { margin-bottom: 7px; }
    body.info-theme .contact-info-cards { margin-block: 16px; gap: 18px; }
    body.info-theme .contact-card { padding-block: 26px; }
    body.info-theme .contact-card-icon { width: 48px; height: 48px; font-size: 22px; margin-bottom: 14px; }
    body.info-theme .contact-card-title { font-size: 17px; margin-bottom: 10px; }
    body.info-theme .contact-card-text { font-size: 13px; margin-bottom: 12px; }
    body.info-theme .contact-card-value { font-size: 15px; }
    body.info-theme .form-container { margin-block: 20px; padding-block: 28px; }
    body.info-theme .form-title { font-size: 22px; margin-bottom: 22px; }
    body.info-theme .form-group { margin-bottom: 20px; }
    body.info-theme :is(.form-input,.form-select,.form-textarea) { font-size: 16px; padding: 10px 12px; min-height: 46px; }
    body.info-theme .form-textarea { min-height: 150px; }
    body.info-theme .form-submit { margin-top: 22px; }
    body.info-theme .btn-submit { padding: 13px 30px; min-height: 46px; }
    body.info-theme .form-notice { padding: 18px; margin-top: 22px; }
    body.info-theme .form-notice p { font-size: 13px; line-height: 1.8; }
    body.info-theme :is(.policy-content,.tokusho-content) { padding-block: 28px; }
    body.info-theme .policy-section { margin-bottom: 24px; }
    body.info-theme .policy-section h2 { font-size: 18px; line-height: 1.6; margin-bottom: 14px; }
    body.info-theme .policy-section h3 { font-size: 16px; line-height: 1.6; }
    body.info-theme .policy-section :is(p,ul,li) { font-size: 13px; line-height: 1.8; }
    body.info-theme .tokusho-section { margin-bottom: 24px; padding-bottom: 22px; }
    body.info-theme .tokusho-heading { font-size: 19px; line-height: 1.6; margin-bottom: 16px; }
    body.info-theme .tokusho-table { margin-bottom: 18px; }
    body.info-theme .tokusho-table :is(th,td) { padding: 10px 12px; font-size: 13px; line-height: 1.8; }
    body.info-theme .tokusho-section > :is(p,ul),
    body.info-theme .tokusho-section > ul > li { font-size: 13px; line-height: 1.8; }
    body.info-theme :is(.tokusho-note,.tokusho-warning) { padding: 14px 16px; margin-block: 18px; }
    body.info-theme :is(.tokusho-note p,.tokusho-warning p,.plan-info li) { font-size: 13px; line-height: 1.8; }
    body.info-theme .plan-info { padding: 18px; }
    body.info-theme .plan-info h4 { font-size: 16px; line-height: 1.6; }

    /* Keep navigation touch targets and the fixed CTA untouched; shorten footer whitespace only. */
    body:is(.home-page,.mint-theme) .footer { padding-top: 28px; }
}
