/**
* Harrington Technologies - brand overlay
* Loaded AFTER assets/css/main.css. The vendor main.css is never edited; all
* Harrington styling lives in this file so the Dewi template stays updatable.
*
* Palette sampled from the client's supplied logo artwork:
*   navy #0a2f5e | deep navy #061f42 | blue #0c6fb8 | light blue #3e9be0
*/

/*--------------------------------------------------------------
# Brand tokens (override the Dewi colour system)
--------------------------------------------------------------*/
:root {
  --ht-navy: #0a2f5e;
  --ht-navy-deep: #061f42;
  --ht-blue: #0c6fb8;
  --ht-blue-light: #3e9be0;
  --ht-blue-tint: #eaf3fb;
  --ht-whatsapp: #25d366;

  --default-color: #4a5568;
  --heading-color: #0a2f5e;
  --accent-color: #0c6fb8;
  --contrast-color: #ffffff;

  --heading-font: "Raleway", sans-serif;
  --default-font: "Inter", "Roboto", system-ui, sans-serif;
}

:root {
  --nav-color: #0a2f5e;
  --nav-hover-color: #0c6fb8;
  --nav-dropdown-hover-color: #0c6fb8;
}

.light-background {
  --background-color: #f3f7fc;
  --surface-color: #ffffff;
}

.dark-background {
  --background-color: #061f42;
  --default-color: #d8e4f2;
  --heading-color: #ffffff;
  --surface-color: #10305c;
  --contrast-color: #ffffff;
}

body {
  font-family: var(--default-font);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Circuit-board texture, echoing the client's printed material */
.ht-circuit {
  position: relative;
  isolation: isolate;
}

.ht-circuit::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%233e9be0' stroke-width='1' stroke-opacity='0.3'%3E%3Cpath d='M10 10h40v40h40M50 90h40V50M10 110h30v20M110 10v40h20M90 130V90h40'/%3E%3C/g%3E%3Cg fill='%233e9be0' fill-opacity='0.45'%3E%3Ccircle cx='10' cy='10' r='3'/%3E%3Ccircle cx='90' cy='50' r='3'/%3E%3Ccircle cx='50' cy='90' r='3'/%3E%3Ccircle cx='130' cy='50' r='3'/%3E%3Ccircle cx='40' cy='130' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.header {
  --background-color: #ffffff;
  background-color: #ffffff;
  box-shadow: 0 1px 0 rgba(10, 47, 94, 0.08);
  padding: 12px 0;
}

.header .logo img {
  max-height: 46px;
  width: auto;
}

.scrolled .header {
  box-shadow: 0 4px 20px rgba(10, 47, 94, 0.1);
}

.header .cta-btn,
.header .cta-btn:focus {
  background: var(--ht-blue);
  color: #fff;
  border-radius: 50px;
  padding: 10px 22px;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  transition: 0.3s;
}

.header .cta-btn:hover {
  background: var(--ht-navy);
  color: #fff;
}

.header .cta-btn i {
  margin-right: 6px;
}

.navmenu a,
.navmenu a:focus {
  font-family: var(--default-font);
  font-weight: 500;
  font-size: 15px;
}

.mobile-nav-toggle {
  color: var(--ht-navy);
}

/*--------------------------------------------------------------
# Buttons
--------------------------------------------------------------*/
.ht-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border-radius: 50px;
  padding: 13px 30px;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.2;
  border: 2px solid transparent;
  transition: 0.3s;
  text-align: center;
}

.ht-btn-primary {
  background: var(--ht-blue);
  border-color: var(--ht-blue);
  color: #fff;
}

.ht-btn-primary:hover {
  background: var(--ht-navy);
  border-color: var(--ht-navy);
  color: #fff;
}

.ht-btn-outline {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.55);
  color: #fff;
}

.ht-btn-outline:hover {
  background: #fff;
  border-color: #fff;
  color: var(--ht-navy);
}

.ht-btn-outline-navy {
  background: transparent;
  border-color: var(--ht-navy);
  color: var(--ht-navy);
}

.ht-btn-outline-navy:hover {
  background: var(--ht-navy);
  color: #fff;
}

/*--------------------------------------------------------------
# Section titles
--------------------------------------------------------------*/
.section-title h2 {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ht-blue);
  padding-bottom: 14px;
  position: relative;
}

.section-title h2::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 54px;
  height: 3px;
  border-radius: 3px;
  background: var(--ht-blue);
}

.section-title p {
  font-family: var(--heading-font);
  color: var(--heading-color);
  font-size: 38px;
  font-weight: 700;
  margin: 14px auto 0;
  max-width: 760px;
  line-height: 1.25;
}

.dark-background .section-title p {
  color: #fff;
}

@media (max-width: 575px) {
  .section-title p {
    font-size: 27px;
  }
}

/*--------------------------------------------------------------
# Hero
--------------------------------------------------------------*/
.hero {
  background: linear-gradient(150deg, #061f42 0%, #0a2f5e 55%, #12417c 100%);
  padding: 150px 0 90px;
  min-height: auto;
  text-align: left;
}

.hero::after {
  content: "";
  position: absolute;
  top: -140px;
  right: -140px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(62, 155, 224, 0.4) 0%, rgba(62, 155, 224, 0) 68%);
  pointer-events: none;
}

.hero .container {
  position: relative;
  z-index: 2;
}

