/* RESET */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

*, a, body {
text-decoration: none;
}
.auth-container input, .auth-container button, .auth-container textarea,
a,
.menu-btn,
.side-menu a,
.btn,
.footer-column a {
outline: none; /* removes default focus outline */
}
.auth-container input, .auth-container button, .auth-container textarea,
a,
.menu-btn,
.side-menu a,
.btn,
.footer-column a {
-webkit-tap-highlight-color: transparent; /* iOS Safari / Chrome */
}
.auth-container input, .auth-container button, .auth-container textarea,
a,
.menu-btn:focus,
.side-menu a:focus,
.btn:focus,
.footer-column a:focus {
outline: none;
box-shadow: none;
}

.btn:focus-visible {
background: #A8C3A0;
color: #fff;
}

body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
font-size: 16px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
background-color: #A8C3A0;
color: #000;
padding-top: 60px;
line-height: 1.6;
}
/* ================= NAV ================= */
#loader {
position: fixed;
inset: 0;
background: white;
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
transition: opacity 0.6s ease, visibility 0.6s ease;
}
#loader.hidden {
opacity: 0;
visibility: hidden;
display: none;
}
.spinner {
width: 32px;
height: 32px;
border: 6px solid rgba(29, 28, 28, 0.2);
border-top-color: #A8C3A0;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.navbar {
position: fixed;
top: 0;
width: 100%;
height: 60px;
background: white;
padding: 22px 0.5rem;
color: white;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
z-index: 1000;
}
.menu-btn {
background: none;
color: white;
border: 1.5px solid #000;
background-color: white;
cursor: pointer;
margin: 0;
margin-right: 8px;
padding: 0;
width: auto;
z-index: 1001;
height: 45px;
width: 45px;
border-radius: 50%;
text-decoration: none;
background-color: #A8C3A0;
}
.menu-btn:hover {
background-color: white;
color: #000;
}
.side-menu {
position: fixed;
top: 60px;
left: -280px;
width: 280px;
height: 100%;
background-color: white;
padding-top: 20px;
transition: 0.3s ease;
z-index: 1000;
}
.side-menu a {
display: flex;
justify-content: space-between;
align-items: center;
color: black;
padding: 15px;
margin-left: 15px;
margin-right: 15px;
text-decoration: none;
}

.side-menu a:hover {
background-color: #A8C3A0;
}
.side-menu.active {
left: 0;
}
@keyframes pulse {
0% {
transform: scale(1);
box-shadow: 0 0 0 0 rgba(168, 195, 160, 0.6);
}
70% {
transform: scale(1.1);
box-shadow: 0 0 0 10px rgba(168, 195, 160, 0);
}
100% {
transform: scale(1);
box-shadow: 0 0 0 0 rgba(168, 195, 160, 0);
}
}

.logo-img {
animation: pulse 2s infinite;
}
.logo-nav {
position: relative;
display: flex;
justify-content: center;
align-items: center;
gap: 5px;
}
.logo-img {
height: 45px;
width: 45px;
border-radius: 50%;
object-fit: contain;
object-position: center top;
display: block;
border: 1.5px solid #000;
background-color: #A8C3A0;
}
.logo-nav span {
font-weight: 700;
color: black;
letter-spacing: 0.8;
}
.menu-link {
display: inline-block;
text-decoration: none;
}
/* ================= NAV ================= */

/* ================= HERO ================= */
.hero {
padding: 2rem 1.5rem;
}

.hero-content {
max-width: 1200px;
margin: auto;
display: flex;
gap: 1rem;
align-items: center;
}

.hero-text {
flex: 1;
padding-left: 1rem;
}

.hero h1 {
font-weight: 500;
margin-bottom: 1.5rem;
text-align: center;
}

.hero h2 {
font-weight: 700;
line-height: 1.3;
text-align: left;
letter-spacing: 1px;
}

.hero h2 span {
font-weight: 400;
text-align: left;
}

.brand {
margin-top: 2.5rem;
display: flex;
align-items: center;
gap: 0.75rem;
}

.logo {
width: 36px;
height: 36px;
border: 2px solid #000;
border-radius: 8px;
background-color: white;
transform: rotate(45deg);
}

