/* ==========================================================================
   LandService — сторінка тарифів (/pricing)
   Токени дизайну зав'язані на реальний бренд сайту, не вигадані:
   navy #234161 і #273043 (frontend/assets/frontend/css/styles.css,
   navbar), м'який accent #b2954a (вже використовується на сайті як
   акцентний колір), яскравий gold сайту #F6CD00 (крапково, для бейджа
   знижки/CTA популярного тарифу), зелений #00b200 (чекмарки/успіх).
   Шрифти підключаються окремо в pricing.php через registerCssFile
   (Fraunces / Inter / IBM Plex Mono, Google Fonts).
   ========================================================================== */

:root{
  --ls-navy-900:#234161;
  --ls-navy-800:#273043;
  --ls-navy-500:#3f6c9c;
  --ls-navy-100:#e9eff5;
  --ls-navy-50:#f3f6fa;
  --ls-accent:#b2954a;
  --ls-accent-dark:#96793a;
  --ls-accent-100:#f2ead9;
  --ls-accent-bright:#F6CD00;
  --ls-success:#00b200;
  --ls-parchment:#faf8f3;
  --ls-ink:#1c2733;
  --ls-ink-60:rgba(28,39,51,.62);
  --ls-ink-40:rgba(28,39,51,.4);
  --ls-line:#e4dcc8;
  --ls-radius:14px;
  --ls-shadow:0 1px 2px rgba(28,39,51,.06), 0 12px 28px -12px rgba(35,65,97,.18);
  --ls-shadow-lift:0 2px 4px rgba(28,39,51,.08), 0 24px 48px -16px rgba(35,65,97,.28);
}

.pricing-page{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ls-ink);
  background:var(--ls-parchment);
}
.pricing-page .font-display{font-family:'Fraunces',Georgia,serif;}
.pricing-page .font-mono{font-family:'IBM Plex Mono',SFMono-Regular,Menlo,monospace;}
.pricing-page ::selection{background:var(--ls-accent-100); color:var(--ls-navy-900);}

/* ---------- Hero ---------- */
.pricing-page .hero{
  position:relative; overflow:hidden;
  background:var(--ls-navy-900);
  padding:4.5rem 0 3rem;
  margin:0 -15px; /* bleed out of Yii layout's .container padding if view is wrapped in one */
  padding-left:15px; padding-right:15px;
}
.pricing-page .hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0, rgba(255,255,255,.05) 1px, transparent 1px, transparent 64px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0, rgba(255,255,255,.05) 1px, transparent 1px, transparent 64px);
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 20%, #000 40%, transparent 85%);
          mask-image:radial-gradient(ellipse 90% 80% at 50% 20%, #000 40%, transparent 85%);
  pointer-events:none;
}
.pricing-page .hero .eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:.76rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ls-accent-bright); display:flex; align-items:center; gap:.55rem;
}
.pricing-page .hero .eyebrow::before{content:""; width:22px; height:1px; background:var(--ls-accent-bright); display:inline-block;}
.pricing-page .hero h1{
  font-family:'Fraunces',serif; font-weight:600; font-size:2.6rem; line-height:1.12;
  color:#fff; margin:.9rem 0 1rem; max-width:15ch;
}
.pricing-page .hero p.lead{color:rgba(255,255,255,.72); font-size:1.05rem; max-width:46ch; margin-bottom:2rem;}
@media (max-width:767px){ .pricing-page .hero h1{font-size:1.9rem; max-width:none;} }

