/*
Theme Name: Emanuele Preziosi Divi Child
Description: Design system del nuovo sito personale del Dott. Emanuele Preziosi.
Author: Emanuele Preziosi
Template: Divi
Version: 0.3.1
Text Domain: emanuele-preziosi-divi-child
*/

:root {
  --ep-bg: #f6f1e8;
  --ep-surface: #fffdf9;
  --ep-surface-soft: #eee6da;
  --ep-text: #1f2a27;
  --ep-muted: #53615b;
  --ep-primary: #8f503e;
  --ep-primary-hover: #713c2f;
  --ep-accent: #1f6b68;
  --ep-border: #d8cec0;
  --ep-focus: #075f5c;
  --ep-font-heading: Georgia, Cambria, "Times New Roman", serif;
  --ep-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ep-step--1: clamp(.875rem,.84rem + .12vw,.95rem);
  --ep-step-0: clamp(1rem,.96rem + .18vw,1.125rem);
  --ep-step-1: clamp(1.25rem,1.08rem + .65vw,1.65rem);
  --ep-step-2: clamp(1.65rem,1.35rem + 1.1vw,2.35rem);
  --ep-step-3: clamp(2.3rem,1.72rem + 2.1vw,4.25rem);
  --ep-space-1: .5rem;
  --ep-space-2: .85rem;
  --ep-space-3: 1.25rem;
  --ep-space-4: 2rem;
  --ep-space-5: clamp(3rem,7vw,6rem);
  --ep-container: 1180px;
  --ep-radius: 16px;
  --ep-radius-sm: 9px;
  --ep-shadow: 0 18px 50px rgba(31,42,39,.09);
}

html { scroll-behavior: smooth; }
body { background: var(--ep-bg); color: var(--ep-text); font-family: var(--ep-font-body); font-size: var(--ep-step-0); line-height: 1.68; overflow-wrap: break-word; }
body, input, textarea, select, button { font-family: var(--ep-font-body); }
h1,h2,h3,h4,h5,h6 { color: var(--ep-text); font-family: var(--ep-font-heading); font-weight: 600; letter-spacing: -.025em; line-height: 1.12; padding-bottom: .45em; }
h1 { font-size: var(--ep-step-3); }
h2 { font-size: var(--ep-step-2); }
h3 { font-size: var(--ep-step-1); }
p { padding-bottom: 1em; }
a { color: var(--ep-accent); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--ep-primary-hover); }
:focus-visible { outline: 3px solid var(--ep-focus) !important; outline-offset: 3px; }
.ep-skip-link { position: fixed; left: 1rem; top: -100px; z-index: 999999; padding: .75rem 1rem; background: var(--ep-text); color: white; border-radius: var(--ep-radius-sm); }
.ep-skip-link:focus { top: 1rem; color: white; }

