/*
 Theme Name: GeneratePress Child
 Template: generatepress
*/

/* ===== root ===== */
:root{
  --fc-primary:#0f766e;
  --fc-primary-dark:#0b5f59;
  --fc-secondary:#f59e0b;
  --fc-secondary-dark:#d97706;
  --fc-text:#1f2937;
  --fc-text-light:#4b5563;
  --fc-muted:#6b7280;
  --fc-bg:#f8fafc;
  --fc-bg-soft:#f3f6f8;
  --fc-border:#dbe4ea;
  --fc-shadow-sm:0 8px 24px rgba(2,6,23,.04);
  --fc-shadow-md:0 16px 40px rgba(2,6,23,.10);
  --fc-radius:18px;
  --fc-shell:1240px;
}

/* ===== reset/base ===== */
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  color:var(--fc-text);
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden;
  background:#fff;
}
a{transition:.2s ease}
img{max-width:100%;height:auto;display:block}

.site-header,
#site-navigation,
.main-navigation,
.inside-header,
.navigation-branding,
.main-title,
.site-logo,
.menu-toggle{
  display:none !important;
}

.fc-site-shell,
#page,
#content,
.site-content,
.site-main,
.entry-content{
  width:100%;
  max-width:100%;
}

.fc-shell{
  width:min(100% - 40px, var(--fc-shell));
  margin:0 auto;
}

.separate-containers .inside-article,
.one-container .inside-article,
.inside-article{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

#right-sidebar,
#left-sidebar,
.sidebar{
  display:none !important;
}

.content-area,
.site-main{
  float:none !important;
  width:100% !important;
  margin:0 !important;
}

/* ===== header ===== */
.fc-header{
  position:sticky;
  top:0;
  z-index:9999;
  background:#fff;
  border-bottom:1px solid var(--fc-border);
  box-shadow:var(--fc-shadow-sm);
}

.fc-header-inner{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.fc-header-brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  max-width:190px;
  min-height:64px;
}

.fc-logo-link{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  text-decoration:none;
  line-height:0;
}

.fc-logo-link img,
.custom-logo{
  display:block;
  max-height:56px;
  width:auto;
  margin:0;
}

.fc-logo-text{
  font-size:30px;
  font-weight:800;
  color:var(--fc-text);
  line-height:1;
}

/* desktop nav */
.fc-nav-desktop{
  flex:1 1 auto;
  display:flex;
  justify-content:flex-end;
  min-width:0;
}

.fc-nav{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:28px;
}

.fc-nav > li{
  position:relative;
}

.fc-nav > li > a{
  text-decoration:none;
  color:var(--fc-text);
  font-weight:700;
  font-size:16px;
  line-height:1.2;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  padding:8px 0;
  white-space:nowrap;
}

.fc-nav > li > a:hover{
  color:var(--fc-primary);
}

.fc-has-mega > a::after{
  content:"▾";
  font-size:11px;
  margin-left:7px;
}

.fc-mega{
  position:absolute;
  top:calc(100% + 14px);
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:20px;
  box-shadow:var(--fc-shadow-md);
  padding:18px;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:.22s ease;
  z-index:999;
  width:min(760px, calc(100vw - 40px));
  max-width:calc(100vw - 40px);
}

.fc-has-mega:hover .fc-mega{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.fc-mega-services{
  left:50%;
  transform:translate(-35%,8px);
}

.fc-has-mega:hover .fc-mega-services{
  transform:translate(-35%,0);
}

.fc-mega-towns{
  right:0;
}

.fc-mega-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 18px;
}

.fc-mega-grid a{
  display:block;
  text-decoration:none;
  color:var(--fc-text);
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  padding:10px 12px;
  border-radius:12px;
  overflow-wrap:anywhere;
}

.fc-mega-grid a:hover{
  background:var(--fc-bg);
  color:var(--fc-primary);
}

.fc-call-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 24px;
  border-radius:999px;
  background:var(--fc-secondary);
  color:#111827 !important;
  text-decoration:none;
  font-weight:800;
  font-size:17px;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(245,158,11,.20);
}

.fc-call-btn:hover{
  background:var(--fc-secondary-dark);
}

.fc-call-desktop{
  flex:0 0 auto;
  min-height:52px;
  padding:0 24px;
}

/* burger */
.fc-burger{
  display:none;
  width:46px;
  height:46px;
  min-width:46px;
  border:1px solid var(--fc-border);
  background:#fff;
  border-radius:16px;
  padding:0;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  transition:all .2s ease;
  box-shadow:0 4px 10px rgba(2,6,23,.04);
}

