/* Noir edition: black, white and WeUnit orange only. The supplied WeUnit logo remains unaltered. */
:root {
  --orange: rgba(235,130,32,.88);
  --ink: #ffffff;
  --pine: #000000;
  --pine-2: #000000;
  --paper: #000000;
  --sand: #000000;
  --clay: var(--orange);
  --mint: #ffffff;
  --line: #ffffff;
  --whatsapp: #25d366;
}

html, body, .service-page, .legal-page { background: #000; color: #fff; }
body { color: #fff; }
::selection { background: var(--orange); color: #000; }

.site-header {
  background: #000;
  border: 1px solid #fff;
  border-radius: 999px;
  box-shadow: none;
}
.site-header.is-scrolled { background: #000; box-shadow: 0 10px 0 var(--orange); }
.site-header::after { display: none; }
.site-header>.brand, .site-header>.primary-nav, .site-header>.menu-toggle { position: relative; z-index: 4; }
.brand strong, .brand small { color: #fff; }
.brand-mark { border: 0; border-radius: 50%; background: #000 url('giuseppe-camarda-monogram.jpg') center / cover no-repeat; }
.weunit-inline { display: block; width: 138px; height: auto; margin-left: 5px; object-fit: contain; filter: brightness(1.18) contrast(1.12); }
.primary-nav a:not(.nav-cta), .menu-toggle { color: #fff; }
.primary-nav a:not(.nav-cta):hover { color: var(--orange); }
.nav-cta, .button-primary { border-color: var(--orange); background: var(--orange); color: #000; border-radius: 999px; }
.nav-cta:hover, .button-primary:hover { border-color: #fff; background: #fff; color: #000; }
.button { border-radius: 999px; }

/* The expanded menu needs more horizontal space than a tablet can offer. */
@media (min-width:901px) and (max-width:1050px) {
  .site-header { position:relative; }
  .primary-nav { position:absolute; z-index:20; top:83px; left:0; right:0; display:none; padding:18px; border:1px solid #fff; background:#000; box-shadow:0 20px 35px rgba(0,0,0,.45); flex-direction:column; align-items:stretch; gap:0; }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { padding:12px 2px; }
  .nav-cta { margin-top:7px; text-align:center; }
  .menu-toggle { display:inline-flex; align-items:center; gap:9px; padding:8px 0; border:0; background:none; color:#fff; font:700 11px 'DM Mono',monospace; text-transform:uppercase; cursor:pointer; }
  .menu-toggle span,.menu-toggle:after { content:''; width:17px; height:1px; background:currentColor; }
  .menu-toggle span { margin-left:-26px; transform:translateY(-3px); }
  .menu-toggle:after { margin-left:-17px; transform:translateY(3px); }
}

.hero { background: #000; color: #fff; }
.hero .eyebrow, .hero-kicker { color: #fff; }
.hero h1 { color: #fff; }
.hero h1 em { color: var(--orange); }
.hero-lead, .credential-row li { color: #fff; }
.credential-row, .credential-row li+li { border-color: #fff; }
.hero .text-link { color: #fff; }
.hero .text-link:hover { color: var(--orange); }
.hero-visual { overflow: visible; }
.orbit-one { background: var(--orange); border-radius: 50%; }
.orbit-two { background: #fff; border-radius: 50%; }
.portrait-frame { display: none; }
.hero-monogram { position: absolute; z-index: 2; inset: 54px 42px 14px 10px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: #000; box-shadow: 18px 18px 0 var(--orange); }
.hero-monogram img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-note { border-radius: 999px; background: #fff; color: #000; box-shadow: none; }
.note-dot { background: var(--orange); }
[data-parallax] { transform: translate3d(0, var(--parallax-y, 0px), 0); will-change: transform; }

.intro-band { border-top: 1px solid #fff; }
.section-label, .eyebrow { color: var(--orange); }
.intro-band h2, .method h2, .territory h2, .faq h2, .large-copy, .principle-grid h3, .principle-grid p { color: #fff; }
.intro-band h2 em, .method h2 em, .territory h2 em, .faq h2 em { color: var(--orange); }
.principle-grid article { border-color: #fff; border-radius: 24px; }
.principle-grid article span { color: var(--orange); }
.inline-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: 34px; color: #fff; border-bottom: 1px solid var(--orange); font-size: 13px; font-weight: 800; padding: 0 0 7px; transition: color .2s ease, border-color .2s ease; }
.inline-cta span { color: var(--orange); font-size: 18px; }
.inline-cta:hover { color: var(--orange); border-color: #fff; }

.scrolly-story { background: #000; }
.story-surface { border: 1px solid #fff; border-radius: 48px; background: #000; color: #fff; }
.story-surface::before { background: var(--orange); }
.story-copy .section-label, .story-copy h2, .story-copy h2 em, .story-intro { color: #fff; }
.story-copy h2 em { color: var(--orange); }
.story-steps span, .story-steps span.is-active { color: #fff; }
.story-steps span b { color: var(--orange); }
.story-pulse { border-color: #fff; }
.pulse-two { background: var(--orange); }
.story-monogram { border: 0; background: #000; box-shadow: none; }
.story-card { border: 1px solid #fff; border-radius: 28px; background: #fff; color: #000; box-shadow: none; }
.story-card span { color: var(--orange); }
.story-card h3, .story-card p { color: #000; }
.story-card-two { border-color: #fff; background: #fff; color: #000; }
.story-card-two span, .story-card-two h3, .story-card-two p { color: #000; }
.story-card-three { border-color: #fff; background: #fff; color: #000; }
.story-card-three span, .story-card-three h3, .story-card-three p { color: #000; }

/* A shorter, more editorial scrollytelling sequence. */
.scrolly-story { padding-bottom: 72px; }
.story-surface { min-height: 530px; border-radius: 38px; }
.story-copy { padding: 52px; }
.story-copy h2 { font-size: clamp(39px, 3.8vw, 60px); }
.story-intro { margin-top: 18px; font-size: 14px; line-height: 1.55; }
.story-steps { gap: 16px; margin-top: 28px; }
.story-visual { min-height: 530px; padding: 36px; }
.story-pulse.pulse-one { width: 365px; height: 365px; }
.story-pulse.pulse-two { width: 245px; height: 245px; }
.story-monogram { width: 140px; height: 140px; }
.story-card { padding: 18px 20px; border-radius: 22px; }
.story-card h3 { margin: 16px 0 5px; font-size: 20px; }
.story-card p { font-size: 11px; line-height: 1.45; }
@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  html.story-enhanced .scrolly-story { height: 190vh; }
  html.story-enhanced .scrolly-stage { top: 96px; height: min(580px, calc(100vh - 116px)); }
  html.story-enhanced .story-card { width: min(248px, 44%); }
}

.partner-showcase { position: relative; z-index: 0; display: grid; grid-template-columns: minmax(0, .83fr) minmax(500px, 1.17fr); column-gap: 5vw; row-gap: 34px; min-height: 880px; padding-top: 150px; padding-bottom: 120px; overflow: hidden; isolation: isolate; border-top: 1px solid #fff; background: #000; }
.partner-showcase::before { content: ''; position: absolute; z-index: -2; top: 11%; left: 45%; width: min(68vw, 940px); aspect-ratio: 1; border: 1px solid #fff; border-radius: 50%; opacity: .2; }
.partner-showcase::after { content: ''; position: absolute; z-index: -1; top: 18%; right: 9%; width: 31vw; height: 31vw; border-radius: 50%; background: var(--orange); filter: blur(105px); opacity: .09; }
.partner-copy { position: relative; z-index: 2; align-self: center; max-width: 530px; padding-bottom: 76px; }
.partner-copy h2 { margin: 17px 0 25px; color: #fff; font-size: clamp(46px, 5.1vw, 82px); line-height: .94; letter-spacing: -.075em; }
.partner-copy h2 em { color: var(--orange); }
.partner-copy>p:not(.section-label) { max-width: 450px; margin: 0; color: #fff; font-size: 17px; line-height: 1.68; }
.partner-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 33px; }
.partner-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 33px; padding: 15px 21px; border: 1px solid #fff; border-radius: 999px; color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .015em; transition: background .25s ease, color .25s ease, transform .25s ease; }
.partner-actions .partner-link { margin-top: 0; }
.partner-link span { color: var(--orange); font-size: 17px; }
.partner-link:hover { background: #fff; color: #000; transform: translateY(-3px); }
.partner-link:hover span { color: #000; }
.partner-link-primary { border-color: var(--orange); background: var(--orange); color: #000; }
.partner-link-primary span { color: #000; }
.partner-link-primary:hover { background: #fff; }

.coin-stage { position: relative; align-self: center; min-height: 665px; perspective: 1800px; perspective-origin: 50% 44%; transform-style: preserve-3d; }
.coin-stage::before { content: ''; position: absolute; inset: 10% 4% 8%; border: 1px solid #fff; border-radius: 50%; opacity: .14; transform: rotate(-13deg); }
.coin-stage::after { content: ''; position: absolute; inset: 25% 20%; border: 1px solid var(--orange); border-radius: 50%; opacity: .38; transform: rotate(22deg); }
.coin { --size: 210px; --coin-front: 30px; --coin-back: -30px; position: absolute; z-index: 2; width: var(--size); aspect-ratio: 1; border-radius: 50%; transform-style: preserve-3d; filter: drop-shadow(18px 30px 0 rgba(235,130,32,.22)) drop-shadow(0 18px 26px rgba(0,0,0,.8)); will-change: transform; }
.coin:hover { animation-play-state: paused; }
.coin-edge, .coin-back, .coin-face { position: absolute; border-radius: 50%; backface-visibility: hidden; transform-style: preserve-3d; }
.coin-edge { z-index: 0; inset: 0; overflow: hidden; border: 1px solid #000; background: repeating-linear-gradient(90deg, #fff 0 2px, #000 2px 4px, #fff 4px 5px); box-shadow: 0 2px 0 #000, 0 5px 0 #fff, 0 8px 0 #000, 0 11px 0 #fff, 0 14px 0 #000, 0 17px 0 #fff, 0 20px 0 #000, 0 23px 0 #fff, 0 26px 0 #000; transform: translateZ(var(--coin-back)); }
.coin-edge::before { content: ''; position: absolute; inset: 4px; border: 2px dotted #000; border-radius: 50%; opacity: .72; }
.coin-edge::after { content: ''; position: absolute; inset: 10px; border: 1px solid #fff; border-radius: 50%; box-shadow: inset 0 0 0 2px #000; }
.coin-back { z-index: 1; inset: 0; border: 1px solid #000; background: conic-gradient(from 35deg, #000, #fff 12%, #000 23%, #fff 34%, #000 48%, #fff 64%, #000 79%, #fff 91%, #000); box-shadow: inset 0 0 0 8px #fff, inset 0 0 0 9px #000, inset 0 0 0 16px var(--orange), inset 0 0 28px #000; transform: rotateY(180deg) translateZ(var(--coin-front)); }
.coin-face { z-index: 3; inset: 7px; display: grid; place-content: center; overflow: hidden; border: 1px solid #000; background: radial-gradient(circle at 31% 23%, #fff 0 4%, #fff 17%, #000 31%, #fff 40%, #000 48%, #fff 62%, #000 87%, #fff 100%); box-shadow: inset 0 0 0 7px #fff, inset 0 0 0 8px #000, inset 0 0 0 15px var(--orange), inset 0 0 0 17px #fff, inset 0 0 0 18px #000, inset 0 0 0 24px #fff, inset 0 0 28px #000, 0 0 0 1px #fff; color: #000; text-align: center; transform: translateZ(var(--coin-front)); }
.coin-face::before { content: ''; position: absolute; inset: 18%; border: 1px solid #000; border-radius: 50%; opacity: .52; box-shadow: inset 0 0 0 4px #fff, 0 0 0 3px var(--orange); }
.coin-face::after { content: ''; position: absolute; inset: 13%; border-radius: 50%; background: repeating-conic-gradient(from 0deg, transparent 0 7deg, rgba(0,0,0,.9) 7deg 8deg, transparent 8deg 15deg); opacity: .22; }
.coin-face strong { position: relative; z-index: 1; display: block; color: var(--orange); font-family: Georgia, serif; font-size: clamp(24px, 3.6vw, 47px); font-weight: 950; letter-spacing: -.09em; line-height: .78; text-shadow: 1px 1px 0 #fff, -1px -1px 0 #000, 3px 3px 0 #000, 4px 5px 12px #000; }
.coin-bnl { --size: 255px; top: 9%; left: 3%; animation: coin-bnl 12s cubic-bezier(.43,.02,.39,1) infinite alternate; }
.coin-ing { --size: 183px; top: 1%; left: 36%; z-index: 1; animation: coin-ing 9s cubic-bezier(.43,.02,.39,1) infinite alternate; }
.coin-bcc { --size: 246px; top: 12%; right: 0; animation: coin-bcc 13s cubic-bezier(.43,.02,.39,1) infinite alternate; }
.coin-credem { --size: 194px; bottom: 7%; left: 2%; z-index: 3; animation: coin-credem 11s cubic-bezier(.43,.02,.39,1) infinite alternate; }
.coin-compass { --size: 282px; bottom: 1%; left: 31%; z-index: 4; animation: coin-compass 15s cubic-bezier(.43,.02,.39,1) infinite alternate; }
.coin-bcc .coin-face strong { font-size: clamp(28px, 4.1vw, 53px); }
.coin-credem .coin-face strong { font-size: clamp(19px, 2.7vw, 34px); letter-spacing: -.1em; }
.coin-compass .coin-face strong { font-size: clamp(18px, 2.9vw, 37px); }
.partner-film { position: relative; align-self: center; min-height: 510px; overflow: hidden; border-radius: 34px; background: #050505; box-shadow: 24px 30px 0 rgba(235,130,32,.13), 0 32px 70px rgba(0,0,0,.86); isolation: isolate; }
.partner-film::before { content: ''; position: absolute; z-index: 1; inset: 0; pointer-events: none; border: 1px solid rgba(255,255,255,.23); border-radius: inherit; background: linear-gradient(120deg, rgba(255,255,255,.09), transparent 24%, transparent 68%, rgba(235,130,32,.14)); }
.partner-film::after { content: ''; position: absolute; z-index: 1; pointer-events: none; inset: auto 7% 5%; height: 20%; border-radius: 50%; background: rgba(235,130,32,.22); filter: blur(48px); opacity: .5; }
.partner-video { display: block; width: 100%; height: 100%; min-height: 510px; object-fit: cover; object-position: center; }
.partner-note { grid-column: 1 / -1; max-width: 790px; margin: -30px 0 0; color: #fff; font-size: 11px; line-height: 1.55; opacity: .72; }
@keyframes coin-bnl { from { transform: translate3d(0, 0, 0) rotateX(26deg) rotateY(-41deg) rotateZ(-18deg); } to { transform: translate3d(22px, -19px, 78px) rotateX(53deg) rotateY(23deg) rotateZ(10deg); } }
@keyframes coin-ing { from { transform: translate3d(0, 0, 0) rotateX(68deg) rotateY(-52deg) rotateZ(22deg); } to { transform: translate3d(-15px, 24px, 110px) rotateX(31deg) rotateY(49deg) rotateZ(-12deg); } }
@keyframes coin-bcc { from { transform: translate3d(0, 0, 0) rotateX(32deg) rotateY(45deg) rotateZ(15deg); } to { transform: translate3d(-24px, -18px, 90px) rotateX(66deg) rotateY(-34deg) rotateZ(-17deg); } }
@keyframes coin-credem { from { transform: translate3d(0, 0, 0) rotateX(49deg) rotateY(-42deg) rotateZ(20deg); } to { transform: translate3d(30px, -18px, 95px) rotateX(26deg) rotateY(44deg) rotateZ(-20deg); } }
@keyframes coin-compass { from { transform: translate3d(0, 0, 0) rotateX(58deg) rotateY(21deg) rotateZ(-22deg); } to { transform: translate3d(-18px, 25px, 105px) rotateX(27deg) rotateY(-41deg) rotateZ(18deg); } }

.services { background: #000; color: #fff; }
.services-heading { border: 1px solid var(--orange); border-radius: 48px; background: var(--orange); color: #000; }
.services .section-label, .services h2 { color: #000; }
.services h2 em { color: #fff; }
.service-list { gap: 18px; }
.service-item, .service-item:hover { border: 1px solid #fff; border-radius: 30px; background: #000; color: #fff; box-shadow: none; }
.service-item.service-featured, .service-item.service-featured:hover { background: var(--orange); border-color: var(--orange); color: #000; }
.service-item:nth-child(2), .service-item:nth-child(2):hover, .service-item:nth-child(4), .service-item:nth-child(4):hover { background: #fff; border-color: #fff; color: #000; }
.service-item:nth-child(5), .service-item:nth-child(5):hover { background: #000; border-color: var(--orange); color: #fff; }
.service-index, .service-arrow { color: currentColor; }
.service-item h3, .service-item p { color: currentColor; opacity: 1; }
.services-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 18px; padding: 24px 28px; border: 1px solid #fff; border-radius: 24px; background: #000; }
.services-cta p { margin: 0; color: #fff; font-size: 15px; font-weight: 700; }
.services-cta a { display: inline-flex; align-items: center; gap: 9px; padding: 12px 16px; border-radius: 999px; background: #fff; color: #000; font-size: 12px; font-weight: 800; transition: background .2s ease, transform .2s ease; }
.services-cta a span { color: var(--orange); font-size: 16px; }
.services-cta a:hover { background: var(--orange); transform: translateY(-2px); }
.services-cta a:hover span { color: #000; }

.method { gap: 48px; padding: 72px 0; border-top: 1px solid #fff; }
.method-aside, .steps, .steps li { border-color: #fff; }
.method-aside .section-label, .steps li>span { color: var(--orange); }
.method-aside p, .steps h3, .steps p { color: #fff; }
.steps { padding-top: 0; margin-top: 30px; }
.steps li { grid-template-columns: 54px 1fr; padding: 17px 0; }
.steps p { margin-top: 3px; line-height: 1.45; }

.territory { padding: 0 0 120px; }
.territory-photo { position: relative; min-height: 600px; margin: 0; overflow: hidden; border: 1px solid #fff; border-radius: 44px; background: #000; }
.territory-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.8) 34%, rgba(0,0,0,.08) 72%); pointer-events: none; }
.territory-photo>img, .territory-photo>video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; filter: saturate(.78) contrast(1.12); }
.territory-satellite { position: absolute; inset: 0; overflow: hidden; background: #07101a; isolation: isolate; }
.satellite-world { position: absolute; inset: -8%; transform-origin: 67% 61%; animation: satellite-descent 19s cubic-bezier(.32,.02,.15,1) infinite alternate; will-change: transform; }
.satellite-world img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 65% 59%; filter: saturate(.87) contrast(1.18) brightness(.78); }
.satellite-world::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 67% 61%, rgba(235,130,32,.16), transparent 13%), linear-gradient(135deg, rgba(0,0,0,.2), transparent 44%); mix-blend-mode: screen; }
.satellite-brindisi { position: absolute; left: 67%; top: 61%; width: 13px; height: 13px; border: 2px solid #fff; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 7px rgba(235,130,32,.18), 0 0 32px rgba(235,130,32,.82); }
.satellite-brindisi::before, .satellite-brindisi::after { content: ''; position: absolute; inset: -14px; border: 1px solid rgba(235,130,32,.68); border-radius: 50%; animation: satellite-ping 2.8s ease-out infinite; }
.satellite-brindisi::after { animation-delay: 1.4s; }
.satellite-brindisi span { position: absolute; left: 20px; top: -5px; padding: 5px 8px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; background: rgba(0,0,0,.58); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.satellite-scan { position: absolute; inset: -20% -35%; background: linear-gradient(105deg, transparent 43%, rgba(255,255,255,.16) 49%, rgba(235,130,32,.09) 50%, transparent 57%); transform: translateX(-65%); mix-blend-mode: screen; animation: satellite-scan 12s ease-in-out infinite; pointer-events: none; }
@keyframes satellite-descent { from { transform: scale(1) translate3d(.5%, .7%, 0) rotate(-.45deg); } to { transform: scale(1.16) translate3d(-1.8%, -2.1%, 0) rotate(.28deg); } }
@keyframes satellite-ping { 0% { transform: scale(.35); opacity: .95; } 80%, 100% { transform: scale(1.35); opacity: 0; } }
@keyframes satellite-scan { 0%, 18% { transform: translateX(-65%) rotate(-3deg); opacity: 0; } 30% { opacity: 1; } 62% { transform: translateX(65%) rotate(-3deg); opacity: .7; } 75%, 100% { transform: translateX(65%) rotate(-3deg); opacity: 0; } }
.territory-photo figcaption { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: 600px; max-width: 570px; padding: 70px; color: #fff; }
.territory-photo h2 { margin: 0; color: #fff; font-size: clamp(42px,4.35vw,68px); line-height: .98; font-weight: 800; }
.territory-photo h2 em, .territory-photo .text-link { color: var(--orange); }
.territory-photo p { max-width: 460px; color: #fff; font-size: 15px; line-height: 1.75; }
.territory-credit { display: inline-flex; align-self: flex-start; margin-top: 14px; color: rgba(255,255,255,.78); font-size: 11px; line-height: 1.4; text-decoration: none; transition: color .2s ease; }
.territory-credit:hover { color: #fff; }
.territory-cta { display: inline-flex; align-items: center; align-self: flex-start; gap: 10px; margin: 22px 0 5px; padding: 13px 17px; border: 1px solid var(--orange); border-radius: 999px; background: var(--orange); color: #000; font-size: 12px; font-weight: 800; transition: background .2s ease, transform .2s ease; }
.territory-cta:hover { background: #fff; transform: translateY(-2px); }
.territory-cta span { font-size: 16px; }

.contact { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; padding: 118px 0; background: #000; color: #fff; box-shadow: 0 0 0 100vmax #000; clip-path: inset(0 -100vmax); }
.contact-intro { display: flex; flex-direction: column; justify-content: center; }
.contact .eyebrow, .contact h2, .contact h2 em, .contact-lead { color: #fff; }
.contact h2 em { color: var(--orange); }
.contact .eyebrow span { background: var(--orange); }
.contact-status { display: flex; align-items: center; gap: 10px; margin: 8px 0 0; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.contact-status span { width: 9px; height: 9px; border-radius: 50%; background: var(--orange); }
.contact-console { display: grid; gap: 16px; margin: 0; padding: 18px; border: 1px solid #fff; border-radius: 38px; background: #fff; color: #000; font-style: normal; }
.whatsapp-primary { display: grid; grid-template-columns: auto 1fr auto; gap: 17px; align-items: center; min-height: 132px; padding: 25px; border: 1px solid var(--whatsapp); border-radius: 28px; background: #000; color: #fff; transition: transform .25s ease, background .25s ease; }
.whatsapp-primary:hover { background: var(--whatsapp); color: #000; transform: translateY(-3px); }
.whatsapp-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: var(--whatsapp); }
.whatsapp-icon img { width: 28px; height: 28px; filter: invert(1); }
.whatsapp-primary small, .contact-details span { display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.whatsapp-primary small { color: var(--whatsapp); }
.contact-details span { color: #000; }
.whatsapp-primary strong { display: block; margin-top: 5px; color: #fff; font-size: 20px; letter-spacing: -.03em; }
.whatsapp-primary:hover small { color: #000; }
.whatsapp-primary:hover strong { color: #000; }
.whatsapp-primary i { font-size: 27px; font-style: normal; }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; border-radius: 24px; background: #000; }
.contact-details a { min-height: 112px; padding: 21px; background: #fff; color: #000; transition: background .2s ease, color .2s ease; }
.contact-details a:last-child { grid-column: 1 / -1; }
.contact-details a:hover { background: #000; color: #fff; }
.contact-details a:hover span, .contact-details a:hover strong { color: #fff; }
.contact-details strong { display: block; margin-top: 8px; font-size: 15px; letter-spacing: -.02em; }
.contact-social { display: flex; flex-wrap: wrap; gap: 8px; padding: 3px 3px 0; }
.contact-social p { flex: 0 0 100%; margin: 0 0 2px; color: #000; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-social a { display: inline-flex; flex: 1 1 130px; align-items: center; gap: 9px; min-height: 44px; padding: 9px 12px; border: 1px solid #000; border-radius: 14px; color: #000; font-size: 12px; font-weight: 800; transition: background .2s ease, color .2s ease, transform .2s ease; }
.contact-social a:hover { background: #000; color: #fff; transform: translateY(-2px); }
.contact-social img, .footer-social img { flex: 0 0 auto; width: 20px; height: 20px; }
.contact-social b { margin-left: auto; font-size: 15px; line-height: 1; }
.floating-whatsapp { position: fixed; z-index: 40; right: 24px; bottom: 24px; display: inline-flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 20px; border: 1px solid #000; border-radius: 999px; background: var(--whatsapp); color: #000; box-shadow: 8px 8px 0 #fff; font-size: 12px; font-weight: 800; letter-spacing: .02em; transition: transform .25s ease, background .25s ease; }
.floating-whatsapp:hover { background: #fff; color: #000; transform: translateY(-4px); }
.floating-whatsapp img { width: 25px; height: 25px; }

.faq { border-top-color: #fff; }
.faq-list, .faq-list details { border-color: #fff; }
.faq h2, .faq-list summary, .faq-list details p { color: #fff; }
.faq-list summary span { color: var(--orange); }
.faq-contact-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; padding: 20px; border: 1px solid var(--whatsapp); border-radius: 20px; background: #000; }
.faq-contact-cta>span { color: #fff; font-size: 13px; font-weight: 700; }
.faq-contact-cta a { display: inline-flex; align-items: center; gap: 9px; color: var(--whatsapp); font-size: 12px; font-weight: 800; }
.faq-contact-cta a>span { font-size: 16px; }
.faq-contact-cta a:hover { color: #fff; }

.site-footer { grid-template-columns: minmax(150px, .8fr) minmax(240px, 1.55fr) auto auto; gap: 32px; border-top-color: var(--orange); background: #000; color: #fff; }
.footer-brand, .site-footer>div>p, .footer-links a, .fine-print { color: #fff; }
.footer-meta img { background: transparent; }
.footer-links a:hover { color: var(--orange); }
.footer-social { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.footer-social a { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; font-size: 11px; font-weight: 800; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.footer-social a:hover { border-color: var(--orange); background: var(--orange); color: #000; }
.fine-print { border-top-color: #fff; }

@media (max-width: 900px) {
  .site-footer { grid-template-columns: 1fr 1fr; gap: 30px; }
}

@media (max-width: 580px) {
  .site-footer { grid-template-columns: 1fr; gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .coin { animation: none; }
  .satellite-world, .satellite-scan, .satellite-brindisi::before, .satellite-brindisi::after { animation: none; }
}

/* Internal pages stay in the same high-contrast noir system. */
.service-page .site-header, .legal-page .site-header { border-color: #fff; }
.service-crumbs, .service-crumbs a { color: #fff; }
.service-hero, .service-section { border-color: #fff; }
.service-hero h1, .service-section h2, .service-cta h2, .service-hero p, .service-section p, .service-cta p, .check-list li, .service-steps h3, .service-steps p { color: #fff; }
.service-hero h1 em, .service-section h2 em, .service-cta h2 em, .check-list li::before, .service-steps span { color: var(--orange); }
.service-promise, .service-cta { border: 1px solid var(--orange); border-radius: 34px; background: var(--orange); color: #000; }
.service-promise span, .service-promise p, .service-cta h2, .service-cta h2 em, .service-cta p { color: #000; }
.service-documents { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; padding: 74px 0; border-bottom: 1px solid #fff; }
.service-documents-intro h2 { margin: 12px 0 18px; color: #fff; font-size: clamp(31px, 3.3vw, 48px); line-height: 1.04; letter-spacing: -.05em; }
.service-documents-intro h2 em { color: var(--orange); }
.service-documents-intro p:not(.section-label) { max-width: 380px; margin: 0; color: #fff; font-size: 14px; line-height: 1.65; }
.document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.document-card { padding: 25px; border: 1px solid #fff; border-radius: 24px; background: #000; }
.document-card h3 { margin: 0 0 18px; color: #fff; font-size: 16px; letter-spacing: -.025em; }
.document-card ul { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; }
.document-card li { position: relative; padding-left: 17px; color: #fff; font-size: 12px; line-height: 1.5; }
.document-card li::before { content: '•'; position: absolute; left: 0; color: var(--orange); }
.document-links { display: grid; gap: 1px; overflow: hidden; border-radius: 14px; background: #fff; }
.document-links a { display: flex; align-items: center; min-height: 48px; padding: 11px 13px; background: #000; color: #fff; font-size: 11px; font-weight: 800; line-height: 1.25; transition: background .2s ease, color .2s ease; }
.document-links a:hover { background: #fff; color: #000; }
.document-note { grid-column: 1 / -1; margin: -30px 0 0; padding: 14px 17px; border-left: 2px solid var(--orange); background: #000; color: #fff; font-size: 11px; line-height: 1.55; }
.service-footer { border-top-color: var(--orange); }
.legal-main { color: #fff; }
.legal-main h1, .legal-main h2, .legal-main p, .legal-main li, .legal-main a, .legal-back { color: #fff; }
.legal-main a:hover, .legal-back:hover { color: var(--orange); }
.legal-note { border-left-color: var(--orange); background: #000; color: #fff; }

@media (max-width: 900px) {
  .weunit-inline { width: 112px; }
  .story-surface { grid-template-columns: 1fr; }
  .story-copy { padding: 44px 48px 24px; }
  .story-visual { min-height: 430px; }
  .partner-showcase { grid-template-columns: 1fr; min-height: 0; padding-top: 110px; padding-bottom: 90px; }
  .partner-showcase::before { top: 38%; left: 18%; width: 84vw; }
  .partner-copy { padding-bottom: 0; }
  .coin-stage { width: min(700px, 100%); min-height: 630px; margin: 0 auto; }
  .partner-film { width: min(700px, 100%); min-height: 470px; margin: 0 auto; }
  .partner-video { min-height: 470px; }
  .partner-note { margin-top: -10px; }
  .services-cta { padding: 22px; }
  .method { gap: 30px; padding: 64px 0; }
  .steps { margin-top: 24px; }
  .service-documents { grid-template-columns: 1fr; gap: 28px; padding: 62px 0; }
  .service-documents-intro p:not(.section-label) { max-width: 560px; }
  .territory-photo, .territory-photo figcaption { min-height: 520px; }
  .territory-photo figcaption { padding: 54px 48px; }
  .contact { grid-template-columns: 1fr; gap: 42px; padding: 88px 0; }
}
@media (max-width: 580px) {
  .brand>span:nth-child(2) { display: none; }
  .weunit-inline { width: 95px; margin-left: 0; }
  .story-surface, .services-heading, .territory-photo { border-radius: 30px; }
  .story-copy { padding: 38px 25px 12px; }
  .story-visual { min-height: 370px; padding: 25px; }
  .story-monogram { width: 108px; height: 108px; }
  .story-pulse.pulse-one { width: 280px; height: 280px; }
  .story-pulse.pulse-two { width: 188px; height: 188px; }
  .story-card { padding: 14px 16px; }
  .story-card h3 { margin-top: 10px; font-size: 17px; }
  .story-card p { font-size: 10px; }
  .story-card { border-radius: 22px; }
  .hero-monogram { inset: 42px 18px 0 0; box-shadow: 12px 12px 0 var(--orange); }
  .partner-showcase { row-gap: 10px; padding-top: 80px; padding-bottom: 70px; }
  .partner-showcase::after { top: 42%; right: 0; width: 75vw; height: 75vw; }
  .partner-copy h2 { font-size: clamp(42px, 12vw, 59px); }
  .partner-copy>p:not(.section-label) { font-size: 15px; }
  .partner-actions { display: grid; margin-top: 25px; }
  .partner-link { margin-top: 25px; padding: 13px 16px; font-size: 10px; }
  .partner-actions .partner-link { width: 100%; justify-content: space-between; margin-top: 0; }
  .coin-stage { min-height: 475px; margin: 10px -10px 0; width: calc(100% + 20px); }
  .partner-film { min-height: 300px; margin: 10px 0 0; border-radius: 22px; }
  .partner-video { min-height: 300px; }
  .coin { filter: drop-shadow(10px 16px 0 rgba(235,130,32,.22)); }
  .coin-bnl { --size: 178px; top: 10%; left: 0; }
  .coin-ing { --size: 124px; top: 2%; left: 37%; }
  .coin-bcc { --size: 169px; top: 13%; right: -5%; }
  .coin-credem { --size: 135px; bottom: 11%; left: 0; }
  .coin-compass { --size: 194px; bottom: 2%; left: 28%; }
  .coin-face { box-shadow: inset 0 0 0 5px #fff, inset 0 0 0 6px #000, inset 0 0 0 11px #fff, inset 0 0 0 12px var(--orange); }
  .partner-note { margin-top: 5px; font-size: 10px; }
  .inline-cta { margin-top: 26px; font-size: 12px; }
  .services-cta { align-items: flex-start; padding: 20px; border-radius: 20px; }
  .services-cta p { font-size: 14px; }
  .services-cta a { width: 100%; justify-content: space-between; }
  .method { padding: 54px 0; }
  .steps li { grid-template-columns: 42px 1fr; padding: 14px 0; }
  .service-documents { padding: 50px 0; gap: 23px; }
  .document-grid { grid-template-columns: 1fr; }
  .document-card { padding: 21px; border-radius: 20px; }
  .document-note { margin-top: -10px; font-size: 10px; }
  .territory { padding-bottom: 78px; }
  .territory-photo, .territory-photo figcaption { min-height: 570px; }
  .territory-photo>img, .territory-photo>video { object-position: 64% center; }
  .satellite-world img { object-position: 67% 60%; }
  .territory-photo figcaption { padding: 34px 25px; }
  .territory-cta { margin-top: 18px; }
  .faq-contact-cta { align-items: flex-start; padding: 18px; }
  .faq-contact-cta a { width: 100%; justify-content: space-between; }
  .contact-console { padding: 12px; border-radius: 30px; }
  .whatsapp-primary { min-height: 116px; padding: 20px; border-radius: 22px; }
  .whatsapp-primary strong { font-size: 17px; }
  .contact-details { grid-template-columns: 1fr; border-radius: 20px; }
  .contact-details a, .contact-details a:last-child { grid-column: auto; min-height: 90px; }
  .floating-whatsapp { right: 16px; bottom: 16px; width: 58px; padding: 0; justify-content: center; box-shadow: 5px 5px 0 #fff; }
  .floating-whatsapp span { display: none; }
}

/* Homepage light edition: white is the main canvas, with gradual cinematic transitions to noir. */
body:not(.service-page):not(.legal-page) { color: #0c0c0c; background: #000; }
body:not(.service-page):not(.legal-page) main { background: transparent; }

#rete-istituti.partner-showcase,
#territorio.territory,
.faq.section-shell,
#contatti.contact { width: 100%; max-width: none; margin: 0; padding-right: max(40px, calc((100vw - var(--max)) / 2)); padding-left: max(40px, calc((100vw - var(--max)) / 2)); }

#rete-istituti.partner-showcase { min-height: 920px; padding-top: 260px; padding-bottom: 130px; border-top: 0; background: linear-gradient(180deg, #000 0, #202020 7%, #b9b9b9 14%, #fff 24%, #fff 100%); }
#rete-istituti.partner-showcase::before { border-color: #000; opacity: .13; }
#rete-istituti.partner-showcase::after { opacity: .08; }
#rete-istituti .partner-copy h2,
#rete-istituti .partner-copy > p:not(.section-label),
#rete-istituti .partner-note { color: #000; }
#rete-istituti .partner-copy h2 em { color: var(--orange); }
#rete-istituti .partner-link { border-color: #000; color: #000; }
#rete-istituti .partner-link:hover { background: #000; color: #fff; }
#rete-istituti .partner-link:hover span { color: var(--orange); }
#rete-istituti .partner-link-primary { border-color: var(--orange); background: var(--orange); color: #000; }
#rete-istituti .partner-link-primary:hover { background: #000; color: #fff; }
#rete-istituti .partner-note { opacity: .7; }
.partner-film { box-shadow: 20px 25px 0 rgba(235,130,32,.18), 0 32px 70px rgba(0,0,0,.28); }

#chi-sono.intro-band,
#percorso.scrolly-story,
#servizi.services,
#metodo.method { position: relative; background: #fff; color: #000; box-shadow: 0 0 0 100vmax #fff; clip-path: inset(0 -100vmax); }
#chi-sono.intro-band { border-top-color: rgba(0,0,0,.16); }
#chi-sono h2,
#chi-sono .large-copy,
#chi-sono .principle-grid h3,
#chi-sono .principle-grid p { color: #000; }
#chi-sono h2 em { color: var(--orange); }
#chi-sono .principle-grid,
#chi-sono .principle-grid article { border-color: rgba(0,0,0,.2); }
#chi-sono .inline-cta { color: #000; }
#chi-sono .inline-cta:hover { color: var(--orange); border-color: #000; }

#percorso.scrolly-story { padding-top: 12px; }
#percorso .story-surface { border-color: #000; background: #fff; color: #000; }
#percorso .story-copy .section-label,
#percorso .story-copy h2,
#percorso .story-intro,
#percorso .story-steps span,
#percorso .story-steps span.is-active { color: #000; }
#percorso .story-copy h2 em,
#percorso .story-steps span b { color: var(--orange); }
#percorso .story-pulse { border-color: #000; }
#percorso .story-card { border-color: #000; background: #000; color: #fff; }
#percorso .story-card span { color: var(--orange); }
#percorso .story-card h3,
#percorso .story-card p { color: #fff; }
#percorso .story-card-two { background: var(--orange); color: #000; border-color: var(--orange); }
#percorso .story-card-two span,
#percorso .story-card-two h3,
#percorso .story-card-two p { color: #000; }
#percorso .story-card-three { background: #fff; color: #000; border-color: #000; }
#percorso .story-card-three span { color: var(--orange); }
#percorso .story-card-three h3,
#percorso .story-card-three p { color: #000; }

#servizi.services { padding-top: 104px; }
#servizi.services::before,
#servizi.services::after { background: rgba(0,0,0,.2); }
#servizi .services-heading { border-color: var(--orange); background: var(--orange); color: #000; }
#servizi .services-heading .section-label,
#servizi .services-heading h2 { color: #000; }
#servizi .services-heading h2 em { color: #fff; }
#servizi .service-list { border-top: 0; }
#servizi .service-item,
#servizi .service-item:hover { border-color: #000; background: #fff; color: #000; }
#servizi .service-item.service-featured,
#servizi .service-item.service-featured:hover { border-color: var(--orange); background: var(--orange); color: #000; }
#servizi .service-item:nth-child(2),
#servizi .service-item:nth-child(2):hover,
#servizi .service-item:nth-child(5),
#servizi .service-item:nth-child(5):hover { border-color: #000; background: #000; color: #fff; }
#servizi .service-item:nth-child(4),
#servizi .service-item:nth-child(4):hover { border-color: #000; background: #fff; color: #000; }
#servizi .services-cta { border-color: #000; background: #fff; }
#servizi .services-cta p { color: #000; }
#servizi .services-cta a { background: #000; color: #fff; }
#servizi .services-cta a:hover { background: var(--orange); color: #000; }

#metodo.method { border-top-color: rgba(0,0,0,.2); }
#metodo .method-aside p,
#metodo .steps h3,
#metodo .steps p,
#metodo h2 { color: #000; }
#metodo h2 em { color: var(--orange); }
#metodo .method-aside,
#metodo .steps,
#metodo .steps li { border-color: rgba(0,0,0,.2); }

#territorio.territory { padding-top: 220px; padding-bottom: 120px; background: linear-gradient(180deg, #fff 0, #c8c8c8 8%, #292929 20%, #000 31%, #000 100%); }
#territorio .territory-photo { border-color: #fff; }

.faq.section-shell { padding-top: 280px; padding-bottom: 120px; background: linear-gradient(180deg, #000 0, #292929 10%, #d7d7d7 24%, #fff 34%, #fff 100%); color: #000; }
.faq h2,
.faq-list summary,
.faq-list details p { color: #000; }
.faq h2 em,
.faq-list summary span { color: var(--orange); }
.faq,
.faq-list,
.faq-list details { border-color: rgba(0,0,0,.2); }
.faq-contact-cta { border-color: var(--whatsapp); background: #fff; }
.faq-contact-cta > span { color: #000; }
.faq-contact-cta a { color: var(--whatsapp); }
.faq-contact-cta a:hover { color: #000; }

#contatti.contact { padding-top: 286px; padding-bottom: 118px; background: linear-gradient(180deg, #fff 0, #c8c8c8 9%, #292929 22%, #000 33%, #000 100%); box-shadow: none; clip-path: none; }
#contatti .contact-console { border-color: #fff; }

@media (max-width: 900px) {
  #rete-istituti.partner-showcase,
  #territorio.territory,
  .faq.section-shell,
  #contatti.contact { padding-right: 22px; padding-left: 22px; }
  #rete-istituti.partner-showcase { min-height: 0; padding-top: 205px; }
  #territorio.territory { padding-top: 190px; }
  .faq.section-shell { padding-top: 230px; }
  #contatti.contact { padding-top: 235px; }
}

@media (max-width: 580px) {
  #rete-istituti.partner-showcase,
  #territorio.territory,
  .faq.section-shell,
  #contatti.contact { padding-right: 16px; padding-left: 16px; }
  #rete-istituti.partner-showcase { padding-top: 160px; }
  #territorio.territory { padding-top: 150px; padding-bottom: 78px; }
  .faq.section-shell { padding-top: 180px; padding-bottom: 82px; }
  #contatti.contact { padding-top: 190px; padding-bottom: 82px; }
}

/* Compact, static consultation route and a white hero ready for the future portrait. */
#inizio.hero { width: 100%; max-width: none; min-height: 730px; margin: 0; padding: 156px max(40px, calc((100vw - var(--max)) / 2)) 92px; background: linear-gradient(180deg, #000 0, #272727 8%, #d7d7d7 18%, #fff 28%, #fff 100%); color: #000; }
#inizio .hero-copy,
#inizio .hero .eyebrow,
#inizio .hero-kicker,
#inizio .hero h1,
#inizio .hero-lead,
#inizio .credential-row li,
#inizio .hero .text-link { color: #000; }
#inizio .hero h1 em { color: var(--orange); }
#inizio .credential-row,
#inizio .credential-row li + li { border-color: rgba(0,0,0,.25); }
#inizio .hero .text-link { border-color: #000; }
#inizio .hero .text-link:hover { color: var(--orange); border-color: var(--orange); }
#inizio .hero-note { background: #000; color: #fff; }

#rete-istituti.partner-showcase { min-height: 790px; padding-top: 150px; background: #fff; }

#percorso.scrolly-story { padding: 52px 0 68px; }
#percorso .scrolly-stage { width: min(var(--max), calc(100% - 80px)); }
#percorso .story-surface { display: block; min-height: 0; border-radius: 30px; }
#percorso .story-copy { display: block; padding: 34px 42px 18px; }
#percorso .story-copy h2 { font-size: clamp(34px, 3.2vw, 49px); }
#percorso .story-intro { max-width: 660px; margin-top: 12px; font-size: 13px; }
#percorso .story-steps { gap: 14px; margin-top: 18px; }
#percorso .story-steps span { font-size: 9px; }
#percorso .story-visual { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: 0; padding: 0 42px 38px; gap: 12px; }
#percorso .story-pulse,
#percorso .story-monogram { display: none; }
#percorso .story-card { position: relative; width: auto; min-height: 0; padding: 16px 18px; border-radius: 18px; box-shadow: none; opacity: 1; transform: none; }
#percorso .story-card h3 { margin: 10px 0 4px; font-size: 17px; }
#percorso .story-card p { font-size: 11px; line-height: 1.4; }

@media (max-width: 900px) {
  #inizio.hero { min-height: 0; padding: 130px 22px 82px; }
  #rete-istituti.partner-showcase { min-height: 0; padding-top: 110px; }
  #percorso.scrolly-story { padding: 38px 0 50px; }
  #percorso .scrolly-stage { width: min(var(--max), calc(100% - 44px)); }
  #percorso .story-copy { padding: 30px 30px 15px; }
  #percorso .story-visual { padding: 0 30px 30px; }
}

@media (max-width: 580px) {
  #inizio.hero { padding: 110px 16px 72px; }
  #percorso.scrolly-story { padding: 28px 0 38px; }
  #percorso .scrolly-stage { width: calc(100% - 32px); }
  #percorso .story-surface { border-radius: 24px; }
  #percorso .story-copy { padding: 27px 22px 14px; }
  #percorso .story-copy h2 { font-size: 33px; }
  #percorso .story-visual { grid-template-columns: 1fr; padding: 0 22px 22px; gap: 8px; }
  #percorso .story-card { display: grid; grid-template-columns: 38px 1fr; column-gap: 11px; align-items: center; padding: 13px 14px; }
  #percorso .story-card span { grid-row: 1 / span 2; }
  #percorso .story-card h3 { margin: 0; }
  #percorso .story-card p { margin: 2px 0 0; max-width: none; }
}

/* Portrait placement: full figure, never cropped or zoomed, against the white hero. */
#inizio.hero { background: #fff; }
#inizio .hero h1 { color: #000 !important; }
#inizio .hero-title-main { color: var(--orange) !important; }
#inizio .hero h1 em { color: #000 !important; }
#inizio .hero .eyebrow,
#inizio .hero .text-link { color: var(--orange) !important; border-color: var(--orange); }
#inizio .hero-visual { min-height: 590px; }
#inizio .hero-portrait { position: absolute; z-index: 2; inset: -30px -14px -42px 4px; display: flex; align-items: flex-end; justify-content: center; pointer-events: none; }
#inizio .hero-portrait::before { content: none; }
#inizio .hero-portrait img { display: block; width: auto; max-width: 100%; height: 100%; max-height: 650px; object-fit: contain; object-position: center bottom; filter: drop-shadow(18px 26px 30px rgba(0,0,0,.24)); }
.mission-link{display:inline-grid;width:18px;height:18px;place-items:center;margin-left:7px;color:rgba(255,255,255,.28);text-decoration:none;vertical-align:middle;transition:color .2s ease,transform .2s ease}.mission-link:hover,.mission-link:focus-visible{color:var(--orange);transform:rotate(45deg)}

@media (max-width: 900px) {
  #inizio .hero-visual { min-height: 530px; }
  #inizio .hero-portrait { inset: -15px 0 -30px; }
  #inizio .hero-portrait img { max-height: 570px; }
}

@media (max-width: 580px) {
  #inizio .hero-visual { min-height: 445px; }
  #inizio .hero-portrait { inset: -5px 0 -18px; }
  #inizio .hero-portrait img { max-height: 470px; }
}

/* Final light-surface pass: no dark seams and no low-contrast copy on white. */
#chi-sono.intro-band,
#percorso.scrolly-story,
#servizi.services,
#metodo.method { width: 100%; max-width: none; margin: 0; padding-right: max(40px, calc((100vw - var(--max)) / 2)); padding-left: max(40px, calc((100vw - var(--max)) / 2)); box-shadow: none; clip-path: none; border-top: 0; }
#chi-sono.intro-band,
#percorso.scrolly-story,
#servizi.services,
#metodo.method,
.faq.section-shell { background-color: #fff; }
#chi-sono.intro-band::before,
#chi-sono.intro-band::after,
#servizi.services::before,
#servizi.services::after { display: none; }

#chi-sono h2,
#chi-sono .large-copy,
#chi-sono .principle-grid h3,
#chi-sono .principle-grid p,
#chi-sono .inline-cta,
#metodo h2,
#metodo .method-aside p,
#metodo .steps h3,
#metodo .steps p,
.faq h2,
.faq-list summary,
.faq-list details p,
.faq-contact-cta > span { color: #000 !important; }
#chi-sono h2 em,
#metodo h2 em,
.faq h2 em,
.faq-list summary span { color: var(--orange) !important; }
#chi-sono .principle-grid,
#chi-sono .principle-grid article,
#metodo .method-aside,
#metodo .steps,
#metodo .steps li,
.faq,
.faq-list,
.faq-list details { border-color: rgba(0,0,0,.16); }
#territorio .territory-photo { border: 0; }

@media (max-width: 900px) {
  #chi-sono.intro-band,
  #percorso.scrolly-story,
  #servizi.services,
  #metodo.method { padding-right: 22px; padding-left: 22px; }
}

@media (max-width: 580px) {
  #chi-sono.intro-band,
  #percorso.scrolly-story,
  #servizi.services,
  #metodo.method { padding-right: 16px; padding-left: 16px; }
}

/* Conversion-first homepage: clear decisions, compact journey, no visual reset. */
#inizio .hero-disclaimer { max-width: 490px; margin: 20px 0 0; color: rgba(0,0,0,.68); font-size: 10px; line-height: 1.5; }

.client-needs,
#percorso.work-path,
#metodo.situations { position: relative; width: 100%; max-width: none; margin: 0; padding-right: max(40px, calc((100vw - var(--max)) / 2)); padding-left: max(40px, calc((100vw - var(--max)) / 2)); background: #fff; color: #000; box-sizing: border-box; }
.client-needs { padding-top: 80px; padding-bottom: 104px; }
.client-needs-intro { display: grid; grid-template-columns: minmax(190px, .62fr) minmax(0, 1.65fr); column-gap: 70px; align-items: start; }
.client-needs-intro .section-label { grid-column: 1; grid-row: 1 / span 2; }
.client-needs h2,
.work-path h2,
.situations h2 { margin: 0; color: #000; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(40px, 4.35vw, 66px); font-weight: 600; letter-spacing: -.055em; line-height: .99; }
.client-needs h2 em,
.work-path h2 em,
.situations h2 em { color: var(--orange); font-weight: 500; }
.client-needs-intro>p:last-child { grid-column: 2; max-width: 590px; margin: 25px 0 0; color: #222; font-size: 17px; line-height: 1.72; }
.client-needs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 54px; }
.client-needs-grid article { min-height: 198px; padding: 28px; border-radius: 26px; background: #000; color: #fff; box-sizing: border-box; }
.client-needs-grid article:nth-child(2) { background: var(--orange); color: #000; }
.client-needs-grid article:nth-child(3) { border: 1px solid #000; background: #fff; color: #000; }
.client-needs-grid span,
.work-path-steps span { display: block; color: var(--orange); font-family: 'DM Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.client-needs-grid article:nth-child(2) span { color: #000; }
.client-needs-grid h3 { margin: 37px 0 8px; color: currentColor; font-size: 22px; letter-spacing: -.035em; }
.client-needs-grid p { margin: 0; color: currentColor; font-size: 13px; line-height: 1.58; }
.client-needs-cta,
.situations-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; padding: 13px 18px; border-radius: 999px; background: #000; color: #fff; font-size: 12px; font-weight: 800; transition: transform .2s ease, background .2s ease, color .2s ease; }
.client-needs-cta span,
.situations-cta span { color: var(--orange); font-size: 16px; }
.client-needs-cta:hover,
.situations-cta:hover { background: var(--orange); color: #000; transform: translateY(-2px); }
.client-needs-cta:hover span,
.situations-cta:hover span { color: #000; }

#percorso.work-path { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 4vw, 64px); align-items: start; padding-top: 92px; padding-bottom: 92px; }
.work-path-heading, .work-path-steps, .work-path-steps li { min-width: 0; }
.work-path h2 { font-size: clamp(36px, 3.5vw, 54px); line-height: 1.1; overflow-wrap: break-word; }
.work-path-heading>p:last-child { max-width: 340px; margin: 23px 0 0; color: #222; font-size: 14px; line-height: 1.65; }
.work-path-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.work-path-steps li { min-height: 176px; padding: 24px; border-radius: 24px; border: 1px solid #000; background: #fff; box-sizing: border-box; }
.work-path-steps li:nth-child(1),
.work-path-steps li:nth-child(4) { background: #000; color: #fff; }
.work-path-steps li:nth-child(2) { border-color: var(--orange); background: var(--orange); color: #000; }
.work-path-steps li:nth-child(2) span { color: #000; }
.work-path-steps h3 { margin: 34px 0 7px; color: currentColor; font-size: 19px; letter-spacing: -.03em; }
.work-path-steps p { max-width: 260px; margin: 0; color: currentColor; font-size: 12px; line-height: 1.5; }

#metodo.situations { padding-top: 62px; padding-bottom: 112px; }
.situations-heading { display: grid; grid-template-columns: minmax(190px, .62fr) minmax(0, 1.65fr); column-gap: 70px; }
.situations-heading .section-label { grid-column: 1; }
.situations-heading h2 { grid-column: 2; }
.situations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 54px; border: 1px solid rgba(0,0,0,.18); overflow: hidden; border-radius: 28px; background: rgba(0,0,0,.18); }
.situations-grid article { min-height: 158px; padding: 25px; background: #fff; box-sizing: border-box; transition: background .2s ease, color .2s ease; }
.situations-grid article:hover { background: #000; color: #fff; }
.situations-grid h3 { margin: 0 0 9px; color: currentColor; font-size: 18px; letter-spacing: -.03em; }
.situations-grid p { margin: 0; color: currentColor; font-size: 12px; line-height: 1.52; }

@media (max-width: 900px) {
  .client-needs,
  #percorso.work-path,
  #metodo.situations { padding-right: 22px; padding-left: 22px; }
  .client-needs { padding-top: 64px; padding-bottom: 78px; }
  .client-needs-intro,
  #percorso.work-path,
  .situations-heading { grid-template-columns: 1fr; gap: 25px; }
  .client-needs-intro .section-label,
  .client-needs-intro>p:last-child,
  .situations-heading .section-label,
  .situations-heading h2 { grid-column: auto; grid-row: auto; }
  .client-needs-intro>p:last-child { margin-top: -9px; }
  .client-needs-grid { margin-top: 36px; }
  #percorso.work-path { padding-top: 72px; padding-bottom: 72px; }
  .work-path-heading>p:last-child { margin-top: 20px; }
  #metodo.situations { padding-top: 36px; padding-bottom: 84px; }
  .situations-grid { margin-top: 36px; }
}

@media (max-width: 580px) {
  #inizio .hero-disclaimer { max-width: 330px; font-size: 9px; }
  .client-needs,
  #percorso.work-path,
  #metodo.situations { padding-right: 16px; padding-left: 16px; }
  .client-needs { padding-top: 54px; padding-bottom: 64px; }
  .client-needs h2,
  .work-path h2,
  .situations h2 { font-size: 38px; }
  .client-needs-intro>p:last-child { font-size: 15px; }
  .client-needs-grid,
  .work-path-steps,
  .situations-grid { grid-template-columns: 1fr; }
  .client-needs-grid { gap: 9px; margin-top: 29px; }
  .client-needs-grid article { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; align-items: start; min-height: 0; padding: 18px; }
  .client-needs-grid h3 { margin: 0; font-size: 18px; }
  .client-needs-grid p { grid-column: 2; margin-top: 3px; }
  #percorso.work-path { gap: 19px; padding-top: 58px; padding-bottom: 58px; }
  .work-path-steps { gap: 8px; }
  .work-path-steps li { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; min-height: 0; padding: 17px; }
  .work-path-steps h3 { margin: 0; font-size: 17px; }
  .work-path-steps p { grid-column: 2; margin-top: 2px; }
  #metodo.situations { padding-top: 28px; padding-bottom: 68px; }
  .situations-grid { gap: 1px; margin-top: 29px; border-radius: 20px; }
  .situations-grid article { min-height: 0; padding: 18px; }
}

/* Mobile containment and persistent contact actions. */
*,
*::before,
*::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; }
body { max-width: 100%; overflow-x: hidden; }
img,
video,
canvas { max-width: 100%; }
.mobile-contact-bar { display: none; }

@media (max-width: 768px) {
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .hero-visual,
  .partner-showcase,
  .territory,
  .satellite-world { max-width: 100%; }
  .hero-visual { margin-right: 0; }
  .mobile-contact-bar { position: fixed; z-index: 80; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); left: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px; border: 1px solid rgba(255,255,255,.25); border-radius: 20px; background: rgba(0,0,0,.94); box-shadow: 0 14px 34px rgba(0,0,0,.32); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
  .mobile-contact-bar a { display: inline-flex; min-width: 0; min-height: 50px; align-items: center; justify-content: center; gap: 8px; border-radius: 13px; font-size: 12px; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; }
  .mobile-contact-call { background: #fff; color: #000; }
  .mobile-contact-call span { color: var(--orange); font-size: 17px; line-height: 1; }
  .mobile-contact-whatsapp { background: var(--whatsapp); color: #000; }
  .mobile-contact-whatsapp img { flex: 0 0 auto; width: 20px; height: 20px; }
  .floating-whatsapp { display: none; }
  .contact-social a { flex-basis: 100%; }
}

@media (max-width: 360px) {
  .mobile-contact-bar { right: 7px; left: 7px; gap: 6px; padding: 6px; border-radius: 17px; }
  .mobile-contact-bar a { min-height: 47px; gap: 6px; font-size: 11px; }
}

/* Service-page answers and contextual internal links. */
.service-faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; padding: 74px 0; border-bottom: 1px solid rgba(255,255,255,.56); }
.service-faq h2 { margin: 12px 0 0; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(31px,3.3vw,48px); line-height: 1.04; letter-spacing: -.05em; }
.service-faq h2 em { color: var(--orange); font-weight: 500; }
.service-faq-list { border-top: 1px solid rgba(255,255,255,.56); }
.service-faq-list details { border-bottom: 1px solid rgba(255,255,255,.56); }
.service-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 0; color: #fff; cursor: pointer; font-size: 15px; font-weight: 750; list-style: none; }
.service-faq-list summary::-webkit-details-marker { display: none; }
.service-faq-list summary span { color: var(--orange); font-family: 'DM Mono', monospace; font-size: 22px; font-weight: 400; transition: transform .2s ease; }
.service-faq-list details[open] summary span { transform: rotate(45deg); }
.service-faq-list p { max-width: 630px; margin: 0; padding: 0 40px 22px 0; color: rgba(255,255,255,.82); font-size: 14px; line-height: 1.68; }
.service-related { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 28px 0 8px; }
.service-related > span { margin-right: 4px; color: rgba(255,255,255,.7); font-family: 'DM Mono', monospace; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.service-related a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.48); border-radius: 999px; color: #fff; font-size: 12px; font-weight: 750; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.service-related a:hover { border-color: var(--orange); background: var(--orange); color: #000; }
.service-related b { color: var(--orange); font-size: 15px; line-height: 1; }
.service-related a:hover b { color: #000; }

@media (max-width: 900px) {
  .service-faq { grid-template-columns: 1fr; gap: 28px; padding: 62px 0; }
}

@media (max-width: 580px) {
  .service-faq { gap: 23px; padding: 50px 0; }
  .service-faq-list summary { padding: 17px 0; font-size: 14px; }
  .service-faq-list p { padding-right: 0; font-size: 13px; }
  .service-related { gap: 8px; padding-top: 22px; }
  .service-related > span { width: 100%; margin-bottom: 2px; }
}

/* Light canvas for every inner page: the homepage remains the brand reference. */
html,body,.service-page,.legal-page{background:#fff;color:#0c0c0c}
body:not(.service-page):not(.legal-page){background:#fff;color:#0c0c0c}
.service-page .site-header,.legal-page .site-header{border-color:#000}
.service-crumbs{color:#5f6462}.service-crumbs a{color:#000}
.service-hero,.service-section{border-color:#d8d8d8}
.service-hero h1,.service-section h2,.service-cta h2,.service-hero p,.service-section p,.service-cta p,.check-list li,.service-steps h3,.service-steps p{color:#0c0c0c}
.service-hero h1 em,.service-section h2 em,.service-cta h2 em,.check-list li::before,.service-steps span{color:var(--orange)}
.service-cta{background:#f2f2f2}
.legal-main,.legal-main h1,.legal-main h2,.legal-main p,.legal-main li,.legal-main a,.legal-back{color:#0c0c0c}
.legal-main a:hover,.legal-back:hover{color:var(--orange)}

/* Text on the light canvas must not inherit the earlier dark-theme colours. */
.service-documents,.service-faq,.service-faq-list,.service-faq-list details,.service-related a{border-color:#d8d8d8}
.service-documents-intro h2,.service-faq h2,.service-faq-list summary,.service-related a{color:#0c0c0c}
.service-documents-intro p:not(.section-label),.service-faq-list p{color:#42514a}
.service-related>span{color:#5f6462}
.legal-note{background:#f2f2f2;color:#0c0c0c}
