@charset "UTF-8";
/* Service pages extend the existing Labo theme without changing its shared styles. */
.service-page { font-size: 1rem; }
.service-page .content-width { width: min(72.5rem, calc(100% - 3rem)); }
.service-page .story-breadcrumb { display:flex; flex-wrap:wrap; gap:.6rem; padding-block:2rem; font-size:.875rem; }
.service-page .story-breadcrumb a { text-decoration:underline; text-underline-offset:.25em; }
.service-opening { padding-block:2.5rem 4.5rem; }
.service-opening h1 { font-size:clamp(2rem, 4.4vw, 3.4rem); line-height:1.6; letter-spacing:.04em; margin:1rem 0 1.75rem; max-width:22em; }
.service-intro { max-width:44rem; font-size:1.0625rem; line-height:2.1; }
.service-opening-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); align-items:center; gap:3.5rem; }
.service-art { padding:1.5rem; background:#f3f8f8; border-radius:3rem 1rem 3rem 1rem; }
.service-art img { width:100%; height:auto; }
.service-art figcaption { font-size:.875rem; color:var(--muted); margin-top:1rem; }
.service-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 2rem; margin-top:1.75rem; }
.service-action { display:inline-block; padding:.7rem 1.5rem; border:1px solid var(--blue-deep); border-radius:2rem; font-size:1rem; font-weight:600; }
.service-action:hover { background:#eaf3f5; }
.service-page a.inline-link { text-decoration:underline; text-underline-offset:.25em; }
.service-section { padding-block:4.5rem; border-top:1px solid var(--line); }
.service-section h2 { font-size:clamp(1.65rem,3vw,2.3rem); letter-spacing:.035em; line-height:1.7; margin-bottom:1.5rem; }
.service-section h3 { font-size:1.3rem; margin-bottom:.7rem; line-height:1.7; }
.service-section p, .service-section li, .service-section dd, .service-section dt { font-size:1rem; }
.service-section ul { padding-left:1.3em; margin:1rem 0; }
.service-section li+li { margin-top:.6rem; }
.service-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:3.5rem; }
.service-tint { background:#f3f8f8; }
.service-tint-green { background:#f5f7f3; }
.service-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:2rem; }
.service-card { padding:1.8rem; border:1px solid var(--line); background:white; border-radius:.25rem 2rem .25rem .25rem; }
.service-card .eyebrow { margin-bottom:.8rem; }
.service-steps { padding:0; margin:2rem 0; list-style:none; counter-reset:service-step; }
.service-steps>li { display:grid; grid-template-columns:3rem minmax(0,1fr); column-gap:1.5rem; padding:1.5rem 0; margin:0; border-top:1px solid var(--line); counter-increment:service-step; }
.service-steps>li::before { content:counter(service-step, decimal-leading-zero); color:var(--blue-deep); font:1.5rem/1.6 Georgia,serif; }
.service-note { padding:1.3rem 1.6rem; border-left:3px solid #94b4b1; background:#f4f8f7; }
.service-spec { margin:1.5rem 0; }
.service-spec>div { display:grid; grid-template-columns:8rem minmax(0,1fr); gap:1.5rem; padding:1rem 0; border-top:1px solid var(--line); }
.service-spec dt { color:var(--muted); }
.service-spec dd { margin:0; }
.service-price { font-size:1.65rem!important; font-family:var(--serif); margin-top:1rem; }
.service-faq details { padding:1.3rem 0; border-top:1px solid var(--line); }
.service-faq summary { cursor:pointer; font-size:1.0625rem; font-weight:600; padding-right:1rem; }
.service-faq details p { margin-top:1rem; }
.service-related { padding:1.8rem 0; margin-top:2rem; border-top:1px solid var(--line); }
.service-related h3 { font-size:1.25rem; margin-bottom:1rem; }
.service-related a { display:block; padding:.65rem 0; text-decoration:underline; text-underline-offset:.25em; font-size:1rem; }
.service-byline { max-width:46rem; font-size:.9375rem!important; color:var(--muted); margin-top:2rem; }
.service-entrances { margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--line); }
.service-entrances h3 { font-size:1.35rem; margin-bottom:.75rem; }
.service-entrances>p { font-size:1rem; }
.service-entrance-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 2rem; margin-top:1.25rem; }
.service-entrance-links a { border-bottom:1px solid #b7cbd0; padding:.9rem 0; font-size:1rem; text-decoration:underline; text-underline-offset:.3em; }
@media(max-width:900px) {
  .service-opening-grid, .service-split { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .service-art { max-width:28rem; }
  .service-cards { grid-template-columns:minmax(0,1fr); gap:1.2rem; }
}
@media(max-width:600px) {
  .service-opening { padding-block:1.25rem 3rem; }
  .service-section { padding-block:3rem; }
  .service-page .story-breadcrumb { padding-block:1.2rem; }
  .service-opening h1 { font-size:2rem; letter-spacing:.02em; }
  .service-spec>div { grid-template-columns:minmax(0,1fr); gap:.25rem; }
  .service-steps>li { grid-template-columns:2rem minmax(0,1fr); gap:1rem; }
  .service-entrance-links { grid-template-columns:minmax(0,1fr); }
  .service-action { width:100%; text-align:center; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