.hero .ht-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(62, 155, 224, 0.16);
  border: 1px solid rgba(62, 155, 224, 0.4);
  color: #bcdcf7;
  border-radius: 50px;
  padding: 7px 18px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.3px;
  margin-bottom: 22px;
}

.hero h1 {
  color: #fff;
  font-size: 52px;
  line-height: 1.15;
  margin-bottom: 20px;
  max-width: 15ch;
}

.hero h1 span {
  color: var(--ht-blue-light);
}

.hero .lead-text {
  color: #cddef0;
  font-size: 18px;
  line-height: 1.7;
  max-width: 54ch;
  margin-bottom: 30px;
}

.hero .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero .hero-meta {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  color: #bcdcf7;
  font-size: 14.5px;
  font-weight: 500;
}

.hero .hero-meta span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.hero .hero-meta i {
  color: var(--ht-blue-light);
  font-size: 17px;
}

.hero-panel {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 18px;
  padding: 26px 24px;
}

.hero-panel h3 {
  color: #fff;
  font-size: 17px;
  margin-bottom: 18px;
}

.hero-panel ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.hero-panel li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #dbe8f6;
  font-size: 14.5px;
  font-weight: 500;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 12px 13px;
}

.hero-panel li i {
  color: var(--ht-blue-light);
  font-size: 18px;
  flex-shrink: 0;
}

@media (max-width: 991px) {
  .hero {
    padding: 130px 0 70px;
    text-align: center;
  }

  .hero h1 {
    max-width: none;
  }

  .hero .lead-text {
    margin-left: auto;
    margin-right: auto;
  }

  .hero .hero-actions,
  .hero .hero-meta {
    justify-content: center;
  }
}

@media (max-width: 575px) {
  .hero h1 {
    font-size: 33px;
  }

  .hero .lead-text {
    font-size: 16px;
  }

  .hero .hero-actions .ht-btn {
    width: 100%;
  }

  .hero-panel ul {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Page title (inner pages)
--------------------------------------------------------------*/
.page-title {
  background: linear-gradient(150deg, #061f42 0%, #0a2f5e 60%, #12417c 100%);
  padding: 130px 0 46px;
  position: relative;
}

.page-title h1 {
  color: #fff;
  font-size: 40px;
  margin-bottom: 8px;
}

.page-title p {
  color: #c3d8ee;
  font-size: 16.5px;
  max-width: 62ch;
  margin: 0;
}

.page-title .breadcrumbs ol {
  color: #c3d8ee;
}

.page-title .breadcrumbs ol a {
  color: #fff;
}

@media (max-width: 575px) {
  .page-title {
    padding: 110px 0 36px;
  }

  .page-title h1 {
    font-size: 29px;
  }
}

/*--------------------------------------------------------------
# Service cards
--------------------------------------------------------------*/
.ht-service {
  background: var(--surface-color);
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  padding: 32px 28px;
  height: 100%;
  transition: 0.3s;
}

.ht-service:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 16px 34px rgba(10, 47, 94, 0.12);
  transform: translateY(-5px);
}

.ht-service .ht-icon {
  width: 62px;
  height: 62px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  font-size: 28px;
  margin-bottom: 20px;
  transition: 0.3s;
}

.ht-service:hover .ht-icon {
  background: var(--ht-blue);
  color: #fff;
}

.ht-service h3 {
  font-size: 20px;
  margin-bottom: 12px;
  color: var(--ht-navy);
}

.ht-service p {
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 16px;
}

.ht-service ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ht-service ul li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 14.5px;
  padding: 5px 0;
  color: #48566a;
}

.ht-service ul li i {
  color: var(--ht-blue);
  font-size: 16px;
  margin-top: 3px;
  flex-shrink: 0;
}

/*--------------------------------------------------------------
# Landline packages
--------------------------------------------------------------*/
.ht-pricing {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  padding: 32px 24px;
  height: 100%;
  text-align: center;
  transition: 0.3s;
  position: relative;
}

.ht-pricing:hover {
  box-shadow: 0 16px 34px rgba(10, 47, 94, 0.12);
  transform: translateY(-5px);
}

.ht-pricing.featured {
  border: 2px solid var(--ht-blue);
  box-shadow: 0 16px 34px rgba(12, 111, 184, 0.16);
}

.ht-pricing .ht-badge {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--ht-blue);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  padding: 5px 16px;
  border-radius: 50px;
  white-space: nowrap;
}

.ht-pricing .ht-minutes {
  font-family: var(--heading-font);
  font-size: 30px;
  font-weight: 700;
  color: var(--ht-navy);
  line-height: 1.1;
}

.ht-pricing .ht-minutes small {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--ht-blue);
  letter-spacing: 0.4px;
  margin-top: 6px;
}

.ht-pricing .ht-price {
  margin: 20px 0 4px;
  font-family: var(--heading-font);
  font-size: 42px;
  font-weight: 700;
  color: var(--ht-blue);
  line-height: 1;
}

.ht-pricing .ht-price sup {
  font-size: 22px;
  top: -0.6em;
}

.ht-pricing .ht-term {
  font-size: 14px;
  color: #6b7a8f;
  margin-bottom: 22px;
}

.ht-pricing .ht-divider {
  height: 1px;
  background: #e3ecf6;
  margin: 0 0 20px;
}

.ht-pricing ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  text-align: left;
}

