/* ===================== Design tokens ===================== */
:root {
  --teal: #1f7a7a;
  --teal-dark: #186666;
  --gold: #c9a24b;
  --gold-dark: #b98f38;
  --charcoal: #2c2b28;
  --ink: #2a2a2a;
  --cream: #f4efe6;
  --beige: #e6d7b8;
  --page-bg: #ffffff;
  --card-bg: #ffffff;
  --muted: #6b6b6b;
  --shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
  --radius: 18px;
  --maxw: 1120px;
}

/* ===================== Reset ===================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { background: var(--page-bg); scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: "Montserrat", Tahoma, Geneva, Verdana, sans-serif;
  color: var(--ink);
  background: var(--page-bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { margin: 0; padding: 0; list-style: none; }

.container {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 20px;
}

/* ===================== Header ===================== */
.site-header {
  background: #fff;
  border-bottom: 1px solid #eee;
  position: sticky;
  top: 0;
  z-index: 50;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  gap: 16px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name {
  font-weight: 700;
  letter-spacing: 2px;
  font-size: 18px;
  color: var(--ink);
}
.brand-tag { font-size: 8px; letter-spacing: 2px; color: var(--muted); }

.main-nav { display: flex; align-items: center; gap: 28px; }
.main-nav > ul { display: flex; gap: 28px; }
.main-nav a { font-size: 16px;
  color: #444;
  font-weight: 600; }
.caret { font-size: 18px;
  color: #444;
  transition: transform 0.25s ease;
  top: 2px;
  position: relative; }

/* ---- Dropdowns (desktop: hover) ---- */
.has-dropdown { position: relative; }
.dropdown {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 180px;
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.12);
  padding: 6px 0;
  margin-top: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  z-index: 60;
}
.dropdown li { width: 100%; }
.dropdown a {
  display: block;
  padding: 10px 18px;
  font-size: 14px;
  color: #444;
  white-space: nowrap;
}
.dropdown a:hover { background: var(--cream, #f6f1e6); color: var(--gold-dark); }

.has-dropdown:hover > a .caret,
.has-dropdown:focus-within > a .caret { transform: rotate(180deg); }
.has-dropdown:hover > .dropdown,
.has-dropdown:focus-within > .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.btn-login {
  background: var(--gold);
  color: #fff;
  padding: 9px 22px;
  border-radius: 22px;
  font-size: 14px;
  font-weight: 600;
}
a.btn-login{
   color: #fff;
}
.btn-login span {
	margin-left:10px;
}
.btn-login:hover { background: var(--gold-dark); }

/* Hamburger toggle (hidden on desktop) */
.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  padding: 8px;
  border-radius: 6px;
}
.nav-burger span {
  display: block;
  height: 3px;
  width: 100%;
  background: var(--ink);
  border-radius: 3px;
  transition: transform 0.3s ease, opacity 0.25s ease;
}

/* ===================== Buttons ===================== */
.btn-gold {
  display: inline-block;
  background: var(--gold);
  color: #fff;
  font-weight: 700;
  letter-spacing: 1px;
  font-size: 15px;
  padding: 12px 26px;
  border-radius: 4px;
}
.btn-gold:hover { background: var(--gold-dark); }

/* ===================== Hero ===================== */
.hero {
  position: relative;
  color: #fff;
  background: #1a140d;
  height:90vh;
  display: flex;
  align-items: center;
}
.hero-inner { padding: 70px 20px 60px; max-width: var(--maxw); }
.hero-star { display: block; margin-bottom: 14px; }
.hero-title { margin: 0 0 26px; font-weight: 400; }
.hero-line1 {
  display: block;
  font-size: 50px;
  font-weight: 400;
  margin-bottom: 6px;
  letter-spacing: 5px;
}
.hero-line2 {
  display: block;
  font-size: 50px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--gold);
  line-height: 1.05;
  letter-spacing: 5px;
}
.hero-cta { margin-bottom: 16px; }
.hero-note {
  display: inline-block;
  background: #fff;
  color: #333;
  font-size: 12px;
  padding: 10px 14px;
  border-radius: 4px;
  max-width: 240px;
  margin: 0;
}

