/* =========================================================
   Eden Park Hotel Ischia — template Approdo 1.0.1
   Caricato automaticamente da Approdo Kit. Prefisso delle classi: .edp-
   La larghezza dei contenuti segue quella del sito (tema Approdo: 1400 px).
   Generato da tools/kit-builder/generic: modificare i sorgenti, non questo file.
   ========================================================= */

body {
  --k-ink: #17332F; --k-text: #4A5652; --k-bg: #F8F5EF; --k-alt: #EDE6D9; --k-accent: #C9A463; --k-accent-text: #80602A;
  --k-on-accent: #17332F; --k-dark: #112925; --k-on-dark: #FFFFFF; --k-line: rgba(23,51,47,.14);
  --k-head: "Prata", Georgia, serif; --k-body: "Manrope", system-ui, sans-serif; --k-radius: 18px;
  --k-fg: #FFFFFF;
  background: var(--k-bg);
}
@property --k-fg { syntax: "<color>"; inherits: true; initial-value: #FFFFFF; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 110px; }
.elementor-heading-title em { font-style: italic; font-weight: 400; }

/* ---------- Accessibilità ---------- */
.elementor a:focus-visible, .elementor button:focus-visible, .elementor .elementor-button:focus-visible,
.elementor input:focus-visible, .elementor select:focus-visible, .elementor textarea:focus-visible,
.elementor summary:focus-visible { outline: 2px solid var(--k-accent); outline-offset: 4px; border-radius: 4px; }
.elementor-widget-text-editor a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* ---------- Pulsanti ed etichette ---------- */
.edp-btn .elementor-button { min-height: 50px; display: inline-flex; align-items: center; transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s ease; }
.edp-btn .elementor-button:hover { transform: translateY(-2px); }
.edp-kicker .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; }
.edp-kicker .elementor-heading-title::before { content: ""; width: 32px; height: 1px; background: currentColor; opacity: .6; flex: none; }

/* ---------- Card, citazioni, listini ---------- */
.edp-card .elementor-widget-image img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.edp-card:hover .elementor-widget-image img { transform: scale(1.04); }
.edp-card .elementor-widget-image .elementor-widget-container, .edp-card .elementor-widget-image { overflow: hidden; border-radius: var(--k-radius); }
.edp-quote .elementor-testimonial-content { margin-bottom: 18px; }
.edp-price-row { border-bottom: 1px dashed var(--k-line); }
.edp-map iframe { border-radius: var(--k-radius); filter: grayscale(.35); }
.edp-form .elementor-field-group .elementor-field { min-height: 48px; }

/* ---------- Header del template (Elementor Pro): fisso, trasparente sulla foto, chiaro scorrendo ---------- */
.edp-header { position: fixed !important; left: 0; right: 0; top: var(--wp-admin--admin-bar--height, 0px); z-index: 999;
  background: linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,0)); transition: padding .4s ease; }
.edp-header .elementor-nav-menu--main .elementor-item, .edp-header .approdo-lang a { color: var(--k-fg) !important; }
.edp-header .elementor-menu-toggle, .edp-header .elementor-menu-toggle svg { color: var(--k-fg) !important; fill: var(--k-fg) !important; }
.edp-header .edp-head-cta .elementor-button { color: var(--k-fg) !important; border-color: var(--k-fg) !important; background: transparent !important; }
.edp-header .edp-head-cta .elementor-button:hover { background: var(--k-accent) !important; border-color: var(--k-accent) !important; color: var(--k-on-accent) !important; }
.edp-logos { position: relative; }
.edp-logo--dark { position: absolute !important; left: 0; top: 0; opacity: 0; }
.edp-header .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; justify-content: center; }
.edp-header .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
.edp-header .elementor-nav-menu--dropdown { background: var(--k-bg); margin-top: 12px; border-radius: 12px; }
.edp-header .elementor-nav-menu--dropdown .elementor-item { color: var(--k-ink) !important; }
.approdo-lang ul { list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; }
.approdo-lang a { display: inline-block; padding: 6px 8px; font: 500 13px/1 var(--k-body); letter-spacing: 1px; text-decoration: none; opacity: .8; }
.approdo-lang a[aria-current="true"], .approdo-lang a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
@supports (animation-timeline: scroll()) {
  .edp-header { animation: edp-head linear both; animation-timeline: scroll(root); animation-range: 0 160px; }
  .edp-logo--light { animation: edp-out linear both; animation-timeline: scroll(root); animation-range: 40px 160px; }
  .edp-logo--dark { animation: edp-in linear both; animation-timeline: scroll(root); animation-range: 40px 160px; }
}
@keyframes edp-head { to { --k-fg: var(--k-ink); background: color-mix(in srgb, var(--k-bg) 94%, transparent); box-shadow: 0 12px 40px -28px rgba(0,0,0,.45); padding-top: 8px; padding-bottom: 8px; backdrop-filter: blur(10px); } }
@keyframes edp-out { to { opacity: 0; } }
@keyframes edp-in { to { opacity: 1; } }
@supports not (animation-timeline: scroll()) {
  .edp-header { --k-fg: var(--k-ink); background: var(--k-bg); box-shadow: 0 12px 40px -28px rgba(0,0,0,.45); }
  .edp-logo--light { opacity: 0; } .edp-logo--dark { opacity: 1; }
}
body:not(:has(.edp-hero)) .edp-header { --k-fg: var(--k-ink); background: var(--k-bg); animation: none; }
body:not(:has(.edp-hero)) .edp-logo--light { opacity: 0; animation: none; }
body:not(:has(.edp-hero)) .edp-logo--dark { opacity: 1; animation: none; }
body:not(:has(.edp-hero)):has(.edp-header) { padding-top: 92px; }
.elementor-editor-active .edp-header, .elementor-editor-preview .edp-header { position: relative !important; top: 0; }
@media (max-width: 1024px) {
  .edp-header .edp-nav { order: 3; }
  .edp-header > .e-con:not(.edp-logos) { margin-left: auto; }
}

