:root{--ink:#454545;--red:#b13b43;--yellow:#ffe026;--green:#12a081;--paper:#f6f6f6}

.service-more{display:block;width:max-content;margin:35px auto 0;border:1px solid var(--red);padding:13px 25px;color:var(--red);text-decoration:none;font-size:13px}

.logo img{display:block;width:150px;height:auto}
.top-news{max-width:1120px;margin:0 auto;padding:68px 0 74px;display:grid;grid-template-columns:225px 1fr;column-gap:55px;position:relative}
.top-news>div>p{font:700 12px Roboto;letter-spacing:.13em;color:var(--red);margin:0 0 10px}
.top-news h2{font-size:29px;margin:0}
.top-news .news-list{border-top:1px solid #bfc1bd}
.top-news .news-item{grid-template-columns:115px 1fr 20px}
.news-more{grid-column:2;justify-self:end;margin-top:22px;color:var(--red);font-size:13px;text-decoration:none}
.service-cards{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.service-cards article{background:#fff;border:1px solid #e1e1e1}
.service-cards img{width:100%;height:220px;display:block;object-fit:cover}
.service-cards article>div{padding:25px}
.service-cards b{font:14px Roboto;color:var(--red)}
.service-cards h3{font-size:19px;margin:13px 0}
.service-cards p{font-size:12px;line-height:1.9;margin:0}
.service-cards .retch{background:linear-gradient(140deg,#e6f2ee,#bcd8cb);min-height:100%}
.message #messageText{white-space:pre-line}
.president{width:100%;max-width:400px;justify-self:center;align-self:stretch;object-fit:cover;object-position:top}
.contact{display:grid;grid-template-columns:35% minmax(0,570px);gap:11%;text-align:left;padding:110px max(9%,calc((100% - 1120px)/2));align-items:start;background:#f4f7f8}
.contact-copy>p{color:var(--red);font:700 12px Roboto;letter-spacing:.16em;margin:0 0 9px}
.contact-copy h2{font-size:36px;margin:0 0 19px}
.contact-copy span{font-size:13px;line-height:2}
.contact form{background:#fff;padding:34px 38px;box-shadow:0 10px 30px #29465810}
.contact label{display:block;font-size:13px;font-weight:700;margin:0 0 20px}
.contact em{font-style:normal;color:#fff;background:var(--red);font-size:10px;padding:2px 6px;margin-left:7px}
.contact input:not([type=checkbox]),.contact textarea,.contact select{width:100%;display:block;margin-top:8px;border:1px solid #d7dddd;background:#fff;padding:12px;font:13px 'Noto Sans JP';outline-color:#3f7199}
.contact textarea{height:130px;resize:vertical}
.contact select{color:#666}
.contact .agree{font-size:12px;font-weight:400;display:flex;align-items:center;gap:8px}
.contact .agree input{accent-color:var(--red)}
.contact form button{width:100%;border:0;background:var(--red);color:#fff;padding:16px;font:700 14px 'Noto Sans JP';cursor:pointer}
.form-note{font-size:12px;color:var(--green);text-align:center;margin:12px 0 0}
footer .logo img{filter:brightness(0) invert(1);width:136px}

@media(max-width:720px){.logo img{width:130px}
.top-news{display:block;padding:54px 35px}
.top-news>div{margin-bottom:25px}
.top-news .news-item{grid-template-columns:1fr 20px}
.top-news .news-item time{grid-column:1}
.top-news .news-item span{grid-column:1}
.top-news .news-item b{grid-column:2;grid-row:1/3;align-self:center}
.service-cards{display:block}
.service-cards article{margin-bottom:20px}
.service-cards img{height:230px}
.message .president{height:430px;width:100%;margin-top:35px}
.contact{display:block;padding:75px 28px}
.contact-copy{margin-bottom:32px}
.contact form{padding:27px 22px}
footer .logo img{width:130px}
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{margin:0;color:var(--ink);font-family:'Noto Sans JP',sans-serif}

.site-header{height:100px;display:flex;align-items:center;padding:0 5%;background:#fff;box-shadow:0 3px 12px #00000011;position:relative;z-index:3}

.logo{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:19px}

.logo span,.fv-logo strong{font:700 34px/1 Roboto,sans-serif;letter-spacing:1px}

.logo span:after,.fv-logo strong:after{content:'';display:inline-block;width:7px;height:7px;background:var(--yellow);margin-left:2px}

.logo b{font-size:15px}

nav{display:flex;gap:29px;margin-left:auto}

nav a{font-size:13px;color:var(--ink);text-decoration:none}

.menu{margin-left:42px;border:0;background:none;width:33px;padding:0;display:grid;gap:7px}

.menu i{height:3px;width:100%;display:block;background:var(--red)}

.fv{height:calc(100vh - 100px);min-height:690px;position:relative;overflow:hidden;background:#fff}

.fv-content{position:absolute;top:17%;left:50%;transform:translateX(-50%);z-index:1;text-align:center;width:100%}

.fv h1{font-size:clamp(48px,5vw,75px);line-height:1.37;letter-spacing:.04em;margin:0;font-weight:900}

.fv-content p{font-size:15px;line-height:2.1;margin:67px 0 0}

.arc{position:absolute;border:23px solid;border-radius:50%;width:820px;height:820px}

.arc-l{left:-650px;bottom:-227px;border-color:var(--green) var(--green) transparent transparent;transform:rotate(-19deg)}

.arc-r{right:-572px;top:-570px;border-color:var(--yellow) var(--yellow) var(--red) var(--red);transform:rotate(-17deg)}

.scroll{position:absolute;right:12%;bottom:132px;writing-mode:vertical-rl;font:14px Roboto}

.scroll span{height:76px;background:#777;width:1px;display:block;margin:13px auto}

.fv-logo{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column}

.fv-logo strong{font-size:55px}

.fv-logo small{font-size:14px;font-weight:700;margin-top:8px}

.cards{background:var(--paper);padding:145px 6% 90px}

.feature{max-width:1120px;margin:0 auto 65px;padding:58px 7%;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}

.feature-reverse .feature-text{order:2}

.feature-reverse .visual{order:1}

.feature h2,.heading h2,.message h2{font-size:30px;line-height:1.25;margin:0 0 25px}

.feature h2 small,.heading small,.message h2 small{display:block;font:700 14px Roboto;margin-top:6px}

.feature p{font-size:14px;line-height:2.05;margin:0 0 27px}

.feature a{display:inline-block;border:1px solid var(--red);padding:13px 25px;color:var(--red);text-decoration:none;font:17px Roboto;letter-spacing:.04em}

.feature a b{margin-left:30px;font-size:24px;vertical-align:-2px}

.visual{height:267px;position:relative;overflow:hidden;background:linear-gradient(132deg,#a67749,#e7d8c4 49%,#624934)}

.visual-service{background:linear-gradient(135deg,#94acaa,#e8e0b8 48%,#926b4d)}

.visual-company:before{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#062c4b66,#062c4b05 75%)}

.company-image{object-position:center 42%}

.visual:after{content:'';position:absolute;inset:18px;border:1px solid #fff9}

.visual span{position:absolute;z-index:1;bottom:25px;left:27px;font:700 38px/.83 Roboto;color:#fff;letter-spacing:-1px}

.visual-image{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}

.service-section{padding:90px 8%}

.heading{max-width:1120px;margin:0 auto 48px;display:flex;align-items:end;justify-content:space-between}

.heading h2{margin:0}

.heading p{font-size:13px;margin:0}

.services{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ddd}

.services article{padding:28px;border-right:1px solid #ddd}

.services article:first-child{padding-left:0}

.services article:last-child{border:0}

.services b{color:var(--red);font:14px Roboto}

.services h3{font-size:18px;margin:14px 0}

.services p{font-size:12px;line-height:1.9}

.news{background:var(--paper);padding:92px 8%;display:grid;grid-template-columns:29% 1fr;gap:7%}

.news .heading{display:block;margin:0}

.news-list{border-top:1px solid #bbb}

.news-item{padding:19px 0;border-bottom:1px solid #ddd;display:grid;grid-template-columns:115px 1fr 20px;gap:15px;font-size:13px}

.news-item time{font:13px Roboto}

.banners{display:grid;grid-template-columns:1fr 1fr}

.banners a{min-height:230px;padding:50px 14%;color:#fff;text-decoration:none;display:flex;flex-direction:column}

.banners a:first-child{background:#ba936d}

.banners a:last-child{background:var(--green)}

.banners small{font-size:12px}

.banners b{font-size:31px;margin:15px 0}

.banners span{font-size:12px}

.message{padding:120px 13%;display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center}

.message>div:first-child{max-width:480px}

.message p{font-size:13px;line-height:2.15}

.message .lead{font-size:18px;font-weight:700;margin-bottom:27px}

.message-art{min-height:365px;background:var(--yellow);color:#fff;display:flex;align-items:flex-end;padding:29px;font:700 clamp(55px,6vw,85px)/.78 Roboto;letter-spacing:-5px}

.contact{text-align:center;background:var(--paper);padding:100px 20px}

.contact p{font-size:18px;line-height:1.8;margin:0 0 29px}

.contact a{border:1px solid var(--red);padding:16px 33px;color:var(--red);text-decoration:none;font:17px Roboto}

footer{background:#414141;color:#fff;padding:52px 7%;display:flex;gap:45px;align-items:center}

footer .logo{color:#fff}

footer .logo b{font-size:12px}

footer>div{margin-left:auto;display:flex;gap:24px}

footer>div a{color:#fff;text-decoration:none;font-size:12px}

footer small{font:11px Roboto}

.edit-trigger{position:fixed;right:22px;bottom:22px;z-index:5;border:0;border-radius:100px;background:var(--red);color:#fff;padding:14px 20px;font-weight:700;box-shadow:0 4px 15px #0003}

.editor{position:fixed;right:0;top:0;bottom:0;width:min(400px,100%);z-index:8;background:#fff;padding:26px;overflow:auto;box-shadow:-5px 0 24px #0002;transform:translateX(105%);transition:.25s}

.editor.open{transform:none}

.editor header{background:#444;color:#fff;margin:-26px -26px 22px;padding:22px;display:flex;justify-content:space-between}

.editor header small{font:11px Roboto}

.editor header h2{font-size:20px;margin:6px 0 0}

.editor header button{border:0;background:none;color:#fff;font-size:28px}

.editor>p{font-size:11px}

.editor label{display:block;font-size:12px;font-weight:700;margin:17px 0}

.editor textarea,.editor input{display:block;width:100%;margin-top:7px;padding:8px;border:1px solid #ddd;font:12px 'Noto Sans JP'}

.editor textarea{height:80px}

.editor h3{font-size:14px}

.editor-news{padding:8px;border:1px solid #ddd;margin:8px 0}

.editor-news input{margin:3px 0}

.editor-news button{border:0;background:none;color:var(--red);font-size:11px;padding:0}

.editor .add{width:100%;padding:9px;border:1px solid #aaa;background:#fff;font-size:12px}

.edit-actions{display:flex;gap:8px;margin-top:25px}

.edit-actions button{flex:1;border:0;padding:11px;font-size:12px}

.edit-actions button:last-child{background:var(--red);color:#fff}

@media(max-width:720px){.site-header{height:78px;padding:0 28px}

.logo{gap:12px}

.logo span{font-size:27px}

.logo b{font-size:12px}

nav{display:none}

.menu{margin-left:auto}

.fv{height:620px;min-height:0}

.fv-content{top:12%}

.fv h1{font-size:38px;line-height:1.56}

.fv-content p{font-size:13px;margin-top:59px}

.arc{border-width:16px}

.arc-l{width:500px;height:500px;left:-380px;bottom:-117px}

.arc-r{width:550px;height:550px;right:-410px;top:-350px}

.fv-logo{bottom:37px}

.fv-logo strong{font-size:43px}

.fv-logo small{font-size:12px}

.scroll{right:13%;bottom:108px}

.scroll span{height:69px}

.cards{padding:115px 35px 42px}

.feature{display:flex;flex-direction:column;padding:40px 48px;gap:28px;margin-bottom:49px}

.feature-reverse .feature-text{order:0}

.feature-reverse .visual{order:1}

.feature h2{font-size:25px}

.feature p{font-size:13px}

.visual{width:100%;height:195px}

.service-section{padding:70px 35px}

.heading{display:block}

.heading p{margin-top:17px}

.services{display:block}

.services article,.services article:first-child{padding:22px 0;border-right:0;border-bottom:1px solid #ddd}

.news{padding:70px 35px;display:block}

.news .heading{margin-bottom:38px}

.news-item{grid-template-columns:1fr 20px;gap:3px}

.news-item a{grid-row:2}

.news-item span{grid-column:2;grid-row:1/3;align-self:center}

.banners{display:block}

.banners a{min-height:190px;padding:41px 14%}

.message{display:block;padding:75px 35px}

.message-art{margin-top:46px;min-height:275px}

.contact{padding:78px 20px}

footer{display:block;padding:40px 35px}

footer>div{margin:28px 0;flex-wrap:wrap}

footer small{display:block}

}

.contact{display:grid;grid-template-columns:35% minmax(0,570px);gap:11%;text-align:left;padding:110px max(9%,calc((100% - 1120px)/2));align-items:start;background:#f4f7f8}
.contact-copy>p{color:var(--red);font:700 12px Roboto;letter-spacing:.16em;margin:0 0 9px}
.contact-copy h2{font-size:36px;margin:0 0 19px}
.contact-copy span{font-size:13px;line-height:2}
.contact form{background:#fff;padding:34px 38px;box-shadow:0 10px 30px #29465810}
.contact label{display:block;font-size:13px;font-weight:700;margin:0 0 20px}
.contact em{font-style:normal;color:#fff;background:var(--red);font-size:10px;padding:2px 6px;margin-left:7px}
.contact input:not([type=checkbox]),.contact textarea,.contact select{width:100%;display:block;margin-top:8px;border:1px solid #d7dddd;background:#fff;padding:12px;font:13px 'Noto Sans JP';outline-color:#3f7199}
.contact textarea{height:130px;resize:vertical}
.contact select{color:#666}
.contact .agree{font-size:12px;font-weight:400;display:flex;align-items:center;gap:8px}
.contact .agree input{accent-color:var(--red)}
.contact form button{width:100%;border:0;background:var(--red);color:#fff;padding:16px;font:700 14px 'Noto Sans JP';cursor:pointer}
.form-note{font-size:12px;color:var(--green);text-align:center;margin:12px 0 0}
.president{width:100%;max-width:400px;justify-self:center;align-self:stretch;object-fit:cover;object-position:top}
.message #messageText{white-space:pre-line}
footer .logo img{filter:brightness(0) invert(1);width:136px}
@media(max-width:720px){.message .president{height:430px;width:100%;margin-top:35px}
.contact{display:block;padding:75px 28px}
.contact-copy{margin-bottom:32px}
.contact form{padding:27px 22px}
}
.fv{background:#062c4b;color:#fff;isolation:isolate}.motion-film{position:absolute;inset:0;overflow:hidden;z-index:-1;background:#062c4b}.motion-film:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#062c4b 5%,#062c4bcf 35%,#062c4b42 75%,#062c4bcc 100%)}.motion-film img{width:100%;height:100%;object-fit:cover;opacity:.68;filter:saturate(.9) contrast(1.05);animation:drift 18s ease-in-out infinite alternate}.motion-orbit{position:absolute;border:1px solid #ffffff8c;border-radius:50%;z-index:1;animation:rotate 24s linear infinite}.orbit-one{width:610px;height:610px;right:-90px;top:-220px}.orbit-two{width:370px;height:370px;right:11%;bottom:-200px;animation-direction:reverse;animation-duration:17s}.motion-label{position:absolute;right:5%;bottom:38px;z-index:2;font:10px Roboto;letter-spacing:.19em;color:#fff;writing-mode:vertical-rl}.fv .arc{z-index:0;opacity:.8}.fv-content{left:9%;top:23%;transform:none;text-align:left;max-width:650px}.fv h1{font-size:clamp(49px,5.4vw,80px);line-height:1.28;text-shadow:0 6px 35px #0014295e}.fv-content p{font-weight:500;letter-spacing:.04em;margin-top:42px}.fv-logo{left:9%;transform:none;align-items:flex-start}.fv-logo strong,.fv-logo small{color:#fff}.scroll{right:5%;color:#fff}.scroll span{background:#fff}.cards{background:linear-gradient(135deg,#f5f8f6,#eef4f5)}.feature{border-radius:24px;box-shadow:0 18px 42px #062c4b12}.feature-text h2 small{color:#168c83}.feature a{border-radius:999px;padding:12px 24px}.visual{border-radius:16px}.top-news{background:#fff;margin-top:42px;margin-bottom:34px;padding:42px 48px;border-radius:20px;box-shadow:0 14px 36px #062c4b0d}.top-news .news-list{border-color:#d6e1e1}.top-news .news-item{border-color:#dce7e6}@keyframes drift{from{transform:scale(1.03) translate3d(-1.5%,-1%,0)}to{transform:scale(1.14) translate3d(2%,1.5%,0)}}@keyframes rotate{to{transform:rotate(360deg)}}@media(max-width:720px){.motion-film img{opacity:.5}.motion-film:after{background:linear-gradient(90deg,#062c4be8,#062c4b79)}.fv-content{left:28px;right:28px;top:14%;max-width:none}.fv h1{font-size:42px}.fv-logo{left:28px}.motion-label{right:18px;bottom:34px}.orbit-one{width:430px;height:430px;right:-190px;top:-150px}.orbit-two{display:none}.top-news{margin:0 20px 25px;padding:34px 24px}}
@media(prefers-reduced-motion:reduce){.motion-film img,.motion-orbit{animation:none}}

/* ヒーロー右側の補足テキストを、重ならない横組みにする */
.motion-label{right:46px;bottom:58px;writing-mode:horizontal-tb;white-space:nowrap;letter-spacing:.14em;font-size:9px}
@media(max-width:720px){.motion-label{display:none}}
