/*
 * LAS FLORES DE LA REINA — SERVICIOS ESPECIALES
 * Decoración floral: hero compacto fiel al molde y estilos boutique
 * Author: Elevate Studio
 */

/* El prototipo carga explícitamente estas tres familias de Google Fonts. */
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Poppins:wght@300;400;500;600&family=Lato:wght@300;400;700;900&display=swap');

/*
 * WORDPRESS / ASTRA
 * El shortcode dibuja su propio H1; ocultamos solo el título que
 * WordPress agrega encima, sin tocar el header ni otras páginas.
 */
body.fdr-special-services-page .entry-header,
body.fdr-special-services-page h1.entry-title,
body.fdr-special-services-page .ast-single-post-order {
  display: none !important;
}

body.fdr-special-services-page .entry-content {
  margin: 0 !important;
  padding: 0 !important;
}

body.fdr-special-services-page .entry-content > p:empty {
  display: none;
}

/* Anular la caja blanca del contenido SOLO en esta página. */
body.fdr-special-services-page .site-content .ast-container,
body.fdr-special-services-page .site-content #primary {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Astra limita normalmente el contenido a un ancho máximo.
   Estos ajustes afectan exclusivamente la página de servicios. */
body.fdr-special-services-page .site-content .entry-content,
body.fdr-special-services-page .site-content article.page,
body.fdr-special-services-page .site-content .ast-article-single {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.fdr-special-services-page {
  overflow-x: clip;
}

body.fdr-special-services-page .site-content #primary,
body.fdr-special-services-page .site-content article.page,
body.fdr-special-services-page .site-content .ast-article-single {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Salir de los márgenes del contenedor del tema, manteniendo el header. */
.fdr-special-service {
  --fdr-bg: #fff1f0;
  --fdr-text: #2c2c2c;
  --fdr-rose: #a7546a;
  --fdr-rose-light: #f4e3e2;
  --fdr-muted: #6e6e76;
  --fdr-serif: 'Lora', Georgia, serif;
  --fdr-sans: 'Poppins', sans-serif;
  --fdr-label: 'Lato', sans-serif;
  /* Hero a todo el ancho SIN transform: los modales fixed quedan
     anclados a la ventana y no al contenedor del shortcode. */
  position: relative;
  left: auto;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  transform: none !important;
  overflow: visible;
  color: var(--fdr-text);
  background: var(--fdr-bg);
  font-family: var(--fdr-sans) !important;
  font-size: 15px;
  line-height: 1.75;
}

.fdr-special-service *,
.fdr-special-service *::before,
.fdr-special-service *::after { box-sizing: border-box; }

.fdr-special-service h1,
.fdr-special-service h2,
.fdr-special-service h3 {
  font-family: var(--fdr-serif) !important;
  font-style: normal;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  line-height: 1.15 !important;
  color: var(--fdr-text) !important;
  margin-top: 0;
}

.fdr-special-service h1 em,
.fdr-special-service h2 em,
.fdr-special-service h3 em {
  font-family: var(--fdr-serif) !important;
  font-style: italic !important;
  font-weight: inherit;
  color: var(--fdr-rose) !important;
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.fdr-special-service p,
.fdr-special-service textarea,
.fdr-special-service input,
.fdr-special-service select {
  font-family: var(--fdr-sans) !important;
}

.fdr-special-service p { margin-top: 0; }

.fdr-special-kicker,
.fdr-special-label,
.fdr-decoration-card__eyebrow {
  color: var(--fdr-rose) !important;
  font-family: var(--fdr-label) !important;
  font-weight: 900 !important;
  font-size: 11px !important;
  letter-spacing: 0.22em;
  line-height: 1.45;
  text-transform: uppercase;
}

/* HERO — proporciones y tamaños del prototipo */
.fdr-special-hero {
  position: relative;
  background:
    radial-gradient(ellipse 55% 80% at 88% 20%, rgba(167,84,106,.12), transparent 70%),
    linear-gradient(135deg, rgba(255,241,240,.98), rgba(255,255,255,.56));
  border-bottom: 1px solid rgba(167,84,106,.10);
}

.fdr-special-hero__background {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.fdr-special-hero__inner {
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0 auto;
  padding: 54px clamp(26px, 6vw, 115px) 56px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  align-items: center;
  gap: clamp(30px, 4vw, 70px);
}

.fdr-special-hero__copy { min-width: 0; animation: none; }
.fdr-special-hero__copy .fdr-special-kicker { margin: 0 0 13px; }

.fdr-special-hero h1 {
  max-width: 680px;
  margin: 0 0 15px;
  font-size: clamp(33px, 3.7vw, 57px) !important;
  line-height: 1.08 !important;
}

.fdr-special-hero__description {
  max-width: 560px;
  margin-bottom: 0;
  color: #666 !important;
  font-size: 15px !important;
  line-height: 1.72 !important;
}

.fdr-special-hero__visual {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin-left: auto;
  animation: none;
}

.fdr-special-hero__visual-inner {
  width: 100%;
  height: 235px;
  min-height: 235px;
  aspect-ratio: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(167,84,106,.12);
  border-radius: 180px 180px 18px 18px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.78), transparent 42%),
    rgba(255,255,255,.35);
  box-shadow: 0 28px 75px rgba(167,84,106,.12);
}

.fdr-special-hero__visual-inner span {
  font-size: clamp(70px, 8vw, 105px);
  line-height: 1;
  animation: fdrFloat 6s ease-in-out infinite;
}

/* INTRO Y SECCIONES */
.fdr-decoration {
  padding: 72px 0 96px;
  background: linear-gradient(180deg, #fff1f0 0%, #fff8f7 100%);
}

.fdr-decoration__intro {
  width: min(100% - 48px, 820px);
  margin: 0 auto 55px;
  text-align: center;
}

.fdr-decoration__intro .fdr-special-label { margin: 0 0 12px; }
.fdr-decoration__intro h2 {
  margin: 0 0 17px;
  font-size: clamp(29px, 3vw, 40px) !important;
  line-height: 1.2 !important;
}

.fdr-decoration__intro > p:last-child {
  max-width: 610px;
  margin: 0 auto;
  color: #777;
  font-size: 15px;
  line-height: 1.8;
}

/* BLOQUES — tarjetas del molde, alternando textos e imágenes */
.fdr-decoration__grid {
  width: min(100% - 48px, 1120px);
  margin: auto;
  display: grid;
  gap: 32px;
}

.fdr-decoration-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 36px;
  padding: 22px;
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(167,84,106,.12);
  border-radius: 24px;
  box-shadow: 0 22px 60px rgba(167,84,106,.09);
}

.fdr-decoration-card__copy { padding: clamp(14px, 3vw, 38px); min-width: 0; }
.fdr-decoration-card--reverse .fdr-decoration-card__visual { order: -1; }
.fdr-decoration-card__eyebrow { display: block; margin-bottom: 12px; }

.fdr-decoration-card h2 {
  margin: 0 0 17px;
  font-size: clamp(28px, 3vw, 43px) !important;
  line-height: 1.1 !important;
}

.fdr-decoration-card__copy > p {
  margin: 0 0 23px;
  color: var(--fdr-muted);
  font-size: 15px;
  line-height: 1.8;
}

.fdr-decoration-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}

.fdr-decoration-card__tags span {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(167,84,106,.14);
  background: rgba(244,227,226,.75);
  color: var(--fdr-rose);
  font-family: var(--fdr-label) !important;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.fdr-decoration-card__visual {
  position: relative;
  min-width: 0;
  min-height: 310px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(167,84,106,.1);
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.95), transparent 33%),
    linear-gradient(135deg, rgba(255,241,240,.95), rgba(244,227,226,.65));
}

