/* Termhouse — site styles */
@font-face{font-family:"Bricolage Grotesque";src:url(/fonts/bricolage-grotesque.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans-700.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --bg:#FAFAF7; --surface:#FFFFFF; --ink:#0E0F12; --muted:#5E626B; --hair:rgba(14,15,18,.10); --hair2:rgba(14,15,18,.18);
  --acc:#2F45FF; --acc-ink:#FFFFFF; --coral:#E8572B; --ok:#1F9D63;
  /* text-safe accents (4.5:1+): coral-text on bg/surface, coral-inv on ink, coral-fill behind on-coral text */
  --coral-text:#B93A12; --coral-inv:#FF8A63; --coral-fill:#B93A12; --on-coral:#FFFFFF; --ok-text:#146C43; --field:#8A8E96;
  --t-blue:#E9ECFF; --t-peach:#FFEADF; --t-mint:#E2F5EA; --t-butter:#FFF2C6;
  --shadow:rgba(14,15,30,.08); --shadow2:rgba(14,15,30,.16); --glass:rgba(255,255,255,.85);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --body:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0D0E11; --surface:#16181D; --ink:#F2F2EF; --muted:#A3A7B0; --hair:rgba(255,255,255,.10); --hair2:rgba(255,255,255,.2);
  --acc:#7586FF; --acc-ink:#0B0E22; --coral:#FF8A63; --ok:#4FD08F;
  --coral-text:#FF8A63; --coral-inv:#B93A12; --coral-fill:#FF8A63; --on-coral:#0D0E11; --ok-text:#4FD08F; --field:#6B707A;
  --t-blue:#1B2042; --t-peach:#33211A; --t-mint:#14291D; --t-butter:#302A14;
  --shadow:rgba(0,0,0,.35); --shadow2:rgba(0,0,0,.55); --glass:rgba(22,24,29,.85); color-scheme:dark}}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.55;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;text-wrap:balance;letter-spacing:-.035em}
h1{font-size:clamp(2.8rem,8vw,7rem);line-height:.95}
h2{font-size:clamp(2rem,4.8vw,3.6rem);line-height:1}
h3{font-size:1.2rem;line-height:1.2;letter-spacing:-.02em;font-weight:600}
em,.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .small{font-size:.9rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;z-index:20}
.skip:focus{top:12px}
.label{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.label .dot{width:7px;height:7px;border-radius:50%;background:var(--coral)}
.stack{display:flex;flex-direction:column;gap:20px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
section{padding-block:clamp(56px,9vw,112px)}
.pt0{padding-top:0}
.prose{max-width:68ch}
.prose p+p{margin-top:14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;background:var(--surface);color:var(--ink);padding:13px 22px;border-radius:999px;cursor:pointer;font-weight:600;text-decoration:none;box-shadow:inset 0 0 0 1px var(--hair2);white-space:nowrap}
.btn.ink{background:var(--ink);color:var(--bg);box-shadow:none}
.btn.sm{padding:9px 16px;font-size:.92rem}
.btn:disabled{opacity:.4;cursor:default}
.arr{display:inline-block}
@media (prefers-reduced-motion:no-preference){.btn{transition:transform .2s}.btn:hover:not(:disabled){transform:translateY(-1px)}.arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}}

/* nav */
.nav{position:sticky;top:0;z-index:6;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--hair);padding-top:env(safe-area-inset-top,0px)}
.nav .wrap{display:flex;align-items:center;gap:8px 28px;flex-wrap:wrap;padding-block:14px}
.nav .links{display:contents}
h2.label{font-family:var(--body);font-size:.78rem;letter-spacing:.12em;line-height:1.4}
.empty{padding:28px;border-radius:22px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair);max-width:60ch}
.empty p{color:var(--muted);margin-top:8px}
.logo{font-family:var(--display);font-weight:800;font-size:1.75rem;letter-spacing:-.06em;text-decoration:none;margin-right:auto;line-height:1;display:flex;align-items:baseline}
.logo em{font-size:1.08em;letter-spacing:-.02em}
.logo i{font-style:normal;color:var(--coral)}
.logo span{margin-left:12px;font-family:var(--body);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav a.l{text-decoration:none;font-weight:500;color:var(--muted);position:relative;padding-block:4px}
.nav a.l:hover,.nav a.l[aria-current="page"]{color:var(--ink)}
.nav a.l.login{color:var(--ink);font-weight:600}
.nav a.l[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--coral)}
@media (max-width:640px){.nav .wrap{gap:10px 18px}.nav .btn{display:none}.logo span{display:none}}
@media (max-width:480px){.nav .logo{font-size:1.5rem}.nav a.l{font-size:.95rem}.nav a.l[href="/how-it-works/"]{display:none}}

/* hero */
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,72px);align-items:end;padding-block:clamp(40px,6vw,80px) clamp(40px,5vw,64px)}
@media (max-width:900px){.hero{grid-template-columns:1fr;align-items:start}}
.hero h1{margin-top:22px}
.lead{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--muted);max-width:46ch;margin-top:24px}
.search{display:flex;gap:6px;flex-wrap:wrap;margin-top:30px;background:var(--surface);border-radius:999px;padding:6px;box-shadow:0 1px 0 var(--hair),0 14px 40px var(--shadow);max-width:560px}
.search select{flex:1;min-width:140px;border:0;background:transparent;padding:10px 14px;border-radius:999px;font-weight:500;cursor:pointer}
@media (max-width:560px){.search{border-radius:22px}}
.trust{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px;font-size:.9rem;color:var(--muted);padding:0;list-style:none}
.trust li{display:inline-flex;align-items:center;gap:7px}
.trust li::before{content:"✓";display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--t-mint);color:var(--ok);font-size:.65rem;font-weight:700}
.visual{position:relative;min-width:0}
.visual .main{aspect-ratio:4/5;border-radius:200px 200px 28px 28px;overflow:hidden;box-shadow:0 30px 70px var(--shadow2);background:var(--t-blue)}
.visual .main img{display:block;width:100%;height:100%;object-fit:cover}
.visual .float{position:absolute;left:-28px;bottom:28px;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:20px;padding:12px 16px 12px 12px;display:flex;gap:14px;align-items:center;box-shadow:0 18px 40px var(--shadow2);text-decoration:none;max-width:calc(100% - 20px)}
.visual .float img{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none}
.visual .float b{display:block;font-family:var(--display);font-weight:600;letter-spacing:-.02em}
.visual .float span{font-size:.85rem;color:var(--muted)}
.visual .badge{position:absolute;right:-18px;top:30%;width:112px;height:112px;border-radius:50%;background:var(--coral-fill);color:var(--on-coral);display:grid;place-items:center;text-align:center;font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.05;box-shadow:0 14px 30px rgba(232,87,43,.35)}
@media (prefers-reduced-motion:no-preference){.visual .badge{animation:spin 18s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}}
@media (max-width:900px){.visual{max-width:520px}.visual .float{left:12px}.visual .badge{right:8px;width:96px;height:96px;font-size:1rem}}

/* marquee */
.marq{overflow:hidden;white-space:nowrap;border-block:1px solid var(--hair);padding-block:18px}
.marq .track{display:inline-flex;gap:40px;font-family:var(--display);font-weight:700;font-size:clamp(2.2rem,6vw,4.4rem);letter-spacing:-.04em;line-height:1}
.marq .track span{display:inline-flex;align-items:center;gap:40px}
.marq .track span:nth-child(even){font-family:var(--serif);font-style:italic;font-weight:400;color:var(--muted)}
.marq .track span::after{content:"";width:14px;height:14px;border-radius:50%;background:var(--coral)}
@media (prefers-reduced-motion:no-preference){.marq .track{animation:tick 50s linear infinite}@keyframes tick{to{transform:translateX(-50%)}}}
.marqwrap{position:relative}
.motion{position:absolute;right:max(12px,env(safe-area-inset-right,0px));bottom:-18px;z-index:2;font-size:.8rem;font-weight:600;padding:6px 12px;border-radius:999px;border:0;background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hair2);cursor:pointer}
.still .marq .track,.still .visual .badge{animation-play-state:paused!important}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stats div{padding:22px 22px 4px 0;border-top:1px solid var(--hair2)}
.stats div+div{padding-left:22px;border-left:1px solid var(--hair)}
.stats b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,5.6vw,4.4rem);line-height:1;letter-spacing:-.05em}
.stats b small{font-size:.4em;letter-spacing:0;color:var(--muted)}
.stats span{color:var(--muted);font-size:.95rem}
@media (max-width:720px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){padding-left:0;border-left:0}}

