/* V41 public-ready finishing pass. Keep established page design; fix release quality only. */
:root{
  --v41-cta:#cc4806;
  --v41-cta-hover:#ad3d05;
  --v41-navy:#15304d;
  --v41-teal:#079bd3;
}
html,body{max-width:100%;overflow-x:clip}

/* Unified brand mark: diamond containing 市. */
.brand-mark-image,.v16-brand-mark-image{display:block;width:26px;height:26px;flex:0 0 26px;object-fit:contain}
.v36-brand .brand-mark-image{width:28px;height:28px;flex-basis:28px}
@media(max-width:720px){
  .brand-mark-image,.v16-brand-mark-image{width:24px;height:24px;flex-basis:24px}
  .v36-brand .brand-mark-image{width:24px;height:24px;flex-basis:24px}
}

/* CTA contrast: white text now clears normal-text WCAG AA contrast. */
.nav-cta,.v17-header-cta,.btn-primary,.v36-header-cta,.v36-nav .v36-nav-cta,
.v36-primary-btn,.v36-contact-action a,.v39-hero-btn,.v39-contact-btn,
.v16-btn-primary,.v16-nav-cta,.v17-submit{background:var(--v41-cta)!important;border-color:var(--v41-cta)!important;color:#fff!important}
.nav-cta:hover,.nav-cta:focus-visible,.v17-header-cta:hover,.v17-header-cta:focus-visible,
.btn-primary:hover,.btn-primary:focus-visible,.v36-header-cta:hover,.v36-header-cta:focus-visible,
.v36-nav .v36-nav-cta:hover,.v36-nav .v36-nav-cta:focus-visible,.v36-primary-btn:hover,.v36-primary-btn:focus-visible,
.v36-contact-action a:hover,.v36-contact-action a:focus-visible,.v39-hero-btn:hover,.v39-hero-btn:focus-visible,
.v39-contact-btn:hover,.v39-contact-btn:focus-visible,.v16-btn-primary:hover,.v16-btn-primary:focus-visible,
.v17-submit:hover,.v17-submit:focus-visible{background:var(--v41-cta-hover)!important;border-color:var(--v41-cta-hover)!important}

/* Keep primary links comfortably tappable without changing visual hierarchy. */
.site-nav a,.v16-nav a,.footer-nav a,.v16-footer nav a,.v17-text-link,.v16-text-link{min-height:44px;display:inline-flex;align-items:center}
.v17-text-link,.v16-text-link{padding-block:7px}

/* Public contact details and form fallback. */
.public-contact-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin:20px 0 0;font-size:.92rem;line-height:1.6;color:inherit}
.public-contact-meta span,.public-contact-meta a{display:inline-flex;align-items:center;min-height:36px;color:inherit;text-decoration:none}
.public-contact-meta a{text-decoration:underline;text-underline-offset:3px}
.public-form-note{margin:12px 0 0;font-size:.86rem;line-height:1.7;color:#dbe3ea}
.v17-contact-form .public-form-note{color:#cbd6e0}
.public-form-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.public-privacy-note{margin:10px 0 0;font-size:.82rem;line-height:1.65;color:#cbd6e0}
.public-privacy-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* Footer trust details. */
.public-footer-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:.78rem;line-height:1.55;color:rgba(255,255,255,.84)}
.public-footer-contact a{color:inherit;text-decoration:none;min-height:34px;display:inline-flex;align-items:center}
.public-footer-contact a:hover,.public-footer-contact a:focus-visible{text-decoration:underline}
.site-footer .footer-inner{row-gap:10px}
.v16-footer .public-footer-contact{justify-content:flex-start}

/* Only mobile menus need an explicit Home item. */
.public-mobile-home{display:none!important}
@media(max-width:820px){.public-mobile-home{display:flex!important}}

/* Prevent awkward Japanese breaks in the confirmed TOP. */
.v17-flow-list .public-phrase{display:inline-block;white-space:nowrap;max-width:100%}
.v17-sample-title,.v16-work-card h2{word-break:keep-all;overflow-wrap:normal;line-break:strict}

/* 360-390px containment: size by viewport, not fixed nowrap text. */
@media(max-width:430px){
  .v28-site .hero-title{font-size:clamp(1.72rem,8vw,1.92rem)!important;line-height:1.17!important;letter-spacing:-.035em!important}
  .v28-site .v28-flow-heading{font-size:clamp(1.22rem,6.2vw,1.42rem)!important;line-height:1.38!important;letter-spacing:-.02em}
  .v28-site .v28-flow-heading .v17-phrase{white-space:nowrap}
  .v28-site .v17-contact-heading{font-size:clamp(1.65rem,7.4vw,1.9rem)!important}
  .v36-hero h1{font-size:clamp(1.45rem,6.4vw,1.75rem)!important;line-height:1.38!important;max-width:100%!important}
  .v36-hero h1>span{white-space:nowrap}
  .v36-hero-lead span{white-space:normal!important}
}

/* Services: raise explanatory text from review-only tiny sizes while preserving the confirmed structure. */
@media(max-width:720px){
  .v36-support-card{min-height:118px!important;padding:12px 9px!important}
  .v36-support-card h3{font-size:.95rem!important;line-height:1.35!important}
  .v36-support-card p{font-size:.84rem!important;line-height:1.5!important}
  .v36-plan-intro p{font-size:.8rem!important;line-height:1.45!important}
  .v36-plan-card li{font-size:.82rem!important;line-height:1.45!important}
  .v36-option-grid article{min-height:104px!important}
  .v36-option-grid h3{font-size:.84rem!important;line-height:1.38!important}
  .v36-option-grid p{font-size:.78rem!important;line-height:1.45!important}
  .v36-contact-inner>div>p{font-size:.86rem!important;line-height:1.55!important}
}

/* Privacy page: intentionally simple, using the same brand system. */
.privacy-page{margin:0;background:#f7fbfc;color:var(--v41-navy);font-family:'Zen Kaku Gothic New','Noto Sans CJK JP',sans-serif}
.privacy-main{padding:72px 0 88px}
.privacy-main .privacy-wrap{width:min(100% - 40px,900px);margin-inline:auto}
.privacy-main .privacy-kicker{color:#078aa4;font-weight:700;margin:0 0 12px}
.privacy-main h1,.privacy-main h2{font-family:'Shippori Mincho','Noto Serif CJK JP',serif;color:var(--v41-navy)}
.privacy-main h1{font-size:clamp(2.1rem,5vw,3.3rem);line-height:1.28;margin:0 0 24px}
.privacy-main .privacy-lead{font-size:1rem;line-height:1.9;margin:0 0 36px;color:#43576b}
.privacy-card{background:#fff;border:1px solid #dbe9ee;border-radius:12px;padding:28px 30px;margin-top:18px}
.privacy-card h2{font-size:1.5rem;line-height:1.45;margin:0 0 12px}
.privacy-card p,.privacy-card li{font-size:1rem;line-height:1.85;color:#43576b}
.privacy-card ul{margin:8px 0 0;padding-left:1.4em}
.privacy-contact{display:grid;gap:6px;margin-top:12px}
.privacy-contact a{color:#087d96;text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){.privacy-main{padding:50px 0 64px}.privacy-card{padding:22px 18px}.privacy-main .privacy-wrap{width:calc(100% - 28px)}}
.site-footer .public-footer-contact,.v16-footer .public-footer-contact{grid-column:1/-1}
@media(max-width:720px){.site-footer .public-footer-contact,.v16-footer .public-footer-contact{justify-content:center}}
/* Final interaction sizing and 360px CTA containment. */
.brand,.v16-brand{min-height:44px;align-items:center}
.nav-toggle,.v36-mobile-actions .nav-toggle,.v17-header-mobile-actions .nav-toggle,.v16-nav-toggle{min-width:44px!important;min-height:44px!important}
.v17-header-cta,.v36-header-cta,.v16-nav-cta{min-height:44px!important}
.site-nav a,.v16-nav a,.footer-nav a,.v16-footer nav a{min-width:44px;justify-content:center}
.public-footer-contact a,.public-contact-meta a,.privacy-contact a{min-height:44px}
@media(max-width:430px){
  .v28-site .v17-hero-actions{max-width:100%}
  .v28-site .v17-primary-cta{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box}
}
.nav-cta{min-height:44px!important}
.public-form-note a,.public-privacy-note a{display:inline-flex;align-items:center;min-height:44px}
/* Release readability floor for the services page on phones. */
@media(max-width:720px){
  .v36-hero-lead{font-size:14px!important;line-height:1.65!important}
  .v36-section-head>p:last-child{font-size:14px!important;line-height:1.6!important}
  .v36-support-card h3{font-size:15px!important}
  .v36-support-card p{font-size:14px!important;line-height:1.5!important}
  .v36-plan-intro p{font-size:13px!important;line-height:1.5!important}
  .v36-plan-card li{font-size:14px!important;line-height:1.45!important}
  .v36-option-grid h3{font-size:13px!important;line-height:1.4!important}
  .v36-option-grid p{font-size:13px!important;line-height:1.45!important}
  .v36-contact-inner>div>p{font-size:14px!important;line-height:1.55!important}
}
