/* ==========================================================================
   NHS Swiss — design tokens
   ========================================================================== */
@font-face{
  font-family:'Space Grotesk';
  src:url('../fonts2/space-grotesk-v22-latin-regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Space Grotesk';
  src:url('../fonts2/space-grotesk-v22-latin-500.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Space Grotesk';
  src:url('../fonts2/space-grotesk-v22-latin-600.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Space Grotesk';
  src:url('../fonts2/space-grotesk-v22-latin-700.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts2/inter-v20-latin-regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts2/inter-v20-latin-500.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts2/inter-v20-latin-600.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';
  src:url('../fonts2/ibm-plex-mono-v20-latin-regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';
  src:url('../fonts2/ibm-plex-mono-v20-latin-500.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}:root{
  --paper:#EDEEE6;
  --paper-2:#F7F7F2;
  --ink:#16241D;
  --forest:#274733;
  --forest-2:#1B3226;
  --gold:#A67C3D;
  --gold-2:#8A6530;
  --slate:#6C7A70;
  --line:rgba(22,36,29,0.14);
  --line-strong:rgba(22,36,29,0.28);
  --white:#FEFEFB;
}.custom-logo-link img{
  max-height:56px;
  width:auto;
  height:auto;
  display:block;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.6;
  margin:0;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Space Grotesk', sans-serif; font-weight:600; letter-spacing:-0.01em; line-height:1.1; margin:0;}
p{margin:0 0 1em;}
.mono{font-family:'IBM Plex Mono', monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 40px;}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:12px 20px; z-index:200;}
.skip-link:focus{left:20px; top:20px;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-2); display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--gold-2); display:inline-block;}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(237,238,230,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:20px 40px; max-width:1180px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:11px;}
.brand .mark{width:34px; height:34px; border:1.5px solid var(--forest); display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk'; font-weight:700; font-size:14px; color:var(--forest);}
.brand .word{font-family:'Space Grotesk'; font-weight:600; font-size:16.5px; letter-spacing:0.01em;}
.brand .word span{color:var(--slate); font-weight:400; font-size:12.5px; display:block; letter-spacing:0.04em; margin-top:1px;}
.primary-menu{list-style:none; display:flex; gap:38px; align-items:center; margin:0; padding:0;}
.primary-menu a{font-size:14px; font-weight:500; color:var(--ink);}
.primary-menu a:hover{color:var(--forest);}
.nav-right{display:flex; align-items:center; gap:26px;}
.nav-cta{font-size:13.5px; font-weight:500; font-family:'Space Grotesk'; border:1px solid var(--ink); padding:10px 20px; display:inline-flex; align-items:center; gap:8px; transition:all .18s ease;}
.nav-cta:hover{background:var(--ink); color:var(--paper-2);}
.menu-toggle{display:none; background:none; border:1px solid var(--ink); padding:8px 12px; font-family:'Space Grotesk';}

/* language switcher */
.lang-switch{display:flex; gap:2px; font-family:'IBM Plex Mono'; font-size:12px;}
.lang-switch a{padding:4px 7px; border:1px solid var(--line-strong); color:var(--slate);}
.lang-switch a.current-lang{background:var(--forest); color:var(--paper-2); border-color:var(--forest);}

/* ---------- hero ---------- */
.hero{padding:96px 0 64px;}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:60px; align-items:end;}
.hero h1{font-size:52px; margin:22px 0 26px; max-width:640px;}
.hero h1 em{font-style:normal; color:var(--forest);}
.hero .lead{font-size:18px; color:#39463D; max-width:480px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:16px;}
.btn-primary{background:var(--forest); color:var(--paper-2); font-family:'Space Grotesk'; font-weight:500; font-size:14.5px; padding:15px 26px; display:inline-flex; align-items:center; gap:10px; border:none; cursor:pointer; transition:background .18s ease;}
.btn-primary:hover{background:var(--forest-2);}
.btn-ghost{border:1px solid var(--line-strong); font-family:'Space Grotesk'; font-weight:500; font-size:14.5px; padding:15px 26px; display:inline-flex; align-items:center; gap:10px;}
.btn-ghost:hover{border-color:var(--ink);}

.manifest{background:var(--white); border:1px solid var(--line-strong); padding:26px 26px 22px;}
.manifest-head{display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:16px;}
.manifest-head .t{font-family:'IBM Plex Mono'; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--slate);}
.manifest-head .n{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--gold-2);}
.manifest-row{display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px dashed var(--line); font-size:13.5px;}
.manifest-row:last-child{border-bottom:none; padding-bottom:0;}
.manifest-row .val{font-family:'IBM Plex Mono'; font-size:12px; color:var(--forest); display:flex; align-items:center; gap:7px;}
.dot{width:6px; height:6px; border-radius:50%; background:#3E8259; display:inline-block;}

/* ---------- strip ---------- */
.strip{background:var(--forest); color:var(--paper-2); padding:16px 0; overflow:hidden; white-space:nowrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.strip-inner{display:inline-flex; animation:scroll 32s linear infinite;}
.strip-inner span{font-family:'IBM Plex Mono'; font-size:12.5px; letter-spacing:0.04em; padding:0 34px; display:inline-flex; align-items:center; gap:12px; color:#DCE3D6;}
.strip-inner span::before{content:'—'; color:var(--gold);}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .strip-inner{animation:none;} }

/* ---------- sections ---------- */
section{padding:96px 0;}
.section-head{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:56px;}
.section-head h2{font-size:36px;}
.section-head p{color:var(--slate); font-size:15.5px; max-width:440px; margin:0;}

.about-wrap{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:center;}
.about-copy p{font-size:16.5px; color:#2C3A31; max-width:480px;}
.about-stats{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-strong); border:1px solid var(--line-strong); margin-top:34px;}
.about-stats div{background:var(--paper); padding:22px;}
.about-stats .num{font-family:'Space Grotesk'; font-size:28px; font-weight:600; color:var(--forest);}
.about-stats .lbl{font-size:12.5px; color:var(--slate); margin-top:4px;}

.expertise-grid{display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line-strong); border-left:1px solid var(--line-strong);}
.expertise-grid div{border-right:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); padding:26px 18px; min-height:120px; display:flex; flex-direction:column; justify-content:space-between;}
.expertise-grid .idx{font-family:'IBM Plex Mono'; font-size:11px; color:var(--gold-2);}
.expertise-grid .name{font-family:'Space Grotesk'; font-size:14.5px; font-weight:500; line-height:1.25;}

.products{background:var(--forest); color:var(--paper-2);}
.products .section-head p{color:#B7C4BB;}
.products .eyebrow{color:#E9D8B8;}
.products .eyebrow::before{background:#E9D8B8;}
.prod-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.14);}
.prod-card{background:var(--forest-2); padding:30px 26px; min-height:200px; display:flex; flex-direction:column; justify-content:space-between;}
.prod-card .cat{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#E9D8B8;}
.prod-card h4{font-size:21px; margin-top:10px; color:var(--paper-2);}
.prod-card .desc{font-size:13.5px; color:#AEBDB2; margin-top:10px; line-height:1.55;}
.prod-card .go{font-family:'IBM Plex Mono'; font-size:12px; color:#E9D8B8; margin-top:20px; display:flex; align-items:center; gap:6px;}

.process{display:grid; grid-template-columns:repeat(3,1fr); gap:44px; margin-top:10px;}
.process-step{border-top:2px solid var(--ink); padding-top:22px;}
.process-step .num{font-family:'IBM Plex Mono'; font-size:13px; color:var(--gold-2); margin-bottom:14px; display:block;}
.process-step h4{font-size:20px; margin-bottom:12px;}
.process-step p{font-size:14.5px; color:#3C4A40;}

.certs{border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); padding:44px 0;}
.certs-row{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.cert-item{display:flex; align-items:center; gap:14px;}
.cert-item .badge{width:64px; height:64px; display:flex; align-items:center; justify-content:center;}
.cert-item .badge img{max-width:100%; max-height:100%; object-fit:contain;}
.cert-item:nth-child(1) .badge,
.cert-item:nth-child(2) .badge,
.cert-item:nth-child(4) .badge{
  width:120px;
  height:120px;
}
.cert-item .txt div:first-child{font-family:'Space Grotesk'; font-weight:500; font-size:14.5px;}
.cert-item .txt div:last-child{font-size:12.5px; color:var(--slate);}

.cta-section{text-align:center; padding:120px 0;}
.cta-section h2{font-size:40px; max-width:680px; margin:0 auto 30px;}

/* ---------- generic page content (WYSIWYG) ---------- */
.page-content{padding:80px 0; max-width:760px; margin:0 auto;}
.page-content h1{font-size:42px; margin-bottom:30px;}
.page-content h2{font-size:26px; margin:2em 0 0.6em;}
.page-content p{font-size:16.5px; color:#2C3A31;}
.page-content ul, .page-content ol{padding-left:1.2em; margin-bottom:1em;}
.page-content a{color:var(--forest); text-decoration:underline;}

/* ---------- contact form ---------- */
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:70px; padding:80px 0;}
.contact-info h1{font-size:38px; margin-bottom:20px;}
.contact-info p{color:var(--slate); font-size:15.5px; max-width:380px;}
.contact-detail{margin-top:34px; display:flex; flex-direction:column; gap:14px; font-size:14.5px;}
.contact-detail .k{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.08em; display:block; margin-bottom:3px;}

form.nhs-form{display:flex; flex-direction:column; gap:18px;}
.nhs-form label{font-family:'Space Grotesk'; font-size:13.5px; font-weight:500; margin-bottom:6px; display:block;}
.nhs-form input, .nhs-form select, .nhs-form textarea{
  width:100%; border:1px solid var(--line-strong); background:var(--white);
  padding:13px 14px; font-family:'Inter'; font-size:14.5px; color:var(--ink);
}
.nhs-form input:focus, .nhs-form select:focus, .nhs-form textarea:focus{outline:2px solid var(--forest); outline-offset:1px;}
.nhs-form textarea{min-height:130px; resize:vertical;}
.nhs-form .hp-field{position:absolute; left:-9999px;}
.nhs-form .btn-primary{align-self:flex-start; margin-top:6px;}
.form-msg{font-size:13.5px; padding:12px 14px; display:none; font-family:'IBM Plex Mono';}
.form-msg.success{display:block; background:#E1F0E5; color:#1B4D2B; border:1px solid #9FCBAC;}
.form-msg.error{display:block; background:#FBE7E4; color:#7A2A1E; border:1px solid #EFB6AB;}

/* ---------- footer ---------- */
.site-footer{background:var(--forest-2); color:#AEBDB2; padding:64px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,0.12);}
.foot-grid h5{font-family:'IBM Plex Mono'; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:#E9D8B8; margin-bottom:18px; font-weight:500;}
.foot-grid ul{list-style:none; display:flex; flex-direction:column; gap:11px; margin:0; padding:0;}
.foot-grid a{font-size:14px; color:var(--paper-2);}
.foot-grid a:hover{color:#fff;}
.foot-brand .word{font-family:'Space Grotesk'; font-size:19px; font-weight:600; color:var(--paper-2);}
.foot-logo img{
  max-height:46px;
  width:auto;
  height:auto;
  display:block;
}
.foot-brand p{font-size:13.5px; color:#AEBDB2; margin-top:14px; margin-bottom:0; max-width:280px; line-height:1.6;}
.foot-address{
  color:#AEBDB2;
  font-size:12px;
  margin-bottom:16px !important;
}
.foot-legal-links{display:flex; gap:20px;}
.foot-legal-links a{color:#AEBDB2;}
.foot-legal-links a:hover{color:var(--paper-2);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12.5px; color:#AEBDB2; font-family:'IBM Plex Mono'; flex-wrap:wrap; gap:10px;}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .wrap{padding:0 22px;}
  .nav{padding:18px 22px;}
  .primary-menu{position:absolute; top:100%; left:0; right:0; background:var(--paper-2); flex-direction:column; padding:20px 22px; border-bottom:1px solid var(--line); display:none;}
  .primary-menu.is-open{display:flex;}
  .menu-toggle{display:block;}
  .hero-grid, .about-wrap, .contact-wrap{grid-template-columns:1fr;}
  .hero h1{font-size:36px;}
  .section-head{grid-template-columns:1fr;}
  .expertise-grid{grid-template-columns:repeat(2,1fr);}
  .prod-grid{grid-template-columns:1fr;}
  .process{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
.cert-detail-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong); margin-top:20px;}
.cert-detail-card{background:var(--paper); padding:34px 28px; display:flex; flex-direction:column; align-items:flex-start; height:100%;}
.cert-detail-card.is-pending{opacity:0.6;}
.cert-detail-badge{width:170px; height:170px; margin-bottom:0;}
}
.cert-detail-badge img{max-width:100%; max-height:100%; object-fit:contain;}
.cert-detail-card h3{font-size:20px; margin-top:-10px; margin-bottom:6px;}
.cert-detail-scope{font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-2); margin-bottom:14px;}
.cert-detail-card p{font-size:14.5px; color:#3C4A40; margin-bottom:22px; flex-grow:1;}
.cert-detail-soon{font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--slate);}

@media (max-width:960px){
  .cert-detail-grid{grid-template-columns:1fr;}
}
/* ---------- all products (searchable index) ---------- */
.allprod-intro{color:var(--slate); font-size:15.5px; max-width:520px; margin-top:14px;}

.allprod-search-wrap{position:relative; margin-top:40px; max-width:480px;}
.allprod-search-icon{position:absolute; left:15px; top:50%; transform:translateY(-50%); width:16px; height:16px; stroke:var(--slate); pointer-events:none;}
.allprod-search-input{
  width:100%; border:1px solid var(--line-strong); background:var(--white);
  padding:13px 14px 13px 42px; font-family:'Inter'; font-size:14.5px; color:var(--ink);
}
.allprod-search-input:focus{outline:2px solid var(--forest); outline-offset:1px;}
.allprod-count{font-family:'IBM Plex Mono'; font-size:12px; color:var(--slate); margin-top:10px;}

.allprod-alpha-nav{
  display:flex; flex-wrap:wrap; gap:2px;
  margin-top:34px; padding:20px 0;
  border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong);
}
.allprod-alpha-nav a, .allprod-alpha-nav span{
  font-family:'IBM Plex Mono'; font-size:12.5px;
  width:30px; height:30px; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent;
}
.allprod-alpha-nav a{color:var(--forest);}
.allprod-alpha-nav a:hover, .allprod-alpha-nav a:focus-visible{background:var(--forest); color:var(--paper-2);}
.allprod-alpha-nav span{color:var(--slate); opacity:0.35;}

.allprod-groups{margin-top:50px;}
.allprod-group{margin-bottom:32px; scroll-margin-top:110px;}
.allprod-group[data-empty="true"]{display:none;}
.allprod-group-letter{
  font-size:22px; color:var(--gold-2);
  border-bottom:2px solid var(--gold-2);
  padding-bottom:8px; margin-bottom:16px;
}
.allprod-list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 40px;
}
.allprod-item{
  font-size:15px; color:var(--ink);
  padding:11px 0; border-bottom:1px dashed var(--line);
  line-height:1.4;
}
.allprod-item[hidden]{display:none;}
.allprod-item mark{background:rgba(166,124,61,0.28); color:inherit; padding:0 2px;}

.allprod-empty{
  display:none; text-align:center; padding:60px 0;
  font-family:'IBM Plex Mono'; font-size:13.5px; color:var(--slate);
}
.allprod-empty.is-visible{display:block;}

@media (max-width:960px){
  .allprod-list{grid-template-columns:1fr;}
  .allprod-search-wrap{max-width:none;}
}

/* ---------- real photos ---------- */

.hero{position:relative; overflow:hidden;}
.hero-grid{position:relative; z-index:1;}
.hero-photo{position:absolute; inset:0; z-index:0;}
.hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.hero-photo::after{
	content:''; position:absolute; inset:0;
	background:linear-gradient(90deg, var(--paper) 0%, var(--paper) 38%, rgba(237,238,230,0.55) 62%, rgba(237,238,230,0.15) 100%);
}
@media (max-width:960px){
	.hero-photo{display:none;}
}

.about-photo{margin-top:28px; max-width:320px; border:1px solid var(--line-strong);}
.about-photo img{width:100%; height:auto; display:block; aspect-ratio:4/5; object-fit:cover;}
.about-photo--page{max-width:100%; margin:0;}
.about-photo--page img{aspect-ratio:auto; height:auto;}

.prod-card{position:relative; overflow:hidden;}
.prod-card .prod-photo{margin:-30px -26px 20px; height:150px; overflow:hidden;}
.prod-card .prod-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease;}
.prod-card.has-photo:hover .prod-photo img{transform:scale(1.04);}

.step-photo{margin-bottom:16px; border:1px solid var(--line-strong); aspect-ratio:16/10; overflow:hidden;}
.step-photo img{width:100%; height:100%; object-fit:cover; display:block;}
/* The container (.cert-detail-badge) was already 170x170, but the IFS
   Broker img tag itself was only rendering at 170x103 (its natural
   aspect ratio, capped by max-width only) — object-fit:cover had
   nothing to do since the img box itself was undersized. Forcing the
   img's own box to the full 170x170 square lets cover actually scale
   and crop the content to fill it. */
.cert-detail-grid .cert-detail-card:nth-child(3) .cert-detail-badge{
	width:auto !important;
	display:flex !important;
	align-items:flex-start !important;
	margin-top:-8px;
}
.cert-detail-grid .cert-detail-card:nth-child(3) .cert-detail-badge img{
	width:auto !important;
	height:119px !important;
	max-width:none !important;
	object-fit:contain;
}
.btn-primary-light{
  background:var(--paper-2);
  color:var(--ink);
  font-family:'Space Grotesk';
  font-weight:500;
  font-size:14.5px;
  padding:15px 26px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line-strong);
  transition:background .18s ease;
}
.btn-primary-light:hover{
  background:var(--white);
}
.nhs-enquire-btn,
.nhs-enquire-btn *{
  color:var(--paper-2) !important;
}
.nhs-enquire-btn{
  background:var(--forest) !important;
  text-decoration:none !important;
  border:none !important;
}
.nhs-enquire-btn:hover,
.nhs-enquire-btn:hover *{
  color:var(--paper-2) !important;
}
.nhs-enquire-btn:hover{
  background:var(--forest-2) !important;
}