/* BOHSEI SCIENCE — Typography-first motion edition, 2026-10-29.
   The visual emphasis is on language, numbering, rules and negative space.
   Photographs remain supporting content; no full-screen zoom or photo swapping. */
@view-transition { navigation: auto; }
.site-header .logo { view-transition-name: bohsei-site-logo; }
@keyframes bohsei-page-out { to {opacity:0;transform:translateY(-7px)} }
@keyframes bohsei-page-in { from {opacity:0;transform:translateY(13px)} to {opacity:1;transform:translateY(0)} }
@supports (view-transition-name: bohsei-site-logo) {
 ::view-transition-old(root){animation:.16s ease-in both bohsei-page-out}
 ::view-transition-new(root){animation:.38s cubic-bezier(.2,.7,.25,1) both bohsei-page-in}
 ::view-transition-old(bohsei-site-logo),::view-transition-new(bohsei-site-logo){animation-duration:.22s}
}
/* Remove the photo-driven interactions from the older motion version. */
.service-card .service-photo img,
.service-card .service-photo .stock-image,
.photo-box img.legacy-image {transition:none!important;animation:none!important;will-change:auto!important;}
.service-card:hover .service-photo img,
.service-card:hover .service-photo .stock-image,
.photo-box:hover img.legacy-image {transform:none!important;}
.service-card:hover {transform:translateY(-3px);}
.home-services .service-photo{height:166px;}
.home-services .service-content{padding-top:27px;}
/* Soft accent on headings, not on photos. */
.section-heading .section-title{position:relative;}
@media (hover:hover) and (pointer:fine) {
 .service-card .text-arrow b, .inline-more {transition:translate .3s ease,color .3s ease;}
 .service-card:hover .text-arrow b{translate:4px 0;}
}

/* Homepage: editorial statement + 4 clearly labeled services. No abstract orbit. */
.bohsei-vision{background:#f1f7fa;position:relative;isolation:isolate;overflow:hidden;padding:72px 0 76px;}
.bohsei-vision::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,rgba(12,75,101,.025) 1px,transparent 1px);background-size:92px 92px;pointer-events:none;}
.bohsei-vision-top{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 0 22px;border-bottom:1px solid #c7dce5;color:#39748b;font-size:10px;font-weight:850;letter-spacing:.16em;}
.bohsei-vision-top span:first-child{display:flex;align-items:center;gap:14px;}
.bohsei-vision-top span:first-child::before{content:"";width:32px;height:2px;background:#009aad;}
.bohsei-vision-content{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(34px,4vw,62px);align-items:center;padding-top:39px;}
.bohsei-vision-copy{min-width:0;padding:28px 0 25px;}
.bohsei-vision-label{display:block;color:#277e91;font-size:12px;font-weight:800;letter-spacing:.11em;margin-bottom:25px;}
.bohsei-vision-heading{font-size:clamp(37px,4.3vw,60px);font-weight:850;line-height:1.37;letter-spacing:-.071em;color:#0b395b;margin:0 0 22px;}
.bohsei-vision-heading .line{display:block;}
.bohsei-vision-heading .accent{color:#008f9f;position:relative;white-space:nowrap;}
.bohsei-vision-heading .accent::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:3px;background:linear-gradient(90deg,#048fa3 0%,#77d0d8 80%,transparent);transform-origin:left;transform:scaleX(.12);transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .3s;}
.bohsei-vision.is-visible .bohsei-vision-heading .accent::after{transform:scaleX(1);}
.bohsei-vision-copy p{font-size:14px;line-height:2.12;color:#577485;max-width:560px;margin:26px 0 28px;}
.bohsei-vision-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:46px;padding:12px 0 12px;color:#006a83;font-size:14px;font-weight:850;border-bottom:1px solid #288ca0;transition:color .2s ease,gap .24s ease;}
.bohsei-vision-cta:hover{color:#053954;gap:57px;}
.bohsei-vision-cta:focus-visible{outline:3px solid #2ea9b8;outline-offset:4px;}
.bohsei-vision-cta-arrow{font-size:21px;font-weight:400;line-height:1;}
.bohsei-vision-panel{border:1px solid #d1e3e9;border-radius:16px;padding:30px 33px 19px;background:rgba(255,255,255,.88);box-shadow:0 18px 48px rgba(9,57,85,.045);min-width:0;}
.bohsei-vision-panel-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 0 21px;}
.bohsei-vision-panel-kicker{display:block;color:#408395;font-size:10px;font-weight:850;letter-spacing:.18em;margin:1px 0 9px;}
.bohsei-vision-panel-top h3{font-size:clamp(21px,2vw,26px);color:#113f59;letter-spacing:-.065em;line-height:1.4;margin:0;font-weight:800;}
.bohsei-vision-panel-count{font:500 clamp(58px,5.6vw,76px)/1 Arial,sans-serif;letter-spacing:-.09em;color:#c2dfe7;padding-right:8px;}
.bohsei-vision-services{display:grid;grid-template-columns:minmax(0,1fr);}
.bohsei-vision-service{display:grid;grid-template-columns:34px minmax(0,1fr) 23px;gap:14px;align-items:center;text-decoration:none;min-width:0;min-height:70px;padding:12px 5px 12px 4px;border-top:1px solid #dce9ed;transition:background .24s ease,padding .24s ease;}
.bohsei-vision-service-number{font-size:14px;font-weight:750;color:#008fa1;font-family:Arial,sans-serif;letter-spacing:-.03em;}
.bohsei-vision-service-name{font-size:clamp(13px,1.08vw,15px);font-weight:750;color:#113e59;letter-spacing:-.035em;line-height:1.55;overflow-wrap:anywhere;}
.bohsei-vision-service-arrow{font-weight:400;font-size:19px;color:#008e9f;justify-self:end;transition:translate .24s ease;}
@media (hover:hover) and (pointer:fine){
 .bohsei-vision-service:hover{background:#ecf8fa;padding-left:11px;padding-right:11px;}
 .bohsei-vision-service:hover .bohsei-vision-service-arrow{translate:3px -3px;}
}
.bohsei-vision-service:focus-visible{outline:2px solid #008fa1;outline-offset:-2px;background:#e5f5f7;border-radius:5px;}
@media (prefers-reduced-motion:no-preference) {
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-label,
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-heading,
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-copy p,
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-cta,
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-panel{opacity:0;translate:0 16px;transition:opacity .7s ease,translate .85s cubic-bezier(.2,.7,.2,1);}
 html.bohsei-text-motion-on .bohsei-vision.is-visible .bohsei-vision-label,
 html.bohsei-text-motion-on .bohsei-vision.is-visible .bohsei-vision-heading,
 html.bohsei-text-motion-on .bohsei-vision.is-visible .bohsei-vision-copy p,
 html.bohsei-text-motion-on .bohsei-vision.is-visible .bohsei-vision-cta,
 html.bohsei-text-motion-on .bohsei-vision.is-visible .bohsei-vision-panel{opacity:1;translate:0 0;}
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-heading{transition-delay:.09s;}
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-copy p{transition-delay:.18s;}
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-cta{transition-delay:.26s;}
 html.bohsei-text-motion-on .bohsei-vision .bohsei-vision-panel{transition-delay:.18s;}
}

/* Business page: four typographic chapters instead of four full-frame photos. */
.bohsei-story{display:none;}
@media (min-width:981px){
 html.bohsei-story-ready .bohsei-story{display:block;margin:44px 0 32px;}
 html.bohsei-story-ready .bohsei-original-business-cards{display:none;}
 .bohsei-story-intro{border-top:1px solid #c9dce4;border-bottom:1px solid #c9dce4;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#437e90;font-size:10px;letter-spacing:.19em;font-weight:850;padding:17px 3px;}
 .bohsei-story-intro b{font-size:19px;font-weight:450;margin-left:12px;}
 .bohsei-story-grid{display:grid;grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);gap:clamp(28px,5vw,80px);align-items:stretch;padding-top:25px;}
 .bohsei-story-text{min-width:0;}
 .bohsei-story-step{min-height:58vh;display:flex;flex-direction:column;justify-content:center;padding:42px 16px 42px 28px;position:relative;max-width:570px;color:#0b3855;opacity:.58;transition:opacity .4s ease;}
 .bohsei-story-step:first-child{padding-top:5px;}
 .bohsei-story-step:last-child{padding-bottom:28px;}
 .bohsei-story-step.is-active{opacity:1;}
 .bohsei-story-step-rule{position:absolute;top:15%;bottom:15%;left:0;width:1px;background:#d6e6ea;}
 .bohsei-story-step-rule::after{content:"";position:absolute;top:0;left:0;right:0;height:0;background:#0095a6;transition:height .5s ease;}
 .bohsei-story-step.is-active .bohsei-story-step-rule::after{height:100%;}
 .bohsei-story-step-label{font-size:10px;font-weight:850;color:#0b8396;letter-spacing:.14em;display:flex;align-items:baseline;gap:17px;}
 .bohsei-story-step-label span:first-child{font-size:33px;letter-spacing:-.065em;color:#008fa1;font-weight:600;}
 .bohsei-story-step h3{font-size:clamp(24px,2.25vw,34px);letter-spacing:-.06em;line-height:1.55;margin:18px 0 18px;}
 .bohsei-story-step p{font-size:15px;line-height:2.1;color:#516e7e;max-width:430px;margin-bottom:28px;}
 .bohsei-story-cta{display:inline-flex;align-items:center;align-self:flex-start;gap:36px;border-bottom:1px solid #1891a4;padding-bottom:11px;font-weight:800;font-size:13px;color:#007b8c;}
 .bohsei-story-cta:hover{color:#0d455e;}
 .bohsei-story-cta:focus-visible{outline:3px solid #00a4b6;outline-offset:5px;}
 .bohsei-story-display{height:min(68vh,620px);min-height:430px;position:sticky;top:clamp(90px,14vh,140px);background:linear-gradient(145deg,#083953 0%,#05344f 55%,#075c6e 100%);border-radius:16px;overflow:hidden;isolation:isolate;color:#fff;}
 .bohsei-story-display::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(#91d6de20 1px,transparent 1px),linear-gradient(90deg,#91d6de20 1px,transparent 1px);background-size:48px 48px;}
 .bohsei-stage-rings{position:absolute;right:-27%;top:-18%;width:92%;aspect-ratio:1;opacity:.5;border:1px solid #88d6e16b;border-radius:50%;box-shadow:0 0 0 65px #ffffff06,0 0 0 130px #ffffff05;}
 .bohsei-stage-rings::after{content:"";position:absolute;inset:20%;border:1px dashed #b7f2f452;border-radius:50%;}
 .bohsei-story-display-top{position:absolute;z-index:2;top:27px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9dd8e3;font-size:10px;font-weight:850;letter-spacing:.16em;}
 .bohsei-stage-center{position:absolute;z-index:2;inset:82px 35px 83px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;}
 .bohsei-stage-eyebrow{font-size:11px;font-weight:850;letter-spacing:.24em;color:#84d9e0;margin-bottom:7px;}
 .bohsei-stage-number{font-size:clamp(100px,12vw,176px);font-weight:450;font-family:Arial,"Hiragino Sans",sans-serif;line-height:1;letter-spacing:-.12em;margin-left:-10px;color:#fff;}
 .bohsei-stage-text{margin-top:15px;font-size:clamp(16px,1.5vw,22px);font-weight:800;letter-spacing:.08em;color:#93e2e8;overflow-wrap:anywhere;line-height:1.5;}
 .bohsei-stage-sub{font-size:13px;font-weight:750;color:#d7edf0;margin-top:4px;}
 .bohsei-story-display.is-changing .bohsei-stage-number,
 .bohsei-story-display.is-changing .bohsei-stage-text,
 .bohsei-story-display.is-changing .bohsei-stage-sub{animation:bohsei-stage-enter .48s cubic-bezier(.19,1,.22,1) both;}
 .bohsei-story-display.is-changing .bohsei-stage-text{animation-delay:.05s;}
 .bohsei-story-display.is-changing .bohsei-stage-sub{animation-delay:.10s;}
 @keyframes bohsei-stage-enter{from{opacity:.25;translate:0 15px}to{opacity:1;translate:0 0}}
 .bohsei-stage-bottom{position:absolute;left:30px;right:30px;bottom:47px;display:flex;align-items:end;justify-content:space-between;font-size:10px;font-weight:850;color:#badde5;letter-spacing:.13em;}
 .bohsei-stage-bottom .counter{white-space:nowrap;font-size:12px;letter-spacing:0;}
 .bohsei-stage-bottom .counter b{font-size:25px;font-weight:550;color:#fff;margin-right:6px;}
 .bohsei-story-progress{position:absolute;bottom:26px;left:30px;right:30px;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
 .bohsei-story-progress span{height:3px;border-radius:2px;background:#ffffff40;transition:background .3s ease;}
 .bohsei-story-progress span.is-active{background:#7fe6e8;}
}
@media (min-width:981px) and (max-width:1160px) {
 .bohsei-story-grid{gap:26px;grid-template-columns:.96fr 1.04fr;}
 .bohsei-story-step h3{font-size:26px;}
 .bohsei-vision-content{gap:27px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 .bohsei-vision-heading{font-size:clamp(37px,4.2vw,50px);}
 .bohsei-vision-copy p{font-size:13px;}
 .bohsei-vision-panel{padding:27px 25px 17px;}
}
@media (max-width:980px) {
 .bohsei-vision{padding:65px 0 64px;}
 .bohsei-vision-content{grid-template-columns:minmax(0,1fr);gap:24px;max-width:680px;margin:auto;}
 .bohsei-vision-copy{padding:12px 0 14px;}
 .bohsei-vision-heading{font-size:clamp(40px,6.2vw,58px);}
 .bohsei-vision-panel{width:100%;}
}
@media (max-width:690px) {
 .bohsei-vision{padding:45px 0 52px;}
 .bohsei-vision-top{font-size:9px;padding-bottom:17px;gap:12px;}
 .bohsei-vision-top span:first-child{gap:9px;}
 .bohsei-vision-top span:first-child::before{width:20px;}
 .bohsei-vision-content{padding-top:23px;gap:13px;}
 .bohsei-vision-copy{padding:12px 0 15px;}
 .bohsei-vision-heading{font-size:clamp(28px,7.7vw,43px);line-height:1.48;margin-bottom:20px;letter-spacing:-.075em;}
 .bohsei-vision-heading .accent{white-space:normal;}
 .bohsei-vision-label{font-size:11px;margin-bottom:19px;}
 .bohsei-vision-copy p{font-size:13px;line-height:1.95;margin:21px 0 20px;}
 .bohsei-desktop-break{display:none;}
 .bohsei-vision-cta{font-size:13px;}
 .bohsei-vision-panel{border-radius:12px;padding:21px 19px 13px;}
 .bohsei-vision-panel-top{padding-bottom:13px;}
 .bohsei-vision-panel-top h3{font-size:21px;}
 .bohsei-vision-panel-count{font-size:57px;}
 .bohsei-vision-service{min-height:64px;grid-template-columns:26px minmax(0,1fr) 17px;gap:10px;padding:11px 2px;}
 .bohsei-vision-service-name{font-size:13px;}
 .bohsei-vision-service-number{font-size:12px;}
 .bohsei-vision-service-arrow{font-size:17px;}
 .home-services .service-photo{height:160px;}
}
@media (max-width:355px) {
 .bohsei-vision-top span:last-child{font-size:8px;letter-spacing:.07em;text-align:right;}
 .bohsei-vision-panel-top h3{font-size:19px;}
 .bohsei-vision-panel-count{font-size:51px;}
 .bohsei-vision-panel{padding:19px 15px 11px;}
}
@media (prefers-reduced-motion:reduce) {
 ::view-transition-old(root),::view-transition-new(root),
 ::view-transition-old(bohsei-site-logo),::view-transition-new(bohsei-site-logo){animation:none!important;}
 .bohsei-vision *, .bohsei-story *{transition:none!important;animation:none!important;}
 .bohsei-vision-heading .accent::after{transform:scaleX(1)!important;}
 .bohsei-story{display:none!important;}
 .bohsei-original-business-cards{display:grid!important;}
}

.bohsei-vision-service{grid-template-columns:minmax(0,1fr) 23px;gap:18px;padding:12px 5px 12px 4px}
.bohsei-vision-service-name{font-size:clamp(14px,1.17vw,16px)}
@media (max-width:620px){
/* Refined visual numbering: no leading zeros in the company vision list. */
.bohsei-vision-service{grid-template-columns:minmax(0,1fr) 23px;gap:18px;padding:12px 5px 12px 4px}
.bohsei-vision-service-name{font-size:clamp(14px,1.17vw,16px)}
@media (max-width:620px){.bohsei-vision-service{grid-template-columns:minmax(0,1fr) 17px;gap:12px;padding:11px 2px}.bohsei-vision-service-name{font-size:13px}}
