
:root{
  --bg:#f7f1e6;
  --bg-soft:#fcfaf5;
  --surface:rgba(255,255,255,.92);
  --surface-2:#f5ecdf;
  --ink:#16120f;
  --muted:#6f655a;
  --line:rgba(82,62,33,.12);
  --line-soft:rgba(255,255,255,.14);
  --accent:#8f6a30;
  --accent-2:#d7b36f;
  --accent-3:#f2dfb8;
  --accent-deep:#5e4319;
  --accent-ink:#1c1611;
  --dark:#140f0c;
  --dark-2:#241a14;
  --shadow:0 28px 80px rgba(20,14,11,.16);
  --shadow-soft:0 18px 46px rgba(20,14,11,.08);
  --radius:30px;
  --radius-sm:22px;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(242,223,184,.32), transparent 28%),
    radial-gradient(circle at 85% 15%, rgba(215,179,111,.18), transparent 22%),
    linear-gradient(180deg,#fbf8f2 0%, #f7f1e6 52%, #f1e8dc 100%);
  line-height:1.6;
}

body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 0%, rgba(242,223,184,.14), transparent 24%), radial-gradient(circle at 100% 30%, rgba(143,106,48,.07), transparent 18%);z-index:-1}

html,body{transition:background-color .9s ease, color .6s ease}
body::before,.site-header,.site-header.is-scrolled,.menu-toggle,.location-copy,.faq-card,.feature-ribbon article,.social-main,.social-side,.cta-shell,.hero-card,.proof-card,.metric-card,.review-stage,.review-stage-refined,.reviews-more,.milan-card,.photo-card,.location-visual,.btn-primary,.btn-secondary,.badge,.sticky-cta .btn,.scroll-progress-bar{transition:background .75s ease,border-color .55s ease,box-shadow .55s ease,color .45s ease,opacity .45s ease,transform .45s ease,filter .55s ease}
@keyframes ctaPulse{0%,100%{transform:scale(.96);opacity:.78}50%{transform:scale(1.04);opacity:1}}
@keyframes spinSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes spinSlowReverse{from{transform:rotate(360deg)}to{transform:rotate(0)}}


body.theme-day{
  color-scheme:light;
}