.pricing-page .period-switch{
  display:inline-flex; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  border-radius:999px; padding:4px; gap:2px;
}
.pricing-page .period-switch button{
  border:0; background:transparent; color:rgba(255,255,255,.68); font-size:.88rem; font-weight:600;
  padding:.5rem 1.1rem; border-radius:999px; cursor:pointer;
  transition:background .18s ease, color .18s ease;
  display:flex; align-items:center; gap:.4rem; white-space:nowrap;
}
.pricing-page .period-switch button.active{background:#fff; color:var(--ls-navy-900);}
.pricing-page .period-switch button:not(.active):hover{color:#fff;}

/* ---------- Section shell ---------- */
.pricing-page .section{padding:4rem 0;}
.pricing-page .section-head{margin-bottom:2.4rem; max-width:60ch;}
.pricing-page .section-head .kicker{
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ls-navy-500); font-weight:600;
}
.pricing-page .section-head h2{font-family:'Fraunces',serif; font-weight:600; font-size:1.9rem; color:var(--ls-navy-900); margin:.4rem 0 .5rem;}
.pricing-page .section-head p{color:var(--ls-ink-60); margin:0;}

/* ---------- Pricing cards ---------- */
.pricing-page .plans-wrap{margin-top:-2rem; position:relative; z-index:3;}
.pricing-page .plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem;}
@media (max-width:991px){ .pricing-page .plans-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:575px){
  .pricing-page .plans-grid{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:82%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.5rem;
    margin:-2rem -1rem 0; padding-left:1rem; padding-right:1rem;
  }
  .pricing-page .plans-grid .plan-card{scroll-snap-align:start;}
}

.pricing-page .plan-card{
  background:#fff; border:1px solid var(--ls-line); border-radius:var(--ls-radius);
  padding:1.5rem 1.4rem 1.6rem; box-shadow:var(--ls-shadow); position:relative;
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.pricing-page .plan-card:hover{transform:translateY(-3px); box-shadow:var(--ls-shadow-lift);}
.pricing-page .plan-card.is-popular{border-color:var(--ls-accent); box-shadow:0 0 0 1px var(--ls-accent), var(--ls-shadow-lift);}
.pricing-page .plan-card.is-free{background:var(--ls-navy-50);}

.pricing-page .plan-ribbon{
  position:absolute; top:-11px; left:1.4rem; background:var(--ls-accent); color:#fff;
  font-size:.68rem; font-weight:700; letter-spacing:.03em; padding:.28rem .65rem; border-radius:999px;
  box-shadow:0 4px 10px rgba(178,149,74,.4);
}
.pricing-page .plan-number{position:absolute; top:1.4rem; right:1.4rem; font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--ls-ink-40);}
.pricing-page .plan-icon{margin-bottom:.9rem; color:var(--ls-navy-800);}
.pricing-page .plan-card.is-popular .plan-icon{color:var(--ls-accent-dark);}

.pricing-page .plan-name{font-family:'Fraunces',serif; font-weight:600; font-size:1.18rem; color:var(--ls-navy-900); margin-bottom:.15rem;}
.pricing-page .plan-tagline{font-size:.82rem; color:var(--ls-ink-60); margin-bottom:1.1rem;}

.pricing-page .plan-price-row{display:flex; align-items:baseline; gap:.4rem; flex-wrap:wrap; min-height:2.6rem;}
.pricing-page .plan-price{font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:1.7rem; color:var(--ls-navy-900);}
.pricing-page .plan-price.is-zero{font-family:'Fraunces',serif; font-size:1.25rem;}
.pricing-page .plan-price-unit{font-size:.82rem; color:var(--ls-ink-60);}
.pricing-page .plan-price-old{font-family:'IBM Plex Mono',monospace; font-size:.88rem; color:var(--ls-ink-40); text-decoration:line-through;}
.pricing-page .plan-price-note{font-size:.76rem; color:var(--ls-accent-dark); margin-top:.15rem; min-height:1.1rem;}
.pricing-page .plan-discount-badge{
  font-family:'IBM Plex Mono',monospace; font-size:.68rem; font-weight:700; background:var(--ls-accent-bright);
  color:var(--ls-navy-900); padding:.1rem .4rem; border-radius:999px; align-self:center;
}

.pricing-page .plan-divider{height:1px; background:var(--ls-line); margin:1.1rem 0;}

.pricing-page .plan-highlights{list-style:none; padding:0; margin:0 0 1.4rem; flex:1;}
.pricing-page .plan-highlights li{display:flex; gap:.55rem; align-items:flex-start; font-size:.87rem; color:var(--ls-ink); margin-bottom:.55rem; line-height:1.4;}
.pricing-page .plan-highlights li svg{flex:none; margin-top:.15rem; color:var(--ls-success);}

