@font-face {
  font-family: 'Noto Sans KR';
  src: url('/assets/NotoSansKR-Variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --blue: #0069d9;
  --blue-dark: #004fa8;
  --ink: #102a43;
  --muted: #52667c;
  --line: #d8e5f2;
  --pale: #eef6ff;
  --white: #fff;
  --photo-radius: 12px;
  --button-radius: 999px;
  --field-radius: 10px;
  color: var(--ink);
  background: var(--white);
  font-family: 'Noto Sans KR';
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--white);
  color: var(--ink);
  font-family: 'Noto Sans KR';
  font-size: 16px;
  line-height: 1.75;
  overflow-x: hidden;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; }
h1, h2, h3, strong, summary { font-family: 'Noto Sans KR'; }
h1, h2, h3 { margin: 0; color: var(--ink); letter-spacing: -0.045em; }
h1 { font-size: clamp(38px, 5vw, 60px); font-weight: 900; line-height: 1.18; }
h2 { font-size: clamp(30px, 3.4vw, 42px); font-weight: 800; line-height: 1.3; }
h3 { font-size: 22px; font-weight: 800; line-height: 1.45; }
caption, figcaption, small, .caption-role, .preview-label, .content-updated { font-size: 14px; }

.wrap { width: min(100%, 1280px); margin: 0 auto; padding-left: 40px; padding-right: 40px; }
.button, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 21px;
  border: 1px solid var(--blue);
  border-radius: var(--button-radius);
  background: var(--blue);
  color: var(--white);
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.button:hover, .btn:hover, .button.is-hover { background: var(--blue-dark); border-color: var(--blue-dark); }
.button:active, .btn:active { transform: translateY(1px); }
.button--outline { background: var(--white); color: var(--blue); }
.button--outline:hover { background: var(--pale); color: var(--blue-dark); border-color: var(--blue-dark); }
.button--inverse { background: var(--white); border-color: var(--white); color: var(--blue-dark); }
.button--inverse:hover { background: var(--pale); border-color: var(--pale); }
.button:disabled, .btn:disabled, .button[aria-disabled='true'] { cursor: not-allowed; opacity: .48; pointer-events: none; }
:focus-visible, .button.is-focus { outline: 3px solid var(--blue); outline-offset: 3px; }
.hero-titlebar :focus-visible, .site-footer :focus-visible, .finish-section :focus-visible { outline-color: var(--white); }

.site-header { position: relative; z-index: 10; border-bottom: 1px solid var(--line); background: var(--white); }
.site-header > .wrap { display: flex; min-height: 76px; align-items: center; gap: 28px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: baseline; gap: 8px; color: var(--ink); }
.brand strong { color: var(--blue); font-size: 25px; font-weight: 900; letter-spacing: -0.08em; }
.brand span { color: var(--muted); font-size: 14px; font-weight: 700; letter-spacing: -0.04em; }
.site-nav { display: flex; align-items: center; gap: 26px; margin-left: auto; }
.site-nav a { display: inline-flex; min-height: 44px; align-items: center; border-bottom: 2px solid transparent; color: var(--muted); font-size: 15px; font-weight: 700; }
.site-nav a:hover, .site-nav a[aria-current='page'] { border-color: var(--blue); color: var(--blue-dark); }
.header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }
.preview-label { color: var(--muted); font-weight: 700; white-space: nowrap; }
.menu { display: none; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid var(--line); border-radius: var(--field-radius); background: var(--white); color: var(--blue-dark); font-weight: 800; }

.hero-titlebar, .finish-section { background: var(--blue); color: var(--white); }
.clean-hero { padding-bottom: 0; }
.hero-titlebar .wrap { display: flex; align-items: end; justify-content: space-between; gap: 48px; padding-top: 76px; padding-bottom: 70px; }
.hero-heading { max-width: 760px; }
.hero-heading p, .hero-intro p { color: var(--white); }
.hero-heading p { margin-bottom: 14px; font-size: 16px; font-weight: 800; letter-spacing: .04em; }
.hero-heading h1 { color: var(--white); }
.hero-intro { display: grid; flex: 0 1 310px; gap: 20px; }
.hero-intro p { font-size: 16px; line-height: 1.7; }
.hero-media { padding-top: 36px; }
.photo-unit { overflow: hidden; border: 1px solid var(--line); border-radius: var(--photo-radius); background: var(--white); }
.photo-unit img { width: 100%; object-fit: cover; }
.photo-unit figcaption { display: flex; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--line); color: var(--muted); line-height: 1.55; }
.caption-role { flex: 0 0 auto; color: var(--blue-dark); font-weight: 800; }
.caption-text { color: var(--muted); }
.hero-photo img { height: 420px; }

.story-nav { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 40px; }
.story-nav .wrap { display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 0; padding-bottom: 0; }
.story-nav a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; min-height: 82px; padding: 14px 20px; border-left: 1px solid var(--line); color: var(--ink); }
.story-nav a:last-child { border-right: 1px solid var(--line); }
.story-nav strong { color: var(--blue); font-size: 14px; }
.story-nav span { font-size: 15px; font-weight: 800; }
.story-nav .arrow { color: var(--blue); font-size: 20px; }
.story-nav a:hover { background: var(--pale); }

