/* ==========================================================================
   MARSIV LTD - Swiss minimal design system
   Single family (Archivo), strict 12-col grid, hairline rules, no shadows,
   zero radius, fixed-height media blocks so nothing is ever ragged.
   ========================================================================== */

:root{
  --ms-white:#FFFFFF;
  --ms-paper:#F4F4F6;
  --ms-ink:#111113;
  --ms-ink-70:#55555D;
  --ms-ink-45:#8B8B94;
  --ms-rule:#E3E3E7;
  --ms-accent:#078774;
  --ms-accent-dark:#015A4D;
  --ms-maxw:1320px;
  --ms-gutter:24px;
  --ms-gap:24px;
  --ms-section:clamp(72px,9vw,140px);
  --ms-ease:cubic-bezier(.2,0,0,1);
}
@media (min-width:900px){ :root{ --ms-gutter:40px; } }

.ms,.ms *,.ms *::before,.ms *::after{ box-sizing:border-box; }

.ms{
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ms-ink);
  background:var(--ms-white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.ms img{ display:block; max-width:100%; }
.ms a{ color:inherit; text-decoration:none; }
.ms p{ margin:0; }

.ms-container{
  width:100%;
  max-width:var(--ms-maxw);
  margin-inline:auto;
  padding-inline:var(--ms-gutter);
}

/* --------------------------------------------------------------- type --- */
.ms-display{
  font-size:clamp(2.25rem,4.35vw,3.75rem);
  line-height:1.03;
  letter-spacing:-.035em;
  font-weight:600;
  margin:0;
  text-wrap:balance;
}
.ms-h2{
  font-size:clamp(1.8rem,3.1vw,2.8rem);
  line-height:1.07;
  letter-spacing:-.03em;
  font-weight:600;
  margin:0;
  text-wrap:balance;
}
.ms-h3{
  font-size:clamp(1.05rem,1.45vw,1.3rem);
  line-height:1.25;
  letter-spacing:-.022em;
  font-weight:600;
  margin:0;
}
.ms-lead{
  font-size:clamp(1.02rem,1.25vw,1.175rem);
  line-height:1.55;
  color:var(--ms-ink-70);
  max-width:56ch;
}
.ms-body{
  font-size:1.0625rem;
  line-height:1.62;
  color:var(--ms-ink-70);
  max-width:62ch;
}
.ms-label{
  font-size:.6875rem;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-weight:600;
  color:var(--ms-ink-45);
}

/* ------------------------------------------------------------ buttons --- */
.ms-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.ms-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:52px;
  padding:0 30px;
  font-size:.9375rem;
  font-weight:600;
  letter-spacing:.005em;
  border:1px solid transparent;
  border-radius:0;
  cursor:pointer;
  transition:background .25s var(--ms-ease),color .25s var(--ms-ease),border-color .25s var(--ms-ease);
}
.ms-btn--solid{ background:var(--ms-accent); color:#fff; border-color:var(--ms-accent); }
.ms-btn--solid:hover,.ms-btn--solid:focus-visible{ background:var(--ms-accent-dark); border-color:var(--ms-accent-dark); color:#fff; }
.ms-btn--line{ background:transparent; color:var(--ms-ink); border-color:var(--ms-ink); }
.ms-btn--line:hover,.ms-btn--line:focus-visible{ background:var(--ms-ink); color:#fff; }
.ms-btn:focus-visible{ outline:2px solid var(--ms-accent); outline-offset:3px; }

/* --------------------------------------------------------------- hero --- */
.ms-hero{
  display:grid;
  grid-template-columns:1fr;
  background:var(--ms-white);
  border-bottom:1px solid var(--ms-rule);
}
.ms-hero__content{
  display:flex;
  align-items:center;
  padding-block:clamp(56px,8vw,96px);
  padding-inline:var(--ms-gutter);
  order:2;
}
.ms-hero__inner{
  width:100%;
  max-width:40rem;
  display:flex;
  flex-direction:column;
  gap:clamp(18px,2.1vw,26px);
}
.ms-hero .ms-hero__rule{
  width:56px;
  height:2px;
  background-color:var(--ms-accent);
  background-image:none;
  border:0;
  border-radius:0;
  opacity:1;
  margin:2px 0 0;
  flex:none;
}
.ms-hero__media{
  order:1;
  position:relative;
  height:42vh;
  min-height:260px;
  background:var(--ms-rule);
  overflow:hidden;
}
.ms-hero__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
}
@media (min-width:900px){
  .ms-hero{
    grid-template-columns:1.04fr 1fr;
    min-height:calc(100svh - 96px);
  }
  .ms-hero__content{
    order:1;
    padding-left:max(var(--ms-gutter),calc((100vw - var(--ms-maxw)) / 2));
    padding-right:clamp(32px,4.2vw,76px);
  }
  .ms-hero__media{ order:2; height:auto; min-height:0; }
}

/* ---------------------------------------------------------- statement --- */
.ms-statement{ padding-block:var(--ms-section); background:var(--ms-white); }
.ms-statement__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(26px,3.5vw,56px);
  border-top:1px solid var(--ms-rule);
  padding-top:clamp(28px,3.2vw,48px);
}
@media (min-width:900px){
  .ms-statement__grid{
    grid-template-columns:7fr 4fr;
    gap:clamp(48px,6vw,110px);
    align-items:start;
  }
}

/* ----------------------------------------------------------- services --- */
.ms-services{ padding-block:var(--ms-section); background:var(--ms-paper); }
.ms-sec-head{
  display:flex;
  flex-direction:column;
  gap:14px;
  border-top:1px solid var(--ms-rule);
  padding-top:clamp(28px,3.2vw,48px);
  margin-bottom:clamp(34px,4.4vw,60px);
}
@media (min-width:900px){
  .ms-sec-head{
    flex-direction:row;
    align-items:end;
    justify-content:space-between;
    gap:48px;
  }
  .ms-sec-head .ms-body{ max-width:34ch; }
}

.ms-grid{ display:grid; grid-template-columns:1fr; gap:var(--ms-gap); }
@media (min-width:760px){ .ms-grid{ grid-template-columns:repeat(12,1fr); } }

.ms-card{
  display:flex;
  flex-direction:column;
  background:var(--ms-white);
  border:1px solid var(--ms-rule);
  transition:border-color .3s var(--ms-ease);
}
.ms-card:hover{ border-color:var(--ms-ink); }
@media (min-width:760px){
  .ms-card--a{ grid-column:span 7; }
  .ms-card--b{ grid-column:span 5; }
  .ms-card--c{ grid-column:span 5; }
  .ms-card--d{ grid-column:span 7; }
}
.ms-card__media{
  overflow:hidden;
  background:var(--ms-rule);
  height:clamp(210px,24vw,320px);
  border-bottom:1px solid var(--ms-rule);
}
.ms-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s var(--ms-ease);
}
.ms-card:hover .ms-card__media img{ transform:scale(1.045); }
.ms-card__body{
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
  padding:clamp(20px,2.1vw,30px);
}
.ms-card__title{ transition:color .25s var(--ms-ease); }
.ms-card:hover .ms-card__title{ color:var(--ms-accent); }
.ms-card__text{ font-size:.96875rem; line-height:1.58; color:var(--ms-ink-70); max-width:46ch; }

/* ------------------------------------------------------------- reveal --- */
@media (prefers-reduced-motion:no-preference){
  html.ms-js .ms-reveal{ opacity:0; transform:translateY(14px); }
  html.ms-js .ms-reveal.is-in{
    opacity:1;
    transform:none;
    transition:opacity .7s var(--ms-ease),transform .7s var(--ms-ease);
  }
}

/* --------------------------------------------- neutralise builder chrome --- */
.ms-root .elementor-widget-container{ padding:0 !important; }
