/* Studio uses Pipeline's shared editorial grid, type scale and spacing. */
.studio-column { display:flex; flex-direction:column; justify-content:space-between; gap:64px; min-width:0; }
.studio-column h2 { max-width:17ch; }
.studio-support { max-width:480px; }
.studio-support>p+p { margin-top:16px; }
.studio-support>.button { margin-top:24px; }
.studio-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.studio-editorial-hero { padding-top:clamp(40px,4.5vw,80px); padding-bottom:72px; background:var(--ink); color:var(--paper); --muted:#c5c7bf; --editorial-line:rgba(242,241,235,.27); }
.studio-editorial-hero .button--line { color:var(--paper); border-color:var(--editorial-line); }
.studio-editorial-hero .button--line:hover { background:var(--paper); color:var(--ink); }
.studio-hero-copy h1 { max-width:13ch; }
.studio-hero-spread img { object-position:50% 42%; }
.studio-introduction { margin-bottom:64px; align-items:start; }
.studio-introduction h2 { max-width:17ch; }
.studio-introduction .prose { max-width:500px; gap:18px; }
.studio-section-intro { margin-bottom:64px; align-items:start; }
.studio-section-intro>p { max-width:460px; font-size:14px; }

/* Keep native service drawers; each open spread follows the same central axis. */
.studio-page .service-details { gap:0; margin:0; }
.studio-page .service-disclosure { border:0; border-top:1px solid var(--editorial-line); border-radius:var(--radius); }
.studio-page .service-disclosure:last-child { border-bottom:1px solid var(--editorial-line); }
.studio-page .service-details summary { display:grid; grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 24px; gap:var(--editorial-gap); padding:28px; }
.studio-page .service-details summary>h3 { font-size:24px; font-weight:400; grid-column:2; grid-row:1; }
.studio-page .service-details summary>.service-number { grid-column:1; grid-row:1; }
.studio-page .service-details summary>.service-short { grid-column:3; grid-row:1; max-width:none; font-size:13px; }
.studio-page .service-details summary>svg { grid-column:4; grid-row:1; width:24px; height:24px; padding:3px; border:0; border-radius:var(--radius); }
.studio-page .service-card { grid-template-columns:var(--editorial-grid); gap:var(--editorial-gap); padding:28px 0; margin:0 28px; }
.studio-page .service-card>* { grid-column:span 6; min-width:0; }
.studio-page .service-card-copy { padding:0; gap:48px; }
.studio-page .service-card-lead { font-family:var(--font-site); font-size:clamp(32px,3vw,48px); font-weight:400; line-height:1.08; letter-spacing:-.04em; margin:0; max-width:18ch; }
.studio-service-support { margin-top:auto; max-width:460px; width:100%; }
.studio-service-support>p { font-size:14px; line-height:1.6; }
.studio-page .service-card-copy ul { margin-block:22px; }
.studio-page .service-card-copy li { font-size:13px; }
.studio-page .service-card-link { font-size:13px; font-weight:400; max-width:none; }
.studio-page .service-artifact { justify-content:center; min-height:clamp(400px,34vw,600px); }
.studio-page .service-artifact img,.studio-page .camera-preview,.studio-page .web-preview { border-radius:var(--radius); box-shadow:none; }
.studio-page .service-artifact>img { object-fit:contain; }
.studio-page .case-artifact>img { object-fit:contain; aspect-ratio:1; background:var(--ink); }
.studio-page .service-artifact .camera-preview { aspect-ratio:1; }
.studio-page .service-artifact .camera-preview>img { aspect-ratio:1; }
.studio-page .service-artifact .camera-frame { display:none; }
.studio-page .service-artifact figcaption { font-size:11px; }
.studio-page .service-disclosure:nth-child(odd) .service-artifact { grid-column:1/7; grid-row:1; }
.studio-page .service-disclosure:nth-child(odd) .service-card-copy { grid-column:7/-1; grid-row:1; }

.studio-principle { background:var(--ink); color:var(--paper); --muted:#c5c7bf; --editorial-line:rgba(242,241,235,.27); }
.studio-principle-spread { min-height:clamp(520px,45vw,720px); }
.studio-principle .studio-support p { color:var(--muted); }
.studio-principle .studio-column { gap:40px; }
.studio-principle .studio-column h2 { max-width:19ch; }
.studio-reasons article { padding-block:24px; border-top:1px solid var(--editorial-line); }
.studio-reasons article:last-child { border-bottom:1px solid var(--editorial-line); }
.studio-reasons h3 { font-size:22px; line-height:1.2; letter-spacing:-.025em; max-width:30ch; }
.studio-reasons p { margin-top:12px; max-width:52ch; color:var(--muted); }
.studio-principle .studio-photo-frame { min-height:640px; }
.studio-principle .studio-photo img { object-position:100% 50%; }
.studio-method { background:var(--concrete); }
.studio-method-steps { margin:0; padding:0; list-style:none; border-top:1px solid var(--editorial-line); }
.studio-method-steps li { display:grid; grid-template-columns:28px minmax(0,1fr); gap:16px; padding:20px 0; border-bottom:1px solid var(--editorial-line); }
.studio-method-steps li>span { font-size:11px; padding-top:4px; color:var(--muted); }
.studio-method-steps h3 { font-size:22px; line-height:1.2; letter-spacing:-.025em; }
.studio-method-steps p { font-size:13px; line-height:1.5; margin-top:7px; color:var(--muted); }
.studio-audit { background:var(--concrete); }
.studio-audit .studio-column { min-height:720px; }
.studio-audit .studio-support { max-width:520px; }
.studio-audit .deliverables { margin-block:32px; }
.studio-audit .deliverables h3 { font-size:18px; }
.studio-audit .deliverables p,.studio-audit .studio-note { font-size:14px; }
.studio-audit .lead-form { align-self:end; background:none; border:0; border-radius:var(--radius); padding:0; box-shadow:none; }
.studio-audit .form-heading { border-color:var(--editorial-line); padding-bottom:24px; margin-bottom:36px; }
.studio-audit .field label { font-size:13px; }
.studio-audit .field input,.studio-audit .field textarea { font-size:16px; border:0; border-bottom:1px solid var(--ink); border-radius:var(--radius); background:var(--paper); }
.studio-audit .field input:focus,.studio-audit .field textarea:focus { outline:2px solid var(--ink); outline-offset:3px; }
.studio-audit .form-grid { gap:28px 24px; }
.studio-audit .lead-form>.button { margin-top:24px; }
.studio-page .form-microcopy,.studio-page .form-privacy { font-size:12px; }
.studio-page .faq-section { min-height:clamp(460px,46vw,680px); display:grid; grid-template-columns:var(--editorial-grid); gap:var(--editorial-gap); padding-block:var(--editorial-space); }
.studio-page .faq-section>* { grid-column:span 6; min-width:0; }
.studio-page .faq-section h2 { max-width:12ch; font-size:clamp(38px,3.6vw,58px); }
.studio-page .faq-section .eyebrow { font-size:11px; }
.studio-page .faq-section .eyebrow::before { display:none; }
.studio-page .faq-list { align-self:end; }
.studio-page .faq-list summary { font-size:19px; padding-block:28px; }
.studio-final { background:var(--orange); min-height:75svh; display:flex; }
.studio-final>.wrap { display:flex; flex-direction:column; justify-content:space-between; gap:72px; }
.studio-final-bottom { margin-top:auto; padding-top:24px; border-top:1px solid var(--editorial-line); }
.studio-final-bottom>p { max-width:420px; }
.studio-final-bottom>.button { justify-self:end; grid-column:7/-1; }

@media(max-width:1000px) and (min-width:801px) {
  .studio-page h1 { font-size:48px; }
  .studio-page h2 { font-size:40px; }
  .studio-page .service-details summary { padding-inline:20px; gap:16px; }
  .studio-page .service-card { margin-inline:20px; }
  .studio-page .service-details summary>h3 { font-size:22px; }
}
@media(max-width:800px) {
  .studio-page { --editorial-grid:repeat(4,minmax(0,1fr)); --editorial-gap:28px; --editorial-space:72px; }
  .studio-grid>*,.studio-page .faq-section>*,.studio-final-bottom>.button { grid-column:1/-1; }
  .studio-page h1 { font-size:clamp(44px,7.2vw,58px); }
  .studio-page h2 { font-size:clamp(36px,6vw,48px); }
  .studio-editorial-hero { padding-top:36px; padding-bottom:32px; }
  .studio-hero-copy { display:contents; }
  .studio-hero-copy h1 { grid-row:1; grid-column:1/-1; }
  .studio-hero-spread>.studio-photo { grid-row:2; }
  .studio-hero-copy>.studio-support { grid-row:3; grid-column:1/-1; max-width:600px; padding-bottom:32px; }
  .studio-photo-frame { min-height:0; aspect-ratio:1; }
  .studio-column { gap:40px; }
  .studio-introduction { margin-bottom:48px; gap:32px; }
  .studio-principle .studio-photo-frame { min-height:0; aspect-ratio:4/5; }
  .studio-section-intro { min-height:0; gap:32px; margin-bottom:40px; }
  .studio-page .service-details summary { grid-template-columns:22px minmax(0,1fr) 24px; gap:8px 12px; padding:24px 20px; }
  .studio-page .service-details summary>.service-short { grid-column:2; grid-row:2; }
  .studio-page .service-details summary>svg { grid-column:3; grid-row:1/3; }
  .studio-page .service-card { margin-inline:20px; padding-block:24px; }
  .studio-page .service-card>*,.studio-page .service-disclosure:nth-child(odd) .service-card-copy,.studio-page .service-disclosure:nth-child(odd) .service-artifact { grid-column:1/-1; grid-row:auto; }
  .studio-page .service-card-copy { gap:28px; }
  .studio-page .service-card-lead { font-size:clamp(30px,5vw,40px); }
  .studio-page .service-artifact { min-height:0; }
  .studio-page .service-artifact .camera-preview,.studio-page .case-artifact>img { aspect-ratio:4/3; }
  .studio-principle-spread { min-height:0; gap:48px; }
  .studio-method .studio-photo { grid-row:2; }
  .studio-audit .studio-column { min-height:0; }
  .studio-audit .studio-grid { gap:56px; }
  .studio-page .faq-section { min-height:0; gap:40px; }
  .studio-final { min-height:0; }
  .studio-final>.wrap { gap:48px; }
  .studio-final-bottom>.button { justify-self:start; }
}
@media(max-width:480px) {
  .studio-page { --editorial-gap:24px; --editorial-space:64px; }
  .studio-page h1 { font-size:clamp(40px,10.8vw,48px); }
  .studio-page h2 { font-size:clamp(32px,8.5vw,40px); }
  .studio-page .button { font-size:12px; gap:16px; max-width:100%; }
  .studio-page .service-details summary>h3 { font-size:21px; }
  .studio-page .service-card-lead { font-size:30px; }
  .studio-page .service-card-copy li { font-size:13px; }
  .studio-page .faq-section h2 { font-size:36px; }
  .studio-page .faq-list summary { font-size:18px; }
}
