@font-face {
  font-family:Golos;
  src:url('../fonts/golos-regular.ttf') format('truetype');
  font-weight:400;
  font-display:swap;
}

@font-face {
  font-family:Golos;
  src:url('../fonts/golos-medium.ttf') format('truetype');
  font-weight:500;
  font-display:swap;
}

@font-face {
  font-family:Golos;
  src:url('../fonts/golos-semibold.ttf') format('truetype');
  font-weight:600 800;
  font-display:swap;
}

@font-face {
  font-family:Marck;
  src:url('../fonts/marck-script.ttf') format('truetype');
  font-weight:400;
  font-display:swap;
}

/* Theme tokens: shared by the home page and future Drupal components. */
:root {
  --ed-ink:#17282b;
  --ed-green:#185848;
  --ed-green-dark:#103f35;
  --ed-muted:#6b7778;
  --ed-paper:#fff;
  --ed-cream:#f5f3ed;
  --ed-line:#e3e7e3;
  --ed-radius:6px;
  --ed-serif:Georgia,'Times New Roman',serif;
  --bs-body-font-family:Golos,Arial,sans-serif;
  --bs-body-color:var(--ed-ink);
  --bs-primary:#185848;
  --bs-link-color:#185848;
  --bs-link-hover-color:#103f35;
  --bs-border-color:var(--ed-line);
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:25px;
}

body {
  margin:0;
  background:var(--ed-paper);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,p {
  margin-top:0;
}

h1,h2,.serif {
  font-family:var(--ed-serif);
  font-weight:400;
  letter-spacing:-.035em;
}

h2 {
  font-size:clamp(32px,3.3vw,48px);
  line-height:1.15;
}

a {
  color:var(--ed-green);
  text-underline-offset:5px;
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}

button {
  font:inherit;
}

img {
  max-width:100%;
  height:auto;
}

button:focus-visible,a:focus-visible {
  outline:3px solid #b8873a;
  outline-offset:5px;
}

::selection {
  background:#d8e8de;
}

.container {
  max-width:1320px;
  padding-right:32px;
  padding-left:32px;
}

.skip-link {
  position:fixed;
  z-index:2000;
  top:-100px;
  left:12px;
  background:white;
  padding:12px 22px;
}

.skip-link:focus {
  top:12px;
}

.btn {
  border-radius:var(--ed-radius);
  padding:15px 27px;
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  transition:background-color .2s,transform .2s,box-shadow .2s;
  border-width:1px;
}

.btn:hover {
  transform:translateY(-2px);
}

.btn-primary {
  --bs-btn-bg:var(--ed-green);
  --bs-btn-border-color:var(--ed-green);
  --bs-btn-hover-bg:var(--ed-green-dark);
  --bs-btn-hover-border-color:var(--ed-green-dark);
  --bs-btn-active-bg:var(--ed-green-dark);
  --bs-btn-active-border-color:var(--ed-green-dark);
  --bs-btn-disabled-bg:var(--ed-green);
  --bs-btn-disabled-border-color:var(--ed-green);
}

.btn-outline-primary {
  --bs-btn-color:var(--ed-green);
  --bs-btn-border-color:#92aaa2;
  --bs-btn-hover-bg:var(--ed-green);
  --bs-btn-hover-border-color:var(--ed-green);
  --bs-btn-active-bg:var(--ed-green);
  --bs-btn-active-border-color:var(--ed-green);
}

.btn-light {
  --bs-btn-color:var(--ed-ink);
  --bs-btn-bg:#fff;
  --bs-btn-border-color:#fff;
  --bs-btn-hover-bg:#edf2ec;
  --bs-btn-hover-border-color:#edf2ec;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  border:0;
  background:transparent;
  padding:8px 0;
  font-weight:500;
  color:var(--ed-green);
  text-decoration:none;
  font-size:14px;
}

.text-link:hover {
  color:var(--ed-green-dark);
  text-decoration:underline;
}

.text-link:has(.arrow):hover {
  text-decoration:none;
}

.text-link:hover .text-link-label {
  text-decoration:underline;
}

.arrow {
  text-decoration:none;
  display:inline-block;
  font-family:Arial,sans-serif;
  font-size:23px;
  font-weight:400;
  line-height:1;
  transition:transform .2s;
}

.text-link:hover .arrow {
  transform:translateX(4px);
}

.eyebrow {
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:11px;
  font-weight:500;
  color:var(--ed-muted);
}

/* Shared header. */
.site-header {
  position:relative;
  z-index:10;
  background:#f5f3ed;
}

.site-header .navbar {
  min-height:112px;
  padding:20px 0;
  gap:25px;
}

.brand {
  display:flex;
  align-items:center;
  gap:18px;
  color:var(--ed-ink);
  text-decoration:none;
  flex-shrink:0;
}

.brand img {
  width:140px;
  height:52px;
  object-fit:contain;
}

.brand-copy {
  font-size:11px;
  line-height:1.45;
  max-width:170px;
}

.brand-copy strong {
  font-weight:500;
  display:block;
}

.navbar-collapse {
  justify-content:flex-end;
  gap:28px;
}

.navbar-nav {
  gap:17px;
}

.navbar .nav-link {
  color:var(--ed-ink);
  font-size:13px;
  padding:10px 0!important;
  white-space:nowrap;
}

.navbar .nav-link:hover {
  color:var(--ed-green);
  text-decoration:underline;
  text-underline-offset:6px;
}

.header-book {
  padding:12px 22px;
  white-space:nowrap;
  font-size:13px;
}

.navbar-toggler {
  border:1px solid #b5c2ba;
  padding:9px;
  color:var(--ed-green);
  border-radius:5px;
}

.menu-lines {
  display:block;
  width:22px;
  height:16px;
  border-top:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  position:relative;
}

.menu-lines:after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:6px;
  border-top:1.5px solid currentColor;
}