.hero-image {
flex: 1;
}

.hero-image img {
width: 100%;
height: auto;
border-radius: 4px;
object-fit: cover;
}

/* ================= HERO ================= */

.hero2 {
padding: 2rem 1.5rem;
background-color: white;
}

.hero2-content {
max-width: 1200px;
margin: auto;
display: flex;
gap: 1rem;
align-items: center;
}

.hero2-text {
flex: 1;
padding-left: 1rem;
}

.hero2 h1 {
font-weight: 500;
margin-bottom: 2rem;
text-align: center;
}
.hero2 h2 {
font-weight: 700;
line-height: 1.3;
text-align: left;
letter-spacing: 1px;
}
.hero2 h2 span {
font-weight: 400;
text-align: left;
}

.hero2 .brand {
margin-top: 2.5rem;
display: flex;
align-items: center;
gap: 0.75rem;
}

.hero2 .logo {
width: 36px;
height: 36px;
border: 2px solid #000;
border-radius: 8px;
background-color: white;
transform: rotate(45deg);
}

.hero2-image {
flex: 1;
}

.hero2-image img {
width: 100%;
height: auto;
border-radius: 4px;
object-fit: cover;
}

/* ================= SERVICES ================= */
.services {
background-color: #A8C3A0;
padding: 2rem 1.5rem;
text-align: center;
}

.services-grid {
max-width: 1200px;
margin: auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2.5rem;
}

.service-card {
background: white;
padding: 3rem 2rem 2rem;
position: relative;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
}

.icon {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 60px;
background: #000;
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}

.service-card h3 {
margin-top: 2rem;
letter-spacing: 1px;
font-weight: 700;
}

.service-card ul {
list-style: none;
margin-top: 1.5rem;
text-align: left;
}

.service-card ul li {
margin-bottom: 0.75rem;
line-height: 1.7;
}

/* ================= ABOUT ================= */
.about {
background: white;
padding: 2rem 1.5rem;
text-align: center;
}

.about-inner {
max-width: 720px;
margin: auto;
}

.about-logo {
width: 40px;
height: 40px;
border: 2px solid #000;
border-radius: 8px;
margin: 0 auto 2rem;
transform: rotate(45deg);
}

.about-text {
line-height: 1.8;
margin-bottom: 1.5rem;
}


/* ================= IMAGES ANIMATION ================= */
.image-container {
display: flex;
gap: 0.2rem;
max-width: 1200px;
margin: auto;
text-align: center;
justify-content: space-around;
padding-top: 2rem;
}

.image-container img {
width: auto;
max-height: 250px;
max-width: 100%;
height: auto;
object-fit: cover;
border-radius: 12px;
transition: opacity 0.9s ease, transform 0.9s ease;
}
.image-container img {
opacity: 1;
transform: translateX(0);
transition: opacity 1s ease-in-out, transform 1s ease-in-out;
}

.image-container img.fade-out {
opacity: 0;
transform: translateX(-20px);
}

.image-container img.fade-in {
opacity: 1;
transform: translateX(0);
}


.img-box {
width: 48%;
max-width: 320px;
overflow: hidden;
border-radius: 12px;
}

.img-box img {
width: 100%;
aspect-ratio: 3 / 2;
}


/* ================= CONTACT ================= */
.auth-container {
background:white;
padding:2rem;
width:100%;
max-width:520px;
text-align: center;
margin: 0PX auto;
border-radius: 5px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);

}
.auth-container input, .auth-container button, .auth-container textarea {
width:100%;
margin:10px 0;
padding:12px;
border: 1.5px solid #000;
}
.auth-container textarea {
width: 100%;
min-height: 50px;
max-height: 300px;
overflow-y: hidden;
resize: none;
line-height: 1.6;
transition: height 0.2s;
}

.auth-container button {
background-color: #A8C3A0;
color: #000;
border-radius: 0px;
border: 1.5px solid #000;
}

.auth-container button:hover {
background-color: white;
}

.forms img{
height: 75px;
width: 75px; 
margin-top: -1.2rem; 
}
/* ================= CONTACT ================= */

