/* Production sizing layer. Keep the supplied design export unchanged. */
html[data-theme="dark"]{--canvas:#000!important}
html[data-theme="dark"] .lw-home-process > section{background:var(--canvas)!important}
.lw-deck-hint{position:absolute;right:0;top:-28px;z-index:8;pointer-events:none;color:#ffb27a;animation:lwRise 500ms ease-out 1s both}
.lw-deck-hint span{display:block;padding:9px 15px;border:1px solid rgba(242,118,46,.5);border-radius:99px;background:#241b15;font-size:13px;font-weight:500;white-space:nowrap;transform:rotate(5deg)}
.lw-deck-hint svg{display:block;width:84px;height:62px;margin-left:auto;margin-right:-8px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:767px){.lw-deck-hint{top:-18px;right:12px}.lw-deck-hint span{font-size:12px;padding:7px 12px}}
@media(prefers-reduced-motion:reduce){.lw-deck-hint{animation:none}}
@media (min-width: 1280px) {
  :root {
    /* Grow smoothly from laptop to desktop; cap reading and layout widths. */
    font-size: clamp(1rem, calc(.5rem + .625vw), 1.25rem);
    --content-max: min(1760px, calc(100% - 48px));
    --section-pad: 96px;
    --gutter: 24px;
  }

  /* The export adds bottom padding before the next section's own padding. */
  .lw-hero > div:first-child { padding-bottom: 32px !important; }
  .lw-hero { gap: clamp(48px, 4vw, 72px) !important; }
  .lw-hero a { font-size: 1rem !important; }
  .lw-ss-inner li { font-size: 1rem !important; }
  /* Start the sticky service stage near the hero, not centered in a tall screen. */
  .lw-service-stage { align-content: center !important; }
}

/* Homepage rhythm: one viewport-sized presentation, allowed to grow with content. */
@media (min-width: 1024px) {
  .lw-home-hero {
    min-height: 100svh;
    box-sizing: border-box;
    padding: calc(68px + clamp(24px, 3vh, 40px)) 0 clamp(32px, 4vh, 56px) !important;
    display: flex;
    align-items: center;
  }
  .lw-home-hero > div:last-child { width: 100%; }
  .lw-home-hero .lw-hero > div:first-child { padding-bottom: 0 !important; }
  .lw-middle-field { --section-pad: clamp(32px, 4vh, 56px); }
  .lw-middle-field > section:not(#services):not(.lw-home-process) {
    min-height: calc(90svh - 68px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .lw-middle-field > section > div { width: 100%; box-sizing: border-box; }
  .lw-home-blog { padding: var(--section-pad) 0; }
  .lw-home-blog > div { padding-top: 0 !important; padding-bottom: 0 !important; }
  /* FAQ is intentionally content-sized; it leads directly into the closing CTA. */
  .lw-middle-field > section:last-child { min-height: 0 !important; }
  .lw-work-cta { height: auto !important; }
  .lw-work-cta > div { position: static !important; max-width: 420px !important; }
}
@media (max-width: 1023px), (prefers-reduced-motion: reduce) {
  .lw-work-cta { height: auto !important; }
  .lw-work-cta > div { position: static !important; transform: none !important; }
}
/* Supporting facts use open layouts; prominent proof and document cards remain. */
.lw-expertise .lw-expertise-grid { gap: 32px !important; margin-top: 32px !important; }
.lw-expertise .lw-proof-cards { gap: 0 !important; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.lw-expertise .lw-proof-cards > div + div { border-left: 1px solid var(--line); }
.lw-open-credentials { border-left: 1px solid var(--line); }
.lw-open-item { border-top: 1px solid var(--line); padding: 24px 0; }
.lw-open-item h3 { margin: 0; font-family: var(--font-display); font-size: 20px; font-weight: 600; line-height: 1.3; }
.lw-open-item p { margin: 10px 0 0; color: var(--ink-muted); font-size: 16px; line-height: 1.6; max-width: 65ch; }
.lw-ar-signs { column-gap: 32px !important; row-gap: 0 !important; }
.lw-open-deliverables { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 48px !important; row-gap: 0 !important; }
@media (max-width: 1023px) {
  .lw-open-credentials { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 767px) {
  .lw-open-deliverables { grid-template-columns: 1fr !important; }
  .lw-expertise .lw-proof-cards > div + div { border-left: 0; border-top: 1px solid var(--line); }
}
.lw-service-overview { padding: 26px; display: flex; flex-direction: column; text-align: left; }
.lw-service-overview-heading { display: flex; align-items: center; gap: 18px; font-family: var(--font-display); font-size: 21px; font-weight: 600; line-height: 1.15; }
.lw-service-overview-heading svg { flex: none; }
.lw-service-outcome { margin: 22px 0 16px; font-family: var(--font-display); font-size: 30px; font-weight: 500; line-height: 1.15; letter-spacing: -.025em; color: var(--ink); }
.lw-service-overview-footer { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--accent); }
@media (max-width: 767px) {
  .lw-service-overview { padding: 24px; }
  .lw-service-overview-heading { gap: 12px; font-size: 19px; }
  .lw-service-overview-heading svg { width: 38px; height: 38px; }
  .lw-service-outcome { font-size: 25px; margin: 20px 0 16px; line-height: 1.12; }
}
.lw-service-diagram { display: block; width: 100%; height: auto; min-height: 0; flex: 1; margin: 14px 0; overflow: visible; }
@media (max-width: 767px) { .lw-service-diagram g text { font-size: 18px; } }
.lw-service-overview-heading svg { width: 30px; height: 30px; }
