:root{color-scheme:dark;--pink:#ed2b9a;--blue:#5578e7;--cyan:#24c6c8;--white:#fbfaff;--muted:#aaa9bb;--line:rgba(230,232,255,.25);--panel:#171a2b;--sans:"Nunito Sans",Arial,sans-serif;--serif:"Futura PT","Futura PT Heavy",Futura,Arial,sans-serif}*{box-sizing:border-box}html{min-height:100%;background:#0b0d17}body{margin:0;min-height:100vh;padding:22px 16px 28px;color:var(--white);font-family:var(--sans);background:linear-gradient(145deg,#18101f 0%,#101323 48%,#0b1830 100%);overflow-x:hidden}.flow-bg{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 14% 4%,rgba(145,18,101,.28),transparent 45%),radial-gradient(ellipse at 95% 86%,rgba(24,103,214,.28),transparent 44%)}.flow{position:absolute;width:min(78vw,680px);aspect-ratio:1;border-radius:50%;filter:blur(115px);opacity:.31;mix-blend-mode:screen;will-change:transform}.flow-pink{left:-22%;top:-30%;background:#ed1c91;animation:drift-a 24s ease-in-out infinite alternate}.flow-blue{right:-35%;top:27%;background:#1767e7;animation:drift-b 28s ease-in-out infinite alternate}.flow-teal{left:22%;bottom:-55%;background:#00b9b5;opacity:.22;animation:drift-c 31s ease-in-out infinite alternate}.flow-green{right:5%;bottom:-45%;width:min(50vw,460px);background:#54b85b;opacity:.16;animation:drift-a 34s ease-in-out infinite alternate-reverse}.flow-mesh{position:absolute;inset:-10%;opacity:.085;background-image:linear-gradient(rgba(162,193,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(162,193,255,.35) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse at center,#000 8%,transparent 75%);transform:perspective(700px) rotateX(58deg) scale(1.6) translateY(16%);animation:mesh 26s linear infinite}@keyframes drift-a{to{transform:translate3d(14%,12%,0) scale(1.14)}}@keyframes drift-b{to{transform:translate3d(-12%,-10%,0) scale(.91)}}@keyframes drift-c{to{transform:translate3d(10%,-12%,0) scale(1.18)}}@keyframes mesh{to{background-position:84px 84px}}.page-shell{position:relative;z-index:1;width:min(100%,760px);margin:0 auto}.brandbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:62px;padding:4px 3px 15px;border-bottom:1px solid rgba(255,255,255,.16)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img:first-child{width:35px;height:35px;object-fit:contain}.brand .wordmark{width:clamp(155px,37vw,215px);height:auto;max-height:44px;object-fit:contain;object-position:left center}.language{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#f8f5fc;font:600 13px var(--sans);white-space:nowrap;padding:8px 2px}.language svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}.steps{display:flex;align-items:center;gap:10px;margin:15px 0 25px;padding:0 4px}.step{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:.015em}.step.muted{color:#77788c}.step-number{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--pink);color:#fff;font-size:12px;font-weight:700;font-style:normal;line-height:1}.muted .step-number{background:#292d41;color:#a9aabc}.step-rule{height:1px;flex:1;min-width:18px;background:linear-gradient(90deg,var(--pink),rgba(83,115,224,.55))}.intro{text-align:center;margin:0 auto 20px}.eyebrow{margin:0 0 8px;color:#ff70c2;font-size:11px;font-weight:700;letter-spacing:.17em}.intro h1{margin:0;font:700 clamp(27px,6vw,42px)/1.12 var(--serif);letter-spacing:-.035em}.quote-card{position:relative;padding:clamp(18px,4vw,28px);border:1px solid rgba(229,232,255,.24);border-top-color:rgba(255,255,255,.4);border-radius:27px;background:linear-gradient(132deg,rgba(255,255,255,.105),rgba(23,25,42,.92) 26%,rgba(16,20,38,.95) 70%,rgba(68,87,142,.19));box-shadow:inset 0 1px 0 rgba(255,255,255,.19),inset 0 -1px 0 rgba(255,255,255,.1),0 24px 75px rgba(0,0,0,.29);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.quote-card:before{content:"";position:absolute;inset:1px;border-radius:26px;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 23%,transparent 72%,rgba(255,255,255,.025))}.field-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:26px;row-gap:20px}.field{position:relative;display:flex;flex-direction:column;min-width:0}.span-two{grid-column:1/-1}.field-label{margin-bottom:5px;color:#d6d5e1;font-size:12px;font-weight:600;letter-spacing:.055em}.field input,.line-control{width:100%;height:44px;padding:6px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--white);font:400 17px var(--sans);outline:0}.field input::placeholder{color:#8b8b9c;opacity:1}.field input:focus,.line-control:focus-visible{border-bottom-color:var(--pink);box-shadow:0 1px 0 var(--pink)}.line-control{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.line-control span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-control svg{width:19px;height:19px;flex:none;fill:none;stroke:#f8f7ff;stroke-width:1.8}.guest-control{height:45px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.guest-control button{width:39px;height:39px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:400 24px/1 var(--sans);cursor:pointer}.guest-control input{width:78px;height:42px;padding:0;border:0;text-align:center;color:#fff;font:500 25px var(--sans);font-variant-numeric:tabular-nums;background:transparent;appearance:textfield}.guest-control input::-webkit-inner-spin-button,.guest-control input::-webkit-outer-spin-button{appearance:none;margin:0}.calendar{position:absolute;z-index:10;top:calc(100% + 7px);right:0;width:min(100%,320px);padding:13px;border:1px solid rgba(225,228,250,.23);border-radius:17px;background:#202236;box-shadow:0 18px 52px rgba(0,0,0,.48)}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calendar-top strong{font-size:14px;font-weight:700}.calendar-top button{width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font:25px/1 var(--sans);cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.calendar-grid button{height:34px;border:0;border-radius:10px;background:transparent;color:#eeedf6;font:500 13px var(--sans);cursor:pointer}.calendar-grid button.weekday{height:28px;color:#aaaabc;font-size:11px;cursor:default}.calendar-grid button.outside{color:#6f7081}.calendar-grid button.today{box-shadow:inset 0 0 0 1px rgba(237,43,154,.7)}.calendar-grid button.selected{background:linear-gradient(135deg,#f03b9e,#a449c9);color:white;font-weight:700}.calendar-grid button:disabled{color:#595b6d;cursor:default}.choice-menu{position:fixed;z-index:25;max-height:min(48vh,330px);overflow:auto;padding:6px;border:1px solid rgba(230,232,255,.18);border-radius:14px;background:#202236;box-shadow:0 16px 42px rgba(0,0,0,.5)}.choice-option{display:flex;width:100%;justify-content:space-between;align-items:center;gap:20px;padding:10px 11px;border:0;border-radius:9px;background:transparent;color:#f7f6ff;text-align:left;font:500 14px var(--sans);cursor:pointer}.choice-option:hover,.choice-option:focus-visible{background:rgba(237,43,154,.2);outline:none}.choice-option small{color:#a8a9bb;font:12px var(--sans)}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:23px;padding-top:19px;border-top:1px solid rgba(255,255,255,.1);color:#d0cfdd;font-size:13px}.submit{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 19px;border:0;border-radius:15px;background:linear-gradient(105deg,#e32998,#875be3 72%,#5079e4);color:#fff;font:700 14px var(--sans);cursor:pointer;box-shadow:0 7px 22px rgba(190,39,151,.23);transition:filter .2s,transform .2s}.submit:hover{filter:brightness(1.1);transform:translateY(-1px)}.submit:disabled{opacity:.65;cursor:wait;transform:none}.submit svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.form-error{margin:12px 0 0;color:#ff91c9;font-size:13px}.microcopy{text-align:center;margin:12px auto 23px;color:#aaa9bb;font-size:11px;line-height:1.5}.page-shell footer{text-align:center;color:#9392a4;font-size:10px;font-weight:600;letter-spacing:.12em}.page-shell footer span{color:var(--pink);padding:0 4px}.loading{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:rgba(5,7,13,.76);backdrop-filter:blur(14px)}.loading[hidden]{display:none}.loading-card{display:flex;align-items:center;flex-direction:column;gap:10px;width:min(100%,360px);padding:31px 22px;border:1px solid rgba(255,255,255,.2);border-radius:23px;background:#191b2c;text-align:center;box-shadow:0 25px 70px rgba(0,0,0,.4)}.loading-card strong{font-size:18px}.loading-card>span:not(.loader){color:#b6b5c6;font-size:13px}.loader{width:31px;height:31px;border:3px solid rgba(255,255,255,.19);border-top-color:#f03b9e;border-right-color:#647de9;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-card a{margin-top:7px;color:#ff80c6;font-size:14px}@media(max-width:560px){body{padding:13px 12px 22px}.brandbar{min-height:54px;padding-bottom:11px}.brand .wordmark{width:clamp(142px,42vw,190px)}.brandbar .brand img:first-child{width:30px;height:30px}.steps{margin:13px 0 19px;gap:8px}.step{font-size:12px;gap:6px}.step-number{width:22px;height:22px;font-size:11px}.intro{margin-bottom:16px}.eyebrow{font-size:9px;letter-spacing:.14em}.intro h1{font-size:clamp(27px,8vw,35px)}.quote-card{padding:17px 16px 16px;border-radius:23px}.quote-card:before{border-radius:22px}.field-grid{grid-template-columns:minmax(0,1fr);row-gap:16px}.span-two{grid-column:auto}.field-label{font-size:11px}.field input,.line-control{height:43px;font-size:16px}.guest-control input{font-size:24px}.calendar{right:0;width:min(100%,330px)}.calendar-grid button{height:36px}.card-footer{align-items:stretch;flex-direction:column;gap:12px;margin-top:20px;padding-top:15px}.card-footer>span{font-size:12px}.submit{min-height:49px;width:100%;font-size:14px}.microcopy{margin:11px auto 17px}.choice-menu{left:12px!important;right:12px!important;width:auto!important;max-height:42vh}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Mobile-first composition: two compact columns keep the form close to the approved proposal layout. */
@media(max-width:560px){
  body{padding:8px 10px 18px}
  .page-shell{width:100%;max-width:480px}
  .brandbar{min-height:48px;padding:2px 2px 9px;gap:8px}
  .brand{gap:7px}
  .brand img:first-child{width:27px;height:27px}
  .brand .wordmark{width:clamp(126px,39vw,166px);max-height:36px}
  .language{gap:5px;padding:5px 1px;font-size:12px}
  .language svg{width:18px;height:18px}
  .steps{margin:10px 0 14px;padding:0 2px;gap:7px}
  .step{gap:5px;font-size:11px}
  .step-number{width:20px;height:20px;font-size:10px}
  .step-rule{min-width:10px}
  .intro{margin:0 auto 14px}
  .eyebrow{margin-bottom:5px;font-size:8px;letter-spacing:.13em}
  .intro h1{font-size:clamp(25px,7vw,31px);line-height:1.12}
  .quote-card{padding:15px 14px 14px;border-radius:20px}
  .quote-card:before{border-radius:19px}
  .field-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:14px;row-gap:12px}
  .span-two{grid-column:1/-1}
  .field-label{margin-bottom:3px;font-size:10px;letter-spacing:.035em}
  .field input,.line-control{height:39px;padding:4px 2px;font-size:14px}
  .line-control{gap:4px}
  .line-control svg{width:16px;height:16px}
  .guest-control{height:40px}
  .guest-control button{width:31px;height:31px;font-size:21px}
  .guest-control input{width:46px;height:38px;font-size:22px}
  .calendar{position:fixed;left:50%;right:auto;top:110px;width:min(calc(100vw - 30px),340px);padding:12px;transform:translateX(-50%)}
  .calendar-grid button{height:36px}
  .card-footer{align-items:stretch;flex-direction:column;gap:9px;margin-top:15px;padding-top:12px}
  .card-footer>span{font-size:11px}
  .submit{min-height:45px;width:100%;font-size:13px}
  .microcopy{margin:9px auto 13px;font-size:10px}
  .page-shell footer{font-size:9px}
  .choice-menu{max-height:min(42vh,300px)}
}
@media(max-width:370px){
  body{padding-right:8px;padding-left:8px}
  .quote-card{padding-right:11px;padding-left:11px}
  .field-grid{column-gap:10px}
  .brand .wordmark{width:clamp(118px,37vw,138px)}
  .step{font-size:10px}
  .line-control{font-size:13px}
  .guest-control button{width:28px;height:28px}
  .guest-control input{width:40px;font-size:20px}
}

