@font-face{
  font-family:'Montserrat';
  src:url('assets/fonts/Montserrat-Regular.otf') format('opentype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'Montserrat';
  src:url('assets/fonts/Montserrat-Medium.otf') format('opentype');
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:'Montserrat';
  src:url('assets/fonts/Montserrat-SemiBold.otf') format('opentype');
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:'Montserrat';
  src:url('assets/fonts/Montserrat-Bold.otf') format('opentype');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face{
  font-family:'Montserrat';
  src:url('assets/fonts/Montserrat-ExtraBold.otf') format('opentype');
  font-style:normal;
  font-weight:800;
  font-display:swap;
}
/* MEDIR DESIGN SYSTEM — edit these tokens to change the whole website. */
:root{
  --orange:#ed7028;
  --orange-dark:#b7470c;
  --ink:#20272d;
  --muted:#5d6b78;
  --paper:#fff;
  --soft:#f3f4f4;
  --line:#dfe2e3;
  --radius:4px;
  --width:1280px}
*{
  box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:100px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Montserrat',Arial,Helvetica,sans-serif;
  font-size:15px;
  line-height:1.6}
a{
  color:inherit;
  text-decoration:none}
button,input,select,textarea{
  font:inherit}
button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent}
button{
  cursor:pointer}
button:disabled{
  cursor:default;
  opacity:.5}
img{
  display:block;
  max-width:100%}
a,button{
  touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:4px}
.wrap{
  max-width:var(--width);
  width:calc(100% - 96px);
  margin-inline:auto}
.skip{
  position:fixed;
  left:20px;
  top:-100px;
  background:white;
  padding:12px;
  z-index:100}
.skip:focus{
  top:10px}
.topbar{
  background:var(--ink);
  color:#fff;
  font-size:11px;
  letter-spacing:.4px}
.topbar .wrap{
  height:34px;
  display:flex;
  justify-content:space-between;
  align-items:center}
.topbar a{
  margin-left:25px}
.site-nav{
  height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0}
.brand img{
  width:74px;
  height:64px;
  object-fit:contain}
.brand-type{
  font-size:24px;
  font-weight:850;
  letter-spacing:1.5px;
  line-height:1}
.brand-type small{
  display:block;
  font-size:9px;
  letter-spacing:2.5px;
  margin-top:7px;
  font-weight:600}
.nav-links{
  display:flex;
  align-items:center;
  gap:30px}
.nav-links a{
  font-size:13px;
  position:relative}
.nav-links a[aria-current=page]{
  color:var(--orange-dark)}
.nav-links a[aria-current=page]:after{
  content:'';
  position:absolute;
  bottom:-12px;
  left:0;
  width:18px;
  height:2px;
  background:var(--orange)}
.nav-right{
  display:flex;
  align-items:center;
  gap:22px}
.basket-button{
  border:0;
  background:none;
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px}
.basket-button svg{
  width:21px;
  height:21px}
.basket-count{
  font-size:11px;
  background:var(--ink);
  color:white;
  border-radius:50%;
  min-width:20px;
  height:20px;
  line-height:20px}
.button{
  background:var(--orange);
  border:1px solid var(--orange);
  color:#191e22;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding:15px 23px;
  font-size:13px;
  font-weight:700;
  border-radius:2px;
  line-height:1.4;
  transition:background .2s,transform .2s}
.button:hover{
  background:#fa8b47;
  transform:translateY(-2px)}
.button.small{
  padding:12px 18px;
  font-size:12px;
  gap:20px}
.button.dark{
  background:var(--ink);
  border-color:var(--ink);
  color:white}
.button.light{
  background:white;
  border-color:white;
  color:var(--ink)}
.button.outline{
  background:transparent;
  border-color:var(--line)}
.button.wide{
  width:100%}
.button:disabled:hover{
  transform:none}
.text-link{
  display:inline-flex;
  gap:20px;
  align-items:center;
  font-weight:700;
  font-size:13px;
  border-bottom:1px solid var(--ink);
  padding:8px 0}
.text-link:hover{
  color:var(--orange-dark);
  border-color:var(--orange)}
.menu-toggle{
  display:none;
  background:none;
  border:1px solid var(--line);
  padding:7px 12px}
.eyebrow{
  font-size:10px;
  letter-spacing:2px;
  font-weight:700;
  margin:0 0 20px;
  display:flex;
  align-items:center;
  gap:10px}
.eyebrow>span{
  width:6px;
  height:6px;
  background:var(--orange)}
h1,h2,h3,p{
  margin-top:0}
h1,h2,h3{
  line-height:1.08;
  letter-spacing:-1.8px}
h1{
  font-size:clamp(56px,5.6vw,82px);
  font-weight:800;
  margin-bottom:25px}
h1 em{
  font-style:normal;
  color:var(--orange-dark)}
h2{
  font-size:clamp(32px,3vw,44px);
  font-weight:600;
  margin-bottom:22px}
h3{
  font-size:22px;
  letter-spacing:-.6px}
p{
  color:var(--muted)}
.hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:615px;
  padding-top:20px;
  padding-bottom:42px;
  gap:40px}
.hero-copy{
  padding:30px 0 0}
.hero-description{
  font-size:16px;
  line-height:1.8}
.actions{
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:30px}
.hero-foot{
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:39px}
.hero-foot p{
  font-size:11px;
  margin:0;
  line-height:1.7}
.hero-foot strong{
  color:var(--ink)}
.crosshair{
  font-size:38px;
  font-weight:400;
  line-height:1}