/* Subtle zoom on the hero background image */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(20,16,10,0.55), rgba(20,16,10,0.65)),
    url("../images/slide.jpg") center/cover no-repeat;
  z-index: 0;
  animation: heroZoom 18s ease-in-out infinite alternate;
}
.hero { overflow: hidden; }
.hero-inner { position: relative; z-index: 1; }

@keyframes heroZoom {
  from { transform: scale(1); }
  to   { transform: scale(1.12); }
}

/* Staggered entrance for hero content */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  animation: heroReveal 0.8s ease forwards;
}
.hero-star.reveal   { animation-delay: 0.1s; }
.hero-line1.reveal  { animation-delay: 0.3s; }
.hero-line2.reveal:nth-of-type(1) { animation-delay: 0.5s; }
.hero-title .hero-line2.reveal + .hero-line2.reveal { animation-delay: 0.65s; }
.hero-cta.reveal    { animation-delay: 0.9s; }
.hero-note.reveal   { animation-delay: 1.1s; }

/* Gentle floating loop for the gold star */
.hero-star.reveal { animation: heroReveal 0.8s ease 0.1s forwards, starFloat 4s ease-in-out 1s infinite; }

@keyframes heroReveal {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes starFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-8px) rotate(8deg); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; animation: none; }
  .hero::before { animation: none; }
}

/* ===================== Teal band + pill ===================== */
.band {
  background:	url("../images/green_bg.jpg") center/cover no-repeat;
  padding: 34px 0;
  position: relative;
  box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.6);
}
.pill {
  background: var(--gold);
  color: #fff;
  text-align: center;
  font-weight: 700;
  letter-spacing: 3px;
  font-size: 24px;
  padding: 40px 24px;
  border-radius: 12px;
  max-width: 80%;
  margin: 10px auto -60px auto;
  transform: translateY(28px);
  box-shadow: var(--shadow);
}
.pill-tall { line-height: 1.4; }

/* ===================== Sections & cards ===================== */
.section { padding: 60px 0 150px; background: #fff; }
.what_is {
	background:	url("../images/line_1.png") no-repeat;
	background-position: right bottom -150px;
  background-size: 80%;
}
.card {
  background: var(--card-bg);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 40px;
}

/* Intro card */
.intro-card { margin-top: 20px; }
.intro-grid {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 30px;
  align-items: start;
}
.teal-copy {
  color: var(--teal);
  font-weight: 700;
  letter-spacing: 0.5px;
  font-size: 18px;
  text-transform: uppercase;
  line-height: 1.6;
  margin: 0 0 18px;
}
.intro-media img { border-radius: 6px; width: 100%; }

/* What the questionnaire does */
.does-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 34px 0 20px;
}
.does-head h2 {
  color: var(--teal);
  font-size: 30px;
  letter-spacing: 1px;
  margin: 0;
}
.does-section{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:50px;
}
.does-left{
    flex:1;
}
.does-icon{
    text-align:right;
}
.does-icon img{
    height:auto;
    display:block;
	margin-top:50px;
	max-width: 100px;
}
.does-body {
  display: block;
  grid-template-columns: 1fr 180px;
  gap: 20px;
  align-items: start;
}
.check-list li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 8px;
  font-size: 15px;
  color: #333;
}
.check-list li::before {
  content: "\2714";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--gold);
  font-weight: 700;
}
.check-list li.dotted::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -190px;
  width: 180px;
  border-top: 1px dashed #333;
}
.note-box {
  background: #f3f3f3;
  border-radius: 6px;
  padding: 14px;
  font-size: 12px;
  color: #555;
}
.does-note { align-self: start; }
.does-cta { text-align: right; margin-top: 10px; }

