:root {
  --pt-blue: #07579d;
  --pt-blue-deep: #041a35;
  --pt-blue-bright: #1788d4;
  --pt-sky: #dceeff;
}

.nav {
  border-bottom-color: rgba(7, 87, 157, .15);
  box-shadow: 0 10px 35px rgba(4, 26, 53, .08);
}

.brand { gap: 13px; }
.brand-logo {
  width: 54px;
  height: 54px;
  border-radius: 0;
  object-fit: contain;
  background: transparent;
  filter: drop-shadow(0 6px 10px rgba(7, 87, 157, .14));
}
.brand > span { color: var(--pt-blue-deep); }
.brand small { color: var(--pt-blue); }
.nav-cta { background: linear-gradient(135deg, var(--pt-blue-deep), var(--pt-blue)); }

.hero {
  background:
    radial-gradient(circle at 78% 30%, rgba(23,136,212,.22), transparent 29%),
    linear-gradient(135deg, #031226 0%, #062d57 58%, #063d74 100%);
}
.hero-copy { max-width: 720px; }
.hero h1 { text-wrap: balance; text-shadow: 0 7px 35px rgba(0,0,0,.18); }
.hero h1 em { color: #fff; position: relative; }
.hero h1 em:after { display: none; }
.hero-desc { color: #c6d5e5; }
.sun-disc {
  position: relative;
  width: 160px;
  height: 160px;
  flex: 0 0 160px;
  color: var(--pt-blue-deep);
  background: linear-gradient(135deg, #dcff62, var(--lime));
  box-shadow: 0 0 0 8px rgba(255,255,255,.08), 0 22px 65px rgba(2,12,28,.38);
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 50%;
  text-align: center;
  font: 800 20px/1.15 Manrope, sans-serif;
  letter-spacing: -.5px;
  text-decoration: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.sun-disc:before {
  display: none;
}
.sun-disc:hover {
  transform: scale(1.05);
  box-shadow: 0 0 0 10px rgba(200,241,53,.12), 0 26px 75px rgba(2,12,28,.45);
}
.sun-disc:focus-visible { outline: 3px solid #fff; outline-offset: 6px; }
.hero-logo { width: 88%; height: 88%; object-fit: contain; }
.energy-orbit { display: grid; }
.orbit { border-color: rgba(148, 205, 255, .36); }
.orbit span { background: #87cfff; }
.hero-stats b { color: #89d6ff; }
.hero-stats div:first-child b { color: var(--lime); }

.brand-strip { background: #fff; border-bottom-color: rgba(7,87,157,.15); }
.brand-strip b { color: var(--pt-blue-deep); }

.products { background: linear-gradient(180deg, #f4f1e9 0%, #edf5fb 100%); }
.product-grid { gap: 18px; border: 0; }
.product-card {
  min-height: 520px;
  border: 1px solid rgba(7,87,157,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 18px 50px rgba(4,26,53,.07);
  overflow: hidden;
}
.product-card:hover {
  border-color: rgba(7,87,157,.3);
  box-shadow: 0 24px 60px rgba(4,26,53,.14);
}
.product-card .product-top span { color: var(--pt-blue); }
.product-card .product-visual { margin: 8px -24px 0; height: 210px; }
.product-card .product-visual:before { width: 175px; height: 175px; background: var(--pt-sky); }
.product-card>a { color: var(--pt-blue); }
.product-card>a span { transition: transform .2s; }
.product-card:hover>a span { transform: translateX(5px); }

.footer-logo { width: 62px; height: 62px; object-fit: contain; margin-right: 12px; }
.footer-brand .brand-mark {
  width: 62px;
  height: 62px;
  clip-path: none;
  border-radius: 50%;
  background: #fff url('/images/pt-solar-logo.jpg') center / contain no-repeat;
  font-size: 0;
  box-shadow: 0 10px 28px rgba(0,0,0,.2);
}
.footer-brand > span { color: #fff; }
.footer-brand small { color: #9ad7ff; }

@media (max-width: 950px) {
  .sun-disc { width: 125px; height: 125px; flex-basis: 125px; }
  .product-grid { gap: 14px; }
}

@media (min-width: 701px) and (max-width: 1150px) {
  .nav { padding-inline: 3vw; }
  .nav-links { gap: 16px; font-size: 13px; }
  .nav-cta { padding: 12px 14px; }
}

@media (max-width: 700px) {
  .brand-logo { width: 44px; height: 44px; }
  .hero { min-height: 790px; }
  .hero-copy { max-width: none; }
  .product-grid { gap: 16px; }
  .product-card { min-height: 465px; }
  .footer-logo { width: 50px; height: 50px; }
}

/* Footer visitor counter */
.footer-bottom {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.footer-bottom > span:last-child { text-align: right; }
.visitor-counter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 19px;
  padding: 4px 9px;
  border: 1px solid rgba(200, 241, 53, 0.45);
  background: rgba(200, 241, 53, 0.08);
  color: #eef3f8;
  font-size: 7px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.4px;
  text-align: center;
  white-space: nowrap;
}
.visitor-counter strong {
  color: #c8f135;
  margin: 0 3px;
  font-size: 9px;
  font-weight: 700;
}
@media (max-width: 700px) {
  .footer-bottom {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 10px;
    text-align: center;
  }
  .footer-bottom > span:last-child { text-align: center; }
  .visitor-counter {
    grid-row: 2;
    width: min(100%, 280px);
    box-sizing: border-box;
  }
}

/* PT Solar V18.6.6 — Hero orbit product size normalization
   Make Inverter and Battery visually match the Solar Panel size. */
.energy-orbit .orbit-label img{
  width:auto !important;
  height:108px !important;
  max-width:64px !important;
  object-fit:contain;
}
@media (width<=700px){
  .energy-orbit .orbit-label img{
    width:auto !important;
    height:94px !important;
    max-width:56px !important;
  }
}

/* PT Solar V18.6.7 — product pages use main brand logo style */
.catalog-logo.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
}
.catalog-logo.brand .brand-logo {
  width: 54px;
  height: 54px;
  object-fit: contain;
  border-radius: 0;
  background: transparent;
  filter: drop-shadow(0 6px 10px rgba(7, 87, 157, .14));
  flex: 0 0 auto;
}
.catalog-logo.brand > span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--pt-blue-deep);
  font: 800 19px/1 Manrope;
  letter-spacing: 0;
  background: transparent;
  margin: 0;
  padding: 0;
}
.catalog-logo.brand small {
  color: var(--pt-blue);
  font-size: 10px;
  letter-spacing: 2.2px;
  line-height: 1.1;
  background: transparent;
  margin: 0;
  padding: 0;
}
.catalog-nav > a:last-child {
  color: var(--pt-blue-deep);
}
@media (max-width: 700px) {
  .catalog-nav {
    height: auto;
    min-height: 78px;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .catalog-logo.brand .brand-logo {
    width: 44px;
    height: 44px;
  }
  .catalog-logo.brand > span {
    font-size: 17px;
  }
  .catalog-logo.brand small {
    font-size: 9px;
    letter-spacing: 1.8px;
  }
}

/* PT Solar V18.6.8 — fix product logo color/background on catalog pages */
.catalog-logo.brand span,
.catalog-logo.brand small {
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* PT Solar V18.6.9 — rebuild product-page logo so it matches homepage cleanly on all 4 product pages */
.catalog-brand {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
}
.catalog-brand-logo {
  width: 54px;
  height: 54px;
  object-fit: contain;
  border-radius: 0;
  background: transparent;
  filter: drop-shadow(0 6px 10px rgba(7, 87, 157, .14));
  flex: 0 0 auto;
}
.catalog-brand-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  background: transparent;
}
.catalog-brand-text strong {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--pt-blue-deep);
  background: transparent;
  font: 800 19px/1 Manrope;
  letter-spacing: 0;
}
.catalog-brand-text small {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--pt-blue);
  background: transparent;
  font: 700 10px/1.1 Manrope;
  letter-spacing: 2.2px;
}
.catalog-nav > a:last-child {
  color: var(--pt-blue-deep);
}
@media (max-width: 700px) {
  .catalog-nav {
    height: auto;
    min-height: 78px;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .catalog-brand-logo {
    width: 44px;
    height: 44px;
  }
  .catalog-brand-text strong {
    font-size: 17px;
  }
  .catalog-brand-text small {
    font-size: 9px;
    letter-spacing: 1.8px;
  }
}

