@import url('refinement.css');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');
.pk-round-xl{border-radius:10px}.pk-kenburns{overflow:hidden}.pk-kenburns img{animation:ethical-kenburns 16s ease-out both}.pk-scrim-b{position:relative}.pk-scrim-b::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#3f2d1f66,transparent 55%);pointer-events:none}@keyframes ethical-kenburns{from{transform:scale(1.06)}to{transform:scale(1)}}
:root{--ink:#282624;--deep:#3f2d1f;--green:#8a5a3b;--mint:#f5f1e8;--paper:#faf9f5;--cream:#efe8da;--orange:#6f765a;--line:#ddd2bf;--white:#faf9f5;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;--radius:4px;--shadow:0 12px 32px #2826240f;--sans:'Noto Sans JP',sans-serif;--display:'DM Sans','Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.7;letter-spacing:.035em}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin:0}h1,h2,h3{line-height:1.22;letter-spacing:.02em}h1{font-size:clamp(2.5rem,5vw,5.5rem);font-weight:900}h2{font-size:clamp(2rem,4vw,4rem);font-weight:900}h3{font-size:clamp(1.15rem,2vw,1.5rem)}.eyebrow{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.16em;color:var(--orange);margin-bottom:var(--s3)}.site-header{height:84px;background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,80px);position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--display);font-size:1.2rem;font-weight:700}.brand strong{display:block;font-size:.97rem;line-height:1.1}.brand small{display:block;font-family:var(--display);font-size:.54rem;letter-spacing:.12em;line-height:1.4}.global-nav{display:flex;align-items:center;gap:clamp(20px,3vw,48px);font-size:.85rem;font-weight:700}.nav-contact{padding:16px 24px;background:var(--ink);color:var(--white)}.menu-toggle{display:none;background:none;border:0;font:700 .7rem var(--display);letter-spacing:.1em;color:var(--ink)}.hero{min-height:clamp(620px,calc(100vh - 84px),820px);position:relative;overflow:hidden;background:var(--mint);display:grid;grid-template-columns:minmax(80px,22%) minmax(280px,38%) minmax(320px,1fr);align-items:center}.hero-block{position:absolute;left:0;top:0;bottom:0;width:28%;background:var(--green);padding:clamp(100px,15vh,160px) clamp(24px,5vw,80px);color:var(--white);font:900 clamp(2rem,5vw,5.3rem)/.88 var(--display);letter-spacing:.08em;z-index:1;display:flex;flex-direction:column;gap:10px}.hero-block span:nth-child(2){margin-left:30px;font-size:.66em}.hero-block span:nth-child(3){font-size:.64em}.hero-copy{grid-column:2;position:relative;z-index:3;padding:clamp(40px,6vw,88px) 20px 40px 0;color:var(--white);text-shadow:0 2px 18px #28262466}.hero-copy .eyebrow{color:#e8cdae}.hero-copy h1{margin-bottom:var(--s4)}.hero-copy h1 em{color:#e8cdae;font-style:normal}.hero-copy>p:not(.eyebrow){font-size:clamp(1rem,1.5vw,1.25rem);margin-bottom:var(--s5);font-weight:500}.hero-photo{grid-column:3;grid-row:1;height:74%;align-self:center;position:relative;z-index:2;box-shadow:var(--shadow);margin-right:0}.hero-note{position:absolute;right:5%;bottom:8%;z-index:4;font-family:var(--display);font-size:.72rem;line-height:1.4;letter-spacing:.14em;color:var(--ink);border-left:2px solid var(--orange);padding-left:12px}.hero-note b{font-size:1rem}.button{display:inline-flex;align-items:center;gap:22px;padding:15px 22px;font-weight:700;font-size:.85rem;transition:transform .25s ease,background .25s ease}.button span,.text-link span{font-family:var(--display);font-size:1.3em}.button:hover{transform:translateY(-3px)}.button-light{background:var(--white);color:var(--ink)}.button-dark{background:var(--ink);color:var(--white)}.service-band{padding:var(--s7) clamp(24px,7vw,120px);background:var(--paper);display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:clamp(40px,8vw,120px)}.section-intro p:last-child,.principles-head p:last-child{max-width:390px;margin-top:var(--s4);font-size:.92rem}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}.service-card{position:relative;border-top:1px solid var(--ink);padding-top:12px}.service-no{font:700 .75rem var(--display);color:var(--orange);display:block;margin-bottom:10px}.service-image{aspect-ratio:1.35;overflow:hidden;margin-bottom:var(--s3)}.service-card h3{margin-bottom:var(--s2)}.service-card p{font-size:.82rem;color:#716a60}.arrow{position:absolute;right:0;bottom:0;font:1.4rem var(--display)}.split-section{display:grid;grid-template-columns:1fr 1fr;min-height:560px}.split-section--cream{background:var(--cream)}.split-image{min-height:540px;overflow:hidden}.split-copy{padding:clamp(56px,8vw,120px) clamp(28px,7vw,120px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.split-copy .lead{font-size:1.14rem;font-weight:700;line-height:1.8;margin-bottom:var(--s4)}.split-copy>p:not(.eyebrow):not(.lead){max-width:560px;font-size:.9rem}.text-link{display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:6px;margin-top:var(--s5);font-weight:700;font-size:.82rem}.principles{padding:var(--s7) clamp(24px,7vw,120px);background:var(--green);color:var(--white)}.principles .eyebrow{color:#e8cdae}.principles-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:var(--s6)}.principles-head p:last-child{color:#efe3d3;margin:0}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ffffff55}.principle{background:var(--green);padding:var(--s5) clamp(20px,3vw,48px);min-height:250px}.principle span{font:700 2.7rem var(--display);color:#e8cdae}.principle h3{margin:var(--s3) 0 var(--s2);font-size:1.2rem}.principle p{color:#efe3d3;font-size:.88rem}.manifesto{background:var(--paper)}.news-section{padding:var(--s7) clamp(24px,7vw,120px);background:var(--cream)}.section-line{display:flex;justify-content:space-between;align-items:end;margin-bottom:var(--s5)}.section-line .text-link{margin:0}.news-list{border-top:1px solid var(--ink)}.news-item{display:grid;grid-template-columns:130px 1fr 24px;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);font-size:.9rem}.news-item time{font:500 .75rem var(--display);color:var(--orange)}.news-item b{font:1.2rem var(--display);font-weight:400}.contact-band{background:var(--mint);display:grid;grid-template-columns:1fr 1fr}.contact-copy{padding:var(--s7) clamp(28px,7vw,120px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.contact-copy h2{margin-bottom:var(--s4)}.contact-copy p:not(.eyebrow){max-width:450px;font-size:.92rem;margin-bottom:var(--s5)}.contact-photo{min-height:430px}.site-footer{background:var(--deep);color:var(--white);padding:var(--s6) clamp(24px,7vw,120px) var(--s3)}.brand--footer .brand-mark{background:var(--white);color:var(--deep)}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--s5);border-bottom:1px solid #ffffff44}.footer-phone{font:700 clamp(1.5rem,3vw,2.4rem) var(--display)}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:var(--s5) 0;font-size:.82rem;color:#efe3d3}.footer-grid nav{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px}.footer-grid a:hover{color:#e8cdae}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff44;padding-top:18px;font: .68rem var(--display);color:#cdbda8}
@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:700px}.hero-block{width:42%;padding:100px 24px}.hero-copy{grid-column:1;padding:120px 24px 40px 30%;align-self:start}.hero-photo{grid-column:1;grid-row:1;position:absolute;inset:90px 0 0 22%;height:auto;opacity:.85}.hero-note{bottom:5%;right:8%}.service-band{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(3,1fr)}.split-copy{padding:56px 32px}.principles-head{display:block}.principles-head p:last-child{margin-top:20px}.footer-grid{grid-template-columns:1fr}}
@media(max-width:600px){.site-header{height:68px;padding:0 20px}.global-nav{display:none;position:absolute;top:68px;right:0;left:0;background:var(--paper);padding:18px 20px;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--line)}.global-nav.is-open{display:flex}.global-nav a{padding:12px 0}.nav-contact{padding:12px!important;margin-top:8px;text-align:center}.menu-toggle{display:block}.brand strong{font-size:.8rem}.hero{min-height:640px}.hero-block{width:52%;padding:85px 18px;font-size:2.2rem}.hero-copy{padding:90px 18px 40px 23%;}.hero-copy h1{font-size:2.4rem}.hero-photo{inset:110px 0 0 12%;}.hero-note{display:none}.service-band,.principles,.news-section{padding:64px 20px}.service-grid{grid-template-columns:1fr;gap:36px}.service-card{display:grid;grid-template-columns:80px 1fr;column-gap:16px}.service-no{grid-column:1}.service-image{grid-column:1/-1;grid-row:2;aspect-ratio:1.5}.service-card h3{grid-column:2;grid-row:1}.service-card p{grid-column:1/-1}.arrow{right:0;top:5px}.split-section,.contact-band{grid-template-columns:1fr}.split-image{min-height:300px;max-height:380px;order:-1}.manifesto .split-image{order:0}.split-copy{padding:64px 20px}.principle-grid{grid-template-columns:1fr}.principle{min-height:auto}.news-item{grid-template-columns:80px 1fr 16px;gap:10px;font-size:.8rem}.contact-photo{min-height:300px}.footer-top{align-items:flex-start;gap:24px;flex-direction:column}.footer-grid nav{grid-template-columns:1fr}.footer-bottom{gap:12px;flex-direction:column}}
.page-hero--solar{background:#f5f1e8}.page-hero--battery{background:#efe8da}.section-tail{max-width:680px;margin:32px auto 0;color:#efe3d3;text-align:center;font-size:.9rem}.info-section,.area-section,.news-archive{padding:96px clamp(24px,7vw,120px);background:var(--paper)}.section-aside{color:#716a60;font-size:.9rem}.info-section .steps{grid-template-columns:repeat(2,1fr)}.info-section .steps li{align-items:flex-start}.info-section .steps li p{font-size:.86rem}.info-section .steps li h3{margin-bottom:10px}.check-list{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none;font-size:.85rem}.check-list li{padding-left:24px;position:relative}.check-list li::before{content:'✓';position:absolute;left:0;color:var(--orange);font-weight:900}.solar-promise{background:var(--mint)}.promise-list{display:grid;gap:1px;background:var(--line)}.promise-list article{background:var(--paper);padding:24px}.promise-list h3{margin-bottom:8px}.promise-list p{font-size:.86rem;color:#716a60}.case-strip{display:flex;gap:24px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:24px 0;font-size:.9rem}.battery-products{background:var(--cream)}.mini-points ul{display:grid;gap:16px;margin:16px 0 24px;padding:0;list-style:none}.mini-points li{font-size:.84rem;padding-left:18px;border-left:2px solid var(--orange)}.mini-points strong{font-size:.92rem}.brand-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}.brand-list article{background:var(--paper);padding:24px}.brand-list h3{color:var(--green);margin-bottom:10px}.brand-list p{font-size:.84rem}.area-section{background:var(--cream)}.area-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}.area-grid article{background:var(--cream);padding:28px}.area-grid h3{margin-bottom:12px;color:var(--green)}.area-grid p{font-size:.76rem;line-height:2}.news-hero{padding:clamp(96px,13vw,180px) clamp(24px,7vw,120px);background:var(--green);color:var(--white)}.news-hero .eyebrow{color:#e8cdae}.news-hero h1{margin-bottom:20px}.news-hero>p:last-child{max-width:600px;color:#efe3d3}.news-list--cards .news-item{padding:26px 0}.archive-count{font:700 .7rem var(--display);letter-spacing:.14em;color:var(--orange)}.contact-tel{display:block;margin-top:22px;font:700 1.15rem var(--display)}
@media(max-width:900px){.info-section .steps{grid-template-columns:1fr}.area-grid{grid-template-columns:1fr}}
@media(max-width:600px){.brand-list{grid-template-columns:1fr}.section-line{align-items:flex-start;flex-direction:column;gap:20px}.section-aside{margin-top:0}.area-grid{grid-template-columns:1fr}.news-hero h1{font-size:3rem}.promise-list{gap:0}.case-strip{display:grid}}

/* Energy-tech redesign: one sharp system shared by all eighteen pages. */
:root{
  --ink:#1c1b19;
  --deep:#1c1b19;
  --green:#f0a832;
  --mint:#fafaf8;
  --paper:#fafaf8;
  --cream:#f0f0ec;
  --orange:#f0a832;
  --line:#1c1b1930;
  --white:#fafaf8;
  --sans:'Zen Kaku Gothic New',sans-serif;
  --display:'DM Sans','Zen Kaku Gothic New',sans-serif;
  --radius:0;
  --shadow:none;
}
html{background:var(--paper);overflow-x:hidden}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:.015em;line-height:1.7}
img{border-radius:0}
h1,h2,h3{font-family:var(--sans);font-weight:900;letter-spacing:-.045em;line-height:1.04}
h1{font-size:clamp(3rem,7vw,7.5rem)}
h2{font-size:clamp(2.35rem,5vw,5.5rem)}
h3{font-size:clamp(1.25rem,2vw,2rem)}
.eyebrow,.service-no,.archive-count,.kit-label{font-family:var(--display);color:var(--orange);font-weight:700;letter-spacing:.14em}
.site-header{height:88px;background:var(--paper);border-bottom:1px solid var(--ink);padding-inline:clamp(24px,5vw,80px)}
.brand-mark{border-radius:0;background:var(--ink);color:var(--orange);font-weight:900}
.brand strong{font-weight:900;letter-spacing:-.02em}
.global-nav{gap:clamp(16px,2.5vw,36px);font-family:var(--display);font-size:.72rem;letter-spacing:.05em}
.global-nav a{border-bottom:1px solid transparent;padding-block:6px}
.global-nav a:hover{border-color:var(--orange)}
.nav-contact,.button-dark{background:var(--orange);color:var(--ink)}
.nav-contact{border:0!important;padding:14px 20px!important}
.hero{min-height:clamp(650px,calc(100vh - 88px),860px);background:var(--deep);color:var(--white);grid-template-columns:minmax(48px,13%) minmax(280px,38%) minmax(320px,1fr)}
.hero-block{width:23%;background:var(--orange);color:var(--ink);font-family:var(--display);letter-spacing:-.06em}
.hero-copy{color:var(--white);text-shadow:none}
.hero-copy .eyebrow{color:var(--orange)}
.hero-copy h1{font-size:clamp(3rem,6.7vw,7rem);max-width:760px}
.hero-copy h1 em{color:var(--orange)}
.hero-copy h1 .heading-line{border-bottom:7px solid var(--orange);padding-bottom:8px;width:max-content;max-width:100%}
.hero-copy>p:not(.eyebrow){color:#fafaf8cc}
.hero-photo{box-shadow:none;border-left:1px solid var(--orange)}
.hero-note{color:var(--white);border-color:var(--orange)}
.button{border:1px solid var(--orange);border-radius:0;padding:16px 22px;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em}
.button-light{background:var(--orange);color:var(--ink)}
.button:hover{transform:translateY(-2px);background:var(--white);color:var(--ink)}
.service-band{background:var(--paper);padding-block:clamp(80px,10vw,160px);grid-template-columns:minmax(210px,.6fr) minmax(0,2fr);gap:clamp(48px,10vw,160px)}
.section-intro p:last-child,.principles-head p:last-child{color:#1c1b19aa}
.service-grid{display:grid;grid-template-columns:1fr;gap:0;background:transparent}
.service-card{display:grid;grid-template-columns:112px minmax(220px,1fr) minmax(170px,.8fr) 36px;grid-template-rows:1fr 1fr;column-gap:clamp(16px,3vw,48px);align-items:center;border-top:1px solid var(--ink);padding:24px 0;min-height:180px}
.service-card:last-child{border-bottom:1px solid var(--ink)}
.service-no{grid-row:1/3;font-size:clamp(2.8rem,5vw,5.5rem);line-height:1;color:var(--orange);margin:0}
.service-image{grid-column:2;grid-row:1/3;aspect-ratio:1.55;margin:0;border:1px solid var(--ink)}
.service-card h3,.service-card>.card-label{grid-column:3;grid-row:1;align-self:end;margin:0 0 10px;color:var(--ink);font-size:clamp(1.4rem,2.4vw,2.3rem)}
.service-card>p:not(.card-label){grid-column:3;grid-row:2;align-self:start;margin:0;color:#1c1b19aa;font-size:.78rem;line-height:1.6}
.service-card .arrow{grid-column:4;grid-row:1/3;position:static;font-size:2rem;color:var(--orange)}
.split-section{min-height:640px}
.split-section--cream{background:var(--deep);color:var(--white)}
.split-section--cream .split-copy{background:var(--deep)}
.split-section--cream .eyebrow{color:var(--orange)}
.split-section--cream .split-copy>p:not(.eyebrow):not(.lead){color:#fafaf8bb}
.split-image{min-height:640px}
.split-copy{padding-inline:clamp(32px,8vw,140px)}
.split-copy h2 .heading-line{border-bottom:5px solid var(--orange);padding-bottom:8px;width:max-content;max-width:100%}
.split-copy .lead{font-weight:700}
.text-link{border-color:var(--orange);font-family:var(--display);padding-bottom:8px}
.principles{background:var(--deep);color:var(--white);padding-block:clamp(80px,10vw,160px)}
.principles .eyebrow{color:var(--orange)}
.principles-head p:last-child,.principle p{color:#fafaf8aa}
.principle-grid{gap:0;background:var(--orange);border-top:1px solid var(--orange);border-bottom:1px solid var(--orange)}
.principle{background:var(--deep);padding:clamp(28px,4vw,64px);min-height:310px}
.principle span{font-size:4.5rem;color:var(--orange)}
.principle .card-label{color:var(--white)}
.news-section,.content-section--cream,.area-section,.battery-products{background:var(--cream)}
.news-section{padding-block:clamp(80px,10vw,150px)}
.news-list,.case-strip{border-color:var(--ink)}
.news-item{border-color:var(--line);padding-block:26px}
.news-item time{color:var(--orange)}
.news-item b{font-family:var(--sans);font-weight:700}
.contact-band{background:var(--orange)}
.contact-photo{border-left:1px solid var(--ink)}
.site-footer{background:var(--deep);color:var(--white);padding-top:clamp(72px,9vw,130px)}
.site-footer .footer-top,.site-footer .footer-grid{border-color:#fafaf844}
.brand--footer .brand-mark{background:var(--orange);color:var(--ink)}
.footer-grid{color:#fafaf8aa}
.footer-grid a:hover{color:var(--orange)}
.footer-bottom{border-color:#fafaf844;color:#fafaf899}

/* Use the supplied, unmodified brand artwork across the shared header/footer. */
.brand-logo{display:block;width:auto;height:50px;object-fit:contain}
.brand--footer{padding:6px 10px;background:var(--paper);border-radius:4px}
.footer-bottom a{color:inherit}
body:has(.home-hero) .site-header .brand{padding:6px 10px;background:var(--paper);border-radius:4px}
@media(max-width:600px){.brand-logo{height:44px}}
.page-intro,.page-intro:not(.page-intro--paint),.page-intro--paint,.news-hero,.article-intro{background:var(--deep);color:var(--white);border-bottom:1px solid var(--orange)}
.page-intro .eyebrow,.news-hero .eyebrow,.article-intro .eyebrow{color:var(--orange)}
.page-intro h1,.news-hero h1,.article-intro h1{font-size:clamp(3rem,6vw,7rem);letter-spacing:-.06em}
.page-intro h1 .heading-line,.news-hero h1 .heading-line,.article-intro h1 .heading-line{border-bottom:5px solid var(--orange);padding-bottom:8px;width:max-content;max-width:100%}
.page-intro p,.news-hero>p:last-child,.article-intro .lead{color:#fafaf8bb}
.page-intro .subpage-hero-photo,.hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.article-intro .subpage-hero-photo{border:1px solid var(--orange);border-radius:0;box-shadow:none}
.page-intro.company-intro{background:var(--deep)}
.content-section,.info-section,.faq-page,.company-details,.case-detail,.article-body{background:var(--paper);padding-block:clamp(80px,10vw,150px)}
.content-section>h2,.case-detail h2,.article-body>h2{font-size:clamp(2.5rem,5vw,5.5rem);border-bottom:1px solid var(--ink);padding-bottom:20px}
.photo-card-grid{grid-template-columns:repeat(3,minmax(280px,1fr));gap:1px;background:var(--ink);margin-inline:calc(clamp(24px,7vw,120px) * -1);padding:1px}
.photo-card{border-radius:0;box-shadow:none;min-height:390px;background:var(--deep)}
.photo-card::after{background:linear-gradient(0deg,#1c1b19e8,transparent 65%)}
.photo-card .service-no{color:var(--orange);font-size:2.5rem}
.photo-card .card-label,.photo-card h3{font-size:clamp(1.5rem,2.4vw,2.4rem)}
.photo-card>p:last-child{color:#fafaf8bb}
.case-cards{display:flex;overflow-x:auto;gap:1px;background:var(--ink);padding:1px;margin-inline:calc(clamp(24px,7vw,120px) * -1);max-width:none}
.case-cards .service-card{display:block;min-width:min(420px,72vw);background:var(--paper);padding:24px}
.case-cards .service-image{margin:20px 0;aspect-ratio:1.3}
.case-cards .service-card h3{display:block}
.price-table,.company-table{border-color:var(--ink)}
.price-table th,.company-table th{background:var(--deep);color:var(--orange)}
.price-table td,.company-table td,.company-table th{border-color:var(--line)}
.faq-list details,.faq details,.info-card,.area-card,.brand-card,.article-card{border-radius:0;background:var(--cream);box-shadow:none;border-top:1px solid var(--ink)}
.faq-list summary::after{color:var(--orange)}
.form-field input,.form-field textarea,.form-field select{border:1px solid var(--ink);border-radius:0;background:var(--paper)}
.check-list li{border-color:var(--orange)}
.pk-round-xl,.photo-card,.hero-photo,.subpage-hero-photo{border-radius:0!important}
.pk-scrim-b::after{background:linear-gradient(0deg,#1c1b19b8,transparent 60%)}
.mk-card-lift{box-shadow:none!important;border-radius:0;transition:transform 220ms ease,background 220ms ease}
.mk-card-lift:hover{transform:translateY(-3px);box-shadow:none!important}
.mk-link-slide::after,.mk-label-line::after{background:var(--orange)}
.mk-home-hero .hero-copy h1{background:transparent;color:var(--white);padding:0}
.mk-home-hero .hero-copy h1 em{color:var(--orange)}
.mk-home-hero .hero-block{background:var(--orange)}
.mk-count{font-family:inherit;color:inherit;font-variant-numeric:tabular-nums}
.stats-band{display:grid;grid-template-columns:repeat(3,1fr);background:var(--orange);color:var(--ink);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.stat{padding:clamp(28px,4vw,56px) clamp(20px,5vw,80px);border-right:1px solid var(--ink)}
.stat:last-child{border-right:0}.stat-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em}.stat-value{display:block;font:900 clamp(3.6rem,8vw,8rem)/.9 var(--display);letter-spacing:-.08em}
@media(max-width:900px){
 .hero{grid-template-columns:1fr}.hero-block{width:28%}.hero-copy{grid-column:1;padding-left:30%;}.hero-photo{grid-column:1;grid-row:1;border:0}
 .service-band{grid-template-columns:1fr}.service-card{grid-template-columns:90px 1fr 28px;grid-template-rows:auto;min-height:0}.service-no{grid-row:1}.service-image{grid-column:2;grid-row:1}.service-card h3,.service-card>.card-label{grid-column:2;grid-row:2;margin-top:14px}.service-card>p:not(.card-label){grid-column:2;grid-row:3;transform:none;margin-top:8px}.service-card .arrow{grid-column:3;grid-row:1}
 .photo-card-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}
}
@media(max-width:600px){
 .site-header{height:72px}.global-nav{top:72px;background:var(--paper);border-color:var(--ink)}
 .hero{min-height:680px}.hero-block{width:42%;font-size:2rem}.hero-copy{padding-left:24%;}.hero-copy h1{font-size:clamp(2.65rem,12vw,4.4rem)}
 .service-card{grid-template-columns:68px 1fr 24px;padding-block:20px}.service-image{grid-column:1 / -1;grid-row:2;margin-top:12px}.service-card h3,.service-card>.card-label{grid-column:2;grid-row:1;font-size:1.45rem}.service-card>p:not(.card-label){grid-column:1 / -1;grid-row:3}.service-card .arrow{grid-column:3;grid-row:1}
 .stats-band{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--ink);display:grid;grid-template-columns:1fr auto;align-items:center;padding:22px 20px}.stat:last-child{border-bottom:0}.stat-value{font-size:4.5rem}
 .photo-card-grid{grid-template-columns:1fr;margin-inline:-20px}.photo-card{min-height:320px}
 .page-intro h1,.news-hero h1,.article-intro h1{font-size:clamp(2.7rem,12vw,4.6rem)}
}

/* Subpage hero specification: a strict 55/45 two-column composition. */
.hero.page-hero,
.hero.case-hero,
.subpage-hero,
.news-hero,
.article-intro{
  min-height:clamp(520px,calc(100vh - 84px),720px);
  padding:clamp(64px,8vw,112px) clamp(24px,7vw,120px);
  display:grid;
  grid-template-columns:minmax(0,55fr) minmax(0,45fr);
  gap:48px;
  align-items:center;
  background:var(--mint);
  overflow:hidden;
}
.hero.page-hero .hero-block,
.hero.case-hero .hero-block{display:none}
.hero.page-hero .hero-copy,
.hero.case-hero .hero-copy,
.subpage-hero > .hero-copy,
.news-hero > .hero-copy,
.article-intro > .hero-copy{
  grid-column:1;
  grid-row:1;
  min-width:0;
  padding:0;
  color:var(--ink);
  text-shadow:none;
  position:static;
  z-index:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.hero.page-hero .hero-copy .eyebrow,
.hero.case-hero .hero-copy .eyebrow{color:var(--orange)}
.hero.page-hero .hero-copy h1,
.hero.case-hero .hero-copy h1,
.subpage-hero h1,
.news-hero h1,
.article-intro h1{
  max-width:100%;
  margin-bottom:24px;
  font-size:clamp(1.75rem,3.65vw,4rem);
  line-height:1.2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.hero.page-hero .hero-copy h1 em,
.hero.case-hero .hero-copy h1 em{color:var(--green)}
.hero.page-hero .hero-copy > p:not(.eyebrow),
.hero.case-hero .hero-copy > p:not(.eyebrow),
.subpage-hero .hero-copy > p:not(.eyebrow),
.news-hero > p:last-child,
.article-intro .lead{
  max-width:680px;
  margin-bottom:32px;
  color:#716a60;
  font-size:clamp(.9rem,1.25vw,1.08rem);
  font-weight:400;
}
.hero.page-hero .hero-photo,
.hero.case-hero .hero-photo,
.subpage-hero > .subpage-hero-photo,
.news-hero > .subpage-hero-photo,
.article-intro > .subpage-hero-photo{
  grid-column:2;
  grid-row:1;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  align-self:center;
  position:static;
  margin:0;
  opacity:1;
  overflow:hidden;
  border-radius:10px;
  box-shadow:var(--shadow);
}
.hero.page-hero .hero-photo img,
.hero.case-hero .hero-photo img,
.subpage-hero-photo img{aspect-ratio:4 / 3;object-fit:cover}
.hero.page-hero .pk-scrim-b::after,
.hero.case-hero .pk-scrim-b::after{display:none}
.page-intro.page-intro--paint::after{display:none}
.page-intro:not(.page-intro--paint),
.page-intro--paint{
  min-height:clamp(520px,calc(100vh - 84px),720px);
  padding:clamp(64px,8vw,112px) clamp(24px,7vw,120px);
  grid-template-columns:minmax(0,55fr) minmax(0,45fr);
  gap:48px;
  align-items:center;
  grid-template-rows:auto auto;
}
.page-intro > div:first-child,
.page-intro > .page-intro-copy{
  min-width:0;
}
.page-intro > div:first-child{grid-column:1;grid-row:1;align-self:end}
.page-intro > .page-intro-copy{grid-column:1;grid-row:2;align-self:start}
.page-intro > .subpage-hero-photo{grid-column:2;grid-row:1 / 3;align-self:center}
.page-intro > div:first-child + .page-intro-copy{padding-top:0}
.page-intro > div:first-child h1{max-width:100%;font-size:clamp(1.75rem,3.65vw,4rem);line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.page-intro > div:first-child .eyebrow{margin-bottom:24px}
body:has(.form-wrap) > main > .page-intro::after{
  content:"";
  grid-column:2;
  grid-row:1 / 3;
  width:100%;
  aspect-ratio:4 / 3;
  align-self:center;
  border-radius:10px;
  background:url('img/orig_21.jpg') center/cover no-repeat;
  box-shadow:var(--shadow);
}
.news-hero{color:var(--ink)}
.news-hero .eyebrow{color:var(--orange)}
.article-intro{grid-template-rows:auto auto auto}
.article-intro > h1,
.article-intro > .eyebrow,
.article-intro > .lead{grid-column:1}
.article-intro > .eyebrow{grid-row:1;align-self:end;margin:0 0 18px}
.article-intro > h1{grid-row:2;align-self:start}
.article-intro > .lead{grid-row:3;align-self:start;margin:0;max-height:4.8em;overflow:hidden}
.article-intro > .subpage-hero-photo{grid-column:2;grid-row:1 / 4}
.article-intro h1{font-size:clamp(1.5rem,3vw,3.2rem)}
.article-intro .lead{font-size:clamp(.82rem,1.05vw,.98rem)}
@media(max-width:900px){
  .hero.page-hero,.hero.case-hero,.subpage-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{grid-template-columns:1fr;gap:32px;min-height:0;padding:64px 32px}
  .hero.page-hero .hero-copy,.hero.case-hero .hero-copy,.subpage-hero > .hero-copy,.news-hero > .hero-copy,.article-intro > h1,.article-intro > .eyebrow,.article-intro > .lead,.page-intro > div:first-child,.page-intro > .page-intro-copy{grid-column:1;grid-row:auto;padding:0;align-self:auto}
  .hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.subpage-hero > .subpage-hero-photo,.news-hero > .subpage-hero-photo,.article-intro > .subpage-hero-photo,.page-intro > .subpage-hero-photo,body:has(.form-wrap) > main > .page-intro::after{grid-column:1;grid-row:auto}
  .article-intro{display:grid;grid-template-rows:auto auto auto}
  .article-intro > .eyebrow{margin:0}
  .article-intro > h1,.article-intro > .lead{max-width:100%;margin:0}
  .page-intro > div:first-child + .page-intro-copy{padding-top:0}
}
@media(max-width:600px){
  .hero.page-hero,.hero.case-hero,.subpage-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{padding:56px 20px}
  .hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.subpage-hero h1,.news-hero h1,.article-intro h1,.page-intro > div:first-child h1{font-size:clamp(1.65rem,8vw,2.4rem)}
}

/* Final subpage hero override: keep the requested grid after legacy page rules. */
.hero.page-hero,
.hero.case-hero,
.news-hero,
.article-intro,
.page-intro:not(.page-intro--paint),
.page-intro--paint{
  display:grid;
  grid-template-columns:minmax(0,55fr) minmax(0,45fr);
  grid-template-rows:auto auto;
  gap:48px;
  align-items:center;
  padding:clamp(64px,8vw,112px) clamp(24px,7vw,120px);
  min-height:clamp(520px,calc(100vh - 84px),720px);
  background:var(--mint);
}
.hero.page-hero .hero-block,.hero.case-hero .hero-block{display:none}
.hero.page-hero .hero-copy,.hero.case-hero .hero-copy,.news-hero > .hero-copy{
  grid-column:1;grid-row:1 / 3;width:auto;order:initial;margin:0;padding:0;background:none;color:var(--ink);text-shadow:none;position:static;z-index:auto;display:flex;flex-direction:column;align-items:flex-start
}
.hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.news-hero > .subpage-hero-photo,.article-intro > .subpage-hero-photo,.page-intro > .subpage-hero-photo{
  grid-column:2;grid-row:1 / 3;order:initial;width:100%;height:auto;min-height:0;aspect-ratio:4 / 3;margin:0;position:static;inset:auto;opacity:1;align-self:center;border-radius:10px
}
.hero.page-hero .hero-photo img,.hero.case-hero .hero-photo img,.subpage-hero-photo img{aspect-ratio:4 / 3;object-fit:cover}
.hero.page-hero .hero-copy .eyebrow,.hero.case-hero .hero-copy .eyebrow,.news-hero .eyebrow{color:var(--orange)}
.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.page-intro h1,.article-intro h1{max-width:100%;font-size:clamp(1.75rem,3.65vw,4rem);line-height:1.2;margin-bottom:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hero.page-hero .hero-copy h1 em,.hero.case-hero .hero-copy h1 em{color:var(--green)}
.hero.page-hero .hero-copy > p:not(.eyebrow),.hero.case-hero .hero-copy > p:not(.eyebrow),.news-hero > .hero-copy > p:last-child{max-width:680px;color:#716a60;font-size:clamp(.9rem,1.25vw,1.08rem);margin-bottom:32px}
.page-intro > div:first-child{grid-column:1;grid-row:1;align-self:end}
.page-intro > .page-intro-copy{grid-column:1;grid-row:2;align-self:start}
.page-intro > .subpage-hero-photo{grid-row:1 / 3}
.article-intro{grid-template-rows:auto auto auto}
.article-intro > .eyebrow{grid-column:1;grid-row:1;margin:0 0 18px;align-self:end}
.article-intro > h1{grid-column:1;grid-row:2;align-self:start;font-size:clamp(1.5rem,3vw,3.2rem)}
.article-intro > .lead{grid-column:1;grid-row:3;align-self:start;max-height:4.8em;overflow:hidden;margin:0;font-size:clamp(.82rem,1.05vw,.98rem)}
.page-intro--paint::after{display:none!important}
.hero.page-hero .pk-scrim-b::after,.hero.case-hero .pk-scrim-b::after{display:none}
body:has(.form-wrap) > main > .page-intro::after{content:"";grid-column:2;grid-row:1 / 3;width:100%;aspect-ratio:4 / 3;align-self:center;border-radius:10px;background:url('img/orig_21.jpg') center/cover no-repeat;box-shadow:var(--shadow)}
@media(max-width:900px){
  .hero.page-hero,.hero.case-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:32px;min-height:0;padding:64px 32px}
  .hero.page-hero .hero-copy,.hero.case-hero .hero-copy,.news-hero > .hero-copy,.article-intro > .eyebrow,.article-intro > h1,.article-intro > .lead,.page-intro > div:first-child,.page-intro > .page-intro-copy{grid-column:1;grid-row:auto;width:auto;padding:0;margin:0;align-self:auto}
  .hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.news-hero > .subpage-hero-photo,.article-intro > .subpage-hero-photo,.page-intro > .subpage-hero-photo,body:has(.form-wrap) > main > .page-intro::after{grid-column:1;grid-row:auto;width:100%;margin:0;aspect-ratio:4 / 3}
}
@media(max-width:600px){
  .hero.page-hero,.hero.case-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{padding:56px 20px}
  .hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.page-intro h1{font-size:clamp(1.65rem,8vw,2.4rem)}
}
.page-intro{padding:clamp(72px,10vw,136px) clamp(24px,7vw,120px) var(--s6);background:var(--mint);display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:clamp(40px,8vw,120px);align-items:end}.page-intro h1{font-size:clamp(2.2rem,5vw,5rem)}.page-intro-copy{max-width:600px}.page-intro-copy p:not(.eyebrow){font-size:1rem}.voice-list{padding:var(--s7) clamp(24px,7vw,120px);display:grid;gap:1px;background:var(--line)}.voice-card{background:var(--paper);display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--s4);padding:clamp(28px,5vw,64px)}.voice-card:nth-child(even){background:var(--cream)}.voice-index{font:700 2.7rem var(--display);color:var(--orange)}.voice-card h2{font-size:clamp(1.35rem,2.5vw,2.3rem);margin-bottom:var(--s3)}.voice-card blockquote{margin:0;max-width:760px;font-size:.96rem}.voice-card cite{display:block;margin-top:var(--s3);font-style:normal;color:var(--green);font-size:.8rem}.faq-page{padding:var(--s7) clamp(24px,7vw,120px);background:var(--paper)}.faq-category{margin-bottom:var(--s6)}.faq-category:last-child{margin-bottom:0}.faq-category h2{font-size:clamp(1.5rem,3vw,2.4rem);padding-bottom:var(--s3);border-bottom:2px solid var(--ink)}.faq-list{display:grid;gap:10px;margin-top:var(--s3)}.faq-list details{background:var(--cream);padding:20px 24px}.faq-list summary{cursor:pointer;font-weight:700;list-style:none;padding-right:28px;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';position:absolute;right:0;top:-3px;color:var(--orange);font:1.5rem var(--display)}.faq-list details[open] summary::after{content:'−'}.company-intro{background:var(--green);color:var(--white)}.company-intro .eyebrow{color:#e8cdae}.company-profile{display:grid;grid-template-columns:1fr 1fr;background:var(--cream)}.company-profile .split-copy{padding-top:var(--s7);padding-bottom:var(--s7)}.company-details{padding:clamp(56px,8vw,120px) clamp(28px,7vw,120px);background:var(--paper)}.company-details h2{font-size:clamp(1.7rem,3vw,3rem);margin-bottom:var(--s4)}.company-table{width:100%;border-collapse:collapse}.company-table th,.company-table td{text-align:left;padding:16px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:.9rem}.company-table th{width:32%;color:var(--green);font-weight:700}.company-steps{padding:var(--s7) clamp(24px,7vw,120px);background:var(--mint)}.company-steps h2{margin-bottom:var(--s5)}.company-steps .steps{max-width:800px}.company-steps .steps li{background:var(--white)}
@media(max-width:900px){.page-intro{grid-template-columns:1fr}.voice-card{grid-template-columns:80px 1fr}.company-profile{grid-template-columns:1fr}}
@media(max-width:600px){.page-intro{padding:64px 20px 48px}.voice-list,.faq-page,.company-steps{padding:64px 20px}.voice-card{grid-template-columns:1fr;gap:10px;padding:28px 20px}.voice-index{font-size:2rem}.company-details{padding:64px 20px}.company-table th,.company-table td{display:block;width:100%;padding:10px 0}.company-table th{border:0;padding-bottom:0}}

/* FAQ answers must remain visible when a details block is opened. */
.faq details[open] > p.mk-fade-up{opacity:1;transform:none;color:var(--ink)}
.case-hero .hero-block{background:var(--deep)}.case-hero .hero-copy{color:var(--white)}.case-detail{padding:var(--s7) clamp(24px,7vw,120px);background:var(--paper)}.case-detail .section-intro{margin-bottom:var(--s5)}.case-detail .section-intro p:last-child{max-width:520px;margin-top:var(--s3);font-size:.92rem}.case-detail .price-table{max-width:760px}.case-cards{max-width:1000px}.case-cards .service-card h3{margin-bottom:var(--s3)}.case-phone{display:block;margin-top:var(--s3);font:700 1.1rem var(--display)}
.article-intro{padding:clamp(64px,9vw,120px) clamp(24px,10vw,160px);background:var(--mint)}
.article-intro h1{max-width:1060px;font-size:clamp(2.2rem,5vw,5rem);margin-bottom:var(--s4)}
.article-intro .lead{max-width:850px;font-size:clamp(1rem,1.7vw,1.25rem);font-weight:500}
.article-body{padding:var(--s7) clamp(24px,7vw,120px)}
.article-body>h2{max-width:680px;margin-bottom:var(--s5)}
.article-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-bottom:var(--s7)}
.article-card{background:var(--paper);padding:var(--s5) clamp(22px,3vw,42px);min-height:260px}
.article-card h3{margin:var(--s2) 0 var(--s3)}
.article-card p{font-size:.9rem}
.article-card strong{color:var(--orange)}
.article-table{margin:var(--s5) 0 var(--s7)}
.article-nav{display:flex;justify-content:space-between;gap:20px;padding:var(--s5) 0;border-top:1px solid var(--line);font-weight:700;font-size:.85rem}
.article-nav a:last-child{text-align:right}
.article-contact{margin-top:var(--s7)}
@media(max-width:900px){.article-cards{grid-template-columns:1fr}.article-intro{padding:64px 32px}}
@media(max-width:600px){.article-intro{padding:56px 20px}.article-intro h1{font-size:2.25rem}.article-body{padding:64px 20px}.article-table{overflow-x:auto}.article-table .price-table{min-width:620px}.article-nav{font-size:.75rem}}
.page-intro{padding:clamp(72px,10vw,132px) clamp(24px,7vw,120px) var(--s6);background:var(--mint)}
.page-intro h1{max-width:900px;font-size:clamp(2.5rem,6vw,5.3rem)}
.page-intro p{max-width:680px;margin-top:var(--s4);font-size:1.05rem}
.content-section{padding:var(--s7) clamp(24px,7vw,120px)}
.content-section--cream{background:var(--cream)}
.content-section>h2{margin-bottom:var(--s5)}
.content-section>h2+p{max-width:720px;margin-bottom:var(--s5)}
.card-list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.info-card{background:var(--white);padding:var(--s4);border-top:3px solid var(--orange)}
.card-label{font-size:clamp(1.15rem,2vw,1.5rem);font-weight:700;line-height:1.22;color:var(--green);margin-bottom:var(--s2)}
.info-card p{font-size:.9rem;color:#716a60}
.area-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);margin-top:var(--s5)}
.area-card{background:var(--paper);padding:var(--s4)}
.area-card .card-label{font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.22;margin-bottom:var(--s2)}
.area-card p{font-size:.84rem;line-height:1.9}
.form-wrap{max-width:880px;margin:0 auto}
.form-grid{display:grid;gap:var(--s3)}
.form-field{display:grid;gap:8px}
.form-field label{font-weight:700}
.required{color:var(--orange);font-size:.72rem;margin-left:8px}
.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line);background:var(--white);padding:15px;font:inherit;color:var(--ink)}
.form-field textarea{min-height:180px;resize:vertical}
.form-submit{margin-top:var(--s2);border:0;cursor:pointer}
.symptom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.symptom-card{background:var(--white);padding:var(--s3);border-top:1px solid var(--ink)}
.symptom-card .card-label{font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.22;margin-bottom:8px}
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.brand-card{background:var(--white);padding:var(--s4);min-height:190px}
.brand-card .card-label{font-size:1.4rem;margin-bottom:var(--s3)}
.card-media{display:block;width:calc(100% + 56px);height:auto;aspect-ratio:3 / 2;object-fit:cover;margin:-28px -28px 24px}
.card-media--square{aspect-ratio:1 / 1}
.info-card,.brand-card,.symptom-card{overflow:hidden}
.info-card .card-label,.brand-card .card-label,.symptom-card .card-label{margin-top:0}
.faq{max-width:900px;margin:0 auto}
@media(max-width:900px){.card-list,.symptom-grid,.brand-grid{grid-template-columns:1fr}.area-grid{grid-template-columns:1fr}}
.heading-line{display:block;white-space:nowrap}h1,h2{ text-wrap:balance }

/* Final integration: keep Japanese compound words intact and use the same
   photographic card language on service/case catalogues. */
h1,h2{word-break:normal;overflow-wrap:normal;line-break:strict}
h1 .heading-line,h2 .heading-line{display:block;white-space:nowrap}
.photo-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.photo-card{position:relative;min-height:260px;overflow:hidden;border-radius:10px;background:var(--deep);color:var(--white);box-shadow:var(--shadow);isolation:isolate}
.photo-card .photo-card-image{position:absolute;inset:0;margin:0;z-index:0}
.photo-card .photo-card-image img{transition:transform .4s ease-out}
.photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#3f2d1fe8 0%,#3f2d1f20 58%,transparent 100%);z-index:1;pointer-events:none}
.photo-card > :not(.photo-card-image){position:relative;z-index:2}
.photo-card .service-no{position:absolute;top:18px;left:20px;color:#e8cdae}
.photo-card .card-label,.photo-card h3{position:absolute;left:20px;right:20px;bottom:52px;margin:0;color:var(--white);font-size:clamp(1.2rem,2vw,1.7rem)}
.photo-card > p:last-child{position:absolute;left:20px;right:20px;bottom:18px;margin:0;color:#f1e8dc;font-size:.78rem;line-height:1.5}
.photo-card:hover .photo-card-image img{transform:scale(1.04)}
.page-intro--paint{position:relative;isolation:isolate;min-height:360px;overflow:hidden}
.page-intro--paint::after{content:"";position:absolute;z-index:-1;right:clamp(24px,7vw,120px);top:48px;bottom:48px;width:min(38vw,520px);background:linear-gradient(0deg,#3f2d1fcc,#3f2d1f18),url('img/orig_08.jpg') center/cover;border-radius:10px;box-shadow:var(--shadow);transform:translate(8%,8%)}
.page-intro--paint h1,.page-intro--paint>p{position:relative;z-index:1}
.page-intro--paint>p{max-width:520px}
@media(max-width:900px){.photo-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-intro--paint::after{right:20px;width:48vw;opacity:.38}}
@media(max-width:600px){.photo-card-grid{grid-template-columns:1fr}.photo-card{min-height:220px}.page-intro--paint{min-height:420px}.page-intro--paint::after{inset:120px 20px 24px;width:auto;transform:none;opacity:.32}.page-intro--paint>p{color:var(--ink)}}

/* Homepage hero composition: keep the photo inside the viewport and overlap the block. */
.hero:not(.page-hero):not(.case-hero) .hero-block{font-weight:700}
.hero:not(.page-hero):not(.case-hero) .hero-block span:nth-child(2){margin-left:0}
.hero:not(.page-hero):not(.case-hero) .hero-block{z-index:3}
.hero:not(.page-hero):not(.case-hero) .hero-copy>p:not(.eyebrow){text-shadow:0 1px 12px rgba(0,0,0,.35)}
@media(min-width:901px){.hero:not(.page-hero):not(.case-hero):not(.home-hero) .hero-photo{grid-column:1 / -1;position:absolute;left:calc(28% - 120px);right:64px;width:auto}}

/* Subpage hero readability: keep photography below/right of the copy.
   The homepage .hero intentionally keeps its original composition. */
.hero.page-hero .hero-photo,
.hero.case-hero .hero-photo{
  align-self:end;
  margin-bottom:clamp(32px,6vw,72px);
}

.page-intro--paint{
  padding-right:clamp(24px,42vw,600px);
}
.page-intro--paint::after{
  z-index:0;
  transform:translate(4%,8%);
}
.page-intro--paint h1,
.page-intro--paint>p{
  z-index:1;
}

@media(max-width:900px){
  /* Do not layer the subpage photo beneath readable copy at tablet/mobile sizes. */
  .hero.page-hero,
  .hero.case-hero{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    min-height:0;
    overflow:hidden;
  }
  .hero.page-hero .hero-copy,
  .hero.case-hero .hero-copy{
    order:1;
    width:100%;
    margin:0;
    padding:clamp(120px,18vw,160px) clamp(24px,7vw,72px) 48px;
    background:var(--deep);
    color:var(--white);
    text-shadow:none;
  }
  .hero.page-hero .hero-photo,
  .hero.case-hero .hero-photo{
    order:2;
    position:relative;
    inset:auto;
    width:calc(100% - 22%);
    height:clamp(280px,42vw,420px);
    margin:0 0 32px 22%;
    opacity:1;
  }
  .hero.page-hero .hero-block,
  .hero.case-hero .hero-block{
    z-index:2;
  }
  .page-intro--paint{
    padding-right:clamp(24px,7vw,72px);
    padding-bottom:clamp(300px,38vw,420px);
  }
  .page-intro--paint::after{
    top:auto;
    right:20px;
    bottom:32px;
    left:20px;
    width:auto;
    height:clamp(220px,32vw,320px);
    transform:translate(4%,8%);
  }
}

@media(max-width:600px){
  .hero.page-hero .hero-copy,
  .hero.case-hero .hero-copy{
    padding:105px 20px 40px 23%;
  }
  .hero.page-hero .hero-photo,
  .hero.case-hero .hero-photo{
    width:88%;
    height:280px;
    margin-left:12%;
  }
  .page-intro--paint{
    padding-right:20px;
    padding-bottom:292px;
  }
  .page-intro--paint::after{
    right:20px;
    bottom:24px;
    left:20px;
    height:220px;
    transform:none;
    opacity:.38;
  }
}

/* Final subpage hero override: keep the requested grid after legacy page rules. */
.hero.page-hero,.hero.case-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);grid-template-rows:auto auto;gap:48px;align-items:center;padding:clamp(64px,8vw,112px) clamp(24px,7vw,120px);min-height:clamp(520px,calc(100vh - 84px),720px);background:var(--mint)}
.hero.page-hero .hero-block,.hero.case-hero .hero-block{display:none}
.hero.page-hero .hero-copy,.hero.case-hero .hero-copy,.news-hero>.hero-copy{grid-column:1;grid-row:1 / 3;width:auto;order:initial;margin:0;padding:0;background:none;color:var(--ink);text-shadow:none;position:static;z-index:auto;display:flex;flex-direction:column;align-items:flex-start}
.hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.news-hero>.subpage-hero-photo,.article-intro>.subpage-hero-photo,.page-intro>.subpage-hero-photo{grid-column:2;grid-row:1 / 3;order:initial;width:100%;height:auto;min-height:0;aspect-ratio:4 / 3;margin:0;position:static;inset:auto;opacity:1;align-self:center;border-radius:10px}
.hero.page-hero .hero-photo img,.hero.case-hero .hero-photo img,.subpage-hero-photo img{aspect-ratio:4 / 3;object-fit:cover}
.hero.page-hero .hero-copy .eyebrow,.hero.case-hero .hero-copy .eyebrow,.news-hero .eyebrow{color:var(--orange)}
.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.page-intro h1,.article-intro h1{max-width:100%;font-size:clamp(1.75rem,3.65vw,4rem);line-height:1.2;margin-bottom:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hero.page-hero .hero-copy h1 em,.hero.case-hero .hero-copy h1 em{color:var(--green)}
.hero.page-hero .hero-copy>p:not(.eyebrow),.hero.case-hero .hero-copy>p:not(.eyebrow),.news-hero>.hero-copy>p:last-child{max-width:680px;color:#716a60;font-size:clamp(.9rem,1.25vw,1.08rem);margin-bottom:32px}
.page-intro>div:first-child{grid-column:1;grid-row:1;align-self:end}.page-intro>.page-intro-copy{grid-column:1;grid-row:2;align-self:start}.page-intro>.subpage-hero-photo{grid-row:1 / 3}
.article-intro{grid-template-rows:auto auto auto}.article-intro>.eyebrow{grid-column:1;grid-row:1;margin:0 0 18px;align-self:end}.article-intro>h1{grid-column:1;grid-row:2;align-self:start;font-size:clamp(1.5rem,3vw,3.2rem)}.article-intro>.lead{grid-column:1;grid-row:3;align-self:start;max-height:4.8em;overflow:hidden;margin:0;font-size:clamp(.82rem,1.05vw,.98rem)}
.page-intro--paint::after{display:none!important}.hero.page-hero .pk-scrim-b::after,.hero.case-hero .pk-scrim-b::after{display:none}body:has(.form-wrap)>main>.page-intro::after{content:"";grid-column:2;grid-row:1 / 3;width:100%;aspect-ratio:4 / 3;align-self:center;border-radius:10px;background:url('img/orig_21.jpg') center/cover no-repeat;box-shadow:var(--shadow)}
@media(max-width:900px){.hero.page-hero,.hero.case-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:32px;min-height:0;padding:64px 32px}.hero.page-hero .hero-copy,.hero.case-hero .hero-copy,.news-hero>.hero-copy,.article-intro>.eyebrow,.article-intro>h1,.article-intro>.lead,.page-intro>div:first-child,.page-intro>.page-intro-copy{grid-column:1;grid-row:auto;width:auto;padding:0;margin:0;align-self:auto}.hero.page-hero .hero-photo,.hero.case-hero .hero-photo,.news-hero>.subpage-hero-photo,.article-intro>.subpage-hero-photo,.page-intro>.subpage-hero-photo,body:has(.form-wrap)>main>.page-intro::after{grid-column:1;grid-row:auto;width:100%;margin:0;aspect-ratio:4 / 3}}
@media(max-width:600px){.hero.page-hero,.hero.case-hero,.news-hero,.article-intro,.page-intro:not(.page-intro--paint),.page-intro--paint{padding:56px 20px}.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.page-intro h1{font-size:clamp(1.65rem,8vw,2.4rem)}}

/* Photo-first refinement: enlarge the image surfaces while preserving the
   existing copy, navigation, image utilities, and motion classes. */
@media(min-width:901px){
  body:has(.home-hero) .home-hero{height:660px;min-height:660px}
  body:has(.home-hero) .home-hero .hero-photo{height:660px}
  body:has(.home-hero) .service-image{aspect-ratio:1.1}
  body:has(.home-hero) .split-section:not(.manifesto){grid-template-columns:minmax(0,58fr) minmax(0,42fr)}
  body:has(.home-hero) .manifesto{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}

  .hero.page-hero,.hero.case-hero,.news-hero,.article-intro,
  .page-intro:not(.page-intro--paint),.page-intro--paint{
    grid-template-columns:minmax(0,50fr) minmax(0,50fr);
  }
  .hero.page-hero .hero-photo,.hero.case-hero .hero-photo,
  .subpage-hero > .subpage-hero-photo,.news-hero > .subpage-hero-photo,
  .article-intro > .subpage-hero-photo,.page-intro > .subpage-hero-photo,
  body:has(.form-wrap)>main>.page-intro::after{
    aspect-ratio:5 / 4;
  }

  .photo-card-grid,.case-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-card{min-height:clamp(320px,28vw,420px)}
  .case-cards .service-image{aspect-ratio:1.1}
}

/* The company promise is the region-rooted image section. */
@media(min-width:901px){
  body:has(.company-intro) .split-section:nth-of-type(4){grid-template-columns:minmax(0,55fr) minmax(0,45fr)}
}

.photo-band{
  position:relative;
  isolation:isolate;
  height:clamp(420px,32vw,480px);
  overflow:hidden;
  background:var(--deep);
}
.photo-band > img{position:absolute;inset:0;z-index:0;object-fit:cover}
.photo-band.pk-scrim-b::after{z-index:1;background:linear-gradient(0deg,#3f2d1fcc 0%,#3f2d1f25 60%,transparent 100%)}
.photo-band-copy{
  position:absolute;
  z-index:2;
  left:clamp(24px,7vw,120px);
  right:clamp(24px,7vw,120px);
  bottom:clamp(28px,5vw,72px);
  color:var(--white);
  font-size:clamp(1.2rem,2.2vw,2rem);
  font-weight:700;
  letter-spacing:.04em;
  text-shadow:0 2px 16px rgb(0 0 0 / .42);
}

@media(max-width:900px){
  .photo-band{height:clamp(300px,65vw,420px)}
  .photo-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .case-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
  .photo-card-grid,.case-cards{grid-template-columns:1fr}
  .photo-band-copy{left:20px;right:20px;bottom:24px;font-size:1.15rem}
}

/* Home hero: fixed reference composition — teal block, 14vw photo bleed and
   the copy layered at the same visual positions as the supplied reference. */
.home-hero{
  min-height:620px;
  height:620px;
  display:block;
  position:relative;
  overflow:hidden;
  background:var(--paper);
}
.home-hero .hero-block{
  top:62px;
  bottom:20px;
  left:0;
  width:33%;
  padding:38px 0 0 5vw;
  background:var(--green);
  z-index:1;
  gap:8px;
  font-size:clamp(3rem,6vw,4.5rem);
  line-height:.99;
  letter-spacing:.02em;
}
.home-hero .hero-block span{position:relative;z-index:3}
.home-hero .hero-block span:nth-child(2){margin-left:0;font-size:.6em;line-height:1.05}
.home-hero .hero-block span:nth-child(3){font-size:1em;line-height:1}
.home-hero .hero-photo{
  position:absolute;
  z-index:2;
  top:0;
  right:0;
  left:14%;
  width:auto;
  height:520px;
  margin:0;
  border-radius:0;
  box-shadow:none;
}
.home-hero .hero-photo img{object-fit:cover}
.home-hero .hero-copy{
  position:absolute;
  z-index:4;
  left:5%;
  top:354px;
  width:min(48vw,480px);
  padding:0;
  color:var(--ink);
  text-shadow:none;
}
.home-hero .hero-copy h1,
.home-hero .mk-hero-heading{
  display:inline-block;
  margin:0;
  padding:9px 16px 12px;
  background:var(--white);
  color:var(--ink);
  font-size:clamp(1.25rem,2.55vw,2rem);
  line-height:1.25;
  white-space:nowrap;
  letter-spacing:.02em;
}
.home-hero .hero-copy .mk-hero-lead{
  margin:12px 0 0;
  color:var(--white);
  font-size:clamp(.78rem,1.2vw,1rem);
  font-weight:700;
  line-height:1.5;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}
.home-hero .hero-note{
  right:5%;
  bottom:18px;
  z-index:4;
  border-left:0;
  padding:0;
  color:var(--ink);
  text-align:right;
  font-size:.7rem;
  line-height:1.4;
}
.home-hero .hero-note b{font-size:.95rem}

@media(max-width:900px){
  .home-hero{
    height:auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--paper);
  }
  .home-hero .hero-block{
    position:relative;
    inset:auto;
    width:100%;
    min-height:245px;
    padding:34px 0 28px 8vw;
    order:1;
  }
  .home-hero .hero-photo{
    position:relative;
    inset:auto;
    width:100%;
    height:clamp(280px,58vw,420px);
    order:2;
  }
  .home-hero .hero-copy{
    position:relative;
    inset:auto;
    width:100%;
    padding:24px 20px 28px;
    order:3;
    background:var(--paper);
  }
  .home-hero .hero-copy h1,
  .home-hero .mk-hero-heading{white-space:normal;font-size:clamp(1.25rem,5.8vw,2rem)}
  .home-hero .hero-copy .mk-hero-lead{color:var(--ink);text-shadow:none;margin-top:10px}
  .home-hero .hero-note{position:relative;right:auto;bottom:auto;order:4;padding:0 20px 24px;text-align:right}
}

/* Home hero B: full-bleed photographic composition. */
body:has(.home-hero) .site-header{
  position:absolute;top:0;right:0;left:0;
  background:linear-gradient(to bottom, rgb(0 0 0 / .48), transparent);
  border-bottom:0;color:var(--white);
}
body:has(.home-hero) .site-header .brand-mark{background:var(--white);color:var(--ink)}
body:has(.home-hero) .site-header .global-nav{color:var(--white)}
body:has(.home-hero) .site-header .nav-contact{background:var(--white);color:var(--ink)}
body:has(.home-hero) .site-header .menu-toggle{color:var(--white)}
.home-hero{height:min(85vh,720px);min-height:0;width:100%;display:block;background:var(--ink)}
.home-hero .hero-photo{position:absolute;inset:0;left:0;right:0;grid-column:auto;grid-row:auto;z-index:1;width:100%;height:100%;margin:0;border-radius:0;box-shadow:none}
.home-hero .hero-photo::after{background:linear-gradient(to top,rgb(0 0 0 / .82) 0%,rgb(0 0 0 / .52) 30%,rgb(0 0 0 / .08) 66%,transparent 100%)}
.home-hero .hero-photo img{object-fit:cover}
.home-hero .hero-copy{position:absolute;z-index:3;left:clamp(24px,7vw,120px);bottom:clamp(48px,9vw,112px);width:auto;max-width:calc(100% - 48px);padding:0;color:var(--white);text-shadow:0 2px 18px rgb(0 0 0 / .45)}
.home-hero .hero-copy > *{display:block}
.home-hero .hero-kicker{margin-bottom:14px;color:var(--white);font:700 clamp(.68rem,1vw,.84rem)/1 var(--display);letter-spacing:.2em}
.home-hero .hero-copy h1,.home-hero .mk-hero-heading{margin:0 0 16px;padding:0;background:none;color:var(--white);font-family:serif;font-size:clamp(1.8rem,4.2vw,4.7rem);line-height:1.25;white-space:nowrap;letter-spacing:.04em;text-shadow:0 2px 18px rgb(0 0 0 / .5)}
.home-hero .hero-copy .mk-hero-lead{margin:0 0 24px;color:var(--white);font-size:clamp(.78rem,1.2vw,1rem);line-height:1.5;font-weight:500;text-shadow:0 2px 12px rgb(0 0 0 / .55)}
.home-hero .hero-copy .button{width:max-content;text-shadow:none}
.home-hero .hero-note{right:clamp(24px,7vw,120px);bottom:clamp(28px,5vw,64px);z-index:3;border:0;padding:0;color:var(--white);font:700 clamp(.68rem,1vw,.84rem)/1.4 var(--display);letter-spacing:.12em;text-shadow:0 2px 12px rgb(0 0 0 / .5)}
/* Photo reveals first, then the overlaid copy rises in three beats. */
.mk-home-hero .hero-photo.mk-clip-reveal{animation:mk-home-photo 720ms var(--mk-ease) both}
.mk-home-hero .hero-copy{animation:none}
.mk-home-hero .hero-copy > *{opacity:0;transform:translateY(22px);animation:mk-home-copy 620ms var(--mk-ease) both}
.mk-home-hero .hero-copy > :nth-child(1){animation-delay:520ms}
.mk-home-hero .hero-copy > :nth-child(2){animation-delay:650ms}
.mk-home-hero .hero-copy > :nth-child(3){animation-delay:780ms}
.mk-home-hero .hero-copy > :nth-child(4){animation-delay:910ms}
@media(max-width:600px){
  .home-hero{height:85vh;min-height:560px}
  .home-hero .hero-copy{bottom:72px;left:20px;max-width:calc(100% - 40px)}
  .home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-size:clamp(1.45rem,7vw,2.25rem);white-space:nowrap}
  .home-hero .hero-note{right:20px;bottom:28px;font-size:.65rem}
  body:has(.home-hero) .global-nav{background:var(--ink);color:var(--white)}
}

/* Final cascade: preserve the centered homepage composition after legacy B rules. */
.home-hero .hero-copy{
  left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);
  width:min(92%,1000px);max-width:none;padding:0;align-items:center;text-align:center;
}
.home-hero .hero-kicker{display:none!important}
.home-hero .hero-copy h1,.home-hero .mk-hero-heading{width:100%;font-size:clamp(2rem,4.3vw,4.7rem);white-space:nowrap}
.home-hero .hero-copy .mk-hero-lead{margin-bottom:20px;font-size:.82rem}
.home-hero .hero-copy .button{padding:7px 18px;border:1px solid rgb(255 255 255 / .9);border-radius:999px;background:transparent;color:#fff;font-size:.7rem;font-weight:500;gap:8px}
.home-hero .hero-copy .button span{display:none}
.home-hero .hero-note{right:auto;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;color:#fff;font-size:1.35rem;line-height:1;letter-spacing:0}
.home-hero .hero-note b{font-size:1.35rem;font-weight:400}.home-hero .hero-note span{font:500 .48rem/1 var(--display);letter-spacing:.18em}

/* B-pattern refinement: calm the photographic surfaces and give every
   information block the same quiet, editorial rhythm. */
.home-hero .hero-slide:nth-child(3) img{
  object-position:58% 48%;
  transform:scale(1.28);
}
.home-hero .hero-slide:nth-child(3)::after{
  background:linear-gradient(0deg,rgb(17 29 43 / .78),rgb(17 29 43 / .52) 48%,rgb(17 29 43 / .34));
}

/* Shared display labels and interaction language. */
.eyebrow,
.purpose-heading .eyebrow,
.principles .eyebrow{
  font-size:.68rem;
  letter-spacing:.2em;
  line-height:1.2;
}
.button,
.text-link,
.footer-phone{transition:color 220ms ease,background 220ms ease,border-color 220ms ease,transform 220ms ease}
.button{border:1px solid transparent}
.button:hover,.button:focus-visible{transform:translateY(-3px)}
.button-dark:hover,.button-dark:focus-visible{background:var(--orange);color:#fff}
.button-light:hover,.button-light:focus-visible{background:var(--orange);color:#fff}
.text-link{border-bottom-color:var(--orange)}
.text-link:hover,.text-link:focus-visible{color:var(--orange)}

/* Larger glass cards: fewer, more deliberate surfaces with a shared height. */
body:has(.home-hero) #services .service-grid{align-self:center;gap:18px}
body:has(.home-hero) #services .service-card{
  min-height:250px;
  padding:32px 30px 28px;
  justify-content:flex-start;
}
body:has(.home-hero) #services .service-card::before{margin-bottom:24px}
body:has(.home-hero) #services .service-card .card-label{margin-bottom:14px}
body:has(.home-hero) #services .service-card>p:not(.card-label){
  max-width:32em;
  line-height:1.9;
}
body:has(.home-hero) #services .service-card .arrow{right:30px;bottom:24px}

/* Restore ink contrast on the pride statement, including inherited links. */
.manifesto .split-copy,
.manifesto .split-copy h2,
.manifesto .split-copy .lead,
.manifesto .split-copy>p:not(.eyebrow):not(.lead){color:var(--ink)}
.manifesto .split-copy h2{font-weight:500;text-shadow:none}

/* The contact hand-off should read as a composed final section, not a loose
   utility strip. */
.contact-band{background:var(--cream);align-items:stretch}
.contact-copy{padding-top:clamp(80px,9vw,128px);padding-bottom:clamp(80px,9vw,128px)}
.contact-copy .eyebrow{margin-bottom:28px}
.contact-copy h2{margin-bottom:28px}
.contact-photo{min-height:clamp(360px,34vw,520px);border-radius:0}

/* Propagate the same card breathing room and heading contrast to inner pages. */
.service-card,.info-card,.area-card,.brand-card,.symptom-card,.principle,.voice-card{
  padding-top:28px;
  padding-bottom:28px;
}
.service-card .card-label,.info-card .card-label,.area-card .card-label,
.brand-card .card-label,.symptom-card .card-label{color:var(--ink)}
.principle .card-label{color:var(--white)}
.page-intro h1,.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,
.news-hero h1,.article-intro h1{color:#fff}

@media(max-width:900px){
  body:has(.home-hero) #services .service-card{min-height:230px;padding:28px 24px}
  .contact-photo{min-height:300px}
}
.home-hero .hero-photo::after{background:linear-gradient(0deg,rgb(29 45 68 / .62),rgb(29 45 68 / .12) 62%,rgb(29 45 68 / .18))}
.stats-band{background:var(--deep);color:#fff;border-color:rgb(255 255 255 / .2)}.stat{border-color:rgb(255 255 255 / .28)}.stat-value,.stat-label{color:rgb(255 255 255 / .72)}
.purpose-section{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.5fr);gap:clamp(48px,10vw,150px);padding-top:clamp(88px,10vw,140px);padding-bottom:clamp(88px,10vw,140px);background:#fff;text-align:left}
.purpose-heading{align-self:start}.purpose-heading .eyebrow{margin-bottom:28px}.purpose-section .quiet-manifesto-copy{font-size:clamp(1.8rem,3.4vw,3.5rem);line-height:1.45;letter-spacing:.06em}.purpose-section .quiet-manifesto-note{margin-top:28px;font-size:.72rem;text-align:left;color:#718096;letter-spacing:.06em}.purpose-body{max-width:660px;padding-top:28px;color:#405065;font-size:.9rem;line-height:2.05}.purpose-body p{margin:0 0 22px}.purpose-body .purpose-lead{font-size:1.04rem;font-weight:500;color:var(--ink)}.purpose-body .text-link{margin-top:8px;color:var(--ink)}
body:has(.home-hero) #services{position:relative;isolation:isolate;grid-template-columns:minmax(220px,.72fr) minmax(0,1.7fr);gap:clamp(36px,7vw,110px);padding-top:clamp(88px,10vw,140px);padding-bottom:clamp(88px,10vw,140px);background:var(--deep) url('img/orig_23.jpg') center/cover no-repeat;color:#fff}
body:has(.home-hero) #services::before{content:"";position:absolute;inset:0;background:rgb(29 45 68 / .72);z-index:-1}body:has(.home-hero) #services .section-intro{position:relative;z-index:1}body:has(.home-hero) #services .section-intro h2{font-size:clamp(1.8rem,3.6vw,3.7rem)}body:has(.home-hero) #services .section-intro p:last-child{color:rgb(255 255 255 / .74)}body:has(.home-hero) #services .eyebrow{color:#e1bd74}
body:has(.home-hero) #services .service-grid{position:relative;z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}body:has(.home-hero) #services .service-card{min-height:218px;padding:24px;border:1px solid rgb(255 255 255 / .72);border-radius:4px;background:rgb(29 45 68 / .38);color:#fff;display:flex;flex-direction:column}body:has(.home-hero) #services .service-card::before{content:"⌁";font-size:1.4rem;line-height:1;color:#fff;margin-bottom:18px}body:has(.home-hero) #services .service-card:nth-child(2)::before{content:"✧"}body:has(.home-hero) #services .service-card:nth-child(3)::before{content:"▦"}body:has(.home-hero) #services .service-image{display:none}body:has(.home-hero) #services .service-no{display:none}body:has(.home-hero) #services .service-card .card-label{font-size:1rem;color:#fff;margin:0 0 10px;font-weight:500}body:has(.home-hero) #services .service-card>p:not(.card-label){color:rgb(255 255 255 / .76);font-size:.74rem;line-height:1.7;margin:0;max-width:28em}body:has(.home-hero) #services .service-card .arrow{right:20px;bottom:16px;color:#fff;font-size:1.05rem}
.page-intro,.hero.page-hero,.hero.case-hero,.news-hero,.article-intro{background:var(--deep);color:#fff}.page-intro .eyebrow,.hero.page-hero .eyebrow,.hero.case-hero .eyebrow,.news-hero .eyebrow,.article-intro .eyebrow{color:#e1bd74}.page-intro p,.news-hero>p:last-child,.article-intro .lead,.hero.page-hero .hero-copy>p:not(.eyebrow),.hero.case-hero .hero-copy>p:not(.eyebrow){color:rgb(255 255 255 / .72)}.content-section,.info-section,.faq-page,.company-details,.case-detail,.article-body{background:#fff}.split-section--cream,.news-section{background:#f7f8f9}.split-copy{color:var(--ink)}.split-copy .lead{color:var(--ink)}.principles{background:var(--deep)}
@media(max-width:900px){.purpose-section{grid-template-columns:1fr;gap:28px}.purpose-body{padding-top:0}body:has(.home-hero) #services{grid-template-columns:1fr}}
@media(max-width:600px){.home-hero .hero-copy{top:48%;width:calc(100% - 32px);left:50%;bottom:auto}.home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-size:clamp(1.3rem,6.8vw,2.2rem)}.home-hero .hero-copy .mk-hero-lead{font-size:.72rem}.purpose-section{padding-inline:20px}body:has(.home-hero) #services .service-grid{grid-template-columns:1fr}}

/* Mobile reading-size floor: keep long-form copy legible at 390px and below.
   Decorative labels remain independent so they can stay compact. */
@media(max-width:600px){
  html body .eyebrow,
  html body .hero-kicker,
  html body .stat-label,
  html body .archive-count,
  html body .purpose-heading .eyebrow.eyebrow,
  html body .principles .eyebrow.eyebrow{
    font-size:.6875rem !important;
    line-height:1.3;
  }

  p:not(.eyebrow):not(.card-label):not(.hero-kicker):not(.quiet-manifesto-copy):not(.quiet-manifesto-note):not(.photo-band-copy):not(.lead),
  .lead,
  li,
  dd,
  summary,
  p small,
  .news-item,
  .photo-card > p:last-child,
  .home-hero .hero-copy .mk-hero-lead,
  body:has(.home-hero) #services .service-card > p:not(.card-label){
    font-size:.8125rem !important;
    line-height:1.8;
  }
}


/* Last cascade: B-pattern refinement. */
.home-hero .hero-slide:nth-child(3) img{object-position:58% 48%;transform:scale(1.28)}
.home-hero .hero-slide:nth-child(3)::after{background:linear-gradient(0deg,rgb(17 29 43 / .78),rgb(17 29 43 / .52) 48%,rgb(17 29 43 / .34))}
.eyebrow,.purpose-heading .eyebrow,.principles .eyebrow{font-size:.68rem;letter-spacing:.2em;line-height:1.2}
.button,.text-link,.footer-phone{transition:color 220ms ease,background 220ms ease,border-color 220ms ease,transform 220ms ease}
.button{border:1px solid transparent}.button:hover,.button:focus-visible{transform:translateY(-3px)}
.button-dark:hover,.button-dark:focus-visible{background:var(--orange);color:#fff}.button-light:hover,.button-light:focus-visible{background:var(--orange);color:#fff}
.text-link{border-bottom-color:var(--orange)}.text-link:hover,.text-link:focus-visible{color:var(--orange)}
body:has(.home-hero) #services .service-grid{align-self:center;gap:18px}
body:has(.home-hero) #services .service-card{min-height:250px;padding:32px 30px 28px;justify-content:flex-start}
body:has(.home-hero) #services .service-card::before{margin-bottom:24px}
body:has(.home-hero) #services .service-card .card-label{margin-bottom:14px}
body:has(.home-hero) #services .service-card>p:not(.card-label){max-width:32em;line-height:1.9}
body:has(.home-hero) #services .service-card .arrow{right:30px;bottom:24px}
.manifesto .split-copy,.manifesto .split-copy h2,.manifesto .split-copy .lead,.manifesto .split-copy>p:not(.eyebrow):not(.lead){color:var(--ink)}.manifesto .split-copy h2{font-weight:500;text-shadow:none}
.contact-band{background:var(--cream);align-items:stretch}.contact-copy{padding-top:clamp(80px,9vw,128px);padding-bottom:clamp(80px,9vw,128px)}.contact-copy .eyebrow{margin-bottom:28px}.contact-copy h2{margin-bottom:28px}.contact-photo{min-height:clamp(360px,34vw,520px);border-radius:0}
.service-card,.info-card,.area-card,.brand-card,.symptom-card,.principle,.voice-card{padding-top:28px;padding-bottom:28px}
.service-card .card-label,.info-card .card-label,.area-card .card-label,.brand-card .card-label,.symptom-card .card-label{color:var(--ink)}.principle .card-label{color:var(--white)}
.page-intro h1,.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.article-intro h1{color:#fff}
@media(max-width:900px){body:has(.home-hero) #services .service-card{min-height:230px;padding:28px 24px}.contact-photo{min-height:300px}}

/* Final cascade for the B-pattern refinement. */
.home-hero .hero-slide:nth-child(3) img{object-position:58% 48%;transform:scale(1.28)}
.home-hero .hero-slide:nth-child(3)::after{background:linear-gradient(0deg,rgb(17 29 43 / .78),rgb(17 29 43 / .52) 48%,rgb(17 29 43 / .34))}
.eyebrow,.purpose-heading .eyebrow,.principles .eyebrow{font-size:.68rem;letter-spacing:.2em;line-height:1.2}
.button,.text-link,.footer-phone{transition:color 220ms ease,background 220ms ease,border-color 220ms ease,transform 220ms ease}
.button{border:1px solid transparent}.button:hover,.button:focus-visible{transform:translateY(-3px)}
.button-dark:hover,.button-dark:focus-visible{background:var(--orange);color:#fff}.button-light:hover,.button-light:focus-visible{background:var(--orange);color:#fff}
.text-link{border-bottom-color:var(--orange)}.text-link:hover,.text-link:focus-visible{color:var(--orange)}
body:has(.home-hero) #services .service-grid{align-self:center;gap:18px}
body:has(.home-hero) #services .service-card{min-height:250px;padding:32px 30px 28px;justify-content:flex-start}
body:has(.home-hero) #services .service-card::before{margin-bottom:24px}
body:has(.home-hero) #services .service-card .card-label{margin-bottom:14px}
body:has(.home-hero) #services .service-card>p:not(.card-label){max-width:32em;line-height:1.9}
body:has(.home-hero) #services .service-card .arrow{right:30px;bottom:24px}
.manifesto .split-copy,.manifesto .split-copy h2,.manifesto .split-copy .lead,.manifesto .split-copy>p:not(.eyebrow):not(.lead){color:var(--ink)}.manifesto .split-copy h2{font-weight:500;text-shadow:none}
.contact-band{background:var(--cream);align-items:stretch}.contact-copy{padding-top:clamp(80px,9vw,128px);padding-bottom:clamp(80px,9vw,128px)}.contact-copy .eyebrow{margin-bottom:28px}.contact-copy h2{margin-bottom:28px}.contact-photo{min-height:clamp(360px,34vw,520px);border-radius:0}
.service-card,.info-card,.area-card,.brand-card,.symptom-card,.principle,.voice-card{padding-top:28px;padding-bottom:28px}
.service-card .card-label,.info-card .card-label,.area-card .card-label,.brand-card .card-label,.symptom-card .card-label{color:var(--ink)}.principle .card-label{color:var(--white)}
.page-intro h1,.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.article-intro h1{color:#fff}
@media(max-width:900px){body:has(.home-hero) #services .service-card{min-height:230px;padding:28px 24px}.contact-photo{min-height:300px}}

/* Final B-pattern polish */
.home-hero .hero-slide:nth-child(3) img{object-position:58% 48%;transform:scale(1.28)}
.home-hero .hero-slide:nth-child(3)::after{background:linear-gradient(0deg,rgb(17 29 43 / .78),rgb(17 29 43 / .52) 48%,rgb(17 29 43 / .34))}
.eyebrow,.purpose-heading .eyebrow,.principles .eyebrow{font-size:.68rem;letter-spacing:.2em;line-height:1.2}
.button,.text-link,.footer-phone{transition:color 220ms ease,background 220ms ease,border-color 220ms ease,transform 220ms ease}
.button{border:1px solid transparent}
.button:hover,.button:focus-visible{transform:translateY(-3px)}
.button-dark:hover,.button-dark:focus-visible{background:var(--orange);color:#fff}
.button-light:hover,.button-light:focus-visible{background:var(--orange);color:#fff}
.text-link{border-bottom-color:var(--orange)}
.text-link:hover,.text-link:focus-visible{color:var(--orange)}
body:has(.home-hero) #services .service-grid{align-self:center;gap:18px}
body:has(.home-hero) #services .service-card{min-height:250px;padding:32px 30px 28px;justify-content:flex-start}
body:has(.home-hero) #services .service-card::before{margin-bottom:24px}
body:has(.home-hero) #services .service-card .card-label{margin-bottom:14px}
body:has(.home-hero) #services .service-card>p:not(.card-label){max-width:32em;line-height:1.9}
body:has(.home-hero) #services .service-card .arrow{right:30px;bottom:24px}
.manifesto .split-copy,.manifesto .split-copy h2,.manifesto .split-copy .lead,.manifesto .split-copy>p:not(.eyebrow):not(.lead){color:var(--ink)}
.manifesto .split-copy h2{font-weight:500;text-shadow:none}
.contact-band{background:var(--cream);align-items:stretch}
.contact-copy{padding-top:clamp(80px,9vw,128px);padding-bottom:clamp(80px,9vw,128px)}
.contact-copy .eyebrow{margin-bottom:28px}.contact-copy h2{margin-bottom:28px}
.contact-photo{min-height:clamp(360px,34vw,520px);border-radius:0}
.service-card,.info-card,.area-card,.brand-card,.symptom-card,.principle,.voice-card{padding-top:28px;padding-bottom:28px}
.service-card .card-label,.info-card .card-label,.area-card .card-label,.brand-card .card-label,.symptom-card .card-label{color:var(--ink)}
.principle .card-label{color:var(--white)}
.page-intro h1,.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,.news-hero h1,.article-intro h1{color:#fff}
@media(max-width:900px){body:has(.home-hero) #services .service-card{min-height:230px;padding:28px 24px}.contact-photo{min-height:300px}}

/* Art direction pass: quiet navy / white / restrained amber. */
:root{
  --ink:#1d2d44;
  --deep:#1d2d44;
  --green:#1d2d44;
  --mint:#f7f8f9;
  --paper:#fff;
  --cream:#f7f8f9;
  --orange:#b5852e;
  --line:#d7dde4;
  --white:#fff;
  --shadow:0 16px 40px rgb(29 45 68 / .12);
}

/* Homepage hero: full-bleed photograph with centered editorial copy. */
.home-hero .hero-copy{
  left:50%;
  bottom:auto;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(92%,1000px);
  max-width:none;
  padding:0;
  display:flex;
  align-items:center;
  text-align:center;
}
.home-hero .hero-copy h1,
.home-hero .mk-hero-heading{
  width:100%;
  font-size:clamp(2rem,4.3vw,4.7rem);
  white-space:nowrap;
  letter-spacing:.045em;
}
.home-hero .hero-kicker{display:none!important}
.home-hero .hero-copy .mk-hero-lead{margin-bottom:20px;font-size:.82rem}
.home-hero .hero-copy .button{
  padding:7px 18px;
  border:1px solid rgb(255 255 255 / .9);
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:.7rem;
  font-weight:500;
  gap:8px;
}
.home-hero .hero-copy .button span{display:none}
.home-hero .hero-note{
  right:auto;
  left:50%;
  bottom:20px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  color:#fff;
  font-size:1.35rem;
  line-height:1;
  letter-spacing:0;
}
.home-hero .hero-note b{font-size:1.35rem;font-weight:400}
.home-hero .hero-note span{font:500 .48rem/1 var(--display);letter-spacing:.18em}
.home-hero .hero-photo::after{background:linear-gradient(0deg,rgb(29 45 68 / .62),rgb(29 45 68 / .12) 62%,rgb(29 45 68 / .18))}

/* Navy number band, with the reference site's quiet metric treatment. */
.stats-band{background:var(--deep);color:#fff;border-color:rgb(255 255 255 / .2)}
.stat{border-color:rgb(255 255 255 / .28)}
.stat-value,
.stat-label{color:rgb(255 255 255 / .72)}

/* Purpose becomes a calm, left-anchored editorial statement. */
.purpose-section{
  display:grid;
  grid-template-columns:minmax(240px,.9fr) minmax(0,1.5fr);
  gap:clamp(48px,10vw,150px);
  padding-top:clamp(88px,10vw,140px);
  padding-bottom:clamp(88px,10vw,140px);
  background:#fff;
  text-align:left;
}
.purpose-heading{align-self:start}
.purpose-heading .eyebrow{margin-bottom:28px}
.purpose-section .quiet-manifesto-copy{font-size:clamp(1.8rem,3.4vw,3.5rem);line-height:1.45;letter-spacing:.06em}
.purpose-section .quiet-manifesto-note{margin-top:28px;font-size:.72rem;text-align:left;color:#718096;letter-spacing:.06em}
.purpose-body{max-width:660px;padding-top:28px;color:#405065;font-size:.9rem;line-height:2.05}
.purpose-body p{margin:0 0 22px}
.purpose-body .purpose-lead{font-size:1.04rem;font-weight:500;color:var(--ink)}
.purpose-body .text-link{margin-top:8px;color:var(--ink)}

/* Services: full-bleed solar photograph with restrained glass cards. */
body:has(.home-hero) #services{
  position:relative;
  isolation:isolate;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.7fr);
  gap:clamp(36px,7vw,110px);
  padding-top:clamp(88px,10vw,140px);
  padding-bottom:clamp(88px,10vw,140px);
  background:var(--deep) url('img/orig_23.jpg') center/cover no-repeat;
  color:#fff;
}
body:has(.home-hero) #services::before{content:"";position:absolute;inset:0;background:rgb(29 45 68 / .72);z-index:-1}
body:has(.home-hero) #services .section-intro{position:relative;z-index:1}
body:has(.home-hero) #services .section-intro h2{font-size:clamp(1.8rem,3.6vw,3.7rem)}
body:has(.home-hero) #services .section-intro p:last-child{color:rgb(255 255 255 / .74)}
body:has(.home-hero) #services .eyebrow{color:#e1bd74}
body:has(.home-hero) #services .service-grid{position:relative;z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body:has(.home-hero) #services .service-card{
  min-height:218px;
  padding:24px;
  border:1px solid rgb(255 255 255 / .72);
  border-radius:4px;
  background:rgb(29 45 68 / .38);
  color:#fff;
  display:flex;
  flex-direction:column;
}
body:has(.home-hero) #services .service-card::before{content:"⌁";font-size:1.4rem;line-height:1;color:#fff;margin-bottom:18px}
body:has(.home-hero) #services .service-card:nth-child(2)::before{content:"✧"}
body:has(.home-hero) #services .service-card:nth-child(3)::before{content:"▦"}
body:has(.home-hero) #services .service-image{display:none}
body:has(.home-hero) #services .service-no{display:none}
body:has(.home-hero) #services .service-card .card-label{font-size:1rem;color:#fff;margin:0 0 10px;font-weight:500}
body:has(.home-hero) #services .service-card>p:not(.card-label){color:rgb(255 255 255 / .76);font-size:.74rem;line-height:1.7;margin:0;max-width:28em}
body:has(.home-hero) #services .service-card .arrow{right:20px;bottom:16px;color:#fff;font-size:1.05rem}

/* Keep the same visual language across all lower pages. */
.page-intro,.hero.page-hero,.hero.case-hero,.news-hero,.article-intro{background:var(--deep);color:#fff}
.page-intro .eyebrow,.hero.page-hero .eyebrow,.hero.case-hero .eyebrow,.news-hero .eyebrow,.article-intro .eyebrow{color:#e1bd74}
.page-intro p,.news-hero>p:last-child,.article-intro .lead,.hero.page-hero .hero-copy>p:not(.eyebrow),.hero.case-hero .hero-copy>p:not(.eyebrow){color:rgb(255 255 255 / .72)}
.content-section,.info-section,.faq-page,.company-details,.case-detail,.article-body{background:#fff}
.split-section--cream,.news-section{background:#f7f8f9}
.split-copy{color:var(--ink)}
.split-copy .lead{color:var(--ink)}
.service-band > .section-intro,
.service-band > .service-grid,
.service-band > .promise-list,
.split-section > .split-copy,
.split-section > .split-image{
  min-width:0;
}

/* Keep editorial heading lines inside their actual column.  Japanese text can
   break naturally; a global nowrap here clipped the first column of the
   battery system chooser (and the same layout on other subpages). */
.service-band .section-intro h2,
.service-band .section-intro h2 .heading-line{
  font-size:clamp(1.75rem,3.2vw,3.5rem);
  line-height:1.35;
  white-space:normal;
  overflow:visible;
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Dark split panels must not inherit the later generic ink text color. */
.split-section--cream,
.split-section--cream .split-copy,
.split-section--cream .split-copy .lead,
.split-section--cream .split-copy > p:not(.eyebrow):not(.lead),
.split-section--cream .mini-points,
.split-section--cream .mini-points li,
.split-section--cream .mini-points strong{
  color:#fafaf8;
}
.split-section--cream .mini-points li{opacity:1;visibility:visible}
.principles{background:var(--deep)}

@media(max-width:900px){
  .purpose-section{grid-template-columns:1fr;gap:28px}
  .purpose-body{padding-top:0}
  body:has(.home-hero) #services{grid-template-columns:1fr}
}
@media(max-width:600px){
  .home-hero .hero-copy{top:48%;width:calc(100% - 32px)}
  .home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-size:clamp(1.3rem,6.8vw,2.2rem)}
  .home-hero .hero-copy .mk-hero-lead{font-size:.72rem}
  .purpose-section{padding-inline:20px}
  body:has(.home-hero) #services .service-grid{grid-template-columns:1fr}
}

/* Last-pass precedence for legacy component rules above. */
:root{--ink:#1c1b19;--deep:#1c1b19;--paper:#fafaf8;--mint:#fafaf8;--cream:#f0f0ec;--orange:#f0a832;--green:#f0a832;--line:#1c1b1930;--sans:'Zen Kaku Gothic New',sans-serif;--display:'DM Sans','Zen Kaku Gothic New',sans-serif;--shadow:none;--radius:0}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);overflow-x:hidden}
h1,h2,h3{font-family:var(--sans);font-weight:900;letter-spacing:-.045em}
.hero,.home-hero{background:var(--deep);color:var(--white)}
.hero-copy h1,.home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-family:var(--sans);font-weight:900;letter-spacing:-.06em;color:var(--white);text-shadow:none}
.home-hero .hero-copy h1 .heading-line{border-bottom:7px solid var(--orange);padding-bottom:8px}
.home-hero .hero-copy .mk-hero-lead{color:#fafaf8cc;text-shadow:none}
.home-hero .hero-kicker{color:var(--orange)}
.hero-block,.mk-home-hero .hero-block{background:var(--orange);color:var(--ink)}
.hero-photo,.home-hero .hero-photo{box-shadow:none;border-radius:0}
.service-band{background:var(--paper)}
.service-card{border-color:var(--ink);box-shadow:none;border-radius:0}
.service-card h3,.service-card>.card-label{font-family:var(--sans);color:var(--ink)}
.split-section--cream,.principles,.site-footer{background:var(--deep);color:var(--white)}
.split-section--cream .split-copy{background:var(--deep)}
.photo-card-grid{background:var(--ink)}
.photo-card{border-radius:0;box-shadow:none}
.page-intro,.page-intro:not(.page-intro--paint),.page-intro--paint,.news-hero,.article-intro{background:var(--deep);color:var(--white)}
.page-intro h1,.news-hero h1,.article-intro h1{font-family:var(--sans);font-weight:900;color:var(--white)}
.page-intro p,.news-hero>p:last-child,.article-intro .lead{color:#fafaf8bb}
.page-intro .subpage-hero-photo,.hero.page-hero .hero-photo,.hero.case-hero .hero-photo{border-radius:0;box-shadow:none}
.button-light,.nav-contact{background:var(--orange);color:var(--ink)}
.mk-card-lift:hover{box-shadow:none!important}
.pk-round-xl{border-radius:0!important}
.stat-value{color:var(--ink)}
@media(max-width:600px){
 .home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-family:var(--sans);font-size:clamp(2.65rem,12vw,4.4rem);white-space:normal;line-height:1.02}
 .home-hero .hero-copy{left:20px;max-width:calc(100% - 40px)}
}

/* Final geometry correction for the homepage at desktop width. */
@media(min-width:901px){
  body:has(.home-hero) .hero-photo{grid-column:auto;grid-row:auto;left:0;right:0;width:100%}
  .home-proposal .split-copy h2{width:100%;max-width:100%}
  .home-proposal .split-copy h2 .heading-line{white-space:nowrap}
}
.photo-band-copy{position:absolute!important;width:auto!important;max-width:none}

@media(prefers-reduced-motion:reduce){
  .mk-home-hero .hero-copy > *{opacity:1;transform:none;animation:none}
}

/* Keep the homepage photo enlargement after the legacy home composition rules. */
@media(min-width:901px){
  body:has(.home-hero) .home-hero{height:660px;min-height:660px}
  body:has(.home-hero) .home-hero .hero-photo{height:660px}
}

/* Final spacing pass: one page grid, one radius, and no oversized section
   breathing room.  Motion classes and media queries above remain intact. */
:root{
  --page-gutter:clamp(24px,7vw,120px);
  --radius:10px;
}

/* Keep headings, copy and card collections on the same horizontal guide. */
.service-band,
.principles,
.news-section,
.info-section,
.area-section,
.news-archive,
.voice-list,
.faq-page,
.company-steps,
.case-detail,
.article-body,
.content-section{
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
}

.page-intro,
.article-intro,
.hero.page-hero,
.hero.case-hero,
.news-hero{
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
}

/* Section padding is capped at 96px. Full-bleed photo bands are exempt. */
.service-band,
.principles,
.news-section,
.info-section,
.area-section,
.news-archive,
.voice-list,
.faq-page,
.company-steps,
.case-detail,
.article-body,
.content-section,
.contact-copy,
.company-details,
.split-copy{
  padding-top:min(96px,8vw);
  padding-bottom:min(96px,8vw);
}

.page-intro,
.article-intro,
.hero.page-hero,
.hero.case-hero,
.news-hero{
  padding-top:min(96px,8vw);
  padding-bottom:min(96px,8vw);
  min-height:0;
}

/* Match the text column to the photo instead of extending it with a tall
   minimum height; the copy stays vertically centered beside the image. */
.split-section{min-height:0;align-items:stretch}
.split-section > .split-image,
.split-section > .split-copy{
  min-width:0;
  max-width:100%;
}
.split-image{
  width:100%;
  min-height:0;
  max-width:100%;
  aspect-ratio:3 / 2;
  contain:paint;
}
.split-copy{justify-content:center;min-width:0}
.home-proposal .split-copy{
  position:relative;
  z-index:2;
  background:var(--cream);
}

.photo-band,
.contact-band,
.contact-photo{
  width:100%;
  max-width:100%;
  min-width:0;
}
.photo-band{contain:paint}
.contact-photo{contain:paint}
body:has(.home-hero) .manifesto .split-copy{align-self:stretch}

/* All image blocks and cards use the same corner treatment. */
.pk-round-xl,
.hero-photo,
.subpage-hero-photo,
.split-image,
.service-image,
.contact-photo,
.photo-card,
.service-card,
.news-item,
.info-card,
.area-card,
.brand-card,
.symptom-card,
.article-card,
.voice-card,
.principle,
.promise-list article,
.brand-list article,
.area-grid article,
.faq-list details,
body:has(.form-wrap) > main > .page-intro::after{
  border-radius:var(--radius);
}

@media(max-width:900px){
  .split-image{aspect-ratio:3 / 2}
  .page-intro,
  .article-intro,
  .hero.page-hero,
  .hero.case-hero,
  .news-hero{padding-top:64px;padding-bottom:64px}
}

@media(max-width:600px){
  .service-band,
  .principles,
  .news-section,
  .info-section,
  .area-section,
  .news-archive,
  .voice-list,
  .faq-page,
  .company-steps,
  .case-detail,
  .article-body,
  .content-section,
  .contact-copy,
  .company-details,
  .split-copy{padding-top:64px;padding-bottom:64px}
}

/* The reveal clip must not enlarge a grid item outside the viewport.  The
   image itself already fills its constrained column, so the temporary scale
   used by the generic motion utility only creates horizontal overflow and can
   make the adjacent copy appear to sit on top of the photo. */
.mk-js .split-image.mk-clip-reveal,
.mk-js .photo-band.mk-clip-reveal,
.mk-js .contact-photo.mk-clip-reveal{
  transform:none;
}

/* Editorial finish: a serif voice for the brand's declarations, with the
   sans-serif system retained for navigation, labels, and practical copy. */
:root{--serif:'Noto Serif JP',serif}
h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:.045em;line-height:1.42}
h1,h2{ text-wrap:balance; }
h1 .heading-line,h2 .heading-line{display:block;white-space:nowrap;}
h3,.eyebrow,.button,.global-nav,.brand,.service-no,.news-item time,.footer-phone{font-family:var(--sans)}
.home-hero .hero-copy h1,.home-hero .mk-hero-heading,
.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,
.news-hero h1,.page-intro h1,.article-intro h1{font-family:var(--serif);font-weight:500;letter-spacing:.05em}
.home-hero .hero-copy h1{line-height:1.35}

/* The homepage's two strongest images are material studies: let their grain
   and scale carry the story instead of adding more card density. */
.home-proposal .split-image,
.manifesto .split-image{min-height:clamp(520px,44vw,680px);aspect-ratio:1 / 1}
.home-proposal .split-image img{object-position:center}
.manifesto .split-image img{object-position:center}
.home-proposal .split-copy h2,.manifesto .split-copy h2{font-size:clamp(1.75rem,4.25vw,4.4rem)}

/* Serif display headings use authored semantic lines.  Keep each line intact
   and let the type scale down before it can produce a one- or two-character
   orphan on narrow columns. */
.page-intro h1,.article-intro h1,.home-hero h1,.hero.case-hero h1{font-size:clamp(1.65rem,4.2vw,5rem)}
.split-copy h2,.contact-copy h2,.content-section h2,.article-body h2{font-size:clamp(1.75rem,3.7vw,3.75rem)}
.article-intro h1{font-size:clamp(1rem,3.25vw,3.5rem);letter-spacing:.035em}
.hero.page-hero .hero-copy h1,.hero.case-hero .hero-copy h1,
.news-hero h1,.page-intro h1,.page-intro > div:first-child h1,
.article-intro h1{display:block;overflow:visible;-webkit-line-clamp:unset;-webkit-box-orient:initial}

.hero-poem{display:flex;align-items:center;gap:14px;color:var(--white);font-size:.74rem;letter-spacing:.14em;line-height:1.5}
.hero-poem span{display:block;width:1px;height:42px;background:#e8cdae;flex:0 0 1px}

.quiet-manifesto{padding:clamp(112px,14vw,196px) var(--page-gutter);background:var(--mint);text-align:center}
.quiet-manifesto .eyebrow{margin-bottom:clamp(28px,4vw,48px);color:var(--orange)}
.quiet-manifesto-copy{font-family:var(--serif);font-size:clamp(2rem,4.2vw,4.5rem);font-weight:500;line-height:1.55;letter-spacing:.08em}
.quiet-manifesto-note{margin-top:clamp(28px,4vw,48px);font-size:.75rem;letter-spacing:.12em;color:#716a60}

@media(max-width:900px){
  .home-proposal .split-image,.manifesto .split-image{min-height:0;aspect-ratio:1 / 1}
  .quiet-manifesto{padding:96px 24px}
}
@media(max-width:600px){
  .hero-poem{color:var(--ink)}
  .hero-poem span{background:var(--orange)}
  .quiet-manifesto{padding:84px 20px}
  .quiet-manifesto-copy{font-size:clamp(1.8rem,8vw,2.6rem)}
}

/* Final homepage B-variant overrides. */
body:has(.home-hero) .site-header{position:absolute;top:0;right:0;left:0;background:linear-gradient(to bottom,rgb(0 0 0 / .48),transparent);border-bottom:0;color:var(--white)}
body:has(.home-hero) .site-header .brand-mark{background:var(--white);color:var(--ink)}
body:has(.home-hero) .site-header .global-nav{color:var(--white)}
body:has(.home-hero) .site-header .nav-contact{background:var(--white);color:var(--ink)}
body:has(.home-hero) .site-header .menu-toggle{color:var(--white)}
.home-hero{height:min(85vh,720px);min-height:0;width:100%;display:block;background:var(--ink)}
.home-hero .hero-photo{position:absolute;inset:0;left:0;right:0;grid-column:auto;grid-row:auto;z-index:1;width:100%;height:100%;margin:0;border-radius:0;box-shadow:none}
.home-hero .hero-photo::after{background:linear-gradient(to top,rgb(0 0 0 / .82) 0%,rgb(0 0 0 / .52) 30%,rgb(0 0 0 / .08) 66%,transparent 100%)}
.home-hero .hero-photo img{object-fit:cover}
.home-hero .hero-copy{position:absolute;z-index:3;left:clamp(24px,7vw,120px);bottom:clamp(48px,9vw,112px);width:auto;max-width:calc(100% - 48px);padding:0;color:var(--white);text-shadow:0 2px 18px rgb(0 0 0 / .45)}
.home-hero .hero-copy > *{display:block}
.home-hero .hero-kicker{margin-bottom:14px;color:var(--white);font:700 clamp(.68rem,1vw,.84rem)/1 var(--display);letter-spacing:.2em}
.home-hero .hero-copy h1,.home-hero .mk-hero-heading{margin:0 0 16px;padding:0;background:none;color:var(--white);font-family:serif;font-size:clamp(1.8rem,4.2vw,4.7rem);line-height:1.25;white-space:nowrap;letter-spacing:.04em;text-shadow:0 2px 18px rgb(0 0 0 / .5)}
.home-hero .hero-copy .mk-hero-lead{margin:0 0 24px;color:var(--white);font-size:clamp(.78rem,1.2vw,1rem);line-height:1.5;font-weight:500;text-shadow:0 2px 12px rgb(0 0 0 / .55)}
.home-hero .hero-copy .button{width:max-content;text-shadow:none}
.home-hero .hero-note{right:clamp(24px,7vw,120px);bottom:clamp(28px,5vw,64px);z-index:3;border:0;padding:0;color:var(--white);font:700 clamp(.68rem,1vw,.84rem)/1.4 var(--display);letter-spacing:.12em;text-shadow:0 2px 12px rgb(0 0 0 / .5)}
.mk-home-hero .hero-photo.mk-clip-reveal{animation:mk-home-photo 720ms var(--mk-ease) both}
.mk-home-hero .hero-copy{animation:none}
.mk-home-hero .hero-copy > *{opacity:0;transform:translateY(22px);animation:mk-home-copy 620ms var(--mk-ease) both}
.mk-home-hero .hero-copy > :nth-child(1){animation-delay:520ms}.mk-home-hero .hero-copy > :nth-child(2){animation-delay:650ms}.mk-home-hero .hero-copy > :nth-child(3){animation-delay:780ms}.mk-home-hero .hero-copy > :nth-child(4){animation-delay:910ms}
@media(max-width:600px){
  .home-hero{height:85vh;min-height:560px}
  .home-hero .hero-copy{bottom:72px;left:20px;max-width:calc(100% - 40px)}
  .home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-size:clamp(1.45rem,7vw,2.25rem);white-space:nowrap}
  .home-hero .hero-note{right:20px;bottom:28px;font-size:.65rem}
  body:has(.home-hero) .global-nav{background:var(--ink);color:var(--white)}
}

/* Terminal overrides: these must remain after the legacy homepage block above. */
.home-hero .hero-copy{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(92%,1000px);max-width:none;padding:0;align-items:center;text-align:center}
.home-hero .hero-kicker{display:none!important}
.home-hero .hero-copy h1,.home-hero .mk-hero-heading{width:100%;font-size:clamp(2rem,4.3vw,4.7rem);white-space:nowrap}
.home-hero .hero-copy .mk-hero-lead{margin-bottom:20px;font-size:.82rem}
.home-hero .hero-copy .button{padding:7px 18px;border:1px solid rgb(255 255 255 / .9);border-radius:999px;background:transparent;color:#fff;font-size:.7rem;font-weight:500;gap:8px}
.home-hero .hero-copy .button span{display:none}
.home-hero .hero-note{right:auto;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;color:#fff;font-size:1.35rem;line-height:1;letter-spacing:0}
.home-hero .hero-note b{font-size:1.35rem;font-weight:400}.home-hero .hero-note span{font:500 .48rem/1 var(--display);letter-spacing:.18em}
.home-hero .hero-photo::after{background:linear-gradient(0deg,rgb(29 45 68 / .62),rgb(29 45 68 / .12) 62%,rgb(29 45 68 / .18))}
.stats-band{background:var(--deep);color:#fff;border-color:rgb(255 255 255 / .2)}.stat{border-color:rgb(255 255 255 / .28)}.stat-value,.stat-label{color:rgb(255 255 255 / .72)}
.purpose-section{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.5fr);gap:clamp(48px,10vw,150px);padding-top:clamp(88px,10vw,140px);padding-bottom:clamp(88px,10vw,140px);background:#fff;text-align:left}
.purpose-heading{align-self:start}.purpose-heading .eyebrow{margin-bottom:28px}.purpose-section .quiet-manifesto-copy{font-size:clamp(1.8rem,3.4vw,3.5rem);line-height:1.45;letter-spacing:.06em}.purpose-section .quiet-manifesto-note{margin-top:28px;font-size:.72rem;text-align:left;color:#718096;letter-spacing:.06em}.purpose-body{max-width:660px;padding-top:28px;color:#405065;font-size:.9rem;line-height:2.05}.purpose-body p{margin:0 0 22px}.purpose-body .purpose-lead{font-size:1.04rem;font-weight:500;color:var(--ink)}.purpose-body .text-link{margin-top:8px;color:var(--ink)}
body:has(.home-hero) #services{position:relative;isolation:isolate;grid-template-columns:minmax(220px,.72fr) minmax(0,1.7fr);gap:clamp(36px,7vw,110px);padding-top:clamp(88px,10vw,140px);padding-bottom:clamp(88px,10vw,140px);background:var(--deep) url('img/orig_23.jpg') center/cover no-repeat;color:#fff}
body:has(.home-hero) #services::before{content:"";position:absolute;inset:0;background:rgb(29 45 68 / .72);z-index:-1}body:has(.home-hero) #services .section-intro{position:relative;z-index:1}body:has(.home-hero) #services .section-intro h2{font-size:clamp(1.8rem,3.6vw,3.7rem)}body:has(.home-hero) #services .section-intro p:last-child{color:rgb(255 255 255 / .74)}body:has(.home-hero) #services .eyebrow{color:#e1bd74}
body:has(.home-hero) #services .service-grid{position:relative;z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}body:has(.home-hero) #services .service-card{min-height:218px;padding:24px;border:1px solid rgb(255 255 255 / .72);border-radius:4px;background:rgb(29 45 68 / .38);color:#fff;display:flex;flex-direction:column}body:has(.home-hero) #services .service-card::before{content:"⌁";font-size:1.4rem;line-height:1;color:#fff;margin-bottom:18px}body:has(.home-hero) #services .service-card:nth-child(2)::before{content:"✧"}body:has(.home-hero) #services .service-card:nth-child(3)::before{content:"▦"}body:has(.home-hero) #services .service-image{display:none}body:has(.home-hero) #services .service-no{display:none}body:has(.home-hero) #services .service-card .card-label{font-size:1rem;color:#fff;margin:0 0 10px;font-weight:500}body:has(.home-hero) #services .service-card>p:not(.card-label){color:rgb(255 255 255 / .76);font-size:.74rem;line-height:1.7;margin:0;max-width:28em}body:has(.home-hero) #services .service-card .arrow{right:20px;bottom:16px;color:#fff;font-size:1.05rem}
.page-intro,.hero.page-hero,.hero.case-hero,.news-hero,.article-intro{background:var(--deep);color:#fff}.page-intro .eyebrow,.hero.page-hero .eyebrow,.hero.case-hero .eyebrow,.news-hero .eyebrow,.article-intro .eyebrow{color:#e1bd74}.page-intro p,.news-hero>p:last-child,.article-intro .lead,.hero.page-hero .hero-copy>p:not(.eyebrow),.hero.case-hero .hero-copy>p:not(.eyebrow){color:rgb(255 255 255 / .72)}.content-section,.info-section,.faq-page,.company-details,.case-detail,.article-body{background:#fff}.split-section--cream,.news-section{background:#f7f8f9}.split-copy{color:var(--ink)}.split-copy .lead{color:var(--ink)}.principles{background:var(--deep)}
@media(max-width:900px){.purpose-section{grid-template-columns:1fr;gap:28px}.purpose-body{padding-top:0}body:has(.home-hero) #services{grid-template-columns:1fr}}
@media(max-width:600px){.home-hero .hero-copy{top:48%;width:calc(100% - 32px);left:50%;bottom:auto}.home-hero .hero-copy h1,.home-hero .mk-hero-heading{font-size:clamp(1.3rem,6.8vw,2.2rem)}.home-hero .hero-copy .mk-hero-lead{font-size:.72rem}.purpose-section{padding-inline:20px}body:has(.home-hero) #services .service-grid{grid-template-columns:1fr}}
/* モバイル可読性: 宣言文の添え書きは本文扱い(13px以上) */
@media (max-width: 640px){.quiet-manifesto-note{font-size:.8125rem !important;letter-spacing:.04em}}

/* Shared header CTA and compact single-value project specification. */
.site-header .nav-contact,
.site-header .nav-contact:hover,
.site-header .nav-contact:focus-visible,
body:has(.home-hero) .site-header .nav-contact,
body:has(.home-hero) .site-header .nav-contact:hover,
body:has(.home-hero) .site-header .nav-contact:focus-visible{
  background:var(--orange);
  color:var(--ink);
  border-color:transparent;
}
.site-header .nav-contact{transition:background 220ms ease,color 220ms ease}
.case-detail--spec{padding-block:clamp(48px,6vw,80px)}
.case-detail--spec .section-intro{margin-bottom:clamp(24px,3vw,40px)}
.spec-list{max-width:760px;margin:0;border-top:1px solid var(--ink)}
.spec-list>div{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
.spec-list dt{font-weight:700;color:var(--green)}
.spec-list dd{margin:0}
@media(max-width:600px){.spec-list>div{grid-template-columns:1fr;gap:2px;padding:12px 0}.spec-list dt{font-size:.8rem}}
/* split系カラム内の見出しはカラム幅に収まるサイズに(nowrap行のはみ出し防止) */
.split-copy h2{font-size:clamp(1.7rem,2.9vw,2.8rem)}
/* 施工事例カード: 写真実比率(3:2)に合わせて切り抜きゼロに(看板文字の見切れ防止) */
.photo-card-image{aspect-ratio:3/2 !important}
.photo-card-image img{object-fit:cover}
/* 看板入り施工写真の完全表示: 写真全面背景+文字オーバーレイをやめ、写真(3:2ノーカット・スクリムなし)+下部テキストの積層カードに */
.photo-card{display:flex;flex-direction:column;min-height:auto}
.photo-card .photo-card-image{position:static !important;inset:auto !important;aspect-ratio:3/2;width:100%;flex:none;z-index:auto}
.photo-card .photo-card-image::after,.photo-card .pk-scrim-b::after{display:none !important;background:none !important}
.photo-card .service-no{position:static;padding:12px 16px 0;color:var(--orange)}
.photo-card .card-label{position:static;padding:10px 16px 2px;font-weight:700;color:var(--white)}
.photo-card p:not(.card-label){position:static;padding:0 16px 16px;font-size:.82rem;color:#cfd4da;margin:0}

/* 文章流し込み型のお知らせ記事テンプレート */
.article-intro{display:block;min-height:0;padding:clamp(56px,8vw,104px) max(24px,calc((100% - 1040px)/2));background:var(--deep);color:var(--white)}
.article-intro .article-category{margin:0 0 18px;color:#e1bd74;font-size:.78rem;font-weight:700;letter-spacing:.12em}
.article-intro h1{max-width:900px;margin:0 0 20px;font-size:clamp(2rem,4vw,4.2rem);line-height:1.35;letter-spacing:.02em;color:var(--white)}
.article-intro time{font-family:var(--display);font-size:.84rem;color:#fafaf8bb}
.article-body{max-width:720px;margin:0 auto;padding:clamp(64px,8vw,104px) 24px;background:var(--paper);font-size:16px;line-height:1.9;letter-spacing:.035em}
.article-body p{margin:0 0 1.6em}.article-body h2{margin:2.4em 0 1em;font-size:clamp(1.45rem,3vw,2rem);line-height:1.45;border:0;padding:0}.article-body h3{margin:0 0 .45em;font-size:1.08rem;line-height:1.6}.article-body ul,.article-body ol{margin:0 0 2em;padding-left:1.5em}.article-body li{padding-left:.3em;margin-bottom:1.5em}.article-body li p{margin-bottom:0}.article-body a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.article-body strong,.article-body b{font-weight:700}.article-return{max-width:720px;margin:0 auto;padding:0 24px clamp(64px,8vw,104px);font-size:.95rem}.article-return a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:4px}.article-contact{margin-top:0}.article-contact .contact-band{margin:0}.article-contact .contact-copy h2{font-size:clamp(1.75rem,3.7vw,3rem)}
@media(max-width:600px){.article-intro{padding:56px 20px}.article-intro h1{font-size:clamp(1.75rem,8vw,2.5rem)}.article-body{padding:56px 20px;font-size:16px}.article-return{padding:0 20px 56px}}

.form-area-note{margin-top:10px;font-size:.85rem;color:var(--muted,#716a60);letter-spacing:.04em}

/* 対応エリア(原文の市区町村リスト) */
.service-area{max-width:980px;margin:0 auto;padding:56px clamp(24px,5vw,48px)}
.service-area h2{margin-bottom:24px}
.area-list{margin:0;border-top:1px solid rgba(128,120,110,.3)}
.area-list dt{font-weight:700;padding:16px 0 4px}
.area-list dd{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid rgba(128,120,110,.25);font-size:.85rem;line-height:2;color:inherit;opacity:.85}

/* 10/07 QA: allow designed heading lines to wrap on narrow screens instead of overflowing */
h1 .heading-line,h2 .heading-line,.home-proposal .split-copy h2 .heading-line{white-space:normal}

/* 10/08 QA fixes */
h1,h2,h3,.card-label{word-break:auto-phrase}
.case-detail .case-cards,.case-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;overflow:visible;max-width:none;margin-inline:0;padding:1px;background:var(--ink)}
.case-cards .service-card{min-width:0}
@media(max-width:900px){.case-detail .case-cards,.case-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
@media(max-width:600px){.case-detail .case-cards,.case-cards{grid-template-columns:1fr}}
.company-table th,.company-table td{padding:16px 20px}
@media(max-width:600px){.company-table th,.company-table td{padding:10px 16px}.company-table th{padding-bottom:0}}
/* 10/08 QA: paint works grid = 5 cards (3 + 2 wide), keep the site signboards fully visible */
body:has(.page-intro--paint) .photo-card-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
body:has(.page-intro--paint) .photo-card-grid .photo-card{grid-column:span 2}
body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(4),body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(5){grid-column:span 3}
body:has(.page-intro--paint) .photo-card .photo-card-image img{object-position:100% 100%}
@media(max-width:900px){body:has(.page-intro--paint) .photo-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body:has(.page-intro--paint) .photo-card-grid .photo-card,body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(4){grid-column:auto}body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(5){grid-column:1/-1}}
@media(max-width:600px){body:has(.page-intro--paint) .photo-card-grid{grid-template-columns:1fr}body:has(.page-intro--paint) .photo-card-grid .photo-card,body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(4),body:has(.page-intro--paint) .photo-card-grid .photo-card:nth-child(5){grid-column:auto}}

/* 10/08: roofcase reuses the 5-card works grid */
.photo-card-grid.works-5{grid-template-columns:repeat(6,minmax(0,1fr))}
.photo-card-grid.works-5 .photo-card{grid-column:span 2}
.photo-card-grid.works-5 .photo-card:nth-child(4),.photo-card-grid.works-5 .photo-card:nth-child(5){grid-column:span 3}
.photo-card-grid.works-5 .photo-card .photo-card-image img{object-position:100% 100%}
@media(max-width:900px){.photo-card-grid.works-5{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card-grid.works-5 .photo-card,.photo-card-grid.works-5 .photo-card:nth-child(4){grid-column:auto}.photo-card-grid.works-5 .photo-card:nth-child(5){grid-column:1/-1}}
@media(max-width:600px){.photo-card-grid.works-5{grid-template-columns:1fr}.photo-card-grid.works-5 .photo-card,.photo-card-grid.works-5 .photo-card:nth-child(4),.photo-card-grid.works-5 .photo-card:nth-child(5){grid-column:auto}}
/* 10/08: works grid variants for 1 and 3 cards */
.photo-card-grid.works-1{grid-template-columns:1fr}
.photo-card-grid.works-1 .photo-card{min-height:420px}
.photo-card-grid.works-1 .photo-card .photo-card-image img{object-position:50% 40%}
.photo-card-grid.works-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.photo-card-grid.works-auto{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
@media(max-width:900px){.photo-card-grid.works-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.photo-card-grid.works-3{grid-template-columns:1fr}}
/* 10/08: single-card grids must not blow up to full-bleed height/width */
.photo-card-grid.works-1 .photo-card .photo-card-image{aspect-ratio:3/1 !important}
@media(max-width:600px){.photo-card-grid.works-1 .photo-card .photo-card-image{aspect-ratio:3/2 !important}}
.case-detail .case-cards:has(> .service-card:only-child),.case-cards:has(> .service-card:only-child){grid-template-columns:minmax(0,560px)}
.case-detail .case-cards:has(> .service-card:only-child),.case-cards:has(> .service-card:only-child){background:transparent;padding:0;justify-content:start}
.case-cards > .service-card:only-child{border:1px solid var(--ink)}