/* Info cards */
.info-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 26px;
  margin-top: 30px;
}
.info-card { padding: 30px 34px; }
.info-icon { display: block; margin-bottom: 16px; }
.info-title {
  color: var(--teal);
  font-size: 17px;
  letter-spacing: 0.5px;
  margin: 0 0 8px;
}
.info-text {
  color: var(--gold-dark);
  font-weight: 600;
  letter-spacing: 1px;
  margin: 0;
  font-size: 15px;
}

/* ===================== Coach card ===================== */
.designed {
	background:	url("../images/line_2.png") no-repeat;
	background-position: left bottom -150px;
  background-size: 60%;
}
.coach-card { margin-top: 20px; }
.coach-top {
  display: grid;
  grid-template-columns: 250px 1fr auto;
  gap: 26px;
  align-items: center;
}
.coach-photo {
  max-width: 250px;
  border-radius: 6px;
}
.coach-name { color: var(--teal); font-size: 40px; margin: 0 0 4px; letter-spacing: 3px; }
.coach-role { color: var(--teal); font-weight: 400; margin: 0; font-size: 22px; letter-spacing: 3px; }
.coach-logo { text-align: center; }
.logo-text {
  display: block;
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--gold-dark);
  font-weight: 700;
  margin-top: 4px;
}

.coach-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 30px;
}
.coach-list li { margin-bottom: 12px; }
.coach-quote {
  position: relative;
  color: var(--teal);
  font-style: italic;
  font-size: 24px;
  line-height: 1.7;
  margin: 0;
  padding: 0 20px;
}
.quote-mark { color: var(--gold); font-size: 40px; font-weight: 700; line-height: 0; }
.quote-open { position: absolute; left: -6px; top: 12px; }
.quote-close { margin-left: 4px; }

