/* ============================================================
   agentuserviss.com — hoja de estilos unica del sitio
   ============================================================ */

/* --- Tokens ------------------------------------------------ */
:root {
  --ink:            #16171A;
  --ink-deep:       #17140F;
  --ink-soft:       #3F3F3C;
  --gold:           #8C7231;
  --gold-light:     #D2B479;
  --parchment:      #F3EEE2;
  --parchment-dim:  #E7E1D5;
  --body-text:      #F2EEE6;
  --muted:          #C9C2B4;
  --hairline-light: rgba(255, 255, 255, .18);
  --hairline-dark:  rgba(27, 25, 22, .14);

  --serif: 'Playfair Display', serif;
  --sans:  'Manrope', sans-serif;

  --gutter-x: clamp(18px, 4vw, 56px);
}

/* --- Base -------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: #A8ACAF;
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}

/* Casi todos los enlaces son componentes (tarjetas, pestanas, botones)
   que ponen su propio color. Un `a:hover` global les ganaria en
   especificidad, asi que aqui el enlace no impone nada. */
a { color: inherit; text-decoration: none; }

input, textarea, select, button { font-family: inherit; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--gold); }

/* Los botones de navegacion son <button> por accesibilidad: se
   neutraliza el aspecto nativo y el estilo real va en cada clase. */
button {
  margin: 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: inherit;
  text-align: inherit;
  cursor: pointer;
}

:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 2px; }

/* Sin line-height propio: el original deja que la flecha agrande la
   caja de linea, y de ahi sale la altura de los botones. */
.arrow { font-size: 15px; }
.rule  { display: block; width: 64px; height: 1px; background: var(--gold);
         margin: clamp(14px, 2.4vh, 28px) 0 clamp(12px, 2vh, 22px); }

/* --- Conmutacion de vistas --------------------------------- */
[hidden] { display: none !important; }

.view { animation: fadeUp .4s ease both; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .view { animation: none; }
  * { transition-duration: .01ms !important; }
}

/* ============================================================
   Vista 1 — Portada
   ============================================================ */
.home {
  width: 100%;
  min-height: 100dvh;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  background: linear-gradient(142deg,
    #DCDEDF 0%, #B6B9BB 22%, #94989B 46%,
    #BDC0C2 62%, #83878A 82%, #AFB3B5 100%);
}

.home__main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: clamp(16px, 3vh, 48px) var(--gutter-x);
}

.home__title {
  margin: 0;
  text-align: center;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 5.2vh, 60px);
  line-height: 1.08;
  letter-spacing: 0.02em;
  color: var(--ink);
}

.home__subtitle {
  margin: clamp(8px, 1.4vh, 16px) 0 0;
  max-width: 820px;
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(14px, 2vh, 20px);
  color: var(--ink-soft);
  text-wrap: pretty;
}

.home__prompt {
  margin: 0;
  max-width: 820px;
  text-align: center;
  font-size: clamp(12px, 1.6vh, 15.5px);
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.lang-grid {
  flex: 0 0 auto;
  align-self: center;
  margin-top: clamp(16px, 3vh, 40px);
  width: 100%;
  max-width: 1400px;
  display: grid;
  align-content: start;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(12px, 1.8vw, 26px);
}

.lang-card {
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 1.6vw, 20px);
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(255, 255, 255, .78);
  box-shadow: 0 14px 34px rgba(18, 20, 22, .24);
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.lang-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgba(24, 25, 27, .18);
}

/* Las tres fotos son 1000x750 (4:3). Dando a la caja esa misma
   proporcion, `cover` no recorta nada y tampoco deja franjas vacias:
   la casa se ve entera. Con una altura fija siempre recortaria. */
.lang-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
}
.lang-card__media img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
}

.lang-card__name {
  margin-top: clamp(12px, 2vh, 22px);
  text-align: center;
  font-family: var(--serif);
  font-size: clamp(21px, 2.8vh, 28px);
  color: var(--ink);
}