/* Home / hero. Photography stays separate from live text. */
.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#eee7da;
  min-height:650px;
  display:flex;
  align-items:center;
}

.hero-photo {
  position:absolute;
  inset:0 0 0 auto;
  width:77%;
  height:100%;
  object-fit:cover;
  object-position:65% 52%;
  z-index:-2;
}

.hero:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#f5f3ed 0%,rgba(245,243,237,.98) 24%,rgba(245,243,237,.85) 37%,rgba(245,243,237,.08) 64%,transparent 100%);
  z-index:-1;
}

.hero-content {
  position:relative;
  padding-top:30px;
  padding-bottom:65px;
}

.hero h1 {
  font-size:clamp(48px,5.65vw,80px);
  line-height:1.02;
  margin:0 0 30px;
  max-width:790px;
  color:#102024;
  letter-spacing:-.04em;
}

.hero-description {
  font-size:18px;
  line-height:1.6;
  max-width:570px;
  margin-bottom:37px;
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:32px;
  flex-wrap:wrap;
}

.hero-actions .btn {
  padding:18px 32px;
}

.hero-actions .text-link {
  line-height:1.35;
}

.hero-actions .text-link-label {
  border-bottom:1px solid #9daaa0;
}

.hero-actions .text-link:hover .text-link-label {
  text-decoration:none;
}

.hero-note {
  position:absolute;
  left:57%;
  top:25px;
  transform:rotate(-9deg);
  color:#746a59;
  font-family:Marck,cursive;
  font-size:34px;
  line-height:1.12;
  text-align:center;
  pointer-events:none;
}

.hero-note span {
  display:block;
  margin-left:28px;
}

.hero-note span:last-child {
  margin-left:65px;
}

.hero-topics {
  position:absolute;
  top:26px;
  right:24px;
  list-style:none;
  font-size:12px;
  color:#675e51;
  line-height:2.3;
  margin:0;
  padding:0;
}

.hero-topics li:before {
  content:'·';
  margin-right:8px;
}

.hero-topics a {
  color:inherit;
  text-decoration:none;
}

.hero-topics a:hover {
  text-decoration:underline;
}

.benefits {
  background:#f8f7f3;
  padding:36px 0;
}

.benefits-list {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  margin:0;
  padding:0;
  list-style:none;
}

.benefit {
  display:flex;
  gap:19px;
  align-items:center;
  font-size:13px;
  line-height:1.5;
}

.line-icon {
  flex:0 0 43px;
  width:43px;
  height:43px;
  fill:none;
  stroke:var(--ed-green);
  stroke-width:1.2;
  stroke-linejoin:round;
  stroke-linecap:round;
}

