/* ============================================================
   AS Medic — Design System skin
   Palette: navy #0B2E4F · blue #1261B5 · azure #2E8BD8 · lime #C8DF57
   ============================================================ */
:root{
  --ams-navy:#0B2E4F;
  --ams-navy2:#0D4A8C;
  --ams-blue:#1261B5;
  --ams-blue-l:#2E8BD8;
  --ams-sky:#7FB8E8;
  --ams-lime:#C8DF57;
  --ams-ink:#20303D;
  --ams-muted:#5C6E7C;
  --ams-bg:#F4F8FB;
  --ams-line:#E4EDF4;
  --ams-soft:#EAF3FB;
  --ams-radius:18px;
  --ams-shadow:0 18px 44px -22px rgba(11,46,79,.25);
}

/* ============ header ============ */
.ams-header{
  position:sticky; top:0; z-index:920;
  background:rgba(255,255,255,.97);
  backdrop-filter:saturate(1.2) blur(6px);
  border-bottom:1px solid var(--ams-line);
  transition:box-shadow .25s ease;
}
.ams-header.scrolled{ box-shadow:0 14px 34px -24px rgba(11,46,79,.5); }
.ams-wrap{ max-width:1240px; margin:0 auto; padding:0 clamp(18px,4vw,44px); }
.ams-header-row{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); height:80px; }
.ams-brand{ display:inline-flex; align-items:center; flex:0 0 auto; text-decoration:none; }
.ams-brand img{ height:50px; width:auto; max-width:270px; object-fit:contain; display:block; }

.ams-nav{ display:flex; align-items:center; gap:4px; flex:1 1 auto; justify-content:flex-end; }
.ams-nav-link{
  appearance:none; background:none; border:0; cursor:pointer;
  font-family:'Montserrat',sans-serif; font-size:13.5px; font-weight:600; letter-spacing:.01em;
  color:var(--ams-navy); text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 11px; border-radius:10px; white-space:nowrap; position:relative;
  transition:color .18s ease, background .18s ease;
}
.ams-nav-link svg{ flex:0 0 auto; }
.ams-nav-link:hover{ color:var(--ams-blue); background:var(--ams-soft); }
.ams-nav-link.on{ color:var(--ams-blue); }
.ams-nav-link.on::after{
  content:""; position:absolute; left:11px; right:11px; bottom:2px; height:3px; border-radius:3px;
  background:var(--ams-lime);
}

.ams-has-drop, .ams-has-mega{ position:relative; }
.ams-has-mega{ position:static; }

