:root{--paper:#f8f5eb;--ink:#30352c;--muted:#626859;--sage:#dce3cf;--orange:#f0bc9e;--line:#30352c;--gutter:clamp(22px,5vw,88px);--header-height:100px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Hiragino Sans',sans-serif;line-height:1.85;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img,svg{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #725420;outline-offset:6px}h1,h2,h3,p,figure{margin:0}a,button{touch-action:manipulation}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:20px;z-index:100;transform:translateY(-160%);padding:12px 20px;background:var(--ink);color:var(--paper);border-radius:5px}.skip-link:focus{transform:none}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none}.scroll-progress span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:#a17b35}
.header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px var(--gutter);min-height:var(--header-height);background:rgba(248,245,235,.96);border-bottom:1px solid var(--line)}.logo{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;font-weight:900;letter-spacing:.08em;font-size:21px;line-height:1.35}.logo img{width:43px;height:48px;object-fit:contain;mix-blend-mode:multiply}.logo small{display:block;font-weight:500;font-size:10px;letter-spacing:.17em;margin-bottom:3px}.nav{display:flex;align-items:center;gap:clamp(18px,2.5vw,42px);font-weight:700;font-size:13px}.nav>a:not(.nav-contact){position:relative;padding:12px 0}.nav>a:not(.nav-contact):after{content:'';position:absolute;bottom:7px;left:0;width:100%;height:1px;transform:scaleX(0);transform-origin:right;background:var(--ink);transition:transform .25s}.nav>a:hover:after{transform:scaleX(1);transform-origin:left}.nav-contact{display:flex;align-items:center;gap:34px;padding:13px 25px;border:1px solid var(--line);border-radius:40px;background:var(--sage);transition:background .2s}.nav-contact:hover{background:var(--orange)}.nav-contact span{font-size:20px}.menu-toggle{display:none;background:none;border:1px solid var(--ink);border-radius:30px;min-height:44px;padding:8px 16px;align-items:center;gap:10px;font-size:12px;font-weight:700}.menu-icon{width:15px;height:10px;border-top:1px solid;border-bottom:1px solid;transition:transform .2s}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:780px;height:calc(100svh - var(--header-height));max-height:1040px;border-bottom:1px solid var(--line)}.hero-kicker{position:relative;z-index:2;display:flex;align-items:center;gap:11px;padding:26px var(--gutter);font-size:12px;font-weight:700;letter-spacing:.08em}.sun-symbol{font-size:30px;line-height:1}.hero-kicker-en{font:500 11px 'Outfit',sans-serif;letter-spacing:.12em;margin-left:auto}.town-scene{position:absolute;inset:0;pointer-events:none}.town-svg{position:absolute;right:-3%;top:-7%;width:106%;height:auto;max-width:none}.town-scene figcaption{position:absolute;right:var(--gutter);bottom:85px;font:10px 'Outfit','Zen Kaku Gothic New',sans-serif;letter-spacing:.06em;color:var(--muted)}.hero-copy{position:absolute;left:var(--gutter);top:29%;z-index:2;max-width:560px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;margin-bottom:16px}.hero h1{font-size:clamp(38px,4vw,62px);line-height:1.45;font-weight:900;letter-spacing:.075em}.hero-description{font-size:14px;line-height:2;letter-spacing:.04em;margin-top:20px}.round-link{display:inline-flex;align-items:center;gap:26px;font-size:13px;font-weight:700;margin-top:24px}.arrow{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;font:400 26px 'Outfit',sans-serif;transition:background .25s,transform .25s}.round-link:hover .arrow,.back-top:hover .arrow{background:var(--ink);color:var(--paper);transform:rotate(45deg)}.hero-wordmark{position:absolute;left:calc(var(--gutter) - 8px);bottom:65px;z-index:1;font:900 clamp(100px,13.7vw,226px)/.85 'Outfit','Arial Black',sans-serif;letter-spacing:-.055em;pointer-events:none}.wordmark-dot{color:#b98257}.hero-bottom{position:absolute;bottom:0;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;min-height:60px;gap:16px}.scroll-cue{display:flex;align-items:center;gap:14px;font:500 10px 'Outfit',sans-serif;letter-spacing:.13em;padding:12px 0}.scroll-cue>span{font-size:21px}.motion-toggle{display:flex;gap:8px;align-items:center;border:1px solid #a6aa97;border-radius:30px;padding:8px 14px;background:var(--paper);font-size:11px;min-height:36px}.motion-indicator{width:8px;height:8px;border-radius:50%;background:#697d56}.motion-toggle[aria-pressed=true] .motion-indicator{background:#b98257}
.section{padding:110px var(--gutter);scroll-margin-top:20px}.section-index{display:block;font:500 12px 'Outfit',sans-serif;letter-spacing:.15em}.about{position:relative;display:grid;grid-template-columns:1fr 1.25fr;gap:8%;padding-top:130px;padding-bottom:135px;overflow:hidden}.about-label{display:flex;flex-direction:column;align-items:flex-start;gap:40px}.sun-drawing{font-size:160px;line-height:1;color:#c89962;font-family:serif;font-weight:400}.about h2,.section-heading h2,.company h2,.contact h2{font-size:clamp(29px,3vw,45px);line-height:1.6;letter-spacing:.075em;font-weight:700}.about p{font-size:16px;line-height:2.3;margin-top:26px}.text-link{display:inline-flex;align-items:center;gap:26px;border-bottom:1px solid var(--ink);font-size:13px;font-weight:700;padding:12px 0 9px;margin-top:22px}.text-link span[aria-hidden]{font-size:22px;transition:transform .2s}.text-link:hover span[aria-hidden]{transform:translate(3px,-3px)}.about-side{position:absolute;left:var(--gutter);bottom:56px;font:500 11px 'Outfit',sans-serif!important;letter-spacing:.17em}
.business{position:relative;background:var(--sage);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:90px 90px 0 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:55px}.section-heading h2{margin-top:24px}.section-heading>p{font-size:14px;line-height:2.1;padding-bottom:8px}.business-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:1360px;margin:auto}.business-card{min-width:0;display:flex;flex-direction:column;padding:32px;border:1px solid var(--line);border-radius:24px;background:#f7edda;transition:box-shadow .3s,transform .3s}.van-card{background:#edf0e3}.business-card:focus-within{box-shadow:5px 6px 0 #a5b295}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-number{font:500 34px 'Outfit',sans-serif}.card-category{font:500 10px 'Outfit',sans-serif;letter-spacing:.1em;text-align:right}.business-art{position:relative;display:grid;place-items:center;height:255px;margin:10px 0 22px;isolation:isolate}.business-art img,.business-art .art-svg{width:255px;height:200px;object-fit:contain;transition:transform .45s;z-index:1}.van-art img{width:270px}.art-orbit{position:absolute;inset:30px 9%;border:1px solid #afaa91;border-radius:50%;transform:rotate(-15deg);background:#edd1b2}.van-art .art-orbit{background:#d4dfc4;border-color:#acb79e;transform:rotate(12deg)}.art-label{position:absolute;bottom:0;left:0;font:500 9px 'Outfit',sans-serif;letter-spacing:.12em}.black-plate{position:absolute;z-index:2;right:2%;bottom:25px;border:1px solid #e1c774;outline:3px solid var(--ink);background:var(--ink);color:#eed58a;border-radius:3px;padding:5px 10px;transform:rotate(-7deg);text-align:center;font-size:9px;line-height:1.4}.black-plate strong{font-size:14px;font-weight:500}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:70px;border-top:1px solid #aaa995;padding-top:20px;margin-bottom:18px}.card-heading h3{font-size:clamp(20px,2vw,28px);letter-spacing:.04em;line-height:1.4}.jrms-logo{width:95px;height:45px;object-fit:contain;mix-blend-mode:multiply}.service-name{font:700 13px/1.1 'Outfit',sans-serif;letter-spacing:.05em}.business-card>p{font-size:14px;line-height:2.1;margin-bottom:20px}.tags{display:flex;flex-wrap:wrap;gap:7px;padding:0;list-style:none;margin:0 0 30px}.tags li{border:1px solid #a5aa97;border-radius:24px;padding:3px 10px;font-size:11px}.business-link{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:50px;padding:13px 14px 13px 23px;margin-top:auto;background:var(--paper);font-weight:700;font-size:15px;transition:background .25s,color .25s}.business-link small{display:block;font-size:9px;font-weight:400;letter-spacing:.06em;margin-top:1px}.business-link .arrow{width:40px;height:40px;background:var(--ink);color:var(--paper);border-color:var(--ink)}.business-link:hover{background:var(--ink);color:var(--paper)}.business-link:hover .arrow{background:var(--paper);color:var(--ink);transform:rotate(45deg)}
.company{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;align-items:start;padding-top:130px;padding-bottom:130px}.company h2{margin-top:24px}.company-heading>p{margin-top:22px;font-size:14px}.company-heading>img{width:74px;height:83px;object-fit:contain;mix-blend-mode:multiply;margin-top:35px}.company-table{margin:0;border-top:1px solid var(--ink)}.company-table>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px;padding:29px 0;border-bottom:1px solid #b2b5a4;font-size:14px}.company-table dt{font-weight:700}.company-table dd{margin:0;overflow-wrap:anywhere;line-height:2}
.contact{position:relative;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);border-radius:100px 100px 0 0;background:var(--orange);overflow:hidden;padding-top:85px;padding-bottom:80px}.contact-top{position:relative}.contact h2{margin-top:24px;font-size:clamp(29px,3.8vw,56px)}.contact-top>p{font-size:14px;margin-top:16px}.contact-sun{position:absolute;right:3%;top:-20px;font:200px/1 serif;color:var(--ink);opacity:.85}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;margin-top:44px;border-top:1px solid var(--ink)}.contact-card{padding:30px 32px 0 0;min-width:0}.contact-card+.contact-card{border-left:1px solid var(--ink);padding-left:45px}.contact-card h3{font-size:14px;font-weight:500;margin-bottom:15px}.tel{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:420px;font:500 clamp(24px,3.1vw,43px) 'Outfit',sans-serif;letter-spacing:-.025em}.tel>span{font-size:25px}.tel:hover{text-decoration:underline;text-underline-offset:6px}.note,.contact-pending{font-size:12px;line-height:1.9}.note{margin-top:13px}.contact-card .text-link{margin-top:10px}.contact-pending{color:#4a4f43}
.footer{padding:50px var(--gutter) 20px;overflow:hidden}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.back-top{display:inline-flex;align-items:center;gap:18px;font-size:11px}.footer nav{display:flex;flex-wrap:wrap;gap:16px 30px;margin-top:35px;font-size:12px}.footer nav a:hover{text-decoration:underline;text-underline-offset:5px}.footer-wordmark{font:800 clamp(70px,16.5vw,265px)/1 'Outfit',sans-serif;letter-spacing:-.06em;margin:45px 0 18px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #b5b7a7;padding-top:18px;font:10px 'Outfit','Zen Kaku Gothic New',sans-serif;letter-spacing:.05em}
/* Motion is opt-in after JS initializes; external SVG assets remain completely static.
   Vehicle ground anchors follow y = .577x - 18.9 (the single road; left-hand traffic, so SE-bound vehicles use the building-side lane).
   SVG fronts use the same axis. */
html[data-motion] .town-spark{animation:work-spark 4s ease-in-out infinite}
html[data-motion] .town-carrier{animation:carry-parcel 7s ease-in-out -2s infinite alternate}
html[data-motion] .town-walker{animation:neighborhood-walk 8s ease-in-out -3s infinite alternate}
html[data-motion] .person-leg{animation:person-step 1.3s ease-in-out infinite alternate;transform-box:view-box;transform-origin:-4px -18px}
html[data-motion] .person-leg-right{animation-delay:-1.3s;transform-origin:5px -18px}
html[data-motion] .person-body{animation:person-bob 1.3s ease-in-out -.5s infinite alternate}
html[data-motion] .person-arm{animation:person-arm-swing 1.3s ease-in-out infinite alternate;transform-box:view-box;transform-origin:-9px -35px}
html[data-motion] .person-arm-right{animation-delay:-1.3s;transform-origin:9px -35px}
html[data-motion] .person-work-arm{animation:mechanic-work 3.6s ease-in-out -.8s infinite alternate;transform-box:view-box;transform-origin:9px -34px}
html[data-motion] .person-parcel{animation:parcel-balance 2.6s ease-in-out infinite alternate}
html[data-motion] .scroll-cue>span{animation:scroll-nudge 2.5s ease-in-out infinite}
html[data-motion=paused] .town-svg *,html[data-motion=paused] .scroll-cue>span{animation-play-state:paused}
html[data-motion=paused]{scroll-behavior:auto}
@keyframes carry-parcel{from{transform:translate(0,0)}to{transform:translate(12px,-6.924px)}}
@keyframes neighborhood-walk{from{transform:translate(0,0)}to{transform:translate(10px,5.77px)}}
@keyframes person-step{from{transform:rotate(-8deg)}to{transform:rotate(8deg)}}
@keyframes person-arm-swing{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes person-bob{from{transform:translateY(0)}to{transform:translateY(-.8px)}}
@keyframes mechanic-work{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes parcel-balance{from{transform:translateY(0)}to{transform:translateY(-.5px)}}
@keyframes work-spark{0%,40%,75%,100%{opacity:0}45%,65%{opacity:1}55%{opacity:.3}}
@keyframes scroll-nudge{0%,70%,100%{transform:translateY(0)}85%{transform:translateY(5px)}}
@media(hover:hover){html[data-motion=running] .business-card:hover .business-art img,.business-art .art-svg{transform:translateY(-9px)}.business-card:hover{box-shadow:5px 6px 0 #a5b295}}
@media(min-width:1650px){.town-svg{top:-16%;width:100%}.hero-copy{top:27%}.hero-wordmark{font-size:215px}}
@media(max-width:1100px){:root{--gutter:32px;--header-height:88px}.header{padding-top:14px;padding-bottom:14px}.nav{gap:20px;font-size:12px}.nav-contact{padding:10px 18px;gap:15px}.hero{min-height:760px;max-height:860px}.town-svg{width:120%;right:-12%;top:0}.hero-copy{top:32%}.hero h1{font-size:43px}.hero-wordmark{bottom:80px;font-size:15.5vw}.town-scene figcaption{bottom:66px}.business-card{padding:25px}.card-heading{align-items:flex-start}.card-heading h3{font-size:22px}.jrms-logo{width:80px}.company{gap:6%;grid-template-columns:.85fr 1.15fr}.contact-card+.contact-card{padding-left:30px}}
@media(max-width:760px){:root{--gutter:22px;--header-height:80px}html{scroll-padding-top:95px}.header{flex-wrap:wrap;gap:14px;padding-top:12px;padding-bottom:12px;min-height:80px}.logo{font-size:18px;gap:10px}.logo img{width:36px;height:41px}.logo small{font-size:9px}.nav{width:100%;gap:8px 18px;flex-wrap:wrap;font-size:12px;border-top:1px solid #b6baa8;padding-top:10px}.nav-contact{padding:8px 15px}.header[data-enhanced=true] .menu-toggle{display:flex}.header[data-enhanced=true] .nav{display:none}.header[data-enhanced=true][data-menu-open=true] .nav{display:flex}.header[data-menu-open=true] .menu-icon{transform:rotate(-45deg)}.hero{min-height:0;height:auto;max-height:none;padding:0 0 67px}.hero-kicker{padding:20px var(--gutter) 10px;font-size:10px;gap:7px;flex-wrap:wrap}.sun-symbol{font-size:24px}.hero-kicker-en{font-size:8px;letter-spacing:.05em}.town-scene{position:relative;inset:auto;height:380px;overflow:hidden;margin-top:-7px}.town-svg{width:660px;left:50%;right:auto;top:-8px;transform:translateX(-62%)}.town-scene figcaption{right:var(--gutter);bottom:5px;font-size:8px;background:var(--paper);padding:2px 5px}.hero-copy{position:relative;top:auto;left:auto;padding:12px var(--gutter) 0;max-width:none}.eyebrow{font-size:11px;margin-bottom:12px}.hero h1{font-size:clamp(32px,7.8vw,52px);line-height:1.5;letter-spacing:.04em}.hero-description{margin-top:16px;font-size:13px;line-height:2}.round-link{margin-top:19px;font-size:12px;gap:18px}.hero-wordmark{position:relative;left:auto;bottom:auto;padding:0 var(--gutter);font-size:19.5vw;letter-spacing:-.055em;line-height:1;margin-top:35px}.hero-bottom{min-height:56px}.scroll-cue{font-size:8px;gap:9px;letter-spacing:.06em}.motion-toggle{font-size:10px;padding:7px 10px;min-height:36px}.section{padding:75px var(--gutter)}.about{grid-template-columns:1fr;gap:28px;padding-bottom:100px}.about-label{flex-direction:row;align-items:center;justify-content:space-between;gap:20px}.sun-drawing{font-size:65px}.about h2,.section-heading h2,.company h2{font-size:30px}.about p{font-size:14px;line-height:2.2;margin-top:22px}.about-side{bottom:35px;font-size:9px!important}.desktop-break{display:none}.business{border-radius:45px 45px 0 0}.section-heading{display:block;margin-bottom:32px}.section-heading h2{margin-top:19px}.section-heading>p{font-size:13px;margin-top:22px}.business-grid{grid-template-columns:1fr;gap:25px;max-width:540px}.business-card{padding:24px;border-radius:20px}.business-art{height:240px}.card-heading h3{font-size:24px}.jrms-logo{width:90px}.business-card>p{font-size:13px}.business-link{font-size:14px;padding-left:18px}.company{grid-template-columns:1fr;gap:35px}.company-heading{position:relative;padding-right:78px}.company-heading>img{position:absolute;right:0;top:32px;width:56px;height:63px;margin:0}.company-heading>p{font-size:13px;margin-top:15px}.company-table>div{grid-template-columns:80px minmax(0,1fr);gap:12px;padding:23px 0;font-size:13px}.contact{border-radius:45px 45px 0 0}.contact h2{font-size:31px;letter-spacing:.025em;margin-top:20px}.contact-top>p{font-size:13px}.contact-sun{font-size:85px;right:-7px;top:-16px;opacity:.5}.contact-grid{grid-template-columns:1fr;margin-top:30px}.contact-card{padding:25px 0}.contact-card+.contact-card{padding:27px 0 0;border-left:0;border-top:1px solid var(--ink)}.contact-card h3{font-size:13px}.tel{font-size:clamp(27px,7.8vw,37px);max-width:380px}.note{font-size:11px}.footer{padding-top:35px}.footer-top{gap:12px}.back-top{font-size:10px;gap:8px}.back-top .arrow{width:36px;height:36px;font-size:20px}.footer nav{font-size:11px;gap:12px 22px;margin-top:28px}.footer-wordmark{font-size:19.2vw;margin:32px 0 18px}.footer-bottom{font-size:8px;gap:15px}.footer-bottom p:last-child{letter-spacing:0}}
@media(max-width:380px){:root{--gutter:18px}.hero-kicker-en{display:none}.town-scene{height:340px}.town-svg{width:600px;top:4px}.hero h1{font-size:31px}.hero-wordmark{font-size:19vw}.card-heading h3{font-size:21px}.business-card{padding:20px}.business-art{height:215px}.business-art img,.business-art .art-svg{height:175px}.card-category{font-size:9px}.contact h2{font-size:27px}.back-top{font-size:0}.contact-sun{font-size:65px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}

.motion-toggle:disabled{cursor:default;opacity:.8}

/* サービス内容・主な取引先 */
.services{padding-top:120px;padding-bottom:120px;border-top:1px solid var(--ink)}
.services-head h2{font-size:clamp(29px,3vw,45px);line-height:1.6;letter-spacing:.075em;font-weight:700;margin-top:24px}
.service-columns{display:grid;grid-template-columns:1fr 1fr;margin-top:56px;border-top:1px solid var(--ink)}
.service-col{padding:36px 40px 12px 0;min-width:0}
.service-col+.service-col{border-left:1px solid var(--ink);padding-left:48px;padding-right:0}
.service-col h3{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;font-size:22px;font-weight:700;letter-spacing:.06em}
.service-col h3 small,.clients h3 small{font:600 11px/1 'Barlow Condensed',sans-serif;letter-spacing:.2em;color:var(--muted)}
.service-col ul{list-style:none;margin:26px 0 0;padding:0}
.service-col li{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid #b2b5a4;font-size:14px;line-height:1.8}
.service-col li:before{content:'';flex:none;width:12px;height:12px;margin-top:6.5px;background:#c97a52;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(0)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(45)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(90)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(135)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(180)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(225)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(270)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(315)'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(0)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(45)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(90)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(135)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(180)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(225)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(270)'/%3E%3Cpolygon points='-3.4,-48 3.4,-48 1.1,0 -1.1,0' transform='rotate(315)'/%3E%3C/svg%3E") center/contain no-repeat}
.service-col .text-link{margin-top:26px}
.clients{margin-top:78px}
.clients h3{display:flex;align-items:baseline;gap:16px;font-size:19px;font-weight:700;letter-spacing:.06em}
.client-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.client-list li{border:1px solid #a5aa97;border-radius:26px;padding:10px 20px;font-size:13px;line-height:1.5;background:#fffdf5}
@media(max-width:900px){.services{padding-top:90px;padding-bottom:90px}.service-columns{grid-template-columns:1fr}.service-col{padding-right:0}.service-col+.service-col{border-left:0;border-top:1px solid var(--ink);padding-left:0}.clients{margin-top:60px}}
@media(max-width:600px){.service-col h3{font-size:19px}.service-col li{font-size:13px}.client-list{gap:9px}.client-list li{padding:8px 14px;font-size:12px}}

/* 車・バンのホバー演出(--t: 0=閉 → 1=開。ボンネット/スライドドアを行列で回転・移動) */
@property --t{syntax:'<number>';inherits:true;initial-value:0}
.business-art{--ang:calc(var(--t) * 64deg)}
.art-svg{overflow:visible}
.car-svg .hood{transform:matrix(calc(0.54 + 0.46 * cos(var(--ang)) + 0.04 * sin(var(--ang))),calc(-0.31 + 0.31 * cos(var(--ang)) + -0.44 * sin(var(--ang))),calc(-0.8 + 0.8 * cos(var(--ang)) + 0.07 * sin(var(--ang))),calc(0.46 + 0.54 * cos(var(--ang)) + -0.76 * sin(var(--ang))),calc(123.12 + -123.12 * cos(var(--ang)) + -11.19 * sin(var(--ang))),calc(82.21 + -82.21 * cos(var(--ang)) + 116.66 * sin(var(--ang))))}
.car-svg .bay{opacity:calc(var(--t) * 4)}
.car-svg .wrench-in{transform:translateY(calc((1 - var(--t)) * -16px));opacity:calc(var(--t) * 1.4)}
.car-svg .spark{opacity:0;transform-box:fill-box;transform-origin:center}
.van-svg .van-door{transform:translate(calc(var(--t) * -25px),calc(var(--t) * -14.4px))}
.van-svg .van-open{opacity:calc(var(--t) * 6)}

@media(prefers-reduced-motion:no-preference){
@media(hover:hover){.business-card:hover .business-art{--t:1;transition:--t .85s cubic-bezier(.34,1.35,.5,1)}}
.business-art.is-open{--t:1;transition:--t .85s cubic-bezier(.34,1.35,.5,1)}
.business-art{transition:--t .6s ease}
@media(hover:hover){.business-card:hover .car-svg .wrench{animation:wrench-turn .7s ease-in-out .5s infinite}.business-card:hover .car-svg .engine{animation:engine-shake .18s linear .6s infinite}.business-card:hover .car-svg .spark{animation:spark-pop 1.1s ease-in-out .6s infinite}.business-card:hover .van-svg .box{animation:box-hop .9s ease-in-out .7s infinite}}
.business-art.is-open .car-svg .wrench{animation:wrench-turn .7s ease-in-out .5s infinite}
.business-art.is-open .car-svg .engine{animation:engine-shake .18s linear .6s infinite}
.business-art.is-open .car-svg .spark{animation:spark-pop 1.1s ease-in-out .6s infinite}
.business-art.is-open .van-svg .box{animation:box-hop .9s ease-in-out .7s infinite}
@keyframes wrench-turn{0%,100%{transform:rotate(-24deg)}50%{transform:rotate(22deg)}}
@keyframes engine-shake{0%,100%{transform:translate(0,0)}50%{transform:translate(.5px,-.4px)}}
@keyframes spark-pop{0%,100%{opacity:0;transform:scale(.3)}45%{opacity:1;transform:scale(1.15)}}
@keyframes box-hop{0%,100%{transform:translateY(0)}45%{transform:translateY(-3px)}}
}

.jrms-wordmark{flex-shrink:0;white-space:nowrap;font:italic 800 clamp(25px,3vw,34px)/1 'Outfit',sans-serif;letter-spacing:-.055em;color:var(--ink)}

/* 星形マーク: 文字(✳)は端末ごとのフォントで形が変わるため、SVGで描く */
.sun-svg{display:block;width:1.1em;height:1.1em;fill:currentColor;overflow:visible}
.sun-symbol,.sun-drawing{display:inline-block;line-height:1}

.line-link{display:inline-flex;align-items:center;margin-top:10px;font-weight:700;color:#06a64b}

/* 会社の紹介: 左側の店舗写真 */
.about-photo{margin:0;width:100%}
.about-photo img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:10px 10px 0 #e4d9bd}
.about-photo figcaption{margin-top:20px;font:500 11px 'Outfit',sans-serif;letter-spacing:.17em;color:var(--dim,#6b6d64)}
@media(max-width:900px){.about-label{flex-direction:column;align-items:stretch}.about-photo img{box-shadow:6px 6px 0 #e4d9bd}}