/* Request cards. */
.section {
  padding:54px 0 0;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:28px;
}

.section-heading h2 {
  margin:0;
}

.topics-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:25px;
}

.topic-card {
  position:relative;
  display:block;
  aspect-ratio:.74;
  border:0;
  overflow:hidden;
  border-radius:var(--ed-radius);
  background:#354940;
  color:#fff;
  text-align:left;
  width:100%;
  padding:0;
  isolation:isolate;
  box-shadow:0 5px 14px #142b2010;
}

.topic-card:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(13,24,20,.22) 52%,rgba(13,24,20,.91));
  z-index:-1;
}

.topic-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
  transition:transform .5s;
  filter:saturate(.7);
}

.topic-card:hover img {
  transform:scale(1.055);
}

.topic-title {
  position:absolute;
  bottom:47px;
  left:20px;
  right:13px;
  font-family:var(--ed-serif);
  font-size:25px;
  line-height:1.12;
  letter-spacing:-.02em;
}

.circle-arrow {
  position:absolute;
  bottom:20px;
  right:18px;
  border-radius:50%;
  width:30px;
  height:30px;
  background:#f7f8f4;
  color:var(--ed-ink);
  display:grid;
  place-items:center;
  font-size:20px;
  line-height:1;
  transition:transform .2s;
}

.topic-card:hover .circle-arrow {
  transform:translateX(3px);
}

/* Specialist cards. Demo data lives in data/demo-specialists.json. */
.specialists {
  padding-top:68px;
  padding-bottom:54px;
}

.specialist-grid {
  --specialist-photo-height:247px;
  display:grid;
  grid-template-columns:1.16fr 1fr 1fr 1fr;
  gap:27px;
}

.specialist-card {
  overflow:hidden;
  border:1px solid var(--ed-line);
  border-radius:var(--ed-radius);
  background:white;
  box-shadow:0 4px 15px #233b2f04;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:box-shadow .25s,transform .25s;
}

.specialist-card:hover {
  box-shadow:0 10px 25px #233b2f10;
  transform:translateY(-3px);
}

.specialist-photo {
  width:100%;
  height:var(--specialist-photo-height);
  object-fit:cover;
  object-position:50% 26%;
  background:#e7ece6;
}

.specialist-body {
  padding:20px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.specialist-name {
  font-family:Golos,Arial,sans-serif;
  font-size:17px;
  letter-spacing:-.025em;
  font-weight:500;
  margin:0 0 5px;
  line-height:1.35;
}

.specialist-role {
  font-size:12px;
  color:var(--ed-muted);
  margin-bottom:17px;
}

.specialist-tags {
  font-size:12px;
  color:var(--ed-muted);
  line-height:1.9;
  margin-bottom:27px;
}

.specialist-tags span+span:before {
  content:'·';
  margin:0 6px;
}

.specialist-price {
  font-size:17px;
  font-weight:500;
  margin-top:auto;
  margin-bottom:12px;
}

.specialist-price small {
  color:var(--ed-muted);
  font-size:10px;
  font-weight:400;
}

.specialist-card .btn {
  width:100%;
  padding:10px 8px;
  font-size:12px;
}

.founder-card .specialist-body {
  padding:22px;
}

.founder-card .specialist-role {
  line-height:1.8;
}

.founder-card .text-link {
  margin-top:auto;
  align-self:flex-start;
}

.demo-badge {
  position:absolute;
  top:12px;
  right:12px;
  background:#fffffff0;
  border-radius:3px;
  color:#43554d;
  font-size:10px;
  padding:3px 8px;
  letter-spacing:.01em;
}

.demo-caption {
  font-size:11px;
  color:#707b76;
  margin:17px 0 0;
}

.team-filters {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:-7px 0 25px;
}

.filter-button {
  background:white;
  border:1px solid var(--ed-line);
  border-radius:30px;
  font-size:13px;
  padding:8px 18px;
  color:var(--ed-green);
}

.filter-button[aria-pressed=true] {
  color:white;
  background:var(--ed-green);
  border-color:var(--ed-green);
}

.specialist-card[hidden],.team-filters[hidden] {
  display:none!important;
}

.team-empty {
  padding:20px;
  color:var(--ed-muted);
}

.founder-photo-frame {
  height:var(--specialist-photo-height);
  overflow:hidden;
  flex-shrink:0;
}

.founder-card .founder-photo-frame .specialist-photo {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 0%;
  transform:scale(2.1);
  transform-origin:60% 0%;
}

/* Matching call to action and footer. */
.matching {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  text-align:center;
  background:#173f30;
  color:#fff;
  padding:57px 0 64px;
}

.matching:before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-2;
  background:url('../images/leaves.jpg') center 45%/cover;
  filter:saturate(.65);
}

