/* Homepage only. The approved hero and shared case pages are deliberately untouched. */
.sds-section { max-width: 1280px; margin: 0 auto; padding: 104px 24px; scroll-margin-top: 112px; }
.sds-section h2 { margin: 0; font: 400 clamp(38px, 4.4vw, 64px)/1.06 var(--font-sans); letter-spacing: -.045em; }
.sds-section p { line-height: 1.65; }
.sds-section-heading { display: grid; grid-template-columns: 1.2fr 1fr; gap: 72px; align-items: end; margin-bottom: 48px; }
.sds-section-heading > p { max-width: 420px; margin: 0; color: var(--color-graphite); font-size: 17px; }
.sds-text-link { display: inline-flex; align-items: center; gap: 28px; min-height: 48px; text-decoration: none; font-size: 15px; font-weight: 700; }
.sds-text-link:hover { text-decoration: underline; text-underline-offset: 6px; }
.sds-text-link > span { color: var(--color-purple); font-size: 21px; }

.sds-projects .portfolio-index { display: grid; grid-template-columns: 1fr 1fr; gap: 48px 32px; }
.sds-projects .portfolio-card { grid-column: auto; display: block; min-height: 0; border-radius: 0; overflow: visible; background: transparent; color: var(--color-black); transform: none; box-shadow: none; }
.sds-projects .portfolio-card:hover { transform: none; box-shadow: none; }
.sds-projects .portfolio-card-media { border-radius: 12px; background: var(--color-graphite); overflow: hidden; aspect-ratio: 8 / 5; }
.sds-projects .portfolio-card-media img { display: block; width: 100%; height: 100%; aspect-ratio: 8 / 5; object-fit: contain; transform: none; filter: none; transition: none; }
.sds-projects .portfolio-card:hover .portfolio-card-media img { transform: none; }
.sds-projects .portfolio-card-copy { padding: 25px 0 0; }
.sds-projects .portfolio-card-copy > span { color: var(--color-graphite); opacity: 1; font: 400 13px/1.5 var(--font-sans); letter-spacing: 0; text-transform: none; }
.sds-projects .portfolio-card h3 { margin: 14px 0 12px; font: 400 clamp(34px, 3.3vw, 48px)/1.05 var(--font-editorial); letter-spacing: -.025em; }
.sds-projects .portfolio-card p { margin: 0; max-width: 440px; color: var(--color-graphite); opacity: 1; font-size: 16px; }
.sds-projects .portfolio-card b { display: inline-flex; align-items: center; gap: 32px; margin-top: 24px; font: 700 14px/1.4 var(--font-sans); letter-spacing: 0; text-transform: none; }
.sds-projects .portfolio-card b span { color: var(--color-purple); font-size: 22px; transition: transform 180ms ease; }
.sds-projects .portfolio-card:hover b span { transform: translate(3px, -3px); }
.sds-projects .sds-project-featured { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1.8fr) minmax(0, .8fr); align-items: center; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid #25272c26; }
.sds-projects .sds-project-featured .portfolio-card-copy { padding: 0; }
.sds-projects .sds-project-featured h3 { font-size: clamp(40px, 4.1vw, 60px); }