.fc-burger:hover{
  background:#f8fafc;
  border-color:#cbd5e1;
}

.fc-burger:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(15,118,110,.12);
}

.fc-burger span{
  width:20px;
  height:2px;
  background:var(--fc-text);
  display:block;
  border-radius:2px;
  transition:all .2s ease;
}

.fc-burger:hover span{
  background:var(--fc-primary);
}

body.fc-menu-open .fc-burger{
  background:#f3f6f8;
  border-color:#d7e1e7;
}

body.fc-menu-open .fc-burger span{
  background:var(--fc-primary-dark);
}

/* mobile panel */
.fc-mobile-panel{
  border-top:1px solid var(--fc-border);
  background:#fff;
  padding:8px 0 18px;
}

.fc-mobile-nav ul{
  list-style:none;
  margin:0;
  padding:0;
}

.fc-mobile-nav > ul{
  margin:0;
  padding:0;
}

.fc-mobile-nav > ul > li,
.fc-mobile-group{
  border-bottom:1px solid #eef2f5;
}

.fc-mobile-nav > ul > li > a,
.fc-mobile-toggle{
  min-height:54px;
  display:flex;
  align-items:center;
  width:100%;
  font-size:17px;
  font-weight:700;
  color:var(--fc-text);
  background:#fff;
  text-decoration:none;
  padding:14px 0;
  border:0;
  position:relative;
  transition:all .2s ease;
}

.fc-mobile-nav > ul > li > a:hover,
.fc-mobile-toggle:hover{
  color:var(--fc-primary);
  background:transparent;
}

.fc-mobile-nav > ul > li > a:focus,
.fc-mobile-toggle:focus{
  outline:none;
  color:var(--fc-primary-dark);
}

.fc-mobile-toggle{
  text-align:left;
  cursor:pointer;
}

.fc-mobile-toggle::after{
  content:"+";
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8fafc;
  color:var(--fc-text);
  font-size:19px;
  font-weight:700;
  line-height:1;
  transition:all .2s ease;
}

.fc-mobile-toggle:hover::after{
  background:#eef7f6;
  color:var(--fc-primary-dark);
}

.fc-mobile-toggle[aria-expanded="true"]{
  color:var(--fc-primary-dark);
}

.fc-mobile-toggle[aria-expanded="true"]::after{
  content:"−";
  background:#eef7f6;
  color:var(--fc-primary-dark);
}

.fc-mobile-submenu{
  padding:2px 0 12px 0;
}

.fc-mobile-submenu li{
  margin:0;
}

.fc-mobile-submenu a{
  display:block;
  text-decoration:none;
  color:var(--fc-text-light);
  font-weight:600;
  font-size:15px;
  line-height:1.45;
  padding:10px 0 10px 14px;
  border-left:2px solid #eef2f5;
  transition:all .2s ease;
}

.fc-mobile-submenu a:hover{
  color:var(--fc-primary);
  border-left-color:var(--fc-primary);
  background:transparent;
}

.fc-mobile-submenu a:focus{
  outline:none;
  color:var(--fc-primary-dark);
  border-left-color:var(--fc-primary-dark);
}

.fc-mobile-cta{
  padding-top:16px;
}

.fc-mobile-cta .fc-call-btn{
  width:100%;
  min-height:52px;
  font-size:17px;
  padding:0 18px;
  justify-content:center;
  text-align:center;
}

.fc-mobile-toggle,
.fc-mobile-toggle:hover,
.fc-mobile-toggle:active,
.fc-mobile-toggle:focus{
  box-shadow:none !important;
}

.fc-mobile-nav button{
  -webkit-appearance:none;
  appearance:none;
}

/* ===== common page layout ===== */
.fc-page,
.fc-page *{
  box-sizing:border-box;
}

.fc-page{
  color:var(--fc-text);
  line-height:1.65;
  padding-bottom:40px;
}

.fc-wrap{
  width:min(100% - 40px, 1200px);
  margin:0 auto;
}

.fc-wrap-narrow{
  width:min(100% - 40px, 900px);
  margin:0 auto;
}

.fc-page h1,
.fc-page h2,
.fc-page h3,
.fc-page h4{
  margin:0 0 14px;
  line-height:1.15;
  color:var(--fc-text);
}