.matching:after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#0c302bc4,#123b2eea 35%,#123b2ee8 66%,#0b3024c4);
}

.matching h2 {
  font-size:42px;
  margin-bottom:20px;
}

.matching p {
  font-size:17px;
  line-height:1.6;
  max-width:740px;
  margin:0 auto 29px;
}

.matching .btn {
  min-width:265px;
  padding:17px 30px;
  box-shadow:0 5px 25px #0002;
}

.matching-note {
  position:absolute;
  right:7%;
  bottom:39px;
  transform:rotate(-7deg);
  font-family:Marck,cursive;
  font-size:26px;
  line-height:1.15;
  color:#ece8da;
  pointer-events:none;
}

.matching-note svg {
  position:absolute;
  left:-65px;
  top:-21px;
  width:95px;
  height:45px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.3;
}

.site-footer {
  padding:52px 0 22px;
  background:#f6f5f0;
}

.footer-top {
  display:grid;
  grid-template-columns:1.35fr .75fr 1fr 1fr;
  gap:44px;
}

.footer-brand .brand {
  gap:14px;
}

.footer-brand .brand img {
  width:112px;
  height:42px;
}

.footer-brand .brand-copy {
  font-size:10px;
}

.footer-tagline {
  font-size:12px;
  color:var(--ed-muted);
  max-width:245px;
  margin:20px 0 0;
}

.footer-heading {
  font-family:Golos,Arial,sans-serif;
  font-size:12px;
  font-weight:500;
  margin:0 0 18px;
}

.footer-links {
  list-style:none;
  margin:0;
  padding:0;
  font-size:12px;
  line-height:2.15;
}

.footer-links a {
  text-decoration:none;
  color:#54645f;
}

.footer-links a:hover {
  color:var(--ed-green);
  text-decoration:underline;
}

.footer-phone {
  color:var(--ed-ink);
  font-size:19px;
  text-decoration:none;
  white-space:nowrap;
}

.footer-email {
  font-size:13px;
  display:inline-block;
  margin-top:7px;
}

.footer-address {
  font-size:12px;
  color:#54645f;
  line-height:1.7;
  font-style:normal;
  margin-bottom:8px;
}

.footer-location {
  font-size:11px;
  color:var(--ed-muted);
}

.footer-bottom {
  border-top:1px solid #ddE2da;
  margin-top:38px;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  font-size:10px;
  color:var(--ed-muted);
}

.footer-bottom a {
  color:inherit;
  text-decoration:none;
}

.footer-bottom a:hover {
  text-decoration:underline;
}

/* Reusable dialogs and form elements. */
.modal-content {
  border:0;
  border-radius:12px;
  box-shadow:0 22px 100px #162f2530;
}

.modal-header {
  border:0;
  padding:30px 32px 10px;
  align-items:flex-start;
  gap:16px;
}

.modal-title {
  font-family:var(--ed-serif);
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
}

.modal-body {
  padding:12px 32px 32px;
}

.modal-intro {
  font-size:14px;
  color:var(--ed-muted);
}

.modal-backdrop {
  --bs-backdrop-bg:#112a22;
  --bs-backdrop-opacity:.55;
}

.form-label {
  font-size:13px;
  font-weight:500;
}

.form-control,.form-select {
  border-radius:5px;
  padding:12px 14px;
  font-size:14px;
  background-color:#fcfcfa;
}

.form-control:focus,.form-select:focus {
  border-color:#6c9a86;
  box-shadow:0 0 0 .2rem #18584815;
}

.form-check-input:checked {
  background-color:var(--ed-green);
  border-color:var(--ed-green);
}

.form-check-input:focus {
  box-shadow:0 0 0 .2rem #18584815;
  border-color:var(--ed-green);
}