.sds-services { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; background: var(--color-black); color: var(--color-ivory); border-radius: 24px; padding: 80px 60px; }
.sds-services h2 { font-size: clamp(36px, 3.7vw, 54px); }
.sds-services-intro > p { max-width: 340px; margin: 26px 0; color: var(--color-mist); font-size: 16px; }
.sds-services .sds-text-link > span { color: var(--color-purple-on-dark); }
.sds-service-options { min-width: 0; }
.sds-service-options details { border-bottom: 1px solid #f4f1ea30; }
.sds-service-options details:first-child { border-top: 1px solid #f4f1ea30; }
.sds-service-options summary, .sds-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; }
.sds-service-options summary::-webkit-details-marker, .sds-faq summary::-webkit-details-marker { display: none; }
.sds-service-options summary { min-height: 88px; padding: 20px 0; font-size: clamp(21px, 2.1vw, 29px); letter-spacing: -.025em; }
.sds-expander { flex: 0 0 18px; width: 18px; height: 18px; position: relative; }
.sds-expander::before, .sds-expander::after { content: ''; position: absolute; background: currentColor; top: 8px; left: 0; height: 1.5px; width: 18px; }
.sds-expander::after { transform: rotate(90deg); }
details[open] > summary .sds-expander::after { transform: none; }
.sds-service-options summary:hover { color: var(--color-purple-on-dark); }
.sds-service-description { padding: 0 30px 30px 0; color: var(--color-mist); font-size: 16px; }
.sds-service-description p { margin: 0 0 16px; }
.sds-service-description ul { margin: 18px 0 24px; padding-left: 19px; }
.sds-service-description li { margin-bottom: 7px; }
.sds-service-description .sds-text-link { color: var(--color-ivory); }
.sds-section summary:focus-visible { outline: 3px solid var(--color-purple-on-dark); outline-offset: 5px; border-radius: 2px; }

.sds-about { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 110px; align-items: center; padding-top: 120px; }
.sds-portrait { margin: 0; }
.sds-portrait img { width: 100%; height: auto; max-height: 570px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; }
.sds-about-copy { max-width: 560px; }
.sds-about-copy h2 { font-size: clamp(38px, 4.1vw, 60px); }
.sds-about-copy .sds-author-name { margin: 32px 0 16px; font: 400 36px/1.1 var(--font-editorial); }
.sds-about-copy > p:not(.sds-author-name) { margin: 0 0 18px; max-width: 490px; font-size: 17px; color: var(--color-graphite); }
.sds-about-copy .sds-text-link { margin-top: 10px; }

.sds-process { padding-top: 20px; }
.sds-process-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.sds-process-list li { border-top: 2px solid var(--color-purple); padding-top: 24px; }
.sds-process-list h3 { margin: 0 0 16px; font: 400 25px/1.2 var(--font-sans); letter-spacing: -.025em; }
.sds-process-list p { margin: 0; color: var(--color-graphite); font-size: 15px; }

.sds-brief { display: grid; grid-template-columns: 1fr 1fr; gap: 84px; border-radius: 24px; padding: 80px 60px; background: var(--color-purple); color: #fff; }
.sds-brief-invite h2 { font-size: clamp(40px, 4.2vw, 60px); }
.sds-brief-invite > p { max-width: 440px; margin: 26px 0; font-size: 17px; }
.sds-brief-invite .button { margin-top: 6px; padding: 16px 24px; height: auto; min-height: 54px; }
.sds-brief-invite .sds-brief-expectation { max-width: 380px; font-size: 14px; margin-top: 24px; }
.sds-faq h3 { font: 400 24px/1.2 var(--font-sans); margin: 0 0 22px; }
.sds-faq details { border-top: 1px solid #ffffff60; }
.sds-faq details:last-child { border-bottom: 1px solid #ffffff60; }
.sds-faq summary { font-size: 17px; min-height: 72px; padding: 18px 0; }
.sds-faq p { font-size: 15px; margin: 0; padding: 0 24px 24px 0; }
.sds-faq a { text-underline-offset: 3px; }
.sds-faq summary:focus-visible { outline-color: var(--color-ivory); }

.sds-footer { background: var(--color-black); color: var(--color-ivory); border-radius: 24px; margin: 80px 16px 16px; padding: 72px max(40px, calc((100vw - 1232px) / 2)) 28px; scroll-margin-top: 112px; }
.sds-footer-top { display: grid; grid-template-columns: 1fr 1.3fr .6fr; align-items: start; gap: 70px; }
.sds-footer-brand { display: block; max-width: 270px; }
.sds-footer-brand img { width: 100%; height: auto; }
.sds-footer h2 { margin: 0 0 24px; font: 400 30px/1.1 var(--font-sans); letter-spacing: -.03em; }
.sds-footer-contact a, .sds-footer-nav a { display: block; padding-block: 7px; min-height: 38px; text-decoration: none; font-size: 15px; }
.sds-footer-contact a { overflow-wrap: anywhere; }
.sds-footer a:hover { color: var(--color-purple-on-dark); }
.sds-footer-nav { margin-top: -7px; }
.sds-footer-bottom { border-top: 1px solid #f4f1ea30; margin-top: 56px; padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; color: var(--color-mist); font-size: 12px; }
.sds-footer-bottom a { text-decoration: none; }
@media(max-width:1050px) {
  .sds-section { padding-inline: 28px; }
  .sds-section-heading { gap: 40px; }
  .sds-services, .sds-brief { gap: 40px; padding: 64px 36px; }
  .sds-about { gap: 52px; }
  .sds-process-list { grid-template-columns: 1fr 1fr; gap: 32px; }
  .sds-projects .sds-project-featured { grid-template-columns: 1.5fr 1fr; gap: 28px; }
  .sds-footer-top { grid-template-columns: .9fr 1.2fr; gap: 40px; }
  .sds-footer-nav { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 24px; }
}
@media(max-width:760px) {
  .sds-section { padding: 68px 16px; scroll-margin-top: 94px; }
  .sds-section-heading { display: block; margin-bottom: 32px; }
  .sds-section-heading > p { margin-top: 22px; font-size: 16px; }
  .sds-section h2 { font-size: clamp(34px, 8.8vw, 48px); }
  .sds-projects .portfolio-index { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .sds-projects .sds-project-featured { display: block; padding: 0; border: 0; grid-column: auto; }
  .sds-projects .portfolio-card-copy, .sds-projects .sds-project-featured .portfolio-card-copy { padding-top: 20px; }
  .sds-projects .portfolio-card h3, .sds-projects .sds-project-featured h3 { font-size: 38px; }
  .sds-projects .portfolio-card b { margin-top: 18px; min-height: 36px; }
  .sds-projects .portfolio-card p { font-size: 15px; }
  .sds-services, .sds-brief { grid-template-columns: minmax(0, 1fr); border-radius: 20px; padding: 42px 24px; gap: 30px; }
  .sds-services-intro > p { margin-block: 20px 12px; }
  .sds-service-options summary { font-size: 23px; min-height: 76px; }
  .sds-service-description { padding-right: 0; font-size: 15px; }
  .sds-about { grid-template-columns: 1fr; gap: 36px; }
  .sds-portrait { max-width: 420px; }
  .sds-about-copy > p:not(.sds-author-name) { font-size: 16px; }
  .sds-about-copy .sds-author-name { margin-top: 24px; }
  .sds-process { padding-top: 0; }
  .sds-process-list { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .sds-process-list li { padding-top: 18px; }
  .sds-process-list h3 { font-size: 23px; margin-bottom: 10px; }
  .sds-brief { gap: 36px; }
  .sds-brief-invite > p { margin-block: 22px; font-size: 16px; }
  .sds-brief-invite .button { padding-inline: 15px; font-size: 13px; }
  .sds-footer { padding: 44px 24px 24px; margin: 56px 10px 10px; border-radius: 20px; }
  .sds-footer-top { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .sds-footer-brand { max-width: 245px; }
  .sds-footer-nav { grid-column: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; }
  .sds-footer-bottom { margin-top: 36px; flex-direction: column; gap: 10px; }
}
