@import url('https://fonts.googleapis.com/css2?family=Ysabeau+Office:ital,wght@0,1..1000;1,1..1000&display=swap');

*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Ysabeau Office", sans-serif;
  font-weight: 400;
  font-style: normal;
}

body{
  width: 100%;
  min-height: 100vh; 
  display: flex;
  flex-direction: column;
  align-items: center;
}

.Navbar{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 70vw; 
  backdrop-filter: blur(3px);
  position: sticky;
  top: 2rem;
  left: 50%; 
  padding: 1rem 3rem;
  border-radius: 4rem;
  transform: translateX(-20%);
  background-color: transparent;
  box-shadow: -2px 3px 20px rgba(0,0,0,.2);
  z-index: 1111;
  border: .8px solid rgb(187, 183, 183);
}

.Navbar .logo img{
  width: 150px;
}

.menu-toggle {
  display: none;
  font-size: 1.5rem;
  cursor: pointer;
}

.Navbar ul{
  display: flex;
  gap: 2rem;
  list-style: none; 
}

.Navbar ul a{
  text-decoration: none;
  color: rgb(13, 1, 36);
}

.Navbar ul a:hover{
  color: #009CE1 !important;
}


/* Hero Section */
.HeroSection{
  width: 100%;
  padding: 20vh 10vw;
  display: flex; 
  align-items: center;
  gap: 20%; 
}

.HeroSection .Hero-text{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 45%;
}

.HeroSection .Hero-text h2{
  font-weight: 900;
  font-size: 2rem;
  text-transform: uppercase;
  line-height: 2.2rem;
  color: #1A1246;
}

.HeroSection .Hero-text p b{
  color: #009CE1;
  font-weight: 700;
}

.HeroSection .heroImage{
  width: 40%;
  height: 100%;
  position: relative;
}

.HeroSection .heroImage img{
  width: 100%;
  height: 50vh;
  object-fit: cover;
  background-position: center; 
}

.HeroSection .heroImage .glasses{
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
}

.HeroSection .heroImage .glasses :nth-of-type(1){
  position: absolute;
  left: -40%;
  top: 30%;
  background-color: transparent;
  box-shadow: -2px 3px 20px rgba(0,0,0,.2);
  backdrop-filter: blur(2px);
  padding: .6rem 1rem;
  border-radius: 25px;
}

.HeroSection .heroImage .glasses :nth-of-type(2){
  position: absolute;
  right: -20%;
  bottom: 10%;
  background-color: transparent;
  box-shadow: -2px 3px 20px rgba(0,0,0,.2);
  backdrop-filter: blur(2px);
  padding: .6rem 1rem;
  border-radius: 25px;
}