.head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.head h2{margin-top:14px;max-width:18ch}
.pagehead{padding-block:clamp(40px,6vw,72px) clamp(28px,4vw,44px)}
.pagehead h1{font-size:clamp(2.6rem,6.6vw,5.4rem);margin-top:16px;max-width:16ch}
.pagehead .lead{max-width:60ch}
.crumbs{font-size:.88rem;color:var(--muted)}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.5}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.filters a{text-decoration:none;font-weight:600;font-size:.92rem;padding:9px 16px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair2)}
.filters a[aria-current="page"]{background:var(--ink);color:var(--bg);box-shadow:none}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:clamp(18px,2.4vw,32px)}
.card{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:14px}
.card .pic{position:relative;aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--t-blue)}
.card .pic img{display:block;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){.card .pic img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.card:hover .pic img{transform:scale(1.05)}.card .go{transition:transform .3s}.card:hover .go{transform:rotate(-45deg)}}
.status{position:absolute;left:14px;top:14px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;display:inline-flex;align-items:center;gap:7px}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.status.part::before{background:var(--coral)}
.card .go{position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:1.1rem;box-shadow:0 8px 20px var(--shadow2)}
.card .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.card h3{font-size:1.35rem}
.card .price{font-family:var(--display);font-weight:600;white-space:nowrap}
.card .price small{font-family:var(--body);font-weight:500;color:var(--muted);font-size:.8rem}
.card .vibe{font-family:var(--serif);font-style:italic;font-size:1.08rem;color:var(--muted);margin-top:-10px}
.card .meta{color:var(--muted);font-size:.92rem;margin-top:-8px}
.card.room .pic{aspect-ratio:4/3}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;padding:0;margin:0}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.steps{grid-template-columns:1fr}}
.step{border-radius:28px;padding:28px 26px 30px;display:flex;flex-direction:column;gap:12px;min-height:240px}
.step .n{font-family:var(--serif);font-style:italic;font-size:3.4rem;line-height:.8;margin-bottom:auto;padding-bottom:26px}
.step p{color:var(--muted)}
.t-blue{background:var(--t-blue)} .t-peach{background:var(--t-peach)} .t-mint{background:var(--t-mint)} .t-butter{background:var(--t-butter)}

/* band */
.band{background:var(--ink);color:var(--bg);border-radius:36px;padding:clamp(32px,6vw,72px);display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:end;position:relative;overflow:hidden}
@media (max-width:820px){.band{grid-template-columns:1fr}}
.band .label{color:color-mix(in srgb,var(--bg) 65%,transparent)}
.band p{opacity:.75;font-size:1.08rem;max-width:46ch;margin-top:16px}
.band .btn{background:var(--bg);color:var(--ink);box-shadow:none}
.band::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:var(--coral)}
.band > *{position:relative;z-index:1}
.band .end{justify-self:end}
@media (max-width:820px){.band .end{justify-self:start}}

/* house page */
.detail{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,4vw,56px);align-items:start;padding-bottom:90px}
@media (max-width:960px){.detail{grid-template-columns:1fr}}
.detail > .stack{min-width:0;gap:44px}
.gal{display:flex;flex-direction:column;gap:12px;min-width:0}
.gal .main{position:relative;border-radius:28px;overflow:hidden;background:var(--surface);aspect-ratio:3/2}
.gal .main img{display:block;width:100%;height:100%;object-fit:cover}
.gal .main.fp img{object-fit:contain;background:#FFFFFF}
.gal .cap{position:absolute;left:16px;bottom:16px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.84rem;font-weight:600;padding:7px 13px;border-radius:999px}
.gal .count{position:absolute;right:16px;bottom:16px;background:rgba(14,15,18,.72);color:#FFFFFF;font-size:.8rem;font-weight:600;padding:7px 12px;border-radius:999px}
.gal .nav-b{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);font-size:1.3rem;cursor:pointer;box-shadow:0 8px 20px var(--shadow2)}
.gal .nav-b.prev{left:16px} .gal .nav-b.next{right:16px}
.thumbs{display:flex;gap:8px;overflow-x:auto;padding:7px 7px 10px;list-style:none;margin:0}
.thumbs button{flex:none;width:92px;aspect-ratio:4/3;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--surface);opacity:.55;display:block}
.thumbs button[aria-current="true"]{opacity:1;outline:2px solid var(--ink);outline-offset:2px}
.thumbs button:focus-visible{opacity:1;outline:3px solid var(--acc);outline-offset:3px}
.thumbs img{display:block;width:100%;height:100%;object-fit:cover}
.d-title h1{font-size:clamp(2.6rem,6.6vw,5.4rem);margin-top:14px}
.d-title .sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.3vw,1.7rem);line-height:1.25;color:var(--muted);max-width:36ch;margin-top:16px}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tagp{display:inline-flex;align-items:center;font-size:.84rem;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair)}
.modes{display:grid;grid-template-columns:1.25fr 1fr;gap:12px}
@media (max-width:560px){.modes{grid-template-columns:1fr}}
.mode{position:relative;border:0;border-radius:22px;padding:20px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair2);cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px}
.mode b{font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.02em}
.mode span{font-size:.92rem;color:var(--muted)}
.mode[aria-pressed="true"]{background:var(--ink);color:var(--bg);box-shadow:0 16px 36px var(--shadow2)}
.mode[aria-pressed="true"] span{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.mode .best{position:absolute;right:16px;top:18px;font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--coral-text)}
.mode[aria-pressed="true"] .best{color:var(--coral-inv)}
.mode:disabled{opacity:.45;cursor:default}
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;list-style:none;padding:0;margin:0}
.room-b{position:relative;width:100%;border:0;border-radius:20px;padding:6px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair);cursor:pointer;text-align:left;display:flex;flex-direction:column}
.room-b .rp{aspect-ratio:4/3;border-radius:15px;overflow:hidden;background:var(--t-blue)}
.room-b .rp img{display:block;width:100%;height:100%;object-fit:cover}
.room-b .ri{padding:10px 8px 6px;display:flex;flex-direction:column;gap:1px}
.room-b .t{font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.room-b b{font-family:var(--display);font-size:1.45rem;font-weight:600;letter-spacing:-.03em}
.room-b .s{font-size:.84rem;color:var(--muted)}
.room-b.inhouse{box-shadow:inset 0 0 0 2px var(--acc)}
.room-b[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--coral),0 14px 30px var(--shadow2)}
.room-b[aria-pressed="true"]::after{content:"Your room";position:absolute;left:14px;top:14px;background:var(--coral-fill);color:var(--on-coral);border-radius:999px;font-size:.76rem;font-weight:600;padding:4px 10px}
.room-b:disabled{cursor:default}
.room-b:disabled .rp img{filter:grayscale(1);opacity:.45}
.room-b .gone{position:absolute;left:14px;top:14px;background:var(--ink);color:var(--bg);border-radius:999px;font-size:.76rem;font-weight:600;padding:4px 10px}
.spec{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 40px}
@media (max-width:560px){.spec{grid-template-columns:1fr}}
.spec h2{font-size:1.4rem;letter-spacing:-.02em;margin-bottom:6px}
.list{list-style:none;padding:0;margin:0}
.list li{padding:11px 0;border-bottom:1px solid var(--hair);display:flex;gap:12px;align-items:baseline}
.list li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--acc);transform:translateY(-2px)}
.kv{display:grid;grid-template-columns:130px 1fr;margin:0}
.kv dt,.kv dd{padding:12px 0;border-bottom:1px solid var(--hair);margin:0}
.kv dt{color:var(--muted);font-size:.92rem}
.kv dd{font-weight:500}
@media (max-width:480px){.kv{grid-template-columns:1fr}.kv dt{border:0;padding-bottom:0}}