/* flyout poliambulatorio */
.ams-drop{
  position:absolute; top:calc(100% + 12px); left:-6px; min-width:248px;
  background:#fff; border:1px solid var(--ams-line); border-radius:16px;
  box-shadow:0 30px 60px -20px rgba(11,46,79,.3);
  padding:10px; opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.ams-has-drop.open .ams-drop{ opacity:1; visibility:visible; transform:none; }
.ams-drop-link{
  display:block; padding:10px 14px; border-radius:11px; font-size:14px; font-weight:500;
  color:var(--ams-ink); text-decoration:none; transition:background .15s, color .15s;
}
.ams-drop-link:hover{ background:var(--ams-soft); color:var(--ams-blue); }

/* mega menu (full width sotto header) */
.ams-mega{
  position:absolute; left:0; right:0; top:100%;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  pointer-events:none;
}
.ams-has-mega.open .ams-mega{ opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.ams-mega-panel{
  background:#fff; border-top:1px solid var(--ams-line);
  border-bottom:1px solid var(--ams-line);
  box-shadow:0 40px 80px -40px rgba(11,46,79,.45);
}
.ams-mega-inner{ padding-top:34px; padding-bottom:30px; }

.ams-mega-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.ams-tag{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ams-blue);
}
.ams-tag-dot{ width:9px; height:9px; border-radius:50%; background:var(--ams-lime); box-shadow:0 0 0 4px rgba(200,223,87,.25); }
.ams-mega-head h4{
  margin:10px 0 6px; font-family:'Montserrat',sans-serif; font-size:clamp(19px,2.2vw,26px);
  font-weight:800; letter-spacing:-.01em; color:var(--ams-navy); line-height:1.18;
}
.ams-mega-head p{ margin:0; color:var(--ams-muted); font-size:14.5px; max-width:560px; line-height:1.6; }
.ams-link-arrow{
  flex:0 0 auto; text-decoration:none; color:var(--ams-navy);
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:13.5px;
  display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px;
  background:var(--ams-soft); transition:background .18s, color .18s, transform .18s;
}
.ams-link-arrow i{ font-style:normal; transition:transform .18s; }
.ams-link-arrow:hover{ background:#0D4A8C; color:#fff; }
.ams-link-arrow:hover i{ transform:translateX(3px); }

.ams-mega-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
  background:var(--ams-bg); border:1px solid var(--ams-line); border-radius:18px; padding:16px;
}
.ams-mega-col{ display:flex; flex-direction:column; }
.ams-mega-title{
  display:flex; align-items:center; gap:8px; margin:2px 4px 12px;
  font-family:'Montserrat',sans-serif; font-size:11px; font-weight:800; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ams-navy);
}
.ams-ico{ width:8px; height:8px; border-radius:3px; flex:0 0 auto; transform:rotate(45deg); }
.ams-mega-link{
  position:relative; display:flex; flex-direction:column; gap:2px;
  padding:11px 36px 11px 14px; border-radius:12px; text-decoration:none;
  border-left:2px solid transparent; transition:background .15s, border-color .15s;
}
.ams-mega-link:hover{ background:#fff; border-left-color:var(--g,#1261B5); box-shadow:0 8px 20px -12px rgba(11,46,79,.28); }
.ams-mega-lbl{ font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700; color:var(--ams-ink); }
.ams-mega-link:hover .ams-mega-lbl{ color:var(--g,#1261B5); }
.ams-mega-link small{ font-size:12px; line-height:1.45; color:var(--ams-muted); max-width:230px; }
.ams-mega-link i{
  position:absolute; right:12px; top:50%; transform:translateY(-50%); font-style:normal;
  color:var(--g,#1261B5); opacity:0; transition:opacity .15s, right .15s;
}
.ams-mega-link:hover i{ opacity:1; right:10px; }

.ams-mega-feat{
  margin-top:14px; display:flex; align-items:center; gap:18px;
  background:linear-gradient(100deg,#0B2E4F 0%,#0D4A8C 70%,#1261B5 120%);
  color:#fff; border-radius:18px; padding:12px 16px 12px 12px;
}
.ams-feat-media{ flex:0 0 auto; }
.ams-feat-media img{ width:118px; height:88px; object-fit:cover; border-radius:12px; display:block; }
.ams-feat-body{ flex:1 1 auto; min-width:0; }
.ams-feat-kicker{
  display:block; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ams-lime); font-weight:800; margin-bottom:2px;
}
.ams-feat-body strong{ font-family:'Montserrat',sans-serif; font-size:15.5px; display:block; margin-bottom:3px; }
.ams-feat-body p{ margin:0; font-size:13px; color:rgba(255,255,255,.82); line-height:1.5; }
.ams-btn-feat{ background:var(--ams-lime); color:#16324a !important; font-weight:800; box-shadow:0 12px 26px -14px rgba(0,0,0,.5); }

/* actions / CTA */
.ams-actions{ display:flex; align-items:center; gap:10px; margin-left:6px; flex:0 0 auto; }
.ams-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Montserrat',sans-serif; font-size:13.5px; font-weight:700;
  padding:12px 18px; border-radius:999px; text-decoration:none; border:0; cursor:pointer;
  white-space:nowrap; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ams-btn-primary{
  background:linear-gradient(135deg,#0D4A8C,#1261B5); color:#fff;
  box-shadow:0 12px 26px -12px rgba(18,97,181,.7);
}
.ams-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(18,97,181,.85); }
.ams-btn svg{ flex:0 0 auto; }

.ams-burger{
  display:none; appearance:none; background:none; border:0; cursor:pointer;
  width:42px; height:42px; border-radius:12px; background:var(--ams-soft);
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.ams-burger span{ width:20px; height:2.4px; border-radius:2px; background:var(--ams-navy); transition:.25s; }
.ams-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.4px) rotate(45deg); }
.ams-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.ams-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.4px) rotate(-45deg); }

/* mobile menu */
.ams-mobile{
  position:absolute; top:100%; left:0; right:0; z-index:930;
  background:#fff; border-bottom:1px solid var(--ams-line);
  box-shadow:0 30px 50px -28px rgba(11,46,79,.4);
  max-height:0; overflow:hidden; transition:max-height .35s ease;
  visibility:hidden;
}
.ams-mobile.open{ max-height:calc(100vh - 80px); overflow-y:auto; visibility:visible; }
.ams-mobile{ padding:0 clamp(18px,4vw,44px); }
.ams-mobile .ams-m-link{
  display:block; padding:13px 6px; color:var(--ams-ink); text-decoration:none;
  font-family:'Montserrat',sans-serif; font-weight:600; font-size:15px; border-bottom:1px solid var(--ams-line);
}
.ams-mobile .ams-m-link:last-child{ border-bottom:0; }
.ams-mobile .ams-m-all{ color:var(--ams-blue); font-weight:800; }
.ams-m-group{ border-bottom:1px solid var(--ams-line); }
.ams-m-group summary{
  list-style:none; cursor:pointer; padding:13px 6px;
  font-family:'Montserrat',sans-serif; font-weight:600; font-size:15px; color:var(--ams-ink);
  display:flex; align-items:center; justify-content:space-between;
}
.ams-m-group summary::-webkit-details-marker{ display:none; }
.ams-m-group summary::after{ content:"+"; font-size:20px; font-weight:400; color:var(--ams-blue); }
.ams-m-group[open] summary::after{ content:"\2013"; }
.ams-m-sub{ padding:2px 0 10px 14px; }
.ams-m-sub .ams-m-link{ font-size:14px; font-weight:500; padding:10px 6px; border-bottom:0; }
.ams-m-cat{
  margin:10px 0 2px; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ams-blue);
}
.ams-m-cta{ margin:16px 0 22px; width:100%; }

/* ============ base typo skin ============ */
body{ font-family:'Inter','Segoe UI',system-ui,sans-serif; color:var(--ams-ink); }
body.home, body{ background:#fff; }
#content{ width:100%; }

/* hide old theme header/footer leftovers */
.site-header.dynamic-header{ display:none !important; }
#site-footer{ display:none; }

/* topbar refinements */
.am-topbar{ background:var(--ams-navy) !important; }
.am-topbar-inner{ font-family:'Montserrat',sans-serif; }

/* ============ Elementor skin ============ */
.elementor-element .elementor-heading-title,
.elementor-widget-heading .elementor-heading-title{ text-wrap:balance; }

/* ----- HOME HERO (photo reveal + left align) ----- */
body.home .elementor-element-hh00001{
  overflow:hidden;
  padding-left:clamp(20px,6vw,90px) !important;
  padding-right:clamp(20px,6vw,90px) !important;
  align-items:flex-start !important;
}
body.home .elementor-element-hh00001::before{
  background:linear-gradient(100deg,
    rgba(7,32,58,.96) 0%,
    rgba(11,46,79,.9) 34%,
    rgba(13,74,140,.55) 62%,
    rgba(18,97,181,.12) 100%) !important;
}
body.home .elementor-element-hh00001 .elementor-widget,
body.home .elementor-element-hh00001 > .elementor-widget-heading{
  max-width:650px; text-align:left !important; align-self:flex-start !important;
}
body.home .elementor-element-hh00001 .elementor-heading-title{ text-align:left !important; }
body.home .elementor-element-hh00001 .elementor-element-hh00002{ text-align:left !important; }
body.home .elementor-element-hh00001 .elementor-element-hh00002 .elementor-heading-title{
  letter-spacing:.28em !important;
}
body.home .elementor-element-hh00001 .elementor-element-hh00003 .elementor-heading-title{
  font-size:clamp(34px,4.6vw,58px) !important; line-height:1.06 !important;
}
body.home .elementor-element-hh00005{ justify-content:flex-start !important; max-width:650px; }
@media (max-width:900px){
  body.home .elementor-element-hh00001{ background-position:62% center !important; }
}

/* ----- generic premium sections/cards ----- */
.am-content-card{
  box-shadow:var(--ams-shadow) !important;
}
body .e-con.e-con-boxed .elementor-widget-text-editor p,
body .elementor-text-editor p{ line-height:1.75; }

/* buttons skin */
.elementor-button{
  border-radius:999px !important;
  box-shadow:0 14px 30px -16px rgba(18,97,181,.8);
  transition:transform .18s ease, box-shadow .18s ease !important;
}
.elementor-button:hover{ transform:translateY(-2px) !important; }
.elementor-button-link .elementor-button-content-wrapper{ gap:8px; }

/* icon boxes -> squircle gradient */
.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{
  background:linear-gradient(150deg,#0D4A8C,#1261B5) !important;
  box-shadow:0 12px 24px -10px rgba(18,97,181,.7) !important;
  border-radius:18px !important;
}

/* FAQ style */
.elementor-accordion .elementor-tab-title{ border-radius:14px; }
.elementor-accordion-item{ border:1px solid var(--ams-line) !important; border-radius:16px !important; margin-bottom:10px; overflow:hidden; }

/* tables/copy pages cards general breathing */
.page .elementor-widget-text-editor{ font-size:15.5px; color:#33424e; }

/* ============ responsive ============ */
@media (max-width:1240px){
  .ams-mega-grid{ grid-template-columns:repeat(2,1fr); }
  .ams-mega-col:nth-child(n+3){ margin-top:4px; }
}
@media (max-width:1280px) and (min-width:1121px){
  .ams-header-row{ gap:10px; }
  .ams-nav{ gap:0; }
  .ams-nav-link{ font-size:12.5px; padding:8px 8px; }
}
@media (max-width:1120px){
  .ams-nav{ display:none; }
  .ams-actions .ams-btn-primary{ display:none; }
  .ams-burger{ display:inline-flex; }
  .ams-mega,.ams-drop{ display:none; }
  .ams-has-mega,.ams-has-drop{ position:relative; }
}
@media (max-width:640px){
  .ams-header-row{ height:70px; }
  .ams-brand img{ height:42px; }
  .am-topbar-inner{ justify-content:center; }
}
@media (max-width:560px){
  .ams-mega-feat{ flex-wrap:wrap; }
  .ams-btn-feat{ width:100%; }
}

/* ============ accessibilita' + rifiniture ============ */
.ams-skip{ position:absolute; left:-9999px; top:0; z-index:100000; background:#0B2E4F; color:#fff; padding:10px 18px; border-radius:0 0 12px 0; font-weight:700; text-decoration:none; font-size:14px; }
.ams-skip:focus{ left:0; }
:focus-visible{ outline:3px solid #2E8BD8; outline-offset:2px; }
.ams-f-field input:focus-visible, .ams-f-field select:focus-visible, .ams-f-field textarea:focus-visible{ outline:2px solid var(--ams-blue); box-shadow:0 0 0 4px rgba(18,97,181,.18); }
body.ams-nav-lock{ overflow:hidden; }
.ams-mobile.open{ max-height:calc(100dvh - 70px); }
main [id], section[id], .ams-c-h[id]{ scroll-margin-top:96px; }
@media (max-width:1280px) and (min-width:1121px){
  .ams-brand img{ max-width:200px; height:44px; }
  .ams-actions .ams-btn-primary{ padding:10px 14px; font-size:12.5px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}