.fc-page h1{font-size:48px;letter-spacing:-.02em}
.fc-page h2{font-size:38px;letter-spacing:-.01em}
.fc-page h3{font-size:24px}
.fc-page h4{font-size:20px}

.fc-page p{
  margin:0 0 16px;
  color:var(--fc-text-light);
  font-size:17px;
}

.fc-lead{font-size:19px}
.fc-section{padding:72px 0}
.fc-section-light{background:var(--fc-bg)}
.fc-section-soft{background:var(--fc-bg-soft)}

.fc-sec-head{
  max-width:860px;
  margin:0 auto 34px;
  text-align:center;
}

.fc-sec-head-left{
  max-width:860px;
  margin:0 0 28px;
  text-align:left;
}

.fc-breadcrumb{
  font-size:14px;
  opacity:.95;
  margin-bottom:18px;
  color:#fff;
}

.fc-breadcrumb a{
  color:inherit;
  text-decoration:none;
}

/* ===== comuni hero ===== */
.fc-hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(135deg, rgba(15,118,110,.96), rgba(11,95,89,.96)),
    radial-gradient(circle at top right, rgba(245,158,11,.18), transparent 35%);
  color:#fff;
  padding:88px 0 80px;
}

.fc-hero-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:34px;
  align-items:center;
}

.fc-badge-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.fc-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);
}

.fc-hero h1,
.fc-hero h2,
.fc-hero h3,
.fc-hero p{
  color:#fff;
}

.fc-hero-card{
  background:#fff;
  border-radius:22px;
  padding:28px;
  box-shadow:0 12px 35px rgba(15,118,110,.10);
}

.fc-hero-card h2,
.fc-hero-card h3,
.fc-hero-card h4{
  color:var(--fc-primary-dark);
}

.fc-hero-card p{
  color:var(--fc-text-light);
}

.fc-hero-points{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
  max-width:760px;
}

.fc-hero-point{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);
  padding:12px 14px;
  border-radius:14px;
  font-size:15px;
  font-weight:700;
}

/* ===== generic grids ===== */
.fc-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.fc-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.fc-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.fc-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.fc-split-40{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center}
.fc-split-60{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}

/* ===== problem grid + image sizing ===== */
.fc-problem-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:stretch;
}

.fc-hero-card,
.fc-problem-item,
.fc-card{
  overflow:hidden;
}

.fc-problem-item{
  display:flex;
  flex-direction:column;
  height:100%;
}

.fc-problem-item h3,
.fc-hero-card h2,
.fc-card h3{
  margin-top:0;
}

.fc-hero-card img,
.fc-problem-item img,
.fc-card img{
  width:100%;
  border-radius:16px;
  object-fit:cover;
  object-position:center;
}

.fc-hero-card img{height:260px}
.fc-problem-item img{height:210px;margin-bottom:18px !important}
.fc-card img{height:240px;margin-bottom:18px !important}

/* ===== cards/buttons ===== */
.fc-service-card,
.fc-card,
.fc-problem-item,
.fc-step,
.fc-faq-item{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:var(--fc-radius);
  box-shadow:var(--fc-shadow-sm);
  padding:24px;
  height:100%;
}

.fc-problem-item p:last-child,
.fc-card p:last-child,
.fc-service-card p:last-child{
  margin-bottom:0;
}

.fc-card a,
.fc-service-card a{
  color:var(--fc-primary);
  text-decoration:none;
  font-weight:800;
}

.fc-card-highlight{
  border-left:5px solid var(--fc-secondary);
}

.fc-cta-row{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin:24px 0 0;
}

.fc-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  padding:15px 22px;
  border-radius:999px;
  font-weight:800;
  font-size:16px;
  line-height:1.1;
  border:none;
}

.fc-btn-primary{
  background:var(--fc-secondary);
  color:#111827;
  box-shadow:0 8px 20px rgba(245,158,11,.25);
}

.fc-btn-primary:hover{
  background:var(--fc-secondary-dark);
}

.fc-btn-outline{
  background:transparent;
  color:var(--fc-primary);
  border:2px solid var(--fc-primary);
}

.fc-btn-outline:hover{
  background:var(--fc-primary);
  color:#fff;
}

/* ===== lists/boxes ===== */
.fc-phone-box{
  background:var(--fc-bg);
  border:1px solid var(--fc-border);
  border-radius:16px;
  padding:16px;
}

.fc-phone-box strong{
  display:block;
  margin-bottom:6px;
  font-size:14px;
  color:var(--fc-text-light);
}