.book{background:var(--surface);border-radius:28px;padding:22px;box-shadow:0 1px 0 var(--hair),0 24px 60px var(--shadow2);display:flex;flex-direction:column;gap:14px;position:sticky;top:86px;max-height:calc(100vh - 104px);overflow-y:auto}
@media (max-width:960px){.book{position:static;max-height:none}}
.book .what{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--muted)}
.book .big{font-family:var(--display);font-weight:700;font-size:2.6rem;line-height:1;letter-spacing:-.05em;margin-top:6px}
.book .big small{font-family:var(--body);font-size:.95rem;font-weight:500;letter-spacing:0;color:var(--muted)}
.book .lines{display:flex;flex-direction:column;border-top:1px solid var(--hair);padding-top:10px;gap:5px}
.book .line{display:flex;justify-content:space-between;gap:12px;font-size:.92rem}
.book .line span{color:var(--muted)}
.book .line b{font-weight:600}
.book h2{font-size:1.1rem;letter-spacing:-.02em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:380px){.two{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:.8rem;font-weight:600;color:var(--muted)}
.field input,.field select,.field textarea{padding:10px 12px;border-radius:12px;border:0;box-shadow:inset 0 0 0 1px var(--field);background:var(--bg);width:100%}
.field input:user-invalid,.field textarea:user-invalid{box-shadow:inset 0 0 0 2px var(--coral-text)}
.field .opt{font-weight:500}
/* house page: at a glance, highlights, details, location */
.ic{flex:none;color:var(--acc)} .ic.sm{width:18px;height:18px}
.glance{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:720px){.glance{grid-template-columns:1fr 1fr}}
.glance li{background:var(--surface);border-radius:18px;padding:16px;box-shadow:inset 0 0 0 1px var(--hair);display:flex;flex-direction:column;gap:4px}
.glance .ic{width:26px;height:26px;margin-bottom:6px}
.glance b{font-family:var(--display);font-weight:600;font-size:1.08rem;letter-spacing:-.02em;line-height:1.2}
.glance span{font-size:.86rem;color:var(--muted);line-height:1.35}
.hl{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.hl li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 11px;border-radius:999px;background:var(--t-blue);font-weight:600;font-size:.92rem}
.spec2{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}
.spec2 .sp-block:last-child{grid-column:1/-1}
@media (max-width:640px){.spec2{grid-template-columns:1fr}}
.spec2 h2,.loc h2{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:10px}
.ticks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.ticks li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--hair)}
.ticks .ic{margin-top:2px;color:var(--ok-text)}
.ticks.plain li span::before{content:""}
.ticks.big li{font-size:1rem}
.ticks.big .ic{color:var(--acc)}
.loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;align-items:start}
@media (max-width:760px){.loc-grid{grid-template-columns:1fr}}
.mapbox{min-height:260px;border-radius:22px;background:var(--t-blue);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;overflow:hidden}
.mapbox iframe{width:100%;height:320px;border:0;border-radius:16px}
.mapbox.on{padding:0;background:none}
/* compare */
.cardwrap{position:relative;display:flex;flex-direction:column}
.cmp-t{display:inline-flex;align-items:center;gap:8px}
.cmp-t .ic{color:currentColor;opacity:.35}
.cmp-t[aria-pressed="true"]{background:var(--ink);color:var(--bg);box-shadow:none}
.cmp-t[aria-pressed="true"] .ic{opacity:1}
.cmp-t.mini{position:absolute;right:14px;top:14px;z-index:2;border:0;border-radius:999px;padding:7px 12px 7px 9px;font:inherit;font-size:.8rem;font-weight:600;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);cursor:pointer;min-height:36px}
.cmp-t.mini[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.cmp-tray{position:fixed;left:50%;transform:translateX(-50%);bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:8;display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);padding:8px 8px 8px 18px;border-radius:999px;box-shadow:0 16px 40px var(--shadow2);font-weight:600;font-size:.92rem;max-width:calc(100% - 24px)}
.cmp-tray a{background:var(--bg);color:var(--ink);text-decoration:none;padding:9px 16px;border-radius:999px;white-space:nowrap}
.cmp-tray button{background:none;border:0;color:inherit;opacity:.7;cursor:pointer;font:inherit;font-size:.85rem;text-decoration:underline;padding:8px}
@media (max-width:960px){.has-mbar .cmp-tray{bottom:84px}}
.cmp-wrap{overflow-x:auto;border-radius:22px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair)}
table.cmpt{border-collapse:separate;border-spacing:0;width:100%;min-width:560px;font-size:.94rem}
table.cmpt th,table.cmpt td{padding:12px 14px;border-bottom:1px solid var(--hair);vertical-align:top;text-align:left;min-width:170px}
table.cmpt th[scope="row"]{position:sticky;left:0;background:var(--surface);z-index:1;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;min-width:120px;width:140px}
table.cmpt thead th{vertical-align:bottom}
table.cmpt thead img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block;margin-bottom:8px}
table.cmpt thead a{font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:-.02em;text-decoration:none}
.yes{color:var(--ok-text);font-weight:600} .no{color:var(--muted)}
.top-tag{display:inline-block;margin-left:6px;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--t-mint);color:var(--ok-text);vertical-align:1px}
.cmp-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.cmp-add select{padding:10px 12px;border-radius:12px;border:0;box-shadow:inset 0 0 0 1px var(--field);background:var(--surface)}
.slotpick{display:flex;flex-direction:column;gap:8px}
.slotpick .flabel{font-size:.8rem;font-weight:600;color:var(--muted)}
.slotpick .days,.slotpick .times{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 6px;flex-wrap:nowrap}
.slotpick .times{flex-wrap:wrap}
.chipbtn{flex:none;border:0;border-radius:999px;padding:8px 12px;font-size:.86rem;font-weight:600;background:var(--bg);box-shadow:inset 0 0 0 1px var(--field);cursor:pointer;min-height:40px}
.chipbtn[aria-pressed="true"]{background:var(--ink);color:var(--bg);box-shadow:none}
.chipbtn.ghost{background:transparent;color:var(--muted);box-shadow:none;text-decoration:underline}
.err{font-size:.8rem;font-weight:600;color:var(--coral-text)}
/* mobile: sticky viewing bar on house pages */
.mbar{display:none}
@media (max-width:960px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:7;align-items:center;justify-content:space-between;gap:12px;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hair2);transition:transform .25s}
  .mbar b{font-family:var(--display);font-size:1.25rem;letter-spacing:-.03em}
  .mbar span{font-size:.8rem;color:var(--muted);display:block}
  .mbar.off{transform:translateY(110%)}
  .has-mbar footer{padding-bottom:80px}
}
.field textarea{min-height:110px;resize:vertical}
.book .btn{width:100%}
.hp{display:none}
.note{font-size:.84rem;color:var(--muted)}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
@media (max-width:760px){.faq{grid-template-columns:1fr}}
.faq div{padding:24px 0;border-top:1px solid var(--hair2)}
.faq h3{font-size:1.3rem;margin-bottom:8px}
.faq p{color:var(--muted)}

