


:root {
  color-scheme: dark;
  --ink:#191818;
  --surface:#111111;
  --surface-2:#222121;
  --line:#474646;
  --text:#D1D0D0;
  --muted:#B8B8B8;
  --yellow:#FFD300;
  --yellow-soft:rgba(255,211,0,.1);
  --radius:0;
}

body { background:var(--ink); color:var(--text); font-family:Arial,Helvetica,sans-serif; }


:root { --page-gutter:clamp(22px,5vw,80px); }
main .container { width:calc(100% - var(--page-gutter) * 2); max-width:none; }

.legal > p,.legal > ul,.legal > ol,.legal > h2,.legal > h3 { max-width:76ch; }
h1,h2,h3 { font-weight:500; }
.section--surface { background:#111; }
.lead,.muted,.legal p,.legal li { color:var(--muted); }
.eyebrow,.accent,.detail-card__number,.service-card__index,.project-category,.stock,.price,.hashtag,.filter-chip.is-active { color:var(--yellow); }

.eyebrow { display:flex; align-items:center; gap:16px; margin-bottom:30px; font-family:"Courier New",monospace; font-size:11px; line-height:1.5; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.eyebrow::before { display:none; content:none; }
.eyebrow .section-number { color:#8D8C8C; opacity:1; }


.header { min-height:73px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:13px clamp(22px,5vw,80px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; background:rgba(25,24,24,.97); transition:transform .28s ease; will-change:transform; }
.header.is-hidden { transform:translateY(-105%); }

.header { background:rgba(25,24,24,.78); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.brand { width:158px; display:grid; gap:5px; flex:0 0 auto; }
.brand img { width:100%; height:auto; }
.tricolore { width:86%; height:2px; margin:auto; background:linear-gradient(90deg,#27824f 33.33%,#fff 33.33% 66.66%,#c54137 66.66%); }
.navigation { display:flex; align-items:center; gap:26px; margin-left:auto; font-size:13px; }
.navigation a { position:relative; padding:10px 0; }
.navigation a::after { content:''; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:currentColor; transition:right .2s ease; }
.navigation a:hover,.navigation a[aria-current=page] { color:var(--yellow); }
.navigation a:hover::after,.navigation a[aria-current=page]::after { right:0; }
.header-actions { display:flex; align-items:center; gap:18px; }
.cart-link { position:relative; width:34px; height:34px; display:grid; place-items:center; transition:color .2s,transform .2s; }
.cart-link svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.cart-link:hover { color:var(--yellow); transform:translateY(-2px); }
.cart-count { position:absolute; right:-7px; top:-7px; min-width:18px; height:18px; display:grid; place-items:center; padding:0 4px; border-radius:9px; background:#D1D0D0; color:#191818; font-size:9px; font-weight:800; }
.cart-count[hidden] { display:none; }
.menu-toggle { display:none; width:44px; height:44px; flex:0 0 44px; padding:10px; border:0; border-radius:0; background:none; color:inherit; }
/* Larghezza esplicita: place-items ereditato può ridurre a zero gli span
   vuoti dentro un button, rendendo invisibile l'icona nonostante sia cliccabile. */
.menu-toggle span { display:block; width:24px; height:2px; margin:5px 0; background:currentColor; }
.menu-toggle:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.skip { position:fixed; top:-70px; left:20px; z-index:100; padding:12px 22px; background:#D1D0D0; color:#191818; }
.skip:focus { top:12px; }


.button { border:1px solid #A3A2A2; border-radius:0; background:linear-gradient(135deg,#D1D0D0,#757474); color:#191818; }
.button:hover { border-color:#D1D0D0; background:linear-gradient(135deg,#fff,#A3A2A2); }
.button--ghost { background:transparent; color:var(--text); border-color:#757474; }
.button--ghost:hover { background:#2B2A2A; border-color:#A3A2A2; }
.service-card,.project-card,.product-card,.info-card,.detail-card,.contact-form,.blog-card,.process,.product-strip__visual { border-radius:0; border-color:var(--line); background:#222121; }
.service-card:hover,.detail-card:hover { border-color:#8D8C8C; }
.field input,.field textarea { border-radius:0; background:#191818; }
.field input:focus,.field textarea:focus { border-color:#A3A2A2; box-shadow:0 0 0 3px #FFFFFF10; }
.check input { accent-color:#A3A2A2; }
.tag-link,.service-card__link,.legal a,.contact-item a:hover { color:var(--yellow); }
.hashtag,.filter-chip { border-radius:0; }
.filter-chip.is-active { border-color:#757474; background:#2B2A2A; }
.action-space { margin-top:34px; }
.action-space--split { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.text-action { display:inline-flex; align-items:center; gap:16px; width:fit-content; margin-top:28px; padding-bottom:5px; border-bottom:2px solid currentColor; color:var(--yellow); font-size:14px; font-weight:700; transition:transform .2s ease,letter-spacing .2s ease; }
.text-action span:last-child { font-size:19px; transition:transform .2s ease; }
.text-action:hover,.text-action:focus-visible { color:var(--yellow); transform:translateY(-3px) scale(1.035); letter-spacing:.015em; }
.text-action:hover span:last-child,.text-action:focus-visible span:last-child { transform:translate(3px,-3px); }
.text-action--muted { color:#8D8C8C; border-bottom:0; font-size:12px; font-weight:500; }
.text-action--muted:hover,.text-action--muted:focus-visible { color:#D1D0D0; }
.text-action--muted:hover span:last-child,.text-action--muted:focus-visible span:last-child { transform:translateY(3px); }
.text-action--muted.text-action--up:hover span:last-child,.text-action--muted.text-action--up:focus-visible span:last-child { transform:translateY(-3px); }

.page-hero { position:relative; isolation:isolate; overflow:hidden; border-bottom:1px solid var(--line); background:radial-gradient(circle at 75% 20%,#333232 0,transparent 38%),#111; }
.page-hero > .container { position:relative; z-index:2; }


.page-hero::after { content:""; position:absolute; z-index:0; top:8%; right:-2%; width:min(48vw,720px); height:84%; opacity:.24; background:radial-gradient(circle at 12% 22%,#D1D0D0 0 2px,transparent 3px),radial-gradient(circle at 42% 22%,#D1D0D0 0 2px,transparent 3px),radial-gradient(circle at 42% 67%,#D1D0D0 0 2px,transparent 3px),radial-gradient(circle at 76% 67%,#D1D0D0 0 2px,transparent 3px),linear-gradient(90deg,transparent 12%,#8D8C8C 12% calc(12% + 1px),transparent calc(12% + 1px) 42%,#8D8C8C 42% calc(42% + 1px),transparent calc(42% + 1px) 76%,#8D8C8C 76% calc(76% + 1px),transparent calc(76% + 1px)),linear-gradient(0deg,transparent 22%,#8D8C8C 22% calc(22% + 1px),transparent calc(22% + 1px) 67%,#8D8C8C 67% calc(67% + 1px),transparent calc(67% + 1px)); -webkit-mask-image:linear-gradient(90deg,transparent,#000 24%,#000); mask-image:linear-gradient(90deg,transparent,#000 24%,#000); pointer-events:none; }
.page-hero::before { content:""; position:absolute; z-index:1; right:clamp(40px,11vw,190px); top:50%; width:104px; height:72px; border:1px solid #757474; transform:translateY(-50%); box-shadow:-12px 0 0 -11px #A3A2A2,12px 0 0 -11px #A3A2A2; pointer-events:none; }
.page-hero h1 { max-width:1000px; }


.page-hero--photo { min-height:calc(100svh - 73px); display:flex; align-items:center; background:#090b0d; }
.page-hero__photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.56) contrast(1.1) brightness(.61); }
.page-hero--photo::before { inset:0; width:auto; height:auto; border:0; box-shadow:none; transform:none; background:linear-gradient(90deg,#070809e8,#07080991 48%,#0708091c),linear-gradient(0deg,#08090ac9,transparent 50%); }
.page-hero--photo::after { display:none; }
.page-hero--photo .lead { max-width:600px; color:#c5c6c7; }
.page-hero--photo h1 { max-width:1000px; color:#f0f0ed; }
@media(max-width:900px) { .page-hero--photo { min-height:calc(100svh - 55px); } }
.home-style-title > span,.home-style-title > em { display:block; }
.home-style-title em { color:var(--yellow); font-family:Georgia,"Times New Roman",serif; font-weight:400; font-style:italic; letter-spacing:-.05em; }
.section-head > .lead { max-width:330px; margin-bottom:7px; color:var(--muted); font-family:Arial,Helvetica,sans-serif; font-size:14px; line-height:1.65; }
.capability-rail--page { background:#111; border-color:var(--line); }
.blog-card__image { background:#E3E3E3; }
.product-card__image { background:#FFF; }
.detail-card { position:relative; overflow:hidden; }
.detail-card::before { content:""; position:absolute; top:20px; right:20px; width:54px; height:25px; border-top:1px solid #686868; border-right:1px solid #686868; opacity:.6; }
.detail-card::after { content:""; position:absolute; top:42px; right:71px; width:5px; height:5px; border:1px solid #8D8C8C; border-radius:50%; opacity:.8; }


.cart-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:24px; align-items:start; }


main .cart-section>.container { max-width:1180px; margin-inline:auto; }
.cart-layout>* { min-width:0; }
.cart-panel,.checkout-form { padding:clamp(24px,4vw,42px); border:1px solid var(--line); background:#222121; }
.cart-panel h3,.checkout-form h3 { margin:0 0 26px; font-size:clamp(1.5rem,2.3vw,2.2rem); }
.cart-items { display:grid; gap:0; }
.cart-line { display:grid; grid-template-columns:minmax(0,1fr) 76px auto auto; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.cart-line h4 { margin:0 0 3px; font-size:1rem; }
.cart-line small { color:var(--muted); }
.cart-line input { width:72px; min-height:42px; padding:8px; border:1px solid var(--line); border-radius:0; background:#191818; color:#fff; }
.cart-line button { border:0; border-bottom:1px solid currentColor; padding:3px 0; background:none; color:var(--muted); font-size:.72rem; }
.cart-line button:hover { color:var(--yellow); }
.cart-totals { margin:28px 0 0; }
.cart-totals div { display:flex; justify-content:space-between; gap:20px; margin:0; padding:8px 0; }
.cart-totals dt,.cart-totals dd { margin:0; }
.cart-totals dt { color:var(--muted); }
/* Shipping explanation belongs to its label, not to the page introduction. */
.cart-shipping-note { display:block; max-width:290px; margin-top:6px; font-size:12px; line-height:1.55; font-weight:400; color:var(--muted); }
.cart-total { margin-top:10px!important; padding-top:18px!important; border-top:1px solid var(--line); color:var(--yellow); font-size:1.25rem; font-weight:800; }
.checkout-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.checkout-fields label { display:grid; gap:7px; color:var(--muted); font-size:.72rem; font-weight:700; }
.checkout-fields .field-wide { grid-column:1/-1; }
.checkout-fields input,.checkout-fields select { width:100%; min-height:46px; border:0; border-bottom:1px solid #757474; border-radius:0; padding:8px 0; background:transparent; color:#fff; outline-offset:4px; }
.checkout-fields select { color-scheme:dark; }
.checkout-check { display:flex; align-items:flex-start; gap:11px; margin-top:20px; color:var(--muted); font-size:.75rem; }
.checkout-check input { flex:0 0 auto; width:16px; height:16px; margin:1px 0 0; accent-color:#A3A2A2; }
.checkout-check a { color:var(--yellow); text-decoration:underline; text-underline-offset:3px; }
.paypal-area,.payment-method { margin-top:30px; padding-top:25px; border-top:1px solid var(--line); }
.payment-method h4 { margin:8px 0 12px; font-size:1.12rem; }
.paypal-note { margin:0 0 20px; color:var(--muted); font-size:.76rem; }
[data-paypal-buttons] { min-height:48px; }
.button--checkout,.buy-controls .button { min-height:48px; border-color:#8D8C8C; background:#222121; color:var(--yellow); font-weight:800; }
.button--checkout:hover,.button--checkout:focus-visible,.buy-controls .button:hover,.buy-controls .button:focus-visible { border-color:#D1D0D0; background:#111; color:#FFF1A8; }
.button--checkout { width:100%; }
.order-reference { width:fit-content; margin-top:28px; padding:12px 16px; border:1px solid var(--line); color:var(--yellow); font-family:"Courier New",Courier,monospace; font-weight:700; }
.bank-instructions { max-width:760px; margin-top:34px; padding:clamp(22px,4vw,38px); border:1px solid var(--line); background:#222121; }
.bank-instructions h2 { margin:0 0 22px; font-size:clamp(1.45rem,3vw,2.2rem); }
.bank-instructions dl { margin:0; }
.bank-instructions dl div { display:grid; grid-template-columns:minmax(110px,.45fr) 1fr; gap:18px; padding:11px 0; border-bottom:1px solid var(--line); }
.bank-instructions dt { color:var(--muted); }
.bank-instructions dd { margin:0; overflow-wrap:anywhere; font-family:"Courier New",Courier,monospace; }
.bank-instructions p { margin:20px 0 0; color:var(--muted); }


.google-map-section { width:100%; height:clamp(340px,31vw,390px); border-top:1px solid var(--line); background:#111; overflow:hidden; }
.google-map { width:100%; height:100%; display:grid; place-items:center; color:var(--muted); }
.google-map iframe { display:block; width:100%; height:100%; min-height:100%; border:0; filter:grayscale(1) invert(.92) hue-rotate(180deg) brightness(.68) contrast(1.12); }
.google-map > p,.map-fallback { margin:0; padding:28px; text-align:center; }
.map-fallback a { color:var(--yellow); text-decoration:underline; text-underline-offset:4px; }
.map-consent { display:grid; justify-items:center; gap:8px; max-width:560px; padding:30px; text-align:center; }
.map-consent p { margin:0; color:var(--muted); }
.map-consent .text-action { border:0; border-bottom:2px solid currentColor; background:none; cursor:pointer; }


.footer { background:#111; color:var(--text); padding:40px 0 22px; }
.footer .wrap { max-width:calc(1320px + clamp(22px,5vw,80px)*2); padding-inline:clamp(22px,5vw,80px); margin-inline:auto; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.footer-top p { color:var(--muted); font-size:13px; margin:0; }
.footer-legal { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px 22px; }
.footer-legal a,.footer-legal button { margin:0; padding:0; border:0; background:none; color:var(--text); font-family:inherit; font-size:11px; line-height:1.4; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.footer-legal a:hover,.footer-legal button:hover,.footer-legal a:focus-visible,.footer-legal button:focus-visible { color:var(--yellow); }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); color:#8D8C8C; font-size:9px; }


/* Pannello non modale: nessuna libreria, immagine o servizio esterno.
   Accettazione e rifiuto hanno la stessa evidenza; il giallo resta nel testo. */
.cookie-banner { position:fixed; z-index:120; right:24px; bottom:24px; width:min(560px,calc(100% - 48px)); max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; border:1px solid #454545; border-radius:20px; background:linear-gradient(145deg,#272727,#181818 75%); box-shadow:0 24px 80px #0009,0 1px 0 #ffffff0d inset; color:#f1f0ec; color-scheme:dark; animation:cookie-arrive .28s ease-out; }
.cookie-banner__inner { position:relative; width:100%; padding:30px; display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.cookie-banner__symbol { display:grid; place-items:center; width:44px; height:44px; margin-bottom:20px; border:1px solid #555; border-radius:12px; background:#ffffff05; color:#bcbcbc; }
.cookie-banner__symbol svg { width:28px; height:28px; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.cookie-banner__copy .eyebrow { margin:0 38px 12px 0; color:var(--yellow); font-size:10px; }
.cookie-banner__copy h2 { max-width:390px; margin:0 0 14px; color:#f1f0ec; font-size:clamp(1.45rem,2.8vw,1.9rem); line-height:1.15; letter-spacing:-.035em; }
.cookie-banner__copy p { margin:0 0 15px; color:#bcbcbc; font-size:13px; line-height:1.65; }
.cookie-banner__copy a { color:var(--yellow); font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.cookie-banner__close { position:absolute; top:20px; right:20px; width:44px; height:44px; border:1px solid transparent; border-radius:50%; background:none; color:#bcbcbc; font-size:26px; line-height:1; cursor:pointer; }
.cookie-banner__close:hover { background:#ffffff0a; color:#fff; }
.cookie-banner__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding-top:20px; border-top:1px solid #ffffff17; }
.cookie-choice { min-height:46px; padding:12px 16px; border:1px solid #686868; border-radius:8px; background:#353535; color:#f1f0ec; font-family:inherit; font-size:13px; font-weight:700; line-height:1.35; cursor:pointer; transition:background .18s,border-color .18s; }
.cookie-choice:hover { border-color:#aaa; background:#454545; }
.cookie-choice--customize { grid-column:1/-1; min-height:44px; border-color:transparent; background:none; color:#bcbcbc; text-decoration:underline; text-underline-offset:4px; }
.cookie-choice--save { grid-column:1/-1; color:var(--yellow); }
.cookie-banner :is(button,a,input):focus-visible { outline:2px solid #ddd; outline-offset:4px; }
.cookie-preferences { display:grid; gap:10px; }
.cookie-preferences label { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:16px; border:1px solid #ffffff1c; border-radius:10px; background:#ffffff03; cursor:pointer; }
.cookie-preferences span { display:grid; gap:4px; }
.cookie-preferences strong { font-size:13px; }
.cookie-preferences small { color:#bcbcbc; font-size:12px; }
/* Checkbox nativi, rivestiti come interruttori: tastiera e semantica preservate. */
.cookie-preferences input { appearance:none; width:44px; height:26px; margin:0; flex:0 0 auto; border:1px solid #747474; border-radius:20px; background:#292929; cursor:pointer; transition:background .18s; }
.cookie-preferences input::before { content:""; display:block; width:18px; height:18px; margin:3px; border-radius:50%; background:#a0a0a0; transition:transform .18s; }
.cookie-preferences input:checked { background:#cecece; }
.cookie-preferences input:checked::before { background:#202020; transform:translateX(18px); }
@keyframes cookie-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media(forced-colors:active) { .cookie-preferences input { appearance:auto; } .cookie-preferences input::before { display:none; } }

[data-reveal] { opacity:0; transform:translateY(18px); transition:opacity .55s ease,transform .55s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }

@media(max-width:900px) {
  html { scroll-padding-top:82px; }
  .header { min-height:55px; padding-block:7px; gap:16px; }
  .brand { width:125px; }
  .menu-toggle { display:block; }
  .navigation { display:none; position:absolute; top:100%; left:0; right:0; margin:0; padding:25px clamp(22px,5vw,80px); border-bottom:1px solid var(--line); background:#191818; font-size:20px; }
  .navigation.is-open { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
  .navigation a { width:100%; }
  .footer-top { flex-wrap:wrap; }
  .footer-top p { width:100%; order:3; }
  .footer-legal { justify-content:flex-start; }
  .footer-bottom { flex-direction:column; gap:10px; }
  .cart-layout { grid-template-columns:1fr; }
  .google-map-section { height:360px; }
  .page-hero::after { right:-20%; width:75vw; opacity:.17; }
  .page-hero::before { right:28px; opacity:.55; }
}

@media(max-width:600px) {
  .cart-line { grid-template-columns:minmax(0,1fr) 68px; }
  .cart-line strong,.cart-line button { justify-self:start; }
  .checkout-fields { grid-template-columns:1fr; }
  .checkout-fields .field-wide { grid-column:auto; }
  .google-map-section { height:340px; }
  .page-hero::before { display:none; }
  .page-hero::after { right:-35%; width:100vw; opacity:.14; }
  .footer-legal { align-items:flex-start; flex-direction:column; gap:12px; }
  .cookie-banner { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); width:calc(100% - 24px); max-height:calc(100dvh - 24px - env(safe-area-inset-bottom)); border-radius:16px; }
  .cookie-banner__inner { padding:22px; gap:18px; }
  .cookie-banner__symbol { margin-bottom:15px; }
  .cookie-banner__close { top:12px; right:12px; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  [data-reveal] { opacity:1; transform:none; }
}


.page-hero--photo::before { display:block; inset:0; opacity:1; }
