
/* =========================================================
   PRICING
========================================================= */

.pricing-section {
  background-color: #545051;
  padding: 5px 0;
  text-align: center;
}

.pricing-intro {
  text-align: center;
  margin: 70px auto 55px;
  color: white;
}

.pricing-kicker {
  display: inline-block;
  color: #d6aa18;
  font-size: 16px;
  letter-spacing: 7px;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 18px;
}

.pricing-intro h2 {
  max-width: 760px;
  margin: 0 auto;

  color: white;
  font-family: Georgia, serif;
  font-size: 44px;
  font-weight: 400;
  line-height: 1.15;
}

.pricing-section h2 {
  color: white;
  font-size: 50px;
  font-family: "Candara", sans-serif;
  margin-bottom: 30px;
   padding-left: 85px;
  text-align: left;
}

.pricing-day {
  position: relative;

  margin: 50px auto 35px;

  color: #d6aa18;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 26px;

  text-align: center;
  text-transform: uppercase;
  letter-spacing: 8px;
}

.pricing-day::before,
.pricing-day::after {
  content: "";
  display: inline-block;

  width: 220px;
  height: 1px;

  margin: 0 28px;

  background: rgba(214, 170, 24, 0.75);
  vertical-align: middle;
}

.pricing-inner {
  max-width: 1200px;
  margin: 0 auto 40px;

  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: nowrap;
}

.pricing-box {
  position: relative;
  z-index: 1;

  width: 310px;
  min-height: 380px;
  padding: 40px 30px;

  display: flex;
  flex-direction: column;
  flex-shrink: 0;

  background-color: rgba(255, 255, 255, 0.85);
  border-radius: 15px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);

  overflow: hidden;
}

.pricing-box::before {
  content: "";
  position: absolute;
  inset: 0;

  background-image: url("../images/loggasvart.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 290px;

  opacity: 0.15;
  z-index: 0;
}

.pricing-box h3 {
  font-size: 28px;
  margin-bottom: 10px;
}

.pricing-box .level {
  font-size: 18px;
  font-weight: 600;
  color: #555;
  margin-bottom: 18px;
}

.pricing-box p {
  font-size: 16px;
  margin-bottom: 20px;
}

.pricing-box span {
  display: inline-block;

  margin-top: auto;
  padding: 10px 24px;

  background: #111;
  color: #d6aa18;

  font-size: 18px;
  font-weight: 800;

  border-radius: 40px;
}

.class-time {
  margin-top: -5px;
  margin-bottom: 15px;

  color: #b91c1c;
  font-size: 16px;
  font-weight: 600;
}


/* =========================================================
   DISCOUNTS
========================================================= */

.discount-box {
  max-width: 1000px;
  margin: 40px auto 0;
  padding: 2px 5px;

  background: rgba(255, 255, 255, 0.92);

  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);

  text-align: center;
}

.discount-box h3 {
  margin-bottom: 2px;

  color: #111;
  font-size: 25px;
}

.discount-subtitle {
  margin-bottom: 8px;
  font-size: 18px;
}

.discount-content {
  display: flex;
  justify-content: center;
  align-items: center;

  gap: 35px;
  margin-bottom: 22px;
}

.discount-offer {
  flex: 1;
}

.discount-offer h4 {
  margin-bottom: 2px;

  color: #b91c1c;
  font-size: 22px;

  text-transform: uppercase;
}

.discount-offer p {
  margin: 2px 0;

  font-size: 10px;
  text-transform: uppercase;
}

.discount-offer p span {
  color: #b91c1c;

  font-size: 50px;
  font-weight: 800;
}

.discount-offer small {
  display: inline-block;

  margin-top: 8px;
  padding: 8px 18px;

  background: rgba(185, 28, 28, 0.08);

  border-radius: 30px;
  font-size: 15px;
}

.discount-offer small strong {
  color: #b91c1c;
}

.discount-divider {
  width: 1px;
  height: 120px;

  background: rgba(0, 0, 0, 0.15);
}

