/* Original office photographs retain their complete 4:3 composition. */
.company-page{--cp-soft:#eff5f6;--cp-border:#cfdee3;color:var(--ink);padding-bottom:12px}
.company-page p{line-height:1.95}
.company-page [id]{scroll-margin-top:100px}
.cp-heading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;align-items:center;padding-top:28px;padding-bottom:43px}
.cp-heading h1{font-family:"Yu Mincho",YuMincho,serif;font-size:42px;font-weight:600;line-height:1.6;letter-spacing:.05em;margin:15px 0 21px}
.cp-heading .cp-company-name{font-size:23px;font-weight:600;line-height:1.8;margin-bottom:18px}
.cp-heading>div>p{font-size:19px}
.cp-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:21px 25px;margin-top:28px}
.cp-hero-actions .button{font-size:17px;padding:14px 22px}
.cp-hero-actions .text-link{font-size:16px}
.cp-photo{margin:0;min-width:0;background:#f2f2f2}
.cp-photo picture,.cp-photo img{display:block;width:100%}
.cp-photo img{height:auto;aspect-ratio:4/3;object-fit:contain}
.company-page .cp-jump{display:flex;flex-wrap:wrap;gap:12px 29px;padding:17px 0;margin:0 auto;border-top:1px solid var(--cp-border);border-bottom:1px solid var(--cp-border)}
.company-page .cp-jump a{font-size:15px;line-height:1.8;background:none;border:0;padding:0;text-decoration:none}
.company-page .cp-jump a:hover{color:var(--accent)}
.cp-content{min-width:0}
.cp-section{padding:50px 0;border-bottom:1px solid var(--cp-border)}
.cp-section-heading{max-width:920px;margin-bottom:28px}
.cp-kicker{display:block;font-size:15px;font-weight:700;line-height:1.8;letter-spacing:.07em;color:var(--accent);margin-bottom:11px}
.cp-section-heading h2{font-size:31px;line-height:1.7;letter-spacing:.025em}
.cp-section-heading>p{font-size:18px;line-height:1.95;margin-top:17px}
.cp-profile-list{margin:0;border-top:1px solid var(--cp-border)}
.cp-profile-list>div{display:grid;grid-template-columns:210px minmax(0,1fr);border-bottom:1px solid var(--cp-border)}
.cp-profile-list dt{font-size:17px;line-height:1.9;font-weight:600;padding:22px 25px;background:var(--cp-soft)}
.cp-profile-list dd{font-size:18px;line-height:1.9;margin:0;padding:22px 29px;overflow-wrap:anywhere}
.cp-profile-list a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:5px}
.cp-number{font-family:var(--font-numerals);font-variant-numeric:lining-nums tabular-nums}
.cp-license{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 26px}
.cp-license+.cp-license{margin-top:14px}
.cp-license b{font-size:16px;min-width:9em;font-weight:600}
.cp-license>span{font-family:var(--font-numerals);font-variant-numeric:lining-nums tabular-nums}
.cp-profile-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 32px;list-style:disc;padding-left:1.1em;margin:0}
.cp-profile-items>li{min-width:0;font-size:18px;line-height:1.85;padding-left:2px;overflow-wrap:anywhere}
.cp-profile-items>li::marker{color:var(--accent)}
.cp-profile-list .cp-service-link{display:inline-flex;font-size:16px;margin-top:22px}
.cp-office-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.cp-message-link{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:29px;padding:26px 29px;background:var(--cp-soft)}
.cp-message-link h3{font-size:23px;line-height:1.8;margin-bottom:13px}
.cp-message-link p{font-size:17px}
.cp-message-link>.text-link{flex-shrink:0;font-size:17px}
.cp-site-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 35px}
.cp-site-links a{display:flex;align-items:center;justify-content:space-between;gap:17px;text-decoration:none;min-width:0;padding:0 0 12px;border-bottom:1px solid var(--cp-border)}
.cp-site-links a:hover{color:var(--accent)}
.cp-site-links small{display:block;font-size:15px;font-weight:500;line-height:1.8;margin-bottom:6px;color:var(--muted)}
.cp-site-links strong{display:block;font-size:18px;line-height:1.7;overflow-wrap:anywhere}
.cp-external-mark{display:inline-block;flex-shrink:0;color:var(--accent);font-size:22px;line-height:1.3;margin-left:7px}
.cp-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;align-items:center}
.cp-address{font-size:19px;line-height:2!important}
.cp-address>strong{display:block;font-size:23px;line-height:1.8;margin-bottom:17px}
.cp-hours{margin:24px 0}
.cp-hours>div{display:flex;gap:23px;line-height:1.9;margin-top:10px;font-size:18px}
.cp-hours dt{min-width:4.5em;color:var(--muted)}
.cp-hours dd{margin:0}
.cp-access-grid .text-link{font-size:17px;line-height:1.8}
.cp-map{display:block;width:100%;height:360px;border:1px solid var(--cp-border);background:var(--cp-soft);margin-top:29px}
.cp-contact{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:39px;margin-top:31px;padding:34px;background:var(--cp-soft)}
.cp-contact h3{font-size:25px;line-height:1.8;margin-bottom:15px}
.cp-contact p{font-size:17px}
.cp-contact-actions{display:flex;flex-direction:column;align-items:center;gap:15px}
.cp-contact-actions .button{width:100%;font-size:17px;padding:15px 20px}
.cp-contact-phone{font:600 30px/1.6 var(--font-numerals);font-variant-numeric:lining-nums tabular-nums;color:var(--accent);text-decoration:none;white-space:nowrap}
.cp-contact-actions>span{font-size:14px;line-height:1.8;text-align:center}
.cp-contact-phone:hover{text-decoration:underline;text-underline-offset:6px}
@media(max-width:1100px){
 .cp-heading,.cp-access-grid{gap:40px}.cp-heading h1{font-size:38px}.cp-heading .cp-company-name{font-size:21px}.cp-heading>div>p{font-size:18px}.cp-section-heading h2{font-size:29px}.cp-license{gap:6px 18px}.cp-message-link{align-items:flex-start;flex-direction:column;gap:20px}.cp-address>strong{font-size:21px}.cp-contact{gap:28px;padding:29px}.cp-contact h3{font-size:23px}.cp-contact-actions .button{font-size:16px}.cp-contact-phone{font-size:28px}
}
@media(max-width:1000px){
 .cp-profile-items{grid-template-columns:1fr;gap:9px}.cp-site-links{grid-template-columns:1fr;gap:22px}
}
@media(max-width:800px){
 .cp-profile-items>li{font-size:17px}
 .cp-heading{grid-template-columns:1fr;gap:27px;padding-top:20px;padding-bottom:31px}.cp-heading h1{font-size:36px;margin-bottom:18px}.cp-heading .cp-company-name{font-size:22px}.cp-heading>div>p{font-size:18px}.cp-hero-actions{margin-top:24px}.company-page .cp-jump{gap:13px 22px;padding-block:16px}.company-page .cp-jump a{font-size:14px}.cp-section{padding:37px 0}.cp-section-heading{margin-bottom:25px}.cp-section-heading h2{font-size:27px}.cp-section-heading>p{font-size:17px}.cp-profile-list>div{grid-template-columns:150px minmax(0,1fr)}.cp-profile-list dt{padding:20px 17px;font-size:16px}.cp-profile-list dd{padding:20px 22px;font-size:17px}.cp-license{display:block}.cp-license b{display:block;font-size:15px;margin-bottom:4px}.cp-office-gallery{gap:24px}.cp-message-link{padding:25px 23px}.cp-message-link h3{font-size:22px}.cp-access-grid{grid-template-columns:1fr;gap:27px}.cp-address{font-size:18px}.cp-address>strong{font-size:22px}.cp-hours>div{font-size:17px}.cp-map{height:320px;margin-top:24px}.cp-contact{grid-template-columns:1fr;gap:27px;padding:28px 23px;margin-top:25px}.cp-contact h3{font-size:23px}.cp-contact-actions{align-items:flex-start}.cp-contact-actions .button{width:auto;min-width:280px}.cp-contact-phone{font-size:30px}.cp-contact-actions>span{text-align:left}
}
@media(max-width:600px){
 .cp-profile-list>div{grid-template-columns:1fr;padding:19px 0}.cp-profile-list dt{padding:0 0 8px;background:none;color:var(--muted);font-size:15px}.cp-profile-list dd{padding:0;font-size:17px}.cp-license b{font-size:15px}.cp-office-gallery{grid-template-columns:1fr;gap:23px}.cp-contact-actions .button{width:100%;min-width:0}.cp-contact-actions{align-items:center}.cp-contact-actions>span{text-align:center}
}
@media(max-width:420px){
 .cp-heading h1{font-size:33px}.cp-heading .cp-company-name{font-size:20px}.cp-hero-actions .button{width:100%;font-size:16px}.cp-section-heading h2{font-size:25px}.cp-message-link h3{font-size:21px}.cp-contact{padding:26px 20px}.cp-contact h3{font-size:22px}.cp-contact-actions .button{font-size:15px}.cp-contact-phone{font-size:28px}
}
