/* ShadWP is a native WordPress block theme. Styles mirror the Site Editor. */
:root {
  --sw-ink: var(--wp--preset--color--ink, #111111);
  --sw-muted: var(--wp--preset--color--muted, #666666);
  --sw-base: var(--wp--preset--color--base, #ffffff);
  --sw-line: var(--wp--preset--color--line, #e5e5e5);
  --sw-subtle: var(--wp--preset--color--subtle, #fafafa);
}
html { scroll-behavior: smooth; scroll-padding-top: 32px; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { overflow: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
.sw-main > * { margin-block-start: 0 !important; }
.sw-main :where(p, h1, h2, h3, figure) { margin-block: 0; }
.sw-main p { color: var(--sw-muted); }
.sw-main a { text-underline-offset: .2em; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--sw-ink); outline-offset: 5px;
}
.sw-header-inner { min-height: 88px; gap: 32px; }
.sw-wordmark { margin: 0; font-size: 23px; font-weight: 650; letter-spacing: -.055em; text-transform: lowercase; line-height: 1; }
.sw-wordmark a { text-decoration: none; }
.sw-navigation { font-size: 14px; color: var(--sw-muted); }
.sw-navigation .wp-block-navigation__container { gap: 28px; }
.sw-navigation .wp-block-navigation-item__content { padding-block: 10px; }
.sw-navigation .wp-block-navigation-item__content:hover { color: var(--sw-ink); }
.sw-navigation .wp-block-navigation__responsive-container-open { padding: 10px; min-width: 44px; min-height: 44px; }
.sw-navigation .wp-block-navigation__responsive-container-close { padding: 10px; }
.sw-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: 28px; background: var(--sw-base); color: var(--sw-ink); }
.sw-navigation .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 72px; align-items: flex-start; }
.sw-navigation .is-menu-open .wp-block-navigation__container { gap: 12px; align-items: flex-start; width: 100%; }
.sw-navigation .is-menu-open .wp-block-navigation-item { font-size: 24px; width: 100%; }
.sw-navigation .is-menu-open .wp-block-navigation-item__content { width: 100%; }
.sw-hero { padding-block: 96px 72px; }
.sw-hero-title { font-size: clamp(38px, 4.5vw, 60px); font-weight: 600; line-height: 1.04; letter-spacing: -.06em; }
.sw-hero-description { font-size: 18px; line-height: 1.6; max-width: 550px; margin-top: 24px !important; }
.sw-hero-actions { margin-top: 30px !important; gap: 20px; }
.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; border: 1px solid var(--sw-ink); box-shadow: none; transition: opacity .15s, transform .15s; }
.wp-block-button__link:hover { opacity: .82; }
.wp-block-button__link:active { transform: translateY(1px); }
.wp-block-button.is-style-outline .wp-block-button__link { color: var(--sw-ink); border-color: var(--sw-line); background: transparent; }
.is-style-shadwp-text .wp-block-button__link { color: var(--sw-muted); background: transparent; border-color: transparent; padding-inline: 0; border-radius: 0; gap: 10px; }
.is-style-shadwp-text .wp-block-button__link::after { content: '→'; font-size: 17px; }
.is-style-shadwp-text .wp-block-button__link:hover { color: var(--sw-ink); opacity: 1; }
.sw-studio { border: 1px solid var(--sw-line); border-radius: 12px; overflow: hidden; background: var(--sw-subtle); }
.sw-studio-image { margin: 0; }
.sw-studio-image img { display: block; width: 100%; height: auto; aspect-ratio: 1.85; object-fit: cover; object-position: center; }
.sw-studio-note { padding: 18px 24px; display: flex; justify-content: space-between; gap: 20px; background: var(--sw-base); border-top: 1px solid var(--sw-line); }
.sw-studio-label { color: var(--sw-ink) !important; font-size: 13px; font-weight: 500; }
.sw-studio-caption { font-size: 13px; margin: 0 !important; }
.sw-section { padding-block: 96px; }
.sw-section-heading { max-width: 620px; margin-bottom: 44px !important; }
.sw-section-heading h2, .sw-customers h2, .sw-contact h2 { font-size: clamp(30px, 3.1vw, 40px); font-weight: 600; letter-spacing: -.045em; line-height: 1.12; }
.sw-section-heading p { margin-top: 20px; max-width: 560px; }
.sw-services-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 72px; row-gap: 36px; }
.sw-service { margin: 0 !important; }
.sw-service h3 { font-size: 16px; line-height: 1.4; letter-spacing: -.015em; font-weight: 550; }
.sw-service p { font-size: 14px; line-height: 1.65; margin-top: 9px; max-width: 390px; }
.sw-cases { border-top: 1px solid var(--sw-line); }
.sw-cases-list { border: 1px solid var(--sw-line); border-radius: 12px; overflow: hidden; }
.sw-case { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 40px; padding: 30px; margin: 0 !important; }
.sw-case + .sw-case { border-top: 1px solid var(--sw-line); }
.sw-case-category { font-size: 13px; padding-top: 3px; }
.sw-case-copy, .sw-process-copy, .sw-post-row > .wp-block-group { margin-block-start: 0 !important; }
.sw-case-copy h3 { font-size: 19px; letter-spacing: -.025em; line-height: 1.35; font-weight: 550; }
.sw-case-copy p { margin-top: 9px; font-size: 14px; line-height: 1.6; max-width: 500px; }
.sw-customers { padding-top: 0; }
.sw-customers h2 { font-size: 28px; }
.sw-customers-intro { margin-top: 14px !important; font-size: 14px; }
.sw-client-list { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px 28px; padding: 0; margin-top: 40px !important; font-size: 13px; line-height: 1.65; color: var(--sw-muted); }
.sw-client-list li { padding: 0; margin: 0; overflow-wrap: anywhere; }
.sw-process { border-top: 1px solid var(--sw-line); }
.sw-process-step { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 40px; margin: 0 !important; padding-block: 28px; }
.sw-process-step + .sw-process-step { border-top: 1px solid var(--sw-line); }
.sw-process-label { font-size: 14px; padding-top: 3px; }
.sw-process-copy h3 { font-size: 20px; letter-spacing: -.025em; line-height: 1.3; }
.sw-process-copy p { margin-top: 12px; font-size: 15px; max-width: 530px; }
.sw-contact { border-top: 1px solid var(--sw-line); padding-block: 88px 100px; }
.sw-contact-description { margin-top: 20px !important; max-width: 540px; }
.sw-contact-actions { margin-top: 30px !important; }
.sw-contact-links { display: flex; gap: 24px; margin-top: 24px !important; font-size: 14px; }
.sw-contact-links > * { margin: 0 !important; }
.sw-contact-links a { color: var(--sw-muted); }
.sw-contact-links a:hover { color: var(--sw-ink); }
.sw-footer-inner { padding-block: 32px; border-top: 1px solid var(--sw-line); display: grid; grid-template-columns: 1fr auto; column-gap: 48px; row-gap: 24px; }
.sw-footer-wordmark { font-size: 19px; font-weight: 600; letter-spacing: -.045em; text-transform: lowercase; line-height: 1.1; margin: 0; }
.sw-footer-description { margin-top: 10px; font-size: 13px; color: var(--sw-muted); }
.sw-footer-links { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; font-size: 13px; margin-block-start: 0 !important; }
.sw-footer-links p { margin: 0; }
.sw-footer-links a { color: var(--sw-muted); }
.sw-credit { grid-column: 1 / -1; font-size: 12px; color: var(--sw-muted); margin: 0; }
.sw-credit a { color: inherit; }
.is-style-shadwp-panel { border: 1px solid var(--sw-line); border-radius: 12px; padding: 32px; }
/* All content templates share the same typography, reading width and controls. */
.sw-reading { padding-block: 72px 96px; min-height: 55vh; }
.sw-reading h1 { font-size: clamp(36px, 4.2vw, 52px); line-height: 1.08; letter-spacing: -.05em; }
.sw-page-lead { margin-top: 18px !important; max-width: 580px; }
.sw-reading .wp-block-post-content { margin-top: 40px; }
.sw-reading .wp-block-post-content > * { margin-block: 0 24px; }
.sw-reading .wp-block-post-content :where(h2,h3) { margin-top: 40px; }
.sw-reading .wp-block-post-content h2 { font-size: 32px; }
.sw-reading .wp-block-post-content h3 { font-size: 23px; }
.sw-reading .wp-block-post-content a { text-decoration: underline; }
.sw-reading .wp-block-post-content img { max-width: 100%; height: auto; }
.sw-featured-image { margin-block: 36px !important; overflow: hidden; border-radius: 12px; }
.sw-reading pre { overflow: auto; padding: 24px; border: 1px solid var(--sw-line); border-radius: 6px; background: var(--sw-subtle); }
.sw-reading blockquote { margin-inline: 0; }
.sw-reading .wp-block-table { overflow-x: auto; }
.sw-reading .wp-block-table td, .sw-reading .wp-block-table th { border-color: var(--sw-line); padding: 12px; }
.sw-posts { margin-top: 56px !important; }
.sw-posts .wp-block-post-template { margin: 0; padding: 0; }
.sw-post-row { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 36px; padding-block: 32px; border-top: 1px solid var(--sw-line); }
.sw-post-row .wp-block-post-title { font-size: 23px; line-height: 1.2; letter-spacing: -.025em; }
.sw-post-row .wp-block-post-excerpt { margin-top: 16px; font-size: 15px; }
.sw-post-date { color: var(--sw-muted); font-size: 13px; }
.sw-post-excerpt__more-link, .wp-block-post-excerpt__more-link { color: var(--sw-ink); font-size: 14px; }
.sw-posts .wp-block-query-pagination { font-size: 14px; margin-top: 40px; }
.sw-posts .wp-block-query-pagination-numbers { display: flex; gap: 16px; }
.sw-single > .wp-block-post-title { margin-top: 14px; }
.sw-single .wp-block-post-navigation-link { margin-top: 16px; font-size: 14px; }
.sw-post-categories { margin-top: 40px !important; font-size: 13px; }
.sw-not-found { max-width: 640px !important; }
.sw-error-code { font-size: 14px; margin-bottom: 16px !important; }
.sw-not-found > p:not(.sw-error-code) { margin-block: 22px 28px; }
.sw-not-found .wp-block-search { margin-top: 48px; }
.wp-block-search { max-width: 620px; margin-block: 30px; }
.wp-block-search__inside-wrapper { gap: 8px; }
.wp-block-search__input, .sw-reading input, .sw-reading textarea { border: 1px solid var(--sw-line); border-radius: 6px; background: var(--sw-base); color: var(--sw-ink); padding: 12px 14px; font: inherit; min-width: 0; }
.wp-block-search__button { border: 1px solid var(--sw-ink); border-radius: 6px; padding: 12px 22px; font-size: 14px; margin: 0; background: var(--sw-ink); color: var(--sw-base); }
.wp-block-search__input::placeholder { color: var(--sw-muted); }
@media (max-width: 781px) {
  .sw-header-inner { min-height: 76px; gap: 20px; }
  .sw-navigation .wp-block-navigation__container { gap: 20px; }
  .sw-hero { padding-block: 68px 56px; }
  .sw-hero-title { font-size: clamp(36px, 6.5vw, 50px); }
  .sw-hero-description { font-size: 17px; }
  .sw-section { padding-block: 72px; }
  .sw-services-grid { column-gap: 40px; }
  .sw-case, .sw-process-step { grid-template-columns: 135px minmax(0,1fr); gap: 24px; }
  .sw-case { padding: 24px; }
  .sw-client-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px 24px; }
  .sw-customers { padding-top: 0; }
  .sw-post-row { grid-template-columns: 130px minmax(0,1fr); gap: 24px; }
}
@media (max-width: 599px) {
  .sw-header-inner { min-height: 72px; }
  .sw-hero { padding-block: 48px; }
  .sw-hero-title { font-size: clamp(30px, 8.8vw, 42px); letter-spacing: -.055em; }
  .sw-hero-description { font-size: 16px; margin-top: 20px !important; }
  .sw-hero-actions { gap: 18px; margin-top: 26px !important; }
  .wp-block-button__link { font-size: 13px; padding: 12px 19px; }
  .is-style-shadwp-text .wp-block-button__link { padding-inline: 0; }
  .sw-studio-image img { aspect-ratio: 1.55; }
  .sw-studio-note { padding: 16px 18px; flex-direction: column; gap: 4px; }
  .sw-studio-note p { font-size: 12px; }
  .sw-section { padding-block: 56px; }
  .sw-section-heading { margin-bottom: 32px !important; }
  .sw-section-heading h2, .sw-contact h2 { font-size: 30px; }
  .sw-section-heading p { font-size: 15px; margin-top: 16px; }
  .sw-services-grid { grid-template-columns: 1fr; gap: 30px; }
  .sw-service p { max-width: none; }
  .sw-case { grid-template-columns: 1fr; gap: 10px; padding: 24px; }
  .sw-case-copy h3 { font-size: 19px; }
  .sw-case-category { font-size: 12px; }
  .sw-customers { padding-top: 0; }
  .sw-customers h2 { font-size: 27px; }
  .sw-client-list { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; row-gap: 18px; margin-top: 30px !important; }
  .sw-process-step { grid-template-columns: 1fr; gap: 12px; padding-block: 26px; }
  .sw-process-label { font-size: 12px; }
  .sw-process-copy h3 { font-size: 20px; }
  .sw-contact-description { font-size: 15px; }
  .sw-footer-inner { grid-template-columns: 1fr; gap: 22px; padding-block: 28px; }
  .sw-footer-links { gap: 24px; }
  .sw-reading { padding-block: 48px 64px; }
  .sw-reading h1 { font-size: 36px; }
  .sw-post-row { grid-template-columns: 1fr; gap: 12px; padding-block: 28px; }
  .sw-posts { margin-top: 36px !important; }
  .sw-post-row .wp-block-post-title { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  .sw-navigation, .sw-hero-actions, .sw-contact-links { display: none; }
  .sw-section { padding-block: 24px; }
  .sw-hero { padding-block: 24px; }
  .sw-studio-image img { max-height: 260px; object-fit: contain; }
}
/* Template parts do not inherit a constrained parent on every installation. */
.sw-header-inner, .sw-footer-inner {
  box-sizing: border-box;
  width: min(var(--wp--style--global--wide-size, 960px), calc(100% - var(--wp--style--root--padding-left, 24px) - var(--wp--style--root--padding-right, 24px)));
  margin-inline: auto;
}
.sw-studio-note { margin-top: 0 !important; }