.ht-pricing ul li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 14.5px;
  padding: 6px 0;
}

.ht-pricing ul li i {
  color: var(--ht-blue);
  margin-top: 3px;
  flex-shrink: 0;
}

.ht-pricing .ht-btn {
  width: 100%;
  padding: 11px 18px;
}

.ht-included {
  background: var(--ht-blue-tint);
  border-radius: 16px;
  padding: 30px;
}

.ht-included h3 {
  font-size: 17px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--ht-navy);
  margin-bottom: 22px;
  text-align: center;
}

.ht-included .item {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: center;
}

.ht-included .item i {
  font-size: 30px;
  color: var(--ht-blue);
  flex-shrink: 0;
}

.ht-included .item span {
  font-weight: 600;
  color: var(--ht-navy);
  font-size: 15.5px;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .ht-included .item {
    justify-content: flex-start;
  }
}

/*--------------------------------------------------------------
# Payment solutions
--------------------------------------------------------------*/
.ht-step {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 20px 22px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  height: 100%;
}

.ht-step .num {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--ht-blue);
  color: #fff;
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ht-step h4 {
  color: #fff;
  font-size: 17px;
  margin-bottom: 6px;
}

.ht-step p {
  color: #c6d9ee;
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0;
}

.ht-benefit {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 14px;
  padding: 22px;
  height: 100%;
  transition: 0.3s;
}

.ht-benefit:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 12px 28px rgba(10, 47, 94, 0.1);
}

.ht-benefit i {
  font-size: 26px;
  color: var(--ht-blue);
  flex-shrink: 0;
  margin-top: 2px;
}

.ht-benefit h4 {
  font-size: 17px;
  margin-bottom: 6px;
  color: var(--ht-navy);
}

.ht-benefit p {
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0;
}

/* Retail partner network - plain text chips, no third-party logos */
.ht-retail {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.ht-retail span {
  background: #fff;
  border: 1px solid #dbe7f4;
  border-radius: 50px;
  padding: 11px 24px;
  font-weight: 600;
  font-size: 15px;
  color: var(--ht-navy);
  white-space: nowrap;
}

.dark-background .ht-retail span {
  background: #fff;
  border-color: transparent;
}

@media (max-width: 575px) {
  .ht-retail span {
    padding: 9px 16px;
    font-size: 13.5px;
  }
}

/* Pay@ collection packages */
.ht-collection {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  overflow: hidden;
  height: 100%;
}

.ht-collection .head {
  background: var(--ht-navy);
  color: #fff;
  padding: 22px 24px;
  text-align: center;
}

.ht-collection.premium .head {
  background: var(--ht-blue);
}

.ht-collection .head h3 {
  color: #fff;
  font-size: 20px;
  margin-bottom: 6px;
}

.ht-collection .head p {
  margin: 0;
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.88);
}

.ht-collection .body {
  padding: 24px;
}

.ht-collection .body h4 {
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ht-blue);
  margin-bottom: 14px;
}

.ht-collection .store-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ht-collection .store-list li {
  background: var(--ht-blue-tint);
  border-radius: 6px;
  padding: 7px 13px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ht-navy);
}

/*--------------------------------------------------------------
# Why choose
--------------------------------------------------------------*/
.ht-reason {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.ht-reason .ht-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}

.dark-background .ht-reason .ht-icon {
  background: rgba(62, 155, 224, 0.18);
  color: var(--ht-blue-light);
}

.ht-reason h4 {
  font-size: 17.5px;
  margin-bottom: 7px;
}

.ht-reason p {
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}

/*--------------------------------------------------------------
# About
--------------------------------------------------------------*/
.ht-about-visual {
  background: linear-gradient(150deg, #0a2f5e 0%, #12417c 100%);
  border-radius: 18px;
  padding: 42px 34px;
  color: #fff;
  height: 100%;
}

.ht-about-visual img {
  max-width: 250px;
  margin-bottom: 26px;
}

.ht-about-visual ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ht-about-visual ul li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #d8e6f5;
  font-size: 15px;
  font-weight: 500;
}

.ht-about-visual ul li:last-child {
  border-bottom: 0;
}

.ht-about-visual ul li i {
  color: var(--ht-blue-light);
  font-size: 19px;
  flex-shrink: 0;
}

.ht-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ht-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 8px 0;
  font-size: 15.5px;
  line-height: 1.6;
}

.ht-checklist li i {
  color: var(--ht-blue);
  font-size: 19px;
  margin-top: 3px;
  flex-shrink: 0;
}

/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.ht-contact-card {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 14px;
  padding: 26px 22px;
  height: 100%;
  text-align: center;
  transition: 0.3s;
}

.ht-contact-card:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 12px 28px rgba(10, 47, 94, 0.1);
}

.ht-contact-card .ht-icon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 16px;
}

.ht-contact-card h3 {
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 9px;
}

.ht-contact-card p,
.ht-contact-card a {
  font-size: 15.5px;
  margin: 0;
  color: var(--default-color);
  word-break: break-word;
}

.ht-contact-card a:hover {
  color: var(--ht-blue);
}

.ht-contact-card .big {
  font-size: 20px;
  font-weight: 700;
  color: var(--ht-navy);
}

.ht-form-note {
  background: var(--ht-blue-tint);
  border-left: 3px solid var(--ht-blue);
  border-radius: 8px;
  padding: 14px 16px;
  font-size: 14px;
  color: var(--ht-navy);
  margin-bottom: 22px;
  line-height: 1.6;
}