.coach-social {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-top: 26px;
}
.social-btn {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--charcoal);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 60px;
}
.social-btn:hover { background: #000; }

/* ===================== Get started card ===================== */
.get_started {
	background:	url("../images/line_1.png") no-repeat;
	background-position: right bottom -150px;
  background-size: 50%;
}
.start-card { margin-top: 20px; }
.video-box {
  background: var(--gold-dark);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #9a8757;
  letter-spacing: 4px;
  font-size: 22px;
  max-width: 70%;
  margin: 0 auto 30px;
  padding: 20px;
}
.start-buttons {
  display: flex;
  gap: 40px;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 70%;
  margin: auto;
}
.start-choice { position: relative; width: calc(50% - 20px); }
.choice-badge {
  position: absolute;
  left: -18px;
  top: -18px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 1px;
  z-index: 2;
  box-shadow: var(--shadow);
}
.choice-badge-right {
  position: absolute;
  right: -18px;
  top: -18px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 1px;
  z-index: 2;
  box-shadow: var(--shadow);
}
.choice-btn {
  display: block;
  background: var(--gold);
  color: #fff;
  border-radius: 6px;
  padding: 22px 40px 22px 50px;
  text-align: center;
  font-weight: 700;
  letter-spacing: 1px;
  min-width: 240px;
}
.choice-btn small { font-weight: 600; font-size: 12px; letter-spacing: 1px; }
.choice-btn:hover { background: var(--gold-dark); }

/* ===================== Footer ===================== */
.site-footer {
  background:	url("../images/footer_bg.jpg") no-repeat;
  color: #d9d5cc;
  margin-top: 0px;
  padding: 100px 0 150px 0;
  background-size: cover;
  border-top:30px solid var(--gold-dark);
}
.footer_logo {
  max-width: 400px;
}
.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 30px;
  flex-wrap: wrap;
}
.footer-name { color: #fff; }
.footer-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 30px;
}
.footer-col h4 {
  color: #fff;
  font-size: 18px;
  letter-spacing: 2px;
  margin: 0 0 12px;
}
.footer-col li { margin-bottom: 8px; }
.footer-col a { font-size: 15px; color: #cfc9bd; }
.footer-col a:hover { color: #fff; }

/* ===================== Responsive ===================== */
@media (max-width: 860px) {
  .hero-line2 { font-size: 36px; }
  .intro-grid,
  .does-body,
  .coach-body { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: 1fr; }
  .coach-top { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .check-list li.dotted::after { display: none; }
  .pill { font-size: 18px; letter-spacing: 2px; }

  /* Show hamburger, collapse nav into a toggle panel */
  .nav-burger { display: flex; }
  .header-inner { flex-wrap: wrap; }
  .main-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: 100%;
    order: 3;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.35s ease, opacity 0.3s ease, margin 0.3s ease;
  }
  .main-nav ul {
    flex-direction: column;
    gap: 0;
    width: 100%;
  }
  .main-nav > ul > li { border-top: 1px solid #eee; }
  .main-nav a { display: block; padding: 12px 20px; }
  .btn-login { align-self: flex-start; margin-top: 8px; }

  /* Dropdowns render inline (static) inside the mobile panel */
  .dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: 0;
    border-radius: 0;
    margin: 0 0 6px 0;
    padding: 0;
    background: #f7f7f7;
  }
  .dropdown a { padding: 10px 18px; font-size: 13px; }
  .dropdown li { border-top: 1px solid #eee; }
  .has-dropdown > a .caret { display: none; }

  /* Open state */
  .nav-toggle:checked ~ .main-nav {
    max-height: 640px;
    opacity: 1;
    margin-top: 10px;
  }
  /* Animate burger into an X */
  .nav-toggle:checked ~ .nav-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .nav-toggle:checked ~ .nav-burger span:nth-child(2) { opacity: 0; }
  .nav-toggle:checked ~ .nav-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
}

@media (max-width: 600px) {
  .hero-line1 { font-size: 26px; }
  .hero-line2 { font-size: 30px; }
  .card { padding: 24px; }
  .footer-inner { flex-direction: column; }
  .footer-links { grid-template-columns: 1fr 1fr; gap: 24px; }
  .video-box { font-size: 18px; }
  .start-choice { width: 100%; }
  .choice-btn { min-width: 0; width: 100%; }
  .site-header { position: relative;}
  .brand {width: 80%;}
  .hero { height: 60vh;}
  .does-section {display: grid; gap: 0px;}
  .does-icon img {margin: auto;}
  .does-left {order: 1;}
  .does-icon {order: 0; margin-top: 50px;}
  .does-cta { text-align: center;}
  .video-box {max-width: 100%;}
  .video-box iframe {height:250px;}
  .start-buttons {max-width: 100%;}
  .footer-brand {width: 100%;}
  .footer_logo { max-width: 100%;}
  .what_is {background-position: right bottom 0px; background-size: 100%;}
  .designed {background-position: left bottom 0px; background-size: 100%;}
  .get_started {background-position: right bottom 0px; background-size: 100%;}
  .site-footer {padding: 5px 0 30px 0;}
}
@media only screen and (min-width: 601px) and (max-width: 860px){
	.video-box {max-width: 100%;}
  .video-box iframe {height:250px;}
  .start-buttons {max-width: 100%;}
  .choice-btn {min-width: initial;}
  .site-footer {padding: 50px 0 50px 0;}
  .hero { height: 60vh;}
  .site-header { position: relative;}
}
@media only screen and (min-width: 861px) and (max-width: 1024px){
	.coach-top {grid-template-columns: 150px 1fr auto;}
	.coach-photo { max-width: 150px;}
	.coach-name {font-size: 34px;}
	.coach-quote {font-size: 20px;}
}
@media only screen and (min-width: 1000px) and (max-width: 1080px){
	.footer_logo {max-width: 300px;}
}