:root{--black:#0b0b0c;--ink:#171719;--red:#971f25;--red2:#bd2931;--paper:#f4f3f0;--gray:#79797b;--line:#d8d6d1;--white:#fff;--max:1280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--black);font-family:"Noto Sans JP",sans-serif;line-height:1.8;background:var(--paper)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.loader{position:fixed;z-index:999;inset:0;display:grid;place-items:center;color:#fff;background:var(--black);transition:transform .8s cubic-bezier(.8,0,.2,1)}.loader.hide{transform:translateY(-100%)}.loader span{font:600 24px Oswald;letter-spacing:.15em}.loader i{position:absolute;left:0;bottom:0;height:3px;background:var(--red2);animation:load 1s forwards}@keyframes load{to{width:100%}}.cursor{position:fixed;z-index:200;width:16px;height:16px;border:1px solid var(--red2);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s}.cursor.hover{width:45px;height:45px;background:rgba(151,31,37,.15)}header{position:fixed;z-index:80;inset:0 0 auto;height:84px;padding-left:max(28px,calc((100% - var(--max))/2));display:flex;align-items:center;color:#fff;border-bottom:1px solid rgba(255,255,255,.2);transition:.35s}header.scrolled{height:70px;color:var(--black);background:rgba(244,243,240,.97);border-color:var(--line)}.logo{display:flex;align-items:center;gap:15px}.logo>b{font:700 27px Oswald;letter-spacing:.08em}.logo>span{padding-left:15px;border-left:1px solid currentColor;font-size:10px;font-weight:700}.logo small{display:block;opacity:.55;font:500 7px Oswald;letter-spacing:.13em}header nav{margin-left:auto;height:100%;display:flex;align-items:center;gap:35px;font-size:11px;font-weight:700}header nav a{position:relative}header nav a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--red2);transition:.25s}header nav a:hover:after{width:100%}.head-contact{height:100%;min-width:190px;margin-left:35px;padding:0 27px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:var(--red);font:600 11px Oswald;letter-spacing:.12em}.menu{display:none}.hero{height:100vh;min-height:700px;position:relative;color:#fff;background:#111;overflow:hidden}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.58) 42%,rgba(0,0,0,.08) 73%),linear-gradient(0deg,rgba(0,0,0,.45),transparent 40%)}.hero-text{position:relative;z-index:2;width:min(calc(100% - 56px),var(--max));height:100%;margin:auto;padding-top:18vh;display:flex;flex-direction:column;justify-content:center}.hero-text>p{margin:0 0 30px;font:600 10px Oswald;letter-spacing:.18em}.hero h1{margin:0;font-size:clamp(57px,7vw,103px);line-height:1.18;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #fff}.hero-note{margin-top:35px;padding-left:18px;border-left:2px solid var(--red2);font-size:12px}.hero-index{position:absolute;z-index:2;right:4vw;bottom:55px;font:500 11px Oswald;letter-spacing:.15em}.scroll{position:absolute;z-index:2;left:30px;bottom:0;font:500 8px Oswald;letter-spacing:.16em;writing-mode:vertical-rl}.scroll i{display:block;width:1px;height:65px;margin-top:12px;background:#fff}.statement{min-height:530px;padding:130px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:70px 1.2fr .8fr;gap:60px;align-items:center}.vertical{font:600 9px Oswald;letter-spacing:.2em;writing-mode:vertical-rl;color:var(--red)}.statement small,.section-head small,.philosophy-copy small,.detail-copy small,.page-hero small,.company-message small,.representative small,.contact-intro>small{color:var(--red);font:600 10px Oswald;letter-spacing:.18em}.statement h2{margin:18px 0;font-size:clamp(38px,4vw,58px);line-height:1.5;letter-spacing:-.04em}.statement>p{color:var(--gray);font-size:13px}.services{padding:120px max(28px,calc((100% - var(--max))/2));color:#fff;background:var(--black)}.section-head{position:relative}.section-head h2{margin:8px 0;font:600 clamp(52px,7vw,100px)/1 Oswald;letter-spacing:-.03em}.section-head p{color:#8b8b8d;font-size:12px}.services .section-head>a{position:absolute;right:0;bottom:0;font:600 10px Oswald;letter-spacing:.12em}.service-list{margin-top:70px;border-top:1px solid #3a3a3c}.service-row{height:125px;position:relative;display:grid;grid-template-columns:70px 1fr 1fr 60px;align-items:center;border-bottom:1px solid #3a3a3c;transition:.3s}.service-row>b{color:var(--red2);font:600 13px Oswald}.service-row h3{font-size:25px}.service-row>span{color:#777;font:500 11px Oswald;letter-spacing:.14em}.service-row>i{font-style:normal;font-size:22px}.service-row:hover{padding-left:20px;color:#fff;background:var(--red)}.service-row:hover>b,.service-row:hover>span{color:#fff}.service-preview{position:absolute;z-index:3;right:10%;bottom:75%;width:280px;height:180px;background-size:cover;background-position:center;opacity:0;pointer-events:none;transform:rotate(-4deg) scale(.85);transition:.3s}.service-row:hover .service-preview{opacity:1;transform:rotate(-2deg) scale(1)}.air{background-image:url("https://images.unsplash.com/photo-1503387762-592deb58ef4e?auto=format&fit=crop&w=1800&q=88")}.water{background-image:url("https://images.unsplash.com/photo-1581092160607-ee22621dd758?auto=format&fit=crop&w=1000&q=85")}.electric{background-image:url("https://images.unsplash.com/photo-1504917595217-d4dc5ebe6122?auto=format&fit=crop&w=1000&q=85")}.philosophy{min-height:680px;display:grid;grid-template-columns:1.1fr .75fr .45fr;background:#d8d7d3}.philosophy-photo{background:linear-gradient(120deg,rgba(0,0,0,.08),transparent),url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1300&q=85") center/cover;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.philosophy-copy{padding:120px 55px}.philosophy-copy h2{font-size:42px;line-height:1.55}.philosophy-copy p{color:#555;font-size:12px}.philosophy-copy a{display:inline-block;margin-top:28px;padding-bottom:6px;border-bottom:1px solid;font-size:10px;font-weight:700}.philosophy>strong{padding:100px 25px;color:var(--red);background:#c8c6c1;font:600 31px/1.35 Oswald;writing-mode:vertical-rl}.projects{padding:130px max(28px,calc((100% - var(--max))/2));background:#fff}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.project-img{height:310px;background-position:center;background-size:cover;filter:grayscale(.25);transition:.5s}.project-grid article:hover .project-img{filter:none;transform:scale(.98)}.p1{background-image:url("https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1000&q=85")}.p2{background-image:url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1000&q=85")}.p3{background-image:url("https://images.unsplash.com/photo-1581092918056-0c4c3acd3789?auto=format&fit=crop&w=1000&q=85")}.project-grid small{display:block;margin-top:18px;color:var(--red);font:600 9px Oswald;letter-spacing:.13em}.project-grid h3{margin:6px 0;font-size:15px}.project-grid p{margin:0;color:#888;font-size:10px}.numbers{padding:100px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:1.5fr repeat(4,1fr);align-items:end;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.95),rgba(0,0,0,.76)),url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=1800&q=88") center/cover}.numbers h2{font-size:35px;line-height:1.5}.numbers>div:not(:first-child){padding:20px;border-left:1px solid #555}.numbers strong{font:600 55px Oswald}.numbers span{display:block;color:#aaa;font-size:9px}.maintenance{padding:130px max(28px,calc((100% - var(--max))/2));background:#fff}.maintenance ol{display:grid;grid-template-columns:repeat(4,1fr);margin:60px 0 0;padding:0;list-style:none;border-top:1px solid var(--line);border-left:1px solid var(--line)}.maintenance li{min-height:270px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.maintenance li b{color:var(--red);font:600 30px Oswald}.maintenance li h3{margin-top:60px}.maintenance li p{color:var(--gray);font-size:11px}.contact-band{overflow:hidden;color:#fff;background:var(--red)}.marquee{display:flex;white-space:nowrap;color:rgba(255,255,255,.07);font:600 130px/1 Oswald;animation:marquee 20s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}.contact-band-inner{padding:60px max(28px,calc((100% - var(--max))/2)) 90px;display:flex;justify-content:space-between;align-items:end}.contact-band-inner small{font:600 9px Oswald;letter-spacing:.2em}.contact-band-inner h2{font-size:37px}.contact-band-inner p{font-size:11px}.contact-band-inner>a{width:250px;padding:20px;display:flex;justify-content:space-between;color:var(--black);background:#fff;font-size:12px;font-weight:700}footer{padding:65px max(28px,calc((100% - var(--max))/2)) 25px;display:grid;grid-template-columns:1fr auto;gap:35px;color:#aaa;background:#080809}.foot-logo{display:flex;gap:20px;color:#fff}.foot-logo>b{font:600 32px Oswald}.foot-logo p{margin:0;padding-left:20px;border-left:1px solid #555;font-size:11px}.foot-logo small{color:#777;font-size:8px}footer nav{display:flex;gap:28px;font-size:10px}.foot-info{font-size:9px}.copy{grid-column:1/-1;padding-top:25px;border-top:1px solid #29292a;font-size:8px}.page-hero{height:500px;padding:120px max(28px,calc((100% - var(--max))/2)) 70px;display:flex;justify-content:space-between;align-items:end;color:#fff;background:linear-gradient(135deg,#0b0b0c 65%,#781a20)}.page-hero h1{margin:15px 0;font-size:70px}.page-hero p{color:#aaa;font-size:12px}.page-hero>b{font:600 180px/1 Oswald;color:rgba(255,255,255,.06)}.anchor-nav{position:sticky;z-index:20;top:70px;display:flex;justify-content:center;color:#fff;background:var(--red)}.anchor-nav a{padding:18px 45px;border-right:1px solid rgba(255,255,255,.2);font:600 10px Oswald;letter-spacing:.15em}.service-detail{min-height:690px;padding:110px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:center;background:#fff}.service-detail.reverse{background:#dfdeda}.service-detail.reverse .detail-image{order:2}.detail-image{height:470px;background-position:center;background-size:cover;box-shadow:25px 25px 0 var(--red)}.detail-copy>b{display:block;color:#d0cfcb;font:600 80px Oswald}.detail-copy h2{margin:5px 0;font-size:45px}.detail-copy h3{color:var(--red);font-size:21px}.detail-copy>p{color:var(--gray);font-size:12px}.detail-copy ul{display:grid;grid-template-columns:1fr 1fr;padding:0;list-style:none}.detail-copy li{padding:10px;border-bottom:1px solid var(--line);font-size:10px}.detail-copy li:before{content:"—";margin-right:10px;color:var(--red)}.support{padding:130px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:1fr 1.2fr;gap:80px;color:#fff;background:var(--black)}.support h2{font-size:46px;line-height:1.4}.support p{color:#888;font-size:12px}.support-grid{display:grid;grid-template-columns:repeat(3,1fr)}.support-grid article{padding:30px;border:1px solid #363638}.support-grid b{color:var(--red2);font:600 35px Oswald}.support-grid h3{margin-top:60px}.support-grid p{font-size:10px}.company-message{padding:140px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:70px 1fr 1fr;gap:70px;align-items:center}.company-message h2{font-size:47px;line-height:1.5}.company-message>div:last-child{color:var(--gray);font-size:13px}.representative{min-height:650px;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#d8d7d3}.rep-photo{height:100%;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent),url("https://images.unsplash.com/photo-1487958449943-2429e8be8625?auto=format&fit=crop&w=1800&q=88") center/cover;filter:grayscale(1)}.representative>div:last-child{padding:80px;max-width:650px}.representative h2{font-size:42px;line-height:1.5}.representative p{color:#555;font-size:12px}.representative strong{display:block;margin-top:25px}.company-profile{padding:130px max(28px,calc((100% - var(--max))/2));display:grid;grid-template-columns:.6fr 1.4fr;gap:80px;background:#fff}.company-profile dl{margin:0}.company-profile dl div{display:grid;grid-template-columns:180px 1fr;padding:20px;border-bottom:1px solid var(--line);font-size:11px}.company-profile dd{margin:0}.values{display:grid;grid-template-columns:repeat(3,1fr);padding:0 max(28px,calc((100% - var(--max))/2)) 130px;background:#fff}.values article{padding:45px;border:1px solid var(--line)}.values small{color:var(--red)}.values h3{font:600 35px Oswald}.values p{color:#777;font-size:11px}.contact-intro{padding:120px 28px;text-align:center}.contact-intro h2{font-size:45px}.contact-intro>p{color:var(--gray);font-size:12px}.contact-intro>a{display:inline-flex;align-items:center;gap:25px;margin-top:35px;padding:20px 35px;color:#fff;background:var(--black);font:600 32px Oswald}.contact-intro>a span,.contact-intro>a small{font-size:9px}.form-section{padding:100px max(28px,calc((100% - 980px)/2)) 140px;display:grid;grid-template-columns:160px 1fr;gap:60px;background:#deddd9}.form-aside{display:grid;grid-template-columns:35px 1fr;align-content:start;gap:9px}.form-aside b{color:var(--red);font:600 12px Oswald}.form-aside h3{margin:0;font-size:11px}.form-aside span{grid-column:1/-1;width:1px;height:45px;margin-left:7px;background:#aaa}.form-section form{padding:65px;background:#fff}.field{margin-bottom:28px}.field label{display:block;margin-bottom:8px;font-size:11px;font-weight:700}.field em{margin-left:8px;padding:2px 5px;color:#fff;background:var(--red);font-size:8px;font-style:normal}.field input,.field select,.field textarea{width:100%;padding:15px;border:0;border-bottom:1px solid #bbb;background:#fafafa;font:inherit;font-size:12px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red)}.field small{display:block;min-height:17px;color:var(--red);font-size:9px}.field.invalid input,.field.invalid select,.field.invalid textarea{background:#fff1f1}.field.two{display:grid;grid-template-columns:1fr 1fr;gap:25px}.check{display:block;text-align:center;font-size:10px}.form-section button{width:360px;margin:35px auto 0;padding:19px;border:0;display:flex;justify-content:space-between;color:#fff;background:var(--red);cursor:pointer;font-weight:700}.status{text-align:center;color:var(--red);font-size:11px}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.cursor{display:none}header{height:70px;padding-left:20px}.logo>span{display:none}header nav{position:fixed;inset:70px 0 auto;display:none;padding:20px;color:var(--black);background:var(--paper);flex-direction:column;align-items:stretch;gap:0}.head-contact{display:none}.menu{display:grid;margin-left:auto;margin-right:20px;gap:8px;border:0;background:none}.menu i{width:27px;height:2px;background:currentColor}.menu.open+nav{display:flex}header nav a{padding:15px;border-bottom:1px solid var(--line)}.hero>img{object-position:62%}.hero-overlay{background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.48))}.hero h1{font-size:48px}.statement{grid-template-columns:35px 1fr;gap:25px}.statement>p{grid-column:2}.service-preview{display:none}.philosophy{grid-template-columns:1fr}.philosophy-photo{height:400px;clip-path:none}.philosophy>strong{display:none}.project-grid{overflow-x:auto}.project-grid article{min-width:280px}.numbers{grid-template-columns:1fr 1fr}.numbers>div:first-child{grid-column:1/-1}.maintenance ol{grid-template-columns:1fr 1fr}.contact-band-inner{display:block}.contact-band-inner>a{margin-top:30px}.page-hero{height:400px}.page-hero>b{font-size:100px}.service-detail,.service-detail.reverse,.support,.company-message,.representative,.company-profile{grid-template-columns:1fr}.service-detail.reverse .detail-image{order:initial}.detail-image{height:350px}.support-grid{grid-template-columns:1fr}.company-message{grid-template-columns:35px 1fr}.company-message>div:last-child{grid-column:2}.rep-photo{min-height:500px}.values{grid-template-columns:1fr}.form-section{grid-template-columns:1fr}.form-aside{display:flex}.form-aside span{width:50px;height:1px;margin:12px 0}}@media(max-width:520px){.hero-text{width:calc(100% - 40px)}.hero h1{font-size:39px}.hero-index{display:none}.statement{padding-left:20px;padding-right:20px}.services,.projects,.maintenance{padding-left:20px;padding-right:20px}.section-head h2{font-size:60px}.service-row{grid-template-columns:40px 1fr 35px}.service-row>span{display:none}.philosophy-copy{padding:70px 25px}.project-grid{grid-template-columns:repeat(3,280px)}.numbers{padding-left:20px;padding-right:20px}.numbers strong{font-size:45px}.maintenance ol{grid-template-columns:1fr}.contact-band-inner{padding-left:20px;padding-right:20px}.marquee{font-size:80px}footer{grid-template-columns:1fr}.page-hero{padding-left:20px;padding-right:20px}.page-hero h1{font-size:46px}.page-hero>b{display:none}.anchor-nav{overflow-x:auto;justify-content:flex-start}.anchor-nav a{padding:15px 25px}.service-detail{padding:80px 20px;gap:45px}.detail-image{box-shadow:12px 12px var(--red)}.support{padding-left:20px;padding-right:20px}.representative>div:last-child{padding:60px 25px}.company-profile{padding:80px 20px}.company-profile dl div{grid-template-columns:100px 1fr}.values{padding-left:20px;padding-right:20px}.contact-intro h2{font-size:35px}.contact-intro>a{font-size:25px}.form-section{padding-left:15px;padding-right:15px}.form-section form{padding:40px 20px}.field.two{grid-template-columns:1fr}.form-section button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.marquee{animation:none}.loader{display:none}}

/* Mobile image focal-point fixes */
@media (max-width: 850px) {
  .service-detail .detail-image.air {
    background-position: 77% center;
  }

  .representative .rep-photo {
    background-position: 77% center;
  }
}

/* Meaning-based mobile line breaks */
@media(max-width:600px){.sp-line{display:block!important}p br{display:block!important}}

@media (max-width: 520px) {
  .service-detail .detail-image.air {
    background-position: 79% center;
  }

  .representative .rep-photo {
    background-position: 79% center;
  }
}


/* Portfolio disclosure and 404 */
.portfolio-note{grid-column:1/-1;color:#b9595e!important;font-size:9px!important;letter-spacing:.08em}
.not-found{min-height:100vh;display:grid;place-items:center;padding:130px 28px 80px;text-align:center;color:#fff;background:radial-gradient(circle at 75% 35%,rgba(151,31,37,.35),transparent 30%),var(--black)}
.not-found>div{max-width:760px}.not-found small{color:#c64b52;font:600 10px Oswald;letter-spacing:.25em}.not-found strong{display:block;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.18);font:600 clamp(130px,27vw,300px)/.9 Oswald}.not-found h1{margin:20px 0;font-size:clamp(29px,4.5vw,52px);line-height:1.5}.not-found p{color:#888;font-size:11px}.not-found a{display:flex;justify-content:space-between;width:250px;margin:35px auto 0;padding:18px 22px;color:#fff;background:var(--red);font:600 11px Oswald;letter-spacing:.1em}
@media(max-width:850px){.not-found{padding-top:100px}.portfolio-note{margin-top:12px}}

/* Japanese responsive typography */
h1,h2,h3{text-wrap:balance;line-break:strict}p,li,dt,dd,figcaption{text-wrap:pretty;line-break:strict}@supports (word-break:auto-phrase){h1,h2,h3,p,li,dt,dd,figcaption{word-break:auto-phrase}}.sp-line{display:inline}@media(max-width:768px){.sp-line{display:block}}

/* Mobile Japanese line-break refinement 2026-09-15 */
@media(max-width:600px){
  h1,h2,h3{text-wrap:balance;line-break:strict;overflow-wrap:normal}
  p,li,dd{line-break:strict;overflow-wrap:anywhere}
  p br{display:none}
  h1 br,h2 br,h3 br,.hero-text>p:first-child br{display:block}
  .hero h1{font-size:clamp(2.65rem,12vw,3.45rem);line-height:1.3}
  .page-hero h1,.section-title h2{font-size:clamp(2.2rem,10vw,3rem);line-height:1.4}
}

@media(max-width:600px){.sp-line{display:block!important}p br{display:block!important}}
/* Mobile rule: keep industry terms and compound nouns on one line. */
@media(max-width:600px){.term-keep{display:inline-block;white-space:nowrap;max-width:100%}}


/* Shared Japanese line-breaking rules: preserve phrases without wasting width. */
html{line-break:strict}
h1,h2,h3,.lead,.catch,.copy{text-wrap:balance;overflow-wrap:normal;word-break:normal}
p,li,dt,dd,figcaption{text-wrap:pretty;overflow-wrap:break-word;word-break:normal}
@supports (word-break:auto-phrase){h1,h2,h3,.lead,.catch,.copy,p,li,dt,dd,figcaption{word-break:auto-phrase}}


/* Mobile horizontal overflow repair 2026-09-16 */
html,body{width:100%;max-width:100%;overflow-x:clip}
@media(max-width:600px){
  main,section,header,footer,nav,form,article,div,dl,ol,ul{min-width:0}
  main,section,footer{max-width:100%}
  img,video,svg,iframe{max-width:100%;height:auto}
  h1,h2,h3,p,li,dt,dd,a,span{max-width:100%}
  h1,h2,h3{overflow-wrap:break-word;word-break:normal}
  p,li,dt,dd{overflow-wrap:break-word;word-break:normal}

  header{width:100%;max-width:100%;padding-left:18px}
  .logo{min-width:0;max-width:calc(100% - 70px)}
  .logo>b{flex:0 0 auto}
  .menu{flex:0 0 auto;margin-right:18px}
  header nav{width:100%;max-width:100%;overflow-x:hidden}

  .hero,.page-hero,.statement,.services,.philosophy,.projects,.numbers,.maintenance,
  .service-detail,.support,.company-message,.representative,.company-profile,.values,
  .contact-intro,.form-section,.contact-band,footer{width:100%;max-width:100%;overflow-x:hidden}

  .hero-text{width:calc(100% - 40px);max-width:100%}
  .hero h1{font-size:clamp(2.25rem,10.5vw,2.7rem)}
  .hero-note{width:100%;max-width:100%}
  .statement{grid-template-columns:28px minmax(0,1fr);gap:18px}
  .statement>p{grid-column:2;min-width:0}

  .service-row{grid-template-columns:35px minmax(0,1fr) 30px;column-gap:6px}
  .service-row h3{min-width:0;font-size:clamp(1.15rem,6vw,1.45rem);overflow-wrap:break-word}
  .project-grid{width:100%;max-width:100%;overscroll-behavior-x:contain}
  .project-grid article{min-width:min(280px,82vw)}
  .numbers>div{min-width:0}
  .numbers strong{font-size:clamp(2.35rem,11vw,2.8rem)}
  .maintenance li{min-width:0}

  .contact-band-inner{width:100%;max-width:100%}
  .contact-band-inner>a{width:100%;max-width:320px}
  .marquee{max-width:none}

  .page-hero{padding-left:20px;padding-right:20px}
  .page-hero>div{min-width:0;max-width:100%}
  .page-hero h1{font-size:clamp(2.35rem,11vw,2.9rem)}
  .anchor-nav{width:100%;max-width:100%;overscroll-behavior-x:contain}
  .anchor-nav a{flex:0 0 auto}

  .service-detail{grid-template-columns:minmax(0,1fr)}
  .detail-image{width:calc(100% - 12px);max-width:calc(100% - 12px);margin-right:12px}
  .detail-copy{min-width:0}
  .detail-copy>b{font-size:clamp(3.2rem,18vw,5rem)}
  .detail-copy h2{font-size:clamp(2rem,10vw,2.8rem)}
  .detail-copy ul{grid-template-columns:minmax(0,1fr)}
  .detail-copy li{min-width:0}
  .support,.company-message,.representative,.company-profile{grid-template-columns:minmax(0,1fr)}
  .support-grid{grid-template-columns:minmax(0,1fr)}

  .company-message{grid-template-columns:28px minmax(0,1fr);gap:18px}
  .company-message>div:last-child{grid-column:2;min-width:0}
  .company-message h2,.representative h2{font-size:clamp(2rem,9vw,2.65rem)}
  .representative>div:last-child{width:100%;max-width:100%}
  .company-profile dl,.company-profile dl div{width:100%;max-width:100%}
  .company-profile dl div{grid-template-columns:88px minmax(0,1fr);gap:12px;padding-left:0;padding-right:0}
  .company-profile dd{min-width:0;overflow-wrap:anywhere}
  .values{grid-template-columns:minmax(0,1fr)}

  .contact-intro{padding-left:20px;padding-right:20px}
  .contact-intro h2{font-size:clamp(2rem,9vw,2.4rem)}
  .contact-intro>a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;width:100%;max-width:360px;padding:18px 20px;font-size:clamp(1.35rem,7vw,1.85rem)}
  .contact-intro>a small{grid-column:2;text-align:left}
  .form-section{grid-template-columns:minmax(0,1fr);padding-left:15px;padding-right:15px}
  .form-section form{width:100%;max-width:100%;padding:36px 18px}
  .field,.field input,.field select,.field textarea{min-width:0;max-width:100%}
  .field.two{grid-template-columns:minmax(0,1fr)}
  .form-section button{width:100%;max-width:100%}

  footer{grid-template-columns:minmax(0,1fr);padding-left:20px;padding-right:20px}
  .foot-logo{min-width:0;flex-wrap:wrap}
  .foot-logo p{min-width:0}
  footer nav{display:flex;flex-wrap:wrap;gap:14px 22px}
  .portfolio-note,.copy{max-width:100%}

  .term-keep{max-width:100%}
}


/* Meaning-based mobile heading lines */

@media(max-width:600px){

  .statement .meaning-heading{font-size:clamp(2.35rem,11vw,2.8rem);line-height:1.5}
  .maintenance .maintenance-heading{font-size:clamp(3.15rem,15vw,3.75rem);line-height:1.35}
}


/* Semantic mobile heading system */

@media(max-width:600px){

  .philosophy-heading{font-size:clamp(2.05rem,9.5vw,2.4rem)!important;line-height:1.5}
  .numbers-heading{font-size:clamp(1.9rem,8.5vw,2.2rem)!important;line-height:1.5}
  .support-heading{font-size:clamp(2.15rem,10vw,2.55rem)!important;line-height:1.45}
  .company-message-heading{font-size:clamp(2.15rem,10vw,2.55rem)!important;line-height:1.45}
  .representative-heading{font-size:clamp(2rem,9vw,2.3rem)!important;line-height:1.5}
  .contact-intro-heading{font-size:clamp(1.95rem,8.7vw,2.25rem)!important;line-height:1.5}
  .cta-heading{font-size:clamp(1.95rem,8.5vw,2.2rem)!important;line-height:1.5}
}


/* Shared CTA typography on phones. */
@media(max-width:600px){
  .contact-band .cta-heading{font-size:clamp(1.85rem,8vw,2.1rem)!important;line-height:1.55;letter-spacing:-.025em}
}

/* User-defined phrase boundaries on all screen sizes. */
.phrase-heading{white-space:normal!important;text-wrap:wrap!important;word-break:normal;overflow-wrap:normal;min-width:0}
.phrase-heading>.phrase-unit{display:inline-block;white-space:nowrap!important;text-wrap:nowrap!important;word-break:normal;overflow-wrap:normal}
.phrase-heading>wbr{display:inline}
