/* Inner pages (services, company, contact). Builds on home-modern.css tokens. */
.site-page { font-family: 'Inter', 'Source Sans Pro', Arial, sans-serif; color: var(--ink); }
.site-page h1, .site-page h2, .site-page h3, .site-page h4 { font-family: inherit; }
.site-page p { line-height: 1.75; color: #3d4756; }

/* ---------- Page hero ---------- */
.page-hero {
  position: relative;
  padding: 70px 0 60px;
  color: #fff;
  background: linear-gradient(120deg, #111826 0%, #26334a 60%, #3b1417 100%);
  overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px;
  border-radius: 50%; background: rgba(183, 32, 37, .35); filter: blur(10px);
}
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { color: #fff; font-size: 38px; font-weight: 800; line-height: 1.2; margin: 10px 0 14px; max-width: 820px; }
.page-hero .lead { color: rgba(255, 255, 255, .85); font-size: 18px; max-width: 760px; margin-bottom: 24px; }
.page-hero .breadcrumbs { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.page-hero .breadcrumbs li { display: inline-block; color: rgba(255, 255, 255, .7); }
.page-hero .breadcrumbs li + li::before { content: "/"; margin: 0 8px; opacity: .5; }
.page-hero .breadcrumbs a { color: #fff; }
.page-hero .btn { border-radius: 30px; padding: 12px 28px; font-weight: 600; margin: 0 10px 8px 0; }
.page-hero .btn-light { background: #fff; color: var(--brand); }
.page-hero .btn-outline { border: 2px solid rgba(255, 255, 255, .8); color: #fff; background: transparent; }
.page-hero .btn-outline:hover { background: #fff; color: var(--brand); }

/* ---------- Layout blocks ---------- */
.site-page .block { padding: 56px 0; }
.site-page .block.alt { background: var(--surface); }
.site-page .block h2 { font-size: 28px; font-weight: 700; margin: 0 0 14px; }
.site-page .block .section-head { margin-bottom: 30px; }
.site-page .block .section-head p { color: var(--muted); }
.site-page .media-img { width: 100%; border-radius: 14px; box-shadow: var(--card-shadow); background: #fff; }

.feature-grid { display: flex; flex-wrap: wrap; margin: 0 -12px; }
.feature-grid > div { width: 33.3333%; padding: 0 12px 24px; display: flex; }
.feature-item {
  width: 100%; background: #fff; border-radius: 14px; padding: 24px 22px;
  box-shadow: var(--card-shadow); border-top: 3px solid var(--brand); transition: transform .2s, box-shadow .2s;
}
.feature-item:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); }
.feature-item h3 { font-size: 17px; font-weight: 700; margin: 0 0 8px; }
.feature-item p { font-size: 14px; margin: 0; }

.tag-list { list-style: none; padding: 0; margin: 0; }
.tag-list li {
  display: inline-block; margin: 0 8px 10px 0; padding: 8px 16px; border-radius: 24px;
  background: #fff; border: 1px solid #e3e8ef; font-size: 14px; font-weight: 500;
}
.tag-list li i { color: var(--brand); margin-right: 6px; }

.side-box { background: #fff; border-radius: 14px; padding: 26px; box-shadow: var(--card-shadow); margin-bottom: 24px; }
.side-box h3 { font-size: 18px; font-weight: 700; margin: 0 0 14px; }
.side-box ul { list-style: none; padding: 0; margin: 0; }
.side-box li { padding: 7px 0; border-bottom: 1px solid #eef1f5; font-size: 14px; }
.side-box li:last-child { border-bottom: 0; }
.side-box li a { color: var(--ink); }
.side-box li a:hover { color: var(--brand); }
.side-box.brand { background: linear-gradient(135deg, var(--brand), #6d1014); color: #fff; }
.side-box.brand h3, .side-box.brand p { color: #fff; }
.side-box.brand .btn { background: #fff; color: var(--brand); border-radius: 30px; font-weight: 600; padding: 10px 24px; }

.info-card { background: #fff; border-radius: 14px; padding: 26px; box-shadow: var(--card-shadow); height: 100%; margin-bottom: 24px; }
.info-card i.big {
  width: 52px; height: 52px; line-height: 52px; text-align: center; border-radius: 14px;
  background: rgba(183, 32, 37, .1); color: var(--brand); font-size: 22px; margin-bottom: 14px;
}
.info-card h3 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.info-card p { font-size: 14px; margin: 0; }

.stat-row { display: flex; flex-wrap: wrap; margin: 0 -10px; }
.stat-row > div { flex: 1 1 200px; padding: 10px; }
.stat { background: #fff; border-radius: 14px; padding: 22px; text-align: center; box-shadow: var(--card-shadow); }
.stat strong { display: block; font-size: 26px; color: var(--brand); }
.stat span { font-size: 13px; color: var(--muted); }

/* ---------- FAQ (native details/summary, no JS needed) ---------- */
.faq-list details { background: #fff; border-radius: 12px; margin-bottom: 12px; box-shadow: var(--card-shadow); }
.faq-list summary {
  cursor: pointer; list-style: none; padding: 18px 54px 18px 22px; font-weight: 600; position: relative; font-size: 16px;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%);
  font-size: 22px; color: var(--brand); transition: transform .2s;
}
.faq-list details[open] summary::after { content: "\2212"; }
.faq-list details p { padding: 0 22px 20px; margin: 0; }
.faq-group-title { font-size: 20px; font-weight: 700; margin: 30px 0 14px; color: var(--brand); }

/* ---------- Forms ---------- */
.contact-form .form-control {
  height: 46px; border-radius: 10px; border: 1px solid #d9dfe8; box-shadow: none; margin-bottom: 14px; font-size: 15px;
}
.contact-form textarea.form-control { height: auto; min-height: 140px; }
.contact-form .form-control:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(183, 32, 37, .12); }
.contact-form label { font-weight: 600; font-size: 13px; margin-bottom: 5px; }
.contact-form .hp-field { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.contact-form .btn-brand { border: 0; cursor: pointer; }
.alert-ok { background: #e7f6ec; border: 1px solid #b6e2c4; color: #1d6b38; border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; }
.alert-err { background: #fdecec; border: 1px solid #f3b8b8; color: #8f171b; border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; }
.map-wrap iframe { width: 100%; height: 360px; border: 0; border-radius: 14px; }

/* ---------- Legal text ---------- */
.legal h2 { font-size: 22px; margin-top: 30px; }
.legal ul { padding-left: 20px; line-height: 1.8; }

/* ---------- Related ---------- */
.related-card { display: block; background: #fff; border-radius: 14px; padding: 22px; box-shadow: var(--card-shadow); height: 100%; transition: transform .2s; color: var(--ink); margin-bottom: 20px; }
.related-card:hover { transform: translateY(-4px); text-decoration: none; color: var(--ink); }
.related-card img { height: 36px; margin-bottom: 12px; }
.related-card h3 { font-size: 16px; font-weight: 700; margin: 0 0 6px; }
.related-card span { color: var(--brand); font-size: 13px; font-weight: 600; }

/* Quote modal */
.quote-modal .modal-header { border-bottom: 0; }
.quote-modal .modal-title { font-weight: 700; }

@media (max-width: 991px) { .feature-grid > div { width: 50%; } }
@media (max-width: 767px) {
  .page-hero { padding: 48px 0 40px; }
  .page-hero h1 { font-size: 27px; }
  .page-hero .lead { font-size: 16px; }
  .feature-grid > div { width: 100%; }
  .site-page .block { padding: 40px 0; }
  .site-page .block h2 { font-size: 23px; }
}