/* Services Section */
.ServiceSection{ 
  padding-block-start: 5vw;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ServiceSection .header h2{
  font-weight: 700;
  color: #1A1246;
}

.ServiceSection .containerBg{
  min-height: 50vh;
  width: 100%; 
  margin-block: 4vh;
  position: relative;
}

.ServiceSection .containerBg .bg{
  background-image: url('./images/ServiceBackground.jpg');
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: bottom;
  opacity: .5;
  position: absolute;
  top: 0;
  left: 0;
}

.ServiceSection .containerBg .content{
  padding: 4vw 10vw;
  position: absolute;
  top: 0;
  background-color: transparent;
  display: flex;
  align-items: center; 
  justify-content: space-between;
  width: 100%;
  height: 100%; 
}

.ServiceSection .container{
  display: flex;
  align-items: center;
  padding: 0 10vw;
  width:100%;
  justify-content: space-between;
}

.ServiceSection .container img{
  width: 45%;
  border: 2px solid #009CE1;
}

.ServiceSection .containerBg .content .contentText, .ServiceSection .container .content{
  display: flex;
  flex-direction: column;
  gap: .7rem;
  width: 50%;
}

.ServiceSection .containerBg .content .contentText h2 a, .ServiceSection .container .content h2 a{
color: black;
text-decoration: none;
font-size: 1.5rem; 
}

.ServiceSection .containerBg .content .contentText ul, .ServiceSection .container .content ul{
  font-size: 13px;
}

.ServiceSection .containerBg .content .contentText h4, .ServiceSection .containerBg .content .contentText .link a, .ServiceSection .container .content .link a{
  font-weight: 700;
  color: black;
  text-decoration: none;
}

.ServiceSection .containerBg .content .contentText .link{
  text-align: right;
}

.ServiceSection .containerBg .content .contentText .subText, .ServiceSection .container .content .subText{
  font-size: 1.2rem;
  color: #009CE1;
}

.ServiceSection .containerBg .content .contentImg{
  display: flex;
  justify-content: flex-end;
  background-color: red;
  width: 40%;
  align-items: center;
}

.ServiceSection .containerBg .content .contentImg img{ 
  width: 100%;
  height: 100%;
  border: 2px solid #009CE1;
}

/* Footer Section */
.FooterSection{
  background-color: #228BFF;
  padding: 5vw 10vw;
  display: flex;
  align-items: center;
}

.FooterSection .contact{
  flex: 3;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.FooterSection .contact h3{
  color: white;
  font-weight: 700;
}

.FooterSection .contact ul{
  display: flex;
  flex-wrap: wrap;
  gap: 2vw;
  list-style: none;
  color: white;
}

.FooterSection .contact ul li a{
  text-decoration: none;
  color: white;
}

.FooterSection .fastLink{
  flex: 1;
}

.FooterSection .fastLink{
  display: flex;
  gap: 2rem;
} 

.FooterSection .fastLink a img{
  width: 40px;
}

.NotFound{
  width: 100vw;
  min-height: 70vh; 
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.ContactPage{
  width: 100vw;
  display: flex;
  flex-direction: column;
  padding: 5vw 10vw;
  min-height: 50vh;
}

.ContactPage iframe{
  border-radius: 15px;
  box-shadow: -2px 3px 20px rgba(0,0,0,.2);
}

.wrapper{
  display: flex;
  padding: 3vw 10vw;
  width: 100vw;
  gap: 15%;
}

.wrapper .formArea, .wrapper .contactInfo{
  width: 45%;
  display: flex;
  flex-direction: column;
  gap: 1vw;
}

.wrapper .formArea h3, .wrapper .contactInfo h3{
  font-size: 2rem;
  font-weight: 700;
  color: #228BFF;
}

.wrapper .formArea form{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1vw;
  position: relative;
  align-items: flex-end;
}

.wrapper .formArea form .form-group{
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
}

.wrapper .formArea form .form-group label{
  font-size: 12px;
}

.wrapper .formArea form .form-group input{
  padding: .8rem;
  border-radius: 5px;
  border: 1px solid grey;
  outline: none;
}

.wrapper .formArea form .form-group textarea{
  resize: none;
  height: 25vh;
  border-radius: 5px;
  outline: none;
  padding: .8rem;
}

.wrapper .formArea form button{
  background-color: #228BFF;
  color: white;
  border: none;
  outline: none;
  cursor: pointer;
  border-radius: 5px;
  padding: .8rem;
  width: 30%; 
}

.wrapper .contactInfo .infos{
  display: flex;
  flex-direction: column;
  gap: 3vh;
}

.wrapper .contactInfo .info{
  display: flex;
  align-items: center;
  gap: 20px;
}

.wrapper .contactInfo .info img{
  width: 40px;
}

.wrapper .contactInfo .info h4{
  font-weight: 700;
}

/* Cookie Consent Banner */
#cookie-consent {
    position: fixed;
    margin-top: 4vw;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.95);
    padding: 20px;
    box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    z-index: 1000;
    transition: transform 0.5s ease;
}

#cookie-consent.hidden {
    transform: translateY(100%);
}

.cookie-text {
    flex: 1;
    min-width: 300px;
}

.cookie-text h3 {
    color: #6e8efb;
    margin-bottom: 8px;
}