.hero-visual{
  background:#eceeee;
  position:relative;
  min-width:0;
  overflow:hidden;
  background-image:linear-gradient(#dde0e055 1px,transparent 1px),linear-gradient(90deg,#dde0e055 1px,transparent 1px);
  background-size:52px 52px;
  isolation:isolate}
.visual-top,.visual-bottom{
  position:absolute;
  left:26px;
  right:26px;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:1.5px;
  z-index:2}
.visual-top{
  top:25px}
.visual-bottom{
  bottom:22px;
  align-items:center}
.hero-product{
  position:absolute;
  inset:45px 10% 55px;
  width:80%;
  height:calc(100% - 100px);
  object-fit:contain;
  mix-blend-mode:multiply;
  filter:drop-shadow(10px 18px 10px #18232612)}
.precision-ring{
  position:absolute;
  inset:100px 35px;
  border:1px solid #c5cbcc;
  border-radius:50%;
  z-index:-1}
.precision-ring:before,.precision-ring:after{
  content:'';
  position:absolute;
  inset:30px;
  border:1px dashed #c5cbcc;
  border-radius:50%}
.precision-ring:after{
  inset:65px}
.instrument-label{
  position:absolute;
  bottom:72px;
  left:26px;
  font-weight:700;
  font-size:12px;
  line-height:1.5;
  letter-spacing:1px}
.instrument-label small{
  font-size:9px;
  font-weight:400}
.hero-product-link{
  position:absolute;
  right:25px;
  bottom:67px;
  background:var(--orange);
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  font-size:26px}
.hero-dots{
  display:flex;
  gap:6px}
.hero-dots button{
  width:23px;
  height:18px;
  padding:0;
  border:0;
  background:transparent;
  position:relative}
.hero-dots button:after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:8px;
  height:3px;
  background:#b3b7b8}
.hero-dots .active:after{
  background:var(--orange-dark)}
.benefits{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-block:1px solid var(--line);
  padding-block:24px;
  gap:20px}
.benefits>div{
  display:flex;
  align-items:start;
  gap:15px}
.benefits>div>span{
  font-size:10px;
  color:var(--orange-dark);
  padding-top:4px}
.benefits p{
  margin:0;
  font-size:12px}
.benefits strong{
  color:var(--ink);
  font-weight:600}
.benefits small{
  display:block;
  font-size:10px;
  margin-top:3px}
.section{
  padding-block:82px}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:32px}
.section-head h2{
  margin:0}
.section-head .eyebrow{
  margin-bottom:12px}
.section-note{
  font-size:13px;
  margin:0}
.category-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px}
.category-card{
  background:var(--soft);
  padding:23px;
  transition:background .2s}
.category-card:hover{
  background:#e6edf2}
.category-card>span{
  font-size:8px;
  letter-spacing:1.3px}
.category-card img{
  width:100%;
  height:175px;
  object-fit:contain;
  mix-blend-mode:multiply;
  margin:20px 0}
.category-card>div{
  display:flex;
  justify-content:space-between;
  align-items:end}
.category-card h3{
  font-size:20px;
  line-height:1.25;
  margin:0}
.category-card b{
  font-size:22px;
  font-weight:400}
.feature-section{
  background:#f0f3f5;
  padding-block:70px}
.product-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px}
.product-card{
  background:white;
  min-width:0;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column}
.product-image{
  width:100%;
  height:220px;
  border:0;
  background:#fff;
  padding:24px;
  overflow:hidden;
  position:relative}
.product-image img{
  height:100%;
  width:100%;
  object-fit:contain;
  transition:transform .25s}
.product-image:hover img{
  transform:scale(1.06)}
.product-info{
  padding:20px;
  display:flex;
  flex-direction:column;
  flex:1;
  border-top:1px solid #f0f1f1}
.product-category{
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:1.1px;
  color:var(--muted);
  margin-bottom:9px}
.product-name{
  border:0;
  padding:0;
  background:none;
  text-align:left;
  color:var(--ink);
  font-size:15px;
  font-weight:600;
  line-height:1.5;
  margin-bottom:15px}
.product-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:auto}
.price{
  font-size:15px;
  font-weight:700;
  white-space:nowrap}
.add-button{
  background:var(--soft);
  border:1px solid var(--line);
  height:35px;
  min-width:35px;
  font-size:22px}
.add-button:hover{
  background:var(--orange);
  border-color:var(--orange)}
.expertise{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center}
.field-photo{
  height:580px;
  position:relative}
.field-photo>img{
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:58%}
.photo-caption{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:75px 32px 32px;
  background:linear-gradient(transparent,#142b40e6);
  color:white}
.photo-caption span{
  font-size:9px;
  letter-spacing:1.5px}
.photo-caption b{
  display:block;
  font-size:29px;
  line-height:1.2;
  margin-top:14px;
  font-weight:500}
.expertise-copy>p{
  max-width:420px}
.service-row{
  display:flex;
  gap:20px;
  border-top:1px solid var(--line);
  padding:18px 0}
.service-row>span{
  font-size:10px;
  color:var(--orange-dark)}
.service-row h3{
  font-size:17px;
  margin:0 0 7px;
  letter-spacing:-.3px}
.service-row p{
  font-size:12px;
  margin:0}
.catalogue-banner{
  background:var(--ink);
  color:white;
  display:flex;
  justify-content:space-between;
  gap:60px;
  padding:55px 65px;
  overflow:hidden}
.catalogue-banner p{
  color:#c1c7cc}
.catalogue-banner .eyebrow{
  color:#fa9353}
.catalogue-banner>div:first-child{
  max-width:470px}
.catalogue-art{
  background:var(--orange);
  color:var(--ink);
  width:275px;
  flex-shrink:0;
  padding:30px;
  transform:rotate(7deg) translateY(26px);
  box-shadow:-15px 15px 0 #ffffff12}
.catalogue-art>span{
  font-weight:900;
  font-size:25px;
  line-height:.9;
  display:block;
  letter-spacing:1px}
.catalogue-art small{
  font-size:8px;
  letter-spacing:3px}
.catalogue-art>div{
  font-size:56px;
  line-height:1;
  font-weight:900;
  letter-spacing:-2px;
  padding:25px 0}
.catalogue-art p{
  font-size:8px;
  color:var(--ink);
  display:flex;
  justify-content:space-between;
  border-top:1px solid #20272d55;
  padding-top:13px}
.final-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.final-cta h2{
  margin-bottom:12px}
.final-cta p{
  margin-bottom:0}
.final-cta .eyebrow{
  margin-bottom:15px}
.footer{
  background:#192026;
  color:white;
  padding:55px 0 22px}
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr .8fr 1fr 1.3fr;
  gap:50px}
.footer .brand{
  margin-bottom:20px}
.footer p,.footer a:not(.brand){
  font-size:12px;
  color:#c0c7cc}
.footer h3{
  font-size:13px;
  letter-spacing:0;
  margin-bottom:20px}
.footer-links{
  display:flex;
  flex-direction:column;
  gap:10px}
.footer-bottom{
  border-top:1px solid #ffffff22;
  margin-top:40px;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  color:#a1abb3}
.page-heading{
  padding:48px 0 40px;
  background:var(--soft);
  border-block:1px solid var(--line)}
.breadcrumb{
  font-size:11px;
  color:var(--muted);
  margin-bottom:24px}
.breadcrumb span{
  margin-inline:10px}
.page-heading h1{
  font-size:56px;
  margin-bottom:18px}
.page-heading p{
  max-width:610px;
  margin-bottom:0}
.page-heading .eyebrow{
  margin-bottom:12px}
.shop-layout{
  display:grid;
  grid-template-columns:225px 1fr;
  gap:35px;
  padding-block:45px 70px}
.shop-sidebar h2{
  font-size:12px;
  letter-spacing:1.3px;
  text-transform:uppercase}
.filter-list{
  display:flex;
  flex-direction:column;
  gap:4px}
.filter-list button{
  display:flex;
  justify-content:space-between;
  text-align:left;
  gap:10px;
  padding:12px;
  border:0;
  background:transparent;
  font-size:12px;
  color:var(--muted);
  line-height:1.45}
.filter-list button.active{
  background:#fff0e5;
  color:#963b08;
  font-weight:700;
  border-left:2px solid var(--orange)}
.filter-list button:hover{
  background:var(--soft)}
.sidebar-note{
  background:var(--ink);
  color:white;
  padding:23px;
  margin-top:30px}
.sidebar-note h3{
  font-size:22px}
.sidebar-note p{
  color:#c2c9ce;
  font-size:12px}
.sidebar-note a{
  font-size:12px;
  color:#ffa56e}
.shop-toolbar{
  display:flex;
  gap:15px;
  margin-bottom:20px}
.search-field{
  position:relative;
  flex:1}
.search-field span{
  position:absolute;
  left:16px;
  top:11px;
  font-size:20px}
.search-field input{
  padding-left:43px}
.shop-toolbar select{
  max-width:210px}
.input,input:not([type=checkbox]),select,textarea{
  background:white;
  border:1px solid #cdd2d5;
  border-radius:2px;
  padding:12px 14px;
  width:100%;
  color:var(--ink);
  min-height:46px}
.search-field input{
  padding-left:43px}
.results-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  font-size:11px;
  color:var(--muted);
  margin-bottom:20px}
.reset-button{
  border:0;
  background:none;
  text-decoration:underline;
  font-size:11px;
  padding:8px}
.shop-products{
  grid-template-columns:repeat(3,minmax(0,1fr))}
.empty-state{
  grid-column:1/-1;
  padding:60px 25px;
  background:var(--soft);
  text-align:center}
.empty-state h3{
  font-size:25px}
.shop-disclaimer{
  font-size:11px;
  margin:26px 0 0}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px}
.service-card{
  border:1px solid var(--line);
  padding:32px;
  display:flex;
  flex-direction:column}
.service-card>span{
  font-size:12px;
  color:var(--orange-dark);
  margin-bottom:40px}
.service-card h2{
  font-size:27px}
.service-card p{
  font-size:14px}
.service-card a{
  margin-top:auto;
  align-self:start}
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center}
.split img{
  width:100%;
  height:460px;
  object-fit:cover}
.split .eyebrow{
  color:var(--orange-dark)}
.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px}
.steps>div{
  border-top:1px solid var(--line);
  padding-top:25px}
.steps span{
  color:var(--orange-dark);
  font-size:12px}
.steps h3{
  margin-top:20px}
.steps p{
  font-size:14px}
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:90px}
.contact-details>div{
  padding:22px 0;
  border-bottom:1px solid var(--line)}
.contact-details h3{
  font-size:16px;
  letter-spacing:0;
  margin-bottom:12px}
.contact-details p{
  font-size:14px;
  margin:0}
.contact-form{
  background:var(--soft);
  padding:36px}
.contact-form h2{
  font-size:30px}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px}
.form-field{
  margin-bottom:18px}
.form-field label{
  display:block;
  font-size:12px;
  font-weight:600;
  margin-bottom:7px}
.form-field textarea{
  resize:vertical;
  min-height:120px}
.form-note{
  font-size:11px;
  margin:16px 0 0}
.form-response{
  border:1px solid var(--line);
  background:white;
  padding:20px;
  margin-top:20px}
.form-response p{
  font-size:13px}
.form-response .actions{
  margin-top:10px;
  flex-wrap:wrap}
.faq{
  max-width:850px}
.faq details{
  border-top:1px solid var(--line);
  padding:20px 0}
.faq summary{
  font-weight:600;
  cursor:pointer}
.faq details p{
  padding-top:15px;
  font-size:14px;
  margin:0}
dialog{
  border:0;
  border-radius:5px;
  padding:0;
  max-height:90vh;
  max-width:calc(100% - 30px);
  color:var(--ink);
  box-shadow:0 25px 100px #0004}
dialog::backdrop{
  background:#101b27aa;
  backdrop-filter:blur(3px)}
.dialog-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px 26px;
  border-bottom:1px solid var(--line);
  gap:15px}
.dialog-heading h2{
  font-size:24px;
  letter-spacing:-.7px;
  margin:0}
.close-button{
  border:1px solid var(--line);
  background:white;
  width:37px;
  height:37px;
  font-size:23px;
  flex-shrink:0}
.product-dialog{
  width:880px}
.product-detail{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:30px;
  padding:30px;
  align-items:center}
.product-detail>img{
  width:100%;
  height:310px;
  object-fit:contain}
.product-detail h2{
  font-size:29px;
  line-height:1.2}
.product-detail p{
  font-size:13px}
.product-detail .price{
  font-size:23px;
  display:block;
  margin:20px 0}
.cart-dialog{
  width:600px}
.cart-content{
  padding:25px}
.cart-row{
  display:grid;
  grid-template-columns:65px 1fr auto;
  gap:18px;
  border-bottom:1px solid var(--line);
  padding:17px 0;
  align-items:center}
.cart-row img{
  width:65px;
  height:65px;
  object-fit:contain}
.cart-row h3{
  font-size:13px;
  line-height:1.4;
  letter-spacing:0;
  margin-bottom:7px}
.cart-row .price{
  font-size:12px}
.quantity{
  display:flex;
  align-items:center;
  gap:10px}
.quantity button{
  width:28px;
  height:30px;
  background:var(--soft);
  border:1px solid var(--line)}
.remove-item{
  background:none;
  border:0;
  text-decoration:underline;
  font-size:10px;
  padding:5px 0;
  color:var(--muted)}
.cart-total{
  display:flex;
  justify-content:space-between;
  font-size:19px;
  margin-top:25px}
.cart-note{
  font-size:11px}
.cart-content .actions{
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px}
.toast{
  position:fixed;
  bottom:22px;
  left:50%;
  transform:translateX(-50%);
  background:var(--ink);
  color:white;
  padding:12px 22px;
  border-radius:4px;
  font-size:13px;
  z-index:99;
  max-width:calc(100% - 30px);
  box-shadow:0 6px 25px #0002}
.toast:empty{
  display:none}
[hidden]{
  display:none!important}
body.modal-open{
  overflow:hidden}
@media(min-width:1500px){
  .hero{
    min-height:655px}
  .hero-copy{
    padding-top:40px}
}
@media(max-width:1100px){
  .wrap{
    width:calc(100% - 56px)}
  .nav-links{
    gap:18px}
  .nav-right{
    gap:10px}
  .nav-right>.button{
    display:none}
  .hero{
    gap:20px;
    min-height:570px}
  h1{
    font-size:64px}
  .hero-foot{
    margin-top:28px}
  .hero-description{
    font-size:14px}
  .expertise{
    gap:45px}
  .category-card{
    padding:18px}
  .product-grid{
    gap:14px}
  .product-info{
    padding:15px}
  .product-image{
    height:185px}
  .shop-layout{
    grid-template-columns:190px 1fr;
    gap:25px}
  .shop-products{
    grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{
    gap:30px}
  .contact-layout{
    gap:40px}
}
@media(max-width:760px){
  .wrap{
    width:calc(100% - 36px)}
  .topbar .wrap{
    height:30px;
    font-size:9px}
  .topbar .topbar-email{
    display:none}
  .topbar a{
    margin-left:5px}
  .site-nav{
    height:79px;
    gap:12px}
  .brand img{
    width:53px;
    height:48px}
  .brand{
    gap:8px}
  .brand-type{
    font-size:20px}
  .brand-type small{
    font-size:7px;
    letter-spacing:2px}
  .menu-toggle{
    display:block}
  .nav-links{
    display:none;
    position:absolute;
    top:109px;
    left:0;
    right:0;
    background:white;
    z-index:10;
    padding:25px;
    border-bottom:1px solid var(--line);
    box-shadow:0 10px 20px #0001;
    flex-direction:column;
    align-items:stretch;
    gap:22px}
  .nav-links.open{
    display:flex}
  .nav-links a[aria-current=page]:after{
    display:none}
  .nav-right{
    gap:5px}
  .basket-button{
    padding:5px}
  .hero{
    grid-template-columns:1fr;
    gap:30px;
    padding-top:0;
    padding-bottom:30px}
  .hero-copy{
    padding-top:28px}
  .eyebrow{
    font-size:9px;
    letter-spacing:1.4px;
    margin-bottom:18px}
  h1{
    font-size:62px;
    letter-spacing:-2.5px}
  .hero-description{
    font-size:15px}
  .actions{
    gap:25px;
    margin-top:22px}
  .button{
    padding:14px 18px;
    gap:20px}
  .hero-foot{
    margin-top:26px}
  .hero-visual{
    height:440px}
  .hero-product{
    inset:45px 10% 55px}
  .benefits{
    grid-template-columns:1fr 1fr;
    gap:22px 14px;
    padding-block:24px}
  .benefits>div{
    gap:9px}
  .benefits p{
    font-size:11px}
  .benefits small{
    font-size:9px}
  .section{
    padding-block:52px}
  .section-head{
    align-items:start;
    margin-bottom:25px}
  .section-head h2{
    font-size:31px}
  .section-head>.text-link{
    max-width:95px;
    font-size:11px;
    flex-shrink:0}
  .section-note{
    display:none}
  .category-grid{
    grid-template-columns:1fr 1fr;
    gap:12px}
  .category-card{
    padding:17px}
  .category-card>span{
    font-size:7px;
    letter-spacing:.5px}
  .category-card img{
    height:135px;
    margin:14px 0}
  .category-card h3{
    font-size:17px}
  .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px}
  .product-image{
    height:160px;
    padding:18px}
  .product-info{
    padding:13px}
  .product-name{
    font-size:12px}
  .price{
    font-size:12px}
  .product-category{
    font-size:7px;
    letter-spacing:.5px}
  .add-button{
    min-width:30px;
    height:30px}
  .feature-section{
    padding-block:45px}
  .expertise{
    grid-template-columns:1fr;
    gap:35px}
  .field-photo{
    height:390px}
  .expertise-copy h2{
    font-size:37px}
  .catalogue-banner{
    padding:32px;
    gap:15px;
    display:block}
  .catalogue-banner h2{
    font-size:35px}
  .catalogue-banner p{
    font-size:13px}
  .catalogue-art{
    display:none}
  .final-cta{
    display:block}
  .final-cta>.button{
    margin-top:25px}
  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:35px 25px}
  .footer-grid>div:first-child{
    grid-column:1/-1}
  .footer-bottom{
    gap:15px;
    flex-wrap:wrap}
  .page-heading{
    padding-block:32px}
  .page-heading h1{
    font-size:42px}
  .page-heading p{
    font-size:14px}
  .shop-layout{
    display:block;
    padding-top:25px}
  .shop-sidebar h2{
    margin-bottom:10px}
  .filter-list{
    flex-direction:row;
    overflow-x:auto;
    padding-bottom:12px;
    margin-bottom:20px}
  .filter-list button{
    white-space:nowrap;
    align-items:center;
    font-size:11px;
    border:1px solid var(--line);
    padding:9px 12px}
  .filter-list button.active{
    border:1px solid var(--orange)}
  .sidebar-note{
    display:none}
  .shop-toolbar{
    gap:10px;
    flex-wrap:wrap}
  .search-field{
    flex-basis:100%}
  .shop-toolbar select{
    max-width:none;
    font-size:12px}
  .service-grid{
    grid-template-columns:1fr}
  .service-card>span{
    margin-bottom:25px}
  .split{
    grid-template-columns:1fr;
    gap:30px}
  .split img{
    height:330px}
  .steps{
    grid-template-columns:1fr;
    gap:22px}
  .contact-layout{
    grid-template-columns:1fr;
    gap:35px}
  .contact-form{
    padding:24px}
  .form-grid{
    grid-template-columns:1fr;
    gap:0}
  .product-detail{
    grid-template-columns:1fr;
    padding:25px;
    gap:15px}
  .product-detail>img{
    height:190px}
  .product-detail h2{
    font-size:25px}
  .dialog-heading{
    padding:17px 20px}
  .dialog-heading h2{
    font-size:20px}
  .cart-content{
    padding:18px}
  .cart-row{
    grid-template-columns:45px 1fr auto;
    gap:10px}
  .cart-row img{
    width:45px;
    height:55px}
  .quantity{
    gap:7px}
  .cart-row h3{
    font-size:12px}
  .toast{
    font-size:11px;
    width:max-content;
    text-align:center}
  .photo-caption b{
    font-size:27px}
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto}
  *,*:before,*:after{
    transition:none!important;
    animation:none!important}
}
/* Brand refinement: one original logo, generous spacing and readable mobile controls. */
.site-nav{
  height:130px}
