@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Inter:wght@300;400;500;600&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --black:#0a0a12;--dark:#0f0f1a;--red:#87CEEB;--red-dim:#6bb5d6;
  --white:#e8edf2;--gray:#14141f;--border:rgba(0,212,255,.1);
  --muted:rgba(232,237,242,.5);
  --cream:#14141f;--cream-dim:#1a1a28;--ink:#e8edf2;
}

html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:'Inter',sans-serif;font-weight:300;line-height:1.7;overflow-x:hidden}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar-thumb{background:var(--red);border-radius:2px}
::selection{background:var(--red);color:#fff}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.4rem 4rem;background:linear-gradient(to bottom,rgba(10,10,18,.92),rgba(10,10,18,.7));border-bottom:1px solid transparent;transition:background .4s,border-color .4s,padding .3s;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
nav.scrolled{padding:1rem 4rem;background:rgba(10,10,18,.98);border-bottom-color:var(--border)}
.nav-logo{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:900;letter-spacing:.05em;color:var(--white);text-decoration:none}
.nav-logo span{color:var(--red)}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:.78rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-.3rem;left:0;right:0;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;border:none;background:none;padding:.2rem}
.nav-burger span{display:block;width:24px;height:2px;background:var(--white);transition:.3s}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-mobile-open .nav-links{display:flex;flex-direction:column;align-items:center;position:fixed;inset:0;background:rgba(10,10,18,.98);justify-content:center;gap:2.5rem;z-index:200}
.nav-mobile-open .nav-links a{font-size:1.1rem}

/* ── LANG SWITCHER (dropdown) ── */
.lang-switcher{position:relative;z-index:110}
.lang-active{display:flex;align-items:center;gap:.4rem;cursor:pointer;background:none;border:1px solid var(--border);padding:.35rem .65rem;border-radius:6px;font-size:.95rem;line-height:1;color:var(--white);transition:.25s}
.lang-active:hover{border-color:var(--red);background:rgba(0,212,255,.08)}
.lang-active .lang-arrow{font-size:.55rem;transition:transform .25s;margin-left:.2rem;opacity:.5}
.lang-switcher.open .lang-active .lang-arrow{transform:rotate(180deg)}
.lang-dropdown{position:absolute;top:50%;right:calc(100% + .5rem);transform:translateY(-50%) translateX(6px);background:var(--dark);border:1px solid var(--border);border-radius:8px;padding:.3rem;min-width:max-content;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 12px 32px rgba(0,0,0,.4)}
.lang-switcher.open .lang-dropdown{opacity:1;visibility:visible;transform:translateY(0) translateX(0);pointer-events:auto}
.lang-btn{display:flex;align-items:center;gap:.4rem;width:100%;background:none;border:none;cursor:pointer;font-size:.9rem;padding:.45rem .6rem;border-radius:5px;color:var(--muted);transition:.2s;line-height:1;visibility:visible}
.lang-btn:hover{background:rgba(0,212,255,.1);color:var(--white)}
.lang-btn.active{display:none}

/* ── FLOATING SPHERES CANVAS ── */
#floating-spheres{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.8}
body>*:not(#floating-spheres):not(#page-curtain):not(#scroll-bar):not(#back-top):not(nav){position:relative;z-index:1}

/* ── HERO MINIMAL ── */
.hero-minimal{position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden;padding-top:5rem;background:linear-gradient(160deg,#0a0a12 0%,#0d1520 40%,#0a1018 70%,#0a0a12 100%)}
.hero-minimal::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(0,212,255,.08),transparent 60%),radial-gradient(ellipse at 20% 80%,rgba(0,212,255,.05),transparent 50%);pointer-events:none}
.hero-minimal-content{z-index:1;position:relative;padding:4rem;max-width:880px;animation:fadeUp .85s ease both}
.hero-tag{display:inline-block;margin-bottom:1.2rem;font-size:.68rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--red-dim);border:1px solid var(--red);padding:.3rem .85rem;border-radius:2px}
.hero-minimal-title{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,6vw,6.2rem);font-weight:900;line-height:1.05;letter-spacing:-.02em;margin-bottom:1.4rem;color:var(--ink)}
.hero-minimal-title em{font-style:italic;color:var(--red-dim)}
.hero-minimal-sub{font-size:1.2rem;font-weight:300;color:wheat;max-width:520px;margin-bottom:2.5rem;line-height:1.9}