.partner-discount {
  max-width: 800px;

  margin: 10px auto 0;
  padding: 16px 24px;

  background: rgba(185, 28, 28, 0.07);

  border-radius: 14px;

  font-size: 17px;
  line-height: 1.5;
}

.partner-discount strong,
.partner-discount span {
  color: #b91c1c;
}

.partner-discount span {
  font-weight: 700;
}

.discount-note {
  margin-top: 16px;

  font-size: 15px;
  font-style: italic;
}


/* =========================================================
   CTA / TERMS
========================================================= */

.cta-section {
  padding: 80px 20px 60px;

  background: transparent;
  color: white;

  text-align: center;
}

.cta-inner {
  width: 100%;
  max-width: 850px;
  margin: 0 auto;
}

.cta-title {
  margin: 0;

  color: white;

  font-family: "Playfair Display", serif;
  font-size: clamp(34px, 5vw, 54px);
  font-weight: 600;
  line-height: 1.15;
}

.cta-subtitle {
  margin: 12px 0 28px;

  color: #efefef;

  font-family: "Playfair Display", serif;
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.5;
}

.term-heading {
  margin: 0 0 20px;

  color: #d6aa18;

  font-family: "Cinzel", serif;
  font-size: 18px;
  font-weight: 600;

  letter-spacing: 2px;
  text-transform: uppercase;
}

.term-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px;

  width: 100%;
}

.term-card {
  display: flex;
  flex-direction: column;
  align-items: center;

  padding: 25px 25px 22px;

  background: rgba(5, 5, 5, 0.82);

  border: 1.5px solid #d6aa18;
  border-radius: 12px;

  box-shadow:
    0 12px 35px rgba(0, 0, 0, 0.35),
    inset 0 0 25px rgba(214, 170, 24, 0.03);

  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.term-card:hover {
  transform: translateY(-5px);

  border-color: #efc844;

  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.45),
    0 0 18px rgba(214, 170, 24, 0.12);
}

.term-card-title {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 18px;
}

.term-card-title i {
  color: #d6aa18;
  font-size: 25px;
}

.term-card-title h3 {
  margin: 0;

  color: #d6aa18;

  font-family: "Cinzel", serif;
  font-size: 25px;
  font-weight: 600;

  text-transform: uppercase;
}

.term-period {
  margin: 16px 0 15px;

  color: white;

  font-family: "Playfair Display", serif;
  font-size: 18px;

  text-transform: uppercase;
}

.term-divider {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 9px;

  width: 80%;
  margin-bottom: 20px;
}

.term-divider span {
  display: block;

  width: 48%;
  height: 1px;

  background: rgba(214, 170, 24, 0.65);
}

.term-divider b {
  display: block;

  width: 7px;
  height: 7px;

  background: #d6aa18;

  transform: rotate(45deg);
}


/* =========================================================
   CLASSES
========================================================= */

.classes-section {
  padding: 40px 20px;

  background-color: #545051;

  text-align: center;
}

.classes-section h2 {
  margin-bottom: 30px;
  padding-right: 85px;

  color: white;

  font-family: "Candara", sans-serif;
  font-size: 50px;

  text-align: right;
}

.classes-inner {
  max-width: 1200px;
  margin: 0 auto;

  display: flex;
  justify-content: center;
  flex-wrap: wrap;

  gap: 60px;
}


/* =========================================================
   CLASS CARDS
========================================================= */

.class-card {
  position: relative;

  width: 320px;
  height: 460px;

  padding: 30px;

  display: flex;
  flex-direction: column;
  justify-content: flex-end;

  background-size: cover;
  background-position: center;

  color: white;

  text-align: left;

  border-radius: 18px;

  overflow: hidden;

  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

/* Mörk overlay ovanpå bilden */

.class-card::after {
  content: "";

  position: absolute;
  inset: 0;

  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.38),
    rgba(0, 0, 0, 0.55)
  );

  z-index: 0;
}

/* Texten ska ligga ovanpå overlay */

