.news-detail h1{font-size:clamp(1.5rem,4vw,2.2rem);color:#153c8f;margin:1rem 0 2rem;overflow-wrap:anywhere}
.news-detail__body{line-height:1.9;overflow-wrap:anywhere;margin-bottom:3rem}
.news-detail__body>*+*{margin-top:1.2em}.news-detail__body img{max-width:100%;height:auto}
.news-detail__body ul,.news-detail__body ol{padding-left:1.5em}.news-detail__body h2,.news-detail__body h3{color:#153c8f}
.form__verification{margin:1rem 0}.form button:disabled{opacity:.6;cursor:wait}

/* 提供された設備写真は、縦横比を保って全体を表示する。 */
.equipment-photo{display:grid;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:#f0efec}
.equipment-photo img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}
.equipment-photo--pair{position:relative;display:block;isolation:isolate;background:linear-gradient(145deg,#edf3fb,#dce7f5)}
.equipment-photo--pair img{position:absolute;width:58%;height:auto;aspect-ratio:4/3;object-fit:contain;border:4px solid #fff;border-radius:8px;box-shadow:0 5px 14px #153c8f24}
.equipment-photo--pair img:first-child{left:2%;top:3%;z-index:1;transform:rotate(-3deg)}
.equipment-photo--pair img:last-child{right:2%;bottom:3%;z-index:2;transform:rotate(3deg)}

.area__service{max-width:800px;margin:0 auto 24px;line-height:1.9;text-align:center}
.service-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0 0}
.service-areas__row{min-width:0;padding:30px;border:2px solid #1d4fbf;border-radius:20px;background:#fff}
.service-areas__row:first-child{grid-column:1/-1}
.service-areas dt{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.service-areas__pin{flex:none;color:#ff7a00}
.service-areas dt strong{color:#153c8f;font-size:1.6rem;line-height:1.4;white-space:nowrap}
.service-areas dt>span{padding:7px 13px;border-radius:999px;background:#fff1e5;color:#c75300;font-size:.85rem;font-weight:700}
.service-areas dd{margin:0}
.service-areas__cities{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.service-areas__cities li{max-width:100%;padding:8px 14px;border-radius:10px;background:#edf4ff;color:#153c8f;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:720px){.service-areas{grid-template-columns:1fr;gap:16px}.service-areas__row{padding:22px 18px;border-radius:16px}.service-areas dt{gap:10px;margin-bottom:18px}.service-areas dt strong{font-size:1.35rem}.service-areas__cities{gap:8px}.service-areas__cities li{padding:7px 10px;font-size:.9rem}.area__service{text-align:left}}

.news-more{text-align:center;margin-top:28px}.news-more a,.news-pagination a{display:inline-block;padding:12px 22px;border:1px solid #1d4fbf;border-radius:8px;color:#153c8f;background:#fff;font-weight:700;text-decoration:none}
.news-more a:hover,.news-pagination a:hover{background:#edf4ff}.news-breadcrumb{margin-bottom:28px;font-size:.9rem;color:#5b6676}.news-breadcrumb a,.news-return a{color:#153c8f}
.news-empty{text-align:center;padding:36px 16px;border-radius:12px;background:#edf4ff;color:#153c8f}
.news-pagination{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;margin:32px 0}.news-return{margin-top:36px}
.news-archive .news-item__title{min-width:0;overflow-wrap:anywhere}.news-archive a:focus-visible,.news-more a:focus-visible,.news-pagination a:focus-visible{outline:3px solid #ff7a00;outline-offset:4px}

/* 17:23の構成を保ち、承認された設備アイコンの6色だけを適用。 */
.hero__icons li:nth-child(1){--equipment-color:#2456bb;--equipment-ring:#83a2ea}
.hero__icons li:nth-child(2){--equipment-color:#df6508;--equipment-ring:#f5aa75}
.hero__icons li:nth-child(3){--equipment-color:#18854b;--equipment-ring:#78b69b}
.hero__icons li:nth-child(4){--equipment-color:#087f96;--equipment-ring:#73bbcb}
.hero__icons li:nth-child(5){--equipment-color:#7950b2;--equipment-ring:#ae95dc}
.hero__icons li:nth-child(6){--equipment-color:#515766;--equipment-ring:#a0a5ad}
.hero__icons li:nth-child(n) .hero-icon__circle{background:var(--equipment-color);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--equipment-ring)}

/* ヒーロー：文字の強弱と斜めの組版、人物上部を使った訴求。 */
.hero{background:linear-gradient(112deg,#fbfcff 0%,#edf4ff 54%,#d9e8fa 100%)}
.hero::before{right:-15%;top:0;width:45%;height:100%;aspect-ratio:auto;border-radius:0;transform:skewX(-12deg);opacity:.06}
.hero::after{height:18px}
.hero__inner{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;gap:20px 48px;padding:48px 24px 0}
.hero__text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;grid-column:1;grid-row:1/3;padding:0 0 46px;position:relative;z-index:3}
.hero__brand{order:0;font-size:.8rem;letter-spacing:.08em;margin-bottom:16px}.hero__lead{order:1;margin-bottom:22px}.hero__lead span{font-size:1rem;background:transparent;border:0;border-left:4px solid #ff7a00;border-radius:0;padding:0 0 0 12px}
.hero-quote__title{order:2;font-size:clamp(2.8rem,4.8vw,4.3rem);line-height:1.25;letter-spacing:-.035em;margin:0 0 32px;transform:rotate(-3deg);transform-origin:left center;text-align:left}
.hero-quote__preface{font-size:.46em;letter-spacing:.035em;line-height:1.7;margin-bottom:8px;font-weight:700}
.hero-quote__headline em{display:inline-block;color:#ed6a00;line-height:1.15;padding:0 .06em .06em;background:linear-gradient(transparent 76%,#ffe9bd 76%)}
.hero-quote__last{margin:9px 0 0 30px}.hero-quote__last>span{display:inline-block;padding:0 .18em .1em;background:#153c8f;color:#fff;transform:skewX(-5deg);box-shadow:5px 5px 0 #bfd0ea}
.hero-quote__service{order:3;font-size:.9rem;line-height:1.8;font-weight:700;color:#425777;margin:0 0 16px}.hero-quote__service strong{font-size:1.25rem;display:inline;color:#153c8f;box-shadow:inset 0 -.35em #ffebcb}
.hero-quote__break{display:none}.hero-quote__text{order:4;font-size:.93rem;line-height:1.9;color:#425777;margin-bottom:20px;max-width:470px}
.hero-quote__link{order:5;margin-bottom:30px}.hero-quote__link a{display:inline-flex;align-items:center;gap:18px;padding:12px 18px;border-bottom:3px solid #bf5700;background:#ff7a00;color:#fff;text-decoration:none;font-weight:900;font-size:.92rem;line-height:1.6;transition:background .2s,transform .2s}.hero-quote__link a:hover{background:#d96400;transform:translateY(-2px)}.hero-quote__link a>span{font-size:1.4rem}
.hero__points{order:6;gap:12px;margin-bottom:26px}.hero__points li{width:112px;max-width:none}.hero__points b{font-size:1.05rem}.hero__points span{font-size:.67rem}
.hero__icons{order:7;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;width:100%;max-width:490px;justify-items:center;margin:0}.hero__icons li{width:auto;min-width:0}.hero-icon__circle{width:48px;height:48px}.hero-icon__circle svg{width:30px;height:30px}.hero-icon__label{font-size:.65rem;margin-top:9px}
.hero-offer{grid-column:2;grid-row:1;position:relative;z-index:4;align-self:start;transform:rotate(-7deg);padding:6px 8px 0 26px;margin-top:0;isolation:isolate}
.hero-offer__intro{position:relative;z-index:1;color:#153c8f;font-size:.85rem;font-weight:700;letter-spacing:.02em;margin-bottom:6px}
.hero-offer__call{position:relative;z-index:1;line-height:1.04;color:#153c8f;font-weight:900;letter-spacing:-.045em;width:max-content;max-width:100%;text-shadow:3px 3px 0 #fff,-2px -2px 0 #fff,2px -2px 0 #fff,-2px 2px 0 #fff}
.hero-offer__call>span{display:block;font-size:clamp(2.2rem,3.5vw,3.25rem)}
.hero-offer__call>strong{display:block;color:#ef6b00;font-size:clamp(4.2rem,6.3vw,6rem);font-weight:900;padding-left:1em;letter-spacing:-.09em;line-height:1.05}
.hero-offer__call>strong>span{display:inline-block;transform:rotate(9deg);margin-left:.08em}
.hero-offer__note{position:relative;z-index:1;display:table;margin:8px 0 0 50px;padding:2px 12px;background:#fff;color:#153c8f;font-size:.86rem;font-weight:900;box-shadow:0 3px 0 #ffbd69}

.hero__visual{grid-column:2;grid-row:2;align-self:end;width:100%;max-width:none;order:0;margin:12px 0 0;isolation:isolate}
.hero-staff{width:100%;max-width:440px}.hero-staff__bg{top:14%;background:linear-gradient(160deg,#4080df,#1d4fbf 70%,#153c8f)}.hero-staff__ring{top:8%;border-width:2px;opacity:.55}.hero-staff__img{z-index:1}.hero__badge{right:-5px;bottom:56px;width:110px;font-size:.86rem;z-index:3}
.js .hero-offer__call{opacity:0;transform:translateY(24px) scale(.8);transform-origin:40% 70%}
.js.is-loaded .hero-offer__call{animation:heroOfferEnter 1.1s .4s cubic-bezier(.2,.75,.25,1) both}
.js .hero-offer__intro,.js .hero-offer__note{opacity:0}
.js.is-loaded .hero-offer__intro{animation:heroOfferDetail .7s .2s both}
.js.is-loaded .hero-offer__note{animation:heroOfferDetail .7s 1s both}
@keyframes heroOfferEnter{0%{opacity:0;transform:translateY(24px) scale(.8);filter:blur(3px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes heroOfferDetail{from{opacity:0}to{opacity:1}}
@media(max-width:1100px) and (min-width:861px){.hero__inner{gap:18px 28px}.hero-offer{padding-left:8px}.hero-offer__intro{font-size:.72rem}.hero-offer__note{font-size:.74rem;margin-left:20px}.hero__points li{width:100px}.hero__icons{gap:10px}}
@media(max-width:860px){.hero__inner{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:24px;padding:24px 24px 0}.hero-offer{grid-column:1;grid-row:1;justify-self:center;width:min(100%,360px);padding:0 24px 0 8px;margin:4px 0 12px;transform:rotate(-6deg)}.hero-offer__intro{font-size:.72rem;text-align:center}.hero-offer__call{display:flex;align-items:baseline;gap:10px;line-height:1.3;margin:0 auto}.hero-offer__call>span{font-size:1.8rem;white-space:nowrap}.hero-offer__call>strong{padding-left:0;font-size:2.9rem;white-space:nowrap}.hero-offer__note{font-size:.75rem;margin:2px auto 0}.hero__text{grid-column:1;grid-row:2;padding:0 0 12px;align-items:flex-start;display:flex}.hero__brand{font-size:.7rem;margin-bottom:12px;justify-content:flex-start}.hero__lead{align-self:flex-start;margin-bottom:18px}.hero__lead span{font-size:.88rem}.hero-quote__title{font-size:clamp(2.8rem,10.5vw,4.1rem);margin-bottom:25px;transform:rotate(-3deg);text-align:left}.hero-quote__preface{font-size:.52em}.hero-quote__last{margin-left:22px}.hero-quote__service{font-size:.85rem;margin-bottom:14px}.hero-quote__service strong{font-size:1.08rem}.hero-quote__break{display:block}.hero-quote__text{font-size:.88rem;text-align:left}.hero-quote__text br{display:none}.hero-quote__link{width:100%;text-align:left;margin-bottom:28px}.hero-quote__link a{font-size:.84rem;gap:12px;padding:11px 12px}.hero__points{width:100%;gap:12px;justify-content:center;order:6;margin-bottom:24px}.hero__points li{width:28%;max-width:112px}.hero__points b{font-size:.95rem}.hero__points span{font-size:.61rem}.hero__icons{grid-template-columns:repeat(6,minmax(0,1fr));max-width:none;margin:0;gap:8px;order:7}.hero-icon__circle{width:39px;height:39px}.hero-icon__circle svg{width:24px;height:24px}.hero-icon__label{font-size:.56rem}.hero__visual{grid-column:1;grid-row:3;order:0;max-width:320px;width:90%;margin:0 auto;align-self:end}.hero-staff{max-width:320px}.hero__badge{right:-12px;bottom:42px;width:90px;font-size:.72rem}}
@media(max-width:370px){.hero__inner{padding-left:18px;padding-right:18px}.hero-offer__call>span{font-size:1.6rem}.hero-offer__call>strong{font-size:2.65rem}.hero-offer__intro{font-size:.68rem}.hero__points{gap:9px}.hero__points li{width:29%}.hero-icon__circle{width:35px;height:35px}}
.hero-quote__link a{background:#c85100}.hero-quote__link a:hover{background:#ac4400}
@media(max-width:370px){.hero-quote__title{font-size:2.4rem}.hero-quote__last{margin-left:14px}}

/* 相見積もりの文字は人物の下側に重ね、スマホ冒頭には出さない。 */
.hero__inner{grid-template-rows:auto;align-items:center}
.hero__text{grid-row:1}
.hero__visual{grid-row:1;position:relative;padding-bottom:110px;margin-top:0}
.hero-offer{position:absolute;grid-area:auto;left:-12px;right:0;bottom:10px;width:auto;max-width:none;margin:0;padding:16px 22px 18px;transform:rotate(-5deg);z-index:4}
.hero-offer::before{content:"";position:absolute;inset:0 -6px;background:rgba(255,255,255,.97);clip-path:polygon(1% 9%,97% 0,100% 90%,3% 100%);z-index:0;filter:drop-shadow(0 4px 8px #153c8f1a)}
.hero-offer__intro{text-align:left}.hero-offer__call{margin:0}.hero-offer__note{margin-left:34px;font-size:.82rem}

.hero__badge{bottom:265px;right:-8px}
@media(max-width:1100px) and (min-width:861px){.hero-offer{left:-4px;padding:14px 16px}.hero__visual{padding-bottom:94px}.hero__badge{bottom:235px}}
@media(max-width:860px){.hero__inner{grid-template-rows:auto auto}.hero__text{grid-row:1}.hero__visual{grid-row:2;padding-bottom:76px;margin:0 auto}.hero-offer{grid-area:auto;left:-3%;right:-3%;bottom:5px;width:auto;margin:0;padding:14px 14px 16px;transform:rotate(-5deg)}.hero-offer__intro{text-align:center;font-size:.68rem}.hero-offer__call{display:flex;justify-content:center;gap:8px;margin:0 auto}.hero-offer__call>span{font-size:1.6rem}.hero-offer__call>strong{font-size:2.7rem}.hero-offer__note{font-size:.69rem;margin:2px auto 0}.hero__badge{bottom:162px;right:-14px;width:82px;font-size:.68rem}}
@media(max-width:370px){.hero-offer{padding-left:10px;padding-right:10px}.hero-offer__call{gap:6px}.hero-offer__call>span{font-size:1.4rem}.hero-offer__call>strong{font-size:2.4rem}.hero-offer__intro{font-size:.6rem}.hero-offer__note{font-size:.64rem}.hero__badge{bottom:150px;width:75px;font-size:.62rem}}

/* 水平のコピーを人物の下へ。左右の余白も詰める。 */
@media(min-width:861px){.hero__inner{max-width:1180px;grid-template-columns:minmax(0,1.03fr) minmax(0,1fr);column-gap:20px;padding-top:36px}.hero__visual{align-self:center;padding-bottom:104px}.hero-staff{max-width:500px}.hero__text{padding-bottom:36px}.hero-offer{left:0;right:0;bottom:8px;padding:16px 20px 20px}}
.hero-offer{transform:none}
.hero-offer::before{inset:0;background:rgba(255,255,255,.97);clip-path:none;border-top:3px solid #ff7a00;border-bottom:1px solid #d7e2f1;filter:none;box-shadow:0 6px 18px #153c8f12}
.hero-offer__call>strong>span{transform:none}
@media(max-width:860px){.hero-offer{transform:none;left:-2%;right:-2%;padding-top:12px;padding-bottom:14px}.hero__inner{row-gap:18px}}

/* 対応エリアの丸い表示を「歓迎！」の右の余白に配置。 */
.hero-offer{display:grid;grid-template-columns:minmax(0,1fr) clamp(82px,8vw,110px);gap:6px 10px;align-items:end}
.hero-offer__intro{grid-column:1 / -1;margin-bottom:0}
.hero-offer__call{grid-column:1;grid-row:2}
.hero-offer .hero__badge{position:relative;inset:auto;grid-column:2;grid-row:2;align-self:end;justify-self:end;width:100%;margin:0;z-index:1}
.hero-offer__note{grid-column:1 / -1;justify-self:start;margin-top:2px}
@media(max-width:860px){.hero-offer{grid-template-columns:minmax(0,1fr) 82px;column-gap:8px}.hero-offer__call{display:block;margin:0}.hero-offer__call>strong{padding-left:0}.hero-offer .hero__badge{font-size:.68rem}.hero-offer__note{justify-self:center;margin:2px 0 0}}
@media(max-width:370px){.hero-offer{grid-template-columns:minmax(0,1fr) 75px;column-gap:6px}.hero-offer .hero__badge{font-size:.62rem}}

/* お問い合わせの案内文と人物に、それぞれの表示領域を確保。 */
.contact__intro{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:center;gap:28px 36px;max-width:960px;margin:0 auto 32px}
.contact__copy{grid-column:1;grid-row:1;min-width:0}
.contact__intro .contact__staff{position:static;grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:240px;margin:0}
.contact__intro .contact__bubble{position:static;order:-1;max-width:100%;padding:7px 12px;font-size:.85rem;white-space:normal;text-align:center}
.contact__intro .contact__lead{max-width:none;text-align:left}
.contact__intro .contact__mail{justify-content:flex-start;margin-bottom:0;overflow-wrap:anywhere}
@media(max-width:860px){.contact__intro{grid-template-columns:minmax(0,1fr);gap:24px;max-width:720px}.contact__intro .contact__staff{grid-column:1;grid-row:1;width:200px;margin:0 auto}.contact__copy{grid-column:1;grid-row:2}.contact__intro .contact__lead{text-align:center}.contact__intro .contact__mail{justify-content:center}}

/* モバイルのメニュー。閉じているリンクはフォーカス対象からも外す。 */
.gnav{order:1}.header-mail{order:2}.header-cta{order:3}
.gnav .gnav__contact,.nav-toggle{display:none}
.nav-toggle[hidden]{display:none}
@media(max-width:1100px){
 .site-header__inner{gap:16px}
 .nav-toggle{order:4;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:48px;min-height:48px;padding:6px;border:1px solid #d5e1f3;border-radius:8px;background:#fff;color:#153c8f;cursor:pointer}
 .nav-toggle__icon{position:relative;width:24px;height:18px}
 .nav-toggle__icon>span{position:absolute;left:0;width:24px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s}
 .nav-toggle__icon>span:nth-child(1){top:0}.nav-toggle__icon>span:nth-child(2){top:8px}.nav-toggle__icon>span:nth-child(3){top:16px}
 .nav-toggle__label{font-size:9px;line-height:1;font-weight:700;white-space:nowrap}
 .nav-toggle[aria-expanded="true"] .nav-toggle__icon>span:nth-child(1){transform:translateY(8px) rotate(45deg)}
 .nav-toggle[aria-expanded="true"] .nav-toggle__icon>span:nth-child(2){opacity:0}
 .nav-toggle[aria-expanded="true"] .nav-toggle__icon>span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
 .site-header .gnav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:16px 24px 20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;max-height:calc(100dvh - var(--header-h));overflow-y:auto;background:#fff;border-top:1px solid #d5e1f3;border-bottom:3px solid #ff7a00;box-shadow:0 10px 20px #153c8f1f}
 .site-header.nav-open .gnav{display:grid}
 .site-header .gnav a{display:flex;align-items:center;min-height:48px;padding:10px 4px;border-bottom:1px solid #e5ecf7;color:#153c8f;font-size:.9rem}
 .site-header .gnav .gnav__contact{grid-column:1 / -1;justify-content:center;margin-top:8px;border:0;border-radius:6px;background:#c85100;color:#fff}
 .site-header .gnav a::after{display:none}
}
@media(max-width:640px){.site-header__inner{gap:8px;padding:0 12px}.site-header .logo{min-width:0;flex-shrink:1}.site-header .brand-logo{width:140px;height:auto}.header-cta{font-size:.72rem;padding:.5em .75em;white-space:nowrap;flex:none}.nav-toggle{width:44px;min-height:44px}.site-header .gnav{padding:12px 16px 16px;column-gap:12px}}
@media(prefers-reduced-motion:reduce){.nav-toggle__icon>span{transition:none}}
