/* MAX-IT: shared visual system for the Polish and English website. */
:root {
  --ink: #142938;
  --muted: #526574;
  --line: #dbe4ec;
  --paper: #f3f6fa;
  --card-radius: 20px;
  --card-shadow: 0 8px 28px #14293808, 0 1px 2px #14293804;
}

/* Native font rasterization and real variable weights, without synthetic bold. */
body { font-synthesis: none; font-kerning: normal; }
img { image-rendering: auto; }
.brand img, .reviews-source img { flex-shrink: 0; }
.person-photo picture { display: block; }

/* Authentic technology marks, with balanced optical sizes and clearspace. */
.tech-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  padding-block: 42px;
}
.tech-inner p { display: flex; align-items: baseline; gap: 6px; margin: 0; font-size: 1rem; color: #526574; }
.tech-inner p br { display: none; }
.tech-inner p strong { color: #142938; margin: 0; font-size: 1.125rem; }
.tech-names {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.tech-names .brand-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 136px;
  padding: 14px 18px;
  border: 1px solid #dce6ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 3px 12px #112b4105;
}
.tech-names .brand-logo img {
  display: block;
  width: var(--logo-width, 145px);
  height: auto;
  max-width: 100%;
  max-height: 82px;
  object-fit: contain;
}
.brand-microsoft-365 { --logo-width: 280px; }
.tech-names .brand-microsoft-365 img { max-height: none; }
.brand-google-workspace { --logo-width: 246px; }
.brand-stormshield { --logo-width: 260px; }
.brand-eset { --logo-width: 260px; }
.brand-mikrotik { --logo-width: 220px; }
.brand-cencert { --logo-width: 160px; }
@media (max-width: 1100px) {
  .tech-names { gap: 14px; }
  .tech-names .brand-logo { padding: 10px 14px; min-height: 120px; }
}
@media (max-width: 600px) {
  .tech-inner { padding-block: 30px; gap: 18px; }
  .tech-inner p { flex-wrap: wrap; gap: 2px 6px; font-size: .875rem; }
  .tech-inner p strong { font-size: 1rem; }
  .tech-names { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tech-names .brand-logo { min-height: 108px; padding: 5px 4px; border-radius: 14px; }
  .tech-names .brand-cencert { --logo-width: 132px; }
}

/* One local icon language: recognisable at every size, quiet beside the copy. */
.ui-icon { display: inline-block; width: 24px; height: 24px; flex: 0 0 auto; vertical-align: middle; }
.icon-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border: 1px solid #d2e3f7;
  border-radius: 16px;
  color: #1764c7;
  background: linear-gradient(145deg, #f4f9ff, #e7f0fc);
  box-shadow: inset 0 1px 0 #fff, 0 3px 8px #163b6505;
}
.icon-tile .ui-icon { width: 28px; height: 28px; }
.icon-tile-large { width: 76px; height: 76px; border-radius: 20px; }
.icon-tile-large .ui-icon { width: 38px; height: 38px; }
.section-icon { margin-bottom: 26px; }
.nav-panel a:has(.link-icon) { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 14px; align-items: center; }
.nav-panel .link-icon { width: 40px; height: 40px; border-radius: 11px; }
.nav-panel .link-icon .ui-icon { width: 21px; height: 21px; }
.link-copy { min-width: 0; }
.nav-panel .link-copy small { line-height: 1.55; }
.mobile-contact > a { gap: 9px; }
.mobile-contact .ui-icon { width: 19px; height: 19px; }
.compact-contact-details a:has(.ui-icon) { display: flex; align-items: center; gap: 14px; }
.compact-contact-details .ui-icon { width: 23px; height: 23px; color: #8dc7ff; }
.appointment > .ui-icon { margin-right: 9px; color: #1966c4; }

/* Responsive image sources replace the compressed, single-size background. */
.hero-photo { display: block; background: none; }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(95deg, #0f1923 0%, #0f1923f5 32%, #0f1923c7 58%, #0f19232e 100%);
  pointer-events: none;
}
@media (min-width: 1600px) { .hero-photo img { object-position: center 48%; } }
@media (max-width: 800px) { .hero-photo img { object-position: 60% center; } }

/* Clear type proportions and a consistent rhythm between sections. */
h1, h2, h3 { text-wrap: balance; }
.section { padding-block: clamp(64px, 7.2vw, 104px); }
.eyebrow { margin-bottom: 18px; letter-spacing: .12em; }
.section-heading { margin-bottom: 38px; }
.section-heading:has(> p) {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  align-items: end;
  gap: 40px 64px;
}
.section-heading > div { min-width: 0; }
.section-heading > p { max-width: 46ch; justify-self: end; line-height: 1.8; }
.section-heading > p:empty { display: none; }
.section-heading:has(> p:empty) { grid-template-columns: 1fr; }
.button {
  min-height: 54px;
  border-radius: 10px;
  padding: 16px 24px;
  line-height: 1.5;
  font-weight: 700;
  transition: background .2s, box-shadow .2s, transform .2s;
}
.button.primary { box-shadow: 0 5px 15px #1268ef18; }
.button > span { font-size: 20px; flex-shrink: 0; }
.text-link { min-height: 44px; }
header { box-shadow: 0 3px 20px #14293805; }
nav > .nav-contact { border-radius: 9px; }
.nav-panel { border-radius: 14px; box-shadow: 0 18px 44px #14293816; }
.nav-panel a { border-radius: 7px; }
.language-switch :is(a,.language-current) { border-radius: 7px; }

/* Strong main cards, quieter supporting routes. */
.services { background: #f8fafc; }
.service-grid.primary-services { gap: 24px; }
.service-card {
  display: flex;
  flex-direction: column;
  padding: clamp(26px, 3.1vw, 42px);
  border-radius: var(--card-radius);
  background: #fff;
  border-color: #d7e2ec;
  box-shadow: var(--card-shadow);
}
.service-card.featured {
  background: linear-gradient(125deg, #1468ed, #0c4fc3);
  border-color: #1769e3;
  box-shadow: 0 12px 32px #125cd21c;
}
.service-card h3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.3; margin-bottom: 16px; }
.service-card p { font-size: 1rem; line-height: 1.8; min-height: 0; margin-bottom: 30px; }
.service-card.featured p { color: #e8f1ff; }
.service-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  margin: 0 0 28px;
  border: 1px solid #dbe8fb;
  border-radius: 16px;
  background: #eef5ff;
}
.service-icon svg { width: 32px; height: 32px; }
.featured .service-icon { background: #ffffff17; border-color: #ffffff35; }
.card-number { top: 34px; right: 34px; font-size: .875rem; letter-spacing: .08em; color: #6d7d8b; }
.featured .card-number { color: #d1e4ff; }
.card-link { margin-top: auto; padding-top: 22px; font-size: .9375rem; gap: 20px; }
.card-link > span, .service-paths > a > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #edf4fd;
  color: var(--blue);
  font-size: 23px;
  line-height: 1;
  transition: background .2s, transform .2s;
}
.featured .card-link > span { color: #fff; background: #ffffff1c; }
.service-paths { gap: 24px; margin-top: 24px; }
.service-paths > a { padding: 24px 28px; border-radius: 16px; background: #fff; }
.service-paths h3 { font-size: 1.125rem; text-wrap: pretty; }
.service-paths p { font-size: .9375rem; }

/* One integration story, with concise, easy-to-scan areas of work. */
.business { background: #eef3f8; }
.business-grid { gap: clamp(40px, 6vw, 86px); align-items: center; }
.business-list { display: grid; gap: 14px; }
.business-list article, .business-list article:first-child {
  padding: 24px;
  border: 1px solid #dbe5ee;
  border-radius: 16px;
  background: #fff;
  gap: 20px;
}
.business-list article > span {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 10px;
  background: #edf4ff;
  font-size: .8125rem;
}
.business-list h3 { margin-bottom: 8px; }
.business-list article p { line-height: 1.7; }
.choice-grid { gap: 24px; }
.choice-grid article {
  padding: 30px;
  border-radius: var(--card-radius);
  border-color: var(--line);
  box-shadow: var(--card-shadow);
}
.offer-choices article { display: flex; flex-direction: column; }
.offer-choices h3 { margin-bottom: 16px; }
.offer-choices p { margin-bottom: 22px; line-height: 1.8; flex-grow: 1; }
.offer-choices article > a {
  display: block;
  padding-top: 14px;
  margin-top: 0;
  border-top: 1px solid var(--line);
  min-height: 48px;
  font-size: .9375rem;
}
.offer-choices article > a + a { margin-top: 10px; }
.offer-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid #dce7f7;
  border-radius: 13px;
  background: #f0f5fd;
  color: var(--blue);
  margin-bottom: 24px;
}
.offer-icon svg { width: 25px; height: 25px; }

/* Service pages share the same surfaces, number badges and link treatment. */
.subhero { background: linear-gradient(115deg, #122633 30%, #17364c); }
.subhero-grid { gap: clamp(36px, 5vw, 72px); }
.subhero h1 { max-width: 850px; }
.subhero .breadcrumb { color: #b3c4d2; }
.service-aside.service-overview {
  border: 1px solid #ffffff26;
  border-top: 3px solid #51bce9;
  border-radius: 18px;
  padding: 28px;
  background: #ffffff06;
  box-shadow: 0 12px 32px #0715201a;
}
.service-aside.service-overview > p { font-size: .9375rem; line-height: 1.7; margin-top: 20px; }
.service-aside .aside-contact {
  display: block;
  border-top: 1px solid #ffffff26;
  margin-top: 20px;
  padding-top: 18px;
  font-size: 1.5rem;
}
.detail-grid, .detail-grid.detail-six { gap: 24px; }
.detail-grid.detail-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail-grid article, .detail-grid.detail-six article {
  padding: 30px;
  border-radius: var(--card-radius);
  background: #fff;
  border-color: var(--line);
  box-shadow: var(--card-shadow);
}
.detail-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 24px;
  border-radius: 11px;
  background: #edf4ff;
  color: #125ecd;
  font-weight: 800;
  font-size: .8125rem;
}
.detail-grid h3, .detail-grid.detail-six h3 { font-size: 1.375rem; line-height: 1.4; }
.detail-grid p, .detail-grid.detail-six p { line-height: 1.8; }
.detail-grid article > .text-link { margin-top: 18px; }
.scope-note { padding: 24px 28px; background: #edf3fa; border-radius: 0 14px 14px 0; }
.sector-links { gap: 18px; }
.sector-links a {
  padding: 25px 28px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  transition: border-color .2s, background .2s;
}
.sector-links strong { font-size: 1.125rem; }
.sector-links span { line-height: 1.7; }
.sector-links a:hover { background: #f5f9ff; border-color: #90b8eb; }
.steps-list li { border-top: 2px solid #dce5ee; padding-top: 24px; }
.steps-list li::before {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 13px;
  background: #e9f1ff;
  color: #125ecd;
  margin-bottom: 24px;
}
.steps-list h3 { font-size: 1.25rem; }
.related-links { gap: 12px; }
.related-links a { border-radius: 10px; background: #fff; font-size: .9375rem; }

/* People, reviews and practical answers retain their own visual hierarchy. */
.person-photo { border-radius: 22px; box-shadow: 0 20px 48px #14293812; }
.person-photo figcaption { padding: 24px 28px; }
.founder-quote { padding: 20px 24px; border-radius: 0 14px 14px 0; background: #f1f5f9; }
.contact-intro { background: #f1f5f9; }
.since { align-self: start; border-top: 3px solid var(--blue); padding: 28px; background: #fff; border-radius: 16px; }
.principles { gap: 24px; }
.area-section { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.reviews-snapshot { border-radius: 22px; box-shadow: 0 12px 36px #1429380c; }
.reviews-score { background: linear-gradient(140deg, #1c3c54, #142938); }
.reviews-summary { padding: clamp(28px, 4vw, 52px); }
.reviews-summary h3 { font-size: clamp(28px, 2.8vw, 38px); }
.review-quotes article { border-radius: 16px; box-shadow: var(--card-shadow); }
.faq-section { background: #f4f7fa; }
.faq-list { display: grid; grid-template-columns: 1fr; gap: 12px; }
.faq-list details { border: 1px solid #d7e2ec; border-radius: 14px; background: #fff; }
.faq-list summary { padding: 22px 24px; font-size: 1rem; line-height: 1.65; }
.faq-list details:first-child summary { padding-top: 22px; }
.faq-list summary span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eef4fd;
  font-size: 23px;
}
.faq-list details[open] { border-color: #a1bfe6; }
.faq-list details p { padding: 0 24px 24px; margin: 0; max-width: none; line-height: 1.8; }

/* A distinct closing invitation, with readable contact details. */
.contact-compact { background: #fff; padding-block: 64px; }
.contact-compact .compact-contact-grid {
  padding: clamp(28px, 4.5vw, 60px);
  background: linear-gradient(115deg, #142938, #1b3a51);
  border: 1px solid #264a65;
  border-radius: 24px;
  color: #fff;
  gap: 42px;
}
.contact-compact h2 { font-size: clamp(28px, 3vw, 40px); }
.contact-compact .eyebrow { color: #91c4ff; }
.contact-compact p { color: #c4d4e1; }
.contact-compact .text-link { color: #fff; }
.contact-compact .compact-contact-details { border-color: #ffffff26; }
.contact-compact .contact-email { color: #d8e9f7; }
.contact-compact .contact-phone { color: #fff; }
.enquiry-form { background: #fff; border-radius: 20px; box-shadow: var(--card-shadow); padding: 36px; }
.field input, .field select, .field textarea { border-radius: 9px; }
.form-mode { background: #f0f5fb; padding: 14px 16px; border-radius: 9px; }
.map-frame { border-radius: 20px; box-shadow: var(--card-shadow); }
.mobile-contact > a { border-radius: 9px; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px #14293814; }
  .service-card:hover .card-link > span { transform: translate(2px, -2px); }
  .service-paths > a:hover > span { transform: translateY(-2px); }
}
@media (max-width: 1100px) {
  .section-heading:has(> p) { gap: 32px; }
  .detail-grid.detail-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-grid.detail-three > :last-child { grid-column: 1 / -1; }
  .choice-grid article, .detail-grid article, .detail-grid.detail-six article { padding: 26px; }
  .compact-contact-details { padding-left: 28px; }
}
@media (max-width: 800px) {
  .section-heading:has(> p) { grid-template-columns: 1fr; gap: 22px; }
  .section-heading > p { justify-self: start; max-width: 65ch; }
  .section-heading { margin-bottom: 30px; }
  .business-grid { gap: 36px; }
  .service-card h3 { font-size: 1.625rem; }
  .service-paths { gap: 16px; margin-top: 16px; }
  .offer-choices article { padding: 28px; }
  .person-photo { border-radius: 18px; }
  .contact-compact .compact-contact-grid { gap: 28px; }
  .contact-compact .compact-contact-details { padding: 24px 0 0; }
  .enquiry-form { padding: 28px; }
  .faq-list summary { padding: 20px; }
  .faq-list details:first-child summary { padding-top: 20px; }
  .faq-list details p { padding: 0 20px 22px; }
}
@media (max-width: 650px) {
  :root { --card-radius: 16px; }
  .service-card { padding: 26px; }
  .service-card p { margin-bottom: 26px; }
  .service-icon { width: 54px; height: 54px; border-radius: 14px; margin-bottom: 24px; }
  .card-number { top: 29px; right: 27px; }
  .card-link { font-size: .875rem; gap: 12px; }
  .service-paths > a { padding: 22px; gap: 16px; }
  .service-paths > a > span { width: 34px; height: 34px; }
  .business-list article, .business-list article:first-child { padding: 22px; gap: 16px; }
  .business-list article > span { width: 32px; height: 32px; }
  .business-list h3 { font-size: 1.125rem; }
  .detail-grid.detail-three { grid-template-columns: 1fr; }
  .detail-grid, .detail-grid.detail-six, .choice-grid { gap: 16px; }
  .detail-grid article, .detail-grid.detail-six article { padding: 26px; }
  .sector-links a, .scope-note { padding: 22px; }
  .founder-quote { padding: 18px 20px; }
  .contact-compact { padding-block: 40px; }
  .contact-compact .compact-contact-grid { padding: 28px 24px; border-radius: 20px; }
  .contact-compact .contact-email { font-size: 1rem; }
  .enquiry-form { padding: 24px 20px; }
  .reviews-snapshot { border-radius: 18px; }
  .reviews-summary { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-card:hover, .button:hover { transform: none; }
}

/* Editorial service cards pair recognisable subjects with clear service cues. */
.primary-services .service-card { padding: 0; overflow: hidden; }
.service-card-media { height: 188px; overflow: hidden; background: #182c3e; }
.service-card-media picture, .service-card-media img { display: block; width: 100%; height: 100%; }
.service-card-media img { object-fit: cover; object-position: center 48%; }
.service-card.featured .service-card-media img { object-position: right center; }
.service-card-copy { display: flex; flex: 1; flex-direction: column; padding: 0 34px 30px; }
.service-card-copy .service-icon {
  width: 62px; height: 62px; margin: -31px 0 22px; position: relative;
  background: #fff; color: #155ec6; border: 4px solid #fff; border-radius: 17px;
  box-shadow: 0 5px 18px #071a321a;
}
.service-card-copy .service-icon .ui-icon { width: 29px; height: 29px; }
.primary-services .card-number {
  top: 20px; right: 20px; display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border: 1px solid #ffffff4d; border-radius: 10px;
  background: #132a3dbd; color: #fff; backdrop-filter: blur(6px);
}
.service-card-copy h3 { font-size: clamp(25px,2.15vw,29px); }
.service-card-copy p { margin-bottom: 24px; }
.service-paths > a { display: grid; grid-template-columns: 48px minmax(0,1fr) 40px; gap: 20px; align-items: center; }
.service-paths > a > .path-icon { width: 48px; height: 48px; border-radius: 13px; color: #1764c7; background: #edf4fe; }
.service-paths .path-icon .ui-icon { width: 25px; height: 25px; }
.hero-credentials > div { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 6px 12px; }
.hero-credentials > div > .ui-icon { grid-column: 1; grid-row: 1 / 3; color: #7ac7f4; margin-top: 2px; width: 23px; height: 23px; }
.hero-credentials > div > strong, .hero-credentials > div > span { grid-column: 2; }
.business-list article > .icon-tile { width: 52px; height: 52px; background: #edf4ff; border: 1px solid #d4e5f9; border-radius: 14px; }
.business-list .icon-tile .ui-icon { width: 27px; height: 27px; }
.offer-choices article > .icon-tile { display: inline-flex; margin-bottom: 24px; }

/* Service overview graphics stay useful and subordinate to the heading. */
.subhero-grid { grid-template-columns: minmax(0,1.45fr) minmax(330px,1fr); gap: clamp(36px,4.5vw,64px); }
.service-aside.service-overview > .overview-visual { display: block; margin: 0 0 24px; padding: 0; border: 0; }
.overview-visual .icon-tile, .mesh-node .icon-tile {
  color: #b1e3ff; border-color: #74b8ed40; background: linear-gradient(145deg,#294c665c,#18384f);
  box-shadow: inset 0 1px 0 #b1d9f71a;
}
.service-aside.service-overview > .overview-photo { display: block; margin: -28px -28px 24px; padding: 0; border: 0; border-radius: 16px 16px 0 0; overflow: hidden; }
.overview-photo picture, .overview-photo img { display: block; width: 100%; }
.overview-photo img { height: 180px; object-fit: cover; object-position: center 48%; }
.service-aside.service-overview:has(.overview-photo) { overflow: hidden; }
.service-aside .hero-scope { margin-top: 14px; }
.detail-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.detail-index, .step-index { color: #6b7f92; font-size: .875rem; line-height: 1; letter-spacing: .05em; font-weight: 650; padding-top: 6px; }
.detail-grid article { position: relative; }
.detail-grid article:has(.detail-top):hover { border-color: #b4cce7; }
.sector-links a:has(.link-icon) { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: start; gap: 20px; }
.sector-links .link-icon { width: 52px; height: 52px; border-radius: 14px; }
.sector-links .link-copy > span { display: block; margin-top: 8px; }
.sector-links .link-copy > strong { display: block; line-height: 1.45; }
.support-checklist > .icon-tile { margin-bottom: 22px; color: #b1e3ff; background: #22465f; border-color: #416681; box-shadow: none; }
.steps-list { gap: 28px; }
.steps-list li { padding: 26px; background: #fff; border: 1px solid #dbe5ef; border-radius: 18px; box-shadow: var(--card-shadow); }
.steps-list li::before { content: none; }
.step-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 24px; }
.step-top .icon-tile { width: 48px; height: 48px; border-radius: 13px; }
.step-top .ui-icon { width: 24px; height: 24px; }
.steps-list li:last-child .icon-tile { color: #17615e; border-color: #c4dfdc; background: #edf7f6; }
.steps-list h3 { margin-bottom: 13px; line-height: 1.45; }
.steps-list p { font-size: 1rem; line-height: 1.8; }
.principles article { display: grid; grid-template-columns: 48px minmax(0,1fr); column-gap: 22px; }
.principles .icon-tile { grid-row: 1 / 3; width: 48px; height: 48px; border-radius: 13px; }
.principles h3, .principles p { grid-column: 2; }
.principles .ui-icon { width: 24px; height: 24px; }

/* A small factual connection diagram belongs only on the Wi-Fi service page. */
.mesh-diagram { margin: 0 0 28px; padding-bottom: 25px; border-bottom: 1px solid #ffffff24; }
.mesh-diagram figcaption { color: #b8cbda; font-size: .875rem; margin-bottom: 24px; }
.mesh-nodes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.mesh-node { display: flex; flex-direction: column; align-items: center; position: relative; gap: 13px; min-width: 0; }
.mesh-node > span:last-child { font-size: .875rem; line-height: 1.4; color: #e1edf6; text-align: center; }
.mesh-node:not(:last-child)::after { content: ''; position: absolute; top: 28px; left: calc(50% + 32px); width: calc(100% - 48px); border-top: 2px dashed #6fa4c8; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-card-media img { transition: transform .35s ease; }
  .service-card:hover .service-card-media img { transform: scale(1.035); }
  .detail-grid article { transition: border-color .2s ease; }
}
@media (max-width: 1100px) {
  .steps-list.steps-four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .steps-list { gap: 20px; }
  .service-paths > a { gap: 16px; padding: 24px; }
}
@media (max-width: 1000px) {
  .nav #navigation { max-height: calc(100dvh - 126px); overscroll-behavior: contain; }
}
@media (max-width: 800px) {
  .subhero-grid { grid-template-columns: 1fr; gap: 32px; }
  .nav #navigation { max-height: calc(100dvh - 198px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 24px; }
  .service-card-copy { padding: 0 28px 28px; }
  .service-card-media { height: 195px; }
  .service-aside.service-overview { padding: 26px; }
  .service-aside.service-overview > .overview-photo { margin: -26px -26px 24px; }
  .overview-photo img { height: 240px; }
  .service-aside.service-overview > .overview-visual { margin-bottom: 20px; }
  .overview-visual .icon-tile-large { width: 62px; height: 62px; border-radius: 16px; }
  .overview-visual .ui-icon { width: 31px; height: 31px; }
  .service-aside .hero-scope { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; }
  .service-aside .hero-scope li { padding: 0; margin: 0; }
}
@media (max-width: 650px) {
  .hero-credentials { gap: 18px; }
  .hero-credentials > div { grid-template-columns: 1fr; gap: 9px; }
  .hero-credentials > div > .ui-icon { grid-column: 1; grid-row: auto; }
  .hero-credentials > div > strong, .hero-credentials > div > span { grid-column: 1; }
  .primary-services .service-card-media { height: 170px; }
  .service-card-copy { padding: 0 24px 26px; }
  .service-card-copy .service-icon { width: 56px; height: 56px; margin-top: -28px; margin-bottom: 20px; }
  .service-paths > a { grid-template-columns: 44px minmax(0,1fr) 28px; gap: 14px; padding: 22px 20px; }
  .service-paths > a > .path-icon { width: 44px; height: 44px; border-radius: 12px; }
  .service-paths > a > span:last-child { width: 28px; height: 28px; font-size: 20px; }
  .service-paths h3 { font-size: 1rem; }
  .service-paths p { font-size: .875rem; }
  .business-list article > .icon-tile { width: 44px; height: 44px; border-radius: 12px; }
  .business-list .icon-tile .ui-icon { width: 24px; height: 24px; }
  .detail-top { margin-bottom: 22px; }
  .detail-top .icon-tile { width: 52px; height: 52px; border-radius: 14px; }
  .sector-links a:has(.link-icon) { grid-template-columns: 44px minmax(0,1fr); gap: 16px; }
  .sector-links .link-icon { width: 44px; height: 44px; border-radius: 12px; }
  .sector-links .link-icon .ui-icon { width: 24px; height: 24px; }
  .steps-list, .steps-list.steps-four { grid-template-columns: 1fr; gap: 16px; }
  .steps-list li { padding: 24px; }
  .principles article { grid-template-columns: 42px minmax(0,1fr); column-gap: 16px; }
  .principles .icon-tile { width: 42px; height: 42px; border-radius: 12px; }
  .overview-photo img { height: 185px; }
  .service-aside .hero-scope { grid-template-columns: 1fr; }
  .compact-contact-details a:has(.ui-icon) { gap: 10px; }
  .compact-contact-details .ui-icon { width: 20px; height: 20px; }
  .mesh-nodes { gap: 12px; }
  .mesh-node .icon-tile { width: 50px; height: 50px; border-radius: 14px; }
  .mesh-node:not(:last-child)::after { top: 25px; left: calc(50% + 28px); width: calc(100% - 44px); }
}

/* Refined studio direction: clear typography, distinct imagery and quiet surfaces. */
:root {
  --ink: #142b3e;
  --muted: #566a79;
  --blue: #1464e6;
  --line: #dae4ec;
  --paper: #f5f8fb;
  --card-radius: 22px;
  --card-shadow: 0 10px 32px #142b3e06;
}
html { scroll-padding-top: 132px; }
body { background: #fff; }
::selection { background: #ccebf8; color: #142b3e; }
h2 { font-size: clamp(2rem, 3.25vw, 3rem); letter-spacing: -.045em; line-height: 1.17; }
h3 { letter-spacing: -.025em; }
.section { padding-block: clamp(68px, 7.5vw, 112px); }
.eyebrow { font-size: .8125rem; letter-spacing: .11em; line-height: 1.6; }
.section-heading { gap: 44px 64px; margin-bottom: 44px; }
.section-heading > p { font-size: 1rem; line-height: 1.8; color: var(--muted); }
.topline { background: #f4f7f9; border-bottom: 1px solid #e8edf2; color: #506371; }
.topline .wrap { padding-block: 8px; }
header { background: #fffffff5; backdrop-filter: blur(16px); border-bottom: 1px solid #e4ebf0; box-shadow: 0 4px 20px #142b3e03; }
.nav { --nav-height: 108px; height: var(--nav-height); gap: 24px; }
.nav .brand { flex: 0 0 auto; }
.nav .brand img { display: block; width: 248px; max-height: none; height: auto; }
.nav #navigation { gap: 22px; font-size: .875rem; }
.nav .language-switch { margin-left: auto; }
.nav #navigation > .nav-contact { padding: 14px 24px; border-radius: 12px; background: #142b3e; color: #fff; }
.nav #navigation > .nav-contact:hover, .nav #navigation > .nav-contact[aria-current="page"] { background: var(--blue); color: #fff; }
.nav-panel { border-color: #dbe6ef; padding: 18px; border-radius: 18px; box-shadow: 0 18px 50px #1429381a; }
.nav-panel .nav-caption { margin: 4px 8px 12px; color: #566a79; }
.nav-panel a { border-radius: 12px; }
.nav-panel a:hover { background: #edf5fc; }
.language-switch :is(a,.language-current)[aria-current] { color: #185bc1; background: #edf4fb; }
.button { min-height: 56px; border-radius: 12px; padding: 16px 24px; font-size: .9375rem; }
.button.primary { box-shadow: 0 6px 16px #1464e620; }
.button.dark { background: #142b3e; }
.button.dark:hover { background: var(--blue); }
.text-link { font-size: .9375rem; text-underline-offset: 5px; }
.text-link:hover { text-decoration: underline; }

/* Final interaction details keep the interface precise across input methods. */
:where(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid #268cc5; outline-offset: 5px; }
:where(.subhero, .business, .support-section, footer) :where(a, button, summary):focus-visible { outline-color: #8dd8f5; }
.nav-panel a:focus-visible { background: #edf5fc; }
.nav-panel .link-copy { min-width: 0; }
.nav-panel small { line-height: 1.65; }
.field input, .field select, .field textarea { transition: border-color .18s ease, box-shadow .18s ease; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #3986b5; box-shadow: 0 0 0 4px #2188bf10; }
.field textarea { resize: vertical; min-height: 160px; }
.service-card:focus-visible, .service-paths > a:focus-visible { outline-offset: 6px; }
.footer-links a:hover, .footer-bottom a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 1181px) {
  .nav #navigation > a:not(.nav-contact), .nav-group > summary { position: relative; }
  .nav #navigation > a:not(.nav-contact)::after, .nav-group > summary::after { content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 2px; background: #298fbc; opacity: 0; }
  .nav-group > summary::after { bottom: 2px; }
  .nav #navigation > a[aria-current="page"]::after, .nav #navigation > a.is-current::after, .nav-group.is-current > summary::after { opacity: 1; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button, .service-paths > a, .contact-channel { transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
  .service-paths > a:hover { border-color: #9dbfd5; background: #eef6fb; }
  .nav #navigation > a:not(.nav-contact):hover::after, .nav-group > summary:hover::after { opacity: 1; }
}

/* The opening separates the message from the photo instead of covering it. */
.hero { width: 100%; margin: 0; padding: 42px 0 58px; min-height: 0; overflow: visible; border-radius: 0; background: #fff; color: var(--ink); box-shadow: none; }
.hero-grid { display: grid; grid-template-columns: minmax(0,1.14fr) minmax(0,.86fr); gap: 44px; align-items: stretch; }
.hero-copy { padding: 34px 0 30px; min-width: 0; }
.hero .eyebrow.light { color: #376580; margin-bottom: 25px; }
.hero .eyebrow.light > span { background: #38afd9; }
.hero h1 { max-width: none; font-size: clamp(2.9rem,4.45vw,4.25rem); font-weight: 750; letter-spacing: -.05em; line-height: 1.12; margin-bottom: 27px; }
.hero h1 em { color: #137da6; }
.hero p { color: #536979; font-size: 1.0625rem; line-height: 1.85; max-width: 57ch; text-wrap: pretty; }
.hero .actions { gap: 18px; flex-wrap: wrap; margin-top: 30px; }
.hero .actions .text-link { min-height: 56px; padding: 14px 20px; border: 1px solid #d4e0e9; border-radius: 12px; color: #183a52; gap: 18px; }
.hero .actions .text-link:hover { background: #f2f7fb; text-decoration: none; border-color: #a9c7dc; }
.hero .hero-call { display: inline-block; color: #526877; margin-top: 23px; font-size: .9375rem; font-weight: 650; }
.hero .hero-call:hover { color: var(--blue); }
.hero-visual { position: relative; min-height: 570px; overflow: hidden; border-radius: 24px; background: #122b3f; box-shadow: 0 16px 36px #142b3e10; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; background: none; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 76% center; }
.hero-photo::after { background: linear-gradient(180deg,#081d2b08 30%,#0b213138 62%,#0b2131b5 100%); }
.hero .hero-credentials { position: absolute; bottom: 16px; left: 16px; right: 16px; width: auto; max-width: none; margin: 0; padding: 22px 18px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; border: 1px solid #d6eeff45; border-radius: 16px; background: #102a3cdb; backdrop-filter: blur(12px); }
.hero-credentials > div { grid-template-columns: 1fr; gap: 8px; min-width: 0; }
.hero-credentials > div > .ui-icon { grid-column: 1; grid-row: auto; width: 23px; height: 23px; margin: 0 0 3px; color: #8cdaf5; }
.hero-credentials > div > strong, .hero-credentials > div > span { grid-column: 1; }
.hero-credentials strong { font-size: .9375rem; line-height: 1.5; }
.hero-credentials span { font-size: .8125rem; line-height: 1.65; color: #c4d6e3; margin-top: 0; }

/* Original marks stay large and crisp in a measured, uncluttered grid. */
.technologies { background: #f7f9fb; border-block: 1px solid #e3ebf1; }
.tech-inner { padding-block: 30px 38px; gap: 20px; }
.tech-inner p { gap: 6px; }
.tech-inner p::after { content: ''; flex: 1; height: 1px; margin-left: 22px; background: #dce5ed; }
.tech-names { gap: 12px; }
.tech-names .brand-logo { min-height: 120px; padding: 14px 22px; border-color: #e0e8ef; border-radius: 14px; box-shadow: none; }

/* Primary services have the weight of editorial panels, with legible detail. */
.services { background: #fff; }
.service-grid.primary-services { gap: 28px; }
.service-card { border-color: #d5e1e9; box-shadow: var(--card-shadow); }
.service-card.featured { background: #132d43; border-color: #132d43; box-shadow: var(--card-shadow); }
.primary-services .service-card-media { height: 240px; }
.service-card-copy { padding: 0 34px 32px; }
.service-card-copy .service-icon { width: 64px; height: 64px; border-radius: 17px; margin-top: -32px; margin-bottom: 24px; box-shadow: 0 4px 16px #10253612; }
.service-card-copy h3 { font-size: clamp(1.625rem,2.3vw,2rem); line-height: 1.25; margin-bottom: 18px; }
.service-card-copy p { line-height: 1.85; margin-bottom: 26px; }
.service-card.featured p { color: #d1e0ec; }
.primary-services .card-number { background: #112c40c7; border-color: #d9efff66; width: 38px; height: 38px; }
.card-link { padding-top: 23px; }
.card-link > span { width: 42px; height: 42px; background: #ecf4fc; }
.featured .card-link { border-color: #e4f1ff2b; }
.featured .card-link > span { background: #e2f3fd; color: #163d57; }
.service-paths { margin-top: 22px; gap: 22px; }
.service-paths > a { border-color: #dce6ee; background: #f7fafc; padding: 26px; border-radius: 16px; }
.service-paths h3 { font-size: 1.125rem; }
.service-paths p { color: #596f7f; }

/* A darker integration chapter gives the page a deliberate visual rhythm. */
.business { background: #102a3e; color: #fff; }
.business-grid { gap: clamp(40px,6vw,86px); }
.business h2, .business-list h3 { color: #fff; }
.business .eyebrow { color: #8bd4ed; }
.business .intro { color: #c5d6e3; font-size: 1.0625rem; line-height: 1.85; }
.business .button.dark { background: #fff; color: #17354d; box-shadow: none; }
.business .button.dark:hover { background: #dff0fa; }
.business-list { gap: 14px; }
.business-list article, .business-list article:first-child { border: 1px solid #b6d6ee29; border-radius: 16px; background: #ffffff05; padding: 26px; gap: 20px; }
.business-list article p { font-size: 1rem; color: #bed0df; line-height: 1.8; }
.business-list article > .icon-tile { color: #92d9f3; background: #1e4059; border-color: #6b9ebe40; box-shadow: none; }
.more { background: #fff; }
.choice-grid { gap: 24px; }
.choice-grid article { border-radius: 18px; border-color: #dae4ec; padding: 32px; box-shadow: none; }
.offer-choices h3 { font-size: 1.375rem; }
.offer-choices article > a { padding-block: 15px 4px; min-height: 48px; }
.offer-icon, .detail-top .icon-tile { background: #eef5fb; border-color: #d6e5f2; box-shadow: none; }

/* The portrait and quotation form a quiet, recognisable company signature. */
.about-section { background: #f5f8fb; border-block: 1px solid #e6ecf2; }
.founder-grid { gap: clamp(42px,6vw,88px); align-items: center; }
.person-photo { border-radius: 20px; border: 1px solid #d8e3ec; background: #132d43; box-shadow: 0 16px 40px #142b3e0b; }
.person-photo figcaption { padding: 25px 28px; }
.person-photo figcaption strong { font-size: 1.375rem; }
.person-photo figcaption div > span { font-size: .875rem; color: #c7d9e6; }
.founder-copy .intro { max-width: 58ch; }
.founder-quote { background: #fff; border-left: 3px solid #1b92c1; border-radius: 0 16px 16px 0; padding: 24px 28px; }
.founder-copy .founder-quote blockquote p { font-size: 1.25rem; line-height: 1.7; }
.area-section { background: #fff; border: 0; }
.area-section > .wrap { display: grid; grid-template-columns: 1.05fr .95fr; column-gap: 60px; }
.area-section .eyebrow { grid-column: 1 / -1; }
.area-section h2 { grid-column: 1; grid-row: 2 / 4; }
.area-section p { grid-column: 2; margin-top: 0; font-size: 1.0625rem; line-height: 1.85; }
.area-section .text-link { grid-column: 2; margin-top: 22px; justify-self: start; }
.google-reviews { padding-top: 30px; }
/* One cohesive endorsement panel, with the original Google mark on white. */
.reviews-snapshot {
  grid-template-columns: minmax(230px,.85fr) minmax(0,1.8fr);
  position: relative;
  border: 1px solid #33566e;
  border-radius: 24px;
  background: radial-gradient(ellipse at 100% 0%,#2b617a55,transparent 65%),#10293d;
  box-shadow: 0 20px 50px #10293d12;
}
.reviews-score { position: relative; background: transparent; border: 0; padding: 44px clamp(24px,3vw,40px); gap: 26px; }
.reviews-score::after { content: ''; position: absolute; top: 44px; bottom: 44px; right: 0; width: 1px; background: #a3c4da30; }
.reviews-source { gap: 10px; padding: 17px 19px; border-radius: 12px; box-shadow: 0 8px 24px #06182624; }
.reviews-source img { width: clamp(96px,9vw,118px); }
.reviews-source > span { font-size: 1rem; }
.reviews-fallback-label { display: flex; flex-direction: column; align-items: center; min-width: 0; color: #fff; line-height: 1.5; }
.reviews-profile-name { display: block; font-size: 2rem; line-height: 1.15; font-weight: 750; letter-spacing: -.035em; }
.reviews-fallback-label .reviews-profile-detail { margin-top: 6px; color: #c0d1de; font-size: .8125rem; font-weight: 500; letter-spacing: .015em; }
.reviews-fallback-label .reviews-profile-location { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 18px; padding: 6px 12px; border: 1px solid #9fc6dc38; border-radius: 999px; background: #c4e9fa08; color: #d9e8f2; font-size: .8125rem; font-weight: 550; white-space: nowrap; }
.reviews-profile-location .ui-icon { width: 15px; height: 15px; flex-shrink: 0; color: #8ed0e9; }
.reviews-live-score strong { color: #fff; }
.reviews-live-score small { color: #b5ccdb; }
.reviews-summary { padding: clamp(36px,4.5vw,60px) clamp(32px,5vw,68px); }
.reviews-summary h3 { color: #fff; font-size: clamp(1.875rem,3.05vw,2.65rem); line-height: 1.22; letter-spacing: -.045em; margin-bottom: 20px; text-wrap: balance; }
.reviews-summary p { color: #c0d1de; font-size: 1.0625rem; max-width: 54ch; line-height: 1.8; }
.reviews-link.button.primary { background: #fff; color: #132f44; padding: 9px 10px 9px 22px; min-height: 60px; gap: 30px; margin-top: 30px; border-radius: 12px; box-shadow: 0 5px 16px #06182618; }
.reviews-link > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: #edf4f8; color: #235475; font-size: 1.25rem; }
.reviews-link.button.primary:hover { background: #eaf5fc; box-shadow: 0 8px 22px #06182630; }
.reviews-link:focus-visible { outline: 3px solid #8edbf4; outline-offset: 6px; }
.faq-section { background: #f6f9fb; }
.faq-list details { border-color: #dbe5ed; box-shadow: 0 2px 4px #142b3e02; }
.faq-list summary { padding: 23px 24px; }
.faq-list details[open] { border-color: #9fbfd8; }
.faq-list details[open] summary span { transform: none; font-size: 0; background: #dfedf6; }
.faq-list details[open] summary span::before { content: "-"; font-size: 23px; }
.faq-list summary span { background: #edf4fa; color: #24658f; }

/* A consistent page opening and scope cards extend the identity to every service. */
.subhero { width: min(1480px,calc(100% - 40px)); margin: 20px auto 0; padding-block: 32px 64px; border-radius: 26px; background: radial-gradient(ellipse at 100% 0%,#31617f50,transparent 60%),#112c41; overflow: hidden; }
.subhero .wrap { width: min(1280px,calc(100% - 88px)); }
.subhero-grid > div, .subhero-grid > aside { min-width: 0; }
.subhero .breadcrumb { font-size: .875rem; color: #bdd1df; margin-bottom: 44px; }
.subhero h1 { font-size: clamp(2.5rem,4.15vw,3.85rem); letter-spacing: -.045em; line-height: 1.13; text-wrap: balance; }
.subhero p { font-size: 1.0625rem; line-height: 1.85; }
.subhero .eyebrow.light { color: #8cd5ef; }
.service-aside.service-overview { border-radius: 18px; border: 1px solid #a5cfe346; background: #ffffff06; box-shadow: none; }
.service-aside.service-overview > .overview-photo { border-radius: 16px 16px 0 0; }
.service-aside .label { color: #a8d6ec; font-size: .8125rem; }
.service-aside .aside-contact { font-size: 1.625rem; color: #fff; }
.scope-section { background: #fff; }
.subpage > .scope-section:nth-of-type(odd) { background: #f5f8fb; }
.detail-grid article, .detail-grid.detail-six article { padding: 32px; border-radius: 18px; border-color: #dbe5ed; box-shadow: 0 4px 18px #142b3e04; }
.detail-grid article:has(.detail-top):hover { border-color: #dbe5ed; }
.detail-grid h3, .detail-grid.detail-six h3 { font-size: 1.375rem; line-height: 1.4; }
.detail-grid p, .detail-grid.detail-six p { font-size: 1rem; line-height: 1.85; }
.detail-index, .step-index { color: #697f90; font-variant-numeric: tabular-nums; }
.scope-note { background: #eef5fa; border-left-color: #348db8; }
.sector-links a { border-radius: 15px; border-color: #dbe5ed; }
.steps-list li { border-radius: 18px; padding: 28px; box-shadow: none; }
.related-section { background: #f5f8fb; }
.related-links a { border-radius: 10px; background: #fff; font-size: .9375rem; }
.film-options article { border-radius: 18px; }
.support-checklist { border-radius: 18px; }

/* Invitations, forms and the footer share the same measured detailing. */
.contact-compact { padding-block: 64px; background: #fff; }
.contact-compact .compact-contact-grid { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 36px clamp(28px,5vw,64px); border-radius: 24px; background: radial-gradient(ellipse at 100% 0%,#2d617c48,transparent 65%),#112e44; border: 1px solid #33566e; padding: clamp(30px,4.5vw,60px); box-shadow: 0 18px 44px #142b3e10; }
.compact-contact-copy { min-width: 0; }
.contact-compact h2 { max-width: 15ch; font-size: clamp(2rem,3.4vw,2.85rem); line-height: 1.18; letter-spacing: -.04em; margin: 0 0 20px; text-wrap: balance; }
.contact-compact .eyebrow { color: #8ed0e9; margin-bottom: 20px; }
.contact-compact .compact-contact-copy p { font-size: 1.0625rem; line-height: 1.8; max-width: 46ch; color: #c4d5e1; }
.contact-compact .contact-link { margin-top: 26px; padding: 10px 10px 10px 22px; gap: 32px; background: #fff; color: #17354d; min-height: 56px; border-radius: 12px; }
.contact-link > span { display: grid; place-items: center; width: 36px; height: 36px; background: #edf4f8; border-radius: 8px; color: #235475; }
.contact-compact .contact-link:hover { background: #eaf5fc; }
.contact-compact .compact-contact-details { display: grid; gap: 14px; border: 0; padding: 0; min-width: 0; }
.contact-compact .compact-contact-details .contact-channel { display: grid; grid-template-columns: 46px minmax(0,1fr) 18px; align-items: center; gap: 16px; min-height: 106px; padding: 22px; border: 1px solid #a6cbdf38; border-radius: 15px; background: #d2edff08; color: #fff; transition: background .2s, border-color .2s; }
.contact-channel-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #a3d9f212; border: 1px solid #a3d9f22b; }
.contact-channel-icon .ui-icon { width: 22px; height: 22px; color: #9bd4ec; }
.contact-channel-copy { display: grid; gap: 5px; min-width: 0; }
.contact-channel-label { color: #b4cddd; font-size: .8125rem; font-weight: 500; }
.contact-channel-value { display: block; color: #fff; font-weight: 700; line-height: 1.4; }
.contact-channel-phone { font-size: clamp(1.5rem,2.45vw,2rem); letter-spacing: -.025em; white-space: nowrap; }
.contact-channel-email { font-size: clamp(1rem,1.45vw,1.1875rem); letter-spacing: -.015em; overflow-wrap: anywhere; }
.contact-channel-email > span { white-space: nowrap; }
.contact-channel-arrow { color: #96bdd5; font-size: 1.125rem; }
.contact-compact .compact-contact-details .contact-channel:hover { border-color: #a6cbdf80; background: #d2edff12; }
.contact-compact a:focus-visible { outline: 3px solid #8edbf4; outline-offset: 5px; }
.compact-contact-note { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 16px 32px; border-top: 1px solid #a3c4da30; padding-top: 24px; }
.contact-compact .compact-contact-note p { display: flex; align-items: flex-start; gap: 10px; font-size: .8125rem; line-height: 1.65; color: #b9cfde; }
.compact-contact-note .ui-icon { width: 17px; height: 17px; flex-shrink: 0; margin-top: 2px; color: #8eb9d1; }
.service-request { background: #fff; border-top: 1px solid #e0e8ef; }
.service-request-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 40px; }
.service-request-heading h2 { max-width: 22ch; }
.service-request-external { flex-shrink: 0; min-height: 44px; }
.service-request-intro { max-width: 68ch; margin-top: 22px; font-size: 1.0625rem; line-height: 1.8; }
.service-preparation { margin-top: 28px; padding: 28px 32px; border: 1px solid #dce7ee; border-radius: 16px; background: #f5f9fc; scroll-margin-top: 112px; }
.service-preparation > h3 { margin: 0 0 24px; font-size: 1.25rem; line-height: 1.4; }
.service-preparation-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.service-preparation-grid li { min-width: 0; }
.service-preparation-icon { display: inline-flex; color: #25728f; margin-bottom: 12px; }
.service-preparation-icon .ui-icon { width: 24px; height: 24px; }
.service-preparation-grid h4 { margin: 0 0 10px; font-size: 1rem; line-height: 1.5; }
.service-preparation-grid p { margin: 0; color: #476176; font-size: 1rem; line-height: 1.7; }
.service-request-frame { margin-top: 32px; border: 1px solid #d5e1eb; border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 10px 30px #142b3e06; }
.service-request-iframe { display: block; width: 100%; height: 1280px; border: 0; background: transparent; }
.service-request-note { margin-top: 18px; font-size: .875rem; line-height: 1.7; }
.service-request-note a { color: #155aa3; text-decoration: underline; text-underline-offset: 3px; }
.service-request-unavailable { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px 72px; align-items: center; }
.service-request-unavailable h2 { max-width: 23ch; }
.service-request-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
.service-request-actions .button:last-child { background: #edf3f8; color: #17354d; box-shadow: none; }
.service-request-actions .button:last-child:hover { background: #dce9f3; }
@media (max-width: 800px) {
  .service-request-unavailable { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .service-request-actions { align-items: flex-start; }
  .service-request-actions .button { max-width: 100%; gap: 16px; }
  .service-request-heading { align-items: flex-start; flex-direction: column; gap: 16px; }
  .service-request-intro { margin-top: 14px; font-size: 1rem; }
  .service-request-frame { margin-top: 24px; border-radius: 14px; }
  .service-preparation { padding: 24px; }
  .service-preparation-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .service-preparation-grid li { padding-left: 38px; position: relative; }
  .service-preparation-icon { position: absolute; left: 0; top: 2px; margin: 0; }
}
.contact-intro { background: #f6f9fb; }
.contact-intro .breadcrumb { color: #607687; }
.enquiry-section { background: #f6f9fb; }
.enquiry-form { border: 1px solid #dbe5ed; border-radius: 20px; box-shadow: 0 12px 32px #142b3e05; padding: 36px; }
.field label { font-weight: 650; }
.field input, .field select, .field textarea { border-radius: 10px; border-color: #bfcedb; background: #fff; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid #1464e62b; outline-offset: 2px; border-color: #2673d7; }
.map-frame { border-radius: 20px; border-color: #d4e0e9; box-shadow: none; }
.legal-intro { background: #f3f7fa; border-bottom: 1px solid #dce6ed; }
.legal-nav a { border-radius: 0 8px 8px 0; }
.legal-copy { max-width: 76ch; }
.legal-copy h2 { padding-top: 10px; }
.legal-document-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 28px; }
.legal-document-actions > span { font-size: .875rem; color: #526779; }
.repair-terms-layout .legal-nav { max-height: calc(100dvh - 150px); overflow-y: auto; padding-right: 8px; }
.repair-terms-layout .legal-copy { min-width: 0; }
.repair-terms-layout .legal-copy p { overflow-wrap: anywhere; }
.repair-terms-summary { border-left: 3px solid #1268ef; padding: 5px 22px 15px; margin-bottom: 35px; background: #f1f6fa; border-radius: 0 12px 12px 0; }
.repair-terms-summary p { margin-top: 10px; color: #17354d; font-weight: 650; }
@media (max-width: 800px) {
  .repair-terms-layout .legal-nav { max-height: none; overflow: visible; padding-right: 0; }
  .legal-intro h1 { overflow-wrap: anywhere; }
  .legal-document-actions .button { gap: 16px; max-width: 100%; }
}
@media print {
  body:has(.repair-terms-layout) { padding: 0; font-size: 11pt; }
  body:has(.repair-terms-layout) header, body:has(.repair-terms-layout) .topline,
  body:has(.repair-terms-layout) footer, body:has(.repair-terms-layout) .mobile-contact,
  body:has(.repair-terms-layout) .consent-banner, body:has(.repair-terms-layout) dialog,
  body:has(.repair-terms-layout) .legal-nav, body:has(.repair-terms-layout) .breadcrumb,
  body:has(.repair-terms-layout) .legal-document-actions .button { display: none !important; }
  body:has(.repair-terms-layout) .wrap { width: 100%; }
  body:has(.repair-terms-layout) .legal-intro { background: #fff; padding: 0 0 20px; }
  body:has(.repair-terms-layout) .legal-intro h1 { font-size: 25pt; }
  .repair-terms-layout { display: block; padding: 20px 0 0; }
  .repair-terms-layout .legal-copy { max-width: none; }
  .repair-terms-layout .legal-copy p { font-size: 11pt; line-height: 1.5; }
  .repair-terms-layout .legal-copy h2 { font-size: 15pt; break-after: avoid; }
}
.consent-banner { border: 1px solid #d5e1eb; border-radius: 16px; box-shadow: 0 14px 45px #142b3e22; }
.consent-actions button, .privacy-reject { border-radius: 9px; }
#privacy-dialog { border-radius: 20px; }
footer { background: #0e2435; padding-top: 54px; }
.footer-top { padding-bottom: 44px; align-items: flex-end; gap: 32px; }
.footer-identity::before { content: ""; width: 48px; height: 3px; margin-bottom: 22px; border-radius: 2px; background: #79c6ee; }
.footer-tagline {
  display: flex;
  flex-wrap: wrap;
  gap: .12em .38em;
  margin: 0;
  font-size: clamp(1.75rem, 3.2vw, 2.625rem);
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -.04em;
  color: #f4f8fc;
}
.footer-tagline-part { white-space: nowrap; }
.footer-tagline-dot { color: #79c6ee; }
.footer-top > a:last-child { flex-shrink: 0; padding: 13px 18px; border: 1px solid #6c8ca24f; border-radius: 10px; color: #d6e5f0; font-size: .875rem; white-space: nowrap; }
.footer-top > a:last-child:hover { border-color: #79c6ee; color: #fff; }
.footer-links { gap: 28px; padding-block: 34px 42px; }
.footer-links span { color: #a4bccd; font-size: .8125rem; letter-spacing: .065em; }
.footer-links a { font-size: .9375rem; line-height: 1.7; }
.footer-location p, .footer-legal p { color: #a6bdcc; }
.footer-bottom { color: #b5c9d7; }
.mobile-contact { box-shadow: 0 -5px 18px #142b3e09; }
.mobile-contact > a { border-radius: 10px; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-card:hover { box-shadow: 0 18px 40px #142b3e12; transform: translateY(-4px); }
  .tech-names .brand-logo { transition: border-color .2s; }
  .tech-names .brand-logo:hover { border-color: #aec9de; }
}
@media (max-width: 1180px) {
  html { scroll-padding-top: 116px; }
  .nav { --nav-height: 96px; gap: 20px; }
  .nav .brand img { width: 230px; }
  .nav #navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 18px 24px 24px; background: #fff; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); box-shadow: 0 16px 28px #14293812; max-height: calc(100dvh - var(--nav-height) - 56px); overflow-y: auto; overscroll-behavior: contain; }
  .nav #navigation.open { display: flex; }
  .nav #navigation > a { font-size: 1rem; padding: 14px 13px; }
  .nav #navigation > .nav-contact { margin-top: 10px; text-align: center; color: #fff; padding: 14px 20px; }
  .nav .menu-toggle { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 14px; border: 1px solid #d5e1eb; border-radius: 12px; background: #fff; font-size: .875rem; }
  .nav-group > summary { padding: 15px 13px; justify-content: space-between; font-size: 1rem; }
  .nav-panel { position: static; width: auto; margin: 0 0 12px; padding: 16px 12px; border: 1px solid #e1e9f2; background: #f6f9fd; box-shadow: none; }
  .nav-panel a:has(.link-icon) { padding: 12px 10px; }
  .hero-grid { gap: 32px; }
  .hero-copy { padding-top: 20px; }
  .hero h1 { font-size: clamp(2.65rem,4.45vw,3.4rem); }
  .hero .actions { gap: 12px; }
  .hero .actions .button, .hero .actions .text-link { padding-inline: 18px; }
  .hero .hero-credentials { padding: 20px 16px; gap: 12px; }
  .hero-credentials strong { font-size: .875rem; }
  .subhero-grid { gap: 36px; grid-template-columns: minmax(0,1.2fr) minmax(300px,.9fr); }
  .area-section > .wrap { gap: 0 40px; }
}
@media (max-width: 950px) {
  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .hero-copy { padding: 8px 0 0; max-width: 760px; }
  .hero h1 { font-size: clamp(2.8rem,6.2vw,3.8rem); }
  .hero-visual { min-height: 350px; }
  .hero-photo img { object-position: right 48%; }
  .hero .hero-credentials { max-width: 580px; grid-template-columns: 1fr 1fr; }
  .hero-credentials > div { grid-template-columns: 24px minmax(0,1fr); gap: 6px 12px; }
  .hero-credentials > div > .ui-icon { grid-row: 1 / 3; }
  .hero-credentials > div > strong, .hero-credentials > div > span { grid-column: 2; }
  .primary-services .service-card-media { height: 210px; }
}
@media (max-width: 800px) {
  .nav #navigation { max-height: calc(100dvh - var(--nav-height) - 132px); }
  .section-heading { margin-bottom: 30px; }
  .hero { padding-top: 30px; padding-bottom: 38px; }
  .hero .wrap { width: calc(100% - 40px); }
  .tech-inner { padding-block: 28px; }
  .business-list article, .business-list article:first-child { padding: 24px; }
  .business-list article:last-child { border-bottom: 1px solid #b6d6ee29; padding-bottom: 24px; }
  .service-paths { gap: 16px; margin-top: 18px; }
  .area-section > .wrap { grid-template-columns: 1fr; }
  .area-section h2, .area-section p, .area-section .text-link { grid-column: 1; grid-row: auto; }
  .area-section p { margin-top: 24px; }
  .subhero { width: calc(100% - 24px); margin-top: 12px; border-radius: 22px; padding-bottom: 40px; }
  .subhero .wrap { width: calc(100% - 48px); }
  .subhero-grid { grid-template-columns: 1fr; gap: 32px; }
  .subhero .breadcrumb { margin-bottom: 32px; }
  .subhero h1 { font-size: clamp(2.2rem,6.5vw,3.2rem); }
  .contact-compact { padding-block: 44px; }
  .contact-compact .compact-contact-grid { grid-template-columns: 1fr; padding: 36px 28px; gap: 32px; }
  .contact-compact .compact-contact-copy p { max-width: 54ch; }
  .contact-compact .compact-contact-details { padding: 0; }
  .contact-channel-phone { font-size: 1.875rem; }
  .contact-channel-email { font-size: 1.125rem; }
  .compact-contact-note { flex-wrap: wrap; }
  .enquiry-form { padding: 28px; }
  .footer-top { flex-direction: column; align-items: flex-start; gap: 26px; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 108px; }
  .section { padding-block: 62px; }
  .nav { --nav-height: 88px; gap: 8px; }
  .nav .brand img { width: clamp(144px,48vw,190px); }
  .nav .language-switch { gap: 0; font-size: .875rem; }
  .nav .language-switch :is(a,.language-current) { min-width: 28px; min-height: 44px; }
  .nav .menu-toggle { justify-content: center; min-width: 44px; width: 44px; height: 44px; padding: 0; font-size: 0; gap: 0; }
  .nav .menu-toggle > span { font-size: 22px; line-height: 1; }
  .hero { padding-top: 26px; }
  .hero-grid { gap: 28px; }
  .hero h1 { font-size: clamp(2.125rem,8.7vw,3.15rem); letter-spacing: -.045em; line-height: 1.13; }
  .hero .eyebrow { font-size: .75rem; letter-spacing: .07em; margin-bottom: 20px; }
  .hero .eyebrow.light > span { width: 16px; margin-right: 6px; }
  .hero p { font-size: 1rem; line-height: 1.8; }
  .hero .actions { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 25px; }
  .hero .actions > a { width: 100%; justify-content: space-between; }
  .hero .hero-call { margin-top: 20px; }
  .hero-visual { min-height: 310px; border-radius: 18px; }
  .hero .hero-credentials { bottom: 12px; left: 12px; right: 12px; gap: 12px; padding: 16px 14px; border-radius: 13px; }
  .hero-credentials > div { grid-template-columns: 1fr; gap: 7px; }
  .hero-credentials > div > .ui-icon { grid-row: auto; }
  .hero-credentials > div > strong, .hero-credentials > div > span { grid-column: 1; }
  .hero-credentials strong { font-size: .875rem; }
  .hero-credentials span { font-size: .8125rem; }
  .tech-inner p { font-size: .875rem; }
  .tech-inner p strong { font-size: 1rem; }
  .tech-inner p::after { margin-left: 8px; min-width: 22px; }
  .tech-names { gap: 10px; }
  .tech-names .brand-logo { min-height: 108px; padding: 8px 5px; border-radius: 12px; }
  .service-grid.primary-services { gap: 22px; }
  .primary-services .service-card-media { height: 190px; }
  .service-card-copy { padding: 0 24px 26px; }
  .service-card-copy .service-icon { width: 58px; height: 58px; margin-top: -29px; margin-bottom: 22px; }
  .service-card-copy h3 { font-size: 1.625rem; }
  .service-paths > a { padding: 22px 20px; gap: 14px; }
  .service-paths h3 { font-size: 1rem; }
  .business-list article, .business-list article:first-child { padding: 22px 20px; gap: 16px; }
  .business-list h3 { font-size: 1.125rem; }
  .business-list article p { font-size: 1rem; }
  .choice-grid article, .detail-grid article, .detail-grid.detail-six article { padding: 26px; }
  .founder-quote { padding: 21px 22px; }
  .founder-copy .founder-quote blockquote p { font-size: 1.125rem; }
  .person-photo figcaption { padding: 22px; }
  .google-reviews { padding-top: 12px; }
  .reviews-snapshot { grid-template-columns: 1fr; border-radius: 20px; }
  .reviews-score { padding: 26px 24px; gap: 12px; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; }
  .reviews-score::after { top: auto; bottom: 0; left: 24px; right: 24px; width: auto; height: 1px; }
  .reviews-source { padding: 13px 14px; border-radius: 10px; }
  .reviews-source img { width: 88px; }
  .reviews-source > span { display: none; }
  .reviews-fallback-label { align-items: flex-end; text-align: right; }
  .reviews-profile-name { font-size: 1.5rem; }
  .reviews-fallback-label .reviews-profile-detail { font-size: .75rem; line-height: 1.5; letter-spacing: 0; margin-top: 5px; }
  .reviews-fallback-label .reviews-profile-location { font-size: .75rem; margin-top: 11px; padding: 4px 9px; gap: 6px; }
  .reviews-live-score strong { font-size: 3rem; }
  .reviews-summary { padding: 30px 24px 28px; }
  .reviews-summary h3 { font-size: clamp(1.625rem,6.8vw,2rem); line-height: 1.25; text-wrap: initial; margin-bottom: 18px; }
  .reviews-summary p { font-size: 1rem; line-height: 1.8; }
  .reviews-link.button.primary { width: 100%; padding: 8px 8px 8px 16px; min-height: 56px; gap: 12px; margin-top: 26px; font-size: .875rem; }
  .subhero { width: 100%; margin: 0; border-radius: 0 0 22px 22px; padding-top: 24px; }
  .subhero .wrap { width: calc(100% - 40px); }
  .subhero h1 { font-size: clamp(1.625rem,8.6vw,2.65rem); }
  .subhero p { font-size: 1rem; }
  .steps-list li { padding: 24px; }
  .contact-compact { padding-block: 40px; }
  .contact-compact .compact-contact-grid { padding: 30px 24px; border-radius: 20px; }
  .contact-compact h2 { font-size: clamp(1.875rem,7.5vw,2.25rem); margin-bottom: 18px; }
  .contact-compact .compact-contact-copy p { font-size: 1rem; }
  .contact-compact .contact-link { width: 100%; margin-top: 24px; padding-left: 16px; gap: 12px; }
  .contact-compact .compact-contact-details { gap: 12px; }
  .contact-compact .compact-contact-details .contact-channel { grid-template-columns: 34px minmax(0,1fr); gap: 12px; padding: 16px 14px; min-height: 84px; border-radius: 12px; }
  .contact-channel-icon { width: 34px; height: 38px; border: 0; border-radius: 9px; }
  .contact-channel-icon .ui-icon { width: 19px; height: 19px; }
  .contact-channel-label { font-size: .75rem; }
  .contact-channel-phone { font-size: clamp(1.25rem,6vw,1.65rem); }
  .contact-channel-email { font-size: .875rem; }
  .contact-channel-arrow { display: none; }
  .compact-contact-note { flex-direction: column; padding-top: 22px; gap: 14px; }
  .enquiry-form { padding: 24px 20px; }
  footer { padding-top: 42px; }
  .footer-top { padding-bottom: 34px; }
  .footer-identity::before { width: 36px; margin-bottom: 18px; }
  .footer-tagline { flex-direction: column; gap: .08em; font-size: clamp(1.75rem, 6.8vw, 2.25rem); }
  .footer-links { gap: 30px 18px; }
  .footer-links span { font-size: .75rem; }
}
@media (max-width: 360px) {
  .reviews-score { padding-inline: 20px; }
  .reviews-source { padding: 12px; }
  .reviews-source img { width: 76px; }
  .reviews-fallback-label .reviews-profile-location { padding: 0; border: 0; background: none; gap: 4px; font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

/* The actual building and the map form one practical directions section. */
.location-gallery { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 32px 24px; align-items: stretch; }
.location-heading { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 24px; align-items: center; margin-bottom: 8px; }
.location-heading h2 { max-width: 600px; }
.location-heading .location-address { margin: 0 0 14px; font-size: 1.125rem; font-weight: 650; }
.location-heading .appointment { max-width: 440px; font-size: 1rem; }
.location-visit .button { margin-top: 20px; }
.location-building { margin: 0; min-width: 0; border: 1px solid #d4e0e9; border-radius: 20px; overflow: hidden; background: #fff; }
.location-building > picture { display: block; }
.location-building > picture > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; }
.location-building figcaption { display: flex; align-items: center; gap: 15px; padding: 22px 24px; border-top: 1px solid #e2e9ef; }
.location-building-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px; color: #1264ed; background: #eff5fc; }
.location-building-icon .ui-icon { width: 21px; height: 21px; }
.location-building figcaption strong { display: block; color: var(--ink); font-size: 1rem; line-height: 1.5; }
.location-building figcaption div > span { display: block; margin-top: 5px; color: var(--muted); font-size: .875rem; line-height: 1.6; }
.location-gallery .map-frame { min-width: 0; }
@media (max-width: 800px) {
  .location-gallery, .location-heading { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .location-heading { margin-bottom: 2px; }
  .location-building figcaption { padding: 20px; align-items: flex-start; }
  .contact-person .person-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 360px) {
  .contact-person h1 { font-size: 2rem; }
}

/* 2026 international refinement: purposeful scale, editorial service paths. */
:root { --ink: #122e43; --muted: #506777; --line: #dbe5ec; }
body { color: var(--ink); }
p { text-wrap: pretty; }
h2 { letter-spacing: -.045em; }
.eyebrow { font-size: .8125rem; line-height: 1.6; }
.front-hero { position: relative; isolation: isolate; overflow: hidden; background: #0c263a; color: #fff; }
.front-hero-media { position: absolute; z-index: -2; inset: 0 0 0 34%; display: block; }
.front-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.front-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,#0c263a 0%,#0c263afc 32%,#0c263ae0 48%,#0c263a48 73%,#0c263a12),linear-gradient(0deg,#0c263ab0,transparent 45%); }
.front-hero-inner { display: flex; align-items: center; min-height: 574px; padding-block: 64px 68px; }
.front-hero-copy { max-width: 700px; width: 60%; }
.front-hero .eyebrow { color: #9bdaee; letter-spacing: .12em; margin: 0 0 24px; }
.front-hero h1 { color: #fff; font-size: clamp(3.1rem,4.65vw,4rem); line-height: 1.12; letter-spacing: -.05em; font-weight: 700; margin: 0 0 28px; }
.front-hero h1 em { color: #a9e1f3; font-style: normal; }
.front-hero-copy > p { color: #d0e0e9; font-size: 1.125rem; line-height: 1.8; max-width: 49ch; }
.front-hero .actions { gap: 14px; margin-top: 32px; align-items: center; justify-content: flex-start; flex-wrap: wrap; }
.front-hero .button.primary { background: #fff; color: #10334d; border: 1px solid #fff; box-shadow: none; padding-inline: 24px; gap: 26px; }
.front-hero .button.primary:hover { background: #dceff7; border-color: #dceff7; }
.front-hero .front-hero-secondary { display: inline-flex; align-items: center; gap: 26px; min-height: 54px; padding-inline: 24px; border: 1px solid #8eafc4; background: #153b5366; box-shadow: none; font-size: 1rem; font-weight: 650; color: #fff; }
.front-hero .front-hero-secondary:hover { color: #fff; border-color: #c6e6f4; background: #234a62; }
.front-hero a:focus-visible { outline: 3px solid #93d7f2; outline-offset: 6px; }
.front-proof { background: #0c263acc; border-top: 1px solid #aecfdf30; backdrop-filter: blur(8px); }
.front-proof > .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 36px; padding-block: 24px; }
.front-proof p { display: flex; align-items: center; gap: 13px; margin: 0; font-size: .9375rem; color: #c1d6e4; }
.front-proof strong { font-weight: 650; color: #fff; }
.front-proof .ui-icon { width: 22px; height: 22px; color: #8fc8e4; }

/* Marks have clear space, not six competing containers. */
.tech-inner { padding-block: 28px; gap: 12px; }
.tech-inner p, .tech-inner p strong { font-size: .875rem; font-weight: 500; }
.tech-names { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 24px; }
.tech-names .brand-logo { min-height: 86px; padding: 10px 0; border: 0; border-radius: 0; background: transparent; }
.tech-names .brand-logo img { max-height: 64px; }
.tech-names .brand-microsoft-365 img { max-height: none; }
.tech-names .brand-cencert img { width: 144px; }

.front-services { background: #fff; }
.front-services .section-heading { margin-bottom: 42px; }
.front-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: stretch; }
.front-service-card { display: flex; flex-direction: column; min-width: 0; padding: 32px; border: 1px solid #d8e4ec; border-radius: 18px; background: #f8fafc; color: #12334b; transition: border-color .2s,background .2s; }
.front-service-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.front-service-top > .ui-icon { height: 36px; width: 36px; color: #2a739b; }
.front-service-top > span { font-size: .875rem; color: #758996; font-variant-numeric: tabular-nums; }
.front-service-kicker { font-size: .75rem; font-weight: 650; line-height: 1.6; letter-spacing: .07em; color: #56707f; }
.front-service-card h3 { font-size: clamp(1.625rem,2.3vw,2rem); letter-spacing: -.04em; line-height: 1.25; font-weight: 700; margin: 12px 0 20px; }
.front-service-card > p { font-size: 1rem; line-height: 1.75; color: #506777; margin: 0 0 28px; }
.front-service-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 22px; border-top: 1px solid #d5e2ec; font-size: .875rem; line-height: 1.6; font-weight: 700; }
.front-service-link > span { font-size: 1.375rem; color: #23739c; }
.front-service-primary { background: #12334b; border-color: #12334b; color: #fff; }
.front-service-primary .front-service-top > .ui-icon { color: #a0d9ef; }
.front-service-primary .front-service-top > span { color: #95b6cb; }
.front-service-primary .front-service-kicker { color: #a6c7db; }
.front-service-primary > p { color: #cedeeb; }
.front-service-primary .front-service-link { border-color: #7097b342; }
.front-service-primary .front-service-link > span { color: #b5e7f8; }
.front-service-card:hover { border-color: #85b5d0; background: #f0f6fa; }
.front-service-primary:hover { background: #19435f; border-color: #19435f; }
.front-service-repair { background: #eff6fa; border-color: #c6dce8; }
.front-service-repair .front-service-top > .ui-icon { color: #165f86; }
.front-service-card:not(.front-service-project) { padding: 38px; }
.front-service-card:not(.front-service-project) h3 { font-size: clamp(2rem,3vw,2.625rem); }
.front-service-card:not(.front-service-project) > p { max-width: 46ch; }
.front-service-project { grid-column: 1 / -1; display: grid; grid-template-columns: 56px minmax(0,1fr) auto; gap: 0 24px; padding: 28px 32px; background: #fff; }
.front-service-project .front-service-top { grid-column: 1; grid-row: 1 / 4; align-self: center; margin: 0; }
.front-service-project .front-service-top > span { display: none; }
.front-service-project .front-service-kicker { grid-column: 2; min-height: 0; }
.front-service-project h3 { grid-column: 2; grid-row: 2; margin: 8px 0 12px; font-size: 1.5rem; }
.front-service-project h3 br { display: none; }
.front-service-project h3 br::after { content: ' '; }
.front-service-project > p { grid-column: 2; grid-row: 3; max-width: 60ch; margin: 0; font-size: .9375rem; }
.front-service-project .front-service-link { grid-column: 3; grid-row: 1 / 4; align-self: center; gap: 28px; padding: 12px 0 12px 28px; border-top: 0; border-left: 1px solid #d8e4ec; margin: 0; max-width: 220px; }
.front-service-card:focus-visible, .front-wifi:focus-visible { outline: 3px solid #176dd0; outline-offset: 5px; }
.front-wifi { display: flex; align-items: center; gap: 22px; margin-top: 24px; padding: 26px 32px; border: 1px solid #cce1eb; border-radius: 14px; background: #edf6fa; }
.front-wifi-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; background: #fff; border-radius: 12px; color: #1e779e; }
.front-wifi h3 { margin: 0 0 5px; font-size: 1.125rem; line-height: 1.5; }
.front-wifi p { margin: 0; font-size: .9375rem; color: #506c7d; }
.front-wifi-link { display: flex; align-items: center; gap: 24px; margin-left: auto; white-space: nowrap; font-size: .9375rem; font-weight: 700; }
.front-wifi:hover { background: #e1f0f7; border-color: #97c1d6; }

.front-repair { background: #f2f6f9; }
.front-repair-grid { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(0,1fr); gap: clamp(36px,6vw,86px); align-items: center; }
.front-repair-image { position: relative; min-width: 0; border-radius: 18px; overflow: hidden; background: #122e43; }
.front-repair-image > picture { display: block; }
.front-repair-image img { display: block; width: 100%; height: 490px; object-fit: cover; object-position: center; }
.front-photo-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 32px 24px 20px; background: linear-gradient(transparent,#102b43dd); font-size: .75rem; letter-spacing: .09em; line-height: 1.6; color: #fff; }
.front-repair-copy { min-width: 0; }
.front-repair-copy h2 { font-size: clamp(2rem,3.4vw,2.9rem); margin: 0 0 24px; line-height: 1.18; }
.front-repair-copy > p { font-size: 1.0625rem; line-height: 1.8; color: #506777; margin: 0; }
.front-repair-scope { list-style: none; padding: 0; margin: 24px 0 22px; }
.front-repair-scope li { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; font-size: .9375rem; line-height: 1.6; border-bottom: 1px solid #d5e1e9; }
.front-repair-scope .ui-icon { margin-top: 1px; width: 21px; height: 21px; color: #2a779e; }
.front-repair-copy .text-link { gap: 22px; font-size: .9375rem; }
.front-offer .choice-grid { gap: 40px; }
.front-offer .choice-grid article { padding: 0 32px 0 0; border: 0; border-right: 1px solid #dbe5ed; border-radius: 0; background: transparent; box-shadow: none; }
.front-offer .choice-grid article:last-child { border-right: 0; padding-right: 0; }
.front-offer .offer-icon { width: 42px; height: 42px; padding: 0; border: 0; background: none; margin-bottom: 20px; }
.front-offer .offer-icon > .ui-icon { width: 30px; height: 30px; color: #297498; }
.front-offer .offer-choices h3 { font-size: 1.3125rem; }
.front-offer .offer-choices p { font-size: 1rem; line-height: 1.8; }
.front-offer .offer-choices a { font-size: .9375rem; }
.homepage .about-section { background: #102d42; border: 0; color: #fff; }
.homepage .about-section .eyebrow { color: #a1d5ec; }
.homepage .founder-copy h2 { color: #fff; }
.homepage .founder-copy > p { color: #c6d9e5; font-size: 1rem; line-height: 1.85; }
.homepage .founder-copy .intro { color: #e1edf4; font-size: 1.125rem; }
.homepage .founder-quote { background: transparent; border-left-color: #77bcdb; border-radius: 0; padding: 3px 0 4px 24px; }
.homepage .founder-copy .founder-quote blockquote p { color: #e6f0f6; font-size: 1.1875rem; line-height: 1.7; }
.homepage .founder-quote a { color: #9fbdcf; }
.homepage .founder-copy .button.dark { background: #fff; color: #173c55; }
.homepage .founder-copy .text-link { color: #cce5f3; }
.homepage .person-photo { border-color: #65869e55; box-shadow: none; }
.homepage .google-reviews { padding-block: 82px; }
.homepage .area-section { background: #f3f7fa; padding-block: 62px; }
.homepage .area-section h2 { font-size: clamp(1.875rem,3vw,2.6rem); }
.homepage .area-section p { font-size: 1rem; }
.homepage .faq-section { background: #fff; }

/* Readable service introductions and a compact contents bar. */
.subhero.service-opening { width: 100%; margin: 0; border-radius: 0; padding: 32px 0 64px; background: #f3f7fa; color: #142e43; border-bottom: 1px solid #dbe5ed; }
.service-opening .wrap { width: min(1280px,calc(100% - 96px)); }
.service-opening .breadcrumb { margin-bottom: 42px; color: #5c7281; }
.service-opening .breadcrumb a { color: #365d78; }
.service-opening .subhero-grid { grid-template-columns: minmax(0,1.4fr) minmax(280px,.8fr); gap: clamp(40px,6vw,84px); align-items: center; }
.service-opening .eyebrow.light { color: #27688c; font-size: .75rem; letter-spacing: .065em; }
.service-opening h1 { color: #122e43; font-size: clamp(2.5rem,4.2vw,3.8rem); line-height: 1.12; letter-spacing: -.045em; max-width: 19ch; }
.service-opening .subhero-grid > div > p { color: #4c6577; font-size: 1.0625rem; line-height: 1.85; max-width: 62ch; margin-block: 26px; }
.service-opening .service-aside.service-overview { background: #123249; color: #fff; border: 1px solid #123249; border-radius: 18px; padding: 30px; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.service-opening .service-aside .label { color: #a7cadd; font-size: .75rem; }
.service-opening .service-aside .hero-scope { margin-block: 12px 20px; }
.service-opening .service-aside .hero-scope li { color: #f1f7fc; border-color: #62809a55; font-size: .9375rem; line-height: 1.65; padding-block: 12px; }
.service-opening .service-aside > p { color: #b6cfdf; font-size: .875rem; line-height: 1.7; margin: 0 0 16px; }
.service-opening .service-aside .aside-contact { color: #fff; font-size: 1.5rem; }
.service-opening .overview-visual { margin-bottom: 22px; }
.service-opening .icon-tile-large { width: 48px; height: 48px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #9dd9f0; }
.service-opening .icon-tile-large .ui-icon { width: 36px; height: 36px; }
.service-opening .service-aside.service-overview > .overview-photo { margin: -30px -30px 25px; border-radius: 16px 16px 0 0; overflow: hidden; }
.service-opening .overview-photo img { height: 172px; object-fit: cover; width: 100%; }
.service-opening .mesh-diagram { margin-top: 0; margin-inline: -10px; padding: 16px 10px 20px; background: #173d57; border: 1px solid #5b829c66; border-radius: 18px; }
.service-index { display: block; position: static; inset: auto; width: auto; max-height: none; overflow: visible; padding: 0; box-shadow: none; border-bottom: 1px solid #dbe5ed; background: #fff; }
.service-index > .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 28px; padding-block: 14px; }
.service-index > .wrap > span { color: #627885; font-size: .8125rem; margin-right: 12px; }
.service-index a { display: inline-flex; align-items: center; min-height: 38px; padding-block: 7px; font-size: .875rem; font-weight: 650; color: #214c68; border-bottom: 2px solid transparent; }
.service-index a:hover { color: #075896; border-bottom-color: #2383b1; }
.service-index a:focus-visible { outline: 3px solid #176dd0; outline-offset: 4px; }

/* Scope is an easy-to-scan list; process steps have visible sequence. */
.service-index ~ .scope-section { background: #fff; }
.service-index ~ .scope-section .detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 50px; }
.service-index ~ .scope-section .detail-grid article { display: grid; grid-template-columns: 42px minmax(0,1fr); column-gap: 20px; align-content: start; padding: 30px 0; border: 0; border-top: 1px solid #d8e3eb; border-radius: 0; box-shadow: none; background: transparent; }
.service-index ~ .scope-section .detail-top { grid-column: 1; grid-row: 1 / 3; display: block; margin: 0; }
.service-index ~ .scope-section .detail-top .icon-tile { width: 42px; height: 42px; border-radius: 12px; background: #edf5fa; border: 0; box-shadow: none; }
.service-index ~ .scope-section .detail-top .ui-icon { width: 23px; height: 23px; }
.service-index ~ .scope-section .detail-index { display: none; }
.service-index ~ .scope-section .detail-grid h3 { grid-column: 2; font-size: 1.25rem; margin: 5px 0 14px; line-height: 1.4; }
.service-index ~ .scope-section .detail-grid p { grid-column: 2; margin: 0; font-size: 1rem; line-height: 1.8; }
.service-index ~ .process-section { background: #f3f7fa; }
.process-section .steps-list { gap: 28px; }
.process-section .steps-list li { padding: 26px 0 0; background: transparent; border: 0; border-top: 2px solid #b5cbd9; border-radius: 0; }
.process-section .step-top { margin-bottom: 22px; }
.process-section .step-top .icon-tile { width: 42px; height: 42px; border: 0; background: #fff; box-shadow: none; border-radius: 10px; }
.process-section .step-index { font-size: 1.5rem; font-weight: 600; color: #396b87; }
.process-section .steps-list p { font-size: 1rem; line-height: 1.8; }
.scope-section .scope-note { padding: 28px 30px; border-radius: 0 14px 14px 0; }
.sector-links { gap: 0 40px; }
.sector-links a { border: 0; border-bottom: 1px solid #d7e3eb; border-radius: 0; padding: 24px 0; background: transparent; }
.sector-links .link-icon { border: 0; background: #edf5fa; box-shadow: none; width: 46px; height: 46px; border-radius: 12px; }
.sector-links a:hover { background: transparent; border-color: #7eaec7; box-shadow: none; }
.business .sector-links a { color: #fff; border-bottom-color: #7597af44; }
.business .sector-links a span { color: #bcd1df; }
.business .sector-links .link-icon { background: #23445b; color: #a6d9ee; }
.faq-list details { border-radius: 0; border: 0; border-top: 1px solid #d4e1e9; background: transparent; box-shadow: none; }
.faq-list details:last-child { border-bottom: 1px solid #d4e1e9; }
.faq-list summary { padding: 24px 0; font-size: 1rem; line-height: 1.6; }
.faq-list details > p { padding: 0 44px 24px 0; font-size: 1rem; line-height: 1.8; }
.faq-list details[open] { background: transparent; }

/* Three film finishes, presented together without extra service pages. */
.service-index ~ .scope-section .detail-grid.hydrogel-options { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.service-index ~ .scope-section .hydrogel-options article { display: block; padding: 30px; background: #f4f8fb; border: 1px solid #dce7ef; border-radius: 16px; }
.service-index ~ .scope-section .hydrogel-options .detail-top { margin-bottom: 24px; }
.service-index ~ .scope-section .hydrogel-options .detail-top .icon-tile { background: #fff; }
.service-index ~ .scope-section .hydrogel-options h3 { margin: 0 0 14px; font-size: 1.375rem; }
.nav-service-grid .nav-secondary-service { grid-column: 1 / -1; margin-top: 6px; border-top: 1px solid #dce7ef; }
@media (max-width: 800px) {
  .service-index ~ .scope-section .detail-grid.hydrogel-options { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .service-index ~ .scope-section .hydrogel-options article { padding: 26px; }
}

/* Compact desktop dropdown, full-width touch targets on smaller screens. */
@media (min-width: 1181px) {
  .services-nav .nav-panel { width: 650px; left: 50%; right: auto; transform: translateX(-50%); padding: 26px; }
  .nav-service-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 4px 20px; }
  .nav-service-grid a { align-items: start; padding: 15px 8px; }
  .nav-service-grid strong { font-size: .9375rem; }
  .nav-service-grid small { font-size: .8125rem; }
}
@media (max-width: 1180px) {
  .front-hero-copy { width: 65%; }
  .front-hero h1 { font-size: clamp(3rem,5vw,3.6rem); }
  .front-service-grid { gap: 18px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .front-service-card { padding: 28px 22px; }
  .front-service-kicker { min-height: 0; }
  .tech-names { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px 36px; }
  .tech-names .brand-logo { min-height: 90px; }
  .tech-names .brand-logo img { max-width: 240px; width: 100%; }
  .tech-names .brand-cencert img { width: 144px; }
  .service-index > .wrap { gap: 4px 22px; }
}
@media (max-width: 950px) {
  .front-hero-copy { width: 74%; }
  .front-hero::after { background: linear-gradient(90deg,#0c263a 0%,#0c263af5 38%,#0c263a8c 78%,#0c263a55); }
  .front-proof > .wrap { gap: 14px 20px; }
  .front-proof p { font-size: .875rem; }
  .front-service-card:not(.front-service-project) { padding: 28px; }
  .front-service-card:not(.front-service-project) h3 { font-size: 1.875rem; }
  .front-service-project { grid-template-columns: 44px minmax(0,1fr); }
  .front-service-project .front-service-link { grid-column: 2; grid-row: 4; border-left: 0; padding: 18px 0 0; max-width: none; justify-content: flex-start; }
  .front-offer .choice-grid { gap: 24px; }
  .front-offer .choice-grid article { padding-right: 22px; }
}
@media (max-width: 800px) {
  .front-hero-inner { min-height: 0; padding-block: 44px 38px; }
  .front-hero-copy { width: 100%; max-width: 650px; }
  .front-hero-media { position: relative; inset: auto; height: 230px; width: 100%; margin: 0; order: 2; z-index: 0; }
  .front-hero { display: flex; flex-direction: column; }
  .front-hero-inner { order: 1; }
  .front-proof { order: 3; backdrop-filter: none; background: #0c263a; }
  .front-hero::after { display: none; }
  .front-hero h1 { font-size: clamp(1.75rem,8.2vw,3.8rem); line-height: 1.14; }
  .front-hero .eyebrow { font-size: .75rem; margin-bottom: 20px; }
  .front-hero-copy > p { font-size: 1rem; line-height: 1.8; max-width: 58ch; }
  .front-hero .actions { gap: 14px 24px; margin-top: 26px; }
  .front-hero-media img { object-position: center 53%; }
  .front-proof > .wrap { padding-block: 20px; gap: 14px 28px; }
  .front-proof p { font-size: .875rem; }
  .front-proof .ui-icon { width: 19px; height: 19px; }
  .front-wifi { flex-wrap: wrap; gap: 16px; padding: 24px; }
  .front-wifi > div { flex: 1; min-width: 180px; }
  .front-wifi-link { flex-basis: 100%; margin-left: 64px; white-space: normal; justify-content: space-between; }
  .front-repair-grid { grid-template-columns: 1fr; gap: 34px; }
  .front-repair-image img { height: auto; aspect-ratio: 1.45; }
  .front-repair-copy h2 { font-size: 2.125rem; }
  .front-repair-copy > p { font-size: 1rem; }
  .front-offer .choice-grid { grid-template-columns: 1fr; gap: 28px; }
  .front-offer .choice-grid article { border-right: 0; border-top: 1px solid #dbe5ed; padding: 28px 0 0; }
  .homepage .google-reviews { padding-block: 60px; }
  .homepage .area-section { padding-block: 52px; }
  .homepage .founder-copy .intro { font-size: 1rem; }
  .homepage .founder-copy .founder-quote blockquote p { font-size: 1.0625rem; }
  .subhero.service-opening { padding-block: 24px 44px; }
  .service-opening .wrap { width: calc(100% - 40px); }
  .service-opening .breadcrumb { margin-bottom: 30px; }
  .service-opening .subhero-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .service-opening h1 { font-size: clamp(2rem,7.5vw,3.1rem); line-height: 1.15; max-width: 24ch; }
  .service-opening .subhero-grid > div > p { font-size: 1rem; margin-block: 22px; }
  .service-opening .service-aside.service-overview { padding: 26px; }
  .service-opening .service-aside.service-overview > .overview-photo { margin: -26px -26px 22px; }
  .service-opening .overview-photo img { height: 190px; }
  .service-opening .service-aside .hero-scope { margin-block: 8px 16px; }
  .service-opening .service-aside .hero-scope li { padding-block: 10px; }
  .service-index > .wrap { gap: 4px 20px; padding-block: 14px; }
  .service-index > .wrap > span { flex-basis: 100%; margin-bottom: 2px; }
  .service-index ~ .scope-section .detail-grid { grid-template-columns: 1fr; gap: 0; }
  .service-index ~ .scope-section .detail-grid article { gap: 0 16px; padding-block: 26px; }
  .service-index ~ .scope-section .detail-grid p { grid-column: 1 / -1; margin-top: 0; }
  .service-index ~ .scope-section .detail-top { grid-row: 1; margin-bottom: 16px; }
  .service-index ~ .scope-section .detail-grid h3 { margin-top: 7px; margin-bottom: 16px; }
  .process-section .steps-list { gap: 28px; }
  .scope-section .scope-note { padding: 24px; }
  .sector-links { gap: 0; }
}
@media (max-width: 600px) {
  .front-service-grid { grid-template-columns: minmax(0,1fr); }
  .tech-names { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 20px; }
  .tech-names .brand-logo { min-height: 76px; padding-block: 6px; }
  .tech-names .brand-cencert img { width: 126px; }
  .front-service-card { display: flex; padding: 28px; }
  .front-service-project { padding: 26px; }
  .front-service-project .front-service-top { align-self: flex-start; margin-bottom: 20px; }
  .front-service-project h3 { font-size: 1.375rem; }
  .front-service-project > p { margin-bottom: 0; }
  .front-service-project .front-service-link { align-self: stretch; margin-top: 22px; padding-top: 18px; border-top: 1px solid #d8e4ec; justify-content: space-between; }
  .front-service-top { margin-bottom: 24px; }
  .front-service-kicker { min-height: 0; }
  .front-service-card h3 { font-size: 1.875rem; margin: 12px 0 20px; }
  .front-service-card > p { margin-bottom: 26px; }
  .front-wifi { padding: 22px; }
  .front-wifi-icon { width: 38px; height: 38px; }
  .front-wifi-link { margin-left: 0; }
  .front-hero-media { height: 205px; }
  .front-hero .actions { gap: 12px; align-items: flex-start; flex-direction: column; }
  .front-hero .button.primary { width: 100%; justify-content: space-between; padding-inline: 20px; }
  .front-hero .front-hero-secondary { width: 100%; justify-content: space-between; padding-inline: 20px; font-size: .9375rem; }
}
@media (prefers-reduced-motion: reduce) {
  .front-service-card { transition: none; }
}

/* Clear choices and agreed working principles, close to the first action. */
.service-assurances { display: flex; flex-wrap: wrap; gap: 12px 22px; list-style: none; padding: 0; margin: 26px 0 0; }
.service-assurances li { display: flex; align-items: center; gap: 9px; font-size: .875rem; line-height: 1.6; color: #365b71; }
.service-assurances .ui-icon { width: 19px; height: 19px; flex-shrink: 0; color: #257693; }
.cooperation-section { background: #fff; padding-bottom: 62px; }
.cooperation-section .offer-choices { align-items: stretch; }
.cooperation-section .offer-choices article { padding: 32px; background: #f5f8fb; border: 1px solid #dae5ed; }
.cooperation-section .offer-choices h3 { min-height: 2.8em; margin-bottom: 16px; line-height: 1.4; }
.cooperation-section .offer-choices p { flex-grow: 1; margin: 0 0 24px; font-size: 1rem; line-height: 1.8; }
.cooperation-section .offer-choices ul { padding: 0; margin: 0 0 26px; list-style: none; color: #31556d; font-size: .875rem; line-height: 1.7; }
.cooperation-section .offer-choices li { display: flex; align-items: baseline; gap: 10px; margin-top: 8px; }
.cooperation-section .offer-choices li::before { content: ''; flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: #4a8aa7; transform: translateY(-2px); }
.cooperation-section .offer-choices article > a { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; color: #18577d; line-height: 1.6; }
.cooperation-section .offer-choices article > a > span { flex-shrink: 0; }
.cooperation-section .offer-choices article:first-child { background: #123249; border-color: #123249; }
.cooperation-section .offer-choices article:first-child h3 { color: #fff; }
.cooperation-section .offer-choices article:first-child p { color: #ccdde8; }
.cooperation-section .offer-choices article:first-child ul { color: #d5e5ef; }
.cooperation-section .offer-choices article:first-child li::before { background: #91c8e2; }
.cooperation-section .offer-choices article:first-child > .icon-tile { color: #a8d9ec; background: #21475f; border-color: #5c829c55; box-shadow: none; }
.cooperation-section .offer-choices article:first-child > a { color: #fff; border-color: #5b7d9466; }
.cooperation-section .offer-choices a:hover { text-decoration: underline; text-underline-offset: 5px; }
.cooperation-section .offer-choices a:focus-visible { outline: 3px solid #248ed0; outline-offset: 6px; }
.cooperation-note { display: flex; align-items: flex-start; gap: 12px; margin: 26px 0 0; font-size: .875rem; line-height: 1.8; color: #526c7c; }
.cooperation-note .ui-icon { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; color: #2d7594; }
.contact-existing { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 16px; margin-top: 32px; padding-top: 28px; border-top: 1px solid #cddde8; }
.contact-existing > .ui-icon { color: #2b7394; margin-top: 2px; }
.contact-existing h3 { margin: 0 0 12px; color: #173a52; font-size: 1.125rem; line-height: 1.5; }
.contact-existing p { font-size: .9375rem; line-height: 1.8; margin: 0 0 12px; color: #4b677a; }
.contact-existing .text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 16px; font-size: .9375rem; }
.front-proof > .wrap { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px 24px; }
.front-proof p { min-width: 0; }
.front-proof .ui-icon { flex-shrink: 0; }
@media (max-width: 1180px) {
  .front-proof > .wrap { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cooperation-section .offer-choices article { padding: 26px; }
}
@media (max-width: 950px) {
  .cooperation-section .offer-choices { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .cooperation-section .offer-choices h3 { min-height: 0; }
  .cooperation-section .offer-choices p { max-width: 65ch; }
  .cooperation-section .offer-choices article > .icon-tile { margin-bottom: 20px; }
}
@media (max-width: 600px) {
  .service-assurances { flex-direction: column; gap: 10px; margin-top: 24px; }
  .cooperation-section { padding-bottom: 44px; }
  .cooperation-section .offer-choices article { padding: 26px; }
  .contact-existing { gap: 12px; margin-top: 26px; padding-top: 24px; }
}
@media (max-width: 480px) {
  .front-proof > .wrap { grid-template-columns: minmax(0,1fr); gap: 13px; }
}

/* Secure contact form states. */
.form-captcha { max-width: 100%; margin: 18px 0 8px; }
.form-captcha:empty { display: none; }
.enquiry-form [data-submit]:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.form-retry { margin: 12px 0 0; font-size: 1rem; text-decoration: underline; text-underline-offset: 3px; }
.form-direct { margin-top: 18px; font-size: .875rem; line-height: 1.7; overflow-wrap: anywhere; }
.form-direct a { color: #155aa3; text-decoration: underline; text-underline-offset: 3px; }

.form-required{margin:0 0 22px;font-size:.875rem;color:#536775}
.form-retry{min-height:44px}