.class-card h3,
.class-card p {
  position: relative;
  z-index: 1;
}

.class-card h3 {
  margin-bottom: 10px;

  font-size: 28px;
}

.class-card p {
  font-size: 16px;
  line-height: 1.5;
}


/* =========================================================
   AUTUMN SIGNUP
========================================================= */

.autumn-signup-box {
  max-width: 1250px;

  margin: 35px auto 0;
  padding: 10px 20px;

  display: grid;
  grid-template-columns: 1.2fr 1fr auto;
  align-items: center;

  gap: 30px;

  background: linear-gradient(135deg, #111, #050505);

  border: 2px solid #d6aa18;
  border-radius: 25px;

  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35);
}

.autumn-kicker {
  margin: 0;

  color: white;

  font-size: 22px;
  font-weight: 800;

  text-transform: uppercase;
}

.autumn-signup-box h3 {
  margin: 0;

  color: #d6aa18;

  font-size: 38px;

  text-transform: uppercase;
}

.autumn-signup-box h3 span {
  color: white;
}

.autumn-signup-box p {
  margin: 0;

  color: #ddd;
  font-size: 17px;
}


/* =========================================================
   OPEN HOUSE
========================================================= */

.open-house-section,
.open-house-card,
.autumn-signup-box {
  max-width: 100%;
  overflow: hidden;
}

.open-house-section {
  padding: 20px 5% 70px;

  color: white;
}

.open-house-card {
  position: relative;

  width: 100%;
  max-width: 1050px;

  margin: auto;
  padding: 35px 45px;

  display: flex;
  justify-content: center;

  background:
    radial-gradient(
      circle at right,
      rgba(214, 170, 24, 0.28),
      transparent 35%
    ),
    linear-gradient(
      135deg,
      #050505,
      #1a1a1a 55%,
      #3a3425
    );

  border: 2px solid #d6aa18;
  border-radius: 28px;

  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);

  overflow: hidden;
}

.open-house-card::before {
  content: "";

  position: absolute;

  right: -220px;
  top: -160px;

  width: 500px;
  height: 500px;

  border: 28px solid rgba(214, 170, 24, 0.35);
  border-radius: 50%;

  box-shadow: 0 0 0 35px rgba(214, 170, 24, 0.12);
}

.open-house-content {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: 900px;

  text-align: center;
}

.open-house-logo {
  width: 190px;

  margin-bottom: 15px;

  filter: drop-shadow(
    0 0 12px rgba(214, 170, 24, 0.45)
  );
}

.open-house-kicker {
  margin: 0;

  font-size: 30px;
  font-weight: 700;

  letter-spacing: 1px;
}

.open-house-content h2 {
  margin: 5px 0 20px;

  color: white;

  font-family:
    Impact,
    Haettenschweiler,
    "Arial Narrow Bold",
    sans-serif;

  font-size: 82px;
  line-height: 0.95;

  text-transform: uppercase;

  text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.5);
}

.open-house-content h2 span {
  color: #d6aa18;
}

.open-house-date {
  display: inline-flex;
  align-items: center;

  gap: 12px;

  margin-bottom: 10px;
  padding: 12px 22px;

  background: rgba(214, 170, 24, 0.14);

  border: 1px solid #d6aa18;
  border-radius: 50px;

  font-size: 28px;
}

.open-house-date i {
  color: #d6aa18;
}

.open-house-subtitle {
  margin: 10px 0 30px;

  color: #d6aa18;

  font-size: 20px;
  font-weight: 700;

  text-transform: uppercase;
}

.open-house-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 25px;

  margin: 30px 0;
}

.open-house-points div {
  padding-left: 20px;

  border-left: 1px solid rgba(214, 170, 24, 0.55);
}

.open-house-points div:first-child {
  padding-left: 0;
  border-left: none;
}

.open-house-points i {
  margin-bottom: 10px;

  color: #d6aa18;

  font-size: 34px;
}