/* ── PAGE HERO (inner pages) ── */
.page-hero{padding:15rem 18rem 22rem;background:linear-gradient(135deg,#0a0a12 0%,#0d1520 38%,#0f0f1a 100%);position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 40%,rgba(0,212,255,.06),transparent 55%);pointer-events:none}
.page-hero-content{position:relative;max-width:720px;margin:0 auto;text-align:center}
.page-hero-content .divider{margin-left:auto;margin-right:auto}
.page-hero-content .section-sub{margin-left:auto;margin-right:auto}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:.7rem;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:.3s;cursor:pointer;border:none}
.btn-primary{background:var(--red);color:#fff;padding:.95rem 2rem;position:relative;overflow:hidden;border-radius:4px}
.btn-primary::after{content:'';position:absolute;top:0;left:-100%;width:55%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .55s}
.btn-primary:hover{background:var(--red-dim);transform:translateY(-2px)}
.btn-primary:hover::after{left:150%}
.btn-ghost{color:var(--white);border-bottom:1px solid rgba(26,26,46,.3);padding-bottom:.15rem;background:none}
.btn-ghost:hover{border-color:var(--red);color:var(--red-dim)}
.btn-tel{background:var(--red);color:#fff;padding:1rem 2.2rem;font-size:.85rem;display:inline-flex;align-items:center;gap:.8rem;text-decoration:none;font-family:'Inter',sans-serif;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:.3s;border-radius:4px}
.btn-tel:hover{background:var(--red-dim)}
.hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}

/* ── SECTIONS ── */
section{padding:6rem 4rem}
.section-label{font-size:.68rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--red-dim);margin-bottom:.8rem}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(1.9rem,3.5vw,3rem);font-weight:700;line-height:1.15;margin-bottom:1.2rem;color:var(--ink)}
.section-title span{color:var(--red-dim);font-style:italic}
.section-sub{color: wheat;
  max-width: 600px;
  font-size: 1.1rem;
  line-height: 1.9;
  text-shadow: 0 0 20px;}




.divider{width:48px;height:2px;background:var(--red);margin:1.5rem 0}
.section-header{margin-bottom:3.5rem}
.section-header-flex{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem}

/* ── LIGHT BG ── */
.bg-light{background:var(--gray)}
.bg-dark{background:linear-gradient(135deg,#0d1520 0%,#0f0f1a 45%,#0a0a12 100%)}

/* ── CAROUSEL SECTION ── */
.carousel-section{padding:6rem 4rem}
.artwork-carousel{position:relative;max-width:900px;margin:0 auto;user-select:none}
.carousel-viewport{overflow:hidden;border-radius:8px}
.carousel-track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.carousel-slide-item{flex:0 0 100%;min-width:100%;display:flex;flex-direction:column;align-items:center;padding:0 1rem}

/* Parallax container — 3D perspective */
.parallax-container{position:relative;width:100%;max-width:700px;margin:0 auto;perspective:800px;overflow:visible;transform-style:preserve-3d}
.parallax-container img{display:block;width:100%;height:auto;border-radius:6px;position:relative;z-index:2;transition:transform .2s ease-out,box-shadow .2s ease-out;box-shadow:0 8px 40px rgba(26,26,46,.12);will-change:transform;backface-visibility:hidden}
.parallax-container:hover img{box-shadow:0 20px 60px rgba(26,26,46,.18)}
.parallax-container a{display:block;text-decoration:none}
.parallax-shadow{position:absolute;inset:4% 4% -4% 4%;background:rgba(0,212,255,.18);border-radius:16px;filter:blur(20px);z-index:1;transition:transform .2s ease-out,filter .2s ease-out,opacity .2s ease-out;opacity:.15}

/* Carousel caption */
.carousel-caption{text-align:center;padding:2rem 1rem 1rem;max-width:600px;margin:0 auto}
.carousel-caption h3{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:700;color:var(--ink);margin-bottom:.4rem}
.caption-medium{font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--red-dim);display:block;margin-bottom:1rem}
.carousel-caption p{font-family:'Cormorant Garamond','Playfair Display',Georgia,serif;color:wheat;font-size:1.2rem;line-height:1.75}

/* Carousel arrows */
.carousel-arrow{position:absolute;top:35%;transform:translateY(-50%);z-index:10;width:48px;height:48px;border-radius:50%;background:rgba(20,20,31,.85);border:1px solid rgba(0,212,255,.25);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.3s;backdrop-filter:blur(8px);box-shadow:0 4px 16px rgba(0,0,0,.3)}
.carousel-prev{left:-24px}
.carousel-next{right:-24px}
.carousel-arrow:hover{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 8px 24px rgba(0,212,255,.3)}

/* Carousel counter */
.carousel-counter{text-align:center;margin-top:1.5rem;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;letter-spacing:.1em;color:var(--muted)}
.carousel-current{color:var(--red-dim);font-weight:700;font-size:1rem}

/* ── SERVICE CARDS ── */
.cards-grid{display:grid;gap:1.5rem}
.cards-2{grid-template-columns:repeat(2,1fr)}
.cards-3{grid-template-columns:repeat(3,1fr)}
.cards-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--gray);padding:2.8rem 2.2rem;position:relative;overflow:hidden;transition:background .3s,transform .35s,box-shadow .35s;border-radius:12px;border:1px solid rgba(0,212,255,.12)}
.card:hover{background:var(--cream-dim);transform:translateY(-6px);box-shadow:0 18px 45px rgba(0,0,0,.3)}
.card-icon{font-size:2.2rem;margin-bottom:1.3rem;display:block;transition:transform .4s}
.card:hover .card-icon{transform:translateY(-5px)}
.card h3{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;margin-bottom:.9rem;color:var(--ink)}
.card p{color:wheat;font-size:1.05rem;line-height:1.85;text-shadow: 0 0 13px}
.card-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.73rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red-dim);text-decoration:none;transition:gap .3s}
.card-link:hover{gap:.85rem}
.card-line{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--red);transition:width .4s;border-radius:0 0 12px 12px}
.card:hover .card-line{width:100%}

