:root { --sb-shadow: 0 14px 42px rgba(7,25,35,.065); --sb-root-gutter: clamp(1.25rem, 4vw, 3rem); }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
::selection { background: #A98A4B; color: #fff; }
.sb-kicker { font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sb-rule { width: 3.5rem !important; margin-left: 0 !important; border-top-width: 2px !important; }
.sb-hero { min-height: 64vh; position: relative; overflow: hidden; }
.sb-hero::after { content: ""; position: absolute; width: 38rem; height: 38rem; border: 1px solid rgba(169,138,75,.38); border-radius: 50%; right: -11rem; top: -12rem; pointer-events: none; }
.sb-hero .wp-block-group { position: relative; z-index: 1; }
.sb-card { height: 100%; border-top: 1px solid #A98A4B; box-shadow: var(--sb-shadow); transition: transform .25s ease, box-shadow .25s ease; }
.sb-card:hover { transform: translateY(-2px); box-shadow: 0 18px 48px rgba(7,25,35,.09); }
.sb-service-number { color: #A98A4B; font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.sb-feature-band { position: relative; overflow: hidden; }
.sb-feature-band::before { content: "AI"; position: absolute; right: -1rem; bottom: -4rem; font: 400 14rem/1 Georgia,serif; color: rgba(255,255,255,.028); }
.sb-header { border-bottom: 1px solid rgba(16,42,58,.1); }
.sb-header .wp-block-site-title a { text-decoration: none; }
.sb-footer a { color: #fff; text-decoration-color: rgba(255,255,255,.4); }
.sb-footer a:hover { color: #d9a07c; }
.sb-meta { font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.sb-feed { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.sb-feed__card { display: flex; flex-direction: column; min-height: 14rem; padding: 1.65rem; border-top: 1px solid #A98A4B; background: #fff; box-shadow: var(--sb-shadow); }
.sb-feed__meta { margin: 0 0 1rem; color: #846b36; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sb-feed__title { margin: 0 0 .9rem; font: 400 clamp(1.25rem, 2vw, 1.65rem)/1.15 Georgia, 'Times New Roman', serif; }
.sb-feed__title a { text-decoration: none; }
.sb-feed__excerpt { margin: 0 0 1.25rem; }
.sb-feed__more { margin-top: auto; font-weight: 700; text-underline-offset: .25em; }
.sb-feed--pubblicazioni .sb-feed__card { background: #071923; color: #fff; box-shadow: none; }
.sb-feed--pubblicazioni .sb-feed__title a,
.sb-feed--pubblicazioni .sb-feed__more { color: #fff; }
.sb-feed--pubblicazioni .sb-feed__excerpt { color: #d4dcdf; }
.sb-feed__empty { grid-column: 1 / -1; padding: 1.25rem; border-left: 2px solid #A98A4B; background: rgba(255,255,255,.6); }
.sb-edge-band,
.sb-hero,
.sb-feature-band,
.sb-footer,
.sb-header {
  width: calc(100% + var(--sb-root-gutter) + var(--sb-root-gutter)) !important;
  max-width: none !important;
  margin-left: calc(0px - var(--sb-root-gutter)) !important;
  margin-right: calc(0px - var(--sb-root-gutter)) !important;
}
.sb-cta-band { background: #102A3A; }
.sb-portrait img { width: 100%; max-height: 40rem; object-fit: cover; object-position: center 22%; filter: grayscale(100%); }
.sb-portrait { width: 100%; max-width: 17rem; margin: 0 auto; }
@media (min-width: 782px) {
  body { font-size: .98rem; }
  .sb-hero { min-height: 58vh; }
  .sb-hero h1 { max-width: 13ch; letter-spacing: -.035em; }
  .sb-hero p:not(.sb-kicker) { max-width: 650px; font-size: 1.08rem !important; }
  h2.has-x-large-font-size { max-width: 18ch; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.wp-block-post-featured-image img { aspect-ratio: 16/9; object-fit: cover; }
@media (max-width: 781px) {
  .sb-hero { min-height: auto; }
  .sb-hero::after { width: 20rem; height: 20rem; right: -10rem; top: -7rem; }
  .sb-mobile-stack { gap: 2rem !important; }
  .sb-feed { grid-template-columns: 1fr; }
  .sb-edge-band,
  .sb-hero,
  .sb-feature-band,
  .sb-footer,
  .sb-header { width: calc(100% + 2.5rem) !important; margin-left: -1.25rem !important; margin-right: -1.25rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .sb-card { transition: none; }
}

