/* San Marco Vision — navigable skeleton assembled from `sito new.pdf`. */
.site-skeleton {
  --site-navy: #0a2540;
  --site-blue: #0797f6;
  --site-cyan: #18c7ff;
  --site-paper: #f8f9fa;
  --site-soft: #eef3f7;
  background: var(--site-paper);
}

.site-skeleton .site-header { background: rgba(248,249,250,.9); }
.site-skeleton .nav-links { gap: clamp(15px, 2vw, 28px); }
.site-skeleton .site-section-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: end; margin-bottom: clamp(34px, 5vw, 60px); }
.site-skeleton .site-section-head h2 { max-width: 760px; margin-top: 14px; color: var(--site-navy); font: 700 clamp(2.1rem, 5vw, 4.5rem)/.94 var(--font-display); letter-spacing: -.045em; }
.site-skeleton .site-section-head > p { max-width: 44ch; color: var(--muted); }
.site-skeleton .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.site-skeleton .site-media,
.site-skeleton .site-service-card__media,
.site-skeleton .site-service-hero__image,
.site-skeleton .site-route-preview__image,
.site-skeleton .site-detail-card__image,
.site-skeleton .site-gallery-card__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.site-skeleton .site-placeholder { display: grid; place-content: center; min-height: 220px; padding: 24px; color: #fff; text-align: center; background: radial-gradient(circle at 30% 30%, #159fe9, transparent 36%), linear-gradient(145deg, #071b31, #16476d); }
.site-skeleton .site-placeholder span { font: 500 .65rem/1 var(--font-mono); letter-spacing: .14em; }
.site-skeleton .site-placeholder b { margin-top: 12px; font: 600 1.2rem/1.1 var(--font-display); }

/* Home hero — PDF tavola 1. */
.site-home-hero { position: relative; min-height: min(760px, calc(100svh - 82px)); overflow: hidden; color: #fff; background: #07182d; }
.site-home-hero > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site-home-hero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,18,43,.94), rgba(6,18,43,.52) 58%, rgba(6,18,43,.28)); }
.site-home-hero__content { position: relative; z-index: 2; display: flex; min-height: inherit; flex-direction: column; justify-content: center; padding-block: 70px; }
.site-home-hero__content .eyebrow { color: rgba(255,255,255,.72); }
.site-home-hero h1 { max-width: 780px; font: 700 clamp(3.4rem, 7vw, 7rem)/.9 var(--font-display); letter-spacing: -.052em; }
.site-home-hero mark { padding: 0 .08em; color: #fff; background: var(--site-blue); }
.site-home-hero__content > p { max-width: 52ch; margin-top: 24px; color: rgba(255,255,255,.8); font-size: clamp(1rem, 1.6vw, 1.25rem); }
.site-home-hero .btn--ghost { color: #fff; border-color: rgba(255,255,255,.6); }
.site-home-hero__corner { position: absolute; right: max(24px, calc((100vw - 1180px)/2)); bottom: 28px; z-index: 3; width: clamp(180px, 19vw, 275px); margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.55); }
.site-home-hero__corner img { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; filter: grayscale(1); }
.site-home-hero__corner figcaption { position: absolute; left: 8px; bottom: 7px; padding: 6px 8px; background: rgba(6,18,43,.78); font: 500 .58rem/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }

/* Service chooser — PDF tavola 2. */
.site-home-services { padding-block: clamp(90px, 12vw, 160px); }
.site-service-cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.site-service-card { position: relative; display: flex; min-height: 510px; flex-direction: column; padding: 28px; overflow: hidden; color: var(--site-navy); background: #fff; border: 1px solid #d3dce4; border-radius: 18px; transition: transform .25s ease, box-shadow .25s ease; }
.site-service-card:hover { transform: translateY(-5px); box-shadow: 0 30px 60px rgba(10,37,64,.12); }
.site-service-card__index { color: var(--site-blue); font: 600 .66rem/1 var(--font-mono); letter-spacing: .12em; }
.site-service-card__visual { height: 225px; margin: 22px -28px 24px; overflow: hidden; background: var(--site-soft); }
.site-service-card h3 { font: 700 clamp(1.65rem, 3vw, 2.65rem)/1 var(--font-display); letter-spacing: -.035em; }
.site-service-card p { max-width: 48ch; margin-top: 12px; color: var(--muted); }
.site-service-card .site-arrow { margin-top: auto; padding-top: 24px; color: var(--site-blue); font: 600 .66rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }

/* Why, capabilities and proof — PDF tavole 3–4. */
.site-why { padding-block: clamp(84px, 11vw, 150px); color: #fff; background: var(--site-navy); }
.site-why__grid { display: grid; grid-template-columns: 1.03fr .97fr; gap: clamp(38px, 7vw, 90px); align-items: center; }
.site-why .eyebrow { color: var(--layout-blue, #65a9dd); }
.site-why h2 { margin-top: 18px; font: 700 clamp(2.5rem, 5.5vw, 5rem)/.92 var(--font-display); letter-spacing: -.045em; }
.site-why h2 em { color: var(--site-cyan); font-style: normal; }
.site-why p { max-width: 56ch; margin-top: 20px; color: rgba(255,255,255,.72); }
.site-why ul { display: grid; gap: 13px; margin-top: 28px; }
.site-why li { position: relative; padding-left: 25px; color: rgba(255,255,255,.86); }
.site-why li::before { position: absolute; top: .58em; left: 0; width: 7px; height: 7px; content: ""; border: 1px solid var(--site-cyan); border-radius: 50%; }
.site-why__visual { position: relative; min-height: 520px; overflow: hidden; border: 1px solid rgba(255,255,255,.42); }
.site-why__visual video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site-why__visual > span { position: absolute; left: 14px; bottom: 13px; padding: 7px 9px; background: rgba(6,18,43,.75); font: 500 .6rem/1 var(--font-mono); letter-spacing: .1em; }
.site-capabilities { padding-block: clamp(84px, 11vw, 150px); }
.site-capabilities__grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--hairline); border-left: 1px solid var(--hairline); }
.site-capabilities article { min-height: 200px; padding: 24px 20px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.site-capabilities article > span { color: var(--site-blue); font: 500 .65rem/1 var(--font-mono); }
.site-capabilities h3 { margin-top: 22px; color: var(--site-navy); font: 650 1.2rem/1.05 var(--font-display); }
.site-capabilities p { margin-top: 10px; color: var(--muted); font-size: .9rem; }
.site-proof { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 44px; border-block: 1px solid var(--hairline); }
.site-proof > div { padding: 0 28px; border-left: 1px solid var(--hairline); }
.site-proof > div:first-child { border-left: 0; }
.site-proof b { display: block; color: var(--site-navy); font: 700 clamp(2rem, 4vw, 3.6rem)/1 var(--font-display); }
.site-proof span { display: block; margin-top: 10px; color: var(--muted); font: 500 .62rem/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.site-logos { padding-block: 60px 80px; overflow: hidden; }
.site-logo-track { display: flex; gap: 16px; margin-top: 26px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.site-logo { display: grid; flex: 0 0 210px; height: 110px; place-items: center; padding: 20px; color: #7b8a96; background: #fff; border: 1px solid var(--hairline); scroll-snap-align: start; font: 600 .65rem/1 var(--font-mono); letter-spacing: .12em; }
.site-logo img { max-width: 120px; max-height: 64px; }
.site-logo--placeholder { background: repeating-linear-gradient(135deg,#fff 0 8px,#f4f6f7 8px 16px); }

/* Shared CTA. */
.site-cta { padding-block: clamp(80px, 10vw, 140px); color: #fff; background: var(--site-navy); }
.site-cta__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(38px, 7vw, 90px); align-items: center; }
.site-cta h2 { max-width: 520px; margin-top: 18px; font: 700 clamp(2.8rem, 6vw, 5.8rem)/.9 var(--font-display); letter-spacing: -.045em; }
.site-cta__grid > div:first-child > p { max-width: 48ch; margin-top: 22px; color: var(--site-cyan); font-size: 1.05rem; }
.site-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.site-cta .btn--ghost { color: #fff; border-color: rgba(255,255,255,.48); }
.site-cta .form-card { color: var(--ink); }

/* Common service hero — PDF tavola 5. */
.site-service-hero { padding-block: clamp(28px, 4vw, 54px) clamp(78px, 10vw, 130px); }
.site-service-hero__grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 20px; }
.site-service-hero__grid > div { display: flex; min-height: 610px; flex-direction: column; justify-content: center; padding: clamp(28px, 5vw, 72px); background: #fff; border: 1px solid var(--hairline); border-radius: 18px 0 0 18px; }
.site-service-hero h1 { margin-top: 18px; color: var(--site-navy); font: 700 clamp(2.9rem, 5.7vw, 5.8rem)/.9 var(--font-display); letter-spacing: -.05em; }
.site-service-hero__grid > div > p { max-width: 50ch; margin-top: 24px; color: var(--muted); font-size: 1.08rem; }
.site-service-hero figure { min-height: 610px; margin: 0; overflow: hidden; background: var(--site-soft); border-radius: 0 18px 18px 0; }
.site-service-topics { padding-block: clamp(50px, 7vw, 95px) clamp(90px, 12vw, 150px); }
.site-topic-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--hairline); border: 1px solid var(--hairline); }
.site-topic-grid a { display: flex; min-height: 260px; flex-direction: column; padding: clamp(24px, 3vw, 40px); color: var(--site-navy); background: #fff; }
.site-topic-grid a:hover { background: #eef6fc; }
.site-topic-grid a > span { color: var(--site-blue); font: 500 .65rem/1 var(--font-mono); }
.site-topic-grid h3 { margin-top: 24px; font: 700 clamp(1.55rem, 3vw, 2.6rem)/1 var(--font-display); }
.site-topic-grid p { max-width: 42ch; margin-top: 12px; color: var(--muted); }
.site-topic-grid b { margin-top: auto; padding-top: 28px; color: var(--site-blue); font: 600 .65rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }

/* Two explicit routes — PDF tavola 6. */
.site-route-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-bottom: clamp(90px, 12vw, 150px); }
.site-route-card { display: flex; min-width: 0; min-height: 620px; flex-direction: column; padding: clamp(26px, 4vw, 50px); color: var(--site-navy); background: #fff; border: 1px solid var(--hairline); border-radius: 18px; }
.site-route-card--dark { color: #fff; background: var(--site-navy); }
.site-route-card h2 { margin-top: 17px; font: 700 clamp(2rem, 4vw, 3.8rem)/.95 var(--font-display); letter-spacing: -.04em; }
.site-route-card > b { margin-top: auto; padding-top: 26px; color: var(--site-blue); font: 600 .66rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.site-route-preview { display: grid; gap: 10px; margin-top: 38px; overflow: hidden; }
.site-route-preview--grid { grid-template-columns: 1fr 1fr; }
.site-route-preview--row { display: flex; }
.site-route-preview > div { position: relative; min-width: 0; height: 160px; overflow: hidden; background: var(--site-soft); }
.site-route-preview--row > div { flex: 0 0 70%; }
.site-route-preview span { position: absolute; left: 8px; bottom: 8px; padding: 6px 8px; color: #fff; background: rgba(6,18,43,.72); font: 500 .58rem/1 var(--font-mono); }
.site-sectors { padding-bottom: clamp(90px, 12vw, 150px); }
.site-sector-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.site-sector-grid article { min-height: 220px; padding: 28px 22px; background: #fff; border: 1px solid #b9cce0; }
.site-sector-grid .reg { color: var(--site-blue); }
.site-sector-grid h3 { margin-top: 28px; color: var(--site-navy); font: 650 1.2rem/1.1 var(--font-display); }
.site-sector-grid p { margin-top: 12px; color: var(--muted); font-size: .9rem; }

/* Deep page type 01: image/text cards. */
.site-detail-head { padding-block: 40px clamp(60px, 8vw, 100px); }
.site-detail-head .eyebrow { display: block; margin-top: 48px; color: var(--site-blue); }
.site-detail-head h1 { max-width: 900px; margin-top: 18px; color: var(--site-navy); font: 700 clamp(3rem, 7vw, 6.7rem)/.88 var(--font-display); letter-spacing: -.052em; }
.site-detail-head > p:last-child { max-width: 62ch; margin-top: 24px; color: var(--muted); font-size: 1.1rem; }
.site-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; padding-bottom: clamp(90px, 12vw, 160px); }
.site-detail-card { overflow: hidden; background: #fff; border: 1px solid var(--hairline); border-radius: 16px; }
.site-detail-card:nth-child(5) { grid-column: 1 / -1; }
.site-detail-card__image { height: 330px; }
.site-detail-card:nth-child(5) .site-detail-card__image { height: 500px; }
.site-detail-card > div { padding: 28px; }
.site-detail-card > div > span { color: var(--site-blue); font: 500 .65rem/1 var(--font-mono); }
.site-detail-card h2 { margin-top: 16px; color: var(--site-navy); font: 700 clamp(1.7rem, 3vw, 2.8rem)/1 var(--font-display); }
.site-detail-card p { margin-top: 12px; color: var(--muted); }
.site-detail-card a { display: inline-block; margin-top: 24px; color: var(--site-blue); font: 600 .65rem/1 var(--font-mono); text-transform: uppercase; }

/* Deep page type 02: horizontal gallery. */
.site-gallery-head { padding-block: 40px clamp(70px, 9vw, 120px); overflow: hidden; color: #fff; background: var(--site-navy); }
.site-gallery-head .breadcrumb a { color: rgba(255,255,255,.7); }
.site-gallery-head .breadcrumb b { color: #fff; }
.site-gallery-head .eyebrow { display: block; margin-top: 48px; color: var(--site-cyan); }
.site-gallery-head h1 { max-width: 900px; margin-top: 18px; font: 700 clamp(3rem, 7vw, 6.7rem)/.88 var(--font-display); letter-spacing: -.052em; }
.site-gallery-head .wrap > p:last-of-type { max-width: 62ch; margin-top: 24px; color: rgba(255,255,255,.7); font-size: 1.1rem; }
.site-gallery-controls { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; }
.site-gallery-controls button { width: 52px; height: 52px; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.35); border-radius: 50%; cursor: pointer; }
.site-gallery-track { display: flex; gap: 22px; margin-top: 42px; padding: 5px max(20px, calc((100vw - 1120px)/2)) 28px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: var(--site-cyan) rgba(255,255,255,.1); }
.site-gallery-card { flex: 0 0 clamp(320px, 37vw, 520px); margin: 0; overflow: hidden; color: var(--site-navy); background: #fff; border-radius: 16px; scroll-snap-align: start; }
.site-gallery-card__image { height: 330px; }
.site-gallery-card figcaption { min-height: 190px; padding: 26px; }
.site-gallery-card figcaption > span { color: var(--site-blue); font: 500 .65rem/1 var(--font-mono); }
.site-gallery-card h2 { margin-top: 12px; font: 700 clamp(1.55rem, 2.5vw, 2.4rem)/1 var(--font-display); }
.site-gallery-card p { margin-top: 10px; color: var(--muted); }
.site-gallery-note { padding-block: clamp(80px, 10vw, 130px); }
.site-gallery-note h2 { max-width: 800px; margin-top: 17px; color: var(--site-navy); font: 700 clamp(2.2rem, 5vw, 4.7rem)/.94 var(--font-display); letter-spacing: -.045em; }
.site-gallery-note p { max-width: 62ch; margin-top: 20px; color: var(--muted); }

@media (max-width: 900px) {
  .site-skeleton .nav-links {
    left: 0;
    right: 0;
    transform: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility 0s linear .25s;
  }
  .site-skeleton .nav-links.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .site-skeleton .site-section-head,
  .site-why__grid,
  .site-cta__grid,
  .site-service-hero__grid { grid-template-columns: 1fr; }
  .site-service-cards,
  .site-route-pair { grid-template-columns: 1fr; }
  .site-capabilities__grid,
  .site-sector-grid { grid-template-columns: repeat(2, 1fr); }
  .site-service-hero__grid > div { min-height: 0; border-radius: 18px 18px 0 0; }
  .site-service-hero figure { min-height: 480px; border-radius: 0 0 18px 18px; }
  .site-route-card { min-height: 560px; }
  .site-home-hero__corner { width: 190px; }
}

@media (max-width: 640px) {
  .site-home-hero { min-height: 760px; }
  .site-home-hero__content { justify-content: flex-start; padding-top: 74px; }
  .site-home-hero h1 { font-size: clamp(3rem, 14vw, 4.8rem); }
  .site-home-hero__corner { right: 20px; bottom: 22px; width: 150px; }
  .site-service-card { min-height: 470px; }
  .site-service-cards,
  .site-topic-grid,
  .site-detail-grid { grid-template-columns: 1fr; }
  .site-detail-card:nth-child(5) { grid-column: auto; }
  .site-detail-card:nth-child(5) .site-detail-card__image,
  .site-detail-card__image { height: 260px; }
  .site-capabilities__grid,
  .site-sector-grid,
  .site-proof { grid-template-columns: 1fr; }
  .site-capabilities article { min-height: 150px; }
  .site-proof > div { padding: 22px 8px; border-top: 1px solid var(--hairline); border-left: 0; }
  .site-proof > div:first-child { border-top: 0; }
  .site-service-hero h1 { font-size: clamp(2.8rem, 13vw, 4.6rem); }
  .site-service-hero figure { min-height: 340px; }
  .site-route-card { min-height: 520px; }
  .site-gallery-card { flex-basis: 84vw; }
  .site-gallery-card__image { height: 250px; }
  .site-gallery-controls { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .site-service-card { transition: none; }
}