/* ── GALLERY PREVIEW ── */
.gallery-preview{column-count:3;column-gap:6px}
.gallery-preview .gal-item{break-inside:avoid;display:block;margin:0 0 6px;width:100%}
.gallery-preview .wide{column-span:all;margin-bottom:6px}
.gal-item{position:relative;overflow:hidden;background:var(--gray);border-radius:6px}
.gal-item[data-lightbox]{cursor:pointer}
.gal-item[data-lightbox] *{pointer-events:none}
.gal-item img{display:block;width:100%;height:auto;transition:transform .6s ease,filter .4s}
.gal-item:hover img{transform:scale(1.08)}
.gal-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(26,26,46,.75) 0%,transparent 55%);opacity:0;transition:.4s;display:flex;align-items:flex-end;padding:1.5rem}
.gal-item:hover .gal-overlay{opacity:1}
.gal-overlay h4{font-family:'Playfair Display',serif;font-size:1rem;margin-bottom:.2rem;color:#fff}
.gal-overlay span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}

/* ── TESTIMONIALS ── */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.testimonial{background:var(--gray);padding:2.5rem 2rem;border-top:3px solid var(--red);transition:transform .35s,box-shadow .35s;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.testimonial:hover{transform:translateY(-5px);box-shadow:0 12px 35px rgba(0,212,255,.15)}
.testimonial-stars{color:var(--red-dim);font-size:.95rem;margin-bottom:1.2rem;letter-spacing:.2em}
.testimonial-text{font-family:'Playfair Display',serif;font-style:italic;font-size:.96rem;line-height:1.75;color:var(--muted);margin-bottom:1.5rem}
.testimonial-author{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.testimonial-location{font-size:.7rem;color:var(--muted)}

/* ── FAQ ── */
.faq-list{max-width:820px}
.faq-item{border-bottom:1px solid var(--border);overflow:hidden}
.faq-question{width:100%;background:none;border:none;color:var(--white);font-family:'Inter',sans-serif;font-size:.93rem;font-weight:500;text-align:left;padding:1.3rem 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:color .3s}
.faq-question:hover{color:var(--red-dim)}
.faq-icon{width:22px;height:22px;flex-shrink:0;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:.3s;color:var(--red-dim)}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;color:var(--muted);font-size:.88rem;line-height:1.85}
.faq-item.open .faq-answer{max-height:250px;padding-bottom:1.3rem}

/* ── MAP / CTA BAND ── */
.map-section{display:grid;gap:0}
.map-section--full{display:block;position:relative}
.map-embed{width:100%;min-height:420px;background:var(--gray);position:relative;overflow:hidden}
.map-embed--full{min-height:500px;width:100%}
.map-embed iframe{width:100%;height:100%;border:none;display:block}
.map-overlay{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);background:rgba(10,10,18,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(0,212,255,.15);border-radius:14px;padding:2rem 3rem;text-align:center;z-index:10;max-width:600px;width:90%}
.map-overlay-address{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:700;color:var(--red);margin-bottom:.6rem;line-height:1.4}
.map-overlay-email{display:block;font-family:'Inter',sans-serif;font-size:1.3rem;font-weight:600;color:var(--red);text-decoration:none;transition:opacity .3s;letter-spacing:.02em}
.map-overlay-email:hover{opacity:.75}

/* ── LEAFLET MAP ── */
#leaflet-map{position:absolute;inset:0;width:100%;height:100%;background:#f0f6fb;z-index:1}
#leaflet-map .leaflet-control-attribution{background:rgba(10,10,18,.85);color:var(--muted);font-size:.62rem;padding:.15rem .5rem;border:none}
#leaflet-map .leaflet-control-attribution a{color:var(--red-dim);text-decoration:none}
#leaflet-map .leaflet-control-zoom a{background:rgba(20,20,31,.9);color:var(--ink);border:1px solid var(--border);font-family:'Inter',sans-serif;font-weight:300;transition:.25s}
#leaflet-map .leaflet-control-zoom a:hover{background:var(--red);color:#fff;border-color:var(--red)}
#leaflet-map .leaflet-popup-content-wrapper{background:var(--dark);color:var(--ink);border:1px solid rgba(0,212,255,.2);border-radius:8px;box-shadow:0 18px 50px rgba(0,0,0,.4)}
#leaflet-map .leaflet-popup-tip{background:var(--dark);border:1px solid rgba(0,212,255,.2)}
#leaflet-map .leaflet-popup-content{margin:1rem 1.2rem;font-family:'Inter',sans-serif;font-size:.85rem;line-height:1.6}
#leaflet-map .leaflet-popup-content strong{font-family:'Playfair Display',serif;font-style:italic;color:var(--red-dim);font-weight:700;display:block;margin-bottom:.3rem;font-size:1rem}
#leaflet-map .leaflet-popup-content small{color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-top:.5rem}
#leaflet-map .leaflet-popup-close-button{color:var(--muted)!important;font-size:1.1rem!important;padding:6px 8px 0 0!important;transition:.25s}
#leaflet-map .leaflet-popup-close-button:hover{color:var(--red-dim)!important}
.ermano-marker{display:flex;align-items:center;justify-content:center;background:transparent;border:none}
.ermano-marker-pin{position:relative;width:34px;height:46px;animation:markerDrop .9s cubic-bezier(.2,.8,.3,1.2) both,markerFloat 3.2s ease-in-out 1s infinite}
.ermano-marker-pin::before{content:'';position:absolute;left:50%;top:8px;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#a8ddf0 0%,var(--red) 55%,var(--red-dim) 100%);transform:translateX(-50%);box-shadow:0 0 0 3px rgba(0,212,255,.25),0 10px 20px -6px rgba(0,212,255,.6)}
.ermano-marker-pin::after{content:'';position:absolute;left:50%;top:30px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:14px solid var(--red-dim);transform:translateX(-50%)}
.ermano-marker-dot{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:inset 0 -2px 4px rgba(0,212,255,.4);z-index:2}
.ermano-marker-pulse{position:absolute;left:50%;top:21px;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:rgba(0,212,255,.5);animation:markerPulse 2.2s ease-out infinite}
@keyframes markerDrop{0%{transform:translateY(-60px) scale(.4);opacity:0}60%{transform:translateY(8px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}
@keyframes markerFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes markerPulse{0%{transform:translate(-50%,-50%) scale(.55);opacity:.85}80%{opacity:0}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.ermano-marker-pin,.ermano-marker-pulse{animation:none}}
.map-info{padding:4rem;display:flex;flex-direction:column;justify-content:center;background:var(--dark)}
.nap-list{list-style:none;margin-top:1.5rem}
.nap-list li{display:flex;align-items:flex-start;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border);font-size:.88rem;color:var(--muted)}
.nap-list li:last-child{border-bottom:none}
.nap-icon{color:var(--red-dim);flex-shrink:0}
.nap-list a{color:var(--muted);text-decoration:none;transition:color .3s}
.nap-list a:hover{color:var(--red-dim)}
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2rem;margin-top:.8rem}
.hours-row{display:flex;justify-content:space-between;font-size:.83rem}
.hours-day{color:var(--muted)}
.hours-time{color:var(--white);font-weight:500}

/* ── CONTENT GRID ── */
.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.prose p{color: white;
  font-size: 1rem;line-height:1.9;margin-bottom:1.3rem}
.prose h3{font-family:'Playfair Display',serif;font-size:1.35rem;margin-bottom:.7rem;margin-top:2rem;color:var(--ink)}
.prose ul{list-style:none;margin-bottom:1.3rem}
.prose ul li{font-family:'Playfair Display'; margin-left:1rem; color:wheat;font-size:1.05rem;padding:.38rem 0 .38rem 1.2rem;position:relative}
.prose ul li::before{content:'—';position:absolute;left:0;color:var(--red-dim)}
.img-frame{position:relative;width:100%}
.img-frame::before{content:'';position:absolute;top:-15px;left:-15px;right:15px;bottom:15px;border:1px solid rgba(0,212,255,.35);pointer-events:none}
.img-frame img{width:100%;object-fit:cover;display:block;border-radius:4px}

/* ── PROCESS STEPS ── */
.steps{display:flex;flex-direction:column}
.step-item{display:flex;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--border)}
.step-item:last-child{border-bottom:none}
.step-num{font-family:'Playfair Display',serif;font-size:2.4rem;font-weight:900;color:var(--red-dim);opacity:.5;flex-shrink:0;width:3.2rem;line-height:1}
.step-body h4{font-family:'Playfair Display',serif;font-size:1.8rem;margin-bottom:.45rem;color:var(--ink)}
.step-body p{color:wheat; font-size:1.5; rem;line-height:1.8}

/* ── PRICE CARDS ── */
.price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.price-card{background:var(--gray);padding:3rem 2rem;text-align:center;transition:background .3s;border-radius:12px;border:1px solid var(--border)}
.price-card.featured{background:var(--red);border-color:var(--red)}
.price-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.price-card.featured .price-label{color:rgba(255,255,255,.75)}
.price-amount{font-family:'Playfair Display',serif;font-size:2.8rem;font-weight:900;color:var(--red-dim);line-height:1}
.price-card.featured .price-amount{color:#fff}
.price-unit{font-size:.75rem;color:var(--muted);margin-bottom:1.5rem}
.price-features{list-style:none;margin-bottom:2rem}
.price-features li{font-size:.84rem;color:var(--muted);padding:.5rem 0;border-bottom:1px solid var(--border)}
.price-features li:last-child{border-bottom:none}
.price-card.featured .price-features li{color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.15)}

/* ── ZONE CARDS ── */
.zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.zone-card{position:relative;overflow:hidden;min-height:260px;background:var(--gray);display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;border-radius:12px;border:1px solid var(--border)}
.zone-card::before{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,18,.95) 0%,transparent 60%)}
.zone-card-content{position:relative}
.zone-num{position:absolute;top:1.5rem;right:1.5rem;font-family:'Playfair Display',serif;font-size:4rem;font-weight:900;color:rgba(0,212,255,.2);line-height:1}
.zone-card h3{font-family:'Playfair Display',serif;font-size:1.28rem;margin-bottom:.5rem;color:var(--ink)}
.zone-card p{font-size:.82rem;color:var(--muted);line-height:1.7}
.zone-card-line{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--red);transition:width .5s}
.zone-card:hover .zone-card-line{width:100%}

