/* Lente sulle quattro fotografie originali dei nastri Dyneema. */
.dy-zoom-target{position:relative;isolation:isolate;}
.dy-zoom-target>img{pointer-events:auto;user-select:none;-webkit-user-drag:none;}
.dy-zoom-open{
 position:absolute;right:17px;bottom:17px;z-index:3;
 border:1px solid #d1cec6;background:rgba(255,254,250,.95);color:#233e33;
 padding:11px 13px;cursor:pointer;font:600 12px/1.3 Arial,sans-serif;
 box-shadow:0 5px 16px #1a252018;transition:background .16s;
}
.dy-zoom-open:hover{background:#fff;}
.dy-zoom-open:focus-visible,.dy-zoom-dialog button:focus-visible{outline:3px solid #b88064;outline-offset:3px;}
.dy-zoom-open span{font-size:20px;vertical-align:middle;margin-right:5px;}
.dy-zoom-hint{display:none;position:absolute;bottom:28px;left:23px;
 pointer-events:none;color:#526358;font:500 11px Arial,sans-serif;letter-spacing:.02em;}
.dy-magnifier{
  display:none;position:absolute;z-index:2;left:0;top:0;
  width:190px;height:190px;border-radius:50%;pointer-events:none;
  border:4px solid #fffef8;
  background-color:#f7f5ee;background-repeat:no-repeat;
  box-shadow:0 12px 34px #152a2b45,0 0 0 1px #46534755;
}
@media(hover:hover) and (pointer:fine){
 .dy-zoom-target>img{cursor:zoom-in;}
 .dy-zoom-hint{display:block;}
 .dy-magnifier.is-visible{display:block;}
}
/* Galleria fotografica premium — Tessitura Brera */
.dy-zoom-dialog {
  position:fixed; inset:0; margin:auto; padding:0;
  width:min(1120px,94vw); max-width:94vw;
  height:min(790px,92dvh); max-height:92dvh;
  background:#1d362c; color:#f4efe5;
  border:1px solid #53675b;
  box-shadow:0 35px 110px rgba(2,20,12,.38);
  overflow:hidden;
}
.dy-zoom-dialog::backdrop { background:rgba(9,27,21,.82); backdrop-filter:blur(5px); }
.dy-zoom-dialog[open] { display:flex; flex-direction:column; }
.dy-zoom-dialog.is-fullscreen { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border:0; }
.dy-zoom-dialog-head {
  flex:0 0 auto; min-height:102px; padding:22px 34px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:#1d362c;
}
.dy-zoom-heading { min-width:0; }
.dy-zoom-kicker {
  display:block; margin-bottom:7px;
  color:#d3aa8c; font:600 10px/1.3 Arial,Helvetica,sans-serif;
  letter-spacing:.20em;
}
.dy-zoom-kicker span {color:#748a7d; padding:0 7px;}
.dy-zoom-heading h2 {
  margin:0; color:#f4efe5;
  font:400 clamp(20px,2.4vw,30px)/1.13 Georgia,'Times New Roman',serif;
  letter-spacing:-.025em;
}
.dy-zoom-icon-button {
  display:grid;place-items:center; flex:0 0 auto;
  width:41px; height:41px; margin:0;padding:10px;
  border:1px solid rgba(226,229,219,.24);
  border-radius:50%;color:#f5efe6;background:transparent;
  cursor:pointer; transition:background .16s,border-color .16s;
  -webkit-tap-highlight-color:transparent;
}
.dy-zoom-icon-button:hover:not(:disabled){background:rgba(255,255,255,.10);border-color:rgba(244,238,224,.7);}
.dy-zoom-icon-button:disabled { opacity:.36; cursor:default; }
.dy-zoom-icon-button svg {display:block;width:19px;height:19px;}
.dy-zoom-dialog button:focus-visible, .dy-zoom-dialog-viewport:focus-visible {
  outline:2px solid #d9b797;outline-offset:3px;
}
.dy-zoom-dialog-viewport {
  flex:1 1 auto;min-height:0;position:relative;overflow:hidden;
  /* Piano fotografico neutro, ripreso dalla palette avorio e verde del sito.
     Reticolo quasi impercettibile: supporta l'ingrandimento senza rubare
     attenzione alla trama dei nastri. */
  background-color:#f1efe9;
  background-image:
    linear-gradient(90deg,rgba(40,64,54,.052) 1px,transparent 1px),
    linear-gradient(rgba(40,64,54,.052) 1px,transparent 1px),
    radial-gradient(ellipse at 50% 42%,#f7f6f2 0%,#eeece6 100%);
  background-size:64px 64px,64px 64px,100% 100%;
  cursor:default; touch-action:none; overscroll-behavior:contain;
  user-select:none; -webkit-user-select:none;
}
.dy-zoom-dialog-viewport.is-draggable {cursor:grab;}
.dy-zoom-dialog-viewport.is-dragging {cursor:grabbing;}
.dy-zoom-dialog-viewport img {
  position:absolute;left:50%;top:50%;max-width:none!important;max-height:none!important;
  object-fit:contain;transform-origin:center center;
  user-select:none;-webkit-user-drag:none;pointer-events:none;
  will-change:transform;
}
.dy-zoom-center-hint {
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  padding:9px 17px;border-radius:60px;
  background:rgba(29,54,44,.90);color:#f5f0e8;
  font:500 11px/1.25 Arial,Helvetica,sans-serif;letter-spacing:.02em;
  pointer-events:none;white-space:nowrap;
  opacity:1;transition:opacity .25s;
}
.dy-zoom-dialog-viewport.is-zoomed .dy-zoom-center-hint{opacity:0;}
.dy-zoom-dialog-footer {
  display:flex;align-items:center;justify-content:space-between;
  flex:0 0 auto; gap:20px; min-height:79px; padding:14px 29px;
  background:#1d362c;
}
.dy-zoom-help { color:#c0cabe;font:400 12px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.025em;}
.dy-help-mobile{display:none;}
.dy-zoom-dialog-actions {display:flex;align-items:center;gap:12px;}
.dy-zoom-dialog-actions output {
  display:inline-block;min-width:54px;text-align:center;
  font:600 13px/1 Arial,Helvetica,sans-serif; color:#f4efe5;
  font-variant-numeric:tabular-nums;
}
.dy-zoom-controls-separator {width:1px;height:21px;background:rgba(242,238,226,.26);margin:0 4px;}
@media (max-width:700px){
  .dy-zoom-dialog {width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;}
  .dy-zoom-dialog-head{padding:18px 20px;min-height:88px;}
  .dy-zoom-dialog-footer{padding:13px 14px;min-height:76px;gap:6px;}
  .dy-zoom-help{display:none;}.dy-help-mobile{display:none;}
  .dy-zoom-dialog-actions{width:100%;justify-content:space-between;gap:7px;}
  .dy-zoom-icon-button{width:43px;height:43px;}
  .dy-zoom-fullscreen,.dy-zoom-controls-separator{display:none;}
  .dy-zoom-controls-separator{margin:0 2px;}
  .dy-zoom-center-hint{bottom:14px;font-size:10px;}
}
@media (prefers-reduced-motion:reduce){
 .dy-zoom-icon-button,.dy-zoom-center-hint{transition:none;}
}