.form-check-label {
  font-size:12px;
  color:#53645e;
}

.demo-notice {
  border-left:2px solid #88a293;
  background:#f4f6f1;
  padding:12px 15px;
  font-size:12px;
  color:#53645e;
  margin:15px 0 20px;
}

.form-feedback {
  background:#eef4ed;
  border-radius:6px;
  padding:24px;
  margin:18px 0 0;
}

.form-feedback h3 {
  font-size:22px;
  font-family:var(--ed-serif);
}

.form-feedback p {
  font-size:14px;
}

.form-feedback:focus {
  outline:0;
}

.modal-eyebrow {
  margin-bottom:10px;
}

.quiz-progress {
  height:3px;
  background:#e6eae2;
  border-radius:2px;
  margin:20px 0 27px;
}

.quiz-progress-bar {
  height:100%;
  background:var(--ed-green);
  width:33.333%;
  transition:width .2s;
}

.quiz-options {
  border:0;
  padding:0;
  margin:0;
}

.quiz-options legend {
  font-family:var(--ed-serif);
  font-size:25px;
  margin:0 0 18px;
  line-height:1.25;
}

.quiz-option {
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #dce3da;
  border-radius:6px;
  padding:13px 16px;
  margin-bottom:9px;
  cursor:pointer;
  font-size:14px;
  background:#fcfcfa;
}

.quiz-option:has(input:checked) {
  border-color:var(--ed-green);
  background:#eff4ec;
}

.quiz-option input {
  accent-color:var(--ed-green);
  width:17px;
  height:17px;
  flex-shrink:0;
}

.quiz-controls {
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:24px;
}

.quiz-result-card {
  display:flex;
  align-items:center;
  gap:20px;
  background:var(--ed-cream);
  padding:18px;
  border-radius:7px;
  margin:20px 0;
}

.quiz-result-card img {
  width:75px;
  height:85px;
  object-fit:cover;
  border-radius:4px;
}

.quiz-result-card h3 {
  font-size:17px;
  margin:5px 0;
}

.quiz-result-card p {
  font-size:12px;
  margin:0;
  color:var(--ed-muted);
}

.steps-list {
  list-style:none;
  counter-reset:steps;
  padding:0;
  margin:20px 0 25px;
}

.steps-list li {
  position:relative;
  padding:0 0 22px 49px;
  counter-increment:steps;
}

.steps-list li:before {
  content:'0' counter(steps);
  position:absolute;
  left:0;
  top:0;
  font-family:var(--ed-serif);
  font-size:24px;
  color:#648b75;
}

.steps-list h3 {
  font-size:16px;
  margin:0 0 6px;
}

.steps-list p {
  font-size:14px;
  color:var(--ed-muted);
  margin:0;
}

.accordion {
  --bs-accordion-active-bg:#f3f5ef;
  --bs-accordion-active-color:var(--ed-green);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem #18584815;
}

.accordion-button {
  font-size:14px;
  line-height:1.5;
}

.accordion-body {
  font-size:14px;
  color:var(--ed-muted);
}

.profile-intro {
  display:flex;
  gap:22px;
  align-items:center;
  margin-bottom:22px;
}

.profile-intro img {
  width:115px;
  height:135px;
  object-fit:cover;
  object-position:65% 20%;
  border-radius:5px;
}

.profile-intro p {
  font-size:14px;
  margin:0;
}

.topic-modal-title {
  font-size:36px;
}

.topic-description {
  line-height:1.8;
}

.small-print {
  font-size:11px;
  color:var(--ed-muted);
}

.no-js-note {
  margin:0;
  padding:14px;
  text-align:center;
  background:#f3eddb;
  font-size:14px;
}

/* Internal-page components. */
.page-heading {
  background:var(--ed-cream);
  padding:30px 0 55px;
}

.breadcrumb {
  font-size:12px;
  margin-bottom:28px;
  --bs-breadcrumb-divider:'›';
}

.breadcrumb a {
  text-decoration:none;
}

.page-heading h1 {
  font-size:clamp(40px,5vw,66px);
  margin-bottom:17px;
}

.page-heading p {
  max-width:680px;
  color:var(--ed-muted);
}

.component-section {
  padding:45px 0;
  border-bottom:1px solid var(--ed-line);
}