.fc-phone-box a{
  color:var(--fc-primary-dark);
  text-decoration:none;
  font-weight:800;
  font-size:28px;
  line-height:1.1;
}

.fc-mini-list,
.fc-link-list,
.fc-checks{
  list-style:none;
  padding:0;
  margin:0;
}

.fc-mini-list li{
  padding:10px 0;
  border-bottom:1px solid var(--fc-border);
  font-size:15px;
  color:var(--fc-text);
}

.fc-mini-list li:last-child{
  border-bottom:none;
}

.fc-link-list li{
  margin-bottom:10px;
}

.fc-link-list a{
  color:var(--fc-primary);
  text-decoration:none;
  font-weight:700;
}

.fc-checks li{
  margin-bottom:12px;
  padding-left:28px;
  position:relative;
  color:var(--fc-text);
  font-weight:600;
}

.fc-checks li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:var(--fc-primary);
  font-weight:900;
}

/* ===== areas / steps / faq ===== */
.fc-areas{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.fc-area-item{
  display:block;
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:14px;
  padding:14px 16px;
  text-decoration:none;
  color:var(--fc-text);
  font-weight:700;
}

.fc-area-item:hover{
  border-color:var(--fc-primary);
  color:var(--fc-primary);
}

.fc-area-item-current{
  display:flex;
  align-items:center;
  padding:18px 14px;
  border:1px solid #d8dee6;
  border-radius:14px;
  background:#fff;
  font-weight:700;
  color:#0f172a;
  pointer-events:none;
  cursor:default;
}

.fc-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.fc-step-num{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--fc-primary);
  color:#fff;
  font-weight:900;
  margin-bottom:12px;
}

.fc-faq{
  display:grid;
  gap:14px;
  max-width:980px;
  margin:0 auto;
}

.fc-faq-item h3{
  margin:0 0 8px;
  font-size:21px;
}

.fc-faq-item p{
  margin:0;
  color:var(--fc-text-light);
}

/* ===== cta bands ===== */
.fc-cta-band{
  background:linear-gradient(135deg,var(--fc-primary),var(--fc-primary-dark));
  color:#fff;
  border-radius:24px;
  padding:36px;
  box-shadow:var(--fc-shadow-md);
}

.fc-cta-band h2,
.fc-cta-band h3,
.fc-cta-band p{
  color:#fff;
}

.fc-footer-cta{
  text-align:center;
  background:var(--fc-bg);
  border:1px solid var(--fc-border);
  border-radius:22px;
  padding:32px;
}

.fc-small-note{
  margin-top:14px;
  font-size:14px;
  color:var(--fc-text-light);
}

.fc-small-note a{
  color:var(--fc-primary);
  text-decoration:none;
}

/* ===== footer ===== */
.fc-footer{
  width:100%;
  padding:56px 0 36px;
  background:#fff;
  border-top:1px solid var(--fc-border);
}

.fc-footer-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px;
}

.fc-footer-col h3{
  margin:0 0 14px;
  font-size:20px;
}

.fc-footer-col p,
.fc-footer-col li,
.fc-footer-col a{
  font-size:15px;
  line-height:1.7;
  color:var(--fc-text-light);
  text-decoration:none;
}

.fc-footer-col ul{
  list-style:none;
  padding:0;
  margin:0;
}

.fc-footer-col li{
  margin-bottom:8px;
}

.fc-footer-col a:hover{
  color:var(--fc-primary);
}

.fc-footer-bottom{
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid var(--fc-border);
}

.fc-footer-bottom p{
  margin:0;
  font-size:14px;
  color:var(--fc-muted);
}

/* =========================================
   HUB / PAGINE MADRI
========================================= */
.fc-hub-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#ffffff 0%, #f6fafb 100%);
  padding:76px 0 58px;
  border-bottom:1px solid var(--fc-border);
}

.fc-hub-hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:center;
}

.fc-hub-intro{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:24px;
  padding:34px;
  box-shadow:var(--fc-shadow-sm);
}

.fc-hub-intro .fc-breadcrumb{
  color:var(--fc-text-light);
}

.fc-hub-intro .fc-breadcrumb a{
  color:var(--fc-primary);
}

.fc-hub-kicker{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:#ecfdf5;
  color:var(--fc-primary-dark);
  border:1px solid #cfeee8;
  font-size:14px;
  font-weight:800;
  margin-bottom:16px;
}