/* ================= SECTION INFO ================= */
.info {
position: relative;
width: 100%;
overflow: hidden;
}

.container-body {
padding: 2rem 0rem;
padding-bottom: 0;
background-color: #A8C3A0;
text-align: center;
}

/* ================= SECTION INFO ================= */
.container {
  position: relative; /* necessary for absolutely positioned child */
  margin: 0 auto;
  max-width: 450px; /* keeps the content contained */
  width: 95%;       /* responsive */
  text-align: center;
  overflow: hidden;  /* ensures no overflow */
}

.bg-img {
  display: block;
  width: 100%;   /* always fills container width */
  height: auto;  /* maintains aspect ratio */
}

.info-card {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;   /* match container width */
  height: 100%;  /* match container height */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: rgba(255, 255, 255, 0.2);
  padding: 2rem;
  box-sizing: border-box; /* includes padding in width/height */
  text-align: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}


/* Headings & day items */
.info-card h3 {
margin-bottom: 1rem;
font-weight: 700;
text-align: center;
}

.info-card h2 {

margin-bottom: 1rem;
font-weight: 400;
text-align: center;
}

.day-item {
margin-bottom: 0.8rem;

line-height: 1.6;
}



.info-card h3,
.info-card .day-item {
opacity: 1;
color: #000;
}
/* ================= SECTION INFO ================= */




/* ================= PLUS ================= */

.page-hero {
background-color: #A8C3A0;
padding: 2rem 1.5rem;
text-align: center;
}
.page-hero h1 {
font-weight: 700;
margin-bottom: 1.5rem;
}
.page-hero p {
max-width: 720px;
margin: auto;
}
.content {
max-width: 1100px;
margin: auto;
padding: 2rem 1.5rem;
}
.block {
max-width: 760px;
margin: 0 auto ;
text-align: center;
padding: 2rem 1.5rem;
}
.section-block{
background-color: white;
padding: 0;
padding: 2rem 1.5rem;
}
.block h2 {
font-weight: 500;
line-height: 1.3;
}
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
margin-bottom: 4rem;
}
.card {
background-color: white;
padding: 2.5rem 2rem;
}
.card h3 {
margin-bottom: 1rem;
}
.card p {
margin-bottom: 1rem;
}
.card ul {
padding-left: 1.2rem;
}
.card ul li {
margin-bottom: 0.6rem;
}
.cta {
text-align: center;
}
.info .btn, .cta .btn{
background: white;
}
.info .btn:hover, .cta .btn:hover {
background: #A8C3A0;
color: #fff;
}
.btn {
display: inline-block;
padding: 0.8rem 2.5rem;
border: 1.5px solid #000;
text-decoration: none;
color: #000;
letter-spacing: 1px;
transition: 0.3s ease;
}
.btn:hover {
background: #A8C3A0;
color: #fff;
}
/* ================= PLUS ================= */

/* ================= FOOTER ================= */
.site-footer {
background: #ffffff;
padding:1.5rem;
color: #e5e7eb;
margin-top: 25px;
border-radius: 32px 32px 0 0;
}

.footer-container {
max-width: 1200px;
margin: auto;
display: grid;
gap: 40px;
}

.footer-column h3 {
font-weight: 700;
margin-bottom: 16px;
color: black;
}

.footer-column p,
.footer-column li {
margin-bottom: 0.75rem;
line-height: 1.5;
line-height: 1.6;
list-style: none;
}

.footer-column {
display: flex;
justify-content: center;
border: none;
border-radius: 5px;
background-color: #A8C3A0;
}

.footer-column .column-content {
display: flex;
flex-direction: column;
text-align: center;
justify-content: center;
max-width: 260px;
min-height: 200px;
}

.footer-column ul li i {
color: #000;
padding: 5px;
}

.footer-column ul {
padding: 0;
}

.footer-column a {
color: black;
text-decoration: none;
transition: color 0.3s ease;
}

.footer-column a:hover {
color: white;
}

.social-links a {
display: block;
margin-bottom: 8px;
}

