/* Nexus components. Loaded after tokens.css. Class prefix: nx- */
.nx{font-family:var(--font-sans);color:var(--text);font-size:16px;line-height:26px;-webkit-font-smoothing:antialiased}
.nx *{box-sizing:border-box}
.nx :lang(am){font-family:var(--font-ethiopic);line-height:1.75}
.nx-on-dark{background:var(--surface-inverse);color:var(--text-on-inverse)}

/* Button */
.nx-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-6);font:600 16px/1 var(--font-sans);border:1.5px solid transparent;border-radius:var(--radius-none);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}
.nx-btn:active{transform:translateY(1px)}
.nx-btn--primary{background:var(--action);color:var(--text-on-inverse)}
.nx-btn--primary:hover,.nx-btn--primary.is-hover{background:var(--action-hover)}
.nx-btn--secondary{background:transparent;color:var(--action);border-color:var(--action)}
.nx-btn--secondary:hover,.nx-btn--secondary.is-hover{background:var(--surface-subtle)}
.nx-btn--inverse{background:var(--surface);color:var(--action)}
.nx-btn--inverse:hover,.nx-btn--inverse.is-hover{background:var(--surface-subtle)}
.nx-btn--small{min-height:44px;padding:0 var(--space-4);font-size:14px}
.nx-btn:focus-visible,.nx-btn.is-focus{outline:3px solid var(--focus);outline-offset:3px}
.nx-on-dark .nx-btn:focus-visible,.nx-on-dark .nx-btn.is-focus,.nx-on-dark .nx-link:focus-visible{outline-color:var(--focus-on-inverse)}
.nx-btn[disabled],.nx-btn[aria-disabled="true"]{background:var(--surface-subtle);color:var(--text-muted);border-color:transparent;cursor:not-allowed}
.nx-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;color:var(--action);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.nx-link:hover,.nx-link.is-hover{color:var(--accent-text)}
.nx-link:focus-visible,.nx-link.is-focus{outline:3px solid var(--focus);outline-offset:3px}
.nx-on-dark .nx-link{color:var(--text-on-inverse)}
.nx-link svg{flex:none}

/* Form */
.nx-field{display:flex;flex-direction:column;gap:var(--space-2)}
.nx-label{font:600 14px/20px var(--font-sans);color:var(--text)}
.nx-optional{font-weight:400;color:var(--text-muted)}
.nx-hint{font:400 13px/18px var(--font-sans);color:var(--text-muted)}
.nx-input,.nx-select,.nx-textarea{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);font:400 16px/24px var(--font-sans);color:var(--text);background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);appearance:none}
.nx-textarea{min-height:120px;resize:vertical}
.nx-select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23173a2f' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.nx-input::placeholder,.nx-textarea::placeholder{color:var(--text-muted)}
.nx-input:hover,.nx-select:hover,.nx-textarea:hover{border-color:var(--action)}
.nx-input:focus-visible,.nx-select:focus-visible,.nx-textarea:focus-visible,.nx-input.is-focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--action)}
.nx-field--error .nx-input,.nx-field--error .nx-select,.nx-field--error .nx-textarea{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}
.nx-error{display:flex;align-items:flex-start;gap:var(--space-2);font:600 13px/18px var(--font-sans);color:var(--danger)}
.nx-check{display:flex;align-items:center;min-height:44px;gap:var(--space-3);font:400 14px/22px var(--font-sans)}
.nx-check input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--action)}
.nx-form{display:flex;flex-direction:column;gap:var(--space-6)}
.nx-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-6)}