/* ---------- Hero ---------- */
.edp-hero .edp-hero-title .elementor-heading-title { text-wrap: balance; }
.edp-hero { overflow: hidden; }

/* ---------- Barra fissa su mobile (prenota, chiama…) ---------- */
.edp-mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; flex-wrap: nowrap !important;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; box-shadow: 0 -10px 30px -18px rgba(0,0,0,.4); }
.edp-mobilebar .elementor-widget-button { flex: 1 1 0; }
.edp-mobilebar .elementor-button { width: 100%; justify-content: center; }
@media (min-width: 1025px) { .edp-mobilebar { display: none !important; } }
@media (max-width: 1024px) { body:has(.edp-mobilebar) { padding-bottom: 72px; } }

/* ---------- Testi che compaiono scorrendo (dove il browser lo supporta) ---------- */
@supports (animation-timeline: view()) {
  .edp-reveal { animation: edp-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 55%; }
}
@keyframes edp-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

/* ---------- Pagine legali ---------- */
.edp-legal { max-width: 860px; }
.edp-legal h2 { font-family: var(--k-head); font-size: 30px; line-height: 1.2; color: var(--k-ink); margin: 1.6em 0 .5em; }
.edp-legal-note { background: var(--k-alt); border-left: 3px solid var(--k-accent); padding: 16px 20px; border-radius: 8px; }

/* ---------- Riduzione del movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  .edp-header { --k-fg: var(--k-ink); background: var(--k-bg); }
  .edp-logo--light { opacity: 0 !important; } .edp-logo--dark { opacity: 1 !important; }
  .elementor-invisible { visibility: visible !important; }
}

/* ---------- Coerenza con qualsiasi tema ---------- */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Carosello anche senza script (o con script ritardati da plugin di ottimizzazione): la fila scorre e le card non si stringono. */
.approdo-carousel.e-con-full, .approdo-carousel > .e-con-inner { flex-wrap: nowrap !important; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.approdo-carousel.e-con-full > .e-con, .approdo-carousel > .e-con-inner > .e-con { flex-shrink: 0 !important; scroll-snap-align: start; }

/* ---------- Specifico di Eden Park Hotel Ischia ---------- */

/* ---------- Eden Park: apertura con slideshow e velo ---------- */
.edp-veil { position: relative; overflow: hidden; }
.edp-veil::before { display: none !important; }
.edp-veil > .elementor-background-slideshow { z-index: 0; }
.edp-veil::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,30,27,.55) 0%, rgba(10,30,27,.18) 28%, rgba(10,30,27,.35) 55%, rgba(10,30,27,.86) 100%); }
.edp-veil > .e-con, .edp-veil > .e-con-inner { position: relative; z-index: 2; }
.edp-hero .elementor-heading-title em, .edp-band .elementor-heading-title em, .edp-pools .elementor-heading-title em,
.edp-stats .elementor-heading-title em, .edp-foot-top .elementor-heading-title em { color: #CFE6DF; }
.edp-hero-strip { border-top: 1px solid rgba(255,255,255,.28); background: rgba(10,30,27,.28); backdrop-filter: blur(8px); border-radius: 16px; }
.edp-hero-strip .elementor-icon-list-items { row-gap: 8px; }

/* ---------- Foto sovrapposte, card con foto, vetro ---------- */
.edp-stack { position: relative; }
.edp-stack .edp-stack-small { position: absolute; width: 46% !important; right: -12px; bottom: -48px; box-shadow: 0 30px 60px -30px rgba(10,30,27,.55);
  border: 8px solid var(--k-bg); border-radius: calc(var(--k-radius) + 8px); }
@media (max-width: 1024px) { .edp-stack .edp-stack-small { display: none; } }
.edp-photo-card { position: relative; transition: transform .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s ease; }
.edp-photo-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -32px rgba(10,30,27,.65); }
.edp-photo-card .elementor-heading-title, .edp-photo-card p { text-shadow: 0 1px 14px rgba(0,0,0,.45); }
.edp-glass { background: rgba(10,30,27,.55); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.18); }
.edp-near { border: 1px solid var(--k-line); transition: transform .4s ease, box-shadow .4s ease; }
.edp-near:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -28px rgba(10,30,27,.5); }
.edp-near .elementor-icon { color: var(--k-accent-text); }
.edp-request, .edp-offer-card { box-shadow: 0 24px 60px -40px rgba(10,30,27,.5); }
.edp-fact { border-bottom: 1px solid var(--k-line); }
.edp-fact .elementor-heading-title { margin: 0; }
.edp-fact-label .elementor-heading-title { text-transform: uppercase; }
.edp-note p { color: var(--k-text); }
.edp-contact-card { background: var(--k-alt); border-radius: var(--k-radius); padding: 28px; }
.edp-facts .elementor-icon-list-items { row-gap: 8px; }

