

/* Start:/bitrix/templates/piastrella/styles.css?178116887726078*/
 :root {
   --green: #0d522c;
   --dark-green: #0a3e21;
   --light-green: #1a7a4a;
   --accent-orange: #e85d26;
   --white: #fff;
   --light-gray: #f9f9f9;
   --dark: #505050;
   --border: #e0e0e0;
   --text: #333;
 }
 * { margin: 0; padding: 0; box-sizing: border-box; }
 body { font-family: 'PT Sans', sans-serif; color: var(--text); overflow-x: hidden; background-color: var(--white); }

 /* CONTAINER Helper */
 .container {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 24px;
   width: 100%;
 }

 /* ── TOP BAR ── */
 .top-bar { background: #fff; border-bottom: 1px solid var(--border); padding: 10px 0; font-size: 13px; }
 .top-bar .tb-inner {
   max-width: 1200px; margin: 0 auto; padding: 0 24px;
   display: flex; justify-content: space-between; align-items: center;
 }
 .top-bar .location { display: flex; align-items: center; gap: 6px; color: #555; }
 .top-bar .phone { font-weight: 700; color: var(--dark); font-size: 15px; letter-spacing: .5px; }
 .top-bar .email a { color: #555; text-decoration: none; }
 .top-bar .email a:hover { color: var(--green); }

 /* ── HEADER ── */
 header {
   background: var(--dark-green);
   position: sticky; top: 0; z-index: 200;
   box-shadow: 0 2px 12px rgba(0,0,0,.15);
 }
 .header-top {
   display: flex; justify-content: flex-end; align-items: center;
   padding: 8px 24px; gap: 16px;
   border-bottom: 1px solid rgba(255,255,255,.1);
   max-width: 100%;
 }
 .header-top a { color: rgba(255,255,255,.85); text-decoration: none; display: flex; align-items: center; gap: 4px; font-size: 13px; }
 .btn-cabinet {
   border: 1px solid rgba(255,255,255,.6); border-radius: 4px;
   padding: 5px 16px; font-size: 12px; font-weight: 600;
   color: #fff !important; font-family: 'Montserrat', sans-serif;
   transition: background .2s;
 }
 .btn-cabinet:hover { background: rgba(255,255,255,.15) !important; }
 .icon-badge { position: relative; display: flex; }
 .badge {
   position: absolute; top: -6px; right: -8px;
   background: var(--accent-orange); color: #fff;
   font-size: 9px; font-weight: 700; border-radius: 50%;
   width: 16px; height: 16px; display: flex; align-items: center; justify-content: center;
 }

 .header-nav {
   max-width: 1200px; margin: 0 auto; padding: 0 24px;
   display: grid; grid-template-columns: 1fr auto 1fr;
   align-items: center; height: 64px;
 }
 .nav-left { display: flex; align-items: center; gap: 0; }
 .nav-right { display: flex; align-items: center; gap: 0; justify-content: flex-end; }
 .nav-left a, .nav-right a {
   color: rgba(255,255,255,.9); text-decoration: none;
   font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600;
   text-transform: uppercase; letter-spacing: .5px;
   padding: 0 14px; height: 64px;
   display: flex; align-items: center;
   border-bottom: 3px solid transparent;
   transition: all .2s; white-space: nowrap;
 }
 .nav-left a:hover, .nav-right a:hover { color: #fff; border-bottom-color: rgba(255,255,255,.5); }

 /* Universal Photo-Placeholder / Image formatting styles */
 .header-logo-img {
   height: 40px;
   width: auto;
   object-fit: contain;
   display: block;
 }
 .slide-logo-img {
   height: 45px;
   width: auto;
   object-fit: contain;
   display: block;
 }
 .partner-logo-img {
   height: 45px;
   width: auto;
   object-fit: contain;
   display: block;
 }
 .footer-logo-img {
   height: 40px;
   width: auto;
   object-fit: contain;
   display: block;
 }
 .brand-item-img {
   max-width: 100%;
   max-height: 50px;
   object-fit: contain;
   display: block;
 }
 .photo-card-img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: 0;
 }

 .header-logo {
   display: flex;
   align-items: center;
   justify-content: center;
   text-decoration: none;
 }

  /* ── NAV DROPDOWN (desktop) ── */
  .nav-dropdown {
    position: relative;
    display: flex;
    align-items: center;
    height: 64px;
  }
  .nav-dropdown-toggle {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    cursor: pointer;
  }
  .nav-dropdown-arrow {
    transition: transform .25s;
    flex-shrink: 0;
    opacity: .8;
  }
  .nav-dropdown:hover .nav-dropdown-arrow {
    transform: rotate(180deg);
  }
  .nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 180px;
    background: var(--dark-green);
    border-top: 2px solid var(--accent-orange);
    border-radius: 0 0 6px 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease;
    z-index: 300;
  }
  .nav-dropdown:hover .nav-dropdown-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .nav-dropdown-menu a {
    display: block !important;
    height: auto !important;
    padding: 12px 18px !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    border-bottom-color: rgba(255,255,255,.08) !important;
    border-bottom-width: 1px !important;
    font-size: 11px !important;
    white-space: nowrap;
  }
  .nav-dropdown-menu a:last-child {
    border-bottom: none !important;
  }
  .nav-dropdown-menu a:hover {
    background: rgba(255,255,255,.1);
    color: #fff !important;
    border-bottom-color: rgba(255,255,255,.08) !important;
  }

 .burger-btn {
   background: none; border: none; cursor: pointer;
   display: flex; flex-direction: column; gap: 5px; padding: 4px;
   margin-left: 14px;
 }
 .burger-btn span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: all .3s; }

 /* burger menu */
 .burger-menu {
   position: fixed; top: 0; right: -320px; width: 300px; height: 100vh;
   background: var(--dark-green); z-index: 999;
   transition: right .35s cubic-bezier(.4,0,.2,1);
   padding: 24px; overflow-y: auto;
   box-shadow: -4px 0 20px rgba(0,0,0,.3);
 }
 .burger-menu.open { right: 0; }
 .burger-close {
   display: flex; justify-content: flex-end; margin-bottom: 30px;
 }
 .burger-close button {
   background: none; border: none; color: #fff; font-size: 28px; cursor: pointer;
 }
  .burger-menu nav a {
    display: block; color: rgba(255,255,255,.85); text-decoration: none;
    font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .5px;
    padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1);
  }

  /* ── BURGER ACCORDION (mobile) ── */
  .burger-accordion {
    border-bottom: 1px solid rgba(255,255,255,.1);
  }
  .burger-accordion-toggle {
    background: none; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    width: 100%;
    color: rgba(255,255,255,.85);
    font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .5px;
    padding: 14px 0;
    gap: 8px;
  }
  .burger-accordion-arrow {
    transition: transform .25s ease;
    flex-shrink: 0;
    opacity: .8;
  }
  .burger-accordion-toggle[aria-expanded="true"] .burger-accordion-arrow {
    transform: rotate(180deg);
  }
  .burger-accordion-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
  }
  .burger-accordion-body.open {
    max-height: 200px;
  }
  .burger-accordion-body a {
    display: block;
    color: rgba(255,255,255,.7) !important;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .5px;
    padding: 10px 0 10px 16px;
    border-bottom: 1px solid rgba(255,255,255,.06);
    transition: color .2s;
  }
  .burger-accordion-body a:hover {
    color: #fff !important;
  }
  .burger-accordion-body a:last-child {
    border-bottom: none;
  }
 .burger-overlay {
   position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 998;
   opacity: 0; pointer-events: none; transition: opacity .35s;
 }
 .burger-overlay.open { opacity: 1; pointer-events: all; }

 /* ── HERO SLIDER ── */
 .hero { position: relative; overflow: hidden; height: 520px; background: #1a1a1a; margin-top: 24px; }
 .slider-wrap { display: flex; height: 100%; transition: transform .7s cubic-bezier(.4,0,.2,1); }
 .slide { min-width: 100%; height: 100%; position: relative; overflow: hidden; }
 .slide-bg {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: 1;
 }
 .slide-overlay {
   position: absolute;
   inset: 0;
   background: rgba(0,0,0,.3);
   z-index: 2;
 }

 .slide-content {
   position: absolute;
   bottom: 80px;
   left: 80px;
   color: #fff;
   z-index: 3;
 }

 .slide-1 .slide-bg { background: url("/bitrix/templates/piastrella/./hero-slide.webp"); background-size: cover; background-position: center;}
 .slide-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.3); }
 .tile-pattern {
   position: absolute; inset: 0; opacity: .05;
   background-image:
     repeating-linear-gradient(0deg,#fff 0,#fff 1px,transparent 1px,transparent 40px),
     repeating-linear-gradient(90deg,#fff 0,#fff 1px,transparent 1px,transparent 40px);
 }
 .slide-logo-badge {
   position: absolute; top: 120px; left: 80px;
   z-index: 10;
 }

 /* ── AWARD BANNER (WITH ANIMATED COLLAPSE/EXPAND) ── */
 .slide-award {
   position: absolute; top: 120px; right: 0;
   width: 400px;
   background: rgba(10, 62, 33, 0.75);
   backdrop-filter: blur(8px);
   -webkit-backdrop-filter: blur(8px);
   border-left: 3px solid #ffca28;
   padding: 10px 10px 10px 20px;
   display: flex; align-items: center; gap: 18px;
   color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 700;
   font-size: 16px; letter-spacing: .5px;
   z-index: 10;
   overflow: hidden;
   white-space: nowrap;
   transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1),
               padding 0.6s cubic-bezier(0.4, 0, 0.2, 1),
               gap 0.6s cubic-bezier(0.4, 0, 0.2, 1),
               background-color 0.3s ease;
 }
 .award-icon {
   width: 50px; height: 50px; flex-shrink: 0;
   border-radius: 50%;
   background: rgba(255,255,255,.15);
   display: flex; align-items: center; justify-content: center;
 }
 .award-icon img { width: 100%; height: 100%; }

 .award-text {
   transition: opacity 0.4s ease, transform 0.4s ease;
   opacity: 1;
 }

 /* Collapsed State Styles */
 .slide-award.collapsed {
   width: 90px;
   padding: 10px 15px;
   gap: 0;
 }
 .slide-award.collapsed .award-text {
   opacity: 0;
   transform: translateX(20px);
   pointer-events: none;
 }

 /* Expand Back on Hover (only when collapsed) */
 .slide-award.collapsed:hover {
   width: 400px;
   padding: 10px 10px 10px 20px;
   gap: 18px;
   background: rgba(10, 62, 33, 0.9);
 }
 .slide-award.collapsed:hover .award-text {
   opacity: 1;
   transform: translateX(0);
   pointer-events: auto;
 }

 .slide-content { position: absolute; bottom: 80px; left: 80px; color: #fff; }
 .slide-title { font-family: 'Montserrat', sans-serif; font-size: 52px; font-weight: 800; line-height: 1.1; margin-bottom: 8px; text-shadow: 0 2px 20px rgba(0,0,0,.5); }
 .slide-subtitle { font-size: 16px; opacity: .85; margin-bottom: 28px; }
 .btn-slide {
   display: inline-flex; align-items: center; gap: 10px;
   background: var(--green); color: #fff;
   padding: 14px 28px; border-radius: 4px;
   text-decoration: none; font-weight: 700; font-size: 14px;
   font-family: 'Montserrat', sans-serif; letter-spacing: .5px;
   transition: background .2s;
 }
 .btn-slide:hover { background: var(--dark-green); }

 /* ── ABOUT ── */
 .about-section { background: #fff; padding: 80px 0; }
 .about-grid { display: grid; grid-template-columns: 1.2fr 1.8fr; gap: 40px; align-items: flex-start; }

 .about-label {
   font-family: 'Montserrat', sans-serif;
   font-size: 20px;
   font-weight: 800;
   color: var(--green);
   letter-spacing: 1.5px;
   margin-bottom: 16px;
   display: block;
   text-align: left;
   width: 100%;
   text-transform: uppercase;
 }
 .about-label-title {
   display: block;
   font-size: 42px;
   font-weight: 900;
   letter-spacing: 0.5px;
   margin-top: 6px;
   text-transform: uppercase;
   line-height: 1.1;
 }

 .about-text-block {
   font-size: 16px; line-height: 1.7; color: #555;
   background: transparent; border: none; padding: 0;
   text-align: left;
   margin-top: 24px;
 }

 /* Balanced stats grid and structured cards */
 .stats-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 20px;
   height: auto;
   border: none;
   width: 100%;
 }
 .stat-item {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   justify-content: space-between;
   padding: 20px;
   background: #fafafa;
   border-top: 3px solid var(--green);
   border-radius: 6px;
   min-height: 146px;
   text-align: left;
   transition: all 0.3s ease;
 }
 .stat-item:hover {
   transform: translateY(-3px);
   border-top-color: var(--accent-orange);
   box-shadow: 0 8px 20px rgba(0,0,0,0.06);
   background: #fdfdfd;
 }
  .stat-number {
    font-family: 'Montserrat', sans-serif;
    font-size: 46px;
    font-weight: 900;
    color: var(--dark-green);
    line-height: 1;
    margin-bottom: 8px;
  }
  .stat-number[data-prefix]::before {
    content: attr(data-prefix);
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: rgba(10, 62, 33, 0.6);
    margin-bottom: 6px;
  }
  .stat-number sup { font-size: 20px; }
 .stat-label {
   font-size: 14px;
   color: #666;
   line-height: 1.4;
   font-weight: 600;
   margin-top: auto;
 }

 .brands-section { padding: 80px 0; background: var(--white); }
 .brands-header {
   text-align: center; padding-bottom: 36px;
   font-family: 'Montserrat', sans-serif; font-size: 22px; font-weight: 900;
   color: var(--dark-green); line-height: 1.4;
   max-width: 800px; margin: 0 auto;
 }
 .brands-strip-wrapper {
   border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
   overflow: hidden; cursor: grab; user-select: none;
   background: #fafafa;
   padding: 16px 0;
 }
 .brands-strip-wrapper:active { cursor: grabbing; }
 .brands-track { display: flex; align-items: center; gap: 0; }
 .brand-item {
   flex: 0 0 240px; height: 90px;
   display: flex; align-items: center; justify-content: center;
   border-right: 1px solid #eee; overflow: hidden;
   padding: 0 24px;
 }

 /* ── FEATURES ── */
 .features-section { background: var(--dark-green); padding: 80px 0; }
 .features-inner { display: block; width: 100%; }
 .features-title { font-family: 'Montserrat', sans-serif; font-size: 32px; font-weight: 900; color: #fff; margin-bottom: 8px; }
 .features-subtitle { color: rgba(255,255,255,.7); font-size: 15px; margin-bottom: 48px; }

 .features-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 40px 30px;
 }
 .feature-item {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 20px;
 }
 .feature-icon {
   width: 84px; height: 84px; flex-shrink: 0;
   border: 3px solid rgba(255,255,255,.3); border-radius: 8px;
   display: flex; align-items: center; justify-content: center; color: #fff;
   background: rgba(255,255,255,.04);
   transition: all 0.3s ease;
 }
 .feature-item:hover .feature-icon {
   border-color: var(--accent-orange);
   background: rgba(255,255,255,.1);
 }
 .feature-icon svg { width: 42px; height: 42px; }
 .feature-name { color: #fff; font-weight: 700; font-size: 18px; font-family: 'Montserrat', sans-serif; line-height: 1.3; }

 /* ── PARTNER ── */
 .partner-section { padding: 80px 0; background: #fff; }
 .partner-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; align-items: flex-start; }

 .partner-title-row {
   font-family: 'Montserrat', sans-serif; font-size: 20px; font-weight: 900;
   color: var(--dark); text-transform: uppercase; letter-spacing: 1px;
   margin-bottom: 80px;
   display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap;
   width: 80%;
 }
 .partner-btn-wrap { display: flex; align-items: center; gap: 0; justify-content: flex-end; flex-grow: 1; margin-left: 24px; }
 .btn-partner-pill {
   background: var(--accent-orange); color: #fff;
   border: none; cursor: pointer;
   border-radius: 50px;
   font-size: 12px; font-weight: 800; font-family: 'Montserrat', sans-serif;
   letter-spacing: .5px; text-decoration: none; display: flex;
   align-items: center; justify-content: center; text-align: center;
   padding: 10px 24px;
   transition: background .2s; flex-shrink: 0;
 }
 .btn-partner-pill:hover { background: #c94c1a; }
 .partner-line-dot { display: flex; align-items: center; flex-grow: 1; margin-right: 24px; }
 .partner-line { flex-grow: 1; height: 2px; background: var(--accent-orange); }
 .partner-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent-orange); flex-shrink: 0; }

 .partner-logo-box {
   margin-bottom: 24px;
 }
 .partner-text-box {
   font-size: 18px; line-height: 1.75; color: #555;
 }
 .partner-right { position: relative; display: flex; flex-direction: column; gap: 20px; }

 /* ── NEW DETAILED INTERACTIVE GEOGRAPHIC MAP ── */
 .map-wrap { width: 100%; position: relative; display: flex; flex-direction: column; gap: 12px; }

 /* City Quick Tabs Control */
 .map-tabs {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   background: #f4f8f6;
   padding: 6px;
   border-radius: 8px;
   border: 1px solid var(--border);
 }
 .map-tab-btn {
   flex: 1 1 calc(33.333% - 6px);
   background: #fff;
   border: 1px solid rgba(0,0,0,0.06);
   padding: 8px 12px;
   font-family: 'Montserrat', sans-serif;
   font-size: 11px;
   font-weight: 700;
   color: var(--dark-green);
   text-align: center;
   border-radius: 6px;
   cursor: pointer;
   transition: all 0.25s ease;
   box-shadow: 0 1px 3px rgba(0,0,0,0.02);
 }
 .map-tab-btn:hover {
   background: var(--green);
   color: #fff;
   border-color: var(--green);
 }
 .map-tab-btn.active {
   background: var(--accent-orange);
   color: #fff;
   border-color: var(--accent-orange);
 }

 .map-container-leaflet {
   width: 100%;
   height: 400px;
   position: relative;
   background: #f4f8f6;
   border: 1px solid var(--border);
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
 }
 #map {
   width: 100%;
   height: 100%;
   z-index: 5;
 }

 .leaflet-control-attribution,
 .leaflet-control {
   display: none !important;
 }

 .custom-map-marker {
   display: flex;
   align-items: center;
   justify-content: center;
 }
 .marker-core {
   width: 14px;
   height: 14px;
   background: var(--green);
   border: 2px solid #fff;
   border-radius: 50%;
   box-shadow: 0 2px 6px rgba(0,0,0,0.3);
   position: relative;
   z-index: 2;
   transition: background-color 0.3s, transform 0.3s;
 }
 .marker-pulse {
   position: absolute;
   width: 32px;
   height: 32px;
   border-radius: 50%;
   border: 2px solid var(--accent-orange);
   opacity: 0;
   z-index: 1;
   animation: markerPulseAnimate 2s infinite ease-out;
   pointer-events: none;
 }
 .custom-map-marker.active .marker-core {
   background: var(--accent-orange);
   transform: scale(1.2);
 }
 .custom-map-marker.active .marker-pulse {
   animation-duration: 1.2s;
 }

 @keyframes markerPulseAnimate {
   0% { transform: scale(0.3); opacity: 0.9; }
   100% { transform: scale(1.6); opacity: 0; }
 }

 /* Map path animation for active logistics line */
 .leaflet-interactive.logistics-line-active {
   stroke-dasharray: 8, 8;
   animation: routeFlow 2.5s infinite linear;
 }
 @keyframes routeFlow {
   to {
     stroke-dashoffset: -40;
   }
 }

 /* Premium Info Panel Dashboard */
 .city-info-panel {
   background: var(--dark-green); color: #fff; border-radius: 10px;
   font-family: 'Montserrat', sans-serif;
   box-shadow: 0 8px 24px rgba(10, 62, 33, 0.15);
   padding: 24px;
   border-left: 4px solid var(--accent-orange);
   opacity: 0; transform: translateY(10px);
   transition: opacity 0.3s ease, transform 0.3s ease;
 }
 .city-info-panel.visible {
   opacity: 1; transform: translateY(0);
 }
 .city-info-header {
   display: flex; justify-content: space-between; align-items: center;
   border-bottom: 1px solid rgba(255,255,255,0.1);
   padding-bottom: 14px; margin-bottom: 16px;
 }
 .city-info-name { font-size: 20px; font-weight: 900; color: #ffca28; letter-spacing: 0.5px; }
 .city-info-badge {
   background: rgba(255,255,255,0.1);
   border: 1px solid rgba(255,255,255,0.2);
   padding: 4px 10px; border-radius: 30px;
   font-size: 9px; font-weight: 700; text-transform: uppercase;
   letter-spacing: 0.5px;
 }
 .city-info-grid {
   display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
 }
 .city-info-item { display: flex; flex-direction: column; gap: 4px; }
 .info-label { font-size: 10px; text-transform: uppercase; color: rgba(255,255,255,0.5); letter-spacing: 0.5px; font-weight: 700; }
 .info-value { font-size: 13px; font-weight: 600; line-height: 1.45; }
 .city-info-grid .city-info-item:nth-child(4) { grid-column: span 2; }

 /* ── CAROUSEL STRUCTURAL STYLES ── */
 .catalog-section { padding: 80px 0; background: var(--light-gray); }
 .news-section { padding: 80px 0; background: #fff; }
 .section-title {
   font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: 800;
   color: var(--dark); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 36px;
 }

 .carousel-viewport {
   width: 100%;
   overflow: hidden;
   position: relative;
   cursor: grab;
   padding: 10px 0;
 }
 .carousel-viewport:active {
   cursor: grabbing;
 }
 .carousel-track {
   display: flex;
   gap: 24px;
   will-change: transform;
   transition: transform 0.3s ease;
 }

 /* Redesigned Premium Cards */
 .photo-card {
   flex: 0 0 280px;
   height: 360px;
   background-color: #eaeaea;
   border-radius: 8px;
   position: relative;
   overflow: hidden;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   padding: 24px;
   color: #fff;
   text-decoration: none;
   box-shadow: 0 4px 15px rgba(0,0,0,0.06);
   transition: transform 0.3s ease, box-shadow 0.3s ease;
 }
 .photo-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 8px 24px rgba(0,0,0,0.12);
 }
 .photo-card::before {
   content: '';
   position: absolute;
   inset: 0;
   background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.2) 60%, transparent 100%);
   z-index: 1;
 }
 .photo-card-content {
   position: relative;
   z-index: 2;
 }
 .photo-card-tag {
   font-family: 'Montserrat', sans-serif;
   font-size: 10px;
   font-weight: 800;
   text-transform: uppercase;
   background: var(--accent-orange);
   color: #fff;
   padding: 4px 8px;
   border-radius: 3px;
   width: fit-content;
   margin-bottom: 12px;
   letter-spacing: .5px;
 }
 .photo-card-title {
   font-family: 'Montserrat', sans-serif;
   font-size: 18px;
   font-weight: 700;
   line-height: 1.3;
   margin-bottom: 6px;
 }
 .photo-card-desc {
   font-size: 12px;
   opacity: 0.8;
   line-height: 1.4;
 }

 /* Indicator layout and progress bar */
 .indicator-line-wrap {
   display: flex;
   align-items: center;
   justify-content: center;
   margin-top: 36px;
   gap: 16px;
 }
 .indicator-arrow {
   font-size: 16px;
   color: var(--dark-green);
   font-weight: 700;
   cursor: pointer;
   user-select: none;
   transition: color 0.2s, transform 0.2s;
   padding: 8px 12px;
   border-radius: 50%;
   background: transparent;
   display: flex;
   align-items: center;
   justify-content: center;
 }
 .indicator-arrow:hover {
   color: var(--accent-orange);
   transform: scale(1.1);
 }
 .indicator-line {
   width: 160px;
   height: 3px;
   background: var(--border);
   border-radius: 3px;
   position: relative;
   overflow: hidden;
 }
 .indicator-progress-bar {
   position: absolute;
   height: 100%;
   background: var(--accent-orange);
   left: 0;
   top: 0;
   width: 30%;
   transition: left 0.1s ease, width 0.1s ease;
 }

 /* ── FOOTER ── */
 footer { background: var(--dark); color: rgba(255,255,255,.7); padding: 60px 0 30px; }
 .footer-top { display: flex; align-items: center; gap: 12px; margin-bottom: 36px; }
 .footer-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 20px; margin-bottom: 40px; }
 .footer-col h4 { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
 .footer-col a { display: block; color: rgba(255,255,255,.5); text-decoration: none; font-size: 12px; margin-bottom: 6px; line-height: 1.4; transition: color .2s; }
 .footer-col a:hover { color: var(--light-green); }
 .footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 20px; font-size: 12px; color: rgba(255,255,255,.3); text-align: center; }
 .footer-bottom p { text-align: justify; }
 @media (max-width: 900px) {
   .nav-left, .nav-right { display: none; }
   .about-grid { grid-template-columns: 1fr; }
   .stats-grid { grid-template-columns: repeat(2, 1fr); }
   .features-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }
   .partner-grid { grid-template-columns: 1fr; }
   .footer-grid { grid-template-columns: repeat(3,1fr); }

   /* Adjustments for award floating banner on tablet/mobile screens */
   .slide-award {
     top: 20px;
     width: 320px;
   }
   .slide-award.collapsed {
     width: 74px;
   }
   .slide-award.collapsed:hover {
     width: 320px;
   }

   .map-tab-btn { flex: 1 1 calc(50% - 6px); }
 }
 @media (max-width: 600px) {
   .stats-grid { grid-template-columns: 1fr; }
   .features-grid { grid-template-columns: 1fr; }
   .partner-title-row {
     flex-direction: column;
     align-items: flex-start;
     gap: 16px;
   }
   .partner-btn-wrap {
     width: 100%;
     margin-left: 0;
   }
   .partner-line-dot {
     display: none;
   }
   .slide-award {
     top: 15px;
     width: 290px;
     font-size: 14px;
   }
   .slide-award.collapsed {
     width: 70px;
   }
   .slide-award.collapsed:hover {
     width: 290px;
   }
 }
/* End */
/* /bitrix/templates/piastrella/styles.css?178116887726078 */
