
  :root{
    --olive:#C29436;
    --olive-dark:#8A6825;
    --stone:#E9DACE;
    --rose:#C98F95;
    --ivory:#F7F3EC;
    --ink:#2A2420;
    --gold:#C29436;
    --line: rgba(42,36,32,0.12);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  /* Accessibilità: anello di focus visibile per chi naviga da tastiera (WCAG 2.4.7) */
  :focus-visible{ outline:2px solid var(--rose); outline-offset:2px; border-radius:2px; }
  body{ font-family:'Jost', sans-serif; background: var(--ivory); color: var(--ink); -webkit-font-smoothing:antialiased; letter-spacing:.005em; }
  .phone{
    max-width: 430px; margin: 24px auto; background: var(--ivory);
    min-height: 90vh; position: relative; border-radius: 28px; overflow:hidden;
    box-shadow: 0 30px 60px -20px rgba(38,48,42,.35); border: 1px solid var(--line);
  }
  .scroll{ height: 780px; overflow-y:auto; padding-bottom: 90px; scrollbar-width:none; }
  .scroll::-webkit-scrollbar{ display:none; }
  .scroll.no-tabs{ padding-bottom: 24px; }

  /* HERO */
  .hero{
    position:relative; height: 300px; overflow:hidden;
    background: #8f7d64;
    display:flex; flex-direction:column; justify-content:flex-end; padding: 26px 24px; color: var(--ivory);
  }
  .hero::before{
    content:''; position:absolute; inset:0; z-index:1;
    background: linear-gradient(180deg, rgba(38,30,20,0) 45%, rgba(38,30,20,.5) 100%);
  }
  .hero > *{ position:relative; z-index:2; }
  .hero-bg-photo{
    position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
    object-fit:cover !important; object-position: var(--photo-pos, 50% 50%) !important; z-index:0 !important;
  }
  .hero-eyebrow{ font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; opacity:.8; margin-bottom:12px; font-weight:500; }
  .hero h1{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:38px; line-height:1.02; margin-bottom:8px; letter-spacing:.005em; }
  .hero p.sub{ font-size:15px; opacity:.9; font-style:italic; font-family:'Cormorant Garamond',serif; }

  .tabbar{
    position:absolute; bottom:0; left:0; right:0; background: var(--ivory);
    border-top:1px solid var(--line); display:flex; padding:10px 12px calc(14px + env(safe-area-inset-bottom));
    gap:4px; z-index:20; overflow-x:auto; scrollbar-width:none;
  }
  .tabbar::-webkit-scrollbar{ display:none; }
  .tab{ flex:1 0 auto; min-width:64px; text-align:center; padding:8px 6px 6px; border-radius:14px; cursor:pointer; font-size:10.5px; font-weight:600; color:rgba(31,36,32,.45); transition:all .25s ease; white-space:nowrap; }
  .tab .ic{ font-size:17px; display:block; margin-bottom:3px; }
  .tab.active{ color:var(--rose); background:rgba(201,143,149,.10); }

  .view{ display:none; }
  .view.active{ display:block; }

  .section{ padding: 26px 24px 6px; }
  .eyebrow{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:9px; }
  h2{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:26px; margin-bottom:14px; color:var(--olive-dark); letter-spacing:.005em; }

  /* SERVIZI grid */
  .servizi-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom: 10px; }
  .servizio{
    background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 14px;
    display:flex; flex-direction:column; gap:6px;
  }
  .servizio .ic{ font-size:20px; }
  .servizio .t{ font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:600; color:var(--olive-dark); }
  .servizio .d{ font-size:11.5px; color:rgba(31,36,32,.6); }

  .card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; margin-bottom:16px; }
  .btn{ display:block; width:100%; text-align:center; background:var(--rose); color:#fff; border:none; border-radius:10px; padding:14px; font-weight:500; font-size:13.5px; letter-spacing:.04em; margin-top:6px; cursor:pointer; font-family:inherit; }
  .btn.ghost{ background:transparent; color:var(--rose); border:1.5px solid var(--rose); }
  .btn.small{ padding:10px; font-size:12.5px; }

  .review-carousel{ }
  .rc-viewport{ position:relative; min-height:130px; }
  .rc-slide{ display:none; }
  .rc-slide.active{ display:block; animation:rc-fade .35s ease; }
  @keyframes rc-fade{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
  @media (prefers-reduced-motion: reduce){
    .rc-slide.active{ animation:none; }
  }
  .review{
    border-left:2px solid var(--gold); padding:4px 0 4px 14px; margin-bottom:0;
  }
  .review p{ font-size:13.5px; font-style:italic; font-family:'Cormorant Garamond',serif; color:var(--ink); margin-bottom:6px; line-height:1.5; }
  .review .who{ font-size:11px; color:rgba(31,36,32,.55); font-weight:600; }
  .rc-controls{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
  .rc-arrow{
    width:32px; height:32px; border-radius:50%; border:1px solid var(--rose); background:#fff; color:var(--rose);
    cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0;
    transition:background .15s ease,color .15s ease;
  }
  .rc-arrow:hover{ background:var(--rose); color:#fff; }
  .rc-dots{ display:flex; flex-wrap:wrap; gap:6px; max-width:170px; justify-content:center; }
  .rc-dot{ width:6px; height:6px; border-radius:50%; background:var(--line); cursor:pointer; transition:all .2s ease; }
  .rc-dot.active{ background:var(--rose); width:16px; border-radius:4px; }

  /* Riconoscimenti certificati Matrimonio.com */
  .mw-awards{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
    gap:28px; margin-top:26px; padding-top:24px;
    border-top:1px solid var(--line);
  }
  .mw-award a{ display:inline-block; line-height:0; }
  .mw-award img{
    height:68px; width:auto; display:block;
    transition:opacity .2s ease, transform .2s ease;
  }
  .mw-award a:hover img{ opacity:.85; transform:translateY(-2px); }
  /* il badge Wedding Awards è un JPG con sfondo bianco: lo ritaglio a cerchio */
  #wp-ratedWA img{ clip-path: circle(46% at 50% 50%); }

  .mid-photo{ width:100%; height:240px; overflow:hidden; background:#8f7d64; border-radius:14px; margin:22px 0; }
  .mid-photo img{ width:100%; height:100%; object-fit:cover; object-position: var(--photo-pos, 50% 50%); display:block; }

  .why-band{ background:var(--olive-dark); padding:32px 24px; margin:0; border-radius:16px; }
  .why-band h2{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:24px; line-height:1.2; margin:6px 0 26px; }
  .why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .why-item{ border-left:2px solid var(--gold); padding-left:14px; }
  .why-t{ font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--ivory); margin-bottom:4px; }
  .why-d{ font-size:12px; color:rgba(247,243,236,.75); line-height:1.5; }

  .contact-line{ display:flex; align-items:center; gap:10px; padding:9px 0; font-size:13px; border-bottom:1px solid var(--line); }
  .contact-line:last-child{ border-bottom:none; }
  .contact-line .ic{ width:26px; text-align:center; }
  .social-row{ display:flex; gap:10px; margin-top:14px; }
  .social-row a{ width:36px; height:36px; border-radius:50%; background:var(--rose); color:#fff; display:flex; align-items:center; justify-content:center; text-decoration:none; }
  .social-row a svg{ width:17px; height:17px; }

  /* LOGIN */
  .login-screen{
    height:100%; display:flex; flex-direction:column; justify-content:center; padding: 40px 28px;
    background: linear-gradient(165deg, #4A443C 0%, #2E2A25 100%);
    color: var(--ivory); min-height: 780px;
  }
  .login-screen .mark{ font-family:'Cormorant Garamond',serif; font-size:13px; letter-spacing:.1em; text-transform:uppercase; opacity:.75; text-align:center; margin-bottom:6px;}
  .login-screen h1{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:32px; text-align:center; margin-bottom:30px; letter-spacing:.005em; }
  .field{ margin-bottom:14px; }
  .field label{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.75; margin-bottom:6px; font-weight:600; }
  .field input{
    width:100%; padding:13px 14px; border-radius:10px; border:1px solid rgba(247,243,236,.25);
    background: rgba(247,243,236,.08); color:var(--ivory); font-family:inherit; font-size:14px;
  }
  .field input::placeholder{ color: rgba(247,243,236,.4); }
  .login-screen .btn{ background: var(--rose); margin-top:10px; }
  .login-hint{ text-align:center; font-size:11px; opacity:.55; margin-top:18px; }
  .admin-entry-link{
    text-align:center; font-size:11.5px; font-weight:600; color: var(--ivory); opacity:.7;
    margin-top:22px; cursor:pointer; text-decoration:underline; text-underline-offset:3px;
  }
  .login-screen.admin{ background: linear-gradient(165deg, #33302C 0%, #1E1C19 100%); }
  .login-logo-slot{
    width:112px; height:112px; margin:0 auto 24px;
    display:flex; align-items:center; justify-content:center; text-align:center; padding:8px;
    font-family:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
    font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:rgba(247,243,236,.55); line-height:1.6;
  }
  .login-logo-slot img{ max-width:100%; max-height:100%; object-fit:contain; }

  /* PROMEMORIA */
  .checklist-item{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 14px; margin-bottom:10px; }
  .checklist-item .dot{ width:20px; height:20px; border-radius:50%; border:2px solid var(--stone); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; color:#fff; }
  .checklist-item.done .dot{ background:var(--olive); border-color:var(--olive); }
  .checklist-item .txt{ flex:1; }
  .checklist-item .name{ font-size:13px; font-weight:600; }
  .checklist-item.done .name{ text-decoration:line-through; color:rgba(31,36,32,.4); }
  .checklist-item .due{ font-size:11px; color:rgba(31,36,32,.5); margin-top:1px; }
  .tag{ font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; background:var(--ivory); border:1px solid var(--line); color:var(--rose); padding:2px 7px; border-radius:999px; font-weight:700; }

  /* CONTATTI privati */
  .contact-row{ display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
  .contact-row:last-child{ border-bottom:none; }
  .avatar{ width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--rose)); flex-shrink:0; }
  .contact-row .role{ font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); font-weight:700; }
  .contact-row .name{ font-size:13px; font-weight:600; }
  .contact-row .call{ margin-left:auto; font-size:12px; color:var(--rose); font-weight:700; }

  /* OSPITI */
  .guest-toolbar{ display:flex; gap:8px; margin-bottom:14px; }
  .guest-toolbar input{ flex:1; padding:10px 12px; border-radius:10px; border:1px solid var(--line); font-family:inherit; font-size:13px; background:#fff; }
  .stat-row{ display:flex; gap:8px; margin-bottom:16px; }
  .stat{ flex:1; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px; text-align:center; }
  .stat .n{ font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--olive-dark); }
  .stat .l{ font-size:9.5px; text-transform:uppercase; letter-spacing:.05em; color:rgba(31,36,32,.5); font-weight:700; }
  .guest-row{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:11px 13px; margin-bottom:8px; }
  .guest-row .name{ font-size:13px; font-weight:600; flex:1; }
  .guest-row .sub{ font-size:10.5px; color:rgba(31,36,32,.5); }
  .rsvp{ font-size:10px; font-weight:700; padding:5px 9px; border-radius:999px; cursor:pointer; border:1px solid; }
  .rsvp.yes{ background:rgba(194,148,54,.12); color:var(--olive); border-color:var(--olive); }
  .rsvp.no{ background:rgba(201,123,99,.1); color:var(--rose); border-color:var(--rose); }
  .rsvp.pending{ background:rgba(176,141,87,.1); color:var(--gold); border-color:var(--gold); }
  .guest-del{ font-size:13px; color:rgba(31,36,32,.3); cursor:pointer; padding:0 2px; }

  .group-header{
    display:flex; align-items:baseline; gap:8px; margin: 18px 0 8px; padding-top:4px;
  }
  .group-header:first-child{ margin-top:0; }
  .group-header .g-name{ font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:600; color:var(--olive-dark); }
  .group-header .g-count{ font-size:10.5px; color:rgba(42,36,32,.45); font-weight:600; }
  .group-header .g-line{ flex:1; height:1px; background:var(--line); }

  .menu-tag{
    font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
    padding:4px 8px; border-radius:999px; cursor:pointer; border:1px solid var(--line);
    background:var(--ivory); color:rgba(42,36,32,.6); white-space:nowrap;
  }
  .menu-tag.bimbi{ background:rgba(201,143,149,.12); color:var(--rose); border-color:var(--rose); }
  .menu-tag.vegetariano, .menu-tag.vegano{ background:rgba(201,143,149,.1); color:var(--rose); border-color:var(--rose); }
  .menu-tag.celiaco{ background:rgba(176,141,87,.12); color:var(--gold); border-color:var(--gold); }
  .allergy-note{ font-size:10px; color:var(--rose); font-style:italic; margin-top:2px; }
  .guest-row{ flex-wrap:wrap; }
  .guest-row .meta-col{ display:flex; flex-direction:column; gap:4px; align-items:flex-end; }

  /* TAVOLI */
  .subtabs{ display:flex; gap:8px; margin-bottom:18px; border-bottom:1px solid var(--line); }
  .subtab{ padding:8px 4px 10px; font-size:12.5px; font-weight:700; color:rgba(42,36,32,.4); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
  .subtab.active{ color:var(--rose); border-bottom-color:var(--rose); }

  .table-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-bottom:14px; }
  .table-head{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; gap:10px; flex-wrap:wrap; }
  .table-name-input{
    font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:600; color:var(--olive-dark);
    border:none; border-bottom:1px dashed transparent; background:transparent; padding:0 0 1px; width:100%;
  }
  .table-name-input:hover, .table-name-input:focus{ border-bottom-color: var(--rose); outline:none; }
  .table-meta{ font-size:11px; color:rgba(42,36,32,.5); font-weight:600; margin-top:2px; }
  .seat-stepper{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
  .seat-stepper button{
    width:22px; height:22px; border-radius:50%; border:1px solid var(--line); background:var(--ivory);
    font-size:13px; color:var(--rose); cursor:pointer; line-height:1;
  }
  .table-head .del{ font-size:11px; color:var(--rose); cursor:pointer; font-weight:700; }

  /* round table layout */
  .table-round-wrap{ position:relative; width:100%; aspect-ratio:1/0.78; max-height:240px; margin:0 auto; }
  .table-round-disc{
    position:absolute; top:50%; left:50%; width:34%; aspect-ratio:1;
    transform:translate(-50%,-50%); border-radius:50%;
    background: linear-gradient(135deg, var(--stone), #ddd2c2);
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    font-size:9.5px; color:rgba(31,36,32,.45); font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  }
  .seat-round{
    position:absolute; width:30%; max-width:84px; transform:translate(-50%,-50%);
  }

  /* rect table layout */
  .table-rect-wrap{ display:flex; flex-direction:column; gap:8px; }
  .table-rect-wrap.vertical{ flex-direction:row; }
  .rect-row{ display:flex; gap:8px; }
  .rect-row.bottom{ flex-direction:row-reverse; }
  .table-rect-wrap.vertical .rect-row{ flex-direction:column; }
  .table-rect-wrap.vertical .rect-row.bottom{ flex-direction:column; }

  .orientation-toggle{ display:flex; gap:6px; }
  .orientation-toggle button{
    font-size:10px; font-weight:700; padding:5px 9px; border-radius:999px; cursor:pointer;
    border:1px solid var(--line); background:var(--ivory); color:rgba(42,36,32,.55);
  }
  .orientation-toggle button.active{ background:var(--rose); border-color:var(--rose); color:#fff; }

  .admin-note-text{ font-size:13px; line-height:1.7; color:var(--ink); white-space:pre-line; }
  .admin-note-empty{ font-size:12.5px; color:rgba(42,36,32,.45); font-style:italic; }

  .kitchen-row{
    display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12.5px;
    background:#fff; border:1px solid var(--line); border-radius:10px; padding:9px 12px; margin-bottom:6px;
  }
  .kitchen-row .kr-name{ font-weight:700; color:var(--olive-dark); }
  .kitchen-row .kr-table{ color:rgba(42,36,32,.55); }
  .kitchen-row .kr-note{
    margin-left:auto; font-weight:700; color:var(--rose); font-size:11px;
    background:rgba(201,143,149,.1); border-radius:999px; padding:3px 9px;
  }

  .seat{
    font-size:10.5px; background:var(--ivory); border:1px solid var(--line); border-radius:9px;
    padding:8px 6px; display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center;
    min-height:38px; justify-content:center; line-height:1.2; flex:1;
  }
  .seat .seat-name{ font-weight:700; color:var(--ink); }
  .seat .x{ font-size:9px; opacity:.4; cursor:pointer; }
  .seat.empty{ border-style:dashed; color:rgba(31,36,32,.35); cursor:default; }
  .seat.dragover{ border-color:var(--rose); border-style:solid; background:rgba(201,123,99,.12); }

  .unassigned-bar{ background: var(--olive-dark); color:var(--ivory); border-radius:14px; padding:14px 16px; margin-bottom:18px; }
  .unassigned-bar .lbl{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.75; margin-bottom:8px; font-weight:700; }
  .chip-row{ display:flex; flex-wrap:wrap; gap:6px; min-height:30px; }
  .chip{
    font-size:11px; background: rgba(247,243,236,.12); border:1px solid rgba(247,243,236,.3); border-radius:999px;
    padding:7px 12px; cursor:grab; user-select:none;
  }
  .chip:active{ cursor:grabbing; }
  .chip.dragging{ opacity:.4; }

  /* PIANTA SALA */
  .room-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
  .room-tab{
    font-size:11px; font-weight:700; padding:7px 13px; border-radius:999px; cursor:pointer;
    border:1px solid var(--line); background:#fff; color:rgba(42,36,32,.55);
  }
  .room-tab.active{ background:var(--rose); border-color:var(--rose); color:#fff; }
  .room-dims{ font-size:10.5px; color:rgba(42,36,32,.5); font-weight:600; margin-bottom:8px; }

  .room-wrapper{
    width:100%; border:1.5px solid var(--line); border-radius:14px;
    background: var(--ivory); display:flex; align-items:center; justify-content:center;
    padding:10px; overflow:hidden;
  }
  .room{
    position:relative;
    background:
      repeating-linear-gradient(0deg, rgba(42,36,32,.08) 0, rgba(42,36,32,.08) 1px, transparent 1px, transparent 26px),
      repeating-linear-gradient(90deg, rgba(42,36,32,.08) 0, rgba(42,36,32,.08) 1px, transparent 1px, transparent 26px),
      var(--ivory);
    touch-action:none;
  }
  .room-obstacle{
    position:absolute;
    background: repeating-linear-gradient(45deg, rgba(42,36,32,.18), rgba(42,36,32,.18) 4px, transparent 4px, transparent 8px);
    border:1px solid rgba(42,36,32,.35); border-radius:4px;
    display:flex; align-items:center; justify-content:center; text-align:center;
    font-size:8.5px; font-weight:700; color:rgba(42,36,32,.55); padding:2px;
  }
  .room-token{
    position:absolute; transform:translate(-50%,-50%); cursor:grab; user-select:none;
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start; text-align:center;
    background:#fff; border:1.5px solid var(--rose); color:var(--olive-dark);
    font-size:8px; font-weight:700; padding:3px 2px; box-shadow:0 4px 10px -4px rgba(42,36,32,.25);
    overflow:hidden;
  }
  .room-token:active{ cursor:grabbing; }
  .room-token .rt-title{ font-size:8px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  .room-token .rt-names{ overflow-y:auto; width:100%; margin-top:1px; }
  .room-token .rt-name{ font-size:7px; font-weight:600; color:var(--ink); line-height:1.25; white-space:nowrap; }
  .room-token .rt-allergy{ font-weight:700; color:var(--rose); font-size:6.3px; }
  .seat-label .name-line{ white-space:nowrap; }

  .seat-dot{
    position:absolute; width:7px; height:7px; border-radius:50%; transform:translate(-50%,-50%);
    background:#fff; border:1.5px solid var(--stone); z-index:2;
  }
  .seat-dot.occupied{ background:var(--rose); border-color:var(--rose); }
  .seat-label{
    position:absolute; font-size:7.5px; font-weight:600; color:var(--ink);
    line-height:1.25; z-index:3; pointer-events:none; max-width:64px;
  }
  .seat-label .rt-allergy{ font-weight:700; color:var(--rose); font-size:6.5px; }
  .seat-label.anchor-right{ transform:translateY(-50%); text-align:left; }
  .seat-label.anchor-left{ transform:translate(-100%,-50%); text-align:right; }
  .seat-label.anchor-top{ transform:translate(-50%,-100%); text-align:center; }
  .seat-label.anchor-bottom{ transform:translate(-50%,0); text-align:center; }

  /* IL NOSTRO SITO: editor */
  .site-input{
    width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--line);
    font-family:inherit; font-size:13px; background:#fff; color:var(--ink); resize:vertical;
  }
  input[type="date"].site-input, input[type="time"].site-input{ text-align:left; -webkit-appearance:none; appearance:none; }
  input[type="date"].site-input::-webkit-date-and-time-value, input[type="time"].site-input::-webkit-date-and-time-value{ text-align:left; }
  .site-field label{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:rgba(42,36,32,.5); font-weight:700; margin-bottom:5px; }
  .site-field-row{ display:flex; flex-wrap:wrap; gap:10px; }
  .site-field-row .site-field{ flex:1 1 130px; min-width:0; }
  .site-field-row .site-field{ flex:1; min-width:0; }
  .url-preview{ display:flex; align-items:center; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; }
  .url-preview.readonly{ background:var(--ivory); }
  .url-preview.readonly #urlSlugDisplay{ padding:10px 12px 10px 0; font-size:13px; font-weight:600; color:var(--olive-dark); }
  .url-domain{ padding:10px 0 10px 12px; font-size:13px; color:rgba(42,36,32,.5); white-space:nowrap; }
  .slug-input{ border:none; padding:10px 12px 10px 2px; }
  .slug-input:focus{ outline:none; }

  .site-footer-logo{
    padding:24px; text-align:center; background:var(--ivory); border-top:1px solid var(--line);
  }
  .site-footer-mark{
    width:34px; height:34px; border-radius:50%; margin:0 auto 8px; background:var(--olive);
    color:var(--ivory); display:flex; align-items:center; justify-content:center;
    font-family:'Cormorant Garamond',serif; font-size:12px; font-weight:600;
  }
  .site-footer-logo .sf-name{ font-family:'Cormorant Garamond',serif; font-size:12px; font-weight:600; color:var(--olive-dark); }
  .site-footer-logo .sf-tag{ font-size:9.5px; color:rgba(42,36,32,.45); margin-top:2px; text-transform:uppercase; letter-spacing:.06em; }

  /* IL NOSTRO SITO: anteprima */
  .browser-frame{ border:1.5px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; }
  .browser-bar{ display:flex; align-items:center; gap:6px; padding:9px 12px; background:var(--ivory); border-bottom:1px solid var(--line); }
  .browser-dot{ width:7px; height:7px; border-radius:50%; background:var(--stone); }
  .browser-url{ margin-left:10px; font-size:10.5px; color:rgba(42,36,32,.55); font-weight:600; background:#fff; border:1px solid var(--line); border-radius:999px; padding:3px 10px; }
  .browser-body{ max-height:560px; overflow-y:auto; }

  .hero-ph-tag{
    position:absolute; top:16px; left:50%; transform:translateX(-50%); z-index:2; white-space:nowrap;
    font-family:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
    font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
    color:rgba(247,243,236,.9); background:rgba(38,30,20,.3);
    border:1px solid rgba(247,243,236,.4); border-radius:999px; padding:5px 12px;
  }
  .hero-ph-tag.corner{ top:auto; bottom:14px; left:auto; right:16px; transform:none; }
  .hero-logo-slot{
    position:absolute; top:22px; left:50%; transform:translateX(-50%); z-index:2;
    width:92px; height:92px; border-radius:14px;
    border:1px dashed rgba(247,243,236,.5); background:rgba(38,30,20,.25);
    display:flex; align-items:center; justify-content:center; text-align:center; padding:8px;
    font-family:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
    font-size:8px; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,243,236,.72); line-height:1.6;
  }
  .hero-logo-slot img{ max-width:100%; max-height:100%; object-fit:contain; }
  .reserved-strip{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    border:1px solid var(--line); border-radius:12px; padding:14px 16px; cursor:pointer;
    background:transparent; transition:background .2s ease, border-color .2s ease;
  }
  .reserved-strip:hover{ background:#fff; border-color:rgba(194,148,54,.55); }
  .reserved-strip-label{ font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--olive-dark); }
  .reserved-strip-sub{ font-size:10px; color:rgba(42,36,32,.5); margin-top:2px; text-transform:uppercase; letter-spacing:.1em; }
  .reserved-strip-arrow{ color:var(--rose); font-size:15px; flex-shrink:0; }
  .site-hero{
    position:relative;
    background: linear-gradient(180deg, rgba(38,30,20,.28) 0%, rgba(38,30,20,.72) 100%),
                repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0, rgba(255,255,255,.05) 2px, transparent 2px, transparent 11px),
                #8f7d64;
    background-size: cover; background-position: center;
    color:var(--ivory); padding:48px 24px; text-align:center;
  }
  .site-hero-names{ font-family:'Cormorant Garamond',serif; font-size:37px; font-weight:600; letter-spacing:.005em; }
  .site-hero-date{ font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; opacity:.85; margin-top:6px; }
  .site-hero-venue{ font-size:12px; font-family:'Cormorant Garamond',serif; font-style:italic; opacity:.85; margin-top:4px; }
  .map-link{
    display:inline-block; margin-top:16px; font-size:11.5px; font-weight:700; color:var(--ivory);
    text-decoration:none; border:1px solid rgba(247,243,236,.5); border-radius:999px; padding:7px 16px;
  }
  .site-countdown{ display:flex; gap:14px; justify-content:center; margin-top:18px; }
  .cd-unit{ display:flex; flex-direction:column; align-items:center; min-width:34px; }
  .cd-num{ font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; }
  .cd-lbl{ font-size:9px; text-transform:uppercase; letter-spacing:.06em; opacity:.75; margin-top:2px; }

  .admin-set-row{ display:flex; justify-content:space-between; align-items:baseline; margin-top:10px; font-family:'Cormorant Garamond',serif; }
  .admin-set-row span:first-child{ font-size:16px; font-weight:600; color:var(--olive-dark); }
  .admin-set-row span:last-child{ font-size:12px; color:rgba(42,36,32,.55); font-family:'Jost',sans-serif; }

  .toggle-row{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--ink); margin-top:12px; cursor:pointer; }
  .toggle-row input{ width:16px; height:16px; accent-color:var(--rose); cursor:pointer; }

  .schedule-row{
    display:flex; align-items:center; gap:10px; background:var(--ivory); border:1px solid var(--line);
    border-radius:10px; padding:9px 12px; margin-bottom:8px; font-size:13px;
  }
  .schedule-row .sr-time{ font-weight:700; color:var(--olive-dark); min-width:44px; }
  .schedule-row .sr-label{ flex:1; }
  .schedule-row .sr-del{ font-size:11px; color:var(--rose); font-weight:700; cursor:pointer; }

  .site-section{ padding:22px 24px; border-bottom:1px solid var(--line); }
  .site-section:last-child{ border-bottom:none; }
  .site-eyebrow{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:10px; }
  .site-story{ font-size:13px; line-height:1.7; color:rgba(42,36,32,.8); font-family:'Cormorant Garamond',serif; font-style:italic; }

  .site-schedule-item{ display:flex; gap:14px; align-items:baseline; margin-bottom:12px; }
  .site-schedule-item .ss-time{ font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:600; color:var(--olive-dark); min-width:52px; }
  .site-schedule-item .ss-label{ font-size:12.5px; font-weight:700; }
  .site-schedule-item .ss-place{ font-size:11.5px; color:rgba(42,36,32,.55); }

  .site-info-row{ display:flex; justify-content:space-between; font-size:12.5px; padding:7px 0; border-bottom:1px solid var(--line); }
  .site-info-row:last-child{ border-bottom:none; }
  .site-info-row span:first-child{ color:rgba(42,36,32,.5); font-weight:600; }
  .hero-thumb-wrap{ margin-top:10px; }
  .hero-thumb-wrap img{ width:100%; max-width:240px; height:120px; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
  .hero-thumb-wrap .gt-empty{ font-size:11.5px; color:rgba(42,36,32,.4); font-style:italic; }

  .gallery-thumbs{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
  .gallery-thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:8px; border:1px solid var(--line); }
  .gallery-thumbs .gt-empty{ font-size:11.5px; color:rgba(42,36,32,.4); font-style:italic; }
  #pvGallery img{ width:80px; height:80px; }

  .rsvp-widget{ display:flex; flex-direction:column; gap:10px; max-width:320px; }
  .rsvp-widget select, .rsvp-widget input{
    padding:11px 12px; border-radius:10px; border:1px solid var(--line); font-family:inherit; font-size:13px; background:#fff;
  }
  .rsvp-confirmed{ font-size:12.5px; font-weight:700; color:var(--olive); background:rgba(194,148,54,.1); border-radius:10px; padding:10px 12px; }

  /* AREA AMMINISTRATORE */
  .admin-header{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
  .admin-logout{ font-size:11.5px; font-weight:700; color:var(--rose); cursor:pointer; margin-top:6px; }
  .sposi-logout{ font-size:11.5px; font-weight:700; color:var(--rose); cursor:pointer; margin-top:6px; }
  .pub-back-link{
    display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
    color:var(--rose); cursor:pointer; margin-bottom:16px;
  }
  .pub-sub-hero{
    position:relative; height:300px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
    padding:26px 24px; color:var(--ivory);
    background: #8f7d64;
  }
  .pub-sub-hero::before{
    content:''; position:absolute; inset:0; z-index:1;
    background: linear-gradient(180deg, rgba(38,30,20,0) 45%, rgba(38,30,20,.5) 100%);
  }
  .pub-sub-hero > *{ position:relative; z-index:2; }
  .pub-sub-hero .eyebrow{ color:var(--ivory); opacity:.85; }
  .pub-sub-hero h1{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:31px; line-height:1.05; letter-spacing:.005em; }
  .servizio-full{
    background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; margin-bottom:14px;
  }
  .servizio-full .tag{ margin-bottom:10px; display:inline-block; }
  .servizio-full .t{ font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--olive-dark); margin-bottom:8px; }
  .servizio-full .d{ font-size:13px; line-height:1.7; color:rgba(31,36,32,.7); }
  .gall-cat-label{
    font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--rose);
    margin:20px 0 10px;
  }
  .gall-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .gall-tile{ aspect-ratio:1; border-radius:12px; position:relative; overflow:hidden; background:#8f7d64; }
  .gall-tile.wide{ grid-column: span 2; aspect-ratio:2.05; }
  .gall-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

  /* CONTATTI */
  .cta-row{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
  .cta-card{
    display:flex; align-items:center; gap:14px; background:var(--rose); color:#fff;
    border-radius:16px; padding:16px 18px; cursor:pointer; text-decoration:none;
  }
  .cta-card .ic{
    width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.22);
    display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0;
  }
  .cta-card .txt .t{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:15px; }
  .cta-card .txt .d{ font-size:11.5px; opacity:.9; margin-top:1px; }
  .cta-card.secondary{ background:#fff; border:1.5px solid var(--rose); color:var(--olive-dark); }
  .cta-card.secondary .ic{ background:rgba(201,143,149,.14); color:var(--rose); }
  .cta-card.secondary .txt .d{ color:rgba(31,36,32,.55); }
  .contatti-info-row{ display:flex; align-items:flex-start; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
  .contatti-info-row:last-child{ border-bottom:none; }
  .contatti-info-row .ic{ width:22px; text-align:center; font-size:14px; color:var(--rose); flex-shrink:0; margin-top:1px; }
  .contatti-info-row .t{ font-size:13px; font-weight:600; color:var(--ink); }
  .contatti-info-row .d{ font-size:11.5px; color:rgba(31,36,32,.55); margin-top:1px; }
  .contact-method{
    display:flex; align-items:center; gap:14px; text-decoration:none;
    background:#fff; border:1px solid var(--line); border-radius:12px; padding:15px 16px; margin-bottom:10px;
    transition:border-color .2s ease;
  }
  .contact-method:hover{ border-color:rgba(194,148,54,.5); }
  .contact-method .cm-ic{
    width:40px; height:40px; border-radius:50%; flex-shrink:0; background:var(--ivory);
    border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    font-family:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace; font-size:11px; font-weight:600;
    letter-spacing:.02em; color:var(--olive-dark);
  }
  .contact-method .cm-txt{ flex:1; min-width:0; }
  .contact-method .cm-t{ font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--olive-dark); }
  .contact-method .cm-d{ font-size:11.5px; color:rgba(42,36,32,.55); margin-top:1px; }
  .contact-method .cm-arrow{ color:var(--rose); font-size:14px; flex-shrink:0; }

  .cal-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
  .cal-nav button{ width:28px; height:28px; border-radius:50%; border:1px solid var(--line); background:var(--ivory); color:var(--rose); cursor:pointer; font-size:13px; }
  .cal-nav span{ font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:600; color:var(--olive-dark); text-transform:capitalize; }

  .cal-view-tabs{ display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
  .cal-view-tab{ font-size:11px; font-weight:700; padding:5px 10px; cursor:pointer; color:rgba(42,36,32,.5); background:var(--ivory); }
  .cal-view-tab.active{ background:var(--rose); color:#fff; }

  .cal-add-btn{
    width:32px; height:32px; border-radius:50%; border:1.5px solid var(--rose); background:var(--ivory);
    color:var(--rose); font-size:20px; font-weight:300; cursor:pointer; line-height:1; text-decoration:none;
    display:flex; align-items:center; justify-content:center;
  }

  .cal-year-months{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:6px; }
  .cal-month-pill{
    text-align:center; padding:10px 4px; border-radius:10px; font-size:11.5px; font-weight:700;
    color:rgba(42,36,32,.55); background:var(--ivory); cursor:pointer; position:relative; border:1px solid var(--line);
  }
  .cal-month-pill.has-items::after{ content:''; width:5px; height:5px; border-radius:50%; background:var(--rose); position:absolute; top:5px; right:5px; }
  .cal-month-pill.selected{ background:var(--rose); color:#fff; }
  .cal-month-pill.selected::after{ background:#fff; }

  .quick-add-toggle{ font-size:12px; font-weight:700; color:var(--rose); cursor:pointer; margin-top:14px; }

  #confirmModal.open, #createModal.open, #newContattoModal.open{ bottom:0; }
  #confirmModalBackdrop.open, #newContattoBackdrop.open{ display:block; opacity:1; }
  .cal-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:10px; font-weight:700; color:rgba(42,36,32,.4); margin-bottom:6px; }
  .cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
  .cal-day{
    aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    border-radius:8px; font-size:12px; font-weight:600; color:var(--ink); cursor:pointer; position:relative;
    background:var(--ivory); border:1px solid transparent;
  }
  .cal-day.empty{ visibility:hidden; }
  .cal-day.selected{ background:var(--rose); color:#fff; }
  .cal-day .cd-dot{ width:4px; height:4px; border-radius:50%; background:var(--rose); margin-top:2px; }
  .cal-day.selected .cd-dot{ background:#fff; }

  .admin-list-row{
    display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
    border-radius:12px; padding:12px 14px; margin-bottom:9px; flex-wrap:wrap;
  }
  .admin-list-row .alr-main{ flex:1; min-width:120px; }
  .admin-list-row .alr-title{ font-size:13px; font-weight:700; color:var(--olive-dark); }
  .admin-list-row .alr-sub{ font-size:11px; color:rgba(42,36,32,.55); margin-top:2px; }
  .admin-list-row .alr-del{ font-size:11px; color:var(--rose); font-weight:700; cursor:pointer; }

  .status-badge{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:4px 10px; border-radius:999px; white-space:nowrap; }
  .status-badge.confermato, .status-badge.accettato, .status-badge.gia_confermato{ background:rgba(194,148,54,.12); color:var(--olive); }
  .status-badge.opzionato, .status-badge.inviato, .status-badge.in_trattativa{ background:rgba(176,141,87,.12); color:var(--gold); }
  .status-badge.rifiutato, .status-badge.non_interessati, .status-badge.non_interessato{ background:rgba(201,143,149,.12); color:var(--rose); }
  .status-badge.archiviato, .status-badge.bozza, .status-badge.scaduto{ background:rgba(42,36,32,.08); color:rgba(42,36,32,.5); }

  .stat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .stat-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; }
  .stat-card .sc-num{ font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--olive-dark); }
  .stat-card .sc-label{ font-size:11px; color:rgba(42,36,32,.55); margin-top:4px; font-weight:600; }

  .breakdown-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
  .breakdown-row:last-child{ border-bottom:none; }
  .breakdown-row .br-bar{ flex:1; height:8px; border-radius:999px; background:var(--ivory); overflow:hidden; }
  .breakdown-row .br-fill{ height:100%; border-radius:999px; background:var(--olive); }
  .breakdown-row .br-count{ font-weight:700; min-width:18px; text-align:right; }

  .admin-list-row{ cursor:pointer; }

  .search-bar{ margin-bottom:14px; }
  .search-bar input{
    width:100%; padding:11px 14px; border-radius:10px; border:1px solid var(--line);
    font-family:inherit; font-size:13px; background:#fff; color:var(--ink);
  }
  .search-bar input:focus{ outline:none; border-color:var(--rose); }
  .contact-type-tag{
    font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
    color:var(--gold); margin-top:1px;
  }
  .contact-avatar{ width:38px; height:38px; border-radius:50%; object-fit:cover; flex-shrink:0; }
  .contact-avatar-placeholder{
    width:38px; height:38px; border-radius:50%; background:var(--stone); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-family:'Cormorant Garamond',serif; font-size:15px; color:var(--ivory); font-weight:600;
  }
  .anag-section-title{
    font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; color:var(--olive-dark); margin-bottom:12px;
  }
  .fase-section-title{
    font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; color:var(--olive-dark);
    margin:18px 0 10px; padding-left:12px; border-left:3px solid var(--olive);
  }
  .anag-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  @media(min-width:768px){ .anag-grid{ grid-template-columns:1fr 1fr 1fr 1fr; } }

  .detail-modal-backdrop{
    position:absolute; inset:0; background:rgba(38,30,20,.45); z-index:40;
    display:none; opacity:0; transition:opacity .2s ease;
  }
  .detail-modal-backdrop.open{ display:block; opacity:1; }
  .detail-modal{
    position:absolute; left:0; right:0; bottom:-100%; z-index:41;
    background: var(--ivory); border-radius:20px 20px 0 0; box-shadow:0 -10px 40px rgba(38,30,20,.25);
    transition:bottom .25s ease; max-height:80%; display:flex; flex-direction:column;
  }
  .detail-modal.open{ bottom:0; }
  .detail-modal-bar{
    display:flex; justify-content:space-between; align-items:center; padding:16px 20px;
    border-bottom:1px solid var(--line); font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:600; color:var(--olive-dark);
  }
  .detail-modal-close{ font-family:'Jost',sans-serif; font-size:11.5px; font-weight:700; color:var(--rose); cursor:pointer; }
  .detail-modal-body{ padding:20px; overflow-y:auto; }
  .detail-row{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
  .detail-row:last-of-type{ border-bottom:none; }
  .detail-row .dr-label{ color:rgba(42,36,32,.5); font-weight:600; }
  .detail-row .dr-value{ font-weight:700; color:var(--ink); text-align:right; }
  .detail-modal-body select.site-input{ margin-top:10px; }
  .detail-modal-actions{ display:flex; gap:10px; margin-top:18px; }
  .detail-modal-actions .btn{ margin-top:0; }

  /* PUBLIC VIEW: SERVIZI */
  .pub-service-card{
    display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--line);
  }
  .pub-service-card:last-of-type{ border-bottom:none; }
  .pub-service-icon{ width:40px; height:40px; border-radius:12px; flex-shrink:0; }
  .pub-service-title{ font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:600; color:var(--olive-dark); margin-bottom:4px; }
  .pub-service-desc{ font-size:12px; color:rgba(42,36,32,.7); line-height:1.6; }

  /* PUBLIC VIEW: GALLERY */
  .pub-gallery-grid{
    display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:auto auto; gap:8px; margin-bottom:6px;
  }
  .pub-gallery-item{
    border-radius:12px; position:relative; overflow:hidden; min-height:90px; display:flex; align-items:flex-end; padding:8px 10px;
  }
  .pub-gallery-item.pub-gal-large{ grid-row:span 2; min-height:200px; }
  .pub-gal-label{
    font-size:10px; font-weight:700; color:rgba(247,243,236,.9); text-shadow:0 1px 3px rgba(0,0,0,.3);
    text-transform:uppercase; letter-spacing:.06em;
  }

  /* PUBLIC VIEW: CONTATTI */
  .pub-contact-grid{ display:grid; grid-template-columns:1fr; gap:14px; margin-bottom:18px; }
  .pub-contact-block{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 16px; }
  .pub-contact-label{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--gold); margin-bottom:4px; }
  .pub-contact-val{ font-size:13px; color:var(--ink); line-height:1.55; }
  .pub-contact-link{ font-size:11.5px; font-weight:700; color:var(--rose); margin-top:8px; display:block; }
  .pub-social-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
  .pub-social-btn{
    font-size:12px; font-weight:700; color:var(--rose); border:1.5px solid var(--rose); border-radius:999px;
    padding:7px 16px; text-decoration:none;
  }
  .pub-map-placeholder{
    background:#fff; border:1.5px dashed var(--line); border-radius:14px; padding:22px;
    text-align:center; color:rgba(42,36,32,.6);
  }
  .pub-map-pin{ font-size:24px; }

  /* SCHEDA EVENTO PAGINA INTERA */
  .ev-hero{
    position:relative; min-height:260px; padding:50px 24px 32px;
    background:linear-gradient(180deg, rgba(38,30,20,.28) 0%, rgba(38,30,20,.75) 100%),
               repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0, rgba(255,255,255,.05) 2px, transparent 2px, transparent 11px),
               #8f7d64;
    background-size:cover; background-position:center;
    color:var(--ivory); display:flex; flex-direction:column; justify-content:flex-end;
  }
  .ev-hero-eyebrow{
    font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.7; margin-bottom:12px;
    display:flex; align-items:center; gap:10px;
  }
  .ev-hero-eyebrow::before{
    content:''; width:22px; height:22px; border-radius:50%;
    background:rgba(247,243,236,.2); border:1px solid rgba(247,243,236,.3); display:inline-block; flex-shrink:0;
  }
  .ev-hero-names{
    font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:600; line-height:1.0; margin-bottom:6px; letter-spacing:.005em;
  }
  .ev-hero-date{ font-size:13px; opacity:.85; letter-spacing:.04em; }
  .ev-hero-tipo{
    font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; font-weight:700;
    opacity:.6; margin-top:4px;
  }
  .ev-hero-actions{ display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
  .ev-hero-btn{
    font-size:11px; font-weight:700; padding:8px 16px; border-radius:999px; cursor:pointer;
    border:1px solid rgba(247,243,236,.45); background:transparent; color:var(--ivory);
    letter-spacing:.04em;
  }
  .ev-hero-btn.primary{ background:rgba(247,243,236,.18); border-color:rgba(247,243,236,.7); }

  /* SCHEDA: layout editoriale, elegante (niente tabelle) */
  .ev-scheda{ padding:20px 16px 0; }
  .ev-card{
    background:#fff; border:1px solid var(--line); border-radius:20px;
    padding:22px 22px 20px; margin-bottom:16px;
    box-shadow:0 14px 34px -26px rgba(42,36,32,.5);
  }
  .ev-card-head{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
  .ev-card-ic{
    width:36px; height:36px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:rgba(194,148,54,.1); color:var(--gold);
  }
  .ev-card-ic svg{ width:19px; height:19px; }
  .ev-card-head h3{
    font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600;
    color:var(--olive-dark); letter-spacing:.01em; line-height:1.1;
  }
  .ev-dl{ display:grid; grid-template-columns:1fr 1fr; gap:17px 20px; }
  .ev-dl-item{ display:flex; flex-direction:column; gap:4px; min-width:0; }
  .ev-dl-item.full{ grid-column:1 / -1; }
  .ev-dl-k{ font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:var(--rose); }
  .ev-dl-v{ font-size:14.5px; color:rgba(42,36,32,.72); line-height:1.45; }
  .ev-dl-v.hl{ font-size:14.5px; color:rgba(42,36,32,.72); font-weight:400; }
  .ev-note-text{
    font-size:13.5px; color:rgba(42,36,32,.72); line-height:1.65; white-space:pre-line;
    font-family:'Jost',sans-serif;
  }
  .ev-stat-hero{
    display:flex; align-items:baseline; gap:12px;
    padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line);
  }
  .ev-stat-num{ font-family:'Cormorant Garamond',serif; font-size:48px; font-weight:600; color:var(--gold); line-height:.85; }
  .ev-stat-lab{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:var(--rose); }
  .ev-chips{ display:flex; flex-wrap:wrap; gap:9px; }
  .ev-chip{
    background:var(--ivory); border:1px solid var(--line); border-radius:999px;
    padding:7px 14px; display:flex; align-items:baseline; gap:7px;
  }
  .ev-chip .n{ font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--gold); line-height:1; }
  .ev-chip .l{ font-size:10px; color:rgba(42,36,32,.55); text-transform:uppercase; letter-spacing:.05em; }
  .ev-forn-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
  .ev-forn-cell{ padding:0 0 10px; border-bottom:1px solid var(--line); }
  .ev-forn-role{ font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; color:var(--rose); margin-bottom:4px; }
  .ev-forn-name{ font-size:14px; color:var(--olive-dark); font-weight:600; line-height:1.3; }
  .ev-forn-name a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
  .ev-empty{ font-size:13.5px; color:rgba(42,36,32,.42); font-style:italic; font-family:'Cormorant Garamond',serif; }
  .ev-card-divider{ height:1px; background:var(--line); margin:18px 0; }
  .ev-nascoste{
    background:rgba(201,143,149,.08); border:1px solid rgba(201,143,149,.2); border-radius:16px; margin:0 0 16px; padding:16px 18px;
  }

  /* TIMELINE */
  .ev-section{ margin:0 16px 12px; background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; }
  .ev-section-title{
    font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:600; color:var(--olive-dark);
    padding:16px 20px; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--line);
    background:var(--ivory);
  }
  .ev-field{ padding:10px 20px; border-bottom:1px solid var(--line); }
  .ev-field:last-child{ border-bottom:none; }
  .ev-field-label{ font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--rose); margin-bottom:3px; }
  .ev-field-val{ font-size:13.5px; color:var(--ink); }
  .ev-grid-2{ display:grid; grid-template-columns:1fr 1fr; }
  .ev-fornitore-link{ color:var(--rose); font-weight:600; }
  .ev-fase-title{
    font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:600;
    padding:12px 20px; background:var(--ivory); border-bottom:1px solid var(--line); color:var(--olive-dark);
  }
  .ev-tabs-bar{
    display:flex; border-bottom:1px solid var(--line); background:var(--ivory); position:sticky; top:0; z-index:5;
  }
  .ev-tab{
    flex:1; text-align:center; padding:13px 4px; font-size:12.5px; font-weight:700;
    color:rgba(42,36,32,.45); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px;
  }
  .ev-tab.active{ color:var(--rose); border-bottom-color:var(--rose); }

  /* TIMELINE — rail verticale con medaglioni icona */
  .ev-timeline{ padding:22px 20px 10px; }
  .ev-tl-item{ position:relative; padding:0 0 26px 54px; }
  .ev-tl-item:last-child{ padding-bottom:6px; }
  .ev-tl-item::before{
    content:''; position:absolute; left:18px; top:38px; bottom:-4px; width:1.5px;
    background:linear-gradient(var(--gold), rgba(194,148,54,.18));
  }
  .ev-tl-item:last-child::before{ display:none; }
  .ev-tl-node{
    position:absolute; left:0; top:0; width:38px; height:38px; border-radius:50%;
    background:#fff; border:1px solid rgba(194,148,54,.45); color:var(--gold);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 5px 14px -7px rgba(194,148,54,.7);
  }
  .ev-tl-node svg{ width:19px; height:19px; }
  .ev-tl-time{
    font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600;
    color:var(--rose); letter-spacing:.03em; line-height:1; margin-bottom:3px;
  }
  .ev-tl-name{
    font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600;
    color:var(--olive-dark); line-height:1.12; margin-bottom:9px;
  }
  .ev-tl-fields{ display:flex; flex-direction:column; gap:8px; }
  .ev-tl-field{ display:flex; flex-direction:column; gap:2px; }
  .ev-tl-fk{ font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:var(--rose); }
  .ev-tl-fv{ font-size:13px; color:rgba(42,36,32,.72); line-height:1.5; white-space:pre-line; }

  .ev-edit-section{
    font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:600; color:var(--olive-dark);
    background:var(--ivory); border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:10px;
  }
  .ev-edit-fase-title{
    font-family:'Cormorant Garamond',serif; font-size:13.5px; font-weight:600; color:var(--olive-dark); margin-bottom:2px;
    padding-bottom:8px; border-bottom:1px solid var(--line);
  }
  .ev-fase-pill{
    display:flex; align-items:stretch; border-radius:999px; overflow:hidden; border:1px solid var(--line);
    cursor:pointer; margin-bottom:10px; background:#fff;
  }
  .ev-fase-pill .cap{ width:16px; background:var(--olive); flex-shrink:0; }
  .ev-fase-pill .lbl{
    flex:1; padding:13px 18px; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:15px; color:var(--olive-dark);
  }
  .ev-fase-fields{
    background:#fff; border-radius:12px; padding:14px 16px; margin:-4px 0 12px; border:1px solid var(--line);
  }

  /* CONTABILITÀ EVENTO */
  .conta-summary-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:8px; }
  .conta-summary-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px; }
  .conta-summary-card .cs-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:rgba(42,36,32,.5); font-weight:700; margin-bottom:4px; }
  .conta-summary-card .cs-num{ font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:600; color:var(--olive-dark); }
  .conta-summary-card.warn .cs-num{ color:var(--rose); }
  .conta-summary-card.ok .cs-num{ color:var(--olive); }
  .conta-stat-card{ background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
  .conta-stat-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line); }
  .conta-stat-row:last-child{ border-bottom:none; }
  .conta-stat-row .cs-label{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:rgba(42,36,32,.5); font-weight:700; }
  .conta-stat-row .cs-num{ font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; color:var(--olive-dark); }
  .conta-stat-row.highlight{ background:var(--ivory); }
  .conta-stat-row.highlight .cs-num.warn{ color:var(--rose); }
  .conta-stat-row.highlight .cs-num.ok{ color:var(--olive); }
  .conta-section-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:20px 0 10px; }
  .conta-mini-add{ font-size:11px; font-weight:700; color:var(--rose); cursor:pointer; letter-spacing:.02em; white-space:nowrap; }
  .conta-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-bottom:12px; }
  .conta-card-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:6px; }
  .conta-card-title{ font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; color:var(--olive-dark); }
  .conta-card-sub{ font-size:11.5px; color:rgba(42,36,32,.55); margin-top:2px; }
  .conta-card-del{ font-size:11px; color:var(--rose); font-weight:700; cursor:pointer; flex-shrink:0; white-space:nowrap; }
  .conta-card-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
  .conta-add-link{ font-size:11.5px; font-weight:700; color:var(--olive); cursor:pointer; }
  .conta-add-btn{ text-align:center; font-size:12px; font-weight:700; color:var(--olive); border:1.5px dashed var(--line); border-radius:12px; padding:10px; cursor:pointer; margin-bottom:16px; }
  .conta-pag-row{ display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
  .conta-pag-row:last-of-type{ border-bottom:none; }
  .conta-pag-main{ flex:1; display:flex; gap:8px; align-items:baseline; min-width:0; }
  .conta-pag-data{ font-weight:600; color:var(--ink); flex-shrink:0; }
  .conta-pag-nota{ color:rgba(42,36,32,.5); font-size:11.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .conta-pag-importo{ font-weight:700; color:var(--olive-dark); flex-shrink:0; }
  .conta-pag-del{ color:rgba(42,36,32,.3); cursor:pointer; font-size:15px; flex-shrink:0; padding:0 2px; }
  .conta-empty{ font-size:12px; color:rgba(42,36,32,.45); font-style:italic; padding:4px 0 8px; }
  .conta-residuo-open{ font-size:12.5px; font-weight:700; color:var(--rose); }
  .conta-residuo-ok{ font-size:12.5px; font-weight:700; color:var(--olive); }
  .conta-iva-breakdown{ background:var(--ivory); border-radius:10px; padding:10px 14px; margin:10px 0 4px; }
  .conta-iva-row{ display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:4px; font-size:11.5px; color:rgba(42,36,32,.65); padding:4px 0; text-align:right; }
  .conta-iva-row span:first-child{ text-align:left; font-weight:600; color:var(--ink); }
  .conta-iva-row.conta-iva-head{ font-size:9.5px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; color:rgba(42,36,32,.45); border-bottom:1px solid var(--line); padding-bottom:6px; margin-bottom:2px; }
  .conta-rate-tags{ display:flex; flex-wrap:wrap; gap:6px; width:100%; margin-top:2px; }
  .conta-rate-tag{ font-size:10px; font-weight:600; color:rgba(42,36,32,.55); background:var(--ivory); border-radius:999px; padding:2px 8px; }
  .conta-chi-row{ font-size:10.5px; color:rgba(42,36,32,.45); margin-top:4px; width:100%; }
  .conta-tag{ font-size:9.5px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding:3px 9px; border-radius:999px; }
  .conta-tag-uscita{ background:rgba(201,143,149,.14); color:var(--rose); }
  .conta-tag-entrata{ background:rgba(194,148,54,.14); color:var(--olive); }

  /* ===================== TABLET & DESKTOP LAYOUT (iPad portrait/landscape, PC) ===================== */
  @media (min-width: 768px){
    /* Testi più leggibili da desktop/tablet */
    .lead-text{ font-size:15px !important; }
    .hero-eyebrow{ font-size:12.5px; }
    .tab{ font-size:12.5px; }
    .eyebrow{ font-size:12px; }
    .servizio .t{ font-size:16.5px; }
    .servizio .d{ font-size:13.5px; }
    .btn{ font-size:16px; }
    .btn.small{ font-size:15px; }
    .review p{ font-size:15px; }
    .review .who{ font-size:13px; }
    .contact-line{ font-size:15.5px; }
    .social-row a{ font-size:16.5px; }
    .login-screen .mark{ font-size:15.5px; }
    .field label{ font-size:13px; }
    .field input{ font-size:16.5px; }
    .login-hint{ font-size:13px; }
    .admin-entry-link{ font-size:13.5px; }
    .checklist-item .dot{ font-size:14px; }
    .checklist-item .name{ font-size:15.5px; }
    .checklist-item .due{ font-size:13px; }
    .tag{ font-size:11px; }
    .contact-row .role{ font-size:12.5px; }
    .contact-row .name{ font-size:15.5px; }
    .contact-row .call{ font-size:14px; }
    .guest-toolbar input{ font-size:15.5px; }
    .stat .l{ font-size:11px; }
    .guest-row .name{ font-size:15.5px; }
    .guest-row .sub{ font-size:12.5px; }
    .rsvp{ font-size:12px; }
    .guest-del{ font-size:15.5px; }
    .group-header .g-name{ font-size:16.5px; }
    .group-header .g-count{ font-size:12.5px; }
    .menu-tag{ font-size:11px; }
    .allergy-note{ font-size:12px; }
    .subtab{ font-size:15px; }
    .table-meta{ font-size:13px; }
    .table-head .del{ font-size:13px; }
    .admin-note-text{ font-size:15.5px; }
    .admin-note-empty{ font-size:15px; }
    .kitchen-row{ font-size:15px; }
    .kitchen-row .kr-note{ font-size:13px; }
    .unassigned-bar .lbl{ font-size:13px; }
    /* IL NOSTRO SITO: editor */
  .site-input{ font-size:15.5px; }
    .site-field label{ font-size:12.5px; }
    .url-preview.readonly #urlSlugDisplay{ font-size:15.5px; }
    .url-domain{ font-size:15.5px; }
    .site-footer-mark{ font-size:14px; }
    .site-footer-logo .sf-name{ font-size:14px; }
    .site-footer-logo .sf-tag{ font-size:11px; }
    .site-hero-date{ font-size:15px; }
    .site-hero-venue{ font-size:14px; }
    .map-link{ font-size:13.5px; }
    .admin-set-row span:last-child{ font-size:14px; }
    .toggle-row{ font-size:15px; }
    .schedule-row{ font-size:15.5px; }
    .schedule-row .sr-del{ font-size:13px; }
    .site-eyebrow{ font-size:12.5px; }
    .site-story{ font-size:15.5px; }
    .site-schedule-item .ss-label{ font-size:15px; }
    .site-schedule-item .ss-place{ font-size:13.5px; }
    .site-info-row{ font-size:15px; }
    .hero-thumb-wrap .gt-empty{ font-size:13.5px; }
    .gallery-thumbs .gt-empty{ font-size:13.5px; }
    .rsvp-widget select, .rsvp-widget input{ font-size:15.5px; }
    .rsvp-confirmed{ font-size:15px; }
    .admin-logout{ font-size:13.5px; }
    .sposi-logout{ font-size:13.5px; }
    .pub-back-link{ font-size:14px; }
    .servizio-full .d{ font-size:15.5px; }
    .gall-cat-label{ font-size:12.5px; }
    .cta-card .txt .d{ font-size:13.5px; }
    .contatti-info-row .ic{ font-size:16.5px; }
    .contatti-info-row .t{ font-size:15.5px; }
    .contatti-info-row .d{ font-size:13.5px; }
    .contact-method .cm-ic{ font-size:13px; }
    .contact-method .cm-d{ font-size:13.5px; }
    .contact-method .cm-arrow{ font-size:16.5px; }
    .cal-nav button{ font-size:15.5px; }
    .cal-view-tab{ font-size:13px; }
    .cal-month-pill{ font-size:13.5px; }
    .quick-add-toggle{ font-size:14px; }
    .cal-weekdays{ font-size:12px; }
    .cal-day{ font-size:14px; }
    .admin-list-row .alr-title{ font-size:15.5px; }
    .admin-list-row .alr-sub{ font-size:13px; }
    .admin-list-row .alr-del{ font-size:13px; }
    .status-badge{ font-size:12px; }
    .stat-card .sc-label{ font-size:13px; }
    .breakdown-row{ font-size:15px; }
    .search-bar input{ font-size:15.5px; }
    .contact-type-tag{ font-size:11px; }
    .detail-modal-close{ font-size:13.5px; }
    .detail-row{ font-size:15.5px; }
    .pub-service-title{ font-size:16.5px; }
    .pub-service-desc{ font-size:14px; }
    .pub-gal-label{ font-size:12px; }
    .pub-contact-label{ font-size:12px; }
    .pub-contact-val{ font-size:15.5px; }
    .pub-contact-link{ font-size:13.5px; }
    .pub-social-btn{ font-size:14px; }
    .ev-hero-eyebrow{ font-size:12px; }
    .ev-hero-date{ font-size:15.5px; }
    .ev-hero-tipo{ font-size:12.5px; }
    .ev-hero-btn{ font-size:13px; }
    .ev-scheda-card-title{ font-size:16.5px; }
    .ev-scheda-label{ font-size:11px; }
    .ev-scheda-val{ font-size:16px; }
    .ev-forn-item .ev-scheda-val{ font-size:15.5px; }
    .ev-scheda-note{ font-size:15.5px; }
    .ev-card-head h3{ font-size:22px; }
    .ev-dl-k{ font-size:10.5px; }
    .ev-dl-v{ font-size:16px; }
    .ev-dl-v.hl{ font-size:16px; }
    .ev-note-text{ font-size:15px; }
    .ev-forn-role{ font-size:10.5px; }
    .ev-forn-name{ font-size:15.5px; }
    .ev-field-label{ font-size:11px; }
    .ev-field-val{ font-size:16px; }
    .ev-fase-title{ font-size:16.5px; }
    .ev-tab{ font-size:15px; }
    .ev-timeline-titolo{ font-size:16.5px; }
    .ev-tl-row{ font-size:14px; }
    .ev-tl-label{ font-size:10.5px; }
    .ev-tl-time{ font-size:17.5px; }
    .ev-tl-name{ font-size:21px; }
    .ev-tl-fk{ font-size:10px; }
    .ev-tl-fv{ font-size:14.5px; }
    .ev-edit-section{ font-size:16.5px; }
    .ev-edit-fase-title{ font-size:16px; }

    body{ padding: 32px 20px; }
    .phone{
      max-width: 1120px; min-height: unset; border-radius: 22px;
      box-shadow: 0 24px 60px -30px rgba(38,48,42,.3);
    }
    #appScreen{ display:flex; flex-direction:column; }
    .pub-contact-grid{ grid-template-columns: 1fr 1fr 1fr; }
    .pub-gallery-grid{ grid-template-columns: 2fr 1fr 1fr 1fr; }

    /* top nav instead of bottom tab bar */
    .tabbar{
      position:static; order:-1; border-top:none; border-bottom:1px solid var(--line);
      justify-content:center; gap:4px; padding:16px 28px;
    }
    .tab{ flex:0 0 auto; padding:10px 20px; border-radius:10px; }
    .tab .ic{ display:inline-block; margin:0 6px 0 0; font-size:14px; vertical-align:-1px; }

    .scroll{ order:1; height:auto; max-height: 78vh; padding-bottom: 40px; }

    .hero{ height: 360px; border-radius: 0; }
    .hero h1{ font-size: 42px; }
    .hero .sub{ font-size:15px; }

    .section{ max-width: 880px; margin: 0 auto; padding: 36px 40px 10px; }
    h2{ font-size: 25px; }

    .servizi-grid{ grid-template-columns: repeat(4, 1fr); }
    .servizi-grid[style*="1fr 1fr 1fr"]{ grid-template-columns: repeat(6,1fr) !important; }

    /* reviews side by side */
    /* reviews: titolo affiancato, recensioni in griglia (quante ne vuoi) */
    #view-pubblico .section:has(.review-carousel){ display:flex; flex-wrap:wrap; gap:32px; align-items:flex-start; }
    .reviews-head{ flex:0 0 200px; }
    .review-carousel{ flex:1; min-width:0; }
    .rc-viewport{ min-height:100px; }
    .mw-awards{ flex:0 0 100%; }

    /* contatti pubblici: card narrower, centered with text */
    #view-pubblico .section:last-of-type .card{ max-width: 420px; }

    /* login centered card */
    .login-screen{
      min-height: 100vh;
    }

    /* OSPITI: two-column guest grid + side stats */
    #view-ospiti .section{ max-width: 920px; }
    .stat-row{ max-width: 480px; }
    .guest-toolbar{ max-width: 600px; }
    #guestList{ display:grid; grid-template-columns: 1fr 1fr; gap:8px 12px; }
    #guestList .group-header{ grid-column: 1 / -1; }

    /* TAVOLI: two-column table cards, unassigned bar full width above */
    #view-tavoli .section{ max-width: 1000px; }
    #tablesList{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; align-items:start; }
    .table-card{ margin-bottom:0; }

    /* contatti privati: two cards side by side */
    #view-contatti-privati{ }
    #view-contatti-privati .section{ display:inline-block; vertical-align:top; max-width: 430px; }

    /* SERVIZI / GALLERIA / CONTATTI pubbliche */
    .pub-sub-hero{ height:360px; border-radius:0; padding:32px 40px; }
    .pub-sub-hero h1{ font-size:34px; }
    #view-servizi .section, #view-galleria .section, #view-contatti .section{ max-width: 880px; margin:0 auto; }
    #view-servizi .servizio-full{ }
    .gall-grid{ grid-template-columns: repeat(4, 1fr); }
    .gall-tile.wide{ grid-column: span 2; }
    .cta-row{ flex-direction:row; }
    .cta-card{ flex:1; flex-direction:column; text-align:center; gap:10px; padding:22px 16px; }
    #view-contatti .card{ max-width: 460px; }
  }

/* ===== Adattamento per sito pubblico reale (non più app-frame) ===== */
body{ margin:0; padding:0 !important; }
.phone{
  max-width: none !important; margin: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; border: none !important; min-height: 100vh !important;
}
.scroll{ height:auto !important; max-height:none !important; overflow:visible !important; padding-bottom:0 !important; }
#appScreen{ display:block !important; }
.tabbar{ display:none !important; }
.admin-tabbar{
  position:fixed; bottom:0; left:0; right:0; z-index:40;
  display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
  background:var(--ivory); border-top:1px solid var(--line);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent 100%);
}
.admin-tabbar::-webkit-scrollbar{ display:none; }
.admin-tabbar .tab{ flex:1 0 auto; min-width:64px; text-align:center; }
body:has(.admin-tabbar){ padding-bottom:140px; }

/* Fino a ~tablet la barra del gestionale resta fissa in basso (look da web-app);
   da desktop diventa una barra di navigazione in alto. */
@media (min-width:1024px){
  .site-nav{ flex-wrap:nowrap; }
  .admin-tabbar{
    position:static; border-top:none; border-bottom:none; background:transparent;
    padding:0; justify-content:flex-start; mask-image:none; -webkit-mask-image:none;
    flex:1 1 auto; min-width:0; overflow-x:auto;
  }
  .admin-tabbar .tab{ flex:0 0 auto; }
  body:has(.admin-tabbar){ padding-bottom:0; }
}

/* Senza questo limite, su schermi larghi le sezioni si allargano a piena
   pagina e ogni elemento (bottoni, testi, card) diventa sproporzionato. */
.section{ max-width: 900px; margin-left:auto; margin-right:auto; }

.site-nav{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 24px; padding-top:calc(16px + env(safe-area-inset-top));
  border-bottom:1px solid var(--line); background:var(--ivory);
  position:sticky; top:0; z-index:30;
}
.site-nav .brand{
  display:flex; align-items:center; gap:10px;
  font-family:'Cormorant Garamond',serif; font-weight:600; font-size:20px; color:var(--olive);
  letter-spacing:.02em; text-decoration:none;
}
.site-nav-logo{ height:34px; width:auto; display:block; }
.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:10px; background:none; border:none; cursor:pointer; flex-shrink:0; -webkit-tap-highlight-color:transparent; }
.nav-toggle span{ display:block; height:2px; width:22px; background:var(--olive-dark); border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
.site-nav.open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.site-nav.open .nav-toggle span:nth-child(2){ opacity:0; }
.site-nav.open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.site-nav .links{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.site-nav .links a{
  font-family:'Jost',sans-serif; font-size:12.5px; font-weight:500; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(42,36,32,.6); text-decoration:none; transition:color .15s ease;
}
.site-nav .links a:hover, .site-nav .links a.active{ color:var(--rose); }
a.riservata{ color:var(--rose) !important; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.site-nav a.riservata{ color:var(--rose); font-weight:700; text-decoration:underline; text-underline-offset:3px; }

/* Selettore lingua IT/EN — link semplice come le altre voci del menù */
.site-nav .links a.lang-switch{ font-weight:600; color:var(--olive-dark); }
.site-nav .links a.lang-switch:hover{ color:var(--rose); }

.site-footer{
  padding:32px 24px 40px; text-align:center; border-top:1px solid var(--line); margin-top:12px;
}
.site-footer p{ font-size:11px; color:rgba(42,36,32,.4); margin:4px 0; }
.site-footer a{ color:rgba(42,36,32,.4); }

@media (min-width:768px){
  .site-nav{ padding:22px 40px; padding-top:calc(22px + env(safe-area-inset-top)); }
  .site-nav .brand{ font-size:28px; gap:14px; }
  .site-nav-logo{ height:46px; }
}

@media (max-width:767px){
  .site-nav{ padding:14px 20px; padding-top:calc(14px + env(safe-area-inset-top)); align-items:center; flex-wrap:wrap; row-gap:0; }
  .site-nav .brand{ line-height:1.06; gap:12px; }
  .site-nav-logo{ height:46px; }
  .nav-toggle{ display:flex; }   /* mostra il panino solo su telefono */
  /* menu compatto: nascosto di default, si apre toccando il panino */
  .site-nav .links{
    flex-basis:100%; width:100%;
    display:none; flex-direction:column; gap:0;
  }
  .site-nav.open .links{ display:flex; margin-top:8px; }
  .site-nav .links a{
    padding:13px 4px; border-top:1px solid var(--line);
    font-size:14px; letter-spacing:.08em;
  }
}

/* =====================================================================
   REV — home (contatti + galleria) e pagina contatti
   ===================================================================== */

/* ---- Home · blocco Contatti ---- */
.home-contact{
  background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:24px 22px; display:flex; flex-direction:column; gap:22px;
}
.home-contact .hc-intro{ display:flex; flex-direction:column; gap:16px; }
.home-contact .hc-lead{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:19px; line-height:1.45; color:var(--olive-dark); margin:0;
}
.home-contact .hc-details{ display:flex; flex-direction:column; }
.hc-row{ display:flex; flex-direction:column; gap:3px; padding:11px 0; border-bottom:1px solid var(--line); }
.hc-row:last-of-type{ border-bottom:none; }
.hc-label{ font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.hc-val{ font-size:14.5px; color:var(--ink); text-decoration:none; }
a.hc-val:hover{ color:var(--rose); }
.hc-social{ display:flex; gap:10px; padding-top:16px; }
.hc-social a{
  width:36px; height:36px; border-radius:50%; background:transparent; border:1px solid var(--rose);
  color:var(--rose); display:flex; align-items:center; justify-content:center;
  text-decoration:none; transition:background .2s ease,color .2s ease;
}
.hc-social a svg{ width:16px; height:16px; }
.hc-social a:hover{ background:var(--rose); color:#fff; }
.home-contact .hc-btn{ width:auto; align-self:flex-start; padding:13px 30px; border-radius:999px; margin:0; }

/* ---- Home · anteprima Galleria (mosaico) ---- */
.home-gallery{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gal-tile{
  position:relative; border-radius:12px; overflow:hidden; min-height:150px;
  display:flex; align-items:flex-end; padding:14px; background:#8f7d64;
}
.gal-tile::before{
  content:""; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(38,30,20,.02) 42%, rgba(38,30,20,.58) 100%);
}
.gal-tile > *{ position:relative; z-index:2; }
/* <picture> (WebP + fallback) è solo un involucro: non deve intercettare il posizionamento
   delle immagini di sfondo assolute (.hero-bg-photo / .gal-photo) */
.hero > picture, .pub-sub-hero > picture, .gal-tile > picture{ position:static !important; z-index:auto !important; }
.gal-photo{
  position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  object-fit:cover !important; z-index:0 !important;
}
.gal-tile.feature{ grid-column:span 2; }
.gal-tile.t1{ background:#5a6e54; }
.gal-tile.t2{ background:#b3a48f; }
.gal-tile.t3{ background:#c98f95; }
.gal-tile.t4{ background:#8f7d64; }
.gal-tile.t5{ background:#7d8a76; }
.gal-cap{ font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; color:var(--ivory); letter-spacing:.02em; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.gal-hint{
  display:block; margin-top:3px; font-family:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
  font-size:8px; letter-spacing:.16em; text-transform:uppercase; color:rgba(247,243,236,.7);
}

/* ---- Pagina Contatti · layout ---- */
.contatti-layout{ display:flex; flex-direction:column; gap:16px; }
.contatti-methods{ display:flex; flex-direction:column; }
.cl-seguiteci .eyebrow{ margin:20px 0 10px; }

@media (min-width:768px){
  .why-band{ padding:48px 40px; }
  .why-band h2{ font-size:30px; max-width:520px; }
  .why-grid{ grid-template-columns:repeat(4, 1fr); gap:28px; }
  .mid-photo{ height:340px; }

  /* Home contatti su due colonne */
  .home-contact{ flex-direction:row; align-items:stretch; gap:0; padding:32px 0; }
  .home-contact .hc-intro{
    flex:1; display:flex; flex-direction:column; justify-content:space-between; gap:24px;
    padding:4px 40px; border-right:1px solid var(--line);
  }
  .home-contact .hc-lead{ font-size:23px; }
  .home-contact .hc-details{ flex:1; justify-content:center; padding:4px 40px; }
  .hc-val{ font-size:16px; }

  /* Home galleria mosaico */
  .home-gallery{ grid-template-columns:repeat(4,1fr); grid-auto-rows:158px; gap:12px; }
  .gal-tile{ min-height:0; }
  .gal-tile.feature{ grid-column:span 2; grid-row:span 2; }
  .gal-cap{ font-size:18px; }

  /* Pagina contatti: aside + form affiancati, centrati */
  #view-contatti .section{ max-width:1000px; padding:44px 40px 22px; }
  #view-contatti .card{ max-width:none; }
  .contatti-layout{
    display:grid; grid-template-columns:1fr 1.05fr; column-gap:44px; row-gap:16px; align-items:start;
  }
  .contatti-layout .cl-a{ grid-column:1; grid-row:1; }
  .contatti-layout .cl-c{ grid-column:1; grid-row:2; }
  .contatti-layout .cl-b{ grid-column:2; grid-row:1 / span 2; position:sticky; top:24px; }
  .contatti-layout .cl-b .card{ margin-bottom:0; }
}

/* =====================================================================
   UX mobile / tablet / desktop — ottimizzazioni web-app
   ===================================================================== */

/* iPhone/iPad: campi a 16px per NON far scattare lo zoom automatico al focus */
.site-input,
select.site-input,
textarea.site-input,
.guest-toolbar input,
.table-name-input { font-size: 16px; }

/* Sicurezza: le immagini non causano mai scroll orizzontale */
img { max-width: 100%; }

/* I pulsanti non si spezzano mai lettera-per-lettera se lo spazio è poco */
.btn { white-space: nowrap; }

/* Niente scroll/sfarfallio orizzontale.
   Il clip va SOLO su html: se messo anche su body disattiva l'header sticky. */
html { overflow-x: clip; }
body { max-width: 100%; }

/* Blocca il rimbalzo (rubber-band) di iOS: l'header non "ballonzola" più */
html, body { overscroll-behavior: none; }

/* Header ancorato in alto. Sticky riserva lo spazio da solo (niente spaziatore/JS)
   e NON copre mai il contenuto: fixed causava titoli/pulsanti tagliati nel gestionale. */
.site-nav { position: sticky; top: 0; z-index: 40; }
#navSpacer { display: none; }

/* Il nome nella barra non va mai a capo e non si restringe (niente sovrapposizioni col menu) */
.site-nav .brand { white-space: nowrap; flex-shrink: 0; margin-right: 16px; }

/* Contatti: tasti azione (WhatsApp / Chiama / Email) accanto a telefono e mail */
.ct-actions{ margin-left:auto; display:inline-flex; gap:6px; flex-shrink:0; }
.ct-act{ width:32px; height:32px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; border:1px solid var(--line); color:var(--olive-dark); background:#fff; transition:transform .1s ease, background .2s ease; }
.ct-act:hover{ transform:translateY(-1px); }
.ct-act:active{ transform:translateY(0); }
.ct-wa{ color:#1ebe5d; border-color:rgba(30,190,93,.4); }
.ct-wa:hover{ background:rgba(30,190,93,.10); }
.ct-call:hover, .ct-mail:hover{ background:rgba(138,104,37,.10); }

/* Card riepilogo dashboard: sottile striscia oro sfumata in alto, ritagliata sugli angoli */
.conta-summary-card.oro-top{ position:relative; overflow:hidden; }
.conta-summary-card.oro-top::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, transparent, var(--gold) 18%, var(--gold) 82%, transparent);
}

/* ===== Galleria pubblica: mosaico masonry + lightbox ===== */
.gall-uniform{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:4px; }
.gall-item{
  display:block; width:100%; margin:0; padding:0; border:none; background:#8f7d64;
  border-radius:12px; overflow:hidden; position:relative; cursor:zoom-in; aspect-ratio:1;
  box-shadow: 0 6px 18px -12px rgba(38,48,42,.55);
}
.gall-item img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.gall-item:hover img{ transform: scale(1.06); }
.gall-item-cap{
  position:absolute; left:0; right:0; bottom:0; padding:22px 12px 9px;
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:#fff; text-align:left;
  background: linear-gradient(180deg, rgba(38,30,20,0) 0%, rgba(38,30,20,.6) 100%);
  opacity:0; transform: translateY(6px); transition: opacity .3s ease, transform .3s ease; pointer-events:none;
}
.gall-item:hover .gall-item-cap{ opacity:1; transform: translateY(0); }
@media (min-width:768px){ .gall-uniform{ grid-template-columns:repeat(3,1fr); gap:12px; } }

/* Lightbox */
.lb{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center;
  background: rgba(24,20,15,.92); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.lb.open{ display:flex; }
.lb-figure{ margin:0; max-width:92vw; max-height:86vh; display:flex; flex-direction:column; align-items:center; gap:10px; }
.lb-img{ max-width:92vw; max-height:80vh; width:auto; height:auto; border-radius:6px; box-shadow:0 30px 80px -20px rgba(0,0,0,.7); object-fit:contain; }
.lb-cap{ color:rgba(247,243,236,.85); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.lb-btn{ position:absolute; background:rgba(247,243,236,.10); color:#fff; border:1px solid rgba(247,243,236,.25);
  border-radius:999px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition: background .2s ease; -webkit-tap-highlight-color:transparent; }
.lb-btn:hover{ background:rgba(247,243,236,.22); }
.lb-close{ top:16px; right:16px; width:44px; height:44px; font-size:26px; line-height:1; }
.lb-prev, .lb-next{ top:50%; transform:translateY(-50%); width:48px; height:48px; font-size:30px; line-height:1; }
.lb-prev{ left:12px; } .lb-next{ right:12px; }
.lb-count{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:rgba(247,243,236,.7); font-size:12px; letter-spacing:.08em; }
@media (min-width:768px){ .lb-close{ top:24px; right:28px; } .lb-prev{ left:28px; } .lb-next{ right:28px; } }

/* ===== Highlights + reel video (SOLO telefono) ===== */
.gall-highlights{ display:flex; gap:16px; margin:8px 0 6px; flex-wrap:wrap; }
.hl-item{ display:flex; flex-direction:column; align-items:center; gap:6px; width:76px; }
.hl-bubble{ position:relative; width:76px; height:76px; border-radius:50%; padding:0; border:none; cursor:pointer; overflow:hidden; flex:0 0 auto; background:#8f7d64; box-shadow:0 0 0 2px var(--ivory), 0 0 0 4px var(--olive); }
.hl-bubble img{ width:100%; height:100%; object-fit:cover; display:block; }
.hl-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; text-shadow:0 1px 5px rgba(0,0,0,.55); }
.hl-label{ font-size:11px; letter-spacing:.02em; color:var(--olive-dark); text-align:center; line-height:1.2; }

.reel{ position:fixed; inset:0; z-index:1100; display:none; align-items:center; justify-content:center; background:#000; }
.reel.open{ display:flex; }
.reel video{ width:100%; height:100%; max-height:100vh; object-fit:contain; background:#000; }
.reel-close{ position:absolute; top:calc(14px + env(safe-area-inset-top)); right:14px; width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; font-size:24px; line-height:1; cursor:pointer; z-index:2; }

/* Nomi/email/URL lunghi vanno a capo invece di sfondare le card su schermi stretti */
.admin-list-row, .card, .stat-card, .alr-title, .alr-sub { overflow-wrap: anywhere; }

/* Schermi grandi (PC): navigazione con più respiro ai lati */
@media (min-width: 1280px){
  .site-nav{ padding-left: 40px; padding-right: 40px; }
}

/* ---- Pagine legali (Privacy / Cookie) ---- */
.legal{ font-size:13px; line-height:1.72; color:rgba(31,36,32,.82); }
.legal h2{ font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--olive-dark); font-weight:600; margin:24px 0 8px; }
.legal h3{ font-size:12.5px; letter-spacing:.04em; color:var(--ink); font-weight:600; margin:14px 0 4px; }
.legal p{ margin:0 0 10px; }
.legal ul{ margin:0 0 10px 18px; }
.legal li{ margin:4px 0; }
.legal a{ color:var(--rose); }
.legal .updated{ font-size:12px; color:rgba(31,36,32,.5); margin-top:22px; font-style:italic; }
