/* =============================================================
   Emiliapro Guide ai Prezzi — Services System matching style
   ============================================================= */
:root{
  --egp-purple:#2a0d32;
  --egp-purple-btn:#6f2383;
  --egp-purple-dark:#4a1658;
  --egp-purple-light:#f3eaf7;
  --egp-purple-border:#d6b8e0;
  --egp-border:#e0e2e8;
  --egp-soft:#f6f7fa;
  --egp-row:#f1f2f6;
  --egp-text:#1a1a2e;
  --egp-muted:#666672;
  --egp-input-border:#b0b3bb;
  --egp-white:#ffffff;
  --egp-radius:6px;
  --egp-max:1056px;
  --egp-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

.egp-page *,
.egp-guide-detail *,
.egp-page *::before,
.egp-page *::after,
.egp-guide-detail *::before,
.egp-guide-detail *::after{box-sizing:border-box;}

body.egp-full-page .widget-area,
body.egp-full-page #secondary,
body.egp-full-page #sidebar,
body.egp-full-page aside.widget-area,
body.egp-full-page .site-sidebar,
body.egp-full-page .primary-sidebar{display:none!important;}
body.egp-full-page .entry-header,
body.egp-full-page header.entry-header,
body.egp-full-page .page-header{display:none!important;}
body.egp-full-page #primary,
body.egp-full-page #content,
body.egp-full-page .site-content,
body.egp-full-page .content-area,
body.egp-full-page main.site-main,
body.egp-full-page .entry-content{width:100%!important;max-width:100%!important;float:none!important;margin:0!important;padding:0!important;}
body.egp-full-page .container,
body.egp-full-page .site-content>.wrap,
body.egp-full-page #page>.wrap{max-width:100%!important;padding-left:0!important;padding-right:0!important;}

.egp-page,
.egp-guide-detail,
.egp-page input,
.egp-page button,
.egp-guide-detail input,
.egp-guide-detail button{font-family:var(--egp-font)!important;color:var(--egp-text);}

/* =============================================================
   Common layout / typography — matched to services plugin
   ============================================================= */
.egp-page{max-width:var(--egp-max);margin:0 auto;padding:40px 24px 80px;font-size:16px;line-height:1.6;color:var(--egp-text);}
.egp-h1{font-size:36px;line-height:1.15;font-weight:700;letter-spacing:0;margin:0 0 14px;color:var(--egp-text);}
.egp-lead{font-size:16px;line-height:1.6;color:var(--egp-muted);max-width:720px;margin:0 0 32px;}
.egp-muted{color:var(--egp-muted);}
.egp-btn{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 22px;border-radius:var(--egp-radius);border:2px solid transparent;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;line-height:1;transition:all .15s ease;}
.egp-btn-primary{background:var(--egp-purple-btn);border-color:var(--egp-purple-btn);color:#fff!important;}
.egp-btn-primary:hover{background:var(--egp-purple-dark);border-color:var(--egp-purple-dark);color:#fff!important;text-decoration:none;}

/* =============================================================
   Main guide list — same spacing/font as services list
   ============================================================= */
.egp-guides-page{padding-top:40px;}
.egp-guide-category-list{margin-top:8px;}
.egp-guide-category-block{margin:0 0 38px;}
.egp-guide-category-block h2{font-size:18px;line-height:1.35;font-weight:700;margin:0 0 8px;color:var(--egp-text);}
.egp-guide-category-block h2 a{color:inherit;text-decoration:none;}
.egp-guide-category-block h2 a:hover{text-decoration:underline;}
.egp-category-desc{font-size:14px;color:var(--egp-muted);margin:0 0 12px;line-height:1.55;}
.egp-guide-links-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 34px;}
.egp-guide-link{display:block;padding:14px 12px 14px 0;border-bottom:1px solid var(--egp-border);color:var(--egp-purple-btn)!important;text-decoration:none;font-size:15px;font-weight:500;line-height:1.4;transition:color .12s;}
.egp-guide-link:hover{text-decoration:underline;color:var(--egp-purple-dark)!important;}
.egp-simple-breadcrumb{display:flex;align-items:center;gap:8px;margin:0 0 18px;font-size:13px;color:var(--egp-muted);flex-wrap:wrap;}
.egp-simple-breadcrumb a{color:var(--egp-muted);text-decoration:none;}
.egp-simple-breadcrumb a:hover{color:var(--egp-purple-btn);text-decoration:underline;}

/* =============================================================
   Single guide detail
   ============================================================= */
.egp-guide-detail{width:100%;overflow:hidden;font-size:16px;line-height:1.6;color:var(--egp-text);}
.egp-guide-hero-wrap{max-width:1810px;margin:28px auto 0;padding:0 28px;box-sizing:border-box;}
.egp-guide-hero{height:430px;border-radius:6px;background-position:center;background-size:cover;background-repeat:no-repeat;background-color:#eef0f5;}
.egp-guide-hero-placeholder{background:linear-gradient(135deg,#edf0f6,#f8f9fb);}
.egp-guide-article{max-width:var(--egp-max);margin:0 auto;padding:0 24px 88px;box-sizing:border-box;}
.egp-breadcrumb-card{background:#fff;border-radius:6px 6px 0 0;margin:-48px 0 0;min-height:70px;display:flex;align-items:center;padding:0 28px;position:relative;z-index:4;box-shadow:0 -1px 0 rgba(0,0,0,.02);max-width:100%;}
.egp-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.4;color:var(--egp-muted);white-space:normal;flex-wrap:wrap;}
.egp-breadcrumb a{color:var(--egp-muted);text-decoration:underline;text-underline-offset:3px;}
.egp-breadcrumb a:hover{color:var(--egp-purple-btn);}
.egp-breadcrumb span{color:var(--egp-text);}
.egp-home-icon{display:inline-flex;align-items:center;color:var(--egp-muted)!important;text-decoration:none!important;line-height:1;}
.egp-home-icon svg{width:16px;height:16px;display:block;}
.egp-guide-head{max-width:1000px;padding:34px 0 18px;}
.egp-guide-head h1{font-size:42px;line-height:1.15;font-weight:700;letter-spacing:0;margin:0 0 14px;color:var(--egp-text);}
.egp-guide-head p{margin:0;font-size:16px;color:var(--egp-muted);line-height:1.6;}
.egp-content{max-width:720px;font-size:16px;line-height:1.7;color:var(--egp-text);padding:36px 0 24px;}
.egp-content p{margin:0 0 24px;}
.egp-content h2{font-size:30px;line-height:1.2;margin:48px 0 18px;font-weight:700;letter-spacing:0;}
.egp-content h3{font-size:22px;line-height:1.25;margin:36px 0 14px;font-weight:700;}
.egp-content ul,.egp-content ol{margin:0 0 26px 26px;}
.egp-content li{margin:7px 0;}
.egp-content a{color:var(--egp-text);text-decoration:underline;}

/* =============================================================
   CTA — same professional scale as services system, not oversized
   ============================================================= */
.egp-guide-cta{background:var(--egp-purple);color:#fff;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:36px 24px;box-sizing:border-box;}
.egp-cta-inner{max-width:var(--egp-max);margin:0 auto;}
.egp-cta-inner h3{font-size:18px;line-height:1.35;margin:0 0 20px;color:#fff;font-weight:700;letter-spacing:0;}
.egp-cta-inner label{display:block;font-size:15px;font-weight:600;margin:0 0 8px;color:#fff;}
.egp-cta-row{display:flex;align-items:center;gap:24px;max-width:720px;}
.egp-cta-cap{width:420px;max-width:100%;height:50px;border:0;border-radius:var(--egp-radius);background:#fff;color:var(--egp-text);padding:0 14px;font-size:16px;font-weight:400;outline:none;box-sizing:border-box;}
.egp-cta-cap:focus{box-shadow:0 0 0 3px rgba(111,35,131,.16);}
.egp-cta-error{color:#ffd9e1;margin:10px 0 0;font-weight:600;font-size:14px;}
.egp-after-table-cta{margin-top:48px;}
.egp-main-cta{margin-top:26px;margin-bottom:48px;}

/* =============================================================
   Tables — clean Instapro/Services-like table scale
   ============================================================= */
.egp-price-tables{margin-top:36px;}
.egp-table-block{margin:0 0 54px;}
.egp-table-block h2{font-size:30px;line-height:1.2;letter-spacing:0;font-weight:700;margin:0 0 18px;color:var(--egp-text);}
.egp-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.egp-price-table{width:100%;min-width:720px;border-collapse:collapse;border:1px solid #d7d3df;font-size:16px;line-height:1.45;color:var(--egp-text);}
.egp-price-table th{background:var(--egp-purple-light);font-size:16px;font-weight:700;text-align:left;padding:18px 20px;border:1px solid #d7d3df;}
.egp-price-table td{padding:18px 20px;border:1px solid #d7d3df;vertical-align:middle;}
.egp-price-table tbody tr:nth-child(odd) td{background:#f1f2f6;}
.egp-price-table tbody tr:nth-child(even) td{background:#fff;}

/* =============================================================
   Cities
   ============================================================= */
.egp-cities-block{background:#f6f7fa;margin:48px 0 0;padding:30px;border-radius:8px;}
.egp-cities-block h2{font-size:24px;line-height:1.2;margin:0 0 18px;font-weight:700;}
.egp-cities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 28px;}
.egp-cities-grid a{color:var(--egp-purple-btn);font-weight:600;text-decoration:none;border-bottom:1px solid #dedbe5;padding:9px 0;font-size:15px;line-height:1.4;}
.egp-cities-grid a:hover{text-decoration:underline;}

/* =============================================================
   Sticky CTA
   ============================================================= */
.egp-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:1000;transform:translateY(105%);transition:transform .22s ease;box-shadow:0 -6px 20px rgba(0,0,0,.12);}
.egp-sticky-cta.egp-show{transform:translateY(0);}
.egp-sticky-cta .egp-guide-cta{margin:0;width:100%;padding:18px 24px;}
.egp-sticky-cta .egp-cta-inner h3{display:none;}
.egp-sticky-cta .egp-cta-inner{display:flex;align-items:center;gap:20px;}
.egp-sticky-cta label{font-size:14px;margin:0 0 6px;}
.egp-sticky-cta .egp-cta-row{gap:14px;max-width:none;}
.egp-sticky-cta .egp-cta-cap{height:46px;width:310px;font-size:15px;}
.egp-sticky-cta .egp-btn{height:46px;font-size:15px;padding:0 20px;}

@media (max-width: 980px){
  .egp-guide-links-grid{grid-template-columns:repeat(2,1fr);}
  .egp-guide-head h1{font-size:36px;}
  .egp-content{font-size:16px;}
  .egp-cities-grid{grid-template-columns:repeat(2,1fr);}
  .egp-sticky-cta .egp-cta-inner{display:block;}
}
@media (max-width: 640px){
  .egp-page{padding:40px 20px 70px;}
  .egp-h1{font-size:32px;}
  .egp-lead{font-size:15px;}
  .egp-guide-links-grid{grid-template-columns:1fr;gap:0;}
  .egp-guide-hero-wrap{padding:0 14px;margin-top:16px;}
  .egp-guide-hero{height:250px;}
  .egp-guide-article{padding:0 20px 80px;}
  .egp-breadcrumb-card{margin-top:-28px;min-height:62px;padding:0 16px;}
  .egp-breadcrumb{font-size:13px;gap:8px;}
  .egp-guide-head{padding-top:26px;}
  .egp-guide-head h1{font-size:32px;}
  .egp-guide-head p{font-size:15px;}
  .egp-content{font-size:16px;padding-top:22px;}
  .egp-content h2,.egp-table-block h2{font-size:26px;}
  .egp-guide-cta{padding:30px 20px;}
  .egp-cta-inner h3{font-size:17px;}
  .egp-cta-row{display:block;}
  .egp-cta-cap{width:100%;height:50px;font-size:16px;margin-bottom:14px;}
  .egp-btn{width:100%;height:48px;font-size:15px;}
  .egp-price-table{font-size:15px;min-width:640px;}
  .egp-price-table th{font-size:15px;padding:14px;}
  .egp-price-table td{padding:14px;}
  .egp-cities-block{padding:22px 18px;}
  .egp-cities-grid{grid-template-columns:1fr;}
  .egp-sticky-cta{display:none;}
}

/* =============================================================
   v2.2 strict Services-System typography/layout overrides
   These rules intentionally use higher specificity to avoid theme styles
   making Guide pages look oversized/heavy.
   ============================================================= */
html body.egp-full-page #egp-plugin-page,
html body.egp-full-page .egp-plugin-page-main{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  float:none!important;
}

html body.egp-full-page .egp-page.egp-guides-page,
html body.egp-full-page .egp-page.egp-category-page{
  max-width:1056px!important;
  width:100%!important;
  margin:0 auto!important;
  padding:52px 24px 88px!important;
  font-family:var(--egp-font)!important;
  font-size:16px!important;
  line-height:1.6!important;
  color:#1a1a2e!important;
}

html body.egp-full-page .egp-page.egp-guides-page .egp-h1,
html body.egp-full-page .egp-page.egp-category-page .egp-h1{
  font-family:var(--egp-font)!important;
  font-size:36px!important;
  line-height:1.15!important;
  font-weight:700!important;
  letter-spacing:0!important;
  color:#1a1a2e!important;
  margin:0 0 14px!important;
  padding:0!important;
  text-transform:none!important;
}

html body.egp-full-page .egp-page.egp-guides-page .egp-lead,
html body.egp-full-page .egp-page.egp-category-page .egp-lead{
  font-family:var(--egp-font)!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.6!important;
  color:#666672!important;
  max-width:720px!important;
  margin:0 0 32px!important;
}

html body.egp-full-page .egp-simple-breadcrumb{
  font-family:var(--egp-font)!important;
  font-size:13px!important;
  font-weight:400!important;
  line-height:1.4!important;
  margin:0 0 18px!important;
  color:#666672!important;
}
html body.egp-full-page .egp-simple-breadcrumb a,
html body.egp-full-page .egp-simple-breadcrumb span{
  font-family:var(--egp-font)!important;
  font-size:13px!important;
  font-weight:400!important;
}

html body.egp-full-page .egp-guide-category-list{
  margin-top:8px!important;
}
html body.egp-full-page .egp-guide-category-block{
  margin:0 0 36px!important;
  padding:0!important;
}
html body.egp-full-page .egp-guide-category-block h2,
html body.egp-full-page .egp-guide-category-block h2 a{
  font-family:var(--egp-font)!important;
  font-size:16px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:0!important;
  color:#1a1a2e!important;
  margin:0 0 8px!important;
  padding:0!important;
  text-decoration:none!important;
  text-transform:none!important;
}
html body.egp-full-page .egp-guide-category-block h2 a:hover{
  text-decoration:underline!important;
}
html body.egp-full-page .egp-category-desc{
  font-family:var(--egp-font)!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.55!important;
  color:#666672!important;
  margin:0 0 12px!important;
}

html body.egp-full-page .egp-guide-links-grid,
html body.egp-full-page .egp-category-guide-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0 34px!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
}
html body.egp-full-page .egp-guide-link{
  display:block!important;
  width:100%!important;
  font-family:var(--egp-font)!important;
  font-size:15px!important;
  line-height:1.4!important;
  font-weight:500!important;
  letter-spacing:0!important;
  color:#6f2383!important;
  text-decoration:none!important;
  text-transform:none!important;
  padding:14px 12px 14px 0!important;
  border-bottom:1px solid #e0e2e8!important;
  background:transparent!important;
  box-shadow:none!important;
}
html body.egp-full-page .egp-guide-link:hover{
  color:#4a1658!important;
  text-decoration:underline!important;
}

/* Single detail: keep Services System font scale */
html body.egp-full-page .egp-guide-detail,
html body.egp-full-page .egp-guide-detail *{
  font-family:var(--egp-font)!important;
  letter-spacing:0!important;
}
html body.egp-full-page .egp-guide-head h1{
  font-size:36px!important;
  line-height:1.15!important;
  font-weight:700!important;
  color:#1a1a2e!important;
  margin:0 0 14px!important;
  padding:0!important;
  text-transform:none!important;
}
html body.egp-full-page .egp-guide-head p{
  font-size:16px!important;
  line-height:1.6!important;
  font-weight:400!important;
  color:#666672!important;
}
html body.egp-full-page .egp-content{
  max-width:720px!important;
  font-size:16px!important;
  line-height:1.7!important;
  font-weight:400!important;
  color:#1a1a2e!important;
}
html body.egp-full-page .egp-content h2,
html body.egp-full-page .egp-table-block h2{
  font-size:28px!important;
  line-height:1.2!important;
  font-weight:700!important;
  color:#1a1a2e!important;
  margin:44px 0 18px!important;
  text-transform:none!important;
}
html body.egp-full-page .egp-content h3{
  font-size:22px!important;
  line-height:1.25!important;
  font-weight:700!important;
  color:#1a1a2e!important;
}
html body.egp-full-page .egp-guide-cta{
  background:#2a0d32!important;
  color:#fff!important;
  padding:36px 24px!important;
}
html body.egp-full-page .egp-cta-inner h3{
  font-size:18px!important;
  line-height:1.35!important;
  font-weight:700!important;
  margin:0 0 20px!important;
  color:#fff!important;
}
html body.egp-full-page .egp-cta-inner label{
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:600!important;
  margin:0 0 8px!important;
  color:#fff!important;
}
html body.egp-full-page .egp-cta-cap{
  height:50px!important;
  font-size:16px!important;
  font-weight:400!important;
  border-radius:6px!important;
  padding:0 14px!important;
}
html body.egp-full-page .egp-btn,
html body.egp-full-page .egp-start-request{
  height:46px!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:600!important;
  border-radius:6px!important;
  padding:0 22px!important;
}
html body.egp-full-page .egp-price-table,
html body.egp-full-page .egp-price-table th,
html body.egp-full-page .egp-price-table td{
  font-family:var(--egp-font)!important;
  font-size:16px!important;
  line-height:1.45!important;
  color:#1a1a2e!important;
}
html body.egp-full-page .egp-price-table th{
  font-weight:700!important;
  background:#f3eaf7!important;
}

@media (max-width:980px){
  html body.egp-full-page .egp-guide-links-grid,
  html body.egp-full-page .egp-category-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:640px){
  html body.egp-full-page .egp-page.egp-guides-page,
  html body.egp-full-page .egp-page.egp-category-page{padding:40px 20px 72px!important;}
  html body.egp-full-page .egp-page.egp-guides-page .egp-h1,
  html body.egp-full-page .egp-page.egp-category-page .egp-h1,
  html body.egp-full-page .egp-guide-head h1{font-size:32px!important;}
  html body.egp-full-page .egp-guide-links-grid,
  html body.egp-full-page .egp-category-guide-grid{grid-template-columns:1fr!important;gap:0!important;}
  html body.egp-full-page .egp-content h2,
  html body.egp-full-page .egp-table-block h2{font-size:26px!important;}
}

/* =============================================================
   v2.3 category/detail/cities refinements
   ============================================================= */
html body.egp-full-page .egp-category-breadcrumb .egp-home-icon,
html body.egp-full-page .egp-simple-breadcrumb .egp-home-icon{
  display:inline-flex!important;
  align-items:center!important;
  color:#666672!important;
  text-decoration:none!important;
}
html body.egp-full-page .egp-category-breadcrumb .egp-home-icon svg,
html body.egp-full-page .egp-simple-breadcrumb .egp-home-icon svg{
  width:14px!important;
  height:14px!important;
  display:block!important;
}
html body.egp-full-page .egp-page.egp-category-page{
  padding-top:40px!important;
  padding-bottom:90px!important;
}
html body.egp-full-page .egp-page.egp-category-page .egp-lead{
  max-width:720px!important;
}
html body.egp-full-page .egp-guide-description{
  max-width:720px!important;
  margin:6px 0 0!important;
  font-size:16px!important;
  line-height:1.6!important;
  font-weight:400!important;
  color:#666672!important;
}
html body.egp-full-page .egp-guide-description p{
  margin:0 0 14px!important;
}
html body.egp-full-page .egp-cities-block{
  background:#f6f7fa!important;
  border-radius:6px!important;
  padding:28px 30px!important;
  margin:48px 0 0!important;
}
html body.egp-full-page .egp-cities-block h2{
  font-family:var(--egp-font)!important;
  font-size:22px!important;
  line-height:1.25!important;
  font-weight:700!important;
  color:#1a1a2e!important;
  margin:0 0 16px!important;
}
html body.egp-full-page .egp-cities-grid a{
  font-family:var(--egp-font)!important;
  font-size:15px!important;
  font-weight:500!important;
  color:#6f2383!important;
  text-decoration:none!important;
  border-bottom:1px solid #e0e2e8!important;
  padding:9px 0!important;
}
html body.egp-full-page .egp-cities-grid a:hover{
  color:#4a1658!important;
  text-decoration:underline!important;
}
@media (max-width:640px){
  html body.egp-full-page .egp-page.egp-category-page{padding-top:32px!important;}
  html body.egp-full-page .egp-cities-block{padding:22px 18px!important;}
}


/* =============================================================
   v2.4 detail page fixes: reduce header/hero gap and keep only one CTA
   ============================================================= */
body.egp-full-page #masthead,
body.egp-full-page .site-header,
body.egp-full-page header.site-header,
body.egp-full-page .main-header-bar,
body.egp-full-page .site-header-section{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
body.egp-full-page #content,
body.egp-full-page .site-content,
body.egp-full-page .content-area,
body.egp-full-page main.site-main{
  margin-top:0!important;
  padding-top:0!important;
}
html body.egp-full-page .egp-guide-hero-wrap{
  margin-top:0!important;
  padding-top:0!important;
}
html body.egp-full-page .egp-guide-detail{
  margin-top:0!important;
  padding-top:0!important;
}
html body.egp-full-page .egp-after-table-cta,
html body.egp-full-page .egp-sticky-cta{
  display:none!important;
}
