/* Shared label theme: cocoa kraft paper, white square panels and inset red frames.
   Legacy variable names are compatibility aliases, not the displayed palette.
   No HTML text, links, images of client work or application behavior is changed. */
:root {
    --material-brown: #514139;
    --material-kraft: #715440;
    --material-taupe: #c6b9aa;
    --material-cream: #ffffff;
    --material-charcoal: #292624;
    --frame-ring: inset 0 0 0 8px #fff, inset 0 0 0 12px var(--cup-red);
    --section-frame-ring: inset 0 0 0 12px #fff, inset 0 0 0 17px var(--cup-red);
    --cup-mint: var(--material-taupe);
    --cup-pink: #e9e1d5;
    --cup-navy: var(--material-charcoal);
    --cup-red: #b52632;
    --cup-red-hover: var(--cup-red);
    --cup-ivory: #ffffff;
    --cup-paper: var(--material-cream);
    --cup-panel: rgba(255,255,255,.70);
    --cup-section: rgba(255,255,255,.64);
    --cup-charcoal-glass: rgba(43,39,36,.92);
    --cup-mint-soft: #ede6dc;
    --cup-pink-soft: #f1eae0;
    --cup-line: #d0c4b7;
    --cup-body: #3d342f;
    --cup-muted: #62574f;
    --cup-display: 'Inter', 'Noto Sans JP', sans-serif;
    --cup-rounded: 'M PLUS Rounded 1c', 'Noto Sans JP', sans-serif;
    /* Aliases for the existing home and subpage layers. */
    --navy: var(--cup-navy);
    --navy-deep: #211d1a;
    --mint: var(--cup-mint);
    --mint-light: var(--cup-mint-soft);
    --green: var(--cup-navy);
    --ink: var(--cup-body);
    --muted: var(--cup-muted);
    --line: var(--cup-line);
    --white: var(--cup-paper);
    --maikai-navy: var(--cup-navy);
    --maikai-ink: var(--cup-body);
    --maikai-muted: var(--cup-muted);
    --maikai-green: var(--cup-navy);
    --maikai-mint: var(--cup-mint);
    --maikai-tint: var(--cup-mint-soft);
    --maikai-line: var(--cup-line);
    --color-black: var(--cup-navy);
    --color-white: var(--cup-paper);
    --color-gray-100: var(--cup-mint-soft);
    --color-gray-200: var(--cup-line);
    --color-gray-300: #c7b9aa;
    --color-gray-400: #8e8074;
    --color-gray-500: var(--cup-muted);
    --color-gray-600: var(--cup-body);
    --color-gray-700: #3d342f;
    --color-gray-800: #332c27;
    --color-gray-900: var(--cup-navy);
    --accent: var(--cup-navy);
    --accent-dark: #3f332d;
    --accent-light: var(--cup-mint);
    --accent-dim: #ede6dc;
    --accent-dim2: #f6f1e9;
}
body:is(.home-page,.mint-theme) { color: var(--cup-body); background: var(--cup-panel); }
body ::selection { background: var(--cup-pink); color: var(--cup-navy); }

/* Standard Gothic/sans-serif headings; keep smaller UI and body styling intact. */
body :is(h1,h2,h3,h4,h5,h6,.plan-name,.fly-plan-name,.company-value,.contact-card-value) {
    font-family: var(--cup-display);
    font-weight: 700;
}
body :is(.hero-main,.vision-headline,.section-title,.section-title-large,.contact-title,.page-hero-title,.service-hero h1,.svc-hero-title,.fly-hero-title,.svc-section-title,.fly-section-title,.svc-cta-title,.fly-cta-title,.feature-title) {
    font-family: var(--cup-display) !important;
    font-weight: 700 !important;
    letter-spacing: .005em;
    line-height: 1.55;
    text-wrap: balance;
}
body :is(.trust-highlight,.price-large,.stat-num,.fly-stat-num,.plan-price,.fly-plan-price,.flow-number,.step-number,.pain-num) {
    font-family: var(--cup-display);
    font-weight: 700;
    font-variant-numeric: lining-nums;
}
body :is(.nav-link,.nav-logo a::after,.footer-brand) {
    font-family: var(--cup-display);
    font-weight: 600;
    letter-spacing: .04em;
}
body :is(.btn,.btn-primary-blue,.btn-primary-amber,.btn-outline-white,.btn-plan,.btn-plan-amber,.mobile-menu-link,.nav-dropdown-link,.fixed-btn-service,.form-label) {
    font-family: var(--cup-rounded);
    font-weight: 800;
}
body :is(.hero-subtitle,.section-subtitle,.page-hero-subtitle,.svc-hero-tag,.fly-hero-tag) {
    font-family: var(--cup-rounded);
    font-weight: 700;
}
/* No synthetic bold stroke on legal/paragraph text: keep it crisp and readable. */
.home-page .hero-main { font-size: clamp(44px,5.05vw,70px); transform: rotate(-1.5deg); transform-origin: left center; }
.home-page .hero-subtitle { font-size: clamp(16px,1.7vw,21px); letter-spacing: .01em; }
.home-page .trust-highlight { letter-spacing: -.035em; }
.home-page .service-card::after { font-family: var(--cup-display); font-weight: 600; color: var(--cup-pink); }
body :is(.page-hero-title,.service-hero h1) { line-height: 1.65; }

