:root {
  --ink: #160f0b;
  --deep: #21150f;
  --corten: #8f4727;
  --corten-2: #b96839;
  --gold: #dcb86a;
  --gold-pale: #f4dda4;
  --cream: #f2e8d5;
  --muted: #b9aa94;
  --line: rgba(244,221,164,.22);
  --max: 1240px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--cream);
  background:
    radial-gradient(circle at 70% 10%, rgba(185,104,57,.10), transparent 30%),
    linear-gradient(180deg, #17100c, #110c09 70%);
  font-family: 'Montserrat', system-ui, sans-serif;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 50; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.85'/%3E%3C/svg%3E");
}
.topbar {
  position: fixed; z-index: 40; top: 0; left: 0; right: 0;
  height: 86px; display: block;
  padding: 0 3.5cm;
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease, height .35s ease;
}
.topbar.scrolled { height: 72px; background: rgba(17,12,9,.88); backdrop-filter: blur(14px); border-color: var(--line); }
.nav { height:100%; width:100%; display:grid; grid-template-columns:repeat(5,1fr); align-items:center; justify-items:center; gap:0; }
.nav a { font-size:14px; text-transform:uppercase; letter-spacing:.14em; color:#f0e3ce; transition:color .2s; font-weight:600; text-align:center; white-space:nowrap; }
.nav a:hover { color:var(--gold); }
.langs { position:absolute; right:0.5cm; top:50%; transform:translateY(-50%); display:flex; gap:4px; }
.langs button { border:0; background:transparent; color:#9d8e7a; font:600 10px/1 'Montserrat'; padding:9px 6px; cursor:pointer; }
.langs button.active { color:var(--gold-pale); }
.menu-toggle { display:none; background:transparent; border:0; width:38px; height:38px; position:relative; }
.menu-toggle span { position:absolute; width:22px; height:1px; background:var(--gold-pale); left:8px; top:15px; transition:.25s; }
.menu-toggle span:last-child { top:23px; }
.menu-toggle.open span:first-child { transform:translateY(4px) rotate(45deg); }
.menu-toggle.open span:last-child { transform:translateY(-4px) rotate(-45deg); }

.hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background:url('assets/facade-concept.jpg') center 8%/cover no-repeat; transform:scale(1.01); }
.hero-shade { position:absolute; inset:0; background: linear-gradient(90deg, rgba(12,8,5,.88) 0%, rgba(12,8,5,.62) 24%, rgba(12,8,5,.18) 46%, rgba(12,8,5,.04) 58%, rgba(12,8,5,.20) 70%, rgba(12,8,5,.62) 86%, rgba(12,8,5,.90) 100%), radial-gradient(circle at 50% 55%, rgba(239,201,123,.13) 0%, rgba(239,201,123,.06) 19%, rgba(239,201,123,0) 42%), linear-gradient(0deg, rgba(14,9,6,.92) 0%, rgba(14,9,6,.28) 30%, rgba(14,9,6,.09) 66%, rgba(14,9,6,.24) 100%); }
.hero-opening-banner { position:absolute; z-index:3; left:50%; top:auto; bottom:calc(clamp(42px,6.5vh,72px) + 202px); transform:translateX(-50%); display:inline-flex; align-items:center; justify-content:center; min-height:60px; padding:0 28px; border-radius:999px; background:linear-gradient(180deg, rgba(244,221,164,.98), rgba(232,204,137,.98)); color:#2c1a10; text-transform:uppercase; letter-spacing:.20em; font-size:12px; font-weight:800; box-shadow:0 12px 32px rgba(0,0,0,.26), 0 0 0 1px rgba(36,22,14,.08) inset; white-space:nowrap; animation:apertura-blink 3.2s ease-in-out infinite; }
.hero-content { position:absolute; z-index:2; inset:0; width:100%; margin:0; padding:0; text-align:center; pointer-events:none; }
.hero-corten-copy { position:absolute; left:50%; bottom:calc(clamp(42px,6.5vh,72px) + 76px); transform:translateX(-50%); width:min(1120px,calc(100% - 48px)); display:flex; flex-direction:column; align-items:center; }
.eyebrow { margin:0 0 13px; font-size:11px; letter-spacing:.26em; font-weight:700; color:var(--gold); text-transform:uppercase; }
.hero .eyebrow { margin-bottom:8px; font-size:clamp(15px,1.15vw,18px); letter-spacing:.24em; color:var(--gold-pale); text-shadow:0 3px 18px rgba(0,0,0,.7); }
h1,h2,h3 { font-family:'Cormorant Garamond',serif; }
.hero-signature { font-family:'Cormorant Garamond',serif; font-size:2.5rem; margin:0; color:#fff2d9; max-width:none; line-height:1.05; font-variant-caps:small-caps; font-feature-settings:'smcp' 1; letter-spacing:.055em; text-shadow:0 4px 20px rgba(0,0,0,.75); white-space:nowrap; }
.hero-actions { position:absolute; left:50%; bottom:clamp(42px,6.5vh,72px); transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:18px; margin:0; flex-wrap:wrap; pointer-events:auto; }
.btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; border-radius:999px; padding:0 23px; text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:700; transition:.25s; }
.btn-primary { background:var(--gold); color:#24160e; box-shadow:0 10px 30px rgba(220,184,106,.18); }
.btn-primary:hover { background:var(--gold-pale); transform:translateY(-2px); }
.btn-outline { border:1px solid rgba(244,221,164,.48); color:var(--gold-pale); }
.btn-outline:hover { background:var(--gold-pale); color:#21150f; }
.opening, .coming { font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.opening { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 18px; border-radius:999px; background:rgba(244,221,164,.97); color:#2c1a10; box-shadow:0 10px 28px rgba(0,0,0,.22), 0 0 0 1px rgba(36,22,14,.08) inset; font-weight:800; }
.coming { color:#c9bca9; }
.scroll-cue { position:absolute; z-index:4; right:max(24px, calc((100vw - var(--max))/2)); bottom:7vh; width:28px; height:58px; border:1px solid rgba(244,221,164,.35); border-radius:30px; }
.scroll-cue span { width:3px; height:3px; background:var(--gold); border-radius:50%; position:absolute; top:12px; left:12px; animation:scroll 1.8s infinite; }
@keyframes scroll { 0%{opacity:0; transform:translateY(0)} 35%{opacity:1} 100%{opacity:0; transform:translateY(27px)} }
@keyframes apertura-blink {
  0%, 100% { opacity:.58; box-shadow:0 12px 32px rgba(0,0,0,.26), 0 0 0 1px rgba(36,22,14,.08) inset; }
  50% { opacity:1; box-shadow:0 12px 32px rgba(0,0,0,.26), 0 0 0 1px rgba(36,22,14,.08) inset, 0 0 26px rgba(244,221,164,.42); }
}

.section { padding:130px 24px; }
.section-head { width:min(840px,100%); margin:0 auto 58px; text-align:center; }
.section-head h2, .terrace-copy h2, .menu-shell h2, .visit-copy h2 { margin:0; font-size:clamp(46px,6vw,82px); line-height:.92; font-weight:600; color:#f4ead9; }
.section-head > p:last-child { color:#a99b88; max-width:660px; line-height:1.8; margin:24px auto 0; font-size:14px; }
.concept-manifesto { margin:18px auto 40px; max-width:1040px; text-transform:uppercase; text-align:center; }
.concept-manifesto-main, .concept-manifesto-sub { display:block; font-family:'Cormorant Garamond',serif; }
.concept-manifesto-main { color:#f4ead9; font-size:clamp(46px,6.2vw,88px); line-height:.92; font-weight:700; letter-spacing:.015em; }
.concept-manifesto-sub { margin-top:16px; color:var(--gold-pale); font-size:clamp(22px,2.7vw,38px); line-height:1.05; font-weight:600; letter-spacing:.075em; }
.concept-title { margin-top:0 !important; font-size:clamp(35px,4.1vw,58px) !important; color:#d8c8af !important; }
.concept { position:relative; }
.concept-grid { width:min(var(--max),100%); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature-card { position:relative; min-height:300px; padding:32px 30px 36px; border-right:1px solid var(--line); display:flex; flex-direction:column; }
.feature-card:last-child { border-right:0; }
.feature-card-media { margin:0 0 26px; aspect-ratio: 4 / 3; overflow:hidden; border-radius:2px; background:#16120d; border:1px solid rgba(216,200,175,.08); }
.feature-card-media img { width:100%; height:100%; display:block; object-fit:cover; transform:scale(1.01); }
.feature-card h3 { font-size:31px; color:var(--gold-pale); margin:22px 0 14px; font-weight:600; }
.feature-card p { margin:0; color:#aa9d8d; line-height:1.8; font-size:13px; }

.maestro { background:linear-gradient(105deg, #7f3e23 0%, #a55b33 55%, #6f321d 100%); position:relative; overflow:hidden; z-index:2; }
.maestro:before { content:""; position:absolute; inset:0; opacity:.1; background:repeating-linear-gradient(90deg, transparent 0 18px, rgba(0,0,0,.2) 19px 20px); mix-blend-mode:multiply; }
.maestro-inner { width:min(var(--max),calc(100% - 48px)); min-height:800px; margin:auto; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; position:relative; z-index:1; }
.maestro-copy { padding:90px 0; }
.maestro-copy h2 { margin:0; font-size:clamp(76px,9vw,132px); line-height:.72; font-weight:600; color:#fff1d5; }
.award { display:flex; align-items:center; gap:15px; margin:37px 0 26px; color:#fff0d0; text-transform:uppercase; letter-spacing:.16em; font-size:10px; }
.award-line { width:55px; height:1px; background:#f0c777; }
.maestro-copy > p[data-i18n="maestro.copy"] { max-width:450px; font-size:14px; line-height:1.85; color:rgba(255,241,213,.72); }
.maestro-book-card {
  margin-top:34px;
  max-width:560px;
  display:grid;
  grid-template-columns:112px 1fr;
  gap:22px;
  align-items:center;
  padding:18px;
  border:1px solid rgba(255,241,213,.22);
  background:linear-gradient(135deg, rgba(255,241,213,.09), rgba(60,26,16,.10));
  box-shadow:0 18px 40px rgba(58,23,11,.16);
}
.maestro-book-cover {
  overflow:hidden;
  aspect-ratio:2 / 3;
  border:1px solid rgba(255,241,213,.18);
  box-shadow:0 12px 24px rgba(55,21,10,.24);
}
.maestro-book-cover img { width:100%; height:100%; object-fit:cover; }
.maestro-book-kicker { margin:0 0 7px; color:rgba(255,241,213,.64); text-transform:uppercase; letter-spacing:.18em; font-size:9px; font-weight:700; }
.maestro-book-title { margin:0; font-family:'Cormorant Garamond',serif; font-size:36px; line-height:.96; color:#fff1d5; }
.maestro-book-subtitle { margin:9px 0 0; color:#f0d7aa; font-size:10px; line-height:1.45; text-transform:uppercase; letter-spacing:.08em; }
.maestro-book-copy { margin:12px 0 0; color:rgba(255,241,213,.72); font-size:12px; line-height:1.65; }
.maestro-book-meta { margin-top:14px; display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; }
.maestro-book-badge {
  display:inline-flex;
  padding:9px 12px;
  border:1px solid rgba(255,241,213,.30);
  border-radius:999px;
  color:#fff0d0;
  font-size:9px;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.maestro-book-langs {
  color:rgba(255,241,213,.72);
  font-size:9px;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.maestro-book-order { margin-top:16px; border:0; cursor:pointer; }
.maestro-visual { height:800px; position:relative; display:flex; align-items:flex-end; justify-content:center; padding-bottom:0; }
.maestro-visual img { position:relative; z-index:3; max-height:770px; width:auto; max-width:min(100%, 570px); transform:translateY(41px); filter:drop-shadow(0 24px 40px rgba(38,16,8,.32)); }
.sun-disc { position:absolute; z-index:0; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle at 40% 34%, #f5d48a 0%, #dfb15d 37%, #a4522c 70%, transparent 71%); opacity:.76; top:88px; left:50%; transform:translateX(-50%); }

.terrace { width:min(var(--max),calc(100% - 48px)); margin:145px auto 135px; display:flex; flex-direction:column; align-items:stretch; gap:54px; }
.terrace-media { position:relative; width:100%; margin:0; line-height:0; border:1px solid rgba(244,221,164,.22); background:#15100d; }
.terrace-media img { display:block; width:100%; height:auto; max-width:none; } /* Original panoramic composition: no crop */
.terrace-media:after { content:""; position:absolute; inset:-10px; border:1px solid rgba(244,221,164,.11); pointer-events:none; }
.terrace-copy { text-align:center; max-width:870px; margin:0 auto; }
.terrace-copy .eyebrow { margin-bottom:18px; }
.terrace-copy h2 { max-width:830px; margin:0 auto; }
.terrace-copy p:last-child { color:#a99b88; line-height:1.9; font-size:14px; max-width:700px; margin:24px auto 0; }

.menu-preview { padding-top:90px; }
.menu-shell { width:min(var(--max),100%); margin:auto; border:1px solid var(--line); padding:58px; display:grid; grid-template-columns:1fr 240px; align-items:center; gap:80px; background:linear-gradient(140deg,rgba(220,184,106,.045),rgba(143,71,39,.055)); }
.menu-shell p:not(.eyebrow) { max-width:660px; color:#aa9d8d; line-height:1.85; font-size:14px; }
.menu-seal { width:220px; height:220px; border-radius:50%; border:1px solid rgba(220,184,106,.25); position:relative; display:grid; place-items:center; margin-left:auto; }
.menu-seal img { width:150px; opacity:.18; }
.menu-seal span { position:absolute; text-align:center; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:25px; letter-spacing:.07em; color:var(--gold-pale); }

.visit { width:min(var(--max),calc(100% - 48px)); margin:80px auto 0; min-height:600px; display:grid; grid-template-columns:1fr .72fr; align-items:center; border-top:1px solid var(--line); }
.visit-copy { padding:100px 0; }
.visit-copy address { margin:28px 0; font-family:'Cormorant Garamond',serif; font-style:normal; font-size:28px; line-height:1.4; color:var(--gold-pale); }
.muted { color:#9f9281; max-width:560px; font-size:13px; line-height:1.85; }
.visit-actions { display:flex; gap:22px; align-items:center; flex-wrap:wrap; margin-top:30px; }
.visit-mark { display:grid; place-items:center; }
.visit-mark img { width:min(380px,82%); opacity:.84; filter:drop-shadow(0 28px 35px rgba(0,0,0,.34)); }
.visit-location-teaser { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; margin:22px 0 0; color:#b7a895; font-size:12px; letter-spacing:.025em; }
.visit-location-teaser strong { color:var(--gold-pale); font-weight:700; }
.concept-poll { max-width:530px; margin-top:48px; padding:28px 30px 22px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(220,184,106,.07),rgba(143,71,39,.05)); }
.concept-poll h3 { font-size:clamp(30px,4vw,41px); line-height:1; margin:0 0 24px; color:#f4e1bf; }
.poll-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.poll-choice { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.poll-button { width:100%; min-height:51px; background:transparent; border:1px solid rgba(244,221,164,.45); color:var(--gold-pale); border-radius:100px; font:700 13px/1 'Montserrat',sans-serif; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.poll-button:not(:disabled):hover, .poll-button.voted { background:var(--gold); color:#24160e; border-color:var(--gold); }
.poll-button:disabled { cursor:default; opacity:.66; }
.poll-button.voted:disabled { opacity:1; }
.poll-counter { display:flex; flex-direction:column; align-items:center; gap:4px; font-variant-numeric:tabular-nums; }
.poll-counter span { font:600 33px/1 'Cormorant Garamond',serif; color:#f4ead9; }
.poll-counter small { color:#a99b88; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.poll-status { min-height:32px; margin:18px 0 0; font-size:10px; line-height:1.6; color:#ab9c88; }
@media (max-width:620px) { .concept-poll { padding:25px 20px 19px; } }

footer { border-top:1px solid var(--line); width:min(var(--max),calc(100% - 48px)); margin:0 auto; padding:40px 0 55px; display:flex; align-items:center; gap:24px; color:#766b5f; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.footer-brand { display:flex; align-items:center; gap:10px; color:#b5a58d; margin-right:auto; }
.footer-brand img { width:34px; }
.footer-note { margin-left:auto; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .topbar { padding:0 22px; display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; }
  .menu-toggle { display:block; grid-column:3; }
  .langs { position:static; transform:none; grid-column:2; justify-self:end; }
  .nav { position:absolute; top:100%; left:0; right:0; width:auto; height:auto; margin:0; padding:28px 22px 34px; background:rgba(17,12,9,.97); backdrop-filter:blur(14px); display:flex; flex-direction:column; align-items:flex-start; gap:22px; transform:translateY(-10px); opacity:0; pointer-events:none; border-top:1px solid var(--line); transition:.25s; }
  .nav.open { opacity:1; transform:none; pointer-events:auto; }
  .concept-grid { grid-template-columns:1fr; }
  .feature-card { border-right:0; border-bottom:1px solid var(--line); min-height:230px; }
  .feature-card:last-child { border-bottom:0; }
  .maestro-inner { grid-template-columns:1fr; }
  .maestro-copy { padding:90px 0 0; }
  .maestro-visual { height:640px; padding-bottom:20px; }
  .maestro-visual img { max-height:560px; }
  .sun-disc { width:490px; height:490px; }
  .terrace { gap:38px; margin:95px auto; }
  .menu-shell { grid-template-columns:1fr; gap:35px; padding:40px; }
  .menu-seal { margin:0; }
  .visit { grid-template-columns:1fr; }
  .visit-mark { padding-bottom:70px; }
  footer { flex-wrap:wrap; }
  .footer-note { width:100%; margin-left:0; }
}
@media (max-width: 620px) {
  .topbar { height:70px; }
  .langs button { padding:8px 4px; }
  .hero-content { width:100%; padding:0; }
  .hero-bg { background-position:58% 6%; transform:scale(1.005); }
  .hero-shade { background: linear-gradient(0deg, rgba(14,9,6,.96) 0%, rgba(14,9,6,.58) 56%, rgba(14,9,6,.16) 100%), linear-gradient(90deg, rgba(12,8,5,.48) 0%, rgba(12,8,5,.10) 38%, rgba(12,8,5,.12) 62%, rgba(12,8,5,.46) 100%); }
  .hero-corten-copy { width:calc(100% - 36px); bottom:128px; }
  .hero-signature { margin-top:0; font-size:1.85rem; line-height:1.05; letter-spacing:.04em; white-space:normal; }
  .hero-actions { bottom:58px; }
  .hero-opening-banner { top:auto; bottom:220px; min-height:52px; padding:0 18px; font-size:10px; letter-spacing:.16em; max-width:calc(100% - 36px); text-align:center; }
  .scroll-cue { display:none; }
  .section { padding:95px 18px; }
  .section-head { text-align:center; }
  .concept-manifesto { margin:14px auto 32px; }
  .concept-manifesto-main { font-size:clamp(40px,11.5vw,58px); }
  .concept-manifesto-sub { font-size:clamp(19px,5.8vw,27px); letter-spacing:.055em; }
  .feature-card { padding:26px 20px 28px; }
  .feature-card-media { margin-bottom:20px; aspect-ratio: 16 / 10; }
  .maestro-inner { width:calc(100% - 36px); }
  .maestro-copy h2 { font-size:80px; }
  .maestro-book-card { grid-template-columns:82px 1fr; gap:15px; padding:14px; margin-top:26px; }
  .maestro-book-title { font-size:30px; }
  .maestro-book-subtitle { font-size:9px; }
  .maestro-book-copy { font-size:11px; }
  .maestro-book-badge { font-size:8px; padding:8px 10px; }
  .maestro-visual { height:520px; margin:0 -18px; padding-bottom:12px; }
  .maestro-visual img { max-height:450px; max-width:100%; }
  .sun-disc { width:370px; height:370px; top:60px; }
  .terrace { width:calc(100% - 36px); margin:80px auto; }
  .terrace-media:after { inset:-5px; }
  .terrace-copy { padding:0 4px; }
  .terrace-copy h2 { font-size:clamp(43px,11vw,65px); }
  .menu-preview { padding:60px 18px 100px; }
  .menu-shell { padding:30px 24px; }
  .menu-seal { width:170px; height:170px; }
  .menu-seal img { width:118px; }
  .visit { width:calc(100% - 36px); }
  .visit-copy { padding:75px 0; }
  .visit-mark img { width:250px; }
  footer { width:calc(100% - 36px); padding-bottom:40px; }
}

.book-order-modal {
  position:fixed; inset:0; z-index:100; display:none;
  align-items:center; justify-content:center; padding:24px;
}
.book-order-modal.open { display:flex; }
.book-order-backdrop { position:absolute; inset:0; background:rgba(12,8,5,.82); backdrop-filter:blur(8px); }
.book-order-dialog {
  position:relative; z-index:1; width:min(640px,100%); max-height:min(90vh, 800px); overflow:auto;
  padding:38px; border:1px solid var(--line);
  background:linear-gradient(145deg,#21150f,#160f0b 75%);
  box-shadow:0 30px 80px rgba(0,0,0,.52);
}
.book-order-dialog h3 { margin:0; font-size:clamp(34px,5vw,47px); line-height:1.04; color:var(--gold-pale); }
.book-order-lead { margin:16px 0 26px; color:#c1b2a0; line-height:1.8; font-size:13px; }
.book-order-close {
  position:absolute; top:12px; right:14px; border:0; background:transparent;
  color:var(--gold-pale); font-size:32px; line-height:1; cursor:pointer;
}
.book-language-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.book-language-choices button { cursor:pointer; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:84px; padding:10px 5px; border:1px solid rgba(244,221,164,.24); background:rgba(244,221,164,.035); color:#ead7b6; font-family:inherit; transition:background .2s, border-color .2s; }
.book-language-choices button:hover, .book-language-choices button[aria-pressed="true"] { border-color:var(--gold); background:rgba(220,184,106,.13); }
.book-language-choices strong { font-size:19px; letter-spacing:.15em; }
.book-language-choices span { font-size:11px; }
.book-request-form { display:flex; flex-direction:column; margin-top:22px; gap:11px; }
.book-request-form[hidden] { display:none; }
.book-mail-preview { display:grid; grid-template-columns:85px 1fr; column-gap:14px; row-gap:8px; padding:17px 18px; border:1px solid var(--line); background:rgba(0,0,0,.17); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.book-mail-preview span { color:#938570; }
.book-mail-preview strong { color:#eee0c5; font-weight:600; }
.book-request-form label { margin-top:10px; color:#e3d2b5; font-size:12px; font-weight:600; }
.book-request-form input { width:100%; padding:14px; border:1px solid rgba(244,221,164,.26); background:#100b09; color:#f2e8d5; font:500 14px/1.4 'Montserrat',sans-serif; outline:none; }
.book-request-form input:focus { border-color:var(--gold); }
.book-order-note { color:#b5a693; font-size:11px; line-height:1.75; margin:4px 0 6px; }
.book-mail-submit { align-self:flex-start; border:0; cursor:pointer; }
.book-order-status { min-height:14px; color:var(--gold-pale); font-size:11px; line-height:1.6; }
body.modal-open { overflow:hidden; }

@media (max-width:980px) {
  .maestro-visual { padding-bottom:0; }
  .maestro-visual img { max-height:640px; transform:translateY(65px); }
}
@media (max-width:620px) {
  .maestro-visual { padding-bottom:0; }
  .maestro-visual img { max-height:510px; transform:translateY(48px); }
  .terrace { margin-top:130px; }
  .book-order-dialog { padding:28px 20px 22px; }
  .book-order-dialog h3 { font-size:34px; }
  .book-language-choices { gap:7px; }
  .book-language-choices button { min-height:74px; }
  .book-mail-preview { grid-template-columns:72px 1fr; padding:14px; }
  .book-mail-submit { width:100%; }
}


/* v0.25 — precise Giulio bottom alignment on desktop */
@media (min-width:981px) {
  .maestro-visual {
    height:auto;
    min-height:800px;
    align-self:stretch;
    padding-bottom:0;
  }
  .maestro-visual img {
    transform:translateY(40px);
  }
}

/* ── v0.28: synchronized slides, immersive panoramic terrace ─────────────── */
.feature-card-media.concept-gallery {
  position:relative;
  isolation:isolate;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:#14100d;
  border:1px solid rgba(216,200,175,.13);
}
.concept-gallery .concept-slide {
  position:absolute;
  inset:0;
  display:block;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:0;
  transform:scale(1.025);
  transition:opacity .58s ease-in-out, transform 2.9s ease-out;
  will-change:opacity;
}
.concept-gallery .concept-slide.is-active {
  opacity:1;
  transform:scale(1.005);
  z-index:1;
}
.concept-gallery::after {
  content:"";
  position:absolute; z-index:2; inset:0; pointer-events:none;
  background:linear-gradient(0deg,rgba(11,8,7,.13),transparent 45%);
}

.terrace.terrace-immersive {
  width:100%; max-width:none;
  margin:0; padding:0;
  min-height:clamp(690px,71vw,970px);
  display:flex; flex-direction:column;
  justify-content:flex-end; align-items:stretch;
  gap:0;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#16120f;
}
.terrace-immersive .terrace-media {
  position:absolute;
  inset:0;
  width:100%; height:100%; margin:0;
  border:0;
  overflow:hidden;
  line-height:0;
  z-index:0;
  background:#16120f;
}
.terrace-immersive .terrace-media::after { display:none; }
.terrace-immersive .terrace-media img {
  display:block;
  width:100%; height:auto;
  max-width:none;
  object-fit:contain;
  object-position:center top;
}
.terrace-immersive .terrace-gradient {
  position:absolute;
  z-index:1; inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(22,18,15,.15) 0%,rgba(22,18,15,0) 19%,rgba(22,18,15,0) 30%,rgba(22,18,15,.18) 42%,rgba(22,18,15,.68) 62%,#16120f 88%,#16120f 100%),
    linear-gradient(90deg,rgba(17,13,10,.48) 0%,transparent 70%);
}
.terrace-immersive .terrace-copy {
  position:relative; z-index:2;
  width:min(1100px,calc(100% - 96px));
  max-width:1100px;
  text-align:left;
  align-self:center;
  padding:0 0 clamp(85px,7vw,130px);
  margin:0;
}
.terrace-immersive .terrace-copy .eyebrow {
  color:#e7c886;
  margin:0 0 18px;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.terrace-immersive .terrace-copy h2 {
  max-width:670px;
  margin:0;
  color:#fff3dd;
  font-size:clamp(56px,6vw,96px);
  line-height:.91;
  text-wrap:balance;
  text-shadow:0 6px 27px rgba(0,0,0,.45);
}
.terrace-immersive .terrace-copy p:last-child {
  max-width:520px;
  margin:24px 0 0;
  font-size:14px;
  line-height:1.85;
  color:rgba(250,238,220,.91);
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
@media (max-width:980px) {
  .terrace.terrace-immersive { min-height:clamp(560px,75vw,760px); margin:0; }
  .terrace-immersive .terrace-copy { width:calc(100% - 66px); padding-bottom:66px; }
  .terrace-immersive .terrace-copy h2 { font-size:clamp(48px,7vw,76px); }
}
@media (max-width:620px) {
  .feature-card-media.concept-gallery { aspect-ratio:16 / 10; }
  .terrace.terrace-immersive { min-height:570px; margin:0; }
  .terrace-immersive .terrace-media img { width:100%; height:auto; max-width:none; }
  .terrace-immersive .terrace-gradient {
    background:linear-gradient(180deg,rgba(22,18,15,.08) 0%,rgba(22,18,15,0) 12%,rgba(22,18,15,.47) 32%,#16120f 60%,#16120f 100%);
  }
  .terrace-immersive .terrace-copy { width:calc(100% - 42px); padding-bottom:58px; }
  .terrace-immersive .terrace-copy h2 { font-size:clamp(49px,12vw,66px); }
  .terrace-immersive .terrace-copy p:last-child { font-size:13px; margin-top:19px; }
}
@media (prefers-reduced-motion:reduce) {
  .concept-gallery .concept-slide { transition:none; transform:none !important; }
}

.footer-credits { white-space:nowrap; font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:#a99b88; border-bottom:1px solid rgba(244,221,164,.22); padding-bottom:3px; }
.footer-credits:hover { color:var(--gold-pale); }

/* v0.28 fine tuning: blend the panorama INSIDE the image rather than at its edge. */
.concept-gallery[data-concept-gallery="materia"] {
  background: #17120e url('assets/concept-card-03.jpg') center/cover no-repeat;
}
.terrace.terrace-immersive { min-height:clamp(670px,58vw,840px); }
.terrace-immersive .terrace-media img {
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 34%,rgba(0,0,0,.90) 50%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 34%,rgba(0,0,0,.90) 50%,transparent 100%);
}
.terrace-immersive .terrace-gradient {
  background:
    linear-gradient(180deg,rgba(22,18,15,.06) 0%,rgba(22,18,15,0) 24%,rgba(22,18,15,.26) 42%,rgba(22,18,15,.79) 67%,#16120f 87%),
    linear-gradient(90deg,rgba(17,13,10,.31) 0%,transparent 65%);
}
.terrace-immersive .terrace-copy { padding-bottom:clamp(46px,5vw,80px); }
@media (max-width:980px) {
  .terrace.terrace-immersive { min-height:clamp(650px,71vw,780px); }
  .terrace-immersive .terrace-copy { padding-bottom:55px; }
}
@media (max-width:620px) {
  .terrace.terrace-immersive { min-height:640px; }
  .terrace-immersive .terrace-media img {
    width:100%; height:465px;
    object-fit:cover; object-position:73% center;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 30%,rgba(0,0,0,.68) 59%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 0%,#000 30%,rgba(0,0,0,.68) 59%,transparent 100%);
  }
  .terrace-immersive .terrace-gradient {
    background:linear-gradient(180deg,rgba(22,18,15,.02) 0%,rgba(22,18,15,.12) 22%,rgba(22,18,15,.65) 53%,#16120f 76%);
  }
  .terrace-immersive .terrace-copy { padding-bottom:58px; }
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PPC v0.29 — Stable concept, black/gold maestro, feathered panorama,
   signed-off facade video. All updates are additive to protect v0.28 layout.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Video stays in the same framing as the original photo. The poster below
   provides a static fallback for mobile autoplay restrictions. */
.hero-bg {
  background-image:url('assets/facade-concept.jpg');
  background-position:center 8%;
  transform:none;
  z-index:0;
}
.hero-video {
  position:absolute;
  display:block;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 8%;
  z-index:0;
  pointer-events:none;
}
.hero-shade { z-index:1; }
@media (max-width:620px) {
  .hero-bg { background-position:58% 6%; transform:none; }
  .hero-video { object-position:58% 6%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-video { display:none; }
}

/* Static pixels throughout each 2.5s hold; opacity alone animates.
   No scale, pan, zoom, translate or Ken Burns effect. */
.concept-gallery .concept-slide,
.concept-gallery .concept-slide.is-active {
  transform:none !important;
  object-position:center;
  backface-visibility:visible;
}
.concept-gallery .concept-slide {
  transition:opacity .38s ease-in-out;
  will-change:opacity;
}
.concept-gallery .concept-slide.is-active { opacity:1; }
.concept-gallery[data-concept-gallery="materia"] {
  background:#14100d;
}
@media (prefers-reduced-motion:reduce) {
  .concept-gallery .concept-slide { transition:none; }
}

/* Giulio: absolutely NO orange background and NO solar circle.
   A soft, non-circular amber bloom reveals the original untouched portrait. */
.maestro {
  background:
    radial-gradient(ellipse 49% 70% at 74% 49%,rgba(151,101,52,.10) 0%,rgba(59,44,30,.055) 49%,transparent 90%),
    linear-gradient(180deg,#17120f 0%,#0c0b0b 21%,#080808 62%,#0b0a0a 100%);
  isolation:isolate;
}
.maestro::before {
  position:absolute;
  content:"";
  inset:0;
  pointer-events:none;
  z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.03),transparent 22%,transparent 79%,rgba(11,10,10,.20));
  opacity:1;
  mix-blend-mode:normal;
}
.maestro-visual::before {
  position:absolute;
  content:"";
  pointer-events:none;
  z-index:1;
  width:115%;
  height:86%;
  left:50%; top:10%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at 50% 44%,
    rgba(237,186,107,.19) 0%,
    rgba(201,142,78,.13) 25%,
    rgba(140,85,48,.065) 48%,
    rgba(85,55,40,.02) 68%,
    transparent 86%);
  filter:blur(46px);
}
.maestro-visual img {
  filter:drop-shadow(0 8px 38px rgba(228,169,91,.12)) drop-shadow(0 22px 52px rgba(0,0,0,.34));
}
.maestro-book-card {
  background:linear-gradient(132deg,rgba(250,221,160,.065),rgba(31,26,22,.075));
  border-color:rgba(244,221,164,.20);
  box-shadow:0 20px 55px rgba(0,0,0,.15);
}

/* Seam-free panorama: every outside boundary fades to the same nearly-black
   background. The center stays bright; copy sits over a dark lower region. */
.terrace.terrace-immersive {
  background:#0b0a0a;
  min-height:clamp(670px,58vw,840px);
}
.terrace-immersive .terrace-media {
  background:#0b0a0a;
}
.terrace-immersive .terrace-media img {
  -webkit-mask-image:none;
  mask-image:none;
}
.terrace-immersive .terrace-gradient {
  z-index:1;
  background:
    linear-gradient(90deg,
      #0b0a0a 0%,rgba(11,10,10,.92) 2%,rgba(11,10,10,.45) 9%,
      transparent 18%,transparent 82%,
      rgba(11,10,10,.45) 91%,rgba(11,10,10,.92) 98%,#0b0a0a 100%),
    linear-gradient(180deg,
      #0b0a0a 0%,rgba(11,10,10,.94) 3%,rgba(11,10,10,.54) 10%,
      transparent 22%,transparent 38%,
      rgba(11,10,10,.20) 50%,rgba(11,10,10,.62) 64%,
      #0b0a0a 88%,#0b0a0a 100%);
}
.menu-preview {
  background:linear-gradient(180deg,#0b0a0a 0%,#15100e 88%,transparent 100%);
}
@media (max-width:620px) {
  .terrace.terrace-immersive { min-height:640px; }
  .terrace-immersive .terrace-media img {
    width:100%;
    height:465px;
    object-fit:cover;
    object-position:73% center;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .terrace-immersive .terrace-gradient {
    background:
      linear-gradient(90deg,#0b0a0a 0%,rgba(11,10,10,.65) 6%,transparent 18%,transparent 82%,rgba(11,10,10,.65) 94%,#0b0a0a 100%),
      linear-gradient(180deg,#0b0a0a 0%,rgba(11,10,10,.38) 7%,transparent 21%,rgba(11,10,10,.40) 40%,#0b0a0a 71%,#0b0a0a 100%);
  }
}


/* ─────────────────── PPC v0.30 ────────────────────────
   Navigation adjusted for the fixed menu. Each destination must begin just
   below the menu; shorter sections must fill the remaining viewport.
   The CSS offsets also work for direct links and with JavaScript disabled. */
:root { --ppc-sticky-nav:72px; }
@media(max-width:620px) {
  :root { --ppc-sticky-nav:70px; }
  .topbar.scrolled { height:70px; }
}
/* Scroll margin alone handles direct #anchor navigation; avoid double-offset. */
#home, #concept, #maestro, #terrazza, #menu, #visit {
  scroll-margin-top:var(--ppc-sticky-nav);
}
/* True full-screen destination, without displaying the next section below. */
.maestro { min-height:calc(100svh - var(--ppc-sticky-nav)); }
.maestro-inner { min-height:max(800px, calc(100svh - var(--ppc-sticky-nav))); }
.terrace.terrace-immersive {
  min-height:max(670px, calc(100svh - var(--ppc-sticky-nav)));
}
.menu-preview {
  min-height:calc(100svh - var(--ppc-sticky-nav));
  display:flex; align-items:center;
}
.visit { min-height:calc(100svh - var(--ppc-sticky-nav)); }
@media(max-width:980px) {
  .maestro-inner { min-height:calc(100svh - var(--ppc-sticky-nav)); }
}
@media(max-width:620px) {
  .terrace.terrace-immersive {
    min-height:max(640px, calc(100svh - var(--ppc-sticky-nav)));
  }
  .menu-preview { min-height:calc(100svh - var(--ppc-sticky-nav)); }
}

/* Contact PPC — discreet black/gold links without any external icon assets. */
.visit-contacts {
  margin-top:34px;
  max-width:560px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.contact-link {
  display:flex;
  align-items:center;
  gap:12px;
  flex:1 1 210px;
  min-width:0;
  padding:13px 16px;
  border:1px solid rgba(244,221,164,.23);
  background:linear-gradient(135deg,rgba(220,184,106,.075),rgba(19,15,12,.08));
  color:#f2dec2;
  text-decoration:none;
  border-radius:3px;
  transition:background .2s ease,border-color .2s ease;
}
.contact-link:hover, .contact-link:focus-visible {
  border-color:rgba(244,221,164,.65);
  background:rgba(220,184,106,.12);
}
.contact-link svg { flex:none; display:block; width:25px; height:25px; color:#dabb7e; }
.contact-link span { display:flex; flex-direction:column; min-width:0; gap:4px; }
.contact-link strong { color:#f4dda4; font-size:12px; font-weight:700; letter-spacing:.035em; }
.contact-link small { color:#c2b19a; font-size:11px; overflow-wrap:anywhere; line-height:1.35; }
@media(max-width:620px) {
  .visit-contacts { gap:10px; max-width:100%; }
  .contact-link { flex-basis:100%; }
}
/* ━━━━━━━━━━━━━━━ PPC v0.31 · Identité harmonisée ━━━━━━━━━━━━━━━
   1. Photo d'origine intacte en HERO et éclairage des enseignes séparé.
   2. Une seule teinte anthracite avec le motif officiel des flammes.
   3. Éléments libres, sans cadres décoratifs.
   4. Coordonnées en haut, logo en face, sondage centré en bas.
   Les boutons et les modales fonctionnels conservent leurs bordures utiles.
*/
:root {
  --site-anthracite:#18191a;
  --site-anthracite-rgb:24,25,26;
}
html,body { background:var(--site-anthracite) !important; }
body { background-image:none !important; }
main { background:var(--site-anthracite); }
.topbar.scrolled { background:rgba(24,25,26,.94); }
.nav.open { background:rgba(24,25,26,.985); }

/* Repeat only the marks supplied in the official brand PDF; never on HERO. */
.flame-section { position:relative; background:var(--site-anthracite) !important; isolation:isolate; }
.flame-section::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:url('assets/flammes-officielles.png');
  background-repeat:repeat;
  background-position:center top;
  background-size:600px 570px;
  opacity:.016;
}
.flame-section > * { position:relative; z-index:1; }

/* HERO: source image at native resolution, no video, only isolated sign glow. */
.hero-bg {
  background-image:url('assets/facade-concept.jpg') !important;
  background-size:cover;
  background-position:center 8%;
  transform:none !important;
  z-index:0;
}
.hero-signage-anim {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.hero-sign-glow {
  position:absolute;
  inset:0;
  display:block;
  opacity:0;
  background-repeat:no-repeat;
  background-position:center 8%;
  background-size:cover;
  will-change:opacity;
  animation-duration:4s;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}
.hero-sign-left { background-image:url('assets/enseigne-left.webp'); animation-name:signLeft; }
.hero-sign-logo { background-image:url('assets/enseigne-logo.webp'); animation-name:signLogo; }
.hero-sign-center { background-image:url('assets/enseigne-center.webp'); animation-name:signCenter; }
.hero-sign-right { background-image:url('assets/enseigne-right.webp'); animation-name:signRight; }
/* Keyframes begin and end dark. Each plaque brightens and returns gently. */
@keyframes signLeft {
  0%,3% {opacity:0} 17% {opacity:.9} 28% {opacity:.38} 42%,100% {opacity:0}
}
@keyframes signLogo {
  0%,14% {opacity:0} 30% {opacity:.94} 41% {opacity:.36} 55%,100% {opacity:0}
}
@keyframes signCenter {
  0%,27% {opacity:0} 47% {opacity:.90} 58% {opacity:.34} 73%,100% {opacity:0}
}
@keyframes signRight {
  0%,42% {opacity:0} 64% {opacity:.94} 74% {opacity:.4} 94%,100% {opacity:0}
}
.hero-shade { z-index:2; }
.hero-content { z-index:3; }
.hero-opening-banner { z-index:4; }
@media (max-width:620px) {
  .hero-bg,.hero-sign-glow { background-position:58% 6%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-sign-glow { animation:none !important; opacity:0 !important; }
}

/* CONCETTO: three free-standing vignettes without dividers or boxes. */
.concept-grid { border:0; gap:clamp(20px,3vw,40px); }
.feature-card,.feature-card:last-child { padding:0 0 12px; border:0 !important; background:none; }
.feature-card-media, .feature-card-media.concept-gallery {
  margin:0 0 23px;
  border:0 !important;
  outline:0;
  box-shadow:none;
  border-radius:0;
}
.feature-card h3 { margin:8px 0 12px; }
.feature-card p { color:#c0b7ab; }

/* Giulio keeps the exact original portrait; behind it is only a diffused glow. */
.maestro, .maestro.flame-section { background:var(--site-anthracite) !important; }
.maestro::before { background-image:url('assets/flammes-officielles.png') !important; opacity:.016 !important; mix-blend-mode:normal !important; }
.maestro-visual::before {
  background:radial-gradient(ellipse 46% 55% at 50% 51%,
      rgba(230,173,95,.23) 0%,
      rgba(175,118,62,.14) 30%,
      rgba(96,67,43,.055) 60%,
      transparent 83%) !important;
  filter:blur(37px) !important;
  height:100%;
  top:0;
  width:132%;
  opacity:.9;
}
.maestro-visual img { filter:drop-shadow(0 15px 35px rgba(0,0,0,.38)); }
.maestro-book-card { border:0 !important; background:transparent !important; box-shadow:none !important; padding:18px 0; }

/* TERRAZZA: feather every edge into the exact shared anthracite. */
.terrace.terrace-immersive,.terrace-immersive .terrace-media { background:var(--site-anthracite) !important; }
.terrace-media,.terrace-media:after { border:0 !important; }
.terrace-media::after { display:none; }
.terrace-immersive .terrace-gradient {
  background:
    linear-gradient(90deg,
      var(--site-anthracite) 0%,rgba(var(--site-anthracite-rgb),.94) 2%,
      rgba(var(--site-anthracite-rgb),.42) 11%,transparent 20%,transparent 80%,
      rgba(var(--site-anthracite-rgb),.42) 89%,rgba(var(--site-anthracite-rgb),.94) 98%,
      var(--site-anthracite) 100%),
    linear-gradient(180deg,
      var(--site-anthracite) 0%,rgba(var(--site-anthracite-rgb),.92) 4%,
      rgba(var(--site-anthracite-rgb),.36) 12%,transparent 23%,transparent 43%,
      rgba(var(--site-anthracite-rgb),.30) 55%,rgba(var(--site-anthracite-rgb),.8) 72%,
      var(--site-anthracite) 90%,var(--site-anthracite) 100%);
}

/* MENU: no large rectangle or isolated background. */
.menu-preview,.menu-preview.flame-section { background:var(--site-anthracite) !important; }
.menu-shell { border:0 !important; background:transparent !important; box-shadow:none !important; padding:40px 0; }
.menu-seal { border:0 !important; }

/* DOVE SIAMO: left contact info, right brand, survey centered underneath both. */
.visit,.visit.flame-section {
  width:100%; margin:0;
  min-height:calc(100svh - var(--ppc-sticky-nav));
  padding:clamp(75px,8vw,120px) 24px 70px;
  display:block;
  border:0 !important;
  background:var(--site-anthracite) !important;
}
.visit-grid {
  width:min(var(--max),100%);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
  column-gap:clamp(40px,6vw,100px);
  row-gap:clamp(25px,3vw,45px);
  align-items:start;
}
.visit-copy { padding:0; }
.visit-copy address { margin:24px 0; }
.visit-mark { align-self:start; justify-self:center; display:flex; align-items:flex-start; justify-content:center; padding-top:4px; }
.visit-mark img {
  display:block;
  width:clamp(240px,24vw,340px);
  max-width:100%;
  opacity:.95;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.12));
}
.visit-icons { display:flex; align-items:center; gap:28px; margin-top:35px; }
.visit-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:4px;
  color:#ddc18d;
  transition:color .22s, transform .22s;
}
.visit-icon svg { display:block; width:30px; height:30px; }
.visit-icon:hover, .visit-icon:focus-visible { color:#fff0d0; transform:translateY(-2px); }
.concept-poll {
  grid-column:1/-1;
  justify-self:center;
  width:min(580px,100%);
  max-width:580px;
  margin:clamp(0px,3vw,40px) auto 0;
  padding:16px 0;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  text-align:center;
}
.concept-poll h3 { margin:0 0 24px; }
.concept-poll .poll-options { margin:0 auto; width:min(420px,100%); gap:24px; }
.poll-choice { align-items:stretch; }
.poll-status { max-width:470px; margin:18px auto 0; }
footer.flame-section { background:transparent !important; }
footer.flame-section::before { display:none; }

/* Maintain the same anthracite and avoid line artifacts at responsive boundaries. */
@media(max-width:980px) {
  .concept-grid { gap:38px; }
  .feature-card { padding:0 0 18px !important; }
  .visit-grid { grid-template-columns:minmax(0,1fr) minmax(0,.72fr); column-gap:26px; }
  .visit-mark { padding:0; }
  .visit-mark img { width:clamp(190px,28vw,280px); }
}
@media(max-width:700px) {
  .visit { padding:88px 18px 80px; }
  .visit-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .visit-copy { grid-column:1; }
  .visit-mark { grid-column:1; justify-self:center; margin-top:8px; }
  .visit-mark img { width:min(250px,70vw); }
  .concept-poll { grid-column:1; margin:0 auto; }
  .visit-icons { gap:24px; }
}
@media(max-width:620px) {
  .terrace-immersive .terrace-gradient {
    background:
      linear-gradient(90deg, var(--site-anthracite) 0%,rgba(var(--site-anthracite-rgb),.57) 7%,transparent 18%,transparent 82%,rgba(var(--site-anthracite-rgb),.57) 93%,var(--site-anthracite) 100%),
      linear-gradient(180deg,var(--site-anthracite) 0%,rgba(var(--site-anthracite-rgb),.35) 8%,transparent 22%,rgba(var(--site-anthracite-rgb),.43) 40%,var(--site-anthracite) 73%,var(--site-anthracite) 100%);
  }
  .menu-shell { padding:24px 0; }
}
/* Final seam fix: feather the image pixels themselves before their natural
   bottom edge so the last row cannot create a hard horizontal cut. */
.terrace-immersive .terrace-media img {
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.36) 0%,#000 11%,#000 64%,rgba(0,0,0,.86) 73%,transparent 98%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.36) 0%,#000 11%,#000 64%,rgba(0,0,0,.86) 73%,transparent 98%);
}
@media(max-width:620px) {
  .terrace-immersive .terrace-media img {
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55) 0%,#000 13%,#000 39%,rgba(0,0,0,.75) 60%,transparent 95%);
    mask-image:linear-gradient(180deg,rgba(0,0,0,.55) 0%,#000 13%,#000 39%,rgba(0,0,0,.75) 60%,transparent 95%);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   PPC v1.0 — six owner-approved finishing corrections
   The imagery and functional modules from v0.31 remain unchanged.
   ═══════════════════════════════════════════════════════════════════ */

/* 1 — Official brand flames: same gold and faint opacity as approved,
      but evenly repeated individual shapes, not a clustered PDF stamp. */
.flame-section::before,
.maestro.flame-section::before {
  background-image:url('assets/flammes-repetition-uniforme.png') !important;
  background-repeat:repeat !important;
  background-size:300px 300px !important;
  background-position:0 0 !important;
  opacity:.016 !important;
}
footer.flame-section::before { display:block !important; }

/* 2 — Giulio: warm, broad studio backlight behind the FULL body,
      not a solar disc, not a religious halo around the head. */
.maestro-visual { isolation:isolate; }
.maestro-visual::before {
  content:"";
  position:absolute;
  z-index:1;
  pointer-events:none;
  width:135%;
  height:108%;
  left:50%;
  top:2%;
  transform:translateX(-50%);
  background:
    radial-gradient(ellipse 44% 59% at 50% 59%,
      rgba(211,155,87,.46) 0%,
      rgba(191,132,64,.31) 26%,
      rgba(149,94,47,.18) 51%,
      rgba(90,58,34,.06) 74%,
      transparent 100%);
  filter:blur(36px) !important;
  opacity:1 !important;
}
.maestro-visual::after {
  content:"";
  position:absolute;
  z-index:2;
  pointer-events:none;
  width:111%;
  height:105%;
  left:50%;
  top:4%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse 34% 56% at 50% 58%,
      rgba(247,196,115,.29) 0%,
      rgba(208,152,82,.20) 39%,
      rgba(166,107,53,.08) 67%,
      transparent 92%);
  filter:blur(46px);
  opacity:.94;
}
.maestro-visual img {
  position:relative;
  z-index:3;
  filter:drop-shadow(0 0 16px rgba(234,172,96,.20))
         drop-shadow(0 20px 38px rgba(0,0,0,.37));
}

/* 3 — HERO: original full-resolution photograph stays static.
      Sign-only illumination sits ABOVE the shade, so the sweep is visible. */
.hero-signage-anim { z-index:3 !important; mix-blend-mode:screen; }
.hero-shade { z-index:2 !important; }
.hero-content { z-index:4 !important; }
.hero-opening-banner { z-index:5 !important; }
.scroll-cue { z-index:6; }
.hero-sign-left { background-image:url('assets/enseigne-v1-left.webp') !important; }
.hero-sign-logo { background-image:url('assets/enseigne-v1-logo.webp') !important; }
.hero-sign-center { background-image:url('assets/enseigne-v1-center.webp') !important; }
.hero-sign-right { background-image:url('assets/enseigne-v1-right.webp') !important; }
@keyframes signLeft {
  0%,2%,39%,100% {opacity:0}
  12% {opacity:.86}
  23% {opacity:1}
  31% {opacity:.33}
}
@keyframes signLogo {
  0%,15%,57%,100% {opacity:0}
  27% {opacity:.84}
  37% {opacity:1}
  47% {opacity:.29}
}
@keyframes signCenter {
  0%,27%,75%,100% {opacity:0}
  43% {opacity:.80}
  54% {opacity:1}
  64% {opacity:.30}
}
@keyframes signRight {
  0%,44%,91%,100% {opacity:0}
  60% {opacity:.86}
  71% {opacity:1}
  81% {opacity:.30}
}

/* 4 — Contact icons belong to the LEFT edge of the fixed navigation,
      the language selector stays at the RIGHT edge. */
.header-social {
  position:absolute;
  z-index:2;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  gap:4px;
}
.header-social a {
  display:inline-flex;
  width:36px;
  height:38px;
  align-items:center;
  justify-content:center;
  color:rgba(244,221,164,.77);
  transition:color .22s ease,transform .22s ease;
}
.header-social svg { width:21px;height:21px; display:block; }
.header-social a:hover,.header-social a:focus-visible {
  color:var(--gold-pale);
  transform:translateY(-1px);
}
@media(max-width:980px) {
  .header-social {
    position:relative;
    grid-column:1;
    grid-row:1;
    justify-self:start;
    left:auto;
    top:auto;
    transform:none;
  }
  .langs { grid-column:2;grid-row:1; }
  .menu-toggle { grid-column:3;grid-row:1; }
}
@media(max-width:620px) {
  .topbar { padding:0 12px;gap:7px;grid-template-columns:minmax(0,1fr) auto 38px; }
  .header-social { gap:2px; }
  .header-social a { width:34px;height:40px; }
  .header-social svg { width:19px;height:19px; }
  .langs { gap:1px; }
  .langs button { padding:8px 4px; }
}

/* 5 — The poll stays centered horizontally, but moves up to where the
      old contact icons used to be. No overlap on narrow viewports. */
@media(min-width:981px) {
  .visit-grid { row-gap:18px; }
  .visit-grid .concept-poll {
    position:relative;
    z-index:2;
    margin:0 auto 0;
    padding:0 0 14px;
  }
}
@media(min-width:701px) and (max-width:980px) {
  .visit-grid .concept-poll { margin:-12px auto 0; }
}
@media(max-width:700px) {
  .visit-grid .concept-poll { margin:8px auto 0; }
}

/* 6 — No visible 'Anteprima locale' or other under-counter message.
      The accessible live region remains for screen-reader users. */
.sr-only,
.poll-status.sr-only {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
  clip-path:inset(50%) !important;
}


/* ────────────────────────────────────────────────────────────────────
   Pizzaiolo per Caso v1.1 — uniquement les sections validées.
   Base V1.0 : HERO, TERAZZA, icônes d'en-tête et flammes inchangés.
   ──────────────────────────────────────────────────────────────────── */

/* Navigation supérieure V1.1 : groupe compact et centré. */
@media (min-width:981px) {
  .nav { display:flex; justify-content:center; align-items:center; gap:clamp(26px,3vw,48px); width:auto; }
  .nav a { font-size:13px; }
}

/* Il Concetto : hiérarchie et contraste V1.1. */
.concept-title.concept-title--sub {
  font-size:clamp(22px,2.2vw,30px) !important;
  font-style:italic; font-weight:500;
  color:var(--gold) !important;
  letter-spacing:.02em; line-height:1.2; margin:-14px 0 0 !important;
}
.concept-manifesto { margin-bottom:28px; }
.concept .section-head > p:last-child {
  font-size:16px; line-height:1.75; color:#d8cbb8;
}
.concept .feature-card p { font-size:15px; line-height:1.75; color:#d8cbb8; }
.concept-gallery[data-concept-gallery="terrazza"] .concept-slide {
  filter:saturate(.85) brightness(.82) contrast(1.05) sepia(.12);
}
.concept-gallery[data-concept-gallery="terrazza"]::after {
  background:linear-gradient(0deg,rgba(11,8,7,.45),rgba(40,22,10,.18) 55%,rgba(11,8,7,.22));
}
/* Correction demandée : remonter ET centrer verticalement titre + textes + 3 photos. */
@media (min-width:981px) {
  #concept {
    min-height:calc(100svh - var(--ppc-sticky-nav));
    padding-top:clamp(32px,4.5svh,58px);
    padding-bottom:clamp(36px,4.8svh,64px);
    display:flex; flex-direction:column; justify-content:center;
  }
  #concept > .section-head { flex:none; }
  #concept > .concept-grid { flex:none; }
}
@media (min-width:621px) and (max-width:980px) {
  #concept { padding-top:65px; padding-bottom:78px; }
}
/* Sur petit mobile la section s'étend naturellement : aucune image coupée. */
@media (max-width:620px) {
  #concept { padding-top:75px; padding-bottom:76px; }
}

/* Giulio Scialpi : reprises précises des ajustements de la V1.1. */
.maestro-visual::after { opacity:1; }
.maestro-visual::before { filter:blur(34px) brightness(1.12) !important; }
.maestro-copy > p[data-i18n="maestro.copy"] {
  font-size:16px; line-height:1.75; color:#d8cbb8;
}
.maestro .award { font-size:12px; }
.maestro-book-kicker { font-size:11px; }
.maestro-book-subtitle { font-size:12px; }
.maestro-book-copy { font-size:14px; color:rgba(255,241,213,.85); }
.maestro-book-badge,.maestro-book-langs { font-size:11px; }
@media (max-width:620px) {
  .maestro-book-subtitle,.maestro-book-badge,.maestro-book-langs { font-size:11px; }
  .maestro-book-copy { font-size:13px; }
}

/* Dove Siamo : logo atténué, carte de sondage et lisibilité de la V1.1. */
.visit-mark img {
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.18)) saturate(.85);
  opacity:.86;
}
.visit .muted { color:#c9bca9; font-size:15px; }
.visit .visit-location-teaser { font-size:14px; color:#d0c2ad; }
.visit .coming { font-size:11px; color:#d8cbb8; }
.visit .btn { font-size:11px; }
.visit-grid .concept-poll {
  margin-top:clamp(40px,5vw,72px) !important;
  padding:34px 32px 30px !important;
  border:1px solid rgba(244,221,164,.22) !important;
  background:linear-gradient(145deg,rgba(220,184,106,.08),rgba(143,71,39,.05)) !important;
  border-radius:4px;
}
.poll-counter small { font-size:12px; color:#c9bca9; }
@media (max-width:620px) {
  .visit-grid .concept-poll { padding:26px 18px 22px !important; }
}

/* Footer de la V1.1 : mêmes proportions sans aucune icône sociale.
   Espace silencieux équivalent au groupe social original (3x36+2x4px). */
footer { font-size:11px; color:#a39583; }
.footer-social-space { display:block; flex:0 0 116px; width:116px; height:38px; }
@media (max-width:980px) {
  .footer-social-space { height:38px; }
}

/* LA CARTA — réplique typographique du PDF officiel noir et or, sans photos. */
#menu.menu-preview {
  display:block;
  min-height:0;
  padding:clamp(74px,8vw,118px) 24px clamp(86px,9vw,138px);
  color:#f4ead9;
}
.carta-intro { text-align:center; max-width:900px; margin:0 auto clamp(36px,5vw,66px); }
.carta-intro .eyebrow { font-size:11px; letter-spacing:.35em; }
.carta-intro h2 {
  margin:8px 0 0;
  font:600 clamp(66px,9vw,116px)/.88 'Cormorant Garamond',serif;
  letter-spacing:.035em; color:#f3e8d5;
}
.carta-tagline {
  margin:25px auto 20px;
  color:#dabb7e;
  font:600 clamp(11px,1.3vw,14px)/1.5 'Montserrat',sans-serif;
  letter-spacing:.22em;
}
.carta-ornament { display:block; width:144px; height:1px; margin:0 auto; background:linear-gradient(90deg,transparent,#c5a068,transparent); }
.carta-nav {
  position:sticky; top:var(--ppc-sticky-nav); z-index:12;
  display:flex; justify-content:center; gap:6px; flex-wrap:wrap;
  width:min(1240px,100%); margin:0 auto clamp(45px,5vw,72px);
  padding:10px;
  border-top:1px solid rgba(244,221,164,.23);
  border-bottom:1px solid rgba(244,221,164,.23);
  background:rgba(24,25,26,.97);
  backdrop-filter:blur(14px);
}
.carta-nav a {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 12px; border-radius:2px;
  color:#d9c29a; font:600 10px/1.25 'Montserrat',sans-serif;
  text-transform:uppercase; letter-spacing:.095em;
  white-space:nowrap;
  transition:color .2s,background .2s;
}
.carta-nav a:hover,.carta-nav a:focus-visible {
  background:rgba(220,184,106,.11); color:#fff0d0;
}
.carta-content { width:min(1080px,100%); margin:0 auto; }
.carta-category { padding:0 0 clamp(54px,6vw,88px); scroll-margin-top:160px; }
.carta-section-heading { text-align:center; margin:0 auto clamp(30px,3.6vw,46px); }
.carta-section-heading h3 {
  margin:0; color:#e7c78b;
  font:600 clamp(42px,5.2vw,67px)/1.0 'Cormorant Garamond',serif;
  letter-spacing:.045em;
}
.carta-section-heading p {
  margin:10px 0 0; color:#b7a68e;
  font:600 10px/1.4 'Montserrat',sans-serif;
  text-transform:uppercase; letter-spacing:.25em;
}
.carta-list { columns:2 420px; column-gap:clamp(35px,6vw,96px); }
.carta-item {
  display:block; break-inside:avoid-column;
  margin:0 0 27px; padding-bottom:20px;
  border-bottom:1px solid rgba(244,221,164,.11);
}
.carta-item-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.carta-item h4 {
  margin:0; font:700 clamp(12px,1.2vw,14px)/1.35 'Montserrat',sans-serif;
  letter-spacing:.10em; color:#efe1c7;
}
.carta-price {
  white-space:nowrap; flex:none;
  color:#dfbd7d; font:700 clamp(12px,1.2vw,14px)/1.35 'Montserrat',sans-serif;
  font-variant-numeric:tabular-nums;
}
.carta-item > p {
  margin:8px 0 0; color:#cbbda9;
  font:400 13px/1.7 'Montserrat',sans-serif;
}
.carta-subgroup {
  margin:0 0 23px; color:#dfbd7d;
  font:700 12px/1.4 'Montserrat',sans-serif;
  letter-spacing:.18em; text-align:center;
}
.carta-subgroup:not(:first-of-type) { margin-top:25px; }
.carta-endnote { text-align:center; border-top:1px solid rgba(244,221,164,.22); padding-top:45px; }
.carta-endnote h3 {
  margin:0 0 12px; color:#dfbd7d;
  font:700 13px/1.4 'Montserrat',sans-serif; letter-spacing:.22em;
}
.carta-endnote > p { font-size:13px; line-height:2; color:#dfd1b9; }
.carta-endnote .carta-allergens { margin:24px auto 32px; color:#bcae9a; font-size:12px; }
.carta-pdf-link {
  display:inline-flex; justify-content:center; align-items:center;
  min-height:46px; padding:12px 24px;
  border:1px solid rgba(244,221,164,.48); border-radius:99px;
  color:#f4dda4; font:700 10px/1.45 'Montserrat',sans-serif;
  letter-spacing:.11em; text-transform:uppercase;
  transition:background .2s,color .2s;
}
.carta-pdf-link:hover,.carta-pdf-link:focus-visible { background:#dfbd7d; color:#21150f; }
@media (max-width:780px) {
  .carta-nav { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .carta-nav a { flex:none; font-size:10px; }
  .carta-list { columns:1; }
  .carta-item h4 { font-size:13px; }
  .carta-price { font-size:13px; }
}
@media (max-width:620px) {
  #menu.menu-preview { padding:75px 18px 90px; }
  .carta-intro { margin-bottom:35px; }
  .carta-intro h2 { font-size:clamp(55px,17vw,86px); }
  .carta-intro .eyebrow { letter-spacing:.21em; }
  .carta-nav { margin-bottom:42px; }
  .carta-category { padding-bottom:58px; }
  .carta-section-heading p { letter-spacing:.16em; }
  .carta-item { margin-bottom:21px; padding-bottom:17px; }
  .carta-item > p { font-size:12.5px; }
  .carta-endnote > p { font-size:12px; }
}

@media (min-width:981px) {
  #concept {padding-top:clamp(25px,3svh,40px);padding-bottom:clamp(25px,3svh,40px);}
  #concept > .section-head {margin-bottom:clamp(20px,2.4svh,31px);}
  #concept .concept-manifesto {margin:8px auto 13px;}
  #concept .concept-manifesto-sub {
    width:min(1020px,calc(100vw - 48px));
    position:relative;left:50%;transform:translateX(-50%);
    white-space:nowrap;
  }
  #concept .section-head > p:last-child {max-width:810px;margin-top:14px;}
  #concept .feature-card-media {aspect-ratio:1.52;margin-bottom:15px;}
  #concept .feature-card h3 {margin:3px 0 8px;}
  #concept .feature-card p {line-height:1.6;}
}


/* PPC V1.1 — correction LA CARTA et DOVE SIAMO / footer (rev. 2).
   Menu catégories, typographie, traits, couleurs : identiques à V1.1. */
.carta-category[hidden] { display:none !important; }
/* La barre de catégories et les items gardent leur style original. */

/* Footer sensiblement plus haut, copyright exactement au centre horizontal.
   Absence d'icônes dans le pied de page. */
:root { --ppc-footer-stage-height:clamp(150px,17svh,185px); }
footer.flame-section {
  width:min(var(--max),calc(100% - 48px));
  min-height:var(--ppc-footer-stage-height);
  margin:0 auto;
  padding:22px 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  column-gap:20px;
  align-items:center;
  justify-items:center;
  text-align:center;
  gap:20px;
  font-size:11px;
}
footer.flame-section .footer-brand {justify-self:start; margin:0;}
footer.flame-section .footer-brand img {width:42px;}
footer.flame-section .footer-note {justify-self:end; margin:0;}
footer.flame-section > p:not(.footer-note) {margin:0; white-space:nowrap;}

/* Desktop: réserver l'espace du footer DANS la même fenêtre à l'ouverture
   de #visit. Le bloc contenu/logo/sondage remonte, sans modifier le design. */
@media (min-width:701px) {
  #visit.visit {
    min-height:calc(100svh - var(--ppc-sticky-nav) - var(--ppc-footer-stage-height));
    padding:clamp(24px,3.5svh,44px) 24px clamp(12px,2svh,22px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  #visit.visit .visit-grid {flex:none; row-gap:clamp(12px,2svh,24px);}
  #visit.visit .visit-grid .concept-poll {margin-top:clamp(10px,1.8svh,24px) !important;}
}
/* Laptop 720–900px: garder les quatre blocs visibles après un clic DOVE SIAMO. */
@media (min-width:701px) and (max-height:900px) {
  #visit.visit {padding:clamp(12px,2svh,22px) 24px clamp(8px,1svh,12px);}
  #visit.visit .visit-copy .eyebrow {margin:0 0 6px;font-size:10px;}
  #visit.visit .visit-copy h2 {font-size:clamp(42px,4.4vw,63px);}
  #visit.visit .visit-copy address {font-size:clamp(20px,2vw,25px);margin:12px 0;}
  #visit.visit .visit-copy .muted {font-size:13px;line-height:1.55;margin:8px 0;}
  #visit.visit .visit-copy .visit-location-teaser {font-size:12px;margin:10px 0 0;}
  #visit.visit .visit-actions {margin-top:14px;gap:16px;}
  #visit.visit .visit-actions .btn {min-height:40px;}
  #visit.visit .visit-mark img {width:clamp(185px,20vw,270px);}
  #visit.visit .visit-grid .concept-poll {padding:16px 24px 14px !important;margin-top:8px !important;}
  #visit.visit .concept-poll h3 {font-size:clamp(26px,3vw,34px);margin-bottom:13px;}
  #visit.visit .concept-poll .poll-options {width:min(370px,100%);gap:20px;}
  #visit.visit .poll-button {min-height:40px;}
  #visit.visit .poll-choice {gap:7px;}
  #visit.visit .poll-counter span {font-size:29px;}
  #visit.visit .poll-counter small {font-size:10px;}
}
/* Sur mobiles, le bloc s'étend pour rester lisible; footer bien centré. */
@media (max-width:700px) {
  #visit.visit {min-height:0; padding:65px 18px 38px;display:block;}
  #visit.visit .visit-grid {row-gap:20px;}
  #visit.visit .visit-grid .concept-poll {margin-top:5px!important;}
  footer.flame-section {
    width:calc(100% - 36px);
    min-height:190px;
    padding:34px 0;
    grid-template-columns:1fr;
    gap:18px;
    justify-items:center;
  }
  footer.flame-section .footer-brand,
  footer.flame-section .footer-note {justify-self:center;}
}
