  :root {
    --bg:#e6e9ed; --paper:#f7f8fa; --ink:#2f3338; --muted:#5d646c;
    --accent:#990066; --accent-dark:#730050; --line:#cfd4da; --white:#fff;
    --serif: Georgia, "Times New Roman", serif;
    --sans: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.6 var(--sans); }
  img { max-width:100%; display:block; }
  a { color:var(--accent-dark); }
  a:focus-visible, button:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
  .wrap { max-width:1060px; margin:0 auto; padding:0 20px; }
  .anteprima { background:#fff3cd; color:#6b5300; text-align:center; font-size:14px; padding:6px 12px; }

  /* Intestazione */
  .top { background:var(--white); border-bottom:1px solid var(--line); }
  .top .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:14px; padding-bottom:14px; }
  .logo img { width:300px; height:auto; }
  nav ul { list-style:none; margin:0; padding:0; display:flex; gap:4px; flex-wrap:wrap; }
  nav a { display:block; padding:8px 14px; text-decoration:none; color:var(--ink); border-radius:20px; font-size:16px; }
  nav a:hover, nav a[aria-current] { background:var(--accent); color:#fff; }

  /* Hero: niente blu, niente foto stock a bassa risoluzione */
  .hero { background:var(--accent); color:#fff; }
  .hero .wrap { padding-top:56px; padding-bottom:56px; display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center; }
  .hero h1 { font:normal clamp(2rem,5vw,3.2rem)/1.15 var(--serif); margin:0 0 12px; }
  .hero p { margin:0 0 22px; font-size:1.1rem; max-width:34em; }
  .btns { display:flex; gap:12px; flex-wrap:wrap; }
  .btn { display:inline-block; padding:12px 22px; border-radius:28px; text-decoration:none; font-weight:600; background:#fff; color:var(--accent-dark); }
  .btn.alt { background:transparent; color:#fff; border:2px solid #fff; }
  .btn:hover { background:var(--paper); } .btn.alt:hover { background:rgba(255,255,255,.15); }
  .orari { background:rgba(255,255,255,.12); border-radius:12px; padding:20px 22px; }
  .orari h2 { margin:0 0 8px; font:normal 1.2rem var(--serif); }
  .orari dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 16px; }
  .orari dt { opacity:.85; } .orari dd { margin:0; }
  #oggi { margin-top:12px; font-weight:600; }

  /* Sezioni */
  section { padding:44px 0; }
  h2.titolo { font:normal clamp(1.5rem,3.5vw,2rem)/1.2 var(--serif); color:var(--accent-dark); margin:0 0 6px; }
  .sotto { color:var(--muted); margin:0 0 24px; }
  .cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .card { background:var(--paper); border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:8px; padding:22px; }
  .card h3 { font:normal 1.3rem var(--serif); margin:0 0 8px; color:var(--accent-dark); }
  .card p { margin:0; color:var(--muted); }

  .album { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .albums { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:16px; }
  .acard { display:block; background:var(--white); border:1px solid var(--line); border-radius:8px; overflow:hidden; text-decoration:none; color:var(--ink); transition:box-shadow .15s, transform .15s; }
  .acard:hover { box-shadow:0 6px 18px rgba(0,0,0,.18); transform:translateY(-2px); }
  .acard img { width:100%; aspect-ratio:4/3; object-fit:cover; }
  .acard div { padding:12px 14px 14px; }
  .acard strong { display:block; font:normal 1.15rem var(--serif); color:var(--accent-dark); }
  .acard span { display:block; font-size:14px; color:var(--muted); }
  .acard em { display:block; margin-top:6px; font-size:13px; font-style:normal; color:var(--accent); font-weight:600; }

  .dove { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
  .dove address { font-style:normal; }
  .dove .big a { font-size:1.25rem; font-weight:600; }
  .mappa { background:var(--line); border-radius:8px; min-height:220px; display:flex; align-items:center; justify-content:center; text-align:center; padding:16px; color:var(--muted); }

  footer { background:var(--ink); color:#cfd4da; font-size:14px; padding:22px 0; }
  footer a { color:#fff; }

  /* Pulsante chiama fisso su telefono */
  .chiama { display:none; }
  @media (max-width:760px) {
    .hero .wrap, .cards, .dove { grid-template-columns:1fr; }
    .albums { grid-template-columns:repeat(2,1fr); }
    .logo img { width:240px; }
    .chiama { display:block; position:fixed; left:12px; right:12px; bottom:12px; background:var(--accent-dark); color:#fff; text-align:center; padding:14px; border-radius:30px; text-decoration:none; font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,.3); z-index:5; }
    body { padding-bottom:70px; }
  }

  /* Pagina interna (Cerimonie) */
  .pagina-titolo { background:var(--accent); color:#fff; }
  .pagina-titolo .wrap { padding-top:40px; padding-bottom:40px; }
  .pagina-titolo h1 { font:normal clamp(1.8rem,4.5vw,2.7rem)/1.2 var(--serif); margin:0 0 6px; }
  .pagina-titolo p { margin:0; font-size:1.1rem; opacity:.95; }
  .testo > * { max-width:760px; }
  .testo p { margin:0 0 1em; }
  .spunta { list-style:none; padding:0; margin:0 0 1.2em; }
  .spunta li { position:relative; padding:0 0 8px 30px; }
  .spunta li::before { content:"\2713"; position:absolute; left:0; top:0; color:var(--accent); font-weight:700; }
  .servizi { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
  .servizio { background:var(--paper); border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:8px; padding:20px; display:flex; flex-direction:column; }
  .servizio h3 { font:normal 1.25rem var(--serif); margin:0 0 6px; color:var(--accent-dark); }
  .servizio p { margin:0 0 14px; color:var(--muted); flex:1; }
  .servizio a.btn { align-self:flex-start; background:var(--accent); color:#fff; padding:8px 18px; font-size:15px; }
  .servizio .presto { font-size:14px; color:var(--muted); font-style:italic; }
  .fascia { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .cta { text-align:center; }
  .cta p { margin:0 0 16px; font-size:1.15rem; }
