:root {--blue: #0088CC;--navy: #12324A;--steel: #5F747F;--amber: #F4B23C;--bg: #F7FAFC;--white: #FFFFFF;--ink: #1F2428;--muted: #66737B;--line: rgba(18, 50, 74, .14);}* { box-sizing: border-box; }html { scroll-behavior: smooth; }body {margin: 0;color: var(--ink);background: var(--bg);font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;line-height: 1.85;-webkit-font-smoothing: antialiased;}img { max-width: 100%; display: block; }a { color: inherit; }h1, h2, h3, .lead, .btn, summary { word-break: auto-phrase; text-wrap: balance; }.mincho { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; }.mono { font-family: Arial, system-ui, sans-serif; }.site-header {position: sticky;top: 0;z-index: 50;display: grid;grid-template-columns: auto 1fr auto;align-items: center;gap: 28px;padding: 14px clamp(18px, 4vw, 54px);background: var(--white);border-bottom: 1px solid var(--line);}.brand__logo { width: min(360px, 48vw); height: 54px; object-fit: contain; object-position: left center; }.menu-toggle {display: none;position: relative;width: 48px;height: 48px;padding: 0;border: 0;background: transparent;color: var(--navy);cursor: pointer;}.menu-toggle span {position: absolute;left: 12px;width: 24px;height: 2px;background: currentColor;transition: transform .25s ease, opacity .2s ease, top .25s ease;}.menu-toggle span:nth-child(1) { top: 15px; }.menu-toggle span:nth-child(2) { top: 23px; }.menu-toggle span:nth-child(3) { top: 31px; }.site-header.is-menu-open .menu-toggle span:nth-child(1) { top: 23px; transform: rotate(45deg); }.site-header.is-menu-open .menu-toggle span:nth-child(2) { opacity: 0; }.site-header.is-menu-open .menu-toggle span:nth-child(3) { top: 23px; transform: rotate(-45deg); }.site-nav { display: flex; justify-content: center; gap: clamp(16px, 2.4vw, 34px); font-weight: 700; font-size: 14px; }.site-nav a { text-decoration: none; padding: 10px 0; border-bottom: 2px solid transparent; }.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--blue); border-color: var(--blue); }.header-call {text-decoration: none;white-space: nowrap;padding: 10px 16px;border: 1px solid var(--blue);color: var(--blue);font-weight: 800;font-size: 13px;transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;}.hero { width: 100%; min-height: 760px; background: var(--navy); color: var(--white); overflow: hidden; position: relative; }.hero::after {content: "";position: absolute;inset: auto 0 0 0;height: 120px;background: linear-gradient(0deg, rgba(18, 50, 74, .9), transparent);pointer-events: none;}.hero-track { position: relative; }.hero-panel {position: relative;min-height: 760px;padding: 110px clamp(22px, 5vw, 72px) 92px;display: grid;grid-template-columns: .9fr 1.1fr;align-items: center;gap: clamp(30px, 6vw, 82px);}.j .hero-track.is-horizontal { display: flex; width: 400vw; }.j .hero-track.is-horizontal .hero-panel { width: 100vw; flex: none; height: calc(100vh - 0px); }.hero-kicker, .eyebrow {display: inline-flex;align-items: center;gap: 12px;color: var(--blue);font-size: 12px;font-weight: 800;letter-spacing: .22em;text-transform: uppercase;}.hero-kicker::before, .eyebrow::before { content: ""; width: 34px; height: 2px; background: currentColor; }.hero h1 {margin: 18px 0 22px;font-size: clamp(40px, 6.2vw, 82px);line-height: 1.18;font-weight: 900;}.hero-panel:nth-child(n+2) .section-title { color: var(--white); }.hero .lead { max-width: 620px; color: rgba(255,255,255,.84); font-size: clamp(17px, 1.6vw, 21px); }.hero-actions, .footer-actions, .cta-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }.btn {display: inline-flex;align-items: center;justify-content: center;min-height: 50px;padding: 13px 22px;text-decoration: none;font-weight: 800;border: 1px solid transparent;white-space: nowrap;transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;}.btn-primary { background: var(--blue); color: var(--white); }.btn-dark { background: var(--navy); color: var(--white); }.btn-light { background: var(--white); color: var(--navy); }.btn-outline { border-color: currentColor; color: inherit; }.hero-media { position: relative; min-height: 430px; }.hero-photo {width: 100%;height: min(56vw, 560px);object-fit: cover;border-radius: 0 0 0 44px;box-shadow: 0 30px 80px rgba(0,0,0,.34);}.pin-note {position: absolute;left: -20px;bottom: 34px;width: min(280px, 80%);padding: 18px 20px;background: rgba(255,255,255,.96);color: var(--navy);border-left: 5px solid var(--amber);font-weight: 800;box-shadow: 0 18px 48px rgba(0,0,0,.26);}.hero-num {position: absolute;right: 4vw;bottom: 26px;z-index: 2;font-size: clamp(78px, 13vw, 180px);line-height: 1;color: transparent;-webkit-text-stroke: 1px rgba(255,255,255,.26);pointer-events: none;}.hero-progress { position: absolute; left: clamp(22px, 5vw, 72px); bottom: 34px; z-index: 3; width: 220px; height: 2px; background: rgba(255,255,255,.25); }.hero-progress i { display: block; height: 100%; width: 0; background: var(--amber); }.section { position: relative; padding: 100px clamp(20px, 5vw, 72px); overflow: hidden; }.section-inner { width: min(1160px, 100%); margin: 0 auto; position: relative; z-index: 1; }.split { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(34px, 6vw, 80px); align-items: center; }.lead-card {background: var(--white);padding: clamp(26px, 4vw, 48px);border-left: 6px solid var(--blue);}.lead-card p { margin: 0 0 16px; font-size: 18px; }.section-title { margin: 12px 0 22px; font-size: clamp(30px, 4.2vw, 52px); line-height: 1.3; color: var(--navy); }.section-lead { max-width: 720px; color: var(--muted); font-size: 17px; }.worry-list { display: grid; gap: 0; border-top: 1px solid var(--navy); }.worry-item { display: grid; grid-template-columns: 88px 1fr; gap: 26px; padding: 32px 0; border-bottom: 1px solid var(--line); }.worry-item b { font-size: clamp(40px, 6vw, 78px); line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--blue); }.worry-item h3 { margin: 0 0 8px; font-size: 24px; color: var(--navy); }.service-index { display: grid; grid-template-columns: 1.15fr .85fr; gap: 42px; align-items: stretch; }.service-photo { min-height: 620px; object-fit: cover; width: 100%; height: 100%; }.service-list { display: grid; border-top: 1px solid var(--line); }.service-row { display: grid; grid-template-columns: 108px 1fr; gap: 22px; padding: 26px 0; border-bottom: 1px solid var(--line); }.service-row span { color: var(--blue); font-weight: 900; }.service-row h3 { margin: 0 0 6px; color: var(--navy); }.proof-band { background: var(--navy); color: var(--white); }.proof-band .section-title { color: var(--white); }.proof-band .section-lead { color: #fff; }.proof-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }.big-number { font-size: clamp(70px, 14vw, 180px); line-height: .9; font-weight: 900; color: var(--amber); }.fact-list { display: grid; gap: 16px; }.fact { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.22); }.gallery-strip { display: flex; gap: 22px; margin-top: 34px; overflow-x: auto; padding-bottom: 12px; }.gallery-strip figure { flex: 0 0 min(420px, 84vw); margin: 0; }.gallery-strip img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }.gallery-strip figcaption { margin-top: 10px; color: var(--muted); font-size: 14px; }.qual-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 56px; align-items: start; }.badge-stack { display: flex; gap: 16px; margin-top: 26px; }.badge-stack img { width: 92px; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }.license-table { border-top: 1px solid var(--navy); }.license-table div { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); }.license-table b { color: var(--blue); }.message { background: var(--white); }.message-card { display: grid; grid-template-columns: .78fr 1.22fr; gap: 52px; align-items: center; }.message-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }.recruit-panel {position: relative;background: linear-gradient(135deg, rgba(0,136,204,.08), rgba(244,178,60,.16));}.recruit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 38px; align-items: center; }.recruit-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }.conditions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); margin-top: 24px; }.conditions div { padding: 18px 0; border-bottom: 1px solid var(--line); }.conditions b { display: block; color: var(--navy); }.faq-list { border-top: 1px solid var(--navy); }.faq-item { border-bottom: 1px solid var(--line); }.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; padding: 22px 0; font-weight: 800; color: var(--navy); list-style: none; }.faq-item summary::-webkit-details-marker { display: none; }.faq-item summary::after {content: "＋";flex: 0 0 34px;display: grid;place-items: center;width: 34px;height: 34px;border: 1px solid var(--blue);border-radius: 4px;color: var(--blue);font-size: 20px;line-height: 1;transition: color .2s ease, background .2s ease;}.faq-item[open] summary::after { content: "−"; background: var(--blue); color: var(--white); }.faq-item p { margin: 0; padding: 0 0 24px; color: var(--muted); }.process-steps { display: grid; gap: 20px; }.process-step { display: grid; grid-template-columns: 110px 1fr; gap: 26px; align-items: start; padding: 24px 0; border-top: 1px solid var(--line); }.process-step b { font-size: 48px; color: var(--blue); line-height: 1; }.final-cta { background: var(--blue); color: var(--white); }.final-cta .section-title { color: var(--white); }.page-hero { padding: 110px clamp(20px, 5vw, 72px) 70px; background: var(--navy); color: var(--white); position: relative; overflow: hidden; }.page-hero::after { content: ""; position: absolute; inset: 0; background: url("../images/texture-2-opt.webp"); opacity: .08; mix-blend-mode: screen; }.page-hero__inner { width: min(1120px, 100%); margin: 0 auto; position: relative; z-index: 1; }.page-hero h1 { margin: 14px 0 12px; font-size: clamp(36px, 5.4vw, 68px); line-height: 1.2; }.info-table { border-top: 1px solid var(--navy); }.info-table dl { display: grid; grid-template-columns: 190px 1fr; gap: 22px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); }.info-table dt { font-weight: 800; color: var(--navy); }.info-table dd { margin: 0; }.sub-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-top: 28px; }.site-footer { background: #0F2638; color: var(--white); }.footer-cta { padding: 82px clamp(20px, 5vw, 72px); width: min(1160px, 100%); margin: 0 auto; }.footer-cta h2 { font-size: clamp(30px, 4vw, 52px); line-height: 1.3; margin: 12px 0 12px; }.footer-main { border-top: 1px solid rgba(255,255,255,.14); padding: 42px clamp(20px, 5vw, 72px); display: flex; justify-content: space-between; gap: 34px; width: min(1160px, 100%); margin: 0 auto; }.footer-name { font-size: 22px; font-weight: 900; margin-top: 0; }.footer-nav { display: flex; flex-wrap: wrap; gap: 18px; align-content: flex-start; }.footer-nav a, .site-footer a { color: inherit; }.footer-main a { text-decoration: none; text-underline-offset: 4px; }.footer-main a:focus-visible { text-decoration: underline; }.site-footer .btn-light { color: var(--navy); }.phone-cta { min-width: 250px; flex-direction: column; gap: 2px; line-height: 1.25; }.phone-cta span { font-size: 12px; }.phone-cta strong { font-size: 22px; letter-spacing: .04em; }.copyright { margin: 0; padding: 22px clamp(20px, 5vw, 72px); border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.6); }.page-top {position: fixed;right: 22px;bottom: 22px;z-index: 45;display: grid;place-items: center;width: 52px;height: 52px;border: 1px solid rgba(255,255,255,.35);border-radius: 4px;background: var(--navy);color: var(--white);box-shadow: 0 10px 28px rgba(15,38,56,.28);text-decoration: none;font: 800 24px/1 system-ui, sans-serif;transition: background .2s ease, transform .2s ease;}.page-top:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }.btn:focus-visible, .header-call:focus-visible, .menu-toggle:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }@media (hover: hover) {.btn:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(15,38,56,.22); }.btn-primary:hover { background: #0074AD; }.btn-dark:hover { background: #071925; }.btn-light:hover { background: #EAF7FD; color: var(--navy); }.btn-outline:hover { background: rgba(255,255,255,.12); }.header-call:hover { background: var(--blue); color: var(--white); box-shadow: 0 10px 22px rgba(0,136,204,.22); transform: translateY(-2px); }.menu-toggle:hover { background: rgba(0,136,204,.1); }.page-top:hover { background: var(--blue); transform: translateY(-3px); box-shadow: 0 14px 32px rgba(15,38,56,.34); }.footer-main a:hover { text-decoration: underline; }}.btn:active, .header-call:active, .menu-toggle:active, .page-top:active { transform: translateY(0) scale(.97); }@media (prefers-reduced-motion: reduce) {.btn, .header-call, .menu-toggle, .menu-toggle span, .page-top, .faq-item summary::after { transition: none; }}.decor-line { position: absolute; right: -120px; top: 60px; width: 360px; opacity: .22; mix-blend-mode: multiply; pointer-events: none; }.reveal { opacity: 1; }@media (max-width: 900px) {.site-header { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; padding: 10px 18px; }.menu-toggle { display: block; justify-self: end; }.site-nav {display: none;grid-column: 1 / -1;flex-direction: column;align-items: stretch;gap: 0;padding: 8px 0 4px;border-top: 1px solid var(--line);}.site-nav a { padding: 12px 0; }.header-call { display: none; grid-column: 1 / -1; justify-self: stretch; justify-content: center; margin-bottom: 6px; }.site-header.is-menu-open .site-nav { display: flex; }.site-header.is-menu-open .header-call { display: flex; }.hero-panel, .split, .service-index, .proof-grid, .qual-layout, .message-card, .recruit-grid { grid-template-columns: 1fr; }.service-photo { min-height: 340px; }.hero-media { min-height: 300px; }.hero-photo { height: 360px; border-radius: 0 0 0 28px; }.pin-note { left: 12px; bottom: 18px; }.footer-main { flex-direction: column; }}@media (max-width: 768px) {.hero { min-height: auto; }.hero-panel { min-height: auto; padding-top: 70px; padding-bottom: 76px; }.j .hero-track.is-horizontal { display: block; width: auto; }.j .hero-track.is-horizontal .hero-panel { width: auto; height: auto; }.hero-progress, .hero-num { display: none; }.section { padding: 70px 20px; }.worry-item, .service-row, .process-step, .info-table dl { grid-template-columns: 1fr; gap: 8px; }.conditions { grid-template-columns: 1fr; }.badge-stack img { width: 72px; }.brand__logo { width: min(300px, 82vw); height: 48px; }.page-top { right: 14px; bottom: 14px; width: 46px; height: 46px; }}.site-nav__list, .footer-nav__list { display: flex; align-items: center; gap: inherit; margin: 0; padding: 0; list-style: none; }.site-nav__list a { text-decoration: none; padding: 10px 0; border-bottom: 2px solid transparent; }.site-nav__list .current-menu-item > a, .site-nav__list .current_page_item > a { color: var(--blue); border-color: var(--blue); }.footer-nav__list { flex-wrap: wrap; gap: 18px; align-items: flex-start; }.footer-nav__list a { text-decoration: none; text-underline-offset: 4px; }.content-shell { width: min(920px, calc(100% - 40px)); margin: 0 auto; padding: 80px 0; }.content-shell article { max-width: 760px; }.content-shell h1 { color: var(--navy); font-size: clamp(34px, 5vw, 58px); line-height: 1.25; }.content-shell h2 { margin-top: 2em; color: var(--navy); }.post-list { display: grid; gap: 28px; }.post-list article { padding-bottom: 28px; border-bottom: 1px solid var(--line); }.post-list a { color: var(--navy); text-decoration-color: var(--blue); text-underline-offset: 5px; }.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }@media (max-width: 900px) {.site-nav__list { flex-direction: column; align-items: stretch; gap: 0; }.site-nav__list a { display: block; padding: 12px 0; }}@media (hover: hover) { .footer-nav__list a:hover { text-decoration: underline; } }@media screen and (min-width: 783px) { .admin-bar .site-header { top: 32px; } }@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