.component-section h2 {
  font-size:34px;
  margin-bottom:25px;
}

.component-label {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--ed-muted);
  margin-bottom:16px;
}

.article-copy {
  max-width:720px;
}

.article-copy p {
  font-size:16px;
  line-height:1.85;
}

.article-copy blockquote {
  border-left:2px solid var(--ed-green);
  padding:10px 0 10px 24px;
  font-family:var(--ed-serif);
  font-size:25px;
  line-height:1.4;
  color:var(--ed-green);
}

@media(min-width:1600px) {
  .hero {
    min-height:700px;
  }
  .hero h1 {
    font-size:84px;
  }
  .hero-photo {
    object-position:center 58%;
  }
  .hero-topics {
    right:5%;
  }
}

@media(max-width:1199.98px) {
  .container {
    padding-left:28px;
    padding-right:28px;
  }
  .site-header .navbar {
    gap:16px;
    min-height:96px;
  }
  .brand img {
    width:110px;
    height:42px;
  }
  .brand {
    gap:12px;
  }
  .brand-copy {
    font-size:9px;
    max-width:130px;
  }
  .navbar-collapse {
    gap:18px;
  }
  .navbar-nav {
    gap:13px;
  }
  .navbar .nav-link {
    font-size:11px;
  }
  .header-book {
    font-size:12px;
    padding:11px 16px;
  }
  .hero {
    min-height:580px;
  }
  .hero-description {
    font-size:16px;
    max-width:490px;
  }
  .hero-note {
    font-size:29px;
    left:58%;
    top:10px;
  }
  .hero-topics {
    font-size:11px;
    right:20px;
  }
  .hero-actions {
    gap:24px;
  }
  .hero-actions .text-link {
    font-size:12px;
  }
  .benefit {
    font-size:11px;
    gap:12px;
  }
  .line-icon {
    width:36px;
    height:36px;
    flex-basis:36px;
  }
  .topics-grid {
    gap:20px;
  }
  .topic-title {
    font-size:22px;
    left:16px;
  }
  .specialist-grid {
    gap:20px;
  }
  .specialist-grid {
    --specialist-photo-height:210px;
  }
  .specialist-name {
    font-size:15px;
  }
  .specialist-body {
    padding:16px;
  }
  .founder-card .specialist-body {
    padding:18px;
  }
  .specialist-tags {
    font-size:11px;
  }
  .matching-note {
    right:4%;
    font-size:22px;
    bottom:30px;
  }
  .footer-top {
    gap:24px;
  }
  .footer-brand .brand {
    flex-wrap:wrap;
  }
}

@media(max-width:991.98px) {
  .site-header .navbar {
    min-height:88px;
    justify-content:space-between;
  }
  .brand img {
    width:120px;
    height:45px;
  }
  .brand-copy {
    font-size:10px;
    max-width:160px;
  }
  .navbar-collapse {
    flex-basis:100%;
    padding:12px 0 20px;
  }
  .navbar-nav {
    gap:0;
    margin-bottom:15px;
  }
  .navbar .nav-link {
    font-size:15px;
    padding:11px 0!important;
  }
  .navbar-collapse .header-book {
    font-size:14px;
  }
  .hero {
    min-height:560px;
  }
  .hero h1 {
    font-size:58px;
    max-width:570px;
  }
  .hero-description {
    max-width:420px;
  }
  .hero-photo {
    width:85%;
    object-position:60% center;
  }
  .hero:after {
    background:linear-gradient(90deg,#f5f3ed 0%,#f5f3edf5 20%,#f5f3edbc 47%,#f5f3ed10 85%);
  }
  .hero-note {
    left:auto;
    right:9%;
    top:20px;
    font-size:27px;
  }
  .hero-topics {
    display:none;
  }
  .hero-actions {
    align-items:flex-start;
    gap:15px;
    flex-direction:column;
  }
  .hero-content {
    padding-top:50px;
    padding-bottom:50px;
  }
  .benefits-list {
    grid-template-columns:repeat(2,1fr);
    gap:27px 35px;
  }
  .benefit {
    font-size:13px;
  }
  .benefits {
    padding:30px 0;
  }
  .topics-grid {
    gap:15px;
  }
  .topic-card {
    aspect-ratio:.62;
  }
  .topic-title {
    font-size:20px;
    left:12px;
    bottom:54px;
  }
  .circle-arrow {
    width:27px;
    height:27px;
    right:12px;
    bottom:15px;
  }
  .specialist-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:25px;
  }
  .specialist-grid {
    --specialist-photo-height:300px;
  }
  .specialist-body,.founder-card .specialist-body {
    padding:23px;
  }
  .specialist-name {
    font-size:19px;
  }
  .specialist-role,.specialist-tags {
    font-size:13px;
  }
  .specialist-tags {
    margin-bottom:20px;
  }
  .specialist-card .btn {
    font-size:13px;
  }
  .matching {
    padding:50px 0 65px;
  }
  .matching h2 {
    font-size:37px;
  }
  .matching p {
    max-width:570px;
    font-size:15px;
  }
  .matching-note {
    font-size:20px;
    right:4%;
    bottom:24px;
  }
  .footer-top {
    grid-template-columns:1.3fr 1fr;
    gap:35px;
  }
  .footer-brand .brand {
    flex-wrap:nowrap;
  }
  .footer-bottom {
    flex-wrap:wrap;
  }
  .section {
    padding-top:44px;
  }
  .specialists {
    padding-top:48px;
  }
}