.fdr-decoration-card__placeholder {
  position: relative;
  width: 100%;
  min-height: 310px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fdr-decoration-card__placeholder::before {
  content: '';
  position: absolute;
  width: 78%;
  height: 78%;
  border-radius: 48% 52% 55% 45%;
  background: rgba(255,255,255,.48);
  box-shadow: inset 0 0 0 1px rgba(167,84,106,.08), 0 30px 70px rgba(167,84,106,.12);
}

.fdr-decoration-card__icon {
  position: relative;
  z-index: 1;
  width: min(230px, 62%);
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(167,84,106,.14);
  border-radius: 28px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 20px 55px rgba(167,84,106,.13);
  font-size: 68px;
  line-height: 1;
}

.fdr-decoration-card__note {
  position: absolute;
  right: 19px;
  bottom: 19px;
  z-index: 2;
  max-width: 240px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #fff;
  color: #777;
  box-shadow: 0 16px 38px rgba(167,84,106,.13);
  font-size: 12px;
  line-height: 1.6;
}

.fdr-decoration-card__note strong {
  display: block;
  color: var(--fdr-rose);
  font-family: var(--fdr-serif) !important;
  font-size: 14px;
  font-weight: 600;
}

.fdr-decoration-card__note span { display: block; }

/* BOTONES */
.fdr-special-service .fdr-special-button,
.fdr-special-service .fdr-special-button--primary {
  min-height: 48px;
  padding: 13px 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  background: var(--fdr-rose);
  color: var(--fdr-bg);
  border: 1.5px solid var(--fdr-rose);
  border-radius: 2px;
  font-family: var(--fdr-label) !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.5;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, transform .2s ease, box-shadow .25s ease;
}

.fdr-special-service .fdr-special-button:hover {
  background: var(--fdr-rose-light);
  color: var(--fdr-rose);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(167,84,106,.2);
}

.fdr-special-service .fdr-special-button:focus-visible,
.fdr-special-modal__close:focus-visible {
  outline: 3px solid #cf91a4;
  outline-offset: 3px;
}

.fdr-special-service .fdr-special-button:disabled { opacity: .6; cursor: progress; transform: none; }

/* CTA FINAL */
.fdr-decoration-cta {
  width: min(100% - 48px, 1120px);
  margin: 56px auto 0;
  padding: 50px 28px;
  border-radius: 24px;
  border: 1px solid rgba(167,84,106,.15);
  background: rgba(255,255,255,.72);
  box-shadow: 0 22px 55px rgba(167,84,106,.08);
  text-align: center;
}

.fdr-decoration-cta h2 { margin: 0 0 15px; font-size: clamp(28px, 3vw, 41px) !important; }
.fdr-decoration-cta p { max-width: 640px; margin: 0 auto 26px; color: #777; line-height: 1.8; }

/* ==============================================================
   POPUP DE COTIZACIÓN — DISEÑO BOUTIQUE
   Respeta el HTML que entrega includes/special-services.php.
   Los selectores se limitan a este módulo para no afectar WooCommerce.
   ============================================================== */

.fdr-special-modal-overlay[hidden],
.fdr-special-modal[hidden] {
  display: none !important;
}

.fdr-special-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 999990;
  background: rgba(31, 23, 27, .52);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.fdr-special-modal {
  position: fixed;
  inset: 0;
  z-index: 999991;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  padding: 18px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fdr-special-modal__panel {
  box-sizing: border-box;
  flex: 0 1 620px;
  width: min(100%, 620px);
  min-width: 0;
  max-width: 620px;
  max-height: calc(100dvh - 36px);
  margin: auto;
  padding: 30px 34px 34px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff9f8;
  border: 1px solid rgba(167, 84, 106, .16);
  border-radius: 20px;
  box-shadow: 0 28px 85px rgba(31, 20, 25, .26);
  scrollbar-width: thin;
  scrollbar-color: #d5afb9 transparent;
}

.fdr-special-modal__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px;
  gap: 16px;
  align-items: start;
  margin: 0 0 24px;
  padding: 0 0 19px;
  border-bottom: 1px solid rgba(167, 84, 106, .12);
}

.fdr-special-modal__header > div {
  min-width: 0;
}

.fdr-special-modal__header .fdr-special-label {
  margin: 0 0 8px;
}

.fdr-special-service .fdr-special-modal__header h2 {
  margin: 0 !important;
  font-size: clamp(22px, 2.2vw, 27px) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
}

/* Astra impone tamaños mínimos a ciertos botones: anulamos esos
   valores para que el botón cerrar sea realmente circular. */
.fdr-special-service .fdr-special-modal__close {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: grid !important;
  place-items: center;
  flex: 0 0 36px !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(167, 84, 106, .16) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--fdr-rose) !important;
  font-family: Arial, sans-serif !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(167, 84, 106, .07);
  transform: rotate(0deg) scale(1);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
}

/* Giro suave de la X, sin cambiar el color del botón. */
.fdr-special-service .fdr-special-modal__close:hover {
  transform: rotate(90deg) scale(1.06);
  box-shadow: 0 7px 18px rgba(167, 84, 106, .12);
}

@media (prefers-reduced-motion: reduce) {
  .fdr-special-service .fdr-special-modal__close,
  .fdr-special-service .fdr-special-modal__close:hover {
    transform: none;
    transition: none;
  }
}

.fdr-special-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 17px;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.fdr-special-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
  width: 100%;
  min-width: 0;
}

