:root {
  --sub-blue: #0564bd;
  --sub-deep: #052f62;
  --sub-sky: #e8f5ff;
  --sub-gold: #e9a80c;
  --sub-ink: #17283b;
}

html { scroll-behavior: smooth; }
body.subpage { margin: 0; color: var(--sub-ink); background: #fff; font-family: "Noto Sans JP", "Yu Gothic", sans-serif; }
.subpage *, .subpage *::before, .subpage *::after { box-sizing: border-box; }
.subpage img { max-width: 100%; height: auto; vertical-align: middle; }
.subpage a { color: inherit; text-decoration: none; }
.subpage header { position: relative; z-index: 1000; }
.subpage header .header_box .logo a { top: 8px; width: 285px; height: auto; aspect-ratio: 1734 / 420; padding: 0; color: transparent; font-size: 0; }
.subpage header .header_box .logo a::before { content: ""; position: absolute; display: block; inset: 0; width: 100%; height: 100%; background-image: url("img/header_logo_company.png"); background-repeat: no-repeat; background-position: left center; background-size: contain; }
.subpage header .header_box .logo a::after { display: none; }
.subpage header .header_box .tel a { left: 515px; }
.subpage header .header_box .button { right: 220px; width: 210px; }
.subpage header .header_box .form-button { position: absolute; top: 20px; right: 0; width: 210px; height: 50px; margin: 0; }
.subpage header .header_box.active02 .form-button { top: 10px; }
.subpage header .header_box .form-button a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--sub-blue); border-radius: 10px; color: #fff; background: linear-gradient(135deg, #0564bd, #188be4); font-size: 14px; font-weight: 800; letter-spacing: .03em; transition: background-color .3s ease, color .3s ease; }
.subpage header .header_box .form-button a::before { content: "✉"; font-size: 17px; }
.subpage header .header_box .form-button a:hover { color: var(--sub-blue); background: #fff; }
.subpage header .main_nav a[aria-current="page"] { color: #fff; background: var(--sub-blue); }
.subpage header #nav-btn { display: none; }

.sub-main { padding-top: 0; overflow: hidden; }
.sub-container { width: min(1100px, calc(100% - 48px)); margin: 0 auto; }
.sub-hero { position: relative; padding: 82px 0 76px; text-align: center; background: #edf8ff; }
.sub-hero::before { display: none; }
.sub-hero .sub-container { position: relative; }
.about-page .sub-main { padding-top: 0; }
.about-lead-photo {
  width: min(1100px, calc(100% - 48px));
  margin: 56px auto 0;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 14px 38px rgba(4,63,117,.14);
}
.about-lead-photo img { display: block; width: 100%; }
.about-lead-photo + .sub-section { padding-top: 56px; }
.sub-kicker { margin: 0 0 8px; color: var(--sub-blue); font-weight: 800; letter-spacing: .18em; }
.sub-hero h1 { margin: 0; color: var(--sub-deep); font-size: clamp(32px, 5vw, 56px); line-height: 1.25; letter-spacing: .06em; }
.flow-jump-nav { display: flex; justify-content: center; gap: 18px; margin: 32px auto 0; }
.flow-jump-nav a { min-width: 260px; padding: 14px 24px; border: 2px solid var(--sub-blue); border-radius: 999px; color: var(--sub-blue); background: #fff; font-weight: 800; }
.flow-jump-nav a::after { margin-left: 10px; content: "↓"; }
.breadcrumbs { margin: 24px 0 0; font-size: 13px; color: #54718c; }
.breadcrumbs a { text-decoration: underline; }

.sub-section { padding: 88px 0; }
.sub-section.is-blue { background: #f1f9ff; }
.sub-heading { margin: 0 0 42px; text-align: center; }
.sub-heading .sub-kicker { margin-bottom: 10px; }
.sub-heading h2 { margin: 0; color: var(--sub-deep); font-size: clamp(28px, 4vw, 42px); line-height: 1.45; }
.sub-heading p:last-child { max-width: 760px; margin: 18px auto 0; line-height: 2; }
.lead-copy { max-width: 850px; margin: 0 auto; font-size: 17px; line-height: 2.1; text-align: center; }
.lead-copy strong { color: var(--sub-blue); }

.photo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 40px; }
.photo-grid img { width: 100%; height: 190px; object-fit: cover; border: 5px solid #fff; border-radius: 18px; box-shadow: 0 8px 28px rgba(4,63,117,.13); }
.feature-row { display: grid; grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: center; margin-bottom: 54px; padding: 28px; border-radius: 24px; background: #fff; box-shadow: 0 12px 34px rgba(4,63,117,.1); }
.feature-row:nth-child(even) .feature-photo { order: 2; }
.feature-photo img { width: 100%; height: 300px; object-fit: cover; border-radius: 18px; }
.feature-copy .num { color: var(--sub-gold); font-size: 18px; font-weight: 900; letter-spacing: .14em; }
.feature-copy h3 { margin: 8px 0 18px; color: var(--sub-deep); font-size: 28px; line-height: 1.5; }
.feature-copy p { margin: 0; line-height: 2; }

.about-message-copy { position: relative; max-width: 850px; margin: 0 auto; padding: 44px 48px; border: 2px solid #c5e0f5; border-radius: 24px; background: #fff; box-shadow: 0 12px 34px rgba(4,63,117,.1); }
.about-message-copy p { margin: 0 0 20px; line-height: 2.1; }
.about-message-copy p:last-child { margin-bottom: 0; }
.about-message-sign { color: var(--sub-deep); text-align: right; font-weight: 800; }
.company-profile { max-width: 850px; margin: 0 auto; overflow: hidden; border: 2px solid #b9daf6; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(4,63,117,.09); }
.company-profile > div { display: grid; grid-template-columns: 210px 1fr; border-bottom: 1px solid #d7e8f6; }
.company-profile > div:last-child { border-bottom: 0; }
.company-profile dt, .company-profile dd { margin: 0; padding: 20px 24px; line-height: 1.8; }
.company-profile dt { color: var(--sub-deep); background: #e8f5ff; font-weight: 800; }
.company-profile dd { background: #fff; }
.company-profile a { color: var(--sub-blue); text-decoration: underline; }

.metric-grid, .trust-grid, .option-grid, .area-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.metric-card, .trust-card, .option-card, .area-card { padding: 30px 26px; border: 2px solid #b9daf6; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 8px 26px rgba(4,63,117,.08); }
.metric-card strong { display: block; margin: 8px 0; color: var(--sub-deep); font-size: 42px; }
.metric-card span, .trust-card h3, .option-card h3, .area-card h3 { color: var(--sub-blue); font-weight: 800; }
.trust-card p, .option-card p, .area-card p { margin-bottom: 0; line-height: 1.9; }

.price-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.price-card { position: relative; overflow: hidden; padding: 34px; border: 3px solid var(--sub-blue); border-radius: 24px; background: #fff; box-shadow: 0 14px 36px rgba(4,63,117,.12); }
.price-card::before { position: absolute; top: 0; left: 0; width: 100%; height: 10px; content: ""; background: linear-gradient(90deg, var(--sub-blue), #45a9f0); }
.price-card h3 { min-height: 70px; margin: 8px 0 24px; color: var(--sub-deep); font-size: 27px; text-align: center; }
.regular-price { margin: 0; color: #687d91; text-align: center; text-decoration: line-through; }
.special-price { margin: 5px 0 22px; color: var(--sub-blue); text-align: center; font-weight: 900; }
.special-price strong { font-size: 58px; line-height: 1; }
.price-card ul { margin: 0; padding-left: 1.5em; line-height: 1.9; }
.price-note { margin: 28px 0 0; text-align: center; line-height: 1.8; }
.quote-estimator { margin-top: 70px; padding: 42px; border: 3px solid var(--sub-blue); border-radius: 28px; background: linear-gradient(180deg, #f7fcff 0, #fff 100%); box-shadow: 0 16px 44px rgba(4,63,117,.14); }
.quote-estimator-heading { margin-bottom: 34px; text-align: center; }
.quote-estimator-heading h2 { margin: 4px 0 12px; color: var(--sub-deep); font-size: clamp(28px, 4vw, 40px); }
.quote-estimator-heading > p:last-child { margin: 0; line-height: 1.8; }
.quote-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 30px; align-items: start; }
.quote-group + .quote-group { margin-top: 30px; }
.quote-group-heading { margin-bottom: 14px; }
.quote-group-heading > span { display: inline-block; margin-bottom: 5px; color: var(--sub-blue); font-size: 13px; font-weight: 900; letter-spacing: .14em; }
.quote-group-heading h3 { margin: 0; color: var(--sub-deep); font-size: 23px; }
.quote-group-heading p { display: inline-block; margin: 9px 0 0; padding: 5px 12px; border-radius: 999px; color: #8b5700; background: #fff0b8; font-size: 13px; font-weight: 800; }
.quote-item-list { display: grid; gap: 12px; }
.quote-item { display: flex; min-height: 90px; justify-content: space-between; align-items: center; gap: 18px; padding: 18px 20px; border: 2px solid #c7e0f4; border-radius: 17px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.quote-item:focus-within { border-color: var(--sub-blue); box-shadow: 0 0 0 4px rgba(5,100,189,.1); transform: translateY(-1px); }
.quote-item strong { display: block; color: var(--sub-deep); font-size: 17px; line-height: 1.55; }
.quote-item div > span { display: block; margin-top: 5px; color: #597188; font-size: 13px; line-height: 1.55; }
.quote-item .quote-service-prices { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 13px; margin-top: 7px; }
.quote-regular-price { color: #718598; font-size: 12px; }
.quote-regular-price del { text-decoration-thickness: 1.5px; }
.quote-special-price { color: var(--sub-blue); font-size: 13px; font-weight: 800; }
.quote-special-price b { font-size: 21px; }
.quote-item label { flex: 0 0 auto; color: #526b82; font-size: 12px; font-weight: 700; text-align: center; }
.quote-item select { display: block; min-width: 92px; margin-top: 4px; padding: 10px 30px 10px 12px; border: 2px solid var(--sub-blue); border-radius: 10px; color: var(--sub-deep); background: #fff; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.quote-summary { position: sticky; top: 170px; padding: 28px; border-radius: 22px; color: #fff; background: linear-gradient(145deg, #063b74, #0874d0); box-shadow: 0 14px 34px rgba(3,45,86,.22); }
.quote-summary-kicker { margin: 0 0 4px; color: #bce5ff; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.quote-summary h3 { margin: 0 0 20px; color: #fff; font-size: 27px; }
.quote-lines { margin: 0; padding: 0; list-style: none; }
.quote-lines li, .quote-discount { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.22); font-size: 13px; line-height: 1.55; }
.quote-discount[hidden] { display: none; }
.quote-lines li span { min-width: 0; }
.quote-lines li strong, .quote-discount strong { flex: 0 0 auto; }
.quote-empty { color: #c7e8ff; }
.quote-discount { color: #ffe994; font-weight: 800; }
.quote-regular-total { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 18px 0 0; color: #d6edff; font-size: 13px; font-weight: 700; }
.quote-regular-total del { flex: 0 0 auto; font-size: 18px; text-decoration-thickness: 2px; }
.quote-total { display: flex; justify-content: space-between; align-items: flex-end; gap: 15px; margin: 22px 0 0; }
.quote-total span { font-size: 13px; font-weight: 800; }
.quote-total strong { color: #fff; font-size: clamp(31px, 4vw, 42px); line-height: 1; white-space: nowrap; }
.quote-savings { margin-top: 18px; padding: 14px 12px; border-radius: 13px; color: #704500; background: linear-gradient(135deg, #fff2af, #ffd766); text-align: center; box-shadow: inset 0 0 0 1px rgba(112,69,0,.12); }
.quote-savings[hidden] { display: none; }
.quote-savings > span { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 800; }
.quote-savings strong { font-size: 19px; }
.quote-savings b { color: #bd3f00; font-size: 27px; }
.quote-summary-note { margin: 22px 0 0; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.25); font-size: 12px; line-height: 1.75; }
.price-page .option-grid { grid-template-columns: repeat(4, 1fr); }
.option-discount-note { margin: 28px auto 0; padding: 18px 24px; border: 2px solid #e7b030; border-radius: 15px; color: #6f4500; background: #fff5cd; text-align: center; font-weight: 800; }

.flow-list { position: relative; max-width: 900px; margin: 0 auto; }
#before-visit, #on-the-day { scroll-margin-top: 150px; }
.flow-list::before { position: absolute; top: 40px; bottom: 40px; left: 45px; width: 4px; content: ""; background: #badcf6; }
.flow-step { position: relative; display: grid; grid-template-columns: 90px 1fr; gap: 28px; margin-bottom: 28px; padding: 30px; border: 2px solid #c5e0f5; border-radius: 22px; background: #fff; box-shadow: 0 8px 24px rgba(4,63,117,.08); }
.flow-num { position: relative; z-index: 1; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: var(--sub-blue); color: #fff; font-size: 25px; font-weight: 900; }
.flow-step h3 { margin: 0 0 10px; color: var(--sub-deep); font-size: 24px; }
.flow-step p { margin: 0; line-height: 1.9; }
.wash-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 26px; }
.wash-grid div { padding: 20px; border-radius: 15px; background: var(--sub-sky); }
.wash-grid strong { display: block; margin-bottom: 6px; color: var(--sub-blue); }

.filter-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 34px; }
.filter-tabs span { padding: 10px 20px; border: 2px solid var(--sub-blue); border-radius: 999px; color: var(--sub-blue); background: #fff; font-weight: 800; }
.filter-tabs span:first-child { color: #fff; background: var(--sub-blue); }
.works-grid, .blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.work-card, .blog-card { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(4,63,117,.12); }
.work-card img, .blog-card img { width: 100%; height: 210px; object-fit: cover; }
.card-body { padding: 24px; }
.card-tag { display: inline-block; margin-bottom: 12px; padding: 5px 12px; border-radius: 999px; color: var(--sub-blue); background: var(--sub-sky); font-size: 12px; font-weight: 800; }
.card-body h2, .card-body h3 { margin: 0 0 12px; color: var(--sub-deep); font-size: 20px; line-height: 1.55; }
.card-body p { margin: 0; line-height: 1.85; }
.before-after { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 18px; }
.before-after span { padding: 8px; color: #fff; background: #667; text-align: center; font-size: 12px; }
.before-after span:last-child { background: var(--sub-blue); }

.area-map { position: relative; max-width: 800px; margin: 0 auto 42px; padding: 52px 30px; border-radius: 28px; color: #fff; background: linear-gradient(135deg, #0871ce, #003a77); text-align: center; box-shadow: 0 16px 40px rgba(4,63,117,.22); }
.area-map strong { display: block; font-size: clamp(34px, 6vw, 62px); }
.area-map p { margin: 14px 0 0; font-size: 19px; line-height: 1.8; }
.area-card ul { margin: 18px 0 0; padding: 0; list-style: none; line-height: 2; text-align: left; }
.area-page .area-grid { grid-template-columns: repeat(2, 1fr); align-items: start; }
.area-notice { margin-top: 30px; padding: 24px; border-radius: 16px; background: #fff5d7; line-height: 1.9; text-align: center; }

.faq-categories { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 42px; }
.faq-categories a { padding: 11px 20px; border-radius: 999px; color: var(--sub-blue); background: var(--sub-sky); font-weight: 800; }
.faq-group { max-width: 900px; margin: 0 auto 52px; scroll-margin-top: 160px; }
.faq-group h2 { margin-bottom: 20px; padding-bottom: 12px; border-bottom: 3px solid var(--sub-blue); color: var(--sub-deep); font-size: 28px; }
.faq-item { margin-bottom: 12px; overflow: hidden; border: 1px solid #c7dced; border-radius: 14px; background: #fff; }
.faq-question { position: relative; width: 100%; padding: 22px 58px 22px 58px; border: 0; color: var(--sub-ink); background: transparent; text-align: left; font: inherit; font-weight: 800; cursor: pointer; }
.faq-question::before { position: absolute; left: 20px; content: "Q"; color: var(--sub-blue); font-size: 24px; }
.faq-question::after { position: absolute; right: 22px; content: "+"; color: var(--sub-blue); font-size: 26px; }
.faq-item.is-open .faq-question::after { content: "−"; }
.faq-answer { display: none; position: relative; margin: 0; padding: 0 24px 24px 58px; line-height: 1.9; }
.faq-answer::before { position: absolute; left: 20px; content: "A"; color: var(--sub-gold); font-size: 24px; font-weight: 900; }
.faq-item.is-open .faq-answer { display: block; }

.blog-card { display: flex; flex-direction: column; }
.blog-card .card-body { flex: 1; }
.blog-date { margin-bottom: 10px !important; color: #6b8296; font-size: 13px; }
.coming-note { margin: 36px auto 0; padding: 22px; border: 2px dashed #9ac9ee; border-radius: 16px; text-align: center; line-height: 1.8; }
.contact-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.contact-method { padding: 34px 24px; border: 2px solid #c4def3; border-radius: 22px; background: #fff; text-align: center; box-shadow: 0 10px 30px rgba(4,63,117,.1); }
.contact-icon { display: grid; width: 72px; height: 72px; margin: 0 auto 18px; place-items: center; border-radius: 50%; color: #fff; background: var(--sub-blue); font-size: 20px; font-weight: 900; }
.contact-method h2 { margin: 0 0 10px; color: var(--sub-deep); font-size: 26px; }
.contact-method p { min-height: 52px; line-height: 1.7; }
.contact-method-button { display: flex; min-height: 76px; flex-direction: column; justify-content: center; align-items: center; margin-top: 20px; padding: 12px; border-radius: 13px; color: #fff !important; background: var(--sub-blue); font-size: 18px; font-weight: 900; }
.contact-method-button.is-phone { color: var(--sub-deep) !important; background: var(--sub-sky); font-size: 23px; }
.contact-method-button.is-phone small { font-size: 12px; }
.contact-method-button.is-line { background: #06bd55; }
.contact-method-button.is-mail { font-size: 16px; }
.kurashiro-contact-form { max-width: 1000px; margin: 44px auto 0; padding: 44px; border: 2px solid #b9d9f2; border-radius: 24px; background: #fff; box-shadow: 0 14px 40px rgba(4,63,117,.1); }
.kurashiro-contact-form fieldset { margin: 0 0 34px; padding: 0 0 32px; border: 0; border-bottom: 1px solid #cce1f2; }
.kurashiro-contact-form fieldset:last-of-type { margin-bottom: 26px; }
.kurashiro-contact-form legend { width: 100%; margin: 0 0 22px; color: var(--sub-deep); font-size: 23px; font-weight: 900; }
.kurashiro-contact-form label, .contact-form-label { display: block; color: #173b5d; font-weight: 800; line-height: 1.55; }
.kurashiro-contact-form input[type="text"], .kurashiro-contact-form input[type="tel"], .kurashiro-contact-form input[type="email"], .kurashiro-contact-form input[type="date"], .kurashiro-contact-form select, .kurashiro-contact-form textarea, .kurashiro-contact-form input[type="file"] { display: block; width: 100%; margin-top: 9px; padding: 13px 14px; border: 1px solid #9fc8e8; border-radius: 10px; color: #173b5d; background: #fafdff; font: inherit; font-weight: 500; }
.kurashiro-contact-form textarea { resize: vertical; }
.contact-form-grid { display: grid; gap: 20px; margin-bottom: 22px; }
.contact-form-grid.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-form-grid.is-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contact-form-grid.is-date-preferences { grid-template-columns: 1fr; }
.contact-form-grid.is-date-preferences > label { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.contact-form-grid.is-date-preferences .contact-form-field-title { grid-column: 1 / -1; }
.contact-form-grid.is-date-preferences label > input + select { margin-top: 9px; }
.contact-form-grid label > select + select, .contact-form-grid label > input + select { margin-top: 10px; }
.contact-form-category { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.contact-form-category label { cursor: pointer; }
.contact-form-category input { position: absolute; opacity: 0; pointer-events: none; }
.contact-form-category span { display: flex; min-height: 110px; flex-direction: column; justify-content: center; gap: 7px; padding: 22px; border: 2px solid #b9d9f2; border-radius: 16px; background: #fafdff; text-align: center; transition: .2s ease; }
.contact-form-category strong { color: var(--sub-deep); font-size: 20px; }
.contact-form-category small { color: #55738f; font-size: 13px; }
.contact-form-category input:checked + span { border-color: var(--sub-blue); background: #e8f5ff; box-shadow: 0 0 0 3px rgba(24,139,228,.12); }
.contact-form-category input:focus-visible + span { outline: 3px solid #f2ad22; outline-offset: 3px; }
[data-cleaning-fields][hidden] { display: none !important; }
.contact-form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form-group { margin-top: 20px; }
.contact-form-checks { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 12px; }
.contact-form-checks label { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.contact-form-checks input, .contact-form-agreement input { width: 20px; height: 20px; accent-color: var(--sub-blue); }
.required { display: inline-block; margin-left: 8px; padding: 2px 7px; border-radius: 5px; color: #fff; background: #d74646; font-size: 11px; vertical-align: 2px; }
.contact-form-agreement { display: grid; gap: 12px; justify-content: center; margin: 28px 0; }
.contact-form-agreement label { display: flex; align-items: center; gap: 9px; }
.contact-form-submit { display: block; width: min(440px, 100%); margin: 0 auto; padding: 17px 24px; border: 0; border-radius: 999px; color: #fff; background: linear-gradient(135deg, #065aaa, #188be4); font-size: 20px; font-weight: 900; cursor: pointer; box-shadow: 0 9px 24px rgba(6,90,170,.24); }
.contact-form-submit:disabled { cursor: wait; opacity: .65; }
.contact-form-status { max-width: 680px; margin: 22px auto 0; padding: 16px; border-radius: 10px; color: #07549a; background: #e7f4ff; text-align: center; font-weight: 800; }
.contact-form-status.is-success { color: #0d6330; background: #e7f8ee; }
.contact-form-status.is-error { color: #9a1f1f; background: #ffeded; }
.contact-checklist { max-width: 850px; margin: 54px auto 0; padding: 34px; border-radius: 20px; background: var(--sub-sky); }
.contact-checklist h2 { margin: 0 0 20px; color: var(--sub-deep); font-size: 24px; text-align: center; }
.contact-checklist ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 30px; margin: 0; padding-left: 1.4em; }
.contact-checklist p { margin: 22px 0 0; text-align: center; }

.sub-cta { padding: 82px 0; color: #fff; background: linear-gradient(135deg, #054b91, #0877d5); text-align: center; }
.sub-cta h2 { margin: 0 0 16px; font-size: clamp(28px, 4vw, 40px); }
.sub-cta p { line-height: 1.9; }
.sub-cta .sub-kicker { color: #aadeff; }
.sub-cta-actions { display: flex; max-width: 760px; margin: 30px auto 0; gap: 18px; }
.sub-cta-actions a { display: flex; flex: 1; min-height: 92px; justify-content: center; align-items: center; border-radius: 16px; font-weight: 900; }
.sub-phone { flex-direction: column; color: var(--sub-deep) !important; background: #fff; }
.sub-phone small { font-size: 13px; }
.sub-phone strong { font-size: 27px; }
.sub-line { color: #fff !important; background: #06bd55; font-size: 20px; }
.subpage footer { padding: 46px 0 110px; color: #fff; background: #082b51; }
.sub-footer-grid { display: grid; width: min(1100px, calc(100% - 48px)); margin: 0 auto; grid-template-columns: 1.25fr 1fr .75fr .75fr; gap: 36px; }
.sub-footer-grid h2 { margin: 0 0 20px; color: #fff; font-size: 16px; }
.sub-footer-logo { display: inline-block; width: 280px; margin-bottom: 24px; }
.sub-footer-logo img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.sub-footer-grid ul { margin: 0; padding-left: 1.2em; font-size: 13px; line-height: 2; }
.sub-footer-company p { margin: 9px 0; font-size: 14px; font-weight: 700; }
.sub-footer-copy { width: min(1100px, calc(100% - 48px)); margin: 42px auto 0; text-align: right; font-size: 12px; }

@media (max-width: 767px) {
  .subpage header, .subpage header .header_box { height: 110px; }
  .subpage header .header_box { width: 100%; }
  .subpage header .header_box::before { width: 100vw; height: 110px; }
  .subpage header .header_box .logo a { top: 7px; left: 10px; width: min(285px, calc(100vw - 90px)); }
  .subpage header .header_box .form-button { display: none; }
  .subpage header #nav-btn { position: absolute; top: 30px; right: 8px; display: flex; width: 38px; height: 36px; flex-direction: column; justify-content: center; gap: 5px; border: 0; border-radius: 8px; background: var(--sub-blue); z-index: 10001; }
  .subpage header #nav-btn span { display: block; width: 22px; height: 2px; margin: 0 auto; background: #fff; }
  .subpage header #nav { display: none; position: fixed; top: 50px; left: 0; width: 100%; height: calc(100vh - 50px); padding: 20px; background: rgba(3,42,79,.98); }
  .subpage header #nav.active { display: block; }
  .subpage header #nav .main_nav { display: block; margin: 0; }
  .subpage header #nav .main_nav li { display: block; border-bottom: 1px solid rgba(255,255,255,.17); }
  .subpage header #nav .main_nav a { display: block; padding: 15px; color: #fff; }
  .sub-main { padding-top: 0; }
  .about-page .sub-main { padding-top: 0; }
  .sub-container { width: min(100% - 28px, 1100px); }
  .sub-hero { padding: 58px 0 50px; }
  .about-lead-photo { width: calc(100% - 28px); margin-top: 28px; border-radius: 16px; }
  .about-lead-photo + .sub-section { padding-top: 38px; }
  .flow-jump-nav { flex-direction: column; gap: 10px; margin-top: 26px; }
  .flow-jump-nav a { min-width: 0; padding: 12px 18px; }
  .sub-section { padding: 62px 0; }
  .lead-copy { font-size: 15px; text-align: left; }
  .photo-grid { grid-template-columns: 1fr 1fr; }
  .photo-grid img { height: 135px; }
  .feature-row, .feature-row:nth-child(even) { grid-template-columns: 1fr; gap: 22px; padding: 20px; }
  .feature-row:nth-child(even) .feature-photo { order: 0; }
  .feature-photo img { height: 220px; }
  .feature-copy h3 { font-size: 22px; }
  .about-message-copy { padding: 30px 24px; }
  .company-profile > div { grid-template-columns: 1fr; }
  .company-profile dt { padding: 14px 18px; }
  .company-profile dd { padding: 16px 18px; }
  .metric-grid, .trust-grid, .option-grid, .area-grid, .price-grid, .works-grid, .blog-grid { grid-template-columns: 1fr; }
  .area-page .area-grid { grid-template-columns: 1fr; }
  .price-card h3 { min-height: 0; }
  .special-price strong { font-size: 48px; }
  .quote-estimator { margin-top: 48px; padding: 28px 18px; border-radius: 22px; }
  .quote-layout { grid-template-columns: 1fr; }
  .quote-item { min-height: 0; padding: 16px; }
  .quote-item strong { font-size: 15px; }
  .quote-item select { min-width: 82px; }
  .quote-summary { position: static; padding: 24px 20px; }
  .price-page .option-grid { grid-template-columns: 1fr; }
  .flow-list::before { left: 29px; }
  .flow-step { grid-template-columns: 54px 1fr; gap: 14px; padding: 22px 18px; }
  .flow-num { width: 44px; height: 44px; font-size: 20px; }
  .wash-grid { grid-template-columns: 1fr; }
  .work-card img, .blog-card img { height: 200px; }
  .sub-cta-actions { flex-direction: column; }
  .contact-methods { grid-template-columns: 1fr; }
  .contact-method p { min-height: 0; }
  .kurashiro-contact-form { padding: 28px 18px; border-radius: 18px; }
  .contact-form-grid.is-two, .contact-form-grid.is-three, .contact-form-grid.is-date-preferences { grid-template-columns: 1fr; }
  .contact-form-grid.is-date-preferences > label { grid-template-columns: 1fr; gap: 0; }
  .contact-form-grid.is-date-preferences .contact-form-field-title { grid-column: 1; }
  .contact-form-grid.is-date-preferences label > input + select { margin-top: 10px; }
  .contact-form-category { grid-template-columns: 1fr; }
  .contact-form-checks { display: grid; gap: 12px; }
  .contact-checklist ul { grid-template-columns: 1fr; }
  .sub-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .sub-footer-copy { text-align: center; }
  .faq-question { padding: 18px 48px 18px 48px; }
  .faq-question::before, .faq-answer::before { left: 16px; }
  .faq-answer { padding: 0 18px 20px 48px; }
}

/* Price simulator visual refresh based on the supplied layout reference. */
.price-page .quote-estimator {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: 56px;
  padding: 54px 42px 44px;
  border: 0;
  border-radius: 32px;
  background: radial-gradient(circle at 0 0, rgba(88,177,255,.16) 0 165px, transparent 167px), linear-gradient(180deg, rgba(255,255,255,.98), #fafdff);
  box-shadow: 0 18px 48px rgba(4,63,117,.14), inset 0 0 0 1px rgba(117,177,226,.18);
}
.price-page .quote-estimator::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 24px;
  left: 50%;
  width: 230px;
  height: 40px;
  border-top: 4px dashed #d7ebfb;
  border-radius: 50%;
  transform: translateX(-50%) rotate(-3deg);
}
.price-page .quote-estimator::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 25px;
  right: 40px;
  width: 126px;
  height: 158px;
  background: url("img/kurashiro_bear_poses.png") 25% 100% / 500% 200% no-repeat;
  filter: drop-shadow(0 8px 8px rgba(2,48,96,.08));
  pointer-events: none;
  transform: rotate(4deg);
}
.price-page .quote-estimator-heading,
.price-page .quote-layout { position: relative; z-index: 1; }
.price-page .quote-estimator-heading { margin: 0 140px 44px 0; }
.price-page .quote-estimator-heading .sub-kicker {
  display: inline-block;
  margin: 0 0 8px;
  padding: 5px 14px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #197fe3, #075fc5);
  font-size: 11px;
  letter-spacing: .16em;
}
.price-page .quote-estimator-heading h2 { margin: 0 0 12px; color: #082e79; font-size: clamp(34px, 4.5vw, 52px); letter-spacing: .05em; line-height: 1.3; }
.price-page .quote-estimator-heading > p:last-child { color: #385475; font-weight: 700; }
.price-page .quote-layout { grid-template-columns: minmax(0, 1.65fr) minmax(300px, .65fr); gap: 30px; }
.price-page .quote-group + .quote-group { margin-top: 34px; }
.price-page .quote-group-heading { display: grid; min-height: 66px; grid-template-columns: 66px 1fr auto; align-items: center; gap: 16px; margin: 0 0 18px; }
.price-page .quote-group-heading > span {
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  margin: 0;
  border: 4px solid #eaf5ff;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #2388ed, #075fc8);
  box-shadow: 0 7px 15px rgba(7,94,194,.18);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .05em;
  text-align: center;
}
.price-page .quote-group-heading h3 { color: #082e79; font-size: 24px; letter-spacing: .03em; }
.price-page .quote-group-heading p { margin: 0; padding: 9px 17px; border: 0; color: #815000; background: #ffedb5; box-shadow: inset 0 0 0 1px rgba(202,142,0,.12); white-space: nowrap; }
.price-page .quote-group:first-child .quote-item-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.price-page .quote-group:nth-child(2) .quote-item-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.price-page .quote-item {
  position: relative;
  overflow: hidden;
  min-height: 176px;
  padding: 24px 18px 20px;
  border: 2px solid #d3e2ef;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #fbfdff);
  box-shadow: 0 7px 18px rgba(4,63,117,.045);
}
.price-page .quote-group:first-child .quote-item { min-height: 210px; padding: 28px 18px 20px; }
.price-page .quote-group:first-child .quote-item { display: grid; grid-template-columns: 1fr auto; align-items: start; }
.price-page .quote-group:first-child .quote-item > div { grid-column: 1 / -1; }
.price-page .quote-group:first-child .quote-item label { grid-column: 2; margin-top: 10px; }
.price-page .quote-group:first-child .quote-item:first-child { border-color: #126ed2; box-shadow: 0 8px 22px rgba(7,97,199,.12); }
.price-page .quote-item:focus-within { border-color: #126ed2; box-shadow: 0 0 0 4px rgba(5,100,189,.1), 0 10px 24px rgba(4,63,117,.09); }
.price-page .quote-item > div { position: relative; min-width: 0; }
.price-page .quote-group:first-child .quote-item > div { padding-left: 62px; }
.price-page .quote-group:first-child .quote-item > div::before {
  content: "▱";
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 2px solid #89c2f2;
  border-radius: 13px;
  color: #0967c9;
  background: #f4faff;
  font-size: 32px;
  font-weight: 900;
}
.price-page .quote-item strong { color: #082e79; font-size: 16px; }
.price-page .quote-item div > span { color: #526b82; }
.price-page .quote-item .quote-service-prices { gap: 7px; margin-top: 14px; }
.price-page .quote-regular-price { width: 100%; }
.price-page .quote-special-price { display: inline-flex; width: fit-content; align-items: baseline; padding: 3px 8px; border-radius: 999px; color: #075fca; background: #e7f3ff; white-space: nowrap; }
.price-page .quote-special-price b { margin: 0 3px; font-size: 23px; }
.price-page .quote-item label { margin-left: auto; color: #183e69; }
.price-page .quote-item select { min-width: 86px; border-color: #c6dcec; border-radius: 9px; color: #083773; background-color: #fff; }
.price-page .quote-group:nth-child(2) .quote-item { min-height: 210px; flex-direction: column; justify-content: flex-start; align-items: stretch; gap: 12px; text-align: center; }
.price-page .quote-group:nth-child(2) .quote-item > div::before {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  margin: 0 auto 13px;
  border: 2px solid #b7d9f5;
  border-radius: 16px;
  color: #075fc8;
  background: #f4faff;
  font-size: 27px;
  font-weight: 900;
}
.price-page .quote-group:nth-child(2) .quote-item:nth-child(1) > div::before { content: "◎"; }
.price-page .quote-group:nth-child(2) .quote-item:nth-child(2) > div::before { content: "✦"; }
.price-page .quote-group:nth-child(2) .quote-item:nth-child(3) > div::before { content: "⌁"; }
.price-page .quote-group:nth-child(2) .quote-item:nth-child(4) > div::before { content: "▣"; }
.price-page .quote-group:nth-child(2) .quote-item label { margin: auto auto 0; }
.price-page .quote-summary {
  position: sticky;
  top: 165px;
  overflow: hidden;
  padding: 0 24px 24px;
  border: 2px solid #d2e4f3;
  border-radius: 22px;
  color: #153b67;
  background: #fff;
  box-shadow: 0 16px 34px rgba(3,45,86,.15);
}
.price-page .quote-summary-kicker { position: absolute; z-index: 2; top: 15px; right: 20px; margin: 0; color: #cceaff; font-size: 10px; }
.price-page .quote-summary h3 {
  margin: 0 -24px 22px;
  padding: 23px 24px;
  color: #fff;
  background: linear-gradient(140deg, transparent 0 58%, rgba(255,255,255,.12) 58% 64%, transparent 64%), linear-gradient(135deg, #2389ef, #075dca);
  font-size: 28px;
}
.price-page .quote-lines li,
.price-page .quote-discount { border-bottom-color: #dce9f4; color: #294b70; }
.price-page .quote-empty { color: #7790aa; }
.price-page .quote-discount { color: #129233; }
.price-page .quote-regular-total { color: #526b82; }
.price-page .quote-total { padding-top: 20px; border-top: 2px solid #bad8f2; color: #123c6f; }
.price-page .quote-total strong { color: #0a61ca; font-size: clamp(35px, 4vw, 48px); }
.price-page .quote-savings { color: #704500; background: linear-gradient(135deg, #fff7d6, #ffe292); }
.price-page .quote-summary-note { border-top-color: #dce9f4; color: #526b82; }

@media screen and (max-width: 980px) {
  .price-page .quote-estimator { padding: 44px 26px 34px; }
  .price-page .quote-estimator::after { width: 96px; height: 120px; right: 20px; }
  .price-page .quote-estimator-heading { margin-right: 105px; }
  .price-page .quote-layout { grid-template-columns: 1fr; }
  .price-page .quote-summary { position: static; }
}
@media screen and (max-width: 767px) {
  .price-page .quote-estimator { margin-top: 38px; padding: 36px 16px 24px; border-radius: 22px; }
  .price-page .quote-estimator::after { display: none; }
  .price-page .quote-estimator-heading { margin: 0 0 34px; }
  .price-page .quote-estimator-heading h2 { font-size: 29px; }
  .price-page .quote-group-heading { min-height: 56px; grid-template-columns: 56px 1fr; gap: 12px; }
  .price-page .quote-group-heading > span { width: 56px; height: 56px; font-size: 11px; }
  .price-page .quote-group-heading h3 { font-size: 19px; }
  .price-page .quote-group-heading p { grid-column: 1 / -1; justify-self: start; white-space: normal; }
  .price-page .quote-group:first-child .quote-item-list,
  .price-page .quote-group:nth-child(2) .quote-item-list { grid-template-columns: 1fr; }
  .price-page .quote-item,
  .price-page .quote-group:first-child .quote-item,
  .price-page .quote-group:nth-child(2) .quote-item { min-height: 0; padding: 20px 16px; }
  .price-page .quote-group:nth-child(2) .quote-item { flex-direction: row; align-items: center; text-align: left; }
  .price-page .quote-group:nth-child(2) .quote-item > div { display: grid; grid-template-columns: 48px 1fr; align-items: center; column-gap: 12px; }
  .price-page .quote-group:nth-child(2) .quote-item > div::before { grid-row: 1 / 3; width: 46px; height: 46px; margin: 0; font-size: 23px; }
  .price-page .quote-group:nth-child(2) .quote-item label { margin: 0 0 0 auto; }
  .price-page .quote-summary { padding: 0 18px 20px; }
  .price-page .quote-summary h3 { margin: 0 -18px 20px; padding: 20px 18px; }
}
