/* ==========================================================================
   Lafferty Travel — theme stylesheet
   Mobile-first. Base styles are the phone layout; breakpoints at 700 / 1080.
   Accessibility target: WCAG 2.2 AA. Every text/background pair used here has
   been measured; see inc/ notes and the project contrast log.
   ========================================================================== */

:root{
  --navy:#0D2845; --navy-deep:#08182A; --navy-soft:#164A7D;
  --green:#0E7C5A; --green-dark:#0A6449; --green-tint:#EDF8F4;
  --ocean:#0E6BA8; --teal:#0A7376; --aqua:#12A4A8; --aqua-light:#7FE3DC;
  --sky-light:#6EC6F5; --sky-pale:#EAF4FD; --seaglass:#E8F6F2;
  --bg:#FFFFFF; --fg:#111111; --fg-muted:#414B58; --fg-soft:#57606D;
  --border-soft:#DCE5EE;
  --tap:2.75rem;              /* 44px minimum target */
  --maxw:1200px; --measure:66ch;
  --r-lg:28px; --r-md:20px; --r-sm:14px;
  --sh:0 12px 34px -16px rgba(13,40,69,.28);
  --sh-lift:0 24px 58px -22px rgba(13,40,69,.38);
  /* --hdr-h must equal the header shell's full height (top padding + bar +
     bottom padding) so the hero's negative margin cancels it exactly and the
     hero image reaches the very top of the viewport behind the floating bar. */
  --edge:52px; --hdr-h:93px;
}

*,*::before,*::after{box-sizing:border-box}
body{overflow-x:hidden}
img{max-width:100%;height:auto;display:block}   /* height:auto — never stretch */
p{max-width:var(--measure)}

/* --- focus: high contrast on light and dark surfaces (WCAG 2.2) --- */
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:6px}
.lt-on-dark :focus-visible{outline-color:var(--aqua-light)}
/* 2.4.11 Focus Not Obscured — the sticky header must not cover a focused target */
[id]{scroll-margin-top:calc(var(--hdr-h) + 16px)}

.lt-skip{position:absolute;left:-9999px;background:var(--navy);color:#fff;
  padding:14px 20px;z-index:300;border-radius:0 0 8px 0;font-weight:700;text-decoration:none}
.lt-skip:focus{left:0;top:0}

.lt-wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px;position:relative;z-index:2}

/* --- section furniture: what makes each chapter obvious --- */
.lt-sec{position:relative}
.lt-eyebrow{font-size:1rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ocean);margin:0}
.lt-on-dark .lt-eyebrow{color:var(--aqua-light)}
.lt-title{font-size:1.75rem;margin-top:10px;color:var(--navy);line-height:1.3;font-weight:800}
.lt-on-dark .lt-title{color:#fff}
.lt-sub{margin-top:14px;color:var(--fg-muted);font-size:1.0625rem}
.lt-on-dark .lt-sub{color:rgba(255,255,255,.9)}
.lt-rule{width:60px;height:4px;border-radius:99px;margin-top:18px;
  background:linear-gradient(90deg,var(--green),var(--aqua))}
.lt-head{max-width:720px}
.lt-head.is-centered{margin-left:auto;margin-right:auto;text-align:center}
.lt-head.is-centered .lt-rule{margin-left:auto;margin-right:auto}

/* --- the two reusable shaped transitions --- */
.lt-edge{position:absolute;left:0;width:100%;height:var(--edge);top:0;
  transform:translateY(-99%);z-index:1;line-height:0;pointer-events:none}
.lt-edge svg{width:100%;height:100%;display:block}
.lt-edge--gentle{height:var(--edge)} /* homepage: smooth, clearly visible waves */
.lt-edge--in{transform:none}
.lt-community:has(> .lt-edge--in){padding-top:calc(16px + var(--edge))}

/* --- controls --- */
.lt-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  min-height:var(--tap);min-width:var(--tap);padding:.8rem 1.5rem;border-radius:999px;
  font-size:1.0625rem;font-weight:700;text-decoration:none;border:2px solid transparent;
  cursor:pointer;transition:background .16s,border-color .16s,color .16s}
/* PERMANENT RULE: the primary "Create Your Free Account" CTA is always green. */
.lt-btn--green{background:var(--green);color:#fff;border-color:var(--green)}
.lt-btn--green:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff}
.lt-btn--navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.lt-btn--navy:hover{background:var(--navy-soft);border-color:var(--navy-soft);color:#fff}
.lt-btn--outline{background:#fff;color:var(--navy);border-color:var(--navy)}
.lt-btn--outline:hover{background:var(--sky-pale);color:var(--navy)}
.lt-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.lt-btn--ghost:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff}
.lt-btns{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.lt-btns.is-centered{align-items:center}

/* ============ HEADER ============ */
/* WordPress puts a block gap between the header template part and <main>.
   That gap showed the white body background above the hero, so the white
   rounded bar sat on white and read as attached to the browser chrome.
   Removing it lets the hero run to y=0 behind the bar. */
.wp-site-blocks > main{margin-block-start:0}
/* Extra breathing room ABOVE the bar only — bottom padding and the bar's own
   internal padding are unchanged. */
.lt-hdr-shell{position:sticky;top:0;z-index:200;padding:16px 16px 12px}
.lt-hdr{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-radius:999px;padding:8px 10px 8px 14px;box-shadow:0 8px 28px -12px rgba(13,40,69,.45)}
.lt-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);
  flex-shrink:0;min-height:var(--tap);min-width:var(--tap);justify-content:center}