.ht-form-wrap {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  padding: 30px;
}

.ht-form-wrap .form-control {
  border: 1px solid #dde8f4;
  border-radius: 9px;
  padding: 13px 15px;
  font-size: 15px;
  box-shadow: none;
}

.ht-form-wrap .form-control:focus {
  border-color: var(--ht-blue);
  box-shadow: 0 0 0 3px rgba(12, 111, 184, 0.12);
}

@media (max-width: 575px) {
  .ht-form-wrap {
    padding: 22px 18px;
  }
}

/*--------------------------------------------------------------
# CTA band
--------------------------------------------------------------*/
.ht-cta {
  background: linear-gradient(150deg, #0a2f5e 0%, #12417c 100%);
  border-radius: 18px;
  padding: 46px 40px;
  text-align: center;
  color: #fff;
}

.ht-cta h2 {
  color: #fff;
  font-size: 32px;
  margin-bottom: 12px;
}

.ht-cta p {
  color: #cddef0;
  font-size: 16.5px;
  max-width: 58ch;
  margin: 0 auto 26px;
}

.ht-cta .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

@media (max-width: 575px) {
  .ht-cta {
    padding: 34px 22px;
  }

  .ht-cta h2 {
    font-size: 25px;
  }

  .ht-cta .actions .ht-btn {
    width: 100%;
  }
}

/*--------------------------------------------------------------
# Floating WhatsApp button
--------------------------------------------------------------*/
.ht-whatsapp-float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 998;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--ht-whatsapp);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.24);
  transition: 0.3s;
}

.ht-whatsapp-float:hover {
  color: #fff;
  transform: scale(1.07);
}

.scroll-top {
  right: 20px;
  bottom: 88px;
  background-color: var(--ht-blue);
}

.scroll-top:hover {
  background-color: var(--ht-navy);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
  background: var(--ht-navy-deep);
}

.footer .footer-about .logo img {
  max-height: 52px;
  width: auto;
  margin-bottom: 16px;
}

.footer .footer-contact p {
  font-size: 14.8px;
  line-height: 1.7;
}

.footer h4 {
  color: #fff;
  font-size: 16px;
  padding-bottom: 12px;
  position: relative;
  margin-bottom: 18px;
}

.footer h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 2px;
  background: var(--ht-blue-light);
}

.footer .footer-links ul li {
  padding: 7px 0;
}

.footer .footer-links ul a {
  color: #c3d8ee;
  font-size: 14.8px;
}

.footer .footer-links ul a:hover {
  color: #fff;
}

.footer .footer-links ul i {
  color: var(--ht-blue-light);
}

.footer a {
  color: #c3d8ee;
}

.footer a:hover {
  color: #fff;
}

.footer .copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 14px;
}

.footer .credits {
  font-size: 13px;
  color: #8fadcd;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
.ht-lead {
  font-size: 17px;
  line-height: 1.8;
}

.ht-muted-note {
  font-size: 13.5px;
  color: #6b7a8f;
  line-height: 1.6;
}

.dark-background .ht-muted-note {
  color: #9fbadb;
}

/*--------------------------------------------------------------
# Service detail tiles (services page)
--------------------------------------------------------------*/
.ht-feature-tile {
  background: linear-gradient(150deg, #0a2f5e 0%, #12417c 100%);
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 230px;
  height: 100%;
  color: #fff;
  font-size: 80px;
  line-height: 1;
}

.ht-feature-tile.tint {
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
}

.ht-detail h2 {
  font-size: 30px;
  margin-bottom: 14px;
}

.ht-detail .ht-kicker {
  display: inline-block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ht-blue);
  margin-bottom: 10px;
}

.ht-detail p {
  font-size: 16px;
  line-height: 1.8;
}

@media (max-width: 575px) {
  .ht-detail h2 {
    font-size: 24px;
  }

  .ht-feature-tile {
    min-height: 160px;
    font-size: 58px;
  }
}

/* Anchor offset so fixed-header links land correctly */
.ht-anchor {
  scroll-margin-top: 96px;
}

/*--------------------------------------------------------------
# Left-aligned section titles
--------------------------------------------------------------*/
.ht-kicker {
  display: inline-block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ht-blue);
  margin-bottom: 10px;
}

/* The centred accent bar under .section-title h2 reads as a stray underline
   when the title is left-aligned, so it is suppressed in that variant. */
.ht-title-left h2 {
  padding-bottom: 0;
}

.ht-title-left h2::after {
  display: none;
}

.ht-title-left p {
  text-align: left;
  margin-left: 0;
  font-size: 33px;
}

@media (max-width: 575px) {
  .ht-title-left p {
    font-size: 26px;
  }
}

/* Call link shown only inside the mobile navigation drawer */
.navmenu .ht-nav-call a {
  color: var(--ht-blue);
  font-weight: 700;
}

/*--------------------------------------------------------------
# Fixes over the template defaults
--------------------------------------------------------------*/
/* The template washes the page-title band out with a 70% translucent
   overlay, which flattens the Harrington navy gradient. */
.page-title::before {
  display: none;
}

.page-title .container {
  position: relative;
  z-index: 2;
}

.page-title p {
  margin: 0 auto;
}