/* Flow mesh motion stays in the fixed backdrop so the form card remains still. */
.flow-bg::before{content:"";position:absolute;inset:-18%;pointer-events:none;background:radial-gradient(ellipse at 14% 13%,rgba(239,35,150,.3),transparent 36%),radial-gradient(ellipse at 80% 31%,rgba(35,102,231,.3),transparent 38%),radial-gradient(ellipse at 41% 77%,rgba(9,196,190,.24),transparent 36%),radial-gradient(ellipse at 88% 87%,rgba(61,173,96,.2),transparent 35%);background-size:145% 145%;animation:flow-color-drift 22s ease-in-out infinite alternate;will-change:background-position,transform}
.flow-mesh{opacity:.17;background-size:54px 43px;transform:perspective(700px) rotateX(59deg) rotateZ(-7deg) scale(1.65) translate3d(-1%,10%,0);animation:mesh 13s ease-in-out infinite alternate;will-change:transform,background-position}
@keyframes mesh{0%{background-position:0 0;transform:perspective(700px) rotateX(59deg) rotateZ(-7deg) scale(1.65) translate3d(-2%,12%,0)}50%{background-position:35px 22px;transform:perspective(700px) rotateX(55deg) rotateZ(-3deg) scale(1.7) translate3d(1%,6%,0)}100%{background-position:70px 44px;transform:perspective(700px) rotateX(59deg) rotateZ(2deg) scale(1.65) translate3d(3%,12%,0)}}
@keyframes flow-color-drift{0%{background-position:0% 0%;transform:translate3d(-1%,0,0) scale(1)}100%{background-position:100% 100%;transform:translate3d(1%,1%,0) scale(1.05)}}
@media(max-width:560px){.flow{filter:blur(70px);opacity:.27}.flow-bg::before{inset:-24%;opacity:.8}.flow-mesh{opacity:.12;background-size:48px 39px}}
@media(prefers-reduced-motion:reduce){.flow-bg::before,.flow-mesh{animation:none!important}}

