/* PHP implementation services: scoped to the dedicated landing page. */
.php-urgent-banner { background: linear-gradient(115deg, #071b35, #2e215c 58%, #064c63); color: #fff; padding: clamp(2.5rem, 5vw, 4rem) 0; }
.php-urgent-banner__inner { display: grid; gap: 2rem; align-items: center; }
.php-urgent-banner__eyebrow { color: #a5efff; font-size: .9rem; font-weight: 750; margin-top: 0; }
.php-urgent-banner h2 { color: #fff; font-size: clamp(1.85rem, 3.6vw, 2.9rem); max-width: 26ch; }
.php-urgent-banner p { max-width: 65ch; color: #e0e7f5; line-height: 1.85; }
.php-urgent-banner__contact { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; min-width: 0; }
.php-urgent-banner__phone { display: block; text-decoration: none; color: #a5efff; }
.php-urgent-banner__phone span { display: block; font-size: 1rem; font-weight: 650; margin-bottom: .4rem; }
.php-urgent-banner__phone strong { display: block; font-size: clamp(1.7rem, 2.7vw, 2.3rem); line-height: 1.2; white-space: nowrap; }
.php-urgent-banner__phone:hover, .php-urgent-banner__details:hover { color: #fff; }
.php-urgent-banner__details { color: #fff; font-size: .95rem; }
.php-urgent-banner--news { margin: 2rem 0; border-radius: 16px; padding: 2rem 0; }
.php-urgent-banner--news .php-urgent-banner__inner { grid-template-columns: 1fr; }
@media (min-width: 1000px) { .php-urgent-banner__inner { grid-template-columns: minmax(0, 1fr) minmax(280px, .5fr); gap: 3rem; } }
.php-service { --php-line: #dce5ec; --php-muted: #526574; }
.php-service article > :first-child { margin-top: 0; }
.php-service section[id] { scroll-margin-top: 7rem; }
.php-service .php-breadcrumb-wrap { background: #071d2b; color: #c3d2dc; padding: 1.4rem 0 0; font-size: .82rem; }
.php-service .php-hero {
  background: radial-gradient(ellipse at 100% 0%, #163e57 0, transparent 65%), #071d2b;
  color: #fff;
  padding: 1.4rem 0 clamp(3rem, 6vw, 5rem);
}
.php-service .php-hero nav { font-size: .82rem; color: #c3d2dc; margin-bottom: 2.8rem; }
.php-service .php-hero nav a { color: inherit; }
.php-service .php-hero__grid { display: grid; align-items: center; gap: 2.5rem; }
.php-service .php-hero__copy { min-width: 0; }
.php-service .eyebrow { letter-spacing: .1em; font-size: .78rem; font-weight: 750; }
.php-service .php-hero .eyebrow { color: #ffb372; }
.php-service h1 { font-size: clamp(2.2rem, 4.4vw, 3.7rem); line-height: 1.18; max-width: 16ch; margin-bottom: 1.2rem; }
.php-service .php-hero__copy > p:not(.eyebrow):not(.php-note) { color: #dbe6ed; font-size: 1.08rem; line-height: 1.85; }
.php-service .php-hero__visual { margin: 0; min-width: 0; }
.php-service .php-hero__visual img { display: block; width: 100%; height: auto; border-radius: 1rem; border: 1px solid #315368; box-shadow: 0 25px 60px #0003; }
.php-service .php-hero__visual figcaption { color: #adc1cf; font-size: .75rem; margin-top: .7rem; }
.php-service .php-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 1.6rem 0 1rem; }
.php-service .php-hero .php-actions a:not(.btn--primary) { color: #fff; border: 1px solid #658294; background: transparent; }
.php-service .php-hero a:hover { color: #ffd6b4; }
.php-service .php-hero .btn--primary:hover { color: #071d2b; }
.php-service .php-note { font-size: .85rem; line-height: 1.75; color: var(--php-muted); }
.php-service .php-hero .php-note { color: #b2c6d3; }
.php-service .php-section { padding: clamp(3rem, 6vw, 4.8rem) 0; }
.php-service .php-section--soft { background: #f5f8fa; border-block: 1px solid #e7edf1; }
.php-service .php-section h2 { max-width: 36ch; margin-bottom: 1rem; }
.php-service .php-section > .container > p { max-width: 75ch; }
.php-service .php-stats { display: grid; gap: 1rem; margin: 2rem 0 1rem; }
.php-service .php-stat { border: 1px solid var(--php-line); padding: 1.6rem; border-radius: 14px; background: #fff; }
.php-service .php-stat strong { display: block; font-size: clamp(2.7rem, 5vw, 3.7rem); font-weight: 800; letter-spacing: -.05em; line-height: 1.05; margin-bottom: .8rem; color: #0d3043; }
.php-service .php-stat h3 { font-size: 1.05rem; line-height: 1.5; }
.php-service .php-stat p { margin: .7rem 0; font-size: .9rem; color: var(--php-muted); }
.php-service .php-stat a { font-size: .8rem; }
.php-service .php-grid { display: grid; gap: 1.2rem; margin-top: 2rem; }
.php-service .php-card { min-width: 0; background: #fff; padding: 1.7rem; border: 1px solid var(--php-line); border-radius: 14px; }
.php-service .php-card h3 { line-height: 1.45; }
.php-service .php-card p, .php-service .php-card li { color: #3d5262; font-size: .95rem; }
.php-service .php-card ul { padding-left: 1.15rem; }
.php-service .php-card li + li { margin-top: .45rem; }
.php-service .php-table-wrap { overflow-x: auto; margin: 1.7rem 0; border: 1px solid var(--php-line); border-radius: 12px; background: #fff; }
.php-service table { width: 100%; border-collapse: collapse; text-align: left; }
.php-service caption { padding: 1rem; font-size: .85rem; font-weight: 650; text-align: left; background: #edf3f7; }
.php-service th, .php-service td { padding: .85rem 1rem; border-bottom: 1px solid var(--php-line); vertical-align: top; }
.php-service thead { background: #f7fafc; font-size: .9rem; }
.php-service tbody tr:last-child > * { border-bottom: 0; }
.php-service .php-callout { padding: 1.5rem; border-left: 4px solid #ee7900; background: #fff5e9; border-radius: 0 12px 12px 0; margin: 1.7rem 0; }
.php-service .php-callout p:last-child { margin-bottom: 0; }
.php-service .php-process { display: grid; gap: 1.4rem; padding: 0; list-style: none; counter-reset: php-step; margin: 2rem 0 0; }
.php-service .php-process > li { min-width: 0; counter-increment: php-step; padding-top: 1.2rem; border-top: 2px solid var(--php-line); }
.php-service .php-process > li::before { content: "0" counter(php-step); display: block; color: #b74d00; font-weight: 800; font-size: .9rem; margin-bottom: .8rem; }
.php-service .php-process h3 { font-size: 1.1rem; line-height: 1.45; }
.php-service .php-process p { font-size: .92rem; color: var(--php-muted); }
.php-service .php-experience { background: #0b293c; color: #fff; border-radius: 20px; padding: clamp(1.7rem, 4vw, 3.4rem); display: grid; gap: 1.8rem; align-items: center; }
.php-service .php-experience strong { font-size: clamp(4rem, 8vw, 7rem); line-height: 1; letter-spacing: -.06em; display: block; color: #ff9b45; }
.php-service .php-experience h2 { color: #fff; }
.php-service .php-experience p { color: #d3e1ea; }
.php-service .php-experience a { color: #fff; }
.php-service .php-faq details { max-width: 900px; }
.php-service .php-faq details { border-top: 1px solid var(--php-line); padding: 1.1rem 0; }
.php-service .php-faq details:last-child { border-bottom: 1px solid var(--php-line); }
.php-service .php-faq summary { cursor: pointer; font-weight: 700; padding-right: 1rem; }
.php-service .php-faq summary:focus-visible { outline: 3px solid #ff7800; outline-offset: 4px; }
.php-service .php-faq details p { color: var(--php-muted); max-width: 80ch; margin-bottom: .4rem; }
.php-service #enquire { background: #eef4f7; }
.php-service #enquire ul { padding-left: 1.2rem; }
.php-service #enquire li { margin-bottom: .4rem; }
.php-service .php-sources { font-size: .84rem; color: var(--php-muted); }
.php-service .php-sources ol { padding-left: 1.2rem; }
.php-service .php-sources li { margin-bottom: .6rem; overflow-wrap: anywhere; }
.php-service .php-card__number { display: inline-block; font-weight: 800; color: #b74d00; margin-bottom: 1rem; }
.php-service .php-section.php-callout { border: 0; border-radius: 0; margin: 0; padding-block: clamp(3rem, 6vw, 4.8rem); }
@media (min-width: 760px) {
  .php-service .php-stats, .php-service .php-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .php-service .php-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .php-service .php-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .php-service .php-experience { grid-template-columns: .55fr 1.45fr; }
}
@media (min-width: 1000px) {
  .php-service .php-hero__grid { grid-template-columns: 1fr 1.05fr; gap: 3rem; }
  .php-service .php-process { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 759px) {
  .php-service .php-hero nav { margin-bottom: 2rem; }
  .php-service .php-actions { align-items: stretch; }
  .php-service .php-actions .btn { width: 100%; text-align: center; justify-content: center; }
  .php-service .php-stat { padding: 1.4rem; }
  .php-service th, .php-service td { padding: .7rem; }
}