.pricing-page .btn-plan{
  border:0; border-radius:9px; padding:.65rem 1rem; font-weight:600; font-size:.92rem;
  background:var(--ls-navy-900); color:#fff; transition:background .15s ease, transform .1s ease; width:100%;
}
.pricing-page .btn-plan:hover{background:var(--ls-navy-800); color:#fff;}
.pricing-page .btn-plan:active{transform:scale(.98);}
.pricing-page .plan-card.is-popular .btn-plan{background:var(--ls-accent);}
.pricing-page .plan-card.is-popular .btn-plan:hover{background:var(--ls-accent-dark);}
.pricing-page .plan-card.is-free .btn-plan{background:#fff; color:var(--ls-navy-900); border:1px solid var(--ls-line);}
.pricing-page .plan-card.is-free .btn-plan:hover{background:var(--ls-navy-100);}

.pricing-page .custom-note{text-align:center; margin-top:1.8rem; font-size:.88rem; color:var(--ls-ink-60);}
.pricing-page .custom-note a{font-weight:600; color:var(--ls-navy-900); text-decoration:underline;}

.pricing-page .scroll-dots{display:none; justify-content:center; gap:6px; margin-top:.8rem;}
.pricing-page .scroll-dots span{width:6px; height:6px; border-radius:50%; background:var(--ls-line);}
@media (max-width:575px){ .pricing-page .scroll-dots{display:flex;} }

/* ---------- Comparison table ---------- */
.pricing-page .compare-toggle{
  display:flex; align-items:center; justify-content:center; gap:.5rem; margin:2.6rem auto 0;
  background:none; border:1px dashed var(--ls-line); border-radius:999px; padding:.6rem 1.3rem;
  font-size:.88rem; font-weight:600; color:var(--ls-navy-900); cursor:pointer;
}
.pricing-page .compare-toggle:hover{border-color:var(--ls-navy-500);}
.pricing-page .compare-toggle svg{transition:transform .2s ease;}
.pricing-page .compare-toggle.open svg{transform:rotate(180deg);}

.pricing-page .compare-wrap{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.pricing-page .compare-wrap.open{max-height:4000px;}
.pricing-page .compare-scroll{overflow-x:auto; margin-top:2rem; border:1px solid var(--ls-line); border-radius:var(--ls-radius); background:#fff;}
.pricing-page table.compare{width:100%; border-collapse:collapse; min-width:820px;}
.pricing-page table.compare thead th{
  font-family:'Fraunces',serif; font-weight:600; font-size:.92rem; color:var(--ls-navy-900); background:var(--ls-navy-50);
  padding:.9rem .8rem; text-align:center; border-bottom:1px solid var(--ls-line); position:sticky; top:0;
}
.pricing-page table.compare thead th:first-child{text-align:left;}
.pricing-page table.compare tbody td, .pricing-page table.compare tbody th{
  padding:.65rem .8rem; font-size:.85rem; border-bottom:1px solid var(--ls-line); text-align:center; color:var(--ls-ink);
}
.pricing-page table.compare tbody th{text-align:left; font-weight:500; color:var(--ls-ink); background:#fff; position:sticky; left:0;}
.pricing-page table.compare tbody tr.group-row th{
  background:var(--ls-accent-100); color:var(--ls-accent-dark); font-family:'IBM Plex Mono',monospace;
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
}
.pricing-page table.compare tbody tr.group-row td{background:var(--ls-accent-100);}
.pricing-page table.compare tbody tr:hover td, .pricing-page table.compare tbody tr:hover th{background:var(--ls-navy-50);}
.pricing-page table.compare tbody tr.group-row:hover th, .pricing-page table.compare tbody tr.group-row:hover td{background:var(--ls-accent-100);}
.pricing-page .compare-footnotes{padding:1rem 1.2rem; font-size:.76rem; color:var(--ls-ink-40); line-height:1.6;}

/* ---------- Extra services ---------- */
.pricing-page .services-section{background:var(--ls-navy-50);}
.pricing-page .services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
@media (max-width:991px){ .pricing-page .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:575px){ .pricing-page .services-grid{grid-template-columns:1fr;} }
.pricing-page .service-card{
  background:#fff; border:1px solid var(--ls-line); border-radius:12px; padding:1.25rem;
  display:flex; gap:.9rem; align-items:flex-start; transition:border-color .15s ease, transform .15s ease;
}
.pricing-page .service-card:hover{border-color:var(--ls-navy-500); transform:translateY(-2px);}
.pricing-page .service-icon{
  flex:none; width:38px; height:38px; border-radius:9px; background:var(--ls-navy-100); color:var(--ls-navy-800);
  display:flex; align-items:center; justify-content:center;
}
.pricing-page .service-title{font-weight:600; font-size:.92rem; color:var(--ls-navy-900); margin-bottom:.25rem;}
.pricing-page .service-desc{font-size:.82rem; color:var(--ls-ink-60); margin-bottom:.55rem; line-height:1.45;}
.pricing-page .service-cta{font-size:.8rem; font-weight:600; color:var(--ls-navy-800); background:none; border:0; padding:0; cursor:pointer;}
.pricing-page .service-cta:hover{color:var(--ls-accent-dark); text-decoration:underline;}
.pricing-page .services-note{text-align:center; margin-top:1.6rem; font-size:.84rem; color:var(--ls-ink-60);}

/* ---------- Callback band ---------- */
.pricing-page .callback-section{background:var(--ls-navy-900); position:relative; overflow:hidden;}
.pricing-page .callback-section::before{
  content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px;
  border:1px dashed rgba(255,255,255,.14); border-radius:50%;
}
.pricing-page .callback-section::after{
  content:""; position:absolute; right:20px; top:20px; width:180px; height:180px;
  border:1px dashed rgba(255,255,255,.1); border-radius:50%;
}
.pricing-page .callback-inner{position:relative; z-index:2;}
.pricing-page .callback-kicker{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ls-accent-bright); font-weight:600;}
.pricing-page .callback-section h2{font-family:'Fraunces',serif; font-weight:600; font-size:1.9rem; color:#fff; margin:.5rem 0 .6rem;}
.pricing-page .callback-section p{color:rgba(255,255,255,.68); max-width:44ch; margin-bottom:1.8rem;}

.pricing-page .callback-form{display:flex; gap:.6rem; max-width:460px; flex-wrap:wrap;}
.pricing-page .callback-form input[type=tel]{
  flex:1 1 220px; min-width:0; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  color:#fff; border-radius:9px; padding:.75rem 1rem; font-size:.95rem; font-family:'IBM Plex Mono',monospace;
}
.pricing-page .callback-form input[type=tel]::placeholder{color:rgba(255,255,255,.4);}
.pricing-page .callback-form input[type=tel]:focus{outline:none; border-color:var(--ls-accent-bright); background:rgba(255,255,255,.1);}
.pricing-page .callback-form input.is-invalid{border-color:#e08585;}
.pricing-page .callback-captcha{flex-basis:100%;}
.pricing-page .callback-captcha .google-recaptcha{margin-top:.4rem;}
.pricing-page .btn-callback{
  border:0; border-radius:9px; padding:.75rem 1.4rem; font-weight:700; font-size:.92rem;
  background:var(--ls-accent-bright); color:var(--ls-navy-900); white-space:nowrap; transition:background .15s ease;
}
.pricing-page .btn-callback:hover{background:#e0c000; color:var(--ls-navy-900);}
.pricing-page .btn-callback:disabled{opacity:.6; cursor:not-allowed;}
.pricing-page .callback-msg{margin-top:.8rem; font-size:.85rem; min-height:1.2em;}
.pricing-page .callback-msg.success{color:#7fd99a;}
.pricing-page .callback-msg.error{color:#f0a3a3;}
.pricing-page .callback-hint{margin-top:.7rem; font-size:.78rem; color:rgba(255,255,255,.45);}

.pricing-page a:focus-visible,
.pricing-page button:focus-visible,
.pricing-page input:focus-visible{
  outline:2px solid var(--ls-accent-bright); outline-offset:2px;
}

@media (prefers-reduced-motion:reduce){
  .pricing-page *{transition:none !important; animation:none !important;}
}