/* Card */
.nx-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-none)}
.nx-card__needle{width:10px;height:36px;margin-bottom:var(--space-1)}
.nx-card__title{margin:0;font:700 24px/30px var(--font-sans);letter-spacing:-.01em}
.nx-card__title--s{font:700 19px/26px var(--font-sans);letter-spacing:0}
.nx-card__text{margin:0;color:var(--text-muted)}
.nx-card__meta{margin:0;font:500 13px/18px var(--font-sans);color:var(--accent-text)}
.nx-card__foot{margin-top:auto;padding-top:var(--space-3)}
.nx-card--person{padding:0;border:0;background:transparent}
.nx-card__photo{aspect-ratio:4/5;background:var(--surface-subtle);display:flex;align-items:center;justify-content:center;font:800 40px/1 var(--font-sans);color:var(--accent-text);overflow:hidden}
.nx-card__photo img{width:100%;height:100%;object-fit:cover}
.nx-card__role{margin:0;font:500 13px/18px var(--font-sans);color:var(--text-muted)}
.nx-card--inverse{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-on-inverse)}
.nx-card--inverse .nx-card__text{color:var(--text-on-inverse-muted)}
.nx-grid{display:flex;flex-wrap:wrap;gap:var(--space-6)}
.nx-grid>*{flex:1 1 280px;min-width:0}
.nx-grid>.nx-card--inverse{flex-grow:999}
.nx-grid--flush{gap:0}
.nx-grid--flush>*{margin:0 -1px -1px 0}
.nx-grid--start{align-items:flex-start}
.nx-grid>.nx-card--person{flex-basis:160px}

/* Header */
.nx-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) max(var(--space-8),calc((100vw - 1200px) / 2));background:var(--surface);border-bottom:1px solid var(--border)}
.nx-header__logo{display:block;height:48px}
.nx-header__logo img{display:block;height:100%}
.nx-nav{display:flex;align-items:center;gap:var(--space-6);margin:0;padding:0;list-style:none}
.nx-nav a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-inline:var(--space-1);font:600 14px/20px var(--font-sans);color:var(--text);text-decoration:none;border-bottom:2px solid transparent}
.nx-nav a:hover,.nx-nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.nx-nav a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-header__tools{display:flex;align-items:center;gap:var(--space-4)}
.nx-lang{display:inline-flex;border:1px solid var(--border-control);border-radius:var(--radius-full);overflow:hidden}
.nx-lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 var(--space-3);font:600 13px/1 var(--font-sans);color:var(--text);text-decoration:none}
.nx-lang a[aria-current="true"]{background:var(--action);color:var(--text-on-inverse)}
.nx-lang a:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}

/* Footer */
.nx-footer{padding:var(--space-12) max(var(--space-8),calc((100vw - 1200px) / 2)) var(--space-6);background:var(--surface-inverse);color:var(--text-on-inverse)}
.nx-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-8)}
.nx-footer__logo img{display:block;height:52px}
.nx-footer__tag{margin:var(--space-4) 0 0;font:600 16px/22px var(--font-sans)}
.nx-footer h3{margin:0 0 var(--space-3);font:700 14px/20px var(--font-sans);color:var(--text-on-inverse)}
.nx-footer ul{margin:0;padding:0;list-style:none}
.nx-footer li,.nx-footer p{font:400 14px/24px var(--font-sans);color:var(--text-on-inverse-muted);margin:0}
.nx-footer a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;color:var(--text-on-inverse-muted);text-decoration:none}
.nx-footer a:hover{color:var(--text-on-inverse);text-decoration:underline}
.nx-footer a:focus-visible{outline:3px solid var(--focus-on-inverse);outline-offset:2px}
.nx-footer__bottom{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-12);padding-top:var(--space-4);border-top:1px solid var(--border-inverse)}
.nx-footer__bottom p{font-size:13px}
@media (max-width:760px){.nx-footer{padding-inline:var(--space-4)}.nx-footer__top{grid-template-columns:1fr 1fr}.nx-nav{display:none}.nx-header{padding:var(--space-3) var(--space-4)}}

