:root{
 --navy:#0b2b50;--navy2:#061d36;--gold:#c69a47;--gold2:#e0bd73;--ink:#152331;--muted:#6f7881;--line:#e7e9eb;--soft:#f7f8f8;--max:1280px;--section:132px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}picture{display:block}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:10px;top:10px;z-index:9999;background:#fff;padding:10px 14px;border:1px solid var(--line)}
.site-header{position:sticky;top:0;z-index:100;height:96px;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(11,43,80,.08);transition:height .3s ease,box-shadow .3s ease,background .3s ease}.site-header.scrolled{height:82px;box-shadow:0 12px 36px rgba(6,29,54,.08);background:rgba(255,255,255,.985)}.header-inner{max-width:1440px;height:100%;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;min-width:260px}.official-logo{display:block;overflow:hidden;flex:0 0 auto}.official-logo img{display:block;width:100%;height:100%;object-fit:contain}.official-logo--header{width:46px;height:62px}.brand-name{display:flex;flex-direction:column;line-height:1.15}.brand-name strong{font-size:16px;letter-spacing:.12em;font-weight:800;white-space:nowrap}.brand-name small{font-size:9px;font-weight:700;letter-spacing:.04em;margin-top:4px}.desktop-nav{height:100%;display:flex;align-items:stretch}.desktop-nav>a{position:relative;min-width:88px;padding:25px 12px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-weight:700}.desktop-nav>a:after{content:"";position:absolute;left:50%;right:50%;bottom:14px;height:1px;background:var(--gold);transition:left .3s,right .3s}.desktop-nav>a:hover:after{left:22%;right:22%}.desktop-nav small{font-size:7px;color:#9da4aa;letter-spacing:.1em}.desktop-nav .nav-cta{background:var(--navy);color:#fff;min-width:124px}.desktop-nav .nav-cta small{color:#cbd6df}.menu-btn,.mobile-nav{display:none}
.hero{position:relative;min-height:690px;height:min(760px,76vw);overflow:hidden;background:#fff}.hero-photo{position:absolute;right:0;top:0;width:67%;height:100%;background-size:cover;background-position:center center;transform:scale(1.015);animation:heroImageMotion 18s cubic-bezier(.2,.6,.2,1) forwards}.hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(109deg,#fff 0%,#fff 31%,rgba(255,255,255,.985) 37%,rgba(255,255,255,.86) 45%,rgba(255,255,255,.28) 59%,rgba(255,255,255,0) 77%)}.hero-dots{position:absolute;z-index:1;left:0;bottom:0;width:52%;height:30%;opacity:.14;background-image:radial-gradient(circle at 1px 1px,#8090a0 1px,transparent 1.2px);background-size:9px 9px;mask-image:linear-gradient(90deg,#000,transparent)}.hero-content{position:relative;z-index:3;width:var(--max);max-width:100%;height:100%;margin:auto;padding:82px 28px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.hero-eyebrow{margin:0 0 12px;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.22em}.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(48px,5.2vw,76px);font-weight:400;line-height:1.21;letter-spacing:.06em;margin:0 0 26px}.hero h1 span,.hero h1 em,.hero h1 strong{display:block}.hero h1 em{font-style:normal;font-size:.62em;color:#6b5b48}.hero h1 strong{font-weight:400;color:var(--gold)}.hero-copy{font-size:14px;font-weight:600;line-height:2;margin:0 0 20px}.hero-label{font:16px Georgia,serif;color:var(--gold);letter-spacing:.04em;margin:0}.hero-anim{opacity:0;transform:translateY(28px);animation:heroTextIn .95s cubic-bezier(.16,.8,.24,1) forwards}.hero-a1{animation-delay:.06s}.hero-a2{animation-delay:.18s}.hero-a3{animation-delay:.34s}.hero-a4{animation-delay:.48s}.hero-a5{animation-delay:.60s}.hero-a6{animation-delay:.76s}.hero-a7{animation-delay:.92s}.hero-side{position:absolute;right:24px;top:150px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:8px;color:#4d5f70;font-size:8px;letter-spacing:.16em}.hero-side i{display:block;width:1px;height:60px;background:linear-gradient(var(--gold),#81909b);transform-origin:top;animation:lineGrow 1.3s .8s ease both}.hero-side span{writing-mode:vertical-rl}.hero-scroll{position:absolute;left:28px;bottom:20px;z-index:4;display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.18em;color:#6c7780}.hero-scroll i{display:block;width:58px;height:1px;background:linear-gradient(90deg,var(--gold),#d7dde1);transform-origin:left;animation:scrollPulse 2.2s ease-in-out infinite}
.business-nav{max-width:1440px;margin:auto;padding:34px 28px;display:grid;grid-template-columns:132px 1fr auto;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.business-nav-title p,.eyebrow,.section-head>p{color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.15em;margin:0}.business-nav-title h2{font-family:serif;font-size:24px;margin:0}.business-nav-items{display:grid;grid-template-columns:repeat(7,1fr)}.business-nav-items a{min-height:74px;padding:10px 10px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:4px;transition:background .25s}.business-nav-items a:hover{background:#fbfbfa}.business-nav-items b{font-family:Georgia,serif;color:var(--gold);font-size:12px;font-weight:400}.business-nav-items span{font-size:10px;font-weight:700}.text-link{font-size:10px;font-weight:700;white-space:nowrap}.text-link span{color:var(--gold);margin-left:8px}
.feature-project{position:relative;display:grid;grid-template-columns:56% 44%;min-height:540px;overflow:hidden;background:#fff}.feature-project-media{height:100%;min-height:540px}.feature-project-media picture,.feature-project-media img{width:100%;height:100%;object-fit:cover}.feature-project-copy{position:relative;z-index:2;padding:100px clamp(36px,6vw,110px);display:flex;flex-direction:column;justify-content:center}.feature-project-copy h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(30px,3vw,48px);line-height:1.5;font-weight:400;margin:10px 0 20px}.feature-project-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:520px}.feature-project-word{position:absolute;right:-12px;bottom:-18px;font-family:Georgia,serif;font-size:clamp(46px,7vw,106px);letter-spacing:.04em;color:rgba(11,43,80,.035);white-space:nowrap;pointer-events:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:14px 24px;font-size:12px;font-weight:700;letter-spacing:.04em;border:1px solid transparent;transition:transform .25s,background .25s,color .25s,border .25s}.button:hover{transform:translateY(-2px)}.button--outline{border-color:#aab5bf;color:var(--navy);width:max-content;margin-top:16px;background:#fff}.button--outline:hover{border-color:var(--gold);color:#8d6727}.button--navy{background:var(--navy);color:#fff}.button--gold{background:var(--gold);color:#fff}.button b{font-size:16px;font-weight:400}
.section{max-width:var(--max);margin:auto;padding:var(--section) 28px}.center-head{text-align:center;margin-bottom:62px}.center-head h2,.section-head h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(32px,3vw,46px);font-weight:400;letter-spacing:.04em;margin:8px 0 10px}.center-head>span,.section-head>span{display:block;color:var(--muted);font-size:12px}.business-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.business-card{border:1px solid var(--line);background:#fff;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}.business-card:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(6,29,54,.09)}.business-card-media{height:205px;overflow:hidden;background:#eef2f4}.business-card-media picture,.business-card-media img{width:100%;height:100%;object-fit:cover}.business-card-media img{transition:transform .75s cubic-bezier(.2,.7,.2,1)}.business-card:hover .business-card-media img{transform:scale(1.045)}.business-card-copy{position:relative;padding:22px 22px 26px}.business-card-copy small{font:16px Georgia,serif;color:var(--gold)}.business-card-copy h3{font-family:serif;font-size:19px;margin:4px 0 8px}.business-card-copy p{margin:0;padding-right:24px;font-size:11px;color:var(--muted)}.business-card-copy i{position:absolute;right:20px;bottom:22px;color:var(--gold);font-style:normal}.about-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:76px;align-items:center}.about-copy h2{font-family:serif;font-size:42px;font-weight:400;margin:8px 0 22px}.about-copy>p:not(.eyebrow){font-size:13px;color:var(--muted)}.about-media{height:420px;overflow:hidden}.about-media picture,.about-media img{width:100%;height:100%;object-fit:cover}.home-news{display:grid;grid-template-columns:230px 1fr;gap:58px;padding-top:94px}.news-heading h2{font-family:serif;font-size:32px;font-weight:400;margin:5px 0}.news-list a,.news-placeholder{display:grid;grid-template-columns:120px 1fr 24px;gap:18px;align-items:center;border-bottom:1px solid var(--line);padding:20px 0}.news-list time{font-size:11px;color:var(--muted)}.news-list span{font-size:12px}.news-list b{color:var(--gold)}
.page-hero{min-height:360px;position:relative;display:flex;align-items:center;overflow:hidden;background:linear-gradient(105deg,#fff 0%,#fff 52%,rgba(246,248,250,.82)),url('../images/hero-city-real.webp') center/cover no-repeat}.page-hero:after{content:"";position:absolute;right:0;top:0;width:45%;height:100%;background:radial-gradient(circle at 1px 1px,rgba(11,43,80,.09) 1px,transparent 1.3px);background-size:12px 12px;mask-image:linear-gradient(90deg,transparent,#000);opacity:.3}.page-hero>div{position:relative;z-index:2;width:var(--max);max-width:100%;margin:auto;padding:80px 28px}.page-hero p{color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.18em;margin:0}.page-hero h1{font-family:serif;font-size:clamp(44px,5vw,68px);font-weight:400;margin:8px 0 10px}.page-hero span{font-size:13px;color:var(--muted)}
.business-intro{text-align:center;max-width:900px;padding-bottom:84px}.business-intro h2{font-family:serif;font-size:42px;font-weight:400;margin:8px 0 20px}.business-intro>p:last-child{color:var(--muted);font-size:13px}.business-list{max-width:var(--max);margin:auto;padding:0 28px 100px}.business-row{display:grid;grid-template-columns:1fr 1.06fr;gap:86px;align-items:center;padding:110px 0;border-top:1px solid var(--line)}.business-row.reverse{grid-template-columns:1.06fr 1fr}.business-row.reverse .business-image{order:1}.business-row.reverse .business-text{order:2}.business-text>b{display:block;font:48px Georgia,serif;color:var(--gold);font-weight:400;margin-bottom:10px}.business-text h2{font-family:serif;font-size:34px;font-weight:400;margin:0 0 22px}.business-text>p{font-size:13px;color:var(--muted);line-height:2.15}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.tags span{border:1px solid var(--line);padding:5px 10px;font-size:9px;background:#fff}.business-image{height:390px;overflow:hidden;background:#eef1f3}.business-image picture,.business-image img{width:100%;height:100%;object-fit:cover}.business-image img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}.business-row:hover .business-image img{transform:scale(1.035)}
.company-message{display:grid;grid-template-columns:.65fr 1.35fr;gap:90px}.intro-copy p{font-size:13px;color:var(--muted);margin:0 0 20px}.intro-copy blockquote{margin:44px 0 0;padding:24px 30px;border-left:2px solid var(--gold);font-family:serif;font-size:27px;color:var(--navy);background:#fafafa}.values-section{padding-top:40px}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}.value-grid article{padding:38px;border:1px solid var(--line)}.value-grid b{font:12px Georgia,serif;color:var(--gold);letter-spacing:.15em}.value-grid h3{font-family:serif;font-size:26px;margin:10px 0}.value-grid p{font-size:11px;color:var(--muted)}.company-table-wrap{padding-top:80px}.company-table{margin-top:48px;border-top:1px solid var(--line)}.company-table>div{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line);padding:20px 0}.company-table dt{font-size:11px;font-weight:700}.company-table dd{margin:0;font-size:12px}.licenses{max-width:none;background:#f7f8f8;padding-left:max(28px,calc((100% - var(--max))/2 + 28px));padding-right:max(28px,calc((100% - var(--max))/2 + 28px))}.license-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:50px}.license-grid article{position:relative;background:#fff;padding:36px 38px;border:1px solid #e8eaeb;min-height:190px}.license-grid article.wide{grid-column:1/-1}.license-grid article>b{font:15px Georgia,serif;color:var(--gold)}.license-grid h3{font-family:serif;font-size:23px;font-weight:400;margin:12px 0}.license-grid p{font-size:11px;color:var(--muted);margin:0 0 5px}.license-grid strong{font-size:16px;color:var(--navy)}.permit-list{display:flex;gap:30px;flex-wrap:wrap;margin-top:12px}.permit-list span{font-size:11px}.clients{padding-top:110px}.client-grid{margin-top:44px;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.client-grid span{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.access-card{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0;margin-top:45px}.access-card h3{font-family:serif;font-size:24px}.access-card p{font-size:12px;color:var(--muted)}
.project-main{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}.project-main-image{height:520px;overflow:hidden}.project-main-image picture,.project-main-image img{width:100%;height:100%;object-fit:cover}.project-main-copy h2{font:clamp(50px,6vw,82px)/1.05 Georgia,serif;color:var(--navy);font-weight:400;margin:15px 0 25px}.project-main-copy h3{font-family:serif;font-size:24px;font-weight:400;line-height:1.7}.project-main-copy>p:last-child{font-size:13px;color:var(--muted)}.project-watermark{position:absolute;right:-20px;bottom:-55px;font:110px Georgia,serif;color:rgba(11,43,80,.035);pointer-events:none}.project-note{max-width:900px;text-align:center;padding-top:45px}.project-note h2{font-family:serif;font-size:44px;font-weight:400;line-height:1.6}.project-note>p:last-child{color:var(--muted);font-size:13px}
.contact-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.contact-info h2{font-family:serif;font-size:40px;font-weight:400}.contact-info>p:not(.eyebrow){font-size:13px;color:var(--muted)}.contact-phone{display:block;font:42px Georgia,serif;color:var(--navy);margin-top:30px}.contact-info>span{font-size:10px;color:var(--muted)}.contact-form label{display:block;font-size:12px;font-weight:700;margin-bottom:24px}.contact-form em{font-style:normal;color:var(--gold);font-size:9px;margin-left:8px}.contact-form input,.contact-form textarea{width:100%;margin-top:8px;border:1px solid #ccd2d8;padding:14px 16px;font:inherit;font-size:16px;background:#fff}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid rgba(198,154,71,.35);outline-offset:1px;border-color:var(--gold)}.form-success{padding:36px;background:#f7f8f8;border:1px solid var(--line)}.news-row{display:grid;grid-template-columns:150px 1fr 30px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.article{max-width:900px}.article-thumb{margin-bottom:40px}.legal{max-width:900px}.legal h2{font-family:serif;font-weight:400;margin-top:45px}.not-found{min-height:650px;text-align:center;padding:150px 24px}.not-found h1{font-family:serif;font-size:42px;font-weight:400}
.cta-band{background:linear-gradient(110deg,#0b2b50,#174f81);color:#fff;padding:54px max(28px,calc((100% - var(--max))/2 + 28px));display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-band p{color:#e0bd73;font-size:10px;letter-spacing:.18em;font-weight:800;margin:0}.cta-band h2{font-family:serif;font-size:30px;font-weight:400;margin:4px 0}.cta-band span{font-size:11px}.site-footer{background:var(--navy2);color:#fff;padding:76px max(28px,calc((100% - var(--max))/2 + 28px)) 30px}.footer-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:48px}.footer-logo-wrap{display:flex;align-items:center;gap:14px;margin-bottom:22px}.official-logo--footer{width:54px;height:72px}.footer-logo-wrap>span{display:flex;flex-direction:column;line-height:1.2}.footer-logo-wrap strong{font-size:15px;letter-spacing:.1em}.footer-logo-wrap small{font-size:9px;margin-top:4px}.site-footer h3{font-size:10px;letter-spacing:.14em;color:#ddb86d}.site-footer a{display:block;font-size:11px;margin:7px 0;opacity:.9}.site-footer p{font-size:10px;opacity:.75}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:54px;padding-top:24px;display:flex;justify-content:space-between;font-size:9px;opacity:.72}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.image-reveal{clip-path:inset(0 100% 0 0);transition:clip-path 1.15s cubic-bezier(.2,.7,.2,1),opacity .8s,transform .8s}.image-reveal.in{clip-path:inset(0)}
@keyframes heroImageMotion{0%{transform:scale(1.015) translate3d(0,0,0)}100%{transform:scale(1.075) translate3d(-1.1%,.5%,0)}}@keyframes heroTextIn{to{opacity:1;transform:translateY(0)}}@keyframes lineGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes scrollPulse{0%,100%{transform:scaleX(.2);opacity:.35}50%{transform:scaleX(1);opacity:1}}
@media(max-width:1120px){.desktop-nav>a{min-width:74px;padding-left:8px;padding-right:8px}.brand{min-width:220px}.brand-name strong{font-size:14px}.business-nav{grid-template-columns:115px 1fr}.business-nav>.text-link{display:none}.business-card-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){:root{--section:100px}.site-header{height:74px}.site-header.scrolled{height:70px}.desktop-nav{display:none}.menu-btn{display:flex;width:48px;height:48px;border:0;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px}.menu-btn span{width:23px;height:1px;background:var(--navy)}.menu-btn b{font-size:7px;color:var(--navy)}.mobile-nav{display:flex;position:absolute;top:74px;left:0;right:0;background:#fff;flex-direction:column;padding:10px 24px 24px;border-bottom:1px solid var(--line);transform:translateY(-130%);opacity:0;pointer-events:none;transition:.35s}.mobile-nav.open{transform:none;opacity:1;pointer-events:auto}.mobile-nav a{padding:14px 4px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.official-logo--header{width:36px;height:50px}.brand-name strong{font-size:13px}.brand-name small{font-size:8px}.hero{min-height:630px;height:630px}.hero-photo{width:100%;opacity:.58;background-position:60% center}.hero-shade{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 45%,rgba(255,255,255,.38) 100%)}.hero-content{padding:70px 24px}.hero-side{display:none}.business-nav{display:block;padding:28px 22px}.business-nav-title{margin-bottom:18px}.business-nav-items{grid-template-columns:repeat(4,1fr)}.business-nav-items a{border-top:1px solid var(--line)}.feature-project{grid-template-columns:1fr}.feature-project-media{min-height:420px}.feature-project-copy{padding:70px 24px}.business-card-grid{grid-template-columns:repeat(2,1fr)}.about-split,.company-message,.project-main,.contact-wrap{grid-template-columns:1fr;gap:50px}.section{padding-left:22px;padding-right:22px}.business-row,.business-row.reverse{grid-template-columns:1fr;gap:42px;padding:92px 0}.business-row .business-text,.business-row.reverse .business-text{order:1}.business-row .business-image,.business-row.reverse .business-image{order:2}.business-image{height:360px}.license-grid{grid-template-columns:1fr}.license-grid article.wide{grid-column:auto}.project-main-image{height:420px}.home-news{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.cta-band{align-items:flex-start;flex-direction:column}.client-grid{grid-template-columns:1fr}.project-watermark{font-size:72px}}
@media(max-width:560px){:root{--section:82px}.header-inner{padding:0 16px}.brand{min-width:0;gap:8px}.official-logo--header{width:32px;height:44px}.brand-name strong{font-size:11px;letter-spacing:.08em}.brand-name small{font-size:7px}.hero{height:590px;min-height:590px}.hero-content{padding:62px 20px}.hero h1{font-size:40px}.hero-copy{font-size:11px;line-height:1.95}.hero-photo{background-position:61% center}.hero-scroll{left:20px;bottom:14px}.business-nav-items{grid-template-columns:repeat(2,1fr)}.feature-project-media{min-height:300px}.feature-project-copy{padding:58px 20px}.business-card-grid{grid-template-columns:1fr}.business-card-media{height:220px}.about-media{height:280px}.page-hero{min-height:280px}.page-hero>div{padding:58px 20px}.page-hero h1{font-size:40px}.business-intro h2{font-size:30px}.business-list{padding:0 20px 70px}.business-row{padding:86px 0}.business-text>b{font-size:36px}.business-text h2{font-size:28px}.business-image{height:255px}.company-table>div{grid-template-columns:1fr;gap:5px}.company-table dt{font-size:10px;color:var(--gold)}.license-grid article{padding:28px}.access-card{padding:30px 0;align-items:flex-start;flex-direction:column}.project-main-image{height:290px}.project-main-copy h2{font-size:40px}.project-note h2{font-size:32px}.contact-phone{font-size:32px}.cta-band{padding:42px 20px}.cta-band h2{font-size:25px}.site-footer{padding:60px 20px 25px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px}.reveal{transform:translateY(14px)}.image-reveal{clip-path:inset(12% 0 0 0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo,.hero-anim,.hero-side i,.hero-scroll i{animation:none!important}.hero-anim{opacity:1;transform:none}.reveal{opacity:1;transform:none;transition:none}.image-reveal{clip-path:none;transition:none}.business-card-media img,.business-image img{transition:none}}

/* v5 visual reliability + cinematic motion */
.official-logo--header{width:52px;height:58px}.official-logo--footer{width:58px;height:64px}.official-logo img{object-fit:contain}
.hero{isolation:isolate;background:#eef3f6}.hero-slider{position:absolute;inset:0;overflow:hidden}.hero-slide{position:absolute;inset:-2%;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.7s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}.hero-slide.is-active{opacity:1;animation:ykCinematicZoom 7.2s cubic-bezier(.2,.65,.25,1) both}.hero-slide--blue{background-position:center 58%}.hero-slide--current{background-position:center 55%}.hero-slide--red{background-position:center 52%}.hero-slice{position:absolute;inset:-15%;pointer-events:none;mix-blend-mode:soft-light;opacity:.2}.hero-slice--a{background:linear-gradient(118deg,transparent 0 47%,rgba(255,255,255,.65) 49%,transparent 54%);animation:ykSliceA 11s ease-in-out infinite alternate}.hero-slice--b{background:linear-gradient(65deg,transparent 0 65%,rgba(214,178,103,.35) 68%,transparent 72%);animation:ykSliceB 14s ease-in-out infinite alternate}.hero-shade{background:linear-gradient(105deg,#fff 0%,rgba(255,255,255,.98) 29%,rgba(255,255,255,.82) 42%,rgba(255,255,255,.2) 62%,rgba(255,255,255,.02) 100%)}
@keyframes ykCinematicZoom{0%{transform:scale(1.06) translate3d(0,0,0)}100%{transform:scale(1.14) translate3d(-1.2%,calc(var(--scroll-shift,0px) * .25),0)}}
@keyframes ykSliceA{from{transform:translate3d(-5%,0,0)}to{transform:translate3d(7%,0,0)}}@keyframes ykSliceB{from{transform:translate3d(4%,0,0)}to{transform:translate3d(-5%,0,0)}}
/* Images must never depend on JavaScript to be visible. */
.reveal{opacity:1;transform:none}.image-reveal{clip-path:none;opacity:1;transform:none}.reveal.motion-ready{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.16,.8,.24,1),transform .9s cubic-bezier(.16,.8,.24,1)}.reveal.motion-ready.image-reveal{opacity:0;clip-path:inset(0 10% 0 0);transform:translateY(22px) scale(.985);transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,.8,.24,1),clip-path 1.15s cubic-bezier(.16,.8,.24,1)}.reveal.motion-ready.in{opacity:1;transform:none}.reveal.motion-ready.image-reveal.in{opacity:1;clip-path:inset(0);transform:none}
.business-card,.business-row,.about-split,.company-message,.project-main,.license-grid article{position:relative}.business-card:after,.license-grid article:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:linear-gradient(90deg,var(--gold),transparent);transition:width .7s cubic-bezier(.16,.8,.24,1)}.business-card:hover:after,.license-grid article:hover:after{width:100%}.business-row:before{content:"";position:absolute;top:0;left:0;width:42px;height:1px;background:var(--gold);transition:width 1.1s ease}.business-row:hover:before{width:120px}.business-image,.about-media,.project-main-image,.feature-project-media{box-shadow:0 26px 70px rgba(9,31,52,.08)}
.section:nth-of-type(even){position:relative}.section:nth-of-type(even):before{content:"";position:absolute;z-index:-1;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(198,154,71,.055),transparent 68%);right:-80px;top:8%;animation:ykFloat 9s ease-in-out infinite alternate}@keyframes ykFloat{to{transform:translate3d(-28px,36px,0) scale(1.08)}}
@media(max-width:900px){.hero-slide--blue{background-position:center 58%}.hero-slide--current{background-position:62% center}.hero-slide--red{background-position:58% center}.hero-slice{opacity:.12}.reveal.motion-ready{transform:translateY(16px)}.reveal.motion-ready.image-reveal{clip-path:inset(6% 0 0 0);transform:translateY(12px)}}
@media(max-width:560px){.official-logo--header{width:38px;height:44px}.brand-name strong{font-size:10px}.hero-shade{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.72) 38%,rgba(255,255,255,.28) 68%,rgba(255,255,255,.6) 100%)}}
@media(prefers-reduced-motion:reduce){.hero-slide{opacity:0;animation:none!important;transition:none!important;transform:none}.hero-slide.is-active{opacity:1}.hero-slice,.section:nth-of-type(even):before{animation:none!important}.reveal,.reveal.motion-ready,.reveal.motion-ready.image-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}}

/* v5.2 brochure + corrected resource imagery */
.brochure-fixed{position:fixed;right:0;top:46%;z-index:95;width:56px;min-height:238px;padding:16px 9px;background:rgba(6,29,54,.96);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-left:1px solid rgba(255,255,255,.18);box-shadow:0 18px 44px rgba(6,29,54,.18);transition:width .35s cubic-bezier(.16,.8,.24,1),background .3s ease,transform .3s ease;backdrop-filter:blur(10px)}
.brochure-fixed:hover{width:70px;background:#0b2b50}.brochure-fixed__en{writing-mode:vertical-rl;text-orientation:mixed;font:9px Georgia,serif;letter-spacing:.18em}.brochure-fixed__jp{writing-mode:vertical-rl;font-size:9px;letter-spacing:.12em;opacity:.78}.brochure-fixed b{color:var(--gold2);font-size:16px;font-weight:400;animation:ykBrochureArrow 1.7s ease-in-out infinite}
@keyframes ykBrochureArrow{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(5px);opacity:1}}
@media(max-width:900px){.brochure-fixed{top:auto;right:14px;bottom:16px;width:auto;min-height:48px;height:48px;padding:0 16px;flex-direction:row;border-radius:2px;border:1px solid rgba(255,255,255,.2)}.brochure-fixed:hover{width:auto}.brochure-fixed__en{writing-mode:horizontal-tb;font-size:8px}.brochure-fixed__jp{writing-mode:horizontal-tb;font-size:10px}.brochure-fixed b{font-size:14px}}
@media(max-width:560px){.brochure-fixed{right:12px;bottom:12px;height:46px;min-height:46px;padding:0 13px}.brochure-fixed__en{display:none}.brochure-fixed__jp{font-size:10px}}
@media(prefers-reduced-motion:reduce){.brochure-fixed b{animation:none!important}}

/* v5.3: direct PDF viewing and two-slide hero */
.brochure-fixed__jp{writing-mode:vertical-rl;font-size:10px;letter-spacing:.12em;opacity:.95}
@media(max-width:900px){.brochure-fixed__jp{writing-mode:horizontal-tb}}

/* =========================================================
   ART DIRECTION / CONTINUOUS MOTION EDITION
   Inspired by editorial typography, immersive brand sites,
   and scroll-led storytelling. Content remains accessible.
   ========================================================= */
:root{--yk-mx:50%;--yk-my:35%;--yk-progress:0;--yk-scene:0}
body.yamato-kinzoku-premium{overflow-x:clip;background:#fff}
#main{position:relative;z-index:2;background:transparent}
.yk-motion-layer{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:multiply;opacity:.56}
#ykMotionCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.38}
.yk-orbit{position:absolute;border:1px solid rgba(173,126,45,.22);border-radius:50%;will-change:transform}
.yk-orbit-a{width:58vw;height:58vw;right:-26vw;top:10vh;transform:translate3d(0,calc(var(--scroll-shift,0px) * -1.3),0) rotate(calc(var(--yk-progress) * 120deg))}
.yk-orbit-b{width:36vw;height:36vw;left:-19vw;bottom:4vh;transform:translate3d(0,calc(var(--scroll-shift,0px) * .8),0) rotate(calc(var(--yk-progress) * -160deg))}
.yk-giant-word{position:absolute;left:-.03em;top:50%;transform:translateY(-50%) translateX(calc(var(--yk-progress) * -8vw));font:900 clamp(100px,20vw,360px)/.72 Arial,sans-serif;letter-spacing:-.09em;color:rgba(10,42,72,.028);white-space:nowrap;transition:opacity .6s ease,color .6s ease;will-change:transform}
.yk-scroll-progress{position:fixed;left:0;top:0;bottom:0;width:4px;background:rgba(10,42,72,.05)}.yk-scroll-progress i{display:block;width:100%;height:calc(var(--yk-progress) * 100%);background:linear-gradient(#c8973e,#0a2a48);box-shadow:0 0 22px rgba(200,151,62,.28)}
.yk-intro{position:fixed;inset:0;z-index:9999;background:#071d34;color:#fff;display:grid;place-content:center;text-align:center;transition:clip-path 1.25s cubic-bezier(.76,0,.24,1),visibility 1.25s;clip-path:inset(0)}
.yk-intro.is-out{clip-path:inset(0 0 100% 0);visibility:hidden}.yk-intro-mark{display:flex;gap:.05em;justify-content:center;font:800 clamp(70px,10vw,150px)/.8 Arial,sans-serif;letter-spacing:-.1em}.yk-intro-mark span{display:block;animation:ykIntroGlyph 1s cubic-bezier(.16,1,.3,1) both}.yk-intro-mark span+span{animation-delay:.12s;color:#d3a955}.yk-intro p{margin:24px 0 15px;font-size:10px;letter-spacing:.48em}.yk-intro i{height:1px;width:180px;margin:auto;background:linear-gradient(90deg,transparent,#d3a955,transparent);transform-origin:left;animation:ykIntroLine 1.1s .25s both}
@keyframes ykIntroGlyph{from{opacity:0;transform:translateY(60px) rotate(7deg);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes ykIntroLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.yk-page-wipe{position:fixed;inset:0;z-index:9998;background:#071d34;color:#fff;display:grid;place-items:center;clip-path:inset(100% 0 0);transition:clip-path .72s cubic-bezier(.76,0,.24,1);pointer-events:none}.yk-page-wipe.is-in{clip-path:inset(0)}.yk-page-wipe span{font:700 clamp(18px,3vw,46px)/1 Arial,sans-serif;letter-spacing:.22em}
/* hero becomes a cinematic stage */
.hero{height:min(900px,94vh);min-height:720px;overflow:hidden;background:#071d34}.hero:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.94) 0 26%,rgba(255,255,255,.46) 43%,transparent 67%),repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(255,255,255,.12) calc(25% - 1px) 25%);transform:translateX(calc(var(--yk-progress) * -2vw))}.hero-content{z-index:5}.hero-content:before{content:"";position:absolute;width:clamp(180px,22vw,420px);height:clamp(180px,22vw,420px);border:1px solid rgba(195,145,57,.35);border-radius:50%;left:-9vw;top:10%;animation:ykHeroRing 13s linear infinite}.hero h1{perspective:700px}.hero h1 span,.hero h1 em,.hero h1 strong{transform-origin:left center}.hero-slide.is-active{animation:ykArtHero 8s cubic-bezier(.2,.65,.25,1) both}.hero-slice--a{opacity:.32;mix-blend-mode:overlay;animation-duration:7s}.hero-slice--b{opacity:.28;animation-duration:9s}
@keyframes ykHeroRing{to{transform:rotate(360deg) scale(1.08)}}@keyframes ykArtHero{0%{transform:scale(1.03) translate3d(0,0,0)}50%{transform:scale(1.105) translate3d(-.8%,-.5%,0)}100%{transform:scale(1.14) translate3d(1%,1%,0)}}
/* one continuous scroll composition: sections alternate atmosphere, not boxes */
#main>section:not(.hero):not(.cta-band),.section{isolation:isolate;transition:background-color .9s ease,color .9s ease}
#main>section:not(.hero):not(.cta-band):before,.section:before{pointer-events:none}
.business-nav{position:relative;overflow:hidden}.business-nav:after{content:"BUSINESS / 01—07";position:absolute;right:-1.5%;bottom:-.28em;font:900 clamp(64px,11vw,190px)/.8 Arial,sans-serif;color:rgba(8,42,72,.035);letter-spacing:-.07em;white-space:nowrap;transform:translateX(calc(var(--yk-progress) * 8vw))}
.feature-project{min-height:760px;overflow:hidden}.feature-project-media{clip-path:polygon(0 0,100% 0,92% 100%,0 100%);transform:scale(calc(1 + var(--yk-progress)*.035));transform-origin:center}.feature-project-copy{position:relative;z-index:4}.feature-project-word{opacity:.065;transform:translateX(calc(var(--yk-progress) * -18vw));white-space:nowrap}
.business-showcase{position:relative}.business-card-grid{gap:1px;background:rgba(9,39,67,.12)}.business-card{background:#fff;overflow:hidden;transition:transform .65s cubic-bezier(.16,1,.3,1),background .5s}.business-card:nth-child(3n+2){transform:translateY(44px)}.business-card:nth-child(3n){transform:translateY(88px)}.business-card:hover{z-index:3;transform:translateY(-12px) scale(1.025)!important;background:#f9f6ef}.business-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.6) 49%,transparent 68%);transform:translateX(-130%);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}.business-card:hover .business-card-media:after{transform:translateX(130%)}
.about-split{position:relative;min-height:760px;align-items:center}.about-split:after{content:"YAMATO KINZOKU";position:absolute;left:2%;bottom:2%;font:900 clamp(70px,13vw,210px)/.8 Arial,sans-serif;letter-spacing:-.08em;color:rgba(8,42,72,.035);z-index:-1;white-space:nowrap;transform:translateX(calc(var(--yk-progress) * -8vw))}.about-media{transform:rotate(1.2deg)}
.home-news{position:relative;overflow:hidden}.home-news:after{content:"NEWS";position:absolute;right:-.04em;top:-.1em;font:900 clamp(100px,20vw,300px)/1 Arial,sans-serif;color:rgba(200,151,62,.055);z-index:-1}
/* inner pages: huge editorial hero + persistent motion */
.page-hero{min-height:520px;overflow:hidden;position:relative}.page-hero:after{content:"";position:absolute;inset:auto -15% -45% 35%;height:120%;border:1px solid rgba(200,151,62,.24);border-radius:50%;animation:ykPageOrbit 18s linear infinite}.page-hero h1{font-size:clamp(52px,8vw,118px);letter-spacing:-.045em}.page-hero .eyebrow{letter-spacing:.35em}
@keyframes ykPageOrbit{to{transform:rotate(360deg)}}
.business-row{min-height:620px;align-items:center;border-top:0!important}.business-row:after{content:attr(id);position:absolute;right:0;top:4%;font:900 clamp(70px,12vw,180px)/1 Arial,sans-serif;text-transform:uppercase;color:rgba(8,42,72,.025);letter-spacing:-.07em;z-index:-1}.business-row:nth-child(even) .business-image{transform:rotate(-1.2deg)}.business-row:nth-child(odd) .business-image{transform:rotate(1.2deg)}
.license-grid article{overflow:hidden}.license-grid article:before{content:"";position:absolute;inset:-100% -40%;background:linear-gradient(110deg,transparent 45%,rgba(207,166,91,.12) 50%,transparent 55%);transform:translateX(-50%);transition:transform 1.2s ease}.license-grid article:hover:before{transform:translateX(50%)}
/* scroll choreography classes created by JS */
.yk-scene{--scene-p:0;position:relative}.yk-scene .eyebrow,.yk-scene h2,.yk-scene h3{will-change:transform}.yk-scene.yk-visible .eyebrow{animation:ykLetterIn .9s both}.yk-scene.yk-visible h2{animation:ykTitleIn 1.15s .08s cubic-bezier(.16,1,.3,1) both}.yk-scene.yk-visible p{animation:ykBodyIn .9s .18s both}
@keyframes ykLetterIn{from{opacity:0;letter-spacing:.65em;transform:translateX(-28px)}to{opacity:1;letter-spacing:inherit;transform:none}}@keyframes ykTitleIn{from{opacity:0;transform:translate3d(0,70px,0) skewY(4deg);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}@keyframes ykBodyIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* desktop cursor aura */
@media(hover:hover) and (pointer:fine){body.yamato-kinzoku-premium:after{content:"";position:fixed;z-index:90;pointer-events:none;width:320px;height:320px;left:var(--yk-mx);top:var(--yk-my);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(208,167,89,.09),rgba(208,167,89,.025) 32%,transparent 68%);mix-blend-mode:multiply;transition:left .12s linear,top .12s linear}}
@media(max-width:900px){.yk-motion-layer{opacity:.3}.yk-giant-word{font-size:28vw}.yk-orbit-a{width:90vw;height:90vw}.yk-orbit-b{width:70vw;height:70vw}.hero{height:720px;min-height:720px}.hero:after{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.56) 42%,rgba(255,255,255,.08) 72%)}.feature-project{min-height:auto}.feature-project-media{clip-path:none;transform:none}.business-card:nth-child(n){transform:none}.about-split{min-height:auto}.business-row{min-height:auto}.page-hero{min-height:390px}}
@media(max-width:560px){.yk-intro-mark{font-size:72px}.yk-intro p{font-size:8px}.yk-scroll-progress{width:2px}.hero{height:650px;min-height:650px}.page-hero h1{font-size:50px}.yk-giant-word{display:none}}
@media(prefers-reduced-motion:reduce){.yk-intro{display:none}.yk-motion-layer{display:none}.yk-page-wipe{display:none}.hero-content:before,.page-hero:after{animation:none!important}.business-card:nth-child(n),.about-media,.business-row:nth-child(n) .business-image{transform:none}.yk-scene.yk-visible *{animation:none!important}}

/* =========================================================
   HERO 03 / HUMAN FUTURE PUZZLE ASSEMBLY
   Eight image pieces travel in from different depths and lock
   into one seamless visual before dissolving into the final frame.
   ========================================================= */
.hero-scene{position:absolute;inset:-2%;}
.hero-puzzle{z-index:0;opacity:0;overflow:hidden;transition:opacity 1.35s cubic-bezier(.22,.61,.36,1);background:#eef4ef;perspective:1300px;transform:translateZ(0)}
.hero-puzzle.is-active{opacity:1;z-index:1}
.hero-puzzle-final{position:absolute;inset:0;background-image:var(--puzzle-image);background-size:cover;background-position:center;opacity:0;transform:scale(1.045);filter:saturate(.96) contrast(1.015);transition:opacity 1.25s ease 5.05s;will-change:opacity,transform}
.hero-puzzle.is-assembling .hero-puzzle-final{opacity:.16;animation:ykPuzzleFinalDrift 11s 5.2s cubic-bezier(.2,.65,.25,1) both}
.hero-puzzle.is-complete .hero-puzzle-final{opacity:1}
.hero-puzzle-piece{position:absolute;width:25.12%;height:50.15%;background-image:var(--puzzle-image);background-size:400% 200%;background-repeat:no-repeat;opacity:0;filter:blur(8px) saturate(.9);box-shadow:0 18px 48px rgba(4,27,49,.24),0 0 0 1px rgba(255,255,255,.28) inset;will-change:transform,opacity,filter,clip-path;backface-visibility:hidden;transform-style:preserve-3d}
.hero-puzzle-piece:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 38%,rgba(255,255,255,.75) 49%,transparent 61%);opacity:0;transform:translateX(-120%)}
.hero-puzzle.is-assembling .hero-puzzle-piece{animation:ykPuzzleLock 1.55s cubic-bezier(.14,.85,.18,1) forwards}
.hero-puzzle.is-assembling .hero-puzzle-piece:after{animation:ykPuzzleGlint .95s cubic-bezier(.16,1,.3,1) forwards}
.hero-puzzle.is-complete .hero-puzzle-piece{transition:opacity .9s ease;opacity:0!important}
.hero-puzzle .p1{left:0;top:0;background-position:0% 0%;--tx:-58vw;--ty:-26vh;--rz:-11deg;--ry:26deg;--s:.72;clip-path:polygon(0 0,93% 0,93% 18%,100% 18%,100% 82%,92% 82%,92% 100%,0 100%);animation-delay:.12s!important}
.hero-puzzle .p2{left:25%;top:0;background-position:33.333% 0%;--tx:-16vw;--ty:-55vh;--rz:7deg;--ry:-22deg;--s:.68;clip-path:polygon(0 0,100% 0,100% 100%,8% 100%,8% 78%,0 78%,0 20%,8% 20%,8% 0);animation-delay:.48s!important}
.hero-puzzle .p3{left:50%;top:0;background-position:66.666% 0%;--tx:18vw;--ty:-52vh;--rz:-6deg;--ry:20deg;--s:.76;clip-path:polygon(0 0,92% 0,92% 22%,100% 22%,100% 78%,92% 78%,92% 100%,0 100%,0 82%,7% 82%,7% 18%,0 18%);animation-delay:.82s!important}
.hero-puzzle .p4{left:75%;top:0;background-position:100% 0%;--tx:54vw;--ty:-18vh;--rz:12deg;--ry:-28deg;--s:.7;clip-path:polygon(0 0,100% 0,100% 100%,8% 100%,8% 82%,0 82%,0 18%,8% 18%,8% 0);animation-delay:1.16s!important}
.hero-puzzle .p5{left:0;top:50%;background-position:0% 100%;--tx:-62vw;--ty:28vh;--rz:9deg;--ry:-24deg;--s:.7;clip-path:polygon(0 0,92% 0,92% 18%,100% 18%,100% 82%,92% 82%,92% 100%,0 100%);animation-delay:1.05s!important}
.hero-puzzle .p6{left:25%;top:50%;background-position:33.333% 100%;--tx:-14vw;--ty:56vh;--rz:-8deg;--ry:24deg;--s:.74;clip-path:polygon(8% 0,100% 0,100% 100%,8% 100%,8% 82%,0 82%,0 18%,8% 18%);animation-delay:1.42s!important}
.hero-puzzle .p7{left:50%;top:50%;background-position:66.666% 100%;--tx:15vw;--ty:58vh;--rz:6deg;--ry:-22deg;--s:.69;clip-path:polygon(0 0,92% 0,92% 18%,100% 18%,100% 82%,92% 82%,92% 100%,0 100%,0 80%,7% 80%,7% 20%,0 20%);animation-delay:1.78s!important}
.hero-puzzle .p8{left:75%;top:50%;background-position:100% 100%;--tx:59vw;--ty:30vh;--rz:-12deg;--ry:26deg;--s:.72;clip-path:polygon(8% 0,100% 0,100% 100%,8% 100%,8% 82%,0 82%,0 18%,8% 18%);animation-delay:2.12s!important}
.hero-puzzle .p1:after{animation-delay:1.55s!important}.hero-puzzle .p2:after{animation-delay:1.92s!important}.hero-puzzle .p3:after{animation-delay:2.26s!important}.hero-puzzle .p4:after{animation-delay:2.6s!important}.hero-puzzle .p5:after{animation-delay:2.48s!important}.hero-puzzle .p6:after{animation-delay:2.84s!important}.hero-puzzle .p7:after{animation-delay:3.2s!important}.hero-puzzle .p8:after{animation-delay:3.56s!important}
.hero-puzzle-flare{position:absolute;inset:-18%;z-index:5;pointer-events:none;background:linear-gradient(112deg,transparent 32%,rgba(255,247,215,.06) 42%,rgba(255,255,255,.78) 49%,rgba(219,177,91,.22) 53%,transparent 65%);opacity:0;transform:translateX(-120%) rotate(1deg);mix-blend-mode:screen}
.hero-puzzle.is-assembling .hero-puzzle-flare{animation:ykPuzzleFlare 1.8s 4.25s cubic-bezier(.22,.61,.36,1) both}
.hero-puzzle-ring{position:absolute;z-index:4;border:1px solid rgba(207,166,91,.38);border-radius:50%;opacity:0;pointer-events:none}
.hero-puzzle-ring--a{width:36vw;height:36vw;right:4vw;top:8vh}.hero-puzzle-ring--b{width:18vw;height:18vw;right:17vw;top:25vh}
.hero-puzzle.is-assembling .hero-puzzle-ring--a{animation:ykPuzzleRing 2.4s 3.9s ease-out both}.hero-puzzle.is-assembling .hero-puzzle-ring--b{animation:ykPuzzleRing 2.1s 4.15s ease-out both}
.hero.is-puzzle-active .hero-shade{background:linear-gradient(105deg,#fff 0%,rgba(255,255,255,.97) 25%,rgba(255,255,255,.72) 40%,rgba(255,255,255,.12) 60%,rgba(255,255,255,0) 100%);transition:background 1.2s ease}
.hero.is-puzzle-active .hero-content:before{border-color:rgba(198,154,71,.52);box-shadow:0 0 80px rgba(218,179,97,.08)}
@keyframes ykPuzzleLock{0%{opacity:0;filter:blur(10px) saturate(.82);transform:translate3d(var(--tx),var(--ty),240px) rotateZ(var(--rz)) rotateY(var(--ry)) scale(var(--s))}28%{opacity:1}72%{filter:blur(1px) saturate(.98);transform:translate3d(1.8vw,-1vh,35px) rotateZ(calc(var(--rz) * .08)) rotateY(0) scale(1.02)}88%{transform:translate3d(-.35vw,.15vh,5px) rotateZ(0) scale(.997)}100%{opacity:1;filter:none;transform:translate3d(0,0,0) rotateZ(0) rotateY(0) scale(1)}}
@keyframes ykPuzzleGlint{0%{opacity:0;transform:translateX(-130%)}35%{opacity:.75}100%{opacity:0;transform:translateX(130%)}}
@keyframes ykPuzzleFlare{0%{opacity:0;transform:translateX(-120%) rotate(1deg)}30%{opacity:.82}100%{opacity:0;transform:translateX(120%) rotate(1deg)}}
@keyframes ykPuzzleRing{0%{opacity:0;transform:scale(.55)}35%{opacity:.75}100%{opacity:0;transform:scale(1.35)}}
@keyframes ykPuzzleFinalDrift{0%{transform:scale(1.045) translate3d(0,0,0)}100%{transform:scale(1.11) translate3d(-.9%,-.5%,0)}}
@media(max-width:900px){.hero-puzzle-piece{width:50.12%;height:25.12%;background-size:200% 400%}.hero-puzzle .p1{left:0;top:0;background-position:0 0}.hero-puzzle .p2{left:50%;top:0;background-position:100% 0}.hero-puzzle .p3{left:0;top:25%;background-position:0 33.333%}.hero-puzzle .p4{left:50%;top:25%;background-position:100% 33.333%}.hero-puzzle .p5{left:0;top:50%;background-position:0 66.666%}.hero-puzzle .p6{left:50%;top:50%;background-position:100% 66.666%}.hero-puzzle .p7{left:0;top:75%;background-position:0 100%}.hero-puzzle .p8{left:50%;top:75%;background-position:100% 100%}.hero-puzzle-ring--a{width:70vw;height:70vw;right:-8vw}.hero-puzzle-ring--b{width:38vw;height:38vw}.hero-puzzle-final{background-position:58% center}}
@media(prefers-reduced-motion:reduce){.hero-puzzle{opacity:0}.hero-puzzle.is-active{opacity:1}.hero-puzzle-final{opacity:1!important;animation:none!important;transform:none!important}.hero-puzzle-piece,.hero-puzzle-flare,.hero-puzzle-ring{display:none!important}}

/* ============================================================
   HERO SEQUENCE PRECISION PASS
   01: long forward drift / 02: reverse lateral pull / 03: exact 4x2 assembly.
   This block intentionally wins over earlier art-direction hero rules.
   ============================================================ */
.hero-slide.is-active{animation:none}
.hero-slide--blue.is-active{animation:ykHeroOne 8.5s cubic-bezier(.18,.62,.24,1) both}
.hero-slide--current.is-active{animation:ykHeroTwo 8s cubic-bezier(.18,.62,.24,1) both}
@keyframes ykHeroOne{
  0%{transform:scale(1.025) translate3d(0,0,0)}
  100%{transform:scale(1.105) translate3d(-1.35%,-.45%,0)}
}
@keyframes ykHeroTwo{
  0%{transform:scale(1.125) translate3d(-1.6%,.8%,0)}
  100%{transform:scale(1.035) translate3d(1.2%,-.55%,0)}
}
.hero-puzzle{inset:0!important;opacity:0;transition:opacity 1.45s cubic-bezier(.22,.61,.36,1);background:#dfe7e7}
.hero-puzzle.is-active{opacity:1}
.hero-puzzle-final{inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.018);transition:opacity .75s ease;animation:none!important}
.hero-puzzle.is-complete .hero-puzzle-final{opacity:1;animation:ykPuzzleHold 5.2s cubic-bezier(.2,.65,.25,1) both!important}
.hero-puzzle-piece{width:25%;height:50%;background-size:400% 200%;clip-path:none!important;box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 16px 42px rgba(4,27,49,.18);filter:none}
.hero-puzzle .p1{left:0;top:0;background-position:0% 0%;--tx:-52vw;--ty:-18vh;--rz:-8deg;--ry:18deg;--s:.78;animation-delay:.08s!important}
.hero-puzzle .p2{left:25%;top:0;background-position:33.333333% 0%;--tx:-14vw;--ty:-48vh;--rz:6deg;--ry:-16deg;--s:.76;animation-delay:.38s!important}
.hero-puzzle .p3{left:50%;top:0;background-position:66.666667% 0%;--tx:13vw;--ty:-46vh;--rz:-5deg;--ry:15deg;--s:.78;animation-delay:.68s!important}
.hero-puzzle .p4{left:75%;top:0;background-position:100% 0%;--tx:49vw;--ty:-16vh;--rz:8deg;--ry:-18deg;--s:.77;animation-delay:.98s!important}
.hero-puzzle .p5{left:0;top:50%;background-position:0% 100%;--tx:-50vw;--ty:24vh;--rz:7deg;--ry:-16deg;--s:.78;animation-delay:.88s!important}
.hero-puzzle .p6{left:25%;top:50%;background-position:33.333333% 100%;--tx:-13vw;--ty:48vh;--rz:-6deg;--ry:17deg;--s:.77;animation-delay:1.18s!important}
.hero-puzzle .p7{left:50%;top:50%;background-position:66.666667% 100%;--tx:14vw;--ty:50vh;--rz:5deg;--ry:-15deg;--s:.78;animation-delay:1.48s!important}
.hero-puzzle .p8{left:75%;top:50%;background-position:100% 100%;--tx:51vw;--ty:24vh;--rz:-8deg;--ry:18deg;--s:.76;animation-delay:1.78s!important}
.hero-puzzle.is-assembling .hero-puzzle-piece{animation:ykPuzzleLockPrecise 1.45s cubic-bezier(.12,.86,.18,1) forwards}
.hero-puzzle.is-complete .hero-puzzle-piece{opacity:0!important;transition:opacity .72s ease .08s}
@keyframes ykPuzzleLockPrecise{
  0%{opacity:0;transform:translate3d(var(--tx),var(--ty),220px) rotateZ(var(--rz)) rotateY(var(--ry)) scale(var(--s));filter:blur(7px)}
  25%{opacity:1}
  78%{transform:translate3d(.45vw,-.25vh,18px) rotateZ(calc(var(--rz)*.04)) rotateY(0) scale(1.008);filter:blur(.4px)}
  100%{opacity:1;transform:translate3d(0,0,0) rotateZ(0) rotateY(0) scale(1);filter:none}
}
@keyframes ykPuzzleHold{0%{transform:scale(1.018) translate3d(0,0,0)}100%{transform:scale(1.07) translate3d(-.45%,-.25%,0)}}
/* Disable the old navigation shutter completely; the opening YK sequence is the sole branded shutter. */
.yk-page-wipe{display:none!important}
@media(max-width:900px){
 .hero-puzzle-piece{width:50%;height:25%;background-size:200% 400%}
 .hero-puzzle .p1{left:0;top:0;background-position:0 0}.hero-puzzle .p2{left:50%;top:0;background-position:100% 0}
 .hero-puzzle .p3{left:0;top:25%;background-position:0 33.333333%}.hero-puzzle .p4{left:50%;top:25%;background-position:100% 33.333333%}
 .hero-puzzle .p5{left:0;top:50%;background-position:0 66.666667%}.hero-puzzle .p6{left:50%;top:50%;background-position:100% 66.666667%}
 .hero-puzzle .p7{left:0;top:75%;background-position:0 100%}.hero-puzzle .p8{left:50%;top:75%;background-position:100% 100%}
 .hero-puzzle-final{background-position:58% center}
}
@media(prefers-reduced-motion:reduce){.hero-slide--blue.is-active,.hero-slide--current.is-active,.hero-puzzle.is-complete .hero-puzzle-final{animation:none!important;transform:none!important}}
html.yk-intro-seen .yk-intro{display:none!important}
/* Pixel-accurate puzzle crop: source is 3:2 while the hero is wider, so cover is width-led.
   400% auto makes every desktop tile reference exactly one hero-width image; vertical center matches final cover. */
@media(min-width:901px){
 .hero-puzzle-piece{background-size:400% auto;background-position-y:center}
 .hero-puzzle .p1,.hero-puzzle .p5{background-position-x:0%}
 .hero-puzzle .p2,.hero-puzzle .p6{background-position-x:33.333333%}
 .hero-puzzle .p3,.hero-puzzle .p7{background-position-x:66.666667%}
 .hero-puzzle .p4,.hero-puzzle .p8{background-position-x:100%}
}

/* PRODUCTION HERO LOCK — HERO ONLY */
.hero-slide--blue.is-active{animation:ykHeroOneProd 7.6s cubic-bezier(.18,.62,.24,1) both!important}
@keyframes ykHeroOneProd{0%{transform:scale(1.025) translate3d(0,0,0)}100%{transform:scale(1.092) translate3d(-1.05%,-.32%,0)}}
.hero-slide--current{transform:scale(1.038) translate3d(.82%,-.32%,0)}
.hero-slide--current.is-active{animation:ykHeroTwoProd 8s cubic-bezier(.18,.62,.24,1) both!important}
@keyframes ykHeroTwoProd{0%{transform:scale(1.105) translate3d(-1.05%,.48%,0)}78%,100%{transform:scale(1.038) translate3d(.82%,-.32%,0)}}
.hero-puzzle-piece{background-image:var(--puzzle-source)!important}
.hero-puzzle{background:#071b2d!important}
.hero-puzzle-final{background-image:var(--puzzle-image)!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;background-color:#071b2d!important;transform:scale(.96)!important}
.hero-puzzle.is-complete .hero-puzzle-final{opacity:1!important;animation:ykPeopleProdHold 5.8s cubic-bezier(.2,.65,.25,1) both!important}
@keyframes ykPeopleProdHold{0%{transform:scale(.96)}100%{transform:scale(.91)}}
@media(max-width:900px){.hero-puzzle-final{background-size:contain!important;background-position:center!important}}
@media(prefers-reduced-motion:reduce){.hero-puzzle-final{transform:scale(.91)!important}}

/* HERO 03 FINAL PRODUCTION PASS — HERO ONLY */
.hero-puzzle{inset:-2%!important;overflow:hidden!important;background:#071b2d!important}
.hero-puzzle-piece{background-image:var(--puzzle-source)!important;clip-path:none!important;filter:none!important;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset!important;transform-style:flat!important;backface-visibility:hidden!important}
.hero-puzzle.is-assembling .hero-puzzle-piece{animation:ykPuzzleSilkLock 2.15s cubic-bezier(.22,.72,.18,1) forwards!important}
.hero-puzzle .p1{animation-delay:0s!important}.hero-puzzle .p2{animation-delay:.10s!important}.hero-puzzle .p3{animation-delay:.20s!important}.hero-puzzle .p4{animation-delay:.30s!important}.hero-puzzle .p5{animation-delay:.16s!important}.hero-puzzle .p6{animation-delay:.26s!important}.hero-puzzle .p7{animation-delay:.36s!important}.hero-puzzle .p8{animation-delay:.46s!important}
@keyframes ykPuzzleSilkLock{0%{opacity:0;transform:translate3d(var(--tx),var(--ty),0) rotate(var(--rz)) scale(.86)}12%{opacity:1}100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}}
.hero-puzzle-flare,.hero-puzzle-ring{display:none!important}
.hero-puzzle-bridge{position:absolute;inset:0;z-index:3;background-image:var(--puzzle-source);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;transform:translate3d(0,0,0) scale(1);transform-origin:center;will-change:transform,opacity;pointer-events:none}
.hero-puzzle.is-bridging .hero-puzzle-bridge{opacity:1;animation:ykPuzzleBecomeTile 1.55s .08s cubic-bezier(.2,.72,.2,1) both}
@keyframes ykPuzzleBecomeTile{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}68%{opacity:1;transform:translate3d(25vw,-18vh,0) scale(.145)}100%{opacity:0;transform:translate3d(25vw,-18vh,0) scale(.125)}}
.hero-puzzle.is-bridging .hero-puzzle-piece{opacity:0!important;transition:opacity .42s ease!important}
.hero-puzzle-final{position:absolute!important;inset:0!important;z-index:2!important;background-image:var(--puzzle-image)!important;background-size:cover!important;background-repeat:no-repeat!important;background-position:center center!important;background-color:transparent!important;opacity:0!important;transform:scale(1.012)!important;transition:opacity 1.15s cubic-bezier(.22,.61,.36,1)!important}
.hero-puzzle.is-bridging .hero-puzzle-final,.hero-puzzle.is-complete .hero-puzzle-final{opacity:1!important}
.hero-puzzle.is-complete .hero-puzzle-final{animation:ykPeopleFullBleedHold 6.1s cubic-bezier(.2,.65,.25,1) both!important}
@keyframes ykPeopleFullBleedHold{0%{transform:scale(1.012)}100%{transform:scale(1.045) translate3d(-.35%,-.18%,0)}}
@media(max-width:900px){.hero-puzzle{inset:-2%!important}.hero-puzzle-final,.hero-puzzle-bridge{background-size:cover!important;background-position:center center!important}@keyframes ykPuzzleBecomeTile{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}68%{opacity:1;transform:translate3d(22vw,-22vh,0) scale(.18)}100%{opacity:0;transform:translate3d(22vw,-22vh,0) scale(.15)}}}
@media(max-width:560px){.hero-puzzle-final{background-position:50% center!important}}
@media(prefers-reduced-motion:reduce){.hero-puzzle-final{opacity:1!important;transform:none!important;animation:none!important}.hero-puzzle-piece,.hero-puzzle-bridge{display:none!important}}


/* ============================================================
   PRODUCTION FINAL HERO — requested changes only
   01 / 02 unchanged
   03 = smooth 8-piece assembly
   04 = full-bleed people mosaic
   ============================================================ */

/* Keep inactive scenes fully out of the stacking context. */
.hero-scene{
  pointer-events:none;
}
.hero-scene:not(.is-active){
  opacity:0!important;
  z-index:0!important;
}
.hero-scene.is-active{
  opacity:1!important;
  z-index:2!important;
}

/* Slide 03: smooth assembly only, no bridge/morph/final replacement. */
.hero-puzzle{
  inset:-2%!important;
  overflow:hidden!important;
  background:#071b2d!important;
}
.hero-puzzle-piece{
  background-image:var(--puzzle-source)!important;
  clip-path:none!important;
  filter:none!important;
  backface-visibility:hidden!important;
  transform-style:flat!important;
  will-change:transform,opacity;
}
.hero-puzzle.is-assembling .hero-puzzle-piece{
  animation:ykPuzzleProductionSmooth 2.45s cubic-bezier(.22,.72,.18,1) forwards!important;
}
.hero-puzzle .p1{animation-delay:.00s!important}
.hero-puzzle .p2{animation-delay:.08s!important}
.hero-puzzle .p3{animation-delay:.16s!important}
.hero-puzzle .p4{animation-delay:.24s!important}
.hero-puzzle .p5{animation-delay:.12s!important}
.hero-puzzle .p6{animation-delay:.20s!important}
.hero-puzzle .p7{animation-delay:.28s!important}
.hero-puzzle .p8{animation-delay:.36s!important}
@keyframes ykPuzzleProductionSmooth{
  0%{opacity:0;transform:translate3d(var(--tx),var(--ty),0) rotate(var(--rz)) scale(.90)}
  18%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) rotate(0deg) scale(1)}
}
.hero-puzzle.is-complete .hero-puzzle-piece{
  opacity:1!important;
  transform:translate3d(0,0,0) rotate(0deg) scale(1)!important;
}
.hero-puzzle-flare,.hero-puzzle-ring,.hero-puzzle-bridge,.hero-puzzle-final{
  display:none!important;
}

/* Slide 04: exactly the same full-bleed behavior as standard hero photos. */
.hero-people-final{
  inset:0!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  transform:scale(1.015);
  will-change:transform,opacity;
}
.hero-people-final.is-active{
  animation:ykHeroPeopleFinal 8.2s cubic-bezier(.18,.62,.24,1) both!important;
}
@keyframes ykHeroPeopleFinal{
  0%{transform:scale(1.015) translate3d(0,0,0)}
  100%{transform:scale(1.055) translate3d(-.3%,-.15%,0)}
}

/* Tablet/mobile: crop cleanly, never stretch, never add margins. */
@media(max-width:900px){
  .hero-puzzle{inset:-2%!important}
  .hero-people-final{
    inset:0!important;
    background-size:cover!important;
    background-position:center center!important;
  }
}
@media(max-width:560px){
  .hero-people-final{
    background-size:cover!important;
    background-position:50% 50%!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-puzzle-piece{opacity:1!important;transform:none!important;animation:none!important}
  .hero-people-final{transform:none!important;animation:none!important}
}


/* ============================================================
   HERO MOTION FINAL — requested animation changes only
   03: assembled puzzle gets whole-scene cinematic motion.
   04: slow zoom-out + drift until scheduler returns to 01.
   ============================================================ */

/* 03: keep the assembly unchanged, then animate the assembled whole. */
.hero-puzzle.is-complete{
  animation:ykPuzzleWholeMove 3.0s cubic-bezier(.2,.62,.24,1) both!important;
  transform-origin:center center!important;
}
@keyframes ykPuzzleWholeMove{
  0%{transform:scale(1) translate3d(0,0,0)}
  100%{transform:scale(1.055) translate3d(-.65%,-.35%,0)}
}

/* 04: deliberately zoom OUT, with a slow lateral drift. */
.hero-people-final{
  transform-origin:center center!important;
}
.hero-people-final.is-active{
  animation:ykHeroPeopleZoomOut 8.2s cubic-bezier(.18,.62,.24,1) both!important;
}
@keyframes ykHeroPeopleZoomOut{
  0%{transform:scale(1.115) translate3d(1.0%,.45%,0)}
  100%{transform:scale(1.015) translate3d(-.45%,-.2%,0)}
}
@media(max-width:900px){
  .hero-puzzle.is-complete{
    animation:ykPuzzleWholeMoveMobile 3.0s cubic-bezier(.2,.62,.24,1) both!important;
  }
  @keyframes ykPuzzleWholeMoveMobile{
    0%{transform:scale(1) translate3d(0,0,0)}
    100%{transform:scale(1.035) translate3d(-.25%,-.18%,0)}
  }
  .hero-people-final.is-active{
    animation:ykHeroPeopleZoomOutMobile 8.2s cubic-bezier(.18,.62,.24,1) both!important;
  }
  @keyframes ykHeroPeopleZoomOutMobile{
    0%{transform:scale(1.08) translate3d(.4%,.2%,0)}
    100%{transform:scale(1.01) translate3d(-.2%,-.1%,0)}
  }
}


/* TRUE FINAL HERO — slide 03 only */
.hero-puzzle.is-complete{
  animation:ykPuzzleSlowZoomOut 3.0s cubic-bezier(.22,.61,.36,1) both!important;
  transform-origin:center center!important;
}
@keyframes ykPuzzleSlowZoomOut{
  0%{transform:scale(1.075) translate3d(.35%,.18%,0)}
  100%{transform:scale(1.01) translate3d(-.28%,-.12%,0)}
}
@media(max-width:900px){
  .hero-puzzle.is-complete{
    animation:ykPuzzleSlowZoomOutMobile 3.0s cubic-bezier(.22,.61,.36,1) both!important;
  }
  @keyframes ykPuzzleSlowZoomOutMobile{
    0%{transform:scale(1.055) translate3d(.18%,.1%,0)}
    100%{transform:scale(1.005) translate3d(-.12%,-.06%,0)}
  }
}


/* ============================================================
   HERO 03 ABSOLUTE FINAL — seamless handoff + responsive geometry
   ============================================================ */

/* The assembled frame and the first frame of the camera move are identical. */
.hero-puzzle.is-complete{
  animation:ykPuzzleSeamlessSlowZoom 3.0s linear both!important;
  transform-origin:center center!important;
}
@keyframes ykPuzzleSeamlessSlowZoom{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(-.22%,-.10%,0) scale(.965)}
}

/* Tablet/mobile: reconstruct the source image as an exact 4 x 2 grid.
   No clip-path tabs, no auto aspect changes, no stretching. */
@media(max-width:900px){
  .hero-puzzle{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    transform:none;
  }
  .hero-puzzle-piece{
    position:absolute!important;
    width:25%!important;
    height:50%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    clip-path:none!important;
    background-image:var(--puzzle-source)!important;
    background-size:400% 200%!important;
    background-repeat:no-repeat!important;
  }
  .hero-puzzle .p1{left:0!important;top:0!important;background-position:0% 0%!important}
  .hero-puzzle .p2{left:25%!important;top:0!important;background-position:33.333333% 0%!important}
  .hero-puzzle .p3{left:50%!important;top:0!important;background-position:66.666667% 0%!important}
  .hero-puzzle .p4{left:75%!important;top:0!important;background-position:100% 0%!important}
  .hero-puzzle .p5{left:0!important;top:50%!important;background-position:0% 100%!important}
  .hero-puzzle .p6{left:25%!important;top:50%!important;background-position:33.333333% 100%!important}
  .hero-puzzle .p7{left:50%!important;top:50%!important;background-position:66.666667% 100%!important}
  .hero-puzzle .p8{left:75%!important;top:50%!important;background-position:100% 100%!important}

  .hero-puzzle.is-complete{
    animation:ykPuzzleSeamlessSlowZoomMobile 3.0s linear both!important;
  }
  @keyframes ykPuzzleSeamlessSlowZoomMobile{
    0%{transform:translate3d(0,0,0) scale(1)}
    100%{transform:translate3d(-.10%,-.05%,0) scale(.975)}
  }
}


/* ============================================================
   ABSOLUTE FINAL FIXES
   1) Business grid trailing area = white
   2) Hero 03 seam removal at assembled state
   3) Responsive seam removal on tablet/mobile
   ============================================================ */

/* Business section: eliminate the grey trailing cell/area after item 07. */
.business-grid,
.business-list,
.business-cards,
.business-grid::before,
.business-grid::after{
  background-color:#fff!important;
}
.business-card,
.business-item{
  background-color:#fff!important;
}
/* The final empty grid track/cell must visually merge into the page. */
.business-grid > :empty,
.business-list > :empty{
  background:#fff!important;
  border-color:transparent!important;
}

/* Hero 03: overlap adjoining pieces by ~1px to prevent sub-pixel seams.
   At completion, pieces remain exactly aligned; no visible center hairline. */
.hero-puzzle-piece{
  margin:-0.6px!important;
  width:calc(var(--piece-w, 25%) + 1.2px)!important;
  height:calc(var(--piece-h, 50%) + 1.2px)!important;
}
.hero-puzzle.is-complete .hero-puzzle-piece{
  filter:none!important;
  box-shadow:none!important;
  outline:0!important;
  border:0!important;
}

/* Tablet/mobile: exact 4x2 geometry with a tiny overlap at every join. */
@media(max-width:900px){
  .hero-puzzle-piece{
    width:calc(25% + 1.2px)!important;
    height:calc(50% + 1.2px)!important;
    margin:-0.6px!important;
  }
  .hero-puzzle .p1{left:0!important;top:0!important}
  .hero-puzzle .p2{left:calc(25% - .6px)!important;top:0!important}
  .hero-puzzle .p3{left:calc(50% - .6px)!important;top:0!important}
  .hero-puzzle .p4{left:calc(75% - .6px)!important;top:0!important}
  .hero-puzzle .p5{left:0!important;top:calc(50% - .6px)!important}
  .hero-puzzle .p6{left:calc(25% - .6px)!important;top:calc(50% - .6px)!important}
  .hero-puzzle .p7{left:calc(50% - .6px)!important;top:calc(50% - .6px)!important}
  .hero-puzzle .p8{left:calc(75% - .6px)!important;top:calc(50% - .6px)!important}
}

/* On very narrow phones, preserve the same stable reconstruction. */
@media(max-width:560px){
  .hero-puzzle{
    overflow:hidden!important;
    width:100%!important;
    height:100%!important;
  }
  .hero-puzzle-piece{
    background-size:400% 200%!important;
    background-repeat:no-repeat!important;
  }
}


/* Exact TOP business grid trailing-area fix. */
.business-showcase,
.business-card-grid{
  background:#fff!important;
}
.business-card-grid::before,
.business-card-grid::after{
  background:#fff!important;
}
.business-card-grid > .business-card{
  background:#fff!important;
}


/* ============================================================
   HERO TEXT READABILITY — FINAL
   Scope: hero readability only. No layout/content/motion changes.
   ============================================================ */

/* Strengthen only the text-side light veil while preserving the photograph. */
.hero-shade{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.97) 0%,
      rgba(255,255,255,.92) 24%,
      rgba(255,255,255,.76) 40%,
      rgba(255,255,255,.34) 55%,
      rgba(255,255,255,0) 72%)!important;
}

/* Main hero copy: stable contrast over every photograph. */
.hero-copy,
.hero-copy h1,
.hero-title{
  color:#071b2d!important;
}
.hero-copy h1,
.hero-title{
  text-shadow:0 1px 1px rgba(255,255,255,.55)!important;
}
.hero-copy p,
.hero-lead,
.hero-description{
  color:#172331!important;
  text-shadow:0 1px 1px rgba(255,255,255,.7)!important;
}

/* Keep the gold accent, but deepen it slightly for contrast. */
.hero-copy .gold,
.hero-copy .accent,
.hero-title .gold,
.hero-title .accent{
  color:#9b741d!important;
}

/* Tablet/mobile: stronger veil exactly where copy overlaps the image. */
@media(max-width:900px){
  .hero-shade{
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.97) 0%,
        rgba(255,255,255,.91) 48%,
        rgba(255,255,255,.62) 68%,
        rgba(255,255,255,.18) 88%,
        rgba(255,255,255,0) 100%)!important;
  }
}
@media(max-width:560px){
  .hero-shade{
    background:
      linear-gradient(180deg,
        rgba(255,255,255,.92) 0%,
        rgba(255,255,255,.86) 38%,
        rgba(255,255,255,.60) 62%,
        rgba(255,255,255,.16) 84%,
        rgba(255,255,255,0) 100%)!important;
  }
  .hero-copy h1,
  .hero-title{
    color:#071b2d!important;
    text-shadow:0 1px 1px rgba(255,255,255,.75)!important;
  }
  .hero-copy p,
  .hero-lead,
  .hero-description{
    color:#111d29!important;
  }
}

/* ============================================================
   SMART LIVING — top page final section
   ============================================================ */
.smart-living{background:#fff;overflow:hidden}
.smart-living__visual{position:relative;min-height:720px;background:#071421;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(64px,7vw,112px) clamp(28px,7vw,112px) clamp(46px,5vw,76px)}
.smart-living__visual>picture{position:absolute;inset:0;width:100%;height:100%}
.smart-living__visual>picture img{width:100%;height:100%;object-fit:cover;object-position:center 54%;filter:saturate(.72) contrast(1.04)}
.smart-living__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,16,29,.96) 0%,rgba(4,16,29,.88) 38%,rgba(4,16,29,.48) 68%,rgba(4,16,29,.30) 100%),linear-gradient(0deg,rgba(4,16,29,.82) 0%,transparent 55%)}
.smart-living__intro,.smart-living__devices{position:relative;z-index:2}
.smart-living__intro{max-width:760px}
.smart-living__intro .eyebrow{color:#c7a45b;margin-bottom:18px;letter-spacing:.2em}
.smart-living__intro h2{font-family:var(--serif);font-size:clamp(34px,4vw,62px);font-weight:500;line-height:1.38;letter-spacing:.04em;margin:0 0 26px;color:#fff}
.smart-living__intro>p:last-child{font-size:clamp(14px,1.15vw,17px);line-height:2;color:rgba(255,255,255,.88)}
.smart-living__devices{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));margin-top:64px;border-top:1px solid rgba(199,164,91,.42);border-bottom:1px solid rgba(255,255,255,.14)}
.smart-living__devices>div{min-width:0;padding:22px 14px 20px;border-right:1px solid rgba(255,255,255,.13)}
.smart-living__devices>div:last-child{border-right:0}
.smart-living__devices span{display:block;color:#c7a45b;font-size:9px;letter-spacing:.13em;white-space:nowrap;margin-bottom:10px}
.smart-living__devices b{display:block;font-size:14px;font-weight:500;margin-bottom:7px;color:#fff}
.smart-living__devices small{display:block;font-size:10px;line-height:1.6;color:rgba(255,255,255,.68)}
.smart-living__merits{padding-top:clamp(72px,8vw,120px);padding-bottom:clamp(72px,8vw,120px)}
.smart-living__merit-grid{max-width:1180px;margin:52px auto 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #dfe3e6;border-bottom:1px solid #dfe3e6}
.smart-living__merit{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:44px 48px 46px 8px;align-items:start}
.smart-living__merit+ .smart-living__merit{border-left:1px solid #dfe3e6;padding-left:48px}
.smart-living__merit em{font-family:var(--serif);font-size:46px;font-style:normal;color:#ad8738;line-height:1}
.smart-living__merit h3{font-family:var(--serif);font-size:clamp(22px,2vw,29px);font-weight:500;color:#071b2d;margin:0 0 16px}
.smart-living__merit p{font-size:14px;line-height:2;color:#59636c;margin:0}
.smart-living__signature{text-align:center;margin:48px 0 0;font-family:var(--serif);font-size:clamp(15px,1.5vw,21px);letter-spacing:.12em;color:#071b2d}
.smart-living__signature i{font-style:normal;color:#ad8738;margin:0 14px}
@media(max-width:1100px){
 .smart-living__visual{min-height:760px;padding-left:clamp(28px,5vw,64px);padding-right:clamp(28px,5vw,64px)}
 .smart-living__devices{grid-template-columns:repeat(4,1fr)}
 .smart-living__devices>div:nth-child(4n){border-right:0}
 .smart-living__devices>div:nth-child(-n+4){border-bottom:1px solid rgba(255,255,255,.13)}
}
@media(max-width:760px){
 .smart-living__visual{min-height:auto;padding:72px 22px 30px}
 .smart-living__visual>picture img{object-position:58% center}
 .smart-living__veil{background:linear-gradient(180deg,rgba(4,16,29,.94) 0%,rgba(4,16,29,.78) 50%,rgba(4,16,29,.94) 100%)}
 .smart-living__intro h2{font-size:clamp(29px,8vw,40px);line-height:1.45}
 .smart-living__intro>p:last-child{font-size:14px;line-height:1.9}
 .smart-living__intro>p:last-child br{display:none}
 .smart-living__devices{grid-template-columns:repeat(2,1fr);margin-top:44px}
 .smart-living__devices>div{padding:18px 10px}
 .smart-living__devices>div:nth-child(2n){border-right:0}
 .smart-living__devices>div:nth-child(-n+6){border-bottom:1px solid rgba(255,255,255,.13)}
 .smart-living__devices span{font-size:8px}.smart-living__devices b{font-size:13px}.smart-living__devices small{font-size:9px}
 .smart-living__merit-grid{grid-template-columns:1fr;margin-top:36px}
 .smart-living__merit{grid-template-columns:58px 1fr;gap:16px;padding:30px 0}
 .smart-living__merit+ .smart-living__merit{border-left:0;border-top:1px solid #dfe3e6;padding-left:0}
 .smart-living__merit em{font-size:36px}
 .smart-living__merit h3{font-size:22px;margin-bottom:12px}
 .smart-living__merit p{font-size:13px;line-height:1.9}
 .smart-living__signature{line-height:1.8;margin-top:34px}
}
@media(max-width:380px){
 .smart-living__visual{padding-left:18px;padding-right:18px}
 .smart-living__devices>div{padding-left:7px;padding-right:7px}
 .smart-living__merit{grid-template-columns:48px 1fr}
}

/* ============================================================
   FINAL REQUESTED FIX — SMART LIVING visual + HERO 03 aspect ratio
   ============================================================ */
.smart-living__visual>picture img{
  object-fit:cover!important;
  object-position:center center!important;
  filter:saturate(.96) contrast(1.02) brightness(1.05)!important;
}
.smart-living__veil{
  background:linear-gradient(90deg,rgba(4,16,29,.88) 0%,rgba(4,16,29,.73) 34%,rgba(4,16,29,.30) 58%,rgba(4,16,29,.05) 100%),linear-gradient(0deg,rgba(4,16,29,.34),transparent 46%)!important;
}
@media(max-width:760px){
  .smart-living__visual>picture img{object-position:60% center!important}
  .smart-living__veil{background:linear-gradient(180deg,rgba(4,16,29,.84) 0%,rgba(4,16,29,.60) 45%,rgba(4,16,29,.78) 100%)!important}
}

/* HERO 03: each tile clips one viewport-sized COVER image.
   This preserves the 3:2 source aspect ratio on portrait phones/tablets instead
   of squeezing the source into the hero viewport. */
.hero-puzzle-piece{
  overflow:hidden!important;
  background-image:none!important;
  background-color:#071b2d!important;
}
.hero-puzzle-piece::before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  width:400%!important;
  height:200%!important;
  background-image:var(--puzzle-source)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  pointer-events:none!important;
  backface-visibility:hidden!important;
}
.hero-puzzle-piece::after{z-index:1!important}
.hero-puzzle .p1::before{left:0!important;top:0!important}
.hero-puzzle .p2::before{left:-100%!important;top:0!important}
.hero-puzzle .p3::before{left:-200%!important;top:0!important}
.hero-puzzle .p4::before{left:-300%!important;top:0!important}
.hero-puzzle .p5::before{left:0!important;top:-100%!important}
.hero-puzzle .p6::before{left:-100%!important;top:-100%!important}
.hero-puzzle .p7::before{left:-200%!important;top:-100%!important}
.hero-puzzle .p8::before{left:-300%!important;top:-100%!important}
@media(max-width:900px){
  .hero-puzzle-piece{background-image:none!important;background-size:auto!important}
  .hero-puzzle-piece::before{width:400%!important;height:200%!important;background-size:cover!important;background-position:center center!important}
}
@media(max-width:560px){
  .hero-puzzle-piece{background-image:none!important;background-size:auto!important}
  .hero-puzzle-piece::before{background-size:cover!important;background-position:center center!important}
}


/* FINAL: SMART LIVING quality-safe presentation + HERO03 aspect fix */
.smart-living__visual{background:#071421!important;overflow:hidden!important}
.smart-living__visual>picture{position:absolute!important;inset:0!important;display:flex!important;justify-content:flex-end!important}
.smart-living__visual>picture img{
 width:min(68vw,980px)!important;height:100%!important;margin-left:auto!important;
 object-fit:cover!important;object-position:center!important;filter:none!important;transform:none!important
}
.smart-living__veil{background:linear-gradient(90deg,#071421 0%,rgba(7,20,33,.98) 30%,rgba(7,20,33,.86) 45%,rgba(7,20,33,.40) 64%,rgba(7,20,33,.05) 100%)!important}
@media(max-width:1100px){.smart-living__visual>picture img{width:72%!important}}
@media(max-width:760px){
 .smart-living__visual{min-height:760px!important}
 .smart-living__visual>picture{align-items:flex-end!important}
 .smart-living__visual>picture img{width:100%!important;height:47%!important;object-fit:cover!important}
 .smart-living__veil{background:linear-gradient(180deg,#071421 0%,rgba(7,20,33,.98) 44%,rgba(7,20,33,.82) 59%,rgba(7,20,33,.24) 80%,rgba(7,20,33,.10) 100%)!important}
}
@media(max-width:430px){.smart-living__visual{min-height:790px!important}.smart-living__visual>picture img{height:44%!important}}

/* HERO 03: every tile clips one full cover-rendered image; no aspect-ratio squeezing. */
.hero-puzzle-piece{overflow:hidden!important;background-image:none!important;background-color:#071b2d!important}
.hero-puzzle-piece::before{
 content:""!important;position:absolute!important;z-index:0!important;width:400%!important;height:200%!important;
 background-image:var(--puzzle-source)!important;background-size:cover!important;background-repeat:no-repeat!important;
 background-position:center!important;pointer-events:none!important;backface-visibility:hidden!important
}
.hero-puzzle-piece::after{z-index:1!important}
.hero-puzzle .p1::before{left:0!important;top:0!important}
.hero-puzzle .p2::before{left:-100%!important;top:0!important}
.hero-puzzle .p3::before{left:-200%!important;top:0!important}
.hero-puzzle .p4::before{left:-300%!important;top:0!important}
.hero-puzzle .p5::before{left:0!important;top:-100%!important}
.hero-puzzle .p6::before{left:-100%!important;top:-100%!important}
.hero-puzzle .p7::before{left:-200%!important;top:-100%!important}
.hero-puzzle .p8::before{left:-300%!important;top:-100%!important}
@media(max-width:900px){
 .hero-puzzle-piece{background-image:none!important;background-size:auto!important}
 .hero-puzzle-piece::before{width:400%!important;height:200%!important;background-size:cover!important;background-position:center!important}
}


/* ============================================================
   2026-09 FINAL REVIEWED
   SMART LIVING: high-quality 3-image gallery, no image stretching
   HERO copy remains unchanged except "ビジネス" -> "空間創造"
   ============================================================ */

.smart-living__visual{
  position:relative!important;
  min-height:760px!important;
  overflow:hidden!important;
  background:#061522!important;
  isolation:isolate!important;
}

/* Kill the previous single-picture background implementation. */
.smart-living__visual>picture{
  display:none!important;
}

/* Premium 3-panel image wall.
   Each source is displayed with object-fit:cover at or below natural size. */
.smart-living__gallery{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr)!important;
  grid-template-rows:1fr 1fr!important;
  gap:10px!important;
  padding:10px!important;
  background:#061522!important;
}
.smart-living__gallery figure{
  position:relative!important;
  margin:0!important;
  overflow:hidden!important;
  background:#0b1a28!important;
}
.smart-living__gallery-main{
  grid-column:1!important;
  grid-row:1 / span 2!important;
}
.smart-living__gallery-sub--architecture{
  grid-column:2!important;
  grid-row:1!important;
}
.smart-living__gallery-sub--city{
  grid-column:2!important;
  grid-row:2!important;
}
.smart-living__gallery picture,
.smart-living__gallery img{
  display:block!important;
  width:100%!important;
  height:100%!important;
}
.smart-living__gallery img{
  object-fit:cover!important;
  transform:none!important;
  filter:none!important;
}
.smart-living__gallery-main img{
  object-position:center center!important;
}
.smart-living__gallery-sub--architecture img{
  object-position:center 42%!important;
}
.smart-living__gallery-sub--city img{
  object-position:center 45%!important;
}

/* Readability veil: dark only where copy/devices sit; images remain visible. */
.smart-living__veil{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:
    linear-gradient(90deg,
      rgba(3,13,24,.94) 0%,
      rgba(3,13,24,.88) 29%,
      rgba(3,13,24,.68) 45%,
      rgba(3,13,24,.30) 61%,
      rgba(3,13,24,.07) 78%,
      rgba(3,13,24,.02) 100%),
    linear-gradient(0deg,rgba(3,13,24,.74) 0%,rgba(3,13,24,.08) 44%,rgba(3,13,24,.04) 100%)!important;
  pointer-events:none!important;
}
.smart-living__intro,
.smart-living__devices{
  position:relative!important;
  z-index:2!important;
}

/* Tablet: retain the 3-image composition without narrow, distorted columns. */
@media(max-width:1100px){
  .smart-living__visual{
    min-height:800px!important;
  }
  .smart-living__gallery{
    grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)!important;
    gap:8px!important;
    padding:8px!important;
  }
  .smart-living__veil{
    background:
      linear-gradient(90deg,
        rgba(3,13,24,.95) 0%,
        rgba(3,13,24,.86) 39%,
        rgba(3,13,24,.56) 60%,
        rgba(3,13,24,.14) 82%,
        rgba(3,13,24,.04) 100%),
      linear-gradient(0deg,rgba(3,13,24,.78) 0%,rgba(3,13,24,.10) 48%,rgba(3,13,24,.05) 100%)!important;
  }
}

/* Phone: images become a clean horizontal mosaic in the lower half.
   No source is squeezed; each remains object-fit:cover. */
@media(max-width:760px){
  .smart-living__visual{
    min-height:900px!important;
    padding:70px 20px 34px!important;
  }
  .smart-living__gallery{
    inset:auto 0 0 0!important;
    height:46%!important;
    grid-template-columns:1.35fr .8fr!important;
    grid-template-rows:1fr 1fr!important;
    gap:5px!important;
    padding:5px!important;
  }
  .smart-living__gallery-main{
    grid-column:1!important;
    grid-row:1 / span 2!important;
  }
  .smart-living__gallery-sub--architecture{
    grid-column:2!important;
    grid-row:1!important;
  }
  .smart-living__gallery-sub--city{
    grid-column:2!important;
    grid-row:2!important;
  }
  .smart-living__veil{
    background:
      linear-gradient(180deg,
        #061522 0%,
        rgba(6,21,34,.98) 42%,
        rgba(6,21,34,.82) 59%,
        rgba(6,21,34,.40) 78%,
        rgba(6,21,34,.20) 100%)!important;
  }
  .smart-living__devices{
    margin-top:38px!important;
  }
}

@media(max-width:430px){
  .smart-living__visual{
    min-height:940px!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .smart-living__gallery{
    height:43%!important;
  }
}

/* HERO 03 mobile/tablet aspect protection.
   Keep the existing full-image cover reconstruction and prevent old rules
   from reapplying a stretched 400% x 200% background directly to the tile. */
@media(max-width:900px){
  .hero-puzzle-piece{
    background-image:none!important;
    background-size:auto!important;
    background-position:initial!important;
  }
  .hero-puzzle-piece::before{
    width:400%!important;
    height:200%!important;
    background-image:var(--puzzle-source)!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-position:center center!important;
  }
}


/* ============================================================
   SMART LIVING — USER-APPROVED 6-PHOTO FINAL
   ============================================================ */
.smart-living--photo-final{padding:112px 0 104px;background:#f7f5f0;color:#0a1b2d;overflow:hidden}
.smart-living-final__head{text-align:center;max-width:900px;margin:0 auto 52px}
.smart-living-final__eyebrow{margin:0 0 13px;color:#a77d28;font-size:12px;font-weight:700;letter-spacing:.24em}
.smart-living-final__head h2{margin:0;font-family:var(--font-serif);font-size:clamp(30px,3.3vw,52px);font-weight:500;line-height:1.35;letter-spacing:.06em}
.smart-living-final__lead{margin:20px auto 0;color:#4c5660;font-size:15px;line-height:2;letter-spacing:.045em}
.smart-living-final__feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.smart-living-final__feature{position:relative;min-width:0;background:#071522;box-shadow:0 18px 45px rgba(6,20,34,.12);overflow:hidden}
.smart-living-final__photo{height:340px;overflow:hidden}
.smart-living-final__photo picture,.smart-living-final__photo img{display:block;width:100%;height:100%}
.smart-living-final__photo img{object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.smart-living-final__feature:hover .smart-living-final__photo img{transform:scale(1.025)}
.smart-living-final__feature-copy{min-height:230px;padding:30px 30px 34px;color:#fff;border-top:1px solid rgba(199,158,76,.25)}
.smart-living-final__num{display:block;margin-bottom:12px;color:#c8a25b;font-family:var(--font-serif);font-size:15px;letter-spacing:.16em}
.smart-living-final__feature-copy h3{margin:0 0 14px;font-family:var(--font-serif);font-size:22px;font-weight:500;letter-spacing:.04em}
.smart-living-final__feature-copy p{margin:0;color:rgba(255,255,255,.74);font-size:13px;line-height:1.95}
.smart-living-final__mosaic{display:grid;grid-template-columns:1.35fr .825fr .825fr;gap:10px;margin-top:10px}
.smart-living-final__mosaic figure{height:270px;margin:0;overflow:hidden;background:#0a1825}
.smart-living-final__mosaic picture,.smart-living-final__mosaic img{display:block;width:100%;height:100%}
.smart-living-final__mosaic img{object-fit:cover}
.smart-living-final__devices{margin-top:58px;padding:46px 48px;background:#fff;border:1px solid rgba(10,27,45,.09);box-shadow:0 14px 38px rgba(7,21,34,.055)}
.smart-living-final__devices-label{margin:0 0 10px;color:#a77d28;font-size:11px;font-weight:700;letter-spacing:.22em}
.smart-living-final__devices h3{margin:0 0 27px;font-family:var(--font-serif);font-size:26px;font-weight:500}
.smart-living-final__device-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e7e2d8;border-left:1px solid #e7e2d8}
.smart-living-final__device-grid span{padding:17px 18px;border-right:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8;font-size:13px}
.smart-living-final__merits{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.smart-living-final__merit{padding:42px 46px;background:#fff;border:1px solid rgba(10,27,45,.08)}
.smart-living-final__merit>span{color:#a77d28;font-size:11px;font-weight:700;letter-spacing:.2em}
.smart-living-final__merit h3{margin:11px 0 13px;font-family:var(--font-serif);font-size:26px;font-weight:500}
.smart-living-final__merit p{margin:0;color:#56616a;font-size:13px;line-height:2}
.smart-living-final__signature{text-align:center;margin:48px 20px 0;color:#0a1b2d;font-family:var(--font-serif);font-size:18px;letter-spacing:.08em}
.smart-living-final__signature b{padding:0 12px;color:#aa812f;font-weight:400}
@media(max-width:1000px){
 .smart-living--photo-final{padding:88px 0 84px}
 .smart-living-final__feature-grid{gap:10px}
 .smart-living-final__photo{height:260px}
 .smart-living-final__feature-copy{min-height:250px;padding:25px 22px 28px}
 .smart-living-final__feature-copy h3{font-size:19px}
 .smart-living-final__mosaic{grid-template-columns:1.2fr .9fr .9fr;gap:7px}
 .smart-living-final__mosaic figure{height:220px}
 .smart-living-final__devices{padding:38px 32px}
}
@media(max-width:760px){
 .smart-living--photo-final{padding:72px 0 68px}
 .smart-living-final__head{margin-bottom:34px;padding:0 21px}
 .smart-living-final__head h2{font-size:28px;line-height:1.48}
 .smart-living-final__lead{font-size:13px;line-height:1.9}
 .smart-living-final__feature-grid{display:block;padding:0 16px}
 .smart-living-final__feature{display:grid;grid-template-columns:42% 58%;margin-bottom:10px}
 .smart-living-final__photo{height:auto;min-height:205px}
 .smart-living-final__feature-copy{min-height:205px;padding:22px 19px 22px;border-top:0;border-left:1px solid rgba(199,158,76,.25)}
 .smart-living-final__feature-copy h3{font-size:17px;line-height:1.55}
 .smart-living-final__feature-copy p{font-size:11px;line-height:1.8}
 .smart-living-final__num{font-size:12px;margin-bottom:8px}
 .smart-living-final__mosaic{grid-template-columns:1fr 1fr;padding:0 16px;gap:6px}
 .smart-living-final__mosaic figure{height:150px}
 .smart-living-final__mosaic-wide{grid-column:1 / -1;height:210px!important}
 .smart-living-final__devices{margin:38px 16px 0;padding:31px 20px}
 .smart-living-final__devices h3{font-size:21px;line-height:1.55}
 .smart-living-final__device-grid{grid-template-columns:1fr 1fr}
 .smart-living-final__device-grid span{padding:14px 11px;font-size:11px}
 .smart-living-final__merits{grid-template-columns:1fr;margin:10px 16px 0;gap:10px}
 .smart-living-final__merit{padding:30px 24px}
 .smart-living-final__merit h3{font-size:22px}
 .smart-living-final__signature{font-size:14px;line-height:1.8;margin-top:34px}
}
@media(max-width:430px){
 .smart-living-final__feature{grid-template-columns:40% 60%}
 .smart-living-final__feature-copy{padding:19px 15px}
 .smart-living-final__feature-copy h3{font-size:16px}
 .smart-living-final__photo{min-height:220px}
 .smart-living-final__feature-copy{min-height:220px}
}


/* ============================================================
   SMART LIVING — FINAL SITE-WIDE SPACING ALIGNMENT
   Matches existing YAMATO KINZOKU section gutters.
   ============================================================ */

/* Desktop: same visual content width as the other main sections. */
.smart-living--photo-final .smart-living-final__head,
.smart-living--photo-final .smart-living-final__feature-grid,
.smart-living--photo-final .smart-living-final__mosaic,
.smart-living--photo-final .smart-living-final__devices,
.smart-living--photo-final .smart-living-final__merits{
  width:calc(100% - 56px)!important;
  max-width:1224px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Keep intentional vertical spacing while removing previous edge-to-edge mobile padding. */
.smart-living--photo-final .smart-living-final__feature-grid{
  padding-left:0!important;
  padding-right:0!important;
}
.smart-living--photo-final .smart-living-final__mosaic{
  padding-left:0!important;
  padding-right:0!important;
}
.smart-living--photo-final .smart-living-final__devices{
  box-sizing:border-box!important;
}
.smart-living--photo-final .smart-living-final__merits{
  box-sizing:border-box!important;
}

/* Tablet: same 22px side gutter used elsewhere in the current theme. */
@media(max-width:900px){
  .smart-living--photo-final .smart-living-final__head,
  .smart-living--photo-final .smart-living-final__feature-grid,
  .smart-living--photo-final .smart-living-final__mosaic,
  .smart-living--photo-final .smart-living-final__devices,
  .smart-living--photo-final .smart-living-final__merits{
    width:calc(100% - 44px)!important;
    max-width:none!important;
  }

  .smart-living--photo-final .smart-living-final__feature-grid{
    gap:10px!important;
  }

  .smart-living--photo-final .smart-living-final__mosaic{
    gap:7px!important;
  }

  .smart-living--photo-final .smart-living-final__devices{
    padding-left:28px!important;
    padding-right:28px!important;
  }
}

/* Smartphone: same 20px side gutter as the site's hero / main content.
   Cards stay comfortably inside the viewport and never touch the screen edge. */
@media(max-width:560px){
  .smart-living--photo-final .smart-living-final__head,
  .smart-living--photo-final .smart-living-final__feature-grid,
  .smart-living--photo-final .smart-living-final__mosaic,
  .smart-living--photo-final .smart-living-final__devices,
  .smart-living--photo-final .smart-living-final__merits{
    width:calc(100% - 40px)!important;
  }

  .smart-living--photo-final .smart-living-final__head{
    padding-left:0!important;
    padding-right:0!important;
  }

  .smart-living--photo-final .smart-living-final__feature-grid{
    padding-left:0!important;
    padding-right:0!important;
  }

  .smart-living--photo-final .smart-living-final__mosaic{
    padding-left:0!important;
    padding-right:0!important;
  }

  .smart-living--photo-final .smart-living-final__devices{
    margin-top:34px!important;
    padding:28px 20px!important;
  }

  .smart-living--photo-final .smart-living-final__merits{
    margin-top:10px!important;
  }

  .smart-living--photo-final .smart-living-final__feature{
    grid-template-columns:42% 58%!important;
  }

  .smart-living--photo-final .smart-living-final__photo,
  .smart-living--photo-final .smart-living-final__feature-copy{
    min-height:215px!important;
  }

  .smart-living--photo-final .smart-living-final__mosaic-wide{
    height:205px!important;
  }

  .smart-living--photo-final .smart-living-final__mosaic figure:not(.smart-living-final__mosaic-wide){
    height:145px!important;
  }

  .smart-living--photo-final .smart-living-final__signature{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}

/* Narrow phones: preserve readability and tap-safe spacing without overflow. */
@media(max-width:390px){
  .smart-living--photo-final .smart-living-final__head,
  .smart-living--photo-final .smart-living-final__feature-grid,
  .smart-living--photo-final .smart-living-final__mosaic,
  .smart-living--photo-final .smart-living-final__devices,
  .smart-living--photo-final .smart-living-final__merits{
    width:calc(100% - 32px)!important;
  }

  .smart-living--photo-final .smart-living-final__feature{
    grid-template-columns:39% 61%!important;
  }

  .smart-living--photo-final .smart-living-final__feature-copy{
    padding:18px 14px!important;
  }

  .smart-living--photo-final .smart-living-final__device-grid{
    grid-template-columns:1fr!important;
  }
}


/* ============================================================
   HERO — SLIDE-SYNCED TEXT COLOR FINAL
   Slides 01/02: "空間創造" + description are white.
   Slide 03: original dark text is preserved.
   No overlay / gradient / box is added.
   ============================================================ */
@media(max-width:900px){
  .hero-approved.hero-text-on-dark #heroTitle .hero-a5,
  .hero-approved.hero-text-on-dark .hero-copy{
    color:#fff!important;
    text-shadow:0 2px 10px rgba(0,0,0,.34)!important;
    transition:color .35s ease,text-shadow .35s ease;
  }

  .hero-approved:not(.hero-text-on-dark) #heroTitle .hero-a5,
  .hero-approved:not(.hero-text-on-dark) .hero-copy{
    transition:color .35s ease,text-shadow .35s ease;
  }
}


/* ============================================================
   PRODUCTION MOBILE/TABLET — THREE SCOPED FIXES ONLY
   1) Prevent horizontal viewport drift / keep PDF button in viewport.
   2) Keep footer TEL/FAX pairs intact and stack them on small screens.
   3) Stack COMPANY values cards on tablet/mobile with equal width.
   Desktop layout remains unchanged.
   ============================================================ */
.footer-contact-line + .footer-contact-line::before{content:"　"}

@media(max-width:900px){
  /* 1: viewport + fixed brochure link containment */
  html,
  body.yamato-kinzoku-premium{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .brochure-fixed{
    max-width:calc(100vw - 28px);
    box-sizing:border-box;
  }

  /* 3: COMPANY values — equal-width vertical cards */
  .values-section .value-grid{
    grid-template-columns:minmax(0,1fr);
    width:100%;
    max-width:100%;
  }
  .values-section .value-grid article{
    width:100%;
    max-width:100%;
    min-width:0;
  }
}

@media(max-width:560px){
  /* 1: match the existing 12px fixed-button gutter */
  .brochure-fixed{
    max-width:calc(100vw - 24px);
  }

  /* 2: footer TEL/FAX — two clean, unbroken rows */
  .footer-contact-line{
    display:block;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }
  .footer-contact-line + .footer-contact-line::before{content:none}
}


/* CONTACT — confirmation step / completion state */
.contact-confirm h2{font-family:serif;font-size:40px;font-weight:400;margin:0 0 8px}.contact-confirm-lead{margin:0 0 30px;color:var(--muted);font-size:13px}.contact-confirm-list{margin:0;border-top:1px solid var(--line)}.contact-confirm-list>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.contact-confirm-list dt{font-size:12px;font-weight:700;color:var(--navy)}.contact-confirm-list dd{margin:0;font-size:14px;overflow-wrap:anywhere;white-space:normal}.contact-confirm-actions{display:flex;align-items:center;gap:14px;margin-top:32px;flex-wrap:wrap}.contact-confirm-actions form{margin:0}.contact-confirm-actions .button{margin:0}.button--outline{border:1px solid var(--navy);background:#fff;color:var(--navy)}.button--outline:hover{background:var(--soft)}.form-error{border-color:#d7b9b9}.form-error h2{color:#8a3030}
@media(max-width:560px){.contact-confirm h2{font-size:32px}.contact-confirm-list>div{grid-template-columns:1fr;gap:5px;padding:16px 0}.contact-confirm-actions{align-items:stretch;flex-direction:column}.contact-confirm-actions form,.contact-confirm-actions .button{width:100%}}
