/* ==========================================================================
   Numera theme — component styles
   Colours and fonts come from theme.json presets, so changing them in
   Appearance › Editor › Styles updates everything below.
   ========================================================================== */
:root{
  --nu-navy:var(--wp--preset--color--navy,#01287d);
  --nu-deep:var(--wp--preset--color--navy-deep,#011a52);
  --nu-yellow:var(--wp--preset--color--yellow,#ffc72c);
  --nu-gold:var(--wp--preset--color--gold,#9a6b00);
  --nu-ink:var(--wp--preset--color--ink,#14213d);
  --nu-soft:var(--wp--preset--color--ink-soft,#4c566e);
  --nu-muted:var(--wp--preset--color--muted,#7a8399);
  --nu-line:var(--wp--preset--color--line,#dde2ef);
  --nu-mist:var(--wp--preset--color--mist,#f3f5fb);
  --nu-serif:var(--wp--preset--font-family--serif);
  --nu-shadow:0 18px 40px -24px rgba(1,40,125,.35);
}
h1,h2,h3,h4{text-wrap:balance}
:focus-visible{outline:3px solid var(--nu-yellow);outline-offset:3px}

/* stack full-width sections without gaps */
.wp-site-blocks > *,
.wp-block-post-content > .alignfull{margin-block-start:0 !important;margin-block-end:0 !important}
.wp-site-blocks > main{margin-block-start:0 !important}

/* ---------- small text styles ---------- */
.nu-eyebrow{font-size:.75rem !important;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--nu-gold);display:flex;align-items:center;gap:10px;margin-bottom:0}
.nu-eyebrow::before{content:"";width:22px;height:2px;background:var(--nu-yellow);flex:none}
.nu-dark .nu-eyebrow,.nu-hero .nu-eyebrow,.nu-page-hero .nu-eyebrow,.nu-band .nu-eyebrow{color:#ffe08a}
.nu-lead{font-size:clamp(1.05rem,1.6vw,1.19rem);max-width:66ch}
.nu-statement{font-family:var(--nu-serif) !important;font-size:clamp(1.5rem,2.6vw,1.95rem) !important;line-height:1.28;color:var(--nu-ink)}
.nu-crumbs{font-size:.85rem;color:#aebbe3 !important}
.nu-crumbs a{color:#fff !important;text-decoration:none}

/* ---------- top bar & header ---------- */
.nu-topbar{background:var(--nu-deep);color:#c9d3f2;font-size:.84rem;padding-top:8px !important;padding-bottom:8px !important}
.nu-topbar p{margin:0}
.nu-topbar strong{color:#fff;font-weight:600}
.nu-topbar a{color:#fff;text-decoration:none}
.wp-site-blocks > header.wp-block-template-part{position:sticky;top:0;z-index:50}
.admin-bar .wp-site-blocks > header.wp-block-template-part{top:32px}
@media (max-width:782px){.admin-bar .wp-site-blocks > header.wp-block-template-part{top:0}}
.nu-header{background:#fff;border-bottom:1px solid var(--nu-line);padding-top:14px !important;padding-bottom:14px !important}
.nu-brand{gap:12px !important;text-decoration:none}
.nu-brand .wp-block-image{margin:0}
.nu-brand .wp-block-image img{width:40px;height:auto;display:block}
.nu-footer .nu-logo img{filter:brightness(0) invert(1)}
.nu-brand-name{font-size:1.45rem !important;font-weight:700;letter-spacing:4px;line-height:1 !important;margin:0}
.nu-brand-name a{color:var(--nu-navy);text-decoration:none}
.nu-brand-sub{font-size:.66rem !important;letter-spacing:2.2px;text-transform:uppercase;color:var(--nu-muted);margin:4px 0 0 !important;line-height:1}
.nu-nav a{color:var(--nu-ink)}
.nu-nav a:hover,.nu-nav .current-menu-item > a{color:var(--nu-gold)}
.nu-nav .wp-block-navigation__submenu-container{border:1px solid var(--nu-line) !important;border-top:3px solid var(--nu-yellow) !important;border-radius:0 0 10px 10px;box-shadow:var(--nu-shadow);padding:6px !important;min-width:240px !important}
.nu-nav .wp-block-navigation__submenu-container a{padding:10px 12px !important;font-weight:500}
@media (max-width:600px){.nu-brand-sub{display:none}.wp-block-buttons.nu-header-cta{display:none !important}.nu-topbar-locs{display:none}.nu-topbar a[href^="mailto"]{display:none}}

/* ---------- sections ---------- */
.nu-section{padding-top:clamp(64px,8vw,104px) !important;padding-bottom:clamp(64px,8vw,104px) !important}
.nu-alt{background:var(--nu-mist)}
.nu-sec-head{margin-bottom:clamp(28px,4vw,44px) !important}
.nu-sec-head > *{max-width:760px}
.nu-sec-head > *{margin-top:0}
.nu-sec-head > * + *{margin-top:14px !important}

/* ---------- hero (Cover block) ---------- */
.wp-block-cover.nu-hero,.wp-block-cover.nu-page-hero{padding-left:20px;padding-right:20px}
.wp-block-cover.nu-hero .wp-block-cover__background{opacity:1 !important;background:linear-gradient(90deg,rgba(1,26,82,.95) 0%,rgba(1,40,125,.86) 42%,rgba(1,40,125,.35) 75%,rgba(1,40,125,.15) 100%) !important}
.wp-block-cover.nu-page-hero .wp-block-cover__background{opacity:1 !important;background:linear-gradient(90deg,rgba(1,26,82,.96),rgba(1,40,125,.82) 55%,rgba(1,40,125,.5)) !important}
.wp-block-cover.nu-art .wp-block-cover__background{background:linear-gradient(90deg,rgba(1,22,70,.94) 0%,rgba(1,26,82,.7) 40%,rgba(1,26,82,.1) 70%,rgba(1,26,82,0) 100%) !important}
.wp-block-cover.nu-art .wp-block-cover__image-background{object-position:right center !important}
@media (max-width:820px){.wp-block-cover.nu-art .wp-block-cover__background{background:rgba(1,22,70,.75) !important}}
.nu-hero .wp-block-cover__inner-container,.nu-page-hero .wp-block-cover__inner-container{color:#fff}
.nu-cover-inner > *{margin-top:0}
.nu-cover-inner > * + *{margin-top:16px}
.nu-cover-inner h1{margin-top:14px !important}
.nu-hero h1,.nu-page-hero h1{color:#fff !important;max-width:15ch}
.nu-page-hero h1{max-width:20ch;font-size:clamp(2.4rem,5.4vw,4rem) !important}
.nu-hero h1 em{color:var(--nu-yellow)}
.nu-hero p,.nu-page-hero p{color:#dbe3fb}
.nu-hero{padding-bottom:clamp(110px,12vw,150px) !important}
.nu-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;max-width:640px;padding:0 !important;margin:26px 0 30px !important}
.nu-chips li{font-size:.84rem;font-weight:500;padding:7px 14px;border-radius:30px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);color:#fff;margin:0}
.nu-chips li:last-child{background:none;border-style:dashed;color:#ffe08a}

/* buttons */
.wp-block-button.is-style-outline > .wp-block-button__link{background:transparent;color:var(--nu-navy);border:2px solid var(--nu-line)}
.wp-block-button.is-style-outline > .wp-block-button__link:hover{border-color:var(--nu-yellow);color:var(--nu-gold)}
.nu-hero .wp-block-button.is-style-outline > .wp-block-button__link,
.nu-band .wp-block-button.is-style-outline > .wp-block-button__link{color:#fff;border-color:#fff}
.nu-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover{background:#fff;color:var(--nu-navy)}

/* ---------- stats bar ---------- */
.nu-stats{position:relative;z-index:5;margin-top:-72px !important}
.nu-stats .wp-block-columns{background:var(--nu-yellow);border-radius:14px;box-shadow:var(--nu-shadow);gap:0 !important;overflow:hidden;margin:0}
.nu-stats .wp-block-column{padding:26px 28px}
.nu-stats .wp-block-column + .wp-block-column{border-left:1px solid rgba(1,40,125,.18)}
.nu-stats p{margin:0 !important}
.nu-stat-num{font-family:var(--nu-serif);font-size:clamp(2.6rem,4.6vw,3.5rem) !important;line-height:1 !important;color:var(--nu-navy)}
.nu-stat-lbl{font-weight:600;color:var(--nu-navy);margin-top:6px !important}
.nu-stat-meta{font-size:.8rem !important;color:#3a4a78;letter-spacing:.4px;margin-top:4px !important}
@media (max-width:781px){.nu-stats .wp-block-column + .wp-block-column{border-left:0;border-top:1px solid rgba(1,40,125,.18)}}

/* ---------- media ---------- */
.nu-photo{margin:0 !important;border-radius:14px;overflow:hidden}
.nu-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.nu-photo.nu-tall img{aspect-ratio:4/5}

/* ---------- cards ---------- */
.nu-card{background:#fff;border:1px solid var(--nu-line);border-radius:14px;padding:30px 28px !important;transition:transform .25s,box-shadow .25s}
.nu-card:hover{transform:translateY(-4px);box-shadow:var(--nu-shadow)}
.nu-card > *{margin-top:0}
.nu-card > * + *{margin-top:12px !important}
.nu-card h3{font-size:1.1rem}
.nu-card.nu-pillar h3{color:var(--nu-gold)}
.nu-hook{font-family:var(--nu-serif) !important;font-size:clamp(1.4rem,2.2vw,1.7rem) !important;line-height:1.3;color:var(--nu-ink)}
.nu-icon{width:52px;height:52px;border-radius:12px;background:rgba(255,199,44,.2);color:var(--nu-gold);display:grid;place-items:center}
.nu-icon svg{width:26px;height:26px}
.nu-cards{gap:24px !important}
.nu-kicker{font-size:.72rem !important;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--nu-gold)}
.nu-more a{font-weight:600;text-decoration:none}
.nu-more a::after{content:" →"}

/* tick list */
.nu-reasons{list-style:none;padding:0 !important;margin:0}
.nu-reasons li{position:relative;padding:16px 0 16px 46px;border-bottom:1px solid var(--nu-line);margin:0}
.nu-reasons li:last-child{border-bottom:0}
.nu-reasons li::before{content:"";position:absolute;left:0;top:18px;width:30px;height:30px;border-radius:50%;background:var(--nu-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/15px no-repeat}
.nu-reasons strong{display:block;color:var(--nu-navy);font-size:1.08rem;margin-bottom:2px}

.nu-checks{list-style:none;padding:0 !important;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
.nu-checks li{position:relative;padding-left:28px;margin:0}
.nu-checks li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:50%;border:3px solid var(--nu-yellow)}
.nu-checks.nu-one{grid-template-columns:1fr}
@media (max-width:781px){.nu-checks{grid-template-columns:1fr}}
.nu-plain{list-style:none;padding:0 !important}
.nu-plain li{position:relative;padding-left:22px;margin-bottom:14px}
.nu-plain li::before{content:"";position:absolute;left:0;top:10px;width:9px;height:9px;background:var(--nu-yellow);border-radius:2px}
.nu-plain strong{color:var(--nu-ink)}

/* services detail rows */
.nu-svc{border-top:1px solid var(--nu-line);padding-top:48px !important;padding-bottom:48px !important;margin-top:0 !important;margin-bottom:0 !important}
.nu-svc:first-of-type{border-top:0;padding-top:0 !important}
.nu-svc h3{font-family:var(--nu-serif);font-weight:400;font-size:2.1rem;line-height:1.1}
.nu-bestfor{background:var(--nu-mist);border-radius:12px;padding:18px 20px !important}
.nu-bestfor p{margin:0}
.nu-bestfor .nu-kicker{margin-bottom:4px}

/* sidebar card */
.nu-aside{background:var(--nu-navy);color:#dbe3fb;border-radius:14px;padding:30px !important;position:sticky;top:120px}
.nu-aside h3{color:#fff}
.nu-aside .nu-checks li{color:#dbe3fb}
.nu-aside .nu-kicker{color:#ffe08a}
.nu-aside .nu-bf{border-top:1px solid rgba(255,255,255,.18);padding-top:16px}
@media (max-width:781px){.nu-aside{position:static}}

/* results */
.nu-results{background:var(--nu-navy);border-radius:14px;overflow:hidden;gap:0 !important}
.nu-results .wp-block-column{padding:32px 30px;color:#c9d3f2}
.nu-results .wp-block-column + .wp-block-column{border-left:1px solid rgba(255,255,255,.15)}
.nu-results p{margin:0}
.nu-result-num{font-family:var(--nu-serif);font-size:clamp(3rem,6vw,4.5rem) !important;line-height:1 !important;color:#fff;margin-bottom:8px !important}
@media (max-width:781px){.nu-results .wp-block-column + .wp-block-column{border-left:0;border-top:1px solid rgba(255,255,255,.15)}}

/* pains */
.nu-pain{border-left:3px solid var(--nu-yellow);padding:4px 0 4px 20px !important}
.nu-pain h3{margin:0 0 8px}

/* checklist table */
.nu-table{overflow-x:auto;border:1px solid var(--nu-line);border-radius:14px;margin:0}
.nu-table table{min-width:860px;border-collapse:collapse;font-size:.94rem}
.nu-table th{background:var(--nu-navy);color:#fff;text-align:left;font-weight:600;padding:16px 18px;border:0}
.nu-table td{padding:18px;vertical-align:top;border:0;border-top:1px solid var(--nu-line)}
.nu-table td:first-child{font-weight:600;color:var(--nu-navy);width:22%}

/* band */
.nu-band{background:var(--nu-navy);color:#c9d3f2;padding-top:clamp(48px,6vw,72px) !important;padding-bottom:clamp(48px,6vw,72px) !important;position:relative;overflow:hidden}
.nu-band h2{color:#fff;font-size:clamp(2rem,3.8vw,2.9rem);max-width:22ch}
.nu-band::before{content:"";position:absolute;right:-60px;top:-40px;width:320px;height:340px;background:rgba(255,255,255,.05);-webkit-mask:url("../images/mark-white.png") center/contain no-repeat;mask:url("../images/mark-white.png") center/contain no-repeat;pointer-events:none}

/* offices */
.nu-office h3{font-family:var(--nu-serif);font-weight:400;font-size:1.7rem}
.nu-office p{margin:0}
.nu-phone{border-top:1px solid var(--nu-line);padding-top:10px}
.nu-phone a{color:var(--nu-ink);font-weight:600;text-decoration:none}
.nu-tag{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0 !important}
.nu-tag li{border:1px solid var(--nu-line);border-radius:30px;padding:6px 14px;font-size:.88rem;color:var(--nu-ink);margin:0}

/* ---------- enquiry form ---------- */
.nu-form{background:#fff;border:1px solid var(--nu-line);border-radius:16px;padding:clamp(24px,3.5vw,40px);box-shadow:var(--nu-shadow);display:flex;flex-direction:column;gap:20px}
.nu-field{display:flex;flex-direction:column;gap:7px}
.nu-field label{font-weight:600;font-size:.875rem;color:var(--nu-ink)}
.nu-field input,.nu-field select{font:400 1rem/1.3 var(--wp--preset--font-family--sans);color:var(--nu-ink);background:#fff;border:1.5px solid var(--nu-line);border-radius:10px;padding:13px 14px;width:100%;box-sizing:border-box}
.nu-field input:focus,.nu-field select:focus{outline:none;border-color:var(--nu-navy);box-shadow:0 0 0 4px rgba(255,199,44,.35)}
.nu-field [aria-invalid="true"]{border-color:#d14343}
.nu-field select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a8399' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center/14px no-repeat}
.nu-err{font-size:.84rem;color:#d14343;margin:0}
.nu-form button{align-self:flex-start;font:600 .95rem var(--wp--preset--font-family--sans);background:var(--nu-yellow);color:var(--nu-navy);border:0;border-radius:40px;padding:14px 28px;cursor:pointer}
.nu-form button:hover{background:#ffb700}
.nu-form button[disabled]{opacity:.6;cursor:progress}
.nu-status{border-radius:10px;padding:14px 16px;background:var(--nu-mist);color:var(--nu-ink);border-left:4px solid var(--nu-yellow)}
.nu-status b{display:block}
[hidden]{display:none !important}

/* ---------- footer ---------- */
.nu-footer{background:var(--nu-deep);color:#aebbe3;font-size:.94rem;padding-top:64px !important}
.nu-footer h4{color:#fff;font-size:1rem}
.nu-footer a{color:#dbe3fb;text-decoration:none}
.nu-footer a:hover{color:var(--nu-yellow)}
.nu-footer ul{list-style:none;padding:0 !important}
.nu-footer li{margin-bottom:10px}
.nu-footer .nu-brand-name a{color:#fff}
.nu-footer .nu-brand-sub{color:#8a99c9}
.nu-footer-base{border-top:1px solid rgba(255,255,255,.12);padding-top:20px !important;padding-bottom:20px !important;font-size:.84rem;margin-top:44px !important}
.nu-footer-base p{margin:0}

@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}

/* inline code (e.g. ISO 8583) */
.wp-block-post-content p code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;background:var(--nu-mist);border:1px solid var(--nu-line);border-radius:5px;padding:1px 6px;color:var(--nu-ink)}

/* ---------- hero slideshow ----------
   The photos come from the Gallery block inside the home hero. Add, remove or replace
   images in that gallery (Pages › Home) and the slideshow updates. */
.nu-hero .wp-block-gallery.nu-slides{display:none !important}
.editor-styles-wrapper .nu-hero .wp-block-gallery.nu-slides{display:flex !important;max-width:520px;margin-top:28px !important;padding:10px;border:1px dashed rgba(255,255,255,.5);border-radius:10px}
.editor-styles-wrapper .nu-hero .wp-block-gallery.nu-slides::before{content:"Slideshow photos (hidden on the live site; shown as the rotating hero background)";display:block;width:100%;font-size:12px;color:#ffe08a;margin-bottom:6px}
.wp-block-cover.nu-hero img.nu-slide{opacity:0;transition:opacity 1.4s ease}
.wp-block-cover.nu-hero img.nu-slide.is-on{opacity:1}