.lang-card__cta {
  margin-top: clamp(10px, 1.7vh, 20px);
  padding: clamp(9px, 1.5vh, 14px);
  border: 1px solid var(--ink);
  display: flex; align-items: center; justify-content: center; gap: 12px;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--ink);
}


/* ============================================================
   Vistas 2 y 3 — armazon compartido (fondo, barra, pie)
   ============================================================ */
.page {
  position: relative;
  width: 100%;
  min-height: 100dvh;
  background: var(--ink-deep);
  display: flex;
  flex-direction: column;
}

.page__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}
.page__bg::after {
  content: '';
  position: absolute;
  inset: 0;
}

/* El fondo del detalle depende del idioma activo (data-bg-lang lo
   fija main.js; es un atributo aparte de las pestanas .lang-tab). */
.page--detail[data-bg-lang="lv"] .page__bg { background-image: url(./assets/bg-lv.webp); }
.page--detail[data-bg-lang="ru"] .page__bg { background-image: url(./assets/bg-ru.webp); }
.page--detail[data-bg-lang="en"] .page__bg { background-image: url(./assets/bg-en.webp); }
.page--detail .page__bg::after {
  background: linear-gradient(180deg,
    rgba(15, 12, 9, .62) 0%, rgba(15, 12, 9, .5) 45%, rgba(15, 12, 9, .72) 100%);
}

.page--faq .page__bg { background-image: url(./assets/bg-faq.webp); }
.page--faq .page__bg::after {
  background: linear-gradient(180deg,
    rgba(15, 12, 9, .7) 0%, rgba(15, 12, 9, .62) 45%, rgba(15, 12, 9, .8) 100%);
}

/* --- Barra superior ---------------------------------------- */
.topbar {
  position: relative;
  z-index: 1;
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(10px, 2vw, 24px);
  padding: 18px clamp(16px, 4vw, 56px);
  border-bottom: 1px solid var(--hairline-light);
}