.open-house-points p {
  margin: 0;

  font-weight: 800;
  line-height: 1.25;
}

.open-house-points span {
  color: #d6aa18;

  font-weight: 500;
}

.open-house-alert {
  display: flex;
  align-items: center;

  gap: 18px;

  margin: 25px 0;
  padding: 18px 22px;

  border-top: 2px dotted #d6aa18;
  border-bottom: 2px dotted #d6aa18;
}

.open-house-alert i {
  color: #d6aa18;
  font-size: 42px;
}

.open-house-alert p {
  margin: 0;

  font-size: 18px;
  line-height: 1.5;
}

.open-house-alert strong {
  color: #d6aa18;
}

.open-house-small {
  margin-top: 15px;

  color: #ddd;

  font-size: 16px;
}

/*
   Själva knappdesignen ligger i components.css.
   Här styr vi bara dess position i Open House.
*/

.open-house-button {
  margin-top: 10px;
}


/* =========================================================
   REVIEWS
========================================================= */

.reviews-section {
  position: relative;

  padding: 48px 5%;

  background:
    radial-gradient(
      circle at top right,
      rgba(212, 169, 30, 0.10),
      transparent 35%
    ),
    #f3eee6;

  border-top: 1px solid rgba(212, 169, 30, 0.35);
  border-bottom: 1px solid rgba(212, 169, 30, 0.35);

  text-align: center;

  overflow: hidden;
}

.reviews-section h2 {
  margin: 0;

  color: #3f3b3c;

  font-family: "Candara", sans-serif;
  font-size: 30px;
  font-weight: 700;
}

.reviews-title-line {
  width: 46px;
  height: 2px;

  margin: 13px auto 27px;

  background: #d4a91e;

  border-radius: 10px;
}

.reviews-viewport {
  width: 100%;
  max-width: 920px;

  margin: 0 auto;

  overflow: hidden;
}

.reviews-track {
  display: flex;

  transition: transform 0.8s ease-in-out;
}

.review-card {
  flex: 0 0 50%;

  padding: 8px 38px 24px;

  color: #3f3b3c;
}

.review-card img {
  display: block;

  width: 90px;
  height: 90px;

  margin: 0 auto 20px;

  object-fit: cover;

  border: 2px solid #d4a91e;
  border-radius: 50%;

  box-shadow:
    0 5px 14px rgba(63, 59, 60, 0.13);
}

.review-card p,
.review-text {
  max-width: 390px;
  min-height: 58px;

  margin: 0 auto 15px;

  color: #454041;

  font-size: 15px;
  font-style: italic;
  line-height: 1.6;
}

.review-card strong::before,
.review-name::before {
  content: "";

  display: block;

  width: 30px;
  height: 2px;

  margin: 13px auto 9px;

  background: #d4a91e;

  border-radius: 10px;
}

.review-action {
  margin-top: 18px;
}

.review-card span {
  font-weight: 600;
  letter-spacing: 0.5px;
}


/* =========================================================
   VIDEO SHOWCASE
========================================================= */

.video-showcase {
  padding: 1px;

  background: #545051;

  text-align: right;
}

.video-showcase h2 {
  margin-bottom: 30px;
  padding-left: 85px;

  color: white;

  font-family: "Candara", sans-serif;
  font-size: 50px;

  text-align: left;
}

.video-grid {
  max-width: 1200px;
  margin: auto;

  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 40px;
}

.video-card {
  position: relative;

  overflow: hidden;

  border-radius: 18px;

  cursor: pointer;
}

.video-card img {
  display: block;

  width: 100%;

  transition: transform 0.6s ease;
}

.video-card:hover img {
  transform: scale(1.05);
}

.play-overlay {
  position: absolute;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(0, 0, 0, 0.35);

  opacity: 0;

  transition: opacity 0.4s ease;
}

.video-card:hover .play-overlay {
  opacity: 1;
}

.play-overlay i {
  color: white;
  font-size: 3rem;
}


/* =========================================================
   WHY A MI TALLA
========================================================= */