.et_pb_section { background: transparent; }
.ep-section { padding: var(--ep-space-5) 0; }
.ep-section .et_pb_row, .ep-site-header .et_pb_row, .ep-site-footer .et_pb_row { width: min(88%, var(--ep-container)); max-width: var(--ep-container); }
.ep-eyebrow { color: var(--ep-primary); font-size: var(--ep-step--1); font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.ep-lead { color: var(--ep-muted); font-size: clamp(1.08rem,1rem + .35vw,1.34rem); max-width: 62ch; }
.ep-muted { color: var(--ep-muted); }
.ep-kicker { color: var(--ep-primary); font-weight: 700; }

.et_pb_button, .ep-button .et_pb_button { background: var(--ep-primary) !important; border: 2px solid var(--ep-primary) !important; border-radius: var(--ep-radius-sm) !important; color: white !important; font-size: 1rem !important; font-weight: 700 !important; line-height: 1.2 !important; padding: .8rem 1.15rem !important; transition: background .18s ease,border-color .18s ease,transform .18s ease; }
.et_pb_button:hover, .ep-button .et_pb_button:hover { background: var(--ep-primary-hover) !important; border-color: var(--ep-primary-hover) !important; padding: .8rem 1.15rem !important; transform: translateY(-1px); }
.ep-button-secondary .et_pb_button { background: transparent !important; border-color: var(--ep-text) !important; color: var(--ep-text) !important; }
.ep-button-secondary .et_pb_button:hover { background: var(--ep-text) !important; color: white !important; }
.ep-button-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.ep-button-row .et_pb_button_module_wrapper { margin: 0 !important; }
.ep-hero .et_pb_button_module_wrapper, .ep-final-cta .et_pb_button_module_wrapper { display: inline-block; margin-right: .75rem; }

.ep-site-header { background: rgba(255,253,249,.97) !important; border-bottom: 1px solid var(--ep-border); padding: .65rem 0 !important; }
.ep-site-header .et_pb_row { align-items: center; display: flex; padding: 0; }
.ep-wordmark { margin-bottom: 0 !important; }
.ep-wordmark a { color: var(--ep-text); font-family: var(--ep-font-heading); font-size: 1.18rem; font-weight: 700; text-decoration: none; }
.ep-main-nav { background: transparent !important; margin-bottom: 0 !important; }
.ep-main-nav .et_pb_text_inner { align-items: center; display: flex; justify-content: center; }
.ep-desktop-nav { align-items: center; display: flex; gap: 1.8rem; }
.ep-desktop-nav a, .ep-mobile-menu a { color: var(--ep-text); font-weight: 650; text-decoration: none; }
.ep-desktop-nav a[aria-current="page"] { color: var(--ep-primary); }
.ep-mobile-menu { display: none; position: relative; }
.ep-mobile-menu summary { align-items: center; box-sizing: border-box; color: var(--ep-accent); cursor: pointer; display: flex; font-weight: 750; justify-content: center; list-style: none; min-height: 44px; min-width: 44px; padding: .5rem; }
.ep-mobile-menu summary::-webkit-details-marker { display: none; }
.ep-mobile-menu summary:after { content: "☰"; font-size: 1.45rem; }
.ep-mobile-menu[open] summary:after { content: "×"; }
.ep-mobile-menu nav { background: var(--ep-surface); border: 1px solid var(--ep-border); border-radius: var(--ep-radius-sm); box-shadow: var(--ep-shadow); display: grid; min-width: 210px; padding: .55rem; position: absolute; right: 0; top: 100%; z-index: 1000; }
.ep-mobile-menu nav a { min-height: 44px; padding: .65rem .8rem; text-align: left; }
.ep-main-nav .et-menu > li > a { color: var(--ep-text) !important; font-weight: 650; padding-bottom: 18px; padding-top: 18px; }
.ep-main-nav .et-menu > li.current-menu-item > a { color: var(--ep-primary) !important; }
.ep-header-cta { text-align: right; margin-bottom: 0 !important; }

.ep-hero { padding-top: clamp(3rem,7vw,7rem); }
.ep-hero .et_pb_row { align-items: center; display: flex; gap: clamp(2rem,5vw,5rem); }
.ep-hero-copy { max-width: 690px; }
.ep-hero-image img, .ep-profile-image img { border-radius: var(--ep-radius); box-shadow: var(--ep-shadow); height: auto; object-fit: cover; width: 100%; }
.ep-hero-image img { aspect-ratio: 4/5; object-position: center 22%; }
.ep-profile-image img { aspect-ratio: 4/5; object-position: center 20%; }
.ep-location { align-items: center; color: var(--ep-muted); display: flex; gap: .55rem; margin-top: 1.4rem; }
.ep-location:before { background: var(--ep-accent); border-radius: 50%; content: ""; height: .55rem; width: .55rem; }

.ep-intro .et_pb_row { background: var(--ep-surface); border: 1px solid var(--ep-border); border-radius: var(--ep-radius); box-shadow: var(--ep-shadow); padding: clamp(1.6rem,4vw,3.4rem); }
.ep-section-heading { max-width: 740px; margin-bottom: 2rem; }
.ep-card-row { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.ep-card-row:after { display: none; }
.ep-card-row .et_pb_column { background: var(--ep-surface); border: 1px solid var(--ep-border); border-radius: var(--ep-radius); margin: 0 !important; padding: clamp(1.3rem,2.5vw,2rem); width: auto !important; }
.ep-process-steps { grid-template-columns: repeat(4,minmax(0,1fr)); }
.ep-card-number { color: var(--ep-primary); font-family: var(--ep-font-heading); font-size: 1.55rem; font-weight: 700; }
.ep-focus .et_pb_row { align-items: center; display: flex; }
.ep-focus-panel { background: var(--ep-text); border-radius: var(--ep-radius); color: #fff; padding: clamp(1.6rem,4vw,3.4rem); }
.ep-focus-panel h2, .ep-focus-panel h3, .ep-focus-panel a { color: #fff; }
.ep-focus-panel .ep-eyebrow { color: #e3a994; }
.ep-list { columns: 2; column-gap: 2rem; margin: .5rem 0 0; padding-left: 1.2rem; }
.ep-list li { break-inside: avoid; margin-bottom: .45rem; }
.ep-process { background: var(--ep-surface-soft) !important; }
.ep-process .ep-card-row .et_pb_column { background: var(--ep-surface); }
.ep-profile .et_pb_row { align-items: center; display: flex; gap: clamp(2rem,5vw,5rem); }
.ep-mode .et_pb_row { border-bottom: 1px solid var(--ep-border); border-top: 1px solid var(--ep-border); padding: clamp(2rem,5vw,4rem) 0; }
.ep-final-cta .et_pb_row { background: var(--ep-accent); border-radius: var(--ep-radius); color: white; padding: clamp(1.6rem,5vw,4rem); text-align: center; }
.ep-final-cta h2, .ep-final-cta a:not(.et_pb_button), .ep-final-cta .ep-muted { color: white; }
.ep-final-cta .ep-button-row { justify-content: center; }
.ep-final-cta .ep-button-secondary .et_pb_button { border-color: white !important; color: white !important; }
.ep-final-cta .ep-button-secondary .et_pb_button:hover { background: white !important; color: var(--ep-text) !important; }

.ep-site-footer { background: var(--ep-text) !important; color: #e8ecea; padding: 3rem 0 1.5rem !important; }
.ep-site-footer h2,.ep-site-footer h3,.ep-site-footer a { color: white; }
.ep-site-footer a { text-underline-offset: .2em; }
.ep-footer-row { display: grid !important; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.ep-footer-row:after { display:none; }
.ep-footer-row .et_pb_column { margin: 0 !important; width: auto !important; }
.ep-footer-meta { border-top: 1px solid rgba(255,255,255,.18); font-size: .9rem; margin-top: 2rem; padding-top: 1.2rem; }

@media (min-width: 981px) {
  .ep-hero-compact-follow { padding-bottom: clamp(2rem,4vw,4rem); }
}

@media (max-width: 980px) {
  .ep-site-header .et_pb_row { display: grid; grid-template-columns: 1fr auto; }
  .ep-site-header .et_pb_column { margin: 0 !important; width: auto !important; }
  .ep-site-header .et_pb_column:nth-child(2) { grid-column: 2; grid-row: 1; justify-self: end; }
  .ep-header-cta { display: none !important; }
  .ep-main-nav .et_pb_text_inner { justify-content: flex-end; }
  .ep-desktop-nav { display: none; }
  .ep-mobile-menu { display: block; }
  .ep-hero .et_pb_row, .ep-profile .et_pb_row, .ep-focus .et_pb_row { display: flex; flex-direction: column; }
  .ep-hero .et_pb_column, .ep-profile .et_pb_column, .ep-focus .et_pb_column { margin: 0 0 1.5rem !important; width: 100% !important; }
  .ep-hero .et_pb_row { gap: 1.5rem; }
  .ep-hero .et_pb_column { margin-bottom: 0 !important; }
  .ep-hero-image { max-width: 580px; margin: 0 auto; }
  .ep-card-row { grid-template-columns: 1fr; }
  .ep-footer-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .ep-section .et_pb_row, .ep-site-header .et_pb_row, .ep-site-footer .et_pb_row { width: min(90%, var(--ep-container)); }
  .ep-section { padding: clamp(2.7rem,12vw,4.3rem) 0; }
  .ep-hero { padding-top: 2.6rem; }
  .ep-hero h1 { font-size: clamp(2.08rem,9.4vw,2.6rem); line-height: 1.07; }
  .ep-hero .ep-eyebrow { line-height: 1.3; margin-bottom: .2rem !important; }
  .ep-button-row { align-items: stretch; flex-direction: column; }
  .ep-hero .et_pb_button_module_wrapper, .ep-final-cta .et_pb_button_module_wrapper { display: block; margin-bottom: .5rem !important; margin-right: 0; }
  .ep-hero .et_pb_button_module_wrapper .et_pb_button { box-sizing: border-box; display: block; text-align: center; width: 100%; }
  .ep-hero .ep-button-secondary { background: transparent !important; border-color: var(--ep-primary) !important; color: var(--ep-primary) !important; }
  .ep-hero .ep-button-secondary:hover { background: var(--ep-primary) !important; color: white !important; }
  .ep-profile-image-compact-mobile img { aspect-ratio: 4/3; object-position: center 42%; }
  .ep-list { columns: 1; }
  .ep-footer-row { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
