/* OikosBook public landing refresh — 2026-08-31
   Keeps the existing visual identity, but uses more desktop width,
   puts pricing first and removes narrow/overly decorative layouts. */

:root{
  --ob-wide: 1480px;
  --ob-content: 1320px;
}

body .container{
  width:min(calc(100% - 56px), var(--ob-wide));
  max-width:var(--ob-wide);
}

body .topbar .container{
  width:min(calc(100% - 56px), var(--ob-wide));
}

body .hero{
  padding-top:64px;
  padding-bottom:46px;
}

body .hero-grid{
  grid-template-columns:minmax(0,1.18fr) minmax(380px,.82fr);
  gap:72px;
  align-items:center;
}

body .hero h1{
  max-width:900px;
  font-size:clamp(3rem,5.1vw,5.35rem);
  line-height:.96;
}

body .hero .lead{
  max-width:900px;
  font-size:1.12rem;
  line-height:1.75;
}

body .panel{
  width:100%;
  max-width:560px;
  justify-self:end;
}

body .section{
  padding:54px 0;
}

body .section-head{
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:64px;
  align-items:end;
  margin-bottom:28px;
}

body .section-head h2{
  max-width:820px;
  font-size:clamp(2rem,3.2vw,3.45rem);
  line-height:1.02;
}

body .section-head p{
  max-width:620px;
  line-height:1.65;
}

body .grid-3,
body .grid-4{
  gap:22px;
}

body .card{
  padding:28px;
}

/* Single-plan presentation */
body .pricing-single{
  display:flex;
  justify-content:center;
  align-items:stretch;
  width:100%;
}

body .pricing-single .price-card{
  width:min(100%, 760px);
  max-width:760px;
  padding:34px 38px;
}

body .pricing-single .price-card h3{
  font-size:clamp(1.55rem,2.4vw,2.25rem);
  max-width:640px;
}

body .pricing-single .price-line .price{
  font-size:clamp(3rem,4.3vw,4.6rem);
}

body .pricing-single .clean-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:32px;
  row-gap:2px;
}

body .pricing-single .btn-plan{
  width:100%;
  justify-content:center;
  margin-top:18px;
}

/* The price block is intentionally first after the hero. */
body .price-first{
  padding-top:28px;
}

body .price-first .section-head{
  align-items:center;
}

body .fact-panel .panel-item p,
body .fact-panel .panel-item h3{
  max-width:none;
}

body .fact-panel .panel-item{
  padding:22px;
}

body .fact-panel .panel-item h3{
  font-size:1.2rem;
}

body .fact-panel .panel-item p{
  line-height:1.55;
}

body .useful-note{
  margin-top:18px;
  padding:18px 20px;
  border:1px solid #dce7f5;
  background:#f8fbff;
  border-radius:18px;
  color:#43516e;
  line-height:1.6;
}

/* Home selector: use more horizontal space too. */
body .ob-home{
  width:min(calc(100% - 56px), 1480px) !important;
  max-width:1480px !important;
}

body .ob-grid{
  gap:24px !important;
}

body .ob-card{
  padding:34px !important;
  min-height:330px !important;
}

body .ob-lead{
  max-width:960px !important;
}

@media (max-width:1100px){
  body .container,
  body .topbar .container,
  body .ob-home{
    width:min(calc(100% - 34px), 1040px) !important;
  }
  body .hero-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
  body .panel{
    max-width:none;
    justify-self:stretch;
  }
  body .section-head{
    grid-template-columns:1fr;
    gap:14px;
  }
}

@media (max-width:760px){
  body .container,
  body .topbar .container,
  body .ob-home{
    width:min(calc(100% - 24px), 720px) !important;
  }
  body .hero{
    padding-top:38px;
  }
  body .hero h1{
    font-size:clamp(2.5rem,13vw,4rem);
  }
  body .pricing-single .price-card{
    padding:26px 22px;
  }
  body .pricing-single .clean-list{
    grid-template-columns:1fr;
  }
  body .section{
    padding:38px 0;
  }
}