.why-amitalla {
  padding: 80px 20px;

  background: linear-gradient(
    180deg,
    #545051,
    #3f3b3c
  );
}

.highlight {
  font-weight: 600;
}

.founder-wrap {
  max-width: 1000px;

  margin: auto;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: 55px;
}

.founder-img {
  width: 330px;
  height: auto;

  filter:
    drop-shadow(
      0 25px 35px rgba(0, 0, 0, 0.35)
    );
}

.speech-bubble {
  position: relative;

  max-width: 430px;

  padding: 35px 38px;

  background: white;

  border-radius: 28px;

  box-shadow:
    0 20px 45px rgba(0, 0, 0, 0.22);
}

/* Pratbubbel-pilen */

.speech-bubble::before {
  content: "";

  position: absolute;

  left: -18px;
  top: 45px;

  width: 0;
  height: 0;

  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-right: 18px solid white;
}

.speech-bubble p {
  margin: 0;

  font-size: 20px;
  line-height: 1.55;
}


/* =========================================================
   CONTACT
========================================================= */

.contact-location-section {
  padding: 90px 7% 70px;

  background: #050505;
  color: white;
}

.contact-header {
  margin-bottom: 60px;

  text-align: center;
}

.contact-header p:first-child {
  color: #ff1b1b;

  font-size: 16px;
  font-weight: bold;

  letter-spacing: 4px;
}

.contact-header h2 {
  margin: 10px 0;

  font-family: "Playfair Display", serif;
  font-size: 56px;
}

.contact-header span {
  display: block;

  width: 80px;
  height: 2px;

  margin: 20px auto;

  background: #ff1b1b;
}

.contact-intro {
  max-width: 650px;

  margin: auto;

  color: #ccc;

  font-size: 18px;
}

.contact-grid {
  max-width: 1300px;

  margin: auto;

  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 50px;
}

.contact-column {
  padding-left: 35px;

  border-left:
    1px solid rgba(255, 255, 255, 0.2);
}

.contact-column:first-child {
  border-left: none;
}

.contact-icon {
  margin-bottom: 20px;

  color: #ff1b1b;

  font-size: 32px;
}

.contact-column h4 {
  margin-bottom: 15px;

  color: #ff1b1b;

  font-size: 14px;

  letter-spacing: 4px;
}

.contact-column h3 {
  margin: 10px 0;

  font-family: "Playfair Display", serif;
  font-size: 32px;
}

.contact-column p {
  color: #ddd;

  font-size: 16px;
  line-height: 1.6;
}

.map-box {
  width: 100%;
  height: 210px;

  margin: 25px 0;

  border-radius: 14px;

  overflow: hidden;
}

.map-box iframe {
  width: 100%;
  height: 100%;

  border: none;

  filter:
    grayscale(100%)
    invert(90%);
}

.address strong {
  color: white;
}

.contact-card {
  display: flex;
  align-items: center;

  gap: 20px;

  margin: 20px 0;
  padding: 22px;

  background:
    rgba(255, 255, 255, 0.07);

  border-radius: 14px;
}

.contact-card i {
  color: #ff1b1b;

  font-size: 26px;
}

.contact-card strong {
  display: block;

  margin-bottom: 5px;

  font-size: 18px;
}

.contact-card a {
  color: #ff1b1b;

  text-decoration: none;
}

.note {
  margin-top: 25px;

  font-style: italic;
}

.term-date {
  color: #ff1b1b !important;

  font-size: 18px;
}

.schedule-days {
  display: flex;

  gap: 15px;

  margin: 20px 0;
}

.schedule-days span {
  padding: 12px 20px;

  background:
    rgba(255, 255, 255, 0.08);

  border-radius: 8px;
}

.time {
  color: white !important;

  font-size: 20px !important;
}

.contact-column hr {
  margin: 30px 0;

  border: none;
  border-top:
    1px solid rgba(255, 255, 255, 0.2);
}

.small-info {
  margin-top: 25px;

  color: #bbb !important;
}