/* SZPC rebuild foundation. Built from the 2026-08-01 visual baseline, not from the discarded redesign. */
:root{
  --sz-navy:#082b4c;
  --sz-navy-2:#123a5d;
  --sz-blue:#1f6fa8;
  --sz-blue-dark:#15527f;
  --sz-gold:#d7bd7d;
  --sz-ink:#171b1f;
  --sz-text:#30373d;
  --sz-muted:#59636c;
  --sz-line:#cbd3d9;
  --sz-soft:#f4f5f4;
  --sz-white:#fff;
  --sz-shell:1760px;
  --sz-copy:900px;
  --sz-header:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--sz-header) + 24px)}
body.site-body{margin:0;padding-top:var(--sz-header);color:var(--sz-text);background:#fff;font-family:"BIZ UDPGothic","Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:17px;font-weight:500;line-height:1.75;letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
a{color:var(--sz-blue);text-underline-offset:.2em}
a:hover{color:var(--sz-blue-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #0868aa;outline-offset:3px;box-shadow:none!important}
h1,h2,h3,h4,h5,h6{margin-top:0;color:var(--sz-ink);font-family:inherit;font-weight:800;letter-spacing:-.015em;line-height:1.35;text-wrap:balance;word-break:normal;overflow-wrap:anywhere}
p,li,dd,td,th{overflow-wrap:anywhere}
.container{width:min(var(--sz-shell),calc(100% - 80px))!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
.skip-link{position:fixed;z-index:2000;top:-100px;left:12px;padding:.65rem .9rem;color:#fff!important;background:#000;text-decoration:none}
.skip-link:focus{top:10px}

/* One header system for every public page. Keep the visual language of the original Bootstrap header. */
.site-nav{height:var(--sz-header);min-height:var(--sz-header);padding:0!important;background:var(--sz-navy)!important;background-image:none!important;border:0!important;box-shadow:none!important}
.site-nav>.container{height:100%;display:flex;align-items:center}
.site-nav .navbar-brand{display:flex;align-items:center;min-height:var(--sz-header);margin:0;color:#fff!important;font-size:1rem;font-weight:800;line-height:1.2;white-space:nowrap;text-decoration:none}
.site-nav .navbar-brand .logo{width:44px!important;height:44px!important;margin-right:.68rem!important;object-fit:contain}
.site-nav .navbar-collapse{height:100%}
.site-nav .navbar-nav{height:100%;gap:0}
.site-nav .nav-item{height:100%;display:flex;align-items:stretch}
.site-nav .nav-link{display:flex;align-items:center;min-height:var(--sz-header);padding:0 .83rem!important;color:#f5f7f8!important;background:transparent!important;border:0!important;border-radius:0!important;font-size:.88rem;font-weight:700;line-height:1.25;text-decoration:none}
.site-nav .nav-link:hover,.site-nav .nav-link:focus-visible,.site-nav .nav-link.active,.site-nav .nav-link[aria-current="page"]{color:var(--sz-gold)!important;background:transparent!important}
.site-nav .nav-cta{min-height:44px;margin-left:.8rem!important;padding:.56rem 1rem!important;color:#102234!important;background:var(--sz-gold)!important;border:1px solid var(--sz-gold)!important;border-radius:1px!important;box-shadow:none!important;font-size:.88rem;font-weight:800}
.site-nav .nav-cta:hover,.site-nav .nav-cta:focus-visible{color:#081828!important;background:#e5d3a3!important;border-color:#e5d3a3!important}
.site-nav .navbar-toggler{width:48px;height:44px;margin-left:auto;padding:.45rem;border:1px solid #7890a4!important;border-radius:1px!important;box-shadow:none!important}
.site-nav .navbar-toggler-icon{width:1.35rem;height:1.35rem}

/* Hero: preserve the original photographic identity. No decorative glass, blobs or card surfaces. */
.hero,.legal-hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;background-color:#0d2235;background-size:cover;background-position:center}
.hero::before,.legal-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(4,18,30,.72)}
.hero>.container,.legal-hero>.container,.legal-hero>.narrow{position:relative;z-index:1}
.hero{min-height:480px;display:flex;align-items:center;padding:4.6rem 0 4.2rem}
.hero.hero-compact{min-height:400px;padding:4.1rem 0 3.8rem}
.hero h1,.legal-hero h1{max-width:1120px;margin:0;color:#fff;font-size:clamp(2.25rem,3vw,3.55rem);line-height:1.25;letter-spacing:-.025em;text-align:left}
.hero-compact h1{font-size:clamp(2.05rem,2.65vw,3.1rem)}
.hero .hero-lead,.legal-hero p{max-width:900px;margin:1rem 0 0;color:#eef3f6;font-size:1.05rem;line-height:1.8;text-align:left}
.hero .hero-label,.hero .eyebrow-text,.legal-hero .eyebrow{display:block;margin:0 0 .65rem;color:var(--sz-gold)!important;font-size:.83rem;font-weight:900;letter-spacing:.08em;text-transform:none}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.hero-phone{margin-top:1.15rem!important}
.hero-phone-link{color:#fff!important;font-weight:800}
.home-hero-choices{display:flex;flex-wrap:wrap;gap:.7rem 1.25rem;margin-top:1.45rem}
.home-hero-choice{display:inline-flex;align-items:center;min-height:44px;padding:.38rem 0;color:#fff!important;background:transparent!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.62)!important;border-radius:0!important;text-decoration:none}
.home-hero-choice:hover,.home-hero-choice:focus-visible{color:var(--sz-gold)!important;border-bottom-color:var(--sz-gold)!important}

/* Controls: restrained and squared. */
.btn{min-height:44px;padding:.62rem 1rem;border-radius:1px!important;box-shadow:none!important;font-weight:800;line-height:1.3;transform:none!important}
.btn-primary{color:#102234!important;background:var(--sz-gold)!important;border:1px solid var(--sz-gold)!important}
.btn-primary:hover,.btn-primary:focus-visible{color:#071827!important;background:#e6d4a7!important;border-color:#e6d4a7!important}
.btn-outline-primary{color:var(--sz-blue)!important;background:#fff!important;border:1px solid #6e93ae!important}
.btn-outline-primary:hover,.btn-outline-primary:focus-visible{color:#fff!important;background:var(--sz-blue)!important;border-color:var(--sz-blue)!important}
.btn-light{color:#13283a!important;background:#fff!important;border:1px solid #fff!important}
.btn-outline-light{color:#fff!important;background:transparent!important;border:1px solid rgba(255,255,255,.75)!important}
.btn-outline-light:hover,.btn-outline-light:focus-visible{color:#fff!important;background:rgba(255,255,255,.08)!important;border-color:#fff!important}

/* Page rhythm. */
.section-block,.section{padding:4.6rem 0}
.section-block+.section-block{border-top:1px solid var(--sz-line)}
.bg-light{background:var(--sz-soft)!important}
.section-block h2,.section h2{margin-bottom:1rem;font-size:clamp(1.75rem,2.2vw,2.5rem)}
.section-block> .container>p.lead,.section-block .section-lead{max-width:980px;color:#3f484f;font-size:1.06rem;line-height:1.8}
.narrow{width:min(980px,calc(100% - 40px));margin-inline:auto}
.text-block{padding:1.15rem 0;border-top:1px solid var(--sz-line);background:transparent!important;border-radius:0!important;box-shadow:none!important}
.text-block:first-child{border-top:0}
.feature-card{height:100%;padding:1.35rem 0 1.1rem;background:transparent!important;border:0!important;border-top:2px solid var(--sz-navy)!important;border-radius:0!important;box-shadow:none!important}
.feature-card h3{font-size:1.18rem}
.feature-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:1rem!important;border-radius:0!important}
.service-line{height:100%}
.service-line .icon{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0!important}
.card,.card-body{border-radius:0!important;box-shadow:none!important}

/* Home page: keep the original service-table concept, make it read like a real service directory rather than cards. */
.solutions-section{padding-top:4.8rem}
.service-table{margin-top:2rem;border-top:2px solid var(--sz-navy);border-bottom:1px solid var(--sz-line)}
.service-table-head,.service-table .service-row{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.55fr) minmax(180px,.55fr);gap:2rem;align-items:center}
.service-table-head{padding:.7rem 0;color:var(--sz-muted);font-size:.78rem;font-weight:900;letter-spacing:.04em;border-bottom:1px solid var(--sz-line)}
.service-table .service-row{padding:1.35rem 0;border-bottom:1px solid var(--sz-line)}
.service-table .service-row:last-child{border-bottom:0}
.service-table .service-row h3{margin:0;font-size:1.08rem}
.service-table .service-row p{margin:0;color:#40494f}
.service-table .service-row .btn{justify-self:start}
.categories-section{padding-top:4.4rem!important;padding-bottom:4.4rem!important}
.categories-section .row{row-gap:2rem!important}

/* Tables and facts. */
.table-responsive{border:1px solid var(--sz-line);border-radius:0!important;background:#fff}
.table{margin:0;color:var(--sz-text)}
.table>:not(caption)>*>*{padding:.85rem .9rem;border-color:var(--sz-line)}
.table thead th{color:#fff;background:var(--sz-navy);font-weight:800}
.table tbody th{color:var(--sz-ink);font-weight:800}
.pricing-table-wrap{margin-top:1.5rem}

/* Contact blocks. */
.contact-block,.service-contact,.home-contact{padding:2rem!important;color:var(--sz-text);background:#fff!important;border:1px solid var(--sz-line)!important;border-left:4px solid var(--sz-blue)!important;border-radius:0!important;box-shadow:none!important}
.contact-block h2,.service-contact h2,.home-contact h2{color:var(--sz-ink)!important}
.related-services .d-flex{gap:.65rem!important}
.conversion-dock{display:none!important}

/* Partners: use the original two-profile composition, with line-based structure and no card pile. */
.partner-directory{background:#fff}
.partner-directory-intro{max-width:900px;margin-bottom:2.2rem}
.partner-profile{padding:3rem 0;border-top:1px solid var(--sz-line)}
.partner-profile:last-of-type{border-bottom:1px solid var(--sz-line)}
.partner-profile-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:clamp(2.2rem,4.5vw,4.8rem);align-items:start}
.partner-profile-visual,.partner-profile-content{min-width:0}
.partner-brand-panel{display:flex;min-height:108px;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--sz-line)}
.partner-brand-panel img{display:block;width:auto;max-width:min(100%,500px);max-height:72px;object-fit:contain}
.partner-brand-panel-kaitori img{width:92px;height:92px;max-height:92px}
.partner-before-after{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:1px;background:var(--sz-line)}
.partner-before-after figure,.partner-single-visual{margin:0;background:#fff}
.partner-before-after img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.partner-single-visual img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.partner-profile figcaption{padding:.45rem 0;color:var(--sz-muted);font-size:.82rem;background:#fff}
.partner-visual-note{margin:.45rem 0 0;color:var(--sz-muted);font-size:.82rem}
.partner-profile-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:start;padding-bottom:1.15rem;border-bottom:1px solid var(--sz-line)}
.partner-number{display:block;margin-bottom:.25rem;color:var(--sz-blue);font-size:.82rem;font-weight:900;letter-spacing:.08em}
.partner-category{margin:0 0 .25rem;color:var(--sz-muted);font-size:.86rem;font-weight:800}
.partner-profile-heading h2{margin:0;font-size:clamp(1.55rem,2vw,2.25rem)}
.partner-official-name{margin:.25rem 0 0;color:var(--sz-muted);font-size:.92rem}
.partner-area{max-width:250px;padding-left:1rem;color:#33414b;font-size:.86rem;line-height:1.55;border-left:3px solid var(--sz-gold)}
.partner-description{max-width:800px;margin:1.25rem 0;line-height:1.8}
.partner-service-list{margin:0 0 1.4rem;padding:0;list-style:none;border-top:1px solid var(--sz-line)}
.partner-service-list li{padding:.62rem 0;border-bottom:1px solid var(--sz-line)}
.partner-profile-button{display:inline-flex!important;align-items:center}
.partner-note{max-width:900px;margin:1.8rem 0 0;color:var(--sz-muted);font-size:.9rem}

/* Estimator: preserve function, remove rounded app-panel treatment. */
.estimate-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);margin-top:1.6rem;background:#fff;border:1px solid var(--sz-line);border-radius:0!important;box-shadow:none!important;overflow:visible!important}
.estimate-form{padding:1.6rem}
.estimate-group{margin:0 0 1.2rem;padding:0 0 1.2rem;border:0;border-bottom:1px solid var(--sz-line)}
.estimate-group:last-of-type{border-bottom:0}
.estimate-group legend{margin-bottom:.65rem;font-size:1rem;font-weight:800}
.estimate-option{display:grid!important;grid-template-columns:22px 1fr;align-items:start!important;gap:.7rem;margin:0!important;padding:.7rem 0!important;border:0!important;border-top:1px solid #e2e6e9!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;cursor:pointer}
.estimate-option:first-of-type{border-top:0!important}
.estimate-option:has(input:checked){background:#f7fafc!important}
.estimate-option input{margin-top:.25rem}
.estimate-option strong{display:block}
.estimate-option small{display:block;color:var(--sz-muted)}
.estimate-summary{height:100%;padding:1.8rem;color:#fff!important;background:var(--sz-navy)!important}
.estimate-summary h3,.estimate-summary p,.estimate-summary li,.estimate-summary strong{color:inherit}
.estimate-price{font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.1}
.estimate-breakdown{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid #607589}
.estimate-breakdown-row{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.45rem}
.estimate-discount{color:#dfe8bc!important}
.estimate-note{color:#dbe4ea!important;font-size:.84rem}

/* FAQ/details if present. */
details.faq-item,.faq-item{border-top:1px solid var(--sz-line);border-radius:0!important;background:#fff!important;box-shadow:none!important}
details.faq-item:last-child{border-bottom:1px solid var(--sz-line)}
details.faq-item summary{min-height:48px;padding:.8rem 0;font-weight:800;cursor:pointer}
details.faq-item>div,details.faq-item>p{padding:0 0 1rem}

/* Footer: same structure everywhere. */
footer{padding:2.7rem 0;color:#dbe4ea;background:#061b2c;border:0!important;box-shadow:none!important}
footer .footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}
footer p{color:#c9d4dc;font-size:.87rem;line-height:1.65}
footer a{color:#fff!important;text-underline-offset:.2em}
footer a:hover,footer a:focus-visible{color:var(--sz-gold)!important}
.footer-copyright{grid-column:1/-1;margin-top:.8rem!important;padding-top:1rem;border-top:1px solid #344b5e}

/* Legal and 404. */
.legal-hero{min-height:330px;display:flex;align-items:center;padding:4rem 0}
.legal-hero>.narrow{width:min(var(--sz-copy),calc(100% - 80px))}
.page-404 main{min-height:70vh}

/* Reduce motion without hiding content. */
.reveal{opacity:1!important;transform:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:1399.98px){
  :root{--sz-header:76px}
  .site-nav .navbar-collapse{position:absolute;top:var(--sz-header);left:0;right:0;height:auto;padding:.45rem 40px 1rem;background:var(--sz-navy);border-top:1px solid #37566e}
  .site-nav .navbar-nav{height:auto}
  .site-nav .nav-item{height:auto}
  .site-nav .nav-link{min-height:48px;padding:.65rem 0!important;border-bottom:1px solid #315068!important}
  .site-nav .nav-cta{display:inline-flex;margin:.8rem 0 0!important}
  .service-table-head,.service-table .service-row{grid-template-columns:minmax(200px,.8fr) minmax(300px,1.45fr) minmax(160px,.6fr);gap:1.4rem}
}
@media(max-width:991.98px){
  body.site-body{font-size:16.5px}
  .container{width:calc(100% - 40px)!important}
  .section-block,.section{padding:3.8rem 0}
  .hero{min-height:430px;padding:3.8rem 0 3.5rem}
  .hero.hero-compact{min-height:360px;padding:3.6rem 0 3.3rem}
  .service-table-head{display:none}
  .service-table .service-row{grid-template-columns:1fr;gap:.55rem;padding:1.25rem 0}
  .partner-profile-layout{grid-template-columns:1fr;gap:1.8rem}
  .partner-profile-visual{max-width:760px}
  .estimate-panel{grid-template-columns:1fr}
  footer .footer-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  :root{--sz-header:70px}
  body.site-body{font-size:16px}
  .container{width:calc(100% - 32px)!important}
  .site-nav .navbar-brand{font-size:.92rem}
  .site-nav .navbar-brand .logo{width:40px!important;height:40px!important;margin-right:.55rem!important}
  .site-nav .navbar-collapse{padding-left:16px;padding-right:16px}
  .hero,.hero.hero-compact{min-height:auto;padding:3.15rem 0 3rem}
  .hero h1,.hero-compact h1,.legal-hero h1{font-size:clamp(1.8rem,8vw,2.35rem);line-height:1.3}
  .hero .hero-lead{font-size:1rem;line-height:1.75}
  .hero-cta{flex-direction:column;align-items:flex-start;gap:.55rem}
  .hero-cta .btn{width:100%;justify-content:center;text-align:center}
  .home-hero-choices{flex-direction:column;align-items:flex-start}
  .section-block,.section{padding:3.2rem 0}
  .feature-card{padding-top:1rem}
  .partner-profile{padding:2.4rem 0}
  .partner-profile-heading{grid-template-columns:1fr;gap:.7rem}
  .partner-area{max-width:none}
  .partner-before-after{grid-template-columns:1fr}
  .partner-before-after img{aspect-ratio:4/3}
  .estimate-form,.estimate-summary{padding:1.2rem}
  .legal-hero>.narrow{width:calc(100% - 32px)}
}
