/* Nuvho — shared stylesheet for the Craft templates. Values are the Figma values used in the Claude Design prototype (pass 1–5). */
@font-face{font-family:"Comfortaa";src:url("/static/fonts/Comfortaa-VariableFont_wght.woff2") format("woff2"),url("/static/fonts/Comfortaa-VariableFont_wght.ttf") format("truetype");font-weight:300 700;font-display:swap}
@font-face{font-family:"Raleway";src:url("/static/fonts/Raleway-VariableFont_wght.woff2") format("woff2"),url("/static/fonts/Raleway-VariableFont_wght.ttf") format("truetype");font-weight:100 900;font-display:swap}
html{scroll-behavior:smooth}
body{margin:0;background:#FFFFFF;-webkit-font-smoothing:antialiased;font-family:Raleway,system-ui,sans-serif;color:#414B4C}
a{color:#28687F;text-decoration:none}a:hover{color:#3E7F96}
[hidden]{display:none!important}
.nv-page{overflow-x:clip}
.nv-wrap{max-width:1160px;margin:0 auto;padding:0 clamp(24px,9.72vw,140px);box-sizing:content-box}
.nv-h2{margin:0;font-family:Comfortaa,system-ui,sans-serif;font-weight:500;line-height:1.22;color:#28687F}
.nv-grain{position:absolute;inset:0;pointer-events:none;background:url(/static/img/grain.svg) repeat;background-size:240px 240px;mix-blend-mode:overlay;opacity:1}
.nv-abs{position:absolute}
.nv-m{display:none}
@media (max-width:900px){.nv-d{display:none}.nv-m{display:inline}}

/* Pill buttons: hover grows 5px each side with matching negative margins (no layout change) */
.nv-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 32px;border-radius:999px;font-family:Raleway,system-ui,sans-serif;font-weight:600;font-size:16px;box-sizing:border-box;transition:padding 220ms cubic-bezier(.4,0,.2,1),background 220ms}
.nv-btn:hover{padding:0 37px;margin-left:-5px;margin-right:-5px}
.nv-btn--outline{box-shadow:inset 0 0 0 1.25px #28687F;color:#28687F}.nv-btn--outline:hover{background:#EEF4F5;color:#28687F}
.nv-btn--white{background:#FFFFFF;color:#28687F}.nv-btn--white:hover{color:#28687F}
.nv-btn--hero{background:#FFFFFF;color:#597B8C;white-space:nowrap}.nv-btn--hero:hover{color:#28687F}
.nv-btn--ghost{box-shadow:inset 0 0 0 1.25px #FFFFFF;color:#FFFFFF;white-space:nowrap}.nv-btn--ghost:hover{background:rgba(255,255,255,.12);color:#FFFFFF}
.nv-btn--mist{background:#F6F6F6;color:#28687F}.nv-btn--mist:hover{color:#28687F}
.nv-btn--lg{height:56px}
@media (max-width:900px){.nv-btn--full-m{width:100%}}

/* Header */
.nv-header{position:sticky;top:0;z-index:60;background:#FFFFFF;font-family:Raleway,system-ui,sans-serif}
.nv-header__bar{height:85px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(24px,9.72vw,140px);box-shadow:inset 0 -1px 0 #E9EAEC}
.nv-header__logo{display:flex;align-items:center;flex-shrink:0}
.nv-header__logo img{height:36px;width:auto;display:block}
.nv-nav{display:flex;align-items:center;gap:34px;height:85px;margin-left:auto}
.nv-nav__item{position:relative;height:85px;display:flex;align-items:center;gap:8px;padding:0;border:0;background:none;cursor:pointer;font-family:Raleway,system-ui,sans-serif;font-weight:600;font-size:15.5px;line-height:1.4;white-space:nowrap;color:#414B4C}
.nv-nav__item:hover{color:#414B4C}
.nv-nav__item::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#28687F;opacity:0}
.nv-nav__item.is-open,.nv-nav__item.is-active{color:#28687F}
.nv-nav__item.is-open::after,.nv-nav__item.is-active::after{opacity:1}
.nv-nav__chev{width:10px;height:5px;transition:transform 200ms cubic-bezier(.4,0,.2,1)}
.nv-nav__item.is-open .nv-nav__chev{transform:rotate(180deg)}
.nv-header__cta{margin-left:14px;display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 32px;border-radius:999px;background:#28687F;color:#FFFFFF;font-weight:600;font-size:15.5px;line-height:1.4;white-space:nowrap;transition:padding 220ms cubic-bezier(.4,0,.2,1),background 220ms}
.nv-header__cta:hover{padding:0 37px;margin-left:9px;margin-right:-5px;background:#414B4C;color:#FFFFFF}
.nv-burger{display:none;width:44px;height:44px;margin-right:-8px;border:0;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.nv-burger span{width:26px;height:2.5px;border-radius:2px;background:#414B4C}
.nv-burger img{display:none;width:18px;height:18px}
.nv-burger.is-open span{display:none}.nv-burger.is-open img{display:block}
.nv-mega{position:absolute;top:85px;left:0;right:0;background:#FFFFFF;box-shadow:inset 0 -1px 0 #E9EAEC}
.nv-mega__bar{height:3px;background:linear-gradient(90deg,#28687F 0%,#3E7F96 62%,#80B9BF 100%)}
.nv-mega__inner{max-width:1160px;margin:0 auto;padding:40px clamp(24px,9.72vw,140px) 42px;display:flex;gap:40px;box-sizing:content-box}
.nv-mega__panel{position:relative;overflow:hidden;flex:0 0 320px;min-height:300px;border-radius:24px;padding:44px 36px;box-sizing:border-box;background:linear-gradient(35.676deg,#28687F 14.04%,#3F8B9A 44.25%,#80B9BF 85.96%)}
.nv-mega__glow{left:120px;top:-180px;width:420px;height:340px;border-radius:50%;background:radial-gradient(210px 170px at 50% 50%,rgba(233,234,236,.55) 0%,rgba(128,185,191,.2) 50%,rgba(128,185,191,0) 100%)}
.nv-mega__s1{left:160px;top:-60px;width:260px;height:190px;border-radius:0 0 0 110px;background:linear-gradient(200deg,rgba(255,255,255,.34),rgba(255,255,255,.12))}
.nv-mega__s2{left:170px;bottom:-40px;width:240px;height:130px;border-radius:90px 0 0 0;background:linear-gradient(40deg,rgba(255,255,255,.07),rgba(255,255,255,.2))}
.nv-mega__h{position:relative;font-family:Comfortaa,system-ui,sans-serif;font-weight:500;font-size:30px;line-height:1.2;color:#FFFFFF}
.nv-mega__statement{position:relative;margin-top:16px;max-width:212px;font-weight:600;font-size:15.5px;line-height:1.65;color:#E9EAEC}
.nv-mega__div{width:1px;background:#E9EAEC;flex-shrink:0}
.nv-mega__links{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:46px;align-content:start;padding-top:26px}
.nv-mlink{position:relative;overflow:hidden;display:flex;gap:13px;align-items:flex-start;padding:16px 18px;margin:-16px -18px;border-radius:16px;background:rgba(107,161,191,0);transition:background 240ms cubic-bezier(.4,0,.2,1)}
.nv-mlink__art{opacity:0;transition:opacity 240ms}
.nv-mlink__s1{right:-70px;top:-90px;width:160px;height:160px;border-radius:48px;background:linear-gradient(40.011deg,rgba(164,202,206,.24) 14.48%,rgba(255,255,255,.03) 85.45%),rgba(255,255,255,.42)}
.nv-mlink__s2{left:-60px;top:60px;width:150px;height:150px;border-radius:46px;background:linear-gradient(40.011deg,rgba(164,202,206,.24) 14.48%,rgba(255,255,255,.03) 85.45%)}
.nv-mlink__icon{position:relative;width:36px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-start}
.nv-mlink__icon img{display:block;width:28px;height:28px;object-fit:contain;transition:filter 240ms}
.nv-mlink__text{position:relative;display:flex;flex-direction:column;gap:8px}
.nv-mlink__t{font-family:Comfortaa,system-ui,sans-serif;font-weight:500;font-size:16px;line-height:1.26;color:#28687F;transition:color 240ms}
.nv-mlink__d{font-size:13.5px;line-height:1.6;color:#5E6B6C;transition:color 240ms}
.nv-mlink:hover,.nv-mlink:focus-visible{background:#6BA1BF}
.nv-mlink:hover .nv-mlink__art,.nv-mlink:focus-visible .nv-mlink__art{opacity:1}
.nv-mlink:hover .nv-mlink__icon img,.nv-mlink:focus-visible .nv-mlink__icon img{filter:brightness(0) invert(1)}
.nv-mlink:hover .nv-mlink__t,.nv-mlink:focus-visible .nv-mlink__t{color:#FFFFFF}
.nv-mlink:hover .nv-mlink__d,.nv-mlink:focus-visible .nv-mlink__d{color:#FFFFFF;-webkit-text-stroke:.35px currentColor}
.nv-drawer{position:fixed;top:85px;left:0;right:0;bottom:0;overflow-y:auto;background:#FFFFFF;z-index:70}
.nv-drawer__bar{height:3px;background:#80B9BF}
.nv-drawer__item{margin:0 24px;width:calc(100% - 48px);height:57px;display:flex;align-items:center;justify-content:space-between;padding:0;border:0;background:none;cursor:pointer;box-shadow:inset 0 -1px 0 #E9EAEC;font-family:Comfortaa,system-ui,sans-serif;font-weight:500;font-size:19px;color:#28687F;text-align:left}
.nv-drawer__item img{width:13px;height:7px;transition:transform 200ms}
.nv-drawer__item[aria-expanded="true"] img{transform:rotate(180deg)}
.nv-drawer__sub{background:#EEF4F5;padding:24px 24px 26px;display:flex;flex-direction:column;gap:22px}
.nv-drawer__statement{font-weight:600;font-size:13px;line-height:1.5;color:#414B4C}
.nv-dlink{display:flex;gap:14px;align-items:flex-start}
.nv-dlink__icon{width:26px;flex-shrink:0;padding-top:2px}.nv-dlink__icon img{display:block;width:24px;height:24px;object-fit:contain}
.nv-dlink__text{display:flex;flex-direction:column;gap:4px}
.nv-dlink__t{font-weight:600;font-size:15px;line-height:1.35;color:#28687F}
.nv-dlink__d{font-size:13px;line-height:1.5;color:#5E6B6C}
.nv-drawer__cta{padding:32px 24px 48px}
.nv-drawer__cta a{display:flex;align-items:center;justify-content:center;height:52px;border-radius:999px;background:#28687F;color:#FFFFFF;font-weight:600;font-size:16px}
@media (max-width:1100px){.nv-nav,.nv-header__cta,.nv-mega{display:none}.nv-burger{display:flex}}
@media (min-width:1101px){.nv-drawer{display:none!important}}
@media (max-width:900px){.nv-header__bar{height:64px}.nv-header__logo img{height:31px}.nv-drawer{top:64px}}

/* Footer */
.nv-footer{background:#414B4C;color:#FFFFFF;font-family:Raleway,system-ui,sans-serif}
.nv-footer__top{max-width:1160px;margin:0 auto;padding:64px clamp(24px,9.72vw,140px) 0;box-sizing:content-box;display:flex;flex-wrap:wrap;justify-content:space-between;gap:48px}
.nv-footer__brand{display:flex;flex-direction:column;gap:32px}
.nv-footer__logo img{width:clamp(220px,21.3vw,307px);height:auto;display:block}
.nv-footer__social{display:flex;gap:12px}
.nv-footer__social a{width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center}
.nv-footer__social a:hover{background:rgba(255,255,255,.2)}
.nv-footer__social img{width:13.3px;height:13.3px}
.nv-footer__cols{display:flex;flex-wrap:wrap;gap:clamp(32px,4.5vw,64px);text-align:right}
.nv-footer__col{display:flex;flex-direction:column;gap:10px;min-width:150px}
.nv-footer__col-h{font-family:Comfortaa,system-ui,sans-serif;font-weight:500;font-size:17px;line-height:1.3;color:#FFFFFF;margin-bottom:8px}
.nv-footer__col a{font-size:13px;line-height:1.5;color:#E9EAEC}.nv-footer__col a:hover{color:#80B9BF}
.nv-footer__rule{max-width:1240px;margin:56px auto 0;height:1px;background:rgba(255,255,255,.16)}
.nv-footer__bottom{max-width:1160px;margin:0 auto;padding:28px clamp(24px,9.72vw,140px) 32px;box-sizing:content-box;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.nv-footer__copy{font-size:13px;line-height:1.5;flex:1 1 200px}
.nv-regions{display:flex;align-items:center}
.nv-region{width:44px;height:35px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-family:Raleway,system-ui,sans-serif;font-weight:600;font-size:12.5px;color:#FFFFFF;background:transparent}
.nv-region:hover{color:#FFFFFF}.nv-region[aria-current="true"]{background:#80B9BF;color:#103A4B}
.nv-footer__legal{display:flex;gap:11px;justify-content:flex-end;flex:1 1 200px}
.nv-footer__legal a{font-size:13px;line-height:1.5;color:#FFFFFF}.nv-footer__legal a:hover{color:#80B9BF}
@media (max-width:900px){.nv-footer__cols{text-align:left}}

/* Enquiry form */
.nv-form{background:#FFFFFF;border-radius:24px;padding:clamp(24px,3.33vw,48px);font-family:Raleway,system-ui,sans-serif;color:#414B4C;box-sizing:border-box}
.nv-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));column-gap:40px;row-gap:28px}
.nv-field{display:flex;flex-direction:column;gap:6px}
.nv-field__label{font-weight:600;font-size:13px;line-height:18px}
.nv-field input{height:48px;border:0;border-radius:8px;background:#F6F6F6;padding:0 14px;font:inherit;font-size:15px;color:#414B4C;outline:none;box-shadow:inset 0 0 0 1px rgba(40,104,127,0.12)}
.nv-field input:focus{box-shadow:inset 0 0 0 1.5px #28687F}
.nv-field.is-invalid input{box-shadow:inset 0 0 0 1.5px #982649}
.nv-field__error{font-size:12px;color:#982649}
.nv-form__services{border:0;padding:0;margin:34px 0 0;min-width:0}
.nv-form__services legend{padding:0;font-weight:600;font-size:13px;line-height:18px}
.nv-form__helper{font-size:13px;line-height:19px;color:#5E6B6C;margin-top:4px}
.nv-form__options{margin-top:22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));column-gap:40px;row-gap:12px}
.nv-check{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:14px;line-height:20px}
.nv-check input{width:16px;height:16px;margin:0;accent-color:#28687F;flex-shrink:0}
.nv-form__consent{margin-top:30px;align-items:flex-start}.nv-form__consent input{margin:2px 0 0}
.nv-form__err{margin-top:8px;font-size:12px;color:#982649}
.nv-form__err--consent{margin:6px 0 0 28px}
.nv-form__submit-row{display:flex;justify-content:center;margin-top:28px}
.nv-form__submit{width:min(100%,290px);height:56px;border:0;border-radius:999px;background:#28687F;color:#FFFFFF;font-family:Raleway,system-ui,sans-serif;font-weight:600;font-size:16px;cursor:pointer;transition:width 220ms cubic-bezier(.4,0,.2,1),background 220ms}
.nv-form__submit:hover{background:#3E7F96;width:min(100%,300px)}
.nv-form__done{padding:48px 0;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}
.nv-form__done-h{font-family:Comfortaa,system-ui,sans-serif;font-weight:500;font-size:28px;color:#28687F}
.nv-form__done-m{font-size:16px;line-height:1.6;color:#5E6B6C}

/* Mobile footer — Figma Mobile Top Pages "13 · Footer" (390 wide): everything centred; logo 180; socials; single centred link column; rule; region switch → legal links → copyright */
@media (max-width:900px){
  .nv-footer__top{flex-direction:column;align-items:center;text-align:center;padding:48px 24px 0;gap:40px}
  .nv-footer__brand{align-items:center;gap:24px}
  .nv-footer__logo img{width:180px;height:auto}
  .nv-footer__social{justify-content:center}
  .nv-footer__cols{width:100%;flex-direction:column;align-items:center;text-align:center;gap:32px}
  .nv-footer__col{align-items:center;min-width:0}
  .nv-footer__col-h{font-size:17px;line-height:24px}
  .nv-footer__rule{margin:48px 24px 0}
  .nv-footer__bottom{flex-direction:column;align-items:center;justify-content:flex-start;padding:31px 24px 48px;gap:22px}
  .nv-footer__bottom .nv-regions{order:1}
  .nv-footer__legal{order:2;flex:none;justify-content:center;gap:24px}
  .nv-footer__copy{order:3;flex:none;text-align:center;line-height:20px}
}
/* Desktop footer re-matched to the Figma frame (1440×512), 30 Sep: content 140–1300; logo 281 at x150/y86; socials 50 below; columns 62 below the logo top,
   right-aligned, 64 apart (min 160 at ≥1300), 14px links on a 32px rhythm; rule 73 below; legal 24 apart; UK | IE divider. Never wraps above 900px. */
@media (min-width:901px){
  .nv-footer__top{max-width:none;box-sizing:border-box;padding:86px max(24px,calc(50% - 580px)) 0;flex-wrap:nowrap;gap:clamp(24px,3.3vw,48px)}
  .nv-footer__brand{flex:0 0 auto;gap:50px}
  .nv-footer__logo{margin-left:10px}
  .nv-footer__logo img{width:clamp(170px,calc(38vw - 266px),281px)}
  .nv-footer__cols{flex:0 1 auto;min-width:0;margin-top:62px;flex-wrap:nowrap;gap:clamp(24px,4.44vw,64px);text-align:right}
  .nv-footer__col{flex:0 1 auto;min-width:0;gap:11px;align-items:flex-end}
  .nv-footer__col-h{line-height:22px;margin-bottom:15px}
  .nv-footer__col a{font-size:13px;line-height:1.5}
  .nv-footer__rule{max-width:1240px;box-sizing:content-box;margin:73px max(24px,calc(50% - 620px)) 0}
  .nv-footer__bottom{max-width:none;box-sizing:border-box;padding:28px max(24px,calc(50% - 580px)) 30px}
  .nv-footer__legal{gap:24px}
  .nv-region:not([aria-current="true"]){width:auto;min-width:0;padding:0 14px;position:relative}
  .nv-region:not([aria-current="true"]) + .nv-region:not([aria-current="true"])::before{content:"";position:absolute;left:0;top:50%;width:1px;height:12px;margin-top:-6px;background:rgba(255,255,255,.35)}
}
@media (min-width:1200px){.nv-footer__col a{font-size:14px}}
@media (min-width:1300px){.nv-footer__col{min-width:160px}}

/* Link affordance (1 Oct, user): arrow badge top-right on every card that links somewhere. Teal on light cards, white on hover / on photos. */
.nv-linkicon{position:absolute;top:20px;right:20px;z-index:3;width:36px;height:36px;border-radius:50%;background:#EEF4F5;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background 220ms,transform 220ms cubic-bezier(.4,0,.2,1)}
.nv-linkicon::before{content:"";width:16px;height:16px;background:#28687F;-webkit-mask:url(/static/icons/arrow-up-right.svg) center/contain no-repeat;mask:url(/static/icons/arrow-up-right.svg) center/contain no-repeat;transition:background 220ms}
.nv-card{position:relative}
.nv-card:hover .nv-linkicon,.nv-card:focus-within .nv-linkicon{background:rgba(255,255,255,.2);transform:translate(2px,-2px)}
.nv-card:hover .nv-linkicon::before,.nv-card:focus-within .nv-linkicon::before{background:#FFFFFF}
.nv-ccard,.cs-kcard{position:relative}
.nv-ccard .nv-linkicon,.cs-kcard .nv-linkicon{top:16px;right:16px;background:rgba(255,255,255,.92)}
.nv-ccard:hover .nv-linkicon,.cs-kcard:hover .nv-linkicon{background:#FFFFFF;transform:translate(2px,-2px)}
@media (max-width:900px){.nv-linkicon{top:16px;right:16px;width:32px;height:32px}.nv-linkicon::before{width:14px;height:14px}}
