/* Variante Claude v2: stessi caratteri (Georgia grassetto, Manrope pesante); palette avorio, quasi nero, bordeaux. */
:root {
  color-scheme: light;
  --bg-deep: #f7f1e7;
  --bg-soft: #efe8d8;
  --bg-card: #ffffff;
  --line: #e3d9c4;
  --text: #1c1a17;
  --text-mute: #4c4438;
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: "Manrope", Arial, sans-serif;
  --gold: #6e1423;
  --gold-bright: #8b1d2f;
  --gold-deep: #4f0e19;
  --action: #6e1423;
  --action-hover: #4f0e19;
  --wood: #ddd4c7;
  --whatsapp: #157347;
  --whatsapp-dark: #105a37;
}

*, *::before, *::after { letter-spacing: 0 !important; }
body { background: var(--bg-deep); color: var(--text); font-weight: 500; }
body :is(h1, h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--text);
  line-height: 1.25;
  overflow-wrap: anywhere;
}
body h1, body .hero h1 { font-size: 2rem; }
body h2, .section-head h2, .contact-info h2, .cta-final h2 { font-size: 1.6rem; }
body h3, .content-section .intro-wrap h3, .intro-wrap h3 { font-size: 1.2rem; }
body .hero h1 .accent { font-style: normal; font-weight: 700; color: var(--gold); }
body strong, body b, .intro-wrap p strong, .byline strong, .price-table td strong { font-weight: 700; }
.logo, .step-num, .byline-mark, .pc-placeholder { font-weight: 700; }
.nav { flex-wrap: wrap; }
.nav-links { flex-wrap: wrap; }
.nav-links a:not(.nav-cta), .nav-cta { font-size: 0.85rem; font-weight: 700; }
.eyebrow, .trust-item, .tag, .painter-card .pc-meta { font-size: 0.875rem; font-weight: 600; }
.hero-sub, .card p, .trust-card p, .step p, .why-item p, .det-block p,
.painter-card p, .intro-wrap p, .intro-wrap li, .faq-answer { font-size: 1rem; line-height: 1.75; }
.intro-wrap .lead { font-family: var(--font-body); font-size: 1.1rem; font-style: normal; font-weight: 500; }
.faq-item summary { font-family: var(--font-body); font-size: 1.05rem; font-weight: 600; line-height: 1.6; }
.faq-item summary::after { font-weight: 500; }
.btn, .form-submit { font-weight: 700; }
.form-group label { font-size: 0.875rem; font-weight: 700; }
.form-group input, .form-group textarea { font-family: var(--font-body); font-size: 1rem; font-weight: 500; }
.breadcrumb, .page-meta, .footer-tag, .footer-bottom, .sources-list span,
.artist-figure figcaption, .artwork figcaption { font-size: 0.875rem; font-weight: 500; }
.price-table thead th { font-size: 0.8rem; font-weight: 700; }
.price-table tbody th, .price-table td { font-size: 0.95rem; font-weight: 500; }
.price-table td:last-child { font-weight: 600; }
.price-table small, .price-table tbody th em { font-size: 0.85rem; font-weight: 500; opacity: 1; }
::selection { background: #ecd6db; color: var(--text); }
.site-header { background: rgba(247, 241, 231, 0.97); }
.hero { background: var(--bg-deep); }
.hero::before { display: none; }
.hero-visual img { box-shadow: 0 10px 28px rgba(37, 44, 41, 0.12); }
.hero:has(.hero-visual) h1 {
  font-size: 2.2rem;
  color: var(--text);
  font-family: Georgia, "Times New Roman", serif;
  font-style: normal;
  font-weight: 700;
  line-height: 1.1;
  white-space: normal;
}
.hero:has(.hero-visual) h1 .accent {
  color: var(--gold);
  font: inherit;
}
.hero:has(.hero-visual) h1 .hero-location {
  display: block;
  margin-top: 0.12em;
  color: var(--text-mute);
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.15;
}
.section-head h2, .contact-info h2, .cta-final h2 { color: var(--gold); }
.contatto, .cta-final { background: var(--bg-soft); }
.site-footer { background: #1c1a17; color: #f7f2e7; }
.site-footer .footer-tag, .site-footer p, .site-footer .footer-bottom { color: #cfc6b8; }
.site-footer .logo { color: #f7f2e7; }
a:hover { color: var(--gold-bright); }

.nav-cta, .form-submit, .tel-sticky { background: var(--action); color: #ffffff; }
.nav-cta:hover, .nav-cta:focus, .form-submit:hover, .tel-sticky:hover,
.tel-sticky:focus { background: var(--action-hover); color: #ffffff; }
.tel-sticky svg { color: #ffffff; }
.btn-primary, .btn-primary:hover, .btn-primary:focus { color: #ffffff; }
.btn-primary:hover, .btn-primary:focus { background: var(--whatsapp-dark); }
.btn-secondary { background: transparent; color: var(--gold); }
.btn-secondary:hover, .btn-secondary:focus { background: var(--gold); color: #ffffff; }
.tel-sticky, .wa-sticky {
  bottom: calc(var(--genovarte-cookie-offset, 0px) + 1.25rem + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 4px 16px rgba(37, 44, 41, 0.16);
}
/* Older artist pages hide these links while the consent banner is present. */
body:has(#cookie-banner) .tel-sticky, body:has(#cookie-banner) .wa-sticky {
  display: flex;
  bottom: calc(var(--genovarte-cookie-offset, 224px) + 1.25rem + env(safe-area-inset-bottom, 0px));
}
.wa-sticky { animation: none; }

.price-table thead { background: var(--bg-soft); }
.price-table tbody tr:nth-child(even) { background: #f4efe7; }
.price-table th, .price-table td { border-color: var(--line); }
.pc-placeholder { background: #ede8df; color: var(--gold); }
.form-group input, .form-group textarea { background: var(--bg-card); border-color: #918b80; }
input::placeholder, textarea::placeholder { color: #69665f; opacity: 1; }
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible {
  outline: 2px solid #157347;
  outline-offset: 4px;
}

/* The existing consent script injects its dark styles after page load. */
#cookie-banner { background: var(--bg-card) !important; border-color: var(--line) !important;
  box-shadow: 0 -4px 20px rgba(37, 44, 41, 0.12) !important; }
#cookie-banner p { color: var(--text) !important; font-size: 0.8rem !important; font-weight: 500; line-height: 1.4; }
#cookie-banner a { color: var(--gold) !important; }
#cookie-banner .cb-btns { flex-wrap: wrap; }
#cookie-banner button { font-size: 0.72rem !important; font-weight: 700 !important; padding: 0.42rem 0.95rem !important; }
#cookie-banner #cb-ok { background: var(--action) !important; color: #ffffff !important; }
#cookie-banner #cb-ok:hover { background: var(--action-hover) !important; }
#cookie-banner #cb-no { background: var(--bg-card) !important; color: var(--text) !important;
  border: 1px solid #918b80 !important; }
#cookie-banner #cb-no:hover { background: var(--bg-soft) !important; }

@media (max-width: 360px) {
  .nav { flex-wrap: wrap; gap: 0.75rem; }
  .nav-links { width: 100%; justify-content: space-between; flex-wrap: wrap; }
  main > table { table-layout: fixed; }
  main > table th, main > table td { overflow-wrap: anywhere; padding: 0.65rem 0.4rem; }
}

@media (max-width: 520px) {
  .nav { gap: 0.75rem; }
  .nav-links { width: 100%; justify-content: space-between; gap: 0.75rem; }
  .price-table th, .price-table td { overflow-wrap: anywhere; white-space: normal; }
}

@media (min-width: 640px) {
  body h1, body .hero h1 { font-size: 3rem; }
  body h2, .section-head h2, .contact-info h2, .cta-final h2 { font-size: 2rem; }
  body h3, .content-section .intro-wrap h3, .intro-wrap h3 { font-size: 1.35rem; }
  .hero:has(.hero-visual) h1 { font-size: 3.1rem; }
}

@media (min-width: 960px) {
  .hero:has(.hero-visual) h1 { font-size: 3.25rem; }
}

@media (min-width: 1200px) {
  .hero:has(.hero-visual) h1 { font-size: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Banner cookie compatto su telefono */
@media (max-width: 600px) { #cookie-banner { padding: 0.5rem 0.7rem !important; gap: 0.35rem 0.6rem !important; } #cookie-banner p { font-size: 0.73rem !important; line-height: 1.3; } #cookie-banner button { font-size: 0.66rem !important; padding: 0.36rem 0.75rem !important; } }

/* ===== Movimento in apertura di pagina (solo CSS, nessuno script). Rispetta chi ha disattivato le animazioni. ===== */
@media (prefers-reduced-motion: no-preference) {
  @keyframes gv-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
  @keyframes gv-photo { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
  @keyframes gv-line { to { background-size: 100% 2px; } }
  .hero .eyebrow, .hero h1, .hero .hero-sub, .hero .hero-trust, .hero .hero-cta-row {
    opacity: 0; animation: gv-up .75s cubic-bezier(.2, .7, .2, 1) forwards;
  }
  .hero .eyebrow      { animation-delay: .10s; }
  .hero h1            { animation-delay: .22s; }
  .hero .hero-sub     { animation-delay: .40s; }
  .hero .hero-trust   { animation-delay: .55s; }
  .hero .hero-cta-row { animation-delay: .70s; }
  .hero-visual { opacity: 0; animation: gv-photo 1s cubic-bezier(.2, .7, .2, 1) .30s forwards; }
  .hero h1 .accent {
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 2px;
    padding-bottom: .03em; animation: gv-line .8s ease 1.05s forwards;
  }
}


/* ===== BLOCCO INIZIALE A TUTTA LARGHEZZA (stile "scritta sull'immagine") ===== */
.hero.hero-cover { position: relative; min-height: 0; padding: 0; height: clamp(380px, 62vh, 640px); overflow: hidden; background: #1c1a17; display: block; }
.hero-cover::before { display: none; }
.hero-cover .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; display: block; }
.hero-cover .hero-band { position: absolute; left: 0; right: 0; bottom: clamp(28px, 9vh, 90px); display: flex; justify-content: center; padding: 0 1rem; }
.hero-cover .hero-band-inner { background: rgba(28, 26, 23, .66); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); color: #f7f2e7; text-align: center; padding: 1.1rem 1.6rem 1.25rem; max-width: 880px; width: 100%; border-radius: 3px; box-shadow: 0 14px 40px rgba(0,0,0,.35); }
.hero-cover .eyebrow { color: #e0c184; margin-bottom: .45rem; font-size: .8rem; }
.hero-cover h1, .hero-cover h1 .hero-location { color: #f7f2e7 !important; font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: clamp(1.35rem, 3.1vw, 2.2rem) !important; line-height: 1.15; margin: 0; text-wrap: balance; }
.hero-cover h1 .hero-location { display: block; margin-top: .12em; font-weight: 400; font-size: .78em !important; }
.hero-cover h1 .accent { color: #e0c184; font-weight: 700; }
.hero-cover .hero-tag { color: #e9e1d3; font-size: .9rem; margin: .55rem 0 .9rem; }
.hero-cover .hero-cta-row { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.hero-cover .btn { padding: .75rem 1.25rem; font-size: .8rem; }
.hero-cover .btn-secondary { color: #f7f2e7; border-color: rgba(247,242,231,.65); }
.hero-cover .btn-secondary:hover, .hero-cover .btn-secondary:focus { background: #f7f2e7; color: #1c1a17; }
.hero-intro { padding-top: 2.6rem; padding-bottom: 1.2rem; }
.hero-intro .hero-sub { font-size: 1.05rem; line-height: 1.75; margin-bottom: 1.1rem; }
.hero-intro .hero-trust { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
@media (max-width: 640px) {
  .hero.hero-cover { height: clamp(360px, 58vh, 520px); }
  .hero-cover .hero-band { bottom: 18px; padding: 0 .75rem; }
  .hero-cover .hero-band-inner { padding: .9rem 1rem 1rem; }
  .hero-cover h1 { font-size: 1.25rem !important; }
  .hero-cover .hero-tag { font-size: .8rem; }
  .hero-cover .hero-cta-row { flex-direction: column; }
  .hero-cover .btn { width: 100%; justify-content: center; }
}
/* movimento d'apertura del nuovo blocco (solo CSS) */
@media (prefers-reduced-motion: no-preference) {
  @keyframes gv-bg { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
  @keyframes gv-band { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
  .hero-cover .hero-bg { animation: gv-bg 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
  .hero-cover .hero-band-inner { opacity: 0; animation: gv-band .9s cubic-bezier(.2,.7,.2,1) .55s forwards; }
  .hero-cover .eyebrow, .hero-cover h1, .hero-cover .hero-tag, .hero-cover .hero-cta-row { opacity: 0; animation: gv-up .7s cubic-bezier(.2,.7,.2,1) forwards; }
  .hero-cover .eyebrow { animation-delay: .9s; } .hero-cover h1 { animation-delay: 1.0s; } .hero-cover .hero-tag { animation-delay: 1.15s; } .hero-cover .hero-cta-row { animation-delay: 1.3s; }
  .hero-cover h1 .accent { background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 2px; padding-bottom: .03em; animation: gv-line .8s ease 1.7s forwards; }
  .hero-intro .hero-sub, .hero-intro .hero-trust { opacity: 0; animation: gv-up .7s ease forwards; }
  .hero-intro .hero-sub { animation-delay: 1.5s; } .hero-intro .hero-trust { animation-delay: 1.65s; }
}


/* correzioni: accento leggibile sulla fascia scura; telefono = fascia compatta con un solo pulsante */
.hero.hero-cover h1 .accent { color: #e0c184 !important; }
.hero-cover .hero-call { display: none; color: #f7f2e7; font-size: .85rem; margin-top: .6rem; text-decoration: none; }
.hero-cover .hero-call strong { color: #e0c184; font-weight: 700; }
@media (max-width: 640px) {
  .hero.hero-cover { height: clamp(380px, 64vh, 560px); }
  .hero-cover .hero-band { bottom: 12px; padding: 0 .6rem; }
  .hero-cover .hero-band-inner { padding: .75rem .85rem .85rem; box-sizing: border-box; max-width: 100%; }
  .hero-cover .eyebrow { font-size: .7rem; margin-bottom: .3rem; }
  .hero-cover h1 { font-size: 1.15rem !important; line-height: 1.2; }
  .hero-cover h1 .hero-location { display: block; font-size: .82em !important; margin-top: .15em; }
  .hero-cover .hero-tag { font-size: .78rem; margin: .4rem 0 .7rem; }
  .hero-cover .hero-cta-row .btn-secondary { display: none; }
  .hero-cover .btn-primary { width: 100%; justify-content: center; padding: .7rem 1rem; }
  .hero-cover .hero-call { display: inline-block; }
}
@media (prefers-reduced-motion: no-preference) { .hero-cover .hero-call { opacity: 0; animation: gv-up .7s ease 1.4s forwards; } }