.topbar__back {
  flex: none;
  display: flex; align-items: center; gap: 9px;
  font-size: clamp(9.5px, 1vw, 11px);
  letter-spacing: 0.14em;
  color: #D9D2C4;
  white-space: nowrap;
  transition: color .2s;
}
.topbar__back:hover { color: #FFFFFF; }
.topbar__back .arrow { font-size: 14px; }

.lang-tabs {
  flex: none;
  display: flex; align-items: center; gap: 2px;
  padding: 2px;
  background: rgba(12, 10, 8, .55);
  border: 1px solid rgba(243, 238, 226, .55);
}

.lang-tab {
  padding: 8px 12px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.16em;
  background: rgba(12, 10, 8, .55);
  color: #F0EBE0;
  transition: background .2s, color .2s;
}
.lang-tab:hover { background: rgba(243, 238, 226, .2); color: #FFFFFF; }

/* Las pestanas son enlaces a la misma pagina en otro idioma, de ahi
   aria-current="page" en vez de "true". */
.lang-tab[aria-current="page"],
.lang-tab[aria-current="page"]:hover {
  background: var(--parchment);
  color: #16140F;
}

/* En pantallas estrechas los tres grupos de la barra no caben en una
   linea: las pestanas bajan a una segunda fila centrada. */
@media (max-width: 560px) {
  .topbar { flex-wrap: wrap; row-gap: 12px; }
  .lang-tabs { flex: 0 0 100%; justify-content: center; }
}

/* --- Boton fantasma (FAQ / volver) ------------------------- */
.ghost-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px;
  border: 1px solid rgba(243, 238, 226, .55);
  background: rgba(12, 10, 8, .5);
  color: var(--parchment);
  font-size: 10.5pt;
  letter-spacing: 0.12em;
  transition: background .2s, color .2s;
}
.ghost-btn:hover { background: var(--parchment); color: #16140F; }
.ghost-btn .arrow { font-size: 14px; }

/* --- Copyright (solo en las paginas de detalle) ------------- */
.copyright {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 18px var(--gutter-x) 26px;
  text-align: center;
  font-size: 11.5px;
  letter-spacing: 0.06em;
  color: var(--muted);
}

/* ============================================================
   Vista 2 — Texto legal + formulario
   ============================================================ */
.page__body {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: clamp(28px, 4vw, 56px) clamp(16px, 4vw, 56px) clamp(44px, 5vw, 80px);
  display: flex; flex-direction: column; align-items: center;
  gap: clamp(30px, 4vw, 56px);
}

.legal {
  width: 100%;
  min-width: 0;
  display: flex; flex-direction: column; gap: 20px;
}

.legal__columns {
  columns: 145px 3;
  column-gap: clamp(16px, 1.8vw, 26px);
  column-rule: 1px solid rgba(243, 238, 226, .24);
  text-align: justify;
  hyphens: auto;
  color: var(--body-text);
}
.legal__columns p {
  margin: 0 0 12px;
  font-size: 10.5pt;
  line-height: 1.65;
  break-inside: avoid;
  text-wrap: pretty;
}
/* 800 es el peso maximo de Manrope. Si se cambia, hay que pedir ese
   peso en el <link> de Google Fonts de las 7 paginas o el navegador
   lo falsea en vez de descargarlo. */
.legal__columns strong { font-weight: 800; color: #FFFFFF; }

/* Parrafos que el documento de origen centra: los tres titulares en
   negrita y los cinco puntos de la lista de datos a rellenar. */
.legal__columns .legal__center {
  text-align: center;
  text-wrap: balance;
  hyphens: none;
}

.legal__faq { align-self: flex-start; }

/* En movil dos columnas dejan ~170px por columna: justificado a ese
   ancho abre rios de espacio. Una sola columna se lee mucho mejor. */
@media (max-width: 560px) {
  .legal__columns { columns: 1; column-rule: none; }
  .sheet { padding: 8mm; }
}

/* Escudo de Ventspils House intercalado en el texto. */
.dragon {
  display: inline-block;
  vertical-align: -0.22em;
  /* 1.6em sobre los 10.5pt (14px) del parrafo legal = 22.4px. */
  width: 1.6em; height: 1.6em;
  margin: 0 0.18em;
  line-height: 0;
  white-space: nowrap;
}
.dragon img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* --- Hoja de formulario (proporciones A4) ------------------ */
.sheet-stack {
  width: 100%;
  max-width: 210mm;
  min-width: 0;
  display: flex; flex-direction: column; gap: 12px;
}

.sheet {
  width: 100%;
  min-width: 0;
  padding: 14mm;
  background: #FFFFFF;
  box-shadow: 0 26px 56px rgba(0, 0, 0, .4);
  display: flex; flex-direction: column;
}

.sheet__fields { display: grid; grid-template-columns: 1fr; gap: 4mm; }

.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field--message { padding-top: 4mm; }

.field__label {
  font-size: 9.5pt;
  letter-spacing: 0.06em;
  line-height: 1.45;
  color: var(--ink-soft);
}

/* Los campos no llevan placeholder: un boligrafo marca que son
   escribibles. Va como background-image para no tocar el marcado, y por
   eso el color de fondo se declara con background-color y no con el
   atajo `background`, que borraria la imagen. */
.field__control {
  min-width: 0;
  padding: 3.5mm 10mm 3.5mm 4mm;   /* hueco a la derecha para el icono */
  background-color: #F6F5F2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A9A9A6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.8 3.7a1.9 1.9 0 0 1 2.7 2.7L7.4 17.5l-3.6 1 1-3.6z'/%3E%3Cpath d='M14.1 5.4l2.7 2.7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4mm center;
  background-size: 15px 15px;
  border: 1px solid #E4E2DC;
  font-size: 11pt;
  color: var(--ink);
  transition: border-color .2s;
}

/* En el area de texto el boligrafo se ancla arriba, fuera del camino
   de las lineas que se van escribiendo. */
textarea.field__control {
  resize: vertical;
  background-position: right 4mm top 3.5mm;
}

.sheet__submit {
  margin-top: 5mm;
  padding: 4mm;
  background: var(--ink);
  color: #FFFFFF;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  font-size: 10.5pt;
  letter-spacing: 0.16em;
  text-align: center;
  transition: background .25s;
}
.sheet__submit:hover { background: var(--gold); }
/* Mientras el envio esta en curso el boton queda inerte. */
.sheet__submit[disabled] { background: var(--ink-soft); cursor: default; opacity: .7; }

/* El senuelo antibots: fuera de la pantalla, no con display:none, porque
   hay bots que se saltan los campos ocultos de esa forma. */
.field--trap {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

.sheet__sent,
.sheet__error {
  margin: 0;
  padding-top: 4mm;
  text-align: center;
  font-size: 10.5pt;
  letter-spacing: 0.04em;
  color: #7A6A46;
  text-wrap: pretty;
}
.sheet__error { color: #9B3226; }

/* --- Aviso de contacto ------------------------------------- */
.contact {
  width: 100%;
  min-width: 0;
  padding: 5mm 6mm;
  background: rgba(19, 16, 12, .72);
  border: 1px solid rgba(255, 255, 255, .22);
  display: flex; align-items: flex-start; gap: 4mm;
}
.contact__icon {
  flex: none;
  width: 30px; height: 30px;   /* 28px + 1px de borde a cada lado */
  background: rgba(243, 238, 226, .14);
  border: 1px solid rgba(243, 238, 226, .4);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  color: #E7DFCB;
}
.contact__text { min-width: 0; }
.contact__note {
  margin: 0;
  font-size: 9.5pt;
  line-height: 1.55;
  color: var(--parchment-dim);
  text-wrap: pretty;
}
.contact__mail {
  display: block;
  width: fit-content;          /* el enlace ocupa solo su texto, no la fila */
  margin-top: 2mm;
  font-size: 10.5pt;
  color: var(--gold-light);
}
.contact__mail + .contact__mail { margin-top: 1mm; }
.contact__mail:hover { color: #FFFFFF; }


/* ============================================================
   Vista 3 — Preguntas frecuentes
   ============================================================ */
.faq {
  position: relative;
  z-index: 1;
  max-width: 940px;
  margin: 0 auto;
  padding: clamp(34px, 5vw, 72px) clamp(16px, 4vw, 56px) clamp(48px, 6vw, 88px);
}

.faq__head { text-align: center; }

.faq__eyebrow {
  margin: 0;
  font-size: 10.5px;
  letter-spacing: 0.3em;
  color: var(--gold-light);
}

.faq__title {
  margin: 14px 0 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 28pt;
  line-height: 1.15;
  color: #FFFFFF;
  text-wrap: balance;
}

/* .rule es un bloque de ancho fijo: dentro de la cabecera centrada
   necesita margenes automaticos para quedar en el eje. */
.faq__rule { margin-inline: auto; }

.faq__intro {
  margin: 0 auto;
  max-width: 640px;
  font-size: 12pt;
  line-height: 1.7;
  color: var(--parchment-dim);
  text-wrap: pretty;
}

/* Lista de preguntas y respuestas: cada bloque va separado por una
   hairline, la pregunta en serif dorada y la respuesta en Manrope. */
.faq__list {
  margin: clamp(28px, 4vw, 48px) auto 0;
  max-width: 760px;
  text-align: left;
}

.faq__item {
  padding: clamp(20px, 3vw, 30px) 0;
  border-top: 1px solid rgba(243, 238, 226, .18);
}
.faq__item:first-child { border-top: 0; padding-top: 0; }

.faq__q {
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  font-size: 15pt;
  line-height: 1.3;
  color: var(--gold-light);
  text-wrap: balance;
}

.faq__a { margin-top: 12px; }
.faq__a p {
  margin: 0 0 10px;
  font-size: 11pt;
  line-height: 1.7;
  color: var(--parchment-dim);
  text-align: justify;
  text-wrap: pretty;
}
.faq__a p:last-child { margin-bottom: 0; }

.faq__back {
  margin-top: clamp(28px, 4vw, 44px);
  width: 100%;
  justify-content: center;
  padding: 16px;
  letter-spacing: 0.16em;
}