/* ── GALLERY FULL ── */
.gallery-full{column-count:4;column-gap:3px}
.gallery-full .gal-item{break-inside:avoid;display:block;margin:0 0 3px;width:100%}
.gallery-full .wide,.gallery-full .tall{column-span:initial}

/* ── QUOTE BAND ── */
.quote-band{background:linear-gradient(135deg,var(--red) 0%,var(--red-dim) 100%);padding:6rem 4rem;text-align:center;position:relative;overflow:hidden}
.quote-band::before{content:'"';position:absolute;top:-2rem;left:1rem;font-family:'Playfair Display',serif;font-size:18rem;font-weight:900;color:rgba(255,255,255,.12);line-height:1;pointer-events:none}
.quote-band blockquote{font-family:'Playfair Display',serif;font-size:clamp(1.4rem,3vw,2.5rem);font-weight:400;font-style:italic;line-height:1.5;margin:0 auto 1.5rem;position:relative;color:#fff}
.quote-band cite{font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;opacity:.75;color:#fff}

/* ── FORM ── */
.form-grid{display:flex;flex-direction:column;gap:1.1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-group label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.form-group input,.form-group textarea,.form-group select{background:var(--gray);border:1px solid var(--border);color:var(--ink);padding:.85rem 1.1rem;font-family:'Inter',sans-serif;font-size:.87rem;outline:none;transition:border-color .3s;resize:none;border-radius:4px}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--red)}
.form-group select option{background:var(--dark)}

/* ── CONTACT SPLIT ── */
.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.contact-info p{color:var(--muted);font-size:.93rem;line-height:1.9;margin-bottom:1.3rem}
.contact-link{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;text-decoration:none;color:var(--muted);font-size:.88rem;transition:color .3s}
.contact-link:hover{color:var(--red-dim)}
.contact-link-icon{width:34px;height:34px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.3s;border-radius:6px}
.contact-link:hover .contact-link-icon{border-color:var(--red);background:rgba(0,212,255,.1)}

/* ── FOOTER ── */
footer{background:#08080e;padding:4rem;border-top:1px solid var(--border)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-brand{max-width:270px}
.footer-logo{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:900;margin-bottom:1rem;display:block;text-decoration:none;color:var(--ink)}
.footer-logo span{color:var(--red-dim)}
.footer-desc{font-size:.82rem;color:var(--muted);line-height:1.8}
.footer-col h4{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink);margin-bottom:1.2rem}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:.55rem}
.footer-col ul li a{font-size:.82rem;color:var(--muted);text-decoration:none;transition:color .3s}
.footer-col ul li a:hover{color:var(--red-dim)}
.footer-nap{font-size:.82rem;color:var(--muted);line-height:2.1}
.footer-nap a{color:var(--muted);text-decoration:none;transition:color .3s}
.footer-nap a:hover{color:var(--red-dim)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;border-top:1px solid var(--border)}
.footer-copy{font-size:.73rem;color:rgba(26,26,46,.35)}
.footer-social{display:flex;gap:.8rem}
.social-btn{width:36px;height:36px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);transition:.3s;font-size:.78rem;font-weight:600;border-radius:6px}
.social-btn:hover{border-color:var(--red);color:var(--red-dim)}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  nav{padding:1.2rem 2rem}
  section,.page-hero,.carousel-section{padding-left:2rem;padding-right:2rem}
  .hero-minimal-content{padding:2.5rem 2rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .cards-4{grid-template-columns:repeat(2,1fr)}
  .cards-3{grid-template-columns:repeat(2,1fr)}
  .gallery-preview{column-count:2}
  .gallery-full{column-count:2}
  .testimonials-grid{grid-template-columns:1fr}
  .price-cards{grid-template-columns:1fr}
  .zone-grid{grid-template-columns:repeat(2,1fr)}
  .map-section{grid-template-columns:1fr}
  .map-embed{min-height:320px}
  .content-grid{grid-template-columns:1fr;gap:3rem}
  .contact-split{grid-template-columns:1fr;gap:3rem}
  .carousel-prev{left:0}
  .carousel-next{right:0}
}
@media(max-width:640px){
  nav{padding:1rem 1.5rem}
  .nav-links{display:none}
  .nav-burger{display:flex}
  section,.page-hero,.carousel-section{padding-left:1.5rem;padding-right:1.5rem}
  .cards-3,.cards-4{grid-template-columns:1fr}
  .gallery-preview{column-count:1}
  .gallery-full{column-count:1}
  .zone-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:1rem;text-align:center}
  .form-row{grid-template-columns:1fr}
  .section-header-flex{flex-direction:column;align-items:flex-start;gap:1.2rem}
  .carousel-arrow{width:40px;height:40px}
  .carousel-prev{left:-4px}
  .carousel-next{right:-4px}
  .carousel-caption h3{font-size:1.3rem}
}