/* Keep the two collection cards' buttons on the same baseline. */
.ht-collection {
  display: flex;
  flex-direction: column;
}

.ht-collection .body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.ht-collection .body .ht-btn {
  margin-top: auto;
}

/* Service cards that are wrapped in a link must not inherit link colour. */
a .ht-service,
a .ht-service p,
a .ht-service ul li {
  color: var(--default-color);
}

a .ht-service h3 {
  color: var(--ht-navy);
}

/* The template leaves .section-title left-aligned, which fights the centred
   accent bar and leaves the eyebrow stranded at the far left. Centre it, and
   let .ht-title-left opt back out. */
.section-title {
  text-align: center;
}

.ht-title-left {
  text-align: left;
}

/* main.css sets .section-title h2 { line-height: 1px }, which collapses the
   box so the accent bar lands through the middle of the eyebrow text. */
.section-title h2 {
  line-height: 1.5;
  display: block;
}

/*==============================================================
# 17-page expansion: heroes, cards, crumbs, dividers
==============================================================*/

/*--------------------------------------------------------------
# Inner page hero
--------------------------------------------------------------*/
.page-hero {
  background: linear-gradient(150deg, #061f42 0%, #0a2f5e 58%, #12417c 100%);
  padding: 140px 0 66px;
  position: relative;
  overflow: hidden;
}

.page-hero::after {
  content: "";
  position: absolute;
  top: -160px;
  right: -120px;
  width: 480px;
  height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(62, 155, 224, 0.34) 0%, rgba(62, 155, 224, 0) 68%);
  pointer-events: none;
}

.page-hero .container {
  position: relative;
  z-index: 2;
}

.page-hero h1 {
  color: #fff;
  font-size: 43px;
  line-height: 1.16;
  margin-bottom: 18px;
  max-width: 18ch;
}

.page-hero .lead-text {
  color: #cddef0;
  font-size: 17.5px;
  line-height: 1.75;
  max-width: 56ch;
  margin-bottom: 28px;
}

.page-hero .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.ht-hero-art {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.26);
}

.ht-crumbs {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.ht-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13.5px;
}

.ht-crumbs li {
  color: #9fbadb;
}

.ht-crumbs li + li::before {
  content: "/";
  margin-right: 8px;
  color: rgba(255, 255, 255, 0.3);
}

.ht-crumbs a {
  color: #cddef0;
}

.ht-crumbs a:hover {
  color: #fff;
}

.ht-crumbs .current {
  color: var(--ht-blue-light);
  font-weight: 600;
}

@media (max-width: 991px) {
  .page-hero {
    padding: 124px 0 56px;
  }
  .page-hero h1 {
    max-width: none;
  }
}

@media (max-width: 575px) {
  .page-hero {
    padding: 108px 0 44px;
  }
  .page-hero h1 {
    font-size: 30px;
  }
  .page-hero .lead-text {
    font-size: 16px;
  }
  .page-hero .hero-actions .ht-btn {
    width: 100%;
  }
}

/*--------------------------------------------------------------
# Visual service card (illustration + icon badge + Learn More)
--------------------------------------------------------------*/
.ht-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 18px;
  overflow: hidden;
  transition: 0.3s;
  color: var(--default-color);
}

.ht-card:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 18px 38px rgba(10, 47, 94, 0.14);
  transform: translateY(-6px);
  color: var(--default-color);
}

.ht-card-art {
  position: relative;
  background: var(--ht-blue-tint);
  line-height: 0;
}

.ht-card-art img {
  width: 100%;
  height: auto;
  display: block;
}

