/* Specialty, studio and questions sections share the existing design system. */
.specialties-section { padding-top:24px; }
.specialty-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.specialty-card { display:flex; flex-direction:column; align-items:flex-start; padding:32px; background:#101010; border:1px solid var(--line); }
.specialty-card .eyebrow { font-size:.65rem; }
.specialty-card h3 { font-size:2.2rem; line-height:1.08; }
.specialty-card p:not(.eyebrow) { color:#b6b5af; }
.specialty-card .text-link { margin-top:auto; font-size:.76rem; }
.location-section { padding-top:24px; padding-bottom:24px; }
.location-panel { display:grid; grid-template-columns:1fr 1fr; gap:72px; padding:64px; border:1px solid var(--line); background:#101010; }
.location-copy > p { color:#b6b5af; margin-top:0; }
.location-copy address { font-style:normal; border-left:2px solid var(--red-hot); padding-left:18px; margin:26px 0; }
.location-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
.location-links a { overflow-wrap:anywhere; }
.faq-section { padding-bottom:24px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); padding:24px 0; }
.faq-list summary { cursor:pointer; color:var(--cream); font-size:1.05rem; font-weight:600; padding-right:16px; }
.faq-list details > p { max-width:850px; color:#b6b5af; margin-bottom:0; }
.faq-list details[open] summary { color:var(--white); }
.service-hero { min-height:0; padding:68px; align-items:start; }
.service-hero h1 { font-size:clamp(3.3rem,5.5vw,5.8rem); }
.service-hero .hero-lede { margin-top:24px; }
.service-hero-visual { margin:0; }
.service-hero-visual img { width:100%; max-height:630px; object-fit:cover; border:1px solid var(--line); }
.service-hero-visual figcaption { color:var(--silver); font-size:.78rem; margin-top:12px; }
.service-hero .eyebrow { line-height:1.6; }
.service-story { display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; }
.service-story p { color:#b6b5af; margin-top:0; }
.service-story h2 { font-size:clamp(2.5rem,4vw,4rem); }
.service-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-gallery figure { margin:0; }
.service-gallery .portfolio-item { display:block; }
.service-gallery img { width:100%; height:400px; object-fit:cover; }
.service-gallery figcaption { font-size:.83rem; color:#b6b5af; margin-top:14px; }
.service-related { display:flex; flex-wrap:wrap; gap:18px 30px; padding-top:0; }
:focus-visible { outline:2px solid var(--cream); outline-offset:5px; }
@media (max-width:1000px) {
  .specialty-grid { grid-template-columns:1fr; }
  .location-panel, .service-story { grid-template-columns:1fr; gap:30px; }
  .service-hero { padding:48px; }
  .service-gallery img { height:320px; }
}
@media (max-width:620px) {
  .specialties-section { padding-top:16px; }
  .specialty-card { padding:28px; }
  .location-panel { padding:36px 28px; }
  .location-links { flex-direction:column; align-items:flex-start; }
  .service-hero { padding:46px 24px 32px; gap:32px; }
  .service-hero h1 { font-size:clamp(2.7rem,12vw,3.8rem); }
  .service-gallery { grid-template-columns:1fr; }
  .service-gallery img { height:auto; max-height:620px; object-fit:contain; }
  .service-related { flex-direction:column; align-items:flex-start; }
  .specialty-card h3 { font-size:2rem; }
}
