@font-face {
  font-family: "Aeonik";
  src: url("/website/assets/fonts/Aeonik-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Aeonik";
  src: url("/website/assets/fonts/Aeonik-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Aeonik";
  src: url("/website/assets/fonts/Aeonik-Semibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* Inter (variable, Latin; the app's own file): every text that is not a headline. */
@font-face {
  font-family: "Inter";
  src: url("/fonts/Inter-latin-var.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{--heading-font:"Inter","Aeonik",Arial,Helvetica,sans-serif;--text-font:"Inter","Aeonik",Arial,Helvetica,sans-serif;--heading-tracking:-.025em;--subheading-tracking:-.015em;--paper:#f6f5ef;--text:#292b26;--muted:#77776e;--line:#d4d4ca;--dark:#282b26;--gutter:clamp(24px,4.3vw,84px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--text-font);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.35}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;letter-spacing:var(--heading-tracking)}p{line-height:1.55}button{border:0;background:none}::selection{background:#c6ae8e;color:#252824}.skip{position:fixed;left:20px;top:-100px;z-index:999;background:white;color:#222;padding:14px}.skip:focus{top:16px}.header{position:absolute;top:0;left:0;right:0;z-index:20;padding:29px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:22px;color:#fff}.brand{display:inline-flex;align-items:center;gap:9px;letter-spacing:.055em;font-size:14px;font-weight:600;white-space:nowrap}.brand img{width:29px;height:29px;object-fit:contain;filter:brightness(0) invert(1)}.header-right{display:flex;align-items:center;gap:32px;font-size:13px}.demo-top{display:flex;gap:35px;align-items:center;border-bottom:1px solid #ffffff70;padding:8px 0}.hamburger{display:flex;width:24px;flex-direction:column;gap:6px}.hamburger i{height:1px;width:24px;background:currentColor}.eyebrow{font-size:11px;letter-spacing:.105em;text-transform:uppercase;line-height:1.4}.horizontal{height:420vh;position:relative;background:#20241f}.horizontal-sticky{position:sticky;top:0;height:100svh;overflow:hidden}.track{display:flex;width:max-content;height:100%;will-change:transform}.hero{width:94vw;flex:none;position:relative;height:100%;color:#fff;overflow:hidden}.hero-bg{width:100%;height:100%;object-fit:cover;object-position:center;position:absolute}.hero-shade{position:absolute;inset:0;background:radial-gradient(ellipse at bottom left,rgba(16,19,14,.82) 0%,rgba(16,19,14,.62) 30%,rgba(16,19,14,.24) 50%,rgba(16,19,14,0) 72%);pointer-events:none}.hero-kicker{position:absolute;top:42%;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:18px;align-items:center;font-size:13px}.explore{display:flex;gap:12px;align-items:center;padding:0;font-size:13px}.circle-mini{display:grid;place-items:center;border:1px solid #ffffffa0;border-radius:50%;width:32px;height:32px}.hero-copy{position:absolute;bottom:10%;left:var(--gutter);right:var(--gutter)}.hero h1{font-size:clamp(48px,6.2vw,112px);line-height:1.04;letter-spacing:var(--heading-tracking);max-width:1100px;text-wrap:balance}.feature-panel{width:64vw;max-width:1080px;flex:none;position:relative;display:flex;flex-direction:column;color:var(--ink);background:var(--panel);height:100%;scroll-margin-top:0}.panel-photo{height:58%;display:block;overflow:hidden}.panel-photo img{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(.2,.6,.3,1)}.panel-photo:hover img{transform:scale(1.04)}.panel-info{height:42%;padding:clamp(22px,3vw,50px);display:flex;flex-direction:column}.panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.panel-top p{font-size:12px;max-width:80%;opacity:.85;line-height:1.8}.circle-link{height:46px;width:46px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:200;line-height:1;flex:none;transition:transform .3s}.circle-link:hover{transform:rotate(90deg)}.panel-name{margin-top:auto;display:block;padding-top:20px;max-width:95%}.panel-name h2{font-size:clamp(40px,5.3vw,80px);line-height:1.02;letter-spacing:var(--heading-tracking)}.panel-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:22px;font-size:11px}.panel-bottom p{font-size:14px;line-height:1.3;max-width:45%;text-align:right}.rail-nav{position:absolute;right:24px;top:30px;display:flex;align-items:center;gap:15px;color:white;background:#242723bb;backdrop-filter:blur(10px);padding:7px 9px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s;font-size:11px}.rail-nav.visible{opacity:1;pointer-events:auto}.rail-nav button{width:28px;height:28px;font-size:20px}.progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff22}.progress span{height:100%;width:0;background:#e9dbbf;display:block}.process{padding:130px var(--gutter) 140px;background:#f9f9f4}.process>.eyebrow{margin-bottom:58px;color:#666a5e}.process h2{font-size:clamp(64px,8.2vw,142px);line-height:1.035;letter-spacing:var(--heading-tracking)}.process h2>span{color:#9b9d91}.process-body{margin-top:90px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.process-body h3{font-weight:600;font-size:clamp(24px,2.5vw,38px);letter-spacing:var(--subheading-tracking)}.process-body>div{max-width:540px}.process-body p{font-size:17px;line-height:1.6;margin-bottom:22px}.line-link{font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:50px;width:max-content;min-width:220px;border-bottom:1px solid currentColor;padding:15px 0 12px;line-height:1.4}.line-link>span{font-size:20px;transition:transform .25s}.line-link:hover>span{transform:translate(3px,-3px)}.focus{height:100svh;min-height:650px;position:relative;color:#fff}.focus-picture{position:absolute;inset:0;display:block;width:100%;height:100%}.focus-picture img{width:100%;height:100%;object-fit:cover;object-position:center}.focus-shade{position:absolute;inset:0;background:linear-gradient(90deg,#121813b5,#12181335 70%),linear-gradient(0deg,#1218138a,transparent 70%)}.focus-content{position:absolute;inset:0;display:flex;padding:80px var(--gutter);justify-content:space-between;align-items:flex-start;gap:40px}.focus-list{width:43%;max-width:540px}.focus-list h2{font-size:15px;letter-spacing:0;margin-bottom:34px}.focus-list nav{display:flex;flex-direction:column}.focus-list a{font-size:clamp(21px,2.4vw,36px);letter-spacing:var(--heading-tracking);line-height:1.2;border-bottom:1px solid #ffffff55;padding:17px 0;display:flex;justify-content:space-between;gap:24px}.focus-list a span{font-size:22px;opacity:.7}.focus-cta{align-self:flex-end;width:49%}.focus-cta>span:first-child{font-size:14px;line-height:1.4;display:block;margin-bottom:30px}.focus-big{display:block;font-size:clamp(48px,5.8vw,100px);letter-spacing:var(--heading-tracking);line-height:1.05}.focus-big>span{font-size:.5em}.footer{padding:70px var(--gutter) 22px;background:var(--dark);color:#eeeede}.footer-top{display:grid;grid-template-columns:1.2fr 1.15fr .9fr;gap:60px}.footer-top>.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:13px}.footer-top>div>p{font-size:16px;color:#b9bdaf;margin-top:26px}.footer-top nav{display:flex;flex-direction:column;gap:14px;font-size:14px}.footer-top nav a{display:flex;justify-content:space-between;gap:20px}.footer .eyebrow{display:block;color:#9b9f91;margin-bottom:14px}.footer-contact>a{font-size:14px}.footer-bottom{border-top:1px solid #ffffff2c;padding-top:23px;margin-top:30px;display:flex;justify-content:space-between;gap:25px;font-size:11px;color:#b4b9a8}.feature-story{padding:110px var(--gutter)}.story-heading{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding-bottom:75px}.story-heading>.eyebrow{padding-top:12px;color:#74776b}.story-heading h2{font-size:clamp(38px,4.3vw,66px);line-height:1.12;max-width:920px}.detail-row{border-top:1px solid var(--line);display:grid;grid-template-columns:.25fr 1fr 1.3fr;gap:40px;padding:38px 0 42px}.detail-row .row-num{font-size:12px;padding-top:7px;color:#8b8d81}.detail-row h3{font-size:28px;letter-spacing:var(--subheading-tracking);line-height:1.18;max-width:320px}.detail-row p{font-size:16px;line-height:1.6;max-width:630px;color:#62675b}.demo-section{display:grid;grid-template-columns:1fr 1.3fr;gap:9%;padding:70px var(--gutter) 110px;background:#e9e9e0;align-items:center}.demo-label .eyebrow{margin-bottom:30px;color:#676b5e}.demo-label h2{font-size:clamp(40px,4.3vw,70px);line-height:1.1}.demo-label>p:last-child{font-size:16px;max-width:330px;margin-top:26px;color:#686c60}.experience-demo{padding:32px 35px;background:#f9f9f4;box-shadow:0 18px 50px #22280f10;min-height:400px;border:1px solid #d6d8cc}.demo-bar{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #d4d7c7;padding-bottom:18px;font-size:10px;letter-spacing:.055em}.demo-bar span:last-child{text-align:right;color:#787c6c}.demo-greeting{font-size:34px;letter-spacing:var(--heading-tracking);line-height:1.1;padding:30px 0}.demo-options>div{padding:20px 0;border-top:1px solid #deded3;display:flex;align-items:center;gap:20px;font-size:15px}.demo-options>div>span{font-size:10px;color:#929585}.demo-options b{margin-left:auto;font-weight:400}.bubble{max-width:88%;font-size:15px;line-height:1.5;padding:17px 19px;margin-top:23px;border-radius:12px 12px 12px 1px;background:#e7eadf}.bubble.guest{margin-left:auto;background:#ded2c3;border-radius:12px 12px 1px 12px}.demo-caption{font-size:10px;line-height:1.5;color:#777e6a;margin-top:27px}.service-line{padding:19px 0;display:flex;gap:20px;align-items:center;border-top:1px solid #d6d8cc}.service-line>span{font-size:10px;color:#777e6a}.service-line div{font-size:16px}.service-line small{display:block;font-size:11px;color:#777e6a;margin-top:6px}.service-line b{margin-left:auto;font-weight:400}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;border-top:1px solid #d6d8cc;padding-top:25px}.guide-columns span{font-size:9px;letter-spacing:.07em}.guide-columns h3{font-size:28px;margin:30px 0 20px;line-height:1.12;letter-spacing:var(--subheading-tracking)}.guide-columns p{font-size:12px;color:#777e6a}.day-tabs{display:flex;gap:10px;margin-bottom:28px}.day-tabs button{border:1px solid #a2a68f;padding:10px 20px;border-radius:25px;font-size:12px}.day-tabs button[aria-pressed=true]{background:#495240;color:white;border-color:#495240}.plan-lines>div{border-top:1px solid #d6d8cc;padding:12px 0;display:flex;gap:22px;font-size:13px}.plan-lines span{font-size:10px;white-space:nowrap;color:#7f8470;padding-top:2px}.contact-block{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:110px var(--gutter)}.contact-block h2{font-size:clamp(36px,4.7vw,76px);line-height:1.1;letter-spacing:var(--heading-tracking)}.contact-block .eyebrow{padding-top:10px;color:#74776b}.contact-block .line-link{margin-top:35px}.next-feature{border-top:1px solid var(--line);padding:36px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px}.next-feature>span:first-child{font-size:11px;color:#77776e}.next-feature strong{font-size:clamp(24px,3vw,44px);font-weight:400;letter-spacing:var(--subheading-tracking)}.next-feature>span:last-child{font-size:30px}.not-found{padding:200px var(--gutter) 140px}.not-found h1{font-size:60px;margin:20px 0}.not-found~.footer{margin-top:0}.not-found .line-link{margin-top:30px}body:has(.not-found) .header{background:var(--dark)}
/* Headlines in Inter too (2-11, identity): kept as their own role h1–h6 and the display-size links and lines that read as one.
   The small h2 labels above the menu and the feature list are text, like the eyebrows.
   Inter's file has no → ← ↗, so those arrows still come from Aeonik (--text-font). */
:is(h1,h2,h3,h4,h5,h6),.focus-list nav a,.focus-big,.menu-focus nav a,.next-feature strong,.sv__title,.sv__caption p:first-child{font-family:var(--heading-font)}
.menu-label,.focus-list h2{font-family:var(--text-font)}

@media(max-width:1100px){.hero-copy{display:block}.hero-copy{bottom:10%}.hero-kicker{top:36%}.hero-kicker>span:nth-child(2){display:none}.panel-info{padding:28px}.panel-photo{height:55%}.panel-info{height:45%}.panel-name h2{font-size:5.5vw}.feature-hero-copy .demo-section{gap:5%}.experience-demo{padding:25px}.footer-top{gap:35px}.footer .brand{font-size:14px}.footer .brand img{width:25px;height:25px}}
@media(max-width:700px){:root{--gutter:24px}.header{padding:22px 24px}.brand{font-size:12px;gap:7px;letter-spacing:.025em}.brand img{width:24px;height:24px}.header-right{gap:0}.demo-top{display:none}.hamburger,.hamburger i{width:19px}.horizontal{height:auto!important}.horizontal-sticky{height:auto;position:relative;overflow:visible}.track{display:block;width:100%;height:auto;transform:none!important;will-change:auto}.hero{width:100%;height:100svh;min-height:650px}.hero h1{font-size:clamp(36px,7.2vw,48px);line-height:1.06}.hero-copy{bottom:10%;display:block}.hero-kicker{top:31%;font-size:11px;display:block}.hero-kicker .explore{margin-top:20px;font-size:11px}.feature-panel{width:100%;max-width:none;height:auto;min-height:650px}.panel-photo{height:380px}.panel-info{height:300px;padding:25px 24px}.panel-top p{font-size:11px;max-width:75%}.circle-link{width:38px;height:38px;font-size:25px}.panel-name h2{font-size:45px;max-width:290px}.panel-bottom{margin-top:18px}.panel-bottom p{font-size:12px}.rail-nav,.progress{display:none}.process{padding:78px 24px 85px}.process>.eyebrow{font-size:9px;margin-bottom:37px}.process h2{font-size:9.2vw;line-height:1.08}.process-body{grid-template-columns:1fr;gap:26px;margin-top:45px}.process-body h3{font-weight:600;font-size:25px}.process-body p{font-size:15px;margin-bottom:20px}.focus{min-height:780px;height:100svh;max-height:1000px}.focus-content{padding:50px 24px;flex-direction:column;gap:45px}.focus-list{width:100%;max-width:none}.focus-list h2{font-size:12px;margin-bottom:18px}.focus-list a{font-size:24px;padding:13px 0}.focus-cta{width:100%;align-self:flex-start;margin-top:auto}.focus-cta>span:first-child{font-size:12px;margin-bottom:20px}.focus-big{font-size:48px}.footer{padding:52px 24px 24px}.footer-top{grid-template-columns:1fr 1fr;gap:42px 28px}.footer-top>div:first-child{grid-column:1/-1}.footer-top>div:first-child p{margin-top:20px;font-size:14px}.footer-top nav,.footer-contact>a{font-size:12px;line-height:1.5}.footer .eyebrow{font-size:9px;margin-bottom:12px}.footer-top nav a>span{display:none}.footer-contact>p{font-size:12px!important}.footer-bottom{font-size:9px;flex-wrap:wrap;gap:16px;margin-top:16px;padding-top:20px}.footer-bottom>span:nth-child(2){display:none}.footer-bottom a{margin-left:auto}.feature-hero-copy .feature-story{padding:65px 24px}.story-heading{grid-template-columns:1fr;gap:22px;padding-bottom:40px}.story-heading h2{font-size:38px;line-height:1.13}.story-heading>.eyebrow{padding-top:0;font-size:10px}.detail-row{grid-template-columns:30px 1fr;gap:15px;padding:26px 0}.detail-row p{grid-column:2;max-width:none;font-size:14px}.detail-row h3{font-size:25px;max-width:none}.detail-row .row-num{font-size:10px;padding-top:5px}.demo-section{grid-template-columns:1fr;gap:35px;padding:60px 24px}.demo-label .eyebrow{font-size:10px;margin-bottom:23px}.demo-label h2{font-size:38px;max-width:320px}.demo-label>p:last-child{font-size:14px;margin-top:20px}.experience-demo{padding:22px;min-height:0}.demo-bar{font-size:8px;gap:10px}.demo-greeting{font-size:31px}.bubble{font-size:13px;padding:13px 15px}.guide-columns h3{font-size:24px}.guide-columns span{font-size:8px}.day-tabs button{padding:9px 18px}.contact-block{grid-template-columns:1fr;padding:65px 24px;gap:25px}.contact-block h2{font-size:36px}.contact-block h2 br{display:none}.contact-block .eyebrow{font-size:10px;padding-top:0}.next-feature{padding:25px 24px;flex-wrap:wrap;gap:17px}.next-feature>span:first-child{width:100%;font-size:9px}.next-feature strong{font-size:26px}.next-feature>span:last-child{font-size:25px}.not-found{padding:150px 24px 80px}.not-found h1{font-size:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.planificador-inteligente .header>.brand{color:#252824}.planificador-inteligente .header>.brand img{filter:none}@media(max-width:700px){.explore .circle-mini{transform:rotate(90deg)}}

/* A scroll-driven colour mask reveals each desktop card from the bottom up. */
@media(min-width:701px){
 .horizontal-sticky{overflow:clip}
 .feature-panel{overflow:hidden}
 .feature-panel .panel-photo{position:absolute;inset:0 0 auto;width:100%;height:calc(100% - var(--mask-visible,42%) + 24px)}
 .feature-panel .panel-info{position:absolute;bottom:0;left:0;width:100%;z-index:1;background:var(--panel);clip-path:inset(var(--mask-cut,0%) 0 0);will-change:clip-path}
}
@media(min-width:701px) and (prefers-reduced-motion:reduce){
 .feature-panel .panel-info{clip-path:none;will-change:auto}
}

/* Feature landing headers: colour field, section links and full-width image. */
.feature-page{--gutter:clamp(24px,3.5vw,84px)}
.feature-page>.header{color:var(--ink)}
.feature-hero{background:var(--panel);color:var(--ink)}
.feature-hero-band{height:500px;position:relative;padding:0 var(--gutter) 35px;display:flex;align-items:flex-end}
.feature-hero-kicker{position:absolute;top:48%;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:28px;font-size:14px;line-height:1.3}
.feature-hero-kicker>a:hover{text-decoration:underline;text-underline-offset:4px}
.feature-hero-kicker>span{text-align:right}
.feature-hero-bottom{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 45px;align-items:end;gap:clamp(28px,4.5vw,68px);width:100%}
.feature-hero h1{font-size:clamp(52px,5.2vw,88px);line-height:1;letter-spacing:var(--heading-tracking);max-width:680px;text-wrap:balance}
.feature-jump-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px;max-width:430px}
.feature-jump-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid currentColor;padding:8px 0;font-size:clamp(16px,1.4vw,22px);line-height:1.35}
.feature-jump-links a>span{font-size:22px;font-weight:300;line-height:1;transition:transform .2s}
.feature-jump-links a:hover>span{transform:translateX(4px)}
.feature-scroll{width:45px;height:45px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:22px;line-height:1;transition:background .2s}
.feature-scroll:hover{background:#ffffff20}
.feature-hero-photo{height:70svh;min-height:420px;max-height:900px;position:relative;overflow:hidden}
.feature-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.feature-hero-photo:after{content:'';position:absolute;inset:0;background:#11111130;pointer-events:none}
.feature-hero-photo:before{content:'';position:absolute;inset:0;z-index:1;background:var(--panel);transform:translateY(-101%);animation:feature-image-reveal 1.1s cubic-bezier(.65,0,.25,1) .15s both;pointer-events:none}
@keyframes feature-image-reveal{from{transform:translateY(0)}to{transform:translateY(-101%)}}
.feature-intro{font-size:17px;line-height:1.6;max-width:650px;margin-top:30px}
.story-summary>.line-link{margin-top:20px}
.feature-story,.detail-row{scroll-margin-top:35px}
@media(max-width:1100px){
 .feature-hero-bottom{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) 45px;gap:26px}
 .feature-hero h1{font-size:clamp(46px,5.2vw,58px)}
 .feature-jump-links{gap:4px 20px}
 .feature-jump-links a{font-size:16px;gap:10px}
}
@media(max-width:800px){
 .feature-hero-band{padding-bottom:35px}
 .feature-hero-kicker{top:145px;font-size:13px;gap:24px}
 .feature-hero-kicker>span{max-width:52%}
 .feature-hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) 45px;gap:0 22px}
 .feature-hero h1{font-size:clamp(36px,6.7vw,46px);max-width:470px;grid-column:1;grid-row:2;text-wrap:balance}
 .feature-jump-links{position:absolute;top:235px;left:var(--gutter);right:var(--gutter);max-width:380px;gap:4px 24px}
 .feature-jump-links a{font-size:15px;padding:8px 0;min-height:42px}
 .feature-scroll{grid-column:2;grid-row:2}
 .feature-hero-photo{height:70svh;min-height:360px;max-height:650px}
 .feature-intro{font-size:15px;margin-top:24px}
}

/* The title resolves from a 10px blur; supporting text follows half a second later. */
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .has-card-text-reveal .panel-name h2,
 .has-card-text-reveal .panel-key-features,
 .has-card-text-reveal .panel-bottom>span,
 .has-card-text-reveal .panel-bottom>p{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .5s cubic-bezier(.333333,.666667,.666667,1),transform .5s cubic-bezier(.333333,.666667,.666667,1);
 }
 .has-card-text-reveal .panel-name h2{
  filter:blur(10px);
  transition:opacity .5s cubic-bezier(.333333,.666667,.666667,1) .5s,transform .5s cubic-bezier(.333333,.666667,.666667,1) .5s,filter .5s cubic-bezier(.333333,.666667,.666667,1) .5s;
 }
 .has-card-text-reveal .is-text-revealed .panel-name h2,
 .has-card-text-reveal .is-text-revealed .panel-key-features,
 .has-card-text-reveal .is-text-revealed .panel-bottom>span,
 .has-card-text-reveal .is-text-revealed .panel-bottom>p{opacity:1;transform:translateY(0)}
 .has-card-text-reveal .is-text-revealed .panel-name h2{filter:none;transition-delay:0s}
 .has-card-text-reveal .is-text-revealed .panel-key-features,
 .has-card-text-reveal .is-text-revealed .panel-bottom>span,
 .has-card-text-reveal .is-text-revealed .panel-bottom>p{transition-delay:.5s}
 .has-card-text-reveal .feature-panel:focus-within .panel-name h2,
 .has-card-text-reveal .feature-panel:focus-within .panel-key-features,
 .has-card-text-reveal .feature-panel:focus-within .panel-bottom>span,
 .has-card-text-reveal .feature-panel:focus-within .panel-bottom>p{opacity:1;transform:none;filter:none;transition:none}
}

/* LPAS-inspired full-screen navigation with the existing GetMallorca inquiry form. */
.menu{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;margin:0;border:0;padding:0 clamp(24px,3.5vw,84px);background:transparent;color:#fff;overflow-y:auto;overscroll-behavior:contain;z-index:100;opacity:1;transition:opacity .22s ease}
.menu::backdrop{background:rgba(0,0,0,.8);backdrop-filter:blur(35px);-webkit-backdrop-filter:blur(35px);transition:opacity .22s ease}
.menu.is-closing,.menu.is-closing::backdrop{opacity:0}
.menu .brand{color:#fff}
.menu .brand img{filter:brightness(0) invert(1)}
.menu-top{height:100px;display:flex;justify-content:flex-end;align-items:center;border-bottom:1px solid #ffffff45;gap:24px}
.menu-close{display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:0;background:transparent;color:#fff;flex:none;transition:opacity .2s}.menu-close:hover{opacity:.65}
.menu-close-icon{position:relative;display:block;width:24px;height:24px}.menu-close-icon:before,.menu-close-icon:after{content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:currentColor;transform:rotate(45deg)}.menu-close-icon:after{transform:rotate(-45deg)}
.menu-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 4%;padding:20px 0 32px;min-height:calc(100dvh - 100px);align-content:space-between}
.menu-label{font-size:15px;font-weight:400;letter-spacing:-.015em;color:#8d8e8b;line-height:1.4;margin-bottom:18px}
.menu-focus nav{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.menu-focus nav a{font-size:clamp(32px,4.3vw,80px);line-height:1.1;letter-spacing:var(--heading-tracking);width:fit-content;max-width:100%;transition:color .2s}
.menu-focus nav a:hover{color:#b7b7b3}
.menu-demo{max-width:620px;width:100%}
.menu-demo h2{font-size:clamp(28px,2.8vw,44px);line-height:1.1;margin-bottom:12px}
.menu-demo-intro{color:#c4c5bf;font-size:14px;margin-bottom:26px}
.demo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.demo-field{min-width:0}
.demo-field label{font-size:12px;line-height:1.4;color:#c8c9c3;display:block}
.demo-field input,.demo-field textarea{display:block;width:100%;border:0;border-bottom:1px solid #ffffff55;border-radius:0;background:transparent;color:#fff;padding:10px 0;font:inherit;font-size:16px;line-height:1.4;outline:none;transition:border-color .2s;min-height:42px}
.demo-field textarea{resize:vertical;min-height:66px;max-height:180px}
.demo-field input:focus,.demo-field textarea:focus{border-bottom-color:#fff;box-shadow:0 1px 0 #fff}
.demo-field input[aria-invalid=true],.demo-field textarea[aria-invalid=true]{border-bottom-color:#f6ad9a}
.demo-field input:autofill{box-shadow:0 0 0 1000px #242424 inset;-webkit-text-fill-color:#fff;caret-color:#fff}
.demo-message{margin-top:24px}
.demo-privacy{font-size:11px;line-height:1.6;color:#a7a9a1;margin:18px 0}
.demo-privacy a{text-decoration:underline;text-underline-offset:3px;color:#ddd}
.demo-submit{display:flex;align-items:center;justify-content:space-between;gap:36px;min-width:225px;border:1px solid #ffffff99;border-radius:3px;padding:12px 15px;font-size:13px;transition:background .2s,color .2s}
.demo-submit>span:last-child{font-size:20px;line-height:1}
.demo-submit:hover:not(:disabled){background:#fff;color:#161714}
.demo-submit:disabled{opacity:.45;cursor:wait}
.demo-status{font-size:13px;line-height:1.5;margin-top:15px;color:#dadfcb;max-width:500px}
.demo-status:empty{display:none}
.field-error,.demo-status.is-error{color:#ffc0ae;font-size:12px;line-height:1.4;margin-top:7px}
.menu-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:4%;align-items:end;color:#e5e6df}
.menu-contact{display:flex;gap:24px;font-size:14px}
.menu-contact a{border-bottom:1px solid #bbb;padding-bottom:6px}
.menu-bottom p{font-size:12px;color:#aaaca3;line-height:1.5}
@keyframes menu-link-in{from{opacity:0;filter:blur(10px);transform:translateY(20px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
@keyframes menu-panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .menu[open] .menu-focus nav a{animation:menu-link-in .65s cubic-bezier(.333333,.666667,.666667,1) both;animation-delay:calc(.06s + var(--menu-order)*.055s)}
 .menu[open] .menu-demo,.menu[open] .menu-bottom,.menu[open] .menu-label{animation:menu-panel-in .6s ease .12s both}
}
@media(max-width:1000px){.menu-focus nav a{font-size:clamp(32px,4.3vw,44px)}.demo-form-grid{gap:20px 18px}}
@media(max-width:800px){
 .menu-top{height:85px;position:sticky;top:0;z-index:2;background:#101110f5}
 .menu-content{grid-template-columns:1fr;gap:46px;padding:25px 0 32px;min-height:calc(100dvh - 85px)}
 .menu-label{font-size:14px;margin-bottom:20px}
 .menu-focus nav{gap:14px}
 .menu-focus nav a{font-size:clamp(31px,5.8vw,46px);line-height:1.1}
 .menu-demo{max-width:none}
 .menu-demo h2{font-size:32px}
 .menu-demo-intro{margin-bottom:26px;font-size:13px}
 .menu-bottom{grid-column:1;grid-template-columns:1fr;gap:24px}
}
@media(max-width:360px){.demo-form-grid{grid-template-columns:1fr}.menu-focus nav a{font-size:29px}}

.menu-toggle{border:1px solid #fff;background:#fff;border-radius:3px;display:flex;align-items:center;justify-content:center;padding:12px 18px;color:#111;min-height:44px;white-space:nowrap;font-size:14px;transition:background .2s,color .2s}.menu-toggle:hover{background:#eee;border-color:#eee}
@media(max-width:700px){.menu-toggle{font-size:11px;padding:8px 10px;gap:12px}}

/* The final image scrolls over the dark footer, revealing it from the bottom. */
.footer{position:relative;background:#0b0b0b;color:#f5f5f5}
.footer-top>div>p{color:#b9b9b9}
.footer .eyebrow{color:#999}
.footer-bottom{color:#b4b4b4}
.home>main{position:relative;z-index:1;background:var(--paper)}
.home.footer-reveal>.footer{position:sticky;bottom:0;z-index:0}
.feature-picture{display:block;width:100%;height:100%}

/* Cards repeat the same section links as their feature landing headers. */
.panel-key-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px clamp(16px,1.5vw,28px);width:64%;max-width:590px}
.panel-key-features a{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid currentColor;padding:8px 0;min-height:42px;font-size:clamp(16px,1.4vw,22px);line-height:1.35}
.panel-key-features a>span{font-size:21px;font-weight:300;line-height:1;transition:transform .2s}
.panel-key-features a:hover>span{transform:translateX(4px)}
.panel-key-features a,.feature-jump-links a{hyphens:auto;overflow-wrap:anywhere}
@media(max-width:700px){
 .panel-info{height:330px}
 .panel-key-features{width:calc(100% - 62px);gap:6px 16px}
 .panel-key-features a{font-size:15px}
}

#panel-2 .panel-photo img,.chat-inteligente .feature-hero-photo img{object-position:80% center}

#panel-3 .panel-photo img,.upselling-pre-estancia .feature-hero-photo img{object-position:70% 15%}

/* The language remains part of the URL, including all feature links. */
.language-switch{display:flex;align-items:center;gap:12px;font-size:12px;line-height:1;flex:none}
.language-switch a{display:grid;place-items:center;min-height:44px;padding:0 2px;color:inherit;opacity:.6}
.language-switch a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.language-switch a:hover{opacity:1}
.header-right{gap:22px}
@media(max-width:600px){
 .header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:20px 24px}
 .header-right{display:contents}
 .header .brand{grid-column:1;grid-row:1;justify-self:start}
 .language-switch{grid-column:2;grid-row:1;justify-self:end}
 .header .menu-toggle{grid-column:1/-1;grid-row:2;justify-self:end;font-size:13px;padding:10px 15px}
}

#panel-1 .panel-photo img,.app-property .feature-hero-photo img{object-position:60% 80%}


/* A quiet, numbered timeline for setting up a property's guest app. */
.kickoff{--kickoff-paper:#efeee8;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:start;gap:clamp(48px,8vw,140px);padding:110px var(--gutter) 100px;background:var(--kickoff-paper);scroll-margin-top:24px}
.kickoff-intro{position:sticky;top:70px;max-width:480px}
.kickoff-intro>.eyebrow{color:#706a61;margin-bottom:35px}
.kickoff h2{font-size:clamp(42px,5.1vw,76px);line-height:1.04;letter-spacing:var(--heading-tracking)}
.kickoff h2 span{color:#857e74}
.kickoff-summary{margin-top:30px;max-width:385px;font-size:16px;line-height:1.65;color:#626259}
.kickoff-timeline{list-style:none;padding:0;margin:4px 0 0}
.kickoff-step{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:25px;padding:0 0 34px}
.kickoff-step:not(:last-child):before{content:'';position:absolute;top:38px;bottom:0;left:18.5px;width:1px;background:#c8c4b9}
.kickoff-step:last-child{padding-bottom:0}
.kickoff-number{position:relative;z-index:1;display:grid;place-items:center;align-self:start;width:38px;height:38px;border:1px solid #bdb7aa;border-radius:50%;background:var(--kickoff-paper);color:#71695e;font-size:12px;font-variant-numeric:tabular-nums;line-height:1}
.kickoff-step h3{font-size:clamp(22px,2vw,29px);line-height:1.15;letter-spacing:var(--subheading-tracking);padding-top:5px}
.kickoff-step p{font-size:15px;line-height:1.65;color:#66645d;margin-top:11px;max-width:470px}
@media(max-width:900px){
 .kickoff{grid-template-columns:1fr;gap:55px;padding:75px var(--gutter)}
 .kickoff-intro{position:static;max-width:620px}
 .kickoff h2{font-size:clamp(40px,6vw,58px)}
 .kickoff-summary{max-width:490px}
 .kickoff-timeline{max-width:650px;margin:0}
 .kickoff-step{padding-bottom:35px}
}
@media(max-width:600px){
 .kickoff{padding:64px 24px 70px;gap:43px}
 .kickoff-intro>.eyebrow{margin-bottom:25px;font-size:10px}
 .kickoff h2{font-size:clamp(34px,9vw,48px)}
 .kickoff-summary{font-size:15px;line-height:1.65;margin-top:25px}
 .kickoff-step{grid-template-columns:32px minmax(0,1fr);gap:18px;padding-bottom:31px}
 .kickoff-number{width:32px;height:32px;font-size:11px}
 .kickoff-step:not(:last-child):before{top:32px;left:15.5px}
 .kickoff-step h3{font-size:22px;padding-top:3px;line-height:1.2}
 .kickoff-step p{font-size:14px;margin-top:10px;line-height:1.65}
}

/* Background film controls */

/* Supporting introduction below the home headline */
.hero-description{max-width:700px;margin:24px 0 0;font-size:clamp(16px,1.45vw,22px);line-height:1.5;font-weight:600;text-wrap:pretty}
@media(max-width:700px){.hero-description{margin-top:20px;font-size:16px;line-height:1.45}.hero-kicker{top:25%}}

/* Keep the home heading and its kicker in one flow at every viewport size. */
.hero{display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(28px,5svh,60px);padding:clamp(112px,18svh,160px) var(--gutter) clamp(72px,10svh,112px)}
.hero-bg{inset:0}
.hero-kicker,.hero-copy{position:relative;inset:auto;flex:none}
@media(min-width:701px){.hero h1{font-size:clamp(48px,min(6.2vw,10svh),86px)}}
@media(max-width:700px){.hero{gap:32px;padding:128px var(--gutter) 80px}}


/* HOME editorial module: scoped to the existing philosophy section. */
.home #filosofia > h2{font-size:88px;letter-spacing:0;overflow-wrap:break-word}
.home #filosofia .process-body p{font-size:21px}
.home #filosofia .process-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px;row-gap:52px;list-style:none;margin:100px 0 0;padding:0}
.home #filosofia .process-feature{min-width:0;border-top:1px solid var(--line);padding-top:24px}
.home #filosofia .process-feature-meta{display:flex;justify-content:flex-start;align-items:center;margin-bottom:30px;color:var(--muted)}
.home #filosofia .process-feature-meta span{display:none}
.home #filosofia .process-feature-meta svg{width:26px;height:26px;color:var(--text);flex:none}
.home #filosofia .process-feature h3{font-size:25px;line-height:1.2;letter-spacing:0;text-wrap:pretty}
.home #filosofia .process-feature p{font-size:16px;line-height:1.6;margin-top:16px;max-width:390px;color:var(--text)}
.home #filosofia .process-feature p{font-size:20px}
@media(min-width:1600px){.home #filosofia > h2{font-size:112px}}
@media(max-width:1100px){
 .home #filosofia > h2{font-size:64px}
 .home #filosofia .process-features{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}
}
@media(max-width:700px){
 .home #filosofia > h2{font-size:32px;line-height:1.1}
 .home #filosofia .process-features{grid-template-columns:1fr;margin-top:64px;row-gap:32px}
 .home #filosofia .process-feature{padding-top:20px}
 .home #filosofia .process-feature-meta{margin-bottom:22px}
 .home #filosofia .process-feature h3{font-size:24px}
 .home #filosofia .process-feature p{font-size:15px;max-width:none;margin-top:12px}
 .home #filosofia .process-body p,.home #filosofia .process-feature p{font-size:18px}
}
@media(min-width:480px) and (max-width:700px){.home #filosofia > h2{font-size:40px}}

/* Align the home introduction and key features in one centered column. */
.home #filosofia > :is(h2,.process-body,.process-features){max-width:1200px;margin-inline:auto}

/* Give the logo more presence across all landing-page headers. */
.header > .brand img{width:48px;height:48px}
@media(max-width:700px){.header > .brand img{width:36px;height:36px}}

/* TRAVELERS' HOME (/, /de/, /es/; scripts/build-travel-home.mjs). Only under body.travel. */
.travel .header-right{gap:26px}
.travel .tv-hosts-link{font-size:13px;opacity:.85;min-height:44px;display:grid;place-items:center}
.travel .tv-hosts-link:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}
.travel .brand span:not(.brand-name){font-family:var(--heading-font)}
.tv-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:150px var(--gutter) clamp(56px,10svh,110px);color:#fff;overflow:hidden;background:#20241f}
.tv-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tv-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,19,14,.35) 0%,rgba(16,19,14,0) 30%),radial-gradient(ellipse at bottom left,rgba(16,19,14,.85) 0%,rgba(16,19,14,.6) 35%,rgba(16,19,14,.2) 60%,rgba(16,19,14,0) 80%);pointer-events:none}
.tv-hero-copy{position:relative;max-width:1180px}
.tv-kicker{display:flex;flex-wrap:wrap;gap:8px 28px;margin-bottom:28px;opacity:.9}
.tv-hero h1{font-family:var(--heading-font);font-size:clamp(44px,6.4vw,112px);line-height:1.03;letter-spacing:var(--heading-tracking);text-wrap:balance}
.tv-lead{max-width:660px;margin-top:26px;font-size:clamp(16px,1.4vw,21px);line-height:1.5;font-weight:500;text-wrap:pretty}
.tv-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.tv-button{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:13px 22px;border-radius:3px;background:#fff;color:#111;border:1px solid #fff;font-size:15px;font-weight:500;transition:background .2s,color .2s}
.tv-button:hover{background:#eee;border-color:#eee}
.tv-button-ghost{background:transparent;color:#fff;border-color:#ffffffa0}
.tv-button-ghost:hover{background:#ffffff1f;border-color:#fff}
.tv-section{padding:clamp(80px,9vw,140px) var(--gutter);background:var(--paper)}
.tv-section>.eyebrow{color:var(--muted);margin-bottom:22px}
.tv-section h2,.tv-qr h2,.tv-hosts h2{font-family:var(--heading-font);font-size:clamp(36px,4.6vw,76px);line-height:1.06;letter-spacing:var(--heading-tracking);max-width:16ch;text-wrap:balance}
.tv-cards{list-style:none;margin:clamp(44px,5vw,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,28px)}
.tv-card-link{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:border-color .2s}
.tv-card-link:hover{border-color:var(--text)}
.tv-card-photo{display:block;aspect-ratio:4/3;overflow:hidden;background:#d9d6cb}
.tv-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.tv-card-link:hover .tv-card-photo img{transform:scale(1.03)}
.tv-card-body{display:flex;flex-direction:column;gap:12px;padding:24px 24px 26px;flex:1}
.tv-card-body .eyebrow{color:var(--muted)}
.tv-card-body h3{font-family:var(--heading-font);font-size:clamp(24px,2vw,32px);line-height:1.1}
.tv-card-body p{color:#4f5149;font-size:15px}
.tv-card-more{margin-top:auto;padding-top:10px;font-size:14px;font-weight:500;display:flex;gap:8px}
.tv-areas{background:#f9f9f4;border-top:1px solid var(--line)}
.tv-area-list{list-style:none;margin:clamp(40px,4.5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));column-gap:clamp(24px,3vw,48px)}
.tv-area-list li{border-top:1px solid var(--line)}.tv-area-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 4px;font-family:var(--heading-font);font-size:clamp(20px,1.6vw,26px)}
.tv-area-list a span{font-size:16px;opacity:.45;transition:opacity .2s,transform .2s}
.tv-area-list a:hover span{opacity:1;transform:translate(2px,-2px)}
.tv-browse{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:44px}
.tv-qr{display:grid;grid-template-columns:1fr auto;align-items:center;gap:clamp(40px,6vw,110px);padding:clamp(80px,8vw,120px) var(--gutter);background:#625953;color:#fffdf8}
.tv-qr p{max-width:520px;margin:22px 0 32px;font-size:clamp(16px,1.3vw,19px);color:#f0ebe2}
.tv-qr-code{width:clamp(170px,15vw,230px);height:auto;border-radius:6px;background:#fff;padding:10px}
.tv-hosts{padding:clamp(70px,7vw,110px) var(--gutter);background:var(--paper);border-top:1px solid var(--line)}
.tv-hosts h2{font-size:clamp(30px,3.4vw,54px)}
.tv-hosts p{max-width:560px;margin:18px 0 26px;color:#4f5149;font-size:16px}
.tv-business-links{display:flex;flex-wrap:wrap;gap:8px 44px}
/* For businesses (accommodation · providers · sign in) as a fourth footer column, on the travelers' home and the hosts' website. */
.footer-top:has(>.footer-business){grid-template-columns:1.2fr 1fr 1fr .9fr}
@media(max-width:700px){.footer-top:has(>.footer-business){grid-template-columns:1fr 1fr}}
/* Privacy · Terms · Contact in the footer's bottom line (travelers' home), also on the phone. */
.footer-legal{display:flex;flex-wrap:wrap;gap:6px 22px}.footer-legal a:hover,.footer-contact>a:hover{color:#fff}
@media(max-width:700px){.footer-bottom>span.footer-legal{display:flex;order:3;width:100%}.footer-bottom .footer-legal a{margin-left:0}}
@media(max-width:1000px){.tv-cards{grid-template-columns:1fr 1fr}.tv-card:nth-child(3){grid-column:span 2}.tv-card:nth-child(3) .tv-card-photo{aspect-ratio:16/9}}
@media(max-width:700px){.travel .tv-hosts-link,.travel .header .brand span:not(.brand-name){display:none}.travel .header{display:flex;padding:20px var(--gutter)}.travel .header-right{display:flex;gap:12px;flex-wrap:nowrap}.travel .language-switch{gap:9px}.travel .header .menu-toggle{white-space:nowrap}.tv-hero-shade{background:linear-gradient(180deg,rgba(16,19,14,.4) 0%,rgba(16,19,14,.15) 25%,rgba(16,19,14,.55) 55%,rgba(16,19,14,.88) 100%)}.tv-hero{padding-top:120px}.tv-kicker span:nth-child(2){display:none}.tv-actions{flex-direction:column;align-items:stretch}.tv-button{justify-content:center}.tv-cards{grid-template-columns:1fr}.tv-card:nth-child(3){grid-column:span 1}.tv-card:nth-child(3) .tv-card-photo{aspect-ratio:4/3}.tv-qr{grid-template-columns:1fr}.tv-qr-code{display:none}}
/* On a computer (mouse) Nano is not offered and "open the app" opens the QR dialog (app-qr.js); next to the QR its button is not needed. */
@media(hover:hover) and (pointer:fine){.phone-only{display:none!important}}
.computer-only{display:none!important}@media(hover:hover) and (pointer:fine){.computer-only{display:block!important}}
@media(hover:hover) and (pointer:fine) and (min-width:701px){.tv-qr .tv-button{display:none}}
.app-qr-dialog{padding:0;border:0;border-radius:6px;background:#fff;color:var(--text);width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-shadow:0 30px 80px rgba(0,0,0,.3)}
.app-qr-dialog::backdrop{background:rgba(20,22,18,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.app-qr-panel{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 36px 36px}
.app-qr-panel img{width:220px;height:220px;padding:8px;border:1px solid var(--line);border-radius:6px}
.app-qr-panel h2{font-family:var(--heading-font);font-size:28px;line-height:1.12;margin-top:26px;text-wrap:balance}
.app-qr-panel p{color:#4f5149;font-size:15px;margin-top:12px;max-width:32ch;text-wrap:pretty}
.app-qr-panel .app-qr-plan{display:flex;flex-direction:column;gap:4px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);max-width:none;width:100%;font-size:14px}
.app-qr-plan a{color:var(--text);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.app-qr-close{position:absolute;top:8px;right:8px;width:44px;height:44px;display:grid;place-items:center;font-size:26px;line-height:1;color:var(--muted);border-radius:50%}
.app-qr-close:hover{color:var(--text);background:#f1f0ea}
.app-qr-close:focus-visible{outline-offset:-2px}


/* SEARCH PAGES (/<lang>/places|areas|guides|tips/…; scripts/build-seo-pages.mjs). Only under body.seo. */
.seo .header{position:sticky;top:0;background:var(--dark);padding:16px var(--gutter)}
.seo .brand span{font-family:var(--heading-font)}
.seo .header-right{gap:24px}
.seo-nav{display:flex;gap:20px;font-size:13px}
.seo-nav a{min-height:44px;display:grid;place-items:center;opacity:.85}
.seo-nav a:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}
.seo-main{max-width:1240px;margin:0 auto;padding:28px var(--gutter) 100px}
.seo-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);margin-bottom:36px}
.seo-crumbs a:hover{color:var(--text);text-decoration:underline}
.seo-intro{max-width:820px;margin-bottom:24px}
.seo-intro .tv-button,.seo-facts .tv-button{background:var(--dark);color:#fff;border-color:var(--dark);margin-top:26px}
.seo-intro .tv-button:hover,.seo-facts .tv-button:hover{background:#000}
.seo-article .eyebrow,.seo-intro .eyebrow{color:var(--muted);margin-bottom:16px}
.seo-main h1{font-family:var(--heading-font);font-size:clamp(38px,5vw,72px);line-height:1.04;letter-spacing:var(--heading-tracking);text-wrap:balance}
.seo-lead{font-size:clamp(17px,1.5vw,21px);color:#4f5149;margin-top:18px;max-width:760px;text-wrap:pretty}
.seo-photos{display:grid;grid-template-columns:2fr 1fr;grid-auto-rows:minmax(0,1fr);gap:12px;margin:36px 0;max-height:520px}
.seo-photos img{width:100%;height:100%;object-fit:cover;border-radius:4px;background:#d9d6cb;aspect-ratio:4/3}
.seo-photos img:first-child{grid-row:span 2;aspect-ratio:auto}
.seo-photos img:only-child{grid-column:span 2;aspect-ratio:16/9}
.seo-photos-one{grid-template-columns:1fr;max-height:none}.seo-photos-one img{aspect-ratio:16/9;grid-row:auto}
.seo-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:clamp(32px,5vw,80px);align-items:start;margin-top:36px}
.seo-text{font-size:17px;line-height:1.65}
.seo-text p+p,.seo-text p+ul,.seo-text ul+p{margin-top:16px}
.seo-text ul{padding-left:20px;margin:12px 0}.seo-text li{margin:8px 0}
.seo-text a{text-decoration:underline;text-underline-offset:3px}
.seo-tip{margin-top:32px;padding:24px 26px;background:#fff;border:1px solid var(--line);border-left:3px solid #ad6954;border-radius:4px}
.seo-tip .eyebrow{color:#ad6954;margin-bottom:8px}
.seo-facts{position:sticky;top:96px;padding:26px;background:#fff;border:1px solid var(--line);border-radius:4px;font-size:15px}
.seo-slider{position:relative;aspect-ratio:4/3;margin:-8px -8px 22px;border-radius:4px;overflow:hidden;background:#d9d6cb}.seo-slider .seo-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}.seo-slider .seo-slide.is-on{opacity:1}
.seo-credits{margin:-14px 0 18px;font-size:12px;line-height:1.4;color:#6b6b6b}.seo-credits a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.seo-maps-link{display:inline-flex;gap:6px;margin-top:22px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.seo-facts dl{margin:0;display:grid;gap:18px}.seo-facts dt{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.seo-facts dd{margin:0}
.seo-facts a{text-decoration:underline;text-underline-offset:3px}.seo-facts .tv-button{text-decoration:none;width:100%;justify-content:center}
.seo-facts>.eyebrow{color:var(--muted);margin-bottom:10px}
.seo-hours{border-collapse:collapse;width:100%}.seo-hours th{text-align:left;font-weight:400;padding:3px 12px 3px 0;color:var(--muted);text-transform:capitalize}.seo-hours td{padding:3px 0}
.seo-related{margin-top:clamp(56px,6vw,90px)}
.seo-essentials ol{list-style:none;counter-reset:ess;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}
.seo-essentials li{counter-increment:ess;position:relative;padding:20px 22px 20px 64px;border-radius:18px;background:#fff;box-shadow:0 1px 2px #22280f0f,0 8px 22px #22280f0a}
.seo-essentials li:before{content:counter(ess);position:absolute;left:22px;top:20px;width:28px;height:28px;border-radius:50%;background:var(--dark);color:#fff;font-size:13px;display:grid;place-items:center}
.seo-essentials h3{font-family:var(--heading-font);font-size:19px;line-height:1.25;margin:0 0 6px}
.seo-essentials h3 a{text-decoration:underline;text-underline-offset:3px}
.seo-essentials p{font-size:15px;line-height:1.6;color:#4b4e45}
.seo-faq h3{font-family:var(--heading-font);font-size:19px;line-height:1.3;margin:22px 0 6px}
.seo-faq p{font-size:16px;line-height:1.65;max-width:760px}
@media(max-width:700px){.seo-essentials ol{grid-template-columns:1fr}}
.seo-inline-link{text-decoration:underline;text-underline-offset:3px}
.seo-related h2{font-family:var(--heading-font);font-size:clamp(26px,2.6vw,40px);line-height:1.1;margin-bottom:24px}
.seo-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.seo-card a{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:border-color .2s}
.seo-card a:hover{border-color:var(--text)}
.seo-card-photo{display:block;position:relative;aspect-ratio:4/3;background:#d9d6cb;overflow:hidden}.seo-card-photo img{width:100%;height:100%;object-fit:cover}
.seo-card-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 20px}
.seo-card-body .eyebrow{color:var(--muted);font-size:10px}.seo-card-body strong{font-family:var(--heading-font);font-weight:400;font-size:21px;line-height:1.15}.seo-card-body span:last-child{font-size:14px;color:#4f5149}
.seo-cards-numbered{counter-reset:item}.seo-cards-numbered .seo-card-body .eyebrow::before{counter-increment:item;content:counter(item) " · "}
.seo-links{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.seo-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--line);font-size:16px}
.seo-links a small{color:var(--muted);font-size:13px;margin-left:auto}
.seo-links a span{opacity:.45;transition:opacity .2s,transform .2s}.seo-links a:hover span{opacity:1;transform:translate(2px,-2px)}
.seo-links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));column-gap:36px;border-top:0}.seo-links-grid li{border-top:1px solid var(--line)}.seo-links-grid a{border-bottom:0}
.seo-related h2 a:hover{text-decoration:underline}
.seo .footer{padding-top:40px}
@media(max-width:900px){.seo-nav{display:none}.seo-columns{grid-template-columns:1fr}.seo-facts{position:static}}
@media(max-width:700px){.seo .header{display:flex;padding:14px var(--gutter)}.seo .header-right{display:flex;gap:12px}.seo .brand span{display:none}.seo-photos{grid-template-columns:1fr;max-height:none}.seo-photos img:not(:first-child){display:none}.seo-photos img:first-child{grid-row:auto;aspect-ratio:4/3}.seo .footer-bottom span:nth-child(2){display:block}}
.seo-empty{color:var(--muted);font-size:15px}

/* SEO pages, desktop polish: calmer hero photos, cards that respond, no empty footer band. */
.seo .seo-photos-one{max-height:440px;overflow:hidden;border-radius:6px}.seo .seo-photos-one img{aspect-ratio:21/9;max-height:440px}
.seo .seo-card a{border-radius:8px;transition:border-color .2s,box-shadow .25s,transform .25s}
.seo .seo-card a:hover{border-color:var(--line);box-shadow:0 12px 32px rgba(27,9,9,.10);transform:translateY(-2px)}
.seo .seo-card-photo img{transition:transform .6s ease}.seo .seo-card a:hover .seo-card-photo img{transform:scale(1.04)}
.seo .seo-facts,.seo .seo-tip{border-radius:8px}.seo .seo-slider{border-radius:6px}
.seo-text h2{font-family:var(--heading-font);font-size:clamp(22px,2vw,28px);line-height:1.15;margin:36px 0 12px}
.seo-text h3{font-family:var(--heading-font);font-size:19px;line-height:1.3;margin:24px 0 6px}
.seo-area-facts{margin:0;display:grid;gap:18px;max-width:720px}.seo-area-facts dt{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.seo-area-facts dd{margin:0}.seo-area-facts a{text-decoration:underline;text-underline-offset:3px}
.seo .footer{padding-top:0}.seo .footer-bottom{border-top:0}
@media(prefers-reduced-motion:reduce){.seo .seo-card a,.seo .seo-card-photo img{transition:none;transform:none}}
/* SEO pages like the app: white background, rounded cards, hover = soft shadow + photo zoom (no dark border). */
body.seo{background:#fff;--paper:#fff}
.seo .seo-card a{border:0;border-radius:16px;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06)}
.seo .seo-card a:hover{border:0;box-shadow:0 2px 6px rgba(27,9,9,.06),0 16px 40px rgba(27,9,9,.12);transform:translateY(-3px)}
.seo .seo-card-photo{border-radius:16px 16px 0 0}
.seo .seo-card-photo img{transition:transform .9s cubic-bezier(.2,.6,.3,1)}.seo .seo-card a:hover .seo-card-photo img{transform:scale(1.07)}
.seo .seo-facts,.seo .seo-tip{border:1px solid #ececec;border-radius:16px;box-shadow:0 4px 16px rgba(27,9,9,.05)}
.seo .seo-slider{border-radius:12px}
.seo .seo-photos img{border-radius:16px}
/* Magazine pages (build-seo-pages.mjs): «Reviewed in…», sources, month by month, the rules of the year, about us. */
.seo-reviewed{margin-top:22px;font-size:13px;color:var(--muted)}
.seo-intro .seo-reviewed{margin-top:14px}
.seo-source{margin-top:14px;font-size:12px;line-height:1.5;color:var(--muted)}.seo-source a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.seo-section-lead{margin:-12px 0 22px;color:#4f5149;font-size:15px}
.seo-table-wrap{overflow-x:auto;border-radius:16px;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06)}
.seo-month-table{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
.seo-month-table th,.seo-month-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #efefef;vertical-align:top}
.seo-month-table thead th{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:var(--muted);font-weight:400}
.seo-month-table tbody th{font-family:var(--heading-font);font-weight:400;font-size:19px;white-space:nowrap}
.seo-month-table tbody th a{text-decoration:underline;text-underline-offset:3px}
.seo-month-table td{white-space:nowrap}.seo-month-table td:last-child{white-space:normal;color:#4f5149;min-width:280px}
.seo-month-table tbody tr:last-child th,.seo-month-table tbody tr:last-child td{border-bottom:0}
.seo-month-nav{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(56px,6vw,90px);padding-top:24px;border-top:1px solid var(--line);font-size:15px}
.seo-month-nav a{text-decoration:underline;text-underline-offset:3px}
.seo-rule{padding:24px 26px;margin-top:18px;border-radius:16px;background:#fff;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06);max-width:860px;scroll-margin-top:110px}
.seo-rule h3{font-family:var(--heading-font);font-size:22px;line-height:1.2;margin:0 0 8px}
.seo-rule .eyebrow{color:var(--muted);margin-bottom:12px}
.seo-rule>p:not(.eyebrow):not(.seo-source){font-size:16px;line-height:1.65}
.seo-rule-places{margin-top:12px;font-size:14px}.seo-rule-places a{text-decoration:underline;text-underline-offset:3px}
.seo-prose{max-width:760px}.seo-prose .seo-text{margin-top:28px}
.seo-cookie-button{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:inherit;text-decoration:underline}
.seo-legal-owner{margin:18px 0 8px;padding:18px 20px;border-radius:18px;background:#f5f4f1;display:grid;gap:10px}.seo-legal-owner div{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:12px}.seo-legal-owner dt{color:var(--muted);font-size:14px}.seo-legal-owner dd{margin:0;font-size:15px;overflow-wrap:anywhere}@media(max-width:560px){.seo-legal-owner div{grid-template-columns:1fr;gap:2px}}
@media(max-width:700px){.seo-month-table td:last-child{min-width:220px}.seo-month-nav{flex-direction:column}}
/* Magazine (/<lang>/magazine/), newsletter box and «Link to us» (build-seo-pages.mjs). Also on the travellers' home (body.travel). */
.mag-article{max-width:780px;margin:0 auto}
.mag-head h1{font-size:clamp(34px,4.4vw,60px)}
.mag-byline{margin-top:18px;font-size:14px;color:var(--muted)}.mag-byline a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.mag-cover{margin:32px 0 8px}.mag-cover img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:16px;background:#d9d6cb}
.mag-cover figcaption{margin-top:8px;font-size:12px;color:#6b6b6b}.mag-cover figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mag-body{font-size:18px;line-height:1.7;margin-top:28px}.mag-body h2{margin-top:44px}
.mag-event{display:flex;gap:16px;align-items:center;margin:22px 0 6px;padding:12px;border-radius:16px;background:#fff;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06);text-decoration:none!important}
.mag-event img{width:88px;height:88px;object-fit:cover;border-radius:12px;flex:none;background:#d9d6cb}
.mag-event>span{display:flex;flex-direction:column;gap:4px;font-size:15px;line-height:1.35}.mag-event .eyebrow{color:var(--muted);margin:0}.mag-event strong{font-family:var(--heading-font);font-weight:400;font-size:19px}
.mag-sources{margin-top:40px;font-size:14px;color:#4f5149}.mag-sources summary{cursor:pointer;font-weight:500}.mag-sources ol{margin:12px 0 0;padding-left:20px}.mag-sources li{margin:4px 0}
.mag-author{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:15px;color:#4f5149}
.mag-cards .seo-card-photo{aspect-ratio:3/2}
.nl-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:clamp(24px,4vw,56px);align-items:center;margin:clamp(56px,6vw,90px) auto 0;padding:clamp(24px,3vw,40px);border-radius:24px;background:#f4f1ea;max-width:1240px}
.nl-box h2{font-family:var(--heading-font);font-size:clamp(24px,2.4vw,34px);line-height:1.15;margin:6px 0 10px}.nl-box .eyebrow{color:var(--muted)}.nl-copy p:last-child{color:#4f5149}
.nl-box-page{display:block;background:none;padding:0;margin:28px 0 0;max-width:560px}
.nl-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.nl-row{display:flex;gap:8px}.nl-row input[type=email]{flex:1;min-width:0;height:48px;padding:0 16px;border:1px solid #d7d3c9;border-radius:999px;background:#fff;font:inherit;font-size:16px}
.nl-row button{height:48px;padding:0 20px;border:0;border-radius:999px;background:#1B0909;color:#fff;font:inherit;font-weight:600;cursor:pointer}.nl-row button:disabled{opacity:.5}
.nl-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.nl-note{min-height:1.4em;margin-top:10px;font-size:15px;font-weight:500}.nl-privacy{font-size:12px;color:#6b6b6b}.nl-privacy a{color:inherit;text-decoration:underline}
.nl-form.is-done .nl-row{display:none}
.nl-status{margin-top:22px;padding:16px 20px;border-radius:14px;background:#f4f1ea;font-weight:500}
body.travel .hf>.nl-box{margin-left:var(--gutter);margin-right:var(--gutter);margin-bottom:clamp(48px,5vw,80px)}
.ltu-snippet{margin:20px 0 8px;padding:20px;border-radius:16px;background:#fff;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06)}
.ltu-snippet .eyebrow{color:var(--muted);display:block;margin-bottom:10px}.ltu-preview{margin-bottom:18px;padding:18px;border-radius:12px;background:#f4f1ea}
.ltu-snippet textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #e3e1dc;border-radius:10px;font:13px/1.5 ui-monospace,Menlo,monospace;color:#1B0909;resize:vertical;text-transform:none;letter-spacing:0}
.ltu-fake{display:inline-block;text-decoration:underline;text-underline-offset:3px}
.ltu-areas{list-style:none;padding:0;margin:16px 0 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:4px 24px}
.ltu-areas li{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line)}.ltu-areas code{font-size:12px;color:#4f5149;word-break:break-all}
@media(max-width:800px){.nl-box{grid-template-columns:1fr}.nl-row{flex-direction:column}.nl-row button{width:100%}}
/* TRAVELERS' HOME FEED (like Explore in the app; filled in by build-seo-pages.mjs). */
body.travel{--paper:#fff}
.hf{background:#fff;padding:clamp(56px,6vw,96px) 0 clamp(40px,4vw,64px)}
.hf-row{padding:0 0 clamp(48px,5vw,80px)}
.hf-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:0 var(--gutter);margin-bottom:22px}
.hf-head h2{font-family:var(--heading-font);font-size:clamp(28px,2.6vw,42px);line-height:1.08;letter-spacing:var(--heading-tracking)}
.hf-head p{margin-top:6px;color:var(--muted);font-size:15px}
.hf-tools{display:flex;align-items:center;gap:8px;flex:none}
.hf-more{font-size:14px;font-weight:500;margin-right:10px;white-space:nowrap}.hf-more:hover{text-decoration:underline;text-underline-offset:4px}
.hf-arrow{width:40px;height:40px;border-radius:50%;border:1px solid #e3e3e3;background:#fff;font-size:22px;line-height:1;display:grid;place-items:center;transition:box-shadow .2s,border-color .2s}
.hf-arrow:hover{border-color:#cfcfcf;box-shadow:0 4px 14px rgba(27,9,9,.10)}
.hf-track{list-style:none;margin:0;padding:6px var(--gutter) 22px;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--gutter);scrollbar-width:none}
.hf-track::-webkit-scrollbar{display:none}
.hf-card{flex:none;scroll-snap-align:start}
.hf-card a{display:block;height:100%;border-radius:16px;transition:transform .35s cubic-bezier(.2,.6,.3,1)}
.hf-card a:hover{transform:translateY(-3px)}
.hf-photo{position:relative;display:block;overflow:hidden;border-radius:16px;background:#eee;box-shadow:0 1px 3px rgba(27,9,9,.06),0 6px 20px rgba(27,9,9,.07);transition:box-shadow .35s}
.hf-card a:hover .hf-photo{box-shadow:0 2px 6px rgba(27,9,9,.08),0 18px 44px rgba(27,9,9,.16)}
.hf-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.hf-card a:hover .hf-photo img{transform:scale(1.07)}
.hf-over{position:absolute;inset:auto 0 0 0;padding:60px 18px 18px;display:flex;flex-direction:column;gap:4px;color:#fff;background:linear-gradient(0deg,rgba(10,10,8,.78),rgba(10,10,8,.35) 55%,transparent)}
.hf-over strong{font-family:var(--heading-font);font-weight:400;font-size:22px;line-height:1.12;letter-spacing:var(--subheading-tracking)}
.hf-over span{font-size:13px;opacity:.88;line-height:1.35}.hf-over .hf-eyebrow{font-size:10px;letter-spacing:.11em;text-transform:uppercase;opacity:.8}
.hf-tall{width:clamp(220px,19vw,280px)}.hf-tall .hf-photo{aspect-ratio:3/4}
.hf-wide{width:clamp(320px,31vw,460px)}.hf-wide .hf-photo{aspect-ratio:16/10}.hf-wide .hf-over strong{font-size:26px}
.hf-area{width:clamp(180px,14vw,210px)}.hf-area .hf-photo{aspect-ratio:1}
.hf-poster{width:clamp(200px,16vw,240px)}.hf-poster .hf-photo{aspect-ratio:4/5}
.hf-date{position:absolute;top:12px;left:12px;background:#fff;color:#1B0909;border-radius:12px;padding:6px 10px;text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.06em;line-height:1.1;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.hf-date b{display:block;font-family:var(--heading-font);font-weight:400;font-size:22px;letter-spacing:0}
.hf-body{display:flex;flex-direction:column;gap:4px;padding:14px 4px 0}
.hf-body strong{font-family:var(--heading-font);font-weight:400;font-size:19px;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hf-body span{font-size:13px;color:var(--muted)}
.hf-provider{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:18px 60px;align-items:baseline;margin:0 var(--gutter);padding:34px 38px;border-radius:24px;background:#f0f6f2;transition:background .2s}
.hf-provider:hover{background:#e7f0ea}
.hf-provider h2{font-family:var(--heading-font);font-weight:400;font-size:26px;line-height:1.15;letter-spacing:var(--subheading-tracking)}
.hf-provider p{color:#4f5a52;font-size:17px;line-height:1.6}
.hf-provider-cta{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 20px;border-radius:999px;background:#1B0909;color:#fff;font-size:15px;font-weight:500}
.hf-chips{list-style:none;margin:0;padding:0 var(--gutter);display:flex;flex-wrap:wrap;gap:10px}
.hf-chips a{display:inline-block;padding:11px 18px;border-radius:999px;background:#f3f3f1;font-size:14px;transition:background .2s}
.hf-chips a:hover{background:#e8e8e4}
@media(max-width:700px){.hf-provider{grid-template-columns:1fr;padding:26px 22px}.hf-arrow{display:none}.hf-head{align-items:flex-start;flex-direction:column;gap:8px}.hf-more{margin:0}.hf-track{gap:12px}.hf-tall{width:68vw}.hf-wide{width:84vw}.hf-poster{width:60vw}.hf-area{width:42vw}}
@media(prefers-reduced-motion:reduce){.hf-card a,.hf-photo img{transition:none!important;transform:none!important}}
.travel .tv-hero{border-radius:0 0 clamp(24px,3vw,44px) clamp(24px,3vw,44px);isolation:isolate}body.travel{background:#fff}
/* Home feed: places as white cards, like "More places in…" on a place page. */
.hf-place{width:clamp(250px,20vw,290px)}
.hf-place a{display:flex;flex-direction:column;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06);transition:transform .35s cubic-bezier(.2,.6,.3,1),box-shadow .35s}
.hf-place a:hover{box-shadow:0 2px 6px rgba(27,9,9,.06),0 16px 40px rgba(27,9,9,.12)}
.hf-place .hf-photo{aspect-ratio:4/3;border-radius:0;box-shadow:none}.hf-card.hf-place a:hover .hf-photo{box-shadow:none}
.hf-place-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 20px;flex:1}
.hf-place-body .hf-eyebrow{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.hf-place-body strong{font-family:var(--heading-font);font-weight:400;font-size:21px;line-height:1.15}
.hf-place-body span:last-child{font-size:14px;color:#4f5149;line-height:1.45}
.hf-track:has(.hf-place){padding-bottom:28px}
@media(max-width:700px){.hf-place{width:72vw}}
.travel .tv-hero{margin:clamp(10px,1.2vw,18px);min-height:calc(100svh - 2*clamp(10px,1.2vw,18px));border-radius:clamp(20px,2.4vw,36px)}.travel .header{top:clamp(10px,1.2vw,18px);left:clamp(10px,1.2vw,18px);right:clamp(10px,1.2vw,18px)}
/* Phone: "Open in the app" bar at the bottom of the website and its pages (app-qr.js). */
.app-bar{position:fixed;z-index:60;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:10px 10px 10px 8px;background:#fff;color:#1B0909;border-radius:18px;box-shadow:0 2px 6px rgba(27,9,9,.08),0 12px 36px rgba(27,9,9,.18);transform:translateY(140%);transition:transform .45s cubic-bezier(.2,.7,.3,1);font-family:var(--text-font)}
.app-bar.is-on{transform:none}
.app-bar-icon{width:36px;height:36px;border-radius:10px;background:#1B0909;display:grid;place-items:center;flex:none}.app-bar-icon img{width:24px;height:24px;object-fit:contain;filter:brightness(0) invert(1)}
.app-bar-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.app-bar-text strong{font-size:14px;font-weight:600}.app-bar-text span{font-size:12px;color:#77776e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.app-bar-open{flex:none;background:#1B0909;color:#fff;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:600}
.app-bar-close{flex:none;width:28px;height:28px;border-radius:50%;font-size:20px;line-height:1;color:#77776e;display:grid;place-items:center}
body.has-app-bar{padding-bottom:84px}
@media(hover:hover) and (pointer:fine){.app-bar:not(.app-bar--demo){display:none}}
@media(prefers-reduced-motion:reduce){.app-bar{transition:none}}
/* The hosts' website: sign in for every business account (app.getmallorca.com/entrar) and the providers' product. */
.biz-signin{font-size:13px;opacity:.85;min-height:44px;display:grid;place-items:center}.biz-signin:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}
.biz-providers{padding:clamp(70px,7vw,110px) var(--gutter);background:#fff}.biz-providers .eyebrow{color:#676b5e;margin-bottom:22px}.biz-providers h2{font-family:var(--heading-font);font-size:clamp(30px,3.4vw,54px);line-height:1.08;max-width:18ch}.biz-providers p:not(.eyebrow){max-width:560px;margin:18px 0 26px;color:#4f5149;font-size:16px}
@media(max-width:700px){.biz-signin{display:none}}
/* Premium motion, like the app (src/lib/motion.ts: IOS_EASE, push 480 ms / pop 380 ms). */
/* Travelers' home: the hero card shrinks a little on scroll (motion.js sets --hero-p), the photo drifts slower. */
.travel .tv-hero{transform:scale(calc(1 - var(--hero-p,0) * .07));transform-origin:50% 100%;will-change:transform;clip-path:inset(0 round clamp(20px,2.4vw,36px))}
.travel .tv-hero-img{transform:translateY(calc(var(--hero-p,0) * 4%)) scale(1.1);will-change:transform;opacity:0}
.travel .tv-hero.is-loaded .tv-hero-img{opacity:1;animation:hero-in 1.6s cubic-bezier(.32,.72,0,1) both}
.travel .tv-hero-copy{opacity:calc(1 - var(--hero-p,0) * 1.4)}
@keyframes hero-in{from{opacity:0;transform:scale(1.16)}}
/* Hero texts rise in one after another (2-11, petición de la usuaria); they don't wait for the photo. */
.travel .tv-hero:not(.has-plan) .tv-hero-copy>*{animation:hero-copy-in .9s cubic-bezier(.32,.72,0,1) backwards}
.travel .tv-hero:not(.has-plan) .tv-kicker{animation-delay:.15s}
.travel .tv-hero:not(.has-plan) h1{animation-duration:1.1s;animation-delay:.28s}
.travel .tv-hero:not(.has-plan) .tv-lead{animation-delay:.5s}
.travel .tv-hero:not(.has-plan) .tv-actions{animation-delay:.64s}
.travel .tv-hero:not(.is-loaded) .tv-hero-credit{visibility:hidden}.travel .tv-hero.is-loaded .tv-hero-credit{animation:tv-fade-in .8s cubic-bezier(.32,.72,0,1) .7s backwards}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(22px);filter:blur(6px)}}
/* Sliders: the cards scale as they leave the edge (motion.js), like Explore's; they give under the finger. */
.hf-track{position:relative}
.hf-track.is-scaled>.hf-card{transform-origin:50% 50%;will-change:transform}
.hf-card a:active{transform:scale(.97);transition-duration:.12s}
/* Events like the app's Explore slider: a 2:3 photo, the date in a dark badge, the title and the time below. */
.hf-poster{width:220px}.hf-poster .hf-photo{aspect-ratio:2/3;border-radius:20px}
.hf-poster .hf-date{background:rgba(0,0,0,.7);color:#fff;border-radius:12px;padding:6px 10px;box-shadow:none;font-size:10px;letter-spacing:.08em;line-height:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hf-poster .hf-date b{font-family:var(--text-font);font-weight:700;font-size:16px;margin-bottom:3px}
.hf-poster .hf-body{gap:2px;padding:8px 2px 0}
.hf-poster .hf-body strong{font-family:var(--text-font);font-weight:600;font-size:15px;line-height:1.25;color:#1B0909}
.hf-poster .hf-body span{font-size:12px}
@media(max-width:700px){.hf-poster{width:220px}}
/* The QR dialog rises like a sheet. */
.app-qr-dialog[open]{animation:qr-in .5s cubic-bezier(.32,.72,0,1)}
.app-qr-dialog[open]::backdrop{animation:qr-fade .5s cubic-bezier(.32,.72,0,1)}
@keyframes qr-in{from{opacity:0;transform:translateY(24px) scale(.96)}}
@keyframes qr-fade{from{opacity:0}}
/* Between the website's pages: iOS push (the new page from the right, the old one moves a little and darkens);
   back (pagereveal adds the "back" type), the other way. On a computer, a softer rise. */
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-group(root){animation-duration:.48s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
  ::view-transition-old(root){animation:vt-push-old .48s cubic-bezier(.32,.72,0,1) both}
  ::view-transition-new(root){animation:vt-push-new .48s cubic-bezier(.32,.72,0,1) both;box-shadow:-12px 0 40px rgba(0,0,0,.18)}
  html:active-view-transition-type(back)::view-transition-old(root){animation:vt-pop-old .38s cubic-bezier(.32,.72,0,1) both;z-index:2;box-shadow:-12px 0 40px rgba(0,0,0,.18)}
  html:active-view-transition-type(back)::view-transition-new(root){animation:vt-pop-new .38s cubic-bezier(.32,.72,0,1) both;box-shadow:none}
  @media(hover:hover) and (pointer:fine){
    ::view-transition-old(root){animation:vt-fade-old .42s cubic-bezier(.32,.72,0,1) both}
    ::view-transition-new(root){animation:vt-rise-new .52s cubic-bezier(.32,.72,0,1) both;box-shadow:none}
    html:active-view-transition-type(back)::view-transition-old(root){animation:vt-fade-old .36s cubic-bezier(.32,.72,0,1) both;box-shadow:none}
    html:active-view-transition-type(back)::view-transition-new(root){animation:vt-rise-new .42s cubic-bezier(.32,.72,0,1) both}
  }
}
@keyframes vt-push-new{from{transform:translateX(100%)}}
@keyframes vt-push-old{to{transform:translateX(-28%);filter:brightness(.82)}}
@keyframes vt-pop-old{to{transform:translateX(100%)}}
@keyframes vt-pop-new{from{transform:translateX(-28%);filter:brightness(.82)}}
@keyframes vt-fade-old{to{opacity:0;transform:scale(.985)}}
@keyframes vt-rise-new{from{opacity:0;transform:translateY(18px)}}
@media(prefers-reduced-motion:reduce){.travel .tv-hero,.travel .tv-hero-img{transform:none;animation:none}.travel .tv-hero-img{opacity:1}.travel .tv-hero .tv-hero-copy>*{animation:none}.travel .tv-hero-copy{opacity:1}.app-qr-dialog[open],.app-qr-dialog[open]::backdrop{animation:none}}
/* business landings: random hero photo, CTAs (book a demo + Son Clau demo on desktop) and the floating demo bar */
.hero-photo{object-position:center}
.hero-picture{position:absolute;inset:0}
@media(max-width:700px){.hero-photo{object-position:center 30%}}
.brand .brand-name{font-size:12px;font-weight:700;letter-spacing:.16em}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 22px;border-radius:3px;font-size:15px;font-weight:500;border:1px solid #fff;transition:background .2s,color .2s,transform .2s}
.hero-cta--primary{background:#fff;color:#1B0909}
.hero-cta--primary:hover{background:#f1efe8}
.hero-cta--demo{color:#fff;background:transparent}
.hero-cta--demo:hover{background:#ffffff1f}
.hero-cta:active{transform:scale(.98)}
@media(max-width:700px){.hero-cta--demo{display:none}.hero-actions{margin-top:22px}.hero-cta--primary{width:100%}body.has-app-bar .hero{padding-bottom:116px}}
@media(min-width:701px){.app-bar--demo{left:auto;right:24px;bottom:24px;width:380px}}

/* demo modal: a white modal with the form (no navigation), on a computer and on a phone */
.menu.demo-modal{inset:0;margin:auto;width:min(1040px,calc(100vw - 48px));height:fit-content;max-height:calc(100dvh - 48px);padding:0;background:#fff;color:#1B0909;border-radius:24px;overflow-y:auto;box-shadow:0 40px 120px rgba(16,12,8,.35);font-family:var(--text-font)}
.menu.demo-modal::backdrop{background:rgba(22,20,18,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.menu.demo-modal[open]{animation:dm-in .5s cubic-bezier(.32,.72,0,1)}
@keyframes dm-in{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.dm-panel{position:relative;display:grid;grid-template-columns:.85fr 1.15fr}
.demo-modal .menu-close{position:absolute;top:16px;right:16px;z-index:2;width:44px;height:44px;padding:0;border-radius:50%;background:#f3f2ee;color:#1B0909}
.demo-modal .menu-close:hover{opacity:1;background:#e9e7e1}
.demo-modal .menu-close-icon{width:16px;height:16px}
.demo-modal .menu-close-icon:before,.demo-modal .menu-close-icon:after{width:16px;height:1.5px}
.dm-intro-col{padding:56px 48px;background:#f7f6f2;display:flex;flex-direction:column}
.dm-eyebrow{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8a877e;margin-bottom:18px}
.dm-intro-col h2{font-family:var(--heading-font);font-size:clamp(34px,3.4vw,48px);line-height:1.05;letter-spacing:var(--heading-tracking);color:#1B0909}
.dm-lead{margin-top:16px;font-size:16px;line-height:1.55;color:#57544d;max-width:36ch}
.dm-points{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.dm-points li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.4;color:#1B0909}
.dm-points svg{flex:none;width:22px;height:22px;padding:3px;border-radius:50%;background:#1B0909;color:#fff;margin-top:-1px}
.dm-alt{margin-top:auto;padding-top:40px;font-size:14px;color:#57544d}
.dm-alt a{display:inline-flex;gap:6px;color:#1B0909;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:2px;margin-top:6px}
.dm-form-col{padding:56px 48px 40px;max-width:none}
.demo-modal .demo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}
.demo-modal .demo-field{display:flex;flex-direction:column;gap:8px;margin:0}
.demo-modal .demo-field--full{grid-column:1/-1}
.demo-modal .demo-field label{font-size:13px;font-weight:500;color:#1B0909}
.demo-modal .demo-field label span{color:#a39f95}
.demo-modal .demo-field input,.demo-modal .demo-field textarea{width:100%;font:inherit;font-size:16px;color:#1B0909;background:#f5f4f0;border:1px solid transparent;border-radius:4px;padding:14px 16px;min-height:52px;outline:none;transition:border-color .2s,background .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.demo-modal .demo-field textarea{resize:vertical;min-height:96px;line-height:1.45}
.demo-modal .demo-field input::placeholder,.demo-modal .demo-field textarea::placeholder{color:#aaa69c}
.demo-modal .demo-field input:hover,.demo-modal .demo-field textarea:hover{background:#efeee9}
.demo-modal .demo-field input:focus,.demo-modal .demo-field textarea:focus{background:#fff;border-color:#1B0909;box-shadow:0 0 0 4px rgba(27,9,9,.08)}
.demo-modal .demo-field [aria-invalid=true]{border-color:#c2412d;background:#fff}
.demo-modal .field-error{font-size:12px;color:#c2412d;margin:0}
.demo-modal .demo-submit{margin-top:24px;width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:3px;background:#1B0909;color:#fff;font-size:16px;font-weight:600;padding:0 28px;transition:background .2s,transform .15s}
.demo-modal .demo-submit:hover{background:#352222}
.demo-modal .demo-submit:active{transform:scale(.99)}
.demo-modal .demo-privacy{margin-top:14px;font-size:12px;line-height:1.5;color:#8a877e;text-align:center}
.demo-modal .demo-privacy a{color:inherit;text-decoration:underline}
.demo-modal .demo-status{margin-top:14px;font-size:14px;line-height:1.5;color:#1d6b3a;text-align:center}
.demo-modal .demo-status:empty{display:none}
.demo-modal .demo-status.is-error{color:#c2412d}
@media(max-width:820px){
 .menu.demo-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none}
 .menu.demo-modal[open]{animation:dm-up .45s cubic-bezier(.32,.72,0,1)}
 @keyframes dm-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
 .dm-panel{grid-template-columns:1fr}
 .dm-intro-col{padding:72px 20px 8px;background:#fff}
 .dm-intro-col h2{font-size:34px}
 .dm-lead{font-size:15px}
 .dm-points{margin-top:20px;gap:10px}
 .dm-points li{font-size:14px}
 .dm-alt{display:none}
 .dm-form-col{padding:24px 20px calc(32px + env(safe-area-inset-bottom))}
 .demo-modal .demo-form-grid{grid-template-columns:1fr 1fr;gap:16px 10px}
 .demo-modal #demo-request .demo-field:has(#demo-phone),.demo-modal #demo-request .demo-field:has(#demo-company){grid-column:1/-1}
 .demo-modal .menu-close{top:14px;right:14px;position:fixed}
}
@media(prefers-reduced-motion:reduce){.menu.demo-modal[open]{animation:none}}

/* BLOG (/es|en/business/blog/…; scripts/build-blog.mjs). Only under body.blog. */
.blog{background:var(--paper)}
/* Artículo: fondo blanco, como las páginas para Google (31-10, petición de la usuaria). */
body.blog-post{background:#fff;--paper:#fff}
.blog-post .blog-table{box-shadow:0 0 0 1px var(--line)}
.blog .header{position:sticky;top:0;background:var(--dark);padding:16px var(--gutter)}
.blog .brand span{font-family:var(--heading-font)}
.blog .header-right{gap:24px}
.blog-nav{display:flex;gap:20px;font-size:13px}
.blog-nav a{min-height:44px;display:grid;place-items:center;opacity:.85}
.blog-nav a[aria-current=page],.blog-nav a:hover{opacity:1}
.blog .language-switch{display:flex;gap:12px;font-size:13px}
.blog .language-switch a{opacity:.6}.blog .language-switch a[aria-current=page]{opacity:1}
.blog-main{max-width:760px;margin:0 auto;padding:56px var(--gutter) 96px}
.blog-kicker{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:var(--muted)}
.blog-main h1{font-size:clamp(36px,5vw,58px);line-height:1.06;margin:16px 0 22px;text-wrap:balance}
.blog-lead{font-size:20px;line-height:1.5;color:#4b4e45}
.blog-meta{display:block;font-size:13px;color:var(--muted);margin-top:18px}
.blog-body{margin-top:40px}
.blog-body h2,.blog-faq h2,.blog-sources h2{font-size:clamp(26px,3vw,34px);line-height:1.15;margin:52px 0 16px;letter-spacing:var(--subheading-tracking)}
.blog-body h3{font-size:22px;margin:32px 0 10px}
.blog-body p,.blog-body li{font-size:17px;line-height:1.7}
.blog-body p{margin:0 0 18px}
.blog-body ul,.blog-body ol{padding-left:22px;margin:0 0 22px}
.blog-body li{margin-bottom:6px}
.blog-body a,.blog-sources a,.blog-faq a{text-decoration:underline;text-underline-offset:3px}
.blog-note{background:#ecebe2;padding:18px 22px;border-radius:14px;margin:0 0 24px}
.blog-note p{margin:0;font-size:16px}
.blog-table{overflow-x:auto;margin:8px 0 26px;background:#fff;border-radius:14px;box-shadow:0 1px 0 var(--line)}
.blog-body table{border-collapse:collapse;width:100%;font-size:15px;min-width:520px}
.blog-body th,.blog-body td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.45}
.blog-body tr:last-child td{border-bottom:0}
.blog-body th{font-weight:600;font-size:13px;color:#4b4e45}
.blog-faq details{border-top:1px solid var(--line);padding:16px 0}
.blog-faq details:last-child{border-bottom:1px solid var(--line)}
.blog-faq summary{cursor:pointer;font-size:18px;font-weight:600;line-height:1.4}
.blog-faq details p{margin-top:10px;font-size:16px;line-height:1.65}
.blog-sources ul{padding-left:20px;margin:0 0 16px}
.blog-sources li{font-size:15px;line-height:1.6;margin-bottom:6px}
.blog-sources>p{font-size:13px;color:var(--muted)}
.blog-cta{margin-top:64px;padding:32px;background:var(--dark);color:#eeeede;border-radius:18px}
.blog-cta h2{font-size:clamp(26px,3vw,36px);line-height:1.12}
.blog-cta p{margin:12px 0 8px;color:#c9ccbe;font-size:16px;max-width:520px}
.blog-list{list-style:none;padding:0;margin:48px 0 0;display:grid;gap:18px}
.blog-card a{display:block;padding:26px 28px;background:#fff;border-radius:18px;box-shadow:0 1px 2px #22280f0f,0 8px 24px #22280f0a;transition:box-shadow .25s,transform .25s}
.blog-card a:hover{box-shadow:0 2px 4px #22280f14,0 14px 34px #22280f14;transform:translateY(-2px)}
.blog-card .blog-meta{margin:0 0 10px}
.blog-card h2{font-size:clamp(24px,2.6vw,30px);line-height:1.15}
.blog-card p{margin-top:10px;color:#5b5f53;font-size:16px}
.blog-read{display:inline-block;margin-top:16px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:3px}
@media(max-width:700px){.blog .header{display:flex;padding:14px var(--gutter)}.blog .header-right{display:flex;gap:12px}.blog .brand span,.blog-nav a:first-child{display:none}.blog-nav{gap:14px}.blog-main{padding:36px var(--gutter) 72px}.blog-lead{font-size:18px}.blog-body p,.blog-body li{font-size:16px}.blog-cta{padding:24px}.blog-card a{padding:22px}.blog-body table{min-width:0;font-size:14px}.blog-body th,.blog-body td{padding:10px}.blog-body th{font-size:12px}}
.feature-faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:45px;padding:110px var(--gutter) 20px}
.feature-faq .eyebrow{padding-top:10px;color:#74776b}
.feature-faq h2{font-size:clamp(32px,3.6vw,56px);line-height:1.08;letter-spacing:var(--heading-tracking);margin-bottom:34px}
.feature-faq details{border-top:1px solid #d9d6cc}
.feature-faq details:last-of-type{border-bottom:1px solid #d9d6cc}
.feature-faq summary{display:flex;justify-content:space-between;gap:24px;padding:22px 0;cursor:pointer;list-style:none;font-size:clamp(18px,1.6vw,22px);line-height:1.3}
.feature-faq summary::-webkit-details-marker{display:none}
.feature-faq summary:after{content:'+';flex:none;font-size:22px;line-height:1.1;color:#74776b}
.feature-faq details[open] summary:after{content:'−'}
.feature-faq details p{max-width:640px;margin:-6px 0 0;padding-bottom:24px;font-size:15px;line-height:1.65;color:#66645d}
.feature-faq .line-link{margin-top:34px;width:auto;max-width:100%;gap:24px}
@media(max-width:700px){.feature-faq{grid-template-columns:minmax(0,1fr);gap:20px;padding:65px 24px 10px}.feature-faq .eyebrow{font-size:10px;padding-top:0}.feature-faq h2{font-size:32px;margin-bottom:22px}.feature-faq summary{font-size:17px;padding:18px 0}}
/* Cabecera común (scripts/site-header.mjs + site-header.js), la misma que la de /business (BusinessSiteHeader):
   píldora blanca fija, a 32 px de arriba como de los lados en escritorio; al bajar se encoge a logo + botón + menú y al subir vuelve; en el móvil, menú. */
.site-header{position:fixed;top:32px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:30px;width:min(1216px,calc(100% - 64px));height:70px;padding:0 13px 0 26px;border:1px solid rgba(33,25,23,.06);border-radius:999px;background:#fff;color:#211917;box-shadow:0 5px 20px rgba(21,15,13,.08);font-family:var(--heading-font);transition:width .4s cubic-bezier(.25,1,.5,1)}
.site-header a{color:inherit}
.sh-brand{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:1px;line-height:1;white-space:nowrap}
.sh-brand img{width:26px;height:26px;object-fit:contain;filter:none}
.sh-nav{display:flex;align-items:center;justify-content:center;gap:27px;margin-left:auto}
.sh-nav>a{font-size:13px;font-weight:600;line-height:1.3;white-space:nowrap;padding-block:13px}
.sh-nav>a:hover{text-decoration:underline;text-underline-offset:5px}
.sh-nav>a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.sh-nav>.sh-menu-langs,.sh-nav>.sh-menu-cta{display:none}
/* «Para empresas» solo en el menú: en la barra de escritorio no (1-11, petición de la usuaria); sigue en el pie. */
.sh-nav:not(.is-open)>.sh-menu-only{display:none}
.sh-actions{display:flex;align-items:center;gap:22px}
.site-header .sh-lang{gap:10px;font-size:12px}
.site-header .sh-lang a{min-height:40px}
.sh-cta{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:46px;padding:12px 20px;border-radius:999px;background:#1b0909;color:#fff!important;font-size:14px;font-weight:600;line-height:1.25;white-space:nowrap;transition:background .2s,transform .2s}
.sh-cta:hover{background:#331a17;transform:translateY(-2px)}
.sh-toggle{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:40px;height:40px;flex:none;border-radius:50%;background:transparent}
.sh-toggle:hover{background:#f6f5ed}
.sh-toggle i{display:block;width:18px;height:1.6px;border-radius:2px;background:currentColor;transition:transform .25s}
.sh-toggle.is-open i:first-child{transform:translateY(3.3px) rotate(45deg)}
.sh-toggle.is-open i:last-child{transform:translateY(-3.3px) rotate(-45deg)}
.sh-nav.is-open{position:absolute;top:calc(100% + 10px);left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:13px;border:1px solid #e9e3dd;border-radius:21px;background:#fff;box-shadow:0 15px 30px rgba(38,27,24,.15)}
.sh-nav.is-open>a{padding:14px 17px;border-radius:10px;font-size:15px}
.sh-nav.is-open>a:hover{background:#f6f5ed;text-decoration:none}
@media(min-width:900px){
 .site-header.is-compact{width:min(600px,calc(100% - 64px))}
 .site-header.is-compact .sh-nav:not(.is-open),.site-header.is-compact .sh-lang{display:none}
 .site-header.is-compact .sh-actions{margin-left:auto;gap:15px}
 .site-header.is-compact .sh-toggle{display:inline-flex}
}
@media(max-width:899px){
 .site-header{width:calc(100% - 40px);height:66px;top:16px;gap:20px;padding:0 12px 0 23px}
 .sh-actions{margin-left:auto;gap:18px}
 .sh-toggle{display:inline-flex}
 .sh-nav:not(.is-open){display:none}
}
@media(max-width:639px){
 .site-header{top:12px;height:60px;width:calc(100% - 24px);padding:0 9px 0 18px;gap:8px}
 .sh-brand{gap:6px;font-size:12px}
 .sh-brand img{width:24px;height:24px}
 .sh-actions{gap:8px}
 .site-header .sh-lang{gap:8px;font-size:11px}
 .sh-cta{display:none}
 .sh-nav.is-open>.sh-menu-cta{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:7px;padding:14px 18px;border-radius:999px;background:#1b0909;color:#fff;font-size:14px;font-weight:600}
 .sh-toggle{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){.site-header,.sh-cta,.sh-toggle i{transition:none}}
/* Las páginas para Google y el blog empiezan bajo la cabecera fija. */
body.seo .seo-main,body.blog .blog-main{padding-top:120px}
@media(max-width:899px){body.seo .seo-main,body.blog .blog-main{padding-top:104px}}
@media(max-width:639px){body.seo .seo-main,body.blog .blog-main{padding-top:92px}}
/* Ficha de evento: la card a la izquierda con la foto en vertical, como un cartel, y el nombre, el texto y
   Google Maps a la derecha, centrados en vertical respecto a la card (en el móvil, el texto primero). */
.seo-event-grid{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:clamp(36px,5vw,80px);align-items:center;margin-top:28px}
.seo .seo-event-card{position:static;padding:18px}
.seo .seo-event-card .seo-slider{aspect-ratio:2/3;margin:0 0 22px}
.seo .seo-event-card dl{padding:0 8px}
.seo .seo-event-card .tv-button{margin-top:22px}
.seo-event-copy h1{font-size:clamp(38px,4.4vw,64px)}
.seo-event-copy .seo-lead{margin-top:18px}
.seo-event-copy .seo-text{margin-top:22px}
.seo-event-copy .seo-maps-link{margin-top:24px}
@media(max-width:900px){.seo-event-grid{grid-template-columns:1fr;gap:28px}.seo-event-copy{order:-1}.seo .seo-event-card{max-width:440px;width:100%}}
/* Cards de eventos («Esta semana», eventos de una zona, más eventos): foto en vertical, como un cartel. */
.seo-card-event .seo-card-photo{aspect-ratio:2/3}
.seo-cards:has(.seo-card-event){grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
@media(max-width:600px){.seo-cards:has(.seo-card-event){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.seo-card-event .seo-card-body{padding:12px 12px 14px}.seo-card-event .seo-card-body strong{font-size:17px}.seo-card-event .seo-card-body span:last-child{font-size:13px}}
/* Títulos sobre la foto (colecciones, zonas…): en semibold y con una sombra suave, para que se lean bien. */
.hf-over{background:linear-gradient(0deg,rgba(10,10,8,.82),rgba(10,10,8,.4) 55%,transparent)}
.hf-over strong{font-weight:600;letter-spacing:-.01em;text-shadow:0 1px 14px rgba(0,0,0,.28)}
.hf-over span{font-weight:500;opacity:.92}
/* Ficha de sitio: la columna de fotos y horario empieza a la altura del nombre (bajo la cabecera fija al bajar). */
.seo-place-columns{margin-top:8px}
.seo-place-main{min-width:0}
.seo-place-main .seo-text{margin-top:36px}
.seo .seo-place-columns .seo-facts{top:112px}
/* Ficha de evento: el texto arriba, alineado con la card, y debajo 3 sitios cercanos en lista. */
.seo-event-grid{align-items:start}
.seo-nearby{margin-top:44px}
.seo-nearby h2{font-family:var(--heading-font);font-size:clamp(22px,2vw,28px);line-height:1.15;margin-bottom:14px}
.seo-nearby ul{list-style:none;margin:0;padding:0;border-top:1px solid #ececec}
.seo-nearby li a{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #ececec}
.seo-nearby li a>img,.seo-nearby-blank{width:64px;height:64px;flex:none;border-radius:12px;object-fit:cover;background:#ebe9e3}
.seo-nearby li a>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.seo-nearby .eyebrow{font-size:10px;color:var(--muted);margin:0}
.seo-nearby strong{font-family:var(--heading-font);font-weight:400;font-size:19px;line-height:1.2}
.seo-nearby li a>span:nth-child(2)>span:last-child:not(.eyebrow){font-size:14px;color:#4f5149;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seo-nearby li a>span:last-child{flex:none;color:var(--muted);transition:transform .25s}
.seo-nearby li a:hover strong{text-decoration:underline;text-underline-offset:3px}
.seo-nearby li a:hover>span:last-child{transform:translate(2px,-2px)}
@media(max-width:900px){.seo-event-grid{grid-template-columns:minmax(0,1fr)}}
/* Experience pages (/<lang>/experiences/<slug>/, scripts/seo-experiences.mjs): a place page's layout (text on the left,
   the card with photos and facts on the right), and GetYourGuide's availability widget in a panel from the right
   (from the bottom on a phone), public/website/gyg-panel.js. */
.seo .seo-exp .seo-facts .tv-button{margin-top:22px}
.seo-exp .exp-price{font-family:var(--heading-font);font-weight:400;font-size:26px;line-height:1.1}
.seo-exp .exp-source{color:var(--muted);font-size:13px}
.seo-exp .exp-via{margin:10px 0 0;text-align:center;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.seo-exp .exp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:28px}
.seo-exp .exp-actions .tv-button{background:var(--dark);color:#fff;border-color:var(--dark);text-decoration:none;border-radius:999px}
.seo-exp .exp-actions .tv-button:hover{background:#000}
.seo-exp .exp-actions .seo-maps-link{margin:0}
.seo .seo-exp .seo-facts .tv-button{border-radius:999px}
.exp-commission{margin-top:22px;font-size:13px;line-height:1.5;color:var(--muted)}.exp-commission a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.seo-card-exp .seo-card-body>span:last-child{color:var(--dark);font-weight:500}
html.gyg-lock{overflow:hidden}
.gyg-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100vw);max-width:none;height:100dvh;max-height:none;padding:0;border:0;background:#fff;color:var(--dark);box-shadow:-24px 0 60px -20px rgba(0,0,0,.35);animation:gyg-in .44s cubic-bezier(.32,.72,0,1)}
.gyg-panel::backdrop{background:rgba(20,16,14,.4);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:gyg-fade .3s ease}
.gyg-panel.is-closing{animation:gyg-out .32s cubic-bezier(.32,.72,0,1) forwards}
.gyg-panel.is-closing::backdrop{animation:gyg-fade-out .32s ease forwards}
@keyframes gyg-in{from{transform:translateX(100%)}}
@keyframes gyg-out{to{transform:translateX(100%)}}
@keyframes gyg-up{from{transform:translateY(100%)}}
@keyframes gyg-down{to{transform:translateY(100%)}}
@keyframes gyg-fade{from{opacity:0}}
@keyframes gyg-fade-out{to{opacity:0}}
.gyg-panel-inner{display:flex;flex-direction:column;height:100%;max-height:inherit}
.gyg-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px 24px 10px}
.gyg-panel-head .eyebrow{margin:0 0 6px;font-size:11px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gyg-panel-head h2{font-family:var(--heading-font);font-weight:400;font-size:28px;line-height:1.12;margin:0}
.gyg-panel-close{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:#f2f1ef;color:var(--dark);font-size:24px;line-height:1;cursor:pointer}
.gyg-panel-close:hover{background:#e7e5e1}
.gyg-panel-frame{flex:1;min-height:0;overflow-y:auto;padding:6px 18px}
.gyg-panel-frame iframe{display:block;width:100%;border:0}
.gyg-panel-foot{padding:16px 24px calc(20px + env(safe-area-inset-bottom));border-top:1px solid #ececec;font-size:14px;line-height:1.45;color:#4f5149}
.gyg-panel-foot p{margin:0}
.gyg-panel-link{display:inline-flex;gap:6px;margin:10px 0;font-weight:600;color:var(--dark);text-decoration:underline;text-underline-offset:3px}
.gyg-panel-small{font-size:12px;color:var(--muted)}
@media(max-width:640px){.gyg-panel{inset:auto 0 0 0;width:100vw;height:auto;max-height:92dvh;border-radius:24px 24px 0 0;box-shadow:0 -16px 40px -16px rgba(0,0,0,.35);animation-name:gyg-up}.gyg-panel.is-closing{animation-name:gyg-down}.gyg-panel-head{padding:22px 20px 8px}.gyg-panel-head h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.gyg-panel,.gyg-panel.is-closing,.gyg-panel::backdrop{animation:none}}
/* Normas: la situación de hoy en una card (31-10). */
.seo .seo-status{margin:24px 0 12px;padding:20px 22px;background:#fff;border:1px solid #ececec;border-radius:16px;box-shadow:0 4px 16px rgba(27,9,9,.05);font-size:15px;line-height:1.55}
.seo .seo-status .eyebrow{color:#ad6954;margin-bottom:8px}.seo .seo-status p{margin:0}.seo .seo-status p+p{margin-top:8px}
/* Travelers' home on a computer: the hero card is «¿Qué hacemos hoy?» (public/website/day-plan.js, from
   src/website/day-plan-hero.ts): the site's claim small at the top, the plan's texts on the left and its stops on
   the right, over the photo of the first stop. Only when the plan is ready (.has-plan); on a phone, the photo. */
.tv-plan[hidden]{display:none}
.tv-hero.has-plan{justify-content:space-between;padding-bottom:clamp(40px,7svh,84px)}
/* On a computer the card has no photo (1-11, at the user's request: they don't hold up at full screen): the espresso
   of the business landing's header (.gs-hero in BusinessSales.css) and 20% lower, from the start, not only once the
   plan is ready, so nothing jumps. */
/* 2-11, the user's request: the plan generator left the hero; on a computer it is the photo again, 80% of the screen. */
@media(hover:hover) and (pointer:fine) and (min-width:1024px){.travel .tv-hero{min-height:calc((100svh - 2*clamp(10px,1.2vw,18px)) * .8)}}
.tv-hero.has-plan .tv-kicker,.tv-hero.has-plan .tv-lead,.tv-hero.has-plan .tv-actions{display:none}
/* While the plan loads, the card stays empty (no flash of the old hero) and the plan fades in (1-11, the user's
   request); if it never comes, the old texts fade in after 3.5 s. */
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
.travel .tv-hero.has-plan .tv-hero-copy>*,.travel .tv-hero.has-plan .tv-plan{animation:tv-fade-in .7s cubic-bezier(.32,.72,0,1) backwards}
.travel .tv-hero.has-plan .tv-plan{animation-delay:.08s}
}
@keyframes tv-late{from{opacity:0}}
@keyframes tv-fade-in{from{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){.travel .tv-hero.has-plan .tv-hero-copy>*,.travel .tv-hero.has-plan .tv-plan{animation-duration:.01s}}
.tv-hero.has-plan h1{font-family:var(--text-font);font-size:15px;font-weight:500;line-height:1.4;letter-spacing:0;opacity:.85}
.tv-plan{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:clamp(32px,4vw,72px);align-items:end;margin-top:32px;transition:opacity .22s ease,transform .22s ease}
.tv-plan-text{align-self:start}
.tv-plan.is-leaving{opacity:0;transform:translateY(8px)}
.travel .tv-hero.has-plan .tv-plan>*{opacity:calc(1 - var(--hero-p,0) * 1.4)}
.tv-plan .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tv-plan svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tv-plan-kicker{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:12px;font-weight:600;letter-spacing:.105em;text-transform:uppercase}
.tv-plan-kicker span+span{opacity:.72;font-weight:500}
.tv-plan-title{font-family:var(--heading-font);font-size:clamp(40px,4.3vw,76px);line-height:1.03;letter-spacing:var(--heading-tracking);margin-top:18px;text-wrap:balance}
.tv-plan-sub{font-size:clamp(16px,1.25vw,19px);font-weight:500;line-height:1.45;margin-top:16px;max-width:34em;text-wrap:pretty}
.tv-plan-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.tv-plan-chips li{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:13px;font-weight:500}
.tv-plan-why{font-size:15px;line-height:1.5;margin-top:16px;max-width:36em;opacity:.86;text-wrap:pretty}
.tv-plan-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.tv-plan-actions .tv-button svg{width:17px;height:17px}
/* The stops as a timeline (1-11): the hour on the left, a dot on the line, and the place as a row (photo, kind,
   name in semibold, tip); the way from the previous stop sits on the line, above it. */
.tv-plan-stops{--tl-time:64px;--tl-rail:34px;--tl-photo:104px;--tl-leg:46px;display:flex;flex-direction:column;list-style:none;margin:0;padding:0;max-width:640px;justify-self:end;width:100%}
.tv-stop{position:relative;display:grid;grid-template-columns:var(--tl-time) var(--tl-rail) minmax(0,1fr);align-items:center;min-width:0}
.tv-stop+.tv-stop{padding-top:var(--tl-leg)}
.tv-stop::before{content:"";position:absolute;left:calc(var(--tl-time) + var(--tl-rail) / 2 - .75px);top:0;bottom:0;width:1.5px;background:rgba(255,255,255,.38)}
.tv-stop:first-child::before{top:calc(var(--tl-photo) / 2)}
.tv-stop:last-child::before{bottom:auto;height:calc(var(--tl-leg) + var(--tl-photo) / 2)}
.tv-stop:first-child:last-child::before{display:none}
.tv-stop-time{grid-column:1;position:relative;text-align:right;font-family:var(--heading-font);font-size:clamp(19px,1.45vw,23px);font-weight:600;letter-spacing:var(--subheading-tracking);font-variant-numeric:tabular-nums}
.tv-stop-time::after{content:"";position:absolute;top:50%;right:calc(var(--tl-rail) / -2 - 6px);width:12px;height:12px;margin-top:-6px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.22)}
.tv-stop>a{grid-column:3;display:flex;align-items:center;gap:20px;min-width:0}
.tv-stop-photo{position:relative;display:block;flex:none;width:var(--tl-photo);height:var(--tl-photo);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.08);box-shadow:0 14px 30px rgba(0,0,0,.3)}
.tv-stop-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.6,.3,1)}
.tv-stop>a:hover .tv-stop-photo img{transform:scale(1.06)}
.tv-stop-leg{position:absolute;top:calc(var(--tl-leg) / 2);left:calc(var(--tl-time) + var(--tl-rail) + 2px);transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;opacity:.78;white-space:nowrap}
.tv-stop-leg svg{width:14px;height:14px}
.tv-stop-body{display:block;min-width:0}
.tv-stop-kind{display:block;font-size:11px;font-weight:600;letter-spacing:.105em;text-transform:uppercase;opacity:.72}
.tv-stop-body strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--heading-font);font-size:clamp(20px,1.6vw,26px);font-weight:600;line-height:1.15;letter-spacing:var(--subheading-tracking);margin-top:5px}
.tv-stop-tip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.45;margin-top:6px;opacity:.82}
.tv-stop>a:hover strong{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.tv-plan-qr svg{display:block;width:220px;height:220px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}
@media(max-width:1180px){.tv-plan{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px}.tv-plan-stops{--tl-time:56px;--tl-rail:28px;--tl-photo:88px;--tl-leg:40px}.tv-stop>a{gap:16px}.tv-plan-title{font-size:clamp(34px,4vw,48px)}.tv-plan-why{font-size:14px}}
@media(prefers-reduced-motion:reduce){.tv-plan,.tv-stop-photo img{transition:none}}
/* «Estado del mar ahora» on beach and cove pages (public/website/sea-state.js), like the app's BeachSeaState chips. */
.sea-state{margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid #ececec}
.sea-title{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.sea-chips{display:flex;flex-wrap:wrap;gap:8px}
.sea-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid #e5e5e5;border-radius:999px;padding:6px 12px;font-size:13px;line-height:1.2;background:#fff;color:#1B0909}
.sea-chip svg{flex:none}
.sea-calm{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;font-weight:600}
.sea-small{background:#f0f9ff;color:#075985;border-color:#bae6fd;font-weight:600}
.sea-moderate{background:#fffbeb;color:#92400e;border-color:#fde68a;font-weight:600}
.sea-rough{background:#fff7ed;color:#9a3412;border-color:#fed7aa;font-weight:600}
.sea-very_rough{background:#fef2f2;color:#991b1b;border-color:#fecaca;font-weight:600}
.sea-source{margin:10px 0 0;font-size:12px;color:#6b6b6b}
.sea-state.is-loading .sea-chip{width:96px;height:29px;border:0;background:linear-gradient(90deg,#f1f1f1 25%,#e8e8e8 50%,#f1f1f1 75%);background-size:200% 100%;animation:sea-shimmer 1.4s ease-in-out infinite}
.sea-state.is-loading .sea-chip:first-child{width:120px}
@keyframes sea-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.sea-state.is-loading .sea-chip{animation:none}}
/* Area pages: «Market day» as a week strip (Mon–Sun, market days dark) with the name and hours below. */
.seo-markets{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:18px}
.seo-markets li{display:grid;gap:6px}.seo-markets li+li{padding-top:18px;border-top:1px solid #ececec}
.seo-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:300px;margin-bottom:6px}
.seo-week span{display:flex;align-items:center;justify-content:center;height:34px;border-radius:9px;background:#f4f3f1;color:#a19c96;font-size:12px;font-weight:500}
.seo-week span.is-on{background:var(--dark);color:#fff}
.seo-markets a{font-weight:500;line-height:1.35}
.seo-market-when{font-size:14px;color:var(--muted)}
/* Miniaturas sobre la foto (fichas de sitio y de experiencia), como en la app (DetailHeader): abajo a la izquierda,
   en una píldora oscura translúcida; la activa con un aro blanco. Las pone photoSlider en build-seo-pages.mjs. */
.seo-slider.has-thumbs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:96px;background:linear-gradient(0deg,rgba(0,0,0,.3),transparent);pointer-events:none;z-index:1}
.seo-thumbs{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:8px;border-radius:16px;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.seo-thumbs button{position:relative;width:40px;height:40px;padding:0;border:0;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.2);cursor:pointer;opacity:.8;transition:opacity .2s,transform .2s,box-shadow .2s}
.seo-thumbs button:hover{opacity:1}
.seo-thumbs button.is-on{opacity:1;transform:scale(1.05);box-shadow:0 0 0 2px #fff}
.seo-thumbs button img{width:100%;height:100%;object-fit:cover;display:block}
.seo-thumbs .seo-thumbs-more{color:#fff;font:600 12px/1 var(--text-font);opacity:1}
.seo-thumbs .seo-thumbs-more:hover{background:rgba(255,255,255,.3)}
.seo-thumbs button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:600px){.seo-thumbs{padding:6px;gap:5px}.seo-thumbs button{width:36px;height:36px;border-radius:10px}}
/* Bottom row on the photo: thumbnails on the left and, on the same line, who took the photo on screen (as the app's DetailHeader, 2-11). */
.seo-photo-row{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}
.seo-photo-row>*{pointer-events:auto}
.seo-photo-credit{display:none;margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:rgba(255,255,255,.92);font:500 12px/1.4 var(--text-font);text-decoration:none}
.seo-photo-credit.is-on{display:block}.seo-photo-credit[hidden]{display:none}
.seo-photo-row .seo-photo-credit{text-decoration:none}
a.seo-photo-credit:hover{background:rgba(0,0,0,.5);color:#fff}
@media(max-width:600px){.seo-photo-row{left:12px;right:12px;bottom:12px;gap:8px}.seo-photo-credit{font-size:11px;padding:3px 8px}}
/* Ficha de sitio: la card de datos con las filas de la app (DetailRow): icono en un cuadrado gris, etiqueta y valor; tipo, nota, zona, dirección con «Copiar», horario, teléfono, precio y web (scripts/seo-place-facts.mjs). */
.pf-rows{list-style:none;margin:2px 0 0;padding:0}
.pf-rows>li{position:relative}
.pf-rows>li+li::before{content:"";position:absolute;left:54px;right:0;top:0;height:1px;background:#efeee9}
.seo-facts a.pf-row,.pf-row{display:flex;align-items:center;gap:14px;padding:13px 0;color:inherit;text-decoration:none}
.pf-row.pf-top{align-items:flex-start}
.pf-ico{flex:none;width:40px;height:40px;border-radius:12px;background:#f3f2ef;color:#1b0909;display:grid;place-items:center;transition:background .2s}
.pf-ico svg{width:20px;height:20px}
.pf-kind .pf-ico{background:#1b0909;color:#fff}
.pf-rating .pf-ico{color:#1b0909}
.pf-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:1px}
.pf-label{font-size:12px;line-height:1.3;color:var(--muted)}
.pf-value{font-size:15px;line-height:1.4;font-weight:600;color:#1b0909;overflow-wrap:anywhere}
.pf-sub{font-weight:400;color:var(--muted)}
.pf-arrow{flex:none;width:18px;height:18px;color:var(--muted);transition:transform .2s,color .2s}
a.pf-row:hover .pf-ico{background:#e8e6e1}
a.pf-row:hover .pf-arrow{color:#1b0909;transform:translateX(2px)}
a.pf-row:hover .pf-value{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.pf-copy{flex:none;align-self:center;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;background:#f3f2ef;color:#1b0909;font-size:13px;font-weight:600;line-height:1;transition:background .2s,color .2s}
.pf-copy:hover{background:#e8e6e1}
.pf-copy svg{width:15px;height:15px}
.pf-copy .pf-ok,.pf-copy.is-done .pf-cp{display:none}
.pf-copy.is-done .pf-ok{display:block}
.pf-copy.is-done{background:#e6f3ea;color:#1d6b43}
.pf-hours{border-collapse:collapse;width:100%;margin-top:4px;font-size:14px}
.pf-hours th{text-align:left;font-weight:400;color:var(--muted);padding:3px 12px 3px 0;vertical-align:top}
.pf-hours td{text-align:right;padding:3px 0;font-weight:600;color:#1b0909;font-variant-numeric:tabular-nums}
.seo-facts .pf-rows+.tv-button{margin-top:20px}
.pf-top .pf-value{font-weight:500}
@media(max-width:600px){.pf-copy{width:36px;height:36px;padding:0;justify-content:center}.pf-copy .pf-copy-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
/* «Un día en <zona>» (/<lang>/day-trips/<zona>/, scripts/seo-day-trips.mjs): each part of the day as a timeline,
   the time on the left, a dot on the line and the stop as a row with its photo; «Guardar el plan en la app» below. */
.dt-part{margin-top:clamp(40px,5vw,64px);max-width:860px}
.dt-head h2{font-family:var(--heading-font);font-size:clamp(26px,2.6vw,36px);line-height:1.15}
.dt-head>p{margin-top:8px;color:#4f5149;font-size:16px}
.dt-chips{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dt-chips li{padding:6px 12px;border-radius:999px;background:#f2f1ee;font-size:13px;color:#3d3f38}
.dt-stops{list-style:none;margin:26px 0 0;padding:0;position:relative}
.dt-stops::before{content:"";position:absolute;left:61px;top:10px;bottom:24px;border-left:1px dashed #cfcfc6}
.dt-stop{position:relative;padding-bottom:22px}
.dt-leg{margin:0 0 12px 80px;font-size:13px;color:var(--muted)}
.dt-row{display:grid;grid-template-columns:48px 1fr;gap:32px;align-items:start}
.dt-time{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;padding-top:6px;position:relative}
.dt-time::after{content:"";position:absolute;left:58px;top:12px;width:9px;height:9px;border-radius:50%;background:var(--dark);box-shadow:0 0 0 4px #fff}
.dt-place{display:flex;align-items:center;gap:14px}
.dt-photo{flex:none;width:72px;height:72px;border-radius:12px;overflow:hidden;background:#eee}
.dt-photo img{width:100%;height:100%;object-fit:cover}
.dt-place .eyebrow{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.dt-place strong{font-family:var(--heading-font);font-weight:600;font-size:20px;line-height:1.2}
.dt-place:hover strong{text-decoration:underline;text-underline-offset:3px}
.dt-body>p{margin-top:10px;font-size:15px;color:#4f5149;line-height:1.55}
.dt-body>.dt-note{font-size:13px;color:#ad6954}
.dt-save{margin-top:8px;padding:20px 22px;border:1px solid #ececec;border-radius:16px;box-shadow:0 4px 16px rgba(27,9,9,.05);display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.dt-save .tv-button{background:var(--dark);color:#fff;border-color:var(--dark)}
.dt-save .tv-button:hover{background:#000}
.dt-save p{flex-basis:100%;font-size:13px;color:var(--muted)}
.dt-maps{font-size:14px;text-decoration:underline;text-underline-offset:3px}
.dt-qr{display:flex;justify-content:center}
@media(max-width:560px){.dt-row{grid-template-columns:42px 1fr;gap:22px}.dt-stops::before{left:51px}.dt-time::after{left:47px}.dt-leg{margin-left:64px}.dt-photo{width:60px;height:60px}.dt-place strong{font-size:18px}}
/* The header speaks like the Promotions posters (1-11, at the user's request: one identity for the posters and the
   website): the dark of the «Abrir la app» button (#1b0909) and the light grey of the «Monastery Morning» poster
   (#E6E6E6) as accent; two words of the title in it and the rest in white at half, like the posters' hidden phrases
   (toneWords in poster-palettes.ts). */
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
.travel .tv-hero.has-palette{--pc-accent:#e6e6e6}
.travel .tv-hero.has-plan{background:#1b0909}
.tv-hero.has-palette .tv-plan-title .is-tint{opacity:.5}
.tv-hero.has-palette .tv-plan-title .is-ink{color:var(--pc-accent);transition:color .5s cubic-bezier(.32,.72,0,1)}
.tv-hero.has-palette .tv-plan-kicker span:first-child{color:var(--pc-accent)}
.tv-hero.has-palette .tv-plan-chips li{background:rgba(255,255,255,.08);backdrop-filter:none;-webkit-backdrop-filter:none}
.tv-hero.has-palette .tv-plan-chips svg{color:var(--pc-accent)}
.tv-hero.has-palette .tv-plan-actions .tv-button{background:var(--pc-accent);color:#1b0909;border-color:var(--pc-accent)}
.tv-hero.has-palette .tv-plan-actions .tv-button:hover{opacity:.88}
.tv-hero.has-palette .tv-plan-actions .tv-button-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.tv-hero.has-palette .tv-plan-actions .tv-button-ghost:hover{border-color:#fff;opacity:1}
.tv-hero.has-palette .tv-stop::before{background:rgba(255,255,255,.22)}
.tv-hero.has-palette .tv-stop-time::after{background:var(--pc-accent);box-shadow:0 0 0 4px rgba(255,255,255,.1)}
.tv-hero.has-palette .tv-stop-kind{color:var(--pc-accent);opacity:1}
}
/* «Tu estancia» (1-11, at the user's request; src/website/stay.ts): the selector of the header, like a booking site's
   search (a white pill with the area, the dates and who you travel with), its days as tabs over the plan and its
   sections at the top of the feed (events on those dates, where to eat near the area). */
/* The stay bar is the home's top bar (1-11, the user's request; scripts/site-header.mjs with `stay`): only on the home,
   the links go to the menu. Area, arrival, departure, who you travel with; each opens its panel (.stay-panel). */
.sh-stay svg,.stay-panel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sh-stay{display:flex;align-items:center;flex:1 1 auto;min-width:0;max-width:760px;height:54px;margin:0 auto;padding:4px;border:1px solid #ebe6e1;border-radius:999px;background:#fff;box-shadow:0 2px 10px rgba(33,25,23,.06);font-family:var(--text-font);transition:height .3s cubic-bezier(.25,1,.5,1)}
.sh-stay-seg{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;flex:1 1 0;min-width:0;height:100%;padding:0 18px;border-radius:999px;text-align:left;transition:background .2s}
.sh-stay-seg+.sh-stay-seg::before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:1px;background:#e7e3df}
.sh-stay-seg:hover,.sh-stay-seg:focus-visible{background:#f3f1ee}
.sh-stay-seg:hover::before,.sh-stay-seg:hover+.sh-stay-seg::before,.sh-stay-go::before{display:none}
.sh-stay-area{flex-grow:1.35}
.sh-stay-label{font-size:10.5px;font-weight:600;line-height:1.2;letter-spacing:.07em;text-transform:uppercase;color:#7a716c;white-space:nowrap}
.sh-stay-value{max-width:100%;overflow:hidden;font-size:14px;font-weight:500;line-height:1.3;color:#1b0909;white-space:nowrap;text-overflow:ellipsis}
.sh-stay-value.is-empty{color:#a39a94}
.sh-stay-go{display:grid;place-items:center;flex:none;width:44px;height:44px;margin-left:4px;border-radius:50%;background:#1b0909;color:#fff;transition:background .2s,transform .2s}
.sh-stay-go:hover{background:#000;transform:scale(1.05)}
.sh-stay.is-saved .sh-stay-go{background:#f0eeeb;color:#1b0909}
.sh-stay.is-saved .sh-stay-go:hover{background:#e6e3df}
.sh-stay.is-saved .sh-stay-go svg{width:16px;height:16px}
@media(min-width:900px){
 .site-header.has-stay .sh-nav:not(.is-open),.site-header.has-stay .sh-actions .sh-lang{display:none}
 .site-header.has-stay .sh-toggle{display:inline-flex}
 .site-header.has-stay .sh-actions{margin-left:0;gap:12px}
 .site-header.has-stay .sh-nav.is-open>.sh-menu-langs{display:flex;gap:16px;padding:12px 17px 6px;font-size:13px;font-weight:600}
 .site-header.has-stay{width:min(1320px,calc(100% - 64px));gap:20px}
 /* On scroll it shrinks as before (1-11, the user's request), keeping only the dates, which are what matters. */
 .site-header.has-stay.is-compact{width:min(700px,calc(100% - 64px));gap:16px}
 .site-header.has-stay.is-compact .sh-stay{height:46px;max-width:300px}
 .site-header.has-stay.is-compact .sh-stay-label,.site-header.has-stay.is-compact .sh-stay-area,.site-header.has-stay.is-compact .sh-stay-style,.site-header.has-stay.is-compact .sh-stay-go{display:none}
 .site-header.has-stay.is-compact .sh-stay-seg{padding:0 16px;align-items:center}
 .site-header.has-stay.is-compact .sh-stay-from::after{content:"→";position:absolute;right:-6px;color:#a39a94;font-size:13px}
 .site-header.has-stay.is-compact .sh-stay-to::before,.site-header.has-stay.is-compact .sh-stay-from::before{display:none}
 .site-header.has-stay .sh-nav.is-open{left:auto;width:300px}
}
@media(min-width:900px) and (max-width:1180px){.site-header.has-stay .sh-brand span{display:none}.sh-stay-seg{padding:0 13px}}
/* On a phone there is no stay bar (1-11, the user's request: there the focus is getting the app). */
@media(max-width:899px){.sh-stay{display:none}}
/* Its panels: one <dialog>, a centred modal on a computer and a sheet from below on a phone. */
.stay-panel{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#1b0909;font-family:var(--text-font)}
.stay-panel[open]{display:flex;align-items:center;justify-content:center}
.stay-panel::backdrop{background:rgba(22,13,11,.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.sp-sheet{position:relative;display:flex;flex-direction:column;width:min(980px,calc(100% - 48px));max-height:min(840px,calc(100svh - 64px));overflow:hidden;border-radius:28px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.35);animation:sp-in .4s cubic-bezier(.32,.72,0,1)}
.stay-panel.is-dates .sp-sheet{width:min(780px,calc(100% - 48px))}
.stay-panel.is-style .sp-sheet{width:min(600px,calc(100% - 48px))}
@keyframes sp-in{from{opacity:0;transform:translateY(18px) scale(.98)}}
@keyframes sp-up{from{transform:translateY(100%)}}
.sp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 30px 18px}
.sp-head h2{font:600 27px/1.15 var(--heading-font);letter-spacing:-.01em}
.sp-head p{max-width:560px;margin-top:6px;font-size:14.5px;line-height:1.45;color:#7a716c}
.sp-close{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:#f3f1ee;color:#1b0909;transition:background .2s}
.sp-close:hover{background:#e8e4e0}
.sp-tools{display:flex;flex-direction:column;gap:12px;padding:0 30px 16px}
.sp-search{display:flex;align-items:center;gap:10px;height:50px;padding:0 18px;border-radius:999px;background:#f3f1ee;color:#7a716c}
.sp-search input{flex:1;min-width:0;border:0;background:transparent;font:500 15px/1 var(--text-font);color:#1b0909;outline:none}
.sp-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.sp-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.sp-chips::-webkit-scrollbar{display:none}
.sp-chips button{flex:none;padding:9px 15px;border:1px solid #e4dfda;border-radius:999px;font-size:13px;font-weight:500;color:#1b0909;transition:background .2s,border-color .2s,color .2s}
.sp-chips button:hover{border-color:#1b0909}
.sp-chips button.is-on{border-color:#1b0909;background:#1b0909;color:#fff}
.sp-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 30px 30px;overscroll-behavior:contain}
.sp-empty{padding:30px 0;color:#7a716c}
.sp-areas,.sp-styles{margin:0;padding:0;list-style:none}
.sp-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:20px 14px}
.sp-area{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;text-align:left;color:#1b0909}
.sp-area-photo{position:relative;display:block;aspect-ratio:4/3;margin-bottom:8px;overflow:hidden;border-radius:16px;background:#efebe7;transition:box-shadow .2s}
.sp-area-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.32,.72,0,1)}
.sp-area:hover .sp-area-photo img{transform:scale(1.05)}
.sp-area.is-on .sp-area-photo{box-shadow:0 0 0 3px #fff,0 0 0 5px #1b0909}
.sp-tick,.sp-style-tick{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#1b0909;color:#fff}
.sp-tick svg,.sp-style-tick svg{width:14px;height:14px;stroke-width:2.6}
.sp-area strong{font:600 15.5px/1.25 var(--heading-font)}
.sp-area>span:last-child{font-size:12.5px;color:#7a716c}
.sp-cal{position:relative}
.sp-months{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.sp-month h3{margin-bottom:10px;font:600 16px/40px var(--heading-font);text-align:center;text-transform:capitalize}
.sp-nav{position:absolute;top:0;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#1b0909;transition:background .2s}
.sp-nav:hover:not(:disabled){background:#f3f1ee}
.sp-nav:disabled{opacity:.25;cursor:default}
.sp-prev{left:0}.sp-next{right:0}
.sp-weekdays,.sp-days{display:grid;grid-template-columns:repeat(7,1fr)}
.sp-weekdays span{padding:6px 0;font-size:11px;font-weight:600;letter-spacing:.04em;text-align:center;text-transform:uppercase;color:#a39a94}
.sp-day{position:relative;z-index:0;height:46px;margin:1px 0;font:500 14.5px/1 var(--text-font);color:#1b0909}
.sp-day::after{content:"";position:absolute;top:1px;left:50%;z-index:-1;width:44px;height:44px;margin-left:-22px;border-radius:50%;transition:background .15s,box-shadow .15s}
.sp-day:not(:disabled):not(.is-from):not(.is-to):hover::after{box-shadow:inset 0 0 0 1.5px #1b0909}
.sp-day:disabled{color:#cdc6c0;cursor:default}
.sp-day.is-today::before{content:"";position:absolute;bottom:7px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.sp-day.is-in{background:#f3f1ee}
.sp-day.is-edge.is-from{background:linear-gradient(90deg,transparent 50%,#f3f1ee 50%)}
.sp-day.is-edge.is-to{background:linear-gradient(90deg,#f3f1ee 50%,transparent 50%)}
.sp-day.is-from,.sp-day.is-to{color:#fff;font-weight:600}
.sp-day.is-from::after,.sp-day.is-to::after{background:#1b0909}
.sp-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 30px;border-top:1px solid #efebe7}
.sp-sum{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:#7a716c}
.sp-sum strong{font:600 16px/1.3 var(--heading-font);color:#1b0909}
.sp-foot-actions{display:flex;align-items:center;gap:20px;margin-left:auto}
.sp-link{font-size:14px;font-weight:600;color:#1b0909;text-decoration:underline;text-underline-offset:3px}
.sp-primary{min-height:48px;padding:0 28px;border-radius:999px;background:#1b0909;color:#fff;font-size:15px;font-weight:600;transition:background .2s,opacity .2s}
.sp-primary:hover:not(:disabled){background:#000}
.sp-primary:disabled{opacity:.3;cursor:default}
.sp-note{font-size:12.5px;color:#a39a94}
.sp-styles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sp-style{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-height:158px;padding:18px;border:1.5px solid #e7e3df;border-radius:20px;text-align:left;color:#1b0909;transition:border-color .2s,box-shadow .2s}
.sp-style:hover{border-color:#b9b0a9}
.sp-style.is-on{border-color:#1b0909;box-shadow:inset 0 0 0 1px #1b0909}
.sp-style-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:auto;border-radius:50%;background:#f3f1ee;transition:background .2s,color .2s}
.sp-style-icon svg{width:22px;height:22px;stroke-width:1.8}
.sp-style.is-on .sp-style-icon{background:#1b0909;color:#fff}
.sp-style strong{margin-top:20px;font:600 17px/1.2 var(--heading-font)}
.sp-style>span:not([class]){font-size:13.5px;color:#7a716c}
@media(max-width:699px){
 .stay-panel[open]{align-items:flex-end}
 .sp-sheet,.stay-panel.is-dates .sp-sheet,.stay-panel.is-style .sp-sheet{width:100%;max-height:92svh;border-radius:26px 26px 0 0;animation:sp-up .45s cubic-bezier(.32,.72,0,1)}
 .sp-head{padding:22px 20px 14px}
 .sp-head h2{font-size:23px}
 .sp-head p{font-size:14px}
 .sp-tools{padding:0 20px 14px}
 .sp-body{padding:4px 20px 24px}
 .sp-areas{grid-template-columns:1fr 1fr;gap:16px 10px}
 .sp-months{grid-template-columns:1fr;gap:18px}
 .sp-day{height:44px}
 .sp-day::after{width:42px;height:42px;margin-left:-21px}
 .sp-foot{padding:14px 20px calc(14px + env(safe-area-inset-bottom))}
 .sp-foot .sp-note{display:none}
 .sp-style{min-height:140px;padding:16px}
}
@media(prefers-reduced-motion:reduce){.sp-sheet{animation:none}.sp-area-photo img,.sh-stay{transition:none}}
/* The days of the stay over the plan: a row of tabs, today marked. */
.tv-stay-days{display:flex;gap:6px;overflow-x:auto;margin:0 0 22px;padding-bottom:4px;scrollbar-width:none}
.tv-stay-days::-webkit-scrollbar{display:none}
.tv-stay-days button{flex:none;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-size:13px;font-weight:500;white-space:nowrap;transition:background .2s,color .2s}
.tv-stay-days button:hover{background:rgba(255,255,255,.16)}
.tv-stay-days button.is-on{background:var(--pc-accent,#e6e6e6);color:#1b0909}
.tv-stay-days b{font-weight:600}
/* The stay's sections at the top of the feed. */
.hf-stay{padding-bottom:8px}
.hf-stay-kicker{padding:0 var(--gutter);margin-bottom:18px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#7a716c}
.hf-stay-empty{padding:0 var(--gutter);color:#7a716c;font-size:15px}
/* Experiences index: the kinds as chips (1-11) */
.hf-chips.exp-kinds{padding:0;margin-top:22px}.exp-kind-sub{margin:-6px 0 22px;color:var(--muted);font-size:16px}.exp-kinds small{color:var(--muted);margin-left:4px}
/* Home feed on a computer: its own order (DESKTOP_ORDER in build-seo-pages.mjs; 2-11) */
@media(hover:hover) and (pointer:fine){.hf{display:flex;flex-direction:column}.hf>*{order:var(--o,99)}}
/* «Where to eat» of the home (2-11, like Marriott's deals cards): a masonry grid of 6, the area and the name on top of the photo, the local tip on hover; then «View all restaurants». */
.hf-eat-grid{list-style:none;margin:0;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(8,clamp(60px,5.6vw,96px));gap:clamp(16px,2vw,32px)}
.hf-eat-grid li:nth-child(1){grid-area:1/1/6/2}.hf-eat-grid li:nth-child(2){grid-area:6/1/9/2}.hf-eat-grid li:nth-child(3){grid-area:1/2/4/3}.hf-eat-grid li:nth-child(4){grid-area:4/2/9/3}.hf-eat-grid li:nth-child(5){grid-area:1/3/6/4}.hf-eat-grid li:nth-child(6){grid-area:6/3/9/4}.hf-eat-grid li:nth-child(n+7){display:none}
.hf-eat-grid a{position:relative;display:block;height:100%;overflow:hidden;border-radius:18px;background:#222;color:#fff;box-shadow:0 1px 3px rgba(27,9,9,.06),0 6px 20px rgba(27,9,9,.07);transition:box-shadow .35s}
.hf-eat-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.hf-eat-grid a::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(12,10,8,.72),rgba(12,10,8,.32) 38%,transparent 62%);transition:background .45s}
.hf-eat-text{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;padding:clamp(20px,2.4vw,38px)}
.hf-eat-kicker{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.hf-eat-kicker svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2}
.hf-eat-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:10px}
.hf-eat-title strong{font-family:var(--heading-font);font-weight:600;font-size:clamp(20px,1.9vw,30px);line-height:1.14;letter-spacing:var(--subheading-tracking);text-shadow:0 1px 12px rgba(0,0,0,.25)}
.hf-eat-title svg{width:22px;height:22px;flex:none;margin-top:4px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.hf-eat-tip{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s cubic-bezier(.2,.6,.3,1),opacity .35s}
.hf-eat-tip>span{overflow:hidden;font-size:16px;line-height:1.5;padding-top:14px;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical}
.hf-eat-grid a:hover{box-shadow:0 2px 6px rgba(27,9,9,.08),0 18px 44px rgba(27,9,9,.18)}
.hf-eat-grid a:hover img{transform:scale(1.06)}
.hf-eat-grid a:hover::before,.hf-eat-grid a:focus-visible::before{background:rgba(12,10,8,.62)}
.hf-eat-grid a:hover .hf-eat-tip,.hf-eat-grid a:focus-visible .hf-eat-tip{grid-template-rows:1fr;opacity:1}
.hf-eat-grid a:hover .hf-eat-title svg{transform:translateX(3px)}
.hf-eat-more{display:flex;justify-content:center;padding:clamp(24px,2.6vw,40px) var(--gutter) 0}
.hf-eat-more a{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;background:#1b0909;color:#fff;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s}
.hf-eat-more a:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(27,9,9,.22)}
@media(max-width:899px){.hf-eat-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(13,40px);gap:12px}
  .hf-eat-grid li:nth-child(1){grid-area:1/1/6/2}.hf-eat-grid li:nth-child(2){grid-area:1/2/4/3}.hf-eat-grid li:nth-child(3){grid-area:4/2/9/3}.hf-eat-grid li:nth-child(4){grid-area:6/1/9/2}.hf-eat-grid li:nth-child(5){grid-area:9/1/14/2}.hf-eat-grid li:nth-child(6){grid-area:9/2/14/3}
  .hf-eat-grid a{border-radius:14px}.hf-eat-text{padding:14px}.hf-eat-kicker{font-size:10px;letter-spacing:.1em}.hf-eat-kicker svg{width:13px;height:13px}.hf-eat-title{margin-top:6px;gap:8px}.hf-eat-title strong{font-size:17px}.hf-eat-title svg{width:16px;height:16px;margin-top:2px}.hf-eat-tip{display:none}}
/* The big slider of the boat trips (2-11, like Marriott's afternoon-tea slider): two wide cards, round dark arrows on the sides, dots below. */
.hf-big .hf-head{align-items:flex-start}
.hf-big-stage{position:relative;padding:0 var(--gutter)}
.hf-big .hf-track{list-style:none;margin:0;padding:0;display:flex;gap:clamp(18px,2vw,36px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.hf-big .hf-track::-webkit-scrollbar{display:none}
.hf-big .hf-track>li{transform:none!important;flex:0 0 calc((100% - clamp(18px,2vw,36px))/2);scroll-snap-align:start}
.hf-big-card a{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:18px;background:#222;color:#fff}
.hf-big-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.hf-big-card a:hover img{transform:scale(1.05)}
.hf-big-over{position:absolute;inset:auto 0 0 0;padding:90px clamp(20px,2.4vw,38px) clamp(20px,2.4vw,34px);background:linear-gradient(0deg,rgba(12,10,8,.72),rgba(12,10,8,.3) 60%,transparent)}
.hf-big-over .hf-eat-title{align-items:flex-end}.hf-big-over .hf-eat-title strong{font-size:clamp(22px,2.1vw,34px)}
.hf-big-card a:hover .hf-eat-title svg{transform:translateX(3px)}
.hf-big-facts{display:block;margin-top:6px;font-size:14px;opacity:.88}
.hf-big-stage>.hf-arrow{position:absolute;top:50%;z-index:3;width:56px;height:56px;margin-top:-28px;border:0;background:#1b0909;color:#fff;font-size:28px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.hf-big-stage>.hf-arrow[data-dir="-1"]{left:calc(var(--gutter) - 28px)}.hf-big-stage>.hf-arrow[data-dir="1"]{right:calc(var(--gutter) - 28px)}
.hf-big-stage>.hf-arrow:hover{background:#000;border:0}
.hf-dots{display:flex;justify-content:center;align-items:center;gap:10px;padding-top:22px}
.hf-dots button{width:8px;height:8px;padding:0;border-radius:50%;background:#bdbdbd;transition:transform .25s,background .25s}
.hf-dots button.on{background:#1b0909;transform:scale(1.7)}
/* «Explore by area» (2-11, like Marriott's «Explore Food + Drink Near London»): 9 wide cards on grey, photo on the left, a chevron. */
.hf-tiles{background:#f0f0f0;padding-top:clamp(40px,4.5vw,72px);margin-bottom:clamp(48px,5vw,80px)}
.hf-tiles h2 a{display:inline-flex;align-items:center;gap:12px}.hf-tiles h2 svg{width:.7em;height:.7em;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}.hf-tiles h2 a:hover svg{transform:translateX(4px)}
.hf-tile-grid{list-style:none;margin:0;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,28px) clamp(16px,2.2vw,40px)}
.hf-tile-grid a{display:flex;align-items:center;gap:clamp(16px,1.6vw,26px);height:clamp(110px,8.4vw,150px);padding-right:clamp(18px,2vw,30px);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 2px 10px rgba(27,9,9,.06);transition:box-shadow .3s,transform .3s}
.hf-tile-grid a:hover{box-shadow:0 10px 28px rgba(27,9,9,.12);transform:translateY(-2px)}
.hf-tile-photo{flex:none;height:100%;aspect-ratio:1;overflow:hidden}.hf-tile-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.3,1)}.hf-tile-grid a:hover .hf-tile-photo img{transform:scale(1.07)}
.hf-tile-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.hf-tile-body strong{font-family:var(--heading-font);font-weight:600;font-size:clamp(18px,1.6vw,24px);line-height:1.15;letter-spacing:var(--subheading-tracking)}
.hf-tile-body span{color:var(--muted);font-size:clamp(14px,1.1vw,17px)}
.hf-tile-grid a>svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}.hf-tile-grid a:hover>svg{transform:translateX(3px)}
@media(max-width:1100px){.hf-tile-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.hf-tile-grid{grid-template-columns:1fr;gap:12px}.hf-tile-grid li:nth-child(n+7){display:none}.hf-tile-grid a{height:96px}}
/* «Mallorca Guide» mega menu of the header (2-11, like Marriott's «Offers» menu; scripts/guide-menu.mjs): the lists by kind of place in three groups and, on the right, the app. Computer only. */
.sh-nav>.sh-mega-trigger{display:inline-flex;align-items:center;gap:4px}
.sh-mega-trigger svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.sh-mega-trigger[aria-expanded=true]{text-decoration:underline;text-underline-offset:5px}.sh-mega-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.sh-nav.is-open>.sh-mega-trigger svg{display:none}
.sh-mega{position:absolute;top:calc(100% + 12px);left:0;right:0;display:grid;grid-template-columns:1fr minmax(260px,340px);gap:clamp(28px,3.4vw,56px);padding:clamp(28px,3vw,44px) clamp(28px,3.4vw,52px) 60px;border:1px solid rgba(33,25,23,.06);border-radius:28px;background:#fff;color:#211917;box-shadow:0 24px 60px rgba(21,15,13,.18);font-family:var(--text-font);opacity:0;transform:translateY(-8px);transition:opacity .22s,transform .22s cubic-bezier(.2,.6,.3,1)}
.sh-mega.is-on{opacity:1;transform:none}
.sh-mega-lists{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 28px;align-content:start;padding-right:clamp(28px,3.4vw,56px);border-right:1px solid #e4e1dc}
.sh-mega-lists>div{display:flex;flex-direction:column}
.sh-mega-title{margin-bottom:10px;color:#8a857e;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.sh-mega-lists a{padding:9px 0;font-family:var(--heading-font);font-size:17px;font-weight:600;line-height:1.25}
.sh-mega-lists a:hover{text-decoration:underline;text-underline-offset:5px}
.sh-mega-more{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:18px;padding-top:20px;border-top:1px solid #eeebe6}
.sh-mega-more a{padding:0;font-family:var(--text-font);font-size:14px;font-weight:500;color:#5c574f}
.sh-mega-promo{display:flex;flex-direction:column;align-items:flex-start}
.sh-mega-promo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;margin-bottom:18px}
.sh-mega-promo-title{font-family:var(--heading-font);font-size:21px;font-weight:600;line-height:1.2;letter-spacing:var(--subheading-tracking)}
.sh-mega-promo p:not(.sh-mega-promo-title){margin-top:8px;color:#4f4a43;font-size:15px;line-height:1.5}
.sh-mega-cta{margin-top:18px;padding:11px 22px;border:1.5px solid #211917;border-radius:999px;font-size:15px;font-weight:600;transition:background .2s,color .2s}
.sh-mega-cta:hover{background:#1b0909;border-color:#1b0909;color:#fff!important}
.sh-mega-close{position:absolute;right:26px;bottom:18px;display:inline-flex;align-items:center;gap:8px;color:#6b665f;font-size:14px}
.sh-mega-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.sh-mega-close:hover{color:#211917}
@media(max-width:899px){.sh-mega{display:none!important}}
@media(prefers-reduced-motion:reduce){.sh-mega{transition:none}}
/* «A day in…» of the home (2-11, like Marriott's «Featured Hotel Offers»): the big slider with 4 square cards in view (2 on a tablet, 1.25 on a phone). */
.hf-big-4 .hf-track>li{flex-basis:calc((100% - 3 * clamp(18px,2vw,36px))/4)}
.hf-big-4 .hf-big-card a{aspect-ratio:1}
.hf-big-4 .hf-big-over{padding:80px clamp(18px,1.8vw,28px) clamp(18px,1.8vw,26px)}
.hf-big-4 .hf-big-over .hf-eat-title strong{font-size:clamp(19px,1.6vw,26px)}
.hf-big-4 .hf-big-stage>.hf-arrow[data-dir="-1"]{left:calc(var(--gutter) - 28px)}
@media(max-width:1100px){.hf-big-4 .hf-track>li{flex-basis:calc((100% - clamp(18px,2vw,36px))/2)}}
@media(max-width:699px){.hf-big-4 .hf-track{gap:12px;scroll-padding-left:var(--gutter);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)}.hf-big-4 .hf-track>li{flex-basis:78%}.hf-big-4 .hf-big-stage>.hf-arrow{display:none}.hf-big-4 .hf-big-over .hf-eat-title strong{font-size:20px}}
.hf-big-stage>.hf-arrow:disabled{opacity:0;pointer-events:none}
@media(max-width:699px){.hf-big-4 .hf-dots{display:none}}
/* «Workshops with locals» of the home (2-11, like Marriott's «Exceptional Stays, Exclusive Savings»): big title, line and «See more» on the left, the slider of square cards with a badge on the right. Computer only. */
.hf-big-side{display:grid;grid-template-columns:minmax(260px,.9fr) 2fr;column-gap:clamp(28px,3vw,56px);align-items:center}
.hf-big-side .hf-head{grid-row:1/3;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;margin:0;padding-right:0}
.hf-big-side .hf-head h2{font-size:clamp(38px,3.6vw,60px);line-height:1.05}
.hf-big-side .hf-head p{margin-top:18px;font-size:17px;line-height:1.5;color:var(--text);max-width:420px}
.hf-big-side .hf-more{font-size:16px;font-weight:600;margin:0}
.hf-big-side .hf-big-stage{padding-left:0}
.hf-big-side .hf-big-card a{aspect-ratio:1}
.hf-big-side .hf-big-stage>.hf-arrow[data-dir="-1"]{left:-28px}
.hf-big-badge{position:absolute;top:clamp(16px,1.6vw,26px);left:clamp(16px,1.6vw,26px);z-index:2;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;background:#E6E6E6;color:#1b0909;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.hf-big-badge svg{width:16px;height:16px;fill:currentColor}
@media(hover:hover) and (pointer:fine) and (min-width:1000px){.computer-only.hf-big-side{display:grid!important}}
@media(max-width:999px){.hf-big-side .hf-head{gap:12px;margin-bottom:22px;padding-right:var(--gutter)}.hf-big-side .hf-big-stage{padding-left:var(--gutter)}.hf-big-side .hf-big-stage>.hf-arrow[data-dir="-1"]{left:calc(var(--gutter) - 28px)}.hf-big-side .hf-head h2{font-size:clamp(28px,2.6vw,42px)}}
/* «Workshops with locals» at the size of Marriott's (2-11, the user's request: it was too big): two cards of ~320 px. */
.hf-big-side{--card:clamp(250px,21vw,330px);--gap:clamp(16px,1.6vw,24px);grid-template-columns:1fr auto}
.hf-big-side .hf-head h2{font-size:clamp(28px,2.5vw,40px);line-height:1.1}
.hf-big-side .hf-head p{margin-top:12px;font-size:15px;max-width:380px}
.hf-big-side .hf-head{gap:16px}
.hf-big-side .hf-more{font-size:15px}
.hf-big-side .hf-big-stage{width:calc(2 * var(--card) + var(--gap))}
.hf-big-side .hf-track{gap:var(--gap)}
.hf-big-side .hf-track>li{flex:0 0 var(--card)}
.hf-big-side .hf-big-over{padding:70px 20px 20px}
.hf-big-side .hf-big-over .hf-eat-title strong{font-size:clamp(17px,1.35vw,21px)}
.hf-big-side .hf-eat-kicker{font-size:11px}
.hf-big-side .hf-big-facts{font-size:13px}
.hf-big-side .hf-big-stage>.hf-arrow{width:46px;height:46px;margin-top:-23px;font-size:24px}
.hf-big-side .hf-big-stage>.hf-arrow[data-dir="-1"]{left:-23px}.hf-big-side .hf-big-stage>.hf-arrow[data-dir="1"]{right:-23px}
@media(min-width:1000px){.hf-big-side{--card:clamp(260px,24vw,380px);padding-right:var(--gutter);column-gap:clamp(32px,4vw,72px)}.hf-big-side .hf-big-stage{padding:0}}
/* «Food & wine» of the home (2-11, like Marriott's «Travel Packages and Hotel Promotions»): the big slider with 3 square cards in view. */
.hf-big-3 .hf-track>li{flex-basis:calc((100% - 2 * clamp(18px,2vw,36px))/3)}
.hf-big-3 .hf-big-card a{aspect-ratio:1}
.hf-big-3 .hf-big-over .hf-eat-title strong{font-size:clamp(19px,1.7vw,28px)}
/* Content width of 1140 px, like marriott.com (2-11, the user's request): on wide screens the side margin of every
   section (--gutter) grows so the content keeps 1140 px; the header's pill sticks out by its padding so the logo lines up. */
@media(min-width:1240px){
 body.travel,body.seo{--gutter:max(clamp(24px,4.3vw,84px),calc((100% - 1140px) / 2))}
 body.seo .seo-main{max-width:none}
 .site-header:not(.is-compact){width:min(1192px,calc(100% - 64px))}
}
@media(min-width:1000px){.hf-big-side{padding-left:var(--gutter)}.hf-big-side .hf-head{padding-left:0}}
/* With the 1140 px content, the sliders end at its edge too (they used to run to the screen's edge). */
@media(min-width:1240px){.hf-row:not(.hf-big) .hf-track{margin-inline:var(--gutter);padding-inline:0;scroll-padding:0}}
/* A more premium home (2-11, the user's request, like Marriott): more air between the sections on a computer. */
@media(min-width:1024px){body.travel .hf-row{padding-bottom:clamp(72px,6.5vw,112px)}body.travel .hf-head{margin-bottom:28px}body.travel .hf{padding-top:clamp(72px,7vw,120px)}}
.hf-big-4 .hf-big-facts{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* The big sliders on narrow screens: one card and a bit of the next, no arrows nor dots (the 3- and 2-card ones too). */
@media(max-width:1100px){.hf-big-3 .hf-track>li{flex-basis:calc((100% - clamp(18px,2vw,36px))/2)}}
@media(max-width:699px){
 .hf-big .hf-track{gap:12px;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);scroll-padding-left:var(--gutter)}
 .hf-big .hf-track>li,.hf-big-3 .hf-track>li,.hf-big-4 .hf-track>li{flex-basis:78%}
 .hf-big .hf-big-stage>.hf-arrow,.hf-big .hf-dots{display:none}
 .hf-big .hf-big-over .hf-eat-title strong{font-size:20px}
}
@media(max-width:999px){.hf-big-side .hf-big-stage{width:auto}.hf-big-side .hf-track>li{flex:0 0 calc((100% - var(--gap)) / 2)}}
@media(max-width:699px){.hf-big-side .hf-track>li{flex-basis:78%}}
/* The mega menu while closed: [hidden] has to win over its display:grid, and while it fades it takes no clicks (2-11: the
   invisible panel sat under the header and caught the clicks of the cards and «See all» scrolling under it). */
.sh-mega[hidden]{display:none!important}
.sh-mega:not(.is-on){pointer-events:none}
/* The side layout only from 1000 px: below, the title on top and the slider under it (Culture is also on the phone). */
@media(max-width:999px){.hf-big-side{display:block}}
/* Bigger titles in the side rows (2-11, the user's request): workshops, adventure, culture and food & wine. */
@media(min-width:1000px){.hf-big-side .hf-head h2{font-size:clamp(36px,3.3vw,52px);line-height:1.05;text-wrap:balance}}
/* «Before you go» (2-11, the user's request): the header's ghost button next to «Open the app», and its page's grid of guides. */
.sh-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border:1.5px solid #1b0909;border-radius:999px;color:#1b0909!important;font-size:14px;font-weight:600;line-height:1.25;white-space:nowrap;transition:background .2s,color .2s}
.sh-ghost:hover,.sh-ghost[aria-current=page]{background:#1b0909;color:#fff!important}
.sh-nav.is-open>.sh-menu-only{display:block}
@media(max-width:1279px){.sh-ghost{display:none}.sh-nav:not(.is-open)>.sh-menu-only{display:none}}
.site-header.is-compact .sh-ghost{display:none}
.bg-grid{list-style:none;margin:8px 0 72px;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px)}
.bg-grid a{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;border-radius:18px;background:#222;color:#fff;box-shadow:0 1px 3px rgba(27,9,9,.06),0 6px 20px rgba(27,9,9,.07)}
.bg-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.bg-grid a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,10,8,.78),rgba(12,10,8,.25) 55%,transparent)}
.bg-grid a:hover img{transform:scale(1.05)}
.bg-card-body{position:absolute;inset:auto 0 0 0;z-index:1;display:flex;flex-direction:column;gap:8px;padding:clamp(20px,2.4vw,34px)}
.bg-card-body strong{display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--heading-font);font-weight:600;font-size:clamp(22px,2.2vw,32px);line-height:1.12;letter-spacing:var(--subheading-tracking)}
.bg-card-body strong svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.bg-grid a:hover strong svg{transform:translateX(3px)}
.bg-card-body>span{font-size:15px;line-height:1.5;opacity:.9;max-width:34em}
@media(max-width:699px){.bg-grid{grid-template-columns:1fr}.bg-grid a{aspect-ratio:4/3}}
/* «Which beach today?» of the home (2-11): portrait cards with the sea right now on each (src/website/sea-state.ts). */
.hf-big-tall .hf-big-card a{aspect-ratio:3/4}
.hf-big-sea{position:absolute;top:clamp(12px,1.2vw,18px);left:clamp(12px,1.2vw,18px);right:clamp(12px,1.2vw,18px);z-index:2;pointer-events:none}
.sea-v-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding:0;border:0}
.sea-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:rgba(0,0,0,.42);color:#fff;font-size:12px;font-weight:500;letter-spacing:.01em;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sea-v-card.is-loading{display:none}
.sea-pill svg{flex:none;color:#fff}
.hf-head p.hf-water{display:flex;align-items:center;gap:10px;margin-top:14px;color:#1B0909}
.hf-water svg{flex:none}
.hf-water-text{display:flex;flex-direction:column;line-height:1.15}
.hf-water-text strong{font-family:var(--heading-font);font-size:clamp(22px,2vw,28px);font-weight:400}
.hf-water-text span{font-size:13px;color:var(--muted)}
/* Travelers' home: the hero photo's author, bottom right, like the credit of the app's details (DetailHeader). */
.tv-hero-credit{position:absolute;right:clamp(14px,1.6vw,26px);bottom:clamp(14px,1.6vw,26px);z-index:2;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:3px 10px;font-family:var(--text-font);font-size:11px;font-weight:500;line-height:1.4;color:rgba(255,255,255,.9);opacity:calc(1 - var(--hero-p,0) * 1.4)}.tv-hero-credit:hover{color:#fff;background:rgba(0,0,0,.5)}.tv-hero-credit[hidden]{display:none}
/* Place pages: the byline under the lead (build-seo-pages.mjs, BYLINE). */
body.seo .seo-byline{margin-top:14px}
/* Round buttons like the header's pills (2-11, the user's request): «Open the app» and «Before you go» in the hero. */
.tv-button{border-radius:999px}
/* «On the water» as a feature slider (2-11, the user's request, like Marriott's «Our heritage»): one experience at a
   time, text and «Book now» on the left, photo on the right, «‹ Previous · dots · Next ›» below (featSlider). */
.hf-feat .hf-track{list-style:none;margin:0 var(--gutter);padding:0;display:grid}
.hf-feat .hf-track>li{transform:none!important;grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
.hf-feat .hf-track:not(.js)>li:first-child,.hf-feat .hf-track>li.on{opacity:1;visibility:visible;transition:opacity .55s ease .3s,visibility 0s}
.hf-feat-slide{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:center}
.hf-feat-text{display:flex;flex-direction:column;align-items:flex-start;max-width:470px}
.hf-feat-kicker{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hf-feat-text h3{margin-top:14px;font-family:var(--heading-font);font-size:clamp(28px,2.6vw,42px);line-height:1.1;letter-spacing:var(--heading-tracking);text-wrap:balance}
.hf-feat-text h3 a{color:inherit;text-decoration:none}
.hf-feat-text p{margin-top:18px;font-size:16px;line-height:1.6;color:#555;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.hf-feat-facts{margin-top:16px;font-size:15px;font-weight:600;color:#1b0909}
.hf-feat-cta{margin-top:26px;display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;background:#1b0909;color:#fff;font-size:15px;font-weight:600;text-decoration:none;transition:background .2s}
.hf-feat-cta:hover{background:#000}.hf-feat-cta span{transition:transform .2s}.hf-feat-cta:hover span{transform:translateX(3px)}
.hf-feat-photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:18px;background:#222}
.hf-feat-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.hf-feat-photo:hover img{transform:scale(1.04)}
.hf-feat-nav{display:flex;justify-content:center;align-items:center;gap:28px;padding-top:30px}
.hf-feat-nav .hf-dots{padding-top:0}
.hf-feat-btn{border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-size:16px;color:#1b0909;padding:6px 2px;transition:opacity .2s}
.hf-feat-btn span{font-size:24px;line-height:1}
.hf-feat-btn:hover{text-decoration:underline;text-underline-offset:4px}
.hf-feat-btn:disabled{opacity:.35;pointer-events:none}

/* Getting there on a place page (2-11): public transport and parking, as rows like the facts card, before «Nearby». */
.seo-access{margin-top:44px}
.seo-access h2{font-family:var(--heading-font);font-size:clamp(22px,2vw,28px);line-height:1.15;margin-bottom:6px}
.seo-access .pf-rows{border-bottom:1px solid #ececec}
.seo-access a.pf-row{color:inherit;text-decoration:none}
.pf-line{font-size:14px;line-height:1.4;color:var(--muted)}
.pf-tag{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:999px;background:#f3f2ef;color:#4f5149;font-size:11px;font-weight:600;line-height:1.4;vertical-align:1px}
.pf-tag.is-main{background:#e6f3ea;color:#1d6b43}
.seo-access+.seo-nearby{margin-top:44px}
/* Guides index (2-11, the user's request): the home's «Where to eat» masonry, for every guide with a category.
   The home's grid has 6 fixed slots; here a 3-column masonry (2 on the phone) of tall and short cards that repeats. */
.hf-eat-grid.seo-guide-grid{display:block;columns:3;column-gap:clamp(16px,2vw,32px);padding:0;grid-template-rows:none}
.seo-guide-grid li{display:block!important;grid-area:auto!important;break-inside:avoid;margin:0 0 clamp(16px,2vw,32px);height:clamp(220px,19vw,330px)}
.seo-guide-grid li:nth-child(4n+1),.seo-guide-grid li:nth-child(4n+4){height:clamp(340px,31vw,540px)}
@media(max-width:899px){.hf-eat-grid.seo-guide-grid{columns:2;column-gap:12px}.seo-guide-grid li{margin-bottom:12px;height:150px}.seo-guide-grid li:nth-child(4n+1),.seo-guide-grid li:nth-child(4n+4){height:230px}}
.seo-guide-grid .hf-eat-tip>span{-webkit-line-clamp:3}.seo-guide-grid li:nth-child(4n+1) .hf-eat-tip>span,.seo-guide-grid li:nth-child(4n+4) .hf-eat-tip>span{-webkit-line-clamp:8}
/* Guides index by theme (2-11): centred title and short lead above each grid */
.seo-guide-group{margin-top:clamp(40px,6vw,88px)}
.seo-guide-group:first-child{margin-top:clamp(16px,2vw,32px)}
.seo-guide-head{max-width:640px;margin:0 auto clamp(20px,2.6vw,36px);padding:0 var(--gutter,16px);text-align:center}
.seo-guide-head h2{margin:0 0 10px;font-size:clamp(28px,3.4vw,44px);line-height:1.1}
.seo-guide-head p{margin:0;color:#6b6460;font-size:clamp(15px,1.2vw,17px);line-height:1.55}
/* «¿Qué hacer hoy en Mallorca?» en la portada (2-11): las cards de «Esta semana» (.seo-card-event) en un slider; 4 a la vista en un ordenador y las flechas solo con más de 4 (.hf-few). */
.hf-today .hf-track{gap:18px;padding-top:6px;padding-bottom:22px}
.hf-today .hf-track>.seo-card{flex:0 0 min(64vw,250px);scroll-snap-align:start}
@media(min-width:900px){.hf-today .hf-track>.seo-card{flex-basis:calc((100% - 54px)/4)}}
.hf-today .seo-card a{border:0;border-radius:16px;box-shadow:0 1px 3px rgba(27,9,9,.06),0 4px 16px rgba(27,9,9,.06);transition:box-shadow .25s,transform .25s;color:inherit;text-decoration:none}
.hf-today .seo-card a:hover{box-shadow:0 2px 6px rgba(27,9,9,.06),0 16px 40px rgba(27,9,9,.12);transform:translateY(-3px)}
.hf-today .seo-card-photo{border-radius:16px 16px 0 0;aspect-ratio:2/3}
.hf-today .seo-card-photo img{transition:transform .9s cubic-bezier(.2,.6,.3,1)}
.hf-today .seo-card a:hover .seo-card-photo img{transform:scale(1.04)}
.hf-today .seo-card-body .eyebrow{text-transform:uppercase;letter-spacing:.12em}
.hf-few .hf-arrow{display:none!important}
@media(prefers-reduced-motion:reduce){.hf-today .seo-card a,.hf-today .seo-card-photo img{transition:none;transform:none}}
/* «Otra guía que nos gusta» (2-11, petición de la usuaria: destacarlo como card) */
.seo-partner{background:oklch(0.955 0.028 198);border-radius:24px;padding:clamp(24px,3.2vw,44px) clamp(22px,3.6vw,52px)}
.seo-partner h2{font-size:clamp(22px,2.2vw,32px);margin-bottom:12px}
.seo-partner p{margin:0;max-width:760px;font-size:clamp(16px,1.3vw,19px);line-height:1.55}
.seo-partner p a{font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;color:inherit}
.seo-partner p a:hover{text-decoration-thickness:2.5px}
/* «Mapa de las zonas» de /<idioma>/places/ (2-11, petición de la usuaria: el mapa de zonas de la app; scripts/seo-area-map.mjs) */
.seo-amap{margin-top:clamp(36px,4vw,56px)}
.seo-amap-head{margin-bottom:22px}.seo-amap-head h2{font-size:clamp(28px,3vw,44px)}.seo-amap-head p{color:var(--muted);margin-top:8px}
.seo-amap-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(20px,2.4vw,36px);align-items:start}
.seo-amap-map{margin:0;background:#e6ebe7;border-radius:24px;overflow:hidden}
.seo-amap-canvas{position:relative;aspect-ratio:6/5;width:100%}
.seo-amap-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.seo-amap-island{fill:#c4d1c8;stroke:#92a99a;stroke-width:1}
.seo-amap-canvas text{fill:#211917;font-size:14px;font-family:var(--text-font)}
.seo-amap-canvas g line{stroke:#688573;stroke-width:1.5;transition:stroke .2s}.seo-amap-canvas g circle{fill:#211917;transition:r .2s}
.seo-amap-canvas g.is-on line{stroke:#211917;stroke-width:2}.seo-amap-canvas g.is-on circle{r:4.5}
.seo-amap-pin{position:absolute;width:34px;height:34px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;z-index:1}
.seo-amap-pin:hover,.seo-amap-pin:focus-visible{z-index:3}.seo-amap-pin.is-on{z-index:2}
.seo-amap-dot{width:14px;height:14px;border-radius:50%;background:#688573;border:2px solid #fff;box-shadow:0 1px 4px rgba(33,25,23,.25);transition:transform .2s,background .2s}
.seo-amap-pin:hover .seo-amap-dot{transform:scale(1.25);background:#211917}
.seo-amap-pin.is-on .seo-amap-dot{width:20px;height:20px;background:#211917;box-shadow:0 0 0 5px rgba(33,25,23,.15)}
.seo-amap-tag{position:absolute;left:calc(100% - 4px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#fff;color:#211917;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;box-shadow:0 4px 14px rgba(33,25,23,.14);opacity:0;pointer-events:none;transition:opacity .2s}
.seo-amap-pin.is-left .seo-amap-tag{left:auto;right:calc(100% - 4px)}
.seo-amap-pin:hover .seo-amap-tag,.seo-amap-pin:focus-visible .seo-amap-tag,.seo-amap-pin.is-on .seo-amap-tag{opacity:1}
.seo-amap-map figcaption{display:flex;justify-content:space-between;gap:12px;padding:0 18px 14px;font-size:11px;color:#211917cc}.seo-amap-map figcaption a{text-decoration:underline;text-underline-offset:2px}
.seo-amap-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 2px 18px rgba(27,9,9,.08);animation:seo-amap-in .35s ease}
@keyframes seo-amap-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.seo-amap-photo{display:block;aspect-ratio:16/9;overflow:hidden;background:#eee}.seo-amap-photo img{width:100%;height:100%;object-fit:cover}
.seo-amap-body{padding:clamp(18px,2vw,26px)}.seo-amap-body .eyebrow{color:var(--muted)}
.seo-amap-body h3{font-family:var(--heading-font);font-size:clamp(26px,2.4vw,34px);margin-top:6px}
.seo-amap-lead{margin-top:10px;color:#4f5149;font-size:15px}
.seo-amap-places{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.seo-amap-places a{display:flex;align-items:center;gap:12px}.seo-amap-places a>img,.seo-amap-places a>span:first-child{width:48px;height:48px;border-radius:12px;object-fit:cover;flex:none;background:#eee}
.seo-amap-places small{display:block;font-size:11px;color:var(--muted)}.seo-amap-places strong{font-weight:600;font-size:15px}.seo-amap-places a:hover strong{text-decoration:underline}
.seo-amap-go{margin-top:20px;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 22px;border-radius:999px;background:#1b0909;color:#fff;font-size:15px;font-weight:600;transition:opacity .2s}.seo-amap-go:hover{opacity:.85}
.seo-amap-regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px 32px;margin-top:clamp(24px,3vw,40px)}
.seo-amap-regions .eyebrow{color:var(--muted);margin-bottom:10px}
.seo-amap-chips{display:flex;flex-wrap:wrap;gap:8px}
.seo-amap-chips a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:#f2f1ef;font-size:14px;transition:background .2s,color .2s}
.seo-amap-chips a small{color:var(--muted);font-size:12px}.seo-amap-chips a:hover{background:#e6e4e0}
.seo-amap-chips a.is-on{background:#211917;color:#fff}.seo-amap-chips a.is-on small{color:#ffffffb0}
.seo-area-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}.seo-area-head img{width:64px;height:64px;border-radius:16px;object-fit:cover}
.seo-area-head .eyebrow{display:block;color:var(--muted)}.seo-area-head h2{margin:2px 0 0}
.seo-area-head svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}.seo-area-head:hover svg{transform:translateX(4px)}
.seo-area-block{scroll-margin-top:100px}
.seo-area-more summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:600;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.seo-area-more summary::-webkit-details-marker{display:none}.seo-area-more[open] summary{display:none}
@media (max-width:860px){.seo-amap-grid{grid-template-columns:1fr}.seo-amap-pin{width:30px;height:30px}.seo-amap-dot{width:12px;height:12px}.seo-amap-pin.is-on .seo-amap-dot{width:16px;height:16px}.seo-amap-tag{font-size:11px;padding:4px 8px}}
@media (prefers-reduced-motion:reduce){.seo-amap-card{animation:none}}

/* Hero of the travelers' home on a computer (2-11): «Plan your trip to Mallorca» is the main button and the zone one a ghost */
.tv-actions .tv-trip{display:none}
@media(hover:hover) and (pointer:fine){.tv-actions .tv-trip{display:inline-flex}.tv-actions .tv-zone{display:none}}

/* «Añadir a mi viaje» on a computer (public/website/plan-add.js): the «+» of the place cards, top right over the photo,
   like the app's cards; the place page's button; the app's sheet in a transparent iframe over the page, and its toast. */
.has-plan-add{position:relative}
.plan-add{position:absolute;top:12px;right:12px;z-index:3;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:#fff;color:#1b0909;box-shadow:0 2px 10px rgba(21,15,13,.22);cursor:pointer;transition:transform .2s,background .2s,color .2s}
.plan-add svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.plan-add:hover{transform:scale(1.08);background:#1b0909;color:#fff}
.plan-add:focus-visible{outline:2px solid #1b0909;outline-offset:2px}
.plan-add.is-added{background:#1b0909;color:#fff}
.seo-nearby li>.plan-add{top:10px;right:auto;left:44px;width:30px;height:30px}
.seo-nearby li>.plan-add svg{width:16px;height:16px}
.seo-plan-btn{width:100%;justify-content:center;gap:8px;margin-bottom:10px;border:0;background:#1b0909;color:#fff;cursor:pointer;font:inherit;font-weight:600}
.seo-plan-btn span{font-size:20px;line-height:1}
.seo-plan-btn.is-added span svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.seo .seo-exp .seo-facts .seo-plan-btn-light{margin:14px 0 0;background:#fff;color:#1b0909;border-color:rgba(27,9,9,.2);box-shadow:inset 0 0 0 1px rgba(27,9,9,.2)}
.seo .seo-exp .seo-facts .seo-plan-btn-light:hover{background:#f2f1ef}
.plan-shade{position:fixed;inset:0;z-index:2147482000;display:grid;place-items:center;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}
.plan-shade.is-open{opacity:1;visibility:visible;transition:opacity .2s}
.plan-spinner{width:34px;height:34px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;opacity:0;animation:plan-spin .8s linear infinite}
.plan-shade.is-loading .plan-spinner{opacity:1;transition:opacity .2s .25s}
@keyframes plan-spin{to{transform:rotate(360deg)}}
.plan-frame{position:fixed;inset:0;z-index:2147482001;width:100%;height:100%;border:0;background:transparent;color-scheme:normal;visibility:hidden;pointer-events:none}
.plan-frame.is-open{visibility:visible;pointer-events:auto}
html.plan-open{overflow:hidden}
.plan-toast{position:fixed;left:50%;bottom:28px;z-index:2147482002;display:flex;align-items:center;gap:18px;max-width:calc(100vw - 32px);padding:14px 18px 14px 20px;border-radius:999px;background:#1b0909;color:#fff;font-size:15px;box-shadow:0 10px 30px rgba(21,15,13,.25);transform:translateX(-50%);animation:plan-toast-in .3s cubic-bezier(.32,.72,0,1)}
.plan-toast a{color:#fff;font-weight:600;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.plan-toast.is-out{opacity:0;transition:opacity .3s}
@keyframes plan-toast-in{from{opacity:0;transform:translate(-50%,12px)}}
@media(prefers-reduced-motion:reduce){.plan-add,.plan-toast{transition:none;animation:none}.plan-spinner{animation-duration:2s}}
@media(hover:hover) and (pointer:fine){.computer-only.seo-plan-btn{display:flex!important}.seo-plan-btn+.tv-button{background:#fff;color:#1b0909;box-shadow:inset 0 0 0 1px rgba(27,9,9,.2)}}

/* Price over the photo of a place card (2-11): «€€ · 30 € / person», bottom left, like the app. */
.seo-card-price{position:absolute;left:12px;bottom:12px;z-index:1;padding:5px 10px;border-radius:999px;background:rgba(17,12,10,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:13px;font-weight:600;line-height:1.2;letter-spacing:0;white-space:nowrap}
/* «Mis viajes» en la portada (2-11): my-trips.js, only on a computer with a trip in the app. */
.trips-peek{position:absolute;width:1px;height:1px;border:0;opacity:0;pointer-events:none;left:-9999px;top:0}
.hf-trips{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s cubic-bezier(.32,.72,0,1)}
.hf-trips.is-in{opacity:1;transform:none}
.hf-trips-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0 var(--gutter);margin:0;list-style:none}
.hf-trip{position:relative;display:block;aspect-ratio:1;border-radius:24px;overflow:hidden;background:#F2F1EF;color:#1B0909;box-shadow:0 1px 2px rgb(0 0 0/.04),0 10px 28px -12px rgb(0 0 0/.22);transition:transform .3s ease}
.hf-trip:hover{transform:translateY(-2px)}
.hf-trip-mosaic{position:absolute;inset:0;display:grid;gap:2px;transition:transform .5s ease}
.hf-trip:hover .hf-trip-mosaic{transform:scale(1.03)}
.hf-trip-mosaic img{width:100%;height:100%;object-fit:cover;background:#e8e6e2;display:block}
.hf-trip-mosaic.is-2{grid-template-columns:1fr 1fr}
.hf-trip-mosaic.is-3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.hf-trip-mosaic.is-3 img:first-child{grid-row:span 2}
.hf-trip-shade{position:absolute;inset:0;background:linear-gradient(to top,rgb(0 0 0/.75),rgb(0 0 0/.2) 50%,transparent)}
.hf-trip-icon{position:absolute;left:24px;top:24px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:#fff;box-shadow:0 1px 3px rgb(0 0 0/.08)}
.hf-trip svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hf-trip-badge{position:absolute;right:14px;top:14px;padding:6px 12px;border-radius:999px;background:rgb(255 255 255/.95);color:#1B0909;font-size:13px;font-weight:600}
.hf-trip-text{position:absolute;left:0;right:0;bottom:0;padding:20px;display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--muted)}
.hf-trip-text strong{font-size:20px;font-weight:600;line-height:1.2;color:#1B0909;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hf-trip.has-photo .hf-trip-text,.hf-trip.has-photo .hf-trip-text strong{color:#fff}
.hf-trip.has-photo .hf-trip-text span{color:rgb(255 255 255/.85)}
.hf-trip-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#fff;border:2px dashed #d9d6d1;box-shadow:none;transition:border-color .2s ease,background .2s ease}
.hf-trip-new:hover{transform:none;border-color:rgb(27 9 9/.4);background:#F7F6F4}
.hf-trip-new strong{font-size:16px;font-weight:600}
.hf-trip-plus{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#1B0909;color:#fff;transition:transform .3s ease}
.hf-trip-new:hover .hf-trip-plus{transform:scale(1.05)}
@media(max-width:1100px){.hf-trips-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hf-trips-grid li:nth-child(3):not(:last-child){display:none}}
/* Ficha de sitio o evento en el móvil: «Ver en la app» bajo el nombre (3-11). */
.seo-app-top{display:flex;margin:16px 0 6px;width:100%;justify-content:center;background:#1b0909;color:#fff;border-color:#1b0909;font-weight:600}