.brand{
  line-height:0}
.brand img{
  width:124px;
  height:110px;
  object-fit:contain}
.footer .brand{
  width:max-content;
  background:#fff;
  padding:12px 18px;
  border-radius:4px}
.footer .brand img{
  width:132px;
  height:112px}
.hero-copy h1{
  font-weight:800;
  letter-spacing:-3.6px;
  font-size:clamp(56px,5.1vw,74px)}
.hero-description{
  max-width:470px}
.nav-links a{
  font-weight:500}
.nav-links a[aria-current=page]{
  font-weight:700}
.menu-toggle,.basket-button{
  min-width:44px;
  min-height:44px}
.add-button{
  min-width:44px;
  min-height:44px}
.product-name{
  overflow-wrap:anywhere}
.product-bottom{
  flex-wrap:wrap}
.hero-dots button{
  min-width:30px;
  min-height:32px}
.hero-dots button:after{
  top:15px}
.shop-toolbar input[type=search]::-webkit-search-cancel-button{
  cursor:pointer}
.quantity button{
  width:36px;
  height:40px}
.close-button{
  width:44px;
  height:44px}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--orange)}
@media(max-width:1100px){
  .nav-links{
    gap:22px}
  .site-nav{
    gap:20px}
  .hero-copy h1{
    font-size:60px}
}
@media(max-width:760px){
  .site-nav{
    height:112px}
  .brand img{
    width:105px;
    height:94px}
  .nav-links{
    top:142px}
  .hero-copy h1{
    font-size:clamp(45px,12.5vw,62px);
    letter-spacing:-2.6px}
  .product-bottom{
    gap:8px}
  .product-bottom .price{
    font-size:11px}
  .product-category{
    font-size:8px}
  .hero-description{
    font-size:14px}
  .topbar .wrap{
    font-size:8px}
  .results-bar{
    align-items:start}
  .hero .actions{
    gap:18px;
    flex-wrap:wrap}
  .footer-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer a{
    overflow-wrap:anywhere}
}

