/* Boundless — www.boundlessphone.com
   Brand tokens from Boundless Canon v3. */

:root{
  /* consumer ground */
  --blue:#1C4699;
  --blue-card:#173D87;
  --blue-line:#2F5BB0;
  --blue-line-2:#4A73C4;
  --blue-muted:#BCD0F5;
  --blue-muted-2:#9DB6E6;

  /* business ground */
  --navy:#0B1A2B;
  --navy-card:#12274A;
  --navy-line:#22406B;
  --navy-line-2:#35558A;
  --navy-text:#F2F6FC;
  --navy-muted:#A9C2E3;

  /* accents */
  --teal:#22D3C5;
  --teal-ink:#062E2A;
  --coral:#E8431F;

  /* light sections */
  --white:#FFFFFF;
  --ink:#0B0F14;
  --ink-card:#F4F5F9;
  --ink-line:#E3E6EE;
  --ink-muted:#5B6170;

  /* footer */
  --foot:#0B0F14;
  --foot-link:#A6A6A6;
  --foot-line:#262626;

  --radius:22px;
  --radius-sm:14px;
  --gutter:clamp(20px, 5vw, 80px);
  --maxw:1320px;

  --display:'Instrument Sans', system-ui, -apple-system, sans-serif;
  --body:'DM Sans', system-ui, -apple-system, sans-serif;
  --word:'Poppins', system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  font-family:var(--body);
  background:var(--blue);
  color:#fff;
  font-size:17px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.business{background:var(--navy);color:var(--navy-text)}

img{max-width:100%;display:block}

a{color:inherit;text-decoration:none}
a:hover{color:var(--teal)}

h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;letter-spacing:-0.04em;line-height:1.02}
h1{font-size:clamp(44px, 8.5vw, 116px);letter-spacing:-0.05em;line-height:0.92}
h2{font-size:clamp(30px, 4.6vw, 56px)}
h3{font-size:clamp(20px, 2.4vw, 24px);letter-spacing:-0.03em}
p{margin:0}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(56px, 8vw, 96px);border-bottom:1px solid var(--blue-line)}
body.business .section{border-bottom-color:var(--navy-line)}
.section.light{background:var(--white);color:var(--ink);border-bottom-color:var(--ink-line)}
.section.ink{background:var(--ink);color:#fff;border-bottom-color:var(--foot-line)}
.stack{display:flex;flex-direction:column;gap:clamp(24px,3vw,32px)}
.lede{font-size:clamp(17px,2vw,20px);line-height:1.5;color:var(--blue-muted);max-width:68ch}
body.business .lede{color:var(--navy-muted)}
.light .lede{color:var(--ink-muted)}

/* ---------- header ---------- */
.site-head{position:relative;z-index:30}
.head-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  max-width:var(--maxw);margin:0 auto;
  padding:18px var(--gutter);
}
.head-bordered{border-bottom:1px solid var(--blue-line)}
body.business .head-bordered{border-bottom-color:var(--navy-line)}
.head-over{position:absolute;inset:0 0 auto 0;background:none;border:0}

.wordmark{display:inline-flex;align-items:center;gap:9px;flex:none}
.wordmark span{font-family:var(--word);font-weight:600;font-size:24px;letter-spacing:-0.02em;line-height:1}
.wordmark:hover{color:#fff}
.wordmark .biz{font-family:var(--body);font-weight:500;font-size:15px;opacity:.75;letter-spacing:0;padding-left:8px;border-left:1px solid rgba(255,255,255,.3);margin-left:4px}

.nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,34px);font-size:16px;font-weight:500}
.nav a[aria-current="page"]{color:var(--teal)}
.nav .quiet{opacity:.7}