/* Smoked-charcoal glass keeps the existing white logo visible. */
body:is(.home-page,.mint-theme) :is(.nav,.nav.scrolled) {
    background: var(--cup-charcoal-glass);
    color: #fff;
    border-color: rgba(255,255,255,.16);
    box-shadow: 0 3px 18px rgba(30,34,38,.1);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}
body:is(.home-page,.mint-theme) .nav-link,
body:is(.home-page,.mint-theme) .nav-logo a::after,
body:is(.home-page,.mint-theme) .nav-logo .logo-text { color: #fff; }
body:is(.home-page,.mint-theme) .nav-link:hover { color: var(--cup-mint); }
body:is(.home-page,.mint-theme) :is(.hamburger,.nav.scrolled .hamburger) { background: #fff; }
/* Multiply blend hides white pixels even over dark surfaces: reset the logo only. */
body:is(.home-page,.mint-theme) :is(.nav-logo img,.footer-logo img) {
    mix-blend-mode: normal;
    filter: none;
    opacity: 1;
}
body:is(.home-page,.mint-theme) :is(.nav-dropdown,.mobile-menu) {
    background: rgba(43,39,36,.98);
    color: #fff;
    border-color: rgba(255,255,255,.16);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}
body:is(.home-page,.mint-theme) :is(.nav-dropdown-link,.mobile-menu-link) { color: #fff; border-color: rgba(255,255,255,.16); }
body:is(.home-page,.mint-theme) .nav-dropdown-link:hover { background: var(--cup-pink-soft); color: var(--cup-navy); }
body:is(.home-page,.mint-theme) .mobile-menu-link:hover { color: var(--cup-mint); }
.home-page .nav-menu>.nav-link:last-child { background: var(--cup-red); color: #fff; }
.home-page .nav-menu>.nav-link:last-child:hover { background: var(--cup-red-hover); color: #fff; }
body .nav-link::after { background: var(--cup-red); }
body .reading-progress { background: var(--cup-red); }
body:is(.home-page,.mint-theme) .footer {
    background: var(--cup-charcoal-glass);
    color: #f1ece4;
    border-top: 1px solid rgba(255,255,255,.16);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}
body:is(.home-page,.mint-theme) .footer :is(.footer-brand,.footer-copy,.footer-links,.footer-bottom,a,p,span) { color: #f1ece4 !important; }
body:is(.home-page,.mint-theme) .footer .footer-brand { color: #fff !important; }
body:is(.home-page,.mint-theme) .footer a:hover { color: var(--cup-mint) !important; }
body:is(.home-page,.mint-theme) .nav a:focus-visible,
body:is(.home-page,.mint-theme) .nav button:focus-visible,
body:is(.home-page,.mint-theme) .footer a:focus-visible { outline: 2px solid var(--cup-mint); outline-offset: 4px; }

/* Warm neutral surfaces; legacy component names are intentionally preserved. */
.home-page .top-banner { background: var(--cup-pink); border-bottom-color: rgba(81,65,57,.12); }
.home-page .top-banner-content { color: var(--cup-navy); }
.home-page .hero-banner-highlight { color: var(--cup-navy); font-weight: 900; }
.home-page :is(.hero,.hero-bg) { background: var(--cup-mint); }
.home-page .hero-copy { padding-right: 12px; }
.home-page .hero-main,
.home-page .marunage-char { color: var(--cup-navy); }
.home-page .marunage-char::before { background: var(--cup-pink); height: 20%; bottom: 12%; border-radius: 999px; }
.home-page .hero-line span:first-child { background: var(--cup-navy); border-radius: 99px; }
.home-page .hero-line span:not(:first-child) { background: var(--cup-pink); }
.home-page .visual-orbit { border: 2px solid rgba(81,65,57,.18); }
.home-page .visual-spark { color: var(--cup-navy); font-family: var(--cup-display); font-weight: 700; }
.home-page .hero-scroll span { background: rgba(81,65,57,.5); }
.home-page .trust-section { background: var(--cup-ivory); border-color: rgba(81,65,57,.15); }
.home-page :is(.trust-text,.trust-ceo) { border-color: #d9d6c9; }
.home-page .trust-highlight { color: var(--cup-navy); text-shadow: none; }
.home-page .trust-feature-item i { color: var(--cup-navy); }
.home-page .trust-badge { color: var(--cup-navy); }
.home-page #vision { background: var(--cup-panel); }
.home-page .vision-left { background: var(--cup-pink); border: 2px solid var(--cup-navy); border-radius: 48% 48% 28px 28px; }
.home-page .vision-left::before { border-color: rgba(81,65,57,.2); }
.home-page :is(.title-underline,.section-title::before,.section-title-large::before) { background: var(--cup-red); border-radius: 2px; }
.home-page .vision-left .title-underline { background: var(--cup-navy); }
.home-page #service { background: var(--cup-mint); }
.home-page #service .section-title::before { background: var(--cup-red); }
.home-page .service-card { background: var(--cup-panel); border: 2px solid var(--cup-navy); border-radius: 24px; box-shadow: 5px 5px 0 rgba(81,65,57,.12); }
.home-page .service-card:hover { border-color: var(--cup-navy); box-shadow: 7px 9px 0 rgba(81,65,57,.14); }
.home-page .service-icon { background: var(--cup-mint); color: var(--cup-navy); border: 2px solid var(--cup-navy); }
.home-page .service-card-secondary .service-icon { background: var(--cup-pink); color: var(--cup-navy); }
.home-page .service-features i { background: var(--cup-mint-soft); color: var(--cup-navy); }
.home-page .service-price .price-large { font-family: var(--cup-display); font-weight: 800; }
.home-page .flow-number { background: var(--cup-mint); color: var(--cup-navy); border: 2px solid var(--cup-navy); }
.home-page .flow-step:nth-child(even) .flow-number { background: var(--cup-pink); color: var(--cup-navy); }
.home-page .flow-grid::before { border-color: var(--cup-line); }
.home-page .cancellation-supplement { background: var(--cup-pink-soft); border-left: 4px solid var(--cup-pink); }
.home-page .company-section { background: var(--cup-mint-soft); }
.home-page :is(.company-grid,.company-item) { border-color: #c9bcad; }
.home-page #contact { background: var(--cup-navy); }
.home-page #contact .contact-title { color: var(--cup-pink); }
.home-page #contact .contact-text { color: var(--cup-ivory); }

/* Shared lower-page heroes: neutral labels and warm-charcoal headlines. */
body.mint-theme :is(.page-hero,.service-hero,.svc-hero,.fly-hero) { background: var(--cup-mint); color: var(--cup-navy); }
body.mint-theme .page-hero::before { background: radial-gradient(circle at 14% 10%,rgba(247,245,236,.15),transparent 55%); }
body.mint-theme :is(.svc-hero-overlay,.fly-hero-overlay) { background: rgba(255,255,255,.26); }
body.mint-theme :is(.svc-hero-bg,.fly-hero-bg) { opacity: .08; }
body.mint-theme :is(.svc-hero-title .accent,.fly-hero-title .accent-a) {
    color: var(--cup-navy); -webkit-text-fill-color: var(--cup-navy);
    background: none; text-decoration: underline; text-decoration-color: var(--cup-pink);
    text-decoration-thickness: .13em; text-underline-offset: .12em; text-decoration-skip-ink: none;
}
body.mint-theme :is(.svc-hero-eyebrow,.fly-hero-eyebrow) { background: var(--cup-pink); color: var(--cup-navy); border-color: var(--cup-navy); }
body.mint-theme :is(.svc-hero-tag,.fly-hero-tag) { background: var(--cup-ivory); color: var(--cup-navy); border-color: rgba(81,65,57,.25); }
body.mint-theme .page-hero-title::after { background: var(--cup-red); border-radius: 2px; }
body.mint-theme :is(.page-hero-subtitle,.service-hero-subtitle,.service-hero-tagline,.svc-hero-lead,.fly-hero-lead,.svc-hero-scroll,.fly-hero-scroll) { color: var(--cup-navy); opacity: 1; }
body.mint-theme :is(.page-hero-title,.svc-hero-title,.fly-hero-title) { text-shadow: 2px 3px 0 rgba(247,245,236,.25); }

/* Detail cards, price surfaces and illustrations inherit the reference palette. */
body.detail-theme :is(.pain-section,.feature-section,.works-section,.why-section,.compare-section,.ba-section) { background: var(--cup-panel); }
body.detail-theme :is(.stats-strip,.fly-stats-strip) { background: var(--cup-section); }
body.detail-theme :is(.stat-num,.fly-stat-num) { color: var(--cup-navy); text-shadow: none; }
body.detail-theme :is(.plans-section,.fly-plans-section) { background: var(--cup-mint); }
body.detail-theme :is(.process-section,.fly-process-section,.faq-section,.fly-faq-section) { background: var(--cup-ivory); }
body.detail-theme :is(.pain-card,.why-card,.work-card,.plan-card,.fly-plan-card) { background: var(--cup-panel); border-color: var(--cup-line); }
body.detail-theme :is(.work-card,.plan-card,.fly-plan-card,.ba-col) { border-radius: 20px; }
body.detail-theme :is(.plan-card,.fly-plan-card) { border: 2px solid var(--cup-navy); box-shadow: 4px 5px 0 rgba(81,65,57,.1); }
body.detail-theme :is(.plan-card,.fly-plan-card).featured { background: var(--cup-panel); border-color: var(--cup-navy); }
body.detail-theme :is(.plan-card,.fly-plan-card):hover { border-color: var(--cup-navy); }
body.detail-theme :is(.plan-card,.fly-plan-card)::after { background: var(--cup-pink); }
body.detail-theme :is(.plan-card,.fly-plan-card):is(.featured,:hover)::after { background: var(--cup-pink); }
body.detail-theme :is(.plan-badge,.plan-badge.rec,.fly-plan-badge) { background: var(--cup-pink) !important; color: var(--cup-navy) !important; }
body.detail-theme :is(.plan-recommend,.fly-plan-recommend) { background: var(--cup-pink-soft); border-color: var(--cup-pink); border-radius: 8px; }
body.detail-theme :is(.plans-footnote,.fly-plans-footnote) { background: var(--cup-ivory); border-color: rgba(81,65,57,.18); border-radius: 12px; }
body.detail-theme :is(.feature-visual-inner,.work-visual) { background: var(--cup-mint) !important; border-color: rgba(81,65,57,.2); }
body.detail-theme :is(.work-card:nth-child(even) .work-visual,.feature-block.reverse .feature-visual-inner) { background: var(--cup-pink) !important; }
body.detail-theme :is(.fl-top,.p-top-bar,.poster-top,.dl-left) { background: var(--cup-pink) !important; }
body.detail-theme .mockup-browser { background: var(--cup-ivory); }
body.detail-theme .mockup-hero-line { background: var(--cup-pink); }
body.detail-theme :is(.mockup-card,.mockup-line) { background: #cec0af; }
body.detail-theme :is(.why-icon-wrap,.process-icon-wrap,.fly-process-icon-wrap) { background: var(--cup-mint); border: 2px solid var(--cup-navy); color: var(--cup-navy); border-radius: 24px; }
body.detail-theme :is(.process-step:nth-child(even) .process-icon-wrap,.fly-process-step:nth-child(even) .fly-process-icon-wrap,.why-card:nth-child(even) .why-icon-wrap) { background: var(--cup-pink); }
body.detail-theme .pain-num { color: #b7a99b; }
body.detail-theme .compare-table :is(th,td).col-us { background: var(--cup-mint-soft); }
body.detail-theme .ba-col.after { background: var(--cup-mint-soft); }
body.detail-theme .ba-label.after { background: var(--cup-pink); color: var(--cup-navy); }
body.detail-theme :is(.faq-q-label,.fly-faq-q-label) { font-family: var(--cup-display); font-weight: 700; }
body.detail-theme :is(.faq-item.active .faq-q-icon,.fly-faq-item.active .fly-faq-q-icon) { background: var(--cup-pink); border-color: var(--cup-navy); color: var(--cup-navy); }
body.detail-theme .crosslink-banner { background: var(--cup-pink-soft); }

/* Informational and legacy service pages: cream reading surfaces, taupe accents. */
body.info-theme .ceo-content { background: var(--cup-panel); }
body.info-theme :is(.ceo-text h3,.policy-section h2) { border-color: var(--cup-pink); }
body.info-theme :is(.company-row::before,.company-value a::after,.ceo-text h3::after) { background: var(--cup-pink); }
body.info-theme :is(.contact-card,.form-container) { background: var(--cup-panel); border-radius: 24px; box-shadow: 4px 5px 0 rgba(81,65,57,.08); }
body.info-theme .contact-card-icon { background: var(--cup-mint); color: var(--cup-navy); border: 2px solid var(--cup-navy); }
body.info-theme .contact-card:nth-child(even) .contact-card-icon { background: var(--cup-pink); }
body.info-theme :is(.form-input,.form-select,.form-textarea) { border-radius: 12px; background: var(--cup-ivory); color: var(--cup-navy); }
body.info-theme :is(.form-input,.form-select,.form-textarea):focus { border-color: var(--cup-navy); box-shadow: 0 0 0 3px var(--cup-mint); }
body.info-theme :is(.form-notice,.tokusho-note) { background: var(--cup-mint-soft); border-color: var(--cup-mint); }
body.info-theme .tokusho-warning { background: var(--cup-pink-soft); border-color: var(--cup-pink); }
body.info-theme .tokusho-table th { background: var(--cup-mint-soft); }
body.info-theme .tokusho-table td { background: var(--cup-panel); }
body.info-theme :is(.plan-info,.policy-content) { background: var(--cup-panel); }
body.info-theme .form-required { color: var(--cup-red); }
body.legacy-service :is(.problem-card,.problem-item,.step-card) { border-color: var(--cup-pink); border-radius: 18px; }
body.legacy-service :is(.strategy-card,.plan-card,.flow-step) { border-radius: 20px; }
body.legacy-service :is(.problem-card,.problem-item,.step-card,.strategy-card,.plan-card,.flow-step,.faq-item) { background: var(--cup-panel); }
body.legacy-service .plan-card.featured { background: var(--cup-pink-soft); border-color: var(--cup-pink); }
body.legacy-service :is(.step-number,.flow-number,.strategy-icon-lg,.faq-q) { background: var(--cup-mint); color: var(--cup-navy); }
body.legacy-service .plan-badge { background: var(--cup-pink); color: var(--cup-navy); border-radius: 999px; }
body.legacy-service .comparison-winner { background: var(--cup-mint-soft) !important; }
body.legacy-service .comparison-table thead { background: var(--cup-navy); color: var(--cup-ivory); }
body.mint-theme :is(.campaign-badge,.set-plan-badge,.set-plan-save) { background: var(--cup-pink); color: var(--cup-navy); }
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) :is(.contact-title,.svc-cta-title,.fly-cta-title) { color: var(--cup-pink) !important; }
body.mint-theme #kiwami-plan :is(.plan-badge,.btn) { background: var(--cup-pink) !important; color: var(--cup-navy) !important; border-color: var(--cup-pink) !important; }

/* Rounded controls with charcoal/ivory pairs and red primary actions. */
body :is(.btn,.btn-primary-blue,.btn-primary-amber,.btn-outline-white,.btn-plan,.btn-plan-amber) { border-radius: 999px; }
body.home-page :is(.btn-primary,.btn-secondary,.btn-outline),
body.mint-theme :is(.btn-primary,.btn-secondary,.btn-primary-blue,.btn-primary-amber,.btn-plan.primary,.btn-plan-amber.primary) {
    background: var(--cup-navy) !important; color: var(--cup-ivory) !important; border-color: var(--cup-navy) !important;
}
body.home-page .btn-secondary,
body.mint-theme :is(.btn-plan:not(.primary),.btn-plan-amber:not(.primary)) {
    background: var(--cup-pink) !important; color: var(--cup-navy) !important; border-color: var(--cup-navy) !important;
}
body.home-page .btn-outline { background: transparent !important; color: var(--cup-navy) !important; }
body.mint-theme :is(.btn-outline,.btn-outline-white) { border-color: var(--cup-navy); }
body.home-page :is(.btn,.btn-primary,.btn-secondary,.btn-outline):hover,
body.mint-theme :is(.btn-primary,.btn-secondary,.btn-primary-blue,.btn-primary-amber,.btn-plan,.btn-plan-amber,.btn-outline,.btn-outline-white):hover {
    background: var(--cup-pink) !important; color: var(--cup-navy) !important; border-color: var(--cup-navy) !important;
}
body.home-page #contact .btn-white,
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-white) {
    background: var(--cup-pink) !important; color: var(--cup-navy) !important; border-color: var(--cup-pink) !important;
}
body.home-page #contact .btn-white:hover,
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-white):hover {
    background: var(--cup-mint) !important; color: var(--cup-navy) !important; border-color: var(--cup-mint) !important;
}
body :is(.btn,.btn-primary-blue,.btn-primary-amber,.btn-plan,.btn-plan-amber) i { color: inherit !important; }
body .fixed-bottom-buttons { background: var(--cup-ivory); border-color: rgba(81,65,57,.2); }
body .fixed-bottom-btn,
body.mint-theme .fixed-bottom-btn:first-child { background: var(--cup-mint); color: var(--cup-navy); }
body .fixed-bottom-btn:nth-child(2),
body.mint-theme .fixed-bottom-btn:nth-child(2) { background: var(--cup-pink); color: var(--cup-navy); }
body .fixed-bottom-btn:last-child,
body.mint-theme .fixed-bottom-btn:last-child { background: var(--cup-red); color: #fff; }
body .fixed-bottom-btn :is(.fixed-btn-title,.fixed-btn-service,.fixed-btn-price,.fixed-btn-icon) { color: inherit; }
body .fixed-bottom-btn:hover { background: #d9ccbc; }
body .fixed-bottom-btn:nth-child(2):hover { background: #f5efe5; }
body .fixed-bottom-btn:last-child:hover { background: var(--cup-red-hover); }

/* Fit the heavier glyphs without changing copy or truncating long headings. */
@media (max-width: 1100px) {
    .home-page .hero-main { font-size: 4.9vw; }
    .home-page .trust-highlight { font-size: 76px; }
}
@media (max-width: 800px) {
    .home-page .hero-main { font-size: 4.85vw; }
    .home-page .hero-subtitle { font-size: 13px; }
    .home-page .trust-highlight { font-size: 58px; }
    body :is(.svc-hero-title,.fly-hero-title) { line-height: 1.6; }
}
@media (max-width: 560px) {
    .home-page .hero-copy { padding-right: 0; }
    .home-page .hero-main { font-size: clamp(29px,8.2vw,44px); transform-origin: center; line-height: 1.8; }
    .home-page .hero-subtitle { font-size: 13px; }
    .home-page .trust-highlight { font-size: 80px; }
    .home-page :is(.section-title,.section-title-large) { font-size: 36px; }
    .home-page .policy-section .section-title { font-size: 29px; }
    .home-page .vision-headline { font-size: 23px; line-height: 1.9; }
    .home-page .service-title { font-size: 20px; }
    body.mint-theme :is(.svc-hero-title,.fly-hero-title) { font-size: clamp(27px,7.6vw,39px); }
    body.mint-theme .page-hero-title { font-size: clamp(24px,7vw,32px); letter-spacing: 0; }
    body.mint-theme :is(.svc-section-title,.fly-section-title) { font-size: clamp(23px,6.5vw,29px); }
    body.mint-theme :is(.svc-cta-title,.fly-cta-title) { font-size: clamp(25px,7vw,32px); }
    body.mint-theme .service-hero h1 { font-size: 28px; }
    body.mint-theme .section-title { letter-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) {
    body :is(.hero-main,.hero-visual img,.visual-orbit) { animation: none; }
}

/* Fixed photographic kraft paper: a fixed layer avoids iOS background-attachment bugs.
   Normal document stacking is isolated so the negative layer stays behind content,
   but above the body color. No transforms on body or this fixed layer. */
body:is(.home-page,.mint-theme) {
    position: relative;
    isolation: isolate;
    background: var(--material-kraft);
}
body:is(.home-page,.mint-theme)::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-color: var(--material-kraft);
    background-image: url('../images/kraft-paper-brown.png');
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}
/* Leave kraft paper visible at heroes and between the readable section panels. */
body.home-page :is(.hero,.hero-bg,#service),
body.mint-theme :is(.page-hero,.service-hero,.svc-hero,.fly-hero),
body.detail-theme :is(.plans-section,.fly-plans-section) { background: transparent; }
body.mint-theme :is(.svc-hero-bg,.fly-hero-bg) { background: none; opacity: 0; }
body.mint-theme .page-hero::before { background: none; }
body.home-page :is(.trust-section,#vision,.flow-section,.policy-section,.company-section),
body.mint-theme .section:not(.section-dark),
body.detail-theme :is(.pain-section,.feature-section,.works-section,.why-section,.compare-section,.ba-section,.process-section,.fly-process-section,.faq-section,.fly-faq-section) {
    background: var(--cup-section);
}
body.home-page :is(.trust-section,.company-section),
body.detail-theme :is(.stats-strip,.fly-stats-strip),
body.legacy-service :is(.solution-section,.strategy-section,.flow-section) { background: var(--cup-section); }
body.info-theme :is(.policy-content,.tokusho-content) {
    background: var(--cup-panel);
    border-radius: 20px;
}
body.info-theme .policy-content { padding-top: 2rem; padding-bottom: 2rem; }
/* Soft taupe outlines frame the warm reading panels. */
body.home-page .service-card { border-color: #c9bcad; box-shadow: 0 12px 35px rgba(81,65,57,.06); }
body.home-page .service-card:hover { border-color: #9b8979; box-shadow: 0 18px 40px rgba(81,65,57,.1); }
body.home-page .service-card::after { color: #bcac9b; }
body.home-page :is(.vision-left,.service-icon,.flow-number),
body.detail-theme :is(.plan-card,.fly-plan-card,.why-icon-wrap,.process-icon-wrap,.fly-process-icon-wrap) { border-color: #c1b19f; }
body.home-page .hero-main { transform: none; }
/* Keep white utility panels translucent; do not lower text/image opacity. */
body.info-theme :is(.form-input,.form-select,.form-textarea) { background: rgba(255,253,248,.98); }
body.detail-theme :is(.plans-footnote,.fly-plans-footnote) { background: var(--cup-panel); }
body:is(.home-page,.mint-theme) .fixed-bottom-buttons { background: rgba(247,244,236,.97); }
/* Red is reserved for key actions and small editorial marks, not large surfaces. */
body.home-page .btn-primary,
body.mint-theme :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-plan.primary,.btn-plan-amber.primary) {
    background: var(--cup-red) !important;
    color: #fff !important;
    border-color: var(--cup-red) !important;
}
body.home-page .btn-primary:hover,
body.mint-theme :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-plan.primary,.btn-plan-amber.primary):hover {
    background: var(--cup-red-hover) !important;
    color: #fff !important;
    border-color: var(--cup-red-hover) !important;
}
body.home-page #contact .btn-white,
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-white) {
    background: var(--cup-red) !important;
    color: #fff !important;
    border-color: var(--cup-red) !important;
}
body.home-page #contact .btn-white:hover,
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) :is(.btn-primary,.btn-primary-blue,.btn-primary-amber,.btn-white):hover {
    background: var(--cup-red-hover) !important;
    color: #fff !important;
    border-color: var(--cup-red-hover) !important;
}
/* Plain white title panels on lower pages; preserve existing text widths. */
body.home-page .hero-copy,
body.mint-theme :is(.svc-hero-content,.fly-hero-content),
body.info-theme .page-hero > .container,
body.legacy-service .service-hero > .container {
    position: relative;
    isolation: isolate;
}
body.mint-theme :is(.svc-hero-content,.fly-hero-content)::before,
body.info-theme .page-hero > .container::before,
body.legacy-service .service-hero > .container::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: -30px -20px;
    pointer-events: none;
    background-color: var(--cup-panel);
    background-image: none;
    border-radius: 0;
    border: 0;
    box-shadow: var(--frame-ring),0 12px 35px rgba(31,23,18,.18);
}
body.mint-theme :is(.svc-hero-content,.fly-hero-content)::before { inset: 5.8rem .5rem 4.4rem; }
body.info-theme .page-hero > .container::before,
body.legacy-service .service-hero > .container::before { inset: -24px 0; }
body.mint-theme :is(.svc-hero-overlay,.fly-hero-overlay) { background: transparent; }
body.home-page .vision-left,
body.home-page #service .section-header,
body.detail-theme .plans-section .svc-section-header,
body.detail-theme .fly-plans-section .fly-section-header {
    background-color: var(--cup-panel);
    background-image: none;
}
body.home-page #service .section-header,
body.detail-theme .plans-section .svc-section-header,
body.detail-theme .fly-plans-section .fly-section-header {
    width: fit-content;
    max-width: 100%;
    padding: 24px 28px;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(31,23,18,.16);
}
body.detail-theme .plans-section .svc-section-header,
body.detail-theme .fly-plans-section .fly-section-header { margin-inline: auto; }
body.home-page .top-banner { background: var(--material-brown); }
body.home-page :is(.top-banner-content,.hero-banner-highlight) { color: var(--cup-ivory); }
body.home-page .hero-scroll,
body.mint-theme :is(.svc-hero-scroll,.fly-hero-scroll) { color: var(--cup-ivory); }
body.home-page .hero-scroll span { background: var(--cup-ivory); }
body.mint-theme :is(.svc-hero-scroll-line,.fly-hero-scroll-line) { background: linear-gradient(var(--cup-ivory),transparent); }
body.mint-theme :is(.svc-hero-title .accent,.fly-hero-title .accent-a) { text-decoration-color: #c7b49f; }
body.home-page .service-card,
body.detail-theme :is(.plan-card,.fly-plan-card) { box-shadow: 0 12px 30px rgba(31,23,18,.16); }
body.home-page #contact,
body.mint-theme :is(.section-dark,.svc-cta,.fly-cta) { background: var(--material-brown) !important; }
body .fixed-bottom-btn:first-child,
body.mint-theme .fixed-bottom-btn:first-child { background: var(--material-brown); color: var(--cup-ivory); }
body .fixed-bottom-btn:first-child:hover,
body.mint-theme .fixed-bottom-btn:first-child:hover { background: #3f332d; color: var(--cup-ivory); }
body .fixed-bottom-btn:nth-child(2) { background-color: var(--cup-ivory); }
body .fixed-bottom-btn:last-child .fixed-btn-title { color: inherit; }
/* Neutralize old inline illustration colors without editing any HTML content. */
body.detail-theme [style*="rgba(59,130,246" i] { border-color: var(--cup-line) !important; }
body.detail-theme [style*="color:rgba(59,130,246" i],
body.detail-theme [style*="color: rgba(59,130,246" i] { color: var(--material-brown) !important; }
body.detail-theme :is([style*="background:#1a1a2e" i],[style*="background:#16213e" i]) { background: var(--material-brown) !important; }
body.detail-theme [style*="background:#f0fdf4" i] { background: var(--cup-mint-soft) !important; }
body.detail-theme .mockup-dot:nth-child(1) { background: var(--cup-red) !important; }
body.detail-theme .mockup-dot:nth-child(2) { background: var(--material-taupe) !important; }
body.detail-theme .mockup-dot:nth-child(3) { background: var(--material-brown) !important; }
/* Square corners are intentional throughout the site's UI (including pseudo frames).
   Original bitmap images remain untouched. Native controls retain their semantics. */
body:is(.home-page,.mint-theme) *,
body:is(.home-page,.mint-theme) *::before,
body:is(.home-page,.mint-theme) *::after { border-radius: 0 !important; }
body.home-page .hero-copy::before { content: none; display: none; }

/* Translucent section backgrounds only: text, images and red frames stay opaque. */
body.home-page :is(.trust-section,#vision,.flow-section,.policy-section,.company-section),
body.mint-theme .section:not(.section-dark),
body.detail-theme :is(.pain-section,.feature-section,.works-section,.why-section,.compare-section,.ba-section,.process-section,.fly-process-section,.faq-section,.fly-faq-section),
body.legacy-service :is(.solution-section,.strategy-section,.flow-section) {
    background: var(--cup-section);
    box-shadow: var(--section-frame-ring);
}
/* Individual white labels/cards use the same inset construction at a smaller scale.
   Existing generous card padding keeps the frame clear of the text. */
body.home-page :is(.service-card,.vision-left),
body.home-page #service .section-header,
body.detail-theme :is(.plan-card,.fly-plan-card,.work-card,.pain-card,.why-card),
body.detail-theme .plans-section .svc-section-header,
body.detail-theme .fly-plans-section .fly-section-header,
body.info-theme :is(.contact-card,.form-container,.policy-content,.tokusho-content),
body.legacy-service :is(.problem-card,.problem-item,.step-card,.strategy-card,.plan-card) {
    background-color: var(--cup-panel);
    background-image: none;
    border-color: #fff;
    box-shadow: var(--frame-ring);
}
body.home-page .service-card:hover,
body.detail-theme :is(.plan-card,.fly-plan-card):is(.featured,:hover) {
    background: var(--cup-panel);
    border-color: #fff;
    box-shadow: var(--frame-ring),0 12px 25px rgba(31,23,18,.14);
}
body.home-page .vision-left::before { border: 0; }
body.info-theme :is(.policy-content,.tokusho-content) { padding-inline: clamp(24px,4vw,48px); }
body.home-page #service .section-header,
body.detail-theme .plans-section .svc-section-header,
body.detail-theme .fly-plans-section .fly-section-header { box-shadow: var(--frame-ring); }
@media (max-width: 560px) {
    body:is(.home-page,.mint-theme)::before { background-position: 48% center; }
    body.mint-theme :is(.svc-hero-content,.fly-hero-content)::before { inset: 4.7rem .7rem 3.5rem; }
    body.info-theme .page-hero > .container::before,
    body.legacy-service .service-hero > .container::before { inset: -16px 0; }
    body.home-page #service .section-header,
    body.detail-theme .plans-section .svc-section-header,
    body.detail-theme .fly-plans-section .fly-section-header { padding: 22px 18px; }
}

/* Mobile reading room: the red inset frames occupy 12px on cards and 17px
   on sections. Keep readable content beyond those rings, without changing copy. */
@media (max-width: 768px) {
    body.home-page :is(.trust-section,#vision,.flow-section,.policy-section,.company-section) > .container {
        width: calc(100% - 64px);
    }
    body.mint-theme .section:not(.section-dark) > .container,
    body.detail-theme :is(.pain-section,.feature-section,.works-section,.why-section,.compare-section,.ba-section,.process-section,.fly-process-section,.faq-section,.fly-faq-section) > .container {
        padding-inline: 32px;
    }
    body.info-theme .page-hero > .container { padding-inline: 32px; }
    body.mint-theme :is(.svc-hero-content,.fly-hero-content) { padding-inline: 36px; }
    body.home-page #service .section-header,
    body.detail-theme .plans-section .svc-section-header,
    body.detail-theme .fly-plans-section .fly-section-header { padding: 28px; }
    body.detail-theme :is(.plan-card,.fly-plan-card) {
        /* Override the old .plan-card 12px !important mobile padding only here. */
        padding: 32px 28px !important;
    }
    body.detail-theme :is(.plan-badge,.fly-plan-badge) {
        align-self: center;
        max-width: 100%;
        text-align: center;
        letter-spacing: .08em;
    }
    body.detail-theme :is(.plan-type,.fly-plan-type,.plan-name,.fly-plan-name,.plan-price-wrap,.fly-plan-price-wrap,.fly-plan-sub) { text-align: center; }
    body.detail-theme :is(.plan-features,.fly-plan-features) li {
        display: block;
        position: relative;
        padding-left: 1.25rem !important;
        text-align: left;
        line-height: 1.8 !important;
        text-wrap: balance;
    }
    body.detail-theme :is(.plan-features,.fly-plan-features) li > i {
        position: absolute;
        left: 0;
        top: .35em;
    }
    body.info-theme :is(.form-container,.policy-content,.tokusho-content) { padding-inline: 28px; }
    body.info-theme .contact-card { padding-inline: 28px; }

    /* Long reading text stays left aligned; shorter headings/notes balance lines.
       Existing explicit breaks and prices remain intact. */
    body:is(.home-page,.mint-theme) :is(.vision-text,.trust-text p,.service-description,.cancellation-text,.ceo-text p,.policy-section p,.tokusho-section p,.faq-a-inner,.fly-faq-a-inner,.feature-desc,.fly-feature-desc) {
        line-break: strict;
        word-break: normal;
        overflow-wrap: break-word;
        text-wrap: pretty;
    }
    body:is(.home-page,.mint-theme) :is(.section-subtitle,.svc-section-lead,.fly-section-lead,.plan-note,.fly-plan-note,.fly-plan-sub,.plan-recommend,.fly-plan-recommend,.contact-text,.form-notice p,.tokusho-note p,.tokusho-warning p,.work-desc,.pain-text,.why-text) {
        line-break: strict;
        word-break: normal;
        overflow-wrap: break-word;
        text-wrap: balance;
    }
    body:is(.home-page,.mint-theme) :is(.plan-name,.fly-plan-name,.ceo-text h3,.tokusho-heading,.policy-section h2,.form-title,.service-title,.line-support-steps h3) {
        text-wrap: balance;
        line-break: strict;
    }
    body.detail-theme .plan-sentence { display: block; text-wrap: balance; }
    body.detail-theme .plan-sentence + .plan-sentence { margin-top: .35em; }
    body.detail-theme .plan-phrase,
    body:is(.home-page,.mint-theme) .mobile-phrase { display: inline-block; max-width: 100%; }
    body:is(.home-page,.mint-theme) .mobile-keep { white-space: nowrap; }
}

/* Keep Japanese CEO copy naturally spaced instead of stretching each line. */
body.info-theme .ceo-text p { text-align: left; }
body.info-theme .ceo-text .ceo-signature p { text-align: right; }
body.info-theme .ceo-text .ceo-catchphrase { text-wrap: balance; }
/* CONTACT already has an opaque brown fill; remove only the lighter overlay. */
body.home-page #contact::before { content: none; display: none; }