/* ── Paint canvas (disegni section) ── */
.disegni-paint-section{position:relative;overflow:hidden}
.paint-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.6}
.disegni-paint-section>*:not(.paint-canvas){position:relative;z-index:1}

/* ── Scroll progress bar ── */
#scroll-bar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,#a8ddf0 0%,var(--red) 50%,var(--red-dim) 100%);z-index:1000;pointer-events:none;box-shadow:0 0 12px rgba(0,212,255,.4);will-change:width;transition:width .12s linear}

/* ── Back-to-top FAB ── */
#back-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border-radius:50%;background:var(--red);color:#fff;border:none;font-size:1.4rem;cursor:pointer;z-index:90;opacity:0;transform:translateY(20px) scale(.85);pointer-events:none;transition:opacity .4s,transform .4s;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,212,255,.3);font-family:'Inter',sans-serif;line-height:1}
#back-top.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
#back-top:hover{background:var(--red-dim);transform:translateY(-3px) scale(1.05);box-shadow:0 14px 32px rgba(0,212,255,.4)}

/* ── Page-hero styling ── */
.page-hero .section-title{position:relative}

@keyframes strokeDraw{to{width:220px}}

/* ── Section title underline accent ── */
.section-title span{position:relative;display:inline-block}
.section-title span::after{
  content:'';position:absolute;left:0;right:0;bottom:-4px;height:2px;
  background:linear-gradient(90deg,transparent,var(--red),transparent);
  transform:scaleX(0);transform-origin:center;transition:transform .8s cubic-bezier(.2,.7,.2,1)
}
.reveal.visible .section-title span::after,
.section-title.reveal.visible span::after{transform:scaleX(1)}

