/* SDS-specific refinement. Optical frame, film and canonical identity remain intact. */
.studio-film-controls { justify-content: flex-end; }
.studio-work-link { gap: 0; padding: 0 2px; border-bottom: 1px solid #b8bbc266; transition: border-color 180ms ease; }
.studio-work-link:hover { text-decoration: none; border-color: var(--color-ivory); }
.sds-section h2 { text-wrap: balance; }
.sds-projects { padding-block: 120px 140px; }
.sds-projects .portfolio-index { grid-template-columns: 1.12fr 1fr; gap: 72px 64px; align-items: start; }
.sds-projects .portfolio-card-media { padding: clamp(14px, 2.5vw, 36px); aspect-ratio: auto; border-radius: 5px; background: #e4e1dc; transition: background-color 400ms ease, box-shadow 400ms ease; }
.sds-projects .portfolio-card:nth-child(2) .portfolio-card-media { background: #dce4e4; }
.sds-projects .portfolio-card:nth-child(3) .portfolio-card-media { background: #d9dbe3; }
.sds-projects .portfolio-card-media img { height: auto; border-radius: 2px; box-shadow: 0 14px 28px -16px #0b0c0f80; }
.sds-projects .sds-project-featured { gap: 52px; padding-bottom: 0; border: 0; grid-template-columns: minmax(0, 1.7fr) minmax(0, .85fr); }
.sds-projects .portfolio-card:nth-child(3) { margin-top: 112px; }
.sds-projects .portfolio-card-copy { position: relative; padding-right: 12px; }
.sds-projects .portfolio-card b { gap: 14px; font-weight: 400; }
.sds-projects .portfolio-card b span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #25272c40; font-size: 18px; transition: background-color 180ms ease, color 180ms ease; }
.sds-projects .portfolio-card:hover b span, .sds-projects .portfolio-card:focus-visible b span { background: var(--color-black); color: var(--color-ivory); transform: none; }
.sds-projects .portfolio-card:focus-visible { outline: 3px solid var(--color-purple); outline-offset: 8px; }
.sds-services { border-radius: 6px; padding: 88px 64px; gap: 100px; }
.sds-services-intro { align-self: start; }
.sds-services-intro .sds-text-link { padding: 0 22px; border: 1px solid #b8bbc266; border-radius: 30px; font-weight: 400; margin-top: 12px; }
.sds-services-intro .sds-text-link span, .sds-about-copy .sds-text-link span, .sds-service-description .sds-text-link span { display: none; }
.sds-services-intro .sds-text-link:hover { background: var(--color-ivory); color: var(--color-black); text-decoration: none; }
.sds-service-options summary { transition: color 180ms ease, padding 250ms ease; }
.sds-service-options details[open] summary { color: var(--color-purple-on-dark); }
.sds-expander::after { transition: transform 220ms ease; }
.sds-service-description .sds-text-link { font-weight: 400; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #8586f4; }
.sds-about { grid-template-columns: minmax(0, .72fr) minmax(0, 1.1fr); gap: clamp(60px, 11vw, 170px); padding-block: 150px; }
.sds-portrait { padding: 0 0 30px 30px; position: relative; }
.sds-portrait::before { content: ''; position: absolute; inset: 48px 36px 0 0; border: 1px solid #25272c40; pointer-events: none; }
.sds-portrait img { display: block; position: relative; border-radius: 3px; }
.sds-about-copy h2 { font-size: clamp(38px, 4.5vw, 66px); }
.sds-about-copy .sds-text-link { border-radius: 28px; background: var(--color-black); color: var(--color-ivory); padding: 0 24px; font-weight: 400; transition: background-color 180ms ease; }
.sds-about-copy .sds-text-link:hover { background: var(--color-purple); text-decoration: none; }
.sds-process { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; padding-block: 20px 130px; }
.sds-process .sds-section-heading { display: block; align-self: start; }
.sds-process .sds-section-heading p { margin-top: 26px; }
.sds-process-list { display: block; }
.sds-process-list li { position: relative; display: grid; grid-template-columns: 1fr 1.15fr; gap: 32px; border: 0; border-top: 1px solid #25272c30; padding: 30px 0 36px; }
.sds-process-list li::before { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 1px; background: var(--color-purple); transform: scaleX(0); transform-origin: left; transition: transform 700ms cubic-bezier(.22,1,.36,1); }
.sds-process-list li.is-visible::before, .no-js .sds-process-list li::before { transform: scaleX(1); }
.sds-process-list h3 { margin: 0; font-size: 25px; }
.sds-process-list p { font-size: 15px; }
.sds-brief { border-radius: 0; border-top: 1px solid #25272c30; padding: 90px 24px; background: transparent; color: var(--color-black); grid-template-columns: 1.15fr 1fr; gap: 100px; }
.sds-brief-invite h2 { font-size: clamp(44px, 5.2vw, 76px); }
.sds-brief-invite .button { background: var(--color-purple); color: #fff; border-radius: 30px; font-weight: 400; }
.sds-brief-invite .button:hover { background: var(--color-black); }
.sds-brief-invite .button span { display: none; }
.sds-brief-invite .sds-brief-expectation { color: var(--color-graphite); font-size: 15px; }
.sds-faq { padding-top: 6px; }
.sds-faq details, .sds-faq details:last-child { border-color: #25272c30; }
.sds-faq summary:focus-visible { outline-color: var(--color-purple); }
.sds-faq details[open] summary { color: var(--color-purple); }
.sds-footer { border-radius: 6px; padding-top: 90px; margin-top: 24px; }
.sds-footer-top { grid-template-columns: .8fr 1.5fr .5fr; gap: 52px; }
.sds-footer h2 { font-size: clamp(38px, 4vw, 58px); letter-spacing: -.045em; }
.sds-footer-brand { max-width: 230px; }
.sds-footer-contact a { font-size: 17px; }
@media (hover:hover) and (pointer:fine) {
  .sds-projects .portfolio-card:hover .portfolio-card-media { box-shadow: 0 18px 32px -24px #0b0c0f60; }
  .sds-service-options summary:hover { padding-left: 8px; }
}
@media (min-width:1100px) and (min-height:800px) { .sds-services-intro, .sds-process .sds-section-heading { position: sticky; top: 140px; } }
@media (prefers-reduced-motion:no-preference) {
  .sds-service-options details[open] .sds-service-description, .sds-faq details[open] p { animation: sds-disclose 260ms ease both; }
  @keyframes sds-disclose { from { opacity: .3; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
@media (max-width:1050px) {
  .sds-projects .portfolio-index { gap: 56px 32px; }
  .sds-projects .sds-project-featured { gap: 28px; }
  .sds-services { padding: 64px 36px; gap: 40px; }
  .sds-about { gap: 56px; padding-block: 100px; }
  .sds-process { grid-template-columns: 1fr; gap: 12px; }
  .sds-process .sds-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
  .sds-process .sds-section-heading p { margin: 0; }
  .sds-process-list li { grid-template-columns: 1fr 1.2fr; }
  .sds-brief { gap: 40px; }
  .sds-footer-top { grid-template-columns: .8fr 1.2fr; gap: 40px; }
}
@media (max-width:760px) {
  .sds-projects { padding-block: 72px; }
  .sds-projects .portfolio-index { grid-template-columns: minmax(0,1fr); gap: 48px; }
  .sds-projects .portfolio-card:nth-child(3) { margin-top: 0; }
  .sds-projects .sds-project-featured { display: block; }
  .sds-projects .portfolio-card-media { padding: 16px; }
  .sds-services { padding: 44px 24px; gap: 30px; }
  .sds-about { grid-template-columns: 1fr; padding-block: 80px; gap: 40px; }
  .sds-portrait { max-width: 360px; padding: 0 0 22px 22px; margin-right: 24px; }
  .sds-process { padding-block: 0 68px; gap: 0; }
  .sds-process .sds-section-heading { display: block; }
  .sds-process .sds-section-heading p { margin-top: 22px; }
  .sds-process-list li { grid-template-columns: 1fr; gap: 12px; padding-block: 24px; }
  .sds-process-list h3 { font-size: 24px; }
  .sds-brief { grid-template-columns: 1fr; padding: 56px 16px; gap: 48px; }
  .sds-brief-invite h2 { font-size: clamp(40px, 10vw, 60px); }
  .sds-footer { padding-top: 48px; }
  .sds-footer-top { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .sds-footer-contact a { font-size: 15px; }
}
@media (prefers-reduced-motion:reduce) { .sds-process-list li::before { transform: none; } }
/* Homepage navigation: direct links on desktop, a non-modal disclosure on mobile. */
.sds-home-nav .menu-toggle{display:none}
.sds-home-nav .menu-panel{inset:auto 28px auto auto;top:102px;width:min(360px,calc(100% - 56px));max-height:calc(100svh - 122px);overflow:auto;padding:12px 24px;background:var(--color-ivory);color:var(--color-black);border:1px solid rgba(11,12,15,.14);border-radius:20px;box-shadow:0 14px 32px rgba(11,12,15,.14);align-content:start}
.sds-home-nav .menu-panel nav a{display:block;padding:14px 0;font:500 20px/1.3 var(--font-sans);border-color:rgba(11,12,15,.13)}
.sds-home-nav .menu-panel nav a:last-child{border-bottom:0}
.sds-home-nav .menu-panel nav a:hover{color:var(--color-purple)}
.sds-home-nav .menu-panel nav a:focus-visible{outline-offset:0}
@media(max-width:1050px){.sds-home-nav .menu-toggle{display:grid}}
@media(max-width:700px){.sds-home-nav .menu-panel{top:86px;right:17px;width:calc(100% - 34px);max-height:calc(100svh - 102px)}}
.no-js .sds-home-nav .menu-toggle{display:none}
@media(max-width:1050px){.no-js .sds-home-nav .floating-nav{border-radius:24px;grid-template-columns:1fr auto}.no-js .sds-home-nav .nav-links{display:flex;flex-wrap:wrap;grid-row:2;grid-column:1/-1;padding:8px;gap:14px}.no-js .sds-home-nav .nav-actions{grid-column:2}}