@media(max-width:767.98px) {
  .container {
    padding-left:22px;
    padding-right:22px;
  }
  .hero {
    min-height:640px;
    align-items:flex-start;
  }
  .hero h1 {
    font-size:55px;
    max-width:620px;
  }
  .hero-description {
    font-size:15px;
    max-width:440px;
    margin-bottom:25px;
  }
  .hero-content {
    padding-top:38px;
    padding-bottom:235px;
  }
  .hero-photo {
    width:100%;
    height:100%;
    object-position:70% bottom;
  }
  .hero:after {
    background:linear-gradient(180deg,#f5f3ed 0%,#f5f3efef 35%,#f5f3edc0 53%,#f5f3ed00 77%);
  }
  .hero-note {
    right:28px;
    top:auto;
    bottom:55px;
    color:#fff;
    text-shadow:0 1px 8px #24362d;
    font-size:30px;
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:20px;
  }
  .hero-actions .btn {
    padding:14px 23px;
    font-size:13px;
  }
  .hero-actions .text-link {
    font-size:11px;
  }
  .benefits-list {
    gap:25px 22px;
  }
  .benefit {
    font-size:11px;
    gap:13px;
  }
  .line-icon {
    width:32px;
    height:32px;
    flex-basis:32px;
  }
  .topics-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
  .topic-card {
    aspect-ratio:.95;
  }
  .topic-card:last-child {
    grid-column:1/-1;
    aspect-ratio:2.1;
  }
  .topic-card:last-child img {
    object-position:50% 37%;
  }
  .topic-title {
    font-size:26px;
    left:20px;
    bottom:24px;
    right:43px;
  }
  .circle-arrow {
    bottom:22px;
    right:17px;
  }
  .topic-card:last-child .topic-title {
    font-size:29px;
  }
  .section-heading {
    margin-bottom:24px;
  }
  .section-heading .text-link {
    font-size:12px;
    gap:7px;
    white-space:nowrap;
  }
  .section-heading h2 {
    font-size:33px;
  }
  .specialist-grid {
    gap:18px;
  }
  .specialist-grid {
    --specialist-photo-height:245px;
  }
  .specialist-body,.founder-card .specialist-body {
    padding:18px;
  }
  .specialist-name {
    font-size:16px;
  }
  .specialist-role,.specialist-tags {
    font-size:11px;
  }
  .specialist-price {
    font-size:16px;
  }
  .matching h2 {
    font-size:34px;
    max-width:400px;
    margin-left:auto;
    margin-right:auto;
  }
  .matching p {
    max-width:440px;
    font-size:14px;
  }
  .matching-note {
    display:block;
    position:relative;
    right:auto;
    bottom:auto;
    transform:rotate(-5deg);
    margin:27px 0 -20px;
    font-size:23px;
  }
  .matching-note svg {
    display:none;
  }
  .matching .btn {
    padding:15px 25px;
    min-width:235px;
  }
  .footer-top {
    column-gap:22px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-tagline {
    max-width:100%;
    margin-top:12px;
  }
  .footer-top>:last-child {
    grid-column:1/-1;
  }
  .footer-bottom {
    font-size:10px;
    gap:8px;
  }
  .footer-phone {
    font-size:17px;
  }
  .modal-header {
    padding:25px 23px 10px;
  }
  .modal-body {
    padding:12px 23px 25px;
  }
  .modal-title {
    font-size:29px;
  }
  .modal-dialog {
    margin:16px;
  }
  .matching {
    padding:44px 0 52px;
  }
}

@media(max-width:479.98px) {
  .container {
    padding-left:20px;
    padding-right:20px;
  }
  .site-header .navbar {
    min-height:82px;
    padding:16px 0;
  }
  .brand {
    gap:10px;
  }
  .brand img {
    width:90px;
    height:35px;
  }
  .brand-copy {
    font-size:8px;
    max-width:135px;
  }
  .navbar-toggler {
    padding:8px;
  }
  .hero h1 {
    font-size:43px;
    line-height:1.05;
    margin-bottom:24px;
    letter-spacing:-.045em;
  }
  .hero-description {
    font-size:14px;
    line-height:1.65;
    max-width:345px;
  }
  .hero-content {
    padding-top:32px;
    padding-bottom:245px;
  }
  .hero-actions {
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .hero-actions .btn {
    padding:14px 24px;
  }
  .hero-actions .text-link {
    font-size:12px;
  }
  .hero {
    min-height:655px;
  }
  .hero:after {
    background:linear-gradient(180deg,#f5f3ed 0%,#f5f3efed 36%,#f5f3edc9 49%,#f5f3ed00 74%);
  }
  .hero-photo {
    object-position:65% bottom;
  }
  .hero-note {
    font-size:26px;
    bottom:39px;
    right:29px;
  }
  .benefits {
    padding:27px 0;
  }
  .benefit {
    font-size:10px;
    gap:9px;
  }
  .line-icon {
    width:30px;
    height:30px;
    flex-basis:30px;
  }
  .benefits-list {
    gap:22px 15px;
  }
  .section-heading {
    align-items:flex-start;
  }
  .section-heading h2 {
    font-size:30px;
  }
  .specialists .section-heading {
    flex-direction:column;
    gap:6px;
  }
  .topics-grid {
    gap:14px;
  }
  .topic-title {
    font-size:23px;
    left:14px;
    bottom:45px;
    right:10px;
  }
  .circle-arrow {
    bottom:15px;
    right:13px;
    width:26px;
    height:26px;
  }
  .topic-card {
    aspect-ratio:.8;
  }
  .topic-card:last-child {
    aspect-ratio:1.9;
  }
  .topic-card:last-child .topic-title {
    bottom:21px;
    font-size:25px;
  }
  .specialist-grid {
    grid-template-columns:1fr;
    gap:23px;
  }
  .specialist-grid {
    --specialist-photo-height:320px;
  }
  .specialist-photo,.founder-card .specialist-photo {
    object-position:50% 24%;
  }
  .specialist-body,.founder-card .specialist-body {
    padding:23px;
  }
  .specialist-name {
    font-size:20px;
  }
  .specialist-role,.specialist-tags {
    font-size:13px;
  }
  .specialist-card .btn {
    padding:12px;
    font-size:14px;
  }
  .specialist-price {
    font-size:19px;
  }
  .specialist-price small {
    font-size:11px;
  }
  .demo-badge {
    font-size:11px;
  }
  .demo-caption {
    font-size:11px;
    line-height:1.6;
  }
  .matching h2 {
    font-size:33px;
  }
  .footer-top {
    grid-template-columns:1fr 1.2fr;
    gap:25px 20px;
  }
  .footer-phone {
    font-size:15px;
  }
  .footer-email {
    font-size:12px;
  }
  .footer-links {
    font-size:11px;
  }
  .footer-bottom {
    flex-direction:column;
  }
  .modal-dialog {
    margin:10px;
  }
  .profile-intro {
    align-items:flex-start;
    gap:16px;
  }
  .profile-intro img {
    width:90px;
    height:115px;
  }
  .quiz-controls .btn {
    padding:13px 20px;
  }
  .page-heading h1 {
    font-size:42px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  .btn:hover,.specialist-card:hover,.topic-card:hover img {
    transform:none;
  }
}