.cookie-buttons {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.cookie-btn {
    padding: 12px 25px;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
}

.accept-btn {
    background: linear-gradient(135deg, #6e8efb, #a777e3);
    color: white;
}

.accept-btn:hover {
    background: linear-gradient(135deg, #5d7ce0, #9666d3);
    transform: translateY(-2px);
}

.preferences-btn {
    background: transparent;
    border: 2px solid #6e8efb;
    color: #6e8efb;
}

.preferences-btn:hover {
    background: rgba(110, 142, 251, 0.1);
} 

@media (max-width: 768px) {
    #cookie-consent {
        flex-direction: column;
        text-align: center;
    }
    
    .cookie-text {
        min-width: auto;
    }
}

.app {
  min-width: 100vw;
  margin: 0 auto;
  padding: 5vw 10vw;
}

header {
  text-align: center;
  margin-bottom: 40px;
  padding: 30px 20px;
  background: linear-gradient(135deg, #2c3e50 0%, #4ca1af 100%);
  color: white;
  border-radius: 12px;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}

header h1 {
  font-size: 2.8rem;
  margin-bottom: 12px;
  font-weight: 700;
}

header p {
  font-size: 1.3rem;
  opacity: 0.9;
  font-weight: 300;
}


.error-banner {
  background-color: #ffebee;
  color: #c62828;
  padding: 12px;
  border-radius: 6px;
  margin-top: 20px;
  font-weight: 500;
}

.news-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-bottom: 40px;
}

.news-card {
  display: flex;
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.news-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}

.news-image {
  flex: 0 0 320px;
  overflow: hidden;
}

.news-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.news-card:hover .news-image img {
  transform: scale(1.05);
}

.news-content {
  padding: 30px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.news-content h2 {
  font-size: 1.6rem;
  margin-bottom: 18px;
  color: #2c3e50;
  line-height: 1.3;
}

.news-content p {
  margin-bottom: 25px;
  color: #546e7a;
  line-height: 1.6;
  font-size: 1.05rem;
  flex-grow: 1;
}

.news-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  font-size: 0.95rem;
}

.source {
  font-weight: 600;
  color: #4ca1af;
  background-color: #e8f4f5;
  padding: 6px 12px;
  border-radius: 20px;
}

.date {
  color: #78909c;
}

.read-more {
  display: inline-block;
  padding: 12px 24px;
  background-color: #4ca1af;
  color: white;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
  transition: background-color 0.3s ease;
  text-align: center;
}

.read-more:hover {
  background-color: #2c3e50;
}

.loading {
  text-align: center;
  padding: 60px 20px;
  font-size: 1.2rem;
  color: #546e7a;
}

.spinner {
  border: 5px solid #f3f3f3;
  border-top: 5px solid #4ca1af;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1s linear infinite;
  margin: 0 auto 25px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Responsive design */
@media (max-width: 900px) {
    .news-card {
        flex-direction: column;
    }
    
    .news-image {
        flex: 0 0 250px;
    }
    
    header h1 {
        font-size: 2.3rem;
    }
    
    header p {
        font-size: 1.1rem;
    }
}

@media (max-width: 600px) {
    .app {
        padding: 15px;
    }
    
    header {
        padding: 20px 15px;
    }
    
    header h1 {
        font-size: 1.9rem;
    }
    
    .news-content {
        padding: 20px;
    }
    
    .news-content h2 {
        font-size: 1.4rem;
    }
    
    .news-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    
    .news-image {
        flex: 0 0 200px;
    }
    }

    /* Mobile Responsive Styles */
    @media (max-width: 768px) {
    /* General adjustments */
    body {
        overflow-x: hidden;
    }
    
    /* Navbar */
    .Navbar {
        width: 90vw;
        padding: 0.8rem 1.5rem;
        top: 1rem;
        transform: translateX(-2%);
        left: 50%;
    }
    
    .Navbar .logo img {
        width: 120px;
    }
    
    
    /* Mobile menu toggle (you'll need to add HTML for this) */
    .menu-toggle {
        display: block;
        font-size: 1.5rem;
        cursor: pointer;
    }

    .Navbar ul {
        display: none;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: white;
        margin-top: 1rem;
        padding: 1rem;
        box-shadow: 0 5px 10px rgba(0,0,0,0.1);
        border-radius: 0 0 1rem 1rem;
        z-index: 1000;
    }
    
    .Navbar ul.open {
        display: flex;
    }

    
    /* Hero Section */
    .HeroSection {
        flex-direction: column;
        padding: 10vw 5vw;
        gap: 2rem;
    }
    
    .HeroSection .Hero-text {
        width: 100%; 
    }
    
    .HeroSection .Hero-text h2 {
        font-size: 1.5rem;
        line-height: 1.8rem;
    }
    
    .HeroSection .heroImage {
        width: 100%;
        height: 40vh;
        display: flex;
        justify-content: center;
    }

    .HeroSection .heroImage img{
        width: 80%;
    }
    
    .HeroSection .heroImage .glasses :nth-of-type(1) {
        left: -5%;
        top: 10%;
        padding: 0.4rem 0.8rem;
        font-size: 0.8rem;
    }
    
    .HeroSection .heroImage .glasses :nth-of-type(2) {
        right: -5%;
        bottom: -40%;
        padding: 0.4rem 0.8rem;
        font-size: 0.8rem;
    }
    
    /* Services Section */
    .ServiceSection {
        padding-block-start: 20vw;
    }
    
    .ServiceSection .containerBg {
        min-height: auto;
        position: relative;
        margin-block: 2vh;
    }
    
    .ServiceSection .containerBg .content {
        flex-direction: column;
        padding: 5vw 8vw;
        position: relative;
        gap: 2rem;
    }
    
    .ServiceSection .containerBg .content .contentText {
        width: 80%;
    }
    
    .ServiceSection .containerBg .content .contentImg {
        width: 100%;
        justify-content: center;
    }
    
    .ServiceSection .container {
        flex-direction: column;
        padding: 0 5vw;
        gap: 2rem;
    }
    
    .ServiceSection .container img {
        width: 100%;
    }
    
    .ServiceSection .container .content {
        width: 80%;
    }
    
    /* Footer Section */
    .FooterSection {
        flex-direction: column;
        padding: 10vw 5vw;
        gap: 2rem;
    }
    
    .FooterSection .contact ul {
        flex-direction: column;
        gap: 1rem;
    }
    
    .FooterSection .fastLink {
        justify-content: center;
    }
    
    /* Contact Page */
    .ContactPage {
        padding: 5vw;
    }
    
    .wrapper {
        flex-direction: column;
        padding: 5vw;
        gap: 3rem;
    }
    
    .wrapper .formArea, 
    .wrapper .contactInfo {
        width: 100%;
    }
    
    .wrapper .formArea form button {
        width: 100%;
    }
    
    /* News Section */
    .news-container {
        grid-template-columns: 1fr;
    }
    
    .news-card {
        flex-direction: column;
    }
    
    .news-image {
        flex: 0 0 200px;
    }
    
    header h1 {
        font-size: 2rem;
    }
    
    header p {
        font-size: 1rem;
    }
    
    .news-content {
        padding: 20px;
    }
    
    .news-content h2 {
        font-size: 1.3rem;
    }
    
    .news-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    
    /* Cookie Consent */
    #cookie-consent {
        margin-top: 10vw;
        padding: 15px;
    }
    
    .cookie-buttons {
        justify-content: center;
        width: 100%;
    }
    
    .cookie-btn {
        flex: 1;
        min-width: 120px;
    }
}

/* Extra small devices (phones, 480px and down) */
@media (max-width: 480px) {
    .Navbar {
        width: 95vw;
        padding: 0.6rem 1rem;
    }
    
    .HeroSection .heroImage {
        height: 30vh;
    }
    
    .HeroSection .Hero-text h2 {
        font-size: 1.3rem;
    }
    
    .ServiceSection .containerBg .content {
        padding: 8vw 5vw;
    }
    
    .news-image {
        flex: 0 0 180px;
    }
    
    header h1 {
        font-size: 1.7rem;
    }
}