.fc-hub-side{
  background:linear-gradient(135deg,var(--fc-primary),var(--fc-primary-dark));
  color:#fff;
  border-radius:24px;
  padding:28px;
  box-shadow:var(--fc-shadow-md);
}

.fc-hub-side h2,
.fc-hub-side h3,
.fc-hub-side p{
  color:#fff;
}

.fc-hub-side img{
  width:100%;
  height:240px;
  object-fit:cover;
  border-radius:18px;
  margin-bottom:18px;
}

.fc-hub-stat-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.fc-hub-stat{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:20px;
  padding:24px;
  text-align:center;
  box-shadow:var(--fc-shadow-sm);
}

.fc-hub-stat strong{
  display:block;
  font-size:30px;
  line-height:1;
  margin-bottom:8px;
  color:var(--fc-primary-dark);
}

.fc-hub-panels{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.fc-hub-panel{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:20px;
  padding:24px;
  box-shadow:var(--fc-shadow-sm);
  height:100%;
}

.fc-hub-panel h3{
  margin-bottom:10px;
}

.fc-hub-band{
  background:linear-gradient(135deg,var(--fc-primary),var(--fc-primary-dark));
  border-radius:26px;
  padding:38px;
  box-shadow:var(--fc-shadow-md);
  text-align:center;
}

.fc-hub-band h2,
.fc-hub-band p{
  color:#fff;
}

/* =========================================
   SERVICE / PROBLEMI
========================================= */
.fc-service-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#ffffff 0%, #f8fafc 100%);
  padding:72px 0 56px;
  border-bottom:1px solid var(--fc-border);
}

.fc-service-hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:28px;
  align-items:stretch;
}

.fc-service-intro{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:24px;
  padding:34px;
  box-shadow:var(--fc-shadow-sm);
}

.fc-service-intro .fc-breadcrumb{
  color:var(--fc-text-light);
  margin-bottom:16px;
}

.fc-service-intro .fc-breadcrumb a{
  color:var(--fc-primary);
}

.fc-service-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  background:#ecfdf5;
  color:var(--fc-primary-dark);
  font-size:14px;
  font-weight:800;
  margin-bottom:16px;
  border:1px solid #cfeee8;
}

.fc-service-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:22px;
}

.fc-service-bullets{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:22px;
}

.fc-service-bullet{
  background:var(--fc-bg);
  border:1px solid var(--fc-border);
  border-radius:16px;
  padding:14px 16px;
  font-size:15px;
  font-weight:700;
  color:var(--fc-text);
}

.fc-service-panel{
  background:linear-gradient(135deg,var(--fc-primary),var(--fc-primary-dark));
  border-radius:24px;
  padding:28px;
  color:#fff;
  box-shadow:var(--fc-shadow-md);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.fc-service-panel h2,
.fc-service-panel h3,
.fc-service-panel p,
.fc-service-panel li,
.fc-service-panel strong{
  color:#fff;
}

.fc-service-panel img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:18px;
  margin-bottom:18px;
}

.fc-service-mini{
  list-style:none;
  padding:0;
  margin:0;
}

.fc-service-mini li{
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
  font-size:15px;
}

.fc-service-mini li:last-child{
  border-bottom:none;
}

.fc-service-box-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.fc-service-box{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:20px;
  padding:24px;
  box-shadow:var(--fc-shadow-sm);
  height:100%;
}

.fc-service-box h3{
  margin-bottom:10px;
}

.fc-service-box p:last-child{
  margin-bottom:0;
}

.fc-service-box-icon{
  width:48px;
  height:48px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ecfdf5;
  color:var(--fc-primary-dark);
  font-weight:900;
  margin-bottom:14px;
}

.fc-service-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  align-items:start;
}

.fc-service-note{
  background:#fff7ed;
  border:1px solid #fed7aa;
  border-radius:18px;
  padding:20px;
}

.fc-service-note h3,
.fc-service-note p{
  margin-bottom:10px;
}

.fc-service-note p:last-child{
  margin-bottom:0;
}

.fc-service-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.fc-service-step{
  background:#fff;
  border:1px solid var(--fc-border);
  border-radius:18px;
  padding:22px;
  box-shadow:var(--fc-shadow-sm);
}

.fc-service-step-num{
  width:42px;
  height:42px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--fc-secondary);
  color:#111827;
  font-weight:900;
  margin-bottom:12px;
}