.work-section, .prepare-section, .faq-section, .final-action { padding: 72px 0; }
.section-heading { max-width: 700px; margin-bottom: 36px; }
.section-step { margin-bottom: 8px; color: var(--blue); font-size: 14px; font-weight: 900; letter-spacing: .08em; }
.section-heading h2 { margin-bottom: 14px; }
.section-lead { color: var(--muted); }
.work-gallery { display: grid; grid-template-columns: 1.45fr .8fr; gap: 28px; padding-bottom: 64px; border-bottom: 1px solid var(--line); }
.work-main .photo-unit img { aspect-ratio: 4 / 3; }
.work-note { padding: 20px 0 0; }
.work-note h3, .work-copy h3 { margin-bottom: 10px; }
.work-note p, .work-copy p { color: var(--muted); }
.work-tall .photo-unit img { height: 520px; }
.work-wide { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 64px; }
.work-wide .photo-unit img { aspect-ratio: 4 / 3; }
.work-copy { align-self: center; padding: 8px 0; }
.check-row { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; color: var(--ink); }
.check-mark { display: inline-flex; flex: 0 0 22px; width: 22px; height: 22px; align-items: center; justify-content: center; margin-top: 3px; border-radius: 50%; background: var(--blue); color: var(--white); font-size: 13px; font-weight: 900; line-height: 1; }