.lt-brand img{width:42px;height:42px;object-fit:contain}
.lt-brand span{font-size:1.125rem;font-weight:800;white-space:nowrap;display:none}
.lt-nav{display:none}
.lt-hdr-act{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.lt-signin{display:none;align-items:center;min-height:var(--tap);padding:0 14px;
  border-radius:999px;color:var(--navy);text-decoration:none;font-weight:600}
.lt-signin:hover{background:var(--sky-pale)}
.lt-hdr-act .lt-btn{padding:.6rem 1.1rem;font-size:1rem}
.lt-burger{display:flex;background:#fff;border:2px solid var(--navy);border-radius:50%;
  width:var(--tap);height:var(--tap);align-items:center;justify-content:center;cursor:pointer}
.lt-burger span{display:block;width:19px;height:2px;background:var(--navy);position:relative}
.lt-burger span::before,.lt-burger span::after{content:"";position:absolute;left:0;
  width:19px;height:2px;background:var(--navy)}
.lt-burger span::before{top:-6px}.lt-burger span::after{top:6px}
.lt-mobnav{display:none;max-width:var(--maxw);margin:10px auto 0;background:#fff;
  border-radius:var(--r-md);box-shadow:var(--sh);padding:6px 8px 14px}
.lt-mobnav.is-open{display:block}
.lt-mobnav ul{list-style:none;margin:0;padding:0}
.lt-mobnav a{display:flex;align-items:center;min-height:52px;padding:0 10px;color:var(--navy);
  text-decoration:none;font-weight:600;border-bottom:1px solid var(--border-soft)}
.lt-mobnav li:last-child a{border-bottom:0}
.lt-mobnav a:hover{background:var(--sky-pale)}

/* Current page in either menu: the light-blue pill PLUS blue bold text, so it
   is not signalled by the faint fill alone. --ocean on --sky-pale is ~5:1.
   Screen readers get the same fact from aria-current="page". No underline on
   hover or current; keyboard focus keeps the global 3px outline. */
.lt-nav a[aria-current="page"],
.lt-mobnav a[aria-current="page"]{background:var(--sky-pale);color:var(--ocean);font-weight:800}
.lt-mobnav a[aria-current="page"]{border-radius:10px}

.lt-cta-short{display:none}
@media (max-width:430px){
  .lt-hdr{gap:8px;padding:8px 8px 8px 10px}
  .lt-hdr-act{gap:6px}
  .lt-hdr-act .lt-btn{padding:.6rem .85rem}
  .lt-cta-full{display:none}
  .lt-cta-short{display:inline}
}

/* ============ 1 · HERO ============ */
.lt-hero{position:relative;margin-top:calc(-1 * var(--hdr-h));padding:130px 0 90px;overflow:hidden}
.lt-hero-media{position:absolute;inset:0;z-index:0}
.lt-hero-media img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.lt-hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(172deg,rgba(6,20,36,.92) 0%,rgba(9,29,50,.9) 100%)}
.lt-hero h1{font-size:2.25rem;letter-spacing:-.03em;color:#fff;line-height:1.2;margin:0}
.lt-hero .lt-hero-sub{margin-top:18px;font-size:1.1875rem;color:rgba(255,255,255,.95);max-width:32em}
.lt-hero-trust{margin-top:22px;font-size:1rem;color:rgba(255,255,255,.88)}
/* homepage brand banner: scenery, the logo badge and two centred lines */
.lt-hero.lt-hero--brand{display:flex;align-items:center;min-height:clamp(600px,calc(100vw / 2.25),1100px);
  padding:calc(var(--hdr-h) + 20px) 0 calc(var(--edge) * .5 + 40px);text-align:center}
.lt-hero--brand .lt-hero-media img{object-position:31% 40%}
@media (min-width:700px){.lt-hero--brand .lt-hero-media img{object-position:50% 40%}}
.lt-hero--brand .lt-hero-media::after{background:radial-gradient(ellipse 46% 40% at 50% 62%,rgba(6,24,48,.22) 0%,rgba(6,24,48,0) 75%)}
.lt-hero-brand{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center}
.lt-hero .lt-brand-logo{margin:0;line-height:0}
.lt-brand-logo img{width:clamp(300px,44vw,800px);max-width:100%;height:auto;filter:drop-shadow(0 12px 26px rgba(4,20,40,.38))}
.lt-brand-tag,.lt-brand-sub{margin:0;max-width:100%;color:#fff;font-weight:800;letter-spacing:-.01em;text-wrap:balance;
  /* a closer, stronger dark halo so the white text keeps its contrast over the busiest parts of the photo (WCAG 1.4.3) */
  text-shadow:0 0 2px rgba(13,40,69,.95),0 0 4px rgba(13,40,69,.9),0 2px 0 rgba(13,40,69,.75),0 3px 18px rgba(4,20,40,.7)}
.lt-brand-tag{margin-top:12px;font-size:clamp(1.625rem,3vw,3.5rem);line-height:1.15}
.lt-brand-sub{margin-top:8px;font-size:clamp(1.0625rem,1.75vw,2rem);line-height:1.3;font-weight:700;max-width:30em}

/* ============ 2 · VACATION APP: every kind of trip (current homepage section) ============ */
.lt-appx{position:relative;background:#fff url(../images/va-waves-bottom.svg) no-repeat center/100% 100%;padding:24px 0 72px;overflow-x:clip}
.lt-appx-grid{position:relative;z-index:1;display:grid;gap:28px;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.lt-appx-title{margin:6px 0 0;color:var(--navy);font-weight:800;letter-spacing:-.035em;line-height:1.04;
  font-size:clamp(2.375rem,4.6vw,4.5rem)}
.lt-appx-title span{display:block}
.lt-appx-sub{margin:20px 0 0;font-size:clamp(1.0625rem,1.25vw,1.3125rem);line-height:1.55;color:var(--fg-soft);max-width:33em}
.lt-appx-checks{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px}
.lt-appx-checks li{display:flex;align-items:center;gap:14px;font-size:clamp(1.0625rem,1.2vw,1.25rem);font-weight:700;color:var(--navy)}
.lt-appx-check{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#DDF4E7;color:#15803D}
.lt-appx-btn{margin-top:30px}
@media (max-width:359px){.lt-appx-btn{font-size:1.0625rem;padding-inline:22px}}
.lt-appx-visual{margin:0 -20px} /* phones and tablets: artwork edge to edge */
.lt-appx-visual img{display:block;width:100%;height:auto}
/* fade the collage edges into the page so it never reads as a rectangle */
.lt-appx-visual img{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 2%,#000 97%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 2%,#000 97%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
@media (min-width:700px){
  .lt-appx-copy{max-width:640px}
}
@media (min-width:1080px){
  /* the next section's wave is drawn over this section's foot: leave its full height clear */
  .lt-appx{padding:40px 0 calc(var(--edge) + 20px)}
  /* text aligns to the site grid; the collage runs to the right edge, as in the mockup */
  .lt-appx-grid{max-width:none;padding:0 0 0 max(32px,calc((100vw - 1400px)/2 + 32px));gap:0;align-items:center;
    grid-template-columns:minmax(0,min(560px,38vw)) minmax(0,1fr)}
  .lt-appx-copy{position:relative;z-index:2;padding-right:8px}
  .lt-appx-visual{margin:0 0 0 -4vw}
  .lt-appx-visual img{ /* bleeds off the right edge: no fade there */
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 2.5%),linear-gradient(to bottom,transparent 0,#000 2%,#000 97%,transparent 100%);
    mask-image:linear-gradient(to right,transparent 0,#000 2.5%),linear-gradient(to bottom,transparent 0,#000 2%,#000 97%,transparent 100%)}
}

/* ============ 2 · VACATION APP ============ */
.lt-app{background:var(--bg);padding:16px 0 0}
.lt-app-grid{display:grid;gap:0;grid-template-areas:"visual" "head" "benefits" "tools" "cta"}
.lt-app-head{grid-area:head;padding-top:30px}
.lt-app-visual{grid-area:visual}
.lt-app-benefits{grid-area:benefits}
.lt-app-tools{grid-area:tools}
.lt-app-cta{grid-area:cta;padding-bottom:72px}
.lt-app-head,.lt-app-benefits,.lt-app-tools,.lt-app-cta{
  max-width:var(--maxw);width:100%;margin:0 auto;padding-left:20px;padding-right:20px}
.lt-app-visual{position:relative;overflow:hidden;min-height:300px;
  border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--sky-pale)}
.lt-app-visual img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
/* the homepage photo is shown whole, at its own proportions, so all three device screens stay visible */
.lt-app-visual{min-height:0;border-radius:0;background:transparent}
.lt-app-visual img{display:block;height:auto;object-fit:contain}

.lt-benefits{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:22px}
.lt-benefits li{display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:start}
.lt-bico{width:56px;height:56px;border-radius:17px;display:flex;align-items:center;justify-content:center}
.lt-bico--organize{background:#E3F5EE}
.lt-bico--save{background:#E4EFFB}
.lt-bico--stress{background:#FDEAE8}
.lt-benefits h3{font-size:1.1875rem;color:var(--navy);margin:0}
.lt-benefits p{margin:6px 0 0;font-size:1.0625rem;color:var(--fg-muted)}
.lt-device-line{margin-top:14px;font-size:1.0625rem;font-weight:700;color:var(--teal)}
.lt-payoff{margin-top:26px;font-size:1.1875rem;color:var(--fg-muted)}
.lt-payoff strong{color:var(--navy);font-weight:800}

/* planning tools — informational, NOT controls: plain colour glyphs, no tiles */
.lt-tools-divider{border:0;border-top:1px solid var(--border-soft);margin:34px 0 0}
.lt-tools-head{font-size:1.375rem;font-weight:800;color:var(--navy);margin:28px 0 0}
.lt-tools{list-style:none;margin:22px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:26px 10px}
.lt-tools li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px}
.lt-tools span{font-size:1rem;font-weight:700;color:var(--navy);line-height:1.25}
/* the Vacation App's own module icon chip (app: .ds-module-icon) */
.lt-tools .lt-tool-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:3.5rem;height:3.5rem;border-radius:.75rem}
.lt-tool-icon img{display:block;width:1.75rem;height:1.75rem}
@media (forced-colors:active){.lt-tools .lt-tool-icon{border:1px solid CanvasText;forced-color-adjust:none}}

/* "100% Free" — reassurance, not promotion. No border, no rule, no alert styling. */
.lt-free{position:relative;overflow:hidden;margin:32px 0 0;display:grid;
  grid-template-columns:auto 1fr;gap:16px;align-items:center;
  background:#E8F6F0;border-radius:var(--r-md);padding:22px 24px}
.lt-free-palm{position:absolute;right:14px;bottom:-10px;opacity:.16;pointer-events:none}
.lt-free-badge{width:48px;height:48px;border-radius:999px;background:var(--green);
  flex-shrink:0;display:flex;align-items:center;justify-content:center}
.lt-free h3{font-size:1.875rem;color:var(--navy);margin:0;line-height:1.1}
.lt-free-lines{margin:5px 0 0;font-size:1.125rem;font-weight:700;color:var(--navy)}
.lt-free-scope{margin:7px 0 0;font-size:1rem;color:var(--fg-soft)}
.lt-free > div{position:relative;z-index:1}

/* ============ 3 · HOWEVER YOU VACATION ============ */
.lt-types{background:var(--sky-pale);padding:16px 0 72px}
.lt-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lt-type-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:30px}
.lt-type{position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh);
  aspect-ratio:16/10;display:block}
.lt-type img{width:100%;height:100%;object-fit:cover}
.lt-type::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,
  rgba(5,17,30,.94) 0%,rgba(5,17,30,.72) 34%,rgba(5,17,30,.25) 68%,rgba(5,17,30,.08) 100%)}
.lt-type-copy{position:absolute;inset:auto 0 0 0;padding:20px;z-index:2;color:#fff}
.lt-type-copy h3{font-size:1.25rem;color:#fff;margin:0}
.lt-type-copy p{margin:5px 0 0;font-size:1rem;color:#fff}

/* ============ 4 · WHY LAFFERTY TRAVEL ============ */
.lt-why{background:var(--bg);padding:16px 0 72px}
/* --- "Why Lafferty Travel" postcards (homepage) --- */
@font-face{font-family:"Baloo 2";src:url(baloo-2-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
.lt-why.lt-why--postcards{position:relative;isolation:isolate;overflow-x:clip;padding:24px 0 0;text-align:center;background:#C5F1FE}
/* the artwork sits on its own layer so its top edge (palm tips) can fade into the sky under the wave */
.lt-why--postcards::before{content:"";position:absolute;inset:0;z-index:-1;
  background:url(../images/why-top-1000.webp) no-repeat top center/100% auto,linear-gradient(#C5F1FE 0,#BDEDEC 30%,#F5F4EA 62%,#FDF6EA 100%);
  -webkit-mask-image:linear-gradient(transparent 0,#000 clamp(24px,5vw,72px));mask-image:linear-gradient(transparent 0,#000 clamp(24px,5vw,72px))}
.lt-why--postcards::after{content:"";display:block;aspect-ratio:1000/92;margin-top:28px;
  background:url(../images/why-bottom-1000.webp) no-repeat bottom center/100% 100%}
.lt-why--postcards .lt-wrap{position:relative;z-index:1}
.lt-why-head{position:relative;padding-top:calc(17.5vw + 6px)} /* phones: below the scenery strip */
.lt-why-eyebrow{display:inline-flex;align-items:center;gap:12px;margin:0;color:#166C8C;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.9375rem}
.lt-why-eyebrow::before,.lt-why-eyebrow::after{content:"";width:28px;height:2px;background:currentColor;border-radius:2px}
.lt-why-title{margin:8px 0 0;font-family:"Baloo 2",var(--font-sans,system-ui),sans-serif;font-weight:800;color:var(--navy);
  font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.02;letter-spacing:-.01em}
.lt-why-title span{white-space:nowrap;background:linear-gradient(transparent 86%,#2BB3C9 86%,#2BB3C9 92%,transparent 92%) no-repeat 0 0/100% 100%}
.lt-why-sub{margin:12px auto 0;max-width:34em;color:#1F3B57;font-size:clamp(1.0625rem,1.5vw,1.375rem);line-height:1.45}
.lt-why-route,.lt-why-pin,.lt-why-plane{display:none}
/* homepage Gear heading: 3D GEAR artwork, navy title, teal swoosh (owner mockup) */
.lt-gearsec .lt-head{max-width:880px}
.lt-gear-art{margin:0 auto;line-height:0;max-width:none}
.lt-gearsec #lt-gear-title{margin-top:clamp(6px,1.4vw,16px);color:var(--navy);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.625rem,3.2vw,3rem);line-height:1.15;text-wrap:balance}
.lt-gearsec .lt-head .lt-sub{color:#1F3B57;margin:10px auto 0}
.lt-swoosh{display:block;margin:16px auto 0;width:clamp(130px,13vw,190px);height:auto}
.lt-postcards{list-style:none;margin:30px auto 0;padding:0;display:grid;gap:24px;max-width:420px}
.lt-postcard{background:#FBF6EC;border-radius:10px;padding:14px 14px 22px;box-shadow:0 10px 26px rgba(13,40,69,.18),0 2px 4px rgba(13,40,69,.08);
  border:1px solid #EFE4CF}
.lt-postcard img{display:block;width:100%;height:auto;border-radius:3px}
.lt-postcard h3{margin:16px 0 0;font-family:"Baloo 2",var(--font-sans,system-ui),sans-serif;font-weight:800;color:var(--navy);font-size:1.75rem;line-height:1.1}
.lt-postcard p{margin:8px auto 0;max-width:22em;color:#22384F;font-size:1.0625rem;line-height:1.5}
@media (min-width:700px){
  .lt-why--postcards::before{background:url(../images/why-bg-1000.webp) no-repeat center top/cover}
  .lt-why-head{padding-top:clamp(20px,4vw,40px)}
  .lt-postcards{grid-template-columns:repeat(2,1fr);max-width:none;gap:28px}
  .lt-postcard--1{transform:rotate(-1.5deg)} .lt-postcard--2{transform:rotate(1.2deg)}
  .lt-postcard--3{transform:rotate(-.8deg)} .lt-postcard--4{transform:rotate(1.5deg)}
}
@media (min-width:1080px){
  .lt-why.lt-why--postcards{padding-top:40px}
  .lt-why--postcards::before{background-image:url(../images/why-bg-1714.webp)}
  .lt-why--postcards .lt-wrap{max-width:1440px}
  .lt-why-route{display:block;position:absolute;left:3%;right:3%;width:94%;top:clamp(210px,15vw,250px);height:80px}
  .lt-why-pin,.lt-why-plane{display:block;position:absolute}
  .lt-why-pin--a{left:4%;top:clamp(222px,16vw,262px)} .lt-why-pin--b{right:4%;top:clamp(222px,16vw,262px)}
  .lt-why-plane{left:65%;top:clamp(198px,14vw,238px)}
  .lt-postcards{grid-template-columns:repeat(4,1fr);gap:26px;margin-top:84px;padding:0 8px}
  .lt-postcard--2{margin-top:-14px} .lt-postcard--4{margin-top:10px}
  .lt-postcard h3{font-size:clamp(1.5rem,1.9vw,1.875rem)}
}
@media (prefers-reduced-motion:no-preference){.lt-postcard{transition:transform .25s ease}.lt-postcard:hover{transform:rotate(0) translateY(-4px)}}
.lt-why-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:30px}
.lt-wcard{background:#fff;border:1px solid var(--border-soft);border-radius:var(--r-md);
  padding:26px 22px;box-shadow:var(--sh);position:relative;overflow:hidden}
.lt-wcard::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--navy),var(--aqua))}
.lt-wcard .lt-ico{width:54px;height:54px;border-radius:17px;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(140deg,var(--navy),var(--navy-soft));margin-bottom:16px}
.lt-wcard h3{font-size:1.25rem;color:var(--navy);margin:0}
.lt-wcard p{margin:9px 0 0;color:var(--fg-muted);font-size:1.0625rem}

/* ============ 5-7 · MARKETPLACE, YOUR WAY, GEAR (app-driven) ============ */
.lt-yourway{position:relative;padding:16px 0 76px;overflow:hidden}
.lt-yourway::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(168deg,#0D2845 0%,#123C68 62%,#164A7D 100%)}
.lt-market{background:var(--seaglass);padding:16px 0 72px}
.lt-gearsec{background:#FEFEFE;padding:16px 0 72px} /* the GEAR artwork's own white, so its edges never show */
.lt-more{margin-top:34px;justify-content:center}

/* The plugin's cards are themed ONLY through its --lt-* custom properties
   (lafferty-travel-content 1.1.0 contract) — never by overriding its
   selectors, so a plugin markup change cannot silently break this design.
   Every text/background pair below is from the measured palette above. */
/* font-size: descriptions and buttons inherit it; the site body text is fluid and
   drops to ~14px on phones, too small for card copy. */
.lt-appcontent{margin-top:30px;font-size:1.0625rem;
  --lt-gap:18px;
  --lt-card-bg:#fff; --lt-card-border:1px solid var(--border-soft);
  --lt-card-radius:var(--r-sm); --lt-card-shadow:var(--sh); --lt-card-padding:20px;
  --lt-title-color:var(--navy); --lt-title-size:1.1875rem;
  --lt-text-color:var(--fg-muted); --lt-meta-color:var(--fg-soft);
  --lt-btn-bg:var(--navy); --lt-btn-fg:#fff; --lt-btn-bg-hover:var(--navy-soft);
  --lt-btn2-bg:#fff; --lt-btn2-fg:var(--navy); --lt-btn2-border:var(--navy);
  --lt-focus:var(--navy);
  --lt-why-bg:var(--green-tint); --lt-why-fg:#123A2E;
  --lt-filter-bg:#fff; --lt-filter-fg:var(--navy);
  --lt-filter-current-bg:var(--navy); --lt-filter-current-fg:#fff;
  --lt-notice-bg:var(--sky-pale); --lt-notice-fg:var(--fg-muted)}
/* Product photography: the whole product stays visible — contain, never crop. */
.lt-appcontent--gear{--lt-media-ratio:4 / 3; --lt-media-fit:contain;
  --lt-media-bg:#fff; --lt-media-padding:14px}
.lt-appcontent--marketplace,.lt-appcontent--your-way{--lt-media-ratio:16 / 10; --lt-media-fit:cover}
/* Your Way sits on navy: a lighter lift so white cards read as raised. */
.lt-on-dark .lt-appcontent{--lt-card-border:1px solid rgba(255,255,255,.18); --lt-card-shadow:var(--sh-lift)}

/* ============ SECTION PAGES (Marketplace, Your Way, Gear) ============ */
.lt-sp-hero{padding:120px 0 84px}
/* section page with approved header artwork (Gear, Marketplace): one continuous image from the very top, behind the nav.
   Each artwork carries extra sky above the original (its own sky, extended); the box shows the original at full width
   plus only as much of that sky as the nav needs to stay clear of the title. Per page (inline style): --ar = width/height
   of the original part, --ht = title top as a fraction of the width, --zoom = phone width in percent (readable title). */
.lt-sp-hero.lt-sp-hero--art{--art-w:100vw;--art-pct:100%;--pad:max(0px,calc(var(--hdr-h) + 14px - var(--art-w) * var(--ht,.09)));padding:0;background:#fff}
.lt-sp-art{overflow:hidden;line-height:0;height:calc(var(--art-w) / var(--ar,2.977) + var(--pad))}
.lt-sp-art img{display:block;width:var(--art-pct);max-width:none;height:100%;object-fit:cover;object-position:center bottom;margin-left:calc((100% - var(--art-pct)) / 2)}
@media (max-width:699px){.lt-sp-hero.lt-sp-hero--art{--art-w:calc(var(--zoom,150) * 1vw);--art-pct:calc(var(--zoom,150) * 1%)}}
.lt-sp-hero h1{font-size:2.125rem;letter-spacing:-.02em;color:#fff;line-height:1.2;margin:10px 0 0}
.lt-sp-body{background:var(--bg);padding:16px 0 88px}
.lt-sp-body.lt-join{padding-bottom:calc(var(--edge) + 48px)}
.lt-sp-hero--art + .lt-sp-body{padding-top:8px} /* clear of the shared wave into the closing section */
.lt-sp-body .lt-appcontent{margin-top:10px;--lt-media-ratio:4 / 3}
/* Section pages: up to 4 cards per row, never narrower than 17rem (272px).
   That gives 4 across from ~1200px, 3 on small desktops, 2 on tablets and 1
   on phones, identical on Gear, Marketplace and Your Way. The plugin fixes its
   own 4-column minimum at 13rem on .lt-grid--4, so the theme sets that same
   documented custom property on the grid; no plugin styling is overridden. */
.lt-sp-body .lt-appcontent .lt-grid--4{--lt-card-min:17rem}
.lt-sp-empty{max-width:640px;margin:10px auto 0;text-align:center;background:var(--sky-pale);
  border-radius:var(--r-md);padding:34px 24px}
.lt-sp-empty h2{font-size:1.5rem;color:var(--navy);margin:0;line-height:1.3}
.lt-sp-empty p{margin:12px auto 0;color:var(--fg-muted);font-size:1.0625rem}

/* ============ 8 · COMMUNITY ============ */
.lt-community{position:relative;padding:16px 0 80px;overflow:hidden}
.lt-community::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(165deg,#08182A 0%,#0D2845 46%,#123C68 100%)}
.lt-community::after{content:"";position:absolute;inset:0;z-index:0;opacity:.13;
  background:url('../images/tile-cruise.webp') center/cover;mix-blend-mode:luminosity}
.lt-channels{display:grid;grid-template-columns:1fr;gap:18px;margin-top:30px}
.lt-channel{background:#fff;border-radius:var(--r-md);padding:26px 24px;
  display:flex;flex-direction:column;box-shadow:var(--sh-lift)}
.lt-channel-top{display:flex;align-items:center;gap:13px}
.lt-glyph{width:52px;height:52px;border-radius:999px;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;background:var(--navy)}
.lt-channel h3{font-size:1.3125rem;color:var(--navy);margin:0}
.lt-handle{font-size:1rem;color:var(--fg-soft);font-weight:600;margin:2px 0 0}
.lt-channel p.lt-channel-why{margin:14px 0 0;color:var(--fg-muted);font-size:1.0625rem;flex-grow:1}
.lt-channel .lt-btn{margin-top:18px;align-self:flex-start}

/* ============ COMMUNITY: tropical postcards (homepage) ============ */
.lt-community.lt-community--postcards{position:relative;isolation:isolate;overflow:visible;
  padding:calc(var(--edge) + 4px) 0 calc(var(--edge) + 28px);color:var(--navy);
  background:url(../images/comm-top-1000.webp) no-repeat top center/100% auto,url(../images/comm-bottom-1000.webp) no-repeat bottom center/100% auto,linear-gradient(#C5E9FB 0,#7EDCEB 22%,#3FD4E3 55%,#9CE6E2 85%,#E9E3D2 100%)}
.lt-community--postcards::before,.lt-community--postcards::after{content:none}
.lt-community--postcards .lt-wrap{position:relative;z-index:1}
.lt-comm-heading{display:flow-root;margin:0 auto;max-width:900px;line-height:0}
.lt-comm-heading{text-align:center}
.lt-comm-kicker{display:block;color:var(--navy);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.375rem,4.6vw,2.25rem);line-height:1.15;
  text-shadow:0 0 2px #fff,0 0 6px #fff,0 0 14px rgba(255,255,255,.9)}
.lt-comm-word{display:inline-flex;align-items:center;gap:.04em;line-height:0;max-width:100%}
.lt-commcards{list-style:none;margin:22px auto 0;padding:0;display:grid;gap:26px;max-width:420px}
.lt-commcard{display:flex;flex-direction:column;background:#FBF5E8;border-radius:10px;padding:12px 12px 20px;
  border:1px solid #EADFC8;box-shadow:0 12px 28px rgba(8,40,70,.22),0 2px 5px rgba(8,40,70,.1)}
.lt-commcard-photo{display:block;width:100%;height:auto;border-radius:3px}
.lt-commcard-id{display:flex;align-items:center;gap:12px;margin:16px 6px 0;text-align:left}
.lt-commcard-badge{flex:none;width:52px;height:52px}
.lt-commcard-badge svg{display:block;width:100%;height:100%}
.lt-commcard h3{margin:0;font-family:"Baloo 2",var(--font-sans,system-ui),sans-serif;font-weight:800;color:var(--navy);font-size:1.625rem;line-height:1.05}
.lt-commcard .lt-handle{margin:2px 0 0;color:#3D5570;font-size:1rem}
.lt-commcard-why{margin:12px 6px 0;color:#22384F;font-size:1.0625rem;line-height:1.5;text-align:left;flex:1}
.lt-commcard-btn{align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;min-height:48px;padding:12px 26px;
  border-radius:999px;background:#137A55;color:#fff;font-weight:800;font-size:1.0625rem;text-decoration:none;box-shadow:0 4px 0 #0C5A3E,0 8px 16px rgba(12,90,62,.25)}
.lt-commcard-btn:hover{background:#0F6A49}
.lt-commcard-btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
@media (min-width:700px){
  .lt-community.lt-community--postcards{background:url(../images/comm-bg-1000.webp) no-repeat center top/cover}
  .lt-commcards{grid-template-columns:repeat(2,1fr);max-width:none;gap:28px}
  .lt-commcard--1{transform:rotate(-1.4deg)} .lt-commcard--2{transform:rotate(1.1deg)}
  .lt-commcard--3{transform:rotate(-.9deg)} .lt-commcard--4{transform:rotate(1.4deg)}
}
@media (min-width:1080px){
  .lt-community.lt-community--postcards{background-image:url(../images/comm-bg-1672.webp)}
  .lt-community--postcards .lt-wrap{max-width:1440px}
  .lt-comm-heading{max-width:min(880px,56vw)}
  .lt-commcards{grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(14px,2vw,30px);padding:0 8px}
  .lt-commcard--2{margin-top:10px} .lt-commcard--3{margin-top:14px} .lt-commcard--4{margin-top:4px}
  .lt-commcard h3{font-size:clamp(1.375rem,1.75vw,1.75rem)}
  .lt-commcard-btn{padding-inline:20px}
}

/* ============ homepage 3D titles: artwork, sized to one letter-face height ============
   GEAR is the master. Each image's letter face is a known fraction of its width, so
   width = face height x (image width / face height): GEAR 5.97, COMMUNITY 6.52, Your Best Vacation 9.07.
   The images carry their own shadows; no CSS effects are added. */
:root{--lt-face:min(33px,8.4vw)}
@media (min-width:700px){:root{--lt-face:47px}}
@media (min-width:1080px){:root{--lt-face:clamp(52px,4.65vw,72px)}}
.lt-title-art{display:block;height:auto;max-width:100%;margin:0 auto}
.lt-title-art--gear{width:calc(var(--lt-face) * 5.97)}
.lt-title-art--comm{width:calc(var(--lt-face) * 6.52)}
.lt-title-art--ybv{width:calc(var(--lt-face) * 9.07)}
@media (min-width:1080px){.lt-final-title-a .lt-title-art--ybv{margin:0 0 0 -.4vw;width:min(calc(var(--lt-face) * 9.07),42vw)}}
@media (max-width:1079px){.lt-final-title-a{display:block}}
/* same button size as Create Your Free Account (kept from the shared style) */
@media (min-width:1080px){.lt-btn-3d.lt-appx-btn{font-size:clamp(1.1875rem,1.78vw,1.75rem);min-height:0;padding:.58em 1.55em}}

/* ============ shared green 3D button (master: Create Your Free Account) ============ */
/* ============ 9 · FINAL CALL TO ACTION: devices (homepage) ============ */
.lt-final{position:relative;background:linear-gradient(#fff 0,#F2F9FE 55%,#E3F3FC 100%);padding:calc(var(--edge) * .9) 0 0;overflow-x:clip}
.lt-final-copy{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 20px;text-align:center}
.lt-final-title{margin:0;line-height:1.04}
.lt-final-title span{display:block}
.lt-final-title-a{line-height:0}
.lt-final-title-b{margin-top:.08em;color:var(--navy);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.5rem,5.6vw,2.625rem)}
.lt-final-sub{margin:18px auto 0;color:#1F3B57;font-size:clamp(1.125rem,1.85vw,2rem);line-height:1.35}
.lt-final-checks{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 26px}
.lt-final-checks li{display:inline-flex;align-items:center;gap:10px;color:#173A5C;font-weight:600;font-size:clamp(1.0625rem,1.45vw,1.625rem)}
.lt-final-checks svg{width:1.55em;height:1.55em;flex:none}
.lt-btn-3d{display:inline-flex;align-items:center;justify-content:center;gap:.5em;margin-top:26px;min-height:56px;padding:.55em 1.3em;white-space:nowrap;max-width:100%;border-radius:999px;
  background:linear-gradient(180deg,#22A84F 0%,#13843B 100%);color:#fff;font-weight:800;font-size:clamp(1.0625rem,4.9vw,1.3125rem);text-decoration:none;
  box-shadow:0 5px 0 #0D6A2E,0 12px 22px rgba(13,106,46,.3);border:2px solid #fff}
.lt-btn-3d:hover{background:linear-gradient(180deg,#1E9B48 0%,#107534 100%)}
.lt-btn-3d:active{transform:translateY(3px);box-shadow:0 2px 0 #0D6A2E,0 6px 12px rgba(13,106,46,.28)}
.lt-btn-3d:focus-visible,.lt-final-signin a:focus-visible{outline:3px solid var(--navy);outline-offset:4px}
.lt-final-signin{margin:16px 0 0;font-size:clamp(1.0625rem,1.55vw,1.75rem)}
.lt-final-signin a{color:#123A6B;font-weight:600;text-decoration:underline;text-underline-offset:.18em}
.lt-final-art{display:block;margin-top:22px}
.lt-final-art img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(transparent 0,#000 14%);mask-image:linear-gradient(transparent 0,#000 14%)}
.lt-final > .lt-edge{z-index:3}
/* the navy wave runs straight into the footer: drop WordPress's block gap above it on this page only */
.wp-site-blocks:has(.lt-final) > footer.wp-block-template-part{margin-block-start:0}
@media (min-width:1080px){
  /* the whole composition as one picture; the live text sits over its open left side */
  .lt-final{padding:0;background:#fff;aspect-ratio:2880/1392}
  .lt-final-art{position:absolute;inset:0;margin:0;z-index:0}
  .lt-final-art img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:none;mask-image:none}
  /* everything scales with the picture (vw), so the layout keeps the mockup proportions at any width */
  .lt-final-copy{position:absolute;z-index:2;left:4.3vw;top:17.5%;width:44vw;max-width:none;margin:0;padding:0;text-align:left}
  .lt-final-title-b{font-size:3.3vw}
  .lt-final-sub{margin:1.3vw 0 0;font-size:1.72vw}
  .lt-final-checks{justify-content:flex-start;gap:.6em 1.5vw;margin-top:1.6vw}
  .lt-final-checks li{font-size:1.36vw}
  .lt-final-btn{margin:2vw 0 0 2vw;min-height:0;padding:.58em 1.55em;font-size:1.78vw}
  .lt-final-signin{margin:1vw 0 0;padding-left:2vw;font-size:1.42vw;width:16.4em;text-align:center}
}

/* ============ 7 · FINAL CTA → FOOTER ============ */
.lt-closing{position:relative;z-index:5}
.lt-cta-card{margin:0 auto;transform:translateY(64px);max-width:1040px;border-radius:var(--r-lg);
  padding:36px 24px;color:#fff;
  background:linear-gradient(140deg,#0D2845 0%,#103B5E 52%,#0A7376 155%);
  box-shadow:var(--sh-lift);border:1px solid rgba(255,255,255,.16)}
.lt-cta-grid{display:grid;gap:26px}
.lt-cta-card h2{font-size:1.75rem;color:#fff;margin:0;line-height:1.25}
.lt-cta-card p{margin:14px 0 0;color:rgba(255,255,255,.92)}
.lt-cta-visual{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r-md);padding:16px}
.lt-cta-visual img{width:100%;border-radius:10px;box-shadow:0 10px 26px -12px rgba(0,0,0,.7)}
.lt-cta-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.lt-cta-steps li{display:flex;gap:10px;align-items:center;font-size:1.0625rem;color:rgba(255,255,255,.95)}

.lt-footer{background:var(--navy-deep);color:#D3DFEC;padding:104px 0 32px;font-size:1.0625rem}
.lt-fgrid{display:grid;grid-template-columns:1fr;gap:30px}
.lt-fbrand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;min-height:var(--tap)}
.lt-fbrand img{width:44px;height:44px;object-fit:contain}
.lt-fbrand span{font-weight:800;font-size:1.1875rem}
.lt-fcol h2{color:#fff;font-size:1.0625rem;margin:0 0 8px}
.lt-fcol ul{list-style:none;margin:0;padding:0}
.lt-fcol a{display:flex;align-items:center;min-height:var(--tap);color:#D3DFEC;text-decoration:none}
.lt-fcol a:hover{color:#fff;text-decoration:underline}
.lt-footer address{font-style:normal;line-height:1.75}
.lt-fsocial{display:flex;gap:10px;margin-top:18px}
.lt-fsocial a{width:var(--tap);height:var(--tap);border-radius:999px;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center}
.lt-fsocial a:hover{background:rgba(255,255,255,.28)}
.lt-fbottom{border-top:1px solid rgba(255,255,255,.16);margin-top:34px;padding-top:18px;
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:1rem}
.lt-fbottom a{color:#D3DFEC;display:inline-flex;align-items:center;min-height:var(--tap);padding:0 6px}
.lt-fbottom nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* --- inner pages (Privacy Policy, Terms of Use, blog) ---
   Tuned for long-form reading: a measure that stays comfortable, 18px body
   copy, generous leading, and clear separation between sections. No separate
   "legal page" layout — the ordinary accessible page template does the job. */
.lt-page{padding:64px 0 84px}
/* The title is a direct child of the wrap, but post-content's blocks sit inside
   WordPress's constrained layout, which centres them. Left-align both to the
   same measure so the heading and the body text share one left edge. */
/* WordPress emits `margin-left/right: auto !important` for constrained-layout
   children, so !important here is what it takes to left-align them. */
.lt-page .lt-wrap > *,
.lt-page .wp-block-post-content > *,
.lt-page .entry-content > *{
  max-width:68ch;
  margin-left:0 !important;
  margin-right:0 !important;
}
.lt-page .wp-block-post-content{max-width:none}

.lt-page h1{font-size:2.125rem;line-height:1.25;margin:0 0 .5em;color:var(--navy)}
.lt-page h2{font-size:1.5rem;line-height:1.3;margin:2.2em 0 .5em;color:var(--navy)}
.lt-page h3{font-size:1.25rem;line-height:1.35;margin:1.8em 0 .4em;color:var(--navy)}
.lt-page h2:first-of-type{margin-top:1.6em}

.lt-page p,
.lt-page li{font-size:1.125rem;line-height:1.75;color:var(--fg)}
.lt-page p{margin:0 0 1.15em}
.lt-page ul,.lt-page ol{margin:0 0 1.3em;padding-left:1.4em}
.lt-page li{margin-bottom:.5em}
.lt-page li::marker{color:var(--teal)}

/* links must be distinguishable from body text by more than colour alone */
.lt-page a{color:var(--ocean);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px}
.lt-page a:hover{text-decoration-thickness:2px}

.lt-page hr{border:0;border-top:1px solid var(--border-soft);margin:2.4em 0}
.lt-page address{font-style:normal;line-height:1.75;margin:0 0 1.15em}
.lt-page strong{font-weight:700;color:var(--navy)}
.lt-page .lt-updated{font-size:1rem;color:var(--fg-soft);margin-bottom:2em}
.lt-page table{border-collapse:collapse;width:100%;margin:0 0 1.5em}
.lt-page th,.lt-page td{border:1px solid var(--border-soft);padding:12px 14px;
  text-align:left;font-size:1.0625rem;line-height:1.6}
.lt-page th{background:var(--seaglass);color:var(--navy);font-weight:700}

@media (min-width:1080px){
  .lt-page{padding:84px 0 104px}
  .lt-page h1{font-size:2.5rem}
}

/* =================== 700px and up =================== */
@media (min-width:700px){
  :root{--edge:82px}
  .lt-btns{flex-direction:row;flex-wrap:wrap}
  .lt-title{font-size:2.125rem}
  .lt-hero{padding:150px 0 130px}
  .lt-hero h1{font-size:3rem}
  .lt-sp-hero{padding:140px 0 104px}
  .lt-sp-hero h1{font-size:2.75rem}
  .lt-hero-media::after{background:linear-gradient(104deg,rgba(6,20,36,.95) 0%,
    rgba(9,29,50,.9) 34%,rgba(13,40,69,.62) 58%,rgba(13,40,69,.2) 82%)}
  .lt-tools{grid-template-columns:repeat(4,1fr);gap:28px 16px}
  .lt-tools .lt-tool-icon{width:3.75rem;height:3.75rem}
  .lt-app-visual{min-height:0}
  .lt-type-grid,.lt-why-grid,.lt-channels{grid-template-columns:1fr 1fr}
  .lt-cta-grid{grid-template-columns:1.1fr .9fr;align-items:center}
  .lt-cta-card{padding:48px 40px;transform:translateY(80px)}
  .lt-cta-card h2{font-size:2.125rem}
  .lt-fgrid{grid-template-columns:1fr 1fr}
  .lt-footer{padding-top:130px}
}

/* =================== 1080px and up =================== */
@media (min-width:1080px){
  :root{--edge:120px;--hdr-h:103px}
  .lt-hdr-shell{padding:24px 16px 12px}
  .lt-nav{display:block;margin-left:auto}
  .lt-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
  .lt-nav a{display:flex;align-items:center;min-height:var(--tap);padding:0 15px;white-space:nowrap;
    border-radius:999px;text-decoration:none;color:var(--navy);font-weight:600;font-size:1.0625rem}
  .lt-nav a:hover{background:var(--sky-pale)}
  .lt-signin{display:flex;white-space:nowrap}
  .lt-burger{display:none}
  .lt-brand span{display:block}
  .lt-hdr{gap:20px;padding:9px 12px 9px 16px}
  .lt-hdr-act{margin-left:0}
  .lt-title{font-size:2.5rem}
  .lt-sub{font-size:1.1875rem}
  .lt-hero{padding:196px 0 190px}
  .lt-hero h1{font-size:3.9rem}
  .lt-hero .lt-hero-sub{font-size:1.4375rem}
  /* two columns centred in the 1200px container: text left, the whole photo right */
  .lt-app{padding-bottom:0}
  .lt-app{overflow-x:clip}
  /* wide, centred two-column composition; the photo matches the text beside it */
  .lt-app{--lt-app-w:min(1400px,calc(100vw - 64px))}
  .lt-app::before,.lt-app::after{content:"";position:absolute;top:0;bottom:0;z-index:0;pointer-events:none;
    width:max(28px,calc((100vw - var(--lt-app-w))/2 + 12px));
    background:url(../images/app-side-waves.svg) no-repeat center/100% 100%}
  .lt-app::before{left:0}
  .lt-app::after{right:0;transform:scaleX(-1)}
  /* 40px inside the container keeps text and photo clear of the side waves */
  .lt-app-grid{position:relative;z-index:1;max-width:var(--lt-app-w);margin:0 auto;padding:0 40px;column-gap:24px;
    grid-template-columns:552px minmax(0,1fr);align-items:start;
    grid-template-rows:auto auto auto;
    grid-template-areas:"head visual" "benefits visual" "tools cta"}
  .lt-app-head,.lt-app-benefits,.lt-app-tools,.lt-app-cta{position:relative;z-index:3;margin:0;max-width:none;padding-left:0;padding-right:0}
  .lt-app-head{padding-top:78px}
  /* lower row: the icon block and the free-card block share one vertical midpoint */
  .lt-app-grid{padding-bottom:120px}
  .lt-app-tools,.lt-app-cta{align-self:center;padding-bottom:0}
  .lt-app-cta{max-width:600px;padding-top:32px} /* offsets the divider line above the icon heading */
  .lt-app-visual{align-self:start;margin-top:var(--lt-photo-top,92px);height:auto;min-height:0;border-radius:0;overflow:visible}
  /* the decorative curves sit around the photo without adding to its layout height */
  .lt-app-photo{position:relative;padding:7.634% 0 19.542%;margin:-7.634% 0 -19.542%}
  .lt-app-photo::before,.lt-app-photo::after{content:"";position:absolute;top:0;bottom:0;left:-2.29%;right:-9.16%;
    background:no-repeat center/100% 100%;pointer-events:none}
  .lt-app-photo::before{background-image:url(../images/app-photo-frame-back.svg);z-index:0}
  .lt-app-photo::after{background-image:url(../images/app-photo-frame-front.svg);z-index:2}
  .lt-app-photo picture{position:relative;z-index:1;display:block}
  .lt-app-visual img{max-width:none}
  .lt-types,.lt-why,.lt-market,.lt-gearsec{padding-bottom:106px}
  .lt-appcontent{margin-top:44px;--lt-gap:22px}
  .lt-sp-hero{padding:170px 0 120px}
  .lt-sp-hero h1{font-size:3.4rem}
  .lt-sp-body{padding-bottom:110px}
  .lt-sp-body.lt-join{padding-bottom:calc(var(--edge) + 56px)}
  .lt-yourway,.lt-community{padding-bottom:112px}
  .lt-type-grid{grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
  .lt-why-grid,.lt-channels{grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
  .lt-fgrid{grid-template-columns:1.6fr 1fr 1fr 1.25fr;gap:44px}
}

/* very wide screens: text column runs heading to buttons, the photo matches it */
@media (min-width:1880px){
  .lt-app{--lt-app-w:min(1888px,calc(100vw - 32px))}
  .lt-app-grid{grid-template-columns:640px minmax(0,1fr);column-gap:0;grid-template-rows:auto auto auto 1fr;
    grid-template-areas:"head visual" "benefits visual" "tools visual" "cta visual"}
  .lt-app-grid{padding-bottom:120px}
  .lt-app-tools,.lt-app-cta{align-self:start}
  .lt-app-cta{max-width:none;padding-top:0}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media (prefers-contrast:more){
  .lt-type::after{background:rgba(5,17,30,.8)}
  .lt-wcard,.lt-channel{border:1px solid var(--navy)}
}

/* ==========================================================================
   VACATION APP PAGE (.lt-va-*)
   Scoped entirely to this page. Mobile-first, same tokens, same shaped
   transitions and same button components as the homepage, so the page reads
   as part of the site rather than a separate template.
   ========================================================================== */

/* --- 1 - hero: reuses .lt-hero, adds a two-column split on large screens --- */
.lt-va-hero-grid{display:grid;gap:34px}
/* Vacation App hero: "Vacation prep. Made simple." (owner mockup). Phones/tablets: copy, then the artwork. */
.lt-hero.lt-va-hero--prep{color:var(--navy);background:#FBFAF5;padding:calc(var(--hdr-h) + 18px) 0 0;display:flex;flex-direction:column-reverse;overflow:hidden}
.lt-va-hero--prep .lt-va-hero-art{display:block;line-height:0;margin-top:8px;padding-bottom:10px}
.lt-va-hero--prep .lt-va-hero-art img{-webkit-mask-image:linear-gradient(to bottom,#000 95%,transparent 100%);mask-image:linear-gradient(to bottom,#000 95%,transparent 100%)}
.lt-va-hero--prep .lt-va-hero-art img{display:block;width:100%;height:auto}
.lt-va-prep{position:relative;z-index:2;text-align:center;width:100%;min-width:0}
@media (max-width:359px){.lt-va-prep-btn{font-size:1rem;padding-inline:18px}}
.lt-va-prep-eyebrow{margin:0;color:#14324F;font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:clamp(.8125rem,1.9vw,1rem)}
.lt-va-prep-title{margin:6px 0 0;line-height:0}
.lt-va-prep-title img{display:block;height:auto;margin:0 auto}
.lt-va-prep-sub{margin:10px 0 0;color:#14324F;font-size:clamp(1.125rem,2.6vw,1.5rem);line-height:1.3}
.lt-va-prep-sub strong{display:block;font-weight:800}
.lt-va-prep-feats{list-style:none;margin:18px auto 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;max-width:460px;text-align:left}
.lt-va-prep-feats li{display:flex;align-items:center;gap:10px;font-weight:800;color:#14324F;font-size:clamp(1rem,2.4vw,1.3125rem);line-height:1.15}
.lt-va-prep-feats img{flex:none;width:clamp(44px,10vw,60px);height:auto}
.lt-va-prep-btn{margin-top:22px}
.lt-va-prep-signin{margin:12px 0 0;font-size:1.0625rem}
.lt-va-prep-signin a{color:#1446B8;font-weight:700;text-decoration:underline;text-underline-offset:.18em}
.lt-va-prep-signin a:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.lt-va-prep-trust{margin:6px 0 0;color:#2A3F57;font-size:1rem}
@media (min-width:1080px){
  /* desktop: the composition at its natural size behind; copy sized in vw from the mockup (1586px wide) so it sits on the pale map left of the suitcase */
  .lt-hero.lt-va-hero--prep{display:block;min-height:calc(var(--hdr-h) + 53vw);padding:calc(var(--hdr-h) + 2.4vw) 0 28px}
  .lt-va-hero--prep .lt-va-hero-art{position:absolute;left:0;right:0;top:var(--hdr-h);margin:0;padding:0;
    -webkit-mask-image:linear-gradient(to bottom,#000 95%,transparent 100%);mask-image:linear-gradient(to bottom,#000 95%,transparent 100%)}
  .lt-va-hero--prep .lt-va-hero-art img{width:100%;height:auto}
  .lt-va-prep{max-width:none;margin:0;padding:0 0 0 6.1vw;width:44vw;text-align:left}
  .lt-va-prep-eyebrow{font-size:1.13vw}
  .lt-va-prep-title{margin-top:.5vw}
  .lt-va-prep-title img{margin:0 0 0 -.2vw;max-width:none} /* may run slightly past the text column so its lettering matches the other titles */
  .lt-va-prep-sub{margin-top:.2vw;font-size:1.83vw;line-height:1.22}
  .lt-va-prep-feats{margin:1.2vw 0 0;max-width:none;width:38vw;grid-template-columns:21.3vw auto;gap:.35vw 0}
  .lt-va-prep-feats li{gap:1.2vw;font-size:1.64vw;min-height:4.95vw}
  .lt-va-prep-feats img{width:6.3vw;max-height:4.9vw;object-fit:contain;object-position:left center}
  .lt-va-prep-btn{margin-top:1.1vw;width:29.2vw;font-size:1.7vw;min-height:0;padding:.55em 1em}
  .lt-va-prep-signin,.lt-va-prep-trust{width:29.2vw;text-align:center}
  .lt-va-prep-signin{margin-top:.9vw;font-size:1.17vw}
  .lt-va-prep-trust{margin-top:.35vw;font-size:1.1vw}
}

.lt-va-hero-copy h1{font-size:2.125rem;letter-spacing:-.02em;color:#fff;line-height:1.2;margin:10px 0 0}
.lt-va-hero-visual img{width:100%;height:auto;border-radius:var(--r-md);box-shadow:var(--sh-lift)}

/* --- 2 - four benefits --- */
.lt-va-benefits{padding:60px 0 64px;background:#fff}
.lt-va-bgrid{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:18px}
.lt-va-bcard{background:#fff;border:1px solid var(--border-soft);border-radius:var(--r-md);
  padding:24px 22px 26px;box-shadow:var(--sh);border-top:5px solid var(--teal)}
.lt-va-bcard--green{border-top-color:var(--green)}
.lt-va-bcard--ocean{border-top-color:var(--ocean)}
.lt-va-bcard--aqua{border-top-color:var(--aqua)}
.lt-va-bico{display:flex;align-items:center;justify-content:center;width:56px;height:56px;
  border-radius:16px;background:var(--seaglass)}
.lt-va-bcard--green .lt-va-bico{background:var(--green-tint)}
.lt-va-bcard--ocean .lt-va-bico,.lt-va-bcard--aqua .lt-va-bico{background:var(--sky-pale)}
.lt-va-bcard h3{font-size:1.1875rem;color:var(--navy);margin:16px 0 6px;line-height:1.3}
.lt-va-bcard p{margin:0;color:var(--fg-muted);font-size:1.0625rem;line-height:1.6}

/* --- 3 - app tools: nine of them, 3x3 on desktop --- */
/* Vacation App page: "What Preparing Ahead Actually Gets You" coastal postcards (owner mockup) */
.lt-va-benefits.lt-vab{position:relative;overflow-x:clip;text-align:center;padding:calc(var(--edge) + 10px) 0 calc(var(--edge) + 36px)!important;
  background:url(../images/vab-top-1000.webp) no-repeat top center/100% auto,url(../images/vab-bottom-1000.webp) no-repeat bottom center/100% auto,
  linear-gradient(#BCE6FB 0,#8FDDF6 18%,#2ED2EA 38%,#5ADBE8 60%,#C9EBE2 82%,#F7E7D6 100%)}
.lt-vab .lt-wrap{position:relative;z-index:1}
.lt-vab-head{margin:0;line-height:1.05}
.lt-vab-kicker{display:block;color:var(--navy);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.5rem,4.2vw,2.75rem);text-shadow:0 0 3px #fff,0 0 12px rgba(255,255,255,.95)}
.lt-vab-title{display:block;height:auto;margin:2px auto 0}
.lt-vab-cards{list-style:none;margin:26px auto 0;padding:0;display:grid;gap:22px;grid-template-columns:1fr;max-width:420px}
.lt-vab-card{display:flex;flex-direction:column;align-items:center;background:#FBF6EA;border:1px solid #E8DFCB;border-radius:10px;padding:12px 12px 20px;
  box-shadow:0 12px 26px rgba(8,50,80,.22),0 2px 5px rgba(8,50,80,.1)}
.lt-vab-card img{display:block;width:100%;height:auto;border:4px solid #1F7A75;border-radius:4px}
.lt-vab-card h3{margin:14px 0 0;color:var(--navy);font-weight:800;font-size:1.5rem;line-height:1.15}
.lt-vab-card p{margin:6px 0 0;color:#1E3550;font-size:1.0625rem;line-height:1.45;max-width:20em}
@media (min-width:700px){
  /* sky and coast strip at full width (palms, plane and ship stay in view), the sea as a gradient sampled from the artwork, the sand strip just above the bottom wave */
  .lt-va-benefits.lt-vab{--vab-s:calc(var(--edge) * .4);--vab-m:calc(100% - 23.4vw - var(--vab-s));background:url(../images/vab-sky-1000.webp) no-repeat top center/100% auto,url(../images/vab-sand-1698.webp) no-repeat center bottom var(--vab-s)/100% auto,linear-gradient(#45cdf5 calc(17.6vw + var(--vab-m) * 0),#36d0f0 calc(17.6vw + var(--vab-m) * 0.125),#22c3ef calc(17.6vw + var(--vab-m) * 0.25),#3bdae6 calc(17.6vw + var(--vab-m) * 0.375),#6bdedf calc(17.6vw + var(--vab-m) * 0.5),#6de3e3 calc(17.6vw + var(--vab-m) * 0.625),#a2eae4 calc(17.6vw + var(--vab-m) * 0.75),#cae9e0 calc(17.6vw + var(--vab-m) * 0.875),#b9d8dc calc(17.6vw + var(--vab-m) * 1),#feeed7 calc(100% - var(--vab-s) - 1px))}
  .lt-vab-cards{grid-template-columns:repeat(2,1fr);max-width:none;gap:26px}
  .lt-vab-card--1{transform:rotate(-2deg)} .lt-vab-card--2{transform:rotate(-1deg)} .lt-vab-card--3{transform:rotate(1.5deg)} .lt-vab-card--4{transform:rotate(1.8deg)}
}
@media (min-width:1080px){
  .lt-va-benefits.lt-vab{background-image:url(../images/vab-sky-1698.webp),url(../images/vab-sand-1698.webp),linear-gradient(#45cdf5 calc(17.6vw + var(--vab-m) * 0),#36d0f0 calc(17.6vw + var(--vab-m) * 0.125),#22c3ef calc(17.6vw + var(--vab-m) * 0.25),#3bdae6 calc(17.6vw + var(--vab-m) * 0.375),#6bdedf calc(17.6vw + var(--vab-m) * 0.5),#6de3e3 calc(17.6vw + var(--vab-m) * 0.625),#a2eae4 calc(17.6vw + var(--vab-m) * 0.75),#cae9e0 calc(17.6vw + var(--vab-m) * 0.875),#b9d8dc calc(17.6vw + var(--vab-m) * 1),#feeed7 calc(100% - var(--vab-s) - 1px))}
  .lt-vab .lt-wrap{max-width:1440px}
  .lt-vab-cards{grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(18px,2.4vw,40px);padding:0 10px}
  .lt-vab-card--2{margin-top:-6px} .lt-vab-card--3{margin-top:-4px} .lt-vab-card--4{margin-top:8px}
  .lt-vab-card h3{font-size:clamp(1.3125rem,1.65vw,1.625rem)}
}
/* One wave per boundary between illustrated sections: the upper section is masked to the wave
   along its bottom edge and the next section slides up behind it, so its own background shows
   through (no white band, no second wave). --a = gentle wave, --b = deep left / shallow right. */
.lt-sec.lt-join{position:relative;z-index:9;
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - var(--edge) + 1px) no-repeat,var(--lt-join) bottom/100% var(--edge) no-repeat;
  mask:linear-gradient(#000 0 0) top/100% calc(100% - var(--edge) + 1px) no-repeat,var(--lt-join) bottom/100% var(--edge) no-repeat}
.lt-join--a{--lt-join:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 1440 120%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0,0%20L1440,0%20L1440,112%20C1200,112%20960,24%20720,24%20C480,24%20240,112%200,112%20Z%27/%3E%3C/svg%3E")}
.lt-join--b{--lt-join:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 1440 120%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0,0%20L1440,0%20L1440,30%20C1250,40%201040,22%20860,22%20C600,22%20330,92%200,112%20Z%27/%3E%3C/svg%3E")}
.lt-sec.lt-join + .lt-sec{position:relative;z-index:8;margin-top:calc(-1 * var(--edge))}
.lt-sec.lt-join + .lt-sec.lt-join + .lt-sec{z-index:7}
.lt-sec.lt-join + .lt-sec.lt-join + .lt-sec.lt-join + .lt-sec{z-index:6}
.lt-sec.lt-join + .lt-sec.lt-join + .lt-sec.lt-join + .lt-sec.lt-join + .lt-sec{z-index:5}
/* a section after the last one in a chain draws its own wave over it, so it must sit above it */
.lt-sec.lt-join + .lt-sec:not(.lt-join) + .lt-sec{position:relative;z-index:10}
/* Vacation App page: the shared-wave chain runs through six sections, so each one is stacked explicitly above the next */
#lt-main > .lt-vab{z-index:20} #lt-main > .lt-va-ready{z-index:19} #lt-main > .lt-vhw{z-index:18}
#lt-main > .lt-sp-body{z-index:15} #lt-main > .lt-vty{z-index:17} #lt-main > .lt-vfr{z-index:16} #lt-main > .lt-vua{z-index:15} #lt-main > .lt-vcta{z-index:14}
/* Vacation App title artwork: one letter height for every title at each screen size.
   --k is each artwork's width divided by its measured per-line letter height (transparent padding excluded),
   so width = letter height x k gives the same lettering height on one- and two-line titles alike.
   On phones the letter height is capped so the widest title (Actually Gets You, k 9.09) still fits the screen. */
:root{--tl:min(11vw,calc((100vw - 40px) / 9.2))}
@media (min-width:700px){:root{--tl:clamp(48px,6.4vw,64px)}}
@media (min-width:1080px){:root{--tl:clamp(62px,5.6vw,96px)}}
.lt-ttl{width:calc(var(--tl) * var(--k));max-width:100%;height:auto}
/* ---- Vacation App: How It Works (travel map) ---- */
.lt-vhw{position:relative;overflow-x:clip;text-align:center;padding:calc(var(--edge) + 14px) 0 calc(var(--edge) + 34px);
  background:url(../images/vhw-top-1000.webp) no-repeat top center/100% auto,url(../images/vhw-bottom-1000.webp) no-repeat bottom center/100% auto,#F9F6EB}
.lt-vhw-head{margin:0;line-height:0}
.lt-vhw-title{display:block;height:auto;margin:0 auto}
.lt-vhw-sub{margin:6px auto 0;color:var(--navy);font-weight:700;font-size:clamp(1.0625rem,1.6vw,1.375rem);line-height:1.35}
.lt-vhw-steps{--gap:34px;list-style:none;margin:28px auto 0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--gap);max-width:400px}
.lt-vhw-step{position:relative;display:flex;flex-direction:column;align-items:center}
.lt-vhw-pin{position:relative;z-index:2;display:block;width:46px;height:58px;filter:drop-shadow(0 3px 3px rgba(12,60,90,.3))}
.lt-vhw-pin svg{display:block;width:100%;height:100%}
.lt-vhw-pin text{font-family:inherit}
.lt-vhw-leg{position:absolute;z-index:1;pointer-events:none}
.lt-vhw-leg svg{display:block;width:100%;height:100%;overflow:visible}
.lt-vhw-leg path{fill:none;stroke:#1C8EA0;stroke-width:3;stroke-dasharray:9 8;stroke-linecap:round;vector-effect:non-scaling-stroke}
/* phones: a short straight dash between one step's text and the next pin */
.lt-vhw-leg{left:calc(50% - 1.5px);top:100%;width:0;height:var(--gap);border-left:3px dashed #1C8EA0}
.lt-vhw-leg svg,.lt-vhw-leg--plane,.lt-vhw-plane{display:none}
.lt-vhw-art{display:flex;align-items:flex-end;justify-content:center;width:100%;height:210px;margin-top:-4px}
.lt-vhw-art img{display:block;max-width:100%;max-height:100%;width:auto;height:auto}
.lt-vhw-step h3{margin:10px 0 0;color:var(--navy);font-weight:800;font-size:1.4375rem;line-height:1.2}
.lt-vhw-step p{margin:6px auto 0;max-width:19em;color:#1E3550;font-size:1.0625rem;line-height:1.45}
.lt-vhw-example{margin:38px auto 0;max-width:780px}
.lt-vhw-ex-label{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 10px;max-width:none}
.lt-vhw-ex-label::before,.lt-vhw-ex-label::after{content:"";width:46px;height:2px;background:#5FB7C6;border-radius:2px}
.lt-vhw-ex-label span{display:inline-block;padding:4px calc(18px - .12em) 4px 18px;border-radius:999px;background:#E3F3FB;border:1px solid #BFE2F2;color:#1B4E73;font-weight:800;font-size:.9375rem;letter-spacing:.12em;text-transform:uppercase}
.lt-vhw-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:"img img" "info ring";gap:14px 16px;align-items:center;text-align:left;
  background:#fff;border:1px solid #DDEBF2;border-radius:16px;padding:12px 12px 16px;box-shadow:0 10px 26px rgba(20,60,90,.14)}
.lt-vhw-card-img{grid-area:img;display:block;width:100%;height:auto;aspect-ratio:518/334;object-fit:cover;border-radius:10px}
.lt-vhw-card-info{grid-area:info;padding-left:6px}
.lt-vhw-card-name{margin:0;color:var(--navy);font-weight:800;font-size:clamp(1.25rem,2.2vw,1.875rem);line-height:1.18}
.lt-vhw-card-ship{margin:8px 0 0;color:#1E3550;font-size:1.0625rem}
.lt-vhw-ring{grid-area:ring;display:flex;flex-direction:column;align-items:center;padding-right:4px}
.lt-vhw-ring-dial{position:relative;width:96px;height:96px}
.lt-vhw-ring-dial svg{display:block;width:100%;height:100%}
.lt-vhw-ring-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#15803D;font-weight:800;font-size:1.625rem}
.lt-vhw-ring-label{margin:6px 0 0;color:#15803D;font-weight:700;font-size:.9375rem;white-space:nowrap}
.lt-vhw-caption{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0 0;color:var(--navy);font-weight:800;font-size:clamp(1.0625rem,1.6vw,1.375rem);max-width:none}
.lt-vhw-caption svg{width:40px;height:12px;flex:none}
.lt-vhw-caption path{fill:none;stroke:#3AAFC3;stroke-width:2.4;stroke-linecap:round}
@media (min-width:700px){
  .lt-vhw{background-image:url(../images/vhw-top-1000.webp),url(../images/vhw-bottom-1000.webp)}
  .lt-vhw-steps{grid-template-columns:repeat(2,1fr);max-width:820px;--gap:30px;column-gap:var(--gap);row-gap:40px}
  /* the route runs pin to pin along each row, above the pictures, so it never reaches text */
  .lt-vhw-leg{border:0;top:12px;left:calc(50% + 28px);width:calc(100% + var(--gap) - 56px);height:34px}
  .lt-vhw-leg svg{display:block}
  .lt-vhw-step--2 .lt-vhw-leg{display:none}
  .lt-vhw-card{grid-template-columns:minmax(0,260px) 1fr auto;grid-template-areas:"img info ring";padding:12px 22px 12px 12px}
  .lt-vhw-ring{border-left:1px solid #DCE7EE;padding:4px 0 4px 22px}
}
@media (min-width:1080px){
  .lt-vhw{background:url(../images/vhw-bg-1512.webp) no-repeat center/100% 100%,#F9F6EB;padding-top:calc(var(--edge) + 4px)}
  .lt-vhw .lt-wrap{max-width:1400px}
  .lt-vhw-steps{grid-template-columns:repeat(4,1fr);max-width:none;--gap:26px;margin-top:22px}
  .lt-vhw-step--2 .lt-vhw-leg{display:block}
  .lt-vhw-leg--plane{display:block;left:calc(50% + 24px);top:-34px;width:min(4.6vw,66px);height:52px}
  .lt-vhw-plane{display:block;position:absolute;z-index:1;left:calc(50% + 18px + min(4.6vw,66px));top:-96px;width:min(6.6vw,104px);height:auto}
  .lt-vhw-art{height:clamp(150px,14.2vw,230px)}
  .lt-vhw-step h3{font-size:clamp(1.25rem,1.6vw,1.625rem)}
  .lt-vhw-step p{font-size:clamp(1rem,1.15vw,1.1875rem)}
  .lt-vhw-example{margin-top:30px}
}
/* ---- Vacation App: Prepare for Any Type of Vacation (photo postcards) ---- */
/* the top scene fades out at its foot into the plain pale colour; the section ends in the one shared wave into 100% FREE */
.lt-vty{position:relative;overflow-x:clip;text-align:center;
  padding:calc(var(--edge) + 10px) 0 calc(var(--edge) + 30px);
  background:url(../images/vty-bg-1000.webp) no-repeat top center/100% auto,#E0F6F2}
.lt-vty-head{margin:0;line-height:1.05}
.lt-vty-kicker{display:block;color:var(--navy);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.5rem,4vw,2.75rem);text-shadow:0 0 3px #fff,0 0 12px rgba(255,255,255,.95)}
.lt-vty-title{display:block;height:auto;margin:13px auto 0} /* visible gap to "Prepare for" matches the gap to the subtitle */
.lt-vty-sub{margin:8px auto 0;max-width:46em;color:#16324F;font-size:clamp(1.0625rem,1.5vw,1.375rem);line-height:1.4;text-shadow:0 0 3px #fff,0 0 10px rgba(255,255,255,.9)}
.lt-vty-sub strong{font-weight:800;color:var(--navy)}
.lt-vty-cards{list-style:none;margin:26px auto 0;padding:0;display:grid;grid-template-columns:1fr;gap:20px;max-width:380px}
.lt-vty-card{--t:0;display:flex;flex-direction:column;background:#FBF9F1;border:1px solid #ECE6D6;border-radius:8px;padding:10px 10px 8px;
  box-shadow:0 8px 18px rgba(16,52,72,.18),0 1px 3px rgba(16,52,72,.12)}
.lt-vty-card img{display:block;width:100%;height:auto;aspect-ratio:600/440;object-fit:cover;border-radius:4px}
.lt-vty-card h3{margin:8px 0 2px;color:var(--navy);font-weight:800;font-size:1.5rem;line-height:1.15}
@media (min-width:700px){
  .lt-vty-cards{grid-template-columns:repeat(2,1fr);max-width:760px;gap:26px 28px}
  .lt-vty-card{transform:rotate(calc(var(--t) * .6deg))}
  .lt-vty-card:nth-child(1){--t:-2}  .lt-vty-card:nth-child(2){--t:2}   .lt-vty-card:nth-child(3){--t:-1}
  .lt-vty-card:nth-child(4){--t:-.8} .lt-vty-card:nth-child(5){--t:3}   .lt-vty-card:nth-child(6){--t:-3}
  .lt-vty-card:nth-child(7){--t:1.5} .lt-vty-card:nth-child(8){--t:-2}  .lt-vty-card:nth-child(9){--t:.6}
  .lt-vty-card:nth-child(10){--t:2}
}
@media (min-width:1080px){
  .lt-vty{background-image:url(../images/vty-bg-1536.webp)}
  .lt-vty .lt-wrap{max-width:1460px}
  .lt-vty-title{margin-top:clamp(11px,calc(1.1vw - 1px),15px)}
  .lt-vty-cards{grid-template-columns:repeat(5,1fr);max-width:none;gap:20px 18px;margin-top:clamp(20px,2.2vw,34px);padding:0 6px}
  .lt-vty-card{padding:8px 8px 6px;transform:rotate(calc(var(--t) * 1deg))}
  .lt-vty-card h3{font-size:clamp(1.1875rem,1.6vw,1.6875rem);margin-top:6px}
}
/* ---- Vacation App: 100% FREE (daylight beach) ---- */
/* the beach scene sits at the foot; above it the flat sky colour, which is also the colour of the wave into the section */
.lt-vfr{position:relative;overflow-x:clip;text-align:center;padding:calc(var(--edge) + 6px) 0 calc(var(--edge) + 34px);
  background:url(../images/vfr-bg-1000.webp) no-repeat center bottom/100% auto,#099DFD}
.lt-vfr-inner{display:flex;flex-direction:column;align-items:center}
.lt-vfr-head{margin:0;line-height:1}
.lt-vfr-title{display:block;height:auto;margin:0 auto}
.lt-vfr-always{display:block;margin-top:-.06em;color:#fff;font-weight:900;letter-spacing:-.01em;font-size:calc(var(--tl) * .7);line-height:1.05;
  /* a deep-navy outline around the white letters: white on the sky blue alone is under 3:1 (WCAG 1.4.3) */
  text-shadow:0 0 1px #0D2845,1.5px 0 0 #0D2845,-1.5px 0 0 #0D2845,0 1.5px 0 #0D2845,0 -1.5px 0 #0D2845,1px 1px 0 #0D2845,-1px -1px 0 #0D2845,1px -1px 0 #0D2845,-1px 1px 0 #0D2845,0 4px 0 #0D2845,0 8px 18px rgba(6,58,128,.35)}
.lt-vfr-badges{list-style:none;margin:20px auto 0;padding:0;display:flex;flex-direction:column;align-items:stretch;gap:12px;width:min(100%,320px)}
.lt-vfr-badges li{display:flex;align-items:center;justify-content:center;gap:.55em;padding:.45em 1.1em .45em .55em;border-radius:999px;background:rgba(255,255,255,.95);
  border:2px solid #fff;color:var(--navy);font-weight:800;font-size:1.25rem;line-height:1.2;box-shadow:0 6px 16px rgba(0,58,128,.2)}
.lt-vfr-badges svg{width:1.7em;height:1.7em;flex:none;filter:drop-shadow(0 2px 2px rgba(10,80,30,.3))}
.lt-vfr-panel{width:100%;max-width:1060px;margin:20px auto 0;padding:20px 18px 22px;border-radius:18px;background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 30px rgba(0,50,110,.22)}
.lt-vfr-panel h3{margin:0;color:var(--navy);font-weight:800;font-size:clamp(1.375rem,2.5vw,2.25rem);line-height:1.2}
.lt-vfr-fund{margin:10px auto 0;max-width:40em;color:var(--navy);font-weight:700;font-size:clamp(1.0625rem,1.45vw,1.375rem);line-height:1.45}
.lt-vfr-thanks{margin:6px auto 0;max-width:46em;color:#1E3550;font-size:clamp(1.0625rem,1.45vw,1.375rem);line-height:1.45}
.lt-vfr-btn{margin-top:24px;white-space:normal;text-align:center}
@media (min-width:700px){
  .lt-vfr{padding-top:calc(var(--edge) + 10px)}
  .lt-vfr-badges{flex-direction:row;flex-wrap:wrap;justify-content:center;width:auto;gap:14px 18px}
  .lt-vfr-badges li{font-size:clamp(1.25rem,2vw,1.875rem)}
  .lt-vfr-panel{padding:24px 30px 26px}
  .lt-vfr-btn{white-space:nowrap;min-height:64px;padding:.55em 1.8em;font-size:clamp(1.25rem,2.1vw,2rem)}
}
@media (min-width:1080px){
  /* keep the mockup's proportions so the whole beach scene shows under the content */
  .lt-vfr{background-image:url(../images/vfr-bg-1536.webp);min-height:66.67vw;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--edge) + 10px) 0 calc(var(--edge) + 40px)}
  .lt-vfr-badges{gap:18px 26px;margin-top:18px}
  .lt-vfr-panel{margin-top:24px;padding:28px 40px 30px}
}
/* ---- Vacation App: Use It Anywhere (device postcards) ---- */
.lt-vua{position:relative;overflow-x:clip;text-align:center;padding:calc(var(--edge) + 12px) 0 calc(var(--edge) + 34px);
  background:url(../images/vua-bg-1000.webp) no-repeat top center/100% auto,#EFF5EE}
.lt-vua-head{margin:0;line-height:0}
.lt-vua-title{display:block;height:auto;margin:0 auto}
.lt-vua-sub{margin:10px auto 0;max-width:36em;color:var(--navy);font-weight:800;font-size:clamp(1.125rem,2vw,1.75rem);line-height:1.3}
.lt-nowrap{white-space:nowrap}
.lt-vua-line{margin:6px auto 0;color:#1E3550;font-size:clamp(1.0625rem,1.45vw,1.375rem);line-height:1.4}
.lt-vua-cards{list-style:none;margin:26px auto 0;padding:0;display:grid;grid-template-columns:1fr;gap:22px;max-width:440px}
.lt-vua-card{--t:0;display:flex;flex-direction:column;background:#FBF9F1;border:1px solid #ECE6D6;border-radius:10px;padding:12px 12px 10px;
  box-shadow:0 10px 22px rgba(16,52,72,.18),0 1px 3px rgba(16,52,72,.12)}
.lt-vua-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:5px}
.lt-vua-card h3{margin:10px 0 2px;color:var(--navy);font-weight:800;font-size:1.625rem;line-height:1.15}
/* the Computer card is the owner's finished postcard image: no second frame, and it spills over the cell by its own pale margin so the postcard lines up with its neighbours */
.lt-vua-card--art{background:none;border:0;padding:0;box-shadow:none;align-self:center}
.lt-vua-card--art img{width:102.8%;max-width:none;height:auto;margin:-1.6% -1.4% -2%;aspect-ratio:var(--ar);object-fit:contain;border-radius:0;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 1.3%,#000 98.7%,transparent 100%),linear-gradient(transparent 0,#000 1.4%,#000 98.2%,transparent 100%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 1.3%,#000 98.7%,transparent 100%),linear-gradient(transparent 0,#000 1.4%,#000 98.2%,transparent 100%);mask-composite:intersect}
.lt-vua-badges{list-style:none;margin:26px auto 0;padding:0;display:flex;flex-direction:column;align-items:center;gap:12px}
.lt-vua-badges li{display:inline-flex;align-items:center;gap:.6em;padding:.5em 1.3em .5em .6em;border-radius:999px;background:#DDF2EC;border:1px solid #C5E8DE;
  color:var(--navy);font-weight:700;font-size:1.1875rem;line-height:1.2}
.lt-vua-badges svg{width:1.7em;height:1.7em;flex:none}
@media (min-width:700px){
  .lt-vua-cards{grid-template-columns:repeat(2,1fr);max-width:820px;gap:26px 28px}
  .lt-vua-card{transform:rotate(calc(var(--t) * .6deg))}
  .lt-vua-card:nth-child(1){--t:-2} .lt-vua-card:nth-child(2){--t:1} .lt-vua-card:nth-child(3){--t:2.5}
  /* the third card centres under the first two */
  .lt-vua-card:nth-child(3){grid-column:1 / -1;justify-self:center;width:calc(50% - 14px)}
  .lt-vua-badges{flex-direction:row;justify-content:center;gap:24px}
  .lt-vua-badges li{font-size:clamp(1.1875rem,1.6vw,1.5rem)}
}
@media (min-width:1080px){
  .lt-vua{background-image:url(../images/vua-bg-1536.webp)}
  .lt-vua .lt-wrap{max-width:1460px}
  .lt-vua-cards{grid-template-columns:repeat(3,1fr);max-width:none;gap:24px 26px;padding:0 6px;margin-top:clamp(22px,2.4vw,36px)}
  .lt-vua-card{transform:rotate(calc(var(--t) * 1deg))}
  .lt-vua-card:nth-child(3){grid-column:auto;width:auto}
  .lt-vua-card h3{font-size:clamp(1.5rem,2.1vw,2.125rem)}
}
/* ---- Vacation App: Ready for Your Next Vacation? (closing section) ---- */
/* one continuous pale sky: the flat colour above the scene is the colour its top fades into; no panel behind the copy.
   The scene ends in the footer navy, so it runs straight into the footer. */
.lt-vcta{position:relative;overflow-x:clip;text-align:center;background:#A4EBFC;padding-top:calc(var(--edge) + 6px)}
.lt-vcta-stage{position:relative;background:url(../images/vcta-bg-1000.webp) no-repeat center bottom/100% auto;padding:0 16px 38vw}
.lt-vcta-copy{position:relative;z-index:1;max-width:760px;margin:0 auto}
.lt-vcta-head{margin:0;line-height:0}
.lt-vcta-title{display:block;height:auto;margin:0 auto}
.lt-vcta-lead{margin:12px auto 0;color:#0F2A6B;font-weight:800;font-size:clamp(1.1875rem,2.6vw,1.75rem);line-height:1.25}
.lt-vcta-sub{margin:6px auto 0;max-width:34em;color:#123170;font-weight:600;font-size:clamp(1.0625rem,1.9vw,1.25rem);line-height:1.4}
.lt-vcta-btn{margin-top:20px;white-space:normal;text-align:center}
.lt-vcta-note{margin:14px auto 0;max-width:none;color:#123170;font-weight:600;font-size:1.0625rem}
.wp-site-blocks:has(.lt-vcta) > footer.wp-block-template-part{margin-block-start:0}
/* the scene already ends in a deep navy band, so the footer needs less room at its top on this page */
.wp-site-blocks:has(.lt-vcta) .lt-footer{padding-top:28px}
@media (min-width:700px){
  .lt-vcta-stage{padding-bottom:34vw}
  .lt-vcta-btn{white-space:nowrap;min-height:60px;padding:.55em 1.7em;font-size:clamp(1.25rem,2.2vw,1.625rem)}
}
@media (min-width:1080px){
  /* the scene at its own proportions, the copy laid over the open sky in the middle, as in the mockup */
  .lt-vcta-stage{aspect-ratio:1672/941;padding:0;background-image:url(../images/vcta-bg-1672.webp);background-position:center top}
  .lt-vcta-copy{position:absolute;left:50%;top:9.8%;transform:translateX(-50%);width:52%;max-width:none}
  .lt-vcta-lead{margin-top:1.15vw;font-size:max(1.25rem,1.95vw)}
  .lt-vcta-sub{margin-top:.55vw;font-size:max(1.0625rem,1.33vw)}
  .lt-vcta-btn{margin-top:1.7vw;min-height:0;padding:.62em 1.9em;font-size:max(1.25rem,1.85vw)}
  .lt-vcta-note{margin-top:1.2vw;font-size:max(1rem,1.12vw)}
}
.lt-va-tools{padding:64px 0 68px;background:var(--sky-pale)}
/* Vacation App page: every section leaves room at its foot for the next section's wave */
.lt-va-benefits{padding-bottom:calc(var(--edge) + 24px)!important}
/* Vacation App page: "Everything You Need to Get Vacation-Ready" postcards (owner mockup) */
.lt-va-tools.lt-va-ready{position:relative;padding:calc(var(--edge) + 8px) 0 calc(var(--edge) + 40px);text-align:center;
  /* the beach strip fades in at its top edge (it now shows above the shared wave into How It Works) */
  background:url(../images/va-ready-top-1000.webp) no-repeat top center/100% auto,linear-gradient(#ECE3D5 0,#ECE3D5 40%,rgba(236,227,213,0) 100%) no-repeat center bottom 2.5vw/100% 3.4vw,url(../images/va-ready-bottom-1000.webp) no-repeat bottom center/100% auto,
  linear-gradient(#4FD8F8 0,#63DDF5 22%,#A9EAF3 48%,#E6F1EC 70%,#F3EADB 88%,#E6DACA 100%)}
.lt-va-ready-head{position:relative;z-index:1}
.lt-va-ready-head h2{margin:0;line-height:1.1}
.lt-va-ready-kicker{display:block;color:var(--navy);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.375rem,3.6vw,2.375rem);text-shadow:0 0 3px #fff,0 0 10px rgba(255,255,255,.9)}
.lt-va-ready-title{display:block;height:auto;margin:2px auto 0}
.lt-va-ready-sub{margin:6px auto 0;max-width:34em;color:#16324F;font-size:clamp(1.0625rem,1.6vw,1.375rem);text-shadow:0 0 3px #fff,0 0 12px rgba(255,255,255,.95)}
.lt-va-readygrid{list-style:none;margin:28px auto 0;padding:0;display:grid;gap:18px;grid-template-columns:1fr;max-width:420px}
.lt-va-readycard{display:flex;flex-direction:column;align-items:center;background:#FEFAF1;border:3px solid #A6DDF0;border-radius:16px;padding:8px 10px 18px;
  box-shadow:0 0 0 2px rgba(255,255,255,.75),0 10px 24px rgba(10,60,100,.18)}
.lt-va-readycard img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%),linear-gradient(transparent 0,#000 6%,#000 90%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%),linear-gradient(transparent 0,#000 6%,#000 90%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
.lt-va-readycard h3{margin:6px 0 0;color:var(--navy);font-weight:800;font-size:1.375rem;line-height:1.15}
.lt-va-readycard p{margin:6px 0 0;color:#1C3B5C;font-size:1.0625rem;line-height:1.4;max-width:19em}
@media (min-width:700px){
  .lt-va-tools.lt-va-ready{background-image:url(../images/va-ready-top-1672.webp),linear-gradient(#ECE3D5 0,#ECE3D5 40%,rgba(236,227,213,0) 100%),url(../images/va-ready-bottom-1672.webp),linear-gradient(#4FD8F8 0,#63DDF5 22%,#A9EAF3 48%,#E6F1EC 70%,#F3EADB 88%,#E6DACA 100%)}
  .lt-va-readygrid{grid-template-columns:repeat(2,1fr);max-width:none;gap:20px}
}
@media (min-width:1080px){
  .lt-va-ready .lt-wrap{max-width:1440px}
  .lt-va-readygrid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}
  .lt-va-readycard h3{font-size:clamp(1.25rem,1.6vw,1.5rem)}
}
.lt-va-toolgrid{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:14px}
.lt-va-toolgrid li{background:#fff;border:1px solid var(--border-soft);border-radius:var(--r-sm);
  padding:20px;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:start}
.lt-va-toolgrid .lt-va-tico{grid-row:span 2;display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:16px;background:var(--sky-pale)}
.lt-va-toolgrid h3{margin:0;font-size:1.0625rem;color:var(--navy);line-height:1.35;align-self:center}
.lt-va-toolgrid p{margin:0;color:var(--fg-muted);font-size:1rem;line-height:1.55}
.lt-va-toolgrid li.is-featured{border-color:var(--green);background:var(--green-tint)}
.lt-va-toolgrid li.is-featured .lt-va-tico{background:#fff}




.lt-va-benefits .lt-head{max-width:860px}

/* =================== VACATION APP - 700px and up =================== */
@media (min-width:700px){
  .lt-va-hero-copy h1{font-size:2.75rem}
  .lt-va-bgrid{grid-template-columns:1fr 1fr;gap:20px}
  .lt-va-toolgrid{grid-template-columns:1fr 1fr;gap:16px}
}

/* =================== VACATION APP - 1080px and up =================== */
@media (min-width:1080px){
  .lt-va-hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:52px}
  .lt-va-hero-copy h1{font-size:3.4rem}
  .lt-va-benefits{padding:78px 0 84px}
  .lt-va-bgrid{grid-template-columns:repeat(4,1fr);gap:22px}
  .lt-va-tools{padding:84px 0 88px}
  .lt-va-toolgrid{grid-template-columns:repeat(3,1fr);gap:20px}
}

@media (prefers-contrast:more){
  .lt-va-bcard,.lt-va-toolgrid li{border:1px solid var(--navy)}
}

/* narrow desktops: tighter spacing so the full nav fits on one line (font size unchanged) */
@media (min-width:1080px) and (max-width:1279px){
  .lt-hdr{gap:14px;padding:9px 10px 9px 14px}
  .lt-nav a{padding:0 11px}
  .lt-signin{padding:0 11px}
}
/* the full nav no longer fits (e.g. enlarged text): nav.js adds .is-compact and the mobile menu takes over */
@media (min-width:1080px){
  .lt-hdr-shell.is-compact .lt-nav,.lt-hdr-shell.is-compact .lt-signin{display:none}
  .lt-hdr-shell.is-compact .lt-burger{display:flex}
  .lt-hdr-shell.is-compact .lt-hdr-act{margin-left:auto}
}