/* Mobile menu */
.nx-menu-btn{display:none;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);font:600 14px/1 var(--font-sans);color:var(--action);background:transparent;border:1.5px solid var(--action);border-radius:var(--radius-none);cursor:pointer}
.nx-menu-btn:hover{background:var(--surface-subtle)}
.nx-menu-btn:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-menu-btn svg,.nx-menu__close svg{flex:none}
.nx-menu{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;overflow-y:auto;background:var(--surface-inverse);color:var(--text-on-inverse)}
.nx-menu[hidden]{display:none}
.nx-menu__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-inverse)}
.nx-menu__logo{display:block;height:40px}
.nx-menu__logo img{display:block;height:100%}
.nx-menu__close{display:inline-flex;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);font:600 14px/1 var(--font-sans);color:var(--text-on-inverse);background:transparent;border:1.5px solid var(--text-on-inverse);border-radius:var(--radius-none);cursor:pointer}
.nx-menu__close:hover{background:var(--action-hover)}
.nx-menu__close:focus-visible,.nx-menu__nav a:focus-visible,.nx-menu .nx-lang a:focus-visible{outline:3px solid var(--focus-on-inverse);outline-offset:-3px}
.nx-menu__nav{margin:0;padding:var(--space-4) var(--space-4) 0}
.nx-menu__nav ul{margin:0;padding:0;list-style:none}
.nx-menu__nav a{display:flex;align-items:center;justify-content:space-between;min-height:64px;font:700 24px/30px var(--font-sans);letter-spacing:-.01em;color:var(--text-on-inverse);text-decoration:none;border-bottom:1px solid var(--border-inverse)}
.nx-menu__nav a[aria-current="page"]{box-shadow:inset 4px 0 0 var(--accent);padding-left:var(--space-4)}
.nx-menu__nav a:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:6px}
.nx-menu__foot{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-6);margin-top:auto;padding:var(--space-8) var(--space-4) var(--space-12)}
.nx-menu__foot .nx-btn{width:100%}
.nx-menu .nx-lang{border-color:var(--text-on-inverse-muted)}
.nx-menu .nx-lang a{color:var(--text-on-inverse)}
.nx-menu .nx-lang a[aria-current="true"]{background:var(--surface);color:var(--action)}
.nx-menu-open{overflow:hidden}
@media (max-width:760px){.nx-menu-btn{display:inline-flex}.nx-header__cta{display:none}.nx-header__tools{gap:var(--space-3)}.nx-header__logo{height:44px}}
@media (min-width:761px){.nx-menu{display:none}}

/* Motion: hover, focus and the menu only */
.nx-nav a,.nx-lang a,.nx-link,.nx-menu-btn,.nx-menu__close,.nx-input,.nx-select,.nx-textarea{transition:background-color .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1)}
@media (prefers-reduced-motion:reduce){.nx,.nx *,[class*="nx-"]{transition:none!important}}

/* Amharic headings: looser line height, no tight tracking, never shrunk */
.nx :is(h1,h2,h3,h4,.nx-card__title,.nx-hero__title,.nx-cta__title,.nx-cta__phone,.nx-services__link):lang(am){line-height:1.5;letter-spacing:0}
.nx .nx-menu__nav a:lang(am){line-height:1.5;letter-spacing:0}
.nx :is(h1,.nx-hero__title):lang(am){line-height:1.3}
/* Draft markers and English inside Amharic blocks must not change the type */
.nx [data-review]{line-height:inherit}
.nx [lang="en"]{font-family:var(--font-sans)}

/* Placeholder: content still to come from the firm */
.nx-placeholder{display:inline-block;margin:0;padding:2px var(--space-2);font:italic 400 14px/22px var(--font-sans);color:var(--text-muted);border:1px dashed var(--border-control)}
.nx-on-dark .nx-placeholder,.nx-footer .nx-placeholder{color:var(--text-on-inverse-muted);border-color:var(--text-on-inverse-muted)}

