@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');

:root {
  --ink:#102a50; --red:#ca241f; --yellow:#ffdb24; --line:#087a36;
  --blue:#0768ab; --sky:#edf7ff; --border:#d5dfeb; --max:1120px;
  font-family:'Noto Sans JP',sans-serif; color:var(--ink); font-synthesis:none;
  scroll-behavior:smooth; scroll-padding-top:140px;
}
* {box-sizing:border-box}
body {margin:0; background:#fff; font-size:1rem; font-weight:400; line-height:1.9}
p,h1,h2,h3,figure {margin:0}
h1,h2,h3 {line-height:1.45; font-weight:900}
em {font-style:normal; color:var(--red)}
a {color:inherit; text-underline-offset:5px}
img {display:block; max-width:100%; height:auto}
button,a,summary {-webkit-tap-highlight-color:transparent}
a:focus-visible,summary:focus-visible,button:focus-visible {outline:3px solid #1474df; outline-offset:4px}
[hidden] {display:none!important}
.skip-link {position:fixed; top:-100px; left:12px; background:#fff; padding:12px; z-index:30}
.skip-link:focus {top:12px}
.mobile-break {display:none}
.site-header {position:sticky; top:0; z-index:5; background:#fff; border-bottom:5px solid var(--yellow)}
.header-inner {max-width:var(--max); margin:auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; padding:10px 20px}
.brand {display:flex; align-items:center; gap:15px; text-decoration:none; flex:none; line-height:1.5}
.brand-logo {display:block; width:122px; height:auto; aspect-ratio:1796/1334; flex:none}
.brand-type {display:block}
.brand-type small {display:block; font-size:.875rem; font-weight:700}
.brand-type b {display:block; width:max-content; font-size:1.125rem; color:var(--ink); background:var(--yellow); padding:3px 12px; margin-top:4px; border-radius:4px}
nav {display:flex; gap:22px; font-weight:800; font-size:.9375rem}
nav a {text-decoration:none; padding:10px 0}
nav a:hover {color:var(--red)}
.header-phone {text-decoration:none; text-align:right; line-height:1.5}
.header-phone span {display:block; font-size:.875rem; font-weight:700}
.header-phone strong {font-size:1.4rem; color:var(--red); font-weight:900}

/* A bold, poster-like introduction with real text, complete illustrations, and photographs. */
.hero {background:var(--yellow); border-bottom:7px solid var(--ink)}
.hero-inner {max-width:var(--max); margin:auto; padding:36px 20px 30px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:38px}
.hero-copy,.hero-visual {min-width:0}
.eyebrow {display:inline-block; background:var(--ink); color:#fff; font-size:1rem; font-weight:800; padding:4px 16px; margin-bottom:16px; border-radius:3px}
.hero h1 {font-size:clamp(2.8rem,4.8vw,4rem); line-height:1.24; letter-spacing:-.025em; text-shadow:2px 2px 0 #fff}
.hero-main,.hero-emphasis {display:block}
.hero-emphasis {color:var(--red); text-shadow:2px 2px 0 #fff,-2px -2px 0 #fff,2px -2px 0 #fff,-2px 2px 0 #fff}
.hero-lead {font-size:1.45rem; font-weight:900; line-height:1.65; margin-top:18px}
.hero-description {font-size:1.0625rem; line-height:1.85; margin-top:10px}
.hero-description strong {font-weight:800}
.hero-badges {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:20px 0}
.hero-badges>span {background:#fff; border:2px solid var(--ink); border-radius:6px; text-align:center; padding:7px 4px; line-height:1.55}
.hero-badges small {display:block; font-size:.875rem; font-weight:600}
.hero-badges strong {display:block; font-size:1.125rem; font-weight:900}
.hero-badges>span:first-child strong {color:var(--red); font-size:1.25rem}
.hero-actions {display:grid; grid-template-columns:1.25fr 1fr; gap:10px}
.button {display:flex; align-items:center; justify-content:center; gap:10px; min-height:60px; padding:13px 18px; border-radius:7px; text-align:center; text-decoration:none; font-weight:800; line-height:1.6; transition:filter .15s}
.button:hover {filter:brightness(.95)}
.button-phone {background:var(--red); color:#fff}
.button-phone svg {width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; flex:none}
.button small {display:block; font-size:.875rem; font-weight:600}
.button-phone strong {font-size:1.2rem; overflow-wrap:anywhere}
.button-line {background:var(--line); color:#fff}
.line-word {display:inline-block; border:2px solid currentColor; border-radius:6px; font-size:.875rem; font-weight:900; padding:5px; line-height:1.1; flex:none}
.button-outline {background:#fff; border:2px solid var(--ink); color:var(--ink)}
.hero-form-link {display:inline-block; margin-top:15px; font-size:.9375rem; font-weight:800}
.hero-photo-label {text-align:center; font-size:1.125rem; font-weight:800; margin-bottom:10px; line-height:1.6}
.hero-photo-label strong {color:var(--red)}
.hero-mascots {width:100%; height:auto; border-radius:12px; background:#fff; border:3px solid #fff}
.hero-mascot-caption {font-size:1.0625rem; font-weight:900; font-style:italic; text-align:right; color:var(--red); margin:4px 2px 12px}
.hero-scene-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px}
.hero-scene-grid figure {background:#fff; padding:3px; border-radius:7px; min-width:0}
.hero-scene-grid img {width:100%; aspect-ratio:3/2; object-fit:contain; border-radius:4px}
.hero-scene-grid figcaption {font-size:.875rem; font-weight:800; line-height:1.55; padding:7px 2px; text-align:center; overflow-wrap:anywhere}
.scene-note {text-align:right; color:#334256; font-size:.75rem; margin-top:7px; line-height:1.7}
.hero-strip {background:var(--ink); color:#fff; display:grid; grid-template-columns:repeat(4,1fr); text-align:center; gap:16px; padding:17px 20px; font-weight:800; font-size:.9375rem}
.hero-strip span {line-height:1.7}

.section {max-width:var(--max); margin:auto; padding:68px 20px}
.section-heading {text-align:center; margin-bottom:32px}
.section-kicker {display:inline-block; color:var(--ink); background:var(--yellow); border-radius:4px; font-size:.9375rem; font-weight:800; padding:3px 12px; margin-bottom:12px; line-height:1.65}
.section-heading h2 {background:var(--ink); color:#fff; border-bottom:7px solid var(--yellow); font-size:2.05rem; padding:16px 20px; line-height:1.5; letter-spacing:0; overflow-wrap:anywhere}
.section-heading h2 em {color:var(--yellow)}
.section-heading>p:last-child:not(:first-child) {font-size:1.0625rem; margin-top:16px; line-height:1.85}
.section-closing {text-align:center; font-size:1.25rem; line-height:1.9; margin-top:28px}
.section-closing strong {color:var(--red); font-weight:900}
.concerns-layout {display:grid; grid-template-columns:.7fr 1fr; align-items:center; gap:36px; padding:24px 30px; background:#fffbed; border:2px solid var(--yellow); border-radius:12px}
.concerns-mascot {display:flex; flex-direction:column; align-items:center; text-align:center}
.mascot-speech {background:#fff; border:3px solid var(--yellow); padding:12px 18px; border-radius:14px; font-size:1.0625rem; line-height:1.7; font-weight:600}
.mascot-speech strong {color:var(--red); font-weight:900}
.shiba-mascot {height:auto; object-fit:contain}
.concerns-mascot img {width:260px; max-width:80%; margin-top:15px}
.concerns-list {list-style:none; padding:0; margin:0}
.concerns-list li {position:relative; padding:15px 0 15px 30px; border-bottom:1px solid #ded5b5; font-size:1.0625rem; font-weight:600; line-height:1.9}
.concerns-list li:last-child {border-bottom:0}
.concerns-list li:before {content:'✓'; position:absolute; left:0; color:var(--red); font-weight:900; font-size:1.25rem}
.services {max-width:none; background:var(--sky)}
.services>* {max-width:1080px; margin-left:auto; margin-right:auto}
.flyer-service-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.flyer-service-card {--service-color:var(--blue); min-width:0; background:#fff; border:2px solid #cedfed; border-top:7px solid var(--service-color); border-radius:10px; overflow:hidden; display:flex; flex-direction:column}
.flyer-service-card figure {padding:12px 12px 0}
.flyer-service-card figure img {width:100%; height:auto; object-fit:contain; border-radius:5px}
.flyer-card-body {padding:20px 24px 24px; display:flex; flex-direction:column; flex:1}
.service-card-title {color:var(--service-color); font-size:1.3rem; line-height:1.65; margin-bottom:12px; font-weight:900}
.flyer-card-body p {font-size:1.0625rem; line-height:1.95}
.flyer-card-body strong {font-weight:800; color:var(--ink); background:linear-gradient(transparent 68%,#ffe571 68%)}
.flyer-inheritance {--service-color:#207636}
.flyer-moving {--service-color:#b43816}
.flyer-reform {--service-color:var(--red)}
.flyer-rescue {--service-color:#643923}
.flyer-security {--service-color:#842d8a}
.text-link {font-size:.9375rem; font-weight:800; color:var(--red); line-height:1.75}
.flyer-card-body .text-link {align-self:stretch; background:#f3f7fb; color:var(--service-color); padding:12px; border:1px solid #d5dfeb; border-radius:4px; text-align:center; margin-top:auto}
.flyer-card-body p+.text-link {margin-top:22px}
.section-note {font-size:.875rem; text-align:center; margin-top:22px; line-height:1.85}
.consult-band {background:var(--yellow); border-top:5px solid var(--ink); border-bottom:5px solid var(--ink); display:flex; align-items:center; gap:24px; padding:30px max(20px,calc((100vw - 1080px)/2))}
.consult-mascot {width:150px; height:170px; flex:none}
.consult-band>div {flex:1}
.consult-band p {font-size:1rem; line-height:1.85}
.consult-band h2 {font-size:1.6rem; margin:7px 0; line-height:1.65}
.consult-band h2 strong {color:var(--red); font-size:1.2em; font-weight:900}
.consult-band .button {min-width:225px; flex:none}

.plan-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.plan-card {display:flex; flex-direction:column; position:relative; min-width:0; text-align:center; background:#fff; border:2px solid #c6dce8; border-top:7px solid var(--blue); border-radius:10px; padding:25px 20px; box-shadow:0 5px 0 #e5f2fc}
.plan-card:nth-child(2) {border-top-color:var(--red)}
.plan-card:nth-child(3) {border-top-color:#842d8a}
.plan-illustration {width:100%; position:relative}
.plan-label {display:flex; align-items:center; justify-content:center; background:#207636; color:#fff; width:42px; height:42px; font-weight:900; font-size:1.4rem; border-radius:50%; position:absolute; top:0; left:0}
.plan-card:nth-child(2) .plan-label {background:var(--red)}
.plan-card:nth-child(3) .plan-label {background:#842d8a}
.plan-truck {width:auto; height:135px; max-width:100%; margin:10px auto 16px; object-fit:contain}
.plan-info {min-width:0}
.plan-info h3 {font-size:1.125rem; font-weight:800; line-height:1.7}
.plan-volume {font-size:1rem; margin-top:8px}
.plan-volume strong {font-size:1.5rem; font-weight:800}
.plan-price {color:var(--red); font-weight:900; margin-top:14px; line-height:1.3; text-shadow:2px 2px 0 #fff0a8; display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:3px; overflow-wrap:anywhere}
.plan-price strong {font-size:2.9rem; letter-spacing:-.03em; max-width:100%}
.plan-price span {font-size:1.125rem}
.tax {font-size:.9375rem; margin:5px 0 18px; line-height:1.6}
.plan-card>.button {margin-top:auto; width:100%; font-size:1rem; min-height:54px}
.plan-conditions {background:#fff8d3; border-left:5px solid var(--yellow); padding:20px 24px; margin-top:26px}
.plan-conditions strong {font-size:1.0625rem; font-weight:900}
.plan-conditions p {font-size:1rem; line-height:1.95; margin-top:8px}
.flow {background:var(--sky)}
.flow-grid {list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px}
.flow-grid li {min-width:0; background:#fff; border-top:6px solid var(--blue); border-radius:7px; padding:20px; display:flex; flex-direction:column}
.flow-grid li:nth-child(2) {border-top-color:var(--red)}
.flow-grid li:nth-child(3) {border-top-color:var(--yellow)}
.flow-grid li:nth-child(4) {border-top-color:var(--line)}
.step-label {display:inline-block; font-size:.9375rem; font-weight:900; color:var(--blue); margin-bottom:12px}
.flow-grid h3 {font-size:1.2rem; font-weight:800; margin-bottom:13px; line-height:1.7}
.flow-grid p {font-size:1.0625rem; line-height:1.95}
.faq-list {max-width:900px; margin:auto}
.faq details {border-bottom:1px solid var(--border)}
.faq summary {position:relative; padding:24px 32px 24px 36px; list-style:none; cursor:pointer; font-size:1.125rem; font-weight:800; line-height:1.85}
.faq summary::-webkit-details-marker {display:none}
.faq summary:before {content:'Q'; position:absolute; left:0; top:25px; color:var(--red); font-size:1.125rem; font-weight:900}
.faq summary:after {content:'＋'; position:absolute; right:0; top:24px; color:var(--blue); font-size:1.25rem}
.faq details[open] summary:after {content:'－'}
.faq details>p {padding:0 25px 24px 36px; font-size:1.0625rem; line-height:1.95}

.contact {max-width:none; background:var(--yellow); border-top:7px solid var(--ink); display:grid; grid-template-columns:.9fr 1.2fr; gap:34px; padding-left:max(20px,calc((100vw - 1080px)/2)); padding-right:max(20px,calc((100vw - 1080px)/2))}
.contact-heading {text-align:center; min-width:0}
.contact-heading .section-kicker {color:#fff; background:var(--ink)}
.contact-heading h2 {font-size:2rem; line-height:1.65; overflow-wrap:anywhere}
.contact-mascot {width:280px; max-width:80%; margin:24px auto 0}
.contact-options {display:grid; gap:22px; min-width:0}
.contact-options article {background:#fff; border-radius:9px; padding:25px; min-width:0}
.contact-phone {border-top:7px solid var(--red); text-align:center}
.contact-line {border-top:7px solid var(--line)}
.contact-label {font-size:.9375rem; font-weight:600; line-height:1.8}
.contact-options h3 {font-size:1.45rem; font-weight:900; margin:8px 0}
.contact-number {display:block; font-size:clamp(1.8rem,3.5vw,2.5rem); line-height:1.6; font-weight:900; color:var(--red); text-decoration:none; overflow-wrap:anywhere; letter-spacing:-.02em}
.contact-phone>.button {margin-top:17px}
.line-contact-body {display:grid; grid-template-columns:135px minmax(0,1fr); align-items:center; gap:23px; margin-top:16px}
.qr-link img {width:135px}
.line-contact-body p {font-size:1rem; line-height:1.8}
.contact-line .button {font-size:1rem; padding:11px; margin-top:14px}
.contact-tip {font-size:.875rem; line-height:1.75; margin-top:16px}
.contact-form-link {grid-column:1/-1; justify-self:center; min-width:300px; font-size:1rem}

.inquiry {max-width:830px}
.inquiry form {background:var(--sky); border:2px solid #c4ddec; border-top:7px solid var(--blue); border-radius:10px; padding:30px}
.form-field {margin-bottom:24px}
.form-field label {display:flex; flex-wrap:wrap; gap:9px; align-items:center; font-weight:800; font-size:1rem; margin-bottom:9px; line-height:1.75}
.required-label,.optional-label {font-size:.875rem; padding:1px 8px; border-radius:3px; line-height:1.7}
.required-label {color:#fff; background:var(--red)}
.optional-label {color:var(--ink); background:#dfe7ef}
.form-field input,.form-field textarea {display:block; width:100%; border:1px solid #9babbd; border-radius:5px; background:#fff; padding:13px; font:inherit; font-weight:400; font-size:1rem; color:var(--ink); min-height:52px}
.form-field textarea {resize:vertical}
.form-field input:focus,.form-field textarea:focus {outline:2px solid #1474df; outline-offset:2px}
.form-field input::placeholder,.form-field textarea::placeholder {color:#5d6b7c; opacity:1}
.field-hint {font-size:.875rem; line-height:1.85; margin-top:8px}
.form-privacy {border-top:1px solid var(--border); margin-top:25px}
.form-privacy summary {font-size:1rem; padding:17px 0; font-weight:700; cursor:pointer}
.form-privacy p {font-size:.9375rem; padding-bottom:14px; overflow-wrap:anywhere; line-height:1.9}
.form-consent {display:flex; align-items:flex-start; gap:10px; margin:22px 0; font-size:1rem; line-height:1.85; cursor:pointer}
.form-consent input {width:22px; height:22px; flex:none; margin-top:4px; accent-color:var(--red)}
.inquiry button {font:inherit; font-weight:800; width:100%; border:0; cursor:pointer; min-height:60px}
.inquiry button.button-outline {border:2px solid var(--ink)}
#form-review h3 {font-size:1.35rem; outline:none}
#review-values {margin:24px 0; display:grid; grid-template-columns:155px minmax(0,1fr); padding:8px 18px; background:#fff; border-radius:6px}
#review-values dt,#review-values dd {border-bottom:1px solid var(--border); padding:14px 0; font-size:1rem; line-height:1.85}
#review-values dt {font-weight:700; padding-right:16px}
#review-values dd {margin:0; white-space:pre-wrap; overflow-wrap:anywhere}
#review-values dt:last-of-type,#review-values dd:last-of-type {border-bottom:0}
.review-actions {display:grid; grid-template-columns:1fr 1.5fr; gap:12px; margin-top:24px}
.form-help {font-size:.9375rem; text-align:center; margin-top:24px; line-height:1.9}
.form-help a {font-weight:800; color:var(--red)}

.store {display:grid; grid-template-columns:1fr 2fr; gap:50px}
.store h2 {font-size:1.8rem}
.footer-logo {display:block; width:175px; height:auto; aspect-ratio:1796/1334; margin-top:23px}
.store dl {margin:0}
.store dl>div {display:grid; grid-template-columns:115px minmax(0,1fr); gap:15px; padding:15px 0; border-bottom:1px solid var(--border); font-size:1rem; line-height:1.9}
.store dt {font-weight:800}
.store dd {margin:0; overflow-wrap:anywhere}
.site-footer {background:var(--ink); color:#fff; text-align:center; border-top:6px solid var(--yellow); padding:30px 20px calc(9rem + env(safe-area-inset-bottom))}
.site-footer p {font-size:1.25rem; font-style:italic; font-weight:900}
.site-footer small {display:block; font-size:.875rem; margin-top:8px}
.site-footer>a {display:inline-block; font-size:.9375rem; margin-top:14px}
.sticky-contact {position:fixed; z-index:8; bottom:0; left:50%; transform:translateX(-50%); width:min(680px,100%); display:grid; grid-template-columns:1fr 1fr; gap:6px 8px; padding:7px 10px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:3px solid var(--yellow); box-shadow:0 -3px 15px #102a5020}
.sticky-caption {grid-column:1/-1; font-size:.875rem; font-weight:800; line-height:1.5; text-align:center; color:var(--red)}
.sticky-caption span {color:var(--ink); margin-left:12px}
.sticky-contact a {display:flex; align-items:center; justify-content:center; min-height:60px; padding:7px 8px; border-radius:6px; color:#fff; text-align:center; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; min-width:0}
.sticky-phone {background:var(--red); flex-direction:column}
.sticky-phone>span {font-size:.875rem; font-weight:700}
.sticky-phone strong {font-size:1.25rem; font-weight:900; line-height:1.45; max-width:100%}
.sticky-line {background:var(--line); gap:9px}
.sticky-line strong {font-size:1.125rem; font-weight:800}
.thank-you-body {min-height:100vh; background:#fff5bf; display:flex; align-items:center; justify-content:center; padding:35px 20px}
.thank-you-card {max-width:700px; background:#fff; padding:40px; border-radius:10px; border-top:7px solid var(--red)}
.thank-you-card h1 {font-size:2rem; line-height:1.6; margin-bottom:24px; overflow-wrap:anywhere}
.thank-you-card>p:not(.eyebrow) {margin-bottom:20px; font-size:1.0625rem}
.thank-you-card>p a {font-weight:800}
.thank-you-actions {display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px}
.thank-you-card>.text-link {display:inline-block; margin-top:24px}

@media(max-width:980px) {
  .header-inner {gap:14px}.brand-logo {width:108px}.brand-type small {font-size:.875rem}
  nav {gap:14px; font-size:.875rem}.header-phone strong {font-size:1.15rem}
  .hero-inner {gap:25px}.hero h1 {font-size:3rem}.hero-lead {font-size:1.2rem}
  .hero-actions {grid-template-columns:1fr}.hero-actions .button-line {min-height:54px}.hero-actions .button-line br {display:none}
  .hero-scene-grid {gap:6px}.hero-scene-grid figcaption {font-size:.875rem}
  .consult-band {flex-wrap:wrap}.consult-mascot {width:125px; height:150px}.consult-band .button {flex:1 0 100%}
  .plan-grid {gap:12px}.plan-price strong {font-size:2.4rem}.plan-truck {height:120px}
  .flow-grid {gap:14px}.flow-grid li {padding:20px}
  .contact {gap:24px}.line-contact-body {grid-template-columns:108px minmax(0,1fr); gap:15px}.qr-link img {width:108px}
}
@media(max-width:680px) {
  :root {scroll-padding-top:8rem}
  .mobile-break {display:block}
  .header-inner {padding:7px 16px; gap:10px}
  .brand {gap:10px}.brand-logo {width:96px}.brand-type small {display:none}.brand-type b {font-size:1rem; padding:3px 9px; margin:0}
  nav {gap:16px; font-size:.875rem}nav a {padding:12px 0}nav a:last-child,.header-phone {display:none}
  .hero-inner {display:flex; flex-direction:column; align-items:stretch; padding:22px 16px 22px; gap:18px}
  .eyebrow {font-size:.9375rem; padding:4px 12px; margin-bottom:12px}
  .hero h1 {font-size:clamp(2.55rem,12vw,3.35rem); line-height:1.22; letter-spacing:-.03em}
  .hero-lead {font-size:1.125rem; line-height:1.65; margin-top:10px}.hero-lead .mobile-break {display:none}
  .hero-description {font-size:1rem; margin-top:10px; line-height:1.8}
  .hero-badges {gap:7px; margin:15px 0 0}.hero-badges>span {padding:6px 3px}.hero-badges small {font-size:.875rem}.hero-badges strong {font-size:1.0625rem}.hero-badges>span:first-child strong {font-size:1.125rem}
  .hero-actions,.hero-form-link {display:none}
  .hero-photo-label {font-size:1rem; line-height:1.65; margin-bottom:9px}
  .hero-mascots {border-radius:9px; width:100%}
  .hero-mascot-caption {font-size:1rem; margin-bottom:10px}
  .hero-scene-grid {gap:7px}.hero-scene-grid figure {padding:3px; border-radius:5px}.hero-scene-grid figcaption {font-size:.875rem; line-height:1.6; padding:6px 1px}
  .hero-strip {grid-template-columns:1fr 1fr; gap:8px 12px; padding:15px 16px; font-size:.875rem}
  .section {padding:48px 16px}.section-heading {margin-bottom:26px}
  .section-kicker {font-size:.875rem; margin-bottom:11px; padding:4px 9px}
  .section-heading h2 {font-size:clamp(1.65rem,7.4vw,2rem); padding:13px 10px; line-height:1.5; border-bottom-width:6px}
  .section-heading>p:last-child:not(:first-child) {font-size:1rem; margin-top:14px; line-height:1.9}
  .section-closing {font-size:1.125rem; margin-top:25px}
  .concerns-layout {grid-template-columns:1fr; gap:16px; padding:20px 18px}.concerns-mascot img {width:220px; max-width:80%}
  .mascot-speech {font-size:1rem; padding:12px 16px}.concerns-list li {font-size:1.0625rem; padding-top:15px; padding-bottom:15px}
  .flyer-service-grid {grid-template-columns:1fr; gap:22px}.flyer-service-card {border-radius:8px}
  .flyer-service-card figure {padding:10px 10px 0}.flyer-card-body {padding:17px 18px 20px}
  .service-card-title {font-size:1.25rem; line-height:1.65; margin-bottom:12px}
  .flyer-card-body p {font-size:1.0625rem; line-height:1.95}.flyer-card-body .text-link {font-size:.9375rem; min-height:48px; padding:11px 8px}
  .section-note {font-size:.875rem; margin-top:18px; line-height:1.85}
  .consult-band {display:grid; grid-template-columns:80px minmax(0,1fr); gap:13px; padding:24px 16px}
  .consult-mascot {width:80px; height:130px}.consult-band p {font-size:1rem; line-height:1.85}.consult-band h2 {font-size:1.25rem; margin:8px 0; line-height:1.6}
  .consult-band h2 strong {display:block; font-size:1.65rem}.consult-band .button {grid-column:1/-1; min-width:0; font-size:1.0625rem; min-height:60px}
  .plan-grid {grid-template-columns:1fr; gap:22px}
  .plan-card {display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr)); gap:12px; padding:20px 18px}
  .plan-illustration {min-width:0}.plan-label {position:static; margin:0 auto 7px; font-size:1.4rem; width:43px; height:43px}
  .plan-truck {width:auto; max-width:100%; height:122px; margin:0 auto; object-fit:contain}
  .plan-info h3 {font-size:1rem; line-height:1.7}.plan-volume {font-size:1rem; margin-top:6px}.plan-volume strong {font-size:1.35rem}
  .plan-price {margin-top:8px; gap:2px}.plan-price strong {font-size:clamp(2rem,9vw,2.6rem)}.plan-price span {font-size:1rem}.tax {font-size:.9375rem; margin:4px 0 0}
  .plan-card>.button {grid-column:1/-1; margin-top:5px; min-height:54px; font-size:1rem}
  .plan-conditions {padding:17px 18px; margin-top:24px}.plan-conditions p {font-size:1rem; line-height:1.95}
  .flow-grid {grid-template-columns:1fr; gap:18px}.flow-grid li {padding:21px 20px}.flow-grid h3 {font-size:1.2rem}.flow-grid p {font-size:1.0625rem}
  .faq summary {font-size:1.0625rem; line-height:1.9; padding:23px 2.2rem 23px 2rem}.faq summary:before {top:24px}.faq summary:after {top:23px}
  .faq details>p {padding:0 10px 24px 31px; font-size:1.0625rem; line-height:1.95}
  .contact {grid-template-columns:1fr; gap:24px; padding:42px 16px}
  .contact-heading h2 {font-size:clamp(1.65rem,7.5vw,2rem); line-height:1.65}.contact-mascot {width:240px; margin-top:22px}
  .contact-options {gap:20px}.contact-options article {padding:22px 18px}.contact-options h3 {font-size:1.5rem}.contact-label {font-size:1rem}
  .contact-number {font-size:clamp(1.8rem,8vw,2.3rem); line-height:1.65}.contact-phone>p:not(.contact-label) {font-size:1rem}
  .line-contact-body {grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr)); gap:17px; text-align:center}.qr-link {justify-self:center}.qr-link img {width:125px}.line-contact-body p {font-size:1rem}
  .contact-tip {font-size:.9375rem; text-align:center}.contact-form-link {min-width:0; width:100%; font-size:1rem}
  .inquiry form {padding:22px 17px}.form-field label {font-size:1rem}.form-field {margin-bottom:23px}
  .review-actions {grid-template-columns:1fr}.review-actions .button-phone {grid-row:1}
  #review-values {grid-template-columns:1fr; padding:6px 15px}#review-values dt {padding:13px 0 5px; border-bottom:0}#review-values dd {padding:0 0 13px}
  .store {grid-template-columns:1fr; gap:25px}.store-heading {display:flex; flex-wrap:wrap; align-items:center; gap:10px}.store-heading .section-kicker {width:100%; margin:0; background:none; padding:0}.store h2 {font-size:1.6rem}.footer-logo {width:135px; margin:0 0 0 auto}
  .store dl>div {grid-template-columns:80px minmax(0,1fr); gap:12px; font-size:1rem; padding:15px 0}
  .site-footer {padding:28px 16px calc(9rem + env(safe-area-inset-bottom))}
  .sticky-contact {padding:6px 8px calc(7px + env(safe-area-inset-bottom)); gap:5px 7px}
  .sticky-contact a {min-height:60px; padding:7px 6px}.sticky-caption {font-size:.875rem}
  .sticky-phone>span {font-size:.875rem}.sticky-phone strong {font-size:clamp(1rem,5.1vw,1.25rem)}
  .sticky-line {gap:7px; flex-wrap:wrap}.sticky-line strong {font-size:1rem}.sticky-line .line-word {font-size:.875rem}
  .thank-you-body {padding:24px 16px}.thank-you-card {padding:28px 20px}.thank-you-card h1 {font-size:1.65rem}.thank-you-actions {grid-template-columns:1fr}
}
@media(max-width:360px) {
  .header-inner {padding-left:12px; padding-right:12px}.brand-logo {width:86px}.brand {gap:7px}.brand-type b {padding:3px 7px; font-size:.9375rem}nav {gap:12px}
  .hero h1 {font-size:2.5rem}.hero-lead {font-size:1.0625rem}.hero-lead .mobile-break {display:block}
  .consult-band {grid-template-columns:65px minmax(0,1fr); gap:10px}.consult-mascot {width:65px; height:110px}.consult-band h2 {font-size:1.125rem}
  .sticky-caption span {margin-left:8px}
}
@media(prefers-reduced-motion:reduce) {
  :root {scroll-behavior:auto}.button {transition:none}
}
@media print {
  .site-header {position:static}.sticky-contact {display:none}.site-footer {padding-bottom:25px}
  .hero-actions {display:grid}.section {break-inside:avoid}.faq details>p {display:block}
}

/* Official service guidance, adapted for the Kawagoe landing page. */
.site-header nav {flex-wrap:wrap; justify-content:center; gap:16px; line-height:1.65}
.hero-consult-photo {display:grid; grid-template-columns:130px minmax(0,1fr); align-items:center; gap:17px; margin-top:20px; padding:8px; border:2px solid #fff; border-radius:9px; background:#fff8d6}
.hero-consult-photo img {width:130px; height:auto; border-radius:5px; object-fit:contain}
.hero-consult-photo p {font-size:1rem; font-weight:700; line-height:1.6}
.hero-consult-photo strong {display:block; font-size:1.1rem; font-weight:900; color:var(--red); line-height:1.75; margin-top:6px}
.hero-consult-photo small {display:block; font-size:.75rem; margin-top:9px; color:#465b70; line-height:1.7}
.page-jump {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; max-width:1120px; padding:25px 20px; margin:auto; background:#fff}
.page-jump a {text-align:center; text-decoration:none; border:2px solid var(--ink); border-bottom:5px solid var(--yellow); border-radius:6px; padding:12px 8px; line-height:1.8; min-width:0}
.page-jump a:hover {background:#fff9d5}
.page-jump small {display:block; font-size:.875rem; font-weight:600}
.page-jump strong {display:block; font-size:1.125rem; font-weight:900}
.pricing {padding-bottom:30px}
.price-intro {display:grid; grid-template-columns:120px minmax(0,1fr); align-items:center; gap:26px; max-width:850px; margin:0 auto 30px}
.price-intro img {width:120px; height:auto}
.source-label {display:inline-block; font-size:.875rem; line-height:1.8; font-weight:800; color:var(--blue); padding:3px 10px; background:#e8f5ff; margin-bottom:11px; border-radius:4px}
.price-intro h3 {font-size:1.45rem; line-height:1.75; margin-bottom:11px}
.price-intro p {font-size:1rem; line-height:1.9}
.basic-price-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.basic-price-card {min-width:0; text-align:center; padding:24px 20px; border:2px solid var(--blue); border-top-width:7px; border-radius:9px; background:#fff; box-shadow:0 5px 0 #e5f2fc}
.basic-price-card:nth-child(2) {border-color:var(--red); box-shadow:0 5px 0 #ffebe2}
.basic-price-card:nth-child(3) {border-color:var(--line); box-shadow:0 5px 0 #e6f5dc}
.basic-price-card img {width:70px; height:70px; object-fit:contain; margin:0 auto 13px}
.basic-price-card h3 {font-size:1.35rem; line-height:1.65; margin-bottom:6px}
.price-unit {font-size:1rem; font-weight:600; line-height:1.75}
.basic-price {display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:4px; font-weight:900; color:var(--red); line-height:1.35; margin:10px 0 15px; overflow-wrap:anywhere}
.basic-price strong {font-size:3rem; letter-spacing:-.03em; max-width:100%}
.basic-price span {font-size:1.125rem}
.price-detail {border-top:1px solid var(--border); padding-top:13px; font-size:.9375rem; line-height:1.85}
.price-examples {background:#fff9d9; border:2px solid var(--yellow); border-radius:9px; padding:25px; margin-top:36px}
.price-examples h3,.extra-fees h3 {font-size:1.3rem; line-height:1.8; margin-bottom:20px}
.price-examples h3 span {display:inline-block; font-size:.875rem; font-weight:600; margin-left:8px}
.example-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px}
.example-grid article {background:#fff; border-radius:5px; padding:18px 13px; text-align:center; min-width:0}
.example-grid article>p:first-child {font-weight:900; font-size:1rem; line-height:1.8}
.example-grid article>span {display:inline-block; padding:2px 9px; background:#e9f1f9; border-radius:3px; font-size:.875rem; font-weight:700; line-height:1.7; margin:7px 0}
.example-grid article>strong {display:block; color:var(--red); font-size:1.95rem; font-weight:900; line-height:1.6; overflow-wrap:anywhere}
.example-grid small {font-size:1rem; margin-left:3px}
.example-detail {font-size:.875rem; line-height:1.85; margin-top:7px}
.extra-fees {border:1px solid var(--border); padding:25px; border-radius:8px; margin-top:25px}
.extra-fees dl {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 30px; margin:0}
.extra-fees dl>div {display:flex; flex-wrap:wrap; align-items:center; gap:9px 15px; border-bottom:1px solid var(--border); padding-bottom:13px; min-width:0}
.extra-fees dt {display:flex; align-items:center; gap:11px; font-size:1rem; font-weight:800}
.extra-fees dt img {width:42px; height:42px; object-fit:contain}
.extra-fees dd {margin:0; font-size:.9375rem; line-height:1.9}
.source-note {font-size:.875rem; line-height:1.9; text-align:center; margin-top:23px; color:#35495f}
.source-note a {font-weight:700; color:var(--blue)}
.section-cta {max-width:430px; margin:25px auto 0; font-size:1rem; min-height:60px}
.plans {padding-top:30px}
.voices {max-width:none; background:#fff8d7}
.voices>* {max-width:1080px; margin-left:auto; margin-right:auto}
.voice-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
.voice-card {min-width:0; background:#fff; padding:25px; border:2px solid #dfd5ad; border-top:6px solid var(--yellow); border-radius:9px; display:flex; flex-direction:column}
.voice-person {display:flex; flex-wrap:wrap; align-items:center; gap:13px; margin-bottom:20px}
.voice-person img {width:70px; height:70px; object-fit:contain; flex:none}
.voice-person>div {min-width:0}
.voice-service {display:inline-block; padding:3px 9px; color:#fff; background:var(--blue); font-size:.875rem; font-weight:800; border-radius:4px; line-height:1.75}
.voice-person p {font-size:.875rem; font-weight:600; line-height:1.9; margin-top:6px}
.voice-card h3 {font-size:1.25rem; line-height:1.75; margin-bottom:14px}
.voice-card>p {font-size:1.0625rem; line-height:1.95}
.voice-summary {display:block; font-size:.875rem; color:#4b6076; border-top:1px solid var(--border); padding-top:13px; margin-top:20px; line-height:1.8}
.voices .section-cta {max-width:430px}
.flow {max-width:none}
.flow>* {max-width:1080px; margin-left:auto; margin-right:auto}
.flow-top {min-height:95px}
.flow-grid img {width:100%; height:auto; object-fit:contain; border-radius:5px; margin-bottom:17px}
.flow-grid .step-label {margin-bottom:4px; font-size:1rem}
.flow-grid h3 {font-size:1.2rem; margin-bottom:15px}
.flow-grid p {font-size:1rem; line-height:1.95}
.flow-grid .text-link {display:block; margin-top:15px; background:#edf7ff; border:1px solid var(--border); padding:10px 8px; border-radius:4px; text-align:center; font-size:.875rem}
.flow .source-note {margin-top:23px}
.faq-list details:first-child {border-top:1px solid var(--border)}
.faq details[open] {background:#f7fbff}
.faq details>p {color:#233e5e}
@media(max-width:980px) {
  .site-header nav {gap:12px; font-size:.875rem}
  .basic-price {gap:2px}.basic-price strong {font-size:2.5rem}
  .example-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .voice-grid {grid-template-columns:1fr}.voice-person {margin-bottom:14px}.voice-card {padding:24px}
  .flow-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.flow-top {min-height:0}
}
@media(max-width:680px) {
  :root {scroll-padding-top:11rem}
  .header-inner {justify-content:center; gap:6px; padding-top:6px; padding-bottom:4px}
  .site-header nav {flex:1 0 100%; gap:8px 18px; font-size:.875rem}
  .site-header nav a {padding:5px 0; display:block}
  .brand-logo {width:86px}
  .hero-consult-photo {grid-template-columns:115px minmax(0,1fr); gap:13px; margin-top:15px; padding:7px}
  .hero-consult-photo img {width:115px}.hero-consult-photo p {font-size:1rem}.hero-consult-photo strong {font-size:1rem}.hero-consult-photo small {margin-top:7px}
  .page-jump {grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:20px 16px}
  .page-jump a {padding:11px 7px}.page-jump strong {font-size:1.0625rem}.page-jump small {font-size:.875rem}
  .pricing {padding-bottom:24px}.plans {padding-top:24px}
  .price-intro {grid-template-columns:75px minmax(0,1fr); gap:15px; margin-bottom:26px}
  .price-intro img {width:75px}.price-intro h3 {font-size:1.125rem; line-height:1.85}.price-intro p {font-size:1rem}
  .source-label {padding:3px 7px; font-size:.875rem; margin-bottom:8px}
  .basic-price-grid {grid-template-columns:1fr; gap:20px}
  .basic-price-card {padding:20px}.basic-price-card img {width:58px; height:58px; margin-bottom:8px}.basic-price-card h3 {font-size:1.35rem}
  .basic-price strong {font-size:3rem}.basic-price {margin-bottom:10px}.price-detail {font-size:1rem}
  .price-examples,.extra-fees {padding:20px 15px; margin-top:25px}
  .price-examples h3,.extra-fees h3 {font-size:1.125rem; line-height:1.8}
  .price-examples h3 span {display:block; margin-left:0; margin-top:5px}
  .example-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr)); gap:12px}
  .example-grid article {padding:15px 10px}.example-grid article>strong {font-size:1.8rem}.example-detail {font-size:.875rem}
  .extra-fees dl {grid-template-columns:1fr; gap:16px}.extra-fees dd {font-size:1rem}
  .source-note {text-align:left; font-size:.875rem; margin-top:20px; line-height:1.95}
  .section-cta {width:100%; margin-top:23px}
  .voice-card {padding:21px 18px}.voice-person {gap:13px}.voice-person img {width:68px; height:68px}
  .voice-card h3 {font-size:1.2rem}.voice-card>p {font-size:1.0625rem}
  .flow-grid {grid-template-columns:1fr; gap:21px}.flow-grid li {padding:21px 20px}
  .flow-grid h3 {font-size:1.3rem}.flow-grid p {font-size:1.0625rem}.flow-grid .text-link {font-size:1rem; min-height:50px}
}
@media(max-width:360px) {
  .site-header nav {gap:7px 12px}.hero-consult-photo {grid-template-columns:105px minmax(0,1fr); gap:11px}.hero-consult-photo img {width:105px}
}

/* The supplied national hero: original wording, photos and gold badges. */
.hero-reference {background:linear-gradient(180deg,#fff0d4 0%,#fff9e7 64%,#ffdb24 100%)}
.hero-reference-inner {max-width:1280px; margin:auto; padding:25px 24px 22px}
.hero-reference-heading {display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 18px; margin-bottom:22px; text-align:center}
.hero-reference-heading .eyebrow {margin:0; padding:5px 18px; font-size:1rem; background:var(--red); border-radius:5px}
.hero-reference-source {color:#405069; font-size:.875rem; font-weight:700; line-height:1.8}
.hero-reference-grid {display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,2fr) minmax(0,.8fr); align-items:center; gap:16px}
.hero-reference-staff {width:100%; height:auto; object-fit:contain; border-radius:16px}
.hero-reference-staff-left {grid-column:1; grid-row:1}
.hero-reference-staff-right {grid-column:3; grid-row:1}
.hero-reference-copy {grid-column:2; grid-row:1; min-width:0; text-align:center}
.hero-reference-services {font-size:clamp(1rem,1.6vw,1.25rem); font-weight:800; line-height:1.9; color:var(--ink); margin-bottom:12px; overflow-wrap:anywhere}
.hero-reference-fast {display:inline-block; padding:4px 24px; background:var(--ink); color:#fff; border:3px solid #e4ac23; border-radius:5px; font-size:1.35rem; font-weight:900; line-height:1.65; margin-bottom:12px}
.hero-reference h1 {font-size:clamp(2.25rem,4.3vw,3.5rem); line-height:1.4; letter-spacing:-.025em; text-shadow:none; margin:0}
.hero-reference-main {display:block; color:var(--ink); font-size:.85em}
.hero-reference-emphasis {display:block; color:var(--red); text-shadow:2px 3px 0 #ffeaa1}
.hero-reference-promise {display:flex; flex-wrap:wrap; justify-content:center; font-size:clamp(1rem,1.65vw,1.25rem); font-weight:900; line-height:1.8; margin-top:8px; color:var(--ink)}
.hero-reference-results {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; align-items:start; max-width:570px; margin:16px auto 0}
.hero-reference-results figure {position:relative; min-width:0}
.hero-reference-results img {width:100%; height:auto; object-fit:contain}
.hero-reference-results figcaption {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap}
.hero-reference-network {text-align:center; padding:22px 10px 18px; margin-top:20px; border-top:2px solid #edc968; line-height:1.8}
.hero-reference-network p:first-child {font-size:clamp(1.125rem,2.2vw,1.7rem); font-weight:900; color:var(--red); margin-bottom:6px}
.hero-reference-network p:last-child {font-size:clamp(1.25rem,2.55vw,2rem); font-weight:900; color:var(--ink); text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:7px; text-underline-offset:6px; overflow-wrap:anywhere}
.hero-reference-note {max-width:900px; margin:0 auto; padding:10px 15px; background:#fff9; border-radius:5px; font-size:.875rem; color:#35495f; line-height:1.9}
.hero-reference-actions {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; max-width:740px; margin:22px auto 0}
.hero-reference-actions .button {min-width:0; min-height:74px; border:2px solid #fff; box-shadow:0 4px 0 #dac25d; padding:12px 16px}
.hero-reference-actions .button-phone strong {font-size:1.65rem; font-weight:900}
.hero-reference-form {display:block; width:fit-content; max-width:100%; margin:18px auto 25px; text-align:center; font-size:1rem; font-weight:800; line-height:1.9}
.hero-reference .hero-scene-grid {max-width:1080px; margin:0 auto; gap:15px}
.hero-reference .hero-scene-grid figure {padding:5px; border-radius:9px; box-shadow:0 3px 0 #e3bd20}
.hero-reference .hero-scene-grid figcaption {font-size:1rem; line-height:1.8; padding:10px 4px; font-weight:900}
.hero-reference .scene-note {max-width:1080px; margin:10px auto 0}
.concerns-mascot .mascot-group {width:360px; max-width:100%; border-radius:9px; margin-top:18px}
.faq-intro {display:grid; grid-template-columns:minmax(0,1fr) 235px; align-items:center; gap:30px; max-width:900px; margin:0 auto 28px}
.faq-intro .section-heading {margin:0}
.faq-mascots {width:100%; height:auto; object-fit:contain}
@media(max-width:980px) {
  .hero-reference-grid {grid-template-columns:minmax(0,.7fr) minmax(0,2fr) minmax(0,.7fr); gap:10px}
  .hero-reference h1 {font-size:clamp(2rem,4.5vw,3rem)}
  .hero-reference-services {font-size:1rem}
  .hero-reference-fast {font-size:1.125rem; padding:4px 16px}
}
@media(max-width:680px) {
  .hero-reference-inner {padding:21px 16px 20px}
  .hero-reference-heading {gap:7px; margin-bottom:17px; flex-direction:column}
  .hero-reference-heading .eyebrow {font-size:1rem; padding:5px 16px}
  .hero-reference-source {font-size:.875rem}
  .hero-reference-grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:end}
  .hero-reference-copy {grid-column:1/-1; grid-row:1}
  .hero-reference-services {max-width:24rem; margin:0 auto 11px; font-size:1rem; line-height:1.85}
  .hero-reference-fast {font-size:1.125rem; padding:4px 22px; margin-bottom:12px}
  .hero-reference h1 {font-size:clamp(2rem,9.7vw,2.75rem); line-height:1.4; letter-spacing:-.025em}
  .hero-reference-main {font-size:.9em}
  .hero-reference-promise {font-size:1rem; margin-top:8px}
  .hero-reference-results {gap:7px; margin-top:17px; max-width:430px}
  .hero-reference-results img {max-width:105px; margin:auto}
  .hero-reference-results figcaption {position:static; width:auto; height:auto; overflow:visible; clip-path:none; white-space:normal; padding:6px 0 12px; line-height:1.6}
  .hero-reference-results figcaption>span {display:block; font-size:.875rem; font-weight:800; overflow-wrap:anywhere; min-height:2.8rem}
  .hero-reference-results strong {display:block; color:var(--red); font-size:clamp(1.35rem,6vw,1.65rem); font-weight:900; line-height:1.65; letter-spacing:-.025em; overflow-wrap:anywhere}
  .hero-reference-results small {font-size:.875rem; margin-left:2px}
  .hero-reference-staff-left {grid-column:1; grid-row:2}
  .hero-reference-staff-right {grid-column:2; grid-row:2}
  .hero-reference-staff {max-width:235px; justify-self:center; border-radius:9px}
  .hero-reference-network {padding:18px 0 17px; margin-top:19px}
  .hero-reference-network p:first-child {font-size:1.125rem; margin-bottom:9px}
  .hero-reference-network p:last-child {font-size:1.3rem; line-height:1.9; text-decoration-thickness:5px; text-underline-offset:5px}
  .hero-reference-note {padding:12px; font-size:.875rem; line-height:1.9}
  .hero-reference-actions {grid-template-columns:1fr; gap:12px; margin-top:19px}
  .hero-reference-actions .button {min-height:65px}
  .hero-reference-actions .button-phone strong {font-size:1.5rem}
  .hero-reference-form {font-size:1rem; margin:17px auto 24px}
  .hero-reference .hero-scene-grid {gap:7px}
  .hero-reference .hero-scene-grid figure {padding:3px; border-radius:6px}
  .hero-reference .hero-scene-grid figcaption {font-size:.875rem; padding:8px 1px; line-height:1.65}
  .concerns-mascot .mascot-group {width:340px; max-width:100%}
  .faq-intro {grid-template-columns:1fr; gap:14px; margin-bottom:22px}
  .faq-mascots {width:215px; max-width:80%; justify-self:center}
}

/* Photo index of the twelve services shown in the supplied reference. */
.service-catalog {padding-top:44px; margin-top:38px; border-top:3px solid var(--yellow)}
.service-catalog-heading {display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px 25px; margin-bottom:25px}
.service-catalog-heading h3 {font-size:clamp(1.75rem,3.1vw,2.5rem); line-height:1.6; font-weight:900}
.service-catalog-heading h3 em {font-size:1.3em; margin-right:5px}
.service-catalog-heading p {font-size:1rem; font-weight:600; line-height:1.9}
.service-catalog-source {display:inline-block; font-size:.875rem; line-height:1.8; color:#365671; background:#fff; border:1px solid var(--border); padding:4px 11px; border-radius:4px}
.service-catalog-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 23px; margin:0; padding:0; list-style:none}
.service-catalog-grid li {min-width:0}
.service-catalog-card {display:flex; flex-direction:column; height:100%; background:#fff; border-radius:9px; border:2px solid #fff; text-decoration:none; overflow:hidden; box-shadow:0 4px 0 #d6e2ed; min-width:0}
.service-catalog-card:hover {border-color:var(--red)}
.service-catalog-card img {width:100%; height:auto; aspect-ratio:4/3; object-fit:cover}
.service-catalog-label {display:flex; flex-direction:column; justify-content:center; align-items:center; flex:1; min-height:84px; padding:11px 12px; background:var(--red); color:#fff; text-align:center; line-height:1.75}
.service-catalog-name {font-size:1.0625rem; font-weight:900; overflow-wrap:anywhere}
.service-catalog-consult {font-size:.875rem; font-weight:600; margin-top:3px; text-decoration:underline; text-underline-offset:3px}
@media(max-width:680px) {
  .service-catalog {padding-top:28px; margin-top:28px}
  .service-catalog-heading {display:block; margin-bottom:20px}
  .service-catalog-heading h3 {font-size:1.75rem; line-height:1.65}
  .service-catalog-heading p {font-size:1rem; margin:5px 0 12px}
  .service-catalog-source {font-size:.875rem; padding:4px 9px}
  .service-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px}
  .service-catalog-card {border-radius:7px}
  .service-catalog-label {min-height:98px; padding:10px 8px; line-height:1.7}
  .service-catalog-name {font-size:1rem}
  .service-catalog-consult {font-size:.875rem; margin-top:5px}
}
@media(max-width:330px) {
  .service-catalog-grid {grid-template-columns:1fr}
  .service-catalog-label {min-height:78px}
}