body.theme-night{
  color-scheme:dark;
  --bg:#0f0b08;
  --bg-soft:#16100d;
  --surface:rgba(22,16,12,.88);
  --surface-2:rgba(33,24,18,.94);
  --ink:#f3ece4;
  --muted:#d0c0b2;
  --line:rgba(237,214,177,.14);
  --line-soft:rgba(255,255,255,.10);
  --accent:#c39a59;
  --accent-2:#e4c68f;
  --accent-3:#f4e3bf;
  --accent-deep:#f0d39c;
  --accent-ink:#110d09;
  --dark:#090705;
  --dark-2:#140f0c;
  --shadow:0 34px 92px rgba(0,0,0,.48);
  --shadow-soft:0 22px 56px rgba(0,0,0,.28);
  background:
    radial-gradient(circle at top left, rgba(228,198,143,.12), transparent 24%),
    radial-gradient(circle at 82% 14%, rgba(195,154,89,.10), transparent 22%),
    linear-gradient(180deg,#0f0b08 0%, #130e0b 38%, #1a130f 100%);
}
body.theme-night::before{
  background:
    radial-gradient(circle at 18% 0%, rgba(228,198,143,.10), transparent 20%),
    radial-gradient(circle at 100% 24%, rgba(195,154,89,.08), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.015), transparent 42%);
}
body.theme-night .site-header{
  background:rgba(12,9,7,.72);
  border-bottom-color:rgba(237,214,177,.08);
  box-shadow:none;
}
body.theme-night .site-header.is-scrolled{
  background:rgba(14,10,8,.92);
  box-shadow:0 16px 44px rgba(0,0,0,.34);
  border-bottom-color:rgba(237,214,177,.10);
}
body.theme-night .brand-subtitle,
body.theme-night .small,
body.theme-night .nav-links a:not(.btn),
body.theme-night .mobile-nav a:not(.btn),
body.theme-night .location-item span,
body.theme-night .feature-ribbon span,
body.theme-night .faq-card p,
body.theme-night .section-head p,
body.theme-night .location-copy p,
body.theme-night .footer-row,
body.theme-night .quote-meta,
body.theme-night .mini-review p,
body.theme-night .voice-card p,
body.theme-night .proof-card span,
body.theme-night .kpi span,
body.theme-night .social-main p,
body.theme-night .social-side p{
  color:var(--muted);
}
body.theme-night .menu-toggle{
  background:rgba(255,255,255,.04);
  color:var(--ink);
  border-color:var(--line);
}
body.theme-night .section-soft{
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0));
  border-top-color:rgba(237,214,177,.06);
  border-bottom-color:rgba(237,214,177,.06);
}
body.theme-night .hero-card,
body.theme-night .location-copy,
body.theme-night .faq-card,
body.theme-night .feature-ribbon article,
body.theme-night .social-main,
body.theme-night .social-side,
body.theme-night .reviews-more,
body.theme-night .proof-card,
body.theme-night .metric-card{
  background:linear-gradient(180deg, rgba(27,20,15,.90), rgba(17,13,10,.92));
  border-color:rgba(237,214,177,.10);
  box-shadow:var(--shadow-soft);
}
body.theme-night .location-item,
body.theme-night .kpi{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  border-color:rgba(237,214,177,.08);
}
body.theme-night .quote-notes span,
body.theme-night .badge,
body.theme-night .theme-btn,
body.theme-night .reviews-more,
body.theme-night .voice-card,
body.theme-night .mini-review{
  background:rgba(255,255,255,.045);
  border-color:rgba(237,214,177,.10);
}
body.theme-night .btn-primary{
  background:linear-gradient(135deg,#f6dfb0 0%, #e4c68f 24%, #c39a59 52%, #8f6a30 76%, #5d4324 100%);
  color:#140f0c;
  box-shadow:0 18px 44px rgba(195,154,89,.22), 0 0 0 1px rgba(255,255,255,.06) inset;
}
body.theme-night .btn-primary:hover{box-shadow:0 24px 56px rgba(195,154,89,.28), 0 0 0 1px rgba(255,255,255,.08) inset}
body.theme-night .btn-secondary{
  background:rgba(255,255,255,.06);
  border-color:rgba(237,214,177,.18);
  color:#fff;
}
body.theme-night .scroll-progress-bar{
  background:linear-gradient(90deg,#6d4e25 0%, #a67a39 26%, #e4c68f 58%, #f4e3bf 100%);
  box-shadow:0 0 18px rgba(228,198,143,.22);
}
body.theme-night .lightbox{
  background:radial-gradient(circle at top, rgba(228,198,143,.10), transparent 26%), rgba(3,2,2,.96);
}
body.theme-night .footer-mark{filter:brightness(1.08) contrast(1.02)}
body.theme-night .hero::before{filter:saturate(.94) brightness(.82)}
body.theme-night .hero::after{background:linear-gradient(110deg,rgba(8,6,5,.90) 0%, rgba(8,6,5,.72) 34%, rgba(8,6,5,.34) 70%, rgba(8,6,5,.12) 100%)}
body.theme-night .milan-card figcaption{background:linear-gradient(180deg,rgba(8,6,5,.10), rgba(8,6,5,.82))}
body.theme-night .hero-note-mark{background:linear-gradient(180deg,#f4e3bf,#d7b36f);color:#24180b}
body.theme-night .quote-kicker,body.theme-night .theme-status{color:rgba(244,227,191,.72)}
body.theme-day .theme-status{color:rgba(255,255,255,.82)}
body.theme-night .theme-status-dot{background:#e4c68f;box-shadow:0 0 0 6px rgba(228,198,143,.10), 0 0 18px rgba(228,198,143,.24)}

.theme-status{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.82);
  font-size:.9rem;
  backdrop-filter:blur(10px);
  box-shadow:0 10px 22px rgba(0,0,0,.10);
}
.theme-status-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#f2d28f;
  box-shadow:0 0 0 6px rgba(242,210,143,.10), 0 0 18px rgba(242,210,143,.16);
}
body.theme-day .theme-status{background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.18)}
body.theme-day .theme-status-dot{background:#f2d28f;box-shadow:0 0 0 6px rgba(242,210,143,.10), 0 0 18px rgba(242,210,143,.16)}
@media (max-width:720px){
  .theme-status{margin-top:14px;font-size:.84rem;padding:9px 12px}
}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:90;background:transparent;pointer-events:none}
.scroll-progress-bar{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent-deep) 0%, var(--accent) 22%, var(--accent-2) 55%, #f2d28f 100%);box-shadow:0 0 18px rgba(215,179,111,.35);transform-origin:left center}
.hero-badges .badge:nth-child(1){animation:badgeFloat 7.5s ease-in-out infinite}
.hero-badges .badge:nth-child(2){animation:badgeFloat 7.5s ease-in-out infinite .5s}
.hero-badges .badge:nth-child(3){animation:badgeFloat 7.5s ease-in-out infinite 1s}
.hero-badges .badge:nth-child(4){animation:badgeFloat 7.5s ease-in-out infinite 1.5s}
.section-head h2,.location-copy h2,.cta-shell h2,.review-summary h2{position:relative}
.section-head h2::after,.location-copy h2::after,.cta-shell h2::after,.review-summary h2::after{content:'';display:block;width:92px;height:2px;margin-top:16px;background:linear-gradient(90deg,var(--accent),var(--accent-2),transparent);border-radius:999px;opacity:.9}
.hero-card::after,.photo-card::before,.milan-card::before,.location-visual::before,.proof-card::before,.metric-card::before{mix-blend-mode:screen}
.hero-card::after,.proof-card::after,.metric-card::after,.social-main::after,.social-side::after,.feature-ribbon article::after,.location-copy::after,.cta-shell::after{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;border:1px solid rgba(242,223,184,.08);}
.cta-shell::after,.social-main::after,.social-side::after,.feature-ribbon article::after,.location-copy::after{background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 30%, rgba(242,223,184,.08) 70%, transparent 100%);opacity:.7}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes buttonGlow{0%,100%{box-shadow:0 18px 38px rgba(143,106,48,.28)}50%{box-shadow:0 22px 46px rgba(143,106,48,.38)}}
@keyframes goldShine{0%{transform:translateX(-180%) skewX(-18deg);opacity:0}12%{opacity:.34}30%{transform:translateX(420%) skewX(-18deg);opacity:0}100%{transform:translateX(420%) skewX(-18deg);opacity:0}}
@keyframes softFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:24px;top:24px;z-index:1000;background:#fff;padding:10px 14px;border-radius:10px}
.container{width:min(calc(100% - 32px),var(--max));margin:0 auto}
h1,h2,h3,.serif{font-family:'Cormorant Garamond', Georgia, serif;letter-spacing:-.02em}
.small{font-size:.96rem;color:var(--muted)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:'';width:34px;height:1px;background:currentColor;opacity:.6}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,241,230,.72);backdrop-filter:blur(18px) saturate(150%);border-bottom:1px solid rgba(24,22,20,.05);transition:background .32s ease, box-shadow .32s ease, border-color .32s ease, transform .32s ease}
.site-header.is-scrolled{background:rgba(248,243,234,.94);box-shadow:0 12px 36px rgba(16,12,10,.07);border-color:rgba(24,22,20,.07)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:82px}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand-logo{width:54px;height:54px;object-fit:contain;flex:none}
.brand-text{display:flex;flex-direction:column;gap:2px}
.brand-title{font-size:1rem;font-weight:800;line-height:1.1;letter-spacing:.01em}
.brand-subtitle{font-size:.82rem;color:var(--muted);line-height:1.1}
.nav-links{display:flex;align-items:center;gap:18px}
.nav-links a:not(.btn){font-size:.96rem;color:#403a35;position:relative}
.nav-links a:not(.btn)::after{content:'';position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;opacity:.4}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:700;transition:transform .28s ease, box-shadow .28s ease, background .28s ease, border-color .28s ease;cursor:pointer;border:none;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--accent-deep) 0%, var(--accent) 28%, var(--accent-2) 55%, #f2d28f 78%, var(--accent) 100%);color:var(--accent-ink);box-shadow:0 18px 38px rgba(143,106,48,.28);border:1px solid rgba(255,255,255,.22);animation:buttonGlow 7s ease-in-out infinite}
.btn-primary:hover{box-shadow:0 24px 48px rgba(143,106,48,.34)}
.btn-primary::after{content:'';position:absolute;inset:-2px auto -2px -42%;width:38%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);opacity:0;transition:transform .7s ease, opacity .45s ease;animation:goldShine 7s ease-in-out infinite 1.2s}
.btn-primary:hover::after{opacity:1;transform:translateX(320%) skewX(-18deg)}
.btn-secondary{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(242,223,184,.28);backdrop-filter:blur(10px)}
.menu-toggle{display:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-soft)}
.mobile-nav{display:none;flex-direction:column;gap:16px;padding:0 0 18px}
.mobile-nav a:not(.btn){padding:6px 0;color:#443c36}
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,13,11,.18),rgba(17,13,11,.5)), url('../images/hero-milan.webp') center/cover no-repeat;z-index:-3;transform:scale(1.07) translateY(var(--hero-shift,0px));animation:heroDrift 24s ease-in-out infinite alternate;will-change:transform}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,rgba(15,12,11,.86) 0%, rgba(15,12,11,.66) 34%, rgba(15,12,11,.22) 70%, rgba(15,12,11,.08) 100%);z-index:-2}
.hero-shell{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:end;gap:44px;padding:66px 0 38px}
.hero-copy{max-width:690px;color:#fff;padding:26px 0;position:relative;z-index:1}
.hero-copy h1{font-size:clamp(2.9rem,6vw,5.5rem);line-height:.94;margin:18px 0 18px;max-width:10.5ch}
.hero-copy .lead{font-size:1.14rem;line-height:1.76;color:rgba(255,255,255,.86);max-width:58ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0 22px}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;filter:drop-shadow(0 12px 28px rgba(0,0,0,.14))}
.badge{padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(242,223,184,.24);color:#fff;font-size:.92rem;backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.08)}
.skyline-wrap{margin-top:26px;opacity:.96}
.skyline-wrap img{width:min(100%,880px);filter:drop-shadow(0 10px 26px rgba(0,0,0,.18))}
.hero-panel{display:grid;gap:18px;justify-self:end;width:min(100%,460px)}
.hero-card{background:rgba(255,251,246,.88);backdrop-filter:blur(18px);padding:22px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(242,223,184,.24);transition:transform .46s cubic-bezier(.2,.6,.2,1), box-shadow .46s cubic-bezier(.2,.6,.2,1), border-color .46s cubic-bezier(.2,.6,.2,1)}
.hero-visual{padding:0;overflow:hidden}
.hero-visual img{width:100%;aspect-ratio:4/4.15;object-fit:cover;transform:scale(1.01);transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.hero-visual:hover img{transform:scale(1.05)}
.mini-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.kpi{padding:16px 14px;border-radius:18px;background:linear-gradient(180deg,rgba(242,223,184,.18),rgba(215,179,111,.08));border:1px solid rgba(143,106,48,.12)}
.kpi strong{display:block;font-size:1.5rem;line-height:1}
.kpi span{display:block;margin-top:8px;font-size:.82rem;color:var(--muted)}
.hero-note{display:flex;align-items:flex-start;gap:14px;margin-top:16px}
.hero-note-mark{width:46px;height:46px;border-radius:14px;background:linear-gradient(180deg,#fbf1dc,#f4dfb3);display:grid;place-items:center;color:var(--accent);font-size:1.1rem;flex:none}
.section{padding:108px 0}
.section-tight{padding:76px 0}
.section-head{display:grid;gap:18px;margin-bottom:34px;max-width:760px}
.section-head h2{font-size:clamp(2rem,4.1vw,3.6rem);line-height:.98;margin:0}
.section-head p{font-size:1.06rem;color:var(--muted);margin:0}
.section-mini-title{font-size:2.1rem;line-height:1;margin:0 0 8px}
.social-bar{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:stretch}
.social-main,.social-side{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.social-main{padding:28px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.rating-badge{width:118px;height:118px;border-radius:34px;background:linear-gradient(135deg,#fff4ef, #fbe8de);display:grid;place-items:center;text-align:center;border:1px solid rgba(162,59,31,.08)}
.rating-badge strong{display:block;font-size:2.1rem;line-height:1}
.rating-badge span{font-size:.84rem;color:var(--muted)}
.meta-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.meta-pill{padding:10px 12px;border-radius:999px;background:#f6f2ec;color:#4e4741;font-size:.92rem}
.social-side{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.score{padding:18px;border-radius:20px;background:#fbf8f4;border:1px solid rgba(24,22,20,.06)}
.score strong{display:block;font-size:1.46rem;line-height:1}
.score span{display:block;margin-top:8px;color:var(--muted);font-size:.88rem}
.editorial-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:26px;align-items:stretch}
.photo-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);cursor:zoom-in;transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s cubic-bezier(.2,.6,.2,1), border-color .5s cubic-bezier(.2,.6,.2,1);will-change:transform}
.photo-card:hover{transform:translateY(-10px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 36px 82px rgba(19,14,11,.16);border-color:rgba(143,106,48,.16)}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.photo-card:hover img{transform:scale(1.045)}
.photo-card figcaption{position:absolute;left:18px;right:18px;bottom:18px;padding:18px 18px 16px;border-radius:20px;background:linear-gradient(180deg,rgba(15,12,11,.12), rgba(15,12,11,.72));color:#fff;backdrop-filter:blur(10px)}
.photo-card figcaption span{display:block;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:6px}
.photo-card figcaption strong{display:block;font-size:1.18rem;line-height:1.12}
.photo-large{min-height:700px}
.stack-col{display:grid;grid-template-rows:1fr 1fr;gap:26px}
.gallery-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
.gallery-strip .photo-card{min-height:360px}
.section-dark{position:relative;color:#fff;background:linear-gradient(135deg,#120e0b 0%, #1e1611 42%, #2a2016 76%, #3d2d1f 100%)}
.section-dark::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right, rgba(215,179,111,.18), transparent 38%);pointer-events:none}
.review-shell{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}
.review-summary{display:grid;gap:18px}
.review-summary h2{font-size:clamp(2.2rem,4vw,4rem);line-height:.94;margin:0}
.review-summary p{margin:0;color:rgba(255,245,238,.78);font-size:1.03rem}
.review-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.metric-card{padding:18px;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09)}
.metric-card strong{display:block;font-size:1.58rem;line-height:1}
.metric-card span{display:block;margin-top:8px;color:rgba(255,255,255,.72);font-size:.88rem}
.review-stage{padding:28px;border-radius:var(--radius);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);box-shadow:0 24px 70px rgba(0,0,0,.18)}
.review-tablist{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.theme-btn{padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease}
.theme-btn:hover{transform:translateY(-1px)}
.theme-btn.is-active{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.22)}
.quote-stage{display:grid;gap:16px}
.quote-kicker{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.56)}
.quote-text{margin:0;font-family:'Cormorant Garamond', Georgia, serif;font-size:2rem;line-height:1.06;color:#fff}
.quote-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:rgba(255,255,255,.76);font-size:.95rem}
.quote-meta strong{color:#fff}
.quote-notes{display:flex;flex-wrap:wrap;gap:10px}
.quote-notes span{padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);font-size:.9rem;color:rgba(255,255,255,.8)}
.review-voices{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}
.voice-card{padding:20px;border-radius:22px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);transition:transform .3s ease,border-color .3s ease}
.voice-card:hover{transform:translateY(-6px);border-color:rgba(242,223,184,.22)}
.voice-card strong{display:block;margin-bottom:10px;font-size:1rem;color:#fff}
.voice-card p{margin:0;color:rgba(255,245,238,.74);font-size:.96rem;line-height:1.55}
.reviews-more{margin-top:18px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);border-radius:28px;padding:0 24px}
.reviews-more[open]{padding-bottom:22px}
.reviews-more summary{list-style:none;cursor:pointer;padding:22px 0;font-weight:700;color:#fff}
.reviews-more summary::-webkit-details-marker{display:none}
.reviews-more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-top:4px}
.mini-review{padding:18px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.mini-review strong{display:block;margin-bottom:10px;color:#fff}
.mini-review p{margin:0;color:rgba(246,239,233,.74);font-size:.96rem}

.review-shell-refined{align-items:stretch}
.review-metrics-compact{grid-template-columns:repeat(4,1fr)}
.review-proof-grid{display:grid;grid-template-columns:1fr;gap:12px}
.proof-card{padding:18px 20px;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);box-shadow:0 14px 34px rgba(0,0,0,.12)}
.proof-card strong{display:block;color:#fff;font-size:1rem;margin-bottom:8px}
.proof-card span{display:block;color:rgba(255,245,238,.76);font-size:.95rem;line-height:1.55}
.review-stage-refined{display:grid;gap:18px}
.review-voices-refined{grid-template-columns:repeat(3,1fr);margin-top:0}
.review-actions{display:flex;justify-content:flex-start}
.review-actions .btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}
.review-actions .btn:hover{background:rgba(255,255,255,.12)}
.milan-grid-dual{grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr)}
.milan-grid-trio{grid-template-columns:minmax(0,1.05fr) minmax(280px,.88fr) minmax(280px,.88fr);align-items:stretch}
.milan-card{position:relative;overflow:hidden;border-radius:30px;min-height:380px;box-shadow:var(--shadow-soft);cursor:zoom-in;border:1px solid rgba(24,22,20,.08);transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s cubic-bezier(.2,.6,.2,1), border-color .5s cubic-bezier(.2,.6,.2,1)}
.milan-card:hover{transform:translateY(-10px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 36px 82px rgba(19,14,11,.16);border-color:rgba(143,106,48,.16)}
.milan-card-wide{min-height:500px}
.milan-card-portrait{min-height:500px}
.milan-card::after,.photo-card::after,.location-visual::after,.hero-visual::after{content:'↗';position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(242,223,184,.18));backdrop-filter:blur(10px);color:#fff;font-weight:700;font-size:1rem;box-shadow:0 12px 24px rgba(0,0,0,.12);opacity:0;transform:translateY(6px) scale(.96);transition:opacity .35s ease, transform .35s ease}
.milan-card:hover::after,.photo-card:hover::after,.location-visual:hover::after,.hero-visual:hover::after{opacity:1;transform:none}
.location-visual{position:relative}
.location-visual::after{background:rgba(20,15,12,.38)}
.lightbox{position:fixed;inset:0;z-index:120;background:radial-gradient(circle at top, rgba(215,179,111,.09), transparent 24%), rgba(5,4,3,.95);backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:24px;transition:opacity .34s ease, visibility .34s ease}
.lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.lightbox-stage img{max-width:min(88vw,1450px);max-height:78vh;border-radius:24px;box-shadow:0 34px 90px rgba(0,0,0,.46), 0 0 0 1px rgba(242,223,184,.12);transform:scale(.965) translateY(10px);transition:transform .42s cubic-bezier(.2,.7,.2,1)}
.lightbox.is-open .lightbox-stage img{transform:scale(1) translateY(0)}
.reveal{opacity:0;transform:translateY(38px) scale(.982) rotateX(3deg);transition:opacity 1.05s cubic-bezier(.18,.7,.2,1), transform 1.05s cubic-bezier(.18,.7,.2,1), filter 1.05s cubic-bezier(.18,.7,.2,1);filter:blur(10px)}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1) rotateX(0);filter:none}
@keyframes heroDrift{0%{transform:scale(1.07) translateY(var(--hero-shift,0px)) translateX(0)}100%{transform:scale(1.09) translateY(calc(var(--hero-shift,0px) - 10px)) translateX(-10px)}}

.milan-grid{display:grid;grid-template-columns:1.08fr .96fr .96fr;gap:22px}
.milan-layout{display:grid;grid-template-columns:minmax(280px,.56fr) minmax(0,1.44fr);gap:34px;align-items:start}
.milan-head{margin-bottom:0;position:sticky;top:108px}
.milan-head h2{font-size:clamp(2.05rem,3.6vw,3.4rem);max-width:8.8ch;line-height:.96}
.milan-head p{max-width:42ch}
.milan-grid-layout{margin-top:4px}
.milan-card img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.milan-card:hover img{transform:scale(1.05)}
.milan-card figcaption{position:absolute;left:18px;right:18px;bottom:18px;padding:18px;border-radius:20px;background:linear-gradient(180deg,rgba(15,12,11,.12), rgba(15,12,11,.72));color:#fff}
.milan-card figcaption span{display:block;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:6px}
.milan-card figcaption strong{font-size:1.15rem;line-height:1.14}
.location-shell{display:grid;grid-template-columns:1.02fr .98fr;gap:28px;align-items:stretch}
.location-copy{position:relative;padding:34px;border-radius:32px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.location-copy h2{font-size:clamp(2rem,4vw,3.6rem);line-height:.98;margin:12px 0 14px}
.location-copy p{margin:0;color:var(--muted);font-size:1.06rem}
.location-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.location-item{padding:18px;border-radius:22px;background:var(--surface-2);border:1px solid rgba(26,23,21,.06)}
.location-item strong{display:block;margin-bottom:8px;font-size:1rem}
.location-item span{font-size:.95rem;color:var(--muted);line-height:1.55}
.location-visual{overflow:hidden;border-radius:32px;box-shadow:var(--shadow-soft);min-height:520px;cursor:zoom-in}
.location-visual img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.location-visual:hover img{transform:scale(1.045)}
.cta-band{padding:100px 0 120px}
.cta-shell{position:relative;overflow:hidden;padding:56px;border-radius:38px;background:linear-gradient(135deg,#15100c 0%, #211711 44%, #37271a 72%, #6e552d 100%);box-shadow:var(--shadow)}
.cta-shell::before{content:'';position:absolute;right:-40px;bottom:-80px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle, rgba(215,179,111,.22) 0%, transparent 66%)}
.cta-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.85fr);gap:34px;align-items:end}
.cta-main{position:relative;z-index:1}
.cta-shell h2{font-size:clamp(2rem,4.4vw,4rem);line-height:.96;margin:12px 0 16px;color:#fff;max-width:11.6ch}
.cta-shell p{margin:0 0 24px;max-width:58ch;color:rgba(255,255,255,.76);font-size:1.06rem}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px}
.cta-side{position:relative;min-height:100%;padding:26px 26px 96px;border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid rgba(242,223,184,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 22px 56px rgba(0,0,0,.18);backdrop-filter:blur(10px)}
.cta-side-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.cta-kicker{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(242,223,184,.8)}
.cta-rating{font-size:1.1rem;font-weight:800;color:#fff}
.cta-stat-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.cta-stat-pill{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(242,223,184,.14);font-size:.88rem;font-weight:600;color:rgba(255,255,255,.92)}
.cta-points{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.cta-points li{position:relative;padding-left:18px;color:rgba(255,255,255,.84);line-height:1.55}
.cta-points li::before{content:'';position:absolute;left:0;top:.66em;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--accent-2),var(--accent));box-shadow:0 0 0 4px rgba(242,223,184,.08)}
.cta-orbit{position:absolute;right:18px;bottom:18px;width:128px;height:128px;pointer-events:none;opacity:.92}
.cta-orbit-core,.cta-orbit-ring{position:absolute;inset:0;border-radius:50%}
.cta-orbit-core{inset:33px;background:radial-gradient(circle, rgba(242,223,184,.92) 0%, rgba(215,179,111,.38) 28%, rgba(215,179,111,0) 70%);filter:blur(.2px);animation:ctaPulse 7.5s ease-in-out infinite}
.cta-orbit-ring{border:1px solid rgba(242,223,184,.16)}
.cta-orbit-ring-1{inset:12px;animation:spinSlow 20s linear infinite}
.cta-orbit-ring-2{inset:0;animation:spinSlowReverse 26s linear infinite}
.footer{padding:22px 0 44px}
.footer-row{display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);font-size:.95rem}
.footer-mark{width:150px;opacity:.95}

.visual-mode-switcher{position:fixed;left:18px;bottom:18px;z-index:78;pointer-events:none}
.visual-mode-shell{
  position:relative;
  isolation:isolate;
  pointer-events:auto;display:inline-flex;align-items:center;gap:6px;
  padding:8px;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.66));
  border:1px solid rgba(143,106,48,.16);
  box-shadow:0 28px 58px rgba(18,12,9,.16), inset 0 1px 0 rgba(255,255,255,.76), 0 0 0 1px rgba(255,255,255,.22);
  backdrop-filter:blur(18px) saturate(1.16);
  animation:visualFloat 7.2s ease-in-out infinite;
  transition:box-shadow .45s ease,border-color .35s ease,transform .35s ease, background .45s ease;
}
.visual-mode-shell::before{
  content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 28%, rgba(242,223,184,.18) 68%, transparent 100%);
  opacity:.92;
}
.visual-mode-shell::after{
  content:'';position:absolute;inset:auto 14px -10px 14px;height:24px;border-radius:999px;pointer-events:none;
  background:radial-gradient(circle, rgba(143,106,48,.18), transparent 72%);
  filter:blur(10px);opacity:.7;
}
.visual-mode-shell.is-changing{
  box-shadow:0 34px 74px rgba(18,12,9,.2), inset 0 1px 0 rgba(255,255,255,.84), 0 0 0 1px rgba(255,255,255,.26);
}
.visual-mode-switcher,.visual-mode-shell{transform:translateZ(0)}
.visual-mode-indicator{
  position:absolute;z-index:0;top:8px;left:0;width:0;height:calc(100% - 16px);border-radius:999px;
  background:linear-gradient(135deg,var(--accent-3) 0%, rgba(255,255,255,.98) 42%, rgba(242,223,184,.92) 100%);
  box-shadow:0 12px 26px rgba(143,106,48,.16), inset 0 1px 0 rgba(255,255,255,.94);
  transform:translate3d(var(--vm-indicator-left, 0px),0,0) scale(.96);
  opacity:0;
  transition:transform .5s cubic-bezier(.22,1,.36,1), width .5s cubic-bezier(.22,1,.36,1), opacity .25s ease, background .35s ease, box-shadow .35s ease;
}
.visual-mode-shell.has-ready-indicator .visual-mode-indicator{opacity:1}
.visual-mode-shell.is-changing .visual-mode-indicator{animation:indicatorPulse .72s ease}
.visual-mode-current{
  position:relative;z-index:1;display:flex;align-items:center;gap:10px;
  padding:4px 8px 4px 4px;margin-right:2px;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(246,239,227,.4));
  border:1px solid rgba(143,106,48,.08);
}
.visual-mode-chip{
  position:relative;display:grid;place-items:center;flex:0 0 auto;
  width:36px;height:36px;border-radius:50%;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(242,223,184,.76));
  color:var(--accent-deep);font-size:1rem;font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 10px 24px rgba(143,106,48,.16);
}
.visual-mode-chip::after{
  content:'';position:absolute;inset:-35%;background:conic-gradient(from 0deg, transparent 0 44%, rgba(255,255,255,.58) 49%, transparent 56% 100%);
  opacity:.65;animation:chipSweep 7.8s linear infinite;
}
.visual-mode-chip svg{width:18px;height:18px;position:relative;z-index:1}
.visual-mode-current-copy{display:grid;gap:1px;line-height:1}
.visual-mode-current-kicker{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(76,57,29,.62)}
.visual-mode-current-label{font-size:.82rem;font-weight:700;color:var(--accent-ink)}
.visual-mode-btn{
  position:relative;z-index:1;border:0;background:transparent;color:var(--ink);cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 13px;border-radius:999px;font-size:.86rem;font-weight:600;letter-spacing:.01em;
  transition:color .28s ease,transform .42s cubic-bezier(.22,1,.36,1), box-shadow .28s ease, opacity .28s ease, filter .28s ease;
  opacity:.78;
}
.visual-mode-btn::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at top, rgba(255,255,255,.34), transparent 58%);
  opacity:0;transition:opacity .28s ease;
}
.visual-mode-btn:hover{transform:translateY(-1px) scale(1.015);opacity:1}
.visual-mode-btn:hover::before{opacity:1}
.visual-mode-btn-icon{
  display:grid;place-items:center;flex:0 0 auto;position:relative;overflow:hidden;
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(246,238,221,.54));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 8px 16px rgba(143,106,48,.10);
}
.visual-mode-btn-icon::after{
  content:'';position:absolute;inset:-25%;background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.4), transparent 52%);
  opacity:0;transition:opacity .3s ease;
}
.visual-mode-btn:hover .visual-mode-btn-icon::after,.visual-mode-btn.is-active .visual-mode-btn-icon::after{opacity:1}
.visual-mode-btn-icon svg{width:15px;height:15px;transition:transform .55s cubic-bezier(.22,1,.36,1), filter .32s ease}
.visual-mode-btn-label{position:relative;top:.01em}
.visual-mode-btn.is-active{
  opacity:1;
  color:var(--accent-ink);
  filter:saturate(1.02);
}
.visual-mode-btn.is-active .visual-mode-btn-icon{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,224,185,.94));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.98), 0 12px 24px rgba(143,106,48,.16);
}
.visual-mode-shell[data-mode="auto"] .visual-mode-current,
.visual-mode-shell[data-mode="auto"] .visual-mode-btn[data-visual-mode="auto"]{animation:modeGlow 5.5s ease-in-out infinite}
.visual-mode-shell[data-mode="auto"] .visual-mode-chip svg,
.visual-mode-shell[data-mode="auto"] .visual-mode-btn[data-visual-mode="auto"] .visual-mode-btn-icon svg{animation:autoTwinkle 3.6s ease-in-out infinite}
.visual-mode-shell[data-mode="day"] .visual-mode-chip svg,
.visual-mode-shell[data-mode="day"] .visual-mode-btn[data-visual-mode="day"] .visual-mode-btn-icon svg{animation:sunSpin 10s linear infinite}
.visual-mode-shell[data-mode="night"] .visual-mode-chip svg,
.visual-mode-shell[data-mode="night"] .visual-mode-btn[data-visual-mode="night"] .visual-mode-btn-icon svg{animation:moonDrift 4.6s ease-in-out infinite}
body.theme-night .visual-mode-shell{
  background:linear-gradient(180deg,rgba(18,13,10,.9),rgba(13,10,8,.84));
  border-color:rgba(237,214,177,.12);
  box-shadow:0 26px 62px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px rgba(255,255,255,.02);
}
body.theme-night .visual-mode-shell::before{background:linear-gradient(135deg,rgba(255,255,255,.07),transparent 34%, rgba(244,227,191,.10) 78%, transparent 100%)}
body.theme-night .visual-mode-shell::after{background:radial-gradient(circle, rgba(193,153,88,.2), transparent 72%)}
body.theme-night .visual-mode-shell.is-changing{box-shadow:0 32px 74px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 1px rgba(255,255,255,.03)}
body.theme-night .visual-mode-indicator{
  background:linear-gradient(135deg,rgba(244,227,191,.18),rgba(195,154,89,.26));
  box-shadow:0 12px 24px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07);
}
body.theme-night .visual-mode-current{
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(244,227,191,.06));
  border-color:rgba(237,214,177,.08);
}
body.theme-night .visual-mode-chip{
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(244,227,191,.09));
  color:var(--accent-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 12px 24px rgba(0,0,0,.28);
}
body.theme-night .visual-mode-chip::after{background:conic-gradient(from 0deg, transparent 0 44%, rgba(255,255,255,.16) 49%, transparent 56% 100%)}
body.theme-night .visual-mode-current-kicker{color:rgba(244,227,191,.54)}
body.theme-night .visual-mode-current-label{color:#f8edd8}
body.theme-night .visual-mode-btn{color:var(--ink);opacity:.8}
body.theme-night .visual-mode-btn-icon{
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(244,227,191,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 8px 18px rgba(0,0,0,.2);
}
body.theme-night .visual-mode-btn.is-active{color:#fdf7ed}
body.theme-night .visual-mode-btn.is-active .visual-mode-btn-icon{
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(244,227,191,.16));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 10px 22px rgba(0,0,0,.26);
}
@keyframes visualFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes indicatorPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}
@keyframes chipSweep{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes modeGlow{0%,100%{box-shadow:0 0 0 0 rgba(215,179,111,0)}50%{box-shadow:0 0 0 8px rgba(215,179,111,.08)}}
@keyframes autoTwinkle{0%,100%{transform:scale(1) rotate(0deg)}35%{transform:scale(1.08) rotate(-6deg)}65%{transform:scale(.96) rotate(5deg)}}
@keyframes sunSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes moonDrift{0%,100%{transform:translateX(0) translateY(0) rotate(0deg)}50%{transform:translateX(1px) translateY(-1px) rotate(-8deg)}}
@media (prefers-reduced-motion:reduce){
  .visual-mode-shell,.visual-mode-chip::after,.visual-mode-shell[data-mode="auto"] .visual-mode-current,
  .visual-mode-shell[data-mode="auto"] .visual-mode-btn[data-visual-mode="auto"],
  .visual-mode-shell[data-mode="auto"] .visual-mode-chip svg,
  .visual-mode-shell[data-mode="auto"] .visual-mode-btn[data-visual-mode="auto"] .visual-mode-btn-icon svg,
  .visual-mode-shell[data-mode="day"] .visual-mode-chip svg,
  .visual-mode-shell[data-mode="day"] .visual-mode-btn[data-visual-mode="day"] .visual-mode-btn-icon svg,
  .visual-mode-shell[data-mode="night"] .visual-mode-chip svg,
  .visual-mode-shell[data-mode="night"] .visual-mode-btn[data-visual-mode="night"] .visual-mode-btn-icon svg,
  .visual-mode-shell.is-changing .visual-mode-indicator{animation:none !important}
}
@media (max-width:920px){
  .visual-mode-switcher{left:14px;bottom:92px}
}
@media (max-width:720px){
  .visual-mode-switcher{left:12px;right:12px;bottom:96px}
  .visual-mode-shell{width:max-content;max-width:100%;padding:7px;gap:4px}
  .visual-mode-current{padding:4px 8px 4px 4px}
  .visual-mode-current-kicker{display:none}
  .visual-mode-chip{width:32px;height:32px}
  .visual-mode-current-label{font-size:.78rem}
  .visual-mode-btn{padding:8px 10px;font-size:.8rem;gap:6px}
  .visual-mode-btn-icon{width:26px;height:26px}
  .visual-mode-indicator{top:7px;height:calc(100% - 14px)}
}
@media (max-width:460px){
  .visual-mode-current-copy{display:none}
  .visual-mode-shell{justify-content:space-between;width:100%}
  .visual-mode-btn{padding:8px 9px}
  .visual-mode-btn-label{font-size:.76rem}
}

.sticky-cta{position:fixed;left:16px;right:16px;bottom:16px;z-index:70;display:none}
.sticky-cta .btn{width:100%;box-shadow:0 24px 44px rgba(17,12,10,.24)}


.lightbox-stage{display:grid;justify-items:center;gap:14px}

.lightbox-caption{max-width:min(82vw,980px);text-align:center;color:rgba(255,255,255,.82)}
.lightbox-close,.lightbox-nav{border:none;background:rgba(255,255,255,.10);color:#fff;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(10px)}
.lightbox-close{position:absolute;top:18px;right:18px;font-size:2rem;line-height:1}
.lightbox-nav{font-size:2rem;line-height:1}

.reveal-delay-1{transition-delay:.12s}
.reveal-delay-2{transition-delay:.24s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal-delay-1,.reveal-delay-2,.photo-card img,.milan-card img,.location-visual img,.btn,.site-header,.hero::before,.hero-visual img{transition:none!important}
}
@media (max-width:1180px){
  .hero-shell,.social-bar,.editorial-grid,.review-shell,.location-shell,.milan-grid,.milan-grid-dual{grid-template-columns:1fr}
  .gallery-strip,.review-voices,.review-voices-refined,.reviews-more-grid{grid-template-columns:repeat(2,1fr)}
  .photo-large{min-height:620px}
  .stack-col{grid-template-columns:1fr 1fr;grid-template-rows:none}
}
@media (max-width:920px){
  .nav-links{display:none}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center}
  .mobile-nav.is-open{display:flex}
  .mobile-nav .btn{width:100%}
  .hero-shell{grid-template-columns:1fr;align-items:start;min-height:auto;padding:44px 0 28px}
  .hero-copy{padding-top:48px}
  .hero-panel{justify-self:stretch;width:100%}
  .mini-kpi,.social-side,.review-metrics,.location-list{grid-template-columns:repeat(2,1fr)}
  .sticky-cta{display:block}
}
@media (max-width:720px){
  .section{padding:84px 0}
  .section-tight{padding:64px 0}
  .nav{min-height:76px}
  .brand-subtitle{display:none}
  .hero-copy h1{font-size:clamp(2.8rem,12vw,4.3rem)}
  .hero-copy .lead{font-size:1.02rem}
  .hero-actions,.cta-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn,.cta-actions .btn{width:100%}
  .cta-grid{grid-template-columns:1fr}
  .cta-side{padding:22px 22px 86px}
  .cta-orbit{width:104px;height:104px}
  .gallery-strip,.review-voices,.review-voices-refined,.reviews-more-grid,.milan-grid,.milan-grid-dual,.location-list,.review-metrics,.review-metrics-compact,.social-side,.stack-col{grid-template-columns:1fr}
  .photo-large,.gallery-strip .photo-card,.milan-card,.milan-card-tall,.milan-card-wide,.milan-card-portrait,.location-visual{min-height:320px}
  .social-main{grid-template-columns:1fr;justify-items:start}
  .section-mini-title{font-size:1.8rem}
  .review-summary h2,.quote-text,.location-copy h2,.cta-shell h2{font-size:2rem}
  .review-stage,.review-stage-refined,.location-copy,.cta-shell,.social-main,.social-side{padding:24px}
  .lightbox{grid-template-columns:1fr;padding:18px}
  .lightbox-nav{display:none}
  .footer-row{flex-direction:column;align-items:flex-start}
}


.hero-card,.photo-card,.milan-card,.location-visual,.proof-card,.metric-card{position:relative;transform-style:preserve-3d;will-change:transform}
.hero-card::before,.photo-card::before,.milan-card::before,.location-visual::before,.proof-card::before,.metric-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(480px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.18), transparent 45%);
  opacity:0;transition:opacity .35s ease;
}
.hero-card:hover::before,.photo-card:hover::before,.milan-card:hover::before,.location-visual:hover::before,.proof-card:hover::before,.metric-card:hover::before{opacity:1}
.detail-bento{display:grid;grid-template-columns:repeat(12,1fr);gap:22px;margin-top:22px}
.detail-card{grid-column:span 4;min-height:420px}
.detail-card-wide{grid-column:1 / -1;min-height:360px}
.feature-ribbon{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}
.feature-ribbon article{position:relative;padding:18px 18px 16px;border-radius:22px;background:linear-gradient(180deg,#fff,#f8f1e5);border:1px solid rgba(82,62,33,.08);box-shadow:var(--shadow-soft)}
.feature-ribbon strong{display:block;font-size:1rem;margin-bottom:6px}
.feature-ribbon span{display:block;color:var(--muted);font-size:.95rem;line-height:1.55}
.section-soft{background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,0));border-top:1px solid rgba(82,62,33,.05);border-bottom:1px solid rgba(82,62,33,.05)}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.faq-card{padding:0 22px;border-radius:26px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.faq-card[open]{box-shadow:0 22px 48px rgba(19,14,11,.08);border-color:rgba(143,106,48,.16)}
.faq-card summary{list-style:none;cursor:pointer;padding:22px 0;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:14px}
.faq-card summary::-webkit-details-marker{display:none}
.faq-card summary::after{content:'+';width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fbf2df;color:var(--accent-deep);font-size:1rem;flex:none;transition:transform .28s ease, background .28s ease}
.faq-card[open] summary::after{transform:rotate(45deg);background:#f8ecd2}
.faq-card p{margin:0 0 22px;color:var(--muted);font-size:.98rem;line-height:1.65}
@keyframes floatCard{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
.hero-panel .hero-card:nth-child(2){animation:floatCard 6.5s ease-in-out infinite}
@media (max-width:1180px){
  .feature-ribbon{grid-template-columns:repeat(2,1fr)}
  .detail-bento{grid-template-columns:repeat(2,1fr)}
  .detail-card,.detail-card-wide{grid-column:auto;min-height:360px}
  .faq-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .feature-ribbon,.detail-bento{grid-template-columns:1fr}
  .detail-card,.detail-card-wide{min-height:320px}
  .feature-ribbon article,.faq-card{padding-left:18px;padding-right:18px}
}


body:not(.reduce-motion) .detail-card img{transform-origin:center center}
.detail-card:hover img{transform:scale(1.035)}


.btn-tertiary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:14px 20px;border-radius:999px;
  border:1px solid var(--line);background:linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,.36));
  color:var(--ink);font-weight:600;cursor:pointer;box-shadow:var(--shadow-soft)
}
.btn-tertiary:hover{transform:translateY(-2px);box-shadow:0 20px 40px rgba(20,14,11,.12)}
body.theme-night .btn-tertiary{background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));border-color:rgba(237,214,177,.16);color:var(--ink)}