.ht-card-icon {
  position: absolute;
  left: 22px;
  bottom: -26px;
  width: 54px;
  height: 54px;
  border-radius: 14px;
  background: var(--ht-blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  box-shadow: 0 8px 18px rgba(12, 111, 184, 0.34);
  transition: 0.3s;
}

.ht-card:hover .ht-card-icon {
  background: var(--ht-navy);
}

.ht-card-body {
  padding: 42px 24px 26px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.ht-card-body h3 {
  font-size: 19px;
  color: var(--ht-navy);
  margin-bottom: 10px;
}

.ht-card-body p {
  font-size: 14.8px;
  line-height: 1.7;
  margin-bottom: 18px;
}

.ht-card-more {
  margin-top: auto;
  font-weight: 600;
  font-size: 14.5px;
  color: var(--ht-blue);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ht-card:hover .ht-card-more {
  gap: 13px;
}

.ht-card-more i {
  transition: 0.3s;
}

/*--------------------------------------------------------------
# Related services strip
--------------------------------------------------------------*/
.ht-related-item {
  display: flex;
  align-items: center;
  gap: 15px;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 14px;
  padding: 20px;
  height: 100%;
  transition: 0.3s;
  color: var(--default-color);
}

.ht-related-item:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 12px 28px rgba(10, 47, 94, 0.1);
  color: var(--default-color);
}

.ht-related-item .ht-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  transition: 0.3s;
}

.ht-related-item:hover .ht-icon {
  background: var(--ht-blue);
  color: #fff;
}

.ht-related-item .txt {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.ht-related-item strong {
  color: var(--ht-navy);
  font-size: 15.5px;
  font-family: var(--heading-font);
}

.ht-related-item small {
  font-size: 13.5px;
  line-height: 1.5;
  color: #6b7a8f;
}

.ht-related-item .go {
  margin-left: auto;
  color: var(--ht-blue);
  font-size: 18px;
  flex-shrink: 0;
}

/*--------------------------------------------------------------
# Decorative node divider
--------------------------------------------------------------*/
.ht-divider-nodes {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 8px 0 4px;
}

.ht-divider-nodes span {
  height: 2px;
  width: 90px;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(12, 111, 184, 0), var(--ht-blue-light));
}

.ht-divider-nodes span:last-child {
  background: linear-gradient(90deg, var(--ht-blue-light), rgba(12, 111, 184, 0));
}

.ht-divider-nodes i {
  color: var(--ht-blue-light);
  font-size: 13px;
}

/*--------------------------------------------------------------
# Feature figures, steps, spec strips, icon clusters
--------------------------------------------------------------*/
.ht-figure {
  border-radius: 20px;
  overflow: hidden;
  line-height: 0;
  box-shadow: 0 16px 36px rgba(10, 47, 94, 0.13);
}

.ht-figure img {
  width: 100%;
  height: auto;
  display: block;
}

.ht-figure-caption {
  font-size: 13px;
  color: #6b7a8f;
  line-height: 1.6;
  margin-top: 12px;
  text-align: center;
}

.dark-background .ht-figure-caption {
  color: #9fbadb;
}

.ht-step-light {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 14px;
  padding: 22px;
  height: 100%;
}

.ht-step-light .num {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ht-step-light h4 {
  font-size: 17px;
  margin-bottom: 6px;
  color: var(--ht-navy);
}

.ht-step-light p {
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0;
}

.ht-spec {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.ht-spec div {
  flex: 1 1 190px;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-left: 3px solid var(--ht-blue);
  border-radius: 10px;
  padding: 16px 18px;
}

.ht-spec strong {
  display: block;
  color: var(--ht-navy);
  font-family: var(--heading-font);
  font-size: 15.5px;
  margin-bottom: 3px;
}

.ht-spec span {
  font-size: 13.8px;
  color: #6b7a8f;
  line-height: 1.55;
}

.ht-icon-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.ht-icon-cluster span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: #fff;
  border: 1px solid #dbe7f4;
  border-radius: 50px;
  padding: 10px 20px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--ht-navy);
}

.ht-icon-cluster i {
  color: var(--ht-blue);
  font-size: 17px;
}

.dark-background .ht-icon-cluster span {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
  color: #e2edf8;
}

.dark-background .ht-icon-cluster i {
  color: var(--ht-blue-light);
}

@media (max-width: 575px) {
  .ht-icon-cluster span {
    padding: 9px 15px;
    font-size: 13.5px;
  }
}

/*--------------------------------------------------------------
# FAQ accordion (native details/summary - no JS needed)
--------------------------------------------------------------*/
.ht-faq {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 14px;
  margin-bottom: 14px;
  overflow: hidden;
}

.ht-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 58px 20px 22px;
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 16.5px;
  color: var(--ht-navy);
  position: relative;
}

.ht-faq summary::-webkit-details-marker {
  display: none;
}

.ht-faq summary::after {
  content: "\f282";
  font-family: "bootstrap-icons";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ht-blue);
  font-size: 18px;
  font-weight: 400;
  transition: transform 0.3s;
}

.ht-faq[open] summary::after {
  transform: translateY(-50%) rotate(180deg);
}

.ht-faq[open] summary {
  background: var(--ht-blue-tint);
}

.ht-faq .answer {
  padding: 18px 22px 22px;
  font-size: 15.2px;
  line-height: 1.75;
  border-top: 1px solid #e3ecf6;
}

.ht-faq .answer p:last-child,
.ht-faq .answer ul:last-child {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Coverage / area cards
--------------------------------------------------------------*/
.ht-area {
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  padding: 26px 22px;
  height: 100%;
  transition: 0.3s;
}

.ht-area:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 14px 30px rgba(10, 47, 94, 0.1);
}

.ht-area .ht-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 23px;
  margin-bottom: 16px;
}

.ht-area h3 {
  font-size: 19px;
  color: var(--ht-navy);
  margin-bottom: 10px;
}

.ht-area p {
  font-size: 14.8px;
  line-height: 1.7;
  margin-bottom: 14px;
}

.ht-area ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ht-area ul li {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 14px;
  padding: 4px 0;
  color: #48566a;
}

.ht-area ul li i {
  color: var(--ht-blue);
  margin-top: 3px;
  flex-shrink: 0;
}

/*--------------------------------------------------------------
# Dropdown navigation
--------------------------------------------------------------*/
.navmenu .dropdown ul {
  border-radius: 12px;
  box-shadow: 0 12px 34px rgba(10, 47, 94, 0.16);
  padding: 8px 0;
}

.navmenu .dropdown ul a {
  font-size: 14.5px;
  padding: 9px 20px;
}

.navmenu .dropdown ul a.active {
  color: var(--ht-blue);
  font-weight: 600;
}

.navmenu > ul > li.dropdown > a.active {
  color: var(--ht-blue);
}

@media (min-width: 1200px) {
  .navmenu > ul > li > a {
    padding-left: 13px;
    padding-right: 13px;
    font-size: 14.5px;
  }
}

/* Footer call link */
.ht-footer-call {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #fff;
  font-weight: 700;
  font-size: 17px;
  font-family: var(--heading-font);
}