.footer-bottom {
margin-top: 25px;
text-align: center;
margin-bottom: 0;
line-height: 1.5;
color: black;
border-top: 1px solid black;
padding-top: 20px;
padding-bottom: 20px;
background-color: #A8C3A0;
}

/* Base hidden state */
.animate-on-scroll {
opacity: 0;
transform: translateY(40px);
transition: all 0.8s ease;
}

/* Visible state */
.animate-on-scroll.show {
opacity: 1;
transform: translateY(0);
}

/* Optional delays */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.1s; }
.delay-5 { transition-delay: 0.2s; }
.delay-6 { transition-delay: 0.3s; }
.delay-7 { transition-delay: 0.4s; }
.delay-8 { transition-delay: 1s; }

/* ================= FOOTER ================= */

/* ================= CONSEILS ================= */
.targetDiv {
width: 95%;
margin: 0PX auto;
display: grid;
gap: 16px;
padding: 1.5rem 1rem;
background: white;
border-radius: 12px;
font-family: system-ui, sans-serif;
line-height: 1.6;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
opacity: 0;
transform: translateY(40px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.targetDiv p {
margin: 0;
}
.targetDiv p span {
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: black;
background-color: #A8C3A0;
border-radius: 50%;
width: 28px;
height: 28px;
margin-right: 5px;
}

.targetDiv p:first-child {
font-weight: 700;
grid-column: 1 / -1;
}
.targetDiv.show {
opacity: 1;
transform: translateY(0);
margin-top: 25px;
}
/* ================= CONSEILS ================= */

.hero h2 span, .hero2 h2 span, .block h2, .footer-column h3, .service-card h3{
font-size: 1.2rem;
}

.hero h2, .hero2 h2, .card h3, .hero .brand p, .hero2 .brand p, .info-card h3, .targetDiv p:first-child, .section-po h2{
font-size: 1.3rem;
}

.footer-column p, .footer-column li, .service-card ul li, .about-text, .page-hero p, .footer-bottom, 
.info-card h2, .day-item, .block p, .targetDiv p, .targetDiv p span, .side-menu a i , .btn, .card ul li, 
.card p, .menu-btn, .auth-container input, .auth-container button, .auth-container textarea, .section-po p {
font-size: 1rem;
}

.icon, .logo-nav span {
font-size: 1.7rem;
}

.hero h1, .hero2 h1, .about h1, .services h2, .container-main h1, .page-hero h1 {
font-size: 2rem;
font-weight: 900;
margin-bottom: 1.5rem;
line-height: 1.4;
}
.services h2 {
margin-bottom: 2.5rem;
}

/* ================= RESPONSIVE ================= */
/* Responsive */
@media (max-width: 900px) {
.cards {
grid-template-columns: 1fr;
}
.hero-content {
flex-direction: column;
text-align: center;
}
.hero2-content {
flex-direction: column;
text-align: center;
}

.brand {
justify-content: center;
}
.services-grid {
grid-template-columns: 1fr;
}
}

@media (min-width: 768px) {
.footer-container {
grid-template-columns: repeat(2, 1fr);
}
}

@media (min-width: 1024px) {
.footer-container {
grid-template-columns: repeat(4, 1fr);
}
}

@media (max-width: 767px) {
.targetDiv {
grid-template-columns: 1fr;
}
.icon, .logo-nav span {
font-size: 1.5rem;
}
.hero h1, .hero2 h1, .about h1, .services h2, .container-main h1, .page-hero h1 {
font-size: 1.7rem;
font-weight: 900;
}
.footer-column p, .footer-column li, .service-card ul li, .about-text, .page-hero p, .footer-bottom, 
.info-card h2, .day-item, .block p, .targetDiv p, .targetDiv p span, .side-menu a i , .btn, .card ul li, 
.card p, .menu-btn, .auth-container input, .auth-container button, .auth-container textarea {
font-size: 1.1rem;
}
}

@media (min-width: 768px) and (max-width: 1199px) {
.targetDiv {
grid-template-columns: repeat(2, 1fr);
}
}

@media (min-width: 1200px) {
.targetDiv {
grid-template-columns: repeat(3, 1fr);
}
}