/* Image-led service cards: full-width photography and uncropped equipment. */
.service-card {
  padding: 0;
  overflow: hidden;
}
.service-card-media {
  aspect-ratio: 16 / 10;
  background: var(--soft);
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
.service-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-card-media.instrument img {
  object-fit: contain;
  padding: 24px;
  mix-blend-mode: multiply;
}
.service-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 28px;
}
.service-card-body > span {
  font-size: 10px;
  letter-spacing: 1.3px;
  color: var(--orange-dark);
  margin-bottom: 22px;
}
.service-card-body h2 {
  font-size: 25px;
  line-height: 1.2;
}
.service-card-body .text-link {
  padding-top: 12px;
}
@media (min-width: 761px) and (max-width: 1000px) {
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .service-card-body { padding: 25px; }
  .service-card-media { aspect-ratio: 16 / 9; }
}

/* Field photography, restrained surfaces and clear shopping actions. */
:root { --soft:#f0f3f5; --ink:#142b40; --muted:#5d6b78; --line:#dce3e8; }
.site-nav { height:112px; }
.brand img { width:110px; height:96px; }
.products-nav { position:relative; }
.products-nav-heading { display:flex; align-items:center; gap:3px; }
.category-toggle { border:0; background:transparent; width:36px; height:44px; padding:0; display:grid; place-items:center; color:var(--ink); border-radius:4px; transition:color .2s,background .2s; }
.category-toggle svg { display:block; transition:transform .2s ease; }
.category-toggle:hover,.category-toggle[aria-expanded="true"] { color:var(--orange-dark); background:#ed702810; }
.category-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.products-menu { position:absolute; left:-24px; top:calc(100% + 12px); width:330px; padding:12px; background:white; border:1px solid var(--line); box-shadow:0 15px 40px #142b4020; z-index:30; }
.products-menu a { display:flex; justify-content:space-between; gap:15px; padding:12px; font-size:12px; }
.products-menu a:hover { background:var(--soft); color:var(--orange-dark); }
.products-menu a:first-child { border-bottom:1px solid var(--line); font-weight:700; }
.service-hero { min-height:650px; padding-top:20px; padding-bottom:48px; gap:48px; align-items:stretch; }
.service-hero .hero-copy { display:flex; flex-direction:column; justify-content:center; padding-block:25px; }
.service-hero .hero-copy h1 { font-weight:600; font-size:clamp(48px,5vw,72px); line-height:1.05; letter-spacing:-3.7px; }
.service-hero .hero-description { font-size:15px; }
.service-hero .hero-foot { margin-top:35px; }
.people-visual { background:#a0a49b; min-height:560px; }
.people-visual>img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:54% 40%; }
.hero-photo-caption { position:absolute; inset:auto 0 0; padding:85px 32px 28px; color:#fff; background:linear-gradient(transparent,#142b40ed); }
.hero-photo-caption>span { font-size:9px; letter-spacing:2px; }
.hero-photo-caption h2 { font-size:32px; line-height:1.12; margin:16px 0 22px; letter-spacing:-1px; }
.hero-photo-caption a { display:flex; justify-content:space-between; border-top:1px solid #ffffff60; padding-top:16px; font-size:12px; }
.category-card { background:#f0f3f5; }
.product-card { border-color:#dfe5ea; transition:border-color .2s,box-shadow .2s; }
.product-card:hover { border-color:#aebdca; box-shadow:0 6px 22px #142b4009; }
.product-name { margin-bottom:10px; }
.product-excerpt { font-size:11px; line-height:1.7; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:20px; }
.product-bottom { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
.details-button { background:none; border:0; padding:0; color:var(--muted); text-align:left; font-size:11px; width:max-content; }
.add-button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:44px; font-size:12px; font-weight:600; padding:10px 13px; background:var(--ink); border-color:var(--ink); color:white; }
.add-button span { font-size:18px; font-weight:400; }
.add-button:hover { color:var(--ink); }
.filter-list a { display:flex; justify-content:space-between; gap:12px; padding:12px 0; font-size:12px; border-bottom:1px solid var(--line); }
.filter-list a.active { color:var(--orange-dark); font-weight:700; }
.filter-list a:hover { color:var(--orange-dark); }
.detail-visual>img { width:100%; height:300px; object-fit:contain; }
.product-detail { align-items:start; }
.dialog-heading { position:sticky; top:0; background:white; z-index:2; }
.specification-copy { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.specification-copy h3 { font-size:20px; letter-spacing:-.5px; }
.specification-copy p { font-size:13px; line-height:1.8; border-bottom:1px solid #ededeb; padding-bottom:12px; }
.cart-reference { font-size:10px; color:var(--muted); }
.cart-total>span { font-size:12px; color:var(--muted); }
.whatsapp-checkout { background:#215c43; border-color:#215c43; color:#fff; margin-top:15px; }
.whatsapp-checkout:hover { background:#174a34; }
.checkout-number { text-align:center; font-size:12px; margin:10px 0 20px; }
.section-intro { max-width:850px; color:var(--muted); font-size:15px; line-height:1.9; margin:0 0 36px; }
.hire-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.hire-item { background:var(--paper); border:1px solid var(--line); padding:30px; display:flex; flex-direction:column; align-items:start; }
.hire-item .eyebrow { font-size:9px; letter-spacing:1px; line-height:1.8; }
.hire-item h3 { font-size:23px; line-height:1.35; margin:12px 0; }
.hire-item p { font-size:13px; line-height:1.8; color:var(--muted); margin:0 0 24px; }
.hire-item .text-link { margin-top:auto; font-size:12px; }
.hire-note { font-size:12px; color:var(--muted); line-height:1.8; margin:26px 0 0; }
.gallery-heading { font-size:25px; margin:44px 0 10px; }
.gallery-intro { color:var(--muted); font-size:14px; margin:0 0 24px; }
.testing-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.testing-gallery figure { margin:0; min-width:0; border:1px solid var(--line); background:var(--paper); }
.testing-gallery figure a { display:block; background:var(--soft); }
.testing-gallery img { display:block; width:100%; height:320px; object-fit:contain; }
.testing-gallery figcaption { padding:18px 20px; font-size:12px; line-height:1.7; }
.testing-gallery a:hover { outline:2px solid var(--orange); outline-offset:-2px; }
.home-hire { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.home-hire p:last-child { max-width:760px; font-size:14px; line-height:1.9; color:var(--muted); }
.home-hire .button { flex-shrink:0; }
@media(max-width:1000px) {
 .hire-grid,.testing-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-hire { flex-direction:column; align-items:start; }
}
@media(max-width:760px) {
 .hire-grid,.testing-gallery { grid-template-columns:1fr; }
 #equipment-hire .section-head,#soil-testing .section-head { flex-direction:column; align-items:start; }
 #equipment-hire .section-head>.text-link,#soil-testing .section-head>.text-link { max-width:none; font-size:12px; }
 .hire-item { padding:25px; }
 .testing-gallery img { height:auto; max-height:420px; }
 .section-intro { font-size:14px; }
}
.service-card-media { aspect-ratio:16 / 10; }
.page-heading h1 { max-width:1000px; }
@media(max-width:1100px) {
 .service-hero { gap:30px; min-height:590px; }
 .service-hero .hero-copy h1 { font-size:54px; letter-spacing:-2.5px; }
 .service-hero .actions { flex-wrap:wrap; gap:15px; }
 .people-visual { min-height:520px; }
}
@media(max-width:760px) {
 .site-nav { height:100px; }
 .brand img { width:96px; height:84px; }
 .nav-links { top:130px; max-height:calc(100dvh - 130px); overflow-y:auto; }
 .products-nav-heading { justify-content:space-between; }
 .category-toggle { width:44px; }
 .products-menu { position:static; box-shadow:none; border:0; border-left:2px solid var(--orange); width:100%; margin-top:8px; padding:0 0 0 8px; }
 .products-menu a { font-size:12px; padding:11px 8px; }
 .service-hero { padding-top:0; gap:20px; padding-bottom:28px; }
 .service-hero .hero-copy h1 { font-size:clamp(42px,11vw,60px); letter-spacing:-2.5px; }
 .service-hero .hero-copy { padding-top:30px; }
 .service-hero .hero-description { font-size:14px; }
 .people-visual { min-height:440px; height:440px; }
 .hero-photo-caption { padding:70px 24px 24px; }
 .hero-photo-caption h2 { font-size:29px; }
 .filter-list a { white-space:nowrap; align-items:center; border:1px solid var(--line); padding:10px 12px; font-size:11px; }
 .filter-list a.active { border-color:var(--orange); }
 .product-excerpt { -webkit-line-clamp:2; font-size:10px; }
 .add-button { font-size:11px; padding:9px 10px; }
 .detail-visual>img { height:220px; }
}
/* October: visible hiring paths and consistent conversion controls. */
:root{--ink:#142b40;--soft:#f0f3f5;--radius:10px}
body{background:#fafaf7}h1,h2{font-weight:600;letter-spacing:-1.8px}p{line-height:1.8}
#site-header{position:sticky;top:0;z-index:40;background:#ffffffed;backdrop-filter:blur(16px);box-shadow:0 1px 0 #142b4015}
.site-nav{height:96px}.brand img{height:82px;width:94px}.nav-links{gap:22px}.nav-links a{font-size:12px}.button{border-radius:6px;min-height:46px}.nav-right{gap:12px}
.service-hero{padding-top:32px;min-height:590px}.people-visual{border-radius:12px;min-height:510px}.hero-copy .actions{flex-wrap:wrap}
.hire-showcase{background:#142b40;padding:70px 0;color:white;scroll-margin-top:145px}.hire-showcase h2{font-size:clamp(34px,3.8vw,52px);line-height:1.08}.hire-showcase .eyebrow{color:#ffae79}.hire-showcase p{color:#c5d1dc}.hire-showcase .section-head{align-items:center;gap:60px}.hire-intro{max-width:400px}.hire-intro p{font-size:14px}.hire-collection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:36px 0 46px}.hire-choice{background:white;color:var(--ink);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.hire-image{height:180px;background:#f0f3f5;position:relative;padding:20px}.hire-image img{width:100%;height:100%;object-fit:contain}.hire-image small{position:absolute;bottom:4px;left:0;width:100%;text-align:center;font-size:8px;color:#5d6b78}.hire-choice-body{padding:20px;display:flex;flex-direction:column;flex:1}.hire-choice-body>span{font-size:9px;letter-spacing:1px;color:#5d6b78;text-transform:uppercase}.hire-choice h3{font-size:20px;line-height:1.25;letter-spacing:-.5px;margin:12px 0}.hire-choice p{font-size:12px;color:#5d6b78;margin-bottom:20px}.hire-select{margin-top:auto;border:0;border-top:1px solid #dce3e8;background:transparent;color:#142b40;padding:14px 0 0;text-align:left;display:flex;justify-content:space-between;font-weight:600;font-size:11px;gap:8px}.hire-select:hover{color:var(--orange-dark)}
.hire-request{border:1px solid #ffffff26;background:#ffffff06;padding:32px;border-radius:12px;display:grid;grid-template-columns:1fr 1.6fr;gap:45px;scroll-margin-top:155px}.hire-request h3{font-size:28px;line-height:1.2}.hire-request p{font-size:12px}.hire-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hire-fields label{font-size:11px;color:#e2e9ef;display:flex;flex-direction:column;gap:7px}.hire-fields label span{display:inline;color:#bccbd7}.hire-fields input,.hire-fields select{width:100%;min-width:0;background:white;border:1px solid #dce3e8;padding:12px;border-radius:5px;color:#142b40;font-size:13px;min-height:46px}.hire-wide{grid-column:1/-1}.hire-fields .button{justify-content:space-between}.hire-fields #hire-response:empty{display:none}
.page-heading{background:linear-gradient(120deg,#edf2f6,#fafaf7);border-bottom:1px solid #dce3e8}.page-heading h1{font-size:clamp(38px,4.4vw,62px)}.product-card,.category-card,.service-card{border-radius:10px;overflow:hidden}.product-card{box-shadow:0 5px 22px #142b4008}.product-image{background:#f0f3f5}.product-info{padding:22px}.product-name{font-size:15px}.product-excerpt{font-size:12px}.add-button{border-radius:5px}.category-card:hover{transform:translateY(-3px)}.category-card{transition:transform .2s,background .2s}.filter-list a{border-radius:5px;padding-inline:10px}.filter-list a.active{background:#e8eef3}.shop-sidebar{align-self:start}.shop-toolbar{padding:15px;background:#f0f3f5;border-radius:9px}.contact-form{border-radius:12px}.form-field input,.form-field select,.form-field textarea{border-radius:5px}.catalogue-banner{border-radius:14px}.field-photo{overflow:hidden;border-radius:10px}.split>img{border-radius:10px}.footer{background:#0e2030}.floating-contact{position:fixed;right:22px;bottom:20px;z-index:35;display:flex;align-items:center;gap:12px;background:#215c43;color:white;border:1px solid #ffffff40;border-radius:30px;padding:13px 20px;box-shadow:0 5px 20px #142b4030;font-size:12px;font-weight:600}.floating-contact span{font-size:20px}.modal-open .floating-contact{display:none}.pole-options{border:0;padding:0;margin:20px 0}.pole-options legend{font-size:12px;margin-bottom:10px;font-weight:600}.pole-options button{padding:12px 16px;border:1px solid #bdcbd6;border-radius:6px;background:white;margin:0 8px 8px 0}.pole-options button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.toast{bottom:85px}
@media(min-width:1101px){.shop-sidebar{position:sticky;top:155px}}
@media(max-width:1100px){.hire-collection{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-links{gap:14px}.site-nav{gap:15px}}
@media(max-width:760px){.site-nav{height:86px}.brand img{height:72px;width:84px}.nav-links{top:116px;max-height:calc(100dvh - 116px)}.service-hero{padding-top:0}.people-visual{min-height:410px}.hire-showcase{padding:45px 0}.hire-showcase .section-head{flex-direction:column;align-items:start;gap:15px}.hire-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hire-choice:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.hire-image{height:160px;padding:16px}.hire-choice-body{padding:15px}.hire-choice h3{font-size:17px}.hire-choice p{font-size:11px}.hire-choice-body>span{font-size:8px}.hire-request{grid-template-columns:1fr;gap:20px;padding:22px}.hire-fields{grid-template-columns:1fr}.hire-request h3{font-size:25px}.product-info{padding:14px}.product-name{font-size:12px}.product-excerpt{font-size:11px}.floating-contact{right:14px;bottom:12px;padding:10px 15px;font-size:11px}.footer{padding-bottom:90px}.page-heading h1{font-size:38px}.topbar .wrap>span{max-width:58%;font-size:8px}.section-head{flex-wrap:wrap}}


/* Medir brand palette: navy structure, orange actions, quiet neutral surfaces. */
:root {
  --ink:#142b40;
  --muted:#5d6b78;
  --paper:#fff;
  --soft:#f0f3f5;
  --line:#dce3e8;
  --orange:#ed7028;
  --orange-dark:#a8430c;
  --page:#fafaf7;
  --navy-deep:#0e2030;
  --whatsapp:#215c43;
}
body { background:var(--page); }
.topbar { background:var(--navy-deep); }
#site-header { background:#fffffff5; box-shadow:0 1px 0 #142b4014; }
.nav-links a:hover { color:var(--orange-dark); }
.hire-showcase { background:linear-gradient(125deg,var(--ink),#1c3b55); border-top:3px solid var(--orange); }
.hire-showcase .eyebrow { color:#ffb382; }
.hire-choice { box-shadow:0 8px 22px #06142114; }
.hire-choice-body>span { color:var(--muted); }
.hire-request { background:#ffffff08; border-color:#ffffff30; }
.hire-request .eyebrow { color:#ffb382; }
.hire-fields label { color:#e2e9ef; }
.hire-fields input:focus,.hire-fields select:focus { outline:2px solid var(--orange); outline-offset:3px; }
.category-card { border:1px solid #e4e9ed; }
.category-card:hover { background:#e8eef3; border-color:#b4c4d0; }
.product-card:hover { border-color:#9eafbe; box-shadow:0 9px 26px #142b400d; }
.product-image { background:#f5f7f8; }
.add-button { background:var(--ink); border-color:var(--ink); }
.add-button:hover { background:var(--orange); border-color:var(--orange); color:var(--ink); }
.button:not(.dark):not(.light):not(.whatsapp-checkout) { color:var(--ink); }
.button.dark:hover { background:#24445f; border-color:#24445f; }
.button.light:hover { background:#edf2f6; border-color:#edf2f6; }
.hire-fields .button.light { color:var(--ink); }
.page-heading { background:linear-gradient(115deg,#edf2f6 0%,var(--page) 85%); }
.catalogue-banner { background:var(--ink); border:1px solid #29465d; }
.catalogue-banner .eyebrow { color:#ffb382; }
.catalogue-banner p { color:#c5d1dc; }
.catalogue-art p { color:var(--ink); }
.footer { background:var(--navy-deep); border-top:1px solid #29465d; }
.footer a:hover { color:#ffb382; }
.floating-contact,.whatsapp-checkout { background:var(--whatsapp); color:#fff; }
.floating-contact:hover,.whatsapp-checkout:hover { background:#174a34; }
::selection { background:#f9d2b9; color:var(--ink); }

/* Owner-supplied field photography: retain equipment and people in the frame. */
.people-visual>img[src*="fieldwork/"] { object-position:50% 28%; }
.field-photo>img[src*="fieldwork/"] { object-position:45% 42%; }
.hire-image.field-equipment { padding:10px; background:#edf1f3; }
.hire-image.field-equipment img { object-fit:contain; border-radius:4px; }
.service-card-media.documentary { margin:0; aspect-ratio:auto; background:var(--soft); }
.service-card-media.documentary img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }
.service-card-media.documentary.portrait img { object-fit:contain; }
.service-card-media.documentary img[src$="survey-tripod-setup.webp"] { object-fit:contain; }
.service-card-media.documentary figcaption { padding:12px 18px; background:#fff; color:var(--muted); font-size:10px; line-height:1.7; }
.documentary-photo { margin:0; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.documentary-photo>a { display:block; background:var(--soft); }
.documentary-photo img,.split .documentary-photo img { display:block; width:100%; height:auto; object-fit:contain; border-radius:0; }
.documentary-photo figcaption { padding:15px 20px; color:var(--muted); font-size:11px; line-height:1.7; }
.documentary-photo a:focus-visible { outline:3px solid var(--orange); outline-offset:-3px; }
.mapping-story { gap:48px; }
.field-stories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.field-stories>article { min-width:0; }
.field-stories .documentary-photo img { height:380px; object-fit:contain; }
.field-story-copy { padding:20px 4px 0; }
.field-story-copy h3 { font-size:24px; margin:0 0 12px; }
.field-story-copy p { color:var(--muted); font-size:14px; line-height:1.8; margin:0; }
@media(max-width:760px) {
 .mapping-story { gap:28px; }
 .field-stories { grid-template-columns:1fr; gap:36px; }
 .field-stories .documentary-photo img { height:auto; max-height:420px; }
 .documentary-photo figcaption { padding:13px 16px; }
}