/* ── Image frame animated ── */
.img-frame{position:relative}
.img-frame::after{
  content:'';position:absolute;bottom:-15px;right:-15px;left:15px;top:15px;
  border:1px solid rgba(0,212,255,.2);pointer-events:none;
  transition:transform .6s cubic-bezier(.2,.7,.2,1),border-color .5s;
}
.img-frame:hover::before{transform:translate(5px,5px)}
.img-frame:hover::after{transform:translate(-5px,-5px);border-color:rgba(0,212,255,.4)}
.img-frame::before{transition:transform .6s cubic-bezier(.2,.7,.2,1)}

/* ── Buttons refined ── */
.btn-primary{box-shadow:0 6px 18px -8px rgba(0,212,255,.5)}
.btn-primary:hover{box-shadow:0 16px 40px -10px rgba(0,212,255,.6)}

/* ── Filter buttons ── */
.filter-btn{transition:.3s !important;position:relative;overflow:hidden}
.filter-btn:hover{color:var(--ink) !important;border-color:rgba(0,212,255,.5) !important}
.filter-btn.active{border-color:var(--red) !important;color:var(--ink) !important;background:linear-gradient(135deg,rgba(0,212,255,.18),rgba(0,212,255,.05)) !important}

/* ── Footer divider ── */
footer{position:relative}
footer::before{
  content:'';position:absolute;top:-1px;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--red),transparent);pointer-events:none;
}

