:root { --ink:#11110f; --black:#090a09; --gold:#d8b765; --gold-bright:#f3d98f; --sand:#f2ece1; --cream:#fcf8f1; --smoke:#827c71; --line:rgba(20,18,13,.14); --serif:'Italiana', Georgia, serif; --sans:'DM Sans', Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--sand); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.skip-link { position:fixed; left:16px; top:-50px; z-index:100; padding:10px 16px; background:var(--gold); color:var(--black); transition:top .2s; }
.skip-link:focus { top:16px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:absolute; z-index:10; width:100%; display:flex; align-items:center; justify-content:space-between; padding:28px clamp(22px,5vw,76px); color:var(--cream); }
.brand { display:flex; align-items:center; gap:11px; }
.brand-mark { display:block; position:relative; width:43px; height:43px; border:1px solid rgba(218,184,101,.85); border-radius:50%; color:var(--gold-bright); font-family:var(--serif); line-height:1; overflow:hidden; }
.brand-mark i, .brand-mark b { position:absolute; font-style:normal; font-weight:400; font-size:31px; top:5px; }
.brand-mark i { left:9px; }.brand-mark b { left:19px; top:12px; }
.brand-name { display:flex; flex-direction:column; text-transform:uppercase; letter-spacing:.16em; line-height:.95; }.brand-name em { font:400 9px var(--sans); letter-spacing:.24em; }.brand-name strong { margin-top:4px; font:400 17px var(--serif); letter-spacing:.1em; }
.main-nav { display:flex; align-items:center; gap:30px; font-size:12px; letter-spacing:.06em; }.main-nav a { transition:color .2s; }.main-nav a:hover { color:var(--gold-bright); }.main-nav .nav-cta { border:1px solid rgba(244,218,149,.65); border-radius:999px; padding:9px 15px; }
.menu-toggle { display:none; border:0; background:transparent; width:42px; height:42px; padding:10px; cursor:pointer; }.menu-toggle span:not(.sr-only) { display:block; height:1px; margin:6px 0; background:var(--cream); }
.hero { min-height:760px; height:100svh; overflow:hidden; position:relative; display:flex; align-items:flex-end; padding:0 clamp(22px,10vw,148px) clamp(60px,9vh,96px); background:radial-gradient(circle at 78% 30%, #262117 0, #12120f 27%, var(--black) 63%); color:var(--cream); }
.hero-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(216,183,101,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(216,183,101,.2) 1px,transparent 1px); background-size:76px 76px; mask-image:linear-gradient(90deg,#000 0%,transparent 76%); }
.hero-orbit { position:absolute; border:1px solid rgba(216,183,101,.35); border-radius:50%; pointer-events:none; }.orbit-one { width:720px; height:720px; right:-100px; top:-150px; }.orbit-two { width:560px; height:560px; right:-22px; top:-62px; border-color:rgba(216,183,101,.17); }
.hero-copy { position:relative; z-index:2; max-width:720px; }.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 18px; color:var(--gold-bright); font-size:10px; font-weight:600; letter-spacing:.18em; }.eyebrow span { width:24px; height:1px; background:currentColor; }.eyebrow.dark { color:#846e3e; }
h1,h2,h3,p { margin-top:0; }h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:.92; letter-spacing:-.025em; }h1 { margin:0; font-size:clamp(58px,8.6vw,132px); } h1 i,h2 i,h3 i { color:var(--gold); font-style:italic; } .hero-intro { max-width:415px; margin:29px 0 0; color:rgba(252,248,241,.76); font-size:15px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:26px; margin-top:34px; }.button { display:inline-flex; align-items:center; gap:26px; border-radius:999px; padding:13px 19px; font-size:12px; font-weight:600; letter-spacing:.04em; }.button-gold { background:var(--gold); color:var(--black); transition:transform .2s,background .2s; }.button-gold:hover { background:var(--gold-bright); transform:translateY(-2px); }.button span { font-size:19px; line-height:0; }.text-link { display:inline-flex; gap:10px; border-bottom:1px solid rgba(252,248,241,.45); padding-bottom:5px; font-size:12px; }.text-link span { color:var(--gold); }
.hero-symbol { position:absolute; z-index:1; right:clamp(38px,13vw,200px); top:50%; transform:translateY(-44%); width:min(34vw,470px); aspect-ratio:1; display:grid; place-items:center; }.symbol-ring { position:absolute; border-radius:50%; border:1px solid var(--gold); }.ring-a { inset:0; opacity:.65; box-shadow:0 0 48px rgba(216,183,101,.18),inset 0 0 28px rgba(216,183,101,.07); }.ring-b { inset:8%; border-color:rgba(246,218,145,.28); }.symbol-ff { position:relative; color:var(--gold-bright); font-family:var(--serif); text-shadow:0 0 26px rgba(216,183,101,.35); }.symbol-ff b,.symbol-ff i { display:inline-block; font-weight:400; font-size:clamp(110px,15vw,220px); font-style:normal; line-height:.65; }.symbol-ff i { margin-left:-.36em; transform:translateY(.17em); }.hero-symbol p { position:absolute; bottom:12%; margin:0; color:var(--gold-bright); text-align:center; text-transform:uppercase; font:10px/1.7 var(--sans); letter-spacing:.32em; }.hero-note { position:absolute; right:clamp(22px,5vw,76px); bottom:30px; margin:0; text-align:right; color:rgba(252,248,241,.48); font-size:10px; line-height:1.5; letter-spacing:.08em; }
.marquee { overflow:hidden; background:var(--gold); color:var(--black); white-space:nowrap; }.marquee-track { display:flex; align-items:center; gap:31px; width:max-content; padding:12px 0; font:17px var(--serif); text-transform:uppercase; letter-spacing:.16em; animation:slide 26s linear infinite; }.marquee-track i { font-size:12px; font-style:normal; }@keyframes slide{to{transform:translateX(-50%);}}
.section-pad { padding:clamp(72px,11vw,155px) clamp(22px,10vw,148px); }.intro { display:grid; grid-template-columns:1fr minmax(0,2.4fr) 1fr; gap:clamp(24px,5vw,80px); background:var(--cream); }.intro-kicker,.intro-side { font-size:10px; letter-spacing:.12em; text-transform:uppercase; }.intro-kicker span { display:block; margin-bottom:12px; color:#816c41; }.intro-kicker p { margin:0; }.intro-main h2,.section-heading h2,.selection-copy h2,.b2b h2,.contact h2 { margin:0; font-size:clamp(48px,6vw,88px); }.overline { margin:0 0 18px; color:#846e3e; font-size:10px; font-weight:600; letter-spacing:.2em; }.large-copy { max-width:540px; margin:31px 0 26px; color:#444139; font-size:17px; line-height:1.7; }.underlined-link { display:inline-flex; gap:12px; border-bottom:1px solid var(--ink); padding-bottom:5px; font-size:12px; font-weight:600; }.underlined-link span { color:#a18445; font-size:17px; line-height:.8; }.intro-side { align-self:end; padding-bottom:8px; color:#605b51; }.intro-side .side-number { margin:0 0 6px; color:var(--gold); font:61px/.8 var(--serif); }.intro-side p:last-child { max-width:155px; margin:0; line-height:1.7; }
.categories { background:#d9d0c0; }.section-heading { max-width:745px; }.section-heading > p:last-child { max-width:450px; margin:26px 0 0; color:#524c42; font-size:15px; line-height:1.65; }.category-stack { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:65px; }.category-card { min-height:412px; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:23px; border-radius:2px; color:var(--cream); isolation:isolate; }.card-index { position:absolute; top:21px; left:23px; font-size:11px; letter-spacing:.13em; opacity:.75; }.card-shape { position:absolute; z-index:-1; width:85%; aspect-ratio:1; border:1px solid rgba(255,255,255,.45); border-radius:50%; right:-22%; top:14%; }.card-shape:after { content:''; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.25); inset:12%; }.category-card-content p { margin:0 0 10px; font-size:10px; letter-spacing:.2em; }.category-card h3 { margin:0; font-size:clamp(30px,3.2vw,47px); }.category-card h3 i { color:inherit; }.category-card-content span { display:block; margin-top:18px; font-size:10px; letter-spacing:.08em; opacity:.76; }.beauty-card { background:#6a6152; }.nails-card { background:#8d264e; }.hair-card { background:#966c36; }.barber-card { background:#1f3739; }.nails-card .card-shape { transform:rotate(-18deg); border-radius:6% 50% 50% 50%; }.hair-card .card-shape { border-radius:50% 7% 50% 50%; }.barber-card .card-shape { width:130%; right:-55%; top:-10%; }
.selection { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:clamp(40px,9vw,135px); align-items:center; background:var(--cream); }.selection-visual { position:relative; }.visual-frame { width:min(100%,520px); padding:13px; background:var(--black); transform:rotate(-2.5deg); box-shadow:19px 23px 0 #d4c59f; }.visual-frame img { display:block; width:100%; aspect-ratio:.765; object-fit:cover; }.visual-caption { display:flex; flex-direction:column; margin:39px 0 0 22%; text-transform:uppercase; letter-spacing:.12em; }.visual-caption span { color:#8d7a51; font-size:9px; }.visual-caption b { margin-top:2px; font:27px var(--serif); letter-spacing:.04em; }.selection-copy h2 { margin-top:16px; }.benefit-list { margin-top:40px; border-top:1px solid var(--line); }.benefit-list > div { display:grid; grid-template-columns:35px 1fr; gap:12px; padding:18px 0; border-bottom:1px solid var(--line); }.benefit-list span { color:#a88b4d; font-size:10px; }.benefit-list p { margin:0; color:#504b42; font-size:14px; line-height:1.6; }.benefit-list b { color:#24211d; font-weight:600; }
.b2b { position:relative; overflow:hidden; background:var(--black); color:var(--cream); }.b2b-glow { position:absolute; width:700px; height:700px; right:-210px; top:50%; transform:translateY(-50%); border:1px solid rgba(216,183,101,.32); border-radius:50%; box-shadow:0 0 0 80px rgba(216,183,101,.025),0 0 0 160px rgba(216,183,101,.018),0 0 70px rgba(216,183,101,.12); }.b2b-top { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; }.status-pill { display:flex; align-items:center; gap:8px; padding:8px 12px; margin:0; border:1px solid rgba(216,183,101,.45); border-radius:999px; color:var(--gold-bright); font-size:9px; letter-spacing:.13em; }.status-pill i { width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 10px var(--gold); }.b2b-content { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr); gap:70px; align-items:end; margin-top:62px; }.b2b-content > p { max-width:340px; margin:0; color:rgba(252,248,241,.67); font-size:15px; line-height:1.7; }.coming-soon { grid-column:2; display:flex; flex-direction:column; justify-content:center; min-height:190px; padding:25px; border:1px solid rgba(216,183,101,.42); background:rgba(216,183,101,.07); backdrop-filter:blur(6px); }.coming-soon span { color:var(--gold-bright); font-size:10px; letter-spacing:.21em; }.coming-soon b { margin:18px 0; font:36px/.84 var(--serif); letter-spacing:.02em; }.coming-soon em { color:rgba(252,248,241,.56); font-size:10px; font-style:normal; letter-spacing:.05em; }
.contact { background:var(--gold); color:var(--black); }.contact-pretitle { display:flex; justify-content:space-between; border-bottom:1px solid rgba(17,17,15,.28); padding-bottom:13px; font-size:10px; letter-spacing:.14em; }.contact-pretitle p { margin:0; }.contact h2 { max-width:900px; margin-top:55px; }.contact h2 i { color:#6e582b; }.contact-lead { max-width:500px; margin:31px 0 55px; font-size:17px; line-height:1.65; }.contact-grid { display:grid; grid-template-columns:1.55fr 1fr 1fr; gap:1px; border-top:1px solid rgba(17,17,15,.28); background:rgba(17,17,15,.28); }.phone-link,.contact-box { position:relative; display:flex; flex-direction:column; min-height:172px; padding:22px; background:var(--gold); transition:background .2s,color .2s; }.phone-link:hover,.contact-box:hover { background:var(--black); color:var(--cream); }.phone-link small,.contact-box small { font-size:9px; font-weight:600; letter-spacing:.16em; }.phone-link strong,.contact-box strong { margin-top:auto; font-family:var(--serif); font-weight:400; line-height:1.08; }.phone-link strong { font-size:clamp(26px,3.1vw,44px); }.contact-box strong { font-size:20px; }.phone-link span,.contact-box span { position:absolute; right:21px; top:17px; font-size:20px; }.site-footer { display:grid; grid-template-columns:1.2fr 1fr auto; align-items:center; gap:30px; padding:38px clamp(22px,5vw,76px); background:var(--black); color:rgba(252,248,241,.66); }.footer-brand { color:var(--cream); }.site-footer p { margin:0; font-size:10px; letter-spacing:.06em; }.site-footer p:last-child { text-align:right; }
@media (max-width:880px){ .main-nav { gap:16px; }.category-stack { grid-template-columns:repeat(2,1fr); }.intro { grid-template-columns:1fr 2fr; }.intro-side { display:none; }.selection { grid-template-columns:1fr; }.selection-copy { max-width:600px; }.b2b-content { grid-template-columns:1fr 280px; gap:30px; }.site-footer { grid-template-columns:1fr 1fr; }.site-footer p:last-child { text-align:left; } }
@media (max-width:640px){ .site-header { padding:20px 22px; }.brand-mark { width:38px; height:38px; }.brand-mark i,.brand-mark b { font-size:28px; }.brand-mark i{left:8px}.brand-mark b{left:17px;top:11px}.brand-name strong{font-size:15px}.main-nav { position:absolute; left:0; top:0; display:none; width:100%; padding:88px 22px 26px; flex-direction:column; align-items:flex-start; gap:18px; background:#11110f; }.main-nav.is-open { display:flex; }.main-nav .nav-cta { margin-top:3px; }.menu-toggle { display:block; z-index:1; }.hero { min-height:720px; height:auto; padding:165px 22px 66px; align-items:flex-start; }.hero-symbol { width:67vw; right:-2vw; top:285px; transform:none; opacity:.88; }.hero-note { right:22px; bottom:27px; font-size:8px; }.hero-intro { width:56%; min-width:220px; }.hero-actions { flex-wrap:wrap; gap:16px; }.hero-grid { mask-image:linear-gradient(#000 0%,transparent 75%); }.orbit-one { width:540px;height:540px;right:-230px;top:150px; }.orbit-two { width:415px;height:415px;right:-170px;top:210px; }.section-pad { padding:78px 22px; }.intro { grid-template-columns:1fr; gap:28px; }.intro-main h2,.section-heading h2,.selection-copy h2,.b2b h2,.contact h2 { font-size:51px; }.large-copy { font-size:16px; }.category-stack { grid-template-columns:1fr; margin-top:42px; }.category-card { min-height:300px; }.category-card h3 { font-size:47px; }.selection { gap:62px; }.visual-frame { width:88%; }.visual-caption { margin-left:13%; }.b2b-top { align-items:flex-start; gap:15px; flex-direction:column; }.b2b-content { display:block; margin-top:43px; }.b2b-content > p { margin:27px 0; }.coming-soon { min-height:164px; }.contact-pretitle { gap:12px; flex-direction:column; }.contact h2 { margin-top:41px; }.contact-grid { grid-template-columns:1fr; }.phone-link,.contact-box { min-height:135px; }.site-footer { grid-template-columns:1fr; gap:20px; }.site-footer p:last-child { text-align:left; }.marquee-track { animation-duration:18s; }.contact-lead { margin-bottom:38px; } }
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track{animation:none}}


/* Miglioramenti di leggibilità e nuovi moduli editoriali */
:root { --serif:'Cormorant Garamond', Georgia, serif; }
h1, h2, h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.015em; line-height:.96; }
h1 i, h2 i, h3 i { font-weight:500; }
.hero-intro { color:rgba(252,248,241,.9); font-size:16px; font-weight:500; }
.hero-note { color:rgba(252,248,241,.72); }
.eyebrow, .overline { font-size:11px; font-weight:600; }
.large-copy { color:#302d27; font-size:18px; font-weight:500; }
.section-heading > p:last-child { color:#3e3931; font-size:16px; font-weight:500; }
.category-card-content span { font-size:11px; font-weight:500; opacity:.9; }
.benefit-list p { color:#38342d; font-size:15px; font-weight:500; }
.b2b-content > p { color:rgba(252,248,241,.83); font-size:16px; font-weight:500; }
.button { gap:15px; min-height:46px; font-size:13px; }
.whatsapp-icon { width:20px; height:20px; flex:0 0 20px; }

.founder { display:grid; grid-template-columns:.7fr minmax(0,1.75fr) minmax(210px,.7fr); gap:clamp(28px,6vw,94px); align-items:center; position:relative; overflow:hidden; background:#27241f; color:var(--cream); }
.founder:before { content:''; position:absolute; inset:auto -15% -80% auto; width:590px; aspect-ratio:1; border:1px solid rgba(216,183,101,.22); border-radius:50%; box-shadow:0 0 0 80px rgba(216,183,101,.025),0 0 50px rgba(216,183,101,.12); }
.founder-index { align-self:start; color:rgba(252,248,241,.7); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }.founder-index span { display:block; margin-bottom:12px; color:var(--gold-bright); }.founder-index p { margin:0; }
.founder-copy { position:relative; z-index:1; max-width:680px; }.founder-copy .overline { color:var(--gold-bright); }.founder-copy h2 { margin:0; font-size:clamp(48px,5.7vw,84px); }.founder-copy > p:not(.overline) { max-width:580px; margin:24px 0 0; color:rgba(252,248,241,.86); font-size:17px; line-height:1.7; font-weight:500; }.founder-copy strong { color:var(--gold-bright); font-weight:600; }.founder-copy > p a { color:var(--gold-bright); border-bottom:1px solid rgba(243,217,143,.5); }.founder-copy .underlined-link { margin-top:31px; border-color:rgba(252,248,241,.75); color:var(--cream); }
.founder-monogram { position:relative; z-index:1; width:clamp(180px,18vw,255px); aspect-ratio:1; justify-self:end; border:1px solid rgba(216,183,101,.5); border-radius:50%; color:var(--gold-bright); font-family:var(--serif); }.founder-monogram:before { content:''; position:absolute; inset:10%; border:1px solid rgba(216,183,101,.23); border-radius:50%; }.founder-monogram span,.founder-monogram i { position:absolute; font-style:normal; font-size:clamp(90px,10vw,150px); line-height:.65; }.founder-monogram span { top:28%; left:22%; }.founder-monogram i { top:43%; left:47%; }.founder-monogram p { position:absolute; bottom:15%; width:100%; margin:0; text-align:center; font:600 9px/1.6 var(--sans); letter-spacing:.2em; }

.contact-grid { grid-template-columns:1.2fr 1fr 1fr; }.map-panel { position:relative; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,.7fr); margin-top:44px; min-height:340px; border:1px solid rgba(17,17,15,.3); background:#baa05a; overflow:hidden; }.map-panel iframe { width:100%; min-height:340px; border:0; filter:grayscale(1) contrast(1.1) sepia(.18); }.map-panel-card { display:flex; flex-direction:column; justify-content:center; padding:32px; background:#1a1915; color:var(--cream); }.map-panel-card small { color:var(--gold-bright); font-size:10px; font-weight:600; letter-spacing:.15em; }.map-panel-card strong { margin:20px 0 30px; font:500 32px/.98 var(--serif); }.map-panel-card a { align-self:flex-start; padding-bottom:5px; border-bottom:1px solid rgba(252,248,241,.65); color:var(--gold-bright); font-size:12px; font-weight:600; }.map-panel-card a span { font-size:17px; }
.social-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px 24px; margin-top:31px; border-top:1px solid rgba(17,17,15,.28); padding-top:22px; }.social-row p { margin:0 auto 0 0; font-size:10px; font-weight:600; letter-spacing:.14em; }.social-row a { display:inline-flex; gap:6px; border-bottom:1px solid rgba(17,17,15,.45); padding-bottom:3px; font-size:12px; font-weight:600; }.social-row a span { font-weight:400; }
.back-to-top { position:fixed; right:22px; bottom:22px; z-index:20; display:flex; flex-direction:column; align-items:center; justify-content:center; width:52px; height:52px; border:1px solid rgba(216,183,101,.7); border-radius:50%; background:rgba(9,10,9,.92); color:var(--gold-bright); box-shadow:0 7px 22px rgba(0,0,0,.26); opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .2s,transform .2s; }.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }.back-to-top span { font-size:18px; line-height:1; }.back-to-top small { margin-top:2px; font-size:8px; letter-spacing:.12em; }
@media (max-width:880px){ .founder { grid-template-columns:1fr 2fr; }.founder-monogram { display:none; }.map-panel { grid-template-columns:1fr; }.map-panel-card { min-height:220px; } }
@media (max-width:640px){ h1,h2,h3 { line-height:.98; }.hero-intro { font-size:16px; }.large-copy { font-size:17px; }.founder { grid-template-columns:1fr; gap:25px; }.founder-copy h2 { font-size:53px; }.founder-copy > p:not(.overline) { font-size:16px; }.contact-grid { grid-template-columns:1fr; }.map-panel { margin-top:31px; min-height:470px; }.map-panel iframe { min-height:250px; }.map-panel-card { min-height:210px; padding:28px 22px; }.map-panel-card strong { font-size:30px; }.social-row { align-items:flex-start; flex-direction:column; gap:14px; }.social-row p { margin:0 0 4px; }.back-to-top { right:14px; bottom:14px; width:48px; height:48px; } }

.map-canvas { position:relative; display:block; min-height:340px; overflow:hidden; background:#b9a15e; }.map-canvas img { display:block; width:100%; height:100%; min-height:340px; object-fit:cover; filter:saturate(.75) contrast(1.03); transition:transform .35s ease; }.map-canvas:hover img { transform:scale(1.035); }.map-canvas:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgba(9,10,9,.75) 100%); }.map-canvas > span { position:absolute; z-index:1; left:26px; bottom:23px; display:flex; flex-direction:column; color:var(--cream); }.map-canvas small { color:var(--gold-bright); font-size:10px; font-weight:600; letter-spacing:.15em; }.map-canvas b { margin-top:4px; font:500 30px/.95 var(--serif); }.map-canvas b i { color:var(--gold-bright); font-style:normal; }
@media (max-width:640px){ .map-canvas,.map-canvas img { min-height:250px; }.map-canvas > span { left:21px; bottom:20px; }.map-canvas b { font-size:27px; } }

.map-canvas { background:#b9a15e; }.map-canvas iframe { display:block; width:100%; height:100%; min-height:340px; border:0; filter:saturate(.7) contrast(1.04); }.map-canvas .map-canvas-label { position:absolute; z-index:2; left:26px; bottom:23px; display:flex; flex-direction:column; color:var(--cream); text-shadow:0 1px 4px rgba(0,0,0,.65); }.map-canvas .map-canvas-label:before { content:''; position:absolute; z-index:-1; inset:-18px -20px -15px; background:linear-gradient(90deg,rgba(9,10,9,.8),rgba(9,10,9,.32),transparent); border-radius:2px; }.map-canvas .map-canvas-label small { color:var(--gold-bright); font-size:10px; font-weight:600; letter-spacing:.15em; }.map-canvas .map-canvas-label b { margin-top:4px; font:500 30px/.95 var(--serif); }.map-canvas .map-canvas-label b i { color:var(--gold-bright); font-style:normal; }
@media (max-width:640px){ .map-canvas iframe { min-height:250px; }.map-canvas .map-canvas-label { left:21px; bottom:20px; }.map-canvas .map-canvas-label b { font-size:27px; } }

.map-location-card { position:relative; isolation:isolate; display:flex; align-items:center; overflow:hidden; background-color:#a68c4b; background-image:linear-gradient(rgba(252,248,241,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(252,248,241,.12) 1px,transparent 1px),linear-gradient(35deg,transparent 46%,rgba(252,248,241,.12) 47%,rgba(252,248,241,.12) 49%,transparent 50%),linear-gradient(-42deg,transparent 46%,rgba(252,248,241,.1) 47%,rgba(252,248,241,.1) 49%,transparent 50%); background-size:48px 48px,48px 48px,180px 180px,220px 220px; }.map-location-card:before,.map-location-card:after { content:''; position:absolute; z-index:-1; border:1px solid rgba(252,248,241,.26); border-radius:50%; }.map-location-card:before { width:360px; height:360px; right:5%; top:-86px; }.map-location-card:after { width:240px; height:240px; right:17%; top:-25px; }.map-location-card > p { position:relative; z-index:1; margin:0 28px; color:var(--cream); text-shadow:0 1px 4px rgba(0,0,0,.35); }.map-location-card > p small { display:block; margin-bottom:12px; color:#fff4c9; font-size:10px; font-weight:600; letter-spacing:.16em; }.map-location-card > p strong { font:500 36px/.98 var(--serif); }.location-dot { position:absolute; z-index:1; top:50%; right:25%; width:35px; height:35px; border:8px solid #171612; border-radius:50% 50% 50% 0; background:var(--gold-bright); box-shadow:0 0 0 10px rgba(252,248,241,.15),0 7px 15px rgba(0,0,0,.24); transform:rotate(-45deg); }.location-dot:after { content:''; position:absolute; inset:7px; border-radius:50%; background:#171612; }.map-location-card .map-canvas-label { left:28px; bottom:25px; }.map-location-card .map-canvas-label:before { background:linear-gradient(90deg,rgba(23,22,18,.82),rgba(23,22,18,.25),transparent); }
@media (max-width:640px){ .map-location-card > p { margin:0 21px; }.map-location-card > p strong { font-size:29px; }.location-dot { top:38%; right:18%; }.map-location-card .map-canvas-label { left:21px; bottom:20px; } }


/* Indicatori e icone nell'identità nero-oro */
.phone-link .contact-action-icon, .contact-box .contact-action-icon { position:absolute; right:20px; top:18px; width:32px; height:32px; padding:7px; border:1px solid rgba(216,183,101,.8); border-radius:50%; background:var(--ink); color:var(--gold-bright); fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:background .2s,color .2s,transform .2s; }.phone-link:hover .contact-action-icon, .contact-box:hover .contact-action-icon { background:var(--gold-bright); color:var(--ink); transform:translateY(-2px); }
.link-icon, .social-icon { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.map-panel-card a { display:inline-flex; align-items:center; gap:8px; }.social-row a { align-items:center; }.social-row .social-icon { width:14px; height:14px; color:#5a481e; }
.back-to-top { --scroll-progress:3deg; position:fixed; top:50%; right:22px; bottom:auto; z-index:30; width:60px; height:60px; border:0; border-radius:50%; background:conic-gradient(var(--gold-bright) var(--scroll-progress),rgba(252,248,241,.16) 0); color:var(--gold-bright); box-shadow:0 10px 26px rgba(0,0,0,.28); isolation:isolate; opacity:0; pointer-events:none; transform:translateY(calc(-50% + 14px)); transition:opacity .24s,transform .24s,box-shadow .24s; }.back-to-top:before { content:''; position:absolute; z-index:0; inset:3px; border-radius:50%; background:var(--ink); box-shadow:inset 0 0 0 1px rgba(216,183,101,.2); }.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(-50%); }.back-to-top:hover { box-shadow:0 12px 32px rgba(0,0,0,.42); }.back-to-top .top-arrow, .back-to-top small { position:relative; z-index:1; }.back-to-top .top-arrow { width:23px; height:23px; margin-top:10px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }.back-to-top small { display:block; margin-top:-2px; font-size:8px; font-weight:600; letter-spacing:.08em; text-align:center; }
@media (max-width:640px){ .phone-link .contact-action-icon, .contact-box .contact-action-icon { right:18px; top:17px; }.back-to-top { top:auto; right:13px; bottom:16px; width:54px; height:54px; transform:translateY(12px); }.back-to-top.is-visible { transform:translateY(0); }.back-to-top .top-arrow { margin-top:8px; width:21px; height:21px; } }


/* Gallery fotografica: tre blocchi stabili a scorrimento */
.gallery { --gallery-gap:16px; overflow:hidden; background:#171612; color:var(--cream); }.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:48px; }.gallery-heading h2 { margin:0; max-width:660px; font-size:clamp(52px,6.1vw,91px); }.gallery-heading .eyebrow { color:var(--gold-bright); }.gallery-heading-side { width:min(100%,360px); padding-bottom:8px; }.gallery-heading-side > p { margin:0; color:rgba(252,248,241,.77); font-size:15px; line-height:1.65; font-weight:500; }.gallery-controls { display:flex; align-items:center; gap:14px; margin-top:27px; }.gallery-control { display:grid; place-items:center; appearance:none; width:42px; height:42px; border:1px solid rgba(243,217,143,.72); border-radius:50%; background:var(--ink); color:var(--gold-bright); cursor:pointer; transition:background .2s,color .2s,transform .2s,border-color .2s; }.gallery-control:hover { border-color:var(--gold-bright); background:var(--gold-bright); color:var(--ink); transform:translateY(-2px); }.gallery-control:focus-visible { outline:2px solid var(--gold-bright); outline-offset:4px; }.gallery-control svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }.gallery-count { min-width:54px; color:rgba(252,248,241,.72); font-size:10px; font-weight:600; letter-spacing:.13em; text-align:center; }.gallery-viewport { width:100%; margin-top:56px; overflow:hidden; outline-offset:6px; }.gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - var(--gallery-gap) * 2) / 3); gap:var(--gallery-gap); width:100%; transition:transform .72s cubic-bezier(.22,.61,.36,1); will-change:transform; }.gallery-slide { display:grid; place-items:center; aspect-ratio:4 / 3; min-width:0; margin:0; padding:0; overflow:hidden; border:1px solid rgba(243,217,143,.28); background:#0e0e0c; box-shadow:inset 0 0 0 1px rgba(216,183,101,.08); }.gallery-slide img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:cover; object-position:center; transition:transform .5s ease; }.gallery-slide:hover img { transform:scale(1.025); }.gallery-note { display:flex; justify-content:space-between; margin:22px 0 0; color:rgba(252,248,241,.62); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }.gallery-note span { color:var(--gold-bright); }
@media (max-width:880px){ .gallery-heading { align-items:start; flex-direction:column; gap:26px; }.gallery-heading-side { width:min(100%,520px); } }
@media (max-width:760px){ .gallery { --gallery-gap:13px; }.gallery-heading h2 { font-size:53px; }.gallery-heading-side > p { font-size:15px; }.gallery-viewport { margin-top:38px; overflow:hidden; }.gallery-track { display:flex; width:max-content; gap:var(--gallery-gap); }.gallery-slide { flex:0 0 calc(100vw - 44px); width:calc(100vw - 44px); height:min(52vw,205px); aspect-ratio:auto; padding:9px; }.gallery-note { margin-top:18px; font-size:9px; } }
@media (prefers-reduced-motion:reduce){ .gallery-track,.gallery-slide img { transition:none; } }


/* Firma digitale */
.footer-meta a { display:inline-flex; align-items:baseline; gap:4px; margin-top:7px; color:var(--gold-bright); font-size:9px; letter-spacing:.12em; text-transform:uppercase; transition:color .2s; }.footer-meta a strong { font:600 11px var(--sans); letter-spacing:.16em; }.footer-meta a:hover { color:var(--cream); }


/* Frecce coerenti e visualizzazione integrale delle foto */
.underlined-link, .map-canvas-label b { align-items:center; }.underlined-link .link-icon, .map-canvas-label .link-icon { width:18px; height:18px; flex:0 0 18px; color:var(--gold-bright); }.intro-main .underlined-link .link-icon { color:#a18445; }.map-canvas-label b { display:inline-flex; gap:9px; }.gallery-slide { appearance:none; border-radius:0; color:inherit; cursor:zoom-in; }.gallery-slide:focus-visible { outline:2px solid var(--gold-bright); outline-offset:4px; }.gallery-lightbox { position:fixed; width:min(94vw,1120px); height:min(90vh,820px); max-width:none; max-height:none; margin:auto; padding:54px 18px 18px; overflow:visible; border:1px solid rgba(243,217,143,.58); background:#11110f; box-shadow:0 24px 80px rgba(0,0,0,.7); }.gallery-lightbox::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(5px); }.gallery-lightbox img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }.gallery-lightbox-close { position:absolute; z-index:2; top:11px; right:11px; display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(243,217,143,.72); border-radius:50%; background:var(--ink); color:var(--gold-bright); cursor:pointer; }.gallery-lightbox-close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }.gallery-lightbox-close:hover { background:var(--gold-bright); color:var(--ink); }.gallery-lightbox-close:focus-visible { outline:2px solid var(--gold-bright); outline-offset:3px; }
@media (max-width:760px){ .gallery-lightbox { width:94vw; height:78vh; padding:48px 12px 12px; }.gallery-lightbox-close { top:8px; right:8px; } }

.text-link .link-icon { width:16px; height:16px; flex:0 0 16px; color:var(--gold); }
