@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap');

:root{--ivory:#f7f3eb;--gold:#c9a86a;--gold-light:#ead9b8;--ink:#161616;--glass:rgba(15,15,15,.48)}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0}
body{font-family:'DM Sans',Arial,sans-serif;background:var(--public-bg,#0b0b0b);color:var(--public-text,#fff);overflow:hidden}
button,a{font:inherit}
.offer-display{position:relative;width:100vw;height:100vh;height:100dvh;background:#0b0b0b;overflow:hidden}
.offer-display:before{content:"";position:absolute;z-index:20;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 110px rgba(0,0,0,.35)}
.carousel,.slide{position:absolute;inset:0;width:100%;height:100%}
.slide{opacity:0;visibility:hidden;transform:none;transition:opacity .8s cubic-bezier(.2,.7,.2,1),visibility .8s;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}
.slide.is-active{opacity:1;visibility:visible;transform:none}
/* Sin imagen duplicada de fondo: la fotografía principal se conserva íntegra. */
.slide:before{content:none!important;display:none!important;background-image:none!important}
.slide-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;max-width:none;max-height:none;background:#000}
.slide-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.42) 0%,rgba(5,5,5,.03) 48%,rgba(5,5,5,.38) 100%),linear-gradient(180deg,rgba(0,0,0,.32) 0%,transparent 25%,rgba(0,0,0,.02) 55%,rgba(0,0,0,.82) 100%);pointer-events:none}
.brand-mark{position:absolute;z-index:10;left:6vw;top:5vh;color:var(--ivory);font-size:clamp(12px,1.25vw,18px);font-weight:600;letter-spacing:.24em;text-transform:uppercase;text-shadow:0 2px 16px #000}
.brand-mark span{color:var(--gold);font-weight:400}
.offer-counter{position:absolute;z-index:10;right:6vw;top:5vh;display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.8);font-size:11px;letter-spacing:.2em}.offer-counter .line{width:48px;height:1px;background:var(--gold)}
.floating-actions{position:absolute;right:calc(5vw + var(--floating-actions-margin-right,0px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;z-index:15}
.floating-action{width:clamp(78px,8.8vw,142px);height:clamp(78px,8.8vw,142px);transform:scale(var(--button-scale,1));border:1px solid rgba(255,255,255,.35);border-radius:var(--button-radius,50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-decoration:none;cursor:pointer;box-shadow:0 14px 40px rgba(0,0,0,.28);font-weight:600;font-size:clamp(9px,1vw,14px);letter-spacing:.1em;transition:transform .25s ease,background .25s ease,border-color .25s ease;backdrop-filter:blur(12px)}
.floating-action:hover,.floating-action:focus-visible{transform:scale(calc(var(--button-scale,1) * 1.07));outline:0;border-color:var(--gold-light)}
.action-trip{background:var(--trip-button-color,var(--ivory));color:var(--trip-button-text,var(--ink));border-color:var(--trip-button-color,var(--ivory));transform:scale(var(--trip-button-scale,1))}.action-trip:hover{background:var(--trip-button-hover,#fff);color:var(--trip-button-hover-text,var(--trip-button-text,var(--ink)));transform:scale(calc(var(--trip-button-scale,1) * 1.07))}
.action-qr{background:var(--share-button-color,rgba(15,15,15,.5));color:var(--share-button-text,#fff);transform:scale(var(--share-button-scale,1))}.action-company{background:var(--company-button-color,rgba(201,168,106,.92));color:var(--company-button-text,#111);border-color:rgba(255,255,255,.55);transform:scale(var(--company-button-scale,1))}.action-company:hover{background:var(--company-button-hover,#ead9b8);color:var(--company-button-hover-text,var(--company-button-text,#111));transform:scale(calc(var(--company-button-scale,1) * 1.07))}.action-qr:hover{background:var(--share-button-hover,rgba(15,15,15,.78));color:var(--share-button-hover-text,var(--share-button-text,#fff));transform:scale(calc(var(--share-button-scale,1) * 1.07))}
.action-icon{font-size:clamp(27px,3.2vw,46px);line-height:.8;font-weight:300}.qr-icon{width:clamp(27px,3vw,44px);height:clamp(27px,3vw,44px);border:2px solid currentColor;background:linear-gradient(90deg,currentColor 0 22%,transparent 22% 36%,currentColor 36% 55%,transparent 55% 70%,currentColor 70%);position:relative}.qr-icon:after{content:"";position:absolute;inset:6px;border:2px solid currentColor}
.carousel-arrow{position:absolute;z-index:16;top:50%;transform:translateY(-50%);width:var(--carousel-arrow-size,52px);height:var(--carousel-arrow-size,52px);border-radius:50%;border:1px solid rgba(255,255,255,.28);background:var(--carousel-arrow-background,rgba(0,0,0,.18));color:var(--carousel-arrow-color,#fff);font-size:34px;line-height:1;cursor:pointer;backdrop-filter:blur(9px);transition:.25s}.carousel-prev{left:2.3vw}.carousel-next{right:2.3vw}.carousel-arrow:hover,.carousel-arrow:focus-visible{background:var(--carousel-arrow-background-hover,rgba(255,255,255,.12));border-color:var(--carousel-arrow-text-hover,var(--carousel-arrow-hover,var(--gold-light)));color:var(--carousel-arrow-text-hover,var(--carousel-arrow-hover,var(--gold-light)));outline:0}
.carousel-dots{position:absolute;z-index:17;bottom:4.5vh;left:7vw;display:flex;gap:8px;max-width:50vw;overflow:hidden;padding:5px}.dot{width:var(--carousel-dot-size,6px);height:var(--carousel-dot-size,6px);padding:0;border:0;border-radius:50%;background:var(--carousel-dot-color,rgba(255,255,255,.35));cursor:pointer;transition:.25s}.dot:hover{background:var(--carousel-dot-hover,#fff)}.dot.is-active{width:28px;border-radius:10px;background:var(--carousel-dot-active,var(--gold-light))}
.progress-track{position:absolute;left:7vw;right:7vw;bottom:2.6vh;height:var(--carousel-progress-height,1px);background:var(--carousel-progress-bg,rgba(255,255,255,.2));z-index:18}.progress-track span{display:block;width:0;height:100%;background:var(--carousel-progress-color,var(--gold-light));box-shadow:0 0 9px rgba(234,217,184,.45)}
.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10vw;background:radial-gradient(circle at center,#202020,#080808 65%)}.empty-state h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(34px,5vw,72px);font-weight:500}.empty-state p{font-size:clamp(15px,1.5vw,22px);opacity:.65}
.qr-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center}.qr-modal.is-open{display:flex}.qr-backdrop{position:absolute;inset:0;background:rgba(8,8,8,.86);backdrop-filter:blur(14px)}
.qr-dialog{position:relative;z-index:1;width:min(88vw,570px);padding:46px 42px 38px;border:1px solid rgba(201,168,106,.4);border-radius:var(--share-modal-radius,2px);background:var(--share-modal-bg,var(--ivory));color:var(--share-modal-text,var(--ink));text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.6)}
.qr-close{position:absolute;right:14px;top:9px;width:44px;height:44px;border:0;background:transparent;font-size:32px;cursor:pointer;color:#555}.qr-kicker{margin:0 0 9px;font-size:10px;letter-spacing:.25em;font-weight:600;color:#8b7040}.qr-dialog h2{margin:0 0 24px;font-family:'Playfair Display',Georgia,serif;font-size:clamp(25px,3vw,38px);font-weight:500}
.qr-code-wrap{width:300px;height:300px;max-width:70vw;max-height:70vw;margin:0 auto 21px;background:#fff;padding:10px;display:flex;align-items:center;justify-content:center;border:1px solid #ddd}.qr-code-wrap img{width:100%;height:100%;image-rendering:auto}.qr-help{margin:0 auto 21px;max-width:420px;color:#555;line-height:1.5;font-size:14px}.qr-open-link{display:inline-block;padding:13px 24px;border:1px solid #1a1a1a;background:#1a1a1a;color:#fff;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
@media (orientation:portrait){.brand-mark{top:3vh;left:6vw}.offer-counter{top:3vh;right:6vw}.floating-actions{right:calc(3.2vw + var(--floating-actions-margin-right,0px))}.floating-action{width:clamp(78px,11.5vw,124px);height:clamp(78px,11.5vw,124px)}.carousel-arrow{width:46px;height:46px}.carousel-prev{left:1.4vw}.carousel-next{right:1.4vw}}
@media (max-width:600px){.brand-mark{font-size:9px}.offer-counter{font-size:8px}.offer-counter .line{width:25px}.floating-actions{right:calc(2.2vw + var(--floating-actions-margin-right,0px));gap:9px}.floating-action{width:70px;height:70px;font-size:7px}.action-icon{font-size:27px}.qr-icon{width:27px;height:27px}.carousel-arrow{display:none}.carousel-dots{left:5vw;bottom:4.5vh}.progress-track{left:5vw;right:5vw}.qr-dialog{padding:40px 20px 26px}}

.company-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center}.company-modal.is-open{display:flex}.company-dialog{border-radius:var(--company-modal-radius,var(--share-modal-radius,2px));background:var(--company-modal-bg,var(--share-modal-bg,var(--ivory)));color:var(--company-modal-text,var(--share-modal-text,var(--ink)));max-height:88vh;overflow:auto}.company-description{margin:0 auto 24px;max-width:520px;color:#555;line-height:1.65;font-size:15px;text-align:left}.company-links{display:grid;gap:10px}.company-link-button{display:block;padding:15px 18px;border:1px solid #1a1a1a;background:#1a1a1a;color:#fff;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.company-link-button:hover{background:#333}
.whatsapp-share{margin:28px auto 0;padding-top:24px;border-top:1px solid #ddd;text-align:left}.whatsapp-title{margin:0 0 7px;color:#8b7040;font-size:10px;letter-spacing:.25em;font-weight:700}.whatsapp-help{margin:0 0 12px;color:#666;font-size:13px;line-height:1.5}.whatsapp-form-row{display:flex;gap:9px}.whatsapp-form-row input{flex:1;min-width:0;padding:13px 14px;border:1px solid #ccc;border-radius:0;font:inherit}.whatsapp-form-row button{padding:13px 16px;border:0;background:#1a1a1a;color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.whatsapp-form-row button:hover{background:#333}.whatsapp-form-row button:disabled{opacity:.55;cursor:wait}.whatsapp-status{min-height:18px;margin:9px 0 0;color:#8b7040;font-size:12px;line-height:1.4}@media(max-width:600px){.whatsapp-form-row{flex-direction:column}.whatsapp-form-row button{width:100%}}

/* Logo de Empresa: sustituye icono y texto cuando existe un logo configurado. */
.action-company-logo{min-width:96px;padding:8px 14px!important;min-height:105px}
.action-company-logo img{display:block;margin:auto;width:auto;height:min(var(--company-logo-size,70px),calc(clamp(78px,8.8vw,142px) - 20px));max-width:calc(100% - 16px);max-height:calc(clamp(78px,8.8vw,142px) - 20px);object-fit:contain;border-radius:8px}
/* V16: colores configurables de los modales */
.qr-dialog{border-color:color-mix(in srgb,var(--share-modal-accent,#c9a86a) 40%,transparent)}
.qr-kicker{color:var(--share-modal-accent,#8b7040)}
.company-dialog .qr-kicker{color:var(--company-modal-accent,var(--share-modal-accent,#8b7040))}
.company-link-button{border-color:var(--company-modal-accent,#1a1a1a);background:var(--company-modal-accent,#1a1a1a)}
.company-link-button:hover{filter:brightness(1.12)}

/* V19 - controles visuales de Ajustes */
.floating-action{
  box-sizing:border-box;
}
.action-trip{
  padding:var(--trip-padding-top) var(--trip-padding-right) var(--trip-padding-bottom) var(--trip-padding-left);
  margin:var(--trip-margin-top) var(--trip-margin-right) var(--trip-margin-bottom) var(--trip-margin-left);
}
.action-qr{
  padding:var(--share-padding-top) var(--share-padding-right) var(--share-padding-bottom) var(--share-padding-left);
  margin:var(--share-margin-top) var(--share-margin-right) var(--share-margin-bottom) var(--share-margin-left);
}
.action-company{
  padding:var(--company-padding-top) var(--company-padding-right) var(--company-padding-bottom) var(--company-padding-left);
  margin:var(--company-margin-top) var(--company-margin-right) var(--company-margin-bottom) var(--company-margin-left);
}
.qr-dialog h2{
  font-size:var(--share-modal-title-size,clamp(25px,3vw,38px));
  color:var(--share-modal-title-color,var(--share-modal-text,var(--ink)));
}
.qr-dialog .qr-help{
  font-size:var(--share-modal-paragraph-size,14px);
  color:var(--share-modal-paragraph-color,#555);
}
.company-dialog h2{
  font-size:var(--company-modal-title-size,clamp(25px,3vw,38px));
  color:var(--company-modal-title-color,var(--company-modal-text,var(--ink)));
}
.company-dialog .company-description{
  font-size:var(--company-modal-paragraph-size,15px);
  color:var(--company-modal-paragraph-color,#555);
}

.slide-shade{opacity:0!important}.slide-shade.is-enabled{opacity:var(--frontend-overlay)!important}

.action-company-favicon img{width:38%;height:38%;max-width:46px;max-height:46px;object-fit:contain;border-radius:8px}.company-modal-logo{text-align:center;margin:0 auto 10px}.company-modal-logo img{width:auto;height:70px;max-width:220px;object-fit:contain}.company-modal-crm-title{text-align:center;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#8b7040;margin-bottom:8px}
.company-contact-grid{margin:18px 0 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;font-size:14px;line-height:1.5;color:var(--company-modal-paragraph-color,#555)}.company-contact-column h3{font-size:11px;text-transform:uppercase;letter-spacing:.16em;margin:0 0 8px;color:var(--company-modal-accent,#8b7040)}.company-contact-column div{padding:2px 0;overflow-wrap:anywhere}.company-contact-empty{opacity:.55}@media(max-width:560px){.company-contact-grid{grid-template-columns:1fr;gap:14px}}

.qr-back{position:absolute;left:14px;top:10px;width:38px;height:38px;border:0;background:transparent;color:var(--share-modal-text,#161616);font-size:27px;line-height:1;cursor:pointer;z-index:2;border-radius:50%;}.qr-back:hover{background:rgba(0,0,0,.06)}

/* V39 - unified password field style for any password form rendered on the public frontend */
.password-toggle-wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 50px !important;
}
.password-toggle-wrap > input[type="password"],
.password-toggle-wrap > input[type="text"] {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 50px !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 48px 0 14px !important;
  border: 1px solid #ced4da !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #111 !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 50px !important;
  box-shadow: none !important;
}
.password-toggle-button {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #6c757d !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 5 !important;
  box-shadow: none !important;
}
.password-toggle-button svg { width: 17px !important; height: 17px !important; display: block !important; }

/* Modo pasivo: imagen a altura completa del área disponible y footer horizontal inferior. */
.passive-mode .floating-actions,.passive-mode .carousel-arrow,.passive-mode .carousel-dots,.passive-mode .offer-counter{display:none!important}
.passive-mode .offer-display{background:#000}
.passive-mode .carousel{position:absolute;inset:0 0 var(--passive-footer-height,180px) 0;width:100%;height:auto;background:#000}.passive-mode .slide{position:absolute;inset:0;width:100%;height:100%;background:#000}
.passive-mode .slide:before{content:none!important;display:none!important;background-image:none!important}
.passive-mode .slide-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;transform:none;background:#000}
.passive-mode .slide-shade{display:none!important}
.passive-mode .progress-track{display:none!important}
.passive-footer{position:fixed;z-index:30;left:0;right:0;bottom:0;width:100%;height:var(--passive-footer-height,180px);min-height:var(--passive-footer-height,180px);max-height:var(--passive-footer-height,180px);box-sizing:border-box;padding:var(--passive-footer-padding,18px 3vw);background:var(--passive-footer-background,#080808);color:var(--passive-footer-text,#fff);display:grid;grid-template-columns:minmax(0,30%) minmax(0,1fr);align-items:center;gap:var(--passive-footer-gap,28px);white-space:normal;overflow:hidden;text-align:left;border-top:1px solid rgba(255,255,255,.12)}
.passive-company-logo{display:block;height:var(--passive-footer-logo-size,100px);width:auto;max-width:100%;justify-self:var(--passive-footer-logo-justify,start);object-fit:contain;flex:0 0 auto}
.passive-company-data{flex:1 1 auto;width:auto;margin:0;display:flex;flex-direction:column;align-items:var(--passive-footer-info-align-items,center);justify-content:center;gap:4px;min-width:0;overflow:hidden;font-size:var(--passive-footer-text-size,16px);line-height:1.25;text-align:var(--passive-footer-info-text-align,center);overflow-wrap:anywhere}
.passive-data-item{display:block;width:100%;max-width:100%;margin:0;padding:0;white-space:normal;overflow-wrap:anywhere;text-align:var(--passive-footer-info-text-align,center)}
.passive-qr-floating{position:fixed;z-index:50;right:var(--passive-qr-right,3vw);top:calc((100vh - 180px) / 2);left:auto;bottom:auto;transform:translateY(-50%);width:min(var(--passive-qr-size,220px),calc(100vh - 240px));height:min(var(--passive-qr-size,220px),calc(100vh - 240px));padding:12px;box-sizing:border-box;background:color-mix(in srgb,var(--passive-qr-background,#fff) calc(var(--passive-qr-opacity,.82) * 100%),transparent);border:1px solid color-mix(in srgb,var(--passive-qr-background,#fff) calc(var(--passive-qr-opacity,.82) * 100%),transparent);border-radius:var(--passive-qr-border-radius,8px);box-shadow:0 18px 55px rgba(0,0,0,.32);display:flex;align-items:center;justify-content:center}
.passive-qr-code{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.passive-qr-floating img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:2px}
.passive-qr-label{position:absolute;left:50%;bottom:-32px;transform:translateX(-50%);font-size:clamp(10px,.85vw,14px);letter-spacing:.12em;font-weight:700;color:#fff;text-shadow:0 2px 10px #000;white-space:nowrap}
.passive-qr-loading,.passive-qr-error{font-size:14px;font-weight:700;letter-spacing:.08em;color:#111;text-align:center}
@media(max-width:900px){.passive-mode .carousel{bottom:150px}.passive-mode .slide{inset:0;width:100%;height:100%}.passive-footer{--passive-footer-height:150px;height:150px;min-height:150px;max-height:150px;padding:14px 18px;gap:18px}.passive-company-logo{height:76px;max-width:24vw}.passive-company-data{font-size:var(--passive-footer-text-size,13px);gap:16px}.passive-qr-floating{top:calc((100vh - 150px) / 2);width:min(var(--passive-qr-size,190px),28vw,calc(100vh - 210px));height:min(var(--passive-qr-size,190px),28vw,calc(100vh - 210px));padding:9px}}
@media(max-width:600px){.passive-mode .carousel{bottom:125px}.passive-mode .slide{inset:0;width:100%;height:100%}.passive-footer{--passive-footer-height:125px;height:125px;min-height:125px;max-height:125px;padding:10px 12px;gap:10px}.passive-company-logo{height:52px;max-width:20vw}.passive-company-data{font-size:10px;gap:8px}.passive-data-item{font-size:10px}.passive-qr-floating{top:calc((100vh - 125px) / 2);width:min(var(--passive-qr-size,120px),22vw,calc(100vh - 175px));height:min(var(--passive-qr-size,120px),22vw,calc(100vh - 175px));padding:6px}.passive-qr-label{font-size:8px;bottom:-20px}}

.slide-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:#000}

/* Compartir: selector Email / WhatsApp dentro del modal (solo cuando el plan incluye ambas).
   Los colores, tamaño y padding se configuran en Estilos → Frontend → Pestañas. */
.share-tabs{display:flex;margin:0 0 16px;border:1px solid #1a1a1a}.share-tab{flex:1;padding:var(--public-tab-pt,10px) var(--public-tab-pr,12px) var(--public-tab-pb,10px) var(--public-tab-pl,12px);border:0;background:var(--public-tab-bg,#fff);color:var(--public-tab-text,#1a1a1a);font:inherit;font-size:var(--public-tab-size,11px);font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.share-tab:hover{background:var(--public-tab-hover-bg,#fff);color:var(--public-tab-hover-text,#1a1a1a)}.share-tab+.share-tab{border-left:1px solid #1a1a1a}.share-tab.is-active{background:var(--public-tab-active-bg,#1a1a1a);color:var(--public-tab-active-text,#fff)}.share-panel[hidden]{display:none}