.fc-service-cta-band{
  background:linear-gradient(135deg, rgba(15,118,110,.96), rgba(11,95,89,.96));
  border-radius:26px;
  padding:38px;
  box-shadow:var(--fc-shadow-md);
  text-align:center;
}

.fc-service-cta-band h2,
.fc-service-cta-band p{
  color:#fff;
}

.fc-service-faq{
  display:grid;
  gap:14px;
  max-width:980px;
  margin:0 auto;
}

.fc-service-faq .fc-faq-item{
  border-radius:18px;
}

/* ===== utilities ===== */
.fc-mb-0{margin-bottom:0 !important}
.fc-mb-10{margin-bottom:10px !important}
.fc-mb-16{margin-bottom:16px !important}
.fc-mb-20{margin-bottom:20px !important}
.fc-mb-24{margin-bottom:24px !important}
.fc-mb-30{margin-bottom:30px !important}
.fc-mb-40{margin-bottom:40px !important}

/* ===== responsive ===== */
@media (max-width: 1200px){
  .fc-page h1{font-size:42px}
  .fc-page h2{font-size:34px}
  .fc-nav{gap:20px}
}

@media (max-width: 1024px){
  .fc-nav-desktop,
  .fc-call-desktop{
    display:none;
  }

  .fc-burger{
    display:flex;
    margin-left:auto;
  }

  .fc-header-inner{
    min-height:78px;
    gap:14px;
  }

  .fc-header-brand{
    max-width:150px;
    min-height:52px;
  }

  .fc-logo-link img,
  .custom-logo{
    max-height:48px;
  }

  .fc-hero-card img{height:240px}
  .fc-problem-item img,
  .fc-card img{height:200px}
}

@media (min-width: 1025px){
  .fc-mobile-panel{display:none !important}
  .fc-header-brand{margin-top:2px}
}

@media (max-width: 900px){
  .fc-hero-grid,
  .fc-split,
  .fc-split-40,
  .fc-split-60,
  .fc-grid-4,
  .fc-grid-3,
  .fc-grid-2,
  .fc-problem-grid,
  .fc-areas,
  .fc-steps,
  .fc-footer-grid,
  .fc-service-hero-grid,
  .fc-service-box-grid,
  .fc-service-split,
  .fc-service-steps,
  .fc-service-bullets,
  .fc-hub-hero-grid,
  .fc-hub-panels,
  .fc-hub-stat-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 768px){
  .fc-shell,
  .fc-wrap,
  .fc-wrap-narrow{
    width:min(100% - 24px, 1200px);
  }

  .fc-page h1{font-size:34px}
  .fc-page h2{font-size:28px}
  .fc-page p,
  .fc-lead{font-size:16px}

  .fc-header-inner{
    min-height:74px;
  }

  .fc-header-brand{
    max-width:145px;
  }

  .fc-logo-link img,
  .custom-logo{
    max-height:46px;
  }

  .fc-btn{
    width:100%;
  }

  .fc-hero{
    padding:72px 0 64px;
  }

  .fc-hero-card,
  .fc-card,
  .fc-problem-item,
  .fc-service-card,
  .fc-step,
  .fc-faq-item,
  .fc-service-intro,
  .fc-service-panel,
  .fc-service-box,
  .fc-service-step,
  .fc-hub-intro,
  .fc-hub-side,
  .fc-hub-panel,
  .fc-hub-stat{
    padding:20px;
  }

  .fc-hero-card img{height:220px}
  .fc-problem-item img,
  .fc-card img{
    height:190px;
    border-radius:14px;
  }

  .fc-phone-box a{
    font-size:24px;
  }

  .fc-service-hero{
    padding:54px 0 40px;
  }

  .fc-service-panel img{
    height:200px;
  }

  .fc-service-actions .fc-btn{
    width:100%;
  }

  .fc-hub-hero{
    padding:56px 0 42px;
  }

  .fc-hub-side img{
    height:200px;
  }
}

@media (max-width: 640px){
  .fc-header-inner{
    min-height:74px;
  }

  .fc-header-brand{
    max-width:138px;
  }

  .fc-logo-link img,
  .custom-logo{
    max-height:44px;
  }

  .fc-mobile-nav > ul > li > a,
  .fc-mobile-toggle{
    font-size:16px;
  }

  .fc-mobile-submenu a{
    font-size:14px;
  }

  .fc-hero-card img{height:200px}
  .fc-problem-item img,
  .fc-card img{height:180px}
}