/* Layout */
.nx-container{box-sizing:border-box;max-width:calc(1200px + 2 * var(--space-8));margin-inline:auto;padding-inline:var(--space-4)}
.nx-section{padding-block:var(--space-12)}
.nx-section--subtle{background:var(--surface-subtle)}
.nx-section--inverse{background:var(--surface-inverse);color:var(--text-on-inverse)}
.nx-cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-6)}
.nx-cols>*{grid-column:span 12;min-width:0}
.nx-stack-4>*+*{margin-top:var(--space-4)}
.nx-stack-6>*+*{margin-top:var(--space-6)}
.nx-stack-8>*+*{margin-top:var(--space-8)}
@media (min-width:761px){
.nx-container{padding-inline:var(--space-8)}
.nx-section{padding-block:var(--space-24)}
.nx-cols>.nx-span-4{grid-column:span 4}.nx-cols>.nx-span-5{grid-column:span 5}.nx-cols>.nx-span-6{grid-column:span 6}.nx-cols>.nx-span-7{grid-column:span 7}.nx-cols>.nx-span-8{grid-column:span 8}.nx-cols>.nx-span-12{grid-column:span 12}
}

/* Hero panel */
.nx-hero{display:grid;grid-template-columns:minmax(0,1fr);background:var(--surface)}
.nx-hero__text{padding:var(--space-12) var(--space-4)}
.nx-hero__title{margin:0;max-width:14ch;font:800 48px/52px var(--font-sans);letter-spacing:-.025em;text-wrap:balance}
.nx-hero__title:lang(am){max-width:none}
.nx-hero__tag{margin:var(--space-4) 0 0;font:700 19px/26px var(--font-sans);color:var(--accent-text)}
.nx-hero__lead{margin:var(--space-6) 0 0;max-width:34em;font:400 18px/28px var(--font-sans);color:var(--text-muted)}
.nx-hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8)}
.nx-hero__panel{position:relative;min-height:200px;overflow:hidden;background:var(--surface-inverse)}
.nx-hero__needle{position:absolute;top:-15%;left:42%;height:130%;aspect-ratio:32.4/145}
@media (min-width:761px){
.nx-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:560px}
.nx-hero__text{display:flex;flex-direction:column;justify-content:center;padding:var(--space-24) var(--space-12) var(--space-24) max(var(--space-8),calc((100vw - 1200px) / 2))}
}
@media (min-width:1024px){.nx-hero__title{font-size:64px;line-height:68px;letter-spacing:-.03em}}

/* Service list */
.nx-services{display:grid;gap:var(--space-8)}
.nx-services__title{margin:0;font:800 32px/38px var(--font-sans);letter-spacing:-.02em}
.nx-services__list{display:grid;grid-template-columns:minmax(0,1fr);column-gap:var(--space-8);margin:0;padding:0;list-style:none}
.nx-services__item{padding:var(--space-2) 0 var(--space-6);border-top:1px solid var(--border)}
.nx-services__link{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-height:44px;padding-block:var(--space-2);font:700 19px/26px var(--font-sans);color:var(--text);text-decoration:none}
.nx-services__link svg{flex:none;width:20px;height:20px;margin-top:3px;transition:transform .2s cubic-bezier(.16,1,.3,1)}
.nx-services__link:hover span{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
.nx-services__link:hover svg{transform:translateX(4px)}
.nx-services__link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-services__item .nx-placeholder{display:table;margin-top:var(--space-2)}
@media (min-width:761px){.nx-services__list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,auto);grid-auto-flow:column}}
@media (min-width:1024px){.nx-services{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--space-6)}}

