:root{
  --ha-charcoal:#2B3138;
  --ha-accent:#E87511;
  --ha-accent-hover:#C05F0A;
  --ha-accent-light:#F5A356;
  --ha-warm-white:#F4F3F1;
  --ha-surface:#FFFFFF;
  --ha-stone:#5A5750;
  --ha-subtle:#8A857D;
  --ha-border:#E5E1DA;
  --ha-border-soft:#DDD9D3;
  --ha-on-dark:#C9CDD2;
  --ha-on-dark-subtle:#8A959F;
  --ha-container:1200px;
  --ha-gutter:32px;
  --ha-radius:4px;
  --ha-heading:Archivo,sans-serif;
  --ha-body:'Source Sans 3',sans-serif;
}

/* ---------- Base ---------- */
body{
  margin:0;
  background:var(--ha-warm-white);
  color:var(--ha-charcoal);
  font-family:var(--ha-body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.ha-content{width:100%}
.ha-main{width:100%}
.ha-main .alignfull{width:100%;max-width:none;margin-left:0;margin-right:0}
.ha-main > .wp-block-group,
.ha-main > .wp-block-cover{margin-block-start:0}
.ha-container{max-width:var(--ha-container);margin:0 auto;padding-left:var(--ha-gutter);padding-right:var(--ha-gutter)}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:8px;left:8px;z-index:9999;width:auto;height:auto;clip:auto;margin:0;padding:12px 20px;background:var(--ha-charcoal);color:#fff;font-family:var(--ha-heading);font-weight:700}

/* ---------- Buttons ---------- */
.ha-btn,
.ha-main .wp-block-button__link{
  display:inline-block;
  font-family:var(--ha-heading);
  font-weight:700;
  font-size:16px;
  line-height:1;
  color:#fff;
  background:var(--ha-accent);
  padding:15px 28px;
  border:none;
  border-radius:var(--ha-radius);
  text-decoration:none;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.ha-btn:hover,.ha-btn:focus-visible,
.ha-main .wp-block-button__link:hover,
.ha-main .wp-block-button__link:focus-visible{background:var(--ha-accent-hover);color:#fff;text-decoration:none}
.ha-btn--header{font-size:17px;padding:13px 24px}
.ha-btn--compact,
.ha-main .is-style-ha-compact .wp-block-button__link{padding:14px 26px}

/* Outline button on photography */
.ha-main .is-style-ha-ghost .wp-block-button__link{
  background:transparent;
  color:#fff;
  border:1.5px solid rgba(255,255,255,.7);
}
.ha-main .is-style-ha-ghost .wp-block-button__link:hover,
.ha-main .is-style-ha-ghost .wp-block-button__link:focus-visible{
  background:rgba(255,255,255,.1);
  border-color:#fff;
  color:#fff;
}
/* Outline button on light grounds */
.ha-main .is-style-ha-outline .wp-block-button__link{
  background:transparent;
  color:var(--ha-charcoal);
  border:1.5px solid var(--ha-charcoal);
}
.ha-main .is-style-ha-outline .wp-block-button__link:hover,
.ha-main .is-style-ha-outline .wp-block-button__link:focus-visible{
  background:var(--ha-charcoal);
  color:#fff;
}

/* ---------- Header ---------- */
.ha-header{background:var(--ha-surface);border-bottom:1px solid var(--ha-border);position:sticky;top:0;z-index:100}
.admin-bar .ha-header{top:32px}
.ha-header__inner{max-width:var(--ha-container);margin:0 auto;padding:14px var(--ha-gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}
.ha-logo{display:flex;align-items:center;flex:0 0 auto}
.ha-logo img{height:48px;width:auto;display:block;mix-blend-mode:multiply}
.ha-logo__text{font-family:var(--ha-heading);font-weight:800;font-size:22px;color:var(--ha-charcoal);text-decoration:none;letter-spacing:-.01em}
.ha-logo__text span{color:var(--ha-accent)}
.ha-header__nav{display:flex;align-items:center;gap:32px}
.ha-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:32px}
.ha-menu li{position:relative}
.ha-menu a{font-family:var(--ha-heading);font-weight:600;font-size:17px;color:var(--ha-charcoal);text-decoration:none;transition:color .15s ease}
.ha-menu a:hover,.ha-menu a:focus-visible{color:var(--ha-accent)}
/* Anchor links to the front page mark every item "current"; only flag a real current page. */
.ha-menu li:not(.menu-item-home).current-menu-item > a{color:var(--ha-accent)}
.ha-menu .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:210px;margin:0;padding:8px 0;list-style:none;background:var(--ha-surface);border:1px solid var(--ha-border);border-radius:var(--ha-radius);z-index:20}
.ha-menu li:hover > .sub-menu,.ha-menu li:focus-within > .sub-menu{display:block}
.ha-menu .sub-menu a{display:block;padding:9px 18px;font-size:16px}
.ha-header__icons{display:flex;align-items:center;gap:20px}
.ha-icon{display:flex;align-items:center;color:var(--ha-charcoal);transition:color .15s ease}
.ha-icon:hover,.ha-icon:focus-visible{color:var(--ha-accent)}
.ha-icon svg{display:block}
.ha-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:none;border:1px solid var(--ha-border);border-radius:var(--ha-radius);color:var(--ha-charcoal);cursor:pointer}
.ha-burger svg{display:block}
.ha-burger[aria-expanded="true"] .ha-burger__open,
.ha-burger[aria-expanded="false"] .ha-burger__close{display:none}

/* ---------- Footer ---------- */
.ha-footer{background:var(--ha-charcoal)}
.ha-footer__inner{max-width:var(--ha-container);margin:0 auto;padding:40px var(--ha-gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ha-footer__brandbox{display:flex;flex-direction:column;gap:4px}
.ha-footer__brand{font-family:var(--ha-heading);font-weight:800;font-size:18px;color:#fff;text-decoration:none}
.ha-footer__brand span{color:var(--ha-accent)}
.ha-footer__meta{font-size:14px;color:var(--ha-on-dark-subtle)}
.ha-footer__menu{list-style:none;margin:0;padding:0;display:flex;gap:24px;flex-wrap:wrap}
.ha-footer__menu a{font-family:var(--ha-heading);font-weight:600;font-size:14px;color:var(--ha-on-dark);text-decoration:none;transition:color .15s ease}
.ha-footer__menu a:hover{color:var(--ha-accent)}
.ha-footer__copy{font-size:13px;color:var(--ha-on-dark-subtle)}

/* ---------- Shared section furniture ---------- */
.ha-section{max-width:var(--ha-container);margin:0 auto;padding:88px var(--ha-gutter) 0}
.ha-section--last{padding-bottom:96px}
.ha-eyebrow{font-family:var(--ha-heading);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ha-accent);margin:0}
.ha-eyebrow--light{color:var(--ha-accent-light)}
.ha-sectionhead{display:flex;flex-direction:column;gap:12px;margin-bottom:40px}
.ha-sectionhead h2{font-family:var(--ha-heading);font-size:36px;font-weight:800;letter-spacing:-.02em;line-height:1.12;margin:0}
.ha-sectionhead p:not(.ha-eyebrow):not(.ha-sectionhead__note){font-size:17px;line-height:1.6;color:var(--ha-stone);margin:0;max-width:620px}
.ha-sectionhead p.ha-eyebrow{margin:0}
.ha-sectionhead--split{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:24px}
.ha-sectionhead--split .ha-sectionhead__title{display:flex;flex-direction:column;gap:12px}
.ha-sectionhead__note{font-size:15px;color:var(--ha-subtle);max-width:320px;text-align:right;margin:0}

/* ---------- Hero ---------- */
.ha-hero.wp-block-cover{min-height:620px;padding:0;align-items:flex-end;border-radius:0}
/* With a custom content position, core shrink-wraps the cover's inner container
   (width:auto), which pulls the hero copy off the page's 1200px column. */
.ha-hero.ha-hero.wp-block-cover.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container{width:100%;max-width:none;margin:0;padding:0}
.ha-hero__inner{max-width:var(--ha-container);margin:0 auto;padding:72px var(--ha-gutter) 64px;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.ha-hero__inner > *{margin:0}
.ha-hero__inner h1{font-family:var(--ha-heading);font-size:52px;font-weight:800;letter-spacing:-.02em;line-height:1.08;color:#fff;max-width:640px;text-wrap:pretty}
/* Astra ships "body .wp-block-cover:not(.has-text-color.has-link-color) p{color:<text-color>}",
   which outranks a plain class rule. These selectors reclaim the hero copy. */
.ha-hero.wp-block-cover .ha-hero__inner p.ha-hero__lead{font-size:19px;line-height:1.55;color:#E8E6E2;max-width:540px;text-wrap:pretty}
.ha-hero.wp-block-cover .ha-hero__inner p.ha-eyebrow--light{color:var(--ha-accent-light)}
.ha-hero__inner .wp-block-buttons{gap:14px;margin-top:8px}

/* ---------- Trust bar ---------- */
.ha-trust{background:var(--ha-charcoal)}
.ha-trust__inner{max-width:var(--ha-container);margin:0 auto;padding:28px var(--ha-gutter);display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.ha-trust__item{display:flex;flex-direction:column;gap:4px;border-left:2px solid var(--ha-accent);padding-left:16px}
.ha-trust__value{font-family:var(--ha-heading);font-weight:800;font-size:24px;line-height:1.15;color:#fff;margin:0}
.ha-trust__label{font-size:14px;line-height:1.4;color:var(--ha-on-dark);margin:0}

/* ---------- Service cards ---------- */
.ha-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ha-card{display:flex;flex-direction:column;background:var(--ha-surface);border:1px solid var(--ha-border);border-radius:var(--ha-radius);overflow:hidden;transition:border-color .15s ease}
.ha-card:hover,.ha-card:focus-within{border-color:var(--ha-accent)}
.ha-card.ha-card--clickable{cursor:pointer}
.ha-card .wp-block-image{margin:0;height:210px;overflow:hidden;border-radius:0}
.ha-card .wp-block-image img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.ha-card__body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.ha-card__body > *{margin:0}
.ha-card__body h3{font-family:var(--ha-heading);font-weight:700;font-size:19px;line-height:1.3;letter-spacing:normal;color:var(--ha-charcoal)}
.ha-card__desc{font-size:15px;line-height:1.55;color:var(--ha-stone)}
.ha-card__more{font-family:var(--ha-heading);font-weight:700;font-size:14px;color:var(--ha-accent);margin-top:6px}
.ha-card__more a{color:var(--ha-accent);text-decoration:none}

/* ---------- Split feature ---------- */
.ha-feature.wp-block-columns{background:var(--ha-surface);border:1px solid var(--ha-border);border-radius:var(--ha-radius);overflow:hidden;gap:0;margin:0;align-items:stretch}
/* flex-basis:0 cannot shrink past a column's own padding, so the padded text column
   would win ~54%. Pin both halves instead to keep the designed 1fr/1fr split. */
.ha-feature .wp-block-column,.ha-about .wp-block-column,.ha-contact .wp-block-column{box-sizing:border-box}
.ha-feature.ha-feature.wp-block-columns > .wp-block-column{flex:0 0 50%}
.ha-feature__media{display:flex}
.ha-feature__media .wp-block-image{margin:0;width:100%;height:100%;border-radius:0}
.ha-feature__media img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.ha-feature__body{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:40px 48px}
.ha-feature__body > *{margin:0}
.ha-feature__body h2{font-family:var(--ha-heading);font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.14;text-wrap:pretty}
.ha-feature__body p{font-size:17px;line-height:1.6;color:var(--ha-stone)}
.ha-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.ha-list li{position:relative;padding-left:20px;font-size:16px;line-height:1.5;color:var(--ha-charcoal)}
.ha-list li::before{content:"-";position:absolute;left:0;top:0;color:var(--ha-accent);font-weight:700}
.ha-feature__body .wp-block-buttons{margin-top:2px}

/* ---------- Projects bento ---------- */
.ha-bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:16px}
.ha-bento .wp-block-image{margin:0;position:relative;overflow:hidden;border-radius:var(--ha-radius);height:100%}
.ha-bento .wp-block-image img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.ha-bento .wp-block-image figcaption{position:absolute;left:0;bottom:0;margin:0;padding:10px 16px;background:var(--ha-charcoal);color:#fff;font-family:var(--ha-heading);font-weight:600;font-size:14px;line-height:1.3;text-align:left}
.ha-bento__lg{grid-column:span 2;grid-row:span 2}
.ha-bento__wide{grid-column:span 2}

/* ---------- About panel ---------- */
.ha-about.wp-block-columns{background:var(--ha-charcoal);border-radius:var(--ha-radius);overflow:hidden;gap:0;margin:0;align-items:stretch}
.ha-about__media{display:flex;flex:0 0 420px}
.ha-about__media .wp-block-image{margin:0;width:100%;height:100%;border-radius:0}
.ha-about__media img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block;border-radius:0}
.ha-about__body{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:56px}
.ha-about__body > *{margin:0}
.ha-about__body h2{font-family:var(--ha-heading);font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.14;color:#fff;text-wrap:pretty}
.ha-about__body p{font-size:17px;line-height:1.65;color:var(--ha-on-dark)}
.ha-about__body .wp-block-buttons{margin-top:6px}

/* ---------- Contact ---------- */
.ha-contact{background:var(--ha-surface);border:1px solid var(--ha-border);border-radius:var(--ha-radius);padding:64px 56px}
.ha-contact.wp-block-columns{gap:56px;margin:0;align-items:center}
.ha-contact__body{display:flex;flex-direction:column;gap:16px}
.ha-contact__body > *{margin:0}
.ha-contact__body h2{font-family:var(--ha-heading);font-size:36px;font-weight:800;letter-spacing:-.02em;line-height:1.12;text-wrap:pretty}
.ha-contact__body p{font-size:17px;line-height:1.6;color:var(--ha-stone)}
.ha-contact__details{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.ha-contact__details p{margin:0}
.ha-contact__line{font-family:var(--ha-heading);font-weight:700;font-size:18px;color:var(--ha-charcoal)}
.ha-contact__line a{color:var(--ha-charcoal);text-decoration:none}
.ha-contact__line a:hover{color:var(--ha-accent)}
.ha-contact__note{font-size:14px;color:var(--ha-subtle)}

.ha-form{display:flex;flex-direction:column;gap:12px}
.ha-form input[type=text],.ha-form input[type=email],.ha-form input[type=tel],.ha-form textarea{
  font-family:var(--ha-body);
  font-size:16px;
  padding:14px 16px;
  border:1px solid var(--ha-border-soft);
  border-radius:var(--ha-radius);
  background:var(--ha-warm-white);
  color:var(--ha-charcoal);
  outline:none;
  width:100%;
  box-sizing:border-box;
}
.ha-form textarea{resize:vertical;min-height:112px}
.ha-form input::placeholder,.ha-form textarea::placeholder{color:#6E6A63;opacity:1}
.ha-form input:focus,.ha-form textarea:focus{border-color:var(--ha-accent);box-shadow:0 0 0 2px rgba(232,117,17,.18)}
.ha-form button{width:100%}
.ha-form__hp{position:absolute;left:-9999px}
.ha-form__status{font-size:15px;line-height:1.5;margin:0}
.ha-form__status--ok{color:#1F6B45}
.ha-form__status--err{color:#B02A1A}

/* ---------- Interior pages ---------- */
.ha-pagehead{max-width:var(--ha-container);margin:0 auto;padding:72px var(--ha-gutter) 0}
.ha-pagehead h1{font-family:var(--ha-heading);font-size:44px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}
.ha-pagebody{max-width:var(--ha-container);margin:0 auto;padding:32px var(--ha-gutter) 96px}

/* ---------- Responsive ---------- */
@media (max-width:1200px){
  .ha-header__nav{gap:22px}
  .ha-menu{gap:22px}
  .ha-about__media{flex:0 0 340px}
  .ha-about__body{padding:44px}
  .ha-contact{padding:48px 40px}
  .ha-contact.wp-block-columns{gap:40px}
}

@media (max-width:1024px){
  .ha-cards{grid-template-columns:repeat(2,1fr)}
  .ha-hero__inner h1{font-size:44px}
  .ha-feature__body{padding:36px 36px}
  .ha-trust__inner{grid-template-columns:repeat(2,1fr);gap:20px}
}

@media (max-width:900px){
  .ha-header__nav{
    display:none;
    position:absolute;
    left:0;right:0;top:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px var(--ha-gutter) 20px;
    background:var(--ha-surface);
    border-bottom:1px solid var(--ha-border);
  }
  .ha-header__nav.is-open{display:flex}
  .ha-menu{flex-direction:column;align-items:stretch;gap:0}
  .ha-menu a{display:block;padding:13px 0;border-bottom:1px solid var(--ha-border)}
  .ha-menu .sub-menu{display:block;position:static;border:0;padding:0 0 0 16px;min-width:0}
  .ha-header__icons{gap:20px;padding:16px 0 0}
  .ha-header__inner{position:relative;gap:16px}
  .ha-burger{display:flex}
  .ha-header .ha-btn--header{width:100%;text-align:center;margin-top:14px}
}

@media (max-width:781px){
  .ha-section{padding-top:56px}
  .ha-section--last{padding-bottom:64px}
  /* core/cover writes min-height inline, so the mobile height needs to win. */
  .ha-hero.wp-block-cover{min-height:520px!important}
  .ha-hero__inner{padding:48px var(--ha-gutter) 48px}
  .ha-hero__inner h1{font-size:34px}
  .ha-hero__lead{font-size:17px}
  .ha-trust__inner{grid-template-columns:1fr;gap:16px}
  .ha-cards{grid-template-columns:1fr}
  .ha-sectionhead h2{font-size:28px}
  .ha-sectionhead--split{flex-direction:column;align-items:flex-start}
  .ha-sectionhead__note{text-align:left;max-width:none}
  .ha-feature.wp-block-columns,.ha-about.wp-block-columns{flex-wrap:wrap}
  .ha-feature .wp-block-column,.ha-about .wp-block-column{flex-basis:100%!important}
  .ha-feature__media img,.ha-about__media img{min-height:260px;max-height:340px}
  .ha-feature__body{padding:32px 24px}
  .ha-about__body{padding:36px 24px}
  .ha-about__body h2,.ha-feature__body h2{font-size:26px}
  .ha-bento{grid-template-columns:1fr;grid-auto-rows:220px}
  .ha-bento__lg,.ha-bento__wide{grid-column:auto;grid-row:auto}
  .ha-bento__lg{grid-row:span 2}
  .ha-contact{padding:32px 24px}
  .ha-contact.wp-block-columns{gap:32px}
  .ha-contact__body h2{font-size:28px}
  .ha-footer__inner{flex-direction:column;align-items:flex-start;gap:20px}
  .ha-pagehead{padding-top:48px}
  .ha-pagehead h1{font-size:32px}
}

@media (max-width:480px){
  :root{--ha-gutter:20px}
  .ha-hero__inner h1{font-size:30px}
  .ha-logo img{height:40px}
}

@media (prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* Anchor offset under the sticky header */
[id]{scroll-margin-top:96px}

/* ---------- Language switcher ---------- */
.ha-lang{display:flex;align-items:center;gap:2px;padding-left:20px;border-left:1px solid var(--ha-border)}
.ha-lang__item{font-family:var(--ha-heading);font-weight:600;font-size:14px;letter-spacing:.06em;color:var(--ha-subtle);text-decoration:none;padding:6px 8px;border-radius:var(--ha-radius);transition:color .15s ease,background .15s ease}
.ha-lang__item:hover,.ha-lang__item:focus-visible{color:var(--ha-accent)}
.ha-lang__item.is-active{color:var(--ha-charcoal);background:var(--ha-warm-white)}
@media (max-width:900px){
  .ha-lang{padding-left:0;border-left:0;border-top:1px solid var(--ha-border);padding-top:16px;margin-top:4px;width:100%}
  .ha-lang__item{padding:8px 12px;font-size:15px}
  .ha-lang__item:first-child{padding-left:0}
}

/* ---------- Block-layout margin reset ---------- */
/* WordPress's is-layout-flow adds margin-block-start:24px to every child except the
   first, which pushes cells 2..n down and leaves the first cell of a grid sticking up.
   Spacing inside these containers comes from grid/flex gap, so the margins must go. */
.ha-cards > *,
.ha-bento > *,
.ha-trust__inner > *,
.ha-trust__item > *,
.ha-hero__inner > *,
.ha-sectionhead > *,
.ha-sectionhead__title > *,
.ha-card__body > *,
.ha-feature__body > *,
.ha-about__body > *,
.ha-contact__body > *,
.ha-contact__details > *,
.ha-feature > .wp-block-column > *,
.ha-about > .wp-block-column > *,
.ha-contact > .wp-block-column > *{margin-block-start:0;margin-block-end:0}