/* ── Page enter curtain ── */
#page-curtain{position:fixed;inset:0;background:#0a0a12;z-index:9998;pointer-events:none;transform-origin:bottom;animation:curtainLift 1s cubic-bezier(.8,0,.2,1) .15s forwards}
@keyframes curtainLift{to{transform:scaleY(0)}}

/* ── Lightbox ── */
#lightbox{backdrop-filter:blur(8px)}
#lb-img{box-shadow:0 30px 80px rgba(26,26,46,.2),0 0 0 1px rgba(0,212,255,.12)}

/* ── Navbar underline ── */
nav#navbar::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--red),transparent);
  opacity:0;transition:opacity .4s;
}
nav.scrolled::after{opacity:.4}

/* ── Paragraphs ── */
p{font-family:'Cormorant Garamond','Playfair Display',Georgia,serif;color:var(--muted);font-weight:400;font-size:1.05rem;line-height:1.7}
.section-label,.gal-overlay span,.footer-copy,.footer-desc,.footer-nap,.btn,.lang-btn,.filter-btn,figcaption,address,small,nav p{font-family:'Inter',sans-serif;font-weight:inherit;font-size:inherit;line-height:inherit}

a.gal-item{display:block;text-decoration:none;color:inherit;cursor:pointer}
.gal-arrow{position:absolute;top:.9rem;right:.9rem;z-index:3;width:38px;height:38px;border-radius:50%;background:rgba(0,212,255,.85);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:600;transform:translateY(-4px) scale(.9);opacity:0;transition:opacity .35s ease,transform .35s ease,background .25s;pointer-events:none;box-shadow:0 6px 18px -4px rgba(26,26,46,.2)}
.gal-item:hover .gal-arrow,.gal-item:focus-visible .gal-arrow{opacity:1;transform:translateY(0) scale(1)}
@media(hover:none){.gal-arrow{opacity:1;transform:none}}