/* landlords */
.l-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px)}
@media (max-width:900px){.l-hero{grid-template-columns:1fr}}
.l-hero h1{font-size:clamp(2.4rem,5.4vw,4.4rem);line-height:1;margin-top:20px}
.panel{background:var(--surface);border-radius:22px;box-shadow:inset 0 0 0 1px var(--hair),0 10px 30px var(--shadow);padding:24px}
.mini{display:flex;flex-direction:column;gap:16px}
.mini .topr{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mini .v{font-family:var(--display);font-weight:700;font-size:2.4rem;letter-spacing:-.04em}
.bar{height:8px;border-radius:4px;background:var(--t-blue);overflow:hidden}
.bar i{display:block;height:100%;background:var(--acc);border-radius:4px}
.chip{display:inline-flex;font-size:.76rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--t-blue);color:var(--acc);white-space:nowrap}
.chip.ok{background:var(--t-mint);color:var(--ok-text)} .chip.warn{background:var(--t-peach);color:var(--coral-text)}
.mini table{width:100%;border-collapse:collapse;font-size:.92rem}
.mini td{padding:10px 0;border-bottom:1px solid var(--hair)} .mini tr:last-child td{border:0}
.mini td.r{text-align:right}
.feats{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:0}
@media (max-width:900px){.feats{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.feats{grid-template-columns:1fr}}
.feats li{padding:24px 24px 8px 0;border-top:1px solid var(--hair2)}
.feats .n{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--acc);display:block;margin-bottom:18px}
.feats h3{margin-bottom:6px}
.feats p{color:var(--muted);font-size:.96rem}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:880px){.plans{grid-template-columns:1fr}}
.plan{display:flex;flex-direction:column;gap:16px}
.plan.feature{background:var(--ink);color:var(--bg);box-shadow:0 20px 50px var(--shadow2)}
.plan.feature .label,.plan.feature ul{color:color-mix(in srgb,var(--bg) 72%,transparent)}
.plan.feature .chip{background:var(--coral-fill);color:var(--on-coral)}
.plan .amt{font-family:var(--display);font-weight:700;font-size:3rem;letter-spacing:-.05em;line-height:1}
.plan .amt small{font-family:var(--body);font-size:.92rem;font-weight:500;letter-spacing:0;opacity:.7}
.plan ul{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:8px;color:var(--muted)}
.plan ul li::before{content:"— ";opacity:.6}
.tablewrap{overflow-x:auto;border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair)}
table.cmp{border-collapse:collapse;width:100%;font-size:.96rem}
table.cmp th,table.cmp td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--hair)}
table.cmp th{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
table.cmp tr:last-child td{border-bottom:0}
table.cmp td.r,table.cmp th.r{text-align:right}
table.cmp tr.us td{font-weight:600}
table.cmp tr.us td:first-child{color:var(--acc)}
.formcard{max-width:720px}

/* footer */
footer{border-top:1px solid var(--hair);padding-top:48px;overflow:hidden;margin-top:24px}
.fcols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:28px}
@media (max-width:800px){.fcols{grid-template-columns:1fr 1fr}}
.fcols h2{font-size:.78rem;font-family:var(--body);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-bottom:12px}
.fcols ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.fcols a{text-decoration:none}
.fcols a:hover{text-decoration:underline}
.fsmall{font-size:.84rem;color:var(--muted);margin-top:32px;display:flex;gap:10px 28px;flex-wrap:wrap;justify-content:space-between}
.giant{font-family:var(--display);font-weight:800;font-size:clamp(4rem,17vw,15.5rem);letter-spacing:-.07em;line-height:.78;margin-top:28px;white-space:nowrap;transform:translateY(4%)}
.giant i{font-style:normal;color:var(--coral)}
@media (max-width:560px){.cmp-tray{padding:6px;gap:4px;font-size:.86rem}.cmp-tray>span{display:none}.cmp-tray a{padding:9px 14px}}
.detail section{padding-block:0}
/* maps */
.map{width:100%;border-radius:22px;overflow:hidden;background:var(--t-blue);z-index:0;box-shadow:inset 0 0 0 1px var(--hair)}
.house-map{height:340px}
.list-map{height:min(70vh,620px);margin-bottom:8px}
.listhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.viewsw{display:inline-flex;background:var(--surface);border-radius:999px;padding:4px;box-shadow:inset 0 0 0 1px var(--hair2)}
.viewsw button{border:0;background:none;font:inherit;font-weight:600;font-size:.9rem;padding:8px 18px;border-radius:999px;cursor:pointer;color:var(--muted);min-height:40px}
.viewsw button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.pin span{display:inline-block;white-space:nowrap;padding:5px 10px;border-radius:999px;font:600 13px/1.2 "Instrument Sans",system-ui,sans-serif;box-shadow:0 6px 16px rgba(0,0,0,.25);transform:translate(-50%,-50%)}
.leaflet-div-icon.pin{background:none;border:0;width:0!important;height:0!important}
.pin.house span{background:#B93A12;color:#fff}
.pin.house.free span{background:#15803D;color:#fff}
.pin.house.let span{background:#6B7280;color:#fff;opacity:.9}
.pin.campus span{background:#0E0F12;color:#FAFAF7}
.leaflet-container{font-family:var(--body)}
.mpop{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:#0E0F12}
.mpop img{width:220px;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block;margin-bottom:4px}
.mpop span{color:#5E626B;font-size:12px}
.leaflet-popup-content{margin:10px}
/* landlords: savings */
.save{background:var(--ink);color:var(--bg);border-radius:36px;padding:clamp(24px,5vw,56px);position:relative;overflow:hidden}
.save::after{content:"";position:absolute;right:-120px;top:-120px;width:320px;height:320px;border-radius:50%;background:var(--coral);opacity:.9;pointer-events:none}
.save > *{position:relative;z-index:1}
.save .label{color:color-mix(in srgb,var(--bg) 65%,transparent)}
.save-top{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:860px){.save-top{grid-template-columns:1fr}}
.save-h{font-size:clamp(2.4rem,6.4vw,5rem);line-height:.95;margin-top:12px}
.save-h em{font-family:var(--display);font-style:normal;font-weight:800;color:var(--coral-inv);letter-spacing:-.05em;display:inline-block}
.save-sub{margin-top:18px;font-size:1.08rem;color:color-mix(in srgb,var(--bg) 78%,transparent);max-width:48ch}
.save-sub b{color:var(--bg)}
.calc{display:flex;flex-direction:column;gap:16px;background:color-mix(in srgb,var(--bg) 8%,transparent);border-radius:22px;padding:20px}
.calc .field label{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.calc output{font-family:var(--display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em}
.calc input[type=range]{width:100%;accent-color:var(--coral-inv);box-shadow:none;padding:0;background:none;height:28px}
.bars{margin-top:clamp(28px,4vw,44px);display:flex;flex-direction:column;gap:14px}
.bar-row{display:grid;grid-template-columns:170px 1fr 110px;gap:14px;align-items:center}
@media (max-width:600px){.bar-row{grid-template-columns:1fr auto}.bar-row .bt{grid-column:1/-1;grid-row:2}}
.bar-row .bl{font-weight:600;color:color-mix(in srgb,var(--bg) 78%,transparent)}
.bar-row.us .bl{color:var(--bg)}
.bar-row b{font-family:var(--display);font-size:1.35rem;letter-spacing:-.03em;text-align:right}
.bt{height:22px;border-radius:11px;background:color-mix(in srgb,var(--bg) 10%,transparent);overflow:hidden}
.bt i{display:block;height:100%;border-radius:11px}
@media (prefers-reduced-motion:no-preference){.bt i{transition:width .5s cubic-bezier(.2,.7,.2,1)}}
.b-agent{background:color-mix(in srgb,var(--bg) 45%,transparent)}
.b-us{background:var(--coral-inv)}
.b-free{background:var(--ok)}
.save-points{list-style:none;padding:0;margin:clamp(28px,4vw,40px) 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:860px){.save-points{grid-template-columns:1fr}}
.save-points li{background:color-mix(in srgb,var(--bg) 8%,transparent);border-radius:18px;padding:18px;color:color-mix(in srgb,var(--bg) 75%,transparent);font-size:.95rem}
.save-points b{display:block;color:var(--bg);font-family:var(--display);font-size:1.1rem;letter-spacing:-.02em;margin-bottom:4px}
.save .small.muted{color:color-mix(in srgb,var(--bg) 55%,transparent)}
@media (max-width:860px){.save::after{display:none}}
/* ===== landlords page ===== */
.ll .l-hero{align-items:center}
.ll .l-hero h1{font-size:clamp(2.6rem,6vw,5rem);line-height:.95}
/* product "screenshots" drawn in HTML */
.shot{background:var(--surface);border-radius:22px;box-shadow:0 30px 70px var(--shadow2),inset 0 0 0 1px var(--hair);overflow:hidden;min-width:0}
.shot-bar{display:flex;gap:6px;padding:12px 14px;border-bottom:1px solid var(--hair);background:color-mix(in srgb,var(--surface) 90%,var(--ink))}
.shot-bar i{width:10px;height:10px;border-radius:50%;background:var(--hair2)}
.shot-bar i:first-child{background:#FF6058}.shot-bar i:nth-child(2){background:#FFBD2E}.shot-bar i:nth-child(3){background:#28C840}
.shot-body{padding:18px;font-size:.88rem}
.hero-shot{transform:rotate(1.2deg)}
@media (prefers-reduced-motion:no-preference){.hero-shot{transition:transform .5s}.hero-shot:hover{transform:rotate(0)}}
.app{display:grid;grid-template-columns:120px 1fr;gap:16px}
@media (max-width:480px){.app{grid-template-columns:1fr}.app-side{display:none!important}}
.app-side{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}
.app-side b{font-family:var(--display);font-size:1.05rem;letter-spacing:-.05em;color:var(--ink);margin-bottom:8px}
.app-side b em{font-family:var(--serif);font-weight:400}.app-side b i{font-style:normal;color:var(--coral)}
.app-side span{padding:6px 10px;border-radius:8px}
.app-side span.on{background:var(--ink);color:var(--bg);font-weight:600}
.app-h{font-family:var(--display);font-weight:700;font-size:1.4rem;letter-spacing:-.03em;margin-bottom:12px}
.app-h em{font-family:var(--serif);font-weight:400}
.app-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.app-card{background:var(--bg);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:2px;box-shadow:inset 0 0 0 1px var(--hair)}
.app-card small{color:var(--muted);font-size:.74rem}
.app-card b{font-family:var(--display);font-size:1.5rem;letter-spacing:-.04em}
.mbar2{height:7px;border-radius:4px;background:var(--t-blue);overflow:hidden;margin-top:6px}
.mbar2 i{display:block;height:100%;background:var(--ok);border-radius:4px}
.app-list{margin-top:12px;display:flex;flex-direction:column}
.app-list div{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:.82rem}
.app-list em{margin-left:auto;font-style:normal;font-weight:600;font-size:.74rem;color:var(--muted)}
.dotc{width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none}
.dotc.ok{background:var(--ok)}.dotc.warn{background:var(--coral)}
.trustbar{list-style:none;padding:16px 0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:10px 28px;border-block:1px solid var(--hair);font-weight:600;font-size:.95rem}
.trustbar li{display:inline-flex;align-items:center;gap:8px}
.trustbar .ic{color:var(--ok-text)}
/* steps */
.lsteps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:s}
@media (max-width:860px){.lsteps{grid-template-columns:1fr}}
.lsteps li{display:flex;gap:16px;background:var(--surface);border-radius:24px;padding:24px;box-shadow:inset 0 0 0 1px var(--hair)}
.lsteps .n{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-family:var(--display);font-weight:700;font-size:1.2rem}
.lsteps h3{font-size:1.25rem;margin-bottom:6px}
.lsteps p{color:var(--muted)}
.lsteps .time{display:inline-block;margin-top:10px;font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--t-mint);color:var(--ok-text)}
/* feature rows */
.fshow{display:flex;flex-direction:column;gap:clamp(40px,7vw,88px)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.frow.rev .ftext{order:2}
@media (max-width:860px){.frow{grid-template-columns:1fr}.frow.rev .ftext{order:0}}
.ftext h3{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.05;letter-spacing:-.035em;margin:12px 0 12px}
.ftext p{color:var(--muted);font-size:1.05rem;max-width:52ch}
.ftext .ticks{margin-top:14px}
.ftext .fnote{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--t-peach);color:var(--ink);font-size:.98rem}
.tagp.ink{background:var(--ink);color:var(--bg);box-shadow:none}
.f-shot .shot-body{padding:20px;display:flex;flex-direction:column;gap:12px}
@media (prefers-reduced-motion:no-preference){.f-shot{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.f-shot:hover{transform:translateY(-4px)}}
.mtag{display:inline-flex;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--t-blue);color:var(--acc);white-space:nowrap}
.mtag.ok{background:var(--t-mint);color:var(--ok-text)}.mtag.warn{background:var(--t-peach);color:var(--coral-text)}.mtag.grey{background:var(--hair);color:var(--muted)}
.mcard .mpic{height:170px;border-radius:16px;background:linear-gradient(160deg,#b9c7e8,#e8d6c6 60%,#9fb68f);position:relative}
.mcard .mstat{position:absolute;left:12px;top:12px;background:var(--glass);border-radius:999px;padding:5px 10px;font-weight:600;font-size:.76rem}
.mcard .mtop{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px}
.mcard .mtop b:first-child{font-family:var(--display);font-size:1.15rem;letter-spacing:-.02em}
.mchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mchips span{font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--t-blue)}
.mreq{background:var(--bg);border-radius:14px;padding:14px;box-shadow:inset 0 0 0 1px var(--hair)}
.mreq.faded{opacity:.6}
.mreq-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mreq small{color:var(--muted);display:block;margin-top:4px}
.mreq-b{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.mbtn{font-size:.8rem;font-weight:600;padding:8px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--hair2)}
.mbtn.ink{background:var(--ink);color:var(--bg);box-shadow:none}
.mcal{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.mday{display:flex;flex-direction:column;gap:6px;text-align:center}
.mday small{font-weight:700;color:var(--muted);font-size:.75rem}
.mday span{font-size:.78rem;font-weight:600;padding:7px 0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--hair2)}
.mday span.bk{background:var(--coral-fill);color:var(--on-coral);box-shadow:none}
.msign-h,.mrent-h{margin-bottom:6px}
.msign-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.msrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair)}
.msrow span:first-child{font-weight:600}
.mrent-h small{color:var(--muted)}
.mrent-h b{display:block;font-family:var(--display);font-size:1.6rem;letter-spacing:-.04em}
.mrent-h b span{font-size:.9rem;color:var(--muted);font-weight:500;letter-spacing:0}
.mrep{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:start}
.mrep-pic{aspect-ratio:1;border-radius:14px;background:linear-gradient(140deg,#cfd8e3,#eef2f6 50%,#b7c4d4)}
.mrep small{display:block;color:var(--muted);margin-top:4px}
.mrep-s{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mrep .mq{font-style:italic;margin-top:8px}
/* Free vs Managed */
table.fcmp td:nth-child(n+2),table.fcmp th:nth-child(n+2){text-align:center;width:22%}
table.fcmp .yes{font-size:1.15rem}
table.fcmp .price-row td{font-weight:600;background:color-mix(in srgb,var(--t-blue) 50%,transparent)}
/* FAQ accordion */
.acc{display:flex;flex-direction:column;border-top:1px solid var(--hair2);max-width:860px}
.acc details{border-bottom:1px solid var(--hair2)}
.acc summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.02em;position:relative}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.6rem;font-weight:400;color:var(--muted)}
.acc details[open] summary::after{content:"–"}
.acc details p{padding:0 0 20px;color:var(--muted);max-width:68ch}
.plans.two{grid-template-columns:repeat(2,1fr);max-width:880px}
@media (max-width:880px){.plans.two{grid-template-columns:1fr}}
.pin.campus span{background:#3B4252;color:#FAFAF7;font-weight:600}
.pin.campus.main span{background:#0E0F12;font-size:14px;padding:6px 12px}
.logo.alogo em{margin-left:.22em}
.giant.agiant{font-size:clamp(4rem,22vw,18rem)}
/* agency layout style: "classic" (calmer: straight headings, squarer corners) */
.theme-classic em{font-family:inherit;font-style:normal;font-weight:inherit;color:var(--coral-text)}
.theme-classic .logo em{color:inherit;font-weight:600}
.theme-classic h1{letter-spacing:-.03em}
.theme-classic .card .pic,.theme-classic .gal .main,.theme-classic .book,.theme-classic .panel,.theme-classic .band,.theme-classic .save,.theme-classic .shot,.theme-classic .glance li,.theme-classic .step,.theme-classic .lsteps li{border-radius:14px}
.theme-classic .visual .main{border-radius:18px}
.theme-classic .marq{display:none}
.theme-classic .visual .badge{display:none}
/* letting agents page */
.agent-feats{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.agent-feats{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.agent-feats{grid-template-columns:1fr}}
.agent-feats li{padding-bottom:20px}
.mini-sites{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:520px){.mini-sites{grid-template-columns:1fr}}
.mini-site{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 18px 40px var(--shadow2),inset 0 0 0 1px var(--hair);color:#0E0F12}
.mini-site.bd{border-radius:26px}
.ms-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;color:#fff;font-size:.72rem}
.ms-bar b{font-size:.85rem}
.ms-hero{display:flex;justify-content:space-between;align-items:end;padding:16px 12px;gap:10px}
.ms-hero b{font-family:var(--display);font-size:1.15rem;line-height:1.05;letter-spacing:-.03em}
.ms-hero i{width:56px;height:56px;border-radius:12px;opacity:.85}
.mini-site.bd .ms-hero i{border-radius:50%}
.ms-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 12px 14px}
.ms-cards span{height:46px;border-radius:8px;background:#E9ECF2}

/* How a landlord lets: partner agent or self-managed */
fieldset.field{border:0;padding:0;margin:0;min-width:0}
fieldset.field legend{font-weight:600;font-size:.9rem;margin-bottom:8px}
.choice2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:6px}
.opt-card,.pcard{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--hair2);border-radius:14px;padding:14px;cursor:pointer;background:var(--surface)}
.opt-card>span{display:flex;flex-direction:column;gap:4px}
.opt-card .chip{align-self:flex-start}
.opt-card.on,.pcard.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.opt-card input,.pcard input{appearance:auto;-webkit-appearance:radio;width:18px;height:18px;min-height:0;flex:none;padding:0;margin:3px 0 0;border:0;box-shadow:none;background:none;accent-color:var(--ink)}
.opt-card:has(input:disabled){opacity:.5;cursor:not-allowed}
.pcard{margin-bottom:8px}
.letbox{margin-top:16px}
.partners-list .pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.pcard-pub{border:1px solid var(--hair2);border-radius:16px;padding:18px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.pcard-pub h4{font-size:1.05rem;margin:0}
.pcard-pub .small{font-size:.86rem}
.opt-card b,.pcard b{font-size:1rem;font-weight:650;color:var(--ink)}
.demo-site-bar{background:#FFF1C7;color:#3B2F00;font-size:.88rem;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.demo-site-bar .wrap{display:flex;justify-content:space-between;gap:6px 16px;flex-wrap:wrap}
.demo-site-bar a{color:#3B2F00;font-weight:600}

/* ===== Showcase agency layout (agency.json "homepage": "showcase") ===== */
.showcase{--cream:#F6F1E7;--navy:var(--brand-navy,var(--ink))}
.showcase h1,.showcase h2,.showcase h3{font-family:Lora,Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.01em}
.showcase h1 em,.showcase h2 em{font-style:italic;color:var(--coral-text)}
.btn.gold{background:var(--coral);color:#1A1405;box-shadow:none}
.btn.gold:hover{filter:brightness(1.05)}
.btn.line{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.btn.wa{background:#25D366;color:#06260F}
.ulink{font-weight:600;text-decoration:none;border-bottom:2px solid var(--coral);padding-bottom:2px;display:inline-block;margin-top:10px}
/* header */
.snav{position:sticky;top:0;z-index:20;background:var(--navy);color:#fff;padding-top:env(safe-area-inset-top,0px)}
.snav .wrap{display:flex;align-items:center;gap:10px 22px;padding-block:12px}
.snav .logo{margin-right:auto;color:#fff}
.snav .logo em,.snav .logo i{color:var(--coral)}
.slinks{display:flex;gap:4px 20px;align-items:center}
.slinks a.l{color:rgba(255,255,255,.82);text-decoration:none;font-weight:500;font-size:.95rem;padding-block:6px;white-space:nowrap}
.slinks a.monly{display:none}
.slinks a.l:hover,.slinks a.l[aria-current="page"]{color:#fff;text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:6px;text-decoration-thickness:2px}
.stel{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:600;text-decoration:none;white-space:nowrap}
.stel .ic{color:var(--coral)}
.sicon{display:none;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;border:0;cursor:pointer;background:rgba(255,255,255,.1);color:#fff}
.scall{background:var(--coral);color:#1A1405}
.smenu{flex-direction:column;gap:4px;border-radius:12px}
.smenu span{display:block;width:18px;height:2px;background:#fff;border-radius:2px}
@media (max-width:1240px){.stel span{display:none}}
@media (max-width:1000px){
  .slinks a.monly{display:block}
  .sicon{display:inline-flex}.stel,.sbook{display:none}
  .slinks{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);padding:6px 16px 16px;border-top:1px solid rgba(255,255,255,.1);display:none}
  .slinks.open{display:flex}
  .slinks a.l{padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-size:1.05rem}
}
/* hero */
.shero{position:relative;min-height:clamp(300px,42vh,400px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--navy)}
.shero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,22,.25) 0%,rgba(10,14,22,.55) 45%,rgba(10,14,22,.85) 100%)}
.shero .wrap{position:relative;z-index:1;width:100%;padding-block:48px 84px}
.shero-in{max-width:720px}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.pill .dot{width:8px;height:8px;border-radius:50%;background:#4ADE80}
.shero h1{color:#fff;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.05;margin:14px 0 12px}
.shero h1 em{color:var(--coral-dark,#E0B23A)}
.shero .lead{color:rgba(255,255,255,.9);max-width:56ch}
.ssearch-wrap{position:relative;z-index:3;margin-top:-52px;margin-bottom:8px}
.ssearch{max-width:880px;background:#fff;color:var(--ink);border-radius:18px;padding:14px;display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.ssearch .field label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#5E626B}
.ssearch select{width:100%}
@media (max-width:640px){.ssearch{grid-template-columns:1fr}.ssearch .btn{width:100%;justify-content:center}}
/* trust strip */
.sstats{background:transparent;color:#1C2230}
.sstats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-block:20px}
.sstats div{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;font-size:.85rem;color:#4A505B}
.sstats b{font-family:Lora,Georgia,serif;font-size:1.6rem;color:#1C2230}
.sstats .ic{color:var(--coral-text)}
.stars{display:inline-flex;gap:1px;color:#E0A100}
.stars .ic{width:14px;height:14px;fill:currentColor;stroke:none}
@media (max-width:860px){.sstats .wrap{grid-template-columns:1fr 1fr}}
/* house cards */
.sgrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.scard{position:relative}
.scard .card{display:block;border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair);text-decoration:none;padding:0}
.scard .pic{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:0}
.scard .pic img{width:100%;height:100%;object-fit:cover}
.scard .status{position:absolute;left:10px;top:10px;background:#fff;color:#14532D;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px}
.scard .sbody{padding:14px 16px 16px}
.scard h3{font-size:1.15rem}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.chips span{font-size:.75rem;padding:4px 8px;border-radius:6px;background:var(--cream,#F2EFE8);color:#3B4150}
@media (prefers-color-scheme:dark){.chips span{background:#22252C;color:#E6E6E3}}
.srow{display:flex;align-items:baseline;gap:4px;border-top:1px solid var(--hair);padding-top:10px}
.srow b{font-size:1.3rem}
.srow .sgo{margin-left:auto;font-size:.85rem;font-weight:600;color:#15803D;white-space:nowrap}
.cmp-t.heart{position:absolute;right:10px;top:10px;z-index:2;width:38px;height:38px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:0;box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer;color:#1C2230}
.cmp-t.heart[aria-pressed="true"]{color:#DC2626}
.cmp-t.heart[aria-pressed="true"] .ic{fill:currentColor}
/* bills */
.sbills{background:var(--navy);color:#fff}
.sbills .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center}
.sbills h2{color:#fff;font-size:clamp(1.8rem,4vw,2.6rem)}
.sbills h2 em{color:var(--coral-dark,#E0B23A)}
.sbills p{color:rgba(255,255,255,.85);margin-top:12px}
.sbills .label{color:var(--coral-dark,#E0B23A)}
.btiles{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0}
.btiles li{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);font-weight:500}
.btiles .ic{width:34px;height:34px;padding:7px;border-radius:9px;background:var(--coral);color:#1A1405;flex:none}
.bdep{margin-top:10px;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:12px;background:var(--coral);color:#1A1405;font-weight:600}
.bdep b{font-family:Lora,Georgia,serif;font-size:1.8rem}
@media (max-width:860px){.sbills .wrap{grid-template-columns:1fr}}
/* steps */
.ssteps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ssteps li{background:var(--cream);color:#1C2230;border-radius:16px;padding:22px}
.ssteps .n{display:inline-flex;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;align-items:center;justify-content:center;font-family:Lora,Georgia,serif;margin-bottom:14px}
.ssteps h3{font-size:1.15rem;margin-bottom:6px;color:#1C2230}
.ssteps p{color:#4A505B;font-size:.95rem}
@media (max-width:760px){.ssteps{grid-template-columns:1fr}}
/* reviews */
.sreviews{display:grid;grid-template-columns:280px 1fr;gap:16px}
.rbig{background:var(--navy);color:#fff;border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.rbig .label{color:var(--coral-dark,#E0B23A)}
.rbig b{font-family:Lora,Georgia,serif;font-size:3rem;line-height:1}
.rbig p{color:rgba(255,255,255,.8);font-size:.9rem}
.rquotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.rquotes figure{margin:0;background:var(--cream);color:#1C2230;border-radius:16px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.rquotes blockquote{margin:0;font-family:Lora,Georgia,serif;font-size:1.05rem}
.rquotes figcaption{font-size:.8rem;color:#5E626B}
@media (max-width:760px){.sreviews{grid-template-columns:1fr}}
/* local */
.slocal{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center}
.lphotos{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:340px}
.lphotos img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.lphotos>img:first-child,.lphotos>picture:first-child>img{grid-row:span 2}
.lphotos img{min-height:0}
.slocal p{color:var(--muted);margin-top:12px}
.lbadges{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.lbadges li{font-size:.8rem;padding:6px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--hair2)}
@media (max-width:860px){.slocal{grid-template-columns:1fr}.lphotos{height:260px}}
/* call to action */
.scta{background:var(--navy);color:#fff;border-radius:22px;padding:32px;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center}
.scta h2{color:#fff;font-size:clamp(1.6rem,3.5vw,2.2rem)}
.scta p{color:rgba(255,255,255,.8);margin-top:8px}
.scta .ctas{display:flex;flex-direction:column;gap:10px}
.scta .ctas .btn{justify-content:center}
@media (max-width:760px){.scta{grid-template-columns:1fr;padding:24px}}
/* footer */
.showcase footer{background:var(--navy);color:rgba(255,255,255,.8)}
.showcase footer a{color:rgba(255,255,255,.85)}
.showcase footer h2{color:#fff}
.showcase footer .logo{color:#fff}
.showcase footer .agiant{color:rgba(255,255,255,.06)}
.showcase footer .fsmall{color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.12)}
/* sticky quick-contact bar (phones) */
.sbar{display:none}
@media (max-width:760px){
  .sbar{display:flex;gap:8px;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;background:#fff;border-radius:16px;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
  .sbar a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:12px;background:var(--cream);color:#1C2230;font-weight:600;text-decoration:none;font-size:.9rem}
  .sbar a.ink{flex:1.4;background:var(--navy);color:#fff}
  .showcase footer{padding-bottom:90px}
}
@media (prefers-color-scheme:dark){.showcase .scard .status{background:#0D0E11;color:#86EFAC}.sbar{background:#16181D}.sbar a{background:#22252C;color:#F2F2EF}}
.filternote{margin:0 0 14px;font-weight:600}.filternote a{margin-left:6px}

@media (max-width:640px){.shero{min-height:300px}.shero .wrap{padding-block:36px 76px}.shero .lead{font-size:1rem}}
@media (prefers-color-scheme:dark){.ssearch{background:#16181D;color:#F2F2EF}.sstats{color:#F2F2EF}.sstats b{color:#F2F2EF}}
#bills{scroll-margin-top:72px}
.shero-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:40px;align-items:center}
.shero:has(.hsearch){min-height:0;align-items:center}
.shero:has(.hsearch) .wrap{padding-block:56px}
.shero:has(.hsearch)::after{background:linear-gradient(90deg,rgba(10,14,22,.82) 0%,rgba(10,14,22,.55) 55%,rgba(10,14,22,.25) 100%)}
.hsearch{background:#fff;color:#1C2230;border-radius:20px;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:14px}
.hsearch h2{font-size:1.5rem;color:#1C2230}
.hsearch>p{font-size:.92rem;color:#4A505B;margin-top:-6px}
.hsearch .field label,.hsearch legend{font-weight:700;font-size:.9rem;color:#1C2230;margin-bottom:6px;display:block}
.hsearch select{width:100%;background:#fff;color:#1C2230}
.hsearch .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.htype{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.htype legend{width:100%}
.htype label{cursor:pointer}
.htype input{position:absolute;opacity:0;pointer-events:none}
.htype span{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;box-shadow:inset 0 0 0 1.5px #C9CCD3;font-size:.9rem;font-weight:500;color:#1C2230}
.htype input:checked+span{background:var(--navy);color:#fff;box-shadow:none}
.htype input:focus-visible+span{outline:3px solid var(--coral);outline-offset:2px}
.hsearch .btn{justify-content:center;width:100%;min-height:50px}
@media (max-width:900px){.shero-grid{grid-template-columns:1fr;gap:24px}.shero:has(.hsearch) .wrap{padding-block:36px 28px}.shero:has(.hsearch)::after{background:linear-gradient(180deg,rgba(10,14,22,.5),rgba(10,14,22,.85))}}
@media (prefers-color-scheme:dark){.hsearch{background:#16181D;color:#F2F2EF}.hsearch h2,.hsearch .field label,.hsearch legend,.htype span{color:#F2F2EF}.hsearch>p{color:#A3A7B0}.hsearch select{background:#0D0E11;color:#F2F2EF}}
/* showcase house pages: calmer heading, plain readable intro */
.d-title h1{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1}
.d-title .sub{font-family:var(--body);font-style:normal;font-size:1.05rem;line-height:1.65;color:var(--ink);opacity:.85;max-width:62ch;margin-top:14px}
.card .chips{margin:10px 0 2px}.card .chips span{font-size:.8rem;padding:5px 10px;border-radius:999px;font-weight:500}
.book .bprice{display:none}.book #book-h{margin-top:0}
.flogins{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12)}
.flogins .btn{min-height:42px}
.d-title .sub.long{font-family:var(--body);font-style:normal;font-size:1.05rem;line-height:1.65;color:var(--ink);opacity:.85;max-width:62ch}

/* ===== Landing pages (landlords, letting agents) ===== */
.lp-hero{grid-template-columns:minmax(0,1.1fr) minmax(320px,420px);align-items:start;gap:clamp(28px,5vw,64px)}
.lp-ticks{margin-top:22px;display:grid;gap:10px}
.lp-ticks li{font-size:1.02rem}
.lpform{background:var(--surface);border-radius:22px;padding:24px;box-shadow:0 24px 60px rgba(14,15,18,.12),inset 0 0 0 1px var(--hair);display:flex;flex-direction:column;gap:12px;position:relative}
.lpform h2{font-size:1.6rem}
.lpform .btn{justify-content:center;width:100%;min-height:52px;margin-top:4px}
.lpform .choice2{grid-template-columns:1fr 1fr}
.lpform .opt-card{padding:10px 12px}
.lpform .note{font-size:.85rem}
.lp-proof{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(28px,4vw,48px);padding:20px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.lp-proof div{display:flex;flex-direction:column;gap:2px}
.lp-proof b{font-family:var(--display);font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1}
.lp-proof span{color:var(--muted);font-size:.9rem}
.lp-replace{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;margin-top:clamp(28px,4vw,44px);padding:18px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.lp-replace ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.lp-replace li{font-size:.85rem;padding:6px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--hair2);text-decoration:line-through;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.lp-calc{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(22px,4vw,40px)}
.lp-calc .calc{margin-top:18px;display:grid;gap:16px}
.lp-calc input[type=range]{width:100%}
.lp-calc output{display:block;font-weight:700;margin-top:4px}
.lp-calc .htype span{box-shadow:inset 0 0 0 1.5px var(--hair2);color:var(--ink)}
.lp-calc .htype input:checked+span{background:var(--ink);color:var(--bg)}
.lp-calc-out{background:var(--bg);border-radius:18px;padding:24px;display:flex;flex-direction:column;box-shadow:inset 0 0 0 1px var(--hair)}
.lp-calc-out b{font-family:var(--display);font-size:clamp(2.6rem,6vw,3.6rem);line-height:1.05;margin:4px 0}
.lp-rra{grid-template-columns:1fr 1fr;align-items:center}
.lp-rra .ticks{display:grid;gap:10px}
.lp-final{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:clamp(24px,4vw,40px)}
.lpbar{display:none}
@media (max-width:900px){.lp-hero{grid-template-columns:1fr}.lp-proof{grid-template-columns:1fr 1fr}.lp-calc,.lp-rra{grid-template-columns:1fr}}
@media (max-width:760px){
  .lpbar{display:block;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30}
  .lpbar .btn{width:100%;justify-content:center;min-height:52px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
  body.ll footer{padding-bottom:90px}
}
.lp-calc .calc .field label,.lp-calc .calc output{color:var(--ink)}
.lp-calc-sub{font-family:var(--display);font-size:clamp(1.6rem,3.5vw,2.2rem);line-height:1.1}
/* Available now (this academic year): tag on cards, box on house pages */
.pills{position:absolute;left:14px;top:14px;right:64px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none}
.pills .status{position:static}
.scard .pills{left:10px;top:10px}
.nowbox{border-radius:16px;padding:20px 22px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--coral-fill,#8A6606);scroll-margin-top:90px}
.nowbox h2{font-size:1.35rem;margin:6px 0 6px}
.nowrooms{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.nowrooms li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--hair)}
.nowrooms a,.nowrooms b{font-weight:600;white-space:nowrap}
.nowrooms small{font-weight:400;color:var(--muted,inherit)}
.ri .nowline{color:var(--coral-text,#8A6606);font-weight:600}
/* Showcase hero with its own photo (agency.json showcase.heroImage.src): lighter at the top so the photo shows, dark behind the text */
.shero.photo::after{background:linear-gradient(90deg,rgba(10,14,22,.55) 0%,rgba(10,14,22,.15) 60%,rgba(10,14,22,0) 100%),linear-gradient(180deg,rgba(10,14,22,0) 0%,rgba(10,14,22,.2) 40%,rgba(10,14,22,.8) 100%)}
@media (max-width:960px){.shero.photo::after{background:linear-gradient(180deg,rgba(10,14,22,.05) 0%,rgba(10,14,22,.45) 35%,rgba(10,14,22,.85) 70%)}}
.shero.photo .shero-img{object-position:var(--pos,50% 50%)}
@media (max-width:960px){.shero.photo .shero-img{object-position:var(--pos-m,var(--pos,50% 50%))}}
/* Showcase hero: exactly one screen tall on desktop (minus the 65px header), with the search box compact enough to fit a 720px-high laptop screen */
@media (min-width:901px){
  .shero:has(.hsearch){height:min(calc(100svh - 65px),900px);min-height:560px}
  .shero:has(.hsearch) .wrap{padding-block:24px}
  .hsearch{padding:20px 22px;gap:10px}
  .hsearch h2{font-size:1.35rem}
  .hsearch .field label,.hsearch legend{margin-bottom:4px}
  .hsearch .btn{min-height:46px}
}
@media (min-width:901px) and (max-height:760px){.htype span{padding:6px 12px}.hsearch select{min-height:42px}}
/* Phones: heading and search box together fit one screen (the intro paragraph is hidden; the search box says the same) */
@media (max-width:900px){
  .shero:has(.hsearch) .wrap{padding-block:18px 20px}
  .shero:has(.hsearch) .shero-grid{gap:14px}
  .shero:has(.hsearch) .lead{display:none}
  .shero:has(.hsearch) h1{font-size:2rem;margin:10px 0 0}
  .hsearch{padding:16px 18px;gap:9px;border-radius:16px}
  .hsearch h2{font-size:1.25rem}
  .hsearch>p{display:none}
  .hsearch .field label,.hsearch legend{margin-bottom:3px;font-size:.85rem}
  .hsearch select{min-height:42px;padding-block:8px}
  .htype{gap:6px}
  .htype span{padding:6px 11px;font-size:.84rem}
  .hsearch .btn{min-height:46px}
}
.cardwrap:not(:has(.cmp-t)) .pills{right:14px}
/* Filter rows: Availability, Bedrooms, Area */
.frows{display:grid;gap:10px;margin-top:26px}
.fr-row{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center}
.fr-row .flabel{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#5B606B)}
.frows .filters{margin-top:0}
.frows .filters a{padding:7px 14px;font-size:.88rem}
.filters a[aria-current="true"]{background:var(--ink);color:var(--bg);box-shadow:none}
.fr-row:first-child .filters a{padding:9px 16px;font-size:.92rem}
@media (max-width:640px){.fr-row{grid-template-columns:1fr;gap:6px}.frows .filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.frows .filters::-webkit-scrollbar{display:none}.frows .filters a{white-space:nowrap;flex:none}}
/* House list pages on showcase sites: a compact heading, so the filters and houses come first */
.pagehead.tight{padding-block:22px 4px}
.pagehead.tight h1{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.08;margin-top:10px;max-width:none}
.pagehead.tight h1 br{display:none}
.pagehead.tight .lead{font-size:1rem;max-width:80ch;margin-top:8px}
.pagehead.tight .frows{margin-top:18px}
@media (max-width:640px){.pagehead.tight .lead{display:none}}
/* ---------- Bright colours (agency.json showcase.bright): white header, cream and gold sections, navy only in the footer. Light mode only. ---------- */
@media (prefers-color-scheme:light){
  .bright{--cream:#FBF4E4;--gold-tint:#F6E7BF}
  .bright .snav{background:#fff;color:var(--navy);box-shadow:0 1px 0 rgba(28,34,48,.08),0 6px 20px rgba(28,34,48,.05)}
  .bright .snav .logo{color:var(--navy)}
  .bright .slinks a.l{color:#3A4150}
  .bright .slinks a.l:hover,.bright .slinks a.l[aria-current="page"]{color:var(--navy)}
  .bright .stel{color:var(--navy)}
  .bright .stel .ic{color:var(--coral-text)}
  .bright .sicon{background:var(--cream);color:var(--navy)}
  .bright .scall{background:var(--coral);color:#1A1405}
  .bright .smenu span{background:var(--navy)}
  .bright .slinks{background:#fff;border-top-color:rgba(28,34,48,.08)}
  .bright .slinks a.l{border-bottom-color:rgba(28,34,48,.08)}
  /* hero: a little lighter on desktop (on phones the text sits on the photo, so the darker overlay stays) */
}
@media (prefers-color-scheme:light) and (min-width:961px){
  .bright .shero.photo::after{background:linear-gradient(90deg,rgba(10,14,22,.5) 0%,rgba(10,14,22,.1) 60%,rgba(10,14,22,0) 100%),linear-gradient(180deg,rgba(10,14,22,0) 0%,rgba(10,14,22,.1) 45%,rgba(10,14,22,.55) 100%)}
}
@media (prefers-color-scheme:light){
  .bright .hsearch .btn.ink{background:var(--coral);color:#1A1405}
  /* bills: warm cream instead of navy */
  .bright .sbills{background:var(--cream);color:#1C2230}
  .bright .sbills h2{color:var(--navy)}
  .bright .sbills h2 em,.bright .sbills .label{color:var(--coral-text)}
  .bright .sbills p{color:#4A505B}
  .bright .btiles li{background:#fff;border-color:rgba(196,145,9,.25);box-shadow:0 2px 8px rgba(28,34,48,.04)}
  /* steps and reviews */
  .bright .ssteps li{background:#fff;box-shadow:inset 0 0 0 1px rgba(196,145,9,.25)}
  .bright .ssteps .n{background:var(--coral);color:#1A1405}
  .bright .rbig{background:var(--gold-tint);color:var(--navy)}
  .bright .rbig .label{color:var(--coral-text)}
  .bright .rbig p{color:#4A505B}
  .bright .rbig .stars{color:var(--coral-text)}
  .bright .rquotes figure{background:#fff;box-shadow:inset 0 0 0 1px var(--hair2)}
  /* call to action: gold */
  .bright .scta{background:linear-gradient(135deg,#F3DA93 0%,#E9C25A 100%);color:var(--navy)}
  .bright .scta h2{color:var(--navy)}
  .bright .scta p{color:#3A3220}
  .bright .scta .btn.gold{background:var(--navy);color:#fff}
  .bright .scta .btn.line{color:var(--navy);box-shadow:inset 0 0 0 1.5px rgba(28,34,48,.45)}
  /* "Available now" section on a cream band */
  .bright .band-cream{background:var(--cream);padding-block:48px;margin-block:24px}
  .bright .sstats .wrap{background:#fff;border-radius:16px;box-shadow:0 8px 30px rgba(28,34,48,.08);margin-top:-36px;position:relative;z-index:2;padding-inline:24px}
}

/* ---------- Review fixes, 12 Nov 2026: accessibility (WCAG 2.1 AA), design consistency ---------- */
/* footer focus ring: the default (--acc navy) is invisible on the navy footer */
.showcase footer :focus-visible{outline-color:var(--coral-dark,#E0B23A)}
/* fair-usage note under the bills (was opacity .7: 3.6:1) */
.bnote{margin-top:14px;color:inherit;opacity:1}
.sbills .bnote{color:rgba(255,255,255,.85)}
@media (prefers-color-scheme:light){.bright .sbills .bnote{color:#4A505B}}
/* hero pill: readable on any part of the photo */
.shero .pill{background:rgba(10,14,22,.55)}
/* search chips: visible focus ring and borders (3:1) */
.htype input:focus-visible+span{outline:3px solid var(--navy);outline-offset:2px}
.showcase .htype span{box-shadow:inset 0 0 0 1.5px #8A8E96}
.showcase .filters a{box-shadow:inset 0 0 0 1px #8A8E96}
.showcase .filters a[aria-current]{box-shadow:none}
.showcase .viewsw{box-shadow:inset 0 0 0 1px #8A8E96}
@media (prefers-color-scheme:dark){.showcase .htype span,.showcase .filters a,.showcase .viewsw{box-shadow:inset 0 0 0 1px #7C808A}}
/* bigger touch targets on phones */
@media (max-width:640px){.htype span{min-height:44px}.showcase .filters a{min-height:44px;display:inline-flex;align-items:center}.viewsw button{min-height:44px}.cmp-t.heart{min-width:44px;min-height:44px}}
/* "View house" link in dark mode */
@media (prefers-color-scheme:dark){.srow .sgo{color:#4ADE80}}
/* "Available now" box: real border so the room chips can't overlap it */
.nowbox{box-shadow:none;border:2px solid var(--coral-fill,#8A6606);padding:20px 22px 22px}
/* room cards with no photo: a compact row, and only the chosen room is outlined */
.room-b:not(:has(.rp)) .ri{padding:12px 10px}
.showcase .room-b.inhouse{box-shadow:inset 0 0 0 1px var(--hair2)}
.showcase .room-b[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--coral),0 14px 30px var(--shadow2)}
.room-b .rp{display:block}
.room-b .ri{display:flex}
/* list count line: same small sans label as everything else */
.listhead h2.label{font-family:var(--body);font-weight:700;font-size:.78rem}
/* mobile filter rows: fade at the right edge so it's clear they scroll */
@media (max-width:640px){.frows .filters{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);padding-right:40px}}
@media (prefers-color-scheme:light){
  /* reviews label on the gold box (was 4.3:1) */
  .bright .rbig .label{color:#6E5205}
  /* brand colours instead of the marketplace pastels */
  .bright .mode .best{color:#6E5205;font-family:var(--body);font-style:normal;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
  .bright .hl li{background:var(--cream);color:var(--navy)}
  .bright .room-b .rp{background:var(--cream)}
  /* gold for the main booking action */
  .bright .book .btn.ink{background:var(--coral);color:#1A1405}
  /* bills on white so it doesn't merge with the cream "Available now" band above */
  .bright .sbills{background:#fff}
  .bright .btiles li{background:var(--cream)}
}
@media (prefers-color-scheme:dark){.htype input:checked+span{background:var(--coral-dark,#E0B23A);color:#1A1405}.showcase .filters a[aria-current]{background:var(--coral-dark,#E0B23A);color:#1A1405}.htype input:focus-visible+span{outline-color:#F2F2EF}}
/* ---------- Student guides ---------- */
.guide{max-width:72ch}
.guide h2{font-size:clamp(1.3rem,2.4vw,1.6rem);margin:30px 0 10px}
.guide p,.guide li{color:var(--muted);line-height:1.65}
.guide p+p{margin-top:10px}
.guide .answer{font-size:1.12rem;color:var(--ink);background:var(--surface);border-left:4px solid var(--coral-fill,#8A6606);padding:16px 18px;border-radius:0 12px 12px 0}
.guide .faq{margin-top:8px}
.guidelist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.guidelist a{display:block;height:100%;padding:20px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair2);text-decoration:none;color:inherit}
.guidelist a:hover{box-shadow:inset 0 0 0 2px var(--coral-fill,#8A6606)}
.guidelist h2{font-size:1.2rem;margin-bottom:6px}
.guidelist p{color:var(--muted);font-size:.95rem}
.calc2{background:var(--surface);border-radius:16px;padding:18px;box-shadow:inset 0 0 0 1px var(--hair2);display:grid;gap:12px;margin-top:6px}
.calc2 .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.calc2 input{width:100%}
.calcout{font-weight:600;color:var(--ink);margin:0}
@media (max-width:560px){.calc2 .two{grid-template-columns:1fr}}
/* pictures behave like the image inside them, so existing layouts are unchanged */
picture{display:contents}
picture>source{display:none}
/* ---------- Map: grouped houses and quieter campus labels ---------- */
.pin.cluster span{background:#fff;color:#14532D;box-shadow:inset 0 0 0 2px #15803D,0 6px 16px rgba(0,0,0,.22);font-weight:600;cursor:pointer}
.pin.cluster span b{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-right:4px;border-radius:999px;background:#15803D;color:#fff;font-size:12px}
.pin.cluster.let span{color:#374151;box-shadow:inset 0 0 0 2px #6B7280,0 6px 16px rgba(0,0,0,.22)}
.pin.cluster.let span b{background:#6B7280}
.pin span i{font-style:normal}
.pin span em{font-style:normal}
.map.far .pin.campus:not(.main) span{padding:4px 7px;font-size:12px;opacity:.85}
.map.far .pin.campus:not(.main) .cl{display:none}
.mlist{display:grid;gap:8px;min-width:200px}
.mlist a{display:grid;gap:2px;text-decoration:none;color:inherit;padding:6px 2px;border-bottom:1px solid rgba(0,0,0,.08)}
.mlist a:last-child{border-bottom:0}
.mlist span{font-size:.85rem;color:#4A505B}

/* ---------- product site: hero, who it's for, portal tabs and dashboards, who-does-what map ---------- */
.phero{padding:clamp(40px,7vw,96px) 0 clamp(24px,4vw,48px);max-width:980px}
.phero h1{margin-top:18px;font-size:clamp(2.6rem,7vw,5.6rem)}
.phero .lead{margin-top:20px;max-width:62ch}
.pwho{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:36px;max-width:820px}
.pwho a{display:flex;flex-direction:column;gap:6px;text-decoration:none;transition:transform .15s}
.pwho a:hover{transform:translateY(-2px)}
.pwho b{font-family:var(--display);font-size:1.3rem;letter-spacing:-.02em}
.pwho .ulink{margin-top:6px;font-weight:600;align-self:flex-start}
.ptabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair2);margin-bottom:24px;max-width:100%;overflow-x:auto}
.ptabs button{border:0;background:none;color:var(--ink);font:inherit;font-weight:600;font-size:.95rem;padding:10px 18px;border-radius:999px;cursor:pointer;white-space:nowrap;min-height:44px}
.ptabs button[aria-selected="true"]{background:var(--ink);color:var(--bg)}
.pportal{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:center}
.pportal-text h3{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.05;margin:12px 0}
.pportal-text .ticks{margin-top:16px}
.dash{border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hair2),0 24px 60px var(--shadow2);overflow:hidden;font-size:.82rem}
.dash-top{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--hair)}
.dash-top i{width:9px;height:9px;border-radius:50%;background:var(--hair2)}
.dash-top span{margin-left:8px;color:var(--muted);font-weight:600;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
.dash-body{display:grid;grid-template-columns:132px minmax(0,1fr)}
.dash-nav{list-style:none;margin:0;padding:14px 10px;border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:2px}
.dash-nav li{padding:7px 10px;border-radius:8px;color:var(--muted);font-weight:500}
.dash-nav li.on{background:var(--t-blue);color:var(--acc);font-weight:600}
.dash-main{padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.dash-h{font-family:var(--display);font-size:1.35rem;letter-spacing:-.02em}
.dash-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dash-kpis>div{border-radius:12px;padding:10px 12px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--hair);display:flex;flex-direction:column;gap:2px;min-width:0}
.dash-kpis span,.dash-kpis small{color:var(--muted);font-size:.72rem}
.dash-kpis b{font-family:var(--display);font-size:1.25rem;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-bar{display:block;height:5px;border-radius:9px;background:var(--hair);margin-top:6px;overflow:hidden}
.dash-bar i{display:block;height:100%;background:var(--ok);border-radius:9px}
.dash-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dash-lists>div{border-radius:12px;padding:10px 12px;box-shadow:inset 0 0 0 1px var(--hair);min-width:0}
.dash-lists>div>span{font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.dash-lists ul{list-style:none;margin:6px 0 0;padding:0}
.dash-lists li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--hair)}
.dash-lists li:first-child{border-top:0}
.dash-lists li>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-lists .chip{font-style:normal;font-size:.68rem;padding:3px 8px}
.pmap th[scope="row"]{white-space:normal;text-transform:none;letter-spacing:-.01em;font-size:.95rem;color:var(--ink);font-weight:600}
.pmap td{font-size:.92rem;text-align:left;vertical-align:top}
.pmap{min-width:640px}
@media (max-width:900px){
  .pportal{grid-template-columns:1fr}
  .dash-body{grid-template-columns:1fr}
  .dash-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--hair);padding:8px}
  .dash-nav li{white-space:nowrap}
}
@media (max-width:640px){
  .pwho{grid-template-columns:1fr}
  .dash-kpis{grid-template-columns:1fr 1fr}
  .dash-kpis>div:last-child{grid-column:1/-1}
  .dash-lists{grid-template-columns:1fr}
  .ptabs{display:flex}
  .ptabs button{flex:1;padding:10px 8px}
}
@media (max-width:640px){.mhide{display:none!important}}
.monly-i{display:none}@media (max-width:640px){.monly-i{display:inline}}