.ht-footer-call i {
  color: var(--ht-blue-light);
}

.ht-footer-call:hover {
  color: var(--ht-blue-light);
}

/* The CTA band carries the circuit motif; keep it clipped to its radius */
.ht-cta.ht-circuit {
  overflow: hidden;
}

/*--------------------------------------------------------------
# Comparison table
--------------------------------------------------------------*/
.ht-table-wrap {
  overflow-x: auto;
  border-radius: 14px;
  border: 1px solid #e3ecf6;
  background: #fff;
}

.ht-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  font-size: 15px;
}

.ht-table th,
.ht-table td {
  padding: 16px 18px;
  text-align: left;
  border-bottom: 1px solid #edf3fa;
}

.ht-table thead th {
  background: var(--ht-navy);
  color: #fff;
  font-family: var(--heading-font);
  font-size: 13.5px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-weight: 700;
  white-space: nowrap;
}

.ht-table tbody th {
  font-family: var(--heading-font);
  color: var(--ht-navy);
  font-size: 16px;
  white-space: nowrap;
}

.ht-table tbody tr:last-child th,
.ht-table tbody tr:last-child td {
  border-bottom: 0;
}

.ht-table tbody tr.is-featured {
  background: var(--ht-blue-tint);
}

.ht-table td strong {
  color: var(--ht-blue);
  font-size: 17px;
}

.ht-table .bi-check-circle-fill {
  color: var(--ht-blue);
  font-size: 18px;
}

.ht-tag {
  display: inline-block;
  margin-left: 8px;
  background: var(--ht-blue);
  color: #fff;
  font-family: var(--default-font);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 50px;
  vertical-align: middle;
}

/*--------------------------------------------------------------
# Note panel (pricing caveats, scope notes)
--------------------------------------------------------------*/
.ht-note-panel {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: var(--ht-blue-tint);
  border-left: 4px solid var(--ht-blue);
  border-radius: 14px;
  padding: 30px 32px;
}

.ht-note-panel > i {
  color: var(--ht-blue);
  font-size: 30px;
  flex-shrink: 0;
  line-height: 1.2;
}

.ht-note-panel h3 {
  font-size: 21px;
  color: var(--ht-navy);
  margin-bottom: 12px;
}

.ht-note-panel p {
  font-size: 15.5px;
  line-height: 1.75;
  margin-bottom: 12px;
}

@media (max-width: 575px) {
  .ht-note-panel {
    padding: 24px 20px;
    gap: 14px;
  }

  .ht-note-panel h3 {
    font-size: 18px;
  }
}

/* Anchor-styled "more" links inside plain cards */
a.ht-card-more {
  text-decoration: none;
}

/*--------------------------------------------------------------
# Comparison table - stacked on mobile
# A 900px-wide table inside a scroll container still expands the
# root scroll width, and is poor UX on a phone regardless. Below
# 768px the table becomes stacked rows labelled from data-label.
--------------------------------------------------------------*/
@media (max-width: 767px) {
  .ht-table-wrap {
    overflow-x: visible;
    border: 0;
    background: transparent;
    border-radius: 0;
  }

  .ht-table {
    min-width: 0;
    width: 100%;
  }

  .ht-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .ht-table tbody,
  .ht-table tr,
  .ht-table th,
  .ht-table td {
    display: block;
    width: 100%;
  }

  .ht-table tr {
    background: #fff;
    border: 1px solid #e3ecf6;
    border-radius: 14px;
    margin-bottom: 14px;
    overflow: hidden;
  }

  .ht-table tr.is-featured {
    border: 2px solid var(--ht-blue);
  }

  .ht-table tbody th {
    background: var(--ht-navy);
    color: #fff;
    font-size: 17px;
    padding: 14px 18px;
    white-space: normal;
  }

  .ht-table tr.is-featured tbody th,
  .ht-table tr.is-featured > th {
    background: var(--ht-blue);
  }

  .ht-table td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 18px;
    border-bottom: 1px solid #edf3fa;
  }

  .ht-table td:last-child {
    border-bottom: 0;
  }

  .ht-table td::before {
    content: attr(data-label);
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 13.5px;
    color: var(--ht-navy);
    text-align: left;
  }

  .ht-tag {
    display: block;
    margin: 8px 0 0;
    width: fit-content;
    background: rgba(255, 255, 255, 0.18);
  }

  .ht-table tr.is-featured .ht-tag {
    background: rgba(255, 255, 255, 0.24);
  }
}

/*--------------------------------------------------------------
# Mobile drawer polish
--------------------------------------------------------------*/
/* The template lays navmenu links out as space-between (for the dropdown
   chevron). The call/WhatsApp entries have no chevron, so left-align them. */
.navmenu .ht-nav-call a {
  justify-content: flex-start;
  gap: 12px;
}

.navmenu .ht-nav-call {
  margin-top: 4px;
}

.navmenu .ht-nav-call:first-of-type {
  border-top: 1px solid #e3ecf6;
  padding-top: 8px;
  margin-top: 10px;
}

/* The floating WhatsApp bubble and scroll-top button sit over the open
   drawer, covering the last items. Hide them while it is open. */
.mobile-nav-active .ht-whatsapp-float,
.mobile-nav-active .scroll-top {
  display: none;
}

/*==============================================================
# Photography pass: photo slots, icon cards, feature rows
==============================================================*/

