/* ===== Planning – Intro (title + image + note) ===== */
.plan-tab{
  padding-left: 30px;
  padding-right: 30px;
}
.plan-hero {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 60px;
}

.plan-title {
    max-width: 550px;
    margin: auto;
    color: #1C1C1E;
    text-align: center;
    font-family: Montserrat;
    font-size: 36px;
    font-style: normal;
    font-weight: 500;
}

.plan-title .highlight {
    background: linear-gradient(90deg, #6EC7AE 0%, #152823 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-family: Montserrat;
    font-size: 36px;
    font-style: normal;
    font-weight: 700;
    display: inline-block;
    background-size: 100% 100%;
    background-position: 0 0;
    background-repeat: no-repeat;
}

.plan-hero-grid {
  display: grid;
  grid-template-columns: auto auto; /* shrink to fit content instead of 1fr 1fr */
  gap: 60px;                        /* keep spacing between them */
  align-items: start;
  justify-content: center;          /* center the whole group */
  margin: 80px auto 120px;
}

/* Left: drawing image with two floating badges */
.plan-hero-media {
  position: relative;
  /* lock the entire media block (image + badges) to the design ratio */
  aspect-ratio: 485 / 323;
}

.plan-hero-img {
    display: block;
    max-width: 485px;
    max-height: 323px;
    flex-shrink: 0;
    border: 1px solid #CCC;
}

.plan-hero-badges {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.badge-cube {
    position: absolute;
    width: 125px;
    height: 125px;
    flex-shrink: 0;
    border-radius: 30px;
    background: rgba(234, 235, 235, 0.25);
    box-shadow: 0 2px 15px 0 rgba(57, 103, 90, 0.15), 0 2px 3px 0 #FFF inset;
    backdrop-filter: blur(2.5px);
    display: grid;
    place-items: center;
}

.badge-cad {
    position: absolute;
    width: 105px;
    height: 105px;
    flex-shrink: 0;
    border-radius: 30px;
    background: rgba(234, 235, 235, 0.25);
    box-shadow: 0 2px 15px 0 rgba(57, 103, 90, 0.15), 0 2px 3px 0 #FFF inset;
    backdrop-filter: blur(2.5px);
    display: grid;
    place-items: center;
}

.badge-cube img { 
    width: 80px; 
    height: 80px; 
    margin-bottom: 5px;
}

.badge-cad img { 
    width: 58px; 
    height: 58px; 
}

/* positions per screenshot */
.badge-cube { left: 120px; bottom: -83px; }
.badge-cad  { left: 260px; bottom: -56px; }

.badge-cube2 {
    position: absolute;
    width: 125px;
    height: 125px;
    flex-shrink: 0;
    border-radius: 30px;
    background: rgba(234, 235, 235, 0.25);
    box-shadow: 0 2px 15px 0 rgba(57, 103, 90, 0.15), 0 2px 3px 0 #FFF inset;
    backdrop-filter: blur(2.5px);
    display: none;
    place-items: center;
    visibility: none;
}

.badge-cad2 {
    position: absolute;
    width: 105px;
    height: 105px;
    flex-shrink: 0;
    border-radius: 30px;
    background: rgba(234, 235, 235, 0.25);
    box-shadow: 0 2px 15px 0 rgba(57, 103, 90, 0.15), 0 2px 3px 0 #FFF inset;
    backdrop-filter: blur(2.5px);
    display: none;
    place-items: center;
}

.badge-cube2 img { 
    width: 80px; 
    height: 80px; 
    margin-bottom: 5px;
}

.badge-cad2 img { 
    width: 58px; 
    height: 58px; 
}

/* positions per screenshot */
.badge-cube2 { left: 120px; bottom: -83px; }
.badge-cad2  { left: 260px; bottom: -56px; }

/* Right: dashed note card */
.plan-hero-note {
    margin-top: 30px;
    border-radius: 30px;
    border: 2px dashed #6EC7AE;
    background: #ffffff;
    max-width: 550px;
    height: auto;
    padding: 30px;
}

.plan-hero-note p {
    color: #2c2c30;
    font-family: Geologica;
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
}

/* ===== Programs we use ===== */

.plan-software {
  max-width: 1200px;
  margin: auto;
}

.section-title {
    color: #000;
    text-align: center;
    font-family: Montserrat;
    font-size: 36px;
    font-style: normal;
    font-weight: 500;
}

.software-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 0 auto;
    max-width: 724px;
    min-height: 197px;
    flex-shrink: 0;
    border-radius: 30px;
    background: linear-gradient(180deg, #EAEBEA 0%, #C6E6DF 100%);
    padding: 20px;
    margin-top: 60px;
    margin-bottom: 120px;
}

.software-card {
    display: flex;
    align-items: center;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(247, 248, 250, 0.70) 0%, rgba(247, 248, 250, 0.35) 100%);
    box-shadow: 0 1px 3px 1px #FFF inset;
    max-width: auto;
    min-height: 137px;
    flex-shrink: 0;
}
.software-card img { 
    max-height: 78px; 
    width: auto;
    margin: auto; 
}

/* ===== FAQ ===== */

.plan-faq {
  max-width: 1200px;
  margin: 24px auto 60px;
}

.faq-title {
    text-align: center;
    font-family: Montserrat;
    font-size: 36px;
    font-style: normal;
    font-weight: 500;
    margin-bottom: 60px;
    padding-left: 20px;
    padding-right: 20px;
}
.faq-title .highlight {
    background: linear-gradient(90deg, #6EC7AE 0%, #152823 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
}

/* Item (closed state per screenshot) */
.faq-item {
  border-radius: 35px;
  background: #eaebea;
  padding: 20px;
  margin-bottom: 20px;
}

.faq-item:hover, .faq-hover:hover, .faq-question:hover {
  cursor: pointer;
}


.faq-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 8px 6px;
}

.faq-question {
    color: #1C1C1E;
    font-family: Montserrat;
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
}

.faq-question {
  user-select: none;           /* Standard */
  -webkit-user-select: none;   /* Safari */
  -moz-user-select: none;      /* Firefox */
  -ms-user-select: none;       /* Internet Explorer/Edge */
  cursor: default;
}

/* Round + button at the right */
.faq-toggle {
  pointer-events: auto;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 0;
  background: #f7f8f9;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.faq-toggle:hover { 
    background-color: white;
}
.faq-toggle:active { transform: scale(0.95); }
.faq-toggle-icon { 
  width: 17px; 
  height: 17px; 
  margin-top: 3px;
  transform: rotateX(0deg);
  transition: transform 0.2s ease;
}
.faq-item.open .faq-toggle-icon {
  transform: rotateX(-180deg);
  margin-top: -1px;
}

/* FAQ – animated expand/collapse */
.faq-body {
  border-radius: 20px;
  background: #f7f8f9;
  color: #2c2c30;
  font-family: Geologica;
  font-size: 20px;
  font-weight: 200;
  line-height: normal;
  margin-top: 10px;     /* keep fixed */
  padding: 15px 20px;
}

.faq-body:hover{
  cursor: text;
}

@media (max-width: 1180px) {
  .plan-hero-grid {
    grid-template-columns: 1fr; /* stack into one column */
    gap: 120px; /* reduce gap when stacked */
    justify-items: center; /* center the single column content */
    margin: 60px auto 80px;
  }
  .plan-hero-note {
    max-width: 600px; /* let note card shrink for mobile */
  }
  .software-list{
    margin-bottom: 80px;
  }
}

@media (max-width: 940px) {
    .plan-title, .plan-title .highlight, .section-title, .faq-title, .faq-title .highlight {
        font-size: 30px;
    }

    .faq-question{
      font-size: 22px;
      padding-right: 20px;
    }
}

@media (max-width: 800px) {
  .software-list {
    grid-template-columns: 1fr; /* stack into one column */
    gap: 22px; /* reduce gap when stacked */
    justify-items: center;
    max-width: 377px; /* center the single column content */
  }

  .software-card{
    width: 100%;
  }

  .section-title{
    max-width: 377px;
    margin: auto;
    padding-left: 15px;
    padding-right: 15px;
  }
}

@media (max-width: 650px) {
  .plan-hero-note {
    width: 100%;
  }

  .plan-hero-grid{
    grid-template-columns: 100%;
    gap: 100px;
  }
}

@media (max-width: 530px) {
  .plan-hero-media{
    /* start shrinking from this breakpoint */
    width: 100%;
  }

  .plan-hero-img{
    /* fill the aspect-ratio box without distortion */
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: contain;
  }

  .badge-cube,
  .badge-cad {
    display: none;
  }
  
  .badge-cad2 {
    left: 50%;
    bottom: auto;
    top: 105%;
    transform: translate(15%, -65%);
    display: grid;
  }

  .badge-cube2 {
    left: 50%;
    bottom: auto;
    top: 105%;
    transform: translate(-95%, -50%);
    display: grid;
  }
}

@media (max-width: 600px) {
  .plan-hero, .plan-software {
    max-width: 100%;   /* allow full shrink */
  }
  .plan-title, .section-title, .faq-title{
    font-size: 28px;
    padding-left: 15px;
    padding-right: 15px;
  }

  .plan-tab{
    padding: 20px;
    padding-top: 0px;
  }

  .plan-title .highlight, .faq-title .highlight{
    font-size: 28px;
  }

  .faq-question{
      font-size: 20px;
      padding-right: 20px;
    }

  .plan-faq{
    margin: 24px auto 30px;
  }
  .faq-item{
    margin-bottom: 15px;
  }
  .faq-title{
    margin-bottom: 40px;
  }
  .software-list{
    margin-top: 40px;
    margin-bottom: 60px;
  }
  .plan-hero-grid {
    margin: 60px auto 60px;
  }
  .software-list{
    padding: 15px;
    gap: 15px;
  }
  .software-card{
    max-width: none;
    width: 100%;
  }
  .plan-hero-note{
    padding: 20px;
  }
}

@media (max-width: 400px){
  .plan-title, .section-title, .faq-title{
    padding-left: 0px;
    padding-right: 0px;
  }
}

/* Plan page animations */
.plan-title,
.plan-hero-grid,
.plan-software,
.plan-faq {
  opacity: 0;
  animation: fadeSlideIn 0.5s ease-out forwards;
}

.plan-title {
  animation-delay: 0s;
}

.plan-hero-grid {
  animation-delay: 0.2s;
}

.plan-software {
  animation-delay: 0.4s;
}

.plan-faq {
  animation-delay: 0.6s;
}

@keyframes floatSoftUp {
  0%, 100% { transform: translateY(3px); }
  50%      { transform: translateY(-3px); }
}

@keyframes floatSoftDown {
  0%, 100% { transform: translateY(-3px); }
  50%      { transform: translateY(3px); }
}

.badge-cube {
  animation: floatSoftUp 6s ease-in-out infinite;
}

.badge-cad {
  animation: floatSoftDown 6s ease-in-out infinite;
}

.badge-cube2-an {
  animation: floatSoftUp 6s ease-in-out infinite;
}

.badge-cad2-an {
  animation: floatSoftDown 6s ease-in-out infinite;
}

.badge-cad2-an, .badge-cube2-an {
  position: absolute; /* overlays without affecting layout */
  inset: 0;           /* stretch over the media container */
  pointer-events: none; /* so clicks pass through */
}