/* ---------- Header: barra alta, menu Approdo, pulsante ---------- */
.edp-header { flex-direction: column !important; }
.edp-header > .edp-topbar, .edp-header > .edp-header-row { margin-left: 0 !important; width: 100%; }
.edp-topbar { border-bottom: 1px solid color-mix(in srgb, var(--k-fg) 18%, transparent); }
.edp-topbar-txt, .edp-topbar-txt p, .edp-topbar-txt a { color: var(--k-fg) !important; text-decoration: none !important; }
.edp-topbar-txt a:hover { text-decoration: underline !important; text-underline-offset: 3px; }
.edp-nav .approdo-menu { --am-color: var(--k-fg); --am-burger-color: var(--k-fg); }
.edp-header .ap-mega-panel { color: var(--k-ink); }
.elementor .edp-header .edp-logos, .elementor .edp-header .edp-head-tools { flex-shrink: 0; }
/* Un contenitore dentro un altro in Elementor è largo il 100%: senza questa regola lingue e "Prenota" finiscono fuori dallo schermo. */
.elementor .edp-header .edp-head-tools { --width: auto; width: auto; }
.edp-header .edp-nav { min-width: 0; }
@media (max-width: 1024px) {
  .edp-header-row .edp-nav { order: 3; flex-grow: 0; }
  .edp-header-row > .e-con:not(.edp-logos) { margin-left: auto; }
}
body:not(:has(.edp-hero)):has(.edp-header) { padding-top: 128px; }
@media (max-width: 1024px) { body:not(:has(.edp-hero)):has(.edp-header) { padding-top: 76px; } }

/* ---------- Pannello del mega menu ---------- */
.edp-panel-cards > .edp-panel-card { flex: 1 1 calc(33.333% - 8px); min-width: 0; }
.edp-panel-card .elementor-heading-title, .edp-panel-card p { text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.edp-panel-card { transition: transform .4s ease; }
.edp-panel-card:hover { transform: translateY(-3px); }
@media (max-width: 1024px) {
  .edp-panel { flex-direction: column !important; }
  .edp-panel-side, .edp-panel-cards { --width: 100%; }
  .edp-panel-cards > .edp-panel-card { flex: 1 1 calc(50% - 6px); }
}

/* ---------- Galleria: celle della stessa proporzione ---------- */
.elementor-widget-image-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.elementor-widget-image-gallery .gallery-item { transition: transform .5s ease; }

/* ---------- Footer ---------- */
.edp-foot-txt a { color: inherit; }
.edp-foot-logo img { max-width: 170px; }
.edp-foot-note p { opacity: .8; }

/* ---------- WhatsApp fisso (in ogni pagina) ---------- */
.edp-wa { position: fixed !important; right: 20px; bottom: 20px; z-index: 997; width: auto !important; padding: 0 !important; background: none !important; }
.edp-wa-btn .elementor-button { box-shadow: 0 14px 34px -14px rgba(10,30,27,.65); min-height: 52px; }
@media (max-width: 1024px) { body:has(.edp-mobilebar) .edp-wa { display: none; } }
@media (max-width: 767px) {
  .edp-wa { right: 14px; bottom: 14px; }
  .edp-wa-btn .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .edp-wa-btn .elementor-button { width: 54px; height: 54px; padding: 0; justify-content: center; }
  .edp-wa-btn .elementor-button-icon { margin: 0; font-size: 22px; }
}
.elementor-editor-active .edp-wa { position: relative !important; right: auto; bottom: auto; }

/* ---------- Titoli lunghi nelle lingue estere (Datenschutzerklärung, Политика конфиденциальности) ---------- */
@media (max-width: 767px) { h1.elementor-heading-title { overflow-wrap: break-word; hyphens: auto; } }