/*--------------------------------------------------------------
# Photography
# Every slot reserves its aspect ratio whether or not the real
# photograph exists yet, so missing imagery cannot shift layout.
--------------------------------------------------------------*/
.ht-photo {
  position: relative;
  margin: 0;
  aspect-ratio: var(--ht-ratio, 3 / 2);
  border-radius: 18px;
  overflow: hidden;
  background: var(--ht-blue-tint);
  box-shadow: 0 16px 36px rgba(10, 47, 94, 0.14);
}

.ht-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Genuine payment-location logos: preserve brand artwork and proportions. */
.ht-payment-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.ht-payment-grid > li {
  min-width: 0;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 10px;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 10px;
}
.ht-payment-grid img {
  display: block;
  width: 100%;
  max-width: 120px;
  height: 42px;
  object-fit: contain;
}
.ht-payment-grid > li > span {
  color: #34445a;
  font-size: 12px;
  line-height: 1.3;
  text-align: center;
}
.ht-payment-grid-network {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
@media (max-width: 767px) {
  .ht-payment-grid-network { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .ht-payment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

/* Placeholder state - designed, not broken */
.ht-photo-slot {
  background: linear-gradient(150deg, #0a2f5e 0%, #12417c 100%);
  border: 2px dashed rgba(126, 183, 232, 0.5);
  box-shadow: none;
}

.ht-photo-slot::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.4;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%233e9be0' stroke-width='1' stroke-opacity='0.35'%3E%3Cpath d='M10 10h40v40h40M50 90h40V50M10 110h30v20M110 10v40h20M90 130V90h40'/%3E%3C/g%3E%3Cg fill='%233e9be0' fill-opacity='0.5'%3E%3Ccircle cx='10' cy='10' r='3'/%3E%3Ccircle cx='90' cy='50' r='3'/%3E%3Ccircle cx='50' cy='90' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

.ht-photo-inner {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px 26px;
  gap: 7px;
}

.ht-photo-inner > i {
  font-size: 34px;
  color: var(--ht-blue-light);
  margin-bottom: 2px;
}

.ht-photo-label {
  font-family: var(--heading-font);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ht-blue-light);
}

.ht-photo-brief {
  font-family: var(--heading-font);
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  max-width: 34ch;
}

.ht-photo-search {
  font-size: 12.5px;
  line-height: 1.5;
  color: #9fbadb;
  font-style: italic;
  max-width: 36ch;
}

.ht-photo-hero {
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3);
}

.ht-photo-slot.ht-photo-hero {
  border-color: rgba(126, 183, 232, 0.55);
  background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 575px) {
  .ht-photo-brief {
    font-size: 14.5px;
  }
  .ht-photo-search {
    font-size: 11.5px;
  }
  .ht-photo-inner > i {
    font-size: 27px;
  }
}

/* Small caption under a photo */
.ht-photo + .ht-figure-caption {
  margin-top: 12px;
}

/*--------------------------------------------------------------
# Icon-led service cards (homepage / directory)
--------------------------------------------------------------*/
.ht-icon-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid #e3ecf6;
  border-radius: 16px;
  padding: 28px 24px 24px;
  transition: 0.3s;
  color: var(--default-color);
  position: relative;
  overflow: hidden;
}

.ht-icon-card::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 3px;
  width: 0;
  background: var(--ht-blue);
  transition: width 0.35s;
}

.ht-icon-card:hover {
  border-color: var(--ht-blue);
  box-shadow: 0 16px 34px rgba(10, 47, 94, 0.13);
  transform: translateY(-5px);
  color: var(--default-color);
}

.ht-icon-card:hover::after {
  width: 100%;
}

.ht-icon-card .ht-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--ht-blue-tint);
  color: var(--ht-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-bottom: 18px;
  transition: 0.3s;
}

.ht-icon-card:hover .ht-icon {
  background: var(--ht-blue);
  color: #fff;
}

.ht-icon-card h3 {
  font-size: 18px;
  color: var(--ht-navy);
  margin-bottom: 9px;
  line-height: 1.35;
}

.ht-icon-card p {
  font-size: 14.5px;
  line-height: 1.65;
  margin-bottom: 14px;
}

.ht-icon-card ul {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
}

.ht-icon-card ul li {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13.8px;
  padding: 3px 0;
  color: #5a6a7e;
}

.ht-icon-card ul li i {
  color: var(--ht-blue);
  margin-top: 3px;
  flex-shrink: 0;
  font-size: 14px;
}

.ht-icon-card .ht-card-more {
  margin-top: auto;
}

/*--------------------------------------------------------------
# Photographic feature rows
--------------------------------------------------------------*/
.ht-feature-heading {
  font-size: 31px;
  line-height: 1.25;
  margin-bottom: 16px;
  color: var(--heading-color);
}

.dark-background .ht-feature-heading {
  color: #fff;
}

.ht-feature-heading + p,
.ht-feature-heading + .ht-lead {
  margin-bottom: 14px;
}

.dark-background .ht-kicker {
  color: var(--ht-blue-light);
}

@media (max-width: 575px) {
  .ht-feature-heading {
    font-size: 24px;
  }
}

/* Stack of feature rows inside one section */
.ht-feature-stack > div + div {
  margin-top: 70px;
}

@media (max-width: 991px) {
  .ht-feature-stack > div + div {
    margin-top: 48px;
  }
}
