/* GENERATED by scripts/build_site.mjs - do not edit. One file for the 25 stylesheets this page loads, in cascade order:
   assets/css/01-elementor-frontend.css
   assets/css/02-hfe-widgets.css
   assets/css/03-hfe.css
   assets/css/kit.css
   assets/css/04-she-header.css
   assets/css/05-widget-image.css
   assets/css/06-anim-grow.css
   assets/css/07-widget-spacer.css
   assets/css/08-widget-heading.css
   assets/css/09-widget-divider.css
   assets/css/page-contrata.css
   assets/css/chrome.css
   assets/css/12-hello.css
   assets/css/13-hello-theme.css
   assets/css/14-hello-hf.css
   assets/css/16-elegant-icons.css
   assets/css/17-eicons.css
   assets/css/18-ekit-widgets.css
   assets/css/19-ekit-responsive.css
   assets/css/20-ekiticons.css
   assets/css/21-font-dmsans.css
   assets/css/23-font-poppins.css
   assets/css/24-font-carme.css
   assets/css/90-beta.css
   assets/css/97-client-area.css */
/* --- assets/css/01-elementor-frontend.css --- */
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-hidden{display:none}.elementor-visibility-hidden{visibility:hidden}.elementor-screen-only,.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;top:-10000em;width:1px;clip:rect(0,0,0,0);border:0}.elementor-clearfix:after{clear:both;content:"";display:block;height:0;width:0}.e-logo-wrapper{background:var(--e-a-bg-logo);border-radius:50%;display:inline-block;line-height:1;padding:.75em}.e-logo-wrapper i{color:var(--e-a-color-logo);font-size:1em}.elementor *,.elementor :after,.elementor :before{box-sizing:border-box}.elementor a{box-shadow:none;text-decoration:none}.elementor hr{background-color:transparent;margin:0}.elementor img{border:none;border-radius:0;box-shadow:none;height:auto;max-width:100%}.elementor .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-theme-post-content) figure{margin:0}.elementor embed,.elementor iframe,.elementor object,.elementor video{border:none;line-height:1;margin:0;max-width:100%;width:100%}.elementor .elementor-background,.elementor .elementor-background-holder,.elementor .elementor-background-video-container{direction:ltr;inset:0;overflow:hidden;position:absolute;z-index:0}.elementor .elementor-background-video-container{pointer-events:none;transition:opacity 1s}.elementor .elementor-background-video-container.elementor-loading{opacity:0}.elementor .elementor-background-video-embed{max-width:none}.elementor .elementor-background-video,.elementor .elementor-background-video-embed,.elementor .elementor-background-video-hosted{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.elementor .elementor-background-video{max-width:none}.elementor .elementor-background-video-hosted{-o-object-fit:cover;object-fit:cover}.elementor .elementor-background-overlay{inset:0;position:absolute}.elementor .elementor-background-slideshow{inset:0;position:absolute;z-index:0}.elementor .elementor-background-slideshow__slide__image{background-position:50%;background-size:cover;height:100%;width:100%}.e-con-inner>.elementor-element.elementor-absolute,.e-con>.elementor-element.elementor-absolute,.elementor-widget-wrap>.elementor-element.elementor-absolute{position:absolute}.e-con-inner>.elementor-element.elementor-fixed,.e-con>.elementor-element.elementor-fixed,.elementor-widget-wrap>.elementor-element.elementor-fixed{position:fixed}.elementor-widget-wrap .elementor-element.elementor-widget__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget__width-initial{max-width:100%}@media (max-width:1024px){.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-initial{max-width:100%}}@media (max-width:767px){.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-initial{max-width:100%}}.elementor-element{--flex-direction:initial;--flex-wrap:initial;--justify-content:initial;--align-items:initial;--align-content:initial;--gap:initial;--flex-basis:initial;--flex-grow:initial;--flex-shrink:initial;--order:initial;--align-self:initial;align-self:var(--align-self);flex-basis:var(--flex-basis);flex-grow:var(--flex-grow);flex-shrink:var(--flex-shrink);order:var(--order)}.elementor-element.elementor-absolute,.elementor-element.elementor-fixed{z-index:1}.elementor-element:where(.e-con-full,.elementor-widget){align-content:var(--align-content);align-items:var(--align-items);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);gap:var(--row-gap) var(--column-gap);justify-content:var(--justify-content)}.elementor-invisible{visibility:hidden}.elementor-align-center{text-align:center}.elementor-align-right{text-align:right}.elementor-align-left{text-align:left}.elementor-align-center .elementor-button,.elementor-align-left .elementor-button,.elementor-align-right .elementor-button{width:auto}.elementor-align-justify .elementor-button{width:100%}.elementor-custom-embed-play{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.elementor-custom-embed-play i{color:#fff;font-size:100px;text-shadow:1px 0 6px rgba(0,0,0,.3)}.elementor-custom-embed-play svg{height:100px;width:100px;fill:#fff;filter:drop-shadow(1px 0 6px rgba(0,0,0,.3))}.elementor-custom-embed-play i,.elementor-custom-embed-play svg{opacity:.8;transition:all .5s}.elementor-custom-embed-play.elementor-playing i{font-family:eicons}.elementor-custom-embed-play.elementor-playing i:before{content:"\e8fb"}.elementor-custom-embed-play.elementor-playing i,.elementor-custom-embed-play.elementor-playing svg{animation:eicon-spin 2s linear infinite}.elementor-tag{display:inline-flex}.elementor-ken-burns{transition-duration:10s;transition-property:transform;transition-timing-function:linear}.elementor-ken-burns--out{transform:scale(1.3)}.elementor-ken-burns--active{transition-duration:20s}.elementor-ken-burns--active.elementor-ken-burns--out{transform:scale(1)}.elementor-ken-burns--active.elementor-ken-burns--in{transform:scale(1.3)}@media (min-width:-1){.elementor-widescreen-align-center{text-align:center}.elementor-widescreen-align-right{text-align:right}.elementor-widescreen-align-left{text-align:left}.elementor-widescreen-align-center .elementor-button,.elementor-widescreen-align-left .elementor-button,.elementor-widescreen-align-right .elementor-button{width:auto}.elementor-widescreen-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-laptop-align-center{text-align:center}.elementor-laptop-align-right{text-align:right}.elementor-laptop-align-left{text-align:left}.elementor-laptop-align-center .elementor-button,.elementor-laptop-align-left .elementor-button,.elementor-laptop-align-right .elementor-button{width:auto}.elementor-laptop-align-justify .elementor-button{width:100%}.elementor-tablet_extra-align-center{text-align:center}.elementor-tablet_extra-align-right{text-align:right}.elementor-tablet_extra-align-left{text-align:left}.elementor-tablet_extra-align-center .elementor-button,.elementor-tablet_extra-align-left .elementor-button,.elementor-tablet_extra-align-right .elementor-button{width:auto}.elementor-tablet_extra-align-justify .elementor-button{width:100%}}@media (max-width:1024px){.elementor-tablet-align-center{text-align:center}.elementor-tablet-align-right{text-align:right}.elementor-tablet-align-left{text-align:left}.elementor-tablet-align-center .elementor-button,.elementor-tablet-align-left .elementor-button,.elementor-tablet-align-right .elementor-button{width:auto}.elementor-tablet-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-mobile_extra-align-center{text-align:center}.elementor-mobile_extra-align-right{text-align:right}.elementor-mobile_extra-align-left{text-align:left}.elementor-mobile_extra-align-center .elementor-button,.elementor-mobile_extra-align-left .elementor-button,.elementor-mobile_extra-align-right .elementor-button{width:auto}.elementor-mobile_extra-align-justify .elementor-button{width:100%}}@media (max-width:767px){.elementor-mobile-align-center{text-align:center}.elementor-mobile-align-right{text-align:right}.elementor-mobile-align-left{text-align:left}.elementor-mobile-align-center .elementor-button,.elementor-mobile-align-left .elementor-button,.elementor-mobile-align-right .elementor-button{width:auto}.elementor-mobile-align-justify .elementor-button{width:100%}}:root{--page-title-display:block}.elementor-page-title,h1.entry-title{display:var(--page-title-display)}@keyframes eicon-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.eicon-animation-spin{animation:eicon-spin 2s linear infinite}.elementor-section{position:relative}.elementor-section .elementor-container{display:flex;margin-left:auto;margin-right:auto;position:relative}@media (max-width:1024px){.elementor-section .elementor-container{flex-wrap:wrap}}.elementor-section.elementor-section-boxed>.elementor-container{max-width:1140px}.elementor-section.elementor-section-stretched{position:relative;width:100%}.elementor-section.elementor-section-items-top>.elementor-container{align-items:flex-start}.elementor-section.elementor-section-items-middle>.elementor-container{align-items:center}.elementor-section.elementor-section-items-bottom>.elementor-container{align-items:flex-end}@media (min-width:768px){.elementor-section.elementor-section-height-full{height:100vh}.elementor-section.elementor-section-height-full>.elementor-container{height:100%}}.elementor-bc-flex-widget .elementor-section-content-top>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-start}.elementor-bc-flex-widget .elementor-section-content-middle>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:center}.elementor-bc-flex-widget .elementor-section-content-bottom>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-end}.elementor-widget-wrap{align-content:flex-start;flex-wrap:wrap;position:relative;width:100%}.elementor:not(.elementor-bc-flex-widget) .elementor-widget-wrap{display:flex}.elementor-widget-wrap>.elementor-element{width:100%}.elementor-widget-wrap.e-swiper-container{width:calc(100% - (var(--e-column-margin-left, 0px) + var(--e-column-margin-right, 0px)))}.elementor-widget{position:relative}.elementor-widget:not(:last-child){margin-bottom:var(--kit-widget-spacing,20px)}.elementor-widget:not(:last-child).elementor-absolute,.elementor-widget:not(:last-child).elementor-widget__width-auto,.elementor-widget:not(:last-child).elementor-widget__width-initial{margin-bottom:0}.elementor-column{display:flex;min-height:1px;position:relative}.elementor-column-gap-narrow>.elementor-column>.elementor-element-populated{padding:5px}.elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:10px}.elementor-column-gap-extended>.elementor-column>.elementor-element-populated{padding:15px}.elementor-column-gap-wide>.elementor-column>.elementor-element-populated{padding:20px}.elementor-column-gap-wider>.elementor-column>.elementor-element-populated{padding:30px}.elementor-inner-section .elementor-column-gap-no .elementor-element-populated{padding:0}@media (min-width:768px){.elementor-column.elementor-col-10,.elementor-column[data-col="10"]{width:10%}.elementor-column.elementor-col-11,.elementor-column[data-col="11"]{width:11.111%}.elementor-column.elementor-col-12,.elementor-column[data-col="12"]{width:12.5%}.elementor-column.elementor-col-14,.elementor-column[data-col="14"]{width:14.285%}.elementor-column.elementor-col-16,.elementor-column[data-col="16"]{width:16.666%}.elementor-column.elementor-col-20,.elementor-column[data-col="20"]{width:20%}.elementor-column.elementor-col-25,.elementor-column[data-col="25"]{width:25%}.elementor-column.elementor-col-30,.elementor-column[data-col="30"]{width:30%}.elementor-column.elementor-col-33,.elementor-column[data-col="33"]{width:33.333%}.elementor-column.elementor-col-40,.elementor-column[data-col="40"]{width:40%}.elementor-column.elementor-col-50,.elementor-column[data-col="50"]{width:50%}.elementor-column.elementor-col-60,.elementor-column[data-col="60"]{width:60%}.elementor-column.elementor-col-66,.elementor-column[data-col="66"]{width:66.666%}.elementor-column.elementor-col-70,.elementor-column[data-col="70"]{width:70%}.elementor-column.elementor-col-75,.elementor-column[data-col="75"]{width:75%}.elementor-column.elementor-col-80,.elementor-column[data-col="80"]{width:80%}.elementor-column.elementor-col-83,.elementor-column[data-col="83"]{width:83.333%}.elementor-column.elementor-col-90,.elementor-column[data-col="90"]{width:90%}.elementor-column.elementor-col-100,.elementor-column[data-col="100"]{width:100%}}@media (max-width:479px){.elementor-column.elementor-xs-10{width:10%}.elementor-column.elementor-xs-11{width:11.111%}.elementor-column.elementor-xs-12{width:12.5%}.elementor-column.elementor-xs-14{width:14.285%}.elementor-column.elementor-xs-16{width:16.666%}.elementor-column.elementor-xs-20{width:20%}.elementor-column.elementor-xs-25{width:25%}.elementor-column.elementor-xs-30{width:30%}.elementor-column.elementor-xs-33{width:33.333%}.elementor-column.elementor-xs-40{width:40%}.elementor-column.elementor-xs-50{width:50%}.elementor-column.elementor-xs-60{width:60%}.elementor-column.elementor-xs-66{width:66.666%}.elementor-column.elementor-xs-70{width:70%}.elementor-column.elementor-xs-75{width:75%}.elementor-column.elementor-xs-80{width:80%}.elementor-column.elementor-xs-83{width:83.333%}.elementor-column.elementor-xs-90{width:90%}.elementor-column.elementor-xs-100{width:100%}}@media (max-width:767px){.elementor-column.elementor-sm-10{width:10%}.elementor-column.elementor-sm-11{width:11.111%}.elementor-column.elementor-sm-12{width:12.5%}.elementor-column.elementor-sm-14{width:14.285%}.elementor-column.elementor-sm-16{width:16.666%}.elementor-column.elementor-sm-20{width:20%}.elementor-column.elementor-sm-25{width:25%}.elementor-column.elementor-sm-30{width:30%}.elementor-column.elementor-sm-33{width:33.333%}.elementor-column.elementor-sm-40{width:40%}.elementor-column.elementor-sm-50{width:50%}.elementor-column.elementor-sm-60{width:60%}.elementor-column.elementor-sm-66{width:66.666%}.elementor-column.elementor-sm-70{width:70%}.elementor-column.elementor-sm-75{width:75%}.elementor-column.elementor-sm-80{width:80%}.elementor-column.elementor-sm-83{width:83.333%}.elementor-column.elementor-sm-90{width:90%}.elementor-column.elementor-sm-100{width:100%}}@media (min-width:768px) and (max-width:1024px){.elementor-column.elementor-md-10{width:10%}.elementor-column.elementor-md-11{width:11.111%}.elementor-column.elementor-md-12{width:12.5%}.elementor-column.elementor-md-14{width:14.285%}.elementor-column.elementor-md-16{width:16.666%}.elementor-column.elementor-md-20{width:20%}.elementor-column.elementor-md-25{width:25%}.elementor-column.elementor-md-30{width:30%}.elementor-column.elementor-md-33{width:33.333%}.elementor-column.elementor-md-40{width:40%}.elementor-column.elementor-md-50{width:50%}.elementor-column.elementor-md-60{width:60%}.elementor-column.elementor-md-66{width:66.666%}.elementor-column.elementor-md-70{width:70%}.elementor-column.elementor-md-75{width:75%}.elementor-column.elementor-md-80{width:80%}.elementor-column.elementor-md-83{width:83.333%}.elementor-column.elementor-md-90{width:90%}.elementor-column.elementor-md-100{width:100%}}@media (min-width:-1){.elementor-reverse-widescreen>.elementor-container>:first-child{order:10}.elementor-reverse-widescreen>.elementor-container>:nth-child(2){order:9}.elementor-reverse-widescreen>.elementor-container>:nth-child(3){order:8}.elementor-reverse-widescreen>.elementor-container>:nth-child(4){order:7}.elementor-reverse-widescreen>.elementor-container>:nth-child(5){order:6}.elementor-reverse-widescreen>.elementor-container>:nth-child(6){order:5}.elementor-reverse-widescreen>.elementor-container>:nth-child(7){order:4}.elementor-reverse-widescreen>.elementor-container>:nth-child(8){order:3}.elementor-reverse-widescreen>.elementor-container>:nth-child(9){order:2}.elementor-reverse-widescreen>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child,.elementor-reverse-laptop>.elementor-container>:nth-child(10),.elementor-reverse-laptop>.elementor-container>:nth-child(2),.elementor-reverse-laptop>.elementor-container>:nth-child(3),.elementor-reverse-laptop>.elementor-container>:nth-child(4),.elementor-reverse-laptop>.elementor-container>:nth-child(5),.elementor-reverse-laptop>.elementor-container>:nth-child(6),.elementor-reverse-laptop>.elementor-container>:nth-child(7),.elementor-reverse-laptop>.elementor-container>:nth-child(8),.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:0}.elementor-reverse-tablet_extra>.elementor-container>:first-child{order:10}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:-1){.elementor-reverse-tablet>.elementor-container>:first-child,.elementor-reverse-tablet>.elementor-container>:nth-child(10),.elementor-reverse-tablet>.elementor-container>:nth-child(2),.elementor-reverse-tablet>.elementor-container>:nth-child(3),.elementor-reverse-tablet>.elementor-container>:nth-child(4),.elementor-reverse-tablet>.elementor-container>:nth-child(5),.elementor-reverse-tablet>.elementor-container>:nth-child(6),.elementor-reverse-tablet>.elementor-container>:nth-child(7),.elementor-reverse-tablet>.elementor-container>:nth-child(8),.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:0}.elementor-reverse-mobile_extra>.elementor-container>:first-child{order:10}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(10){order:1}}@media (max-width:767px){.elementor-reverse-mobile>.elementor-container>:first-child{order:10}.elementor-reverse-mobile>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile>.elementor-container>:nth-child(10){order:1}.elementor-column{width:100%}}.elementor-grid{display:grid;grid-column-gap:var(--grid-column-gap);grid-row-gap:var(--grid-row-gap)}.elementor-grid .elementor-grid-item{min-width:0}.elementor-grid-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}@media (min-width:-1){.elementor-grid-widescreen-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-widescreen-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-widescreen-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-widescreen-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-widescreen-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-widescreen-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-widescreen-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-widescreen-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-widescreen-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-widescreen-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-widescreen-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-widescreen-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-widescreen-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-widescreen-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-laptop-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-laptop-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-laptop-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-laptop-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-laptop-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-laptop-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-laptop-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-laptop-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-laptop-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-laptop-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-laptop-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-laptop-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-laptop-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-laptop-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}.elementor-grid-tablet_extra-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-grid-tablet-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-mobile_extra-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:767px){.elementor-grid-mobile-0 .elementor-grid{display:inline-block;margin-bottom:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-bottom:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (min-width:1025px){#elementor-device-mode:after{content:"desktop"}}@media (min-width:-1){#elementor-device-mode:after{content:"widescreen"}}@media (max-width:-1){#elementor-device-mode:after{content:"laptop";content:"tablet_extra"}}@media (max-width:1024px){#elementor-device-mode:after{content:"tablet"}}@media (max-width:-1){#elementor-device-mode:after{content:"mobile_extra"}}@media (max-width:767px){#elementor-device-mode:after{content:"mobile"}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.e-con{--border-radius:0;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-style:initial;--border-color:initial;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--content-width:min(100%,var(--container-max-width,1140px));--width:100%;--min-height:initial;--height:auto;--text-align:initial;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--padding-top:var(--container-default-padding-top,10px);--padding-right:var(--container-default-padding-right,10px);--padding-bottom:var(--container-default-padding-bottom,10px);--padding-left:var(--container-default-padding-left,10px);--position:relative;--z-index:revert;--overflow:visible;--gap:var(--widgets-spacing,20px);--row-gap:var(--widgets-spacing-row,20px);--column-gap:var(--widgets-spacing-column,20px);--overlay-mix-blend-mode:initial;--overlay-opacity:1;--overlay-transition:0.3s;--e-con-grid-template-columns:repeat(3,1fr);--e-con-grid-template-rows:repeat(2,1fr);border-radius:var(--border-radius);height:var(--height);min-height:var(--min-height);min-width:0;overflow:var(--overflow);position:var(--position);transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s);width:var(--width);z-index:var(--z-index);--flex-wrap-mobile:wrap;margin-block-end:var(--margin-block-end);margin-block-start:var(--margin-block-start);margin-inline-end:var(--margin-inline-end);margin-inline-start:var(--margin-inline-start);padding-inline-end:var(--padding-inline-end);padding-inline-start:var(--padding-inline-start);--margin-block-start:var(--margin-top);--margin-block-end:var(--margin-bottom);--margin-inline-start:var(--margin-left);--margin-inline-end:var(--margin-right);--padding-inline-start:var(--padding-left);--padding-inline-end:var(--padding-right);--padding-block-start:var(--padding-top);--padding-block-end:var(--padding-bottom);--border-block-start-width:var(--border-top-width);--border-block-end-width:var(--border-bottom-width);--border-inline-start-width:var(--border-left-width);--border-inline-end-width:var(--border-right-width)}body.rtl .e-con{--padding-inline-start:var(--padding-right);--padding-inline-end:var(--padding-left);--margin-inline-start:var(--margin-right);--margin-inline-end:var(--margin-left);--border-inline-start-width:var(--border-right-width);--border-inline-end-width:var(--border-left-width)}.e-con.e-flex{--flex-direction:column;--flex-basis:auto;--flex-grow:0;--flex-shrink:1;flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis)}.e-con-full,.e-con>.e-con-inner{padding-block-end:var(--padding-block-end);padding-block-start:var(--padding-block-start);text-align:var(--text-align)}.e-con-full.e-flex,.e-con.e-flex>.e-con-inner{flex-direction:var(--flex-direction)}.e-con,.e-con>.e-con-inner{display:var(--display)}.e-con.e-grid{--grid-justify-content:start;--grid-align-content:start;--grid-auto-flow:row}.e-con.e-grid,.e-con.e-grid>.e-con-inner{align-content:var(--grid-align-content);align-items:var(--align-items);grid-auto-flow:var(--grid-auto-flow);grid-template-columns:var(--e-con-grid-template-columns);grid-template-rows:var(--e-con-grid-template-rows);justify-content:var(--grid-justify-content);justify-items:var(--justify-items)}.e-con-boxed.e-flex{align-content:normal;align-items:normal;flex-direction:column;flex-wrap:nowrap;justify-content:normal}.e-con-boxed.e-grid{grid-template-columns:1fr;grid-template-rows:1fr;justify-items:legacy}.e-con-boxed{gap:initial;text-align:initial}.e-con.e-flex>.e-con-inner{align-content:var(--align-content);align-items:var(--align-items);align-self:auto;flex-basis:auto;flex-grow:1;flex-shrink:1;flex-wrap:var(--flex-wrap);justify-content:var(--justify-content)}.e-con.e-grid>.e-con-inner{align-items:var(--align-items);justify-items:var(--justify-items)}.e-con>.e-con-inner{gap:var(--row-gap) var(--column-gap);height:100%;margin:0 auto;max-width:var(--content-width);padding-inline-end:0;padding-inline-start:0;width:100%}:is(.elementor-section-wrap,[data-elementor-id])>.e-con{--margin-left:auto;--margin-right:auto;max-width:min(100%,var(--width))}.e-con .elementor-widget.elementor-widget{margin-block-end:0}.e-con:before,.e-con>.elementor-background-slideshow:before,.e-con>.elementor-motion-effects-container>.elementor-motion-effects-layer:before,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);content:var(--background-overlay);display:block;height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));mix-blend-mode:var(--overlay-mix-blend-mode);opacity:var(--overlay-opacity);position:absolute;top:calc(0px - var(--border-top-width));transition:var(--overlay-transition,.3s);width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}.e-con:before{transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s)}.e-con>.elementor-background-slideshow,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));top:calc(0px - var(--border-top-width));width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}@media (max-width:767px){:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile{display:none}}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{z-index:1}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-slideshow:before{z-index:2}.e-con .elementor-widget{min-width:0}.e-con .elementor-widget-empty,.e-con .elementor-widget-google_maps,.e-con .elementor-widget-video,.e-con .elementor-widget.e-widget-swiper{width:100%}.e-con>.e-con-inner>.elementor-widget>.elementor-widget-container,.e-con>.elementor-widget>.elementor-widget-container{height:100%}.e-con.e-con>.e-con-inner>.elementor-widget,.elementor.elementor .e-con>.elementor-widget{max-width:100%}.e-con .elementor-widget:not(:last-child){--kit-widget-spacing:0px}@media (max-width:767px){.e-con.e-flex{--width:100%;--flex-wrap:var(--flex-wrap-mobile)}.e-con.e-flex .elementor-widget-archive-posts{width:100%}}.elementor-form-fields-wrapper{display:flex;flex-wrap:wrap}.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group .elementor-field-subgroup,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>.elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>input,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>textarea{flex-basis:100%;max-width:100%}.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group .elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group>input{flex-grow:1}.elementor-field-group{align-items:center;flex-wrap:wrap}.elementor-field-group.elementor-field-type-submit{align-items:flex-end}.elementor-field-group .elementor-field-textual{background-color:transparent;border:1px solid #69727d;color:#1f2124;flex-grow:1;max-width:100%;vertical-align:middle;width:100%}.elementor-field-group .elementor-field-textual:focus{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);outline:0}.elementor-field-group .elementor-field-textual::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-field-textual::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-select-wrapper{display:flex;position:relative;width:100%}.elementor-field-group .elementor-select-wrapper select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;flex-basis:100%;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-inline-end:20px;text-transform:inherit}.elementor-field-group .elementor-select-wrapper:before{content:"\e92a";font-family:eicons;font-size:15px;pointer-events:none;position:absolute;right:10px;text-shadow:0 0 3px rgba(0,0,0,.3);top:50%;transform:translateY(-50%)}.elementor-field-group.elementor-field-type-select-multiple .elementor-select-wrapper:before{content:""}.elementor-field-subgroup{display:flex;flex-wrap:wrap}.elementor-field-subgroup .elementor-field-option label{display:inline-block}.elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option{padding-inline-end:10px}.elementor-field-subgroup:not(.elementor-subgroup-inline) .elementor-field-option{flex-basis:100%}.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option label{display:inline}.elementor-field-label{cursor:pointer}.elementor-mark-required .elementor-field-label:after{color:red;content:"*";padding-inline-start:.2em}.elementor-field-textual{border-radius:3px;font-size:15px;line-height:1.4;min-height:40px;padding:5px 14px}.elementor-field-textual.elementor-size-xs{border-radius:2px;font-size:13px;min-height:33px;padding:4px 12px}.elementor-field-textual.elementor-size-md{border-radius:4px;font-size:16px;min-height:47px;padding:6px 16px}.elementor-field-textual.elementor-size-lg{border-radius:5px;font-size:18px;min-height:59px;padding:7px 20px}.elementor-field-textual.elementor-size-xl{border-radius:6px;font-size:20px;min-height:72px;padding:8px 24px}.elementor-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-button-align-center .e-form__buttons,.elementor-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-button-align-start .e-form__buttons,.elementor-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-button-align-end .e-form__buttons,.elementor-button-align-end .elementor-field-type-submit{justify-content:flex-end}.elementor-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-center .e-form__buttons__wrapper__button,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper__button,.elementor-button-align-start .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}@media screen and (max-width:1024px){.elementor-tablet-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-tablet-button-align-center .e-form__buttons,.elementor-tablet-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-tablet-button-align-start .e-form__buttons,.elementor-tablet-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-tablet-button-align-end .e-form__buttons,.elementor-tablet-button-align-end .elementor-field-type-submit{justify-content:flex-end}.elementor-tablet-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-center .e-form__buttons__wrapper__button,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper__button,.elementor-tablet-button-align-start .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}@media screen and (max-width:767px){.elementor-mobile-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-mobile-button-align-center .e-form__buttons,.elementor-mobile-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-mobile-button-align-start .e-form__buttons,.elementor-mobile-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-mobile-button-align-end .e-form__buttons,.elementor-mobile-button-align-end .elementor-field-type-submit{justify-content:flex-end}.elementor-mobile-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-center .e-form__buttons__wrapper__button,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper__button,.elementor-mobile-button-align-start .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}.elementor-error .elementor-field{border-color:#d9534f}.elementor-error .help-inline{color:#d9534f;font-size:.9em}.elementor-message{font-size:1em;line-height:1;margin:10px 0}.elementor-message:before{content:"\e90e";display:inline-block;font-family:eicons;font-style:normal;font-weight:400;margin-inline-end:5px;vertical-align:middle}.elementor-message.elementor-message-danger{color:#d9534f}.elementor-message.elementor-message-danger:before{content:"\e87f"}.elementor-message.form-message-success{color:#5cb85c}.elementor-form .elementor-button{border:none;padding-block-end:0;padding-block-start:0}.elementor-form .elementor-button-content-wrapper,.elementor-form .elementor-button>span{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-form .elementor-button.elementor-size-xs{min-height:33px}.elementor-form .elementor-button.elementor-size-sm{min-height:40px}.elementor-form .elementor-button.elementor-size-md{min-height:47px}.elementor-form .elementor-button.elementor-size-lg{min-height:59px}.elementor-form .elementor-button.elementor-size-xl{min-height:72px}.elementor-element .elementor-widget-container,.elementor-element:not(:has(.elementor-widget-container)){transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s)}.elementor-heading-title{line-height:1;margin:0;padding:0}.elementor-button{background-color:#69727d;border-radius:3px;color:#fff;display:inline-block;font-size:15px;line-height:1;padding:12px 24px;fill:#fff;text-align:center;transition:all .3s}.elementor-button:focus,.elementor-button:hover,.elementor-button:visited{color:#fff}.elementor-button-content-wrapper{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-button-icon{align-items:center;display:flex}.elementor-button-icon svg{height:auto;width:1em}.elementor-button-icon .e-font-icon-svg{height:1em}.elementor-button-text{display:inline-block}.elementor-button.elementor-size-xs{border-radius:2px;font-size:13px;padding:10px 20px}.elementor-button.elementor-size-md{border-radius:4px;font-size:16px;padding:15px 30px}.elementor-button.elementor-size-lg{border-radius:5px;font-size:18px;padding:20px 40px}.elementor-button.elementor-size-xl{border-radius:6px;font-size:20px;padding:25px 50px}.elementor-button span{text-decoration:inherit}.elementor-element.elementor-button-info .elementor-button{background-color:#5bc0de}.elementor-element.elementor-button-success .elementor-button{background-color:#5cb85c}.elementor-element.elementor-button-warning .elementor-button{background-color:#f0ad4e}.elementor-element.elementor-button-danger .elementor-button{background-color:#d9534f}.elementor-widget-button .elementor-button .elementor-button-info{background-color:#5bc0de}.elementor-widget-button .elementor-button .elementor-button-success{background-color:#5cb85c}.elementor-widget-button .elementor-button .elementor-button-warning{background-color:#f0ad4e}.elementor-widget-button .elementor-button .elementor-button-danger{background-color:#d9534f}.elementor-view-stacked .elementor-icon{background-color:#69727d;color:#fff;padding:.5em;fill:#fff}.elementor-view-framed .elementor-icon{background-color:transparent;border:3px solid #69727d;color:#69727d;padding:.5em}.elementor-icon{color:#69727d;display:inline-block;font-size:50px;line-height:1;text-align:center;transition:all .3s}.elementor-icon:hover{color:#69727d}.elementor-icon i,.elementor-icon svg{display:block;height:1em;position:relative;width:1em}.elementor-icon i:before,.elementor-icon svg:before{left:50%;position:absolute;transform:translateX(-50%)}.elementor-icon i.fad{width:auto}.elementor-shape-square .elementor-icon{border-radius:0}.elementor-shape-rounded .elementor-icon{border-radius:10%}.elementor-shape-circle .elementor-icon{border-radius:50%}.e-transform .elementor-widget-container,.e-transform:not(:has(.elementor-widget-container)){transform:perspective(var(--e-transform-perspective,0)) rotate(var(--e-transform-rotateZ,0)) rotateX(var(--e-transform-rotateX,0)) rotateY(var(--e-transform-rotateY,0)) translate(var(--e-transform-translate,0)) translateX(var(--e-transform-translateX,0)) translateY(var(--e-transform-translateY,0)) scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1)))) scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1)))) skewX(var(--e-transform-skewX,0)) skewY(var(--e-transform-skewY,0));transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.e-con.e-transform{transform:perspective(var(--e-con-transform-perspective,0)) rotate(var(--e-con-transform-rotateZ,0)) rotateX(var(--e-con-transform-rotateX,0)) rotateY(var(--e-con-transform-rotateY,0)) translate(var(--e-con-transform-translate,0)) translateX(var(--e-con-transform-translateX,0)) translateY(var(--e-con-transform-translateY,0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX,0)) skewY(var(--e-con-transform-skewY,0));transform-origin:var(--e-con-transform-origin-y) var(--e-con-transform-origin-x)}.animated{animation-duration:1.25s}.animated.animated-slow{animation-duration:2s}.animated.animated-fast{animation-duration:.75s}.animated.infinite{animation-iteration-count:infinite}.animated.reverse{animation-direction:reverse;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.animated{animation:none}}@media (max-width:767px){.elementor .elementor-hidden-mobile,.elementor .elementor-hidden-phone{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-mobile_extra{display:none}}@media (min-width:768px) and (max-width:1024px){.elementor .elementor-hidden-tablet{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-laptop,.elementor .elementor-hidden-tablet_extra{display:none}}@media (min-width:1025px) and (max-width:99999px){.elementor .elementor-hidden-desktop{display:none}}@media (min-width:-1){.elementor .elementor-hidden-widescreen{display:none}}
/* --- assets/css/02-hfe-widgets.css --- */
/* Navigation Menu CSS */

ul.hfe-nav-menu,
.hfe-nav-menu li,
.hfe-nav-menu ul {
    list-style: none !important;
    margin: 0;
    padding: 0;
}

.hfe-nav-menu li.menu-item {
    position: relative;
}

.hfe-flyout-container .hfe-nav-menu li.menu-item {
    position: relative;
    background: unset;
}

.hfe-nav-menu .sub-menu li.menu-item {
    position: relative;
    background: inherit;
}
.hfe-nav-menu__theme-icon-yes button.sub-menu-toggle {
    display: none;
}

div.hfe-nav-menu,
.elementor-widget-hfe-nav-menu .elementor-widget-container{
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

.hfe-nav-menu__layout-horizontal,
.hfe-nav-menu__layout-horizontal .hfe-nav-menu {
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.hfe-nav-menu .parent-has-no-child .hfe-menu-toggle {
    display: none;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu,
.hfe-submenu-action-hover .hfe-layout-vertical .hfe-nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 16;
    visibility: hidden;
    opacity: 0;
    text-align: left;
    -webkit-transition: all 300ms ease-in;
    transition: all 300ms ease-in;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
.hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:focus > .sub-menu {
    visibility: visible;
    opacity: 1;
}

.hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
.hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:focus > .sub-menu {
    visibility: hidden;
    opacity: 0;
}

.hfe-nav-menu .menu-item-has-children .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999;
    visibility: hidden;
    opacity: 0;
}

.hfe-flyout-container .hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu {
    top: 0;
    left: 0;
}

.hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu {
    top: 0;
    left: 100%;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
.hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children.focus > .sub-menu {
    visibility: visible;
    opacity: 1;
    -webkit-transition: all 300ms ease-out;
    transition: all 300ms ease-out;
}

.hfe-nav-menu:before,
.hfe-nav-menu:after {
    content: '';
    display: table;
    clear: both;
}

/* Alignemnt CSS */
.hfe-nav-menu__align-right .hfe-nav-menu {
  margin-left: auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          -webkit-justify-content: flex-end;
          -moz-box-pack: end;
          justify-content: flex-end; }

.hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
.hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          -webkit-justify-content: flex-end;
          -moz-box-pack: end;
          justify-content: flex-end; }

.hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.hfe-has-submenu .hfe-button-wrapper,
.rtl .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.hfe-has-submenu .hfe-button-wrapper,
.hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.hfe-button-wrapper,
.rtl .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.hfe-button-wrapper{
    text-align: right;
}
.hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.hfe-has-submenu .hfe-button-wrapper,
.rtl .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.hfe-has-submenu .hfe-button-wrapper,
.hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.hfe-button-wrapper,
.rtl .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.hfe-button-wrapper{
    text-align: left;
}
.hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li.hfe-has-submenu .hfe-button-wrapper,
.hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li.hfe-button-wrapper{
    text-align: center;
}
.hfe-nav-menu__align-left .hfe-nav-menu {
  margin-right: auto;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          -webkit-justify-content: flex-start;
          -moz-box-pack: start;
          justify-content: flex-start; }

.hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
.hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          -webkit-justify-content: flex-start;
          -moz-box-pack: start;
          justify-content: flex-start; }

.hfe-nav-menu__align-center .hfe-nav-menu {
  margin-left: auto;
  margin-right: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          -webkit-justify-content: center;
          -moz-box-pack: center;
          justify-content: center; }

.hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
.hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          -webkit-justify-content: center;
          -moz-box-pack: center;
          justify-content: center; }

.hfe-nav-menu__layout-horizontal .hfe-nav-menu {
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; 
}
.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
    width: 100%; 
}
  .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.menu-item {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            -webkit-flex-grow: 1;
            -moz-box-flex: 1;
            flex-grow: 1; }
    .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              -webkit-justify-content: center;
              -moz-box-pack: center;
              justify-content: center; }

/* Alignment CSS ends */

.hfe-active-menu + nav li:not(:last-child) a.hfe-menu-item,
.hfe-active-menu + nav li:not(:last-child) a.hfe-sub-menu-item {
    border-bottom-width: 0;
}

/*  Horizontal Menu */

.hfe-nav-menu a.hfe-menu-item,
.hfe-nav-menu a.hfe-sub-menu-item {
    line-height: 1;
    text-decoration: none;
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-box-shadow: none;
    box-shadow: none;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}

.hfe-nav-menu a.hfe-menu-item:hover,
.hfe-nav-menu a.hfe-sub-menu-item:hover {
    text-decoration: none;
}

.hfe-nav-menu .sub-menu {
    min-width: 220px;
    margin: 0;
    z-index: 9999;
}

.hfe-nav-menu__layout-horizontal {
    font-size: 0;
}

.hfe-nav-menu__layout-horizontal li.menu-item,
.hfe-nav-menu__layout-horizontal > li.menu-item {
    font-size: medium;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu{
    -webkit-box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1);
    box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1);
}

/* Icons CSS */
.hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-arrow i:before {
    content: ''; 
}
.hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-arrow i:before {
    content: ''; 
}
.hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-arrow i:before {
    content: '+'; 
}
.hfe-submenu-icon-none .hfe-nav-menu .parent-has-child .sub-arrow {
    display: none; 
}

.hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before,.hfe-link-redirect-self_link.hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .menu-active .sub-arrow i:before {
    content: ''; 
}
.hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before, .hfe-link-redirect-self_link.hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .menu-active .sub-arrow i:before {
    content: '-'; 
}
.hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before, .hfe-link-redirect-self_link.hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .menu-active .sub-arrow i:before {
    content: ''; 
}

.rtl .hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
    content: ''; 
}

.rtl .hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
    content: ''; 
}

.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
    content: ''; 
}

.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
    content: ''; 
}
/* Icon CSS ends */

.hfe-nav-menu-icon {
    padding: 0.35em;
    border: 0 solid;
}

.hfe-nav-menu-icon svg {
    width: 25px;
    height: 25px;
    line-height: 25px;
    font-size: 25px;
}

.hfe-nav-menu-icon i:focus {
    outline: 0;
}

.hfe-has-submenu-container a.hfe-menu-item:focus,
.hfe-has-submenu-container a.hfe-sub-menu-item:focus {
    outline: 0;
}
/* Submenus */

.hfe-nav-menu .menu-item-has-children:focus,
.hfe-nav-menu .menu-item-has-children .sub-menu:focus,
.hfe-nav-menu .menu-item-has-children-container:focus {
    outline: 0;
}
.hfe-nav-menu .menu-item-has-children-container {
    position: relative;
}

.hfe-nav-menu__layout-expandible .sub-menu,
.hfe-nav-menu__layout-vertical .sub-menu,
.hfe-flyout-wrapper .sub-menu {
    position: relative;
    height: 0;
}

.hfe-nav-menu__submenu-arrow .hfe-menu-toggle:before,
.hfe-nav-menu__submenu-plus .hfe-menu-toggle:before,
.hfe-nav-menu__submenu-classic .hfe-menu-toggle:before {
    font-family: 'Font Awesome 5 Free';
    z-index: 1;
    font-size: inherit;
    font-weight: inherit;
    line-height: 0;
}

.hfe-menu-item-center .hfe-nav-menu li a.hfe-menu-item,
.hfe-menu-item-center .hfe-nav-menu li a.hfe-sub-menu-item {
    margin-right: 0px;
}

.hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-menu-item,
.hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-sub-menu-item {
    margin-right: 0px;
}

.hfe-nav-menu__toggle-icon:before {
    content: '\f0c9';
    font-family: 'fontAwesome';
    z-index: 1;
    font-size: 24px;
    font-weight: inherit;
    font-style: normal;
    line-height: 0;
}

.hfe-active-menu .hfe-nav-menu__toggle-icon:before {
    content: '\f00d';
}

.hfe-nav-menu__layout-expandible {
    -webkit-transition-property: display;
    transition-property: display;
    -webkit-transition-duration: .5s;
    transition-duration: .5s;
    -webkit-transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 );
    transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 );
}

.hfe-nav-menu__layout-expandible {
    visibility: hidden;
    opacity: 0; 
}

.hfe-nav-menu__layout-expandible .sub-menu {
    visibility: hidden;
    opacity: 0; 
}

.hfe-active-menu + .hfe-nav-menu__layout-expandible {
    visibility: visible;
    opacity: 1; 
    height: auto;
}

.hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-expandible,
.hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
.hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
    position: absolute;
    top: 100%;
}

.hfe-nav-menu__layout-expandible .menu-item-has-children .menu-item-has-children .sub-menu,
.hfe-nav-menu__layout-vertical .menu-item-has-children .menu-item-has-children .sub-menu {
    top: 0;
    left: 0;
}

.hfe-layout-expandible nav {
    height: 0;
}

.hfe-nav-sub-menu-icon, .hfe-nav-menu__icon {
    display: inline-block;
    line-height: 1;
}

.hfe-nav-menu__toggle {
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 22px;
    cursor: pointer;
    border: 0 solid;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    color: #494c4f;
    position: relative;
    line-height: 1;
}

.hfe-nav-menu__toggle-icon {
    display: inline-block;
    font-size: inherit;
    font-weight: normal;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.hfe-nav-menu .sub-arrow {
    font-size: 14px;
    line-height: 1;
    -js-display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    cursor: pointer;
    margin-top: -10px;
    margin-bottom: -10px;
}

.hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
    margin-left: 10px;
}

.hfe-nav-menu__layout-vertical .hfe-nav-menu .sub-arrow,
.hfe-layout-expandible .sub-arrow,
.hfe-flyout-wrapper .sub-arrow
{
    padding: 10px;
}

.hfe-nav-menu .child-item,
.hfe-nav-menu__layout-vertical .hfe-nav-menu .child-item {
    font-size: 14px;
    line-height: 1;
    padding: 10px 0 10px 10px;
    margin-top: -10px;
    margin-bottom: -10px;
    position: absolute;
    right: 0;
    margin-right: 20px;
}

.hfe-layout-horizontal .hfe-nav-menu__toggle,
.hfe-layout-vertical .hfe-nav-menu__toggle {
    visibility: hidden;
    opacity: 0;
    display: none;
}

.hfe-nav-menu-icon {
    display: inline-block;
    line-height: 1;
    text-align: center;
}

.hfe-nav-menu__layout-expandible .saved-content,
.hfe-nav-menu__layout-expandible .sub-menu,
.hfe-nav-menu__layout-expandible .child,
.hfe-nav-menu__layout-vertical .saved-content,
.hfe-nav-menu__layout-vertical .sub-menu,
.hfe-nav-menu__layout-vertical .child,
.hfe-flyout-container .saved-content,
.hfe-flyout-container .sub-menu,
.hfe-flyout-container .child {
    left: 0 !important;
    width: 100% !important; 
}

.hfe-flyout-container .hfe-nav-menu .sub-menu {
    background: unset;
}

.hfe-nav-menu__layout-vertical .hfe-menu-toggle:hover,
.hfe-nav-menu__layout-expandible .hfe-menu-toggle:hover,
.hfe-flyout-wrapper .hfe-menu-toggle:hover {
    border:1px dotted;
}

.hfe-nav-menu__layout-vertical .hfe-menu-toggle,
.hfe-nav-menu__layout-expandible .hfe-menu-toggle,
.hfe-flyout-wrapper .hfe-menu-toggle {
    border:1px dotted transparent;
}

/* Common Animation CSS */

.hfe-nav-menu .menu-item a:before,
.hfe-nav-menu .menu-item a:after {
  display: block;
  position: absolute;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
          transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.hfe-nav-menu .menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-nav-menu .menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
  opacity: 0; }

.hfe-nav-menu .menu-item a.hfe-menu-item:hover:before,
.hfe-nav-menu .menu-item a.hfe-menu-item:hover:after,
.hfe-nav-menu .menu-item a.hfe-menu-item:focus:before,
.hfe-nav-menu .menu-item a.hfe-menu-item:focus:after,
.hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:before,
.hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:after,
.hfe-nav-menu .current-menu-item:before,
.hfe-nav-menu .current-menu-item:after {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

/* Double Line / Underline / Overline Style */

.hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:after {
    height: 3px;
    width: 100%;
    left: 0;
    background-color: #55595c;
    z-index: 2;
}

.hfe-pointer__double-line.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__double-line.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    height: 0;
    width: 0;
    left: 50%;
}

.hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    top: 10px;
}

.hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    bottom: 10px;
}

.hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    top: -10px;
}

.hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    bottom: -10px;
}

.hfe-pointer__double-line.hfe-animation__none, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item, .hfe-pointer__underline.hfe-animation__none, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item, .hfe-pointer__overline.hfe-animation__none, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-pointer__double-line.hfe-animation__none:before, .hfe-pointer__double-line.hfe-animation__none:after, .hfe-pointer__double-line.hfe-animation__none:hover, .hfe-pointer__double-line.hfe-animation__none:focus, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__underline.hfe-animation__none:before, .hfe-pointer__underline.hfe-animation__none:after, .hfe-pointer__underline.hfe-animation__none:hover, .hfe-pointer__underline.hfe-animation__none:focus, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__overline.hfe-animation__none:before, .hfe-pointer__overline.hfe-animation__none:after, .hfe-pointer__overline.hfe-animation__none:hover, .hfe-pointer__overline.hfe-animation__none:focus, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:before {
    content: '';
    top: 0;
}

.hfe-pointer__double-line.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    width: 10px;
    left: -20px;
}

.hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:after {
    content: '';
    bottom: 0;
}

.hfe-pointer__double-line.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    width: 10px;
    left: -webkit-calc( 100% + 20px);
    left: calc( 100% + 20px);
}


/* Framed Style */

.hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:after {
    background: transparent;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    border: 3px solid #55595c;
}

.hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before {
    content: '';
}

.hfe-pointer__framed.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    -webkit-transform: scale(0.75);
    -ms-transform: scale(0.75);
    transform: scale(0.75);
}

.hfe-pointer__framed.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    -webkit-transform: scale(1.25);
    -ms-transform: scale(1.25);
    transform: scale(1.25);
}

.hfe-pointer__framed.hfe-animation__grow .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:before {
    -webkit-transition: opacity 0.2s, -webkit-transform 0.4s;
    transition: opacity 0.2s, -webkit-transform 0.4s;
    transition: opacity 0.2s, transform 0.4s;
    transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:after {
    width: 3px;
    height: 3px;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:before {
    border-width: 0 0 3px 3px;
    -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
    transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:after {
    content: '';
    top: initial;
    bottom: 0;
    left: initial;
    right: 0;
    border-width: 3px 3px 0 0;
    -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
    transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:before, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:after {
    width: 100%;
    height: 100%;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:before {
    -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
    transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
}

.hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:after {
    -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
    transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
}

.hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:after {
    width: 3px;
    height: 3px;
}

.hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:before {
    border-width: 3px 0 0 3px;
}

.hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:after {
    content: '';
    top: initial;
    bottom: 0;
    left: initial;
    right: 0;
    border-width: 0 3px 3px 0;
}

.hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__corners .current-menu-item:before, .hfe-pointer__framed.hfe-animation__corners .current-menu-item:after {
    width: 100%;
    height: 100%;
    -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s;
    transition: opacity 0.002s, width 0.4s, height 0.4s;
}

.hfe-pointer__framed.hfe-animation__none, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-pointer__framed.hfe-animation__none:before, .hfe-pointer__framed.hfe-animation__none:after, .hfe-pointer__framed.hfe-animation__none:hover, .hfe-pointer__framed.hfe-animation__none:focus, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

/* Background Style */

.hfe-pointer__background .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__background .menu-item.parent a.hfe-menu-item:after {
    content: '';
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.hfe-pointer__background .menu-item.parent a.hfe-menu-item:before {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #55595c;
    z-index: -1;
}

.hfe-pointer__background .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__background .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__background .menu-item.parent a.hfe-menu-item.highlighted, .hfe-pointer__background .current-menu-item {
    color: #fff;
}

.hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:before {
    -webkit-transform: scale(0.5);
    -ms-transform: scale(0.5);
    transform: scale(0.5);
}

.hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__grow .current-menu-item:before {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    -webkit-transform: scale(1.2);
    -ms-transform: scale(1.2);
    transform: scale(1.2);
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shrink .current-menu-item:before {
    -webkit-transition: opacity 0.15s, -webkit-transform 0.4s;
    transition: opacity 0.15s, -webkit-transform 0.4s;
    transition: opacity 0.15s, transform 0.4s;
    transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s;
}

.hfe-pointer__background.hfe-animation__sweep-left .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    left: 100%;
}

.hfe-pointer__background.hfe-animation__sweep-right .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    right: 100%;
}

.hfe-pointer__background.hfe-animation__sweep-up .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    top: 100%;
}

.hfe-pointer__background.hfe-animation__sweep-down .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    bottom: 100%;
}

.hfe-pointer__background.hfe-animation__shutter-out-vertical .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    bottom: 50%;
    top: 50%;
}

.hfe-pointer__background.hfe-animation__shutter-out-horizontal .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    right: 50%;
    left: 50%;
}

.hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:after {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #55595c;
    z-index: -1;
}

.hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:before {
    top: 0;
    bottom: 100%;
}

.hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:after {
    top: 100%;
    bottom: 0;
}

.hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .current-menu-item:before {
    bottom: 50%;
}

.hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .current-menu-item:after {
    top: 50%;
}

.hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:before {
    right: 0;
    left: 100%;
}

.hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:after {
    right: 100%;
    left: 0;
}

.hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .current-menu-item:before {
    left: 50%;
}

.hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .current-menu-item:after {
    right: 50%;
}

.hfe-pointer__background.hfe-animation__none, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-pointer__background.hfe-animation__none:before, .hfe-pointer__background.hfe-animation__none:after, .hfe-pointer__background.hfe-animation__none:hover, .hfe-pointer__background.hfe-animation__none:focus, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

/* Text Style */

.hfe-pointer__text.hfe-animation__skew .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__skew .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: skew(-8deg);
    -ms-transform: skew(-8deg);
    transform: skew(-8deg);
}

.hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: scale(1.2);
    -ms-transform: scale(1.2);
    transform: scale(1.2);
}

.hfe-pointer__text.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: scale(0.8);
    -ms-transform: scale(0.8);
    transform: scale(0.8);
}

.hfe-pointer__text.hfe-animation__float .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__float .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: translateY(-8px);
    -ms-transform: translateY(-8px);
    transform: translateY(-8px);
}

.hfe-pointer__text.hfe-animation__sink .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__sink .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: translateY(8px);
    -ms-transform: translateY(8px);
    transform: translateY(8px);
}

.hfe-pointer__text.hfe-animation__rotate .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__rotate .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transform: rotate(6deg);
    -ms-transform: rotate(6deg);
    transform: rotate(6deg);
}

.hfe-pointer__text.hfe-animation__none, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-pointer__text.hfe-animation__none:before, .hfe-pointer__text.hfe-animation__none:after, .hfe-pointer__text.hfe-animation__none:hover, .hfe-pointer__text.hfe-animation__none:focus, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
}

.hfe-flyout-overlay {
    display: none;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999998;
    background: rgba(0,0,0,.6);
    cursor: pointer;
    -webkit-backface-visibility: hidden;
}

/* No link hover effect to last menu item */

.hfe-pointer__underline .menu-item.parent a.hfe-menu-item.elementor-button:after,
.hfe-pointer__overline .menu-item.parent a.hfe-menu-item.elementor-button:before,
.hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:after,
.hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:before {
    height: 0px;
}

.hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:before,
.hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:after{
    border-width: 0px;
}

.hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:hover,
.hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:focus
{
    -webkit-transform: none;
    transform: none;
}

.hfe-flyout-close,
.hfe-flyout-close svg {
    position: absolute;
    top: 0;
    right: 0;
    margin: 5px;
    width: 23px;
    height: 23px;
    line-height: 23px;
    font-size: 23px;
    display: block;
    cursor: pointer;
}

.hfe-flyout-wrapper .hfe-side.hfe-flyout-left {
    top: 0;
    bottom: 0;
    left: -100%;
    right: auto;
    height: 100%;
    /*height: 100vh;*/
    width: 300px;
    max-width: 100%;
    max-width: 100vw;
}

.hfe-flyout-wrapper .hfe-side {
    display: none;
    position: fixed;
    z-index: 999999;
    padding: 0;
    margin: 0;
    -webkit-overflow-scrolling: touch;
    -webkit-backface-visibility: hidden;
}

.hfe-flyout-wrapper .hfe-side.hfe-flyout-show {
    display: block;
}

.hfe-flyout-content.push {
    color: #ffffff;
}

.hfe-flyout-content ul li {
    color: #ffffff;
}

/* ===========================================================
 *  Flyout Location
 * ======================================================== */

.hfe-flyout-wrapper .hfe-side.hfe-flyout-right {
    top: 0;
    bottom: 0;
    left: auto;
    right: -100%; /* default */
    height: 100%;
    /*height: 100vh;*/
    width: 300px; /* default */
    max-width: 100%;
}

.hfe-flyout-wrapper .hfe-side.hfe-flyout-left {
    top: 0;
    bottom: 0;
    left: -100%; /* default */
    right: auto;
    height: 100%;
    /*height: 100vh;*/
    width: 300px; /* default */
    max-width: 100%;
    max-width: 100vw;
}

.hfe-flyout-wrapper .hfe-side.top {
    top: -100%; /* default */
    bottom: auto;
    left: 0;
    right: 0;
    width: 100%;
    width: 100vw;
    height: 300px; /* default */
    max-height: 100%;
}

.hfe-flyout-wrapper .hfe-side.bottom {
    top: auto;
    bottom: -100%; /* default */
    left: 0;
    right: 0;
    width: 100%;
    width: 100vw;
    height: 300px; /* default */
    max-height: 100%;
}

/* ===========================================================
 *  Flyout Container
 * ======================================================== */

.hfe-flyout-content {
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    line-height: 1.4em;
    color: #fff;
}
/* iOS fix */
@media (max-width:1024px) {
    .hfe-flyout-content {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
    }
}

.hfe-flyout-content::-webkit-scrollbar {
    display: none;
}

.admin-bar .hfe-side {
    margin-top: 32px;
}

/* Dropdown animation CSS */

.hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu {
    -webkit-transform: translateY(20%);
    -ms-transform: translateY(20%);
    transform: translateY(20%);
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    -webkit-transition: all 0.1s;
    transition: all 0.1s;
}

.hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}

.hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu {  
    -webkit-transform: translateY(-20%);
    -ms-transform: translateY(-20%);
    transform: translateY(-20%);
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    -webkit-transition: all 0.1s;
    transition: all 0.1s;
}

.hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}

.hfe-nav-menu .hfe-has-submenu .sub-menu li.menu-item:first-child,
.hfe-nav-menu .hfe-has-submenu .sub-menu li.menu-item:last-child {
    overflow: visible !important;
}

.elementor-widget-navigation-menu:not(.hfe-nav-menu__align-justify):not(.hfe-menu-item-space-between) a.hfe-menu-item.elementor-button {
    display: inline-flex;
} 

.hfe-nav-menu li.hfe-button-wrapper {
    align-self: center;
}

/* Tablet */
@media only screen and ( max-width: 1024px ) {

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal li,
    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu{
        width: 100%;
        margin-right:0px;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle {
        display: block;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: visible;
        opacity: 1;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
        visibility: hidden;
        opacity: 0;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-vertical {
        visibility: visible;
        opacity: 1;
        height: auto;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        position: relative;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
        position: absolute;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu {
        top: 0;
        left: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle
    {
        visibility: visible;
        opacity: 1;
        display: block;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
        float: none;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
    .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu {
        visibility: hidden;
        opacity: 0;
        -webkit-transition: none;
        transition: none;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle:hover {
        border:1px dotted;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle {
        border:1px dotted transparent;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        position: relative;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        position: relative;
        height: 0;
        top: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .saved-content,
    .hfe-nav-menu__breakpoint-tablet .sub-menu,
    .hfe-nav-menu__breakpoint-tablet .child {
        left: 0 !important;
        width:auto !important;  
    }

    .hfe-nav-menu .sub-menu {
        min-width: auto;
        margin: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
        padding: 10px;
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-plus .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: '-'; 
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu .sub-menu{
        -webkit-box-shadow: none;
        box-shadow: none;
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''
    }

    /* Effect 1: Fade in and scale up */
    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }
    
    /*.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu ul.sub-menu ul.sub-menu li a{
        border-left: 16px solid transparent;
    }*/

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before {
         background-color: unset!important; 
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{
        border: 0px!important;
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text  .menu-item.parent a.hfe-menu-item:focus{
        -webkit-transform: none!important;
        -ms-transform: none!important;
        transform: none!important;
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item,
    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.hfe-button-wrapper {
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; 
    }
}

/* Mobile */
@media only screen and ( max-width: 767px ) {

    .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item 
    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.hfe-button-wrapper { 
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: visible;
        opacity: 1;
        display: block;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal li.menu-item,
    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu {
        width: 100%
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle {
        display: inline-block;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu {
        position: relative;
        height: 0;
        top: 0;
    }

    .hfe-nav-menu .sub-menu {
        min-width: auto;
        margin: 0;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
    .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu {
        visibility: hidden;
        opacity: 0;
        -webkit-transition: none;
        transition: none;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
        float: none;
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle.hfe-active-menu {
        display: block;
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-vertical {
        visibility: hidden;
        opacity: 0;
        height: 0;  
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-mobile .hfe-layout-vertical .hfe-nav-menu__toggle
    {
        visibility: visible;
        opacity: 1;
        display: block;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal {
        visibility: hidden;
        opacity: 0;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical {
        float: none;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: visible;
        opacity: 1;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical {
        visibility: hidden;
        opacity: 0;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-vertical {
        visibility: visible;
        opacity: 1;
        height: auto;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        position: relative;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
        position: absolute;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu {
        top: 0;
        left: 0;
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-plus .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: '-'; 
    }

    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''
    }

    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle:hover{
        border:1px dotted;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle{
        border:1px dotted transparent;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu .sub-menu{
        -webkit-box-shadow: none;
        box-shadow: none;
    }

    /* Effect 1: Fade in and scale up */
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-1 .hfe-nav-menu {
        -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
        transform: scale(0.7);
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
    }

    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
        padding: 10px;
    }

    .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-1 .hfe-nav-menu {
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
        opacity: 1;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    }

    /* Effect 2: Slide from the right */
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-2 .hfe-nav-menu {
        -webkit-transform: translateX(20%);
        -ms-transform: translateX(20%);
        transform: translateX(20%);
        opacity: 0;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
        -webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
        transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
    }

    .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-2 .hfe-nav-menu {
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    }

    /* Effect 3: Slide from the bottom */
    .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-3 .hfe-nav-menu {
        -webkit-transform: translateY(20%);
        -ms-transform: translateY(20%);
        transform: translateY(20%);
        opacity: 0;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
    }

    .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-3 .hfe-nav-menu {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    }

    .hfe-nav-menu__breakpoint-mobile .saved-content,
    .hfe-nav-menu__breakpoint-mobile .sub-menu,
    .hfe-nav-menu__breakpoint-mobile .child,
    .hfe-nav-menu__breakpoint-tablet .saved-content,
    .hfe-nav-menu__breakpoint-tablet .sub-menu,
    .hfe-nav-menu__breakpoint-tablet .child{
        left: 0 !important;
        width: auto !important; 
    }

    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }   

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before {
        background-color: unset!important; 
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{
        border: 0px!important;
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text  .menu-item.parent a.hfe-menu-item:focus,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-pointer__text  .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text .menu-item.parent a.hfe-menu-item:focus {
        -webkit-transform: none!important;
        -ms-transform: none!important;
        transform: none!important;
    }
}

.hfe-toggle-no .hfe-layout-expandible .hfe-nav-menu__toggle {
    display: none;
}

/* Icon common CSS */

.hfe-icon {
    display: inline-block;
    vertical-align: middle; /* Alignment of icon */
}

/* Icon Svg */
.hfe-icon svg {
    width: 1em;
    height: 1em;
}

/* Menu Cart CSS */

.hfe-cart-menu-wrap-custom {
    display: inline-block;
    line-height: 1;
}

.hfe-cart-menu-wrap-custom .hfe-cart-count, 
.hfe-cart-menu-wrap-custom .hfe-cart-count:after {
    border-color: #75c32c;
    color: #75c32c;
}

.hfe-cart-menu-wrap-custom .hfe-cart-count {
    font-weight: bold;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    text-align: center;
    min-width: 2.1em;
    min-height: 2.1em;
    font-size: 0.860em;
    line-height: 1.8;
    border-radius: 0.3em 0.3em 0.3em 0.3em;
    border-width: 2px;
    border-style: solid;
    padding: 12px 24px;
}

/* Default skin for cart*/
.hfe-cart-menu-wrap-default {
    display: inline-block;
    line-height: 1;
}

.hfe-cart-menu-wrap-default .hfe-cart-count, 
.hfe-cart-menu-wrap-default .hfe-cart-count:after {
    border-color: #75c32c;
    color: #75c32c;
}

.hfe-cart-menu-wrap-default .hfe-cart-count {
    font-weight: bold;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    text-align: center;
    min-width: 2.1em;
    min-height: 2.1em;
    font-size: 0.860em;
    line-height: 1.8;
    border-radius: 0em 0em 0.3em 0.3em;
    border-width: 2px;
    border-style: solid;
    padding: 0 .4em;
}

.hfe-cart-menu-wrap-default .hfe-cart-count:after {
    bottom: 100%;
    margin-bottom: 0;
    height: .8em;
    width: .8em;
    left: 50%;
    transform: translateX(-50%);
    top: -.6em;
    content: ' ';
    position: absolute;
    pointer-events: none;
    border-width: 2px;
    border-style: solid;
    border-top-left-radius: 10em;
    border-top-right-radius: 10em;
    border-bottom: 0;
}

.elementor-widget-hfe-cart:not(.hfe-menu-cart--show-subtotal-yes) .hfe-menu-cart__toggle .elementor-button-text {
    display: none; 
}

.elementor-widget-hfe-cart.toggle-icon--bag-light .hfe-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; 
}

.elementor-widget-hfe-cart.toggle-icon--bag-medium .hfe-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; 
}

.elementor-widget-hfe-cart.toggle-icon--bag-solid .hfe-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; 
}

.hfe-menu-cart__toggle .elementor-button {
    background: transparent;
    border-radius: 0;
    color: #818a91;
    border: 1px solid;
    border-color: inherit;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; 
}

.hfe-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; 
}

.hfe-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s; 
}

.hfe-menu-cart--items-indicator-bubble .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before {
    content: attr(data-counter);
    display: block;
    position: absolute;
    min-width: 1.6em;
    height: 1.6em;
    line-height: 1.5em;
    top: -0.7em;
    right: -0.7em;
    border-radius: 100%;
    color: #fff;
    background-color: #d9534f;
    text-align: center;
    font-size: 10px; 
}

.hfe-menu-cart--items-indicator-plain .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before {
    content: attr(data-counter);
    display: inline-block;
    font-weight: normal; 
}

.hfe-menu-cart--empty-indicator-hide .hfe-menu-cart__toggle .elementor-button .elementor-button-icon[data-counter="0"]:before {
    content: none;
    display: none; 
}

.hfe-menu-cart__toggle .elementor-button-icon {
    -webkit-box-ordinal-group: 16;
    -webkit-order: 15;
    -ms-flex-order: 15;
    order: 15;
}

.hfe-menu-cart__toggle.hfe-button-wrapper .elementor-button {
    color:#4d4848;
}

/*Search Box CSS*/

.hfe-search-button-wrapper {
    display: block;
    cursor: pointer;
    vertical-align: middle;
    text-align: right;
}

.hfe-search-form__container {
    display: flex;
    overflow: hidden;
}

.hfe-search-form__input {
    flex-basis: 100%;
}

.hfe-search-icon-toggle i.fa-search {
    display: inline-block;
    position: absolute;
    width: 20px;
    box-sizing: content-box;
    padding: 10px;
}

.hfe-search-icon-toggle i:before {
    vertical-align: middle;
}
/*search icon toggle css*/

.hfe-search-button-wrapper input[type=search] {
    border: 0;
    padding: 10px;
    cursor: pointer;
    border-radius: 0;
    transition: all .5s;
    box-sizing: border-box;
    outline: none;
}

.hfe-search-button-wrapper button {
    border: none;
    border-radius: 0;
    padding: 0;
}

.hfe-search-button-wrapper input[type=search]:focus {
    cursor: auto;
    border: none;
    box-shadow: none;
}

.hfe-search-icon-toggle input:-moz-placeholder,
.hfe-search-icon-toggle input::-webkit-input-placeholder {
    color: transparent;
}

.hfe-search-layout-icon .hfe-search-icon-toggle .hfe-search-form__input {
    background-color: unset;
    height: 100%;
}

.hfe-search-button-wrapper.hfe-input-focus {
    display: flex;
}

.hfe-search-form__container .hfe-search-submit {
    min-width: 3%;
    position:relative;
}

.hfe-search-form__container button#clear,
.hfe-search-icon-toggle button#clear {
    visibility: hidden;
    position: absolute;
    right:0; 
    top:0;
    padding: 0 8px;
    font-style: normal;
    user-select: none;
    cursor: pointer;
    bottom:0;
    margin-right:10px;
    background-color: transparent;
}

.hfe-search-button-wrapper input[type="search"]::-webkit-search-decoration,
.hfe-search-button-wrapper input[type="search"]::-webkit-search-cancel-button,
.hfe-search-button-wrapper input[type="search"]::-webkit-search-results-button,
.hfe-search-button-wrapper input[type="search"]::-webkit-search-results-decoration { 
    display: none; 
}

.hfe-search-form__container button#clear-with-button{
    visibility: hidden;
    position: absolute;
    top: 0;
    padding: 0 8px;
    font-style: normal;
    font-size: 1.2em;
    user-select: none;
    cursor: pointer;
    bottom:0;
    background-color: transparent;
}

.hfe-search-button-wrapper, 
.hfe-search-form__container,
.hfe-search-icon-toggle,
.hfe-search-button-wrapper .hfe-search-icon-toggle i,
.hfe-search-button-wrapper .hfe-search-icon-toggle i:before {
    position: relative;
}

.hfe-search-button-wrapper .hfe-search-icon-toggle .hfe-search-form__input {
    position: absolute;
    width: 0;
    right: 0;
    background-color: transparent;
}

.hfe-search-icon-toggle {
    width: 100%!important;
}

.hfe-search-button-wrapper.hfe-input-focus .hfe-search-icon-toggle .hfe-search-form__input{
    position: absolute;
    width: 250px;
    right: 0;
}

.hfe-search-layout-text .hfe-search-form__container,
.hfe-search-layout-icon_text .hfe-search-form__container,
.hfe-search-layout-text .hfe-search-form__container .hfe-search-form__input,
.hfe-search-layout-icon_text .hfe-search-form__container .hfe-search-form__input {
    width: 100%;
}

.hfe-search-icon-toggle {
    line-height: 1.5;
}

/*-------Navigation menu active parent---------*/
.hfe-pointer__double-line.hfe-animation__slide .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after,.hfe-pointer__double-line.hfe-animation__slide .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__slide .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after,
 .hfe-pointer__overline.hfe-animation__slide .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__fade .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before  {
    width: 100%;
    left: 0;
    opacity:1;
}

.hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after,.hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    bottom: 0px;
    opacity:1;
}
.hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    top: 0px;
    opacity: 1;
}

.hfe-pointer__double-line.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__double-line.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    height: 3px;
    width: 100%;
    left: 0;
    opacity: 1;
}

.hfe-pointer__framed.hfe-animation__grow .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__framed.hfe-animation__shrink .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
    opacity: 1;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
}

.hfe-pointer__framed.hfe-animation__fade .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent.current-menu-item a.hfe-menu-item:before, .hfe-pointer__underline.hfe-animation__fade .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__double-line.hfe-animation__fade .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__double-line.hfe-animation__fade .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    opacity:1;
}

.hfe-pointer__framed.hfe-animation__corners .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, 
.hfe-pointer__framed.hfe-animation__corners .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after,
.hfe-pointer__framed.hfe-animation__draw .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, 
.hfe-pointer__framed.hfe-animation__draw .menu-item.parent.current-menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
    border-width:3px;
    width:100%;
    opacity:1;
    height:100%;
}

/* Scroll to top CSS */
.hfe-scroll-to-top-wrap.hfe-scroll-to-top-hide {
    display: none;
}

.hfe-scroll-to-top-wrap.edit-mode,
.hfe-scroll-to-top-wrap.single-page-off {
    display: none !important;
}

.hfe-scroll-to-top-button {
    position:fixed;
    right:15px;
    bottom:15px;
    z-index:9999;
    display:-webkit-box;
    display:-webkit-flex;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-align:center;
    -webkit-align-items:center;
    align-items:center;
    -ms-flex-align:center;
    -webkit-box-pack:center;
    -ms-flex-pack:center;
    -webkit-justify-content:center;
    justify-content:center;
    width:50px;
    height:50px;
    border-radius:50px;
    background-color:#000000;
    color:#fff;
    text-align:center;
    opacity:1;
    cursor:pointer;
    -webkit-transition:all .3s;
    transition:all .3s;
}

.hfe-scroll-to-top-button i {
    color:#fff;
    font-size:16px;
}
/* Breadcrumbs CSS */

ul.hfe-breadcrumbs {
    display:block;
    margin:0;
    padding:0;
    list-style:none
}

ul.hfe-breadcrumbs li {
    display: inline-block;
    margin-right: 10px;
    vertical-align: middle;
}

ul.hfe-breadcrumbs li:last-child {
    margin:0;
}

ul.hfe-breadcrumbs li a,
ul.hfe-breadcrumbs li span.hfe-breadcrumbs-separator-icon,
ul.hfe-breadcrumbs li span.hfe-breadcrumbs-text{
    display:block;
}

ul.hfe-breadcrumbs li span.hfe-breadcrumbs-text{
    -webkit-transition:all .4s;
    transition:all .4s;
}

span.hfe-breadcrumbs-home-icon{
    margin-right:10px;
    align-content: center;
}

.hfe-breadcrumbs-first a {
    align-content: center;
}

.hfe-breadcrumbs-separator-icon i, 
.hfe-breadcrumbs-separator-icon svg,
.hfe-breadcrumbs-home-icon i,
.hfe-breadcrumbs-home-icon svg {
    width: 1em;
    height: 1em;
    position: relative;
    display: block;
}

ul.hfe-breadcrumbs-show-home li.hfe-breadcrumbs-first {
    display: inline-flex;
}

/* Post Info CSS */

ul.hfe-post-info-items {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul.hfe-post-info-inline.hfe-post-info-items {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

li.hfe-post-info-item {
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}

li.hfe-post-info-item,
li.hfe-post-info-item > a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -ms-flex-align: center;
}

.hfe-post-info-inline.hfe-post-info-items .hfe-post-info-item {
    margin-right: 8px;
    margin-left: 8px;
}

.hfe-post-info-inline .hfe-post-info-item:not(:last-child):after {
    position: relative;
    right: -8px;
}

.hfe-post-info-inline.hfe-post-info-items {
    margin-right: -8px;
    margin-left: -8px;
}

.hfe-post-info-icon svg {
    display: block;
}

.hfe-post-info-layout-traditional .hfe-post-info-item:not(:last-child):after {
    position: absolute;
    bottom: 0;
    width: 100%;
    left: 0;
}

.hfe-post-info-layout-traditional .hfe-post-info-item:not(:last-child) {
    position: relative;
}

/* --- assets/css/03-hfe.css --- */
.footer-width-fixer {
    width: 100%;
}

/* Container fix for genesis themes */

.ehf-template-genesis.ehf-header .site-header .wrap,
.ehf-template-genesis.ehf-footer .site-footer .wrap,
.ehf-template-generatepress.ehf-header .site-header .inside-header {
    width: 100%;
    padding: 0;
    max-width: 100%;
}

/* Container fix for generatepress theme */

.ehf-template-generatepress.ehf-header .site-header,
.ehf-template-generatepress.ehf-footer .site-footer {
    width: 100%;
    padding: 0;
    max-width: 100%;
    background-color: transparent !important; /* override generatepress default white color for header */
}

.bhf-hidden {
    display: none
}

/* Fix: Header hidden below the page content */
.ehf-header #masthead {
	z-index: 99;
    position: relative;
}

/* --- assets/css/kit.css --- */
.elementor-kit-74{--e-global-color-primary:#9108DC;--e-global-color-secondary:#FFDB79;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-356bd45:#FF5479;--e-global-color-c24263e:#EBEBEB;--e-global-color-8cd1398:#000000;--e-global-color-65e99da:#152F4E;--e-global-color-cd2d769:#FFFFFF;--e-global-color-f593548:#103663;--e-global-typography-primary-font-family:"DM Sans";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-weight:500;}.elementor-kit-74 button,.elementor-kit-74 input[type="button"],.elementor-kit-74 input[type="submit"],.elementor-kit-74 .elementor-button{background-color:var( --e-global-color-primary );color:var( --e-global-color-cd2d769 );}.elementor-kit-74 h1{color:var( --e-global-color-8cd1398 );font-size:40px;font-weight:600;line-height:50px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1500px;}.e-con{--container-max-width:1500px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* --- assets/css/04-she-header.css --- */
/*------------------------------------------------------------------

Sticky Header Effects Style

-------------------------------------------------------------------*/

/* MAIN HEADER */
.header,
.she-header-yes,
.she-header-yes.e-con,
.she-header {
  transition: all 0.4s ease-in-out, height 0.4s ease-in-out,
    background-color 0.4s ease-in-out, border-bottom-width 0.4s ease-in-out,
    border-bottom-color 0.4s ease-in-out, margin 0s !important;
  width: 100%;
  max-width: 100%;
  z-index: 9999;
}

/* STICKY HEADER */
.she-header {
  margin-bottom: 0;
  margin-top: 0;
  /* padding-bottom: 0;
  padding-top: 0; */
}

.she-header:not(.elementor-sticky) {
  position: fixed !important;
  top: 0;
}

/* BLURRY HEADER */
.she-header.she-blur-yes {
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
}

/* HIDE HEADER */
.headerup {
  -ms-transform: translateY(-110vh) !important;
  -o-transition: transform 0.4s ease-in-out !important;
  -webkit-transform: translateY(-110vh) !important;
  -webkit-transition: transform 0.4s ease-in-out !important;
  -webkit-transition: -webkit-transform 0.4s ease-in-out !important;
  transform: translateY(-110vh) !important;
  transition: transform 0.4s ease-in-out !important;
}

/* HEADER LOGO */
.she-header-yes .elementor-widget-theme-site-logo,
.she-header-yes .elementor-widget-image,
.she-header-yes .logo,
.she-header-yes .elementor-widget-theme-site-logo img,
.she-header-yes .elementor-widget-image img,
.she-header-yes .logo img {
  transition: all 0.4s ease-in-out !important;
}

/* TRANSPARENT HEADER */
.she-header-transparent-yes,
.elementor-editor-active .she-header-transparent-yes {
  transition: all 0.4s ease-in-out, top 0s;
  width: 100%;
  background-color: rgba(0, 0, 0, 0) !important;
  position: absolute !important;
  z-index: 99;
}

/* Custom Hamburger Menu */
.she-header-yes .elementor-menu-toggle:before,
.she-header-yes .elementor-menu-toggle:after,
.she-header-yes .elementor-menu-toggle i:after {
  transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;
}

.she-header-yes .elementor-menu-toggle {
  position: relative;
  transition: color 0.4s ease-in-out, background-color 0.4s ease-in-out;
}

.she-header-yes .elementor-menu-toggle.elementor-active:before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.she-header-yes .elementor-menu-toggle:after {
  transform: translate(-50%, calc(-50% - 0.25em));
}

.she-header-yes .elementor-menu-toggle.elementor-active:after {
  transform: translate(-50%, -50%) rotate(45deg);
}

.she-header-yes .elementor-menu-toggle i:after {
  transform: translate(-50%, -50%);
}

/* ADMIN BAR OFFSET */
@media screen and (min-width: 783px) {
  .admin-bar .she-header:not(.elementor-sticky) {
    top: 32px;
  }
}

/* .she-header-hide-on-scroll-yes {
  -webkit-transition: transform 0.4s ease-in-out !important;
	-o-transition: transform 0.4s ease-in-out !important;
	-webkit-transition: -webkit-transform 0.4s ease-in-out !important;
	transition: -webkit-transform 0.4s ease-in-out !important;
	transition: transform 0.4s ease-in-out !important;
	transition: transform 0.4s ease-in-out, -webkit-transform 00.4s ease-in-out !important;
} */
/* --- assets/css/05-widget-image.css --- */
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=".svg"]{width:48px}.elementor-widget-image img{display:inline-block;vertical-align:middle}
/* --- assets/css/06-anim-grow.css --- */
.elementor-animation-grow{transition-duration:.3s;transition-property:transform}.elementor-animation-grow:active,.elementor-animation-grow:focus,.elementor-animation-grow:hover{transform:scale(1.1)}
/* --- assets/css/07-widget-spacer.css --- */
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}.e-con{--container-widget-width:100%}.e-con-inner>.elementor-widget-spacer,.e-con>.elementor-widget-spacer{width:var(--container-widget-width,var(--spacer-size));--align-self:var( --container-widget-align-self,initial );--flex-shrink:0}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,.e-con>.elementor-widget-spacer>.elementor-widget-container{height:100%;width:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer,.e-con>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty,.e-con>.elementor-widget-spacer.elementor-widget-empty{min-height:22px;min-width:22px;position:relative}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon,.e-con>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon{height:22px;inset:0;margin:auto;padding:0;position:absolute;width:22px}
/* --- assets/css/08-widget-heading.css --- */
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}
/* --- assets/css/09-widget-divider.css --- */
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-widget-divider{--divider-border-style:none;--divider-border-width:1px;--divider-color:#0c0d0e;--divider-icon-size:20px;--divider-element-spacing:10px;--divider-pattern-height:24px;--divider-pattern-size:20px;--divider-pattern-url:none;--divider-pattern-repeat:repeat-x}.elementor-widget-divider .elementor-divider{display:flex}.elementor-widget-divider .elementor-divider__text{font-size:15px;line-height:1;max-width:95%}.elementor-widget-divider .elementor-divider__element{flex-shrink:0;margin:0 var(--divider-element-spacing)}.elementor-widget-divider .elementor-icon{font-size:var(--divider-icon-size)}.elementor-widget-divider .elementor-divider-separator{direction:ltr;display:flex;margin:0}.elementor-widget-divider--view-line_icon .elementor-divider-separator,.elementor-widget-divider--view-line_text .elementor-divider-separator{align-items:center}.elementor-widget-divider--view-line_icon .elementor-divider-separator:after,.elementor-widget-divider--view-line_icon .elementor-divider-separator:before,.elementor-widget-divider--view-line_text .elementor-divider-separator:after,.elementor-widget-divider--view-line_text .elementor-divider-separator:before{border-block-end:0;border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color);content:"";display:block;flex-grow:1}.elementor-widget-divider--element-align-left .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-left .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-left .elementor-divider__element{margin-left:0}.elementor-widget-divider--element-align-right .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-right .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-right .elementor-divider__element{margin-right:0}.elementor-widget-divider--element-align-start .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-start .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-start .elementor-divider__element{margin-inline-start:0}.elementor-widget-divider--element-align-end .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-end .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-end .elementor-divider__element{margin-inline-end:0}.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--separator-type-pattern{--divider-border-style:none}.elementor-widget-divider--separator-type-pattern.elementor-widget-divider--view-line .elementor-divider-separator,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:after,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:before,.elementor-widget-divider--separator-type-pattern:not([class*=elementor-widget-divider--view]) .elementor-divider-separator{background-color:var(--divider-color);-webkit-mask-image:var(--divider-pattern-url);mask-image:var(--divider-pattern-url);-webkit-mask-repeat:var(--divider-pattern-repeat);mask-repeat:var(--divider-pattern-repeat);-webkit-mask-size:var(--divider-pattern-size) 100%;mask-size:var(--divider-pattern-size) 100%;min-height:var(--divider-pattern-height);width:100%}.elementor-widget-divider--no-spacing{--divider-pattern-size:auto}.elementor-widget-divider--bg-round{--divider-pattern-repeat:round}.rtl .elementor-widget-divider .elementor-divider__text{direction:rtl}.e-con-inner>.elementor-widget-divider,.e-con>.elementor-widget-divider{width:var(--container-widget-width,100%);--flex-grow:var( --container-widget-flex-grow )}
/* --- assets/css/page-contrata.css --- */
.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-navigation-menu .menu-item a.hfe-menu-item.elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-navigation-menu .menu-item a.hfe-menu-item.elementor-button:hover{background-color:var( --e-global-color-accent );}.elementor-widget-navigation-menu a.hfe-menu-item, .elementor-widget-navigation-menu a.hfe-sub-menu-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-navigation-menu .menu-item a.hfe-menu-item, .elementor-widget-navigation-menu .sub-menu a.hfe-sub-menu-item{color:var( --e-global-color-text );}.elementor-widget-navigation-menu .menu-item a.hfe-menu-item:hover,
								.elementor-widget-navigation-menu .sub-menu a.hfe-sub-menu-item:hover,
								.elementor-widget-navigation-menu .menu-item.current-menu-item a.hfe-menu-item,
								.elementor-widget-navigation-menu .menu-item a.hfe-menu-item.highlighted,
								.elementor-widget-navigation-menu .menu-item a.hfe-menu-item:focus{color:var( --e-global-color-accent );}.elementor-widget-navigation-menu .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before,
								.elementor-widget-navigation-menu .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-navigation-menu .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent .sub-menu .hfe-has-submenu-container a:after{background-color:var( --e-global-color-accent );}.elementor-widget-navigation-menu .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before,
								.elementor-widget-navigation-menu .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-navigation-menu .sub-menu li a.hfe-sub-menu-item,
							.elementor-widget-navigation-menu nav.hfe-dropdown li a.hfe-sub-menu-item,
							.elementor-widget-navigation-menu nav.hfe-dropdown li a.hfe-menu-item,
							.elementor-widget-navigation-menu nav.hfe-dropdown-expandible li a.hfe-menu-item,
							.elementor-widget-navigation-menu nav.hfe-dropdown-expandible li a.hfe-sub-menu-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-1229 .elementor-element.elementor-element-3d9c068{--display:flex;--min-height:20vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--align-content:center;--overflow:hidden;--overlay-opacity:0;box-shadow:0 -70px 60px -30px rgba(0, 0, 0, 0.35) inset;}.elementor-1229 .elementor-element.elementor-element-3d9c068:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("../img/band-route.svg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-1229 .elementor-element.elementor-element-3d9c068::before, .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-background-video-container::before, .elementor-1229 .elementor-element.elementor-element-3d9c068 > .e-con-inner > .elementor-background-video-container::before, .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-background-slideshow::before, .elementor-1229 .elementor-element.elementor-element-3d9c068 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-8cd1398 );--background-overlay:'';}.elementor-1229 .elementor-element.elementor-element-4cf9e06{--display:flex;--min-height:15vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1229 .elementor-element.elementor-element-21bb44d > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-1229 .elementor-element.elementor-element-21bb44d .elementor-heading-title{font-family:"Carme", Sans-serif;font-size:3vw;font-weight:600;letter-spacing:20px;color:var( --e-global-color-cd2d769 );}.elementor-1229 .elementor-element.elementor-element-562c99d{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1229 .elementor-element.elementor-element-562c99d:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-562c99d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c24263e );}.elementor-1229 .elementor-element.elementor-element-889ec57{--display:flex;}.elementor-1229 .elementor-element.elementor-element-fa2b152{--spacer-size:50px;}.elementor-1229 .elementor-element.elementor-element-07ee742{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-1229 .elementor-element.elementor-element-07ee742:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-07ee742 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EBEBEB;}.elementor-1229 .elementor-element.elementor-element-547f7b6{--display:flex;}.elementor-1229 .elementor-element.elementor-element-b670080{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-1229 .elementor-element.elementor-element-b670080 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-1229 .elementor-element.elementor-element-b670080 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:2.2vw;font-weight:600;color:var( --e-global-color-8cd1398 );}.elementor-1229 .elementor-element.elementor-element-7c5ec86{--spacer-size:20px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-1229 .elementor-element.elementor-element-a8a7805{font-family:"DM Sans", Sans-serif;font-size:1.2vw;font-weight:400;}.elementor-1229 .elementor-element.elementor-element-292d251{font-family:"DM Sans", Sans-serif;font-size:1.2vw;font-weight:400;}.elementor-1229 .elementor-element.elementor-element-c620a73{font-family:"DM Sans", Sans-serif;font-size:1.2vw;font-weight:400;}.elementor-1229 .elementor-element.elementor-element-c80c7f3{--display:flex;}.elementor-1229 .elementor-element.elementor-element-ef7e74b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--overflow:hidden;}.elementor-1229 .elementor-element.elementor-element-ef7e74b:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-ef7e74b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c24263e );}.elementor-1229 .elementor-element.elementor-element-44c5051{width:100%;max-width:100%;}.elementor-1229 .elementor-element.elementor-element-44c5051 > .elementor-widget-container{margin:0% 0% 0% 0%;padding:0px 0px 0px 0px;}.elementor-1229 .elementor-element.elementor-element-44c5051.elementor-element{--order:-99999 /* order start hack */;}.elementor-1229 .elementor-element.elementor-element-1a1313c{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1229 .elementor-element.elementor-element-1a1313c:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-1a1313c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c24263e );}.elementor-1229 .elementor-element.elementor-element-9f6e332{--display:flex;}.elementor-1229 .elementor-element.elementor-element-3357fb6{--spacer-size:50px;}.elementor-1229 .elementor-element.elementor-element-a6d26c6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1229 .elementor-element.elementor-element-a6d26c6:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-a6d26c6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c24263e );}.elementor-1229 .elementor-element.elementor-element-13cbe44{--spacer-size:100px;}.elementor-1229 .elementor-element.elementor-element-665f403{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-1229 .elementor-element.elementor-element-3d9c068{--content-width:80%;}.elementor-1229 .elementor-element.elementor-element-4cf9e06{--width:50%;}.elementor-1229 .elementor-element.elementor-element-07ee742{--content-width:80%;}.elementor-1229 .elementor-element.elementor-element-ef7e74b{--content-width:85%;}}@media(min-width:1025px){.elementor-1229 .elementor-element.elementor-element-3d9c068:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}}@media(max-width:1024px){.elementor-1229 .elementor-element.elementor-element-3d9c068:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;}}@media(max-width:767px){.elementor-1229 .elementor-element.elementor-element-3d9c068{--content-width:85%;--min-height:15vh;--overlay-opacity:0;}.elementor-1229 .elementor-element.elementor-element-3d9c068:not(.elementor-motion-effects-element-type-background), .elementor-1229 .elementor-element.elementor-element-3d9c068 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-1229 .elementor-element.elementor-element-4cf9e06{--min-height:15vh;}.elementor-1229 .elementor-element.elementor-element-21bb44d .elementor-heading-title{font-size:20px;letter-spacing:9px;}.elementor-1229 .elementor-element.elementor-element-fa2b152{--spacer-size:15px;}.elementor-1229 .elementor-element.elementor-element-07ee742{--content-width:85%;}.elementor-1229 .elementor-element.elementor-element-b670080 .elementor-heading-title{font-size:30px;line-height:35px;letter-spacing:0px;word-spacing:0em;}.elementor-1229 .elementor-element.elementor-element-a8a7805{font-size:17px;}.elementor-1229 .elementor-element.elementor-element-292d251{font-size:17px;}.elementor-1229 .elementor-element.elementor-element-c620a73{font-size:17px;}.elementor-1229 .elementor-element.elementor-element-ef7e74b{--content-width:85%;}.elementor-1229 .elementor-element.elementor-element-44c5051 > .elementor-widget-container{margin:0% 0% 0% 0%;}}
/* --- assets/css/chrome.css --- */
.elementor .elementor-element.elementor-element-1c7afb1{--display:flex;--min-height:10vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor .elementor-element.elementor-element-1c7afb1:not(.elementor-motion-effects-element-type-background), .elementor .elementor-element.elementor-element-1c7afb1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-cd2d769 );}.elementor .elementor-element.elementor-element-cf2b5e1{--display:flex;--min-height:0px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor .elementor-element.elementor-element-cf2b5e1.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-ca6bac7 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor .elementor-element.elementor-element-ca6bac7 img{width:20%;max-width:100%;height:100%;object-fit:contain;object-position:center center;opacity:1;}.elementor .elementor-element.elementor-element-c82e2fe{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor .elementor-element.elementor-element-c82e2fe.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-5d6e10b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-end;}.elementor .elementor-element.elementor-element-5d6e10b.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item{padding-left:15px;padding-right:15px;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-sub-menu-item{padding-left:calc( 15px + 20px );padding-right:15px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 40px );padding-right:15px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 60px );padding-right:15px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 80px );padding-right:15px;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-sub-menu-item{padding-top:11px;padding-bottom:11px;}.elementor .elementor-element.elementor-element-72af8bc ul.sub-menu{width:220px;}.elementor .elementor-element.elementor-element-72af8bc .sub-menu a.hfe-sub-menu-item,
						 .elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-menu-item,
						 .elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-sub-menu-item,
						 .elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li a.hfe-menu-item,
						 .elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li a.hfe-sub-menu-item{padding-top:15px;padding-bottom:15px;}.elementor .elementor-element.elementor-element-72af8bc{width:var( --container-widget-width, 80.71% );max-width:80.71%;--container-widget-width:80.71%;--container-widget-flex-grow:0;}.elementor .elementor-element.elementor-element-72af8bc.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{margin:0 auto;}.elementor .elementor-element.elementor-element-72af8bc a.hfe-menu-item, .elementor .elementor-element.elementor-element-72af8bc a.hfe-sub-menu-item{font-family:"DM Sans", Sans-serif;font-weight:600;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-72af8bc .sub-menu a.hfe-sub-menu-item{color:var( --e-global-color-8cd1398 );}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item:hover,
								.elementor .elementor-element.elementor-element-72af8bc .sub-menu a.hfe-sub-menu-item:hover,
								.elementor .elementor-element.elementor-element-72af8bc .menu-item.current-menu-item a.hfe-menu-item,
								.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item.highlighted,
								.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item:focus{color:var( --e-global-color-text );}.elementor .elementor-element.elementor-element-72af8bc .sub-menu,
								.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown,
								.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible,
								.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown .menu-item a.hfe-menu-item,
								.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown .menu-item a.hfe-sub-menu-item{background-color:#fff;}.elementor .elementor-element.elementor-element-72af8bc .sub-menu li a.hfe-sub-menu-item,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-sub-menu-item,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-menu-item,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li a.hfe-menu-item,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li a.hfe-sub-menu-item{font-family:"DM Sans", Sans-serif;font-weight:500;}.elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-horizontal .sub-menu,
							.elementor .elementor-element.elementor-element-72af8bc nav:not(.hfe-nav-menu__layout-horizontal) .sub-menu.sub-menu-open,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown .hfe-nav-menu,
						 	.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible .hfe-nav-menu{border-style:solid;}.elementor .elementor-element.elementor-element-72af8bc .sub-menu li.menu-item:not(:last-child),
						.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li.menu-item:not(:last-child),
						.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li.menu-item:not(:last-child){border-bottom-style:solid;border-bottom-color:#c4c4c4;border-bottom-width:1px;}.elementor .elementor-element.elementor-element-ed10813{--display:flex;--min-height:7vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0%;--margin-bottom:-10%;--margin-left:0%;--margin-right:0%;}.elementor .elementor-element.elementor-element-ed10813:not(.elementor-motion-effects-element-type-background), .elementor .elementor-element.elementor-element-ed10813 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-356bd45 );}.elementor .elementor-element.elementor-element-01fee65{--display:flex;--min-height:0px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor .elementor-element.elementor-element-01fee65.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-5d1ef96 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor .elementor-element.elementor-element-5d1ef96 img{width:25%;max-width:100%;height:100%;object-fit:contain;object-position:center center;opacity:0.63;}.elementor .elementor-element.elementor-element-5827b80{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor .elementor-element.elementor-element-5827b80.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-fe636df{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor .elementor-element.elementor-element-fe636df.e-con{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item{padding-left:15px;padding-right:15px;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-sub-menu-item{padding-left:calc( 15px + 20px );padding-right:15px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 40px );padding-right:15px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 60px );padding-right:15px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul ul ul a.hfe-sub-menu-item{padding-left:calc( 15px + 80px );padding-right:15px;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-sub-menu-item{padding-top:11px;padding-bottom:11px;}.elementor .elementor-element.elementor-element-f56b34a .sub-menu a.hfe-sub-menu-item,
						 .elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown li a.hfe-menu-item,
						 .elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown li a.hfe-sub-menu-item,
						 .elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown-expandible li a.hfe-menu-item,
						 .elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown-expandible li a.hfe-sub-menu-item{padding-top:15px;padding-bottom:15px;}.elementor .elementor-element.elementor-element-f56b34a{width:var( --container-widget-width, 80.71% );max-width:80.71%;--container-widget-width:80.71%;--container-widget-flex-grow:0;}.elementor .elementor-element.elementor-element-f56b34a.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor .elementor-element.elementor-element-f56b34a a.hfe-menu-item, .elementor .elementor-element.elementor-element-f56b34a a.hfe-sub-menu-item{font-family:"DM Sans", Sans-serif;font-weight:600;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-f56b34a .sub-menu a.hfe-sub-menu-item{color:var( --e-global-color-cd2d769 );}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item:hover,
								.elementor .elementor-element.elementor-element-f56b34a .sub-menu a.hfe-sub-menu-item:hover,
								.elementor .elementor-element.elementor-element-f56b34a .menu-item.current-menu-item a.hfe-menu-item,
								.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item.highlighted,
								.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item:focus{color:var( --e-global-color-c24263e );}.elementor .elementor-element.elementor-element-f56b34a .sub-menu,
								.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown,
								.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown-expandible,
								.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown .menu-item a.hfe-menu-item,
								.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown .menu-item a.hfe-sub-menu-item{background-color:#fff;}.elementor .elementor-element.elementor-element-f56b34a .sub-menu li.menu-item:not(:last-child),
						.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown li.menu-item:not(:last-child),
						.elementor .elementor-element.elementor-element-f56b34a nav.hfe-dropdown-expandible li.menu-item:not(:last-child){border-bottom-style:solid;border-bottom-color:#c4c4c4;border-bottom-width:1px;}@media(min-width:768px){.elementor .elementor-element.elementor-element-1c7afb1{--width:100%;}.elementor .elementor-element.elementor-element-cf2b5e1{--width:20%;}.elementor .elementor-element.elementor-element-c82e2fe{--width:40%;}.elementor .elementor-element.elementor-element-5d6e10b{--width:40%;}.elementor .elementor-element.elementor-element-ed10813{--content-width:100%;}.elementor .elementor-element.elementor-element-01fee65{--width:20%;}.elementor .elementor-element.elementor-element-5827b80{--width:50%;}.elementor .elementor-element.elementor-element-fe636df{--width:30%;}}@media(max-width:1024px){body:not(.rtl) .elementor .elementor-element.elementor-element-72af8bc.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-vertical .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}body:not(.rtl) .elementor .elementor-element.elementor-element-f56b34a.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body .elementor .elementor-element.elementor-element-f56b34a nav.hfe-nav-menu__layout-vertical .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}}@media(max-width:767px){.elementor .elementor-element.elementor-element-cf2b5e1{--width:25%;}.elementor .elementor-element.elementor-element-ca6bac7 img{width:100%;}.elementor .elementor-element.elementor-element-c82e2fe{--width:0px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;}.elementor .elementor-element.elementor-element-5d6e10b{--width:70%;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item{padding-left:0px;padding-right:0px;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-sub-menu-item{padding-left:calc( 0px + 20px );padding-right:0px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 40px );padding-right:0px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 60px );padding-right:0px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-vertical .menu-item ul ul ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 80px );padding-right:0px;}.elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-72af8bc .menu-item a.hfe-sub-menu-item{padding-top:10px;padding-bottom:10px;}body:not(.rtl) .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body.rtl .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-left:0px;}.elementor .elementor-element.elementor-element-72af8bc nav:not(.hfe-nav-menu__layout-horizontal) .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}body:not(.rtl) .elementor .elementor-element.elementor-element-72af8bc.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-vertical .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}.elementor .elementor-element.elementor-element-72af8bc ul.sub-menu{width:0px;}.elementor .elementor-element.elementor-element-72af8bc .sub-menu li a.hfe-sub-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible li a.hfe-menu-item{padding-left:20px;padding-right:20px;}.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible a.hfe-sub-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown li a.hfe-sub-menu-item{padding-left:calc( 20px + 20px );padding-right:20px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown .menu-item ul ul a.hfe-sub-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown-expandible .menu-item ul ul a.hfe-sub-menu-item{padding-left:calc( 20px + 40px );padding-right:20px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown .menu-item ul ul ul a.hfe-sub-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown-expandible .menu-item ul ul ul a.hfe-sub-menu-item{padding-left:calc( 20px + 60px );padding-right:20px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown .menu-item ul ul ul ul a.hfe-sub-menu-item,
						.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown-expandible .menu-item ul ul ul ul a.hfe-sub-menu-item{padding-left:calc( 20px + 80px );padding-right:20px;}.elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) ul.sub-menu, .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-expandible.menu-is-active, .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-vertical:not(.hfe-dropdown) ul.sub-menu{margin-top:0px;}.elementor .elementor-element.elementor-element-72af8bc .hfe-dropdown.menu-is-active{margin-top:0px;}.elementor .elementor-element.elementor-element-72af8bc > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0% 0% 0% 0%;}.elementor .elementor-element.elementor-element-72af8bc{--container-widget-width:50%;--container-widget-flex-grow:0;width:var( --container-widget-width, 50% );max-width:50%;}.elementor .elementor-element.elementor-element-72af8bc.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:1;}.elementor .elementor-element.elementor-element-72af8bc a.hfe-menu-item, .elementor .elementor-element.elementor-element-72af8bc a.hfe-sub-menu-item{font-size:15px;}.elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-horizontal .sub-menu,
							.elementor .elementor-element.elementor-element-72af8bc nav:not(.hfe-nav-menu__layout-horizontal) .sub-menu.sub-menu-open,
							.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown .hfe-nav-menu,
						 	.elementor .elementor-element.elementor-element-72af8bc nav.hfe-dropdown-expandible .hfe-nav-menu{border-width:1px 1px 1px 1px;}.elementor .elementor-element.elementor-element-01fee65{--width:25%;}.elementor .elementor-element.elementor-element-5d1ef96 img{width:100%;}.elementor .elementor-element.elementor-element-5827b80{--width:20%;}.elementor .elementor-element.elementor-element-fe636df{--width:55%;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-end;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item{padding-left:0px;padding-right:0px;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-sub-menu-item{padding-left:calc( 0px + 20px );padding-right:0px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 40px );padding-right:0px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 60px );padding-right:0px;}.elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-vertical .menu-item ul ul ul ul a.hfe-sub-menu-item{padding-left:calc( 0px + 80px );padding-right:0px;}.elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-menu-item, .elementor .elementor-element.elementor-element-f56b34a .menu-item a.hfe-sub-menu-item{padding-top:5px;padding-bottom:5px;}body:not(.rtl) .elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body.rtl .elementor .elementor-element.elementor-element-f56b34a .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-left:0px;}.elementor .elementor-element.elementor-element-f56b34a nav:not(.hfe-nav-menu__layout-horizontal) .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}body:not(.rtl) .elementor .elementor-element.elementor-element-f56b34a.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child){margin-right:0px;}body .elementor .elementor-element.elementor-element-f56b34a nav.hfe-nav-menu__layout-vertical .hfe-nav-menu > li.menu-item:not(:last-child){margin-bottom:0px;}.elementor .elementor-element.elementor-element-f56b34a{--container-widget-width:50%;--container-widget-flex-grow:0;width:var( --container-widget-width, 50% );max-width:50%;}.elementor .elementor-element.elementor-element-f56b34a.elementor-element{--align-self:flex-end;--order:-99999 /* order start hack */;}.elementor .elementor-element.elementor-element-f56b34a a.hfe-menu-item, .elementor .elementor-element.elementor-element-f56b34a a.hfe-sub-menu-item{font-size:12px;}}
/* ------------------------------------------------------------------ header: language selector
   Added by the header work, August 2026. No production counterpart.
   Lives in the header's right-hand container (5d6e10b) next to the menu widget.
   That container is column-flex on desktop in production's own CSS, which would
   stack the selector under the menu and make the bar 38px taller, so it is turned
   into a row here. Measured budget at 1440: the container is 576px, the menu widget
   is 465px of it and the five labels fill 403px; the selector is sized so that
   widget + gap + selector stays inside 576 and the menu never wraps to a second row.
   Every button selector is doubled: the Elementor kit paints every <button> purple
   at (0,1,1) and a single class loses to it. */
.elementor .elementor-element.elementor-element-5d6e10b{
  --flex-direction:row;
  --justify-content:flex-end;
  --align-items:center;
  --gap:0px 14px;
  --row-gap:0px;
  --column-gap:14px;
}
/* Production splits the header 20% logo / 40% empty / 40% nav, and caps the menu
   widget at 80.71% of its column. Measured consequence: the column is 440px at
   1100px and the widget 355px, but the five labels need 403px -- so the menu was
   ALREADY wrapping onto two rows below about 1180px, before any language selector
   existed. The middle column is empty at every width. Taking 10% off it and giving
   it to the nav column, and sizing the widget to its content instead of to a
   percentage, buys the room for the selector and removes the pre-existing wrap.
   Measured after: one row from 1025px to 1440px. */
@media (min-width:768px){
  .elementor .elementor-element.elementor-element-c82e2fe{--width:30%;}
  .elementor .elementor-element.elementor-element-5d6e10b{--width:50%;}
}
@media (min-width:1025px){
  /* Desktop only. Below 1025px production sizes this widget to 50% of its column
     on purpose and the widget holds nothing but the burger; overriding it there
     dragged the open panel 8px past the right edge of a 390px viewport. Measured. */
  .elementor .elementor-element.elementor-element-72af8bc{
    width:auto;
    max-width:none;
    --container-widget-width:auto;
  }
}

/* -------------------------------------------------- header: the open phone menu
   Production's own CSS reveals this <nav> by flipping visibility and height and
   gives it no surface at all: measured computed background rgba(0,0,0,0), no
   border, no shadow, no padding, z-index auto. The panel is 175px tall under a
   104px header, so four of the five links land on the hero photograph with
   nothing behind them. The current item is #7A7A7A, which is 4.29:1 even against
   white and fails WCAG AA before the photo is considered.
   Scoped to the header widget (72af8bc). The footer's menu has the same defect and
   is deliberately left alone: another change is in flight there. */
@media only screen and (max-width:1024px){
  .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle.hfe-active-menu + nav.hfe-nav-menu__layout-horizontal{
    position:absolute;
    top:100%;
    right:0;
    left:auto;
    margin-top:10px;
    margin-right:12px;
    /* Not max-content: the li are width:100% of the ul, so max-content resolved to
       366px and pushed the panel 7px off the left edge of a 390px viewport. */
    width:280px;
    max-width:calc(100vw - 24px);
    padding:6px;
    background:#fff;
    border:1px solid #e6e6e6;
    border-radius:14px;
    box-shadow:0 14px 34px rgba(21,47,78,.18);
    /* Above the hero, the sticky header's own children and the language panel. */
    z-index:130;
  }
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav .hfe-nav-menu > li.menu-item{
    width:100%;
  }
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item > a.hfe-menu-item{
    display:block;
    padding:11px 14px;
    border-radius:9px;
    color:var(--e-global-color-8cd1398,#000);
    font-size:16px;
    text-align:left;
  }
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item > a.hfe-menu-item:hover,
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item > a.hfe-menu-item:focus-visible{
    background:rgba(145,8,220,.07);
    color:var(--e-global-color-primary,#9108DC);
  }
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item > a.hfe-menu-item:focus-visible{
    outline:2px solid var(--e-global-color-primary,#9108DC);
    outline-offset:-2px;
  }
  /* The page you are on. Production paints it #7A7A7A (4.29:1, below AA); the brand
     purple on white is 8.06:1 and also says "current" more clearly than grey does. */
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item.current-menu-item > a.hfe-menu-item{
    color:var(--e-global-color-primary,#9108DC);
    font-weight:700;
  }
  /* The separators production draws between items are for a full-width bar; inside
     a card they read as clutter. */
  .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item:not(:last-child){
    border-bottom:0;
  }
}
.ql-lang{
  position:relative;
  flex:0 0 auto;
  /* The header container has no padding of its own, so without this the pill's
     border sits flush on the viewport edge. The menu widget never showed it
     because its 80.71% cap left 62px of empty widget to the right of the labels. */
  margin-right:16px;
  font-family:"DM Sans",Sans-serif;
  line-height:1;
}
.ql-lang[hidden]{display:none;}
.ql-lang__button.ql-lang__button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:36px;
  padding:0 10px 0 9px;
  margin:0;
  border:1px solid #dcdcdc;
  border-radius:100px;
  background:transparent;
  background-color:transparent;
  color:var(--e-global-color-8cd1398,#000);
  font-family:"DM Sans",Sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease;
}
.ql-lang__button.ql-lang__button:hover,
.ql-lang__button.ql-lang__button:focus-visible{
  border-color:var(--e-global-color-primary,#9108DC);
  background-color:rgba(145,8,220,.06);
}
.ql-lang__button.ql-lang__button:focus-visible{
  outline:2px solid var(--e-global-color-primary,#9108DC);
  outline-offset:2px;
}
.ql-lang__globe{flex:0 0 auto;display:block;}
.ql-lang__code{display:block;}
.ql-lang__caret{flex:0 0 auto;display:block;transition:transform .15s ease;}
.ql-lang__button[aria-expanded="true"] .ql-lang__caret{transform:rotate(180deg);}

.ql-lang__menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:120;
  margin:0;
  padding:6px;
  min-width:184px;
  list-style:none;
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:14px;
  box-shadow:0 12px 32px rgba(21,47,78,.16);
}
.ql-lang__menu[hidden]{display:none;}
.ql-lang__menu li{margin:0;list-style:none;}
.ql-lang__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-radius:9px;
  color:var(--e-global-color-8cd1398,#000);
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  white-space:nowrap;
}
.ql-lang__item:hover,.ql-lang__item:focus-visible{
  background:rgba(145,8,220,.07);
  color:var(--e-global-color-primary,#9108DC);
}
.ql-lang__abbr{
  flex:0 0 auto;
  min-width:26px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--e-global-color-text,#7A7A7A);
}
.ql-lang__item[aria-current="true"]{
  color:var(--e-global-color-primary,#9108DC);
  font-weight:700;
}
.ql-lang__item[aria-current="true"] .ql-lang__abbr{color:inherit;}
/* A language whose copy of THIS page does not exist yet. The link is still valid --
   it goes to that language's home page -- and says so rather than 404ing. */
.ql-lang__item[data-ql-fallback]{color:var(--e-global-color-text,#7A7A7A);}
.ql-lang__item[data-ql-fallback]::after{
  content:"\2197";
  margin-left:auto;
  padding-left:10px;
  font-size:12px;
  opacity:.65;
}

@media only screen and (max-width:1024px){
  /* Left of the burger: the thumb owns the right edge of a phone header. */
  .ql-lang{order:-1;margin-right:0;}
  .ql-lang__button.ql-lang__button{height:40px;padding:0 10px;}
  /* Production centres the burger inside its widget (margin:0 auto, with no
     breakpoint of its own), and below 1025px that widget is 50% of a column that
     holds nothing but the burger -- so the glyph floated mid-column with roughly
     a quarter-column of dead space to its right, and the pair read as off-centre
     rather than right-aligned. Pushed to the right edge of the widget instead,
     with the same 16px gutter the pill carries on desktop, because the header
     container still has no padding of its own. The WIDTH of the widget is
     deliberately left alone: overriding it here is what dragged the open panel
     8px past the right edge of a 390px viewport, measured, and the panel anchors
     off this widget. */
  .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{
    margin-left:auto;
    margin-right:16px;
  }
}
@media only screen and (max-width:767px){
  .ql-lang__button.ql-lang__button{gap:5px;padding:0 9px;font-size:13px;}
  .ql-lang__menu{min-width:172px;}
}

/* ================================================================ HEADER v2 (proposal)
   Behind a flag: nothing below applies unless site.js has put data-hdr on <html>,
   which it only does for ?hdr=v2 or ?hdr=v2-noimg. The default header is untouched.

     http://localhost:8899/site/?hdr=v2         the proposal
     http://localhost:8899/site/?hdr=v2-noimg   the same, with the logo image removed
     http://localhost:8899/site/                today

   What it changes and why, all measured (see the report for the sites):
   - Phone bar 104px -> 60px. Measured comparators at 390px: Parc Asterix 56,
     Civitatis 58, Europa-Park 50, PortAventura 60. 104px is a fifth of an iPhone 12
     viewport spent on chrome before the visitor has seen anything.
   - The header's height is currently --min-height:10vh, so it grows with the WINDOW,
     not with its contents: 90px in a 900px-tall window, 108px in a 1080px one. v2
     pins it.
   - The logo box is 25% x 100% of the phone header (97.5 x 104 measured) for a
     372x397 near-square lockup. v2 sizes it by height with width:auto, so the mark
     sets its own footprint instead of filling whatever box it is given.
   - "Tu viaje" becomes a filled pill rather than the second of five equal text links.
     PortAventura does this with "Promociones", Parc Asterix with "Reserver": on a
     site that sells one thing, the primary action should not be typographically
     identical to "FAQ". Targeted by href, not by position, so it survives reordering.
   - The empty middle column is dropped and the nav is allowed to breathe. */

html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-1c7afb1{
  --min-height:72px;
  min-height:72px;
  box-shadow:0 1px 0 rgba(21,47,78,.08);
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-ca6bac7 img{
  width:auto;
  height:36px;
  max-height:36px;
  object-fit:contain;
  object-position:left center;
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-cf2b5e1{
  --width:auto;
  --justify-content:center;
  padding-left:24px;
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-c82e2fe{--width:0px;}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-5d6e10b{
  --width:auto;
  --flex-grow:1;
  flex-grow:1;
  padding-right:24px;
}
/* The primary action, found by destination rather than by position. */
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc li.menu-item > a.hfe-menu-item[href$="/tu-viaje/"]{
  background:var(--e-global-color-primary,#9108DC);
  color:#fff;
  border-radius:100px;
  padding:9px 18px;
  margin:0 4px;
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc li.menu-item > a.hfe-menu-item[href$="/tu-viaje/"]:hover{
  background:#7a06bb;
  color:#fff;
}
/* The "removed" arm of the comparison: no image, a text wordmark in its place, so
   the home link and the brand anchor both survive. */
html[data-hdr="v2-noimg"] .elementor .elementor-element.elementor-element-ca6bac7 img{display:none;}
html[data-hdr="v2-noimg"] .elementor .elementor-element.elementor-element-ca6bac7 a::after{
  content:"QLESS PARK";
  display:inline-block;
  font-family:"DM Sans",Sans-serif;
  font-weight:700;
  font-size:19px;
  letter-spacing:.06em;
  color:var(--e-global-color-primary,#9108DC);
  white-space:nowrap;
}

@media only screen and (max-width:1024px){
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-1c7afb1{
    --min-height:60px;
    min-height:60px;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-cf2b5e1{
    --width:auto;
    padding-left:16px;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-ca6bac7 img{
    width:auto;
    height:30px;
    max-height:30px;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-5d6e10b{
    --width:auto;
    padding-right:14px;
    --column-gap:10px;
    --gap:0px 10px;
  }
  /* Code only on a phone: the globe and the caret are 30px of the 78px pill and
     say nothing a two-letter code does not. */
  html[data-hdr^="v2"] .ql-lang__globe,
  html[data-hdr^="v2"] .ql-lang__caret{display:none;}
  html[data-hdr^="v2"] .ql-lang__button.ql-lang__button{padding:0 11px;height:38px;}
  /* The action stays in the bar; the other four links go behind the burger. */
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc{
    order:2;
  }
  html[data-hdr^="v2"] .ql-lang{order:1;}
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{
    margin:0;
    margin-left:auto;
  }
}

/* The lifted primary action (v2 only; site.js creates it, nothing ships it). */
html[data-hdr^="v2"] .ql-cta{
  display:none;
  flex:0 0 auto;
  align-items:center;
  height:38px;
  padding:0 16px;
  border-radius:100px;
  background:var(--e-global-color-primary,#9108DC);
  color:#fff;
  font-family:"DM Sans",Sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
}
html[data-hdr^="v2"] .ql-cta:hover,html[data-hdr^="v2"] .ql-cta:focus-visible{background:#7a06bb;color:#fff;}
@media only screen and (max-width:1024px){
  html[data-hdr^="v2"] .ql-cta{display:inline-flex;order:1;}
  html[data-hdr^="v2"] .ql-lang{order:0;}
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc{order:3;}
  /* The bar already carries it, so it does not need repeating inside the panel. */
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc .hfe-active-menu + nav li.menu-item > a.hfe-menu-item[href$="/tu-viaje/"]{display:none;}
  html[data-hdr="v2-noimg"] .elementor .elementor-element.elementor-element-ca6bac7 a::after{
    font-size:16px;letter-spacing:.04em;
  }
}
@media only screen and (max-width:400px){
  /* At 390 the four things in the bar are 16+124+8+40+8+96+8+40+14 = 354 of 390.
     The label is what gives, not the touch target. */
  html[data-hdr^="v2"] .ql-cta{padding:0 13px;font-size:13px;}
}

/* v2 phone bar: keep everything on one 60px row and inside the viewport.
   Production sizes the menu widget at 50% of its column below 767px; with the
   column now auto-width that pushed the burger past the right edge (measured
   x=363 of 390 with margin-left:auto inside an over-wide widget). */
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-1c7afb1{
  --align-items:center;
  --flex-wrap-mobile:nowrap;
  flex-wrap:nowrap;
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-cf2b5e1,
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-5d6e10b{
  --align-items:center;
  align-self:center;
}
html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-cf2b5e1{
  --justify-content:center;
  --align-items:flex-start;
}
@media only screen and (max-width:1024px){
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc{
    width:auto;
    max-width:none;
    --container-widget-width:auto;
    --align-self:center;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{
    margin:0;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-5d6e10b{
    --justify-content:flex-end;
    justify-content:flex-end;
  }
}

/* The closed nav still measured 271px of max-content and was sizing the widget,
   so justify-content:flex-end pushed an over-wide box right while the burger glyph
   drew at its left edge — the whole bar looked bunched into the left half of a
   390px screen. Take the panel out of flow so the widget is exactly the burger. */
@media only screen and (max-width:1024px){
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc div.hfe-nav-menu.hfe-layout-horizontal{
    position:relative;
    width:auto;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-horizontal{
    position:absolute;
    top:100%;
    right:0;
    left:auto;
  }
  html[data-hdr^="v2"] .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{
    width:40px;
    margin:0;
  }
}

/* Third arm of the logo question: the Q mark on its own plus a text wordmark.
   The header asset today is cropped-logo_small_svg.png, 372x397 -- a near-square
   stack of the Q over "QLESS PARK" -- and at a 36px bar height the word under the
   Q is 8px and unreadable. cropped-logo_Q_svg-192x192.png already exists (it is
   the favicon), reads at any size, and the wordmark next to it is live text.
   ?hdr=v2-qmark */
html[data-hdr="v2-qmark"] .elementor .elementor-element.elementor-element-ca6bac7 img{
  content:url("../img/cropped-logo_Q_svg-192x192.png");
  width:auto;
  height:34px;
  max-height:34px;
}
html[data-hdr="v2-qmark"] .elementor .elementor-element.elementor-element-ca6bac7 a{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
html[data-hdr="v2-qmark"] .elementor .elementor-element.elementor-element-ca6bac7 a::after{
  content:"QLESS PARK";
  font-family:"DM Sans",Sans-serif;
  font-weight:700;
  font-size:18px;
  letter-spacing:.05em;
  color:var(--e-global-color-primary,#9108DC);
  white-space:nowrap;
}
@media only screen and (max-width:1024px){
  html[data-hdr="v2-qmark"] .elementor .elementor-element.elementor-element-ca6bac7 img{height:28px;max-height:28px;}
  html[data-hdr="v2-qmark"] .elementor .elementor-element.elementor-element-ca6bac7 a::after{font-size:15px;}
}

/* ================================================================== HERO v2 (proposal)
   Behind a flag. Nothing below applies unless site.js has put data-hero on <html>,
   which it only does for one of the three arms. The shipped hero is untouched.

     http://localhost:8899/site/?hero=v2         compact, photograph kept
     http://localhost:8899/site/?hero=v2-proof   compact, the ITINERARY in place of the photo
     http://localhost:8899/site/?hero=v2-noimg   compact, NO image at all
     http://localhost:8899/site/?hero=off        today

   Combine with the nav proposal: ?hdr=v2-qmark&hero=v2-proof. The two are independent
   on purpose, so each can be judged on its own.

   ------------------------------------------------------------------ why, measured
   Today the homepage hero is `> .elementor-container{min-height:100vh}` on EVERY
   device. On a 390x844 phone that is 844px, the CTA sits at y=694, and the first
   thing that is not the hero is at y=998 - 154px past the fold. Of eleven phone
   heroes measured on 23/08/2026 (see the report) we were the only one spending a
   whole viewport on a decorative photograph, and our first action was 2-3x further
   down than anyone's: Eurostar 12, Parc Asterix 200, Booking 260, PortAventura 278,
   Civitatis 301, Wanderlog 359, us 694.

   Five of those eleven put an action INSIDE the hero. Two (Airbnb, Booking) have no
   photograph in the phone hero at all - Booking's is a flat navy block with the
   search widget on it. Wanderlog, the only measured site in our actual category,
   shows the PRODUCT: a frame containing a real itinerary, no photograph anywhere.

   That is what the three arms test. They are the same geometry; they differ only in
   what fills the band, so the comparison is about the image and nothing else. */

/* ------------------------------------------------------- the evidence strip
   Markup in templates/_header.html, copy in content/<lang>/_site.json. Shipped
   `hidden`; this is the rule that reveals it, and it is the only one. */
html[data-hero="strip"] .ql-evidence,
html[data-hero^="v2"] .ql-evidence{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:38px;
  padding:0 16px;
  background:#F4ECFB;
  border-bottom:1px solid #E6D8F5;
  color:#152F4E;
  font-family:"DM Sans",Sans-serif;
  font-size:13.5px;
  line-height:1.25;
  text-align:center;
}
html[data-hero="strip"] .ql-evidence__mark,
html[data-hero^="v2"] .ql-evidence__mark{flex:0 0 auto;fill:var(--e-global-color-primary,#9108DC);}
/* The tallest bar is the one that matters -- keep it brand, dim the others so the
   glyph reads as a profile rather than as three equal blocks. */
html[data-hero="strip"] .ql-evidence__mark rect,
html[data-hero^="v2"] .ql-evidence__mark rect{opacity:.45;}
html[data-hero="strip"] .ql-evidence__mark rect:nth-child(2),
html[data-hero^="v2"] .ql-evidence__mark rect:nth-child(2){opacity:1;}
html[data-hero="strip"] .ql-evidence__bar3,
html[data-hero^="v2"] .ql-evidence__bar3{opacity:.7;}
html[data-hero="strip"] .ql-evidence__text,
html[data-hero^="v2"] .ql-evidence__text{font-weight:500;}

/* =============================================== the homepage hero (.elementor-element-f91c446)
   The one number that matters: min-height 100vh -> a fixed band. Fixed, not vh: a
   hero that grows with the window is the same defect the nav had at --min-height:10vh,
   and it is why the same page is 844px of chrome on a phone and 900px on a laptop. */
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-f91c446{
  position:relative;
  overflow:hidden;
}
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
  min-height:420px;
}

/* Type. The title is Raleway 900 at 67px desktop / 40px phone with letter-spacing
   7.9px. On a 390px phone that spacing is what forces "Vive al maximo la magia de
   Disneyland Paris" onto FOUR lines; it is a display effect borrowed from a wide
   layout and it does not survive the narrow one. */
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-09966e8{
  font-size:46px;
  letter-spacing:1.5px;
  line-height:1.06;
  max-width:22ch;
  margin-inline:auto;
}
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-713c580{
  width:var(--container-widget-width,100%);
  max-width:52ch;
  font-size:18px;
  line-height:1.45;
  margin-inline:auto;
  padding-top:10px;
}
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-1a664cc > .elementor-widget-container{
  padding:16px 20px 0;
}
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-1a664cc .elementor-button{
  font-size:17px;
  padding:13px 28px;
  border-radius:999px;
}

/* Arm 1 -- the photograph stays, but it stops being a wash.
   The shipped overlay is #000 at a flat 0.5 everywhere, which greys the photo out
   AND leaves the title on a mid-grey field. A bottom-weighted scrim gives the type
   its contrast where the type actually is and gives the photograph back its sky. */
html[data-hero="v2"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-background-overlay{
  opacity:1;
  background-color:transparent;
  background-image:linear-gradient(180deg,
    rgba(6,12,24,.24) 0%, rgba(6,12,24,.52) 46%, rgba(6,12,24,.80) 100%);
}

/* Arms 2 and 3 share a background, so the ONLY difference between them is whether
   the itinerary is there. That is the A/B Pol asked for: can the image be removed. */
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-f91c446,
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-f91c446{
  background-image:none;
  background-color:#152F4E;
}
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-f91c446{
  background-image:linear-gradient(135deg,#152F4E 0%,#241243 56%,#3A0B63 100%);
}
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-f91c446{
  background-image:linear-gradient(135deg,#152F4E 0%,#103663 100%);
}
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-background-overlay,
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-background-overlay{
  display:none;
}

/* Arm 2 -- the artefact. Injected by site.js from the <template> in _header.html,
   so the two arms that do not use it never fetch the image.
   Desktop: text left, artefact right, the Wanderlog shape.
   The card is deliberately cropped at the bottom: it is a page of something longer,
   and showing it whole would invite reading it rather than recognising it. */
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
  padding-right:min(430px,40%);
}
html[data-hero="v2-proof"] .ql-heroart{
  position:absolute;
  top:26px;
  bottom:0;
  right:max(24px,5vw);
  width:min(340px,32%);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  pointer-events:none;
}
html[data-hero="v2-proof"] .ql-heroart__img{
  width:100%;
  height:auto;
  max-height:100%;
  object-fit:cover;
  object-position:top center;
  border-radius:12px 12px 0 0;
  box-shadow:0 18px 44px rgba(0,0,0,.34);
  background:#fff;
}

/* ---------------------------------------------------------------- phone */
@media only screen and (max-width:1024px){
  html[data-hero="strip"] .ql-evidence,
  html[data-hero^="v2"] .ql-evidence{min-height:34px;font-size:12.5px;gap:8px;}
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
    min-height:340px;
  }
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-09966e8{
    width:var(--container-widget-width,100%);
    max-width:100%;
    font-size:29px;
    letter-spacing:.5px;
    line-height:1.14;
    padding:0 14px;
  }
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-713c580{
    font-size:15px;
    line-height:1.4;
    padding:8px 18px 0;
  }
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-1a664cc > .elementor-widget-container{
    padding:14px 16px 0;
  }
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-1a664cc .elementor-button{
    font-size:16px;
    padding:12px 24px;
  }
  /* The artefact becomes a strip along the bottom edge, showing its own header and
     the first rows. Same idea as the desktop card: recognisable, not readable. */
  html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
    padding-right:0;
    padding-bottom:126px;
  }
  html[data-hero="v2-proof"] .ql-heroart{
    top:auto;
    right:0;
    left:0;
    bottom:0;
    width:auto;
    height:118px;
    padding:0 16px;
    align-items:flex-end;
  }
  html[data-hero="v2-proof"] .ql-heroart__img{
    height:118px;
    max-height:118px;
    border-radius:10px 10px 0 0;
    box-shadow:0 -2px 26px rgba(0,0,0,.30);
  }
}
@media only screen and (max-width:479px){
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-09966e8{font-size:27px;}
}

/* ============================================== the three inner-page hero bands
   /contrata/ + /beta/ (3d9c068), /faq/ (30bd86b), /contact/ (92de522).

   Measured: each is a 127px band on a phone whose only content is one <h1>, and each
   downloads a full-size photograph to fill it -- 868 KB (1920x2560, PORTRAIT), 776 KB
   (1707x2560, PORTRAIT) and 680 KB. Two portrait images 2560px tall, rendered into a
   390x127 landscape sliver, with no srcset because they are CSS backgrounds. The
   mirror took /contrata/ from 296 KB to 20 KB of markup and then hands 868 KB back in
   one image.

   They are also pinned with hard pixel offsets -- background-position:705px -320px on
   /faq/, 0px 506px on /contact/ - which were tuned for one viewport and cannot be
   right on another.

   Arm 1 keeps the photographs and repairs them (cover + centre + a real height).
   Arms 2 and 3 drop them for a flat band, which costs zero bytes. */
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-92de522{
  --min-height:132px;
  --overlay-opacity:.42;
  box-shadow:none;
}
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-4cf9e06,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-b74ab8e,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-324cf07{
  --min-height:0px;
}
html[data-hero="v2"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="v2"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="v2"] .elementor .elementor-element.elementor-element-92de522{
  background-size:cover;
  background-position:center 42%;
}
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-92de522,
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-92de522,
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="v2-proof"] .elementor .elementor-element.elementor-element-92de522,
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="v2-noimg"] .elementor .elementor-element.elementor-element-92de522{
  background-image:linear-gradient(135deg,#152F4E 0%,#103663 100%);
  --overlay-opacity:0;
}
/* The title: Carme 600 at 3vw with letter-spacing 20px (9px on a phone). At 1440 that
   is 43px type tracked 20px, which is wider than the word it is tracking. */
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
html[data-hero^="v2"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title{
  font-size:32px;
  letter-spacing:9px;
  line-height:1.2;
}
@media only screen and (max-width:1024px){
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-3d9c068,
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-30bd86b,
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-92de522{
    --min-height:104px;
  }
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
  html[data-hero^="v2"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title{
    font-size:21px;
    letter-spacing:4px;
  }
}

/* ------------------------------------------------------------- reduced motion
   The hero CTA carries .elementor-animation-grow (a scale on hover) and the header
   carries `transition: all .4s !important`. Both should be off for a visitor who has
   asked for less motion. Scoped to the flag only because turning it on site-wide is a
   change outside this proposal -- it should be made globally, and that is in the report. */
@media (prefers-reduced-motion:reduce){
  html[data-hero^="v2"] .elementor .elementor-animation-grow,
  html[data-hero^="v2"] .elementor .elementor-animation-grow:hover,
  html[data-hero^="v2"] .elementor .elementor-animation-grow:focus{
    transform:none;
    transition:none;
  }
  html[data-hero^="v2"] .she-header-yes,
  html[data-hero^="v2"] .she-header-yes.e-con{transition:none !important;}
  html[data-hero^="v2"] .ql-heroart__img{transition:none;}
}

/* ============================================== HERO: REMOVAL, AND THE FUNCTIONAL HERO
   Session 2. The three arms above are all COMPACT heroes - they shrink the band and
   argue about what fills it. Pol asked a different question as well: can the hero go?
   These are the answers to that, plus the one arm where the hero does work instead of
   decorating.

     http://localhost:8899/site/?hero=none      no hero at all
     http://localhost:8899/site/?hero=strip     no hero, but the one evidence line stays
     http://localhost:8899/site/?hero=v2-form   compact hero carrying the four questions

   `none` is a real option and is built like one: no leftover gap, the <h1> is the
   first thing on the page, and the inner pages keep their own <h1> instead of losing
   it with the band. Two of the eleven phone heroes measured on 23/08/2026 (Airbnb,
   Eurostar) have no hero band above the fold at all, so this is not a straw man.

   ------------------------------------------------------------------------ none, strip
   The homepage band goes entirely. It carries a tagline and one CTA, and NOT the
   <h1> - the page's only <h1> is "Mejoramos tu experiencia en Disneyland Paris" in
   the section below, so removing the hero costs no heading. Verified in
   templates/home.html before writing this rule.

   The grey 50px spacer band under it goes too, or removal just leaves a grey stripe
   where the photograph was. */
html[data-hero="none"] .elementor .elementor-element.elementor-element-f91c446,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-f91c446,
html[data-hero="none"] .elementor .elementor-element.elementor-element-5373165,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-5373165{
  display:none;
}

/* The inner pages are the harder half. Their band DOES carry the <h1>
   (/contrata/ 21bb44d, /faq/ cae2878, /contact/ 8a0c4cf), so it cannot simply be
   hidden - that would ship three pages with no heading. The band is dissolved
   instead: no photograph, no overlay, no minimum height, and the title recoloured
   from white to navy so it survives losing its dark backdrop. What is left is a page
   that begins with its own title, which is what "no hero" should mean. */
html[data-hero="none"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="none"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="none"] .elementor .elementor-element.elementor-element-92de522,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-3d9c068,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-30bd86b,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-92de522{
  background-image:none;
  background-color:transparent;
  --min-height:0px;
  --overlay-opacity:0;
  box-shadow:none;
  padding:26px 0 4px;
}
html[data-hero="none"] .elementor .elementor-element.elementor-element-3d9c068 > .elementor-background-overlay,
html[data-hero="none"] .elementor .elementor-element.elementor-element-30bd86b > .elementor-background-overlay,
html[data-hero="none"] .elementor .elementor-element.elementor-element-92de522 > .elementor-background-overlay,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-3d9c068 > .elementor-background-overlay,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-30bd86b > .elementor-background-overlay,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-92de522 > .elementor-background-overlay{
  display:none;
}
html[data-hero="none"] .elementor .elementor-element.elementor-element-4cf9e06,
html[data-hero="none"] .elementor .elementor-element.elementor-element-b74ab8e,
html[data-hero="none"] .elementor .elementor-element.elementor-element-324cf07,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-4cf9e06,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-b74ab8e,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-324cf07{
  --min-height:0px;
}
/* White type on a white page is the one way this arm could ship broken, so the
   recolour is here and not left to inheritance. #152F4E is the palette navy
   (--e-global-color-65e99da); on #fff that is 12.1:1. */
html[data-hero="none"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
html[data-hero="none"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
html[data-hero="none"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
html[data-hero="strip"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title{
  color:#152F4E;
  font-size:32px;
  letter-spacing:6px;
  line-height:1.2;
}
@media only screen and (max-width:1024px){
  html[data-hero="none"] .elementor .elementor-element.elementor-element-3d9c068,
  html[data-hero="none"] .elementor .elementor-element.elementor-element-30bd86b,
  html[data-hero="none"] .elementor .elementor-element.elementor-element-92de522,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-3d9c068,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-30bd86b,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-92de522{
    padding:20px 0 2px;
  }
  html[data-hero="none"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
  html[data-hero="none"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
  html[data-hero="none"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-21bb44d .elementor-heading-title,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-cae2878 .elementor-heading-title,
  html[data-hero="strip"] .elementor .elementor-element.elementor-element-8a0c4cf .elementor-heading-title{
    font-size:21px;
    letter-spacing:3px;
  }
}

/* ------------------------------------------------------------- the functional hero
   ?hero=v2-form. Markup: templates/_hero-form.html, cloned in by site.js. Copy:
   _site.json hero.form.*. It inherits every html[data-hero^="v2"] rule above - the
   compact band, the type sizes, the evidence strip - and changes only what the form
   needs, so it is the same proposal with work in it rather than a fourth design.

   The argument, measured: five of the eleven phone heroes carry their action inside
   the hero, and the biggest of them (Booking) has nothing else in it. Our purchase is
   four questions since August 2026. A hero that asks them is a hero that earns its
   height; a hero that shows a castle and a button is 844px of phone spent pointing at
   a form one page away. */
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-f91c446{
  background-image:linear-gradient(135deg,#152F4E 0%,#241243 62%,#3A0B63 100%);
  background-color:#152F4E;
}
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-background-overlay{
  display:none;
}
/* The band stops being a fixed height and becomes exactly as tall as the questions
   are. A form in a box of someone else's height is how you get a scrollbar inside a
   hero. */
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
  min-height:0;
  padding:30px 0 34px;
}
/* The subtitle and the CTA both go: the form's own lead says the same thing in fewer
   words, and a button that scrolls to a form is redundant when the form is here. */
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-713c580,
html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-1a664cc{
  display:none;
}

.ql-heroform-wrap{width:100%;}
.ql-heroform{
  background:#fff;
  border-radius:16px;
  padding:16px 16px 14px;
  box-shadow:0 18px 44px rgba(0,0,0,.30);
  text-align:left;
  font-family:"DM Sans",Sans-serif;
  color:#152F4E;
}
.ql-heroform__lead{margin:0 0 12px;font-size:13.5px;line-height:1.35;color:#3C4A5C;}
.ql-heroform__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;}
.ql-heroform__field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;}
.ql-heroform__label{line-height:1.2;}
.ql-heroform__field input,
.ql-heroform__field select{
  /* 16px and not a pixel less: iOS Safari zooms the whole page when a field smaller
     than that takes focus, and a zoomed page in a hero is how a purchase is lost. */
  font:inherit;
  font-size:16px;
  font-weight:400;
  height:44px;
  width:100%;
  box-sizing:border-box;
  padding:0 10px;
  border:1px solid #C9D2DE;
  border-radius:9px;
  background:#fff;
  color:#152F4E;
}
.ql-heroform__field input:focus-visible,
.ql-heroform__field select:focus-visible,
.ql-heroform__cta:focus-visible{outline:2px solid #9108DC;outline-offset:2px;}
.ql-heroform__buy{display:flex;align-items:center;gap:12px;margin-top:14px;}
.ql-heroform__cta{
  font:inherit;
  font-size:16px;
  font-weight:700;
  background:var(--e-global-color-primary,#9108DC);
  color:#fff;
  border:0;
  border-radius:999px;
  padding:13px 26px;
  cursor:pointer;
}
.ql-heroform__price{margin:0;font-size:13px;line-height:1.3;color:#3C4A5C;}
.ql-heroform__note{margin:10px 0 0;font-size:12px;line-height:1.35;color:#5A6675;}
/* Submitting cannot work in a static mirror, so it has to fail visibly. site.js adds
   this class and role="status" instead of a message of its own. */
.ql-heroform__note.is-flagged{color:#9108DC;font-weight:600;}

@media only screen and (min-width:1025px){
  /* Text left, questions right - the shape Booking and Wanderlog both use. */
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-d1257f5 > .elementor-widget-wrap{
    flex-direction:row;
    align-items:center;
    gap:44px;
    max-width:1180px;
    margin-inline:auto;
    padding-inline:24px;
  }
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-e74d185{
    flex:1 1 auto;
    min-width:0;
  }
  html[data-hero="v2-form"] .ql-heroform-wrap{flex:0 0 424px;}
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-09966e8{
    font-size:42px;
    max-width:15ch;
    margin-inline:0;
  }
  /* The title's centring is an inline style on the <p> inside WordPress content, so
     it cannot be overridden without this. The alternative is editing home.json, which
     would change the shipped page for every arm. */
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-09966e8 p{
    text-align:left !important;
  }
  .ql-heroform{padding:20px 20px 18px;}
}
@media only screen and (max-width:1024px){
  /* Name and email want the full width; the date and the day count are short enough
     to share a row, which saves one field's height on the phone. */
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-09966e8{
    font-size:24px;
    padding:0 16px 14px;
  }
  html[data-hero="v2-form"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
    padding:22px 14px 26px;
  }
  .ql-heroform__field:nth-child(1),
  .ql-heroform__field:nth-child(2){grid-column:1 / -1;}
  .ql-heroform__buy{flex-direction:column;align-items:stretch;gap:8px;margin-top:12px;}
  .ql-heroform__cta{width:100%;}
  .ql-heroform__price{text-align:center;}
  .ql-heroform__note{text-align:center;}
}
@media (prefers-reduced-motion:reduce){
  .ql-heroform__cta{transition:none;}
}

/* --------------------------------------------------------------- the evidence hero
   ?hero=v2-data. Same compact band as the arms above; what fills it is the product's
   one real differentiator - the queue data - instead of a photograph of a castle that
   any of the eleven comparators could have used.

   Markup templates/_hero-data.html, chart generated from themeparks'
   data/static/averages_minutes.csv, copy in _site.json hero.data.*.

   Unlike ?hero=v2-form this arm KEEPS the subtitle and the CTA: it is an argument, not
   a transaction, so it has to end in a button. Layout is a grid rather than a flex row
   because the CTA is a sibling of the title block in Elementor's markup, and a row
   would put it beside the title instead of under it. */
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-f91c446{
  background-image:linear-gradient(135deg,#152F4E 0%,#241243 62%,#3A0B63 100%);
  background-color:#152F4E;
}
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-background-overlay{
  display:none;
}
html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
  min-height:0;
  padding:26px 0 30px;
}
.ql-curve{
  margin:0;
  width:100%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.17);
  border-radius:14px;
  padding:12px 12px 11px;
  box-sizing:border-box;
}
.ql-curve__svg{width:100%;height:auto;display:block;}
.ql-curve__area{stroke:none;}
.ql-curve__line{fill:none;stroke:#C77DFF;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;}
.ql-curve__axis{stroke:rgba(255,255,255,.26);stroke-width:1;}
.ql-curve__dot{fill:#fff;stroke:#C77DFF;stroke-width:2.4;}
.ql-curve__val{fill:#fff;font-family:"DM Sans",Sans-serif;font-size:11px;font-weight:700;}
.ql-curve__tick{fill:rgba(255,255,255,.62);font-family:"DM Sans",Sans-serif;font-size:9.5px;}
.ql-curve__cap{
  margin:9px 2px 0;
  color:rgba(255,255,255,.93);
  font-family:"DM Sans",Sans-serif;
  font-size:12.5px;
  line-height:1.35;
  text-align:left;
}
.ql-curve__src{display:block;margin-top:3px;color:rgba(255,255,255,.62);font-size:11px;}

@media only screen and (min-width:1025px){
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-d1257f5 > .elementor-widget-wrap{
    display:grid;
    grid-template-columns:1fr 396px;
    grid-template-areas:"t c" "b c";
    align-items:center;
    gap:0 44px;
    max-width:1180px;
    margin-inline:auto;
    padding-inline:24px;
  }
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-e74d185{grid-area:t;}
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-1a664cc{grid-area:b;}
  html[data-hero="v2-data"] .ql-curve{grid-area:c;}
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-09966e8{
    font-size:42px;
    max-width:15ch;
    margin-inline:0;
  }
  /* Inline text-align on the <p> inside WordPress content; see the same note above. */
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-09966e8 p,
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-713c580 p{
    text-align:left !important;
  }
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-713c580{
    margin-inline:0;
    max-width:46ch;
  }
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-1a664cc{
    text-align:left;
  }
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-1a664cc .elementor-align-center,
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-1a664cc .elementor-button-wrapper{
    text-align:left;
  }
}
@media only screen and (max-width:1024px){
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-f91c446 > .elementor-container{
    padding:20px 14px 24px;
  }
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-09966e8{font-size:25px;}
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-713c580{
    font-size:14px;
    padding:6px 8px 0;
  }
  html[data-hero="v2-data"] .ql-curve{margin-top:12px;}
  html[data-hero="v2-data"] .ql-curve__cap{font-size:12px;}
}

/* --------------------------------------------- breathing room for the removal arms
   With the band gone the <h1> starts exactly at the bar's bottom edge - measured
   y=104 on a phone, y=90 on a desktop, i.e. touching. `strip` does not need this (the
   evidence line separates them); `none` does. */
html[data-hero="none"] .elementor .elementor-element.elementor-element-3c11372{
  padding-top:18px;
}

/* Two corrections after looking at the first render of ?hero=v2-data:
   - desktop: the subtitle sat BESIDE the title, because both widgets carry
     elementor-widget__width-initial and the wrap is a flex row. It wants the full
     column width under the title.
   - phone: the DOM order is title, CTA, chart, so the button came before the argument
     it is meant to follow. The chart is ordered between them. */
@media only screen and (min-width:1025px){
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-713c580{
    width:100%;
  }
}
@media only screen and (max-width:1024px){
  html[data-hero="v2-data"] .ql-curve{order:2;}
  html[data-hero="v2-data"] .elementor .elementor-element.elementor-element-1a664cc{order:3;}
}

/* ======================================================= THE PHONE HEADER (Pol, 31 Oct 2026)
   "too much useless space" at 390x844: the header was 104px (min-height 10vh, and a 97x104
   logo box for a near-square lockup), a eighth of the screen before any content. On a phone it
   is now one 56px row: the logo, scaled down, and the burger (the language is in the menu). Desktop is
   untouched. html:not([data-hdr]) so the ?hdr= comparison arms above still win when asked for. */
@media only screen and (max-width:767px){
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-1c7afb1{
    --min-height:56px;
    min-height:56px;
    --align-items:center;
    --flex-wrap-mobile:nowrap;
    flex-wrap:nowrap;
    box-shadow:0 1px 0 rgba(21,47,78,.08);
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-cf2b5e1{
    --width:auto;
    --justify-content:center;
    --align-items:flex-start;
    align-self:center;
    padding-left:16px;
  }
  /* The real logo, the same lockup as everywhere else, scaled into the row (Pol, 31 Oct 2026:
     «why did you change the qless park font?» - the Q mark plus a typed «QLESS PARK» that this
     block used for a few hours was not the brand wordmark). There is no horizontal lockup in the
     assets, so it is the stacked one at 48px tall, 4px clear of the row's edges. */
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-ca6bac7 img{
    width:auto !important;
    height:48px;
    max-height:48px;
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-ca6bac7 a{
    display:flex;
    align-items:center;
    line-height:0;
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-ca6bac7,
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-ca6bac7 > .elementor-widget-container{
    margin:0;
    padding:0;
    line-height:0;
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-c82e2fe{--width:0px;}
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-5d6e10b{
    --width:auto;
    --flex-grow:1;
    flex-grow:1;
    --align-items:center;
    align-self:center;
    --justify-content:flex-end;
    justify-content:flex-end;
    padding-right:12px;
    --column-gap:8px;
    --gap:0px 8px;
  }
  html:not([data-hdr]) .ql-lang__globe,
  html:not([data-hdr]) .ql-lang__caret{display:none;}
  html:not([data-hdr]) .ql-lang__button.ql-lang__button{padding:0 11px;height:36px;}
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-72af8bc{
    order:2;
    width:auto;
    max-width:none;
    --container-widget-width:auto;
    --align-self:center;
  }
  html:not([data-hdr]) .ql-lang{order:1;}
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-72af8bc div.hfe-nav-menu.hfe-layout-horizontal{
    position:relative;
    width:auto;
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-72af8bc nav.hfe-nav-menu__layout-horizontal{
    position:absolute;
    top:100%;
    right:0;
    left:auto;
  }
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-72af8bc .hfe-nav-menu__toggle{
    width:40px;
    margin:0;
  }
  /* site.js shrinks the bar (min-height 5px) and the logo (60%) once stuck on tablet and phone;
     the phone row is already as small as it gets, and a header that changes height moves the
     band that sticks under it. */
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-1c7afb1.she-header{min-height:56px !important;}
  /* «cabecera» option A (Pol, 31 Oct 2026): the language moves into the burger menu on a phone,
     as one row of the four codes that site.js adds to the menu. */
  html:not([data-hdr]) .ql-lang{display:none !important;}
  html:not([data-hdr]) .elementor .elementor-element.elementor-element-72af8bc li.ql-lang-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    padding:12px 20px 14px;
    border-top:1px solid rgba(21,47,78,.1);
  }
}

/* The language row inside the burger menu: built by site.js, shown on a phone only. */
li.ql-lang-row{display:none;}
.ql-lang-row__label{
  flex:1 0 100%;
  font-family:"DM Sans",Sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#5a6b80;
}
a.ql-lang-row__item{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:36px;
  padding:0 10px;
  border:1px solid #dfe3ea;
  border-radius:999px;
  font-family:"DM Sans",Sans-serif;
  font-size:14px;
  font-weight:700;
  color:#16202e;
  text-decoration:none;
}
a.ql-lang-row__item[aria-current]{background:#9108DC;border-color:#9108DC;color:#fff;}

/* ====================================================== THE HEADER DOES NOT JUMP (31 Oct 2026)
   site.js (reproducing sticky-header-effects) switched the header from in-flow to
   position:fixed once the page passed 20px, so everything under it jumped up by the header's
   height - 104px on a phone - and the client area's band was gone under it at 25px of scroll
   (measured on qlesspark.com). position:sticky from the first paint keeps the header's place in
   the flow, so sticking moves nothing. Everything else site.js does (background, desktop's
   slide-away past 500px, tablet's shrink) is unchanged. Beats 04-she-header.css's
   `.she-header:not(.elementor-sticky){position:fixed !important}` on specificity. */
.elementor .elementor-element.she-header-yes.she-header-yes{
  position:sticky !important;
  top:0;
}

/* ================================================================ EASE-IN (31 Oct 2026)
   Section headings and cards rise in as they enter the screen, site-wide. Scroll-driven where
   the browser has view() timelines; elsewhere site.js's IntersectionObserver fallback hides
   only what is still below the first screen (.ql-pre) and lets it in (.ql-in). transform and
   opacity only. Without JavaScript, and with no scroll-timeline support, nothing is hidden;
   under prefers-reduced-motion nothing moves at all. The selector list is REVEAL in site.js. */
@media (prefers-reduced-motion: no-preference){
  @keyframes ql-rise{from{opacity:0;transform:translateY(18px);}}
  @supports (animation-timeline: view()){
    :is(.ca h2, .ca-card, .ca-post, .ca-tip, .elementor-widget-heading h2.elementor-heading-title):not([data-ql-region] *, [data-ca-band] *){
      animation:ql-rise linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 60%;
    }
  }
  html.ql-reveal-js .ql-pre{opacity:0;transform:translateY(18px);}
  html.ql-reveal-js .ql-in{transition:opacity .45s ease-out,transform .45s ease-out;}
}
@media print{
  :is(.ca h2, .ca-card, .ca-post, .ca-tip, .elementor-widget-heading h2.elementor-heading-title){animation:none !important;opacity:1 !important;transform:none !important;}
}

/* «Ya tengo un viaje» in the menu (Pol, 31 Oct 2026): a burger-menu item, so it is shown only
   where the menu is a burger (1024px and below, header-footer-elementor's tablet breakpoint). */
li.ql-volver-item { display: none; }
@media only screen and (max-width: 1024px) {
  li.ql-volver-item { display: list-item; }
}

/* --- assets/css/12-hello.css --- */
html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#333;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin-block-start:.5rem;margin-block-end:1rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-start:0;margin-block-end:.9rem}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;text-decoration:none;color:#c36}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{font-size:16px;color:#333;line-height:1.4;font-style:italic;font-weight:400}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;break-inside:avoid;border:1px solid #ccc}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{width:100%;border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{width:auto;-webkit-appearance:button}[type=button],[type=submit],button{display:inline-block;font-weight:400;color:#c36;text-align:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid #c36;padding:.5rem 1rem;font-size:1rem;border-radius:3px;transition:all .3s}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{color:#fff;background-color:#c36;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;width:100%;margin-block-end:15px;font-size:.9em;border-spacing:0;border-collapse:collapse}table td,table th{padding:15px;line-height:1.5;vertical-align:top;border:1px solid hsla(0,0%,50.2%,.5019607843)}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50.2%,.5019607843)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50.2%,.0705882353)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50.2%,.1019607843)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50.2%,.5019607843)}@media (max-width:767px){table table{font-size:.8em}table table td,table table th{padding:7px;line-height:1.3}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{margin-block-start:0;margin-block-end:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
/* --- assets/css/13-hello-theme.css --- */
.comments-area a,.page-content a{text-decoration:underline}.alignright{float:right;margin-left:1rem}.alignleft{float:left;margin-right:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw}.alignfull,.alignfull img{width:100vw}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{position:relative;display:block}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form p{width:100%;display:flex;align-items:flex-end}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{width:100%;max-height:500px;-o-object-fit:cover;object-fit:cover}@media (max-width:991px){.post .wp-post-image{max-height:400px}}@media (max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{margin:0;padding:0;list-style:none;font-size:.9em}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{display:flex;flex-direction:column;padding-block-start:30px;padding-block-end:30px;padding-inline-start:60px;padding-inline-end:0;border-block-end:1px solid #ccc}#comments .comment .avatar,#comments .pingback .avatar{position:absolute;left:0;border-radius:50%;margin-inline-end:10px}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{left:auto;right:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{position:relative;list-style:none;margin:0;padding-inline-start:30px}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{display:inline-block;font-size:1em;font-weight:400;line-height:100%;content:"↪";position:absolute;top:45px;left:0;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";left:auto;right:0}@media (min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media (max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{position:inherit;float:left}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:right}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-start:auto;margin-inline-end:auto;width:100%}@media (max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-start:10px;padding-inline-end:10px}}@media (min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media (min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media (min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media (min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)}
/* --- assets/css/14-hello-hf.css --- */
.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;padding-block-start:1rem;padding-block-end:1rem;position:relative}.site-header .site-title{font-size:2.5rem;font-weight:500;line-height:1.2}.site-header .site-branding{display:flex;flex-direction:column;justify-content:center;gap:.5rem}.site-header .header-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-header .header-inner .custom-logo-link{display:block}.site-header .header-inner .site-branding .site-description,.site-header .header-inner .site-branding .site-title{margin:0}.site-header .header-inner .site-branding .site-logo img{display:block}.site-header .header-inner .site-branding.show-logo .site-title,.site-header .header-inner .site-branding.show-title .site-logo{display:none!important}.site-header.header-inverted .header-inner{flex-direction:row-reverse}.site-header.header-inverted .header-inner .site-branding{text-align:end}.site-header.header-stacked .header-inner{align-items:center;flex-direction:column;text-align:center}.site-footer{padding-block-start:1rem;padding-block-end:1rem;position:relative}.site-footer .site-title{font-size:1.5rem;font-weight:500;line-height:1.2}.site-footer .site-branding{display:flex;flex-direction:column;justify-content:center;gap:.5rem}.site-footer .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-footer .footer-inner .custom-logo-link{display:block}.site-footer .footer-inner .site-branding .site-description,.site-footer .footer-inner .site-branding .site-title{margin:0}.site-footer .footer-inner .site-branding .site-logo img{display:block}.site-footer .footer-inner .site-branding.show-logo .site-title,.site-footer .footer-inner .site-branding.show-title .site-logo{display:none!important}.site-footer .footer-inner .copyright{align-items:center;display:flex;justify-content:flex-end}.site-footer .footer-inner .copyright p{margin:0}.site-footer.footer-inverted .footer-inner{flex-direction:row-reverse}.site-footer.footer-inverted .footer-inner .site-branding{text-align:end}.site-footer.footer-stacked .footer-inner{align-items:center;flex-direction:column;text-align:center}.site-footer.footer-stacked .footer-inner .site-branding .site-title{text-align:center}.site-footer.footer-stacked .footer-inner .site-navigation .menu{padding:0}@media (max-width:576px){.site-footer:not(.footer-stacked) .footer-inner .copyright,.site-footer:not(.footer-stacked) .footer-inner .site-branding,.site-footer:not(.footer-stacked) .footer-inner .site-navigation{display:block;text-align:center;width:100%;max-width:none}.site-footer .footer-inner .site-navigation ul.menu{justify-content:center}.site-footer .footer-inner .site-navigation ul.menu li{display:inline-block}}.site-header.header-stacked .site-navigation-toggle-holder{justify-content:center;max-width:100%}.site-header.menu-layout-dropdown .site-navigation{display:none}.site-navigation-toggle-holder{display:flex;align-items:center;padding:8px 15px}.site-navigation-toggle-holder .site-navigation-toggle{display:flex;align-items:center;justify-content:center;padding:.5rem;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.site-navigation-toggle-holder .site-navigation-toggle-icon{display:block;width:1.25rem}.site-navigation-toggle-holder .site-navigation-toggle-icon:after,.site-navigation-toggle-holder .site-navigation-toggle-icon:before{content:"";background-color:currentColor;display:block;height:3px;transition:all .2s ease-in-out;border-radius:3px}.site-navigation-toggle-holder .site-navigation-toggle-icon:before{box-shadow:0 .35rem 0 currentColor;margin-block-end:.5rem}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:before{box-shadow:none;transform:translateY(.35rem) rotate(45deg)}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:after{transform:translateY(-.35rem) rotate(-45deg)}.site-navigation{display:flex;align-items:center}.site-navigation ul.menu,.site-navigation ul.menu ul{list-style-type:none;padding:0}.site-navigation ul.menu{display:flex;flex-wrap:wrap}.site-navigation ul.menu li{position:relative;display:flex}.site-navigation ul.menu li a{display:block;padding:8px 15px}.site-navigation ul.menu li.menu-item-has-children{padding-inline-end:15px}.site-navigation ul.menu li.menu-item-has-children:after{display:flex;content:"▾";font-size:1.5em;justify-content:center;align-items:center;color:#666;text-decoration:none}.site-navigation ul.menu li.menu-item-has-children:focus-within>ul{display:block}.site-navigation ul.menu li ul{background:#fff;display:none;min-width:150px;position:absolute;z-index:2;left:0;top:100%}.site-navigation ul.menu li ul li{border-block-end:#eee 1px solid}.site-navigation ul.menu li ul li:last-child{border-block-end:none}.site-navigation ul.menu li ul li.menu-item-has-children a{flex-grow:1}.site-navigation ul.menu li ul li.menu-item-has-children:after{transform:translateY(-50%) rotate(-90deg)}.site-navigation ul.menu li ul ul{left:100%;top:0}.site-navigation ul.menu li:hover>ul{display:block}footer .site-navigation ul.menu li ul{top:auto;bottom:100%}footer .site-navigation ul.menu li ul ul{bottom:0}footer .site-navigation ul.menu a{padding:5px 15px}.site-navigation-dropdown{margin-block-start:10px;transition:max-height .3s,transform .3s;transform-origin:top;position:absolute;bottom:0;left:0;z-index:10000;width:100%}.site-navigation-toggle-holder:not(.elementor-active)+.site-navigation-dropdown{transform:scaleY(0);max-height:0}.site-navigation-toggle-holder.elementor-active+.site-navigation-dropdown{transform:scaleY(1);max-height:100vh}.site-navigation-dropdown ul{padding:0}.site-navigation-dropdown ul.menu{position:absolute;width:100%;padding:0;margin:0;background:#fff}.site-navigation-dropdown ul.menu li{display:block;width:100%;position:relative}.site-navigation-dropdown ul.menu li a{display:block;padding:20px;background:#fff;color:#55595c;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1019607843)}.site-navigation-dropdown ul.menu li.current-menu-item a{color:#fff;background:#55595c}.site-navigation-dropdown ul.menu>li li{transition:max-height .3s,transform .3s;transform-origin:top;transform:scaleY(0);max-height:0}.site-navigation-dropdown ul.menu li.elementor-active>ul>li{transform:scaleY(1);max-height:100vh}@media (max-width:576px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media (min-width:768px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media (min-width:576px) and (max-width:767px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media (min-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media (max-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation{display:none!important}}.site-header.menu-dropdown-none:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}
/* --- assets/css/16-elegant-icons.css --- */
@font-face{font-family:ElegantIcons;src:url(../fonts/ElegantIcons.eot);src:url(../fonts/ElegantIcons.eot) format('embedded-opentype'),url(../fonts/ElegantIcons.woff) format('woff'),url(../fonts/ElegantIcons.ttf) format('truetype'),url(../fonts/ElegantIcons.svg) format('svg');font-weight:400;font-style:normal}[data-icon]:before{font-family:ElegantIcons;content:attr(data-icon);speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon_creditcard{font-family:ElegantIcons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon_creditcard:before{content:"\e014"}.glyph{float:left;text-align:center;padding:.75em;margin:.4em 1.5em .75em 0;width:6em;text-shadow:none}.glyph div{padding-bottom:10px}.glyph input{font-family:consolas,monospace;font-size:12px;width:100%;text-align:center;border:0;box-shadow:0 0 0 1px #ccc;padding:.2em;-moz-border-radius:5px;-webkit-border-radius:5px}.centered{margin-left:auto;margin-right:auto}
/* --- assets/css/17-eicons.css --- */
/*! elementor-icons - v5.36.0 - 19-02-2025 */@font-face{font-family:eicons;src:url(../fonts/eicons.eot);src:url(../fonts/eicons.eot#iefix) format("embedded-opentype"),url(../fonts/eicons.woff2) format("woff2"),url(../fonts/eicons.woff) format("woff"),url(../fonts/eicons.ttf) format("truetype"),url(../fonts/eicons.svg) format("svg");font-weight:400;font-style:normal}[class*=" eicon-"],[class^=eicon]{display:inline-block;font-family:eicons;font-size:inherit;font-weight:400;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}
/* --- assets/css/18-ekit-widgets.css --- */
.ekit-wid-con .row{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.ekit-wid-con .col{position:relative;width:100%;padding-right:15px;padding-left:15px}.ekit-wid-con .col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;max-width:100%}.ekit-wid-con .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.ekit-wid-con .fade.in{opacity:1}.ekit-wid-con .collapse{display:none}.ekit-wid-con .collapse.in{display:block}.ekit-wid-con .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.ekit-wid-con .nav::after,.ekit-wid-con .nav::before,.ekit-wid-con .row::after,.ekit-wid-con .row::before{display:table;content:" "}.ekit-wid-con .nav::after,.ekit-wid-con .row::after{clear:both}.ekit-wid-con .hide{display:none!important}.ekit-wid-con .show{display:block!important}:focus{outline:0}button::-moz-focus-inner{padding:0;border:0}.ekit-wid-con .select{cursor:pointer;display:block;position:relative;font-size:16px;color:#7b7b7b;width:220px;height:44px;float:right}a:hover>.a:hover\:met_scalex--200:hover{-webkit-transform:scaleX(2);transform:scaleX(2)}a:hover>.a:hover\:met_scaley--200:hover{-webkit-transform:scaleY(2);transform:scaleY(2)}.ekit-wid-con .nav{margin:0;padding:0;list-style:none}.ekit-wid-con .small{font-size:12px;line-height:20px}.ekit-wid-con .muted{color:#adadad}.ekit-wid-con iframe{border:none}.ekit-wid-con a,.ekit-wid-con b,.ekit-wid-con div,.ekit-wid-con li,.ekit-wid-con ul{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.ekit-wid-con a:active,.ekit-wid-con a:focus,.ekit-wid-con input,.ekit-wid-con input:active,.ekit-wid-con input:focus,.ekit-wid-con input:hover,.ekit-wid-con textarea,.ekit-wid-con textarea:active,.ekit-wid-con textarea:focus,.ekit-wid-con textarea:hover{-moz-outline:none;outline:0}.ekit-wid-con embed,.ekit-wid-con img:not([draggable]),.ekit-wid-con object,.ekit-wid-con video{max-width:100%;height:auto}.ekit-wid-con a,.ekit-wid-con button{text-decoration:none;outline:0}.ekit-wid-con a:active,.ekit-wid-con a:focus,.ekit-wid-con a:hover,.ekit-wid-con a:visited{text-decoration:none;outline:0}.ekit-wid-con img{border:none;max-width:100%}.ekit-wid-con li,.ekit-wid-con ul{margin:0;padding:0}.ekit-wid-con h4,.ekit-wid-con p{margin-bottom:10px}.ekit-wid-con svg{width:1em;height:1em}.ekit-wid-con button:focus{outline:0}.ekit-wid-con .text-center{text-align:center!important}.ekit-wid-con .text-center{text-align:center!important}.ekit-wid-con .media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ekit-wid-con .swiper.ekit-main-swiper{position:static}.ekit-wid-con img{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}.ekit-wid-con button{cursor:pointer;-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con input{-webkit-box-sizing:border-box;box-sizing:border-box}.ekit-wid-con [data-ajax-post-id]:not(.is--loaded):before{content:"";display:block;width:30px;height:30px;margin:20px auto;border-style:solid;border-width:3px;border-color:#acacac #ddd #ddd;border-radius:50%;-webkit-animation:eicon-spin 1.5s infinite linear;animation:eicon-spin 1.5s infinite linear}@-webkit-keyframes open{0%{opacity:0}100%{opacity:1}}@keyframes open{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes close{0%{opacity:1}100%{opacity:0}}@keyframes close{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes typing{from{width:0}}@keyframes typing{from{width:0}}@-webkit-keyframes cursor{50%{border-color:transparent}}@keyframes cursor{50%{border-color:transparent}}@-webkit-keyframes wipe{to{width:0}}@keyframes wipe{to{width:0}}@keyframes open{from{width:0}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotateX{from{-webkit-transform:perspective(600px) rotateX(0);transform:perspective(600px) rotateX(0)}to{-webkit-transform:perspective(600px) rotateX(90deg);transform:perspective(600px) rotateX(90deg)}}@keyframes rotateX{from{-webkit-transform:perspective(600px) rotateX(0);transform:perspective(600px) rotateX(0)}to{-webkit-transform:perspective(600px) rotateX(90deg);transform:perspective(600px) rotateX(90deg)}}@-webkit-keyframes rotateY{from{-webkit-transform:perspective(600px) rotateY(0);transform:perspective(600px) rotateY(0)}to{-webkit-transform:perspective(600px) rotateY(90deg);transform:perspective(600px) rotateY(90deg)}}@keyframes rotateY{from{-webkit-transform:perspective(600px) rotateY(0);transform:perspective(600px) rotateY(0)}to{-webkit-transform:perspective(600px) rotateY(90deg);transform:perspective(600px) rotateY(90deg)}}.ekit-wid-con .number::before{counter-increment:myNumber;content:counter(myNumber) "."}.ekit-wid-con .path{fill:#fff;stroke:#2575fc;stroke-miterlimit:0}.ekit-wid-con .elementskit-infobox{padding:60px 40px;-webkit-transition:all .4s ease;transition:all .4s ease;background-color:#fff;position:relative;overflow:hidden;background-repeat:no-repeat;background-size:cover;background-position:center center}.ekit-wid-con .elementskit-infobox.media .elementskit-box-header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ekit-wid-con .elementskit-infobox .elementskit-box-header{position:relative;z-index:2}.ekit-wid-con .elementskit-infobox .elementskit-box-header .elementskit-info-box-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:13px}.ekit-wid-con .elementskit-infobox .elementskit-box-header .elementskit-info-box-icon i{-webkit-transition:all .4s;transition:all .4s}.ekit-wid-con .elementskit-infobox .box-body{position:relative;z-index:2}.ekit-wid-con .elementskit-infobox .box-body p{-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con .elementkit-infobox-icon.framed{border:2px solid red;padding:10px}.ekit-wid-con .elementkit-infobox-icon.framed.round{border-radius:100%}.ekit-wid-con .elementskit-infobox{position:relative}.ekit-wid-con .swiper-pagination{line-height:1}.ekit-wid-con .swiper-pagination span{background-color:#ededed;padding:0}.ekit-wid-con .elementskit-single-testimonial-slider{background-color:#fff;-webkit-box-shadow:9px 11px 14px 0 rgba(0,0,0,.1);box-shadow:9px 11px 14px 0 rgba(0,0,0,.1);padding:30px;padding-left:60px;position:relative;-webkit-transition:all .4s ease;transition:all .4s ease;z-index:1}.ekit-wid-con .elementskit-single-testimonial-slider .elementskit-commentor-content>p{-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con .elementskit-single-testimonial-slider:before{position:absolute;content:"";top:0;left:0;height:100%;width:100%;border-radius:inherit;-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transition:all .4s ease;transition:all .4s ease;z-index:-1}.ekit-wid-con .elementskit-single-testimonial-slider:hover::before{-webkit-transform:scaleY(1);transform:scaleY(1)}.ekit-wid-con .elementskit-single-testimonial-slider.gradient{background:#f2709c;background:linear-gradient(45deg,#f2709c 0,#fe8f75 100%)}.ekit-wid-con .elementskit-single-testimonial-slider .quote{font-size:48px}.ekit-wid-con .elementskit-single-testimonial-slider:not(.white-v) .quote{color:rgba(37,117,252,.2)}.ekit-wid-con .elementskit-single-testimonial-slider .elementskit-watermark-icon{position:static;color:rgba(0,0,0,.1);line-height:1;display:inline-block}.ekit-wid-con .elementskit-single-testimonial-slider .elementskit-watermark-icon>i{font-size:48px;-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con .elementskit-single-testimonial-slider .elementskit-watermark-icon>svg{width:48px;height:auto;vertical-align:middle}.ekit-wid-con .elementskit-commentor-content{padding-right:30px;position:relative}.ekit-wid-con .elementskit-commentor-content>i{font-size:48px;margin-bottom:23px;display:inline-block}.ekit-wid-con .elementskit-commentor-content>p{margin-bottom:35px;color:rgba(0,0,0,.5)}.ekit-wid-con .elementskit-commentor-content .elementskit-profile-info{display:block}.ekit-wid-con .elementskit-commentor-content .elementskit-author-name{font-size:22px;-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con .elementskit-commentor-content .elementskit-author-des{font-size:13px;-webkit-transition:all .4s ease;transition:all .4s ease}.ekit-wid-con .elementskit-commentor-bio .elementskit-commentor-image>img{border-radius:50%;height:70px;width:70px}.ekit-wid-con .elementskit-commentor-bio .elementskit-author-name{font-size:22px;line-height:1}.ekit-wid-con .elementskit-commentor-bio .elementskit-author-des{font-size:13px}.ekit-wid-con .elementskit-commentor-bio.media .elementskit-author-name{font-size:18px}.ekit-wid-con .elementskit-commentor-bio.media .elementskit-author-des{font-size:13px}.ekit-wid-con .elementskit-profile-info .elementskit-author-name{display:block;font-size:18px;font-weight:700;color:#000;-webkit-transition:color .3s;transition:color .3s}.ekit-wid-con .elementskit-profile-info .elementskit-author-des{color:rgba(0,0,0,.5);font-weight:400}.ekit-wid-con .elementskit-testimonial-slider .swiper-wrapper{overflow:visible}.ekit-wid-con .elementskit-testimonial-slider .swiper-pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ekit-wid-con .elementskit-testimonial-slider .swiper-pagination span{padding:0;margin:0}.ekit-wid-con .elementskit-commentor-bio{position:absolute;left:0;width:100%}.ekit-wid-con .elementskit-testimonial-slider .swiper-button-next,.ekit-wid-con .elementskit-testimonial-slider .swiper-button-prev{font-size:36px;color:#2575fc;width:auto;height:auto;z-index:1}.ekit-wid-con .elementskit-testimonial-slider .swiper-button-next::before,.ekit-wid-con .elementskit-testimonial-slider .swiper-button-prev::before{display:none}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementskit-commentor-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementskit-stars{-ms-flex-item-align:end;align-self:flex-end}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementskit-commentor-bio{position:static}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementkit-commentor-details,.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementskit-commentor-bio{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementkit-commentor-details{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ekit-wid-con .elementskit-testimonial-slider-block-style-two .elementskit-icon-content{-ms-flex-item-align:end;align-self:flex-end}.ekit-wid-con .ekit_testimonial_style_5{text-align:left}.ekit-wid-con .ekit_testimonial_style_5 .elementskit-commentor-header{display:block}.ekit-wid-con .ekit_testimonial_style_5 .elementskit-single-testimonial-slider{padding:30px;display:block}.ekit-wid-con .ekit_testimonial_style_5 .elementskit-single-testimonial-slider .elementskit-commentor-content{padding-right:0}.ekit-wid-con .ekit_testimonial_style_5 .elementskit-single-testimonial-slider .elementskit-commentor-content>p{margin-top:30px;margin-bottom:30px}.ekit-wid-con .ekit_testimonial_style_5 .elementskit-watermark-icon{position:absolute;color:rgba(37,117,252,.2)}.ekit-wid-con .ekit_testimonial_style_5 .ekit-testimonial--avatar{margin-right:20px}.ekit-wid-con .elementskit-commentor-content>i,.ekit-wid-con .elementskit-icon-content>i{display:inline-block}.ekit-wid-con .elementskit-stars{position:relative;z-index:6}.ekit-wid-con .elementskit-stars>li{display:inline-block}.ekit-wid-con .elementskit-stars>li:not(:last-child){margin-right:5px}.ekit-wid-con .elementskit-stars>li>a,.ekit-wid-con .elementskit-stars>li>span{display:block;pointer-events:none}.elementskit-commentor-content ol,.elementskit-commentor-content ul{padding-left:18px}.ekit-wid-con .btn.sm{height:30px;line-height:30px;font-size:13px;padding-left:16px;padding-right:16px}.ekit-wid-con .btn.sm.round{border-radius:15px}.ekit-wid-con .btn.md{height:40px;line-height:40px;font-size:14px;padding-left:22px;padding-right:22px}.ekit-wid-con .btn.md.round{border-radius:20px}.ekit-wid-con .btn.lg{height:50px;line-height:50px;font-size:15px;padding-left:40px;padding-right:40px}.ekit-wid-con .btn.lg.round{border-radius:25px}.ekit-wid-con .btn.xl{height:60px;line-height:60px;font-size:16px;padding-left:36px;padding-right:36px}.ekit-wid-con .btn.xl.round{border-radius:30px}.ekit-wid-con .btn.square{border-radius:0}
/* --- assets/css/19-ekit-responsive.css --- */
@media (min-width:992px) and (max-width:1199px){.ekit-wid-con .elementskit-single-testimonial-slider{-webkit-box-shadow:0 10px 10px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.1)}}@media (max-width:991px){.ekit-wid-con .elementskit-single-testimonial-slider{-webkit-box-shadow:0 10px 10px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.1);padding:30px}.ekit-wid-con .elementskit-commentor-content{padding-right:0;margin-bottom:30px}}@media (max-width:767px){.ekit-wid-con .elementskit-testimonial-slider .swiper-button-next,.ekit-wid-con .elementskit-testimonial-slider .swiper-button-prev{display:none!important}}
/* --- assets/css/20-ekiticons.css --- */
@font-face{font-family:elementskit;src:url(../fonts/elementskit.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}.ekit-wid-con .icon,.ekit-wid-con .icon::before,.icon,.icon::before{font-family:elementskit!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ekit-wid-con .icon.icon-quote::before,.icon.icon-quote::before{content:"\e97e"}
/* --- assets/css/21-font-dmsans.css --- */
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- assets/css/23-font-poppins.css --- */
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/poppins-pxiayp8kv8jhgfvrjjlme0tmmpkzsq.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/poppins-pxiayp8kv8jhgfvrjjlme0tcmpi.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmv1pvgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmv1pvf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm21lvgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm21lvf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxigyp8kv8jhgfvrjjlufntakpy.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxigyp8kv8jhgfvrjjluchta.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmg1hvgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmg1hvf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmr19vgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmr19vf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmy15vgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlmy15vf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm111vgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm111vf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm81xvgdeoceg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/poppins-pxidyp8kv8jhgfvrjjlm81xvf9eo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/poppins-pxigyp8kv8jhgfvrlptufntakpy.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(../fonts/poppins-pxigyp8kv8jhgfvrlptuchta.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlfj_z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlfj_z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrldz8z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrldz8z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxieyp8kv8jhgfvrjjnecmne.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxieyp8kv8jhgfvrjjfecg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlgt9z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlgt9z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlej6z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlej6z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlcz7z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlcz7z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrldd4z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrldd4z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlbt5z1jlfc-k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/poppins-pxibyp8kv8jhgfvrlbt5z1xlfq.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- assets/css/24-font-carme.css --- */
/* latin */
@font-face {
  font-family: 'Carme';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/carme-ptrhtiwdbvzidnjbzri.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- assets/css/90-beta.css --- */
/* The only stylesheet in this mirror that production has no counterpart for.
 *
 * It styles two things and nothing else:
 *   1. the call-to-action that replaces the Jotform embed on /contrata/
 *   2. the inline note the inert contact form shows when you submit it
 *
 * It deliberately borrows the site's own tokens (--e-global-color-* from Elementor
 * kit 74, DM Sans / Poppins) so the block reads as part of the page rather than as
 * something bolted on.
 */

.elementor-element-beta01 > .elementor-widget-container {
  padding: 40px 0 0 0;
}

.elementor-element-beta01 .elementor-heading-title {
  font-family: "Poppins", Sans-serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 35px;
  color: var(--e-global-color-8cd1398);
  text-align: center;
}

.elementor-element-beta02 > .elementor-widget-container,
.elementor-element-beta04 > .elementor-widget-container {
  padding: 12px 0 0 0;
  font-family: "DM Sans", Sans-serif;
  font-size: 18px;
  line-height: 28px;
  color: var(--e-global-color-text);
  text-align: center;
}

.elementor-element-beta04 > .elementor-widget-container {
  padding-bottom: 40px;
  font-size: 15px;
}

.elementor-element-beta03 > .elementor-widget-container {
  padding: 24px 20px 8px 20px;
}

.elementor-element-beta03 .elementor-button {
  background-color: var(--e-global-color-primary);
  color: var(--e-global-color-cd2d769);
  font-family: "DM Sans", Sans-serif;
  font-size: 24px;
  font-weight: 500;
  border-radius: 23px;
  padding: 10px 24px;
}

/* The container the Jotform used to fill is a flex row; the CTA is a column. */
.elementor-1229 .elementor-element.elementor-element-ef7e74b > .e-con-inner {
  flex-direction: column;
  align-items: center;
}

@media (max-width: 767px) {
  .elementor-element-beta01 .elementor-heading-title { font-size: 24px; line-height: 30px; }
  .elementor-element-beta02 > .elementor-widget-container { font-size: 16px; }
  .elementor-element-beta03 .elementor-button { font-size: 19px; }
}

.mirror-note {
  margin: 12px 0 0 0;
  font-family: "DM Sans", Sans-serif;
  font-size: 15px;
  line-height: 22px;
  color: var(--e-global-color-primary);
}

/* THE SKIP LINK. First focusable element on the page, off-screen until it is tabbed to.
 *
 * `clip`/`clip-path` rather than `display:none` or `visibility:hidden`: both of those take the
 * element OUT OF THE FOCUS ORDER, which would make a skip link unreachable by the one input
 * method it exists for. Positioned `fixed` so it lands in the same place whatever the header is
 * doing - the mirrored Elementor header is sticky and hides on scroll (.she-header-hide-on-scroll-yes).
 *
 * The <main> it points at carries tabindex="-1" so following the link moves FOCUS and not merely
 * the scroll position. Without it, browsers scroll and leave focus on <body>, so the next Tab
 * returns to the top of the menu and the link has achieved nothing.
 */
.ql-skip {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100000;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  background: #fff;
  color: #000;
  font-family: "DM Sans", Sans-serif;
  font-size: 16px;
  line-height: 1.2;
  text-decoration: underline;
  border-radius: 0 0 6px 0;
}

.ql-skip:focus {
  width: auto;
  height: auto;
  margin: 8px;
  padding: 12px 20px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  outline: 3px solid #1a1a1a;
  outline-offset: 2px;
}

/* <main> is a plain block and deliberately carries no box of its own: the mirrored Elementor
   containers inside it size themselves against the viewport, and giving the landmark padding,
   width or display would reflow every page. This rule only suppresses the focus ring that
   tabindex="-1" would otherwise draw when the skip link moves focus here. */
main#contenido:focus {
  outline: none;
}

/* ------------------------------------------------------------------------------- the footer
   Added 31 October 2026. The independence disclaimer (a26d953, 4 September) was put inside the
   menu column, `.elementor-element-fe636df`, which chrome.css makes a column flex container
   that wraps. So the paragraph wrapped into a second column beside the menu: 107px wide at
   390, running 550px below the navy band on white and 5-14px past the right edge of the
   viewport, which is what let the whole page scroll sideways. It did the same at 1280, at
   the right edge under the band. Every page, all four languages.

   The column is a layout box with no meaning of its own, so `display: contents` hands its two
   children (the menu, the disclaimer) to the footer row, and the row wraps: logo and menu on
   the first line, the disclaimer as a full-width line under them (it sits inside the menu
   widget, f56b34a, so that widget and its container are `contents` too), inside the band. On a
   phone the row becomes a centred column. The wording is the legal line and is not touched.

   (0,3,1) and up, because chrome.css sets these at (0,3,0). 98-home-v2.css has its own
   version of this under `.v2-host ~ [data-ql-region="footer"]`, which has matched nothing
   since the <main> landmark (8 September) made the footer stop being a sibling of .v2-host. */
/* chrome.css gives the band a -10% bottom margin, which ate the body padding that keeps the
   pinned purchase bar off the last line: with the disclaimer now inside the band, the bar
   covered it. */
body .elementor .elementor-element.elementor-element-ed10813[data-ql-region="footer"] { --margin-bottom: 0px; }
body .elementor [data-ql-region="footer"] > .e-con-inner {
  flex-wrap: wrap;
  align-items: center;
  row-gap: 12px;
}
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-fe636df,
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-f56b34a,
body .elementor [data-ql-region="footer"] .elementor-element-f56b34a > .elementor-widget-container { display: contents; }
body .elementor [data-ql-region="footer"] .elementor-widget-container > .hfe-nav-menu { margin-left: auto; }
body .elementor [data-ql-region="footer"] .footer-disclaimer {
  flex: 0 0 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 4px 16px 20px;
  font-size: 12.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .66);
  text-align: center;
}

@media (max-width: 767px) {
  body .elementor [data-ql-region="footer"] > .e-con-inner {
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 28px 16px 8px;
  }
  /* The empty middle column only pushed the desktop columns apart. */
  body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-5827b80 { display: none; }
  body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-01fee65 {
    width: auto;
    align-items: center;
  }
  body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-5d1ef96 img {
    width: 64px;
    height: auto;
  }
    body .elementor [data-ql-region="footer"] .hfe-nav-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px 14px;
  }
  body .elementor [data-ql-region="footer"] .hfe-nav-menu li.menu-item { width: auto; }
  body .elementor [data-ql-region="footer"] .footer-disclaimer { padding: 4px 0 16px; }
}

/* ======================================================= THE FOOTER, COMPACT (31 Oct 2026)
   Pol, at 390px on the live site: «area de cliente dont belong in the footer», «privacy and terms
   on the right side of the logo», «the color should extend to the netlify and cookies part»,
   «smaller font for disclaimer to fit ideally in two lines so everything is tighter».
   - One row: a small logo on the left, «Términos» and «Privacidad» stacked beside it (the client
     area left footer_nav in _site.json). On desktop the disclaimer takes the rest of that row.
   - The navy reaches the bottom of the page. The room the pinned purchase bar, the Netlify
     badge and the cookie button need used to be the BODY's bottom padding, which is white; it is
     the footer's own bottom padding now (safe area included), so they sit on navy. The badge
     itself is not touched.
   - The disclaimer is smaller and tighter; its wording is the non-affiliation notice and is not
     changed. */
/* ONE FOOTER, EVERYWHERE (Pol, 31 Oct 2026, on the live home: the marketing pages still had the
   pink footer). The navy that was a /tu-viaje/-only test in 97-client-area.css is the footer of
   every page now; same specificity as before, because chrome.css paints it at (0,4,0). */
body .elementor .elementor-element.elementor-element-ed10813:not(.elementor-motion-effects-element-type-background) {
  background-color: var(--e-global-color-65e99da, #152f4e);
}
html body:has([data-ql-region="footer"]) { padding-bottom: 0; }
body .elementor [data-ql-region="footer"] > .e-con-inner {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  column-gap: 16px;
  row-gap: 12px;
  padding: 12px 16px calc(72px + env(safe-area-inset-bottom, 0px));
}
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-5827b80 { display: none; }
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-01fee65 {
  width: auto;
  flex: none;
  align-items: flex-start;
}
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-5d1ef96 img,
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-5d1ef96 img[srcset] {
  width: 60px;
  height: auto;
}
/* Términos and Privacidad sit at the RIGHT end of the row (Pol, 31 Oct 2026, second pass: «aligned
   to the right of the footer row»), stacked and right-aligned; the disclaimer is the full-width
   line under the row on a phone and the middle of the row on desktop (order). */
body .elementor [data-ql-region="footer"] .elementor-element.elementor-element-01fee65 { order: 0; }
body .elementor [data-ql-region="footer"] .elementor-widget-container > .hfe-nav-menu { order: 1; margin-left: auto; margin-right: 0; }
body .elementor [data-ql-region="footer"] .footer-disclaimer { order: 2; }
body .elementor [data-ql-region="footer"] .hfe-nav-menu {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  text-align: right;
}
body .elementor [data-ql-region="footer"] .hfe-nav-menu li.menu-item { width: auto; }
body .elementor [data-ql-region="footer"] .hfe-nav-menu li.menu-item a.hfe-menu-item.hfe-menu-item { padding: 3px 0; font-size: 14px; line-height: 1.35; }
body .elementor [data-ql-region="footer"] .footer-disclaimer {
  flex: 0 0 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  font-size: 10.5px;
  line-height: 1.38;
  letter-spacing: -0.005em;
  text-align: left;
}
@media (min-width: 768px) {
  body .elementor [data-ql-region="footer"] > .e-con-inner {
    flex-wrap: nowrap;
    column-gap: 24px;
    /* The band's own side gutter, so the footer lines up with the tabs above it. */
    padding: 18px max(16px, 7.5%) calc(72px + env(safe-area-inset-bottom, 0px));
  }
  body .elementor [data-ql-region="footer"] .elementor-widget-container > .hfe-nav-menu { order: 3; margin-left: 0; }
  body .elementor [data-ql-region="footer"] .footer-disclaimer {
    flex: 1 1 auto;
    max-width: 780px;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.45;
  }
}

/* ------------------------------------------------------------- taps do not flash
   Pol, 31 Oct 2026: tapping «Empezar mi viaje» on Android Chrome drew a blue rectangle over
   it. That is Chrome's tap highlight, which every link and button gets unless told otherwise.
   It is inherited, so one declaration on the root covers buttons, tabs, cards and pills.

   The focus ring is a separate matter and is KEPT for the keyboard: a tap or click that
   focuses something draws no outline (:focus:not(:focus-visible)), Tab draws a 2px ring.
   The ring is purple on light ground and white on the dark surfaces (the hub band and tab row,
   the navy footer, the home hero over its photograph) through --ql-ring. Both rules use
   :where() so they weigh nothing: any component that already styles its own :focus-visible
   keeps it. Measured at 390px with touch on /, /tu-viaje/, /atracciones/, /grupo/ and /faq/:
   131 links, buttons, tabs and accordion heads, none drawing an outline or changing colour on
   a tap; Tab still rings every one of them. */
html { -webkit-tap-highlight-color: transparent; }
:where(a[href], button, summary, label, [role="button"], [role="tab"], [tabindex]):focus:not(:focus-visible) {
  outline: none;
}
:where(a[href], button, summary, [role="button"], [role="tab"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 2px solid var(--ql-ring, #9108dc);
  outline-offset: 2px;
}
.ca-band, .v2-hero, [data-ql-region="footer"] { --ql-ring: #fff; }

/* --- assets/css/97-client-area.css --- */
/* The client area, logged out.
 *
 * Like 90-beta.css this has no production counterpart, and like it, every colour and face comes
 * from the site's own Elementor kit (kit 74: --e-global-color-primary is the brand purple
 * #9108DC, --e-global-color-c24263e the page grey, DM Sans for text, Poppins for headings), so
 * the page reads as part of qlesspark.com rather than as an app bolted onto it.
 *
 * Three ideas carry the whole design:
 *   .ca-slot    a per-client value that is not filled in yet. Named, not invented — the chip
 *               says "fecha de inicio", never a plausible-looking date, because a made-up date
 *               on a sales page is a promise.
 *   .ca-locked  an action a paying customer would take. It looks like a control, because it is
 *               one; it opens the modal instead of doing the thing.
 *   .ca-cta     the purchase, in exactly one visual style, wherever it appears.
 */

/* Why every button selector is doubled (.ca-cta.ca-cta and friends): the Elementor kit paints
 * every <button> on the site purple with white text —
 *   .elementor-kit-74 button { background-color: var(--e-global-color-primary); color: #fff }
 * — and that is (0,1,1), so a plain .ca-cta at (0,1,0) loses to it however late it is loaded.
 * Repeating the class is the smallest fix that keeps the selector self-contained; scoping under
 * an ancestor would not work for the modal and the pinned bar, which sit outside .ca. */

.ca {
  --ca-pad-top: 32px; /* the room between the band's tab row and the first block; the editable
                         band cancels it (THE SECTION TINT, at the end of this file) */
  width: 100%;
  max-width: 62rem;
  margin: 0 auto;
  padding: var(--ca-pad-top) 0 40px;
  font-family: "DM Sans", Sans-serif;
  font-size: 17px;
  line-height: 27px;
  color: var(--ca-ink);
  text-align: left;
}

/* On <body> and not on .ca. The modal and the pinned bar are siblings of the page content, not
   children of it, so a token declared on .ca would be undefined in exactly the two places the
   purchase button appears — and `background: var(--ca-accent)` with no value resolves to
   transparent, i.e. a white button on a white modal. <body> and not :root because the kit's own
   variables live on body.elementor-kit-74, so --ca-accent can follow the brand colour rather
   than repeat its hex. This stylesheet only loads on this page. */
body {
  --ca-ink: #16202e;
  --ca-muted: #5a6b80;
  --ca-line: #dfe5ec;
  --ca-card: #ffffff;
  --ca-accent: var(--e-global-color-primary, #9108dc);
  --ca-bad: #b42318;
}

/* The Elementor container this page's markup sits in is a flex row, and a flex item's default
   min-width is auto — it refuses to shrink below the widest thing inside it. At 390px that made
   the whole column 443px wide and clipped it against the container's overflow:hidden, so every
   line of copy lost its right-hand end. Nothing to do with the copy; it is the one place a
   hand-written block inside an Elementor document has to say so explicitly. */
.ca-host, .ca-host > .elementor-widget-container { min-width: 0; max-width: 100%; }
.ca-section, .ca-preview, .ca-form { min-width: 0; }

/* Something in the site's own CSS puts `white-space: nowrap` on buttons, and these have real
   sentences on them — "Reserva fuera del parque (hotel o Disney Village)" is 386px of one line
   inside a 292px button at 390px, which overflowed the page. Labels wrap; only .ca-badge, which
   is two or three words by design, keeps nowrap. */
.ca-locked.ca-locked, .ca-cta.ca-cta, .ca-ghost.ca-ghost,
.ca-tab.ca-tab, .ca-segbtn.ca-segbtn,
/* Added 25 August with the entry-block merge: "Ya he comprado mi viaje" became a <button>, and
   it is the first .ca-linkish that is not also .ca-locked - so it was the first one this rule
   did not already cover. */
.ca-linkish.ca-linkish,
/* Added 31 October: the payoff tease (4 September) is a <button> holding two sentences, and it
   shipped with neither the doubled class nor this rule - purple, one 920px line. */

.ca * { box-sizing: border-box; }
/* The three dialogs — the lock modal, the purchase and S0 — are siblings of .ca, not children
   of it, so they miss the rule above.
   That matters now that the purchase form lives in one: .ca-form input is width:100% plus
   0.7rem of padding and a border, and in content-box that is 24px wider than its column -
   which at 390px pushed the whole dialog off the right edge of the screen. */
.ca-modal, .ca-modal * { box-sizing: border-box; }

.ca-h2, .ca-h3 {
  margin: 0;
  font-family: "Poppins", Sans-serif;
  color: var(--e-global-color-8cd1398, #000);
  letter-spacing: 0;
}
.ca-h2 { font-size: 30px; line-height: 38px; font-weight: 600; }
.ca-h3 { font-size: 23px; line-height: 30px; font-weight: 600; }

.ca-prose p { margin: 0 0 0.9rem; }
.ca-prose p:last-child { margin-bottom: 0; }
.ca-prose ul, .ca-prose ol { margin: 0 0 0.9rem; padding-left: 1.2rem; }
.ca-prose li { margin: 0 0 0.35rem; }
.ca-prose strong { color: var(--ca-ink); }
.ca-listlead { font-weight: 600; }

/* ------------------------------------------------------------------ the empty values */
.ca-slot {
  display: inline-block;
  padding: 0 0.45rem;
  border: 1px dashed var(--ca-accent);
  border-radius: 6px;
  background: rgba(145, 8, 220, 0.06);
  font-size: 0.86em;
  font-weight: 600;
  font-style: normal;
  color: var(--ca-accent);
  white-space: nowrap;
}

.ca-legend {
  margin: 0 0 1.5rem;
  font-size: 15px;
  line-height: 24px;
  color: var(--ca-muted);
}
.ca-legend p { margin: 0; }

/* ------------------------------------------------------------------- preview banner */
.ca-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 2rem;
  padding: 1.1rem 1.4rem;
  border: 1px solid var(--ca-accent);
  border-left: 5px solid var(--ca-accent);
  border-radius: 14px;
  background: var(--ca-card);
}
.ca-preview-text { flex: 1 1 22rem; }
.ca-preview-text p { margin: 0; }
.ca-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
}

/* PREVIEW SCAFFOLDING - delete this rule with the rest of the section numbers. See the header
   of shared/sections.mjs for the full list; this is item 6 of 6.

   Costs nothing when the flag is off, because with the flag off no element ever carries the
   class. user-select: all is the detail that makes it useful rather than decorative: a
   tap-and-hold on a phone selects the whole number and nothing else, which is how a number gets
   from the screen into a message. */
.ca-secno {
  display: inline-block;
  margin-right: 0.45em;
  padding: 0.05em 0.4em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.72em;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  vertical-align: 0.12em;
  color: #fff;
  background: #b3261e;
  border-radius: 4px;
  user-select: all;
  -webkit-user-select: all;
}

/* ------------------------------------------------------- S0, the door back in (P-S0) */
/* A DIALOG SINCE 25 AUGUST 2026, opened from the one entry block. It used to be a bordered card
   sitting under the banner on all 28 pages of the area; .ca-volver and .ca-volver-h went with
   that card, because .ca-modal already draws the box and .ca-modal .ca-h3 already sets the
   heading. What is kept is everything about the CONTROL, which did not move and which #102 takes
   over unchanged: the same markup accepts an enabled input the day the magic link is wired.

   The field is disabled until then, and it is styled to LOOK unavailable rather than to look
   broken - dashed, which is the signal the .ca-slot chips and every locked control in this area
   already use. */
.ca-modal-volver { width: min(34rem, calc(100vw - 2rem)); }
.ca-modal-volver .ca-h3 { margin-top: 0; padding-right: 2rem; }
.ca-volver-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1rem;
  align-items: flex-end;
  margin-top: 0.9rem;
}
.ca-volver-field {
  flex: 1 1 20rem;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}
.ca-volver-field input {
  display: block;
  width: 100%;
  margin-top: 0.35rem;
  padding: 0.65rem 0.7rem;
  font: inherit;
  font-size: 16px;
  font-weight: 400;
  color: var(--ca-ink);
  background: var(--ca-card);
  border: 1px solid var(--ca-line);
  border-radius: 8px;
}
/* Disabled, and it has to read as "not yet" rather than as "broken". Dashed is the same signal
   the .ca-slot chips and the locked controls use everywhere else in this area. */
.ca-volver-field input:disabled {
  border-style: dashed;
  color: var(--ca-muted);
  background: #fbfcfd;
  cursor: not-allowed;
}
.ca-modal-volver .ca-cta:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
/* [hidden] beats the display the modal's own layout would give these. They are the three states
   #102 unhides; none of them can be reached today, because nothing submits. */
.ca-modal-volver .ca-note[hidden] { display: none; }

/* --------------------------------------------------------------------------- hero */
.ca-hero { margin: 0 0 0.5rem; }
.ca-hero .ca-h2 { margin-bottom: 0.8rem; }

.ca-steps {
  counter-reset: ca-step;
  list-style: none;
  margin: 1.4rem 0 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
}
.ca-steps li {
  counter-increment: ca-step;
  padding: 1rem 1.1rem 1.1rem;
  border: 1px solid var(--ca-line);
  border-radius: 12px;
  background: var(--ca-card);
  font-size: 16px;
  line-height: 25px;
}
.ca-step-title {
  display: block;
  margin-bottom: 0.2rem;
  font-family: "Poppins", Sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-steps li p { margin: 0 0 0.5rem; }
.ca-steps li p:last-child { margin-bottom: 0; }
.ca-step-cta { margin-top: 0.7rem; }
.ca-cta-sm.ca-cta-sm { padding: 0.5rem 1.1rem; font-size: 15px; line-height: 23px; }

.ca-steps li::before {
  content: counter(ca-step);
  display: grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  margin-bottom: 0.5rem;
  border-radius: 50%;
  background: var(--ca-accent);
  color: #fff;
  font-family: "Poppins", Sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
}

/* ------------------------------------------------------------------- the short form */
/* It is inside <dialog id="ca-compra"> now, so it has no card of its own: the dialog is the
   card. What is left here is the field styling, which is the same in either place. */

.ca-form label {
  display: block;
  margin: 0 0 1rem;
  font-weight: 600;
  font-size: 15px;
  line-height: 22px;
}
.ca-form small {
  display: block;
  margin-top: 0.3rem;
  font-weight: 400;
  font-size: 13.5px;
  line-height: 20px;
  color: var(--ca-muted);
}
.ca-req { color: var(--ca-bad); font-weight: 400; }

.ca-form input, .ca-form select {
  width: 100%;
  margin-top: 0.35rem;
  padding: 0.65rem 0.7rem;
  font: inherit;
  font-size: 16px;
  font-weight: 400;
  color: var(--ca-ink);
  background: var(--ca-card);
  border: 1px solid var(--ca-line);
  border-radius: 8px;
}
.ca-form input:focus, .ca-form select:focus {
  outline: 2px solid var(--ca-accent);
  outline-offset: 1px;
  border-color: var(--ca-accent);
}
.ca-form [aria-invalid="true"] { border-color: var(--ca-bad); }

.ca-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }

.ca-kidages {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0 1.2rem;
}
.ca-kidages:empty { display: none; }

.ca-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0.2rem 0 1.2rem;
  font-weight: 500;
}
.ca-check input { width: auto; margin: 0.3rem 0 0; flex: none; }

.ca-buyrow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.4rem;
  border-top: 1px solid var(--ca-line);
}
.ca-price { margin: 0.8rem 0 0; }
.ca-price strong { font-family: "Poppins", Sans-serif; font-size: 24px; }
.ca-price span { display: block; font-size: 14px; color: var(--ca-muted); }

.ca-note { margin-top: 0.9rem; font-size: 14px; color: var(--ca-muted); }
.ca-note p { margin: 0; }

/* -------------------------------------------------------------- consent (#90)
   Two unticked boxes above the pay button. Deliberately NOT styled down: they are
   not fine print, they are the two things the sale is legally standing on, so they
   get body-sized text and a real hit area rather than 11px grey.
   .ca-form label is a stacked block (label above control) for the four questions;
   a checkbox has to be the other way round, hence the override. */
.ca-consents { margin-top: 1.1rem; display: grid; gap: 0.6rem; }
.ca-form label.ca-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 0.65rem;
  align-items: start;
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  cursor: pointer;
}
.ca-form .ca-consent input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  margin: 0.15rem 0 0;
  accent-color: var(--ca-accent, currentColor);
  cursor: pointer;
}
.ca-form .ca-consent [aria-invalid="true"],
.ca-form .ca-consent input[aria-invalid="true"] { outline: 2px solid var(--ca-bad); outline-offset: 2px; }
.ca-consent a { text-decoration: underline; }
/* The same Art. 9 sentence on /comida/, outside .ca-form (31 Oct 2026, UX review P0). */
.ca-intol-panel label.ca-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 0.65rem;
  align-items: start;
  margin: 0.9rem 0 0;
  font-size: 15px;
  line-height: 1.45;
  cursor: pointer;
}
.ca-intol-panel .ca-consent input[type="checkbox"] {
  width: 20px; height: 20px; min-width: 20px; margin: 0.15rem 0 0; cursor: pointer;
}

.ca-errors {
  margin-top: 1rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--ca-bad);
  border-left: 4px solid var(--ca-bad);
  border-radius: 12px;
  font-size: 15px;
}
.ca-errors h3 { margin: 0 0 0.4rem; font-size: 15px; color: var(--ca-bad); }
.ca-errors ul { margin: 0; padding-left: 1.1rem; }

/* -------------------------------------------------------------------- the sections */
.ca-section {
  margin: 0 0 1.2rem;
  padding: 1.5rem 1.6rem;
  border: 1px solid var(--ca-line);
  border-radius: 16px;
  background: var(--ca-card);
}

.ca-section-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 0.9rem;
}

.ca-badge {
  display: inline-block;
  margin: 0;
  padding: 0.2rem 0.7rem 0.25rem;
  border-radius: 999px;
  background: rgba(145, 8, 220, 0.08);
  color: var(--ca-accent);
  font-family: "DM Sans", Sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  white-space: nowrap;
}

.ca-list { margin-top: 1rem; color: var(--ca-muted); font-size: 16px; line-height: 25px; }

.ca-tip + .ca-tip { margin-top: 1.2rem; }
.ca-tip h4 {
  margin: 0 0 0.3rem;
  font-family: "Poppins", Sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-tip p { margin: 0; }

/* ---------------------------------------------------------------- the two states */
/* One rule pair, and everything else is a class in the markup. .ca-when-draft is on what only
   makes sense while the answers can still change; .ca-when-locked on what only makes sense once
   the Route has been built. Nothing is duplicated in the script. */
body[data-ca-state="draft"] .ca-when-locked { display: none; }
body[data-ca-state="locked"] .ca-when-draft { display: none; }

.ca-badge-locked { background: rgba(21, 47, 78, 0.08); color: var(--e-global-color-65e99da, #152f4e); }

/* A section whose answers are fixed should look fixed. Greying the copy would make it harder to
   read for no gain, so the signal is on the edge and on the controls. */
body[data-ca-state="locked"] .ca-lockable { border-color: #c9d2dd; background: #fbfcfd; }
body[data-ca-state="locked"] .ca-lockable .ca-locked.ca-locked {
  border-style: dashed;
  color: var(--ca-muted);
  background: transparent;
}
body[data-ca-state="locked"] .ca-lockable .ca-locked.ca-locked:hover,
body[data-ca-state="locked"] .ca-lockable .ca-locked.ca-locked:focus-visible {
  border-color: var(--e-global-color-65e99da, #152f4e);
  color: var(--e-global-color-65e99da, #152f4e);
}

.ca-statepicker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.9rem;
  align-items: center;
  margin: -1.2rem 0 2rem;
  padding: 0.6rem 0.9rem;
  border: 1px dashed var(--ca-line);
  border-radius: 12px;
  font-size: 14px;
  line-height: 22px;
  color: var(--ca-muted);
}
.ca-statepicker-label { font-weight: 600; }
.ca-statepicker-note { flex: 1 1 100%; }
.ca-statepicker-note p { margin: 0; }

.ca-seg { display: inline-flex; border: 1px solid var(--ca-line); border-radius: 999px; }
.ca-segbtn.ca-segbtn {
  padding: 0.3rem 0.9rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-weight: 600;
  color: var(--ca-muted);
  cursor: pointer;
}
.ca-segbtn.ca-segbtn[aria-pressed="true"] { background: var(--ca-accent); color: #fff; }

/* --------------------------------------------------------------------------- tabs */
.ca-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.2rem 0 1.2rem;
  border-bottom: 1px solid var(--ca-line);
}
.ca-tab.ca-tab {
  padding: 0.55rem 1rem 0.7rem;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 8px 8px 0 0;
  background: transparent;
  font-family: "DM Sans", Sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--ca-muted);
  cursor: pointer;
}
.ca-tab.ca-tab[aria-selected="true"] {
  border-bottom-color: var(--ca-accent);
  color: var(--ca-accent);
}
.ca-tabpanel[hidden] { display: none; }

/* ------------------------------------------------------- the two ways to generate */
/* Side by side and the same size, because the choice is genuine in both directions: sooner but
   blind to reservations not made yet, or later but built around them. */
.ca-choice {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1.2rem 0 0;
}
.ca-option {
  display: flex;
  flex-direction: column;
  padding: 1.1rem 1.2rem 1.2rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fbfcfd;
}
.ca-option-title {
  margin: 0 0 0.5rem;
  font-family: "Poppins", Sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-option .ca-prose { flex: 1 1 auto; font-size: 15.5px; line-height: 24px; }
.ca-option .ca-actions { margin-top: 1rem; }
.ca-locked-primary.ca-locked-primary { border-color: var(--ca-accent); color: var(--ca-accent); }

.ca-aviso {
  margin-top: 1.1rem;
  padding: 0.8rem 1rem;
  border-radius: 12px;
  background: rgba(145, 8, 220, 0.05);
  font-size: 15px;
  line-height: 24px;
  color: var(--ca-ink);
}
.ca-aviso p { margin: 0; }

/* --------------------------------------------------------------- the locked actions */
.ca-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1.2rem;
}

.ca-locked.ca-locked {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.1rem 0.6rem 0.9rem;
  border: 1px solid var(--ca-line);
  border-radius: 100px;
  background: var(--ca-card);
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--ca-ink);
  text-align: left;
  cursor: pointer;
}
/* A padlock, inline so it needs no icon font and no extra request. */
.ca-locked.ca-locked::before {
  content: "";
  flex: none;
  width: 15px;
  height: 15px;
  background: currentColor;
  opacity: 0.75;
  -webkit-mask: var(--ca-lock) center / contain no-repeat;
  mask: var(--ca-lock) center / contain no-repeat;
  --ca-lock: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z'/%3E%3C/svg%3E");
}
.ca-locked.ca-locked:hover, .ca-locked.ca-locked:focus-visible {
  border-color: var(--ca-accent);
  color: var(--ca-accent);
}

.ca-linkish.ca-linkish {
  padding: 0.6rem 0;
  border: 0;
  background: none;
  color: var(--ca-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ca-linkish.ca-linkish:hover, .ca-linkish.ca-linkish:focus-visible { border-color: transparent; }

.ca-lock-copy[hidden] { display: none; }

/* ------------------------------------------------------------------------- the CTA */
.ca-cta.ca-cta {
  display: inline-block;
  padding: 0.72rem 1.6rem;
  border: 0;
  border-radius: 100px;
  background: var(--ca-accent);
  color: var(--e-global-color-cd2d769, #fff);
  font-family: "DM Sans", Sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 26px;
  cursor: pointer;
}
.ca-cta.ca-cta:hover { filter: brightness(1.08); }
.ca-cta.ca-cta[disabled] { opacity: 0.55; cursor: progress; }

.ca-ghost.ca-ghost {
  padding: 0.72rem 1.4rem;
  border: 1px solid var(--ca-accent);
  border-radius: 100px;
  background: transparent;
  color: var(--ca-accent);
  font-family: "DM Sans", Sans-serif;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}

/* ------------------------------------------------------------------- the pinned bar */
/* The draft asks for the preview banner to be visible at all times. A bar pinned to the top
   would fight the site header, which is itself sticky and hides on scroll, so this one sits at
   the bottom and carries only the price and the CTA — no sentence of the copy is repeated. */
.ca-bar {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 90;
  padding: 0.7rem 0;
  padding-bottom: max(0.7rem, env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid var(--ca-line);
  box-shadow: 0 -8px 24px -20px rgba(21, 47, 78, 0.7);
}
.ca-bar[hidden] { display: none; }
/* Over the planner the bar steps aside (client-area.js, 31 October 2026): it repeats the CTA
   that is right there, and at 390 it covered the date and days fields. A transform, so the
   page never reflows; visibility so it cannot be tabbed into while away. */
.ca-bar { transition: transform 0.2s ease, visibility 0s linear 0s; }
.ca-bar.ca-bar-away { transform: translateY(110%); visibility: hidden;
                      transition: transform 0.2s ease, visibility 0s linear 0.2s; }
/* One line, always: "Conseguid vuestro itinerario" wrapped to two lines the moment "—" became
   "45,00 €", and the bar grew 72 -> 98px under the visitor's thumb. */
.ca-bar .ca-cta.ca-cta { white-space: nowrap; }
.ca-bar-inner {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  max-width: 62rem;
  margin: 0 auto;
  padding: 0 1.2rem;
  font-family: "DM Sans", Sans-serif;
}
.ca-bar-price { margin: 0; font-size: 15px; line-height: 22px; color: #16202e; }
.ca-bar-price strong { font-family: "Poppins", Sans-serif; font-size: 21px; }
.ca-bar-price span { display: block; font-size: 13px; color: #5a6b80; }

/* the bar must not sit on top of the footer's last line */
body { padding-bottom: 84px; }

/* ==================== THE BAR, COMPACT (Pol, 31 Oct 2026: "too much useless space") ====
   - No days, no bar: client-area.js sets .ca-bar-empty while the amount is "—", and the bar
     waits off screen the same way it steps aside over the planner.
   - One 64px row. The short label is only for the badge case below.
   - Netlify's badge (iframe 201x64, fixed bottom-right; Pol stays on the free plan, so it stays)
     shares the row instead of the bar being lifted over a white skirt: the right 205px of the
     row are left to it, the price moves into the button ("Comprar · 45,00 €"), and on a phone
     the left 44px are left to the consent icon (consentmanager's #cmpboxrecall, 26x26, fixed
     10px from the bottom-left corner, measured live 31 Oct 2026), so neither covers the CTA. */
.ca-bar.ca-bar-empty { transform: translateY(110%); visibility: hidden;
                       transition: transform 0.2s ease, visibility 0s linear 0.2s; }
.ca-bar { padding: 0; padding-bottom: env(safe-area-inset-bottom); }
.ca-bar-inner { min-height: 64px; box-sizing: border-box; padding-top: 8px; padding-bottom: 8px; }
.ca-bar .ca-cta.ca-cta { padding: 0.6rem 1.3rem; font-size: 16px; line-height: 22px; }
.ca-bar-short { display: none; }
body.ql-netlify-badge .ca-bar-inner { padding-right: 205px; justify-content: flex-start; }
body.ql-netlify-badge .ca-bar-price { display: none; }
body.ql-netlify-badge .ca-bar-long { display: none; }
body.ql-netlify-badge .ca-bar-short { display: inline; }
body.ql-netlify-badge .ca-bar .ca-cta.ca-cta { flex: 1 1 auto; min-width: 0; padding: 0.6rem 0.5rem; font-size: 14px; letter-spacing: -0.005em; }
@media (max-width: 767px) {
  body.ql-netlify-badge .ca-bar-inner { padding-left: 42px; }
}

/* ----------------------------------------------------------------------- the modal */
.ca-modal {
  width: min(34rem, calc(100vw - 2rem));
  padding: 1.6rem 1.7rem 1.5rem;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: #16202e;
  font-family: "DM Sans", Sans-serif;
  font-size: 16.5px;
  line-height: 26px;
  box-shadow: 0 30px 60px -30px rgba(21, 47, 78, 0.75);
}
.ca-modal::backdrop { background: rgba(16, 54, 99, 0.45); }
.ca-modal .ca-h3 { margin: 0.5rem 0 0.7rem; font-size: 21px; line-height: 28px; }
.ca-modal .ca-prose p { margin: 0 0 0.8rem; }
.ca-modal .ca-prose p:last-child { margin-bottom: 0; }

.ca-modal-x.ca-modal-x {
  position: absolute;
  top: 0.6rem;
  right: 0.7rem;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: #5a6b80;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.ca-modal-x.ca-modal-x:hover { background: #f1f4f8; color: #16202e; }

.ca-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.8rem;
  align-items: center;
  margin-top: 1.3rem;
}

/* ------------------------------------------------------------------------ phone */
@media (max-width: 767px) {
  .ca { --ca-pad-top: 22px; padding: var(--ca-pad-top) 0 28px; font-size: 16px; line-height: 25px; }
  .ca-h2 { font-size: 24px; line-height: 31px; }
  .ca-h3 { font-size: 20px; line-height: 27px; }
  .ca-steps { grid-template-columns: 1fr; gap: 0.7rem; }
  .ca-grid2, .ca-kidages { grid-template-columns: 1fr; }
  .ca-section { padding: 1.2rem 1.1rem; }
  .ca-preview { padding: 1rem 1.1rem; }
  .ca-preview-actions { width: 100%; }
  .ca-actions .ca-locked.ca-locked { width: 100%; }
  .ca-choice { grid-template-columns: 1fr; }
  .ca-statepicker { margin-top: -0.6rem; }
  .ca-seg { width: 100%; }
  .ca-segbtn.ca-segbtn { flex: 1 1 0; }
  .ca-tabs { flex-wrap: nowrap; }
  .ca-tab.ca-tab { flex: 1 1 0; padding: 0.55rem 0.4rem 0.7rem; font-size: 14.5px; }
  .ca-buyrow { align-items: stretch; }
  .ca-buyrow .ca-cta { width: 100%; }
  .ca-bar-inner { padding: 0 1rem; gap: 0.8rem; }
  .ca-bar-price span { display: none; }
  .ca-bar .ca-cta.ca-cta { padding-left: 1rem; padding-right: 1rem; font-size: 15.5px; }
  .ca-modal-actions .ca-cta, .ca-modal-actions .ca-ghost { width: 100%; }
  body { padding-bottom: 76px; }
}

/* ========================================================================================
 * THE CARD GRID AND THE PAGES UNDER IT
 *
 * Pol: "the client area is very long and verbose. I was imagining bigger cards with images and
 * titles." So /tu-viaje/ is a grid of five cards and each one opens a real page. Detail is
 * a PAGE and not a modal because this is reference content that should be indexable and
 * shareable, and a modal has no URL for either. Modals stay for actions, which is what they
 * were for.
 * ======================================================================================== */

/* The purchase CTA is an <a> now, not a <button>, because on a detail page there is no form to
 * scroll to and it has to be able to navigate. .ca-cta already sets its own background and
 * colour, so the only thing a link needs on top is the underline off. */
.ca-cta.ca-cta { text-decoration: none; }

/* Only in .ca-sr, for the per-cell "Añadir desayuno del día 2" that makes nine identical
 * buttons distinguishable to a screen reader and to the modal title. */
.ca-sr {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ------------------------------------------------------------------- sub-navigation
   Moved into the band as tabs on 31 Oct 2026: see THE BAND AND ITS TABS at the end of this file. */

/* -------------------------------------------------------------------------- the cards */
.ca-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1.3rem;
}
/* Five cards into three columns leaves a hole. Comida takes two, which is also the honest
   ranking: it is the only section with a deadline attached to it. */
.ca-card:first-child { grid-column: span 2; }

.ca-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--ca-line);
  border-radius: 16px;
  background: var(--ca-card);
  color: inherit;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.ca-card:hover, .ca-card:focus-visible {
  transform: translateY(-2px);
  border-color: var(--ca-accent);
  box-shadow: 0 16px 32px -26px rgba(21, 47, 78, 0.8);
}

/* Each card carries its section's colour and a line scene of the subject (Pol, 31 October 2026:
   «ilustraciones de marca», no stock photography). The same scenes head the articles that use the
   guide layout (.ca-articulo-band). Swapping one for a photo is one background-image rule per
   [data-art] value and no markup change. */
.ca-card-art {
  position: relative;
  display: block;
  height: 168px;
  background: linear-gradient(135deg, #6b7c93, #2f3b4c);
}
.ca-card-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.ca-card-art[data-art="comida"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-card-art[data-art="comida"]::after {
  background-image: url("../img/tu-viaje/scene-comida.svg");
}
.ca-card-art[data-art="atracciones"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-card-art[data-art="atracciones"]::after {
  background-image: url("../img/tu-viaje/scene-atracciones.svg");
}
.ca-card-art[data-art="espectaculos"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-card-art[data-art="espectaculos"]::after {
  background-image: url("../img/tu-viaje/scene-espectaculos.svg");
}
.ca-card-art[data-art="alojamiento"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-card-art[data-art="alojamiento"]::after {
  background-image: url("../img/tu-viaje/scene-alojamiento.svg");
}
.ca-card-art[data-art="grupo"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-card-art[data-art="grupo"]::after {
  background-image: url("../img/tu-viaje/scene-grupo.svg");
}

.ca-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1rem 1.2rem 1.2rem;
}
.ca-card-title {
  font-family: "Poppins", Sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-card-text { font-size: 15.5px; line-height: 24px; color: var(--ca-muted); }
/* No «→» row at the foot of each card any more (Pol, 31 Oct 2026: «the card is a shortcut but
   tabs are on top anyway»). The whole card is still the link. */

/* --------------------------------------------------------------- blocks, strips, leads */
.ca-block { margin: 0 0 1.6rem; }
.ca-block .ca-h2 { margin-bottom: 0.5rem; }
.ca-lead { color: var(--ca-muted); }

/* A strip is a section that turned out to be one fact and one button. Two of them replaced
   two full sections of prose on the grid page. */
.ca-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 1.2rem;
  padding: 1.1rem 1.4rem;
  border: 1px solid var(--ca-line);
  border-radius: 16px;
  background: var(--ca-card);
}
.ca-strip-main { flex: 1 1 24rem; min-width: 0; }
.ca-strip .ca-h3 { margin-bottom: 0.5rem; }
.ca-strip .ca-actions { margin-top: 0; align-items: center; }
.ca-strip .ca-prose { font-size: 16px; line-height: 25px; color: var(--ca-muted); }

/* ---------------------------------------------------------------------- fact lists */
.ca-factlist {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ca-factlist li {
  margin: 0;
  padding: 0.3rem 0.75rem 0.35rem;
  border: 1px solid var(--ca-line);
  border-radius: 999px;
  background: #fbfcfd;
  font-size: 14.5px;
  line-height: 22px;
}
.ca-fact-k { color: var(--ca-muted); }
.ca-fact-k::after { content: ":"; }
.ca-facts-grid .ca-factlist li { font-weight: 600; }

/* ------------------------------------------------------------- the reservations grid */
/* Days down, meals across. UNIQUE (trip_id, reservation_date, meal) in db/003_intake.sql is
   exactly what one cell expresses, so the grid cannot describe a state the database would
   refuse. It also shows the GAPS, which a list of what has been added structurally cannot. */
.ca-matrix-legend {
  margin: 1.1rem 0 0.6rem;
  font-size: 14.5px;
  line-height: 24px;
  color: var(--ca-muted);
}
.ca-matrix { display: grid; gap: 0.5rem; }
.ca-matrix-head, .ca-matrix-row {
  display: grid;
  grid-template-columns: minmax(8rem, 1.15fr) repeat(3, 1fr);
  gap: 0.5rem;
}
.ca-matrix-head span {
  padding-left: 0.2rem;
  font-size: 13px;
  font-weight: 600;
  color: var(--ca-muted);
}
.ca-matrix-day {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  justify-content: center;
  align-items: flex-start;
  padding: 0.5rem 0.2rem;
  font-size: 15px;
}
.ca-matrix-cell {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  justify-content: center;
  min-height: 64px;
  padding: 0.5rem;
  border: 1px dashed var(--ca-line);
  border-radius: 12px;
  background: #fbfcfd;
}
/* The meal name is in every cell for the phone, where the column headers are gone. On a wide
   screen the header says it once and this is hidden - no copy is duplicated in a content file
   or in the script to make the two layouts work. */
.ca-matrix-meal { display: none; font-size: 13.5px; font-weight: 600; color: var(--ca-muted); }
.ca-add.ca-add {
  width: 100%;
  justify-content: center;
  padding: 0.42rem 0.6rem;
  border-style: dashed;
  font-size: 14px;
}
.ca-matrix-more { grid-template-columns: 1fr; }
.ca-matrix-more .ca-matrix-day {
  padding-top: 0.2rem;
  font-size: 14px;
  color: var(--ca-muted);
}

/* --------------------------------------------------------------------------- posts */
.ca-posts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 1rem;
  margin-top: 1.1rem;
}
.ca-post {
  position: relative;
  padding: 1.1rem 1.2rem 1.2rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: var(--ca-card);
}
.ca-post-title {
  margin: 0 0 0.4rem;
  font-family: "Poppins", Sans-serif;
  font-size: 17px;
  line-height: 25px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-post-text { margin: 0; font-size: 15px; line-height: 23px; color: var(--ca-muted); }
.ca-pending {
  display: inline-block;
  margin: 0 0 0.5rem;
  padding: 0.1rem 0.6rem 0.15rem;
  border: 1px dashed var(--ca-muted);
  border-radius: 999px;
  color: var(--ca-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* ------------------------------------------------------- Extra Magic Time, the two sides */
/* The rule shown as its two outcomes rather than as a dismissible warning. Nothing here takes
   input: this is the logged-out page and there is no write path, and a control that accepts an
   answer and drops it is worse than one that says no. */
.ca-emh { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.2rem 0 0; }
.ca-emh-col {
  padding: 1.1rem 1.2rem 1.2rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fbfcfd;
  font-size: 15.5px;
  line-height: 24px;
}
.ca-emh-col[data-emh="yes"] { border-color: var(--ca-accent); background: rgba(145, 8, 220, 0.04); }
.ca-emh-col p { margin: 0 0 0.6rem; }
.ca-emh-col p:last-child { margin-bottom: 0; }
.ca-emh-title {
  margin: 0 0 0.5rem;
  font-family: "Poppins", Sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-emh-who { font-weight: 600; color: var(--ca-ink); }

/* A rule we apply, stated where it applies. Heavier than a note and lighter than a warning:
   it is not an alarm, it is how the question is ordered and why. */
.ca-rule {
  margin: 1.2rem 0 0;
  padding: 0.9rem 1.1rem;
  border-left: 4px solid var(--ca-accent);
  border-radius: 0 12px 12px 0;
  background: rgba(145, 8, 220, 0.05);
  font-size: 15.5px;
  line-height: 25px;
}
.ca-rule p { margin: 0 0 0.7rem; }
.ca-rule p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------- why we ask ages and heights */
/* Five reasons, and it is five because there are five things an age and a height decide. A
   repeat(auto-fit, …) track packed them 4 + 1 and left a hole; six sixths with the last two
   items taking three each reads as 3 + 2. Tied to the count on purpose — the count is the
   content here, not an accident of how many fitted. */
.ca-why {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.8rem;
  margin: 1.2rem 0 0;
}
.ca-why-item { grid-column: span 2; }
.ca-why-item:nth-child(4), .ca-why-item:nth-child(5) { grid-column: span 3; }
.ca-why-item {
  padding: 0.9rem 1rem 1rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fbfcfd;
}
.ca-why-item p { margin: 0; font-size: 14.5px; line-height: 23px; color: var(--ca-muted); }
.ca-why-title {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.4rem;
  font-family: "Poppins", Sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-why-title::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background: var(--ca-accent);
  -webkit-mask: var(--ca-why-icon) center / contain no-repeat;
  mask: var(--ca-why-icon) center / contain no-repeat;
}
.ca-why-item[data-why="intensity"] .ca-why-title {
  --ca-why-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 18c3 0 4-12 8-12s5 8 8 8 3-4 4-4'/></svg>");
}
.ca-why-item[data-why="height"] .ca-why-title {
  --ca-why-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 21V3M19 21V3M5 8h4M5 13h4M5 18h4'/></svg>");
}
.ca-why-item[data-why="babyswitch"] .ca-why-title {
  --ca-why-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8h13l-3-3M20 16H7l3 3'/></svg>");
}
.ca-why-item[data-why="singlerider"] .ca-why-title {
  --ca-why-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='6.5' r='3'/><path d='M6 21a6 6 0 0 1 12 0'/></svg>");
}
.ca-why-item[data-why="stroller"] .ca-why-title {
  --ca-why-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h2l2 8h11a7 7 0 0 1-7 6h-2a4 4 0 0 1-4-4'/><circle cx='9' cy='20' r='1.5'/><circle cx='17' cy='20' r='1.5'/></svg>");
}

/* ------------------------------------------------------------------- the height table */
.ca-heights { margin: 1.3rem 0 0.6rem; overflow-x: auto; }
.ca-heights table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ca-heights th, .ca-heights td {
  padding: 0.55rem 0.7rem;
  border-bottom: 1px solid var(--ca-line);
  text-align: left;
  vertical-align: top;
}
.ca-heights th {
  font-family: "DM Sans", Sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--ca-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ca-heights td:first-child {
  width: 7.5rem;
  font-family: "Poppins", Sans-serif;
  font-weight: 600;
  color: var(--ca-accent);
  white-space: nowrap;
}
.ca-heights-note { margin: 0; font-size: 14px; line-height: 22px; color: var(--ca-muted); }

/* -------------------------------------------------------------- the detail-page CTA */
.ca-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin: 2rem 0 0;
  padding: 1.2rem 1.4rem;
  border: 1px solid var(--ca-accent);
  border-radius: 16px;
  background: var(--ca-card);
}
.ca-foot-text { flex: 1 1 22rem; font-size: 15.5px; line-height: 25px; color: var(--ca-muted); }
.ca-foot-text p { margin: 0; }

/* The purchase form is a dialog now and it is on all six pages, so #ca-form no longer says
   anything about whether this page has a pinned bar. #ca-bar does. */
body:not(:has(#ca-bar)) { padding-bottom: 0; }

/* ------------------------------------------------------------------------ phone */
@media (max-width: 767px) {
  .ca-cards { grid-template-columns: 1fr; }
  .ca-card:first-child { grid-column: auto; }
  .ca-card-art { height: 140px; }
  .ca-card-title { font-size: 18px; }


  /* The matrix restacks: one card per day, three labelled slots inside it. Same markup - the
     per-cell meal name that desktop hides is what carries the phone layout. Three columns is
     the most a matrix can have here and it will never grow, which is why the shape survives
     a phone at all; a matrix that got wider would not. */
  .ca-matrix { gap: 0.7rem; }
  .ca-matrix-head { display: none; }
  .ca-matrix-row {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0.6rem 0.9rem 0.8rem;
    border: 1px solid var(--ca-line);
    border-radius: 14px;
    background: var(--ca-card);
  }
  /* justify-content is the cross axis no longer: the base rule centres a column, and once the
     direction flips to row that same rule centres the day label horizontally. */
  .ca-matrix-day {
    flex-direction: row;
    justify-content: flex-start;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.1rem 0 0.4rem;
  }
  .ca-matrix-cell {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    min-height: 0;
    padding: 0.5rem 0;
    border: 0;
    border-top: 1px dashed var(--ca-line);
    border-radius: 0;
    background: transparent;
  }
  .ca-matrix-meal { display: block; }
  .ca-add.ca-add { width: auto; flex: none; }
  .ca-matrix-more {
    padding: 0;
    border: 0;
    background: transparent;
  }
  .ca-matrix-more .ca-matrix-day { padding: 0; }

  .ca-emh { grid-template-columns: 1fr; }
  .ca-why { grid-template-columns: 1fr; }
  .ca-why-item, .ca-why-item:nth-child(4), .ca-why-item:nth-child(5) { grid-column: auto; }
  .ca-posts { grid-template-columns: 1fr; }
  .ca-strip { padding: 1rem 1.1rem; }
  .ca-strip .ca-actions { width: 100%; }
  .ca-foot { padding: 1.1rem; }
  .ca-foot .ca-cta { width: 100%; text-align: center; }
  .ca-heights td:first-child { width: 5.5rem; }
}

/* ========================================================================================
 * EDITABLE FIRST
 *
 * Pol: "Inside the sections, the lock and CTA should be in the editable bits: reservations,
 * party heights and ages, must sees, etc. That should always be the first block. The rest
 * should allow the customer to gather information so they can decide better on those editable
 * ones." So every section page opens with .ca-editable and everything under it is reading
 * matter. These rules are what make the two halves look like two halves.
 * ======================================================================================== */

/* A heading and its step or section tag, as one unit, so .ca-section-head can keep pushing the
   badge to the far end. Without the wrapper, space-between puts the tag, the title and the
   badge at three different edges. */
.ca-section-title { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.ca-step-tag {
  font-family: "DM Sans", Sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ca-accent);
}
.ca-section-title .ca-h2, .ca-section-title .ca-h3 { margin: 0; }

/* The first block on the page is the one the visitor is meant to act on, so it is the only
   block with the accent edge. Everything below it is white on the same page background. */
.ca-editable {
  border-color: var(--ca-accent);
  box-shadow: 0 14px 34px -26px rgba(21, 47, 78, 0.6);
}
body[data-ca-state="locked"] .ca-editable { box-shadow: none; }

/* The bridge sentence between the editable block and the reading matter. */
.ca-infolead { margin: 1.6rem 0 1.2rem; }
/* Two lead paragraphs in a row - the page's own bridge line and the shared "the posts are
   being written" note - would otherwise touch, because .ca-prose zeroes the last margin. */
.ca-lead + .ca-lead { margin-top: 0.9rem; }
/* Same reason, for an information block built from two content values in a row - the shows page
   puts the nightly-show paragraph and the parade paragraph next to each other. */
.ca-block .ca-prose + .ca-prose { margin-top: 0.9rem; }

/* ------------------------------------------------------------------- the locked preview */
/* Pol: "Editable blocks should either be the title, or a preview of filled content (as an
   example) that cannot be edited (with a lock and if clicked pop up to CTA)."
   .ca-lockpad is that second treatment. It carries data-lock itself, and the script delegates
   with closest, so a click anywhere in it that is not already a button opens the same modal -
   no extra JavaScript, and no invisible overlay stealing the real buttons' pointer events. It
   is not focusable: the controls inside it are, and they are the accessible path to the same
   modal. */
.ca-lockpad {
  position: relative;
  margin-top: 1.2rem;
  padding: 1rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  /* The hatch is the signal that this is an example and not a state. It is a gradient, not an
     image, so it costs no request and follows the accent colour. */
  background:
    repeating-linear-gradient(135deg, rgba(145, 8, 220, 0.045) 0 10px, transparent 10px 20px),
    #fdfdff;
  cursor: pointer;
}
.ca-lockpad:hover { border-color: var(--ca-accent); }

/* Said in words as well as in hatching, because a pattern is not a sentence. In flow rather
   than absolutely positioned: this string is the longest thing in the block and it has to be
   free to wrap to two lines in ca/en/fr without landing on top of the key below it. */
.ca-example-tag {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.7rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ca-accent);
}
.ca-example-tag::before {
  content: "";
  flex: none;
  align-self: flex-start;
  margin-top: 0.25rem;
  width: 13px;
  height: 13px;
  background: currentColor;
  -webkit-mask: var(--ca-lock) center / contain no-repeat;
  mask: var(--ca-lock) center / contain no-repeat;
  --ca-lock: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------- the four kinds of meal in a cell */
/* Pol: "The matrix could display the reservations with a lock or some other signal and the rest
   with the recommended restaurants... it could include lunch in the hotel, or bring your own
   sandwich to show diversity and richness of planning." The distinction between a table the
   customer booked and a place we suggested is the product, so it is the loudest thing in the
   grid: colour, tag, and whether there is a Cambiar button at all. */
.ca-matrix-key {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin: 0 0 0.8rem;
  padding: 0;
  list-style: none;
  font-size: 13.5px;
  color: var(--ca-muted);
}
.ca-matrix-key li { display: flex; align-items: center; gap: 0.4rem; }
.ca-key-swatch {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 4px;
  border: 1px solid var(--ca-line);
  background: #fbfcfd;
}
.ca-key-swatch[data-kind="reserva"] { border-color: #152f4e; background: rgba(21, 47, 78, 0.12); }
.ca-key-swatch[data-kind="sugerida"] { border-color: var(--ca-accent); background: rgba(145, 8, 220, 0.1); }
.ca-key-swatch[data-kind="hotel"] { border-color: #0f766e; background: rgba(15, 118, 110, 0.12); }
.ca-key-swatch[data-kind="fuera"] { border-color: #b45309; background: rgba(180, 83, 9, 0.12); }
.ca-key-swatch[data-kind="libre"] { border-style: dashed; }

.ca-matrix-filled {
  align-items: flex-start;
  gap: 0.15rem;
  border-style: solid;
  background: #fff;
}
.ca-cell-kind {
  font-family: "DM Sans", Sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ca-cell-what { font-size: 14.5px; font-weight: 600; line-height: 20px; color: var(--ca-ink); }
.ca-cell-when { font-size: 13px; line-height: 19px; color: var(--ca-muted); }

/* The alternative half of a paired cell. A packed lunch is never shown on its own - see the
   comment in tu-viaje-comida.html. It reads as a second, lighter line under the
   recommendation so the pair says "here, or this instead", not "we had nothing for you". */
.ca-cell-alt {
  display: block;
  margin-top: 5px;
  padding-top: 5px;
  border-top: 1px dashed var(--ca-line);
  font-size: 12.5px;
  line-height: 17px;
  color: var(--ca-muted);
}
.ca-cell-or {
  font-weight: 700;
  font-style: italic;
  margin-right: 2px;
  color: var(--ca-ink);
}

/* ------------------------------------------------------------------ cell icons
   Pol: "no 'os proponemos', and this kind of types... Icon to change if possible,
   restaurant and time." With the kind words gone, three things carry the meaning:
   a pencil = we suggested this and it can be swapped; a plus = nothing here yet;
   a bookmark = the customer's own booking, which has NO control because it is not
   ours to change. Every icon keeps a .ca-sr label, so the grid still reads aloud as
   "Vuestra reserva: restaurante" / "Cambiar Comida Día 1". */
.ca-i {
  width: 15px; height: 15px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.ca-i-book {
  width: 13px; height: 13px;
  fill: currentColor; stroke: none;
  margin-right: 5px; vertical-align: -1px;
}
.ca-matrix-cell .ca-cell-edit,
.ca-matrix-cell .ca-add {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 0;
  border-radius: 999px;
  line-height: 0;
}
.ca-matrix-cell .ca-cell-edit { position: absolute; top: 6px; right: 6px; }
.ca-matrix-cell { position: relative; }
.ca-cell-what { padding-right: 26px; }

/* Tighter cards. The kind line is gone, so a filled cell is two lines - name, hour -
   and the box should not keep the height it needed for three. */
.ca-matrix-cell.ca-matrix-filled { padding: 9px 10px; }
.ca-cell-what { font-size: 14px; line-height: 18px; }
.ca-cell-when { font-size: 12.5px; line-height: 17px; font-variant-numeric: tabular-nums; }

/* ------------------------------------------------- the grid stays a grid on a phone
   Pol: "don't the three columns fit in the phone view? ... try with full width."
   Pol, 26 August 2026: "the reservation block is overflowing the section, make it tighter."

   BOTH OF THOSE ARE HONOURED HERE, and the second one overturned the first's mechanism.
   The three columns did not fit at 390 because the grid was living inside 116px of
   inherited padding - 58.5px of Elementor's container margin, 35px of section padding and
   22px of lockpad - which left each meal column 64px, not enough for "Agrabah Café
   Restaurant". The fix then was 100vw with a calc() pull, which is immune to any ancestor's
   padding because it steps OUTSIDE it. It bought ~110px columns and it did so by breaking
   out of the section: measured at 390 on 26 August, .ca-matrix ran 0 -> 390 while the
   section ran 29 -> 361, so the day cards hung 48px past the border on both sides.

   So the padding is taken off the CONTAINERS instead of escaped. Section padding drops to
   12px and .ca-resbox to 8px for this block only, which leaves ~85px per column at 390 -
   less than the bleed bought, and inside the box, which is what was asked for. The columns
   hold what they now have to hold: an empty cell is a plus, and a filled one is the
   customer's own venue name, which wraps. */
@media (max-width: 767px) {
  #ca-reservations { padding-left: 12px; padding-right: 12px; }
  #ca-reservations .ca-resbox { padding-left: 8px; padding-right: 8px; }

  .ca-matrix {
    gap: 4px;
  }
  .ca-matrix-head,
  .ca-matrix-row {
    display: grid;
    grid-template-columns: 24px repeat(3, 1fr);
    gap: 4px;
    align-items: stretch;
  }
  .ca-matrix-head { display: grid; font-size: 10.5px; }
  .ca-matrix-head span { padding: 0 2px; }

  /* The day label turns on its side: it is two characters, and a horizontal one would
     cost a column the restaurants need more. */
  .ca-matrix-day {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    display: flex; align-items: center; justify-content: center;
    padding: 2px; font-size: 10.5px; line-height: 1;
  }
  .ca-matrix-day .ca-slot,
  .ca-matrix-day .ca-matrix-date { display: none; }

  /* ...but the closing "one row per day of your trip" note is a sentence, not a label.
     Turning that on its side made it 600px tall and was most of the grid's height. */
  .ca-matrix-more .ca-matrix-day {
    writing-mode: horizontal-tb;
    transform: none;
    display: block;
    text-align: center;
    font-size: 12px;
    line-height: 1.4;
    padding: 6px 8px;
  }

  /* The column header already names the meal, so the per-cell label is redundant here. */
  .ca-matrix-meal { display: none; }

  /* One icon per cell. The pencil already says "this is ours and it can change"; the
     generic lock glyph on every .ca-locked control is right in a row of wide buttons and
     just noise in a 102px cell that is already inside a locked pad. */
  .ca-matrix-cell .ca-locked.ca-locked::before { display: none; }

  /* BACK TO A COLUMN. The 1023px restack turns a cell into a ROW - name and hour side by
     side - because there it is a full-width line inside a per-day card. Three columns is the
     opposite shape and this block never undid it, so a 74px cell was laying "Café Hyperion"
     and "13:15" out horizontally and spilling 40px into its neighbour. Measured at 390 on
     26 August 2026: scrollWidth 114 against clientWidth 74, and the overlap was visible.
     min-width:0 is what lets a grid item shrink below its content at all; without the
     direction reset it only decided WHERE the overflow went. */
  .ca-matrix-cell {
    min-width: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 2px;
  }
  .ca-cell-what, .ca-cell-when, .ca-cell-alt {
    min-width: 0;
    overflow-wrap: break-word;
    hyphens: none;
  }
  /* A .ca-slot chip has padding and a border and does not wrap, so at this width it is the one
     thing in the grid that cannot be made to fit by shrinking type. It is allowed to break. */
  .ca-matrix-cell .ca-slot {
    max-width: 100%;
    overflow-wrap: break-word;
    white-space: normal;
  }
  .ca-matrix-cell.ca-matrix-filled { padding: 7px 6px; }
  .ca-cell-what {
    font-size: 11.5px; line-height: 14.5px; padding-right: 0;
    /* break-word, NOT anywhere: "anywhere" split Café Hyperion into "Caf é Hy peri on".
       Long names should wrap between words and only break as a last resort. */
    overflow-wrap: break-word;
    hyphens: none;
  }
  .ca-cell-when { font-size: 11px; line-height: 14px; }
  .ca-cell-alt { font-size: 10.5px; line-height: 13px; margin-top: 4px; padding-top: 4px; }
  .ca-cell-or { margin-right: 1px; }

  /* Static, not absolute: at this width an overlaid button would sit on top of the name. */
  .ca-matrix-cell .ca-cell-edit {
    position: static; transform: none;
    width: 22px; height: 22px; margin-top: 4px;
  }
  /* An empty cell IS the control now - there is nothing else in it - so the plus fills the
     cell rather than sitting in the middle of it as a 26px dot. Same markup, a bigger
     target, which is the whole difference on a phone. */
  .ca-matrix-cell .ca-add { width: 100%; height: auto; min-height: 32px; }
  .ca-i { width: 13px; height: 13px; }

  .ca-matrix-more { grid-template-columns: 1fr; }
}

.ca-matrix-filled[data-kind="reserva"] { border-color: #152f4e; background: rgba(21, 47, 78, 0.05); }
.ca-matrix-filled[data-kind="reserva"] .ca-cell-kind { color: #152f4e; }
.ca-matrix-filled[data-kind="sugerida"] { border-color: var(--ca-accent); background: rgba(145, 8, 220, 0.05); }
.ca-matrix-filled[data-kind="sugerida"] .ca-cell-kind { color: var(--ca-accent); }
.ca-matrix-filled[data-kind="hotel"] { border-color: #0f766e; background: rgba(15, 118, 110, 0.05); }
.ca-matrix-filled[data-kind="hotel"] .ca-cell-kind { color: #0f766e; }
.ca-matrix-filled[data-kind="fuera"] { border-color: #b45309; background: rgba(180, 83, 9, 0.05); }
.ca-matrix-filled[data-kind="fuera"] .ca-cell-kind { color: #b45309; }

/* A booking of theirs is a fixed point; there is nothing to swap. A suggestion of ours can be
   changed for something nearby, and that button is the only place the difference is an action
   and not just a colour. */
.ca-cell-edit.ca-cell-edit {
  align-self: flex-start;
  margin-top: 0.25rem;
  padding: 0.22rem 0.6rem 0.22rem 0.5rem;
  border-style: dashed;
  font-size: 12.5px;
}
.ca-cell-edit.ca-cell-edit::before { width: 11px; height: 11px; }

/* --------------------------------------------- rows of answers, one per repeated thing */
/* Two blocks are the same idea and therefore the same rules: the per-day hours on
   /alojamiento/ (a day, an entry, an exit) and the party on /grupo/ (a person, an age, a
   height). Three columns, a label column and two value cells, and EVERY value is a dashed chip
   because all of them are the customer's own data and none of them is ours to guess. Same
   restack as the meals grid at 767px, one column narrower.

   They share the declarations rather than owning a copy each: two identical blocks drifting
   apart is how /alojamiento/ and /grupo/ would stop looking like one product. The class names
   stay per-block so the markup still says what it is. */
.ca-answers { margin: 0 0 1rem; }
.ca-hours, .ca-people { display: grid; gap: 0.5rem; }
.ca-hours-head, .ca-hours-row,
.ca-people-head, .ca-people-row {
  display: grid;
  grid-template-columns: minmax(8rem, 1.15fr) repeat(2, 1fr);
  gap: 0.5rem;
}
.ca-hours-head span,
.ca-people-head span {
  padding-left: 0.2rem;
  font-size: 13px;
  font-weight: 600;
  color: var(--ca-muted);
}
.ca-hours-day,
.ca-people-who {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  justify-content: center;
  /* Without this the chip stretches to the width of the column and stops reading as a chip. */
  align-items: flex-start;
  padding: 0.5rem 0.2rem;
  font-size: 15px;
}
.ca-hours-cell,
.ca-people-cell {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  justify-content: center;
  align-items: flex-start;
  min-height: 52px;
  padding: 0.5rem;
  border: 1px dashed var(--ca-line);
  border-radius: 12px;
  background: #fbfcfd;
}
.ca-hours-lbl,
.ca-people-lbl { display: none; font-size: 13.5px; font-weight: 600; color: var(--ca-muted); }
.ca-hours-more, .ca-people-more { grid-template-columns: 1fr; }
.ca-hours-more .ca-hours-day,
.ca-people-more .ca-people-who { padding-top: 0.2rem; font-size: 14px; color: var(--ca-muted); }

/* The line under the party rows. It carries the two facts the rows themselves cannot show -
   that nothing is pre-filled and that the list may stay empty - so it sits inside the pad,
   where someone counting the example rows is already looking. */
.ca-people-note {
  /* The hairline is what stops it merging with the "and one row per person" line above it:
     two muted paragraphs of the same size stacked with only a margin between them read as one
     paragraph, and at 390px they fill half the pad. */
  margin: 0.7rem 0 0;
  padding-top: 0.7rem;
  border-top: 1px dashed var(--ca-line);
  font-size: 14px;
  line-height: 22px;
  color: var(--ca-muted);
}

/* ------------------------------------------------------------------ the purchase dialog */
/* Pol: "It could fit in a page with two columns and two rows." One .ca-grid2 with four labels
   in it is exactly that, and it is the same class that already collapses to one column at
   767px - so the phone layout costs nothing. Wider than the lock modal because four fields
   next to each other need the room; still narrower than the page. */
.ca-modal-buy { width: min(42rem, calc(100vw - 2rem)); }
.ca-modal-buy .ca-h3 { margin-top: 0; padding-right: 2rem; }
.ca-modal-lead { margin-bottom: 1.2rem; font-size: 15.5px; line-height: 24px; color: var(--ca-muted); }
.ca-modal-buy .ca-grid2 { gap: 0.2rem 1.2rem; }
.ca-modal-buy .ca-buyrow { margin-top: 0.4rem; }
.ca-modal-buy .ca-gate { margin-bottom: 0.2rem; }

/* ======================================================================================== */
/* THE FOOTER COLOUR                                                                        */
/* Navy, #152F4E — --e-global-color-65e99da, a colour the kit already declares, so the palette
 * does not grow. Production paints this footer --e-global-color-356bd45, #FF5479, a hot pink
 * that is the loudest thing on the page once the client area's own purple accent is on screen
 * too. Navy is already this area's colour for "fixed / locked", and it leaves the purple CTA as
 * the only loud thing on the page.
 *
 * Chosen by Pol, August 2026, over the brand purple, which was the other candidate: a purple
 * footer competes with every CTA for the same attention. That option is gone rather than
 * commented out — a dead alternative in a stylesheet is a puzzle for whoever reads it next.
 *
 * Scoped to this stylesheet, which only loads on the six /tu-viaje/ pages, so the six
 * mirrored marketing pages keep production pink and this stays a test rather than a site-wide
 * change. Moving it site-wide is one line in assets/css/chrome.css.
 *
 * The specificity is deliberate: chrome.css sets the background at (0,4,0), so a plain class
 * loses to it however late this file loads.
 */
/* Site-wide since 31 Oct 2026 (Pol: one footer everywhere) - the rule lives in 90-beta.css now. */

/* ------------------------------------------------------------------------------- phone */
@media (max-width: 767px) {
  .ca-lockpad { padding: 0.8rem 0.7rem; }
  .ca-example-tag { font-size: 11.5px; }
  .ca-matrix-key { font-size: 12.5px; gap: 0.3rem 0.8rem; }

  /* THE FILLED-CELL GRID USED TO BE HERE AND IT IS GONE, 26 August 2026.
     It said `display: grid; grid-template-columns: auto 1fr` with the meal name in column 1
     and everything else in column 2, and it was written for the layout where a phone got ONE
     CARD PER DAY and a cell was a full-width line inside it. That layout was replaced by three
     narrow columns further up this file - in an EARLIER @media (max-width: 767px) block, so
     this one won on order and quietly kept turning every cell back into a two-column grid with
     a 12.8px gutter it no longer had the width for.

     What that cost, measured at 390 on 26 August: "Café Hyperion" wrapped one character per
     line, and the cell overflowed its column by 40px into its neighbour. It also explains why
     the cell reported flex-direction: row - it was not a flex container at all, so that was
     just the initial value, and setting flex-direction on it did nothing.

     Nothing outside .ca-matrix uses .ca-matrix-filled, so these five rules had no other job. */

  .ca-hours-head, .ca-people-head { display: none; }
  .ca-hours-row, .ca-people-row {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0.6rem 0.9rem 0.8rem;
    border: 1px solid var(--ca-line);
    border-radius: 14px;
    background: var(--ca-card);
  }
  .ca-hours-day,
  .ca-people-who { flex-direction: row; align-items: baseline; gap: 0.5rem; padding: 0.1rem 0 0.4rem; }
  .ca-hours-cell,
  .ca-people-cell {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    min-height: 0;
    padding: 0.5rem 0;
    border: 0;
    border-top: 1px dashed var(--ca-line);
    border-radius: 0;
    background: transparent;
  }
  .ca-hours-lbl, .ca-people-lbl { display: block; }
  .ca-hours-more, .ca-people-more { padding: 0; border: 0; background: transparent; }
  .ca-hours-more .ca-hours-day,
  .ca-people-more .ca-people-who { padding: 0; }

  .ca-modal-buy { width: calc(100vw - 1.4rem); padding: 1.3rem 1.1rem 1.2rem; }
  .ca-modal-buy .ca-buyrow .ca-cta { width: 100%; }
}

/* ========================================================================================
 * "NOTHING HERE" IS AN ANSWER
 *
 * Pol, August 2026: "all the options in the area de cliente should have an intentional blank
 * response. With that I mean: reservations, I don't have more/any reservations."
 *
 * Two visual jobs, and they are not the same job:
 *
 *   .ca-none*    the control itself, in the editable block. It has to look like something you
 *                DID, not like something you skipped - so the pressed state gets a filled tick,
 *                an accent edge, a Respondido chip, and a different sentence underneath. An
 *                unpressed one is deliberately quiet: it is an option, not an instruction.
 *   .ca-resumen* the completeness summary inside the lock modal, opened by the generate button.
 *
 * Neither of them is allowed to look like an error. There is no red anywhere in this block and
 * no count: everything the summary lists is optional, and a customer who generates with all of
 * it blank has done nothing wrong. --ca-bad is for the purchase form, and stays there.
 * ======================================================================================== */

.ca-nones {
  margin-top: 1.2rem;
  padding: 1rem 1.1rem 1.1rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fbfcfd;
}
.ca-nones-head {
  margin: 0 0 0.7rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ca-muted);
}
.ca-none + .ca-none { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--ca-line); }

/* The control. A button and not a checkbox: the label is a whole sentence, the tick has to sit
   beside it rather than inside a <label>'s baseline, and the two states need a chip and an edge
   that a native box cannot carry. aria-pressed is what makes it a toggle to a screen reader,
   and it is what the stylesheet keys on, so the markup and the announcement cannot disagree. */
.ca-none-btn.ca-none-btn {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--ca-line);
  border-radius: 12px;
  background: #fff;
  font: inherit;
  font-size: 15.5px;
  line-height: 23px;
  font-weight: 600;
  color: var(--ca-ink);
  text-align: left;
  white-space: normal;
  cursor: pointer;
}
.ca-none-btn.ca-none-btn:hover,
.ca-none-btn.ca-none-btn:focus-visible { border-color: var(--ca-accent); }

/* The tick box, drawn rather than imaged: no extra request, and it follows the accent token. */
.ca-none-btn.ca-none-btn::before {
  content: "";
  flex: none;
  margin-top: 0.28rem;
  width: 18px;
  height: 18px;
  border: 1.5px solid #b9c4d2;
  border-radius: 5px;
  background: #fff no-repeat center / 12px 12px;
}
.ca-none-btn.ca-none-btn[aria-pressed="true"] {
  border-color: var(--ca-accent);
  background: rgba(145, 8, 220, 0.05);
}
.ca-none-btn.ca-none-btn[aria-pressed="true"]::before {
  border-color: var(--ca-accent);
  background-color: var(--ca-accent);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}

.ca-none-label { flex: 1 1 auto; min-width: 0; }

/* The third signal, after the tick and the swapped paragraph. Three is not one too many: the
   whole point is that "answered: none" must be impossible to mistake for "untouched". */
.ca-none-tag {
  display: none;
  flex: none;
  align-self: flex-start;
  margin-top: 0.15rem;
  padding: 0.05rem 0.55rem 0.1rem;
  border-radius: 999px;
  background: var(--ca-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.ca-none-btn.ca-none-btn[aria-pressed="true"] .ca-none-tag { display: inline-block; }

.ca-none-todo, .ca-none-done {
  margin: 0.5rem 0 0;
  padding-left: 2.15rem;      /* clears the tick box, so the two sentences line up under the label */
  font-size: 14.5px;
  line-height: 22px;
  color: var(--ca-muted);
}
.ca-none-done { color: var(--ca-ink); }
.ca-none-todo[hidden], .ca-none-done[hidden] { display: none; }

/* The closed list freezes the grid (28 Aug 2026): the checkbox is a state of the table, so the
   table shows it - controls out of reach, everything a shade quieter. The editor's click
   handler holds the keyboard half of the same rule. */
#ca-reservations[data-ca-res-frozen] [data-ca-matrix] { opacity: 0.5; filter: grayscale(1); }
#ca-reservations[data-ca-res-frozen] .ca-add,
#ca-reservations[data-ca-res-frozen] .ca-cell-edit { pointer-events: none; opacity: 0.3; }

/* The closed-list checkbox, on the grid it closes. Hidden while the grid is the example:
   there is no list to close yet. */
.ca-none-ingrid { margin-top: 0.9rem; }
#ca-reservations[data-ca-res="ejemplo"] .ca-none-ingrid { display: none; }

/* The two-way intolerances answer. The chips are native checkboxes dressed as pills - the
   vocabulary is short and flat, and a row of pills reads as "tick what applies" without a
   sentence of instructions. */
.ca-intol { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--ca-line); }
.ca-intol-q { margin: 0 0 0.5rem; font-size: 15.5px; font-weight: 700; color: var(--ca-ink); }
.ca-intol .ca-none { margin-top: 0.6rem; padding-top: 0; border-top: 0; }
.ca-intol-yes.ca-intol-yes { margin-bottom: 0; }
.ca-intol-panel { margin: 0.7rem 0 0.2rem; padding: 0.8rem 0.9rem; border: 1px dashed var(--ca-line); border-radius: 12px; }
.ca-intol-panel[hidden] { display: none; }
.ca-intol-which { margin: 0 0 0.4rem; font-size: 14.5px; font-weight: 600; color: var(--ca-ink); }
.ca-intol-opts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 0.7rem; }
.ca-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.75rem;
  border: 1px solid var(--ca-line);
  border-radius: 999px;
  background: #fff;
  font-size: 14px;
  line-height: 21px;
  color: var(--ca-ink);
  cursor: pointer;
}
.ca-chip input { accent-color: var(--ca-accent); margin: 0; }
.ca-chip:has(input:checked) { border-color: var(--ca-accent); background: rgba(145, 8, 220, 0.05); }
.ca-intol-consider { margin: 0 0 0.7rem; font-size: 14px; line-height: 21px; color: var(--ca-muted); }

/* The height-gate decision (#146, 29 Aug 2026). The list is GREY AND UNTOUCHABLE while the
   default stands, and it is the default's own honest picture of itself: the rides are visible,
   with the centimetres that removed them, and they are visibly not going anywhere the family
   has a say over until they press the other button. Same device as the frozen reservations
   grid above - opacity plus grayscale plus pointer-events - because it is the same statement.
   Grey is not a disabled control here; it is the answer.

   Which state is grey follows the DEFAULT and not a fixed mode: the expert's ruling put the
   default at 'include', and if it ever moved the grey moves with it. That is why the selectors
   below key off data-ca-hgate-editable, which the script writes from GATE_DEFAULT, rather than
   off data-ca-hgate-mode. */
.ca-hgate { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--ca-line); }
.ca-hgate[hidden] { display: none; }
.ca-hgate-q { margin: 0 0 0.5rem; font-size: 15.5px; font-weight: 700; color: var(--ca-ink); }
.ca-hgate-why { margin-bottom: 0.7rem; }
.ca-hgate-wait,
.ca-hgate-note { margin: 0.6rem 0 0; font-size: 14px; line-height: 21px; color: var(--ca-muted); }
.ca-hgate-note[hidden] { display: none; }
.ca-hgate-live[hidden] { display: none; }
/* The default sentence sits between the explanation and the list, quieter than the
   question and heavier than the prose: it is the thing that happens if the visitor reads
   the block and walks away, which is most of them. */
.ca-hgate-default { margin: 0 0 0.7rem; font-size: 14px; line-height: 21px;
                    font-weight: 600; color: var(--ca-muted); }
.ca-hgate-count { margin: 0 0 0.6rem; font-size: 14.5px; font-weight: 600; color: var(--ca-ink); }
.ca-hgate-modes { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.7rem; }
.ca-hgate-mode.ca-hgate-mode { margin-bottom: 0; }

.ca-hgate-list { display: flex; flex-direction: column; gap: 0.4rem; }
.ca-hgate-item { align-items: baseline; border-radius: 12px; }
.ca-hgate-name { font-weight: 600; }
.ca-hgate-reason { color: var(--ca-muted); font-size: 13.5px; }

/* THE DEFAULT IS THE GREY ONE, whichever way the default points: data-ca-hgate-editable is
   written by the script from GATE_DEFAULT, so the stylesheet never has to know whether the
   default is include or skip. pointer-events off is the CSS half; the checkboxes carry a real
   disabled attribute too, so the keyboard tells the same story as the mouse. */
.ca-hgate[data-ca-hgate-editable="no"] .ca-hgate-list { opacity: 0.6; filter: grayscale(1); }
.ca-hgate[data-ca-hgate-editable="no"] .ca-hgate-item { pointer-events: none; }

/* The aside about single rider: present, quiet, and visibly not the recommendation. */
.ca-hgate-tip { margin: 0 0 0.7rem; font-size: 13.5px; line-height: 20px; color: var(--ca-muted); }

/* THE COIN FLIP AT THE GATE. A ride the shortest member clears by exactly zero is in the
   itinerary either way - so it has no checkbox - but on the day it is a person with a measuring
   stick who decides. Dashed rather than solid, and never greyed with the rest: it is not part
   of the decision, so the default's grey would say the wrong thing about it. */
.ca-hgate-edge { border-style: dashed; }
.ca-hgate[data-ca-hgate-editable="no"] .ca-hgate-edge { opacity: 1; filter: none; }
.ca-hgate-edge-note { font-style: italic; }

/* The day cell now carries the weekday and date as its label; same capitalisation as the
   payoff's date column, for the same reason. */
.ca-matrix-day strong { text-transform: capitalize; }

/* The venue combobox (28 Aug 2026): typing filters the catalogue, "Otro" trails the list. */
.ca-combo { position: relative; }
.ca-combo-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 30;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  max-height: 240px;
  overflow-y: auto;
  border: 1px solid var(--ca-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.14);
}
.ca-combo-list[hidden] { display: none; }
.ca-combo-opt { padding: 0.45rem 0.6rem; border-radius: 7px; font-size: 14.5px; line-height: 21px; cursor: pointer; }
.ca-combo-opt:hover { background: rgba(145, 8, 220, 0.07); }
.ca-combo-other { margin-top: 0.25rem; padding-top: 0.55rem; border-top: 1px dashed var(--ca-line); color: var(--ca-muted); font-style: italic; }

/* blank.required (P-blank-wording). One line above the per-question consequence, saying that
   this question needs an answer before the Route can be generated - decision 5, stated where
   the answer is given rather than only in the summary the customer may never open. Darker than
   .ca-none-todo because it is the rule and not the commentary, and GONE once the control is
   pressed: the requirement is news before the answer and noise after it. Keyed on the button's
   aria-pressed, the same way the Respondido chip is, so no script knows about this line. */
.ca-none-req {
  margin: 0.5rem 0 0;
  padding-left: 2.15rem;
  font-size: 14.5px;
  line-height: 22px;
  color: var(--ca-ink);
}
.ca-none-btn.ca-none-btn[aria-pressed="true"] + .ca-none-req { display: none; }

.ca-nones-note {
  margin-top: 0.9rem;
  font-size: 13.5px;
  line-height: 21px;
  color: var(--ca-muted);
}
.ca-nones-note p { margin: 0; }

/* Once the Route is built the answers are fixed, and that includes the ones that say "nothing".
   Disabled and not hidden, deliberately: what they declared is part of what the Route was built
   from, so it has to stay readable. Same argument as leaving the copy black in .ca-lockable. */
body[data-ca-state="locked"] .ca-none-btn.ca-none-btn {
  pointer-events: none;
  border-style: dashed;
  opacity: 0.75;
}
body[data-ca-state="locked"] .ca-nones-note { display: none; }

/* ------------------------------------------------- arriving from a link in the summary
   A deep link that drops somebody at the top of a long page has not helped them, so the row
   in the summary points at the CONTROL (#ca-none-*) and the script scrolls the whole section,
   using this offset to clear the site's sticky header, then marks both. The ring stays until
   they act on it rather than flashing and vanishing; the pulse is only there to catch the eye
   and is dropped entirely when the visitor has asked for less motion. */
.ca-section, .ca-none { scroll-margin-top: 96px; }

.ca-focus.ca-focus {
  border-color: var(--ca-accent);
  box-shadow: 0 0 0 3px rgba(145, 8, 220, 0.16);
}
/* The section ring alone was not enough on the page it matters most on: .ca-none has no border
   of its own, so `border-color` above did nothing and the arriving visitor got a highlighted
   SECTION with nothing marked inside it. An outline draws around the box whether or not it has
   a border, and it survives the pulse finishing - which it will have done by the time anybody
   looks at a screenshot, or at the page after a slow scroll. */
.ca-none.ca-focus {
  border-radius: 12px;
  outline: 2px solid var(--ca-accent);
  outline-offset: 3px;
  animation: ca-pulse 1.2s ease-out 2;
}
@keyframes ca-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(145, 8, 220, 0.35); }
  70%  { box-shadow: 0 0 0 10px rgba(145, 8, 220, 0); }
  100% { box-shadow: 0 0 0 0 rgba(145, 8, 220, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .ca-none.ca-focus { animation: none; }
}

/* ---------------------------------------------------------- the completeness summary
   It lives inside the shared lock modal, so it gets a wider box and a scroll: seven rows with a
   consequence each is taller than a two-sentence lock message, and a <dialog> does not scroll
   its own content by default. max-height is set on .ca-modal rather than on the summary so
   every other lock message gets the same protection at a long translation. */
.ca-modal { max-height: min(88vh, 48rem); overflow-y: auto; }
.ca-modal:has(.ca-resumen) { width: min(44rem, calc(100vw - 2rem)); }

.ca-resumen-h {
  margin: 1.4rem 0 0.6rem;
  font-family: "Poppins", Sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-resumen {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}
.ca-resumen li {
  margin: 0;
  padding: 0.7rem 0.9rem 0.8rem;
  border: 1px solid var(--ca-line);
  border-left: 3px solid var(--ca-accent);
  border-radius: 12px;
  background: #fbfcfd;
}
/* Doubled for the same reason every button selector in this file is doubled, and it was
   measured rather than assumed: the kit's own `a` rule won at first try and the computed
   text-decoration-line came back "none", so the rows read as headings and not as the links Pol
   asked for. They ARE the way to the thing that answers the question, so they have to look it. */
.ca-resumen-name.ca-resumen-name {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--ca-ink);
  text-decoration: underline;
  text-decoration-color: rgba(145, 8, 220, 0.45);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
.ca-resumen-name.ca-resumen-name:hover,
.ca-resumen-name.ca-resumen-name:focus-visible {
  color: var(--ca-accent);
  text-decoration-color: currentColor;
}

.ca-resumen-chip {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.05rem 0.55rem 0.1rem;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  white-space: nowrap;
  vertical-align: 1px;
}
.ca-resumen-chip-todo { background: rgba(21, 47, 78, 0.08); color: var(--e-global-color-65e99da, #152f4e); }
.ca-resumen-chip-none { background: var(--ca-accent); color: #fff; }

.ca-resumen-imp {
  margin: 0.35rem 0 0;
  font-size: 14.5px;
  line-height: 22px;
  color: var(--ca-muted);
}
.ca-resumen-if { font-weight: 700; color: var(--ca-ink); }

/* Which chip and which lead-in show is decided by which list the row is in, so the script never
   has to name a class - it moves the <li> and the cascade does the rest. */
#ca-resumen-todo .ca-resumen-chip-none,
#ca-resumen-todo .ca-resumen-if-done,
#ca-resumen-done .ca-resumen-chip-todo,
#ca-resumen-done .ca-resumen-if-todo { display: none; }
#ca-resumen-done li { border-left-color: #9fb0c4; background: #fff; }

.ca-resumen-none { margin-top: 1.2rem; }

/* resumen.blocked + resumen.blocked_cta (P-IX4). It sits inside [data-ca-resumen-group="todo"],
   so it is shown and hidden by the same line of script that shows and hides the pending list and
   cannot be left stranded over an empty one. Deliberately NOT red and not an alert box: decision
   5 makes this a waiting state, not an error, and every row above it can be resolved in one
   click. The rule stays quiet and the button is the loud part. */
.ca-resumen-blocked {
  margin-top: 1.1rem;
  padding: 0.9rem 1rem;
  border: 1px dashed var(--ca-line);
  border-radius: 10px;
  background: rgba(21, 47, 78, 0.03);
  font-size: 14.5px;
  line-height: 22px;
}
.ca-resumen-go-row { margin: 0.85rem 0 0; }

.ca-resumen-foot {
  margin-top: 1.4rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ca-line);
  font-size: 14.5px;
  line-height: 22px;
  color: var(--ca-muted);
}

@media (max-width: 767px) {
  .ca-nones { padding: 0.9rem 0.9rem 1rem; }
  /* At 390px the chip and the label were sharing one line and the label lost, so "No vamos a
     anadir mas reservas" came out three words tall in a 120px column. flex-basis:100% on the
     label claims the rest of the line - it still shrinks to fit - which pushes the chip onto
     its own row under it. */
  .ca-none-btn.ca-none-btn { flex-wrap: wrap; font-size: 15px; line-height: 22px; }
  .ca-none-label { flex: 1 1 100%; }
  .ca-none-tag { order: 3; margin: 0.4rem 0 0 2.15rem; }
  .ca-none-todo, .ca-none-done { padding-left: 0; }
  .ca-resumen-chip { margin-left: 0; margin-top: 0.3rem; display: block; width: fit-content; }
}

/* ========================================================================================
 * THE ARTICLE PAGE
 *
 * /tu-viaje/<section>/<slug>/ - one of the 22 reading-list articles, built from
 * site/content/es/posts/ by scripts/build_site.mjs. It borrows the whole client-area chrome
 * (sub-nav, preview banner, S0, foot CTA) and adds a reading column, because the one thing a
 * reference page has to get right is the measure: .ca-prose is already sized for it, so this
 * is mostly about the head of the page and about not letting the column grow past ~70
 * characters on a wide screen.
 * ======================================================================================== */

/* The hero band's text is a <p> on an article page, so the article's own title can be the only
   <h1> - see site/templates/_ca-hero-post.html. Elementor's margin reset does not reach a <p>. */
.ca-heroline { margin: 0; }

.ca-articulo { max-width: 44rem; }
.ca-articulo-crumb {
  margin: 0 0 0.9rem;
  font-size: 14px;
  line-height: 21px;
}
.ca-articulo-crumb a, .ca-articulo-back a {
  color: var(--ca-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--ca-line);
}
.ca-articulo-crumb a:hover, .ca-articulo-back a:hover {
  color: var(--ca-ink);
  border-bottom-color: currentColor;
}
.ca-articulo-h1 {
  margin: 0 0 0.6rem;
  font-family: "Poppins", Sans-serif;
  font-size: 27px;
  line-height: 35px;
  font-weight: 600;
  letter-spacing: normal;
  color: var(--e-global-color-8cd1398, #000);
}
/* The card's teaser, repeated as the page's lead. Bigger than the body and quieter than the
   title: it is there so a reader who arrived from a card can tell in one line that this is the
   article they clicked. */
.ca-articulo-lead {
  margin: 0 0 1.3rem;
  font-size: 17px;
  line-height: 27px;
  color: var(--ca-muted);
}
.ca-articulo-body p { margin: 0 0 1rem; }
.ca-articulo-body ul, .ca-articulo-body ol { margin: 0 0 1rem; }
/* CROSS-LINKS IN RUNNING TEXT, added 25 August 2026 with the de-duplication pass. Data that
   lives in another section is linked and not retyped, so a body paragraph now ends in "…está en
   Las alturas mínimas, una por una" — and that has to look like the link it is, in the middle of
   a sentence, without shouting. Accent colour and an underline that starts quiet: the same
   treatment .ca-subnav-links uses one step louder. Prose blocks on the section pages get it too,
   because the same handoff happens there (G4 → G5.4, ES → IX3). */
.ca-articulo-body a, .ca-prose a, .ca-heights-note a, .ca-tip a {
  color: var(--ca-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: rgba(145, 8, 220, 0.35);
}
.ca-articulo-body a:hover, .ca-prose a:hover,
.ca-heights-note a:hover, .ca-tip a:hover { text-decoration-color: currentColor; }
.ca-articulo-back {
  margin: 1.6rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--ca-line);
  font-size: 14px;
}

/* ---------------------------------------------------- the article as a guide (pilot)
 * Pol, 31 October 2026: mock-up A («guía con mapa») with B's illustrated header. Every rule here
 * styles markup that scripts/build_site.mjs articleGuide() emits ONLY for an article with a
 * `post.summary` (or a body with a map marker), so the twenty articles outside the pilot are
 * untouched by this block. The header is the article's own illustration, the same file as its
 * card's thumbnail (Pol, «ilustraciones-articulos», 31 October 2026), so card and page match. */
.ca-articulo-band {
  position: relative;
  height: 132px;
  margin: 0 0 1.1rem;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(135deg, #6b7c93, #2f3b4c);
}
/* The picture is the article's own illustration (articles/<id>.svg, an <img> the build emits),
   centred and contained on the section gradient: a square drawing in a ~3.2:1 strip, so it never
   crops and the strip's ends stay plain gradient. */
.ca-articulo-band .ca-art-img {
  position: absolute;
  left: 50%;
  top: 6%;
  height: 94%;
  width: auto;
  max-width: none;
  transform: translateX(-50%);
}
.ca-articulo-band[data-art="comida"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-articulo-band[data-art="atracciones"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-articulo-band[data-art="espectaculos"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-articulo-band[data-art="alojamiento"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }
.ca-articulo-band[data-art="grupo"] { background: linear-gradient(135deg, var(--sec-a), var(--sec-b)); }

.ca-articulo-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 12px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ca-accent);
}
.ca-articulo-sum {
  margin: 0 0 1.5rem;
  padding: 0.9rem 1.1rem 0.95rem;
  border-left: 4px solid var(--ca-accent);
  border-radius: 0 12px 12px 0;
  background: #f6effc;
}
.ca-articulo-sumh {
  margin: 0 0 0.4rem;
  font-size: 12px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ca-accent);
}
.ca-articulo-sum ul { margin: 0; padding-left: 1.1rem; }
.ca-articulo-sum li { margin: 0 0 0.3rem; line-height: 1.5; }
.ca-articulo-sum li:last-child { margin-bottom: 0; }

.ca-articulo-body h2 {
  margin: 1.8rem 0 0.7rem;
  font-family: "Poppins", Sans-serif;
  font-size: 19px;
  line-height: 26px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-articulo-body .ca-callout {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #fff4d6;
  border: 1px solid #f2d27a;
}
.ca-articulo-body .ca-callout p { margin: 0; }
.ca-articulo-body .ca-callout strong { display: block; margin-bottom: 0.2rem; }

.ca-articulo-body .ca-map { margin: 0 0 1rem; }
.ca-articulo-body .ca-map img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1px solid var(--ca-line);
}
.ca-articulo-body .ca-map figcaption {
  margin-top: 0.4rem;
  font-size: 13px;
  line-height: 19px;
  color: var(--ca-muted);
}
.ca-articulo-body .ca-map-credit { white-space: nowrap; opacity: 0.8; }
.ca-articulo-body .ca-map-zones {
  display: grid;
  gap: 0.9rem 1.4rem;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  margin: 0 0 1.4rem;
}
.ca-articulo-body .ca-map-zoneh {
  margin: 0 0 0.35rem;
  font-size: 12px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ca-muted);
}
.ca-articulo-body .ca-map-places { margin: 0; padding: 0; list-style: none; }
.ca-articulo-body .ca-map-place {
  display: flex;
  gap: 0.6rem;
  align-items: baseline;
  margin: 0 0 0.35rem;
  line-height: 1.45;
}
.ca-articulo-body .ca-map-pin {
  flex: 0 0 auto;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  border-radius: 11px;
  background: #8a94a6;
  color: #fff;
  font-size: 12px;
  line-height: 22px;
  font-weight: 700;
  text-align: center;
  transform: translateY(-1px);
}
.ca-articulo-body .ca-map-place.is-nopin .ca-map-pin { background: transparent; border: 1.5px dashed #8a94a6; color: #8a94a6; line-height: 19px; }
.ca-articulo-body .ca-map-note { color: var(--ca-muted); }
.ca-articulo-body .is-nopin .ca-map-note { font-style: italic; }

.ca-articulo-next {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 1.6rem 0 0;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--ca-line);
  border-radius: 12px;
  color: var(--ca-ink);
  text-decoration: none;
}
.ca-articulo-next span:first-child { font-size: 13px; color: var(--ca-muted); }
.ca-articulo-next b { font-weight: 600; color: var(--ca-accent); }
.ca-articulo-next:hover { border-color: var(--ca-accent); }

@media (max-width: 767px) {
  .ca-articulo-band { height: 112px; border-radius: 12px; }
}

/* ---------------------------------------------------------------- the review flag
 * REVIEW SCAFFOLDING, and it is meant to be seen. An amber chip around the phrase whose park
 * fact was not confirmed when the article was written, so a reviewer reads the doubt in place
 * instead of a list at the bottom of a file nobody opens.
 *
 * It is scaffolding in exactly the way .ca-secno is, and it is guarded harder: it renders on
 * every build, so the guard is not a flag but the noindex state - scripts/build_site.mjs
 * REFUSES to write a page carrying one of these into an indexable build, and
 * tests/verificar.test.mjs fails the release if one ever gets through. Deleting the feature is
 * this rule, shared/verificar.mjs, that guard and that test.
 *
 * <mark> and not <span>: it is exactly what <mark> is for, it survives a stylesheet that never
 * loaded, and a screen reader announces it. */
.ca-verificar {
  padding: 0.05em 0.4em;
  border: 1px solid #b58105;
  border-radius: 4px;
  background: #fff4d6;
  color: #6b4a00;
  font-size: 0.82em;
  font-weight: 600;
  letter-spacing: 0.01em;
}

@media (max-width: 767px) {
  .ca-articulo-h1 { font-size: 22px; line-height: 29px; }
  .ca-articulo-lead { font-size: 16px; line-height: 25px; }
}

/* ------------------------------------------------------- a card that IS a link
 * The whole card is the <a>, not just the title: a 15rem tile with a three-word link inside it
 * is a tiny target on a phone, and the title alone is the accessible name either way. An
 * unpublished card is still an <article> with the `en preparación` chip and no link at all -
 * that rule (P-S8) is the reason both shapes exist.
 *
 * .ca-post already carries the border, the padding and the background, so this only has to undo
 * the anchor's own colour and underline and say, visibly, that it can be pressed. */
.ca-post-link {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.ca-post-link:hover, .ca-post-link:focus-visible {
  border-color: var(--ca-accent);
  box-shadow: 0 6px 18px rgba(22, 32, 46, 0.09);
  transform: translateY(-1px);
}
.ca-post-link:focus-visible { outline: 2px solid var(--ca-accent); outline-offset: 3px; }
.ca-post-link .ca-post-title { text-decoration: none; }
.ca-post-link:hover .ca-post-title { color: var(--ca-accent); }
.ca-post-go {
  display: inline-block;
  margin-top: 0.7rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--ca-accent);
}
@media (prefers-reduced-motion: reduce) {
  .ca-post-link { transition: none; }
  .ca-post-link:hover, .ca-post-link:focus-visible { transform: none; }
}

/* ------------------------------------------------------------------ the return from Stripe
 *
 * #ca-pagado, opened by client-area.js when the URL carries ?paid=QL-XXXXXX. Everything here
 * exists to make ONE STRING easy to keep: the reference. It is what a customer has to quote at
 * us if the confirmation email never lands, and the failure this styling is against is somebody
 * skim-reading past it and closing the tab.
 *
 * `user-select: all` is the part worth explaining. On a phone there is no comfortable way to
 * select eight characters by dragging, and a half-selected reference is worse than none because
 * it looks like a whole one. One tap takes the lot. The copy button is the same job for people
 * who would rather press something, and it ships HIDDEN — the script unhides it only where
 * navigator.clipboard exists, because a copy button that silently does nothing is a worse
 * offer than no button.
 */
.ca-ref-box {
  margin: 0.2rem 0 1rem;
  padding: 1rem 1.1rem;
  text-align: center;
  background: var(--ca-card);
  border: 1px solid var(--ca-line);
  border-radius: 12px;
}
.ca-ref-label {
  margin: 0 0 0.35rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ca-muted);
}
.ca-ref {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 30px;
  line-height: 38px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ca-ink);
  user-select: all;
  -webkit-user-select: all;
  word-break: break-all;
}
.ca-ref-copy { margin-top: 0.6rem; }
.ca-note-keep { margin-bottom: 1.1rem; }
.ca-modal-paid .ca-h4 {
  margin: 0 0 0.5rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 16px;
  line-height: 23px;
  font-weight: 700;
  color: var(--ca-ink);
}
.ca-modal-paid .ca-h3 { margin-top: 0; padding-right: 2rem; }
/* The cancelled line, in the preview banner. Quiet on purpose: somebody who has just decided
   not to pay is not being sold to again, they are being reassured about one fact. */
.ca-note-cancel { margin: 0 0 0.9rem; }
@media (max-width: 480px) {
  .ca-ref { font-size: 25px; line-height: 32px; }
}

/* =============================================================== TU VIAJE, #129 (26/08/2026)
   The inverted funnel. Three groups of rules: the state machine, the planner at the top of the
   page, and the CTA block that repeats top and bottom.

   THE STATE MACHINE IS THE IMPORTANT ONE, AND WHAT IT DELIBERATELY CANNOT DO MATTERS AS MUCH
   AS WHAT IT DOES. body[data-ca-client] is `anon`, `saved` or `paid`, and every rule below
   shows or hides a LABEL, A SENTENCE OR A BUTTON. None of them touches a layout block. The
   page used to carry a segmented control that swapped whole sections in and out through
   body[data-ca-state]; #129 removed it precisely because a visitor should never find
   themselves on a different page from the one they were reading. Rebuilding that behaviour out
   of this attribute would be the same mistake wearing a new name.

   .ca-state-anon   only while nothing is saved and nothing is bought
   .ca-state-saved  only once a draft exists
   .ca-state-paid   only once the trip is paid
   .ca-state-out    anon OR saved - i.e. "there is still something to buy"
   .ca-state-in     saved OR paid  - i.e. "this device is inside a trip"

   Written as `display: none` on the non-matching states rather than `display: block` on the
   matching one, so an element keeps whatever display its own rules gave it. */
[data-ca-client="anon"]  .ca-state-saved,
[data-ca-client="anon"]  .ca-state-paid,
[data-ca-client="saved"] .ca-state-anon,
[data-ca-client="saved"] .ca-state-paid,
[data-ca-client="paid"]  .ca-state-anon,
[data-ca-client="paid"]  .ca-state-saved,
[data-ca-client="paid"]  .ca-state-out,
[data-ca-in="no"]        .ca-state-in { display: none !important; }

/* ---------------------------------------------------------------- the state line
   What the preview banner became. One sentence and at most one control; it is furniture on
   five of the six pages and must read like it. */
.ca-state {
  margin: 0 0 1.6rem;
  padding: 0.85rem 1.2rem;
  border: 1px solid var(--ca-line);
  border-left: 4px solid var(--ca-accent);
  border-radius: 12px;
  background: var(--ca-card);
  font-size: 15px;
  line-height: 24px;
}
.ca-state-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.2rem;
  align-items: baseline;
  justify-content: space-between;
}
.ca-state-say { flex: 1 1 20rem; color: var(--ca-muted); }
.ca-note-in, .ca-note-out { margin-top: 0; }

/* ---------------------------------------------------------------- the planner
   Three controls, side by side on a desktop and stacked on a phone. The email is disabled
   until the other two are answered, and a disabled control has to LOOK unavailable rather than
   merely refuse - otherwise the hint under it reads as a scold. */
.ca-viaje { border-color: var(--ca-accent); }
/* LABEL LEFT, ANSWER RIGHT (Pol, 31 October 2026): the date and the days are two .ca-fcard
   rows, the shape Alojamiento's Extra Magic Time line already has. The date is the native
   field, sized to its value; the days are four chips over a hidden <select>. */
.ca-viaje-cards { display: grid; gap: 0.6rem; margin: 1rem 0 0; }
.ca-viaje .ca-fcard { box-shadow: 0 0 0 1px #ebe7e1; }
.ca-viaje .ca-fcard-row { grid-template-columns: minmax(0, 1fr) auto; }
.ca-viaje-date { cursor: pointer; }
.ca-viaje-date .ca-fcard-in {
  width: auto;
  min-height: 40px;
  padding: 0.3rem 0.55rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
/* Four in a row: .ca-pick is a two-column grid elsewhere and its rule comes later in this file. */
.ca-viaje .ca-viaje-pick { display: flex; grid-template-columns: none; gap: 0.35rem; }
.ca-viaje .ca-pick-opt.ca-pick-opt {
  min-width: 44px;
  min-height: 40px;
  padding: 0.3rem 0;
  border: 1px solid #d9d3ca;
  border-radius: 10px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
}
.ca-viaje .ca-pick-opt.ca-pick-opt[aria-checked="true"] { border-color: transparent; background: var(--ca-accent); color: #fff; }
/* The house prompt marks the control it asks for; on a card the ring is the mark. */
.ca-viaje .ca-fcard:has([aria-invalid="true"]) { box-shadow: 0 0 0 2px var(--ca-accent); }
.ca-viaje-field { display: block; font-size: 14px; }
/* The email field is HIDDEN until date and days are set (26 Aug evening round). Stated
   explicitly because the display:block above would otherwise override the [hidden]
   attribute — the same trap [data-ca-steps] documents at the foot of this file. */
.ca-viaje-field[hidden] { display: none; }
.ca-viaje-label {
  display: block;
  margin-bottom: 0.35rem;
  font-weight: 600;
  color: var(--ca-ink);
}
.ca-viaje-field input, .ca-viaje-field select {
  width: 100%;
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--ca-line);
  border-radius: 10px;
  font: inherit;
  font-size: 15px;
  background: #fff;
  color: var(--ca-ink);
}
.ca-viaje-field input:disabled {
  background: #f3f5f8;
  color: #93a1b3;
  cursor: not-allowed;
}
.ca-viaje-field [aria-invalid="true"],
.ca-viaje-field input[aria-invalid="true"],
.ca-viaje-field select[aria-invalid="true"] { border-color: var(--ca-accent); }
.ca-viaje-hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 13px;
  line-height: 19px;
  color: var(--ca-muted);
}
.ca-viaje-hint [hidden] { display: none; }
.ca-viaje-save {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
  margin-top: 1rem;
}
.ca-viaje-save[hidden] { display: none; }
.ca-viaje-save .ca-note { margin-top: 0; }

.ca-viaje .ca-viaje-mail { margin-top: 1rem; }
.ca-viaje-save:empty, .ca-viaje-save:not(:has(> :not([hidden]))) { display: none; }

/* ------------------------------------------------------------- the date payoff
   THE BOX UNDER THE PLANNER, its own section since 31 October 2026, 14:10 (Pol: «it's nice to
   show personalization straight away»). With dates, ONE LINE: whether hours are published for
   the chosen days, how many attractions are closed, and the way to Atracciones. The per-day
   detail is in the mail. Information the planner GIVES, not a step it asks for: no border, no
   controls. The parts wrap as items, so a narrow phone breaks between them first. */
.ca-horarios[hidden] { display: none; }
.ca-payoff {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1rem;
  margin: 0.6rem 0 0;
  font-size: 15px;
  line-height: 1.45;
  color: var(--ca-ink);
}
.ca-payoff[hidden], .ca-payoff > [hidden] { display: none; }
.ca-payoff-hours, .ca-payoff-closed { min-width: 0; overflow-wrap: anywhere; }
.ca-payoff-see { margin-left: -0.6rem; color: var(--ca-accent); font-weight: 600; }

/* The tease: the same box speaking before the dates exist. A real button, dressed as one
   thing to click - dashed, the CTA line underlined so the affordance survives a scan. Hidden
   the moment the payoff itself shows, and hidden with the whole section when the snapshot
   could not be fetched or its horizon is behind us. */
.ca-payoff-tease.ca-payoff-tease {
  display: block;
  width: 100%;
  margin-top: 0.6rem;
  padding: 0.9rem 1.1rem;
  border: 1px dashed var(--ca-line);
  border-radius: 14px;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  white-space: normal;
}
.ca-payoff-tease.ca-payoff-tease[hidden] { display: none; }
.ca-payoff-tease.ca-payoff-tease:hover,
.ca-payoff-tease.ca-payoff-tease:focus-visible { border-color: var(--ca-ink); background: var(--ca-card); }
.ca-payoff-tease-line { display: block; font-size: 14.5px; line-height: 21px; color: var(--ca-ink); }
.ca-payoff-tease-cta { display: inline-block; margin-top: 0.5rem; font-size: 13.5px; font-weight: 600; color: var(--ca-ink); text-decoration: underline; }

/* ---------------------------------------------------------------- the CTA block
   Two buttons, one visible. The price sits beside it because decision 5 of the funnel
   proposal says the control that takes money must say so and show the amount. */
.ca-go {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.4rem;
  align-items: center;
  margin: 1.6rem 0 0;
}
.ca-go-price { margin: 0; font-size: 15px; color: var(--ca-ink); }
.ca-go-price strong { font-family: "Poppins", Sans-serif; font-size: 21px; }
.ca-go-price span { display: block; font-size: 13px; color: var(--ca-muted); }
.ca-go-note { flex: 1 1 100%; margin: 0; font-size: 13px; color: var(--ca-muted); }
.ca-go-note p { margin: 0; }

/* The prompt. A statement of what is still needed, not a validation error: no red, no count,
   no icon. Same restraint the completeness summary keeps, for the same reason. */
.ca-prompt {
  margin: 1rem 0 0;
  padding: 0.85rem 1.1rem;
  border: 1px dashed var(--ca-line);
  border-radius: 12px;
  background: #fbfcfd;
  font-size: 15px;
  line-height: 23px;
}
.ca-prompt[hidden] { display: none; }
.ca-prompt-lead { margin: 0 0 0.35rem; font-weight: 600; color: var(--ca-ink); }
.ca-prompt-list { margin: 0; padding-left: 1.2rem; color: var(--ca-muted); }
.ca-prompt-list li[hidden] { display: none; }

/* ---------------------------------------------------------------- the recovery block
   Quiet, and low on the page. It is the last thing anybody needs and the only thing a
   returning customer needs, which is exactly the shape of a footer note. */
.ca-recuperar { background: #fbfcfd; }
.ca-recuperar-row { margin: 1rem 0 0; }
.ca-volver-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1rem;
  align-items: flex-end;
  margin: 1rem 0 0;
}
.ca-volver-field { flex: 1 1 12rem; font-size: 14px; }
.ca-volver-field input {
  display: block;
  width: 100%;
  margin-top: 0.3rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--ca-line);
  border-radius: 10px;
  font: inherit;
  font-size: 15px;
}
.ca-volver-alt { margin: 0.8rem 0 0; font-size: 14px; }
.ca-note-bad { color: var(--ca-ink); }
[data-ca-volver-panel][hidden] { display: none; }

/* The confirm step: what is being bought, said back, before the two ticks. */
.ca-buy-recap {
  margin: 0 0 1rem;
  padding: 0.6rem 0.8rem;
  border-radius: 10px;
  background: #f3f5f8;
  font-size: 14px;
  color: var(--ca-ink);
}
.ca-buy-recap .ca-linkish { margin-left: 0.5rem; font-size: 13px; }
.ca-buy-name { display: block; margin-bottom: 1rem; font-size: 14px; }
.ca-buy-name input {
  display: block;
  width: 100%;
  margin-top: 0.3rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--ca-line);
  border-radius: 10px;
  font: inherit;
  font-size: 15px;
}

/* The trust block, last thing above the pay button (Pol, 27 Oct 2026). Same panel as the
   recap so the dialog reads as one confirm step; smaller than the consent text, because the
   consent is what the sale stands on and this is reassurance. Mobile-first: one column, and
   the two quotes sit side by side only where there is room. */
.ca-trust {
  margin: 1.1rem 0 0.9rem;
  padding: 0.8rem 0.9rem;
  border-radius: 10px;
  background: #f3f5f8;
  font-size: 14px;
  line-height: 1.45;
  color: var(--ca-ink);
}
.ca-trust-title {
  margin: 0 0 0.5rem;
  font-family: "Poppins", Sans-serif;
  font-size: 15px;
  font-weight: 600;
}
.ca-trust-item + .ca-trust-item { margin-top: 0.5rem; }
.ca-trust a { text-decoration: underline; }
.ca-trust-quotes {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--ca-line);
}
.ca-trust-quote { margin: 0; }
.ca-trust-quote blockquote { margin: 0; font-style: italic; }
.ca-trust-quote blockquote p { margin: 0; }
.ca-trust-quote figcaption { margin-top: 0.15rem; font-size: 13px; color: var(--ca-muted); }
.ca-trust-quote figcaption::before { content: "— "; }
@media (min-width: 560px) {
  .ca-trust-quotes { grid-template-columns: 1fr 1fr; gap: 0.5rem 1.2rem; }
}

/* The three-step ordered list, and the two section chips, are hidden rather than deleted -
   spec point 6 hides sections 1 and 3 "for now". [hidden] on a flex or grid child is ignored
   by the display property those layouts set, so it is stated once here for the wrapper. */
[data-ca-steps][hidden] { display: none !important; }

/* THE CTA BEFORE THE SAVE (26 Aug evening round): "Consigue tu itinerario" activates only
   once the answers are saved and the code has gone out by email. aria-disabled, not disabled,
   so a click still lands and the prompt can name the missing step; the dimming says "not
   yet", the prompt says why. */
.ca-cta.ca-cta[data-ca-go][aria-disabled="true"] {
  opacity: 0.55;
  box-shadow: none;
  cursor: not-allowed;
}

@media (max-width: 767px) {
  .ca-go { gap: 0.6rem 1rem; }
  .ca-go .ca-cta-go { flex: 1 1 100%; text-align: center; }
}

/* ======================================================================================
   THE RESERVATIONS BLOCK, AND ITS TWO SHAPES
   ======================================================================================
   Pol, 26 August 2026: "it should be empty but allow updating it with the new flow.
   everything is editable but only saved if they provide the email... if no dates and days
   are present then displaying a couple of fiction reservations is okey."

   The block reads two attributes and nothing else:

     [data-ca-res]        "ejemplo" (no date or no days yet) | "propio" (the grid is theirs)
     [data-ca-res-save]   "local" | "guardando" | "guardado" | "error"

   WHY THE STATE IS IN CSS AND NOT IN `hidden`. The example, its tag and its note are the
   SERVER render - they are what somebody sees with the stylesheet loaded and the script
   still parsing, and what somebody with no JavaScript sees for good. Toggling `hidden`
   from the script would paint the example note first and swap it a frame later; a rule
   keyed on an attribute the server already wrote never shows the wrong one at all. */

/* .ca-resbox replaced .ca-lockpad here. The lockpad carried data-lock on the whole grid so
   that a click anywhere in it opened "se desbloquea al comprar"; nothing in this block is
   behind the purchase any more, so it is a container and not a trap - no pointer cursor, no
   hover border, and the controls inside it are the only clickable things. */
.ca-resbox {
  position: relative;
  margin-top: 1.2rem;
  padding: 1rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fdfdff;
}

/* No hatch before the dates any more (1 Nov 2026): the dateless grid is the dated grid's own
   cards, not an example, so it gets no example signal. */

/* .ca-example-tag draws a padlock, which was right while the example was locked and is a
   lie now that the real grid is editable by anyone. The words are kept, the glyph is not. */
#ca-reservations .ca-example-tag::before { display: none; }

/* What only makes sense while the grid is fiction. The legend explains the dashed chips and
   .ca-matrix-more says "and one row per day of your trip" - both are answers to the example,
   and in the real grid the rows ARE the days and there are no chips left to explain. */
#ca-reservations[data-ca-res="propio"] .ca-example-tag,
#ca-reservations[data-ca-res="propio"] .ca-matrix-legend,
#ca-reservations[data-ca-res="propio"] .ca-matrix-more { display: none; }

/* ------------------------------------------------------------------ the notes underneath
   One line at a time, and never two. Each is a consequence of the state above it, which is
   why they share a slot instead of stacking: a block that says "this is an example", "tap a
   gap", "this will be lost" and "saved" all at once says none of them. */
.ca-resnote {
  display: none;
  margin: 0.9rem 0 0;
  font-size: 13.5px;
  line-height: 21px;
  color: var(--ca-muted);
}
#ca-reservations[data-ca-res="ejemplo"] .ca-resnote-ejemplo,
#ca-reservations[data-ca-res="propio"][data-ca-res-save="local"] [data-ca-res-note="local"],
#ca-reservations[data-ca-res="propio"][data-ca-res-save="guardando"] [data-ca-res-note="guardando"],
#ca-reservations[data-ca-res="propio"][data-ca-res-save="guardado"] [data-ca-res-note="guardado"],
#ca-reservations[data-ca-res="propio"][data-ca-res-save="error"] [data-ca-res-note="error"] {
  display: block;
}

/* "if no email is introduced say it will be lost with a link to tu viaje email, with a small
   underlined text." Small and underlined, and no more than that: it is a consequence the
   customer is owed, not a banner selling them an account. The colour is the warning amber
   the rest of the area uses for "true and worth stopping at", not red - nothing has gone
   wrong yet, and it only will if they walk away. */
.ca-resnote-warn { color: #92400e; }
.ca-resnote-ok { color: #0f766e; }
.ca-resnote-bad { color: var(--ca-bad, #b42318); }
/* The warning is a <button> now and the example route is still an <a>; both read as the same
   small underlined text, so the button is stripped of its button-ness here rather than the
   two being styled apart. DOUBLED, per the note at the top of this file: the Elementor kit
   paints every <button> purple at (0,1,1), so the single class lost and the warning rendered
   as a solid purple bar. */
.ca-resnote-link.ca-resnote-link {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-resnote-link.ca-resnote-link:hover,
.ca-resnote-link.ca-resnote-link:focus-visible { text-decoration-thickness: 2px; }

/* ------------------------------------------------------------------ the real grid's cells */
/* The date beside the day number. Dimmer and lighter than "Día 2" because the ordinal is
   what the customer navigates by and the date is the confirmation. */
.ca-matrix-date {
  font-size: 13px;
  line-height: 18px;
  color: var(--ca-muted);
  font-variant-numeric: tabular-nums;
}

/* THE CELL CONTROLS DRESS THEMSELVES NOW.
   Both of them used to carry .ca-locked, and that is where they got their border, their
   background, their colour and their cursor from - the class did double duty as "this is
   behind the purchase" and "this is what a control looks like". Dropping the lock dropped the
   look with it, and they fell through to the Elementor kit's `button { background-color:
   #9108DC }`, which drew three solid purple pills where the grid wanted three empty slots.
   Measured at 390 on 26 August 2026, and it is the reason these rules exist at all. */
#ca-reservations .ca-add,
#ca-reservations .ca-cell-edit {
  border: 1px dashed var(--ca-line);
  background: transparent;
  color: var(--ca-muted);
  cursor: pointer;
}
/* Solid, because an edit control sits on something that is already there; dashed is the
   language of an empty slot and this slot is full. */
#ca-reservations .ca-cell-edit { border-style: solid; }
#ca-reservations .ca-add:hover,
#ca-reservations .ca-add:focus-visible,
#ca-reservations .ca-cell-edit:hover,
#ca-reservations .ca-cell-edit:focus-visible {
  border-color: var(--ca-accent);
  color: var(--ca-accent);
  background: rgba(145, 8, 220, 0.06);
}

/* The plus fills its cell at every width. It was a 28px circle in a 64px box because the cell
   used to be a preview with a token control in it; it is the control now, so the target is the
   cell. Nothing else in the area has a tap target that small. */
#ca-reservations .ca-matrix-cell .ca-add {
  width: 100%;
  height: auto;
  min-height: 36px;
  border-radius: 10px;
}

/* An empty cell is a control end to end, so the whole cell reacts, not just the glyph
   inside it. The dashed border it already has is the right resting state: it says "nothing
   here yet" in the same language as every other slot in the area. */
#ca-reservations[data-ca-res="propio"] .ca-matrix-cell:not(.ca-matrix-filled):hover {
  border-color: var(--ca-accent);
  background: rgba(145, 8, 220, 0.04);
}
#ca-reservations[data-ca-res="propio"] .ca-matrix-cell:has(:focus-visible) {
  border-color: var(--ca-accent);
}

/* ====================================================================== the reservation editor
   A dialog that asks the two things the clicked cell does not already fix. It reuses
   .ca-modal wholesale; only the form inside it is new. */
.ca-res-slot {
  margin: 0 0 0.6rem;
  font-family: "DM Sans", Sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ca-accent);
}
.ca-res-form {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}
/* The grid below BEATS the [hidden] attribute (author display wins over the UA rule), which
   is how the "Otro sitio" free-text box stayed on screen after a pick re-hid it - the same
   trap the modal notes near the top of this file document. Every element this class dresses
   that also toggles `hidden` needs the explicit rule. */
.ca-res-field[hidden] { display: none; }
.ca-res-field {
  display: grid;
  gap: 0.3rem;
  font-size: 14px;
  font-weight: 600;
  color: var(--ca-ink);
}
.ca-res-field input {
  width: 100%;
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--ca-line);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-weight: 400;
  color: var(--ca-ink);
}
.ca-res-field input:focus-visible {
  outline: 2px solid var(--ca-accent);
  outline-offset: 1px;
}
/* The time field is the required one and the only one that can fail, so it says so where it
   fails rather than in a summary at the bottom of the dialog. */
.ca-res-form [aria-invalid="true"] { border-color: var(--ca-bad, #b42318); }
.ca-res-inside { font-size: 14px; }
/* Shown the moment the tick comes off, which is the moment it becomes true. It used to be a
   locked button of its own - "Tengo una reserva fuera del parque" - which asked the customer
   to classify their booking before telling them why it mattered. */
.ca-res-outside[hidden], .ca-res-form .ca-note[hidden] { display: none; }
.ca-modal-res .ca-modal-actions { margin-top: 0.4rem; }

/* ==================== ONE DAY AT A TIME (Pol, 31 Oct 2026) ====================
   "not sure about the scrolling, better and more compact ui?" - about the 28 Aug transposed
   experiment, which slid days sideways under a frozen label column and, at 390px, cut the
   first day under it. It is gone. Now a row of day chips (client-area.js, paintDays) picks
   ONE .ca-matrix-row, and that row is three short meal lines: name on the left, then either
   "+ Añadir" or the booking. No horizontal scroll at any width.

   EVERY RULE IS PREFIXED #ca-reservations .ca-matrix-tabs, because three older layouts (the
   base grid, the 1023px restack and the 767px three-column squeeze) style the same classes,
   and this one has to win at every width without touching them. */
#ca-reservations .ca-days {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.6rem;
}
#ca-reservations .ca-days:empty { display: none; }
#ca-reservations .ca-day-chip.ca-day-chip {
  position: relative;
  min-height: 36px;
  padding: 0.3rem 0.85rem;
  border: 1px solid var(--ca-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-transform: capitalize;
  cursor: pointer;
}
#ca-reservations .ca-day-chip.ca-day-chip:hover,
#ca-reservations .ca-day-chip.ca-day-chip:focus-visible { border-color: var(--ca-accent); }
#ca-reservations .ca-day-chip.ca-day-chip[aria-pressed="true"] {
  border-color: var(--ca-accent);
  background: var(--ca-accent);
  color: #fff;
}
/* No dot on a day that holds a booking any more (Pol, 31 Oct 2026: «remove the dot»). The
   day's rows say it, one tap away; [data-has] stays on the chip for anything that needs it. */

#ca-reservations .ca-matrix-tabs { display: block; }
#ca-reservations .ca-matrix-tabs .ca-matrix-head,
#ca-reservations .ca-matrix-tabs .ca-matrix-more,
#ca-reservations .ca-matrix-tabs .ca-matrix-day { display: none; }
#ca-reservations .ca-matrix-tabs .ca-matrix-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.4rem;
  padding: 0;
  border: 0;
  background: transparent;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-row + .ca-matrix-row { margin-top: 0.8rem; }
#ca-reservations .ca-matrix-tabs .ca-matrix-row[hidden] { display: none; }

/* A meal line: label | what ... when. Wraps only for the paired "o bocadillo" alternative. */
#ca-reservations .ca-matrix-tabs .ca-matrix-cell {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.6rem;
  min-width: 0;
  min-height: 48px;
  padding: 0.35rem 0.4rem 0.35rem 0.8rem;
  border: 1px solid var(--ca-line);
  border-radius: 12px;
  background: #fff;
  writing-mode: horizontal-tb;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-filled {
  border-style: solid;
  padding-right: 0.8rem;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-meal {
  display: block;
  flex: 0 0 6.2rem;
  font-size: 14px;
  font-weight: 600;
  color: var(--ca-muted);
}
#ca-reservations .ca-matrix-tabs .ca-cell-what {
  flex: 1 1 0;
  min-width: 0;
  padding-right: 0;
  font-size: 14px;
  line-height: 18px;
  text-align: left;
}
#ca-reservations .ca-matrix-tabs .ca-cell-when {
  flex: none;
  font-size: 13.5px;
  line-height: 18px;
}
#ca-reservations .ca-matrix-tabs .ca-cell-alt {
  flex: 1 0 100%;
  margin: 0 0 0 6.8rem;
  padding: 0;
  border: 0;
  font-size: 12.5px;
  line-height: 16px;
}

/* Empty: one clean "+ Añadir" on the right, nothing else (Pol, 31 Oct 2026: no dashed
   placeholders). */
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  width: auto;
  height: auto;
  min-height: 36px;
  margin-left: auto;
  padding: 0 0.8rem;
  border: 1px solid var(--ca-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add:hover,
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add:focus-visible {
  border-color: var(--ca-accent);
  color: var(--ca-accent);
}
#ca-reservations .ca-matrix-tabs .ca-add .ca-i { width: 14px; height: 14px; }

/* Filled: the whole line is the edit control, as an invisible overlay; the editor it opens
   offers change and delete. The button keeps its .ca-sr label for the keyboard and reader. */
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-cell-edit {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-cell-edit .ca-i { display: none; }
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-cell-edit:focus-visible {
  outline: 2px solid var(--ca-accent);
  outline-offset: 1px;
}
#ca-reservations .ca-matrix-tabs .ca-matrix-filled:hover { border-color: var(--ca-accent); }

/* The closed-list answer, compact: tick and label on one line, the done note one short line. */
#ca-reservations .ca-none-ingrid { margin-top: 0.7rem; }
#ca-reservations .ca-none-ingrid .ca-none-btn.ca-none-btn {
  flex-wrap: nowrap;
  align-items: center;
  width: auto;
  padding: 0.4rem 0.8rem 0.4rem 0.6rem;
  border-radius: 999px;
  font-size: 14.5px;
  line-height: 20px;
}
#ca-reservations .ca-none-ingrid .ca-none-btn.ca-none-btn::before { margin-top: 0; }
#ca-reservations .ca-none-ingrid .ca-none-done {
  margin-top: 0.3rem;
  padding-left: 0.6rem;
  font-size: 13px;
  line-height: 18px;
  color: var(--ca-muted);
}
/* ================================================== end of one-day-at-a-time */

/* ============================================== the party editor on /grupo/ (#159, 29 Aug 2026)
   Hand-maintained, like the rest of this file: no build regenerates it, and a block that
   arrives here without rules renders as bare markup on a page nobody looks at logged out.
   That has happened once already, which is why tests/party-editor.test.mjs asks whether this
   stylesheet has heard of `ca-party` at all.

   THE STATE MACHINE IS TWO ATTRIBUTES ON THE SECTION, exactly the reservations grid's:

     [data-ca-party]        "ejemplo" | "propio"
     [data-ca-party-save]   "idle" | "local" | "guardando" | "guardado" | "error"

   In CSS and not in `hidden`, for the reason the grid gives: the example IS the server render,
   so a rule keyed on an attribute the server already wrote never shows the wrong one, while
   toggling `hidden` from the script would paint one and swap it a frame later. */
.ca-partybox {
  position: relative;
  margin-top: 1.2rem;
  padding: 1rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: #fdfdff;
}

/* The hatch says "this is an example, not a state", so it belongs to the example and leaves
   with it. Gradient rather than an image: no request, and it follows the accent token. */
#ca-party[data-ca-party="ejemplo"] .ca-partybox {
  background:
    repeating-linear-gradient(135deg, rgba(145, 8, 220, 0.045) 0 10px, transparent 10px 20px),
    #fdfdff;
}

/* .ca-example-tag draws a padlock. That was right while the block was a locked preview and is
   a lie now that anyone can fill it in - same removal as /comida/. */
#ca-party .ca-example-tag::before { display: none; }

/* THE EXAMPLE IS HIDDEN, NEVER DESTROYED. It is markup, the script only ever adds and removes
   [data-ca-party-person] rows, and this is the rule that takes the fiction away. So removing
   the last person brings the shape back rather than leaving an empty box - the one thing the
   preview was written to explain is what a party looks like. */
#ca-party[data-ca-party="propio"] .ca-party-example { display: none; }

/* ---------------------------------------------------------------------- a person's row */
.ca-party-row .ca-people-who {
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
}
.ca-party-sel {
  width: 100%;
  padding: 0.34rem 0.4rem;
  border: 1px solid var(--ca-line);
  border-radius: 9px;
  background: #fff;
  font: inherit;
  font-size: 14.5px;
  line-height: 21px;
  color: var(--ca-ink);
}
.ca-party-sel:focus-visible { outline: 2px solid var(--ca-accent); outline-offset: 1px; }
.ca-party-sel:disabled { color: var(--ca-muted); background: #f4f6f9; }

/* A finished row loses the dashed "nothing here yet" language of its cells, so the ones still
   waiting for an answer are the ones that look like they are. */
#ca-party [data-ca-party-done="yes"] .ca-people-cell { border-style: solid; }

/* Doubled, per the note at the top of this file: the Elementor kit paints every <button>
   purple at (0,1,1), so a single class loses and this would render as a solid pill. */
.ca-party-x.ca-party-x {
  flex: none;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 1px solid var(--ca-line);
  border-radius: 50%;
  background: transparent;
  color: var(--ca-muted);
  font: inherit;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
}
.ca-party-x.ca-party-x:hover,
.ca-party-x.ca-party-x:focus-visible { border-color: var(--ca-bad); color: var(--ca-bad); }

/* THE SUGGESTION HAS TO LOOK LIKE AN OFFER AND NOT LIKE AN ANSWER. It is a dashed pill under
   the height select, in the accent voice, and the select above it is still on its placeholder
   while it shows. A suggestion pre-selected inside the select would be the pre-ticked height
   band from the hosted form wearing a different hat. */
.ca-party-suggest.ca-party-suggest {
  align-self: stretch;
  padding: 0.2rem 0.55rem;
  border: 1px dashed var(--ca-accent);
  border-radius: 999px;
  background: transparent;
  color: var(--ca-accent);
  font: inherit;
  font-size: 12.5px;
  line-height: 18px;
  text-align: left;
  cursor: pointer;
}
.ca-party-suggest[hidden] { display: none; }
.ca-party-suggest.ca-party-suggest:hover,
.ca-party-suggest.ca-party-suggest:focus-visible { background: rgba(145, 8, 220, 0.06); }

/* ------------------------------------------------------------------------ adding people */
.ca-party-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  margin: 0.8rem 0 0;
}
.ca-party-add.ca-party-add {
  width: auto;
  border: 1px dashed var(--ca-line);
  background: transparent;
  color: var(--ca-muted);
  cursor: pointer;
}
.ca-party-add.ca-party-add:hover,
.ca-party-add.ca-party-add:focus-visible {
  border-color: var(--ca-accent);
  color: var(--ca-accent);
  background: rgba(145, 8, 220, 0.06);
}
.ca-party-add[hidden] { display: none; }
.ca-party-full { font-size: 13.5px; color: var(--ca-muted); }
.ca-party-full[hidden] { display: none; }

/* ------------------------------------------------------------------ the note underneath
   One line at a time and never two, sharing .ca-resnote's slot and colours with the grid.
   "idle" matches nothing on purpose: with an address and nothing saved yet there is no news,
   and claiming "guardado" for a row nobody has written would be a statement about the past
   this page cannot check. */
#ca-party[data-ca-party-save="local"] [data-ca-party-note="local"],
#ca-party[data-ca-party-save="guardando"] [data-ca-party-note="guardando"],
#ca-party[data-ca-party-save="guardado"] [data-ca-party-note="guardado"],
#ca-party[data-ca-party-save="error"] [data-ca-party-note="error"] {
  display: block;
}

/* ------------------------------------------------------------------------ declared blank
   FROZEN, NOT DELETED. "Preferimos no detallar el grupo" greys the rows and takes their
   controls; every row is still there and pressing it again gives them back. The script holds
   the keyboard half (the selects are disabled), because pointer-events alone leaves a
   perfectly usable dropdown behind for anyone with a keyboard. */
#ca-party[data-ca-party-frozen] .ca-people { opacity: 0.55; filter: grayscale(1); }
#ca-party[data-ca-party-frozen] .ca-party-sel,
#ca-party[data-ca-party-frozen] .ca-party-x,
#ca-party[data-ca-party-frozen] .ca-party-suggest { pointer-events: none; }

/* --------------------------------------------------------------- the rows on a phone
   MEASURED AT 390, 29 August 2026: .ca overflowed to 408px and the height select was squeezed
   to its arrow with the suggestion pill running off the right edge. The shared narrow-width
   rule above turns a .ca-people-cell into a label-and-value ROW, and a <select> at width:100%
   beside a label is wider than the card by construction.

   Three declarations fix it and none of them is a width: the cell may wrap, the select takes
   whatever is left (min-width:0, because a flex item will not shrink below its content
   otherwise - the specific reason the cell overflowed rather than the select getting small),
   and the suggestion takes a line of its own instead of being a third thing competing for the
   same one. It has the longest text on the row; competing was never going to work. */
@media (max-width: 767px) {
  /* The pad narrows too, exactly as .ca-lockpad and .ca-resbox do at this width and for the
     same measured reason: at 1rem the row cards inside it pushed .ca to a scrollWidth of 344
     against a width of 332. /alojamiento/, which draws the same rows inside a lockpad, reports
     332 == 332, which is what said the padding was the difference and not the rows. */
  .ca-partybox { padding: 0.8rem 8px; }
  #ca-party .ca-people-cell { flex-wrap: wrap; column-gap: 0.6rem; row-gap: 0.4rem; }
  #ca-party .ca-people-lbl { flex: none; }
  #ca-party .ca-party-sel { width: auto; flex: 1 1 auto; min-width: 0; }
  #ca-party .ca-party-suggest { flex: 1 0 100%; }
}

/* THE ADD BUTTON IS DELIBERATELY NOT GREYED. It is the positive answer to the question the
   declaration answers negatively, so pressing it releases the declaration - the same pairing
   as "sí, tenemos" and "nadie del grupo" on /comida/. Greying it out would leave a frozen
   block whose only way out is the control that froze it. */

/* The withdrawal line at the generate button (Pol, 4 September 2026). Quieter than the note
   above it - it is a legal statement rather than an instruction - but not hidden, because a
   waiver the customer did not read at the moment of the click does not carry. */
.ca-go-legal {
  margin: 0.35rem 0 0;
  font-size: 13px;
  line-height: 19px;
  color: var(--ca-muted);
}

/* ---------------------------------------------------------------- sign in with Google (#247)
 *
 * Two blocks share these: the persistent door inside the "ya tengo un viaje" dialog and the
 * save-your-progress prompt on the planner. Both ship `hidden`, so none of this is on screen
 * until the script has a client id AND Google's button has actually rendered.
 *
 * The BUTTON itself is Google's own rendered element and is deliberately not styled here beyond
 * centring it - their branding guidelines own its colour, padding, font and logo, and a rule of
 * ours reaching inside it is how a compliant button stops being one. */
.ca-google {
  margin: 1rem 0 0;
}

.ca-google-prompt {
  /* Compact since 1 November 2026 (Pol): one line, the button, a close. Quieter than the
     purchase CTA above it: this is an offer, and the thing above it was the decision. */
  padding: 0.55rem 0.5rem 0.8rem 0.9rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: var(--ca-tint, #f7f7f9);
}

.ca-viaje > .ca-google-prompt { margin-top: 1rem; }

.ca-google-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ca-google-title {
  margin: 0;
  font-weight: 600;
  font-size: 15px;
}

/* «Ahora no» as a close: 44px of hit area around a small ×, in the muted ink. */
.ca-google-x.ca-google-x {
  flex: none;
  width: 44px;
  height: 44px;
  margin: -0.3rem -0.3rem -0.3rem 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--ca-muted);
  font: 400 22px/1 inherit;
  cursor: pointer;
}
.ca-google-x.ca-google-x:hover,
.ca-google-x.ca-google-x:focus-visible { background: #0000000d; color: var(--ca-ink, inherit); }

.ca-google-button {
  display: flex;
  justify-content: center;
  margin: 0.75rem 0 0.5rem;
  /* Google renders an iframe whose width it controls; this keeps it from stretching oddly in
     the dialog, which is narrower than the planner. */
  min-height: 44px;
}

.ca-google-prompt .ca-google-button { margin: 0.35rem 0 0; }

.ca-google-failed {
  margin: 0.5rem 0 0;
  color: var(--ca-warn, #8a3b12);
}

.ca-google-saved {
  margin: 0.5rem 0 0;
}

/* The separator in the dialog, between the one-tap door and the code + email form. A line with
   the word centred on it, which is the conventional shape and needs no extra markup. */
.ca-google-or {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem 0 0.25rem;
  color: var(--ca-muted);
  font-size: 13px;
}

.ca-google-or::before,
.ca-google-or::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ca-line);
}

/* SCROLL LOCK WHILE A DIALOG IS OPEN (Pol, 4 September 2026: "with the payment modal opened,
   there should be no scroll on the background").

   position:fixed rather than overflow:hidden, because overflow:hidden on the body does NOT hold
   on iOS Safari - the page scrolls behind the dialog anyway and then lands somewhere else when it
   closes. The cost of position:fixed is that the body loses its scroll offset, so client-area.js
   stashes it, writes it here as a negative `top`, and scrolls back to it on release. The class is
   added and removed by the observer in that file, which derives it from whether any <dialog> is
   open - so no close path can leave it stuck. */
body.ca-scroll-locked {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  /* `top` is set inline to the stashed offset, so the page does not jump to its start. */
}

/* The detail-page footer lost its paragraph (Pol, 4 September 2026: remove the explainer). The
   aside is display:flex with justify-content:space-between, which was right for text-then-button
   and leaves a lone button pinned to the left of a wide bordered box. Centred when it is the only
   child, so the removal changes what is said without leaving a layout that looks unfinished.
   Nothing changes on any page that still has both. */
.ca-foot > .ca-cta:only-child { margin-inline: auto; }

/* THE HERO BAND (the .elementor-element-3d9c068 band at the top of every client-area page and
 * /contrata/). Until 31 October 2026 it was an Unsplash photograph of a Disney stained-glass
 * window, re-encoded here as AVIF/WebP (DEVIATIONS.md E26). Pol replaced it with a brand band
 * («ilustraciones de marca»): page-contrata.css itself now paints a small SVG, so the override
 * that lived here and the photograph's files are gone. */

/* ------------------------------------------------------------------ the planner's reveals
   Date and days unlock three things below them: the day box, the Google prompt and the email.
   They used to pop in at full size (Pol, 31 October 2026: "when adding days it glitches"); they
   now fade in from just above. Everything that appears is BELOW the control being answered,
   so the page under the visitor's finger does not move - only what follows it grows. */
@keyframes ca-reveal { from { opacity: 0; transform: translateY(-6px); } }
.ca-horarios .ca-payoff:not([hidden]),
.ca-horarios .ca-payoff-tease:not([hidden]),
.ca-viaje .ca-google-prompt:not([hidden]),
.ca-viaje .ca-viaje-mail:not([hidden]),
.ca-viaje .ca-viaje-save:not([hidden]) { animation: ca-reveal 0.25s ease-out; }
@media (prefers-reduced-motion: reduce) {
  .ca-horarios .ca-payoff, .ca-horarios .ca-payoff-tease, .ca-viaje .ca-google-prompt,
  .ca-viaje .ca-viaje-mail, .ca-viaje .ca-viaje-save { animation: none; }
  .ca-bar, .ca-bar.ca-bar-away { transition: none; }
}

/* The email sits under the purchase button since 31 October 2026 (Pol: the button goes directly
   under the date and the days); it needs its own spacing. */
.ca-viaje > .ca-viaje-mail { display: block; margin-top: 1.2rem; }
.ca-viaje > .ca-viaje-mail[hidden] { display: none; }

/* «Quitar la reserva» only exists for a booking that exists. client-area.js sets [hidden] on a
   new one, but .ca-ghost's display beat the attribute and the button showed on an empty slot
   (seen at 390px, 31 Oct 2026). */
#ca-reserva [data-ca-res-remove][hidden] { display: none; }


/* ------------------------------------------------------------- section landings
 * Pol, 31 October 2026, on /tu-viaje/comida/: «this page doesnt look as good as the redesigned
 * ones». The UX review's step 5 (mock-up frame 3): under the question control, reference
 * content becomes compact visual blocks and the guides become illustrated cards. Every rule
 * here restyles copy that already existed - the words and the facts are unchanged - so a block
 * is opted in by a class on its wrapper in the section template (.ca-board-*), and data-sec
 * gives it the section's colours, the same pair as its card and article header. */
[data-sec] { --sec-a: #6b7c93; --sec-b: #2f3b4c; }
[data-sec="comida"], [data-art="comida"] { --sec-a: #c2410c; --sec-b: #7c2d12; }
/* SIX HUES, ONE PLACE (Pol, 31 Oct 2026: «Atracciones and tu viaje, and comida and grupo have too
   similar colors»). The hub keeps the brand purple-to-pink (about 280-345 deg), Comida orange
   (18), Alojamiento teal (175); Atracciones moves from purple to deep blue (224), Espectáculos
   from that blue to deep green (127), Grupo from orange to dark olive (70). Every pair is at
   least ~40 deg apart, all at a depth where white text passes AA. Bands, cards, article headers,
   current pills and the accents that read --sec-a/--sec-b all follow from these lines. */
[data-sec="atracciones"], [data-art="atracciones"] { --sec-a: #1d4ed8; --sec-b: #172554; }
[data-sec="espectaculos"], [data-art="espectaculos"] { --sec-a: #1f7a2a; --sec-b: #134d1a; }
[data-sec="alojamiento"], [data-art="alojamiento"] { --sec-a: #0f766e; --sec-b: #134e4a; }
[data-sec="grupo"], [data-art="grupo"] { --sec-a: #5f6f0c; --sec-b: #3a4507; }

/* Icon cards: a gradient chip with a white line icon beside the tip's own title and text. */
.ca-board { display: grid; gap: 0.7rem; margin: 1rem 0 0; }
.ca-board > .ca-tip {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 0.85rem;
  align-items: start;
  margin: 0;
  padding: 0.85rem 1rem 0.95rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: var(--ca-card);
}
.ca-board > .ca-tip + .ca-tip { margin-top: 0; }
.ca-board > .ca-tip::before {
  content: "";
  grid-row: 1 / span 2;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  background: var(--ca-ico, none) center / 1.35rem no-repeat, linear-gradient(135deg, var(--sec-a), var(--sec-b));
}
.ca-board > .ca-tip h4 { margin: 0.1rem 0 0.2rem; font-size: 16px; line-height: 22px; }
.ca-board > .ca-tip p { font-size: 15px; line-height: 23px; color: var(--ca-muted); }

/* Comida's list was three NUMBERED steps on a dashed rail plus the hotel as a card. Since 31 Oct
   2026 it is THE RAIL (end of this file), shared by the five sections, with an icon per item. */
.ca-board-icons[data-sec="atracciones"] > .ca-tip:nth-child(1) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M13 2 4 14h7l-1 8 9-12h-7z'/></svg>"); }
.ca-board-icons[data-sec="atracciones"] > .ca-tip:nth-child(2) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='3' width='14' height='13' rx='3'/><path d='M5 10h14M8 20l-2 2M16 20l2 2M8.5 13h.01M15.5 13h.01'/></svg>"); }
.ca-board-icons[data-sec="alojamiento"] > .ca-tip:nth-child(1) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3'/><path d='M3 20a6 6 0 0 1 12 0'/><circle cx='17' cy='9' r='2.5'/><path d='M16 14.2a5 5 0 0 1 5 5.8'/></svg>"); }
.ca-board-icons[data-sec="alojamiento"] > .ca-tip:nth-child(2) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>"); }

/* Stat tiles (atracciones, «Qué guardamos de cada atracción»): the number big in the section's
   colour over its label. The value is the text node after .ca-fact-k, so column-reverse is what
   puts it on top without touching the copy. */
.ca-board-stats .ca-factlist, .ca-board-tiles .ca-factlist {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.6rem;
  margin-top: 1rem;
}
.ca-board-stats .ca-factlist li, .ca-board-tiles .ca-factlist li {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
  gap: 0.15rem;
  padding: 0.75rem 0.9rem 0.8rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: var(--ca-card);
}
.ca-board-stats .ca-factlist li {
  border-top: 4px solid var(--sec-a);
  color: var(--sec-a);
  font: 700 28px/1.1 "Poppins", Sans-serif;
}
.ca-board-stats .ca-fact-k::after, .ca-board-tiles .ca-fact-k::after { content: none; }
.ca-board-stats .ca-fact-k { font: 500 13.5px/19px "DM Sans", Sans-serif; color: var(--ca-muted); }
/* Pension tiles (alojamiento): the option's name on top, what it includes under it. */
.ca-board-tiles .ca-factlist li {
  flex-direction: column;
  border-left: 4px solid var(--sec-a);
  font-size: 14px;
  line-height: 20px;
  color: var(--ca-muted);
}
.ca-board-tiles .ca-fact-k { font: 600 15px/21px "Poppins", Sans-serif; color: var(--e-global-color-8cd1398, #000); }

/* Espectáculos: «cuánto hay que llegar antes» as three icon rows. */
.ca-board-list ul { display: grid; gap: 0.6rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }
.ca-board-list li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 0.85rem;
  align-items: center;
  margin: 0;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--ca-line);
  border-radius: 14px;
  background: var(--ca-card);
  font-size: 15px;
  line-height: 22px;
}
.ca-board-list li::before {
  content: "";
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  background: var(--ca-ico, none) center / 1.35rem no-repeat, linear-gradient(135deg, var(--sec-a), var(--sec-b));
}

.ca-board-list li:nth-child(1) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l2.5 5 5.5.8-4 3.9.9 5.5L12 15.6 7.1 18.2 8 12.7 4 8.8 9.5 8z'/></svg>"); }
.ca-board-list li:nth-child(2) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18V5l11-2v13'/><circle cx='6' cy='18' r='3'/><circle cx='17' cy='16' r='3'/></svg>"); }
.ca-board-list li:nth-child(3) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M5 21V4h12l-2.5 4 2.5 4H5'/></svg>"); }

/* Grupo, the five height gates as a ruler: the centimetres in a pill, the rides beside it. */
.ca-board-ruler table, .ca-board-ruler tbody { display: block; }
.ca-board-ruler thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ca-board-ruler tr {
  display: grid;
  grid-template-columns: 5.2rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
  padding: 0.55rem 0;
  border-bottom: 1px dashed var(--ca-line);
}
.ca-board-ruler th, .ca-board-ruler td { padding: 0; border: 0; }
.ca-board-ruler td:first-child, .ca-board-ruler td:first-child {
  width: auto;
  padding: 0.3rem 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--sec-a), var(--sec-b));
  color: #fff;
  font: 700 15px/20px "Poppins", Sans-serif;
  text-align: center;
}

/* The guides: each card carries its article's illustrated header as a thumbnail (the section's
   scene, framed differently per card through --art-x), the title, the teaser and the reading
   time. The text parts keep the .ca-post-* classes the tests read. */
.ca-posts-cards { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 0.8rem; }
.ca-post-card {
  display: grid;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  padding: 0;
  overflow: hidden;
}
.ca-post-art {
  position: relative;
  min-height: 7.5rem;
  background: linear-gradient(135deg, var(--sec-a), var(--sec-b));
}
.ca-post-art .ca-art-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0.5rem;
  box-sizing: border-box;
  object-fit: contain;
  object-position: center;
}

.ca-post-main { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.8rem 0.95rem 0.85rem; min-width: 0; }
.ca-post-card .ca-post-title { margin: 0; font-size: 16px; line-height: 22px; }
.ca-post-card .ca-post-text { font-size: 14px; line-height: 20px; }
.ca-post-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.2rem 0.8rem;
  margin-top: auto;
  padding-top: 0.35rem;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--ca-muted);
}
.ca-post-card .ca-post-go { margin-top: 0; }


/* Grupo, «Para qué queremos la edad y la altura»: the same chip as the other boards (its icons
   were an 18px glyph in the title until now). */
.ca-why[data-sec] .ca-why-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 0.85rem;
  background: var(--ca-card);
}
.ca-why[data-sec] .ca-why-item::before {
  content: "";
  grid-row: 1 / span 2;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  background: var(--ca-ico, none) center / 1.35rem no-repeat, linear-gradient(135deg, var(--sec-a), var(--sec-b));
}
.ca-why[data-sec] .ca-why-title::before { content: none; }
.ca-why[data-sec] .ca-why-item[data-why="intensity"] { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M2 18c3 0 4-12 8-12s5 8 8 8 3-4 4-4'/></svg>"); }
.ca-why[data-sec] .ca-why-item[data-why="height"] { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M5 21V3M19 21V3M5 8h4M5 13h4M5 18h4'/></svg>"); }
.ca-why[data-sec] .ca-why-item[data-why="babyswitch"] { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8h13l-3-3M20 16H7l3 3'/></svg>"); }
.ca-why[data-sec] .ca-why-item[data-why="singlerider"] { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='6.5' r='3'/><path d='M6 21a6 6 0 0 1 12 0'/></svg>"); }
.ca-why[data-sec] .ca-why-item[data-why="stroller"] { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h2l2 8h11a7 7 0 0 1-7 6h-2a4 4 0 0 1-4-4'/><circle cx='9' cy='20' r='1.5'/><circle cx='17' cy='20' r='1.5'/></svg>"); }

.ca-board-ruler tbody > tr:nth-child(n) > td { background-color: transparent; }
.ca-board-tiles .ca-factlist li { justify-content: flex-start; }
#ca-nocturnos + .ca-aviso { margin-bottom: 2rem; }

/* ======================================================= THE BAND AND ITS TABS (Pol, 31 Oct 2026)
   «cabecera», option A. The band at the top of /tu-viaje/, its five sections and every article
   (site/templates/_ca-hero.html, _ca-hero-post.html, _ca-tabs.html) takes the section's colour
   and illustration, names it, and carries the section tabs on its bottom edge. It replaced the
   Elementor 3d9c068 band and the «← Área de cliente» link row inside the column.

   THE COLLAPSE IS JUST STICKY POSITIONING. The band is sticky with a NEGATIVE offset: its top is
   pinned (band height - strip height) above the header's bottom edge, so as the page scrolls it
   slides up under the header until only its bottom strip, the tab row, is left showing - and
   scrolling back up brings it down again. Nothing changes size, nothing is laid out again, and
   the page under it never moves (no CLS). The title and the illustration fading out, with a
   little parallax, is the only animation (THE BAND'S MOTION, below).

   --ql-hdr-h is the header's height. 56px is the phone header (chrome.css); assets/js/site.js
   measures it on every other width. While the header has slid away (headerup, past 500px going
   down), html.ql-hdr-up moves the strip up to the top edge with it. */
.ca-band {
  --ca-band-h: 112px;
  --ca-strip: 52px;
  --ca-collapse: calc(var(--ca-band-h) - var(--ca-strip));
  position: sticky;
  top: calc(var(--ql-hdr-h, 56px) - var(--ca-collapse));
  z-index: 90;
  height: var(--ca-band-h);
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, var(--sec-a), var(--sec-b));
  transition: transform 0.4s ease-in-out;
}
html.ql-hdr-up .ca-band { transform: translateY(calc(-1 * var(--ql-hdr-h, 56px))); }
/* The hub: the brand route drawing's own gradient, purple to pink, as ONE surface behind the band
   and its tab row (Pol, 31 Oct 2026: «tu viaje is the only one where banner and chips area doesnt
   match color»). The drawing's lines go on top from band-route-lines.svg, the same file without
   its background rectangle, so they do not repaint a second, differently mapped gradient. */
.ca-band[data-sec=""] { --sec-a: #9108dc; --sec-b: #ff5479; }

/* The illustration: the section's own scene, read from the same per-section path the cards and
   the article bands use, so new art dropped at that path shows here with no change to this file.
   It sits to the right and fades out under the title. */
/* The art fills the band ABOVE the tab row and never reaches it (Pol, 31 Oct 2026: the
   Alojamiento clock crossed «Vuestro grupo»), so no pill ever has a drawing across it. The whole
   scene is shown, scaled to that height and set to the right, clear of the title. */
.ca-band-art {
  position: absolute;
  inset: 0 0 var(--ca-strip) 0;
  background-position: right 12px bottom 2px;
  background-repeat: no-repeat;
  background-size: auto calc(100% - 4px);
}
.ca-band[data-sec=""] .ca-band-art { background-image: url("../img/band-route-lines.svg"); background-position: center; background-size: cover; }
.ca-band[data-sec="comida"] .ca-band-art { background-image: url("../img/tu-viaje/scene-comida.svg"); }
.ca-band[data-sec="atracciones"] .ca-band-art { background-image: url("../img/tu-viaje/scene-atracciones.svg"); }
.ca-band[data-sec="espectaculos"] .ca-band-art { background-image: url("../img/tu-viaje/scene-espectaculos.svg"); }
.ca-band[data-sec="alojamiento"] .ca-band-art { background-image: url("../img/tu-viaje/scene-alojamiento.svg"); }
.ca-band[data-sec="grupo"] .ca-band-art { background-image: url("../img/tu-viaje/scene-grupo.svg"); }

.ca-band-head {
  position: relative;
  height: var(--ca-collapse);
  display: flex;
  align-items: center;
  padding: 0 max(16px, env(safe-area-inset-left, 0px));
}
.ca-band .ca-band-title.ca-band-title {
  margin: 0;
  font-family: "Carme", Sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

/* The tabs: one row, scrolled sideways when it does not fit; the current one is white and is
   scrolled into view by assets/js/client-area.js. Links, not role=tablist: each is a page. */
.ca-subnav.ca-tabs {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--ca-strip);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0 max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px));
  border: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  scroll-padding-inline: 16px;
  white-space: nowrap;
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
}
.ca-subnav.ca-tabs::-webkit-scrollbar { display: none; }
.ca-band a.ca-btab {
  flex: none;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  /* A dark wash, not a light one: white text must read on the lightest end of every band (the
     hub's pink, Comida's and Grupo's orange). A light wash put Comida and Grupo near 4:1 and the
     hub's pink near 3:1; this keeps every pill above 4.5:1, measured from rendered pixels. */
  background: rgba(0, 0, 0, 0.25);
  color: #fff;
  font-family: "DM Sans", Sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  /* Every state - current, hover, focus, pressed - keeps this exact box: same weight, same
     padding, same 1px border; only colours change (Pol, 31 Oct 2026: «clicking tabs glitches
     their sizes»). No grey tap flash on top of the instant current mark. */
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.ca-band a.ca-btab:hover { background: rgba(0, 0, 0, 0.35); color: #fff; }
.ca-band a.ca-btab:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ca-band a.ca-btab-hub { background: transparent; border-color: rgba(255, 255, 255, 0.5); }
.ca-band a.ca-btab[aria-current] { background: #fff; border-color: #fff; color: var(--sec-b); }
/* The hub's --sec-b is a light pink, too pale for text on white; its current pill uses the purple. */
.ca-band[data-sec=""] a.ca-btab[aria-current] { color: #9108dc; }
/* The last tab must be able to scroll clear of the fade on the right. */
.ca-subnav.ca-tabs::after { content: ""; flex: none; width: 12px; }

@media (min-width: 768px) {
  .ca-band { --ca-band-h: 136px; --ca-strip: 56px; }
  .ca-band-head, .ca-subnav.ca-tabs { padding-inline: max(16px, 7.5%); }
  .ca-band .ca-band-title.ca-band-title { font-size: 22px; letter-spacing: 9px; }
}

/* ON AN ARTICLE the band is the tab strip and nothing else (Pol, 31 Oct 2026: at 390px the
   article's title started three quarters down the first screen). The section tab already says
   where you are, so the section name and the room for it go; the colour and the art stay. The
   article's own illustrated header is capped too (its art is the designer's, untouched). */
.ca-band[data-ca-article] { --ca-band-h: var(--ca-strip); }
.ca-band[data-ca-article] .ca-band-head { display: none; }
@media (max-width: 767px) {
  .ca-articulo-band { max-height: 120px; margin-bottom: 0.9rem; }
}

/* Anchors (#ca-none-*, the skip link) land below the header AND the strip. */
html:has(.ca-band) { scroll-padding-top: calc(var(--ql-hdr-h, 56px) + 60px); }

/* ------------------------------------------------------------------- THE BAND'S MOTION
   As the band slides under the header, the title fades and the illustration lifts away a little
   faster than the page (parallax) and fades out - upward, so it never crosses the tab row. transform and opacity only, so it is composited.
   Scroll-driven where the browser has it (Chrome, Edge, Safari 26); elsewhere assets/js/site.js
   writes the same progress, 0 to 1, into --ql-p on the band from a rAF-throttled scroll
   listener (html.ql-motion-js). At rest at the top of the page, and without JavaScript, both
   sit at progress 0: fully visible. Nothing moves under prefers-reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes ca-band-art { to { transform: translateY(-14px); opacity: 0; } }
  @keyframes ca-band-head { 70%, to { transform: translateY(14px); opacity: 0; } }
  @supports (animation-timeline: scroll()) {
    .ca-band-art,
    .ca-band-head {
      animation: ca-band-art linear both;
      animation-timeline: scroll(root block);
      animation-range: 0 var(--ca-collapse);
    }
    .ca-band-head { animation-name: ca-band-head; }
  }
  html.ql-motion-js .ca-band-art {
    transform: translateY(calc(var(--ql-p, 0) * -14px));
    opacity: calc(1 - var(--ql-p, 0));
  }
  html.ql-motion-js .ca-band-head {
    transform: translateY(calc(var(--ql-p, 0) * 14px));
    opacity: calc(1 - var(--ql-p, 0) / 0.7);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ca-band { transition: none; }
}

/* ==========================================================================================
   THE BAND - the editable block without its boxes (Pol, 31 October 2026)
   ==========================================================================================
   (It was lilac for one deploy. The same afternoon Pol asked "too much color? ... or more
   neutral and shared for all tabs?", so the band is a warm off-white on every section and the
   colour tokens below are set in THE SHARED GUTTER AND THE NEUTRAL BAND at the end of this
   file. The rules here are the shapes; that block is the paint and the alignment.)
   Pol, on /tu-viaje/comida/ at 390px: "cant we improve UI removing the boxes? it looks rigid"
   and "this section and example display doesnt look profesional". What he was looking at was
   four frames one inside the other: the purple-edged card, the hatched example pad inside it,
   a bordered row for every meal, and under that a grey card holding two bordered checkboxes.
   Everything had an edge, so nothing had rank.

   He picked direction B of the three he was shown (hub card «secciones-sin-cajas», 11:30):
   NO BORDERS ANYWHERE in the block. What the visitor fills in sits on ONE full-width lilac
   band; what they read stays on white underneath. One level deep: the example is white rows
   resting on the lilac, the questions are white rows resting on the lilac, and that is the
   whole vocabulary. The example says it is an example with a small grey tag and a dotted
   circle, not with a hatch; the blanks to fill (edad, altura, fecha) are purple words on a
   dashed underline, not pills; «Se desbloquea al comprar» is a padlock and purple text beside
   the kicker, not a pill either.

   EVERY RULE IS SCOPED TO .ca-section.ca-editable. That class exists on exactly five blocks -
   #ca-reservations, #ca-party, #ca-mustsee, #ca-parade, #ca-entrada, the first block of each
   topic page - and nowhere on /tu-viaje/ itself, so the planner, the articles, the modal and
   the pinned bar are untouched. Nothing above is deleted: these rules win by specificity and
   by coming last, which keeps the older layouts intact for the hub and for the generated
   (propio) grid, whose hooks (data-ca-*, .ca-day-chip, .ca-add, .ca-none-btn) keep their
   names so client-area.js and tests/client-area.test.mjs (which pins .ca-editable) are
   unchanged. No copy moved. */

body {
  --ca-band: #f7f5f2;          /* the band's paint; the value that counts is set at the end of the file */
  --ca-band-ink: #6b665f;      /* the quiet labels and the example tag */
  --ca-band-rowshadow: 0 1px 2px rgba(45, 35, 25, 0.06);
}

/* ------------------------------------------------------------------ the band itself */
/* The box stays in the column, where its text is on the page's one gutter line; only the
   PAINT runs edge to edge, as a spread shadow clipped to the box's own height. No vw
   arithmetic, so a scrollbar never widens the page, and no margin that a percentage gutter
   would get wrong. The hairline under it is the second shadow, one pixel lower. */
.ca-section.ca-editable {
  --_bg: var(--ca-band);
  margin: 0 0 1.8rem;
  padding: 1.7rem 0 2rem;
  border: 0;
  border-radius: 0;
  background: var(--_bg);
  box-shadow: 0 0 0 100vmax var(--_bg), 0 1px 0 100vmax var(--ca-band-line);
  clip-path: inset(0 -100vmax);
}
body[data-ca-state="locked"] .ca-section.ca-editable { --_bg: #f7f6f4; }
@media (min-width: 768px) {
  .ca-section.ca-editable { padding: 2rem 0 2.2rem; }
}

/* ------------------------------------------------- the head: kicker, lock, title */
/* The head becomes one wrapping row and .ca-section-title dissolves into it, so the purple
   lock text sits on the kicker's line when both fit (desktop) and drops under it when they do
   not (390px, ca/fr), while the title always takes the full width below. No markup change:
   display: contents on a <div> is exactly the device for this. */
.ca-editable .ca-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 1rem;
  margin: 0 0 1rem;
}
.ca-editable .ca-section-title { display: contents; }
.ca-editable .ca-step-tag { order: 1; font-size: 13px; letter-spacing: 0.08em; }
.ca-editable .ca-badge { order: 2; }
.ca-editable .ca-section-title .ca-h3,
.ca-editable .ca-section-title .ca-h2 { order: 3; flex: 1 0 100%; margin-top: 0.35rem; font-size: 26px; line-height: 33px; }
.ca-editable .ca-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ca-accent);
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  white-space: normal;
}
.ca-editable .ca-badge::before {
  content: "";
  flex: none;
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: var(--ca-lock) center / contain no-repeat;
  mask: var(--ca-lock) center / contain no-repeat;
  --ca-lock: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z'/%3E%3C/svg%3E");
}
.ca-editable .ca-badge-locked { color: var(--e-global-color-65e99da, #152f4e); }
@media (max-width: 767px) {
  .ca-editable .ca-section-title .ca-h3,
  .ca-editable .ca-section-title .ca-h2 { font-size: 23px; line-height: 30px; }
}

/* The purple-edged callout (grupo's rule, atracciones' warning) loses its edge and its wash:
   on the band it is prose whose bold leads already carry the emphasis. */
.ca-editable .ca-rule {
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 16px;
  line-height: 26px;
}
.ca-editable .ca-rule strong { color: var(--ca-accent); }

/* --------------------------------------------------------------- the example */
/* The pads (.ca-resbox, .ca-partybox, .ca-lockpad) stop being pads: no frame, no hatch, no
   inset. The id-prefixed selectors are needed because the hatch rules carry the section id. */
.ca-editable .ca-resbox,
.ca-editable .ca-partybox,
.ca-editable .ca-lockpad,
#ca-reservations .ca-resbox.ca-resbox,
#ca-party .ca-partybox.ca-partybox { margin-top: 1.4rem; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: default; }
.ca-editable .ca-lockpad:hover { border-color: transparent; }

/* The tag: quiet grey, a dotted circle in front of it. #ca-reservations hid the padlock
   glyph; the circle takes the glyph's place on every page. */
.ca-editable .ca-example-tag,
#ca-reservations .ca-example-tag {
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 12px;
  letter-spacing: 0.07em;
  color: var(--ca-band-ink);
}
.ca-editable .ca-example-tag::before,
#ca-reservations .ca-example-tag::before {
  display: inline-block;
  align-self: flex-start;
  margin: 0.2rem 0 0;
  width: 12px;
  height: 12px;
  border: 2px dotted #b9a8d6;
  border-radius: 50%;
  background: transparent;
  -webkit-mask: none;
  mask: none;
}

/* A blank to fill is a purple word on a dashed line, not a pill. */
.ca-editable .ca-slot {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 0.92em;
  text-decoration: underline dashed #c9a8f0;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
}

/* The day switch: words with an underline, the chosen one in ink with the purple rule. */
#ca-reservations .ca-days { gap: 1.1rem; margin: 0 0 0.5rem; }
#ca-reservations .ca-day-chip.ca-day-chip {
  min-height: 0;
  padding: 0.2rem 0 0.45rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ca-band-ink);
  font-size: 15px;
  box-shadow: inset 0 -3px 0 transparent;
}
#ca-reservations .ca-day-chip.ca-day-chip:hover,
#ca-reservations .ca-day-chip.ca-day-chip:focus-visible { color: var(--ca-ink); }
#ca-reservations .ca-day-chip.ca-day-chip[aria-pressed="true"] {
  background: transparent;
  color: var(--ca-ink);
  box-shadow: inset 0 -3px 0 var(--ca-accent);
}
#ca-reservations .ca-day-chip[data-has]::after { top: -1px; right: -11px; }

/* The meal lines: white rows on the lilac, no edge, a hair of shadow so they sit rather than
   float. The kind colours (reserva/sugerida/hotel) no longer paint the row - the bookmark is
   the mark of a booking, and the example tag already says the rest is ours. */
#ca-reservations .ca-matrix-tabs .ca-matrix-row { gap: 0.4rem; }
#ca-reservations .ca-matrix-tabs .ca-matrix-cell,
#ca-reservations .ca-matrix-tabs .ca-matrix-filled {
  min-height: 50px;
  padding: 0.55rem 0.9rem;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
#ca-reservations .ca-matrix-tabs .ca-matrix-filled:hover { border-color: transparent; box-shadow: 0 0 0 2px rgba(145, 8, 220, 0.25); }
#ca-reservations[data-ca-res="propio"] .ca-matrix-cell:not(.ca-matrix-filled):hover { border-color: transparent; background: #fff; }
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-cell-edit { border-radius: 14px; }
#ca-reservations .ca-matrix-tabs .ca-matrix-meal { color: var(--ca-band-ink); }
#ca-reservations .ca-matrix-tabs .ca-cell-what { font-weight: 600; color: #3b3350; }
#ca-reservations .ca-matrix-tabs .ca-cell-when { color: #6f6684; font-variant-numeric: tabular-nums; }
#ca-reservations .ca-matrix-tabs .ca-i-book { color: var(--ca-accent); }
/* The empty slot's «+ Añadir» is a lilac pill on the white row: the one tinted thing in a
   row, so it reads as the thing to press. */
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add {
  border: 0;
  background: var(--ca-band);
  color: var(--ca-accent);
}
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add:hover,
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add:focus-visible { background: rgba(145, 8, 220, 0.14); }
.ca-editable .ca-resnote { font-size: 14.5px; }
.ca-editable .ca-resnote-ejemplo { margin-top: 0.9rem; }
.ca-editable .ca-resnote-ejemplo .ca-resnote-link { color: var(--ca-ink); font-size: 15px; font-weight: 500; text-underline-offset: 3px; }

/* The people and the hotel hours: the same white rows. At every width the row is the unit
   and the cells inside it are plain, with a soft rule between them on the phone. */
.ca-editable .ca-hours-row,
.ca-editable .ca-people-row {
  padding: 0.5rem 1rem 0.65rem;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-editable .ca-hours-cell,
.ca-editable .ca-people-cell { border: 0; border-radius: 0; background: transparent; }
@media (max-width: 767px) {
  .ca-editable .ca-hours-cell,
  .ca-editable .ca-people-cell { border-top: 1px solid #f0ecf5; }
}
@media (min-width: 768px) {
  .ca-editable .ca-hours-head,
  .ca-editable .ca-people-head { padding: 0 1rem; }
  .ca-editable .ca-hours-row,
  .ca-editable .ca-people-row { padding: 0.35rem 1rem; }
}
.ca-editable .ca-hours-more,
.ca-editable .ca-people-more { padding: 0; background: transparent; box-shadow: none; }
.ca-editable .ca-hours-more .ca-hours-day,
.ca-editable .ca-people-more .ca-people-who { padding: 0.2rem 0 0; font-size: 14px; color: var(--ca-band-ink); }
.ca-editable .ca-people-who,
.ca-editable .ca-hours-day { justify-content: flex-start; }
.ca-editable .ca-people-who strong,
.ca-editable .ca-hours-day strong { color: #3b3350; }
.ca-editable .ca-people-note { border-top: 0; padding-top: 0; margin-top: 0.9rem; }
.ca-editable .ca-party-add.ca-party-add {
  border: 0;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  background: #fff;
  color: var(--ca-accent);
  box-shadow: var(--ca-band-rowshadow);
}
.ca-editable .ca-party-add.ca-party-add:hover,
.ca-editable .ca-party-add.ca-party-add:focus-visible { background: #fff; box-shadow: 0 0 0 2px rgba(145, 8, 220, 0.25); }
.ca-editable .ca-party-sel { border-color: #e6def0; }

/* The hotel facts (alojamiento) were pills; now they are one white sheet of label: blank. */
.ca-editable .ca-factlist.ca-answers {
  display: grid;
  gap: 0;
  margin: 0 0 0.6rem;
  padding: 0.2rem 1rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-editable .ca-factlist.ca-answers li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.5rem;
  padding: 0.55rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 15px;
}
.ca-editable .ca-factlist.ca-answers li + li { border-top: 1px solid #f0ecf5; }
.ca-editable .ca-answers .ca-fact-k { color: var(--ca-band-ink); }

/* -------------------------------------------------------- the declared blanks */
/* .ca-nones stops being a card: its heading becomes the quiet label it always was, and each
   answer is a white row with the tick box drawn on it. The two-way intolerances question and
   the heights question lose their dashed rules; space does the separating. */
.ca-editable .ca-nones { margin-top: 1.6rem; padding: 0; border: 0; border-radius: 0; background: transparent; }
.ca-editable .ca-nones-head { margin-bottom: 0.8rem; color: var(--ca-band-ink); }
.ca-editable .ca-none + .ca-none { margin-top: 0.6rem; padding-top: 0; border-top: 0; }
.ca-editable .ca-intol,
.ca-editable .ca-hgate { margin-top: 1.6rem; padding-top: 0; border-top: 0; }
.ca-editable .ca-intol-q,
.ca-editable .ca-hgate-q {
  margin: 0 0 0.8rem;
  font-family: "Poppins", Sans-serif;
  font-size: 18px;
  line-height: 26px;
  font-weight: 600;
  color: var(--e-global-color-8cd1398, #000);
}
.ca-editable .ca-intol .ca-none { margin-top: 0.6rem; }
.ca-editable .ca-none-btn.ca-none-btn {
  gap: 0.75rem;
  padding: 0.8rem 1rem;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
  font-size: 16px;
  line-height: 24px;
}
.ca-editable .ca-none-btn.ca-none-btn:hover,
.ca-editable .ca-none-btn.ca-none-btn:focus-visible { border-color: transparent; box-shadow: 0 0 0 2px rgba(145, 8, 220, 0.25); }
.ca-editable .ca-none-btn.ca-none-btn::before {
  margin-top: 0.1rem;
  width: 22px;
  height: 22px;
  border: 2px solid #b6abc8;
  border-radius: 7px;
  background-size: 14px 14px;
}
.ca-editable .ca-none-btn.ca-none-btn[aria-pressed="true"] { border-color: transparent; background: #fff; }
.ca-editable .ca-none-btn.ca-none-btn[aria-pressed="true"]::before { border-color: var(--ca-accent); background-color: var(--ca-accent); }
.ca-editable .ca-none-req,
.ca-editable .ca-none-done { padding-left: calc(1rem + 22px + 0.75rem); }
#ca-reservations .ca-none-ingrid .ca-none-btn.ca-none-btn { padding: 0.6rem 0.9rem; }
.ca-editable .ca-nones-note { margin-top: 1rem; }
/* At 390px the older rule pushed the tick box onto its own row above the label (the label
   claimed the whole line so the «Respondido» tag would not squeeze it). On a white row the
   tick belongs beside the words; it is the tag that takes a full line of its own, under them. */
@media (max-width: 767px) {
  .ca-editable .ca-none-btn.ca-none-btn { flex-wrap: wrap; align-items: flex-start; font-size: 16px; line-height: 24px; }
  .ca-editable .ca-none-label { flex: 1 1 0; min-width: 0; }
  .ca-editable .ca-none-tag { flex: 0 0 auto; order: 3; margin: 0.4rem 0 0 calc(22px + 0.75rem); }
  .ca-editable .ca-none-btn.ca-none-btn::before { margin-top: 0.1rem; }
}

/* The intolerance picker: a white sheet, the vocabulary as lilac chips that fill in purple. */
.ca-editable .ca-intol-panel {
  margin: 0.6rem 0 0.2rem;
  padding: 0.9rem 1rem 1rem;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-editable .ca-chip {
  padding: 0.35rem 0.85rem;
  border: 0;
  background: var(--ca-band);
  color: #3b3350;
  font-weight: 500;
}
.ca-editable .ca-chip:has(input:checked) { border-color: transparent; background: var(--ca-accent); color: #fff; }
.ca-editable .ca-chip:has(input:checked) input { accent-color: #fff; }
.ca-editable .ca-comments-label textarea { border-color: #e6def0; }
.ca-editable .ca-hgate-modes { gap: 0.6rem; }
.ca-editable .ca-hgate-mode.ca-hgate-mode { width: auto; flex: 1 1 14rem; }
.ca-editable .ca-hgate-item { background: #fff; box-shadow: var(--ca-band-rowshadow); border-radius: 14px; }

/* ----------------------------------------------------------------- the actions */
/* The purchase button is unchanged. The lock buttons beside it (what a paying customer would
   open) lose their grey edge and sit as white pills with the padlock. */
.ca-editable .ca-actions { margin-top: 1.6rem; gap: 0.7rem; }
.ca-editable .ca-locked.ca-locked {
  padding: 0.7rem 1.2rem 0.7rem 1rem;
  border: 0;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-editable .ca-locked.ca-locked:hover,
.ca-editable .ca-locked.ca-locked:focus-visible { border-color: transparent; color: var(--ca-accent); box-shadow: 0 0 0 2px rgba(145, 8, 220, 0.25); }
body[data-ca-state="locked"] .ca-lockable.ca-editable .ca-locked.ca-locked { border: 0; background: #fff; color: var(--ca-muted); }

/* ---------------------------------------------------- the group: one line per person
   Pol, 31 Oct 2026: «it could also be just one row to be added and the option to add more.
   Persona 1 is weird wording. maybe just numbers?». Every width, phone included: number badge,
   age, height, remove; «Edad» and «Altura» once, as column headers. The suggestion, when there
   is one, takes its own line under the selects. Scoped to .ca-people-lines so the per-day hours
   on /alojamiento/, which share the .ca-people-* rules, are untouched. */
.ca-people-lines { gap: 0.45rem; }
.ca-people-lines .ca-people-head,
.ca-people-lines .ca-people-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 0.8fr) minmax(0, 1.2fr) 30px;
  gap: 0.4rem;
  align-items: center;
  padding: 0;
  border: 0;
  background: none;
}
.ca-people-lines .ca-people-head { display: grid; }
.ca-people-lines .ca-people-head span { padding-left: 0.15rem; }
.ca-people-lines .ca-people-cell {
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
}
.ca-people-lines .ca-party-sel {
  -webkit-appearance: none;
  appearance: none;
  padding: 0.45rem 1.3rem 0.45rem 0.5rem;
  background: #fff url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%235a6b80' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.45rem center / 10px 6px;
  text-overflow: ellipsis;
}
.ca-party-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--sec-a, var(--ca-accent));
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}
.ca-people-lines .ca-party-x.ca-party-x { width: 28px; height: 28px; justify-self: center; }
.ca-people-lines .ca-party-x[hidden] { display: block; visibility: hidden; }
.ca-people-lines .ca-party-suggest { grid-column: 2 / -1; justify-self: start; max-width: 100%; white-space: normal; text-align: left; }
.ca-people-lines .ca-party-suggest[hidden] { display: none; }
@media (max-width: 767px) {
  .ca-people-lines .ca-people-head { display: grid; }
  .ca-people-lines .ca-people-head, .ca-people-lines .ca-people-row { grid-template-columns: 26px minmax(0, 0.8fr) minmax(0, 1.2fr) 28px; gap: 0.35rem; }
  .ca-people-lines .ca-party-sel { font-size: 14px; }
  #ca-party .ca-partybox { padding: 0.75rem 0.6rem; }
}

/* ------------------------------------------------------------- «Ya tengo un viaje», moved
   Off the top of the hub (Pol, 31 Oct 2026: «too much space for something irrelevant for now»).
   The state card is hidden whenever it has nothing to show - for a first visitor that is always
   now - and the way back in is one quiet line under the pay button, plus an item in the burger
   menu (chrome.css). */
[data-ca-client="anon"] .ca-state:not(:has(.ca-note:not([hidden]))) { display: none; }
.ca-go-volver { margin: 0.6rem 0 0; font-size: 14.5px; }
.ca-go-volver .ca-linkish { color: var(--ca-muted); }

/* ==========================================================================================
   THE SHARED GUTTER AND THE NEUTRAL BAND (Pol, 31 October 2026, on the live site at 390px)
   ==========================================================================================
   Three things Pol saw once the lilac band was live, in the order he said them.

   «fix that» - a grey strip between the orange band's tab row and the lilac band. It was
   .ca's top padding with the page's grey showing through (22px on the phone, 32px on
   desktop). Between two cards that is breathing room; between two full-width bands it is a
   crack. The first block cancels it exactly, so the band starts on the tab row's bottom edge.

   «Different margins on the side» - his four screenshots had three left edges: Comida's
   text 12px in, Atracciones' 48px in, the hub's 30px in, and the band's title at 16px. ONE
   GUTTER NOW, --ca-gutter, the same max(16px, safe-area) the band's title and first tab pill
   already used (max(16px, 7.5%) from 768px, again as the band has it). The Elementor column
   that held the area at 85 % lets go (.e-con-inner:has(> .ca-host)) and .ca pads itself by
   the gutter instead, so the hub, the five sections and the articles all start on that line.
   The band and the tabs are not touched (another PR is on them): their padding is the same
   two expressions, written out in THE BAND AND ITS TABS above. If one moves, move both.

   NESTED BLOCKS DO NOT ADD A SECOND INSET. A card, a meal row, an answer row keeps its own
   padding for the eye but steps OUT by the same amount (--ca-bleed, --ca-rowbleed), so the
   words inside it stay on the gutter line. On the phone the bleed IS the gutter: cards and
   rows run edge to edge, which is what a phone list looks like. From 768px it is the card's
   own 1.6rem (rows 1rem), so a card reads as a card that hangs a little past the text.

   «Too much color? ... or more neutral and shared for all tabs?» - so the band is not tinted
   per section and not lilac. Pol was shown three neutral treatments (hub card
   «fondo-secciones», 31 Oct 2026) and picked N2: the page stays its light grey and the
   editable block is WHITE on it, with no border - white is what is yours, like the cards
   under it, and the only colour on the page is the band's, whatever hue a section gets. The
   rows inside the block, white on white, are drawn by a hairline ring instead of a shadow.
   The section's colour lives in the band at the top and in two small accents inside the
   block - the chosen day's underline and the dashed blanks (edad, altura, hotel...) - in the
   section's dark shade, --sec-b, 9:1 or better on white. Brand purple stays on the buttons,
   the links and «+ Añadir». The five sections carry data-sec for exactly those two accents. */

body {
  --ca-gutter: max(16px, env(safe-area-inset-left, 0px));
  --ca-bleed: var(--ca-gutter);      /* a card steps out by this, so its text stays on the line */
  --ca-rowbleed: var(--ca-gutter);   /* a row inside the band, likewise */
  --ca-band: #fff;                              /* N2: the block is white on the grey page */
  --ca-band-ink: #6b665f;
  --ca-band-line: #e6e1da;
  --ca-band-pill: #f1efeb;
  --ca-band-rowshadow: 0 0 0 1px #ebe7e1;       /* a ring, since the rows are white on white */
}
@media (min-width: 768px) {
  body { --ca-gutter: max(16px, 7.5%); --ca-bleed: 1.6rem; --ca-rowbleed: 1rem; }
}

/* ------------------------------------------------------------ the one gutter */
.e-con-inner:has(> .ca-host) { max-width: 100%; }
.ca {
  max-width: none;
  padding-left: var(--ca-gutter);
  padding-right: var(--ca-gutter);
}
/* Flush under the tab row: the first block cancels .ca's top padding exactly. */
.ca > .ca-section.ca-editable:first-child { margin-top: calc(-1 * var(--ca-pad-top)); }
/* Comida's grid once needed the section's side padding cut to 12px for three day columns
   (the 26 August note). The phone shows one day as meal rows now; the block sits on the line
   like the other four. */
@media (max-width: 767px) {
  #ca-reservations.ca-editable { padding-left: 0; padding-right: 0; }
}

/* The reading cards under the band: the same card, hanging past the text by its own padding
   so the words inside start on the gutter line. On the phone that is edge to edge, and a
   card with no side to show loses its side borders and its corners. */
.ca .ca-section:not(.ca-editable) {
  margin-left: calc(-1 * var(--ca-bleed));
  margin-right: calc(-1 * var(--ca-bleed));
  padding-left: var(--ca-bleed);
  padding-right: var(--ca-bleed);
}
@media (max-width: 767px) {
  .ca .ca-section:not(.ca-editable) { border-left: 0; border-right: 0; border-radius: 0; }
}

/* The rows inside the band: meals, people, hours, the hotel sheet, the answers, the picker.
   Each steps out by --ca-rowbleed and pads by the same, so its words are on the line. */
.ca-editable .ca-matrix,
.ca-editable .ca-hours-row,
.ca-editable .ca-people-row,
.ca-editable .ca-factlist.ca-answers,
.ca-editable .ca-intol-panel,
.ca-editable .ca-hgate-item,
.ca-editable .ca-none-btn.ca-none-btn {
  margin-left: calc(-1 * var(--ca-rowbleed));
  margin-right: calc(-1 * var(--ca-rowbleed));
}
.ca-editable .ca-none-btn.ca-none-btn { width: calc(100% + 2 * var(--ca-rowbleed)); }
#ca-reservations .ca-matrix-tabs .ca-matrix-cell,
#ca-reservations .ca-matrix-tabs .ca-matrix-filled,
.ca-editable .ca-hours-row,
.ca-editable .ca-people-row,
.ca-editable .ca-factlist.ca-answers,
.ca-editable .ca-intol-panel,
.ca-editable .ca-hgate-item,
.ca-editable .ca-none-btn.ca-none-btn { padding-left: var(--ca-rowbleed); padding-right: var(--ca-rowbleed); }
.ca-editable .ca-hours-head,
.ca-editable .ca-people-head { padding-left: 0; padding-right: 0; }
.ca-editable .ca-none-req,
.ca-editable .ca-none-done { padding-left: calc(22px + 0.75rem); }
#ca-reservations .ca-none-ingrid .ca-none-btn.ca-none-btn { padding: 0.6rem var(--ca-rowbleed); }
@media (max-width: 767px) {
  #ca-reservations .ca-matrix-tabs .ca-matrix-cell,
  #ca-reservations .ca-matrix-tabs .ca-matrix-filled,
  #ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-cell-edit,
  .ca-editable .ca-hours-row,
  .ca-editable .ca-people-row,
  .ca-editable .ca-factlist.ca-answers,
  .ca-editable .ca-intol-panel,
  .ca-editable .ca-hgate-item,
  .ca-editable .ca-none-btn.ca-none-btn { border-radius: 0; }
}

/* ------------------------------------------------------- the neutral paint */
.ca-editable .ca-factlist.ca-answers li + li { border-top-color: var(--ca-band-line); }
@media (max-width: 767px) {
  .ca-editable .ca-hours-cell,
  .ca-editable .ca-people-cell { border-top-color: var(--ca-band-line); }
}
.ca-editable .ca-none-btn.ca-none-btn::before { border-color: #b9b3aa; }
.ca-editable .ca-party-sel,
.ca-editable .ca-comments-label textarea { border-color: #d9d3ca; }
#ca-reservations .ca-matrix-tabs .ca-cell-what,
.ca-editable .ca-people-who strong,
.ca-editable .ca-hours-day strong { color: var(--ca-ink); }
#ca-reservations .ca-matrix-tabs .ca-cell-when { color: var(--ca-band-ink); }
#ca-reservations .ca-matrix-tabs .ca-matrix-cell .ca-add.ca-add { background: var(--ca-band-pill); }
.ca-editable .ca-chip { background: var(--ca-band-pill); color: var(--ca-ink); }
.ca-editable .ca-example-tag::before,
#ca-reservations .ca-example-tag::before { border-color: #cfc9bf; }

/* ---------------------------------------------- the section's two accents */
.ca-editable[data-sec] .ca-slot { color: var(--sec-b); text-decoration-color: var(--sec-b); }
#ca-reservations[data-sec] .ca-day-chip.ca-day-chip[aria-pressed="true"] { box-shadow: inset 0 -3px 0 var(--sec-b); }
@supports (color: color-mix(in srgb, red 50%, white)) {
  .ca-editable[data-sec] .ca-slot { text-decoration-color: color-mix(in srgb, var(--sec-b) 55%, #fff); }
}

/* ----------------------------------------------------- the reservation dialog, 31 Oct 2026
   The meal's usual hour as a grey hint in the empty time field (not a value), and the venue
   list kept above the on-screen keyboard (its max-height is set from the visual viewport by
   client-area.js). The active option is the keyboard's. */
.ca-time-wrap { position: relative; display: block; }
.ca-time-ph {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: #9aa6b5;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
}
.ca-time-wrap[data-empty] input[name="time"] { color: transparent; }
.ca-time-wrap[data-empty] input[name="time"]::-webkit-datetime-edit { color: transparent; }
.ca-time-wrap:not([data-empty]) .ca-time-ph { display: none; }
.ca-combo-list { overflow-y: auto; overscroll-behavior: contain; }
.ca-combo-opt[aria-selected="true"] { background: rgba(145, 8, 220, 0.08); }

/* ==========================================================================================
   THE RAIL - one "what to know" list for the five sections (Pol, 31 October 2026)
   ==========================================================================================
   Pol, on the live /tu-viaje/comida/, about the three numbered steps on their dashed rail:
   «i like how it looks but is the only section with it and numbers make no sense». So the
   rail stays and becomes the shared pattern: every section's "what to know" list - Comida's
   four booking tips (the hotel included, as the last stop: it is the same list and the rail
   no longer says "in this order"), Atracciones' two notes, Espectáculos' three margins,
   Alojamiento's two Extra Magic Time facts, Grupo's five reasons - is items on one dashed
   rail, each with a ROUND gradient badge in the section's colours and a white line icon,
   the family the «Vuestro hotel» card already used. The badge is round, not the 12px
   square of the old cards, so a badge never reads as a card's corner.

   The copy and the markup inside the lists are untouched: the container gets .ca-rail in
   the template and these rules restyle what is already there (.ca-tip, .ca-why-item, li).
   Every selector is qualified with [data-sec], which all five containers carry, so these
   rules outrank the per-section card rules in THE BOARDS above without !important.
   The icons are the ones each list already had, plus three new ones for Comida's first
   three items (a star for character dining, cutlery for table service, a cup for quick
   service) in place of the numbers. The rail reads top to bottom with no number, so it
   carries no order. White on the gradients from #57 is 4.6:1 or better (lowest: Comida's
   orange), well above the 3:1 a graphic needs. */
.ca-rail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 1rem 0 0; }
.ca-rail[data-sec].ca-board-list ul { display: grid; gap: 0; margin: 0.8rem 0 0; padding: 0; }
.ca-rail[data-sec] > .ca-tip,
.ca-rail[data-sec] > .ca-why-item,
.ca-rail[data-sec].ca-board-list li {
  position: relative;
  grid-column: auto;
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 0.85rem;
  align-items: start;
  margin: 0;
  padding: 0 0 1.15rem;
  border: 0;
  border-radius: 0;
  background: none;
}
.ca-rail[data-sec] > .ca-tip:last-child,
.ca-rail[data-sec] > .ca-why-item:last-child,
.ca-rail[data-sec].ca-board-list li:last-child { padding-bottom: 0; }
/* The badge: round, the section's gradient, the icon in white. */
.ca-rail[data-sec] > .ca-tip::before,
.ca-rail[data-sec] > .ca-why-item::before,
.ca-rail[data-sec].ca-board-list li::before {
  content: "";
  grid-row: 1 / span 2;
  position: relative;
  z-index: 1;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--ca-ico, none) center / 1.35rem no-repeat, linear-gradient(135deg, var(--sec-a), var(--sec-b));
}
/* The rail: a dashed line from under one badge to the next; none after the last. */
.ca-rail[data-sec] > .ca-tip:not(:last-child)::after,
.ca-rail[data-sec] > .ca-why-item:not(:last-child)::after,
.ca-rail[data-sec].ca-board-list li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: calc(1.25rem - 1px);
  top: 2.5rem;
  bottom: 0;
  border-left: 2px dashed color-mix(in srgb, var(--sec-a) 45%, transparent);
}
.ca-rail[data-sec] > .ca-tip h4,
.ca-rail[data-sec] .ca-why-title { margin: 0.1rem 0 0.2rem; font-size: 16px; line-height: 22px; }
.ca-rail[data-sec] > .ca-tip p,
.ca-rail[data-sec] > .ca-why-item p { margin: 0; font-size: 15px; line-height: 23px; color: var(--ca-muted); }
.ca-rail[data-sec].ca-board-list li { padding-top: 0.5rem; padding-bottom: 1.3rem; font-size: 15px; line-height: 23px; }
.ca-rail[data-sec].ca-board-list li:last-child { padding-bottom: 0; }
.ca-rail[data-sec].ca-board-list li:not(:last-child)::after { top: 3rem; }
.ca-rail[data-sec].ca-board-list li::before { margin-top: -0.5rem; }
/* Grupo's five reasons already carry their icon on the badge (--ca-ico, set per data-why in
   THE BOARDS above), so nothing is added for them here. */
/* Comida's icons, in the order of its four items. */
.ca-rail[data-sec].ca-board-steps > .ca-tip:nth-child(1) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.5l2.5 5.2 5.7.8-4.1 4 1 5.7-5.1-2.7-5.1 2.7 1-5.7-4.1-4 5.7-.8z'/></svg>"); }
.ca-rail[data-sec].ca-board-steps > .ca-tip:nth-child(2) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M7 3v7a2 2 0 0 0 4 0V3M9 12v9M17 3c-2 1.6-3 4-3 7v2h3zM17 12v9'/></svg>"); }
.ca-rail[data-sec].ca-board-steps > .ca-tip:nth-child(3) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M5 8h11v6a4 4 0 0 1-4 4H9a4 4 0 0 1-4-4z'/><path d='M16 10h1.5a2 2 0 0 1 0 4H16M8 3.5v1.5M11 3.5v1.5'/></svg>"); }
.ca-rail[data-sec].ca-board-steps > .ca-tip:nth-child(4) { --ca-ico: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M3 20V10l9-6 9 6v10M9 20v-6h6v6'/></svg>"); }

/* ------------------------------------------------ the must-sees, before buying (phase B)
   /tu-viaje/atracciones/: a search field (the reservations combobox), the picks as chips with a
   remove, and «Ver todas» by park and land. White sheet on the lilac block, like the
   intolerance picker. Frozen when «no tenemos imprescindibles» is declared - the party's device:
   grey, untouchable, kept. */
.ca-must {
  display: grid;
  gap: 0.6rem;
  margin: 0.6rem 0 0.9rem;
  padding: 0.9rem 1rem 1rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-must-field { display: grid; gap: 0.3rem; font-size: 14px; font-weight: 600; color: var(--ca-ink); }
.ca-must-field input {
  width: 100%;
  min-height: 44px;
  padding: 0.6rem 0.7rem;
  border: 1px solid #d9d3ca;
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-size: 16px;               /* iOS zooms into anything smaller */
  font-weight: 400;
  color: var(--ca-ink);
}
.ca-must-field input:focus-visible { outline: 2px solid var(--ca-accent); outline-offset: 1px; }
.ca-must-count { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--ca-muted); }
.ca-must-count:empty { display: none; }
.ca-must-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.ca-must-chips:empty { display: none; }
.ca-must-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  max-width: 100%;
  padding: 0.25rem 0.3rem 0.25rem 0.8rem;
  border-radius: 999px;
  background: var(--sec-a, var(--ca-accent));
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
}
.ca-must-chip span { min-width: 0; overflow-wrap: anywhere; }
.ca-must-x {
  flex: none;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  font: inherit;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.ca-must-x:hover { background: rgba(255, 255, 255, 0.3); }
.ca-must-x:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.ca-must-full { margin: 0; font-size: 13.5px; line-height: 20px; color: var(--ca-muted); }
/* «Cerrada esos días»: the flag on an attraction closed for works on the chosen dates, in the
   suggestions, in «Ver todas» and on a chip. Warm, not the section blue: it is a warning. */
.ca-must-closed {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.01em;
  color: #7c2d12;
  background: #fdf1ea;
  vertical-align: middle;
  white-space: nowrap;
}
.ca-must-full[hidden] { display: none; }
.ca-must-all summary {
  cursor: pointer;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--sec-b, var(--ca-accent));
  padding: 0.35rem 0;
}
.ca-must-park h3 { margin: 0.7rem 0 0.3rem; font-size: 15px; color: var(--ca-ink); }
.ca-must-land { margin: 0 0 0.4rem; padding: 0; border: 0; }
.ca-must-land legend { padding: 0; margin: 0 0 0.15rem; font-size: 12.5px; font-weight: 700;
                       letter-spacing: 0.04em; text-transform: uppercase; color: var(--ca-muted); }
.ca-must-opt { display: flex; align-items: center; gap: 0.55rem; min-height: 40px;
               font-size: 14.5px; line-height: 20px; color: var(--ca-ink); cursor: pointer; }
.ca-must-opt input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--sec-a, var(--ca-accent)); }
.ca-must-opt:has(input:disabled) { color: var(--ca-muted); cursor: default; }
.ca-must[data-ca-must-frozen] .ca-must-chips,
.ca-must[data-ca-must-frozen] .ca-must-all,
.ca-must[data-ca-must-frozen] .ca-must-field { opacity: 0.55; filter: grayscale(1); }
.ca-must[data-ca-must-frozen] .ca-must-all summary { pointer-events: none; }

/* ------------------------------------------------ field cards (/alojamiento/, 31 Oct 2026)
   Pol: «Instead of dashed placeholders, maybe a card where they can write to search and
   autocomplete? Same for time, a card?» One shape for every answer on the page: a white card,
   its question small above, the control full width inside. The combobox list, the grey time
   hint and the frozen state are the ones Comida and Atracciones already use. */
.ca-stay { display: grid; gap: 0.6rem; margin: 0.6rem 0 0.9rem; }
.ca-fcard {
  display: grid;
  box-sizing: border-box;
  gap: 0.25rem;
  min-width: 0;
  padding: 0.6rem 0.75rem 0.7rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
  color: var(--ca-ink);
  text-decoration: none;
}
.ca-fcard[hidden] { display: none; }
.ca-fcard-k { font-size: 12.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ca-muted); }
.ca-fcard-in {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 0.5rem 0.6rem;
  border: 1px solid #d9d3ca;
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-size: 16px;               /* iOS zooms into anything smaller */
  color: var(--ca-ink);
}
.ca-fcard-in:disabled { background: #f6f4f1; color: var(--ca-muted); }
/* Label left, value flush right: the read-only line (Extra Magic Time). */
.ca-fcard-row { grid-template-columns: 1fr auto; align-items: center; gap: 0.6rem; }
.ca-fcard-ro { font-size: 15px; font-weight: 600; text-align: right; }
.ca-fcard-ro[data-state="unknown"] { color: var(--ca-muted); font-weight: 500; }
.ca-fcard-ro[data-state="yes"] { color: var(--sec-b, var(--ca-accent)); }

.ca-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem; }
.ca-stay .ca-pick-opt.ca-pick-opt,
.ca-shows .ca-pick-opt.ca-pick-opt,
.ca-passes .ca-pick-opt.ca-pick-opt {
  min-height: 44px;
  padding: 0.45rem 0.5rem;
  border: 1px solid #d9d3ca;
  border-radius: 10px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 14.5px;
  line-height: 1.25;
  cursor: pointer;
}
.ca-stay .ca-pick-opt.ca-pick-opt[aria-checked="true"],
.ca-shows .ca-pick-opt.ca-pick-opt[aria-checked="true"],
.ca-passes .ca-pick-opt.ca-pick-opt[aria-checked="true"] { border-color: transparent; background: var(--sec-a, var(--ca-accent)); color: #fff; font-weight: 600; }
.ca-stay .ca-pick-opt:disabled, .ca-shows .ca-pick-opt:disabled, .ca-passes .ca-pick-opt:disabled { cursor: default; opacity: 0.6; }

.ca-days { display: grid; gap: 0.5rem; margin-top: 0.3rem; }
.ca-days-none { margin: 0; font-size: 14.5px; }
.ca-days-none[hidden] { display: none; }
/* «Elegid las fechas en Tu viaje →»: a neutral link line, not an error (Pol, 31 October 2026:
   the pink read as red, and red reads as a mistake the visitor made). */
.ca-days-none a { color: var(--ca-muted); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.ca-days-none a:hover, .ca-days-none a:focus-visible { color: var(--ca-ink); }
/* A day: its date as a header line (label left, date flush right - Pol's alignment note), then
   Entrada and Salida side by side. Three columns did not fit a native time field at 390. */
.ca-day { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.4rem; }
.ca-fcard.ca-fcard-date {
  grid-column: 1 / -1;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding-block: 0.5rem;
}
.ca-fcard-date strong { font-size: 15px; line-height: 1.3; text-align: right; text-transform: capitalize; color: var(--ca-ink); }
.ca-fcard-time .ca-fcard-in::-webkit-calendar-picker-indicator { margin-left: 0.2rem; }
.ca-fcard-time .ca-fcard-in { padding-inline: 0.45rem; font-variant-numeric: tabular-nums; }
.ca-fcard-time .ca-time-ph { left: 0.5rem; font-size: 16px; }
.ca-fcard-time .ca-time-wrap[data-empty] input { color: transparent; }
.ca-fcard-time .ca-time-wrap[data-empty] input::-webkit-datetime-edit { color: transparent; }
.ca-days[data-ca-days-frozen] .ca-day { opacity: 0.55; filter: grayscale(1); }

/* ------------------------------------------------ the shows (/espectaculos/, 31 Oct 2026)
   Field cards again: the show's name and where/when on the left, the two-way choice under it;
   added shows are cards with a remove. */
.ca-shows-lead { margin: 0.2rem 0 0.7rem; font-size: 15.5px; line-height: 1.45; color: var(--ca-ink); }
.ca-shows { display: grid; gap: 0.6rem; margin-bottom: 0.9rem; }
.ca-show { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.6rem; }
/* One toggle per show: outlined off («si encaja», the default), filled with a tick when on. */
.ca-shows .ca-show-toggle.ca-show-toggle {
  min-height: 40px;
  padding: 0.4rem 0.8rem;
  border: 1px solid #d9d3ca;
  border-radius: 999px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.ca-shows .ca-show-toggle.ca-show-toggle[aria-pressed="true"] {
  border-color: transparent;
  background: var(--sec-a, var(--ca-accent));
  color: #fff;
}
.ca-shows .ca-show-toggle[aria-pressed="true"]::before { content: "✓ "; }
.ca-shows .ca-show-toggle:disabled { cursor: default; opacity: 0.6; }
.ca-show-name { display: grid; gap: 0.1rem; min-width: 0; }
.ca-show-name strong { font-size: 16px; line-height: 1.3; color: var(--ca-ink); overflow-wrap: anywhere; }
.ca-show-name span { font-size: 13.5px; color: var(--ca-muted); }
.ca-shows-added { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.ca-shows-added:empty { display: none; }
.ca-shows .ca-show-x.ca-show-x {
  width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: #f1edf6; color: var(--ca-ink); font: inherit; font-size: 20px; line-height: 1; cursor: pointer;
}

/* ------------------------------------------------ the passes (/grupo/, 31 Oct 2026) */
.ca-passes { display: grid; gap: 0.6rem; margin: 0.6rem 0 0.9rem; }
.ca-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.ca-chips[data-ca-frozen] { opacity: 0.55; filter: grayscale(1); }
.ca-pick.ca-pick-1 { grid-template-columns: 1fr; }
.ca-passes .ca-pick { min-width: 0; }
.ca-passes .ca-pick-opt.ca-pick-opt { width: 100%; min-width: 0; text-align: left; padding-inline: 0.8rem; white-space: normal; }

/* ------------------------------------------------ field cards on Comida and Grupo (31 Oct 2026)
   The shape Alojamiento's answers took (.ca-fcard): white, rounded, the soft row shadow, no
   ruled lines. Comida's meal slots each become a card; Grupo's people list sits in one. Only the
   look moves - the controls, their order and their script are untouched. */
#ca-reservations .ca-matrix-tabs .ca-matrix-row { gap: 0.5rem; }
#ca-reservations .ca-matrix-tabs .ca-matrix-row .ca-matrix-cell.ca-matrix-cell {
  padding: 0.55rem 0.6rem 0.55rem 0.85rem;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-partybox .ca-people.ca-people-lines {
  padding: 0.75rem 0.7rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ca-band-rowshadow);
}
.ca-partybox .ca-people-lines .ca-people-row { border: 0; }
/* The grid bled to the screen edge (-16px) when its rows were ruled lines; as cards they sit in
   the gutter like every other answer. The people rows carried their own ring and the same bleed;
   inside the one card they are plain rows. */
#ca-reservations .ca-matrix.ca-matrix-tabs { margin-inline: 0; }
.ca-partybox .ca-people-lines .ca-people-row.ca-party-row { margin-inline: 0; padding-inline: 0; box-shadow: none; background: transparent; }

/* ------------------------------------------------ the summary's «no» ticks and confirm (31 Oct 2026)
   A pending row carries a small «no» button; an answered row does not. The confirm appears
   only when nothing is pending, with the waiver line under it. */
.ca-resumen .ca-resumen-tick.ca-resumen-tick {
  margin-top: 0.35rem;
  min-height: 36px;
  padding: 0.3rem 0.8rem;
  border: 1px solid var(--ca-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ca-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.ca-resumen .ca-resumen-tick::before { content: "\2713  "; color: var(--ca-muted); }
[data-ca-resumen-group="done"] .ca-resumen-tick { display: none; }
.ca-resumen-ready[hidden], .ca-resumen-confirmed[hidden] { display: none; }
.ca-resumen-ready .ca-go-legal { margin-top: 0.4rem; font-size: 13px; color: var(--ca-muted); }
/* The health consent beside «Generar mi Ruta» (Pol, 31 Oct 2026): the checkout's rule, here. */
.ca-resumen-ready .ca-consent { display: flex; align-items: flex-start; gap: 0.55rem; margin: 0.2rem 0 0.8rem; font-size: 14.5px; line-height: 1.45; color: var(--ca-ink); }
.ca-resumen-ready .ca-consent[hidden] { display: none; }
.ca-resumen-ready .ca-consent input { flex: none; width: 18px; height: 18px; margin-top: 0.15rem; accent-color: var(--ca-accent); }
.ca-resumen-ready .ca-consent input[aria-invalid="true"] { outline: 2px solid var(--ca-bad, #b42318); outline-offset: 2px; }
.ca-resumen-ready [data-ca-generar-confirm]:disabled { opacity: 0.5; cursor: default; }

/* ------------------------------------------------ Comida before the dates (1 Nov 2026)
   The «dates first» nudge sits on the line above «Elegir fecha y días» and only after an
   «Añadir» was tapped without dates. Ink, not the error pink: nothing went wrong. */
#ca-reservations .ca-res-datesfirst { display: block; margin-bottom: 0.25rem; color: var(--ca-ink); font-size: 14.5px; }
#ca-reservations .ca-res-datesfirst[hidden] { display: none; }

/* THE OFFER STRIP (2 November 2026, Google Ads test): price, what you get, an example, and when
   you pay, between the band and the planner, all inside the first 390x844 screen. Flat on the
   page, no card: it informs, and the planner right under it is the thing to touch. */
.ca-oferta { margin: 0 0 1rem; padding: 0.2rem 0.2rem 0; color: var(--ca-ink); }
.ca-oferta p { margin: 0; }
.ca-oferta-price { font-size: 1.15rem; line-height: 1.3; }
.ca-oferta-price strong { color: var(--ca-accent); font-size: 1.45rem; font-weight: 800; }
.ca-oferta-what { margin-top: 0.25rem !important; font-size: 1rem; line-height: 1.4; }
.ca-oferta-example { color: var(--ca-accent); font-weight: 600; white-space: nowrap;
  text-decoration: underline; text-underline-offset: 2px; }
.ca-oferta-refund { margin-top: 0.35rem !important; font-size: 0.875rem; line-height: 1.4;
  color: var(--ca-muted); }

