/* LankaLane Travel – Horizon Teal. Mobile first, no external resources. */
.ll-travel{container-type:inline-size;--ll-ocean:#0C3D4C;--ll-teal:#1F8A82;--ll-teal-d:#176B65;--ll-sand:#F3E6C9;--ll-sand-l:#F8F1DE;--ll-turmeric:#E8943A;--ll-ink:#122026;--ll-line:#C9D4D6;--ll-muted:#4A5C61;--ll-radius:16px;
  font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ll-ink);line-height:1.55;box-sizing:border-box}
.ll-travel *,.ll-travel *::before,.ll-travel *::after{box-sizing:inherit}
.ll-travel h2,.ll-travel h3{font-family:"Baloo 2","Plus Jakarta Sans",system-ui,sans-serif;color:var(--ll-ocean);line-height:1.2;margin:0 0 .5rem}
.ll-travel h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}
.ll-travel h3{font-size:1.25rem}
.ll-travel .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.ll-travel a{color:var(--ll-teal-d)}
.ll-travel :focus-visible{outline:3px solid var(--ll-turmeric);outline-offset:2px}

/* Buttons */
.ll-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.6rem 1.3rem;border-radius:999px;border:2px solid var(--ll-teal);background:var(--ll-teal);color:#fff!important;font:600 1rem/1.2 "Plus Jakarta Sans",system-ui,sans-serif;text-decoration:none!important;cursor:pointer;transition:background .15s,border-color .15s}
.ll-btn:hover{background:var(--ll-teal-d);border-color:var(--ll-teal-d)}
.ll-btn--small{min-height:40px;padding:.45rem 1rem;font-size:.9rem}
.ll-btn--ghost{background:#fff;color:var(--ll-ocean)!important;border-color:var(--ll-line)}
.ll-btn--ghost:hover{background:var(--ll-sand-l);border-color:var(--ll-teal)}
.ll-btn--ghost-light{background:transparent;border-color:#fff}
.ll-btn--ghost-light:hover{background:rgba(255,255,255,.12);border-color:#fff}
.ll-btn--block{display:flex;width:100%;margin-top:1rem}
.ll-btn[disabled]{opacity:.6;cursor:wait}

/* Filter bar */
.ll-filter{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:1rem;background:#fff;border:1px solid var(--ll-line);border-radius:var(--ll-radius);box-shadow:0 6px 24px rgba(12,61,76,.08)}
.ll-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.ll-field label,.ll-label{font:600 .8rem/1.2 "Plus Jakarta Sans",system-ui,sans-serif;color:var(--ll-ocean);letter-spacing:.02em}
.ll-travel select,.ll-travel input[type=text],.ll-travel input[type=email],.ll-travel input[type=tel],.ll-travel input[type=number],.ll-travel textarea{width:100%;min-height:44px;padding:.55rem .75rem;border:1px solid var(--ll-line);border-radius:10px;background:#fff;color:var(--ll-ink);font:inherit;font-size:1rem}
.ll-travel select:focus,.ll-travel input:focus,.ll-travel textarea:focus{border-color:var(--ll-teal);outline:2px solid rgba(31,138,130,.35);outline-offset:0}
.ll-field--btn{justify-content:flex-end}
@container (min-width:700px){.ll-filter{grid-template-columns:repeat(3,1fr)}}
@container (min-width:1100px){.ll-filter{grid-template-columns:repeat(6,1fr) auto;align-items:end}}

.ll-trips__bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:1rem 0 .5rem}
.ll-count{margin:0;font:600 1rem "Plus Jakarta Sans",system-ui,sans-serif;color:var(--ll-ocean)}
.ll-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.ll-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;background:var(--ll-sand);color:var(--ll-ocean);border:0;font:600 .85rem "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer;min-height:32px}
.ll-chip::after{content:"×";font-size:1.1em;line-height:1}

/* Layout */
.ll-trips__layout{display:grid;gap:1.25rem}
@container (min-width:960px){.ll-trips__layout{grid-template-columns:minmax(260px,340px) 1fr;align-items:start}.ll-trips__layout.no-map{grid-template-columns:1fr}.ll-mapbox{position:sticky;top:1rem}}
.ll-mapbox{background:var(--ll-sand-l);border-radius:var(--ll-radius);padding:1rem;border:1px solid #EADDBE}
.ll-mapbox__hint{margin:0 0 .5rem;font-size:.9rem;color:var(--ll-muted)}
.ll-placecard{margin-top:.5rem;padding:.75rem 1rem;background:#fff;border-radius:12px;border-left:4px solid var(--ll-turmeric);font-size:.92rem}
.ll-placecard strong{display:block;font-family:"Baloo 2",sans-serif;font-size:1.1rem;color:var(--ll-ocean)}

/* Map */
.ll-map{display:block;width:100%;height:auto;max-height:560px}
.ll-mapbox .ll-map{max-height:440px}
@container (min-width:960px){.ll-mapbox .ll-map{max-height:560px}}
.ll-map__land{fill:#DCEFEC;stroke:var(--ll-teal);stroke-width:1.4;stroke-linejoin:round}
.ll-map__route{fill:none;stroke:var(--ll-turmeric);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 7}
.ll-pin__hit{fill:transparent}
.ll-pin__dot{fill:#7E9196;stroke:#fff;stroke-width:2;transition:r .15s,fill .15s}
.ll-pin__label{font:600 12px "Plus Jakarta Sans",system-ui,sans-serif;fill:var(--ll-ocean);paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}
.ll-map--interactive .ll-pin__label{cursor:pointer}
.ll-map--interactive .ll-pin{cursor:pointer}
.ll-map--interactive .ll-pin:hover .ll-pin__dot,.ll-map--interactive .ll-pin:focus .ll-pin__dot{fill:var(--ll-teal);r:8px}
.ll-map--interactive .ll-pin:focus{outline:none}
.ll-map--interactive .ll-pin:focus-visible .ll-pin__hit{stroke:var(--ll-turmeric);stroke-width:2}
.ll-pin.is-active .ll-pin__dot{fill:var(--ll-teal)}
.ll-pin.is-dim{opacity:.45}
.ll-pin.is-selected .ll-pin__dot,.ll-pin[aria-pressed=true] .ll-pin__dot{fill:var(--ll-turmeric);r:9px}
.ll-pin.is-selected .ll-pin__label{font-size:14px}
.ll-map--route .ll-pin .ll-pin__dot{fill:#B9C6C9}
.ll-map--route .ll-pin .ll-pin__label{fill:#7E9196;font-weight:400}
.ll-map--route .ll-pin.is-route .ll-pin__dot{fill:var(--ll-teal);r:7px}
.ll-map--route .ll-pin.is-route .ll-pin__label{fill:var(--ll-ocean);font-weight:700}
.ll-map--compact .ll-map__land{fill:rgba(255,255,255,.16);stroke:rgba(255,255,255,.75)}
.ll-map--compact .ll-pin .ll-pin__dot,.ll-map--compact .ll-pin.is-route .ll-pin__dot{fill:var(--ll-turmeric);stroke:#fff;r:9px}
.ll-map--compact .ll-map__route{stroke:#fff;stroke-width:5}

/* Cards */
.ll-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@container (min-width:640px){.ll-grid{grid-template-columns:repeat(2,1fr)}}
@container (min-width:1300px){.ll-trips__layout.no-map .ll-grid{grid-template-columns:repeat(3,1fr)}}
.ll-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ll-line);border-radius:var(--ll-radius);overflow:hidden;transition:box-shadow .2s,transform .2s}
.ll-card:hover{box-shadow:0 10px 30px rgba(12,61,76,.14);transform:translateY(-2px)}
.ll-card[hidden]{display:none}
.ll-card__media{position:relative;display:block;aspect-ratio:16/9;background:linear-gradient(135deg,var(--ll-ocean),var(--ll-teal));overflow:hidden}
.ll-card__img{width:100%;height:100%;object-fit:cover;display:block}
.ll-card__map{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:.5rem}
.ll-card__map .ll-map{height:100%;width:auto;max-height:none}
.ll-card__days{position:absolute;left:.75rem;bottom:.75rem;background:var(--ll-turmeric);color:var(--ll-ink);font:700 .85rem "Plus Jakarta Sans",sans-serif;padding:.25rem .7rem;border-radius:999px}
.ll-card__body{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem 1.1rem;flex:1}
.ll-card__title{margin:0!important;font-size:1.3rem!important}
.ll-card__title a{color:var(--ll-ocean);text-decoration:none}
.ll-card__title a:hover{text-decoration:underline}
.ll-card__route{margin:0;font-size:.9rem;color:var(--ll-muted)}
.ll-card__who{margin:0;font-size:.85rem;color:var(--ll-teal-d);font-weight:600}
.ll-card__foot{margin-top:auto;padding-top:.6rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.ll-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none}
.ll-tags li{font:600 .72rem "Plus Jakarta Sans",sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--ll-teal-d);background:#E3F2F0;padding:.15rem .5rem;border-radius:6px}
.ll-price{margin:0;color:var(--ll-muted);font-size:.85rem;line-height:1.25}
.ll-price strong{font:700 1.35rem "Baloo 2",sans-serif;color:var(--ll-ocean)}
.ll-price--big strong{font-size:2rem;color:#fff}
.ll-empty{grid-column:1/-1;text-align:center;padding:2rem 1rem;background:var(--ll-sand-l);border-radius:var(--ll-radius)}
.ll-note{font-size:.85rem;color:var(--ll-muted);margin-top:1rem}

/* Single trip */
.ll-hero{display:grid;gap:1rem;background:var(--ll-ocean);color:#fff;border-radius:var(--ll-radius);padding:1.5rem;overflow:hidden}
@container (min-width:860px){.ll-hero{grid-template-columns:1.4fr 1fr;padding:2rem 2.25rem;align-items:center}}
.ll-eyebrow{margin:0 0 .4rem;font:700 .8rem "Plus Jakarta Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ll-sand)}
.ll-hero__route{font:600 1.1rem "Plus Jakarta Sans",sans-serif;margin:0 0 .6rem}
.ll-hero__summary{margin:0 0 1rem;opacity:.92}
.ll-hero .ll-price{color:var(--ll-sand)}
.ll-hero__media{max-height:340px;display:flex;justify-content:center}
.ll-hero__media img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.ll-hero__media .ll-map{max-height:320px;width:auto}
.ll-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.ll-facts{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0;padding:0}
@container (min-width:860px){.ll-facts{grid-template-columns:repeat(4,1fr)}}
.ll-facts>div{background:var(--ll-sand-l);border-radius:12px;padding:.8rem 1rem}
.ll-facts dt{font:700 .75rem "Plus Jakarta Sans",sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--ll-teal-d)}
.ll-facts dd{margin:.2rem 0 0;font-weight:600}
.ll-single__cols{display:grid;gap:1.5rem}
@container (min-width:960px){.ll-single__cols{grid-template-columns:1fr 340px;align-items:start}.ll-single__side{position:sticky;top:1rem}}
.ll-sec{margin:1.75rem 0}
.ll-ticks,.ll-crosses{list-style:none;padding:0;margin:.5rem 0}
.ll-ticks li,.ll-crosses li{position:relative;padding-left:1.7rem;margin:.35rem 0}
.ll-ticks li::before{content:"";position:absolute;left:0;top:.35em;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--ll-teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center/80% no-repeat}
.ll-crosses li::before{content:"";position:absolute;left:0;top:.35em;width:1.05rem;height:1.05rem;border-radius:50%;background:#D7DEE0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 5l6 6M11 5l-6 6' fill='none' stroke='%23122026' stroke-width='1.8'/%3E%3C/svg%3E") center/75% no-repeat}
.ll-incl{display:grid;gap:1rem}
@container (min-width:700px){.ll-incl{grid-template-columns:1fr 1fr}}
.ll-incl>div{background:#fff;border:1px solid var(--ll-line);border-radius:var(--ll-radius);padding:1rem 1.2rem}
.ll-days{list-style:none;margin:0;padding:0;border-left:3px solid var(--ll-sand);margin-left:.6rem}
.ll-days li{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;padding:0 0 1.2rem 1.2rem}
.ll-days li::before{content:"";position:absolute;left:-.55rem;top:.3rem;width:.8rem;height:.8rem;border-radius:50%;background:var(--ll-turmeric);border:2px solid #fff}
.ll-days__n{font:700 .8rem "Plus Jakarta Sans",sans-serif;color:var(--ll-teal-d);text-transform:uppercase;letter-spacing:.08em;padding-top:.2rem;min-width:3.5rem}
.ll-travel .ll-days h3{margin:0 0 .2rem;font-size:1.15rem;font-weight:700}
.ll-days p{margin:0}
.ll-days__night{font-size:.85rem;color:var(--ll-muted);margin-top:.25rem!important}
.ll-months{display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem;list-style:none;margin:0;padding:0}
@container (min-width:600px){.ll-months{grid-template-columns:repeat(12,1fr)}}
.ll-months li{text-align:center;padding:.45rem 0;border-radius:8px;background:#EEF2F3;color:var(--ll-muted);font:600 .8rem "Plus Jakarta Sans",sans-serif}
.ll-months li.is-on{background:var(--ll-teal);color:#fff}
.ll-basis{background:var(--ll-sand-l);border-radius:var(--ll-radius);padding:1rem 1.25rem}
.ll-basis p{margin:.3rem 0}
.ll-mapbox--route h2{font-size:1.3rem}
.ll-enquire{background:#fff;border:2px solid var(--ll-teal);border-radius:var(--ll-radius);padding:1.25rem}
@container (min-width:700px){.ll-enquire{padding:1.75rem 2rem}}
.ll-disclaimer{font-size:.85rem;color:var(--ll-muted);border-top:1px solid var(--ll-line);padding-top:1rem;margin-top:1.5rem}

/* Forms */
.ll-form{display:flex;flex-direction:column;gap:1rem}
.ll-form__grid{display:grid;gap:1rem}
@container (min-width:640px){.ll-form__grid{grid-template-columns:1fr 1fr}}
.ll-consent{display:flex;flex-direction:column;gap:.6rem;background:var(--ll-sand-l);border-radius:12px;padding:1rem}
.ll-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;cursor:pointer}
.ll-check input{width:22px;height:22px;flex:0 0 22px;margin-top:.1rem;accent-color:var(--ll-teal)}
.ll-req{color:#9A4B00;font-weight:600}
.ll-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ll-form__msg:empty{display:none}
.ll-form__msg,.ll-notice{padding:1rem;border-radius:12px;background:#E3F2F0;color:var(--ll-ocean);font-weight:600}
.ll-form__msg.is-error,.ll-notice.is-error{background:#FDECEA;color:#8A1F11}
.ll-suggest{margin-top:.75rem;padding:1rem;background:#fff;border-radius:12px;border:1px solid var(--ll-line);font-weight:400}

/* Trip builder */
.ll-builder{max-width:820px;margin:0 auto}
.ll-steps{background:#fff;border:1px solid var(--ll-line);border-radius:var(--ll-radius);padding:1.25rem;box-shadow:0 6px 24px rgba(12,61,76,.08)}
@container (min-width:700px){.ll-steps{padding:2rem 2.25rem}}
.ll-progress__label{font:600 .85rem "Plus Jakarta Sans",sans-serif;color:var(--ll-teal-d);margin-bottom:.4rem}
.ll-progress__bar{height:10px;border-radius:999px;background:#E6ECED;overflow:hidden}
.ll-progress__bar span{display:block;height:100%;background:linear-gradient(90deg,var(--ll-teal),var(--ll-turmeric));border-radius:999px;transition:width .3s}
.ll-step{border:0;margin:0;padding:0;min-width:0}
.ll-step legend{font:700 clamp(1.35rem,1.1rem + 1vw,1.8rem)/1.2 "Baloo 2",sans-serif;color:var(--ll-ocean);margin-bottom:1rem;padding:0}
.ll-step__n{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--ll-sand);color:var(--ll-ocean);font-size:1rem;margin-right:.35rem;vertical-align:.15em}
.ll-step__err{color:#8A1F11;font-weight:600;margin:.5rem 0 0;min-height:1.2em}
.js-ll .ll-steps .ll-step{display:none}
.js-ll .ll-steps .ll-step.is-current{display:block;animation:llfade .25s ease}
@keyframes llfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ll-options{display:grid;grid-template-columns:1fr;gap:.6rem}
@container (min-width:560px){.ll-options{grid-template-columns:1fr 1fr}}
.ll-opt{position:relative;display:block;cursor:pointer}
.ll-opt input{position:absolute;opacity:0;width:1px;height:1px}
.ll-opt span{display:flex;align-items:center;min-height:52px;padding:.7rem 1rem;border:2px solid var(--ll-line);border-radius:12px;font-weight:600;background:#fff;transition:border-color .15s,background .15s}
.ll-opt:hover span{border-color:var(--ll-teal)}
.ll-opt input:checked+span{border-color:var(--ll-teal);background:#E3F2F0;color:var(--ll-ocean)}
.ll-opt input:checked+span::after{content:"✓";margin-left:auto;color:var(--ll-teal);font-weight:800}
.ll-opt input:focus-visible+span{outline:3px solid var(--ll-turmeric);outline-offset:2px}
.ll-inline{display:flex;flex-wrap:wrap;gap:.75rem}
.ll-inline>*{flex:1 1 180px}
.ll-sub{margin-top:1rem}
.ll-pick{display:grid;gap:1rem}
@container (min-width:700px){.ll-pick{grid-template-columns:300px 1fr;align-items:start}}
.ll-pick .ll-map{max-height:460px;background:var(--ll-sand-l);border-radius:12px}
.ll-pick__list .ll-options{grid-template-columns:1fr 1fr;gap:.4rem}
.ll-pick__list .ll-opt span{min-height:40px;padding:.4rem .7rem;font-size:.9rem;border-width:1.5px}
.ll-steps__nav{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.25rem}
.ll-steps__nav [data-next],.ll-steps__nav [data-submit]{margin-left:auto}
.js-ll .ll-steps [data-submit]{display:none}
.js-ll .ll-steps.is-last [data-submit]{display:inline-flex}
.js-ll .ll-steps.is-last [data-next]{display:none}
.js-ll .ll-steps.is-first [data-prev]{visibility:hidden}
.ll-steps:not(.js-ready) [data-prev],.ll-steps:not(.js-ready) [data-next]{display:none}
.ll-steps.is-done .ll-step,.ll-steps.is-done .ll-steps__nav,.ll-steps.is-done .ll-progress{display:none!important}
@media (prefers-reduced-motion:reduce){.ll-travel *{animation:none!important;transition:none!important}}