.fdr-special-form__field {
  display: block;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.fdr-special-service .fdr-special-form__field label {
  display: block !important;
  width: 100%;
  margin: 0 0 7px !important;
  padding: 0 !important;
  color: var(--fdr-rose) !important;
  font-family: var(--fdr-label) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  letter-spacing: .11em;
  text-transform: uppercase;
}

/* Reinicio uniforme de inputs frente a estilos de Astra/WooCommerce. */
.fdr-special-service .fdr-special-form__field input,
.fdr-special-service .fdr-special-form__field select,
.fdr-special-service .fdr-special-form__field textarea {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  border: 1px solid #e6ced5 !important;
  border-radius: 10px !important;
  background-color: #fff !important;
  color: var(--fdr-text) !important;
  box-shadow: none !important;
  font-family: var(--fdr-sans) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  outline: none !important;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.fdr-special-service .fdr-special-form__field input,
.fdr-special-service .fdr-special-form__field select {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 0 14px !important;
}

.fdr-special-service .fdr-special-form__field select {
  -webkit-appearance: none !important;
  appearance: none !important;
  padding-right: 37px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1.5 5 5 5-5' fill='none' stroke='%23a7546a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px 8px !important;
  cursor: pointer;
}

.fdr-special-service .fdr-special-form__field textarea {
  min-height: 114px !important;
  height: auto;
  padding: 12px 14px !important;
  resize: vertical;
}

.fdr-special-service .fdr-special-form__field input::placeholder,
.fdr-special-service .fdr-special-form__field textarea::placeholder {
  color: #aa9a9f !important;
  opacity: 1 !important;
}

.fdr-special-service .fdr-special-form__field input:focus,
.fdr-special-service .fdr-special-form__field select:focus,
.fdr-special-service .fdr-special-form__field textarea:focus {
  border-color: var(--fdr-rose) !important;
  box-shadow: 0 0 0 3px rgba(167, 84, 106, .11) !important;
}

.fdr-special-service .fdr-special-form__field [aria-invalid='true'] {
  border-color: #be4c5e !important;
}

.fdr-special-form__honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  clip-path: inset(50%) !important;
  pointer-events: none !important;
}

.fdr-special-form__status {
  min-width: 0;
  margin: 0;
  color: #74666a;
  font-size: 12px;
  line-height: 1.6;
}

.fdr-special-form__status:empty {
  display: none;
}

.fdr-special-form__status[data-state='success'] {
  padding: 12px 14px;
  border: 1px solid #bcd9c3;
  border-radius: 10px;
  background: #eff8f0;
  color: #326343;
}

.fdr-special-form__status[data-state='error'] {
  padding: 12px 14px;
  border: 1px solid #eec8cb;
  border-radius: 10px;
  background: #fff0f0;
  color: #a33e4b;
}

.fdr-special-service .fdr-special-form__submit {
  width: 100% !important;
  min-width: 0 !important;
  margin: 4px 0 0 !important;
  padding: 14px 22px !important;
  border-radius: 7px !important;
  text-align: center;
}

/* TABLET */
@media (max-width: 900px) {
  .fdr-special-hero__inner { grid-template-columns: 1fr; min-height: 0; gap: 24px; padding: 43px 40px 42px; }
  .fdr-special-hero__visual { max-width: 550px; width: 100%; margin: auto; }
  .fdr-special-hero__visual-inner { height: 195px; min-height: 195px; aspect-ratio: auto; }
  .fdr-decoration { padding: 55px 0 78px; }
  .fdr-decoration-card { gap: 16px; padding: 16px; }
  .fdr-decoration-card__copy { padding: 14px; }
  .fdr-decoration-card__visual, .fdr-decoration-card__placeholder { min-height: 290px; }
  .fdr-decoration-card__icon { width: 55%; font-size: 58px; }
}

/* MÓVIL */
@media (max-width: 640px) {
  .fdr-special-hero__inner { width: min(100% - 40px, 520px); padding: 34px 0 35px; gap: 21px; }
  .fdr-special-hero h1 { font-size: clamp(31px, 10vw, 43px) !important; }
  .fdr-special-hero__description { font-size: 14px !important; line-height: 1.65 !important; }
  .fdr-special-hero__visual-inner { height: 155px; min-height: 155px; aspect-ratio: auto; border-radius: 100px 100px 14px 14px; }
  .fdr-special-hero__visual-inner span { font-size: 67px; }
  .fdr-decoration { padding: 48px 0 65px; }
  .fdr-decoration__intro { width: min(100% - 36px, 520px); margin-bottom: 33px; }
  .fdr-decoration__intro h2 { font-size: clamp(27px, 8vw, 34px) !important; }
  .fdr-decoration__intro > p:last-child { font-size: 14px; }
  .fdr-decoration__grid { width: min(100% - 32px, 520px); gap: 22px; }
  .fdr-decoration-card { grid-template-columns: 1fr; gap: 12px; padding: 13px; border-radius: 20px; }
  .fdr-decoration-card__copy { padding: 19px 12px 13px; }
  .fdr-decoration-card--reverse .fdr-decoration-card__visual { order: 0; }
  .fdr-decoration-card h2 { font-size: clamp(27px, 8vw, 36px) !important; }
  .fdr-decoration-card__copy > p { font-size: 14px; }
  .fdr-decoration-card__visual, .fdr-decoration-card__placeholder { min-height: 260px; }
  .fdr-decoration-card__icon { width: 55%; max-width: 190px; }
  .fdr-decoration-card__note { right: 12px; bottom: 12px; }
  .fdr-decoration-cta { width: min(100% - 32px, 520px); margin-top: 29px; padding: 35px 20px; }
  .fdr-decoration-cta h2 { font-size: 31px !important; }
  .fdr-decoration-cta p { font-size: 14px; }
  .fdr-special-modal { padding: 12px; }
  .fdr-special-modal__panel {
    flex-basis: 100%;
    max-height: calc(100dvh - 24px);
    padding: 23px 18px 25px;
    border-radius: 17px;
  }
  .fdr-special-modal__header { gap: 10px; margin-bottom: 18px; padding-bottom: 15px; }
  .fdr-special-service .fdr-special-modal__header h2 { font-size: 22px !important; }
  .fdr-special-form { gap: 14px; }
  .fdr-special-form__row { grid-template-columns: 1fr; gap: 14px; }
}

@keyframes fdrFadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fdrFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fdrFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

@media (prefers-reduced-motion: reduce) {
  .fdr-special-service *, .fdr-special-service *::before, .fdr-special-service *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* Astra no debe mostrar el campo ISO oculto del calendario. */
.fdr-special-service .fdr-special-form__field input[type="hidden"] {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* ================================================================
   FECHA DE EVENTOS — MISMO CAMPO QUE LOS DEMÁS INPUTS
   Author: Elevate Studio

   El ícono queda DENTRO del input (a la derecha).
   El texto de ayuda se mantiene accesible para lectores de pantalla,
   pero no modifica la distribución del formulario.
   ================================================================ */

.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap input[data-fdr-event-date-display] {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 55px 0 14px !important;
  border: 1px solid #e6ced5 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--fdr-text) !important;
  box-sizing: border-box !important;
}

.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap input[type="hidden"],
.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap input[data-fdr-event-date-iso] {
  display: none !important;
}

/* Neutraliza los estilos generales de botones de Astra. */
.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap button.fdr-special-date-toggle {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: absolute !important;
  top: 4px !important;
  right: 4px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 2 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: #a7546a !important;
  box-shadow: none !important;
  cursor: pointer;
  transform: none !important;
  transition: background-color .2s ease, color .2s ease;
}

.fdr-special-service .fdr-special-date-toggle svg {
  display: block !important;
  flex: 0 0 19px;
  width: 19px !important;
  height: 19px !important;
  pointer-events: none;
}

.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap button.fdr-special-date-toggle:hover,
.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap button.fdr-special-date-toggle:focus-visible {
  background: #f4e3e2 !important;
  color: #a7546a !important;
}

.fdr-special-service .fdr-special-form__field .fdr-special-date-input-wrap button.fdr-special-date-toggle:focus-visible {
  outline: 2px solid #a7546a !important;
  outline-offset: 1px;
}

/* Ayuda para accesibilidad: no ocupa espacio ni aparece bajo la fecha. */
.fdr-special-service .fdr-special-date-help {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ================================================================
   CALENDARIO DE EVENTOS — CONTENEDOR INDEPENDIENTE
   Author: Elevate Studio
   Se fija a la ventana, debajo del campo de fecha.
   ================================================================ */

body > .fdr-special-calendar--portal[hidden] { display: none !important; }

body > .fdr-special-calendar--portal {
  position: fixed !important;
  box-sizing: border-box !important;
  width: 300px !important;
  max-width: calc(100vw - 24px) !important;
  margin: 0 !important;
  padding: 12px 14px 14px !important;
  border: 1px solid #eedce0 !important;
  border-radius: 15px !important;
  background: #fff !important;
  color: #2c2c2c !important;
  box-shadow: 0 16px 35px rgba(95, 57, 67, .17) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  font-family: 'Poppins', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  text-align: left !important;
  pointer-events: auto !important;
  z-index: 2147483000 !important;
  scrollbar-width: thin;
}

body > .fdr-special-calendar--portal *,
body > .fdr-special-calendar--portal *::before,
body > .fdr-special-calendar--portal *::after { box-sizing: border-box !important; }

body > .fdr-special-calendar--portal .fdr-special-calendar__header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  height: 34px;
  margin: 0 0 9px !important;
  padding: 0 !important;
}

body > .fdr-special-calendar--portal .fdr-special-calendar__month {
  display: block;
  flex: 1;
  min-width: 0;
  font-family: 'Lora', Georgia, serif !important;
  color: #2c2c2c !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-transform: capitalize !important;
  white-space: nowrap !important;
}

body > .fdr-special-calendar--portal button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: grid !important;
  place-items: center !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__nav {
  width: 32px !important;
  height: 32px !important;
  flex: 0 0 32px !important;
  border: 1px solid #ecd8dd !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #4d4648 !important;
  font-family: Arial, sans-serif !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__nav:hover:not(:disabled) {
  background: #fff1f0 !important;
  border-color: #c98799 !important;
  color: #a7546a !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__nav:disabled {
  color: #dfcbd0 !important;
  cursor: not-allowed;
  opacity: 1 !important;
}

body > .fdr-special-calendar--portal .fdr-special-calendar__weekdays,
body > .fdr-special-calendar--portal .fdr-special-calendar__days {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  gap: 2px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

body > .fdr-special-calendar--portal .fdr-special-calendar__weekdays {
  margin-bottom: 3px !important;
}

body > .fdr-special-calendar--portal .fdr-special-calendar__weekday {
  display: grid !important;
  place-items: center !important;
  height: 21px !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #8d8387 !important;
  text-align: center !important;
}

body > .fdr-special-calendar--portal .fdr-special-calendar__empty {
  display: block !important;
  height: 30px !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__day {
  width: 30px !important;
  height: 30px !important;
  max-width: 100% !important;
  justify-self: center !important;
  border: 1px solid transparent !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #40383b !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__day:hover:not(:disabled),
body > .fdr-special-calendar--portal button.fdr-special-calendar__day:focus-visible:not(:disabled) {
  background: #fff1f0 !important;
  border-color: #ecd5dc !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__day:disabled {
  color: #c6bfc3 !important;
  cursor: not-allowed;
  opacity: 1 !important;
}

body > .fdr-special-calendar--portal button.fdr-special-calendar__day[aria-pressed="true"],
body > .fdr-special-calendar--portal button.fdr-special-calendar__day[aria-current="date"] {
  background: #fff !important;
  border-color: #a7546a !important;
  color: #2c2c2c !important;
}

body > .fdr-special-calendar--portal button:focus-visible {
  outline: 2px solid #a7546a !important;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  body > .fdr-special-calendar--portal button { transition: none !important; }
}