.head-actions{display:flex;align-items:center;gap:12px;flex:none}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:15px 28px;border-radius:999px;font-weight:600;font-size:16px;
  border:1px solid transparent;cursor:pointer;text-align:center;
  font-family:var(--body);
}
.btn-primary{background:var(--coral);color:#fff}
.btn-primary:hover{background:#ff4a24;color:#fff}
.btn-light{background:#fff;color:#111}
.btn-light:hover{background:#f0f0f0;color:#111}
.btn-ghost{border-color:currentColor}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;color:#fff}
.btn-sm{padding:12px 22px;font-size:15px}

.nav-toggle{display:none;background:none;border:1px solid currentColor;color:inherit;border-radius:999px;padding:10px 16px;font:600 15px var(--body);cursor:pointer}

@media (max-width:1080px){
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:4px;
    background:var(--blue);border-top:1px solid var(--blue-line);border-bottom:1px solid var(--blue-line);
    padding:12px var(--gutter) 20px;font-size:18px;
  }
  body.business .nav{background:var(--navy);border-color:var(--navy-line)}
  .nav a{display:block;padding:12px 0;width:100%}
  .site-head.open .nav{display:flex}
  .nav-toggle{display:inline-flex}
  .head-actions .login{display:none}
}
@media (max-width:560px){
  :root{--gutter:16px}
  .head-inner{gap:10px;padding-block:14px}
  .wordmark span{font-size:20px}
  .wordmark svg{width:24px;height:24px}
  .head-actions{gap:8px}
  .head-actions .btn{padding:11px 15px;font-size:14px}
  .nav-toggle{padding:9px 13px;font-size:14px}
}
@media (max-width:360px){
  .wordmark span{font-size:18px}
  .head-actions .btn{padding:10px 12px;font-size:13px}
}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--blue-card);min-height:clamp(480px,78vh,820px);display:flex;flex-direction:column}
body.business .hero{background:var(--navy-card)}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(100deg, rgba(10,20,50,.72) 0%, rgba(10,20,50,.35) 55%, rgba(10,20,50,.08) 100%),
    linear-gradient(180deg, rgba(10,20,50,.45) 0%, rgba(10,20,50,0) 42%, rgba(10,20,50,.62) 100%);
}
.hero-body{
  max-width:var(--maxw);width:100%;margin:0 auto;
  padding:clamp(120px,16vh,200px) var(--gutter) clamp(48px,7vw,72px);
  display:flex;flex-direction:column;gap:clamp(18px,2.4vw,26px);
  margin-top:auto;
}
.hero h1{color:#fff;max-width:16ch}
.hero p{color:#fff;opacity:.93;font-size:clamp(17px,2.1vw,22px);max-width:56ch}
.hero .kicker{font-family:var(--display);font-weight:700;font-size:clamp(22px,3.4vw,40px);letter-spacing:-0.03em;color:var(--teal);line-height:1.08;max-width:22ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}

/* ---------- strips ---------- */
.strip{background:var(--ink);color:#fff}
.strip-inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(28px,4vw,40px) var(--gutter);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
}
.strip-title{font-family:var(--display);font-weight:700;font-size:clamp(22px,3vw,32px);letter-spacing:-0.04em}
.strip-note{font-size:clamp(15px,1.8vw,18px);font-weight:500;color:#B9B9B9}

/* ---------- cards ---------- */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}

.card{
  display:flex;flex-direction:column;gap:14px;
  padding:clamp(24px,3vw,32px);
  background:var(--blue-card);border:1px solid var(--blue-line);border-radius:var(--radius);
}
body.business .card{background:var(--navy-card);border-color:var(--navy-line);border-radius:24px}
.light .card{background:var(--ink-card);border-color:var(--ink-line);color:var(--ink)}
.card p{color:var(--blue-muted);font-size:17px;line-height:1.5}
body.business .card p{color:var(--navy-muted)}
.light .card p{color:var(--ink-muted)}

.stat{font-family:var(--display);font-weight:700;font-size:clamp(34px,4.6vw,48px);letter-spacing:-0.04em;line-height:1;color:var(--teal)}
.stat-label{font-size:16px;color:var(--blue-muted)}
.light .stat-label{color:var(--ink-muted)}

.step-num{
  width:52px;height:52px;flex:none;display:flex;align-items:center;justify-content:center;
  border-radius:999px;background:var(--coral);color:#fff;
  font-family:var(--display);font-weight:700;font-size:24px;
}

/* ---------- plan cards ---------- */
.plans{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.plan{
  display:flex;flex-direction:column;gap:28px;
  padding:clamp(28px,3.4vw,48px);
  border-radius:28px;border:1px solid var(--ink-line);background:var(--ink-card);color:var(--ink);
  position:relative;
}
.plan.europe{background:var(--teal);border-color:var(--teal);color:#0A0A0A}
.plan-name{font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.plan.europe .plan-name{color:var(--teal-ink)}
.price{display:flex;align-items:baseline;gap:8px}
.price b{font-family:var(--display);font-weight:700;font-size:clamp(64px,8vw,96px);line-height:1;letter-spacing:-0.05em}
.price span{font-size:19px;color:var(--ink-muted)}
.plan.europe .price span{color:var(--teal-ink)}
.ticks{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.ticks li{display:flex;gap:12px;align-items:flex-start;font-size:17px;line-height:1.4}
.ticks svg{flex:none;margin-top:3px}
.badge{
  position:absolute;top:-14px;right:clamp(20px,3vw,40px);
  background:var(--ink);color:#fff;border-radius:999px;
  padding:7px 16px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
}
.plan .btn{margin-top:auto}

/* ---------- comparison table ---------- */
.table{border:1px solid var(--blue-line);border-radius:var(--radius);overflow:hidden}
body.business .table{border-color:var(--navy-line)}
.trow{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;padding:18px clamp(18px,2.4vw,32px);border-top:1px solid var(--blue-line);font-size:17px}
body.business .trow{border-top-color:var(--navy-line)}
.trow:first-child{border-top:0;background:var(--blue-card);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-muted)}
body.business .trow:first-child{background:var(--navy-card);color:var(--navy-muted)}
.trow .lbl{color:var(--blue-muted)}
body.business .trow .lbl{color:var(--navy-muted)}
@media (max-width:760px){
  .trow{grid-template-columns:1fr;gap:4px;padding-block:16px}
  .trow:first-child{display:none}
  .trow .lbl{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
  .trow .c1::before{content:"UK £15 — ";color:var(--blue-muted);font-weight:600}
  .trow .c2::before{content:"Europe £20 — ";color:var(--teal);font-weight:600}
}

/* ---------- country list ---------- */
.countries{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 24px;font-size:17px}
.countries div{padding:12px 0;border-bottom:1px solid var(--ink-line)}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(28px,5vw,64px);align-items:center}
.split img{border-radius:var(--radius);width:100%;height:100%;max-height:560px;object-fit:cover}

/* ---------- faq ---------- */
.qa{display:flex;flex-direction:column;gap:14px;padding:clamp(22px,2.6vw,30px);background:var(--blue-card);border:1px solid var(--blue-line);border-radius:var(--radius)}
.qa h3{font-size:20px}
.qa p{color:var(--blue-muted);font-size:17px}
.group-label{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;color:var(--blue-muted)}
body.business .field{color:var(--navy-muted)}
.light .field{color:var(--ink-muted)}
.field input,.field select{
  padding:16px 18px;border-radius:var(--radius-sm);font:400 17px var(--body);
  background:var(--blue-card);border:1px solid var(--blue-line);color:#fff;width:100%;
}
body.business .field input{background:var(--navy-card);border-color:var(--navy-line);color:var(--navy-text)}
.light .field input,.light .field select{background:#fff;border-color:var(--ink-line);color:var(--ink)}
.field input::placeholder{color:var(--blue-muted-2)}
.light .field input::placeholder{color:#9AA0AE}
.field input:focus,.field select:focus{outline:2px solid var(--teal);outline-offset:1px}
form.box{display:flex;flex-direction:column;gap:18px;padding:clamp(24px,3vw,32px);background:var(--blue-card);border:1px solid var(--blue-line);border-radius:var(--radius)}
.light form.box{background:var(--ink-card);border-color:var(--ink-line)}

.note{font-size:15px;color:var(--blue-muted-2)}
.light .note{color:var(--ink-muted)}

.placeholder{
  border:1px dashed var(--blue-line-2);border-radius:var(--radius);
  padding:clamp(28px,5vw,56px);text-align:center;color:var(--blue-muted);font-size:16px;
}
.light .placeholder{border-color:#C9CEDC;color:var(--ink-muted)}

/* ---------- photo row ---------- */
.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px}
.photos img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}

/* ---------- cta band ---------- */
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.cta h2{max-width:18ch}

/* ---------- footer ---------- */
.site-foot{background:var(--foot);color:#fff;border-top:1px solid var(--foot-line)}
.foot-inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(36px,5vw,48px) var(--gutter);
  display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start;
}
.foot-word{font-family:var(--word);font-weight:600;font-size:21px;letter-spacing:-0.02em}
.foot-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:15px}
.foot-links a{color:var(--foot-link)}
.foot-links a:hover{color:var(--teal)}
.foot-legal{font-size:14px;line-height:1.6;color:var(--foot-link);max-width:44ch}
@media (min-width:900px){.foot-legal{text-align:right}}

.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{width:auto;height:auto;clip-path:none;left:var(--gutter);top:12px;z-index:100;background:#fff;color:#111;padding:10px 18px;border-radius:999px}

@media (prefers-reduced-motion:no-preference){
  a,.btn{transition:color .15s ease, background-color .15s ease, border-color .15s ease}
}

/* ---------- Ghost (invite-only tier) ---------- */
.nav .ghost-link{
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 14px;border:1px solid rgba(255,255,255,.38);border-radius:999px;opacity:.9;
}
.nav .ghost-link:hover,.nav .ghost-link[aria-current="page"]{border-color:var(--teal);color:var(--teal);opacity:1}
@media (max-width:1080px){.nav .ghost-link{display:inline-block;width:auto;margin-top:10px}}
body.ghost{background:var(--ink);color:#F2F6FC}
body.ghost .section{border-bottom-color:var(--foot-line)}
body.ghost .head-bordered{border-bottom-color:var(--foot-line)}
body.ghost .nav{background:var(--ink);border-color:var(--foot-line)}
body.ghost .hero{background:#000}
body.ghost .hero-media img{filter:grayscale(.55) contrast(1.08) brightness(.85)}
body.ghost .hero::before{
  background:
    linear-gradient(100deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.15) 100%),
    linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,.9) 100%);
}
body.ghost .hero .kicker{color:#A6A6A6;letter-spacing:.02em}
body.ghost .hero p{color:#D6D9DE}
body.ghost form.box{background:#12161C;border-color:var(--foot-line)}
body.ghost .field{color:#A6A6A6}
body.ghost .field input{background:#0B0F14;border-color:#2A2F38;color:#F2F6FC;letter-spacing:.18em;font-size:20px}
body.ghost .field input::placeholder{color:#3A4049;letter-spacing:.18em}
body.ghost .field input:focus{outline-color:#F2F6FC}
body.ghost .note{color:#8A9099}
body.ghost .note a{color:#D6D9DE}
body.ghost .note a:hover{color:var(--teal)}
body.ghost .site-foot{border-top-color:#1A1F27}

/* wording: no orphan words */
h1,h2,h3,.kicker,.strip-title,.plan-name,.stat-label{text-wrap:balance}
p,.lede,li,.note,td{text-wrap:pretty}

.plan-sub{font-size:14px;font-weight:500;color:var(--blue-muted);margin:-6px 0 10px}.plan.europe .plan-sub{color:#062E2A}.light .plan .plan-sub{color:var(--ink-muted)}

a:focus-visible,button:focus-visible,.btn:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #14B8AE;outline-offset:3px}
.nav-toggle{padding:12px 16px}
.foot-links a{padding:8px 0;display:inline-block}

.who-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.who-t{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff}
.who-t::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,40,0) 30%,rgba(10,20,40,.9) 78%)}
.who-in{position:relative;padding:22px;display:grid;gap:8px}
.who-eb{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#FFD23F}
.who-eb::before{content:"";width:22px;height:2px;background:#FFD23F}
.who-t h3{margin:0;font-size:clamp(19px,1.9vw,23px);line-height:1.1;letter-spacing:-0.02em;color:#fff}
.who-t p{margin:0;font-size:14px;line-height:1.45;color:#E6ECF5}
@media(max-width:900px){.who-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.who-grid{grid-template-columns:1fr}.who-t{aspect-ratio:5/4}}

.hero-fine{font-size:14px;opacity:.85;margin:12px 0 0;max-width:52ch}

.hero .oneline{white-space:nowrap}
@media(max-width:700px){.hero .oneline{white-space:normal}}
h1.twolines{white-space:nowrap}
@media(max-width:560px){h1.twolines{white-space:normal}}
.plan-name.nowrap{white-space:nowrap}
.plan-sub{text-wrap:balance}

.biz-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bt{border-radius:22px;padding:26px 24px 24px;display:grid;gap:4px;align-content:start;min-height:220px}
.bt-big{font-family:var(--display);font-weight:700;font-size:clamp(40px,4.4vw,56px);letter-spacing:-0.04em;line-height:1}
.bt h3{margin:0;font-size:18px;line-height:1.2}
.bt p{margin:8px 0 0;font-size:15px;line-height:1.5}
.bt-teal{background:var(--teal);color:#062E2A}.bt-teal p{color:#0A4B46}
.bt-yellow{background:#FFD23F;color:#1A1500}.bt-yellow p{color:#4A3F00}
.bt-coral{background:var(--coral);color:#fff}.bt-coral p{color:#FFE4DC}
.bt-white{background:#fff;color:var(--ink);border:1px solid var(--ink-line)}.bt-white p{color:var(--ink-muted)}.bt-white .bt-big{color:var(--blue,#1C4699)}
@media(max-width:900px){.biz-tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.biz-tiles{grid-template-columns:1fr}.bt{min-height:0}}
.light .seg-t span{background:#fff;border-color:var(--ink-line);color:var(--ink)}
.light .seg-t input:checked+span{background:var(--teal);border-color:var(--teal);color:#062E2A}
.light .opt legend{color:var(--ink-muted)}
.light .box .note{color:var(--ink-muted)}
.light .estimate,.light .est{background:#F3F6FC;color:var(--ink);border-color:var(--ink-line)}
