/* ========================================================================== 
   Szablon 3 — Enees modern
   Jasna, kremowa kompozycja z żółtym podkreśleniem i koralowymi CTA.
   Reguły dotyczą wyłącznie publicznej części katalogu.
   ========================================================================== */

.template-3:not(.admin-page) {
  --vip-cream: var(--modern-background, #fff7f0);
  --vip-cream-deep: #faeee5;
  --vip-yellow: #ffd400;
  --vip-coral: #dc6970;
  --vip-coral-dark: #c6535c;
  --vip-charcoal: #2c2e2d;
  --vip-muted: #7b7a77;
  --vip-line: #e7e2dc;
  --vip-shadow: 0 14px 38px rgba(50, 44, 39, .08);
  color: var(--vip-charcoal);
  background: #fff;
  font-family: var(--font-ui);
}

.template-3:not(.admin-page) main { overflow: clip; }

.template-3:not(.admin-page) .site-header {
  position: sticky;
  top: 0;
  padding: 12px 0 0;
  border: 0;
  background: var(--vip-cream);
  box-shadow: none;
  backdrop-filter: none;
}

.template-3:not(.admin-page) .nav {
  height: 66px;
  padding: 0 18px;
  border: 1px solid rgba(50, 46, 42, .08);
  border-radius: 7px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 7px 22px rgba(65, 54, 45, .11);
}

.template-3:not(.admin-page) .brand { color: var(--vip-charcoal); font-weight: 800; }
.template-3:not(.admin-page) .brand span {
  color: #fff;
  background: var(--green);
  border-radius: 5px;
  box-shadow: none;
}
.template-3:not(.admin-page) .brand-logo { max-width: 190px; height: 44px; }
.template-3:not(.admin-page) .nav nav { gap: 3px; font-size: 13px; }
.template-3:not(.admin-page) .nav nav a { padding: 12px 15px; border-radius: 4px; }
.template-3:not(.admin-page) .nav nav a:hover { color: var(--green); background: #f6f7f4; }
.template-3:not(.admin-page) .nav nav .nav-add-company {
  margin-left: 7px;
  padding-inline: 20px;
  color: #fff;
  background: var(--add-company-button, #dc6970);
  border-radius: 4px;
  box-shadow: none;
}
.template-3:not(.admin-page) .nav nav .nav-add-company:hover {
  color: #fff;
  background: var(--add-company-button-dark, #c6535c);
}

.template-3:not(.admin-page) .hero {
  min-height: 655px;
  padding: 88px 0 106px;
  color: var(--vip-charcoal);
  background:
    linear-gradient(154deg, transparent 0 62%, rgba(255,255,255,.72) 62.2% 70%, transparent 70.2%),
    var(--vip-cream);
  border: 0;
}
.template-3:not(.admin-page) .hero::before {
  width: 410px;
  height: 410px;
  right: -190px;
  bottom: -170px;
  border: 70px solid rgba(255,255,255,.62);
  background: transparent;
  filter: none;
}
.template-3:not(.admin-page) .hero::after {
  width: 560px;
  height: 150px;
  right: -80px;
  top: 80px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.45);
  transform: rotate(-24deg);
}
.template-3:not(.admin-page) .hero-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  gap: 66px;
}
.template-3:not(.admin-page) .hero .kicker,
.template-3:not(.admin-page) .kicker.dark,
.template-3:not(.admin-page) .eyebrow {
  width: fit-content;
  padding: 7px 11px;
  color: #5d625f;
  background: rgba(255,255,255,.78);
  border-radius: 3px;
  letter-spacing: .035em;
  font-size: 11px;
  font-weight: 700;
}
.template-3:not(.admin-page) .hero h1 {
  max-width: 670px;
  margin: 24px 0 23px;
  color: var(--vip-charcoal);
  font-size: clamp(46px, 5.3vw, 68px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.07;
}
.template-3:not(.admin-page) .hero h1 em {
  display: inline;
  color: var(--vip-charcoal);
  font-style: normal;
  font-weight: 750;
  background: linear-gradient(transparent 78%, var(--vip-yellow) 78% 94%, transparent 94%);
}
.template-3:not(.admin-page) .hero-grid > div > p {
  max-width: 585px;
  margin-bottom: 25px;
  color: var(--vip-muted);
  font-size: 18px;
  line-height: 1.65;
}
.template-3:not(.admin-page) .hero-visual {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}
.template-3:not(.admin-page) .hero-visual::before { display: none; }
.template-3:not(.admin-page) .hero-visual img {
  aspect-ratio: 3/2;
  border-radius: 0;
  object-fit: contain;
  filter: saturate(.95) contrast(.99) drop-shadow(0 18px 22px rgba(75, 59, 47, .08));
  box-shadow: none;
}

.template-3:not(.admin-page) .advanced-search {
  max-width: 980px;
  padding: 13px;
  border: 1px solid rgba(63, 54, 47, .10);
  border-radius: 7px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--vip-shadow);
}
.template-3:not(.admin-page) .advanced-search label { font-weight: 600; }
.template-3:not(.admin-page) .advanced-search input:not([type=checkbox]),
.template-3:not(.admin-page) .advanced-search select {
  border-color: var(--vip-line);
  border-radius: 4px;
  background: #fff;
}
.template-3:not(.admin-page) .advanced-search-main > button,
.template-3:not(.admin-page) .search button,
.template-3:not(.admin-page) .primary-button {
  border-radius: 4px;
  background: var(--green);
  box-shadow: none;
  font-weight: 700;
}
.template-3:not(.admin-page) .advanced-search-main > button:hover,
.template-3:not(.admin-page) .search button:hover,
.template-3:not(.admin-page) .primary-button:hover { background: var(--green-dark); }
.template-3:not(.admin-page) .stats { gap: 32px; margin-top: 22px; }
.template-3:not(.admin-page) .stats span {
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--vip-muted);
  background: transparent;
}
.template-3:not(.admin-page) .stats b { color: var(--green); font-size: 22px; }

.template-3:not(.admin-page) .section { padding: 86px 0; }
.template-3:not(.admin-page) .section-head { margin-bottom: 38px; }
.template-3:not(.admin-page) .section-head h2,
.template-3:not(.admin-page) .similar-companies .section-head h2 {
  color: var(--vip-charcoal);
  font-size: clamp(33px, 3.5vw, 46px);
  font-weight: 400;
  letter-spacing: -.035em;
}
.template-3:not(.admin-page) #kategorie {
  padding-top: 95px;
  background: #fff;
}
.template-3:not(.admin-page) #kategorie::before,
.template-3:not(.admin-page) #kategorie::after { display: none; }
.template-3:not(.admin-page) .category-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
}
.template-3:not(.admin-page) .category-card,
.template-3:not(.admin-page) .category-card:nth-child(3n),
.template-3:not(.admin-page) .category-card:nth-last-child(-n+3) {
  min-height: 222px;
  padding: 26px;
  border: 1px solid var(--vip-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(48,42,37,.045);
}
.template-3:not(.admin-page) .category-card:nth-child(4n+1),
.template-3:not(.admin-page) .category-card:nth-child(4n+4) { background: var(--vip-cream); }
.template-3:not(.admin-page) .category-card:hover {
  border-color: color-mix(in srgb, var(--green) 40%, #fff);
  box-shadow: 0 16px 34px rgba(48,42,37,.09);
  transform: translateY(-4px);
}
.template-3:not(.admin-page) .category-icon {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  color: var(--green);
  background: #edf7f1;
  box-shadow: none;
}
.template-3:not(.admin-page) .category-card h3 {
  color: var(--vip-charcoal);
  font-size: 18px;
  font-weight: 700;
}
.template-3:not(.admin-page) .mini-links a { color: var(--vip-muted); }
.template-3:not(.admin-page) .catalog-description {
  border-color: var(--vip-line);
  border-radius: 7px;
  background: var(--vip-cream);
  font-size: 14px;
}

.template-3:not(.admin-page) .latest,
.template-3:not(.admin-page) .similar-companies {
  background: var(--vip-cream);
  border-color: var(--vip-line);
}
.template-3:not(.admin-page) .company-grid { gap: 22px; }
.template-3:not(.admin-page) .company-card {
  border-color: var(--vip-line);
  border-radius: 7px;
  box-shadow: 0 8px 26px rgba(51,44,39,.06);
}
.template-3:not(.admin-page) .company-card:hover {
  border-color: color-mix(in srgb, var(--green) 35%, #fff);
  box-shadow: 0 18px 38px rgba(51,44,39,.11);
  transform: translateY(-5px);
}
.template-3:not(.admin-page) .company-body { padding: 25px; }
.template-3:not(.admin-page) .company-body .eyebrow {
  color: var(--green);
  background: #edf7f1;
  border-radius: 3px;
}
.template-3:not(.admin-page) .company-body h3 { color: var(--vip-charcoal); font-weight: 700; }
.template-3:not(.admin-page) .company-body > p { color: var(--vip-muted); }
.template-3:not(.admin-page) .text-link { color: var(--vip-coral-dark); }

.template-3:not(.admin-page) .page-hero {
  padding: 72px 0 78px;
  color: var(--vip-charcoal);
  background: var(--vip-cream);
  border-color: var(--vip-line);
}
.template-3:not(.admin-page) .page-hero h1 {
  width: fit-content;
  color: var(--vip-charcoal);
  font-size: clamp(40px,4.7vw,58px);
  font-weight: 400;
  background: linear-gradient(transparent 80%, var(--vip-yellow) 80% 95%, transparent 95%);
}
.template-3:not(.admin-page) .page-hero p,
.template-3:not(.admin-page) .page-hero .breadcrumbs,
.template-3:not(.admin-page) .subcategory-inline { color: var(--vip-muted); }
.template-3:not(.admin-page) .page-hero .breadcrumbs a,
.template-3:not(.admin-page) .subcategory-inline a { color: var(--green); }
.template-3:not(.admin-page) .location-filter,
.template-3:not(.admin-page) .chip,
.template-3:not(.admin-page) .pagination a {
  border-color: var(--vip-line);
  border-radius: 5px;
  box-shadow: none;
}

.template-3:not(.admin-page) .detail-top {
  padding-top: 32px;
  background: var(--vip-cream);
  border-color: var(--vip-line);
}
.template-3:not(.admin-page) .detail-grid h1 {
  color: var(--vip-charcoal);
  font-weight: 500;
  background: none;
}
.template-3:not(.admin-page) .company-name-highlight {
  padding: 0 .035em;
  background: linear-gradient(transparent 82%, var(--vip-yellow) 82% 96%, transparent 96%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.template-3:not(.admin-page) .detail-screen {
  border-color: #fff;
  border-radius: 7px;
  box-shadow: var(--vip-shadow);
}
.template-3:not(.admin-page) .prose,
.template-3:not(.admin-page) .contact-card {
  border-color: var(--vip-line);
  border-radius: 7px;
  box-shadow: var(--vip-shadow);
}
.template-3:not(.admin-page) .contact-card:hover { border-color: var(--vip-line); }
.template-3:not(.admin-page) .prose p { color: #696865; }

/* Panel wizytówki zgodny z panelem Enees portal. Kolor aktywny pozostaje
   powiązany z ustawieniem kolorystycznym konkretnej instalacji katalogu. */
.template-3:not(.admin-page) .company-sidebar {
  --portal-blue: var(--green);
  --portal-ink: #233856;
  --portal-muted: #62738a;
  --portal-line: #dce3ec;
  gap: 16px;
  color: var(--portal-ink);
  font-family: "Open Sans", var(--font-ui);
  font-size: 14px;
  line-height: 1.5;
}
.template-3:not(.admin-page) .company-sidebar .contact-card {
  padding: 22px;
  border-color: var(--portal-line);
  border-radius: 7px;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: 0 6px 22px rgba(35,56,86,.06);
}
.template-3:not(.admin-page) .company-sidebar .contact-card:hover { border-color: var(--portal-line); }
.template-3:not(.admin-page) .company-sidebar .additional-info-card { background: #f8fafc; }
.template-3:not(.admin-page) .company-sidebar .contact-card h2 {
  margin: 0 0 14px;
  color: var(--portal-ink);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.13;
}
.template-3:not(.admin-page) .company-sidebar .contact-card dt {
  margin-top: 9px;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.65;
}
.template-3:not(.admin-page) .company-sidebar .contact-card dt:first-child { margin-top: 0; }
.template-3:not(.admin-page) .company-sidebar .contact-card dd,
.template-3:not(.admin-page) .company-sidebar > .contact-card:first-child dd,
.template-3:not(.admin-page) .company-sidebar .additional-info-card dd {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.65;
}
.template-3:not(.admin-page) .company-sidebar .contact-card .hours-row dt {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.65;
}
.template-3:not(.admin-page) .company-sidebar .contact-card .hours-row dd {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.65;
}
.template-3:not(.admin-page) .company-sidebar .contact-reveal,
.template-3:not(.admin-page) .company-sidebar .contact-website {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  padding: 10px 12px;
  border: 1px solid #cbd3dc;
  border-radius: 5px;
  color: #303940;
  background: #f6f7f8;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  box-sizing: border-box;
}
.template-3:not(.admin-page) .company-sidebar .contact-reveal:hover,
.template-3:not(.admin-page) .company-sidebar .contact-website:hover {
  border-color: var(--portal-blue);
  color: var(--portal-blue);
}
.template-3:not(.admin-page) .company-sidebar .contact-reveal small {
  padding: 0;
  color: inherit;
  background: transparent;
  font-size: 10px;
}
.template-3:not(.admin-page) .company-sidebar .copy-address {
  border-radius: 5px;
  color: #313534;
  font-size: 10px;
  font-weight: 600;
}
.template-3:not(.admin-page) .company-social-card .social-links {
  margin: 0;
  padding: 0;
  border: 0;
}
.template-3:not(.admin-page) .company-social-card .social-links a {
  margin: 0 7px 7px 0;
  padding: 7px 9px;
  border: 1px solid #e0e4e8;
  border-radius: 4px;
  color: #56616c;
  background: #eef0f2;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
}
.template-3:not(.admin-page) .company-sidebar .hours-current,
.template-3:not(.admin-page) .company-sidebar .hours-current span { font-size: 13px; }
.template-3:not(.admin-page) .company-sidebar .review-profile-link { border-radius: 5px; }

.template-3:not(.admin-page) .offer-hero {
  padding: 78px 0 86px;
  color: var(--vip-charcoal);
  background: var(--vip-cream);
  border-color: var(--vip-line);
}
.template-3:not(.admin-page) .offer-hero::after {
  border: 0;
  background: rgba(255,255,255,.48);
}
.template-3:not(.admin-page) .offer-hero-copy h1 {
  color: var(--vip-charcoal);
  font-weight: 400;
}
.template-3:not(.admin-page) .offer-hero-copy h1 em {
  width: fit-content;
  color: var(--vip-charcoal);
  font-weight: 750;
  background: linear-gradient(transparent 78%, var(--vip-yellow) 78% 95%, transparent 95%);
}
.template-3:not(.admin-page) .offer-hero-copy > p { color: var(--vip-muted); }
.template-3:not(.admin-page) .offer-hero-copy > p a { color: var(--vip-coral-dark); }
.template-3:not(.admin-page) .offer-hero-card {
  border-color: var(--vip-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: var(--vip-shadow);
}
.template-3:not(.admin-page) .offer-badge {
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  box-shadow: none;
}
.template-3:not(.admin-page) .offer-panel-text { color: var(--vip-muted); }
.template-3:not(.admin-page) .offer-panel-text strong { color: var(--vip-charcoal); }
.template-3:not(.admin-page) .offer-content,
.template-3:not(.admin-page) .legal-page > article,
.template-3:not(.admin-page) .public-company-form {
  border-color: var(--vip-line);
  border-radius: 7px;
  box-shadow: var(--vip-shadow);
}
.template-3:not(.admin-page) .public-submission-section { background: var(--vip-cream); }
.template-3:not(.admin-page) .public-company-form { padding: 28px; background: #fff; }
.template-3:not(.admin-page) .public-company-form fieldset { border-color: var(--vip-line); border-radius: 6px; }
.template-3:not(.admin-page) .public-submit-button { background: var(--vip-coral); }
.template-3:not(.admin-page) .public-submit-button:hover { background: var(--vip-coral-dark); }
.template-3:not(.admin-page) .legal-page h1 {
  width: fit-content;
  font-weight: 500;
  background: linear-gradient(transparent 80%, var(--vip-yellow) 80% 95%, transparent 95%);
}

.template-3:not(.admin-page) footer {
  margin-top: 0;
  padding-top: 62px;
  border-radius: 0;
  color: #e7e8e7;
  background: #252827;
  box-shadow: none;
}
.template-3:not(.admin-page) .footer-grid p { color: #a9aeab; }
.template-3:not(.admin-page) .footer-grid > div:last-child a { color: #d9ddda; }
.template-3:not(.admin-page) .footer-grid > div:last-child a:hover { color: #fff; }
.template-3:not(.admin-page) .fine { color: #858b87; }

@media (max-width: 900px) {
  .template-3:not(.admin-page) .hero { min-height: auto; }
  .template-3:not(.admin-page) .hero-grid { grid-template-columns: 1fr; gap: 42px; }
  .template-3:not(.admin-page) .hero-visual { width: min(620px,100%); }
  .template-3:not(.admin-page) .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .template-3:not(.admin-page) .site-header { padding-top: 0; }
  .template-3:not(.admin-page) .nav { height: 70px; padding: 0 10px; border-radius: 0; border-width: 0 0 1px; }
  .template-3:not(.admin-page) .nav nav .nav-add-company { padding: 10px 11px; }
  .template-3:not(.admin-page) .hero { padding: 58px 0 68px; }
  .template-3:not(.admin-page) .hero h1 { font-size: clamp(39px,12vw,50px); }
  .template-3:not(.admin-page) .hero-grid { gap: 34px; }
  .template-3:not(.admin-page) .hero-visual img { border-radius: 5px; }
  .template-3:not(.admin-page) .stats { gap: 12px 20px; }
  .template-3:not(.admin-page) .category-grid { grid-template-columns: 1fr; }
  .template-3:not(.admin-page) .category-card,
  .template-3:not(.admin-page) .category-card:nth-child(3n),
  .template-3:not(.admin-page) .category-card:nth-last-child(-n+3) { border: 1px solid var(--vip-line) !important; }
  .template-3:not(.admin-page) .section { padding: 62px 0; }
  .template-3:not(.admin-page) .public-company-form { padding: 20px 14px; }
}

/* Enees modern: spójny odstęp 50 px między głównymi sekcjami publicznymi. */
.template-3:not(.admin-page) .hero {
  min-height: 0;
  padding-top: 50px;
  padding-bottom: 50px;
}
.template-3:not(.admin-page) #kategorie {
  padding-top: 50px;
  padding-bottom: 50px;
}
.template-3:not(.admin-page) #kategorie .catalog-description { margin-top: 50px; }
.template-3:not(.admin-page) .latest {
  padding-top: 41px;
  padding-bottom: 49px;
}
.template-3:not(.admin-page) .page-hero {
  padding-top: 38px;
  padding-bottom: 49px;
}
.template-3:not(.admin-page) main > .page-hero + .section {
  padding-top: 50px;
  padding-bottom: 50px;
}
.template-3:not(.admin-page) .detail-top { padding-bottom: 49px; }
.template-3:not(.admin-page) .section.info-layout {
  padding-top: 50px;
  padding-bottom: 50px;
}
.template-3:not(.admin-page) footer { padding-top: 50px; }