.section-map{padding-top:40px;padding-bottom:118px}
.map-shell{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;align-items:stretch}
.map-copy,.map-frame-shell{position:relative;border-radius:30px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}
.map-copy{padding:34px;background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(248,240,227,.76))}
.map-copy::after,.map-frame-shell::after{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;border:1px solid rgba(242,223,184,.08);background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 30%, rgba(242,223,184,.08) 70%, transparent 100%);opacity:.7}
.map-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.map-actions .btn,.map-fallback-actions-inline .btn{min-width:0}
.map-points{display:grid;gap:12px;margin-top:24px}
.map-point{padding:16px 18px;border-radius:20px;background:rgba(255,255,255,.54);border:1px solid rgba(82,62,33,.08);box-shadow:var(--shadow-soft)}
.map-point strong{display:block;margin-bottom:6px;font-size:1rem}
.map-point span,.map-note{color:var(--muted)}
.map-note{margin:20px 0 0;font-size:.96rem}

.map-actions .btn-secondary,
.map-fallback-actions-inline .btn-secondary{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,239,227,.92));
  color:var(--accent-deep);
  border:1px solid rgba(143,106,48,.18);
  box-shadow:0 12px 28px rgba(20,14,11,.08), inset 0 1px 0 rgba(255,255,255,.75);
  backdrop-filter:blur(10px);
}
.map-actions .btn-secondary:hover,
.map-fallback-actions-inline .btn-secondary:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.99), rgba(243,232,213,.96));
  border-color:rgba(143,106,48,.28);
  box-shadow:0 18px 38px rgba(20,14,11,.12), inset 0 1px 0 rgba(255,255,255,.9);
}
.map-actions .btn-secondary::after,
.map-fallback-actions-inline .btn-secondary::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.06) 35%, rgba(242,223,184,.22) 50%, rgba(255,255,255,.06) 65%, transparent 100%);
  transform:translateX(-120%);
  transition:transform .9s ease;
}
.map-actions .btn-secondary:hover::after,
.map-fallback-actions-inline .btn-secondary:hover::after{
  transform:translateX(120%);
}
body.theme-night .map-actions .btn-secondary,
body.theme-night .map-fallback-actions-inline .btn-secondary{
  background:rgba(255,255,255,.06);
  color:#fff;
  border-color:rgba(237,214,177,.18);
  box-shadow:none;
}
body.theme-night .map-actions .btn-secondary:hover,
body.theme-night .map-fallback-actions-inline .btn-secondary:hover{
  box-shadow:0 14px 28px rgba(0,0,0,.22);
}
.map-points,.map-note{display:none !important;}
.map-stage{min-width:0}
.map-frame-shell{min-height:620px;background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,236,223,.86));isolation:isolate}
.map-frame-topline{position:absolute;top:16px;left:16px;right:16px;z-index:3;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(82,62,33,.08);backdrop-filter:blur(12px);box-shadow:0 16px 34px rgba(20,14,11,.10);font-size:.94rem}
.map-pin-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(180deg,var(--accent-2),var(--accent));box-shadow:0 0 0 6px rgba(215,179,111,.12), 0 0 18px rgba(215,179,111,.24)}
.map-inline-link{margin-left:auto;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.74);border:1px solid rgba(82,62,33,.08);font-weight:600;transition:transform .25s ease, box-shadow .25s ease, background .35s ease}
.map-inline-link:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(20,14,11,.10)}
.map-frame{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(1.02) contrast(1.02)}
.map-frame-shell.has-fallback-note{box-shadow:0 28px 70px rgba(20,14,11,.14)}
.map-frame-shell.has-fallback-note::before{opacity:.95}
.map-fallback-inline{margin-top:16px;position:relative;z-index:2}
.map-fallback-card-inline{padding:18px 20px;border-radius:24px;background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(249,241,230,.88));border:1px solid rgba(82,62,33,.10);box-shadow:0 18px 40px rgba(20,14,11,.10)}
.map-fallback-card-inline p{margin:8px 0 0;color:var(--muted)}
.map-fallback-actions-inline{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.map-shell .reveal{transform:translateY(24px);opacity:0}
.map-shell .reveal.is-visible{transform:none;opacity:1}
body.theme-night .map-copy{background:linear-gradient(180deg, rgba(23,17,13,.92), rgba(17,13,10,.92));border-color:rgba(237,214,177,.10)}
body.theme-night .map-frame-shell{background:linear-gradient(180deg, rgba(23,17,13,.96), rgba(12,9,7,.98));border-color:rgba(237,214,177,.12)}
body.theme-night .map-frame-topline{background:rgba(18,13,10,.78);border-color:rgba(237,214,177,.12);box-shadow:0 20px 38px rgba(0,0,0,.24)}
body.theme-night .map-point,body.theme-night .map-inline-link{background:rgba(255,255,255,.05);border-color:rgba(237,214,177,.10)}
body.theme-night .map-fallback-card-inline{background:linear-gradient(180deg, rgba(20,15,11,.94), rgba(14,10,8,.92));border-color:rgba(237,214,177,.10);box-shadow:0 18px 46px rgba(0,0,0,.28)}
body.theme-night .map-fallback-card-inline p,body.theme-night .map-note,body.theme-night .map-point span{color:var(--muted)}
body.theme-night .map-inline-link:hover{box-shadow:0 14px 28px rgba(0,0,0,.24)}
@keyframes mapGlow{0%,100%{box-shadow:0 0 0 0 rgba(215,179,111,0)}50%{box-shadow:0 0 0 12px rgba(215,179,111,.08)}}
.map-pin-dot{animation:mapGlow 3.8s ease-in-out infinite}
@media (max-width:1180px){
  .map-shell{grid-template-columns:1fr}
  .map-frame-shell{min-height:560px}
}
@media (max-width:720px){
  .section-map{padding-top:20px;padding-bottom:98px}
  .map-copy{padding:24px}
  .map-actions,.map-fallback-actions-inline{flex-direction:column;align-items:stretch}
  .map-frame-shell{min-height:460px}
  .map-frame-topline{left:12px;right:12px;top:12px;gap:10px;padding:10px 12px;font-size:.86rem}
  .map-inline-link{padding:7px 10px}
}


.map-address-card{position:relative;display:grid;gap:8px;margin-top:18px;padding:18px 20px;border-radius:22px;background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(250,244,235,.64));border:1px solid rgba(82,62,33,.08);box-shadow:0 14px 34px rgba(20,14,11,.08);overflow:hidden}
.map-address-card::before{content:'';position:absolute;inset:-40% auto auto -10%;width:180px;height:180px;background:radial-gradient(circle, rgba(215,179,111,.20), transparent 68%);pointer-events:none;animation:mapAura 6.2s ease-in-out infinite}
.map-address-label{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}
.map-address-value{font-size:1.05rem;line-height:1.45;font-family:var(--font-serif)}
.map-address-note{color:var(--muted);font-size:.94rem}
.map-copy .btn-tertiary{position:relative;overflow:hidden}
.map-copy .btn-tertiary::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.06) 35%, rgba(242,223,184,.22) 50%, rgba(255,255,255,.06) 65%, transparent 100%);transform:translateX(-120%);transition:transform .9s ease}
.map-copy .btn-tertiary:hover::after{transform:translateX(120%)}
.map-frame-shell{transform-style:preserve-3d}
.map-frame-shell:hover{box-shadow:0 28px 70px rgba(20,14,11,.18)}
.map-frame-shell::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;background:radial-gradient(circle at 20% 18%, rgba(242,223,184,.14), transparent 32%), radial-gradient(circle at 85% 85%, rgba(215,179,111,.10), transparent 26%)}
.copy-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%, 20px);z-index:120;padding:12px 18px;border-radius:999px;background:rgba(14,11,9,.92);color:#fff;border:1px solid rgba(242,223,184,.16);box-shadow:0 20px 60px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .35s ease, transform .35s ease, background .45s ease, border-color .45s ease}
.copy-toast.is-visible{opacity:1;transform:translate(-50%, 0)}
body.theme-night .map-address-card{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.03));border-color:rgba(237,214,177,.10);box-shadow:0 18px 40px rgba(0,0,0,.24)}
body.theme-night .copy-toast{background:rgba(247,240,228,.95);color:#15110d;border-color:rgba(215,179,111,.18);box-shadow:0 18px 54px rgba(0,0,0,.36)}
@keyframes mapAura{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.7}50%{transform:translate3d(16px,12px,0) scale(1.08);opacity:1}}
@media (max-width:720px){
  .map-address-card{padding:16px 16px 17px}
  .map-address-value{font-size:.98rem}
  .copy-toast{left:12px;right:12px;bottom:146px;transform:translateY(20px);text-align:center}
  .copy-toast.is-visible{transform:translateY(0)}
}


