/* =================== Variables y base =================== */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400..900&display=swap');

:root{
  --beltza: #111111;
  --white: #ffffff;
  --grisa: #99999b;
  --gris-iluna: #3c3c3b;
  --gris-argia: #EBECF3;
  --urdina: #678bae;
  --urdin-argia: #8abacc;

}

*{ box-sizing: border-box; }
html,body{ margin:0; }
body{
  font-family: "Roboto Condensed", sans-serif;
  color: var(--beltza);
  font-weight: 400;
    font-size: 1.1rem
}

/* Links */
a{ color: var(--beltza); text-decoration: none; }
a:hover{ color: var(--gris-iluna); }

/* Headings */
h1,h2,h3,h4,h5{ color: var(--beltza); font-weight: 600;font-family: "Cinzel", serif; }

/* Botones */
.btn{
  display:inline-block;
  border-radius:0;
  padding:.85rem 1.6rem;
  font-weight:400;
  background: var(--btn);
  color: var(--btn-text);
  border:2px solid transparent;
  line-height:1;
  transition: filter .15s ease, transform .1s ease;
}
.btn:hover{ filter: brightness(1.08); }
.btn:active{ transform: translateY(1px); }
.btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 .2rem #000, 0 0 0 .35rem #fff;
}
.btn-primary{
  font-size:14px; letter-spacing:2px;
  color: var(--white);
  background-color: var(--beltza);
  border-color: var(--beltza);
}
.btn-primary:hover{
  background-color: var(--urdina);
  border-color: var(--white);
}
.btn-secondary{
  
  color: var(--beltza);
  background-color: var(--white);
  border-color: var(--white);
}
.btn-secondary:hover{
  background-color: var(--beltza);
  border-color: var(--white);
}

/* =================== Header / Navbar =================== */
header .menu-nagusia{
  position: fixed;
  top: 0; left: 0; width: 100%;
  z-index: 1000;
  background-color:rgba(0,0,0,0.55);
  transition: background-color .25s ease, box-shadow .2s ease;
    padding: 0;
}
.header-container{ width: 90%; max-width: 1200px; margin: 0 auto; } 

.navbar-toggler{
  line-height:1;
  color: var(--beltza);
  border: var(--bs-border-width) solid currentColor;
    background-color:var(--white); 
}

