/* ==================== HERO (front-page) — 全幅背景＋センター揃え ==================== */
.hero{position:relative;min-height:560px;display:flex;align-items:center;background:linear-gradient(135deg,#003d6b 0%,#0066b3 45%,#1e88e5 100%);overflow:hidden;padding:var(--sp-9) 0;color:#fff;text-align:center}
/* 背景: ぼかし円 + 細かい斜め線パターン + 大きな車シルエット */
.hero::before{content:"";position:absolute;inset:0;background:
	radial-gradient(circle at 78% 22%,rgba(255,255,255,.18),transparent 55%),
	radial-gradient(circle at 12% 85%,rgba(247,168,35,.18),transparent 50%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 360' preserveAspectRatio='xMidYMid slice'><g fill='%23ffffff' opacity='0.07'><path d='M120 220 L160 150 L280 150 L320 220 Z'/><rect x='110' y='216' width='220' height='34' rx='10'/><circle cx='160' cy='258' r='18'/><circle cx='280' cy='258' r='18'/><circle cx='160' cy='258' r='8' fill='%23003d6b'/><circle cx='280' cy='258' r='8' fill='%23003d6b'/><path d='M520 240 L560 170 L680 170 L720 240 Z'/><rect x='510' y='236' width='220' height='34' rx='10'/><circle cx='560' cy='278' r='18'/><circle cx='680' cy='278' r='18'/><circle cx='560' cy='278' r='8' fill='%23003d6b'/><circle cx='680' cy='278' r='8' fill='%23003d6b'/></g></svg>");background-position:center;background-size:cover;pointer-events:none}
/* カスタム背景画像（インラインスタイルで --hero-bg: url(...) を指定） */
.hero--with-image{background-image:linear-gradient(rgba(0,40,75,.62),rgba(0,40,75,.78)),var(--hero-bg);background-size:cover;background-position:center}
.hero--with-image::before{opacity:.6}
.hero--with-image::after{opacity:0}
.hero__inner{position:relative;z-index:1;max-width:880px;margin:0 auto;padding:0 var(--sp-4)}
.hero__copy{max-width:none;margin:0 auto}
.hero__eyebrow{display:inline-block;padding:6px 16px;border-radius:var(--radius-pill);background:rgba(255,255,255,.18);color:#fff;font-size:12px;font-weight:700;letter-spacing:.14em;margin-bottom:var(--sp-4);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25)}
.hero__title{font-size:var(--fz-4xl);color:#fff;line-height:1.35;margin-bottom:var(--sp-4);text-shadow:0 2px 12px rgba(0,30,60,.45);font-weight:800}
.hero__title .accent{color:#ffeaa3;padding:0 4px;background:transparent}
.hero__title .accent--orange{color:var(--c-accent);padding:0 4px;background:transparent}
.hero__lead{font-size:var(--fz-lg);color:#eaf4ff;margin:0 auto var(--sp-5);line-height:1.95;max-width:720px;text-shadow:0 1px 6px rgba(0,30,60,.4)}
.hero__lead strong{color:#fff7d6}
.hero__cta{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5);justify-content:center}
.hero__usp{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center}
.hero__usp-item{display:flex;align-items:center;gap:8px;font-size:var(--fz-sm);color:#fff;font-weight:600}
.hero__usp-item::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--c-accent);color:#fff;border-radius:50%;font-size:12px;font-weight:800}
@media (max-width:768px){
	.hero{min-height:auto;padding:var(--sp-7) 0}
	.hero__title{font-size:28px;line-height:1.5;margin-bottom:var(--sp-3)}
	.hero__lead{font-size:15px;line-height:1.85;margin-bottom:var(--sp-4)}
	.hero__cta{flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4)}
	.hero__cta .btn{width:100%;min-width:0}
	.hero__cta .btn--lg{padding:14px 16px;flex-direction:row;gap:8px}
	.hero__cta .btn--lg .btn__sub{font-size:11px;display:inline}
	.hero__cta .btn--lg .btn__main{font-size:16px;display:inline}
	.hero__usp{gap:var(--sp-2);justify-content:center;font-size:12px}
	.hero__usp-item{font-size:12px}
	.hero__usp-item::before{width:18px;height:18px;font-size:10px}
	.hero__eyebrow{font-size:11px;padding:5px 12px;margin-bottom:var(--sp-3)}
}
@media (max-width:480px){
	.hero__title{font-size:24px;line-height:1.5}
	.hero__title br{display:none}
	.hero__title .accent,.hero__title .accent--orange{padding:0 2px}
	.hero__lead{font-size:14px}
	.hero__lead br{display:none}
}

/* 旧クラス（削除予定だが互換のため残す） */
.hero__visual,.hero__visual-frame,.hero__visual-img,.hero__visual-placeholder,.hero__badge{display:none!important}

/* ==================== popular menu (4枚アイコンカード) ==================== */
.popular-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
.popular-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-3);transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease);text-align:center;overflow:hidden}
.popular-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);text-decoration:none;border-color:var(--c-brand)}
.popular-card img{width:100%;height:auto;border-radius:var(--radius);display:block}
.popular-card__price{font-size:var(--fz-sm);color:var(--c-accent);font-weight:800;margin:var(--sp-3) 0 0;line-height:1.4}
.popular-card__price small{display:block;font-size:11px;color:var(--c-muted);font-weight:500;margin-top:2px;letter-spacing:.04em}
@media (max-width:900px){.popular-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}}
@media (max-width:480px){.popular-card{padding:8px}.popular-card__price{font-size:13px}.popular-card__price small{font-size:10px}}

/* ==================== service cards (front) ==================== */
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.service-card{position:relative;background:#fff;border:2px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5);text-align:center;transition:transform var(--t-base) var(--ease),border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease);overflow:hidden;display:flex;flex-direction:column}
.service-card::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--c-brand) 0%,var(--c-brand-light) 100%)}
.service-card:hover{transform:translateY(-6px);border-color:var(--c-brand);box-shadow:var(--shadow-lg)}
.service-card__icon{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,var(--c-brand) 0%,var(--c-brand-light) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto var(--sp-4);box-shadow:0 8px 18px rgba(0,102,179,.25)}
.service-card__icon svg{width:46px;height:46px;display:block;color:#fff}
.service-card__title{font-size:var(--fz-2xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.service-card__price{font-size:var(--fz-base);color:var(--c-muted);margin-bottom:var(--sp-3)}
.service-card__price strong{color:var(--c-accent);font-size:var(--fz-3xl);font-weight:800;display:block;margin-top:4px}
.service-card__desc{color:var(--c-text);font-size:var(--fz-sm);text-align:left;margin-bottom:var(--sp-4);line-height:1.7;flex-grow:1}
.service-card__more{margin-top:auto;display:inline-block}
@media (max-width:900px){.service-cards{grid-template-columns:1fr}}

/* ==================== reasons (front) ==================== */
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.reason-item{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5);position:relative;padding-top:var(--sp-7)}
.reason-item__num{position:absolute;top:-20px;left:24px;width:48px;height:48px;background:var(--c-brand);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fz-xl);font-weight:800;box-shadow:var(--shadow)}
.reason-item__title{font-size:var(--fz-xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.reason-item__desc{color:var(--c-text);font-size:var(--fz-sm);line-height:1.85}
@media (max-width:900px){.reason-grid{grid-template-columns:1fr}}

/* ==================== service detail page hero — 全幅背景＋センター揃え ==================== */
.svc-hero{position:relative;min-height:440px;display:flex;align-items:center;background:linear-gradient(135deg,#003d6b 0%,#0066b3 50%,#1e88e5 100%);padding:var(--sp-8) 0;color:#fff;text-align:center;overflow:hidden}
.svc-hero::before{content:"";position:absolute;inset:0;background:
	radial-gradient(circle at 78% 22%,rgba(255,255,255,.18),transparent 55%),
	radial-gradient(circle at 12% 85%,rgba(247,168,35,.16),transparent 50%);pointer-events:none}
.svc-hero::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 360' preserveAspectRatio='xMidYMid slice'><g fill='%23ffffff' opacity='0.06'><path d='M300 230 L340 160 L460 160 L500 230 Z'/><rect x='290' y='226' width='220' height='34' rx='10'/><circle cx='340' cy='268' r='18'/><circle cx='460' cy='268' r='18'/><circle cx='340' cy='268' r='8' fill='%23003d6b'/><circle cx='460' cy='268' r='8' fill='%23003d6b'/></g></svg>");background-position:center;background-size:cover;pointer-events:none}
.svc-hero--with-image{background-image:linear-gradient(rgba(0,40,75,.62),rgba(0,40,75,.78)),var(--hero-bg);background-size:cover;background-position:center}
.svc-hero--with-image::before{opacity:.6}
.svc-hero--with-image::after{opacity:0}
.svc-hero__inner{position:relative;z-index:1;max-width:880px;margin:0 auto;padding:0 var(--sp-4);display:block;text-align:center}
.svc-hero__title{font-size:var(--fz-4xl);color:#fff;margin-bottom:var(--sp-4);line-height:1.4;text-shadow:0 2px 12px rgba(0,30,60,.45);font-weight:800}
.svc-hero__lead{font-size:var(--fz-lg);color:#eaf4ff;margin:0 auto var(--sp-5);line-height:1.9;max-width:720px;text-shadow:0 1px 6px rgba(0,30,60,.4)}
.svc-hero__price{display:inline-flex;align-items:baseline;gap:10px;background:#fff;border:2px solid var(--c-accent);border-radius:var(--radius);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-lg)}
.svc-hero__price-label{font-size:var(--fz-sm);color:var(--c-muted);white-space:nowrap}
.svc-hero__price-amount{font-size:var(--fz-2xl);color:var(--c-accent);font-weight:800;white-space:nowrap}
.svc-hero__price-tax{font-size:13px;color:var(--c-muted);white-space:nowrap}
.svc-hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
@media (max-width:768px){
	.svc-hero{min-height:auto;padding:var(--sp-7) 0}
	.svc-hero__title{font-size:24px;line-height:1.5;margin-bottom:var(--sp-3)}
	.svc-hero__lead{font-size:15px;line-height:1.85;margin-bottom:var(--sp-4)}
	.svc-hero__lead br{display:none}
	.svc-hero__price{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:baseline;padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);gap:6px;width:100%;box-sizing:border-box;max-width:100%;text-align:center}
	.svc-hero__price-label{font-size:13px}
	.svc-hero__price-amount{font-size:26px;font-weight:800}
	.svc-hero__price-tax{font-size:13px;width:100%;text-align:center;margin-top:0}
	.svc-hero__cta{flex-direction:column;gap:var(--sp-2)}
	.svc-hero__cta .btn{width:100%}
}
@media (max-width:480px){
	.svc-hero__title{font-size:21px}
	.svc-hero__price{padding:var(--sp-3)}
	.svc-hero__price-amount{font-size:24px}
}

.svc-merit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
.svc-merit{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-5)}
.svc-merit__head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.svc-merit__num{font-size:var(--fz-xl);font-weight:800;color:var(--c-brand);width:40px;height:40px;border:2px solid var(--c-brand);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.svc-merit__title{font-size:var(--fz-lg);color:var(--c-heading);margin:0}
.svc-merit__body{color:var(--c-text);font-size:var(--fz-sm);line-height:1.8}
@media (max-width:768px){.svc-merit-grid{grid-template-columns:1fr}}

/* ==================== single (post / works) ==================== */
.single-article{background:#fff;padding:var(--sp-7) 0}
.single-article__head{margin-bottom:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:1px solid var(--c-line)}
.single-article__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3);line-height:1.4}
.single-article__meta{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:13px;color:var(--c-muted)}
.single-article__meta a{color:var(--c-brand-deep)}
.single-article__thumb{margin-bottom:var(--sp-5);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-line)}
.single-article__thumb img{width:100%;height:auto;display:block}
.single-article__body{font-size:var(--fz-base);line-height:1.95}

/* works single — pair view */
.works-single__pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.works-single__pair figure{position:relative;border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden}
.works-single__pair figure img{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover}
.works-single__pair figcaption{position:absolute;left:0;top:0;background:rgba(10,38,71,.85);color:#fff;font-size:13px;padding:6px 14px;font-weight:700;letter-spacing:.1em}
.works-single__pair figure:nth-child(2) figcaption{background:rgba(247,168,35,.95)}
.works-single__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-2);background:var(--c-bg-alt);padding:var(--sp-4);border-radius:var(--radius);margin-bottom:var(--sp-5)}
.works-single__meta dt{font-size:11px;color:var(--c-muted);font-weight:700;letter-spacing:.06em}
.works-single__meta dd{font-size:var(--fz-base);color:var(--c-heading);font-weight:600;margin:0}
@media (max-width:560px){.works-single__pair{grid-template-columns:1fr}}

/* archive */
.archive-head{background:linear-gradient(135deg,#dceefb 0%,#ffffff 100%);padding:var(--sp-7) 0 var(--sp-6);text-align:center}
.archive-head__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.archive-head__lead{color:var(--c-muted);font-size:var(--fz-base);max-width:680px;margin:0 auto}

/* pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin:var(--sp-7) 0;flex-wrap:wrap}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border-radius:var(--radius);background:#fff;border:1px solid var(--c-line);color:var(--c-heading);font-weight:600;font-size:var(--fz-sm)}
.pagination .current,.pagination a:hover{background:var(--c-brand);color:#fff;border-color:var(--c-brand);text-decoration:none}

/* page header (generic) */
.page-head{background:linear-gradient(135deg,#dceefb 0%,#ffffff 100%);padding:var(--sp-7) 0;text-align:center}
.page-head__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.page-head__lead{color:var(--c-muted);max-width:680px;margin:0 auto;font-size:var(--fz-base)}

/* contact info row */
.contact-channels{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5);margin:var(--sp-6) 0}
.contact-channel{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-5);text-align:center;transition:box-shadow var(--t-base) var(--ease)}
.contact-channel:hover{box-shadow:var(--shadow)}
.contact-channel__icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-3);font-size:26px;color:#fff}
.contact-channel--tel .contact-channel__icon{background:var(--c-accent)}
.contact-channel--mail .contact-channel__icon{background:var(--c-brand)}
.contact-channel__title{font-size:var(--fz-lg);color:var(--c-heading);margin-bottom:var(--sp-2)}
.contact-channel__main{font-size:var(--fz-2xl);font-weight:800;color:var(--c-heading);margin-bottom:8px;letter-spacing:.02em}
.contact-channel__main a{color:inherit}
.contact-channel__sub{font-size:13px;color:var(--c-muted)}
@media (max-width:768px){.contact-channels{grid-template-columns:1fr}}

/* 404 */
.not-found{padding:var(--sp-9) 0;text-align:center}
.not-found__code{font-size:120px;font-weight:900;color:var(--c-brand-light);line-height:1;margin-bottom:var(--sp-4)}
.not-found__title{font-size:var(--fz-2xl);color:var(--c-heading);margin-bottom:var(--sp-4)}
.not-found__lead{color:var(--c-muted);max-width:560px;margin:0 auto var(--sp-5)}

/* search form */
.search-form{display:flex;gap:8px;max-width:520px;margin:0 auto}
.search-form input[type=search]{flex:1;padding:12px 16px;border:1px solid var(--c-line);border-radius:var(--radius);font-size:var(--fz-base)}
.search-form input[type=search]:focus{border-color:var(--c-brand);outline:none;box-shadow:0 0 0 3px rgba(0,102,179,.15)}
.search-form .btn{flex-shrink:0}

/* placeholder image */
.placeholder-img{aspect-ratio:16/9;background:linear-gradient(135deg,var(--c-brand-light) 0%,var(--c-brand) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fz-lg);font-weight:700;border-radius:var(--radius);text-align:center;padding:var(--sp-5)}

/* before-after slider on service page */
.ba-slider{margin:var(--sp-6) 0}
.ba-slider__track{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);align-items:start}
.ba-slider__pane{position:relative;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.ba-slider__pane img{width:100%;height:100%;object-fit:cover;display:block}
.ba-slider__label{position:absolute;left:0;top:0;background:rgba(10,38,71,.85);color:#fff;font-size:12px;padding:6px 14px;font-weight:700;letter-spacing:.1em}
.ba-slider__pane:nth-child(2) .ba-slider__label{background:rgba(247,168,35,.95)}
.ba-slider__placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:#fff;background:linear-gradient(135deg,var(--c-brand-light) 0%,var(--c-brand) 100%);font-size:var(--fz-sm);text-align:center;padding:var(--sp-4)}
@media (max-width:560px){.ba-slider__track{grid-template-columns:1fr}}
