
/* =========================
   TOP BANNER
========================= */
.top-banner {
  position: relative;
  width: 100%;
  height: 500px;
  overflow: visible;
  margin: 0;
}

.top-banner img {
  margin-top:80px;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;

}

@media (max-width: 768px) {
  .top-banner {
    height: 400px;
  }
}

/* overlay text */
.banner-overlay h1 {
  font-size: 34px;
  margin-bottom: 10px;
}

.banner-overlay p {
  font-size: 16px;
  opacity: 0.9;
}


/* =========================
   SLIDER
========================= */
.slider {
  position: relative;
  max-width: 1200px;
  margin: 50px auto;
  overflow: hidden;
  border-radius: 10px;
}

.slides {
  display: flex;
  transition: transform 0.6s ease-in-out;
}

/* chaque slide */
.study-section {
  min-width: 100%;
  display: flex;
  background: white;
}

/* image */
.image-container img {
  width: 500px;
  height: 100%;
  object-fit: cover;
}

/* texte */
.content {
  padding: 30px;
}

.content h1 {
  color: #c1121f;
}
.cta-buttons {
  display: flex;
  gap: 10px;
  margin-top: 15px;
  flex-wrap: wrap;
}

/* bouton principal */
.btn {
  text-decoration: none;
  padding: 10px 15px;
  border-radius: 6px;
  font-weight: bold;
  display: inline-block;
  transition: 0.3s;
}

.btn.primary {
  background: #c1121f;
  color: white;
}

.btn.primary:hover {
  background: #a50f18;
}

/* bouton secondaire */
.btn.secondary {
  background: transparent;
  color: #c1121f;
  border: 2px solid #c1121f;
}

.btn.secondary:hover {
  background: #c1121f;
  color: white;
}
.btn i {
  margin-right: 8px;
}

/* boutons slider */
button.prev,
button.next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: #c1121f;
  color: white;
  border: none;
  font-size: 20px;
  padding: 10px;
  cursor: pointer;
  border-radius: 50%;
  width: 45px;
}

.prev { left: 10px; }
.next { right: 10px; }

/* dots */
.dots {
  text-align: center;
  margin-top: 10px;
}

.dot {
  height: 10px;
  width: 10px;
  margin: 5px;
  display: inline-block;
  background: #000;
  border-radius: 50%;
  cursor: pointer;
}

.dot.active {
  background: #c1121f;
}


/* =========================
   CANADA CONTENT SECTION
========================= */
.canada-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  line-height: 1.7;
}

.canada-section h1 {
  color: #c1121f;
}

.canada-section h2 {
  margin-top: 30px;
  color: #0c0c0c;
}

.canada-section h3 {
  margin-top: 20px;
  color: #444;
}

.canada-section hr {
  margin: 25px 0;
  color: #c1121f;
  height: 2px;
  border-color: #c1121f;
}


/* =========================
   PAGE LAYOUT (2 COLONNES)
========================= */
.page-container {
  display: flex;
  gap: 20px;
  max-width: 1400px;
  margin: 30px auto;
}

.left-panel {
  flex: 2;
}

.right-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}


/* =========================
   BOX DROITE
========================= */
.box {
  background: white;
  padding: 20px;
  border-radius: 10px;
}

.box h1, .box h3 {
  margin-bottom: 10px;
  color: #c1121f;
}

.destinations-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.destinations-box li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  margin-bottom: 8px;
  border-radius: 6px;
  background: #f8f8f8;
  cursor: pointer;
  transition: 0.3s;
}

/* hover moderne */
.destinations-box li:hover {
  background: #c1121f;
  color: white;
  transform: translateX(5px);
}

.destinations-box li i {
  color: #c1121f;
  transition: 0.3s;
}

/* icône blanche au hover */
.destinations-box li:hover i {
  color: white;
}

.destinations-box h3 {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* FORM */
.box form {
padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  border-color: #c1121f;
  border-width: 2px;
  border-style: solid;
  border-radius: 10px;
}

.box select {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
  background: white;
  width: 100%;
  cursor: pointer;
}

.box select:focus {
  outline: none;
  border-color: #c1121f;
}

.box input,
.box textarea {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.box button {
  background: #c1121f;
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
}

.box button:hover {
  background: #a50f18;
}



/* =========================
   RESPONSIVE GLOBAL
========================= */
@media (max-width: 900px) {
  .page-container {
    flex-direction: column;
  }

  .image-container img {
    width: 100%;
  }
}

/* ==========================
   ETAPES PRINCIPALES
========================== */

.steps-section{
    margin:40px 0;
}

.steps-title{
    display:flex;
    align-items:center;
    gap:12px;

    font-size:28px;
    font-weight:700;
    color:#111827;

    margin-bottom:30px;
}

.steps-title i{
    color:#c1121f;
}

/* GRID */

.steps-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

/* CARD */

.step-card{
    position:relative;

    background:#fff;

    padding:35px 25px;

    border-radius:20px;

    overflow:hidden;

    box-shadow:
    0 10px 30px rgba(0,0,0,.06);

    transition:
    transform .4s ease,
    box-shadow .4s ease;

    animation:fadeUp .8s ease forwards;

    opacity:0;
}

/* délais d'apparition */

.step-card:nth-child(1){
    animation-delay:.2s;
}

.step-card:nth-child(2){
    animation-delay:.4s;
}

.step-card:nth-child(3){
    animation-delay:.6s;
}

/* bordure animée */

.step-card::before{
    content:"";

    position:absolute;
    top:0;
    left:0;

    width:100%;
    height:5px;

    background:
    linear-gradient(
        90deg,
        #060038,
        #001a38
    );

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s ease;
}

.step-card:hover::before{
    transform:scaleX(1);
}

.step-card:hover{
    transform:
    translateY(-12px);

    box-shadow:
    0 20px 50px rgba(0,0,0,.15);
}

/* NUMERO */

.step-number{
    width:70px;
    height:70px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:
    linear-gradient(
        135deg,
        #ffbb00,
        #fffb02
    );

    color:#010033;

    font-size:22px;
    font-weight:800;

    margin-bottom:20px;

    transition:.4s ease;
}

.step-card:hover .step-number{
    transform:
    rotate(10deg)
    scale(1.08);
}

/* TITRE */

.step-card h4{
    font-size:22px;
    color:#111827;

    margin-bottom:15px;

    line-height:1.3;
}

/* TEXTE */

.step-card p{
    color:#6b7280;
    line-height:1.8;
    font-size:15px;
}

/* ANIMATION */

@keyframes fadeUp{

    from{
        opacity:0;
        transform:
        translateY(40px);
    }

    to{
        opacity:1;
        transform:
        translateY(0);
    }
}

/* RESPONSIVE */

@media(max-width:992px){

    .steps-grid{
        grid-template-columns:1fr;
    }

    .step-card{
        padding:25px;
    }
}