:root{
  --blue:#005eb8;
  --dark-blue:#003087;
  --light-blue:#41b6e6;
  --green:#007f3b;
  --light-green:#78be20;
  --purple:#330072;
  --black:#212b32;
  --grey1:#4c6272;
  --grey2:#aeb7bd;
  --pale-grey:#f0f4f5;
  --white:#ffffff;
  --yellow:#ffeb3b;
  --red:#d5281b;
  --border-radius:4px;
  font-size:17px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;
  color:var(--black);
  background:var(--white);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:700;line-height:1.2;margin:0 0 .5em;}
h1{font-size:2.25rem;}
h2{font-size:1.75rem;}
h3{font-size:1.3rem;}
p{margin:0 0 1em;}
a{color:var(--blue);text-decoration:underline;}
a:hover{color:var(--dark-blue);}
img{max-width:100%;display:block;}
.container{max-width:1170px;margin:0 auto;padding:0 24px;}

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid transparent;
  background:var(--yellow);
  color:var(--black);
  box-shadow:0 -2px var(--yellow), 0 4px var(--black);
  text-decoration:none;
  outline-offset:0;
}

.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--yellow);color:var(--black);
  padding:8px 16px;font-weight:700;z-index:100;
}
.skip-link:focus{left:8px;top:8px;}

.top-bar{background:var(--dark-blue);color:var(--white);font-size:.9rem;}
.top-bar .container{display:flex;justify-content:space-between;align-items:center;padding:6px 24px;flex-wrap:wrap;gap:6px;}
.top-bar a{color:var(--white);text-decoration:underline;}
.top-bar .phone{font-weight:700;}

header.site-header{background:var(--blue);color:var(--white);border-bottom:6px solid var(--dark-blue);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;gap:16px;flex-wrap:wrap;}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--white);}
.logo-mark{width:44px;height:44px;flex:0 0 auto;border-radius:50%;object-fit:cover;}
.logo-text{font-weight:700;font-size:1.35rem;line-height:1.15;color:var(--white);}
.logo-text small{display:block;font-weight:400;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#d2e5f7;}

nav.primary-nav{background:var(--dark-blue);}
nav.primary-nav ul{list-style:none;display:flex;margin:0;padding:0;flex-wrap:wrap;}
nav.primary-nav a{
  display:block;color:var(--white);text-decoration:none;font-weight:700;
  padding:14px 18px;border-bottom:4px solid transparent;font-size:.95rem;
}
nav.primary-nav a:hover{border-bottom-color:var(--light-blue);}
nav.primary-nav a.active{border-bottom-color:var(--yellow);}

.hero{background:linear-gradient(135deg,var(--dark-blue) 0%, var(--blue) 65%, var(--light-blue) 100%);color:var(--white);padding:56px 0 64px;}
.hero .container{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;}
.hero-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:700;color:var(--yellow);margin-bottom:10px;}
.hero h1{font-size:2.6rem;max-width:16ch;}
.hero p.lead{font-size:1.15rem;max-width:38ch;color:#eaf3fb;}
.hero-ctas{display:flex;gap:14px;margin-top:22px;flex-wrap:wrap;}
.hero-stats{background:rgba(0,0,0,.18);border-radius:8px;padding:22px;display:grid;gap:16px;}
.hero-stat{display:flex;gap:12px;align-items:flex-start;}
.hero-stat .stat-num{font-size:1.5rem;font-weight:700;color:var(--yellow);min-width:64px;}
.hero-stat .stat-label{font-size:.92rem;color:#e5f0fa;}

.page-banner{background:linear-gradient(135deg,var(--dark-blue) 0%, var(--blue) 100%);color:var(--white);padding:36px 0;}
.page-banner h1{font-size:2rem;margin-bottom:4px;}
.page-banner p{color:#eaf3fb;margin:0;}

.btn{
  display:inline-block;font-weight:700;font-size:1rem;padding:12px 22px;border-radius:var(--border-radius);
  border:2px solid transparent;text-decoration:none;cursor:pointer;text-align:center;
}
.btn-primary{background:var(--green);color:var(--white);box-shadow:0 3px 0 #00501f;}
.btn-primary:hover{background:#00601f;}
.btn-secondary{background:transparent;color:var(--white);border-color:var(--white);}
.btn-secondary:hover{background:rgba(255,255,255,.12);}
.btn-outline{background:var(--white);color:var(--blue);border-color:var(--blue);}
.btn-outline:hover{background:var(--pale-grey);}
.btn-small{padding:8px 14px;font-size:.9rem;}
.btn-danger{background:var(--white);color:var(--red);border-color:var(--red);}
.btn-danger:hover{background:#fdeceb;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

section{padding:48px 0;}
section.alt{background:var(--pale-grey);}
.section-heading{max-width:640px;margin-bottom:28px;}
.section-heading .eyebrow{color:var(--green);text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.06em;}

.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.chip{background:var(--white);border:2px solid var(--pale-grey);border-left:5px solid var(--blue);border-radius:var(--border-radius);padding:14px 16px;flex:1 1 220px;font-size:.95rem;}
.chip strong{display:block;color:var(--dark-blue);margin-bottom:2px;}

.tag{
  display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:14px;
  margin:2px 4px 2px 0;color:var(--white);white-space:nowrap;
}
.tag-uc{background:var(--blue);}
.tag-pip{background:var(--purple);}
.tag-esa{background:var(--dark-blue);}
.tag-hb{background:var(--green);}
.tag-jsa{background:var(--grey1);}
.tag-dla{background:#8a1538;}
.tag-other{background:var(--grey1);}
.tag-type{background:var(--light-green);color:var(--black);}
.tag-status-pending{background:#a05a00;}
.tag-status-approved{background:var(--green);}
.tag-status-rejected{background:var(--red);}

.form-panel{background:var(--white);border:1px solid #d8dde0;border-radius:6px;padding:32px;box-shadow:0 1px 3px rgba(0,0,0,.08);}
fieldset{border:0;margin:0 0 28px;padding:0;}
legend{font-size:1.15rem;font-weight:700;margin-bottom:10px;padding:0;color:var(--dark-blue);}
.form-group{margin-bottom:22px;}
.form-group.has-error{border-left:4px solid var(--red);padding-left:14px;}
label{display:block;font-weight:700;margin-bottom:6px;}
.hint{color:var(--grey1);font-size:.9rem;margin-bottom:6px;}
.error-text{color:var(--red);font-weight:700;font-size:.9rem;margin-bottom:6px;display:block;}
input[type=text],input[type=number],input[type=date],input[type=tel],input[type=email],input[type=password],select,textarea{
  width:100%;padding:10px 12px;font-size:1rem;border:2px solid var(--black);border-radius:0;
  font-family:inherit;background:var(--white);color:var(--black);
}
textarea{min-height:110px;resize:vertical;}
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;}
.checkbox-item{display:flex;align-items:flex-start;gap:8px;background:var(--pale-grey);padding:10px;border-radius:4px;}
.checkbox-item input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;}
.checkbox-item label{font-weight:400;margin:0;}
.radio-row{display:flex;gap:16px;flex-wrap:wrap;}
.radio-item{display:flex;align-items:center;gap:6px;}
.radio-item input{width:18px;height:18px;}
.radio-item label{font-weight:400;margin:0;}
.error-summary{border:4px solid var(--red);padding:20px 24px;margin-bottom:28px;background:#fdeceb;}
.error-summary h2{color:var(--red);font-size:1.1rem;margin-bottom:10px;}
.error-summary ul{margin:0;padding-left:20px;}
.error-summary a{color:var(--red);font-weight:700;}
.file-preview{margin-top:10px;max-width:220px;border:1px solid var(--grey2);}
.success-banner{border-left:6px solid var(--green);background:#e8f5ec;padding:18px 22px;margin-bottom:24px;}
.success-banner h3{color:var(--green);margin-bottom:4px;}
.info-banner{border-left:6px solid var(--blue);background:#e6f0fa;padding:18px 22px;margin-bottom:24px;}

.filters-bar{
  background:var(--white);border:1px solid #d8dde0;border-radius:6px;padding:20px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:28px;align-items:end;
}
.filters-bar .form-group{margin-bottom:0;}
.filters-bar label{font-size:.85rem;}
.results-count{font-weight:700;color:var(--dark-blue);margin-bottom:16px;}

.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;}
.listing-card{
  background:var(--white);border:1px solid #d8dde0;border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;border-top:6px solid var(--blue);
}
.listing-card.type-shared{border-top-color:var(--light-green);}
.listing-card.type-studio{border-top-color:var(--purple);}
.listing-photo{width:100%;height:160px;object-fit:cover;background:var(--pale-grey);}
.listing-photo-fallback{
  width:100%;height:160px;background:var(--pale-grey);display:flex;align-items:center;justify-content:center;
  color:var(--grey1);font-size:.85rem;font-weight:700;
}
.listing-body{padding:18px;flex:1;display:flex;flex-direction:column;}
.listing-body h3{font-size:1.1rem;margin-bottom:2px;}
.listing-meta{color:var(--grey1);font-size:.9rem;margin-bottom:10px;}
.listing-price{font-weight:700;color:var(--dark-blue);font-size:1.15rem;margin-bottom:10px;}
.listing-tags{margin-bottom:12px;}
.listing-desc{font-size:.92rem;color:var(--black);margin-bottom:14px;flex:1;}
.listing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}
.empty-state{background:var(--pale-grey);border:2px dashed var(--grey2);border-radius:6px;padding:40px 24px;text-align:center;color:var(--grey1);}
.empty-state h3{color:var(--dark-blue);}

.process-list{list-style:none;margin:0;padding:0;position:relative;}
.process-list li{position:relative;padding-left:56px;padding-bottom:32px;}
.process-list li:last-child{padding-bottom:0;}
.process-list li::before{
  content:attr(data-step);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;
  background:var(--blue);color:var(--white);font-weight:700;display:flex;align-items:center;justify-content:center;
}
.process-list li::after{content:"";position:absolute;left:19px;top:38px;bottom:0;width:2px;background:var(--grey2);}
.process-list li:last-child::after{display:none;}
.process-list h4{margin-bottom:4px;}
.process-time{display:inline-block;color:var(--green);font-weight:700;font-size:.85rem;margin-top:6px;}

.callout-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.callout{background:var(--white);border:1px solid #d8dde0;border-radius:6px;padding:26px;border-left:6px solid var(--green);}
.callout.blue{border-left-color:var(--blue);}
.callout h3{color:var(--dark-blue);}

.data-table{width:100%;border-collapse:collapse;background:var(--white);}
.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid #e1e6e8;text-align:left;font-size:.92rem;}
.data-table th{background:var(--pale-grey);color:var(--dark-blue);font-weight:700;}
.data-table tr:hover td{background:#fafcfd;}
.table-wrap{overflow-x:auto;background:var(--white);border:1px solid #d8dde0;border-radius:6px;}
.table-wrap .data-table{border:0;}

.dashboard-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:8px;}
.pill-count{background:var(--blue);color:var(--white);font-weight:700;border-radius:12px;padding:2px 10px;font-size:.85rem;}

.login-wrap{max-width:420px;margin:0 auto;}

footer{background:var(--dark-blue);color:#cfe0f2;padding:44px 0 24px;font-size:.92rem;}
footer .container{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;}
footer h4{color:var(--white);font-size:1rem;margin-bottom:12px;}
footer ul{list-style:none;margin:0;padding:0;}
footer li{margin-bottom:8px;}
footer a{color:#cfe0f2;}
footer a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid #2a5390;margin-top:28px;padding-top:18px;font-size:.82rem;color:#9fb9d6;}
.footer-disclaimer{max-width:900px;}

.badge-note{display:inline-flex;align-items:center;gap:6px;background:#fff8d6;border:1px solid #e6cf5a;color:var(--black);
  padding:10px 14px;border-radius:4px;font-size:.88rem;margin-bottom:20px;}

@media (max-width:800px){
  .hero .container{grid-template-columns:1fr;}
  footer .container{grid-template-columns:1fr 1fr;}
  .callout-split{grid-template-columns:1fr;}
  nav.primary-nav ul{flex-direction:column;}
}
[hidden]{display:none !important;}

/* Enquiry modal */
.modal-overlay{
  position:fixed;inset:0;background:rgba(33,43,50,.6);display:flex;align-items:center;justify-content:center;
  padding:20px;z-index:1000;
}
.modal-panel{
  background:var(--white);border-radius:6px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;
  padding:32px;position:relative;
}
.modal-close{
  position:absolute;top:16px;right:16px;background:var(--pale-grey);border:2px solid transparent;border-radius:50%;
  width:36px;height:36px;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--black);font-weight:700;
}
.modal-close:hover{background:var(--grey2);}
.consent-text{font-size:.88rem;color:var(--grey1);margin-bottom:16px;}
.consent-check{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;}
.consent-check input{width:20px;height:20px;margin-top:2px;flex:0 0 auto;}
.consent-check label{font-weight:400;font-size:.92rem;margin:0;}
