@charset "UTF-8";
:root { --black:#000; --white:#fff; --red:#dd2c00; --orange:#ff6e40; --lime:#c0ca33; --turquoise:#00acc1; --blue:#3f51b5; --navy:#1b1445; --royal:#00439c; --container:1200px; }
* { box-sizing:border-box; }
html { background:#000; scroll-behavior:smooth; }
body { margin:0; background:var(--black); color:var(--white); font-family:"Yu Gothic Medium","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; } button { font:inherit; } a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.site-shell { width:min(100%,var(--container)); min-height:100vh; margin:auto; padding:0 25px; border-inline:3px solid #fff; display:grid; grid-template-columns:23.25% 1fr; column-gap:2.35%; align-items:start; }
.sidebar { padding-top:25px; min-width:0; }.logo { display:block; text-decoration:none; text-align:center; font-family:Georgia,serif; line-height:.8; text-shadow:1px 1px 0 #777; }.logo span { display:block; font-size:clamp(2rem,4vw,3.75rem); font-weight:bold; letter-spacing:-.08em; }.logo small { display:block; padding-top:12px; font-family:"Yu Gothic Medium",sans-serif; font-size:.7rem; letter-spacing:.04em; }.contact-summary { text-align:center; font-size:clamp(.95rem,2vw,1.55rem); margin:24px 0; }.contact-summary a { font-size:.8em; text-decoration:none; }.sidebar-photo { display:block; width:100%; height:auto; margin:0 0 16px; }.insurance { display:block; text-align:center; padding:8px; margin-bottom:16px; border:1px solid #fff; font-size:.85rem; text-decoration:none; }.topics h2,.section-title { background:linear-gradient(110deg,var(--royal),var(--navy)); padding:5px 16px; margin:0 0 16px; font-size:1rem; letter-spacing:.18em; }.topics h2 span,.section-title span { float:right; }.side-nav a,.side-nav button,.main-nav a,.main-nav button { border:0; color:#fff; text-decoration:none; text-align:center; cursor:pointer; }.side-nav a,.side-nav button { display:block; width:100%; padding:7px 4px; margin-bottom:7px; }.side-nav strong,.main-nav strong { display:block; font-size:1.25em; }.nav-red{background:var(--red)}.nav-orange{background:var(--orange)}.nav-yellow{background:var(--lime)}.nav-turquoise{background:var(--turquoise)}.nav-blue{background:var(--blue)}.side-nav a:hover,.side-nav button:hover,.main-nav a:hover,.main-nav button:hover { filter:brightness(1.18); }
.content { min-width:0; }.top-visual { display:block; width:calc(100% + 25px); max-width:none; height:auto; margin-right:-25px; }.home-bottom { display:flex; gap:16px; margin-top:16px; }.main-nav { flex:0 0 216px; }.main-nav a,.main-nav button { display:block; width:100%; padding:20px 8px; margin-bottom:0; }.section-title { flex:1; align-self:flex-start; margin:8px 0 0; color:var(--lime); background:none; padding:0 8px; }
.site-footer { grid-column:1/-1; text-align:center; margin:48px 0 60px; }.site-footer nav { display:flex; justify-content:center; flex-wrap:wrap; gap:0; }.site-footer a,.site-footer button { color:#fff; border:0; background:none; padding:0 16px; margin:0 0 12px; border-right:1px solid #fff; text-decoration:none; cursor:pointer; }.site-footer :last-child { border-right:0; }.site-footer p { margin:0; }
.page-content { padding-bottom:20px; }.page-hero { min-height:288px; padding:46px 54px; display:flex; flex-direction:column; justify-content:flex-end; background-position:center; background-size:cover; text-shadow:1px 2px 4px #000; }.repair-hero { background-image:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,67,156,.36)),url('../img/top.jpg'); }.company-hero { background-image:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,172,193,.28)),url('../img/minny.jpg'); }.page-hero p { margin:0; font-size:1.25rem; font-weight:bold; }.page-hero h1 { margin:0; font-size:clamp(2rem,5vw,3.5rem); }.breadcrumb { margin:20px 0 28px; }.repair-intro { padding:0 24px 26px; }.repair-intro h2 { display:flex; margin:0 0 20px; line-height:42px; font-size:1rem; }.repair-intro h2 span { flex:0 0 35%; background:var(--lime); text-align:center; font-size:1.25rem; text-shadow:2px 2px 1px #333; }.repair-intro h2 b { flex:1; color:#333; text-align:center; background:#e6eaae; font-weight:normal; }.service-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:2%; }.service-cards article { margin:0; }.service-cards img { display:block; width:100%; aspect-ratio:1.36; object-fit:cover; }.service-cards p { margin:8px 10px; font-size:.8rem; }.company-overview { display:grid; grid-template-columns:54% 44%; gap:2%; padding:0 24px 28px; }.company-overview dl { margin:0; display:grid; grid-template-columns:30% 70%; align-content:start; }.company-overview dt,.company-overview dd { padding:7px 0; margin:0; border-bottom:1px dotted #fff; }.company-overview dt { padding-left:16px; }.company-photos { display:grid; gap:12px; }.company-photos img { width:100%; height:auto; display:block; }.company-cards { padding:0 24px 26px; }.map-link { margin:0 24px; background:linear-gradient(90deg,#cba351,#eee9bb,#d6c186); color:#333; text-align:center; padding:8px 16px 16px; }.map-link p { margin:0 0 8px; font-size:1.25rem; font-weight:bold; }.map-link a { display:inline-block; background:#333; color:#fff; padding:8px 20px; text-decoration:none; }
.contact-dialog { width:min(600px,calc(100vw - 32px)); max-height:calc(100vh - 32px); border:0; padding:34px 52px; color:#333; }.contact-dialog::backdrop { background:rgba(0,0,0,.65); }.contact-dialog h2 { margin:0 0 20px; }.dialog-close { position:absolute; top:12px; right:16px; border:0; background:transparent; color:#333; font-size:2rem; cursor:pointer; }.contact-form label { display:block; margin:0 0 15px; font-weight:bold; }.contact-form em { color:#c00; font-size:.8rem; font-style:normal; }.contact-form input,.contact-form textarea { display:block; width:100%; margin-top:5px; padding:10px; border:1px solid #999; font:inherit; }.contact-form button { background:#333; color:#fff; padding:10px 22px; border:0; cursor:pointer; }.form-note { font-size:.8rem; color:#666; }
@media (max-width:959px) { .site-shell { padding:0 10px; }.top-visual{width:calc(100% + 10px);margin-right:-10px}.home-bottom{gap:10px}.main-nav{flex-basis:170px}.main-nav a,.main-nav button{padding:14px 5px}.page-hero{min-height:220px}.repair-intro h2 span{font-size:1rem}.company-overview{grid-template-columns:1fr}.company-photos{grid-template-columns:1fr 1fr} }
@media (max-width:679px) { .site-shell { display:block; border-width:0; padding:0 10px; }.sidebar { padding-top:18px; }.logo{max-width:300px;margin:auto}.sidebar-photo{max-width:260px;margin:0 auto 12px}.side-nav { display:grid; grid-template-columns:repeat(2,1fr); gap:5px; }.side-nav a,.side-nav button{margin:0; padding:8px 4px}.topics{margin-top:16px}.content{margin-top:20px}.top-visual{width:100%;margin:0}.home-bottom{display:block}.main-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.main-nav a,.main-nav button{margin:0;padding:10px 4px}.section-title{margin:16px 0}.site-footer{margin:36px 0}.site-footer nav{display:block}.site-footer a,.site-footer button{display:block;border:0;margin:auto auto 8px}.site-footer p{font-size:.8rem}.page-hero{min-height:180px;padding:28px 20px}.breadcrumb,.repair-intro{padding-left:0;padding-right:0}.repair-intro h2{display:block;line-height:1.45}.repair-intro h2 span,.repair-intro h2 b{display:block;padding:8px}.service-cards{grid-template-columns:1fr;gap:16px}.company-overview,.company-cards{padding-left:0;padding-right:0}.company-overview dl{grid-template-columns:34% 66%}.company-overview dt{padding-left:4px}.company-photos{grid-template-columns:1fr}.map-link{margin:0}.contact-dialog{padding:32px 24px} }

/* 現行サイトの実画像をそのまま使用するための上書き */
.logo { height:auto; min-height:137px; background:url('../img/current/logo.png') center/contain no-repeat; font-size:0; }
.logo span,.logo small { display:none; }
.insurance { height:82px; border:0; background:url('../img/current/sonpo.png') center/contain no-repeat; font-size:0; }
.page-hero { min-height:0; height:auto; padding:0; background-position:center; background-size:cover; }
.repair-hero { min-height:288px; background-image:url('../img/current/repair-tittle.jpg'); }
.company-hero { min-height:288px; background-image:url('../img/current/company-tittle.jpg'); }
.repair-hero > *, .company-hero > * { display:none; }
.repair-intro .service-cards article:nth-child(1) img { content:url('../img/current/dummy.png'); }
.repair-intro .service-cards article:nth-child(2) img { content:url('../img/current/dummy2.png'); }
.repair-intro .service-cards article:nth-child(3) img { content:url('../img/current/dummy3.png'); }
.company-cards article:nth-child(2) img { content:url('../img/current/dummy5.png'); }
.company-cards article:nth-child(3) img { content:url('../img/current/dummy6.png'); }
.company-photos img:nth-child(1) { content:url('../img/current/002.jpg'); }
.company-photos img:nth-child(2) { content:url('../img/current/004.jpg'); }
.company-cards article:nth-child(1) img { content:url('../img/current/003.jpg'); }
/* 現行ページと同じ画像の自然な縦横比・切り抜き寸法 */
.repair-intro .service-cards img { aspect-ratio:auto; height:auto; object-fit:initial; }
.company-cards img { height:169px; aspect-ratio:auto; object-fit:cover; object-position:center; }
.page-home .insurance { height:auto; background:none; }
@media (max-width:679px) { .company-cards img { height:auto; } }

.phone-dialog__content { padding:20px 6px 8px; text-align:center; }
.phone-dialog__eyebrow { margin:0 0 8px; color:#3f51b5; font-size:.9rem; font-weight:bold; }
.phone-dialog__number { display:block; margin:18px 0 10px; color:#111; font-family:Arial,sans-serif; font-size:clamp(1.7rem,6vw,2.5rem); font-weight:bold; letter-spacing:.02em; text-decoration:none; }
.phone-dialog__hours { margin:0; font-size:.9rem; }