/* Curved Flow contours move only in the fixed background layer. */
.flow-mesh{inset:-2%;opacity:.25;background-image:url("../images/flow-contour.svg");background-repeat:no-repeat;background-size:cover;background-position:50% 50%;transform:scale(1.04);animation:contour-drift 24s ease-in-out infinite alternate;will-change:background-position,transform;mask-image:radial-gradient(ellipse at center,transparent 18%,rgba(0,0,0,.24) 43%,#000 82%)}
@keyframes contour-drift{0%{background-position:46% 48%;transform:scale(1.04) translate3d(-.7%,0,0)}100%{background-position:54% 52%;transform:scale(1.1) translate3d(.7%,.4%,0)}}
@media(max-width:560px){.flow-mesh{inset:-1%;opacity:.2;background-size:cover}}
@media(prefers-reduced-motion:reduce){.flow-mesh{animation:none!important}}

/* Official wordmark SVG, without the separate isotype. */
.brand img.wordmark{display:block;width:clamp(174px,25vw,220px);height:auto;max-height:48px;object-fit:contain;object-position:left center}
@media(max-width:560px){.brand img.wordmark{width:clamp(145px,43vw,180px);height:auto;max-height:40px}}

/* Mirror only the Flow backdrop so its blue tones sit on the logo side. */
.flow-bg{transform:scaleX(-1);transform-origin:center}

/* Lightweight Flow: soft moving brand gradients, without a mesh or blur filters. */
.flow{display:none!important}
.flow-mesh{display:none!important}
.flow-bg{background-color:#0b0d17}
.flow-bg::before{inset:-15%;opacity:.78;background:radial-gradient(ellipse at 19% 18%,rgba(237,28,145,.38),transparent 36%),radial-gradient(ellipse at 78% 36%,rgba(23,103,231,.4),transparent 39%),radial-gradient(ellipse at 44% 82%,rgba(0,185,181,.25),transparent 34%),radial-gradient(ellipse at 88% 88%,rgba(84,184,91,.16),transparent 31%);animation:quote-flow-light 30s ease-in-out infinite alternate;will-change:transform}
@keyframes quote-flow-light{0%{transform:translate3d(-1.3%,-.8%,0) scale(1)}100%{transform:translate3d(1.3%,.8%,0) scale(1.035)}}
@media(max-width:560px){.flow-bg::before{inset:-18%;opacity:.68;animation-duration:34s}}
@media(prefers-reduced-motion:reduce){.flow-bg::before{animation:none!important}}

/* Slow ocean-like color drift stays inside the fixed background layer. */
.flow-bg::before{display:none}
.flow-bg{background:transparent}
.flow{display:block!important;position:absolute;width:min(88vw,720px);aspect-ratio:1;border-radius:50%;filter:none;mix-blend-mode:screen;opacity:.88;will-change:transform}
.flow-pink{left:-23%;top:-24%;background:radial-gradient(ellipse at 44% 44%,rgba(237,43,154,.52) 0%,rgba(237,43,154,.2) 38%,transparent 73%);animation:ocean-pink 52s ease-in-out infinite alternate}
.flow-blue{right:-31%;top:4%;background:radial-gradient(ellipse at 46% 44%,rgba(85,120,231,.56) 0%,rgba(85,120,231,.21) 39%,transparent 74%);animation:ocean-blue 59s ease-in-out infinite alternate}
.flow-teal{left:14%;bottom:-50%;background:radial-gradient(ellipse at 46% 43%,rgba(36,198,200,.35) 0%,rgba(36,198,200,.13) 40%,transparent 74%);animation:ocean-teal 64s ease-in-out infinite alternate}
.flow-green{right:-2%;bottom:-43%;width:min(68vw,540px);background:radial-gradient(ellipse at 46% 43%,rgba(84,184,91,.3) 0%,rgba(84,184,91,.11) 42%,transparent 75%);opacity:.83;animation:ocean-green 57s ease-in-out infinite alternate}
.flow-mesh{display:none!important}
@keyframes ocean-pink{0%{transform:translate3d(0,0,0) scale(.95)}20%{transform:translate3d(31vw,16vh,0) scale(1.08)}42%{transform:translate3d(59vw,46vh,0) scale(.92)}64%{transform:translate3d(35vw,83vh,0) scale(1.12)}82%{transform:translate3d(-5vw,61vh,0) scale(1.02)}100%{transform:translate3d(0,0,0) scale(.95)}}
@keyframes ocean-blue{0%{transform:translate3d(0,0,0) scale(1)}22%{transform:translate3d(-36vw,20vh,0) scale(1.1)}44%{transform:translate3d(-62vw,55vh,0) scale(.94)}66%{transform:translate3d(-37vw,90vh,0) scale(1.13)}84%{transform:translate3d(5vw,60vh,0) scale(1.02)}100%{transform:translate3d(0,0,0) scale(1)}}
@keyframes ocean-teal{0%{transform:translate3d(0,0,0) scale(.94)}24%{transform:translate3d(24vw,-42vh,0) scale(1.12)}48%{transform:translate3d(49vw,-83vh,0) scale(.96)}72%{transform:translate3d(-4vw,-59vh,0) scale(1.1)}100%{transform:translate3d(0,0,0) scale(.94)}}
@keyframes ocean-green{0%{transform:translate3d(0,0,0) scale(1)}24%{transform:translate3d(-40vw,-30vh,0) scale(.94)}48%{transform:translate3d(-61vw,-79vh,0) scale(1.14)}72%{transform:translate3d(-20vw,-93vh,0) scale(1.02)}100%{transform:translate3d(0,0,0) scale(1)}}
@media(max-width:560px){.flow{width:108vw}.flow-green{width:82vw}.flow-pink{left:-32%;top:-20%}.flow-blue{right:-48%;top:8%}.flow-teal{left:5%;bottom:-48%}.flow-green{right:-25%;bottom:-42%}}
@media(prefers-reduced-motion:reduce){.flow{animation:none!important}}

/* Ajustes finales de jerarquía, logo, cantidad y adaptación móvil. */
.brand{flex:1;min-width:0}
.brand img.wordmark{width:clamp(150px,32vw,205px);max-height:46px;height:auto;object-fit:contain;object-position:left center}
.guest-control{justify-content:flex-start;gap:10px;height:43px}
.guest-control button{width:32px;height:32px;flex:none;font-size:20px}
.guest-control input{width:52px;height:38px;font-size:18px;font-weight:600}
.whatsapp-icon{width:20px;height:20px;fill:currentColor!important;stroke:none!important}
.submit{gap:9px}
@media(max-width:560px){
  .brand .wordmark,.brand img.wordmark{width:min(46vw,174px);max-height:38px}
  .guest-control{height:39px;gap:8px}
  .guest-control button{width:29px;height:29px;font-size:19px}
  .guest-control input{width:45px;height:36px;font-size:17px}
  .field-label{line-height:1.3}
  .field-grid{row-gap:14px}
}
@media(max-width:370px){.brand .wordmark,.brand img.wordmark{width:min(42vw,145px)}.guest-control{gap:5px}.guest-control input{width:39px;font-size:16px}}

/* Control de personas compacto - SIN ZOOM */
.guest-control{display:flex;align-items:center;justify-content:space-between;height:40px;border-bottom:1px solid var(--line);touch-action:manipulation}
.guest-control button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:400 22px/1 var(--sans);cursor:pointer;touch-action:manipulation!important;-webkit-user-select:none;user-select:none;flex:none}
.guest-control button:active{background:rgba(237,43,154,.4);transform:scale(.94)}
.guest-control input{width:56px;height:36px;padding:0;border:0;text-align:center;color:#fff;font:600 22px var(--sans);background:transparent;touch-action:manipulation!important}
.form-divider{grid-column:1/-1;height:1px;background:linear-gradient(90deg,transparent,rgba(230,232,255,.22),transparent);margin:4px 0}

@media(max-width:560px){
  html,body{min-height:100%;overflow-x:hidden}
  body{padding:10px 12px 24px}
  .page-shell{max-width:460px;margin:0 auto}
  .brandbar{min-height:46px;padding:2px 2px 8px;gap:8px}
  .brand .wordmark{width:clamp(135px,40vw,175px);max-height:36px}
  .steps{margin:8px 0 12px;gap:7px}
  .step{font-size:11px;gap:5px}
  .step-number{width:19px;height:19px;font-size:10px}
  .step-rule{min-width:12px}
  .intro{margin:0 auto 10px;text-align:center}
  .eyebrow{font-size:8.5px;letter-spacing:.12em;margin-bottom:3px}
  .intro h1{font-size:clamp(19px,5.5vw,23px);line-height:1.2;margin:0}
  .intro-helper{font-size:11.5px;line-height:1.35;margin-top:3px}
  .quote-card{padding:14px 14px 14px;border-radius:20px}
  .field-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px;row-gap:9px}
  .field-label{font-size:10.5px;margin-bottom:2px}
  .field input,.line-control{height:36px;font-size:14px;padding:2px 3px}
  .line-control svg{width:16px;height:16px}
  .card-footer{flex-direction:column;align-items:stretch;margin-top:12px;padding-top:10px;gap:8px}
  .card-footer>span{font-size:11px}
  .submit{min-height:46px;width:100%;font-size:13.5px;border-radius:13px}
  .microcopy{margin:8px auto 6px;font-size:9.5px;line-height:1.35}
  .page-shell footer{font-size:9px}
}
@media(max-width:390px){
  body{padding:8px 10px 20px}
  .quote-card{padding:12px 11px 12px}
  .field-grid{column-gap:9px;row-gap:8px}
  .field input,.line-control{font-size:13px;height:34px}
  .guest-control input{font-size:20px;width:50px}
}

.calendar{padding-top:42px}
.picker-close{position:absolute;z-index:2;top:8px;right:9px;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:400 24px/1 var(--sans);cursor:pointer}
.choice-menu{padding-top:42px}
.choice-menu .picker-close{position:sticky;display:grid;float:right;margin-top:-36px;margin-right:0}
@media(max-width:560px){.calendar{position:fixed;left:50%;right:auto;top:50%;width:min(calc(100vw - 30px),380px);max-height:calc(100dvh - 24px);overflow:auto;transform:translate(-50%,-50%);z-index:60}.picker-close{width:34px;height:34px}}

/* Keep popovers centered in the viewport without changing page scroll or width. */
html,body{max-width:100%;overflow-x:clip}
.calendar{overscroll-behavior:contain;touch-action:pan-y}
.choice-menu{box-sizing:border-box;max-width:calc(100vw - 24px);overscroll-behavior:contain;touch-action:pan-y}
@media(max-width:560px){.choice-menu{position:fixed!important;left:12px!important;right:12px!important;top:50%!important;width:auto!important;max-width:none;transform:translateY(-50%)!important;max-height:calc(100dvh - 24px)!important}}

/* Requested header hierarchy, brand sized wordmark, compact time picker, matte brand accents. */
.brandbar .brand{flex:0 0 auto;width:clamp(110px,18vw,156px);min-width:0}
.brandbar .brand img.wordmark{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:left center}
.intro-helper{max-width:560px;margin:12px auto 0;color:#cfceda;font-size:15px;line-height:1.6}
.choice-menu{width:min(240px,calc(100vw - 24px));max-height:180px;padding:42px 7px 7px}
.choice-option{padding:5px 10px;font-size:12px}
.calendar-grid button.weekday{color:#d87bab}
@media(max-width:560px){
  .brandbar .brand{width:min(37vw,150px)}
  .brandbar .brand img.wordmark{width:100%;max-height:none}
  .intro-helper{max-width:420px;margin-top:10px;font-size:14px;line-height:1.55}
  .steps{gap:8px}
  .step{font-size:12px;gap:6px}
  .step-number{width:22px;height:22px;font-size:11px}
  .choice-menu{width:min(210px,calc(100vw - 24px));max-height:min(180px,calc(100dvh - 24px))}
  .choice-option{padding:5px 9px;font-size:12px}
}

/* Compact the progress line; keep picker panels small and the page stationary. */
.steps{width:min(100% - 32px,660px);margin-right:auto;margin-left:auto;padding:0 4px}
.step-rule{min-width:14px}
.calendar-grid button.weekday{color:#ed2b9a}
@media(max-width:560px){
  .steps{width:calc(100% - 32px);max-width:460px;gap:7px}
  .step-rule{min-width:10px}
  .choice-menu{left:50%!important;right:auto!important;top:50%!important;width:220px!important;max-width:calc(100vw - 24px)!important;max-height:180px!important;transform:translate(-50%,-50%)!important}
}

/* Menús de ciudad y hora: sin hueco superior y con scrollbar fucsia fino. */
.choice-menu{padding-top:6px;scrollbar-width:thin;scrollbar-color:#ed2b9a transparent}
.choice-menu .picker-close{position:sticky;top:0;float:right;margin:0 0 -34px auto;z-index:3;background:#303249}
.choice-menu::-webkit-scrollbar{width:5px}
.choice-menu::-webkit-scrollbar-track{background:transparent}
.choice-menu::-webkit-scrollbar-thumb{border-radius:99px;background:#ed2b9a}

/* Faster drift from the upper edge through the middle of the screen. */
.flow-pink{top:-34%;animation-duration:19s}
.flow-blue{top:-27%;animation-duration:20s}
.flow-teal{left:9%;top:-42%;bottom:auto;animation-duration:21s}
.flow-green{right:-6%;top:-38%;bottom:auto;animation-duration:22s}
@keyframes flow-cross-pink{0%{transform:translate3d(0,0,0) scale(.96)}28%{transform:translate3d(44vw,17vh,0) scale(1.05)}55%{transform:translate3d(62vw,39vh,0) scale(.97)}78%{transform:translate3d(26vw,53vh,0) scale(1.06)}100%{transform:translate3d(-6vw,32vh,0) scale(1)}}
@keyframes flow-cross-blue{0%{transform:translate3d(0,0,0) scale(1)}28%{transform:translate3d(-43vw,17vh,0) scale(.96)}55%{transform:translate3d(-66vw,39vh,0) scale(1.07)}78%{transform:translate3d(-24vw,53vh,0) scale(.98)}100%{transform:translate3d(7vw,31vh,0) scale(1.03)}}
@keyframes flow-cross-teal{0%{transform:translate3d(0,0,0) scale(.96)}30%{transform:translate3d(30vw,16vh,0) scale(1.06)}60%{transform:translate3d(58vw,39vh,0) scale(.98)}82%{transform:translate3d(8vw,54vh,0) scale(1.05)}100%{transform:translate3d(-18vw,32vh,0) scale(1)}}
@keyframes flow-cross-green{0%{transform:translate3d(0,0,0) scale(1)}28%{transform:translate3d(-30vw,15vh,0) scale(.96)}56%{transform:translate3d(-54vw,38vh,0) scale(1.08)}80%{transform:translate3d(-16vw,53vh,0) scale(.98)}100%{transform:translate3d(17vw,31vh,0) scale(1.04)}}
@media(max-width:560px){.flow-pink{top:-28%}.flow-blue{top:-22%}.flow-teal{top:-34%;bottom:auto}.flow-green{top:-31%;bottom:auto}}

/* Keep every color bloom inside the viewport while the colors trade places. */
@keyframes flow-cross-pink{0%{transform:translate3d(0,0,0) scale(.96)}28%{transform:translate3d(36vw,12vh,0) scale(1.05)}55%{transform:translate3d(55vw,35vh,0) scale(.97)}78%{transform:translate3d(24vw,42vh,0) scale(1.06)}100%{transform:translate3d(-3vw,24vh,0) scale(1)}}
@keyframes flow-cross-blue{0%{transform:translate3d(0,0,0) scale(1)}28%{transform:translate3d(-35vw,14vh,0) scale(.96)}55%{transform:translate3d(-55vw,36vh,0) scale(1.07)}78%{transform:translate3d(-24vw,42vh,0) scale(.98)}100%{transform:translate3d(3vw,23vh,0) scale(1.03)}}
@keyframes flow-cross-teal{0%{transform:translate3d(0,0,0) scale(.96)}30%{transform:translate3d(26vw,12vh,0) scale(1.06)}60%{transform:translate3d(36vw,35vh,0) scale(.98)}82%{transform:translate3d(7vw,42vh,0) scale(1.05)}100%{transform:translate3d(-10vw,20vh,0) scale(1)}}
@keyframes flow-cross-green{0%{transform:translate3d(0,0,0) scale(1)}28%{transform:translate3d(-24vw,12vh,0) scale(.96)}56%{transform:translate3d(-46vw,34vh,0) scale(1.08)}80%{transform:translate3d(-16vw,42vh,0) scale(.98)}100%{transform:translate3d(10vw,22vh,0) scale(1.04)}}

/* Wider, softer color fields overlap and spend most of their travel above the form. */
.flow{width:min(124vw,1020px);aspect-ratio:1.55;border-radius:50%;opacity:.82}
.flow-pink{left:-27%;top:-43%;background:radial-gradient(ellipse at 48% 48%,rgba(237,43,154,.35) 0%,rgba(237,43,154,.23) 28%,rgba(237,43,154,.09) 58%,transparent 96%)}
.flow-blue{right:-34%;top:-34%;background:radial-gradient(ellipse at 48% 48%,rgba(85,120,231,.39) 0%,rgba(85,120,231,.23) 30%,rgba(85,120,231,.09) 60%,transparent 97%)}
.flow-teal{left:13%;bottom:-58%;background:radial-gradient(ellipse at 48% 48%,rgba(36,198,200,.26) 0%,rgba(36,198,200,.16) 30%,rgba(36,198,200,.06) 60%,transparent 97%)}
.flow-green{right:-6%;bottom:-58%;width:min(94vw,780px);background:radial-gradient(ellipse at 48% 48%,rgba(84,184,91,.23) 0%,rgba(84,184,91,.14) 32%,rgba(84,184,91,.05) 62%,transparent 98%)}
@keyframes ocean-pink{0%{transform:translate3d(0,0,0) scale(.97)}20%{transform:translate3d(23vw,4vh,0) scale(1.04)}42%{transform:translate3d(46vw,16vh,0) scale(.97)}64%{transform:translate3d(28vw,30vh,0) scale(1.06)}82%{transform:translate3d(-6vw,18vh,0) scale(1.01)}100%{transform:translate3d(0,0,0) scale(.97)}}
@keyframes ocean-blue{0%{transform:translate3d(0,0,0) scale(1)}22%{transform:translate3d(-28vw,5vh,0) scale(1.05)}44%{transform:translate3d(-53vw,17vh,0) scale(.97)}66%{transform:translate3d(-32vw,31vh,0) scale(1.06)}84%{transform:translate3d(5vw,20vh,0) scale(1.01)}100%{transform:translate3d(0,0,0) scale(1)}}
@keyframes ocean-teal{0%{transform:translate3d(0,0,0) scale(.97)}24%{transform:translate3d(18vw,-34vh,0) scale(1.05)}48%{transform:translate3d(38vw,-70vh,0) scale(.98)}72%{transform:translate3d(-4vw,-53vh,0) scale(1.04)}100%{transform:translate3d(0,0,0) scale(.97)}}
@keyframes ocean-green{0%{transform:translate3d(0,0,0) scale(1)}24%{transform:translate3d(-28vw,-27vh,0) scale(.97)}48%{transform:translate3d(-48vw,-61vh,0) scale(1.07)}72%{transform:translate3d(-18vw,-75vh,0) scale(1.02)}100%{transform:translate3d(0,0,0) scale(1)}}
@media(max-width:560px){.flow{width:138vw;aspect-ratio:1.4}.flow-pink{left:-43%;top:-33%}.flow-blue{right:-51%;top:-23%}.flow-teal{left:-4%;bottom:-46%}.flow-green{right:-27%;bottom:-45%;width:112vw}}

/* Seamless color atmosphere: two broad gradient fields drift across the whole backdrop. */
.flow,.flow-mesh{display:none!important}
.flow-bg::before,.flow-bg::after{content:"";display:block;position:absolute;inset:-28%;pointer-events:none;mix-blend-mode:screen;will-change:transform}
.flow-bg::before{opacity:.9;background:radial-gradient(ellipse 65% 52% at 20% 28%,rgba(237,43,154,.27) 0%,rgba(237,43,154,.16) 38%,rgba(237,43,154,.055) 72%,transparent 100%),radial-gradient(ellipse 70% 56% at 78% 27%,rgba(85,120,231,.31) 0%,rgba(85,120,231,.17) 40%,rgba(85,120,231,.05) 75%,transparent 100%);animation:flow-atmosphere-a 42s ease-in-out infinite alternate}
.flow-bg::after{opacity:.78;background:radial-gradient(ellipse 70% 56% at 27% 76%,rgba(36,198,200,.22) 0%,rgba(36,198,200,.13) 40%,rgba(36,198,200,.045) 76%,transparent 100%),radial-gradient(ellipse 64% 54% at 76% 77%,rgba(84,184,91,.21) 0%,rgba(84,184,91,.12) 42%,rgba(84,184,91,.04) 77%,transparent 100%);animation:flow-atmosphere-b 51s ease-in-out infinite alternate}
@keyframes flow-atmosphere-a{0%{transform:translate3d(-15%,-17%,0) rotate(-5deg) scale(1)}50%{transform:translate3d(16%,13%,0) rotate(3deg) scale(1.05)}100%{transform:translate3d(-8%,25%,0) rotate(-3deg) scale(1.08)}}
@keyframes flow-atmosphere-b{0%{transform:translate3d(15%,20%,0) rotate(4deg) scale(1.02)}50%{transform:translate3d(-17%,-22%,0) rotate(-5deg) scale(1.07)}100%{transform:translate3d(11%,-32%,0) rotate(4deg) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.flow-bg::before,.flow-bg::after{animation:none!important}}

/* Restored soft color blooms, now drifting visibly across the background. */
.flow-bg{background:transparent}
.flow-bg::before,.flow-bg::after,.flow-mesh{display:none!important}
.flow{display:block!important;position:absolute;width:min(96vw,820px);height:min(96vw,820px);aspect-ratio:1;border-radius:50%;filter:blur(88px);mix-blend-mode:screen;opacity:.46;will-change:transform}
.flow-pink{left:-29%;top:-30%;background:radial-gradient(ellipse at 48% 48%,rgba(237,43,154,.67) 0%,rgba(237,43,154,.36) 36%,rgba(237,43,154,.12) 63%,transparent 86%);animation:flow-cross-pink 27s ease-in-out infinite alternate}
.flow-blue{right:-37%;top:-17%;background:radial-gradient(ellipse at 48% 48%,rgba(85,120,231,.72) 0%,rgba(85,120,231,.39) 37%,rgba(85,120,231,.13) 65%,transparent 88%);animation:flow-cross-blue 25s ease-in-out infinite alternate}
.flow-teal{left:11%;bottom:-48%;background:radial-gradient(ellipse at 48% 48%,rgba(36,198,200,.49) 0%,rgba(36,198,200,.27) 38%,rgba(36,198,200,.09) 66%,transparent 89%);animation:flow-cross-teal 29s ease-in-out infinite alternate}
.flow-green{right:-6%;bottom:-49%;width:min(76vw,640px);height:min(76vw,640px);background:radial-gradient(ellipse at 48% 48%,rgba(84,184,91,.43) 0%,rgba(84,184,91,.23) 39%,rgba(84,184,91,.08) 67%,transparent 90%);opacity:.42;animation:flow-cross-green 26s ease-in-out infinite alternate}
@keyframes flow-cross-pink{0%{transform:translate3d(0,0,0) scale(.92)}32%{transform:translate3d(66vw,13vh,0) scale(1.08)}68%{transform:translate3d(39vw,67vh,0) scale(.96)}100%{transform:translate3d(-7vw,37vh,0) scale(1.06)}}
@keyframes flow-cross-blue{0%{transform:translate3d(0,0,0) scale(1)}34%{transform:translate3d(-69vw,22vh,0) scale(.92)}70%{transform:translate3d(-42vw,74vh,0) scale(1.09)}100%{transform:translate3d(8vw,43vh,0) scale(.98)}}
@keyframes flow-cross-teal{0%{transform:translate3d(0,0,0) scale(.94)}33%{transform:translate3d(41vw,-61vh,0) scale(1.08)}69%{transform:translate3d(66vw,-24vh,0) scale(.95)}100%{transform:translate3d(5vw,-5vh,0) scale(1.06)}}
@keyframes flow-cross-green{0%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(-55vw,-48vh,0) scale(.93)}69%{transform:translate3d(-30vw,-91vh,0) scale(1.1)}100%{transform:translate3d(17vw,-31vh,0) scale(.98)}}
@media(max-width:560px){.flow{width:112vw;height:112vw;filter:blur(72px)}.flow-green{width:90vw;height:90vw}.flow-pink{left:-42%;top:-23%}.flow-blue{right:-50%;top:-13%}.flow-teal{left:-3%;bottom:-42%}.flow-green{right:-26%;bottom:-43%}}
@media(prefers-reduced-motion:reduce){.flow{animation:none!important}}


/* Pie de cotización con texto nítido y brillo cromático sutil. */
.microcopy{color:rgba(232,232,242,.78);font-weight:500;text-shadow:0 1px 10px rgba(146,170,255,.08)}
.page-shell footer{color:rgba(222,222,236,.72);font-weight:700;text-shadow:0 1px 10px rgba(146,170,255,.07)}


/* Calendario: cierre separado de la navegación y cuadrícula mensual limpia. */
.calendar{padding-top:60px}
.picker-close{top:10px;right:10px;width:34px;height:34px}
.calendar-top{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:clamp(12px,4vw,24px);margin:0 4px 18px}
.calendar-top strong{text-align:center;white-space:nowrap}
.calendar-top button{width:42px;height:42px}
.calendar-grid .blank-day{height:36px}
@media(max-width:560px){.calendar{padding:60px 14px 14px}.calendar-top{gap:clamp(12px,5vw,22px);margin-bottom:18px}.calendar-grid button,.calendar-grid .blank-day{height:42px}}

/* Ajustes de interacción y proporción para móvil. */
.calendar[hidden]{display:none!important}
@media(max-width:560px){
  .picker-close{width:44px;height:44px;top:8px;right:8px;display:grid;place-items:center;touch-action:manipulation}
  .calendar{padding-top:64px}
  .guest-control{height:42px;justify-content:space-between;gap:6px}
  .guest-control button{width:36px;height:36px;flex:none;font-size:21px}
  .guest-control input{width:50px;height:36px;font-size:18px!important;font-weight:600;line-height:1}
}
@media(max-width:370px){
  .guest-control{gap:4px}
  .guest-control button{width:34px;height:34px}
  .guest-control input{width:46px;font-size:17px!important}
}


/* Futura PT Heavy para los títulos del cotizador y del calendario. */
.calendar-top strong{font-family:"Futura PT","Futura PT Heavy",Futura,Arial,sans-serif;font-weight:500}

.intro h1{font-family:"Futura PT","Futura PT Heavy",Futura,Arial,sans-serif;font-weight:400}


/* Jerarquía del encabezado y aviso de disponibilidad para grupos pequeños. */
.intro .eyebrow{font-size:13px;font-weight:600;letter-spacing:.07em;line-height:1.35;text-transform:none}
.guest-notice{position:fixed;z-index:70;left:50%;bottom:max(14px,env(safe-area-inset-bottom));width:min(calc(100vw - 28px),380px);padding:12px 16px;transform:translateX(-50%);border:1px solid rgba(237,43,154,.48);border-radius:14px;background:rgba(22,23,39,.96);box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 22px rgba(237,43,154,.09);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#f5f3fb;text-align:center;font:500 13px/1.45 var(--sans)}
.guest-notice[hidden]{display:none!important}
@media(max-width:560px){.intro .eyebrow{font-size:12px;letter-spacing:.055em}.guest-notice{width:min(calc(100vw - 24px),360px);padding:11px 14px;font-size:12px}}

.choice-menu .picker-close{position:relative;top:auto;right:auto;float:none;clear:both;margin:0 0 8px auto}


/* Tamaño limitado del logo de marca. */
.brandbar .brand img.wordmark{width:210px;height:auto;max-width:100%;max-height:48px;flex:0 0 auto;object-fit:contain;object-position:left center}
@media(max-width:560px){.brandbar .brand img.wordmark{width:176px;max-height:40px}}


/* Fuentes locales del cotizador portátil. */
@font-face{font-family:"Museo Sans 500";src:url("../fonts/Museo-500.otf") format("opentype");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Futura PT Heavy";src:url("../fonts/Futura-PT-Heavy.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}
:root{--sans:"Museo Sans 500","Museo Sans",Arial,sans-serif;--serif:"Futura PT Heavy","Futura PT",Futura,Arial,sans-serif}
body,button,input,select,textarea{font-family:var(--sans)}
.intro h1,.calendar-top strong,.loading-card strong{font-family:var(--serif);font-weight:500}
/* Nitidez tipográfica y brillo sutil en el encabezado. */
.language-separator{color:var(--pink)}
.intro h1{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-shadow:0 0 18px rgba(126,151,246,.12),0 0 28px rgba(237,43,154,.06)}

/* Días anteriores a la fecha local: desactivados con un tachado fino. */
.calendar-grid button.past:disabled{color:rgba(145,146,164,.72);text-decoration-line:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(237,43,154,.58)}