/* Call-to-action band */
.nx-cta{display:grid;grid-template-columns:minmax(0,1fr)}
.nx-cta__main{padding:var(--space-12) var(--space-4);background:var(--surface-inverse);color:var(--text-on-inverse)}
.nx-cta__title{margin:0;font:800 32px/38px var(--font-sans);letter-spacing:-.02em}
.nx-cta__text{margin:var(--space-3) 0 var(--space-8);max-width:34em;font:400 18px/28px var(--font-sans);color:var(--text-on-inverse-muted)}
.nx-cta__side{display:flex;flex-direction:column;justify-content:center;padding:var(--space-12) var(--space-4);background:var(--surface-subtle)}
.nx-cta__phone{display:inline-flex;align-items:center;min-height:44px;font:800 32px/38px var(--font-sans);letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}
.nx-cta__phone:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.nx-cta__phone:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-cta__hours{margin:var(--space-2) 0 0;text-wrap:pretty;font:400 14px/22px var(--font-sans);color:var(--text-muted)}
@media (min-width:1024px){
.nx-cta{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
.nx-cta__main{padding:var(--space-24) var(--space-12) var(--space-24) max(var(--space-8),calc((100vw - 1200px) / 2))}
.nx-cta__side{padding:var(--space-24) max(var(--space-8),calc((100vw - 1200px) / 2)) var(--space-24) var(--space-12)}
.nx-cta__phone{font-size:24px;line-height:30px;letter-spacing:-.01em}
}
@media (min-width:1280px){.nx-cta__phone{font-size:32px;line-height:38px;letter-spacing:-.02em}}

/* Contact block */
.nx-contact{display:grid;grid-template-columns:minmax(0,1fr);background:var(--surface)}
.nx-contact__details{padding:var(--space-12) var(--space-4)}
.nx-contact__title{margin:0;font:800 32px/38px var(--font-sans);letter-spacing:-.02em}
.nx-contact__list{display:grid;gap:var(--space-6);margin:var(--space-8) 0 0}
.nx-contact__list dt{font:600 14px/20px var(--font-sans);color:var(--text-muted)}
.nx-contact__list dd{margin:var(--space-1) 0 0;font:400 18px/28px var(--font-sans);text-wrap:pretty}
.nx-contact__list dd .nx-placeholder{margin-top:var(--space-2)}
.nx-contact__phone{display:inline-flex;align-items:center;min-height:44px;font:700 24px/30px var(--font-sans);letter-spacing:-.01em;color:var(--text);text-decoration:none}
.nx-contact__phone:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
.nx-contact__phone:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-contact__map{display:flex;align-items:flex-end;min-height:280px;padding:var(--space-6) var(--space-4);background:var(--surface-subtle)}
@media (min-width:761px){.nx-contact__details{padding:var(--space-24) var(--space-8)}.nx-contact__map{padding:var(--space-8)}}
@media (min-width:1024px){
.nx-contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.nx-contact__details{padding:var(--space-24) var(--space-12) var(--space-24) max(var(--space-8),calc((100vw - 1200px) / 2))}
}

/* Focus on logo links and the checkbox */
.nx-header__logo:focus-visible,.nx-check input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.nx-menu__logo:focus-visible{outline:3px solid var(--focus-on-inverse);outline-offset:3px}

/* Skip link: hidden until focused */
.nx-skip{position:absolute;left:var(--space-4);top:var(--space-4);z-index:60;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-4);font:600 16px/1 var(--font-sans);color:var(--text-on-inverse);background:var(--action);text-decoration:none;transform:translateY(-200%)}
.nx-skip:focus{transform:none;outline:3px solid var(--focus);outline-offset:3px}

/* Amharic: never smaller than 16px in navigation, language links and the footer */
.nx-nav a:lang(am),.nx-lang a:lang(am),.nx-footer a:lang(am),.nx-menu-btn:lang(am){font-size:16px}
.nx-services__link:lang(am) svg{margin-top:5px}

/* Call-to-action band without the phone panel (when the contact block follows) */
.nx-cta__side .nx-btn{align-self:flex-start}

/* Team row: a hairline between flush portraits */
.nx-grid--flush>.nx-card--person+.nx-card--person .nx-card__photo{border-left:1px solid var(--surface)}