/* v13 polish */
.map-copy,.map-frame-shell{transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1), border-color .35s ease, background .45s ease}
.map-copy:hover,.map-frame-shell:hover{transform:translateY(-3px)}
.map-copy:hover{box-shadow:0 30px 72px rgba(20,14,11,.15)}
.map-frame-shell:hover .map-frame{transform:scale(1.01);transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.map-frame{transition:transform 1.2s cubic-bezier(.22,1,.36,1), filter .45s ease}
.map-actions .btn,.map-fallback-actions-inline .btn,.map-inline-link{position:relative;overflow:hidden}
.map-actions .btn::before,.map-fallback-actions-inline .btn::before,.map-inline-link::before{content:'';position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.06) 32%, rgba(242,223,184,.18) 50%, rgba(255,255,255,.06) 68%, transparent 100%);transform:translateX(-135%);transition:transform .95s ease}
.map-actions .btn:hover::before,.map-fallback-actions-inline .btn:hover::before,.map-inline-link:hover::before{transform:translateX(135%)}
.map-address-card{backdrop-filter:blur(12px)}
.map-address-value{letter-spacing:.01em}
.map-fallback-card-inline{backdrop-filter:blur(14px)}
body.theme-night .map-copy:hover{box-shadow:0 34px 80px rgba(0,0,0,.36)}
body.theme-night .map-frame-shell:hover{box-shadow:0 36px 86px rgba(0,0,0,.44)}
@media (max-width:720px){
  .map-copy:hover,.map-frame-shell:hover{transform:none}
  .map-frame-topline{backdrop-filter:blur(10px)}
  .map-address-note{font-size:.9rem}
}



.section-contact{padding-top:16px;padding-bottom:64px}
.contact-shell{position:relative;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:clamp(28px,4vw,56px);align-items:stretch;padding:42px;border-radius:36px;border:1px solid var(--line);background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(250,244,233,.88) 48%, rgba(243,234,217,.84) 100%);box-shadow:0 34px 84px rgba(20,14,11,.13);overflow:hidden;isolation:isolate}
.contact-shell::before{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;border:1px solid rgba(255,255,255,.34);background:linear-gradient(135deg, rgba(255,255,255,.28), transparent 28%, rgba(242,223,184,.18) 72%, transparent 100%)}
.contact-shell::after{content:'';position:absolute;inset:auto -10% -42% auto;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle, rgba(215,179,111,.18), transparent 62%);pointer-events:none;filter:blur(12px)}
.contact-copy,.contact-actions,.contact-side{position:relative;z-index:1}
.contact-copy{display:flex;flex-direction:column;justify-content:center;padding:8px 0 8px 2px}
.contact-copy h2{margin-bottom:16px;max-width:13ch}
.contact-copy p{max-width:58ch}
.contact-meta{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 30px}
.contact-meta span{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.62);border:1px solid rgba(143,106,48,.09);box-shadow:0 10px 24px rgba(20,14,11,.05);font-size:.93rem;font-weight:600;color:#52483e}
.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.btn-contact{position:relative;min-height:62px;padding-inline:24px 30px;overflow:hidden;box-shadow:0 18px 46px rgba(20,14,11,.16)}
.btn-contact::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.06) 34%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.06) 66%, transparent 100%);transform:translateX(-125%);transition:transform 1s ease}
.btn-contact:hover::after{transform:translateX(125%)}
.btn-contact-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform-origin:center center;transition:transform .45s cubic-bezier(.22,1,.36,1), filter .45s ease}
.btn-contact-icon svg{width:20px;height:20px}
.contact-mail{position:relative;display:inline-flex;align-items:center;gap:10px;padding:13px 18px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(82,62,33,.08);box-shadow:0 12px 30px rgba(20,14,11,.08);font-weight:700;letter-spacing:.01em;overflow:hidden;transition:transform .3s ease, box-shadow .35s ease, background .35s ease, border-color .35s ease}
.contact-mail::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.08) 36%, rgba(242,223,184,.26) 50%, rgba(255,255,255,.08) 64%, transparent 100%);transform:translateX(-130%);transition:transform .95s ease}
.contact-mail:hover::before{transform:translateX(130%)}
.contact-mail:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(20,14,11,.12)}
.contact-note{margin:0;color:var(--muted);font-size:.94rem}
.contact-side{min-height:360px;display:grid;place-items:center;border-radius:32px;padding:28px;background:radial-gradient(circle at 50% 34%, rgba(255,255,255,.58), rgba(255,255,255,.14) 22%, rgba(242,223,184,.16) 42%, rgba(255,255,255,.05) 60%, transparent 74%), linear-gradient(160deg, rgba(255,255,255,.52), rgba(247,238,224,.18) 38%, rgba(226,202,156,.10) 100%);border:1px solid rgba(143,106,48,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 18px 44px rgba(20,14,11,.08);overflow:hidden}
.contact-side::before{content:'';position:absolute;inset:-35% auto auto -20%;width:72%;height:220%;background:linear-gradient(180deg, transparent 0%, rgba(255,255,255,.06) 16%, rgba(255,255,255,.18) 50%, rgba(255,255,255,.04) 84%, transparent 100%);transform:rotate(18deg);opacity:.7;animation:contactSweep 15s ease-in-out infinite}
.contact-side::after{content:'';position:absolute;inset:auto -12% -18% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle, rgba(215,179,111,.18), transparent 65%);filter:blur(10px);opacity:.72}
.contact-aura{position:absolute;inset:50% auto auto 50%;width:258px;height:258px;transform:translate(-50%,-50%)}
.contact-aura-ring,.contact-aura-core{position:absolute;inset:0;border-radius:50%}
.contact-aura-ring{border:1px solid rgba(143,106,48,.14);background:radial-gradient(circle, rgba(255,255,255,.12), transparent 66%)}
.contact-aura-ring-one{animation:contactOrbit 11s linear infinite}
.contact-aura-ring-two{inset:18px;border-color:rgba(215,179,111,.22);animation:contactOrbitReverse 13s linear infinite}
.contact-aura-ring-three{inset:38px;border-color:rgba(143,106,48,.12);animation:contactOrbit 16s linear infinite reverse}
.contact-aura-core{inset:76px;background:radial-gradient(circle, rgba(215,179,111,.24), rgba(215,179,111,.08) 46%, transparent 76%);box-shadow:0 0 0 18px rgba(255,255,255,.2), 0 0 42px rgba(215,179,111,.18);animation:contactPulse 5.2s ease-in-out infinite}
.contact-mark-wrap{position:relative;z-index:2;display:grid;place-items:center;width:118px;height:118px;border-radius:32px;background:rgba(255,255,255,.52);backdrop-filter:blur(18px) saturate(1.08);border:1px solid rgba(255,255,255,.48);box-shadow:0 24px 58px rgba(20,14,11,.14);animation:softFloat 8s ease-in-out infinite}
.contact-mark{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(20,14,11,.10))}
.contact-side-card{position:absolute;left:24px;right:24px;bottom:24px;z-index:3;padding:18px 18px 16px;border-radius:24px;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(1.04);border:1px solid rgba(255,255,255,.42);box-shadow:0 18px 44px rgba(20,14,11,.10);transition:transform .42s cubic-bezier(.22,1,.36,1), box-shadow .42s ease, border-color .42s ease}
.contact-side-label{display:block;margin-bottom:8px;font-size:.76rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.contact-side-mail{display:block;font-size:1.02rem;font-weight:700;line-height:1.3;letter-spacing:.01em}
.contact-side-note{display:block;margin-top:8px;color:var(--muted);font-size:.92rem;line-height:1.55}
.contact-shell.is-mail-activated{animation:contactWake .95s cubic-bezier(.22,1,.36,1)}
.contact-shell.is-mail-activated .btn-contact{transform:translateY(-1px) scale(1.018);box-shadow:0 24px 54px rgba(20,14,11,.20)}
.contact-shell.is-mail-activated .btn-contact::after{transform:translateX(138%)}
.contact-shell.is-mail-activated .btn-contact-icon{transform:translateX(2px) rotate(-8deg) scale(1.08);filter:drop-shadow(0 0 14px rgba(242,223,184,.45))}
.contact-shell.is-mail-activated .contact-mail{transform:translateY(-2px);box-shadow:0 20px 42px rgba(20,14,11,.14);border-color:rgba(143,106,48,.22)}
.contact-shell.is-mail-activated .contact-mark-wrap{transform:translateY(-2px) scale(1.045);box-shadow:0 28px 68px rgba(20,14,11,.20)}
.contact-shell.is-mail-activated .contact-side-card{transform:translateY(-4px);border-color:rgba(143,106,48,.20);box-shadow:0 24px 52px rgba(20,14,11,.14)}
body.theme-night .section-contact{padding-top:18px}
body.theme-night .contact-shell{background:linear-gradient(135deg, rgba(23,17,13,.96), rgba(14,10,8,.92));border-color:rgba(237,214,177,.10);box-shadow:0 34px 86px rgba(0,0,0,.34)}
body.theme-night .contact-shell::before{border-color:rgba(237,214,177,.06);background:linear-gradient(135deg, rgba(255,255,255,.05), transparent 28%, rgba(242,223,184,.08) 72%, transparent 100%)}
body.theme-night .contact-shell::after{background:radial-gradient(circle, rgba(215,179,111,.14), transparent 62%)}
body.theme-night .contact-meta span{background:rgba(255,255,255,.05);border-color:rgba(237,214,177,.12);box-shadow:0 12px 26px rgba(0,0,0,.16);color:#e7ddd0}
body.theme-night .contact-mail{background:rgba(255,255,255,.05);border-color:rgba(237,214,177,.12);box-shadow:0 16px 36px rgba(0,0,0,.22)}
body.theme-night .contact-mail:hover{box-shadow:0 22px 42px rgba(0,0,0,.30)}
body.theme-night .contact-note{color:var(--muted)}
body.theme-night .contact-side{background:radial-gradient(circle at 50% 34%, rgba(255,255,255,.10), rgba(255,255,255,.02) 22%, rgba(242,223,184,.09) 42%, rgba(255,255,255,.01) 60%, transparent 74%), linear-gradient(160deg, rgba(255,255,255,.04), rgba(24,18,14,.26) 38%, rgba(215,179,111,.06) 100%);border-color:rgba(237,214,177,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 18px 44px rgba(0,0,0,.22)}
body.theme-night .contact-side::before{background:linear-gradient(180deg, transparent 0%, rgba(255,255,255,.02) 16%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.02) 84%, transparent 100%)}
body.theme-night .contact-aura-ring{border-color:rgba(237,214,177,.12);background:radial-gradient(circle, rgba(255,255,255,.04), transparent 66%)}
body.theme-night .contact-aura-ring-two{border-color:rgba(215,179,111,.22)}
body.theme-night .contact-aura-ring-three{border-color:rgba(237,214,177,.08)}
body.theme-night .contact-aura-core{box-shadow:0 0 0 18px rgba(255,255,255,.03), 0 0 40px rgba(215,179,111,.18)}
body.theme-night .contact-mark-wrap{background:rgba(255,255,255,.06);border-color:rgba(237,214,177,.16);box-shadow:0 24px 58px rgba(0,0,0,.28)}
body.theme-night .contact-side-card{background:rgba(18,13,10,.64);border-color:rgba(237,214,177,.10);box-shadow:0 20px 46px rgba(0,0,0,.28)}
body.theme-night .contact-side-note{color:#c7bba9}
@keyframes contactOrbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes contactOrbitReverse{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
@keyframes contactPulse{0%,100%{transform:scale(1);opacity:.88}50%{transform:scale(1.07);opacity:1}}
@keyframes contactWake{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-4px) scale(1.006)}100%{transform:translateY(0) scale(1)}}
@keyframes contactSweep{0%,100%{transform:translateX(0) rotate(18deg);opacity:.42}50%{transform:translateX(32px) rotate(18deg);opacity:.86}}
@media (max-width:980px){
  .contact-shell{grid-template-columns:1fr;gap:26px}
  .contact-copy h2{max-width:none}
  .contact-side{min-height:300px}
}
@media (max-width:720px){
  .section-contact{padding-top:6px;padding-bottom:42px}
  .contact-shell{padding:24px 20px;border-radius:28px}
  .contact-copy{padding:0}
  .contact-meta{gap:8px;margin:18px 0 24px}
  .contact-actions{align-items:stretch}
  .btn-contact,.contact-mail{width:100%;justify-content:center;text-align:center}
  .contact-note{text-align:center}
  .contact-side{min-height:268px;padding:22px;border-radius:26px}
  .contact-aura{width:210px;height:210px}
  .contact-mark-wrap{width:94px;height:94px;border-radius:26px}
  .contact-mark{width:58px;height:58px}
  .contact-side-card{left:16px;right:16px;bottom:16px;padding:15px 15px 14px;border-radius:20px}
  .contact-side-mail{font-size:.96rem}
}


/* v15 final art direction polish */
html{scroll-padding-top:96px}
section[id]{scroll-margin-top:96px}
.container{width:min(calc(100% - 36px),var(--max))}
.section{padding:clamp(86px,8vw,126px) 0}
.section-tight{padding:clamp(54px,6vw,82px) 0}
.section-head{gap:16px;margin-bottom:40px;max-width:740px}
.section-head h2,.review-summary h2,.location-copy h2,.cta-shell h2,.contact-copy h2{max-width:12ch;text-wrap:balance}
.section-head p,.contact-copy p,.map-copy p,.location-copy p{max-width:60ch}
.hero-shell{min-height:calc(100vh - 82px);padding:84px 0 62px;gap:52px;align-items:center;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr)}
.hero-copy{padding:20px 0 28px;max-width:680px}
.hero-copy h1{max-width:9.4ch;letter-spacing:-.045em}
.hero-copy .lead{max-width:57ch;color:rgba(255,255,255,.84)}
.hero-actions{margin:34px 0 24px}
.hero-badges{gap:12px;max-width:760px}
.badge{padding:10px 15px;font-size:.9rem}
.hero-panel{gap:20px;width:min(100%,620px)}
.hero-card{border-radius:32px}
.hero-visual img{aspect-ratio:16/10.4}
.social-bar,.editorial-grid,.review-shell,.location-shell,.map-shell,.contact-shell{gap:32px}
.photo-card figcaption,.milan-card figcaption{padding:17px 17px 15px}
.photo-card figcaption strong,.milan-card figcaption strong{font-size:1.12rem;line-height:1.12}
.review-stage,.review-stage-refined,.location-copy,.map-copy,.contact-shell{backdrop-filter:blur(14px) saturate(1.03)}
.review-voices{margin-top:20px}
.map-frame-shell{min-height:640px}
.map-copy{padding:38px}
.map-actions{gap:14px}
.contact-shell{padding:36px}
.contact-actions{gap:14px}
.contact-copy h2{margin-bottom:14px}
.footer{padding-top:6px}
.reveal{transition-duration:1s}
.photo-card:hover,.milan-card:hover,.map-copy:hover,.contact-side:hover,.contact-side-card:hover{transform:translateY(-4px)}
body.theme-night .photo-card:hover,body.theme-night .milan-card:hover,body.theme-night .map-copy:hover,body.theme-night .contact-side:hover,body.theme-night .contact-side-card:hover{transform:translateY(-4px)}
@media (max-width:1180px){
  .milan-layout{grid-template-columns:1fr;gap:26px}
  .milan-head{position:relative;top:auto}
}
@media (max-width:1100px){
  .hero-shell{grid-template-columns:1fr;align-items:start;min-height:auto;padding:58px 0 34px}
  .hero-copy{max-width:700px}
  .hero-panel{justify-self:start;max-width:700px;width:100%}
}
@media (max-width:720px){
  .container{width:min(calc(100% - 24px),var(--max))}
  .section{padding:74px 0}
  .section-tight{padding:52px 0}
  .hero-shell{gap:26px;padding:40px 0 22px}
  .hero-copy{padding-top:34px;padding-bottom:6px}
  .hero-copy h1{max-width:none;font-size:clamp(2.62rem,11vw,4.2rem);line-height:.95}
  .hero-copy .lead{font-size:1rem;line-height:1.72}
  .hero-badges{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  .badge{justify-content:center;text-align:center;min-height:44px}
  .hero-panel{gap:14px}
  .hero-card{padding:18px}
  .section-head{margin-bottom:26px;max-width:none}
  .section-head h2,.review-summary h2,.location-copy h2,.cta-shell h2,.contact-copy h2{max-width:none}
  .review-shell,.location-shell,.map-shell,.contact-shell{gap:22px}
  .map-copy{padding:24px}
  .map-frame-shell{min-height:430px}
  .contact-shell{padding:24px 20px}
  .contact-copy{padding:0}
  .contact-actions .btn,.map-actions .btn{width:100%}
}
@media (max-width:420px){
  .hero-badges{grid-template-columns:1fr}
  .badge{min-height:42px}
  .theme-status{width:100%;justify-content:center}
}


/* v19 fix: quick answers section balanced on wide desktop */
.faq-shell{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(28px,4vw,54px);align-items:start}
.faq-shell .section-head{margin-bottom:0;max-width:none}
.faq-shell .section-head h2{max-width:10ch}
.faq-shell .section-head p{max-width:42ch}
.faq-shell .faq-grid{grid-template-columns:1fr;align-self:start}
.faq-shell .faq-card{min-height:auto}
@media (max-width:1180px){
  .faq-shell{display:block}
  .faq-shell .section-head{margin-bottom:34px}
}


/* v20 fix: apartment intro balanced on wide desktop */
.apartment-shell{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(28px,4vw,54px);align-items:start;margin-bottom:22px}
.apartment-shell .section-head{margin-bottom:0;max-width:none;padding-top:4px}
.apartment-shell .section-head h2{max-width:14ch}
.apartment-shell .section-head p{max-width:46ch}
.apartment-shell .editorial-grid{margin-top:0}
@media (max-width:1180px){
  .apartment-shell{display:block;margin-bottom:0}
  .apartment-shell .section-head{margin-bottom:34px}
  .apartment-shell .section-head h2,.apartment-shell .section-head p{max-width:none}
}


/* v22 definitive publication polish */
.nav-links a:not(.btn), .mobile-nav a:not(.btn){transition:color .28s ease, opacity .28s ease, transform .28s ease}
.nav-links a.is-current:not(.btn), .mobile-nav a.is-current:not(.btn){color:var(--accent-deep)}
.nav-links a.is-current:not(.btn)::after, .mobile-nav a.is-current:not(.btn)::after{transform:scaleX(1);opacity:.7}
.mobile-nav a:not(.btn){position:relative}
.mobile-nav a:not(.btn)::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;opacity:.28;transition:transform .25s ease}
.mobile-nav a.is-current:not(.btn)::after{transform:scaleX(1)}

.hero-card,.photo-card,.milan-card,.location-visual,.map-copy,.map-frame-shell,.contact-shell,.faq-card,.proof-card,.metric-card,.feature-ribbon article{box-shadow:var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.28)}
body.theme-night .hero-card,body.theme-night .photo-card,body.theme-night .milan-card,body.theme-night .location-visual,body.theme-night .map-copy,body.theme-night .map-frame-shell,body.theme-night .contact-shell,body.theme-night .faq-card,body.theme-night .proof-card,body.theme-night .metric-card,body.theme-night .feature-ribbon article{box-shadow:var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.04)}
.photo-card figcaption,.milan-card figcaption,.contact-side-card,.map-address-card{backdrop-filter:blur(14px) saturate(1.08)}
.photo-card figcaption strong,.milan-card figcaption strong{text-wrap:balance}