.scope-section { padding: 72px 0; background: var(--pale); }
.scope-matrix { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid var(--blue); border-left: 1px solid var(--line); background: var(--white); }
.scope-column { min-width: 0; padding: 24px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.scope-column > strong { display: block; margin-bottom: 12px; color: var(--blue); font-size: 14px; }
.scope-column h3 { margin-bottom: 14px; font-size: 20px; }
.scope-column ul { list-style: none; }
.scope-column li { padding: 8px 0; border-top: 1px solid var(--line); font-size: 15px; }
.scope-extra { margin-top: 14px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.scope-footnote { margin-top: 18px; color: var(--muted); font-size: 14px; }

.prepare-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: start; }
.prepare-explainer ol { padding-left: 22px; }
.prepare-explainer li { padding: 0 0 20px 8px; }
.prepare-explainer li + li { padding-top: 20px; border-top: 1px solid var(--line); }
.prepare-explainer strong { display: block; margin-bottom: 5px; font-size: 18px; }
.prepare-explainer p, .price-notice { color: var(--muted); }
.price-notice { margin-top: 18px; padding: 16px; border-left: 3px solid var(--blue); background: var(--pale); font-size: 14px; }
.quote-form { padding: 28px; border: 1px solid var(--line); border-radius: var(--photo-radius); background: var(--white); }
.quote-grid, .fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.field { display: grid; gap: 7px; min-width: 0; }
.field label { color: var(--ink); font-size: 14px; font-weight: 800; }
.field input, .field select, .field textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--field-radius); background: var(--white); color: var(--ink); }
.field textarea { min-height: 112px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); opacity: .82; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); outline: 3px solid color-mix(in srgb, var(--blue) 18%, transparent); }
.quote-action { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
.quote-action p { color: var(--muted); font-size: 14px; line-height: 1.55; }

.finish-section { padding-top: 72px; }
.finish-section .section-heading h2, .finish-section .section-heading p { color: var(--white); }
.finish-gallery { display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; }
.finish-gallery .photo-unit { border-color: var(--white); }
.finish-gallery .photo-unit img { height: 360px; }
.finish-gallery .photo-unit:nth-child(2) img { height: 360px; }
.finish-note { margin-top: 24px; padding: 15px 18px; background: var(--white); color: var(--ink); font-size: 14px; line-height: 1.65; }

.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 60px; align-items: start; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary { position: relative; min-height: 64px; padding: 19px 42px 19px 0; color: var(--ink); cursor: pointer; font-size: 17px; font-weight: 800; line-height: 1.5; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { position: absolute; top: 18px; right: 4px; color: var(--blue); content: '+'; font-size: 26px; font-weight: 400; }
.faq-item[open] summary::after { content: '−'; }
.faq-item p { padding: 0 38px 20px 0; color: var(--muted); }
.final-action { border-top: 1px solid var(--line); text-align: center; }
.final-action .wrap { max-width: 720px; }
.final-action h2 { margin-bottom: 14px; }
.final-action p { margin-bottom: 22px; color: var(--muted); }

.site-footer { padding: 46px 0 20px; background: var(--ink); color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1.4fr .7fr; gap: 36px; padding-bottom: 34px; }
.site-footer .brand { color: var(--white); }
.site-footer .brand strong { color: var(--white); }
.site-footer .brand span, .site-footer p, .site-footer a { color: #d8e5f2; }
.footer-grid h3 { margin-bottom: 10px; color: var(--white); font-size: 16px; letter-spacing: 0; }
.footer-grid p, .footer-grid a { font-size: 14px; line-height: 1.75; }
.footer-grid ul { list-style: none; }
.footer-grid a:hover { color: var(--white); text-decoration: underline; }
.footer-note { padding-top: 18px; border-top: 1px solid #52667c; color: #d8e5f2; font-size: 14px; }

.component-page { background: var(--white); }
.component-intro { padding: 72px 0 36px; border-bottom: 1px solid var(--line); }
.component-intro p { max-width: 720px; margin-top: 14px; color: var(--muted); }
.component-board { padding: 44px 0 72px; }
.component-group { padding: 34px 0; border-top: 1px solid var(--line); }
.component-group > h2 { margin-bottom: 22px; font-size: 28px; }
.component-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.token-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.token-swatch { min-height: 128px; padding: 16px; border: 1px solid var(--line); border-radius: var(--field-radius); color: var(--ink); font-size: 14px; font-weight: 800; }
.token-swatch[style*='--blue'], .token-swatch[style*='--ink'] { color: var(--white); }
.type-specimen { padding: 20px; border: 1px solid var(--line); border-radius: var(--field-radius); }
.type-specimen p { color: var(--muted); }
.status-tag { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: var(--button-radius); background: var(--pale); color: var(--blue-dark); font-size: 14px; font-weight: 800; }

.crumb { padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 14px; }
.crumb a { color: var(--blue-dark); }
.subhero { padding: 64px 0; background: var(--pale); border-bottom: 1px solid var(--line); }
.subhero h1 { max-width: 880px; }
.subhero p { max-width: 720px; margin-top: 16px; color: var(--muted); }
.subcontent { padding: 64px 0 72px; }
.subcontent > * + h2, .subcontent section + section { margin-top: 48px; }
.subcontent h2 { margin-bottom: 16px; font-size: 30px; }
.subcontent h3 { margin: 26px 0 10px; font-size: 21px; }
.subcontent p + p { margin-top: 14px; }
.subcontent p, .subcontent li { color: var(--muted); }
.subcontent ul, .subcontent ol { padding-left: 22px; }
.subcontent li + li { margin-top: 7px; }
.subcontent table { width: 100%; border-collapse: collapse; margin: 22px 0; font-size: 15px; }
.subcontent th, .subcontent td { padding: 13px 14px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.subcontent th { background: var(--pale); color: var(--ink); font-weight: 800; }
.geo-table-wrap { overflow-x: auto; border: 1px solid var(--line); }
.geo-table-wrap table { min-width: 640px; margin: 0; }
.answer-lead { margin-bottom: 26px; padding: 20px; border-left: 4px solid var(--blue); background: var(--pale); color: var(--ink) !important; font-size: 18px; font-weight: 700; }
.geo-related, .faq-topics, .districts, .geo-districts { margin-top: 28px; padding: 22px; border: 1px solid var(--line); }
.geo-related h2, .faq-topics h2, .districts h2, .geo-districts h2 { font-size: 22px; }
.geo-related ul, .faq-topics ul, .districts ul, .geo-districts ul { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; list-style: none; }
.geo-related a, .faq-topics a, .districts a, .geo-districts a { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.content-updated { margin-top: 34px; color: var(--muted); }
.estimate form { max-width: 760px; padding: 26px; border: 1px solid var(--line); border-radius: var(--photo-radius); }
.estimate .fields { margin-bottom: 20px; }
.result { max-width: 760px; margin-top: 20px; padding: 20px; border: 1px solid var(--line); background: var(--pale); }
.result[hidden] { display: none; }
.closing { display: none; }

@media (max-width: 900px) {
  .site-header > .wrap { gap: 16px; }
  .site-nav { display: none; position: absolute; top: calc(100% + 1px); right: 0; left: 0; padding: 12px 20px 18px; border-bottom: 1px solid var(--line); background: var(--white); }
  .site-nav.open { display: grid; gap: 0; }
  .site-nav a { border-bottom: 1px solid var(--line); }
  .menu { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; }
  .header-actions .preview-label, .header-actions > .button { display: none; }
  .footer-grid, .faq-layout, .prepare-layout { grid-template-columns: 1fr; gap: 32px; }
  .hero-titlebar .wrap { gap: 28px; }
  .scope-matrix { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .wrap { padding-left: 20px; padding-right: 20px; }
  .site-header > .wrap { min-height: 68px; }
  .brand span { display: none; }
  .hero-titlebar .wrap { display: grid; padding-top: 52px; padding-bottom: 48px; }
  .hero-intro { max-width: 390px; }
  .hero-media { padding-top: 24px; }
  .hero-photo img { height: 300px; }
  .story-nav { margin-top: 28px; }
  .story-nav .wrap { grid-template-columns: 1fr; padding: 0; }
  .story-nav a, .story-nav a:last-child { min-height: 64px; border-right: 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .story-nav a:last-child { border-bottom: 0; }
  .work-section, .prepare-section, .faq-section, .final-action, .scope-section { padding: 56px 0; }
  .section-heading { margin-bottom: 28px; }
  .work-gallery, .work-wide, .finish-gallery { grid-template-columns: 1fr; gap: 22px; }
  .work-tall .photo-unit img { height: 420px; }
  .work-gallery { padding-bottom: 40px; }
  .work-wide { padding-top: 40px; }
  .scope-matrix { grid-template-columns: 1fr; }
  .scope-column { padding: 21px 18px; }
  .quote-form, .estimate form { padding: 20px; }
  .quote-grid, .fields, .estimate .fields { grid-template-columns: 1fr; }
  .quote-action { display: grid; align-items: stretch; }
  .finish-section { padding-top: 56px; }
  .finish-gallery .photo-unit img, .finish-gallery .photo-unit:nth-child(2) img { height: 280px; }
  .faq-item summary { font-size: 16px; }
  .footer-grid { gap: 26px; }
  .token-grid { grid-template-columns: repeat(2, 1fr); }
  .component-intro { padding: 56px 0 28px; }
  .component-board { padding: 28px 0 56px; }
  .subhero { padding: 48px 0; }
  .subcontent { padding: 48px 0 56px; }
}

@media (max-width: 390px) {
  body { font-size: 16px; }
  .brand strong { font-size: 23px; }
  .button, .btn { width: 100%; }
  .component-row .button, .component-row .btn { width: auto; }
  .photo-unit figcaption { display: grid; gap: 2px; }
  .scope-matrix { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
/* Match the reusable component master sizes. */
body{overflow-x:visible;word-break:keep-all}
.button,.btn{min-height:56px;padding:14px 24px;gap:16px;font-size:16px}
.header-actions .button{min-height:44px;padding:10px 18px;font-size:14px}
.field input,.field select{min-height:54px}
.quote-form>p{margin:10px 0 24px;color:var(--muted)}
.work-copy ul{list-style:none;margin:20px 0 24px}
.scope-extra b{display:block;margin-bottom:5px;color:var(--ink)}
.scope-footnote{display:flex;justify-content:space-between;align-items:center;gap:20px}
.footer-grid nav{display:flex;flex-direction:column;gap:8px}
.footer-note{display:flex;justify-content:space-between;gap:20px}
.component-row>.field{width:280px}
.token-grid>div>strong,.token-grid>div>span{display:block;margin-top:8px}
.type-specimen{margin-top:24px}
.component-group>.photo-unit{max-width:900px}
.component-group>.photo-unit img{max-height:420px;object-fit:cover}
.component-group>.quote-form{max-width:800px}
.finish-section{padding-bottom:36px}
@media(max-width:600px){.scope-footnote,.footer-note{display:flex;flex-direction:column;align-items:flex-start}.component-row>.field{width:100%}.header-actions .button{min-height:44px;padding:10px 14px}.scope-footnote .button{width:auto}}
.skip{position:absolute;top:-100px;left:16px;z-index:100;background:var(--white);color:var(--ink);padding:12px 18px}
.skip:focus{top:8px}
.hero-media{padding-top:28px}
@media(min-width:901px){.hero-titlebar .wrap{padding-top:54px;padding-bottom:54px}}
@font-face{font-family:'Material Symbols Rounded';src:url('/assets/MaterialSymbolsRounded.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
.material-symbols-rounded{font-family:'Material Symbols Rounded';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased;width:24px;height:24px;flex:0 0 24px}
.button .material-symbols-rounded{color:inherit}
.check-mark.material-symbols-rounded{width:24px;height:24px;flex-basis:24px;font-size:24px;background:none;border-radius:0;color:var(--blue);font-weight:400;line-height:1;margin-top:2px}
.select-control{position:relative;min-width:0}
.select-control select{appearance:none;padding-right:48px}
.select-control>.material-symbols-rounded{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
.faq-item summary::after{content:'add';font-family:'Material Symbols Rounded';font-size:24px;line-height:1;font-weight:400;font-feature-settings:'liga'}
.faq-item[open] summary::after{content:'remove'}
.site-header>.wrap{justify-content:space-between;min-height:84px}
.hero-stage{position:relative;height:650px;isolation:isolate;overflow:hidden;background:var(--white)}
.hero-backdrop{position:absolute;inset:0;z-index:-2;margin:0}
.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 48%}
.hero-readable-layer{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fffffffa 0%,#ffffffed 25%,#ffffff9e 44%,#ffffff12 65%,#ffffff00 100%)}
.hero-content{height:100%;display:flex;align-items:center}
.hero-copy{max-width:620px;padding:32px 0}
.hero-service{color:var(--blue);font-size:16px;font-weight:700;margin-bottom:18px}
.hero-copy h1{font-size:56px;font-weight:900;line-height:1.25;letter-spacing:-.045em;color:var(--ink)}
.hero-copy h1 em{font-style:normal;color:var(--blue)}
.hero-description{font-size:17px;color:var(--muted);line-height:1.85;margin-top:24px}
.hero-copy>.button{margin-top:30px;min-height:58px}
.hero-caveat{font-size:14px;color:var(--muted);margin-top:16px}
.hero-caption{display:flex;gap:18px;align-items:baseline;padding-top:14px;padding-bottom:14px;font-size:14px;border-bottom:1px solid var(--line);color:var(--muted)}
.hero-caption>span{color:var(--blue-dark);font-weight:700;white-space:nowrap}
.finish-section{background:var(--white);color:var(--ink);border-top:1px solid var(--line);padding-bottom:72px}
.finish-section .section-heading h2{color:var(--ink)}
.finish-section .section-heading p{color:var(--muted)}
.finish-section .section-heading .section-step{color:var(--blue)}
.finish-gallery .photo-unit{border-color:var(--line)}
.finish-note{padding:16px 0;background:none;color:var(--muted);margin-top:10px}
.footer-grid{grid-template-columns:.65fr 1.35fr}
.privacy-inline{border-top:1px solid #ffffff35;padding-top:18px;font-size:14px}
.privacy-inline summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.privacy-inline p{padding:6px 0 20px;max-width:850px}
.quote-action{flex-direction:column;align-items:stretch}
.quote-action>.button{width:100%}
.quote-action>p{text-align:center}
.result{margin-top:24px;padding:20px;background:var(--pale);border:1px solid var(--line);border-radius:12px}
.result h3{font-size:20px;margin-bottom:12px}
.result p{margin:10px 0}
.result strong{display:block;margin-top:12px;color:var(--blue-dark);font-size:14px}
@media(max-width:1000px){.hero-copy{max-width:520px}.hero-copy h1{font-size:46px}.hero-readable-layer{background:linear-gradient(90deg,#fffffffa 0%,#ffffffe8 32%,#ffffff55 60%,#ffffff00 100%)}}
@media(max-width:767px){.site-header>.wrap{min-height:76px}.hero-stage{height:700px}.hero-backdrop{top:245px}.hero-backdrop img{object-position:65% center}.hero-readable-layer{background:linear-gradient(180deg,#fff 0%,#fff 28%,#ffffffce 43%,#ffffff00 62%)}.hero-content{align-items:flex-start}.hero-copy{max-width:100%;padding:36px 0 0}.hero-service{font-size:14px;margin-bottom:10px}.hero-copy h1{font-size:36px;line-height:1.3}.hero-description{font-size:15px;line-height:1.75;margin-top:16px}.hero-copy>.button{min-height:54px;margin-top:20px}.hero-caveat{font-size:14px;line-height:1.6;margin-top:12px;max-width:310px}.hero-caption{display:block;font-size:14px;line-height:1.6;padding-top:12px;padding-bottom:16px}.hero-caption p{margin-top:4px}.footer-grid{grid-template-columns:1fr}.finish-section{padding-bottom:44px}}
@media(max-width:390px){.hero-copy h1{font-size:34px}.hero-stage{height:680px}.hero-backdrop{top:230px}.hero-description br{display:none}.preview-label{display:none}}
.faq-item summary::after{content:none}
.faq-item[open] summary::after{content:none}
.faq-item summary>.material-symbols-rounded{position:absolute;right:0;top:20px;color:var(--blue)}
.faq-item .faq-minus,.faq-item[open] .faq-plus{display:none}
.faq-item[open] .faq-minus{display:inline-block}
.quote-checks{width:100%;border-collapse:collapse;font-size:16px;text-align:left}
.quote-checks caption{text-align:left;font-size:20px;font-weight:800;padding-bottom:20px;color:var(--ink)}
.quote-checks th,.quote-checks td{padding:18px 14px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.75}
.quote-checks thead{background:var(--pale);color:var(--blue-dark)}
.quote-checks tbody th{width:30%;font-weight:700}
@media(max-width:767px){.quote-checks{font-size:15px}.quote-checks th,.quote-checks td{padding:14px 10px}}
/* HTML intrinsic dimensions reserve space, but must not fix displayed photo height. */
.photo-unit img{height:auto}
.header-actions>.button{display:inline-flex}
/* V5: shared customer-facing service pages. */
.preview-band{padding:7px 20px;text-align:center;background:var(--pale);color:var(--muted);font-size:12px;line-height:1.6}
.site-header .brand{gap:12px}.site-header .brand img{width:112px;height:38px;object-fit:contain}.site-header .brand span{font-size:12px}
.desktop-nav{display:flex;gap:22px;align-items:center;margin-left:auto}.desktop-nav a{font-size:14px;font-weight:700;white-space:nowrap;padding:18px 0;color:var(--muted)}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--blue)}
.mobile-menu{display:none}.section-space{padding:72px 0}.home-service-intro{padding:64px 0 0}.home-service-intro>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.home-service-intro h2{font-size:32px}.home-service-intro .wrap>p{color:var(--muted);max-width:540px}
.footer-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:40px}.footer-top p{color:#d8e5f2;font-size:16px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:32px 0;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}.footer-links h2{color:white;font-size:17px;margin-bottom:16px}.footer-links a{display:block;padding:5px 0;color:#d8e5f2;font-size:14px}.footer-links a:hover{text-decoration:underline}.footer-legal{padding-top:24px;color:#c2d3e3;font-size:13px;line-height:1.8}.footer-legal p+p{margin-top:8px}
.price-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0}.price-plans.is-compact{grid-template-columns:repeat(4,minmax(0,1fr))}.price-card{border:1px solid var(--line);border-radius:12px;padding:24px;background:white;min-width:0}.price-card h3{font-size:21px;margin-top:12px}.proposal-tag{font-size:12px;line-height:1.5;letter-spacing:.03em;font-weight:700;color:var(--blue)}.price-size{color:var(--muted);font-size:15px;margin:8px 0 20px}.price-number{font-size:27px;font-weight:900;line-height:1.4;color:var(--blue);white-space:nowrap;letter-spacing:-.045em}.price-number span{font-size:14px;margin-left:5px}.tax-note{font-size:13px;color:var(--muted);margin-top:6px}.price-breakdown{font-size:14px;line-height:1.7;color:var(--muted);margin:20px 0;padding-top:18px;border-top:1px solid var(--line)}.text-link{font-size:14px;font-weight:700;color:var(--blue);display:flex;gap:8px;align-items:center}.text-link .material-symbols-rounded{font-size:20px;width:20px;flex-basis:20px}.proposal-note{font-size:13px;line-height:1.8;color:var(--muted);padding:14px 16px;border-left:3px solid var(--blue);background:var(--pale);margin:18px 0}.customer-price-note{font-size:16px;line-height:1.9;max-width:940px;margin-top:18px;color:var(--muted)}
.related-links{display:flex;flex-wrap:wrap;gap:14px 28px;margin:28px 0 0}.related-links>a{color:var(--blue);font-weight:700;font-size:15px;display:inline-flex;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid var(--line)}.related-links>a:hover{color:var(--blue-dark);border-color:var(--blue)}
.care-list{list-style:none;margin-top:22px}.care-list li{padding:20px 0;border-top:1px solid var(--line)}.care-list strong{font-size:19px}.care-list p{margin-top:8px}.extra-options{margin:24px 0 0;border:0;padding:0;min-width:0}.extra-options legend{font-size:14px;font-weight:800;margin-bottom:12px}.optional{font-weight:400;color:var(--muted);font-size:13px}.extra-options label{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-top:10px}.extra-options input{width:18px;height:18px;accent-color:var(--blue);flex:0 0 18px;margin-top:4px}.result-price{font-size:22px;font-weight:800;color:var(--blue)}.result-caveat{font-size:13px}.quote-grid input[type=date]{min-width:0;width:100%;color:var(--ink)}
.detail-heading{padding-top:36px;padding-bottom:56px;border-bottom:1px solid var(--line)}.breadcrumbs{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);margin-bottom:40px}.breadcrumbs a:hover{color:var(--blue);text-decoration:underline}.detail-heading h1{font-size:48px;max-width:980px;line-height:1.35}.detail-lead{max-width:880px;font-size:18px;line-height:1.9;margin-top:24px;color:var(--muted)}.detail-content{padding-top:12px;padding-bottom:64px}.content-section{padding:52px 0;border-bottom:1px solid var(--line)}.content-section h2{font-size:32px;max-width:980px;line-height:1.4;margin-bottom:18px}.answer-lead{font-size:18px;line-height:1.9;max-width:1000px;color:var(--ink)}.content-section>p:not(.answer-lead):not(.proposal-note):not(.customer-price-note){margin-top:16px;max-width:980px;color:var(--muted)}.content-list,.plain-list{padding-left:22px;margin:22px 0;color:var(--muted)}.content-list li,.plain-list li{padding:5px 0;line-height:1.85}.detail-photo{max-width:900px;margin-top:32px}.detail-photo img{height:420px;width:100%;object-fit:cover}.content-updated{margin-top:28px;font-size:13px;color:var(--muted)}
.table-wrap{max-width:100%;overflow-x:auto;margin:26px 0;border:1px solid var(--line);border-radius:10px}.content-table{width:100%;border-collapse:collapse;text-align:left;font-size:15px;line-height:1.8}.content-table caption{text-align:left;font-size:16px;font-weight:800;padding:18px;background:white;color:var(--ink)}.content-table thead{background:var(--pale);color:var(--blue-dark)}.content-table th,.content-table td{padding:16px 18px;border-top:1px solid var(--line);vertical-align:top}.content-table tbody th{font-weight:700;min-width:100px}.content-table td{color:var(--muted)}
.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.scenario-card{border:1px solid var(--line);border-radius:12px;padding:24px;background:#fff;min-width:0}.scenario-card h3{font-size:24px;margin:16px 0}.scenario-card>p:not(.proposal-tag){color:var(--muted);font-size:15px;line-height:1.85}.scenario-card .content-table{font-size:14px}.scenario-card .content-table th,.scenario-card .content-table td{padding:12px}.scenario-note{font-size:13px!important}.estimate-page-form>.quote-form{max-width:850px;margin-top:26px}.detail-v5 .faq-list{max-width:1000px}.not-found{padding-top:100px;padding-bottom:100px;min-height:60vh}.not-found h1{font-size:48px}.not-found p:not(.section-step){margin:24px 0;color:var(--muted)}
@media(max-width:1150px){.site-header .brand span{display:none}.desktop-nav{gap:18px}.price-plans.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-grid{grid-template-columns:1fr}.scenario-card{display:block}.scenario-card .table-wrap{max-width:660px}}
@media(max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{list-style:none;cursor:pointer;font-size:14px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:9px 12px;min-height:44px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu[open]>summary{background:var(--pale);color:var(--blue)}.mobile-menu>nav{position:absolute;z-index:20;right:20px;top:calc(100% - 6px);width:230px;padding:12px 20px;border:1px solid var(--line);border-radius:12px;background:white;box-shadow:0 12px 32px #102a4314}.mobile-menu nav a{display:block;padding:12px 0;font-size:15px;color:var(--ink)}.home-service-intro>.wrap{grid-template-columns:1fr;gap:20px}.price-plans{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-heading h1{font-size:40px}.footer-top{flex-direction:column;gap:22px}.site-header>.wrap{gap:16px}.header-actions{gap:10px}}
@media(max-width:767px){.preview-band{font-size:10px;padding:6px 16px}.site-header .brand img{width:90px;height:32px}.header-actions>.button{min-height:44px;font-size:13px;padding:9px 14px;width:auto}.header-actions>.button .material-symbols-rounded{display:none}.section-space{padding:52px 0}.home-service-intro{padding-top:44px}.home-service-intro h2{font-size:26px}.price-plans,.price-plans.is-compact{grid-template-columns:1fr;gap:16px}.price-card{padding:24px}.price-number{font-size:29px}.footer-links{grid-template-columns:1fr 1fr;gap:30px}.footer-top p{font-size:15px}.footer-legal{font-size:12px}.detail-heading{padding-top:26px;padding-bottom:36px}.breadcrumbs{font-size:12px;gap:9px;margin-bottom:28px}.detail-heading h1{font-size:32px}.detail-lead{font-size:16px;margin-top:18px}.content-section{padding:36px 0}.content-section h2{font-size:25px}.answer-lead{font-size:16px}.content-section>p{font-size:15px}.content-table{font-size:14px}.content-table th,.content-table td{padding:12px}.content-table tbody th{min-width:88px}.detail-photo img{height:260px}.detail-photo figcaption{display:block}.detail-photo .caption-role{display:block;margin-bottom:5px}.related-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.scenario-card h3{font-size:22px}.scenario-card{padding:20px}.result-price{font-size:20px}.not-found h1{font-size:36px}.care-list strong{font-size:17px}}

.table-scroll-hint{display:none}
@media(max-width:767px){.content-section>.table-scroll-hint{display:block;font-size:13px;color:var(--muted);margin-top:-12px}}

.city-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding-top:24px;font-size:14px}.city-links span{color:#c2d3e3;margin-right:8px}.city-links a{color:#fff;padding:8px 14px;border:1px solid #ffffff50;border-radius:8px}.city-links a[aria-current=location]{background:#ffffff18}

/* Photo credits stay inside the image, without a separate caption strip. */
.photo-unit{position:relative}.photo-unit img{display:block}
.photo-unit figcaption,.hero-caption{position:absolute;right:12px;bottom:12px;display:block;width:auto;max-width:none;margin:0;padding:4px 8px;border:0;border-radius:4px;background:rgb(16 42 67 / 60%);color:#fff;font-size:11px;font-weight:400;line-height:1.4;pointer-events:none}
.hero-caption{right:16px;bottom:16px;z-index:1}


/* District discovery: compact links, not a wall of homepage copy. */
.area-directory .city-links{padding:0;margin-bottom:32px}.area-directory .city-links span{color:var(--muted)}.area-directory .city-links a{color:var(--ink);border-color:var(--line)}.area-directory .city-links a[aria-current=location]{background:var(--pale);border-color:var(--blue);color:var(--blue)}.district-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:24px}.district-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px 16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.district-link:hover{border-color:var(--blue);background:var(--pale);color:var(--blue)}.district-link strong{font-size:16px}.district-link .material-symbols-rounded{font-size:18px;color:var(--blue)}.district-note{margin-top:18px;font-size:13px!important;color:var(--muted)}.area-next{padding:32px 0;border-top:1px solid var(--line)}.area-next h2{font-size:24px;margin-bottom:20px}.area-next .text-link{display:inline-flex;margin:16px 20px}.area-directory .city-links a{min-width:70px;text-align:center}@media(max-width:767px){.district-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.district-link{padding:16px 14px}.area-next .text-link{margin-left:0}.breadcrumbs{flex-wrap:wrap}}

.area-hub .detail-heading{padding-top:28px;padding-bottom:28px}.area-hub .detail-heading .breadcrumbs{margin-bottom:20px}.area-hub .detail-heading h1{font-size:40px}.area-hub .detail-lead{margin-top:16px}.area-hub .area-directory{padding-top:28px}.area-hub .area-directory .city-links{margin-bottom:24px}@media(max-width:767px){.area-hub .detail-heading h1{font-size:30px}}

.operator-footer .operator-info{margin-top:24px;color:#d8e5f2;font-size:14px;line-height:1.9;overflow-wrap:anywhere}.operator-info p+p{margin-top:3px}.operator-info a{color:#fff;text-decoration:underline;text-underline-offset:3px}.footer-navigation{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:28px;padding:24px 0;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}.footer-navigation a{color:#d8e5f2;font-size:14px}.footer-navigation a:hover{color:#fff;text-decoration:underline}.operator-footer .footer-legal{font-size:12px}@media(max-width:767px){.operator-footer .operator-info{font-size:13px}.footer-navigation{gap:12px 20px}.footer-navigation a{font-size:13px}}

/* Explicit four-step inquiry, shared visual language with the rest of the site. */
.inquiry-section{max-width:680px;margin:0 auto;padding:36px;border:1px solid var(--line);border-radius:16px;background:#fff}.inquiry-section>h2{font-size:28px;line-height:1.4;margin-bottom:12px}.inquiry-intro{font-size:15px;line-height:1.75;color:var(--muted)}.inquiry-form{margin-top:28px}.inquiry-progress ol{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0}.inquiry-progress li{border-top:4px solid var(--line);padding-top:10px;color:var(--muted);font-size:12px;line-height:1.5}.inquiry-progress li[aria-current=step],.inquiry-progress li[data-complete=true]{border-color:var(--blue);color:var(--blue)}.inquiry-progress li span{font-weight:800;margin-right:6px}.inquiry-step-count{margin:20px 0 16px;font-size:13px;color:var(--muted)}.inquiry-fields,.inquiry-step{border:0;padding:0;margin:0;min-width:0}.inquiry-step>legend,.inquiry-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.inquiry-step[hidden],.inquiry-success[hidden],.inquiry-form[hidden],.inquiry-error[hidden],.inquiry-actions button[hidden]{display:none!important}.inquiry-step h3{font-size:24px;line-height:1.5;margin-bottom:24px;outline-offset:6px}.inquiry-field{margin-top:20px}.inquiry-field>label{display:block;font-size:14px;font-weight:700;margin-bottom:9px;color:var(--ink)}.inquiry-field>label span{font-size:12px;font-weight:400;color:var(--muted);margin-left:5px}.inquiry-field input,.inquiry-field select,.inquiry-field textarea{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font:inherit;font-size:16px;line-height:1.5}.inquiry-field textarea{resize:vertical;min-height:112px}.inquiry-field :is(input,select,textarea):focus{outline:2px solid var(--blue);outline-offset:2px}.inquiry-field input::placeholder,.inquiry-field textarea::placeholder{color:#737f8b;font-size:14px}.inquiry-help{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.75}.inquiry-actions{display:flex;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.inquiry-actions #inquiry-next{flex:1;justify-content:center}.inquiry-actions .button:disabled{opacity:.5;cursor:wait}.inquiry-send-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:14px}.inquiry-review{border:1px solid var(--line);border-radius:10px;background:var(--pale);padding:20px;margin-bottom:24px}.inquiry-review h4{font-size:15px;margin:0 0 14px}.inquiry-review dl{display:grid;grid-template-columns:65px minmax(0,1fr);gap:10px;margin:0;font-size:14px;line-height:1.65}.inquiry-review dt{font-weight:700}.inquiry-review dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.inquiry-edit{display:inline-block;margin-top:16px;padding:0;background:none;border:0;color:var(--blue);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:13px;cursor:pointer}.inquiry-consents{padding:20px;background:var(--pale);border-radius:10px;margin-top:24px}.inquiry-consent{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;cursor:pointer}.inquiry-consent input{flex:0 0 auto;width:20px;height:20px;margin-top:3px;accent-color:var(--blue)}.inquiry-consent strong{display:block;font-size:14px;line-height:1.7}.inquiry-consent small{display:block;font-size:12px;line-height:1.75;color:var(--muted);margin-top:6px}.inquiry-consents>a{font-size:12px;color:var(--blue);text-decoration:underline;text-underline-offset:3px}.inquiry-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.inquiry-error{margin-top:24px;padding:16px;background:#fff1f1;border:1px solid #e7bcbc;border-radius:8px;color:#8b2626;font-size:14px;line-height:1.75;outline-offset:4px}.inquiry-success{margin-top:28px;padding:28px;background:var(--pale);border-radius:12px;outline-offset:4px}.inquiry-success>.material-symbols-rounded{font-size:36px;color:var(--blue)}.inquiry-success h3{font-size:24px;margin-top:16px}.inquiry-success p{font-size:14px;line-height:1.8;margin:14px 0;color:var(--muted);overflow-wrap:anywhere}.inquiry-success .button{margin-top:12px}.inquiry-noscript{padding:20px;margin-top:20px;background:var(--pale);line-height:1.8}.inquiry-noscript a{color:var(--blue);text-decoration:underline}
@media(max-width:767px){.inquiry-section{padding:24px 18px;border-radius:12px}.inquiry-section>h2{font-size:23px}.inquiry-intro{font-size:14px}.inquiry-progress li{font-size:11px}.inquiry-step h3{font-size:22px}.inquiry-actions .button{width:auto;min-height:50px;padding:12px 16px}.inquiry-review,.inquiry-consents{padding:16px}.inquiry-review dl{grid-template-columns:52px minmax(0,1fr);font-size:13px}.inquiry-consent strong{font-size:13px}.inquiry-success{padding:22px 18px}.inquiry-success h3{font-size:22px}}
