:root{
  --blue:#00aced;
  --blue-dark:#0083b4;
  --ink:#0f2433;
  --muted:#5a6b78;
  --bg:#fff;
  --soft:#f2f8fb;
  --line:#e2ebf0;
  --radius:16px;
  --max:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:400 1.0625rem/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg)}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue-dark)}
h1,h2,h3{line-height:1.15;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(2.1rem,5.5vw,3.75rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.5vw,2.25rem);font-weight:750}
h3{font-size:1.25rem;font-weight:700}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
section{padding:72px 0}
.eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:.75rem}
.lead{font-size:1.2rem;color:var(--muted);max-width:44rem}
.center{text-align:center}.center .lead{margin-inline:auto}

/* Header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.logo img{height:44px;width:auto}
.site-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.site-nav a{padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:600;color:var(--ink)}
.site-nav a:hover,.site-nav a[aria-current]{background:var(--soft);color:var(--blue-dark)}
.site-nav .btn{background:var(--blue);color:#fff;margin-left:6px}
.site-nav .btn:hover{background:var(--blue-dark);color:#fff}
.nav-toggle{display:none}

/* Buttons */
.btn{display:inline-block;padding:13px 26px;border-radius:999px;font-weight:700;text-decoration:none;background:var(--blue);color:#fff;border:2px solid var(--blue);cursor:pointer;font:inherit;font-weight:700;transition:background .15s,transform .15s}
.btn:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn.ghost:hover{background:rgba(255,255,255,.15)}

/* Hero */
.hero{position:relative;padding:0;min-height:min(78vh,640px);display:flex;align-items:flex-end;color:#fff;background:#0f2433}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,36,51,.15) 0%,rgba(15,36,51,.82) 100%)}
.hero .wrap{width:100%;position:relative;z-index:1;padding-bottom:56px;padding-top:120px}
.hero .lead{color:rgba(255,255,255,.9)}
.hero .eyebrow{color:#8fe0ff}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* Gallery strip */
.strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 20px 8px;margin-top:32px;scrollbar-width:thin}
.strip figure{flex:0 0 min(82%,420px);margin:0;scroll-snap-align:start}
.strip img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}

/* Cards */
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:40px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card .body{padding:22px 22px 8px}
.card p,.card li{color:var(--muted)}
.card ul{margin:0 0 1em;padding-left:1.2em}

/* App banner */
.soft{background:var(--soft)}
.app{display:grid;gap:32px;align-items:center;grid-template-columns:1.2fr 1fr}
.badges{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.badges img{height:48px;width:auto}

/* People */
.people{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:40px}
.person{text-align:center;padding:32px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.person img{width:140px;height:140px;border-radius:50%;object-fit:cover;margin:0 auto 18px}
.person p{color:var(--muted);margin:0}
.duo{border-radius:var(--radius);width:100%;max-width:420px;margin:32px auto 0;aspect-ratio:1;object-fit:cover}

/* Testimonials */
.quotes{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:40px}
.quote{margin:0;padding:28px 26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);display:flex;flex-direction:column;justify-content:space-between;gap:16px}
.quote blockquote{margin:0}
.quote blockquote p{margin:0;font-size:1.1rem}
.quote blockquote p::before{content:"\201C"}.quote blockquote p::after{content:"\201D"}
.quote figcaption{font-weight:700;color:var(--blue-dark)}
.quote .stars{color:#f5a623;letter-spacing:2px;margin-left:6px}
.quote small{display:block;font-weight:400;color:var(--muted);font-size:.85rem}

/* Banner image */
.banner{height:clamp(220px,40vw,420px);padding:0}
.banner img{width:100%;height:100%;object-fit:cover}

/* Contatti */
.contact{display:grid;gap:32px;grid-template-columns:1fr 1.4fr;align-items:stretch}
.contact address{font-style:normal;margin-bottom:1em}
.map{min-height:320px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:var(--muted);overflow:hidden}
.map.loaded{padding:0;border:0}
.map iframe{width:100%;height:100%;min-height:320px;border:0}

/* Footer */
.site-footer{background:var(--ink);color:#cfdbe3;padding:48px 0 32px;font-size:.95rem}
.site-footer .wrap{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.site-footer a{color:#fff}
.site-footer .fh{font-weight:750;line-height:1.15;margin:0 0 .5em;font-size:1rem;color:#fff}
.site-footer address{font-style:normal}
.site-footer .copy{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:.85rem}

.btn:focus-visible,.site-nav a:focus-visible,a:focus-visible{outline:3px solid rgba(0,172,237,.5);outline-offset:2px}
@media (max-width:760px){
  section{padding:52px 0}
  .app,.contact{grid-template-columns:1fr}
  .site-header .wrap{padding-block:8px}
  .site-header .wrap{position:relative}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--soft);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .nav-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s,opacity .2s}
  .nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-open .nav-toggle span:nth-child(2){opacity:0}
  .nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-toggle:focus-visible{outline:3px solid rgba(0,172,237,.5);outline-offset:2px}
  .site-nav{position:absolute;top:100%;left:12px;right:12px;flex-direction:column;align-items:stretch;gap:4px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 40px rgba(15,36,51,.16);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility .2s}
  .nav-open .site-nav{opacity:1;visibility:visible;transform:none}
  .site-nav a{padding:14px 18px;font-size:1.1rem;border-radius:12px}
  .site-nav .btn{margin:8px 0 0;text-align:center;padding:14px 18px}
}
/* Mobile carousels: scroll-snap rail, grid again from 640px */
@media (max-width:639px){
  .rail,.strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:8px;scrollbar-width:none}
  .rail::-webkit-scrollbar,.strip::-webkit-scrollbar{display:none}
  .rail{margin-inline:-20px;padding-inline:20px;scroll-padding-inline:20px}
  .strip{scroll-padding-inline:20px}
  .rail>*,.strip figure{flex:0 0 80%;max-width:320px;scroll-snap-align:start}
}
.more{margin:24px 0 0;font-weight:600}
.rail-bar{display:none}
@media (max-width:639px){
  .rail-bar{display:block;position:relative;width:96px;height:4px;margin:12px auto 0;border-radius:999px;background:var(--line)}
  .rail-bar span{position:absolute;top:0;bottom:0;border-radius:999px;background:rgba(15,36,51,.7)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.nav-toggle span,.site-nav{transition:none}}
.legal{max-width:46rem;padding-block:48px}.legal h2{font-size:1.25rem;margin:1.6em 0 .5em}.legal ul{padding-left:1.2em}.legal li{margin-bottom:.6em}

.crumbs{font-size:.9rem;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line)}.crumbs a{color:var(--blue-dark);text-decoration:none}.crumbs a:hover{text-decoration:underline}.crumbs span[aria-hidden]{margin:0 4px}

.hours{margin:16px auto 32px;border-collapse:collapse;text-align:left}.hours th,.hours td{padding:8px 20px;border-bottom:1px solid #d9e6ec}.hours th{font-weight:600}

/* Pulsanti contatto: icone telefono / WhatsApp */
.btn.tel::before,.btn.wa::before{content:"";display:inline-block;width:1.1em;height:1.1em;margin-right:.5em;vertical-align:-.17em;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.btn.tel{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E")}
.btn.wa{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2a9.9 9.9 0 0 0-8.4 15.1L2 22l5-1.6A9.9 9.9 0 1 0 12.04 2zm5.8 14.1c-.25.7-1.45 1.35-2 1.4-.5.05-1.15.07-1.85-.12a14 14 0 0 1-5.4-3.3c-1.7-1.6-2.6-3.3-2.7-3.6-.1-.3-.7-1.8.3-3 .4-.45.9-.6 1.2-.6h.4c.25 0 .45.02.65.5l.9 2.2c.1.2.1.4 0 .6l-.4.6-.3.4c-.15.2-.3.4-.1.7.2.35.8 1.3 1.7 2.1 1.1 1 2.1 1.3 2.4 1.5.3.15.5.1.65-.1l.9-1.1c.2-.25.4-.2.65-.1l2 1c.3.15.5.2.55.35.1.1.1.7-.15 1.4z'/%3E%3C/svg%3E")}
.btn.wa,.btn.ghost.wa{background:#25D366;border-color:#25D366;color:#073b1b}
.btn.wa:hover,.btn.ghost.wa:hover{background:#1ebe5a;border-color:#1ebe5a;color:#073b1b}
.contact-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:28px}
.btn.mail::before{content:"";display:inline-block;width:1.1em;height:1.1em;margin-right:.5em;vertical-align:-.17em;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.btn.mail{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L4.5 7v.1L12 13l7.5-5.9V7L12 12.2z'/%3E%3C/svg%3E")}
.btn.outline{background:transparent;color:var(--blue-dark)}
.btn.outline:hover{background:var(--blue);color:#fff}
@media (max-width:760px){.contact-actions{flex-direction:column;align-items:stretch;gap:12px}.contact-actions .btn{text-align:center}}