.map-shell{position:relative}
.map-copy,.map-frame-shell{transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .35s ease, filter .35s ease}
.map-frame-shell::before,.map-copy::before{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;border:1px solid rgba(255,255,255,.22);opacity:.55}
body.theme-night .map-frame-shell::before,body.theme-night .map-copy::before{border-color:rgba(255,255,255,.04)}
.map-frame-shell::after{content:'';position:absolute;inset:auto 8% -14% 8%;height:72px;border-radius:999px;pointer-events:none;background:radial-gradient(circle, rgba(143,106,48,.16), transparent 72%);filter:blur(18px);opacity:.42;transition:opacity .35s ease, transform .35s ease}
.map-frame-shell:hover,.map-copy:hover{transform:translateY(-4px)}
.map-frame-shell:hover::after{opacity:.7;transform:scale(1.02)}
.map-shell.is-map-activated .map-frame-shell,
.map-shell.is-map-activated .map-copy,
.map-shell.is-copy-activated .map-copy{transform:translateY(-3px);border-color:rgba(143,106,48,.24);box-shadow:0 32px 74px rgba(20,14,11,.16), inset 0 1px 0 rgba(255,255,255,.28)}
body.theme-night .map-shell.is-map-activated .map-frame-shell,
body.theme-night .map-shell.is-map-activated .map-copy,
body.theme-night .map-shell.is-copy-activated .map-copy{border-color:rgba(242,223,184,.18);box-shadow:0 32px 74px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05)}
.map-shell.is-map-activated .map-frame-shell::after,
.map-shell.is-copy-activated .map-frame-shell::after{opacity:.92;transform:scale(1.04)}
.map-actions .btn.is-triggered,
.map-fallback-actions-inline .btn.is-triggered,
.map-inline-link.is-triggered,
.btn-tertiary.is-triggered{animation:mapActionPulse .9s cubic-bezier(.22,1,.36,1)}
@keyframes mapActionPulse{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-2px) scale(1.03)}100%{transform:translateY(0) scale(1)}}

.contact-shell{transition:transform .5s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .35s ease, filter .35s ease}
.contact-shell:hover{transform:translateY(-3px)}
.contact-shell::after{opacity:.84}
.contact-aura-ring{filter:blur(.2px)}
.contact-side-card{box-shadow:0 22px 48px rgba(20,14,11,.12), inset 0 1px 0 rgba(255,255,255,.22)}
body.theme-night .contact-side-card{box-shadow:0 22px 48px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.04)}

.footer{border-top:1px solid rgba(82,62,33,.08);background:linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0))}
body.theme-night .footer{border-top-color:rgba(237,214,177,.08);background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0))}

@media (max-width:720px){
  .nav-links a.is-current:not(.btn), .mobile-nav a.is-current:not(.btn){color:var(--accent)}
  .map-frame-shell::after{left:4%;right:4%}
  .map-shell.is-map-activated .map-frame-shell,
  .map-shell.is-map-activated .map-copy,
  .map-shell.is-copy-activated .map-copy,
  .contact-shell:hover,
  .map-frame-shell:hover,.map-copy:hover{transform:none}
}
