/* styles.css - shared across both languages */
/* Clean, responsive, mobile-first CSS */

:root{
  --max-width:1100px;
  --accent:#2f7a3e;
  --accent-2:#7aa96b;
  --muted:#6b6b6b;
  --bg:#ffffff;
  --card:#fbfbfb;
  --radius:8px;
  --gap:1rem;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color-scheme: light;
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  background:var(--bg);
  color:#111;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Layout */
.container{
  width:calc(100% - 2rem);
  max-width:var(--max-width);
  margin:0 auto;
  padding:1rem 0;
}

.header{
  border-bottom:1px solid #eee;
  background:linear-gradient(180deg,#fff,#fbfffb);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:.6rem;
}

.logo{
  height:44px;
  width:auto;
  display:block;
}

.site-title{
  font-weight:700;
  color:var(--accent);
  font-size:1rem;
}

/* Nav */
.nav{
  display:flex;
  gap:.6rem;
  align-items:center;
}

.nav a{
  padding:.5rem .7rem;
  text-decoration:none;
  color:var(--muted);
  border-radius:6px;
  font-weight:600;
}

.nav a:hover,
.nav a.active{
  background:var(--card);
  color:var(--accent);
}

/* Hero */
.hero{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  align-items:center;
  margin:1rem 0 2rem;
}

.hero-inner{padding:1rem 0}

.hero h2{
  font-size:1.6rem;
  margin:0 0 .5rem;
  color:var(--accent);
}

.lead{
  color:var(--muted);
  margin:0 0 1rem;
}

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

/* Cards & sections */
.card{
  background:var(--card);
  border-radius:var(--radius);
  padding:1rem;
  margin:1rem 0;
  box-shadow:0 1px 0 rgba(0,0,0,0.03);
}

.features{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.6rem;
}

.features li{
  padding:.4rem 0;
}

/* Buttons */
.btn{
  display:inline-block;
  text-decoration:none;
  padding:.6rem 1rem;
  border-radius:8px;
  font-weight:700;
  border:1px solid transparent;
}

.btn.primary{
  background:var(--accent);
  color:#fff;
}

.btn.outline{
  background:transparent;
  color:var(--accent);
  border-color:var(--accent);
}

/* Gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.6rem;
}

.gallery-grid img{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius:8px;
  cursor:pointer;
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.8);
  display:none;
  align-items:center;
  justify-content:center;
  padding:1rem;
  z-index:1000;
}

.lightbox img{
  max-width:95%;
  max-height:85%;
  border-radius:8px;
}

.lightbox .close{
  position:absolute;
  top:1rem;
  right:1rem;
  color:#fff;
  font-size:1.2rem;
  background:transparent;
  border:0;
  cursor:pointer;
}

/* Contact form */
.contact-form{
  display:grid;
  gap:.6rem;
  max-width:640px;
}

.contact-form label{
  font-size:.9rem;
  color:var(--muted);
}

.contact-form input,
.contact-form textarea{
  padding:.6rem;
  border-radius:6px;
  border:1px solid #e6e6e6;
  font-size:1rem;
  width:100%;
}

.contact-form .error{
  color:#b00020;
  font-size:.9rem;
}

/* Footer */
.site-footer{
  margin:2rem 0;
  color:var(--muted);
  font-size:.9rem;
  text-align:center;
}

/* Responsive */
@media(min-width:720px){
  .hero{grid-template-columns:1fr 420px}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}

@media(min-width:980px){
  .header-inner{padding:1rem 0}
}

/* Utility */
.muted{color:var(--muted);font-size:.95rem}
.center{text-align:center}

/* ============================= */
/* Language chooser page styles */
/* ============================= */

body.language-chooser {
  font-family: system-ui, Arial, Helvetica, sans-serif;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: #f7f9f6;
}

.language-chooser .box {
  background: #fff;
  padding: 28px;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
  text-align: center;
  max-width: 520px;
}

.language-chooser h1 {
  margin: 0 0 8px;
  font-size: 1.4rem;
  color: #163a1f;
}

.language-chooser p {
  margin: 8px 0;
  color: #334;
}

.language-chooser .btn {
  display: inline-block;
  margin: 8px;
  padding: 10px 18px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
}

.language-chooser .en {
  background: #2f7a3e;
  color: #fff;
}

.language-chooser .es {
  background: transparent;
  color: #2f7a3e;
  border: 2px solid #2f7a3e;
}

@media (max-width: 420px) {
  .language-chooser .box {
    padding: 18px;
  }
}

/* ============================= */
/* Success Banner (Animated)     */
/* ============================= */

.alert.success {
    background: #e6ffe6;
    border: 1px solid #4caf50;
    color: #1b5e20;
    padding: 14px 18px;
    border-radius: 6px;
    margin: 10px 0 20px;
    font-size: 1rem;
    font-weight: 500;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
    animation: bannerFadeIn 0.6s ease-out forwards;
}

.alert.success.fade-out {
    animation: bannerFadeOut 0.5s ease-in forwards;
}

@keyframes bannerFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes bannerFadeOut {
    from {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    to {
        opacity: 0;
        transform: translateY(-10px) scale(0.98);
    }
}