/* Reference screenshot geometry; only the stroke drawing is animated. */
.business-intro{max-width:none}
.business-intro h2{font-size:clamp(24px,2.9vw,42px)}
.business-headline{white-space:nowrap}
.business-headline>span{display:inline-block;white-space:nowrap}
@media(max-width:560px){.business-intro h2{font-size:clamp(20px,5.6vw,27px)}.business-headline{white-space:normal}.business-intro h2>br{display:block}}
.cover-arcs{position:absolute;height:auto;aspect-ratio:1;pointer-events:none;overflow:visible;z-index:0}
.cover-arcs-top{width:60vw;left:-35.25vw;top:-30.8vw}
.cover-arcs-bottom{width:45vw;left:21.25vw;top:auto;bottom:-30.8vw}
.cover-model{z-index:1}
.cover-arc{fill:none;stroke:var(--accent);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0}
.arc-down{opacity:.45;animation:arc-draw 2.8s cubic-bezier(.35,0,.2,1) .15s both}
.arc-up{opacity:.9;animation:arc-draw 3s cubic-bezier(.35,0,.2,1) .45s both}
@keyframes arc-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

/* No repeated/cropped portrait: a typographic introduction and ruled principles. */
.philosophy{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.7fr);column-gap:6vw;row-gap:45px;padding:90px 7vw 110px;min-height:0;border-top:1px solid #e0e8eb}
.philosophy::before{content:none;background:none}
.philosophy-heading{grid-column:1;grid-row:1/3;padding:18px 0 0 clamp(28px,3.2vw,56px)}
.philosophy-heading .section-label{font-size:14px;letter-spacing:.15em}
.philosophy-heading .section-label span{display:block;margin:12px 0 0;font-size:14px;font-weight:500}
.philosophy-heading h2{font-size:clamp(25px,2.6vw,38px);line-height:1.9;letter-spacing:.07em;font-weight:500;margin:38px 0 30px}
.philosophy-rule{display:block;width:64px;height:1px;background:var(--accent)}
.philosophy-box{grid-column:2;width:100%;margin:0;padding:25px 32px;background:#fff}
.philosophy-box>div{padding:24px 0;grid-template-columns:85px minmax(0,1fr);align-items:baseline}
.philosophy-box>div+div{border-top:1px solid #dce5e8}
.philosophy-box small{font-size:14px;font-weight:500;color:#58646a}
.philosophy-box p{font-size:clamp(16px,1.5vw,22px);line-height:2;letter-spacing:.03em}
.logo-note{grid-column:2;width:100%;margin:0;gap:28px}
.logo-note b{flex-shrink:0}
.logo-note b img{width:190px}
.logo-note p{font-size:13px;line-height:1.9;margin:0;padding-left:28px}
@media(max-width:900px){.philosophy{grid-template-columns:1fr;padding:65px 6vw 80px;gap:32px}.philosophy-heading{grid-column:1;grid-row:auto;padding:0}.philosophy-heading h2{margin:20px 0;font-size:29px}.philosophy-heading h2 br{display:none}.philosophy-box,.logo-note{grid-column:1}.philosophy-box{padding:20px 28px}}
@media(max-width:560px){.cover-arcs{width:100%;height:47%}.cover-arc{stroke-width:1.3}.philosophy{padding:55px 24px 65px;gap:28px}.philosophy-heading h2{font-size:25px}.philosophy-box{padding:10px 22px}.philosophy-box>div{grid-template-columns:1fr;gap:10px;padding:23px 0}.philosophy-box p{font-size:16px}.logo-note{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.logo-note p{border:0;padding:0;font-size:13px}}
@media(prefers-reduced-motion:reduce){.cover-arc{animation:none!important;stroke-dashoffset:0}}
@media print{.cover-arc{animation:none;stroke-dashoffset:0}}
/* Keep square viewports at the mobile breakpoint as well. */
@media(max-width:560px){.cover-arcs{height:auto;aspect-ratio:1}.cover-arcs-top{width:500px;left:-360px;top:-300px}.cover-arcs-bottom{width:420px;left:-80px;top:auto;bottom:-310px}}

/* Full-bleed MV inspired by the alternate top-page mockup. */
.cover{height:clamp(560px,74svh,760px);min-height:0;max-height:none;background:#6b4b2d}
.cover-model{inset:0;width:100%;height:100%;z-index:0}
.cover-model img{height:100%;object-fit:cover;object-position:66% bottom}
.cover-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.37) 39%,rgba(0,0,0,.08) 76%,rgba(0,0,0,.02) 100%)}
.cover-arcs{z-index:2}
.cover-arcs-top{width:72vw;left:-35vw;top:-42vw}
.cover-arcs-bottom{width:56vw;left:auto;right:-28vw;bottom:-38vw}
.cover-arc{stroke:#fff;stroke-width:1.25;opacity:.8}
.arc-up{stroke:var(--accent);opacity:.95}
.cover-copy{left:7vw;top:0;bottom:0;width:min(620px,52vw);z-index:3;display:flex;flex-direction:column;justify-content:center;transform:none}
.cover-kicker{margin:0 0 22px;color:#fff;font:300 clamp(12px,1.25vw,16px)/1.6 Arial,sans-serif;letter-spacing:.22em;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.cover-catch{margin:0;color:#fff;font-size:clamp(20px,2.05vw,31px);font-weight:400;line-height:1.8;letter-spacing:.08em;text-shadow:0 2px 24px rgba(0,0,0,.32)}
.cover-catch .catch-nowrap{white-space:nowrap}
.cover-catch .catch-sp-break{display:none}
.scroll{z-index:3;color:#fff}
.scroll span{background:#fff}

.message-text-only{display:block;min-height:0;padding:110px 7vw 120px;background:#fff}
.message-text-only .message-card{position:relative;inset:auto;width:min(1120px,100%);margin:0 auto;padding:0;background:transparent;box-shadow:none}
.message-text-only .message-card h1{max-width:1080px;margin:32px 0 38px;font-size:clamp(24px,2.65vw,40px);line-height:1.85;letter-spacing:.035em}
.message-text-only .message-card>p:not(.section-label){max-width:960px;margin:0;font-size:16px;line-height:2.25;color:#3f494d}
.message-text-only .message-card>a{width:min(360px,100%);margin-top:42px}

@media(max-width:900px){
  .cover{height:clamp(500px,72svh,700px)}
  .cover-copy{left:6vw;width:58vw}
  .cover-model{opacity:1}
  .cover-catch{font-size:clamp(18px,2.8vw,25px)}
  .message-text-only{padding:80px 6vw 90px}
}
/* SP only: catch copy moves out of the photo into its own heading band above a shorter strip, so it never sits over faces and the crop needs less width. */
@media(max-width:560px){
  .cover{position:relative;display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;background:#fff}
  .cover-copy{position:static;order:-1;left:auto;top:auto;bottom:auto;width:auto;max-width:none;padding:44px 24px 30px;z-index:auto;display:block;transform:none}
  .cover-kicker{margin:0 0 12px;color:var(--blue);font:500 12px/1.6 Arial,sans-serif;letter-spacing:.12em;text-shadow:none}
  .cover-catch{margin:0;color:#191919;font-size:clamp(18px,5vw,22px);font-weight:500;line-height:1.8;letter-spacing:.04em;text-shadow:none}
  .cover-catch .catch-nowrap{white-space:normal}
  .cover-catch .catch-sp-break{display:inline}
  .cover-model{position:relative;inset:auto;width:100%;height:min(64vw,340px);z-index:0;overflow:hidden}
  .cover-model img{object-position:right center}
  .cover-veil{display:none}
  .cover-arcs-top{width:520px;left:-330px;top:-315px}
  .cover-arcs-bottom{width:460px;left:auto;right:-320px;bottom:-300px}
  .scroll{position:absolute;left:6%;bottom:14px;font-size:9px;z-index:2;color:#fff;background:rgba(0,0,0,.38);padding:8px 16px;border-radius:999px}
  .page-no{display:none}
  .message-text-only{padding:65px 24px 75px}
  .message-text-only .message-card{width:100%;padding:0}
  .message-text-only .message-card h1{font-size:23px;line-height:1.8}
  .message-text-only .message-card>p:not(.section-label){font-size:15px;line-height:2.15}
}