/* ── Kinetic title ── */
.page-hero h1.section-title .kt-char,
.hero-minimal-title .kt-char{
  display:inline-block;opacity:0;transform:translateY(50%) rotateX(70deg);
  transform-origin:50% 100%;
  animation:ktReveal .9s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes ktReveal{to{opacity:1;transform:translateY(0) rotateX(0)}}

/* ── Opera page grid ── */
.opera-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.opera-grid figure{margin:0}
.opera-grid figure img{width:100%;height:auto;display:block;border-radius:6px}
.opera-back{margin-bottom:2rem}
.opera-back a{color:var(--muted);text-decoration:none;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;transition:color .3s}
.opera-back a:hover{color:var(--red-dim)}

@media(max-width:640px){
  #back-top{bottom:1.2rem;right:1.2rem;width:42px;height:42px;font-size:1.2rem}
  .opera-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  #page-curtain{animation:none !important}
  .reveal{opacity:1;transform:none;transition:none}
  .carousel-track{transition:none}
  .kt-char{opacity:1 !important;transform:none !important;animation:none !important}
}

/* ── Playful cards (vendita page) ── */
.playful-section{position:relative;overflow:hidden}
.playful-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;perspective:1500px;position:relative;z-index:1}
.pcard{position:relative;background:none;border:none;padding:0;cursor:pointer;width:100%;aspect-ratio:1/1.15;min-height:300px;font-family:inherit;color:inherit;text-align:left;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.3,1.05)}
.pcard:hover{transform:translateY(-8px)}
.pcard-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.6,-.2,.3,1.2);will-change:transform}
.pcard.flipped .pcard-inner{transform:rotateY(180deg)}
.pcard-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:1.6rem 1.5rem;box-shadow:0 16px 40px -16px rgba(26,26,46,.12)}
.pcard-front{background:linear-gradient(160deg,#14141f 0%,#1a1a28 55%,#0d1520 100%);color:var(--ink)}
.pcard-back{background:var(--dark);color:var(--ink);transform:rotateY(180deg);align-items:flex-start;justify-content:center;padding:1.8rem 1.6rem;gap:.9rem;border:1px solid rgba(0,212,255,.25)}
.pcard-back h4{font-family:'Playfair Display',serif;font-style:italic;font-size:1.1rem;font-weight:700;line-height:1.3;color:var(--ink);margin-bottom:.6rem}
.pcard-back h4::after{content:'';display:block;width:32px;height:1px;background:var(--red);margin-top:.7rem}
.pcard-back ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.pcard-back li{font-size:.83rem;line-height:1.5;color:var(--muted);padding-left:1.2rem;position:relative}
.pcard-back li::before{content:'';position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--red)}
.pcard-emoji{position:absolute;top:1.3rem;left:1.4rem;font-size:3.2rem;line-height:1}
.pcard-title{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:700;line-height:1.2;margin-bottom:.45rem;color:var(--ink)}
.pcard-sub{font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;opacity:.65;margin-bottom:.5rem}
.pcard-bg-shape{position:absolute;inset:auto -20% -30% auto;width:80%;aspect-ratio:1;border-radius:50%;pointer-events:none;opacity:.12}
.pcard-flip-hint{position:absolute;top:1.2rem;right:1.2rem;display:inline-flex;align-items:center;gap:.35rem;font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:.35rem .6rem;border-radius:99px;background:rgba(0,212,255,.15);color:var(--ink);border:1px solid rgba(0,212,255,.25);opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s;z-index:3}
.pcard:hover .pcard-flip-hint{opacity:1;transform:translateY(0)}
@media(max-width:1100px){.playful-cards{grid-template-columns:repeat(2,1fr)}.pcard{min-height:280px}}
@media(max-width:640px){.playful-cards{grid-template-columns:1fr}.pcard{aspect-ratio:1.4/1;min-height:240px}}

/* ── HERO BUBBLES (spiral) ── */
.hero-bubbles{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hero-bubble{position:absolute;width:var(--size);height:var(--size);border-radius:50%;overflow:hidden;border:2px solid rgba(0,212,255,.25);box-shadow:0 8px 32px rgba(0,0,0,.4);opacity:1;transition:opacity .4s}
.hero-bubble:hover{opacity:.85}
.hero-bubble img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:640px){.hero-bubble{opacity:.85}.hero-bubble:nth-child(n+7){display:none}}

/* ── AMBIENT LIGHTS (chi-siamo, contatti) ── */
.ambient-lights{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.ambient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;animation:ambientFloat 18s ease-in-out infinite alternate}
.ambient-orb--cyan-1{width:350px;height:350px;background:radial-gradient(circle,rgba(0,212,255,.5),transparent 70%);top:10%;left:15%;animation-delay:0s}
.ambient-orb--violet-1{width:280px;height:280px;background:radial-gradient(circle,rgba(120,0,255,.45),transparent 70%);top:30%;right:10%;animation-delay:-4s}
.ambient-orb--cyan-2{width:220px;height:220px;background:radial-gradient(circle,rgba(0,168,204,.4),transparent 70%);bottom:15%;left:40%;animation-delay:-8s}
.ambient-orb--violet-2{width:300px;height:300px;background:radial-gradient(circle,rgba(60,0,180,.4),transparent 70%);top:55%;left:5%;animation-delay:-12s}
.ambient-orb--cyan-3{width:250px;height:250px;background:radial-gradient(circle,rgba(80,230,255,.35),transparent 70%);top:5%;right:30%;animation-delay:-6s}
@keyframes ambientFloat{0%{transform:translate(0,0) scale(1)}25%{transform:translate(30px,-20px) scale(1.1)}50%{transform:translate(-20px,30px) scale(.95)}75%{transform:translate(15px,15px) scale(1.05)}100%{transform:translate(-10px,-25px) scale(1)}}
@media(max-width:640px){.ambient-orb{filter:blur(60px);opacity:.25}}