/* Icono hamburguesa adaptado a esquema Bootstrap */
.navbar-light .navbar-toggler-icon{
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba%280,0,0,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.navbar-dark .navbar-toggler-icon{
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba%28255,255,255,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Estado scrolled*/
.fixed-top.scrolled,
.menu-nagusia.scrolled{
  background-color: rgba(255,255,255,1);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.menu-nagusia.scrolled .top-header{ display:none; }

.menu-nagusia .navbar-brand{ max-width: 350px; padding:0; margin-right:30px; }
.menu-nagusia .navbar-brand img{ max-width:350px; height:auto; }
.navbar-fixed-top.scrolled .navbar-brand img {
  max-width: 210px;
    filter: brightness(0);
}
.navbar-brand{
   color: var(--white);
    font-size: 30px;
}
.navbar-brand span{
    font-size: 20px;
}
.navbar-collapse{
  display:flex; flex-direction:column; align-items:flex-end;
}
.navbar-expand-xl .navbar-nav a.nav-link{
  position:relative; padding:5px 10px; margin:0 10px;
  font-size:16px; color: var(--white);
    font-weight: 600; text-transform: uppercase;
}
.navbar-expand-xl .navbar-nav a.nav-link.active{ background: var(--urdina); color: var(--white); }

.navbar-expand-xl .navbar-nav a.nav-link {
  text-decoration: none;
  font-size: 16px;
  background: none;
  position: relative;
   padding: 5px 10px;
   margin: 0 10px;
    color: var(--white);
  
}
.navbar-expand-xl .navbar-nav a.nav-link::after  {
-webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  height: 0;
  left: 0;
  top: 0;
  width: 100%;
  
}
.navbar-expand-xl .navbar-nav a.nav-link:hover:after {
  height: 100%;
}

.navbar-expand-xl .navbar-nav a.nav-link::before,
.navbar-expand-xl .navbar-nav a.nav-link::after {
  background: var(--urdina);
  content: '';
  position: absolute;
  z-index: -1;
}

.navbar-expand-xl .navbar-nav a.nav-link:hover {
  color: var(--white);
}
.navbar-expand-xl .navbar-nav a.nav-link.active {
  color: var(--white);
  background: var(--urdina);
}
.navbar-expand-xl.navbar-fixed-top.scrolled a.nav-link {
  color: var(--beltza);
     margin-bottom: 1px;
}
.navbar-expand-xl.navbar-fixed-top.scrolled a.navbar-brand {
  color: var(--beltza);
}
.navbar-expand-xl.navbar-fixed-top.scrolled a.navbar-brand:hover {
  color: var(--beltza);
}
.navbar-expand-xl.navbar-fixed-top a.navbar-brand:hover{
    color: var(--white);
}
.navbar-expand-xl.navbar-fixed-top.scrolled a.nav-link.active, .navbar-expand-xl.navbar-fixed-top.scrolled a.nav-link:hover {
  color: var(--white);
}
/* Top header */
.top-header{ display:flex; align-items:center; padding:10px; margin-bottom:20px; }
.top-header .top-info{ display:flex; margin:0 20px; }
.top-header .top-info a{ display:flex; align-items:flex-start; margin:0 15px; color: var(--white); font-size:16px; }
.top-header .top-info a:hover{ color: var(--gris-argia); }
.top-header .top-info i{ margin-right:8px; color: var(--white); font-size:16px; }
.sareak{ margin-left:35px; color: var(--white); }
.sareak a{ margin:0 8px; }
.sareak i{ font-size:18px; color: var(--white); }
.contacto-dat {
  margin-left: 15px;
    color: var(--white);
}
.contacto-dat i {
    color: var(--white);
     margin: 0 5px;
}

.contacto-dat a {
 color: var(--white);
     margin-right: 10px;
}
/* Selector idiomas */
.form-select.hizkuntzak{
  width:auto; background-color:transparent; color: var(--white);
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  padding:.1rem 2.25rem .1rem .75rem; font-size:15px;
}
.form-select.hizkuntzak option{ background:#fff; color: var(--beltza); }

/* Footer bottom */
/* Contenedor */
.container2{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
  display: flex; /* ✅ necesario */
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap; /* ✅ evita roturas */
}

/* Footer */
.footer-bottom {
  background-color: var(--beltza);
  padding: 0.75rem 0;
}
.footer-bottom .credits {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  color: var(--white);
  font-size: 14px;
  gap: 1rem;
}
.footer-bottom .p-1{
  display: flex;
  align-items: center;
}
.footer-bottom .p-1 img{
  max-height: 40px;
  width: auto;
  display: block;
}
.footer-bottom .credits ul{ 
  display: flex;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-bottom .credits li{ 
  padding: 0;
}
.footer-bottom .credits a {
  color: var(--white);
}
.footer-bottom .credits a:hover{
  color: var(--urdina);
}
@media (max-width: 768px) {

  .container2 {
    flex-direction: column;
    text-align: center;
  }

  .footer-bottom .credits {
    flex-direction: column;
    gap: 0.5rem;
  }

  .footer-bottom .credits ul {
    flex-direction: column; /* ✅ mejor que block */
    gap: 6px;
  }

}


/* =================== Hero / slider =================== */
.home-slider{
  position:relative;
  height: 100dvh; min-height: 100dvh; /* más estable en móvil que 100vh */
}
.bg-bideo{ position:absolute; inset:0; overflow:hidden; }
.bg-bideo img{ width:100%; height:100%; object-fit:cover; }
#bideoa{
  position:absolute; inset:0 auto auto 0;
  height:100dvh; min-height:100dvh; width:100%; object-fit:cover;
}

.caption-blokeak{
  position:relative; text-align:center; color:#fff;
  padding-top: min(30%, 20rem);
    background-color: rgba(0,0,0,0.5)
}
.caption-blokeak h2{
  margin: 50px 0; font-weight:600;
  font-size: clamp(28px, 4vw, 60px);
    color: var(--white);
}
.caption-blokeak span{
  display:inline-block; text-transform:uppercase;
  font-size: clamp(18px, 1.5vw, 30px);
    color: var(--white);
}
section.section-top-img {
  position: relative;
}
.goiburu-irudia {
  height: auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
}
.goiburu-irudia img {
  object-fit: cover;
  height: 40vh;
  width: 100%;
}
section.section-top-img h1 {
  position: absolute;
 top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
   text-align: center;

  font-size: clamp(1.2rem, 4vw, 2.5rem);
  line-height: 1.2;
  background-color: rgba(0, 0, 0, 0.55);
    padding: 10px 30px
 
}
.az-logos{
   display: flex;
     align-items: center;
     justify-content: center;
    font-size: 1.3rem;
     padding: 30px;
    
}
.az-logos img{
   max-width: 250px;
    
}
.az-logos p{
   margin-right: 30px;
    
}
/* =================== Section titles =================== */
.section-title{
  text-align:center; margin:3rem auto; width:min(92%, 60rem);
}
.section-title h2{
  margin:0 0 .8rem; font-size: clamp(1.3rem, 2.5vw, 1.8rem); font-weight:300;
}
.decor-line{
  position:relative; height:1px; background:#000; width:100%; margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
}
.decor-line::before,.decor-line::after{
  content:""; position:absolute; top:50%; transform:translateY(-50%);
  width:.65rem; height:.65rem; border-radius:50%; background:#000;
}
.decor-line::before{ left:0; } .decor-line::after{ right:0; }

/* =================== Contacto =================== */
/* —— Layout general —— */
.kontaktua { padding: clamp(2rem, 6vw, 4rem) 0; }

.kontaktua-box{
  display: grid;
  gap: clamp(1rem, 3vw, 2rem);
  align-items: stretch;
}

/* 2 columnas >= 992px; una columna en móvil/tablet */
@media (min-width: 992px){
  .kontaktua-box{
    grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.25fr);
  }
}

/* —— Columna izquierda: datuak —— */
.datuak{
  background-color: var(--beltza);
  color: var(--white);
  display: grid;
  align-content: center;
  justify-items: center;
  padding: clamp(1.25rem, 3vw, 2rem) 1rem;
  text-align: left;
}
.datuak__logo{
  width: min(70%, 125px);
  height: auto;
  margin: 2rem auto clamp(1rem, 3vw, 1.75rem);
}

.contact2 {
  font-style: normal; 
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}

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

.contact2__item {
  font-size: 1.3rem;
  line-height: 1.5;
  color: var(--white);
}

.contact2__item a {
  color: var(--white);
  text-decoration: none;
  word-break: break-word; /* evita desbordes en móviles */
}
.izena{
     font-size: 2rem;
    font-weight: 600;
  font-family: "Cinzel", serif;
    text-align: center;
}

/* Responsive: centra en móviles */
@media (max-width: 576px) {
  .contact2__list {
    text-align: center;
  }
}

/* —— Columna derecha: formulario —— */
.formularioa{
  width: 100%;
  margin: 0;
  align-self: center;
}
section.kontaktua h2{
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}


/* Limita ancho del formulario y centra */
.kontaktua-form{
  width: min(92%, 720px);
  margin-inline: auto;
}

/* Accesibilidad: foco visible en controles (si no usas Bootstrap) */
.form-control:focus,
textarea.form-control:focus{
  outline: none;
  box-shadow: 0 0 0 .2rem rgba(0,0,0,.6);
  border-color: transparent;
}


/* Utilidad: oculto accesible */
.sr-only{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
/***separador***/
.divider-letter {
  display: flex;
  align-items: center;
  gap: clamp(0.75rem, 2vw, 1.25rem);
  width: 100%;
    margin-top: 4rem;
}

.divider-letter::before,
.divider-letter::after {
  content: "";
  flex: 1;
  border-top: 1px solid var(--beltza); 
}

.divider-letter__char {
  font-family: "Cinzel", serif;
  font-weight: 500;
  font-size: clamp(1.6rem, 4vw, 3rem);
  line-height: 1;
  color: var(--beltza);
  padding-inline: clamp(0.25rem, 1vw, 0.5rem);
}
.cta__panel {
  position: relative;
  background: #fff;
  text-align: center;
  padding: clamp(2rem, 3vw, 2rem) clamp(2rem, 3vw, 2rem);
}
.cta__panel p {
  max-width: 950px;
  margin: 30px auto;
  line-height: 2;
    font-size: 1.3rem
}

/* =================== Servicios =================== */
.tabs-intro { margin: 3rem 0; }

.tabs-intro .side-column {
  display: flex;
  gap: 1.5rem;
}
.tabs-intro .side-column .nav-tabs {
  display: flex;
  flex-direction: column;
  width: 30%;
  margin-top: 0 !important;
  border-bottom: 0;
}

.tabs-intro .side-column .tab-content {
  width: 70%;
  padding: 0 0 0 1rem;
}

.tabs-intro .nav-item .nav-link {
  color: var(--white);
  border: 0;
  border-bottom: 2px solid var(--white);
  border-radius: 0;
  margin: 0 10px;
  font-size: 18px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: .6rem;
  font-weight: 300;
  padding: 16px 5px;
  background: var(--beltza);

}

.tabs-intro .nav-item .nav-link img {
  max-width: 50px;
  height: auto;
     margin-right: 10px;
}

/* Tab activo */
.tabs-intro .nav-item .nav-link.active,
.tabs-intro .nav-item .nav-link[aria-selected="true"] {
  border-bottom: 2px solid var(--urdina);
  color: var(--white);
  font-weight: 500;
  background: var(--urdina);
}

/* Foco visible (AA) */
.tabs-intro .nav-item .nav-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 .18rem #000, 0 0 0 .36rem #fff;
}

.sarrera-box-txt { padding: 0 0 0 0; }
.sarrera-box-txt h2{
  margin: 0 0 1.2rem;
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 600;
  text-transform: uppercase;
}

.tabs-intro .side-column .tab-content ul {
  padding-left: 1.2rem;
  margin: 0 0 1rem;
}
.tabs-intro .side-column .tab-content li {
  margin-bottom: .6rem;
  line-height: 1.55;
}

/****/
.servicios-sarrera{
  background-color: var(--beltza);
  color: var(--white);
  padding: 5rem 0;
  text-align: center;
}
.servicios-sarrera h2{
  color: var(--white);
  font-size: 35px;
  text-transform: uppercase;
  margin-bottom: 2rem;
}
.servicios-sarrera h3{
  color: var(--white);
  font-size: 1rem;
  text-transform: uppercase;
  margin-bottom: 2rem;
    font-family: "Roboto Condensed", sans-serif;
    font-weight: 300
}
.home-ikonoak{
  padding: 2rem 0;
}
.icon-container{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}
.icon-box{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--urdina);
  border: 1px solid var(--white);
  margin: 15px;
  padding: 30px;
  width: 20%;
  min-height: 250px;
    border-radius: 50px;
     transition: background-color .35s ease, color .35s ease;
}
.icon-box:hover{
  border: 1px solid var(--urdina); background-color: var(--urdina)
    
}
.icon-box img{
  max-width: 78px;
  margin-bottom: 15px;
}
.icon-box p{
  font-size: 16px;
  text-align: center;
  color: var(--bs-white);
}
/* ----------------- Responsive ----------------- */
/* En pantallas pequeñas: tabs arriba en fila y contenido debajo */
@media (max-width: 992px){
  .tabs-intro .side-column {
    flex-direction: column;
  }
  .tabs-intro .side-column .nav-tabs {
    width: 100%;
    flex-direction: row;
    gap: .5rem;
    border-right: 0;
    border-bottom: 1px solid #eee;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
    .tabs-intro .nav-item {
    width: 48%
     
  }
  .tabs-intro .nav-item .nav-link {
    margin: 0;
    border-bottom: 2px solid transparent; /* se ve mejor en scroll horizontal */
    white-space: nowrap;
    padding: 12px 8px;
    font-size: 16px;
     
  }
  .tabs-intro .nav-item .nav-link.active {
    border-bottom-color: var(--beltza);
  }
  .tabs-intro .side-column .tab-content {
    width: 100%;
    padding: 1rem 0 0 0;
  }
  .tabs-intro .nav-item .nav-link img {
    max-width: 36px;
  }
}

/* Respetar usuarios con preferencia de reducir movimiento */
@media (prefers-reduced-motion: reduce){
  .tabs-intro .nav-item .nav-link { transition: none; }
}


/* =================== Footer =================== */
.site-footer{ background:#efefef; color: var(--text); }
.footer__wrap{
  width: min(92vw, var(--maxw));
  margin-inline:auto;
  display:grid; grid-template-columns:1fr 1fr; gap: clamp(1rem, 2vw, 2rem);
  align-items:stretch; padding-block: clamp(1.5rem, 3vw, 2rem);
}
.footer__info{ padding: clamp(1rem, 2vw, 1.25rem) clamp(0.5rem, 2vw, 1rem); }
.footer__info img{ margin-bottom:30px; }
.contact{ font-style:normal; }
.contact__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.9rem; }
.contact__item{ display:grid; grid-template-columns:1.25rem auto; align-items:center; gap:.6rem; line-height:1.5; }
.icon{ width:1.25rem; height:1.25rem; display:inline-grid; place-items:center; font-size:20px; }
.footer__map .map__iframe{ width:100%; height:100%; min-height:280px; border:0; display:block; }
.map__fallback{ margin:.5rem; font-size:.95rem; }
.footer-logo{
  font-weight: 600;
  font-family: "Cinzel", serif;
  font-size: 1.5rem;
  filter: brightness(0);
    
}
@media print{ .map__iframe{ display:none; } .map__fallback{ display:block; } }
@media (max-width: 900px){ .footer__wrap{ grid-template-columns:1fr; } .footer__info{ padding-right:0; } }

/* =================== Utilidades a11y =================== */
.sr-only{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* =================== Responsive =================== */

@media (max-width: 1199.98px) {
  .menu-nagusia .navbar-brand img {
    max-width: 200px;
      margin-right:0;
  }
     .navbar-collapse{
         align-items: flex-start;
        
    }
    .navbar-collapse .navbar-nav{
         margin-right: auto;
        
    }
    .contacto-dat{
        margin-left: 0;
         display: flex;
         flex-direction: column;
    }
}
@media (max-width: 768px){
    .az-logos{
         flex-direction: column;
    }
    .footer-logo img{
         max-width: 170px;
    
    
}
       .tabs-intro .nav-item {
    width: 90%
     
  }
    .menu-nagusia .navbar-brand img, .navbar-fixed-top.scrolled .navbar-brand img {
    max-width: 170px;
        
  }
    .icon-box{
         width: 40%;
        min-height: 200px;
    }
    .icon-box img {
  max-width: 50px;
}
}