:root{
  --ochre:#C68F3E;
  --ochre-deep:#A97728;
  --petrol:#2F7D93;
  --petrol-deep:#1F5E70;
  --ink:#1E3D4F;
  --brick:#7A5A26;
  --slate:#AEB5BA;
  --mist:#E8EAEC;
  --paper:#FFFFFF;
  --serif:'Marcellus',Georgia,serif;
  --sans:'Mulish',Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.65;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{transition:none!important;animation:none!important;}}
img{max-width:100%;display:block;}

/* NAV */
nav{position:sticky;top:0;z-index:60;background:var(--ink);border-bottom:4px solid var(--ochre);}
.navwrap{max-width:1140px;margin:0 auto;display:flex;align-items:center;padding:0 24px;flex-wrap:wrap;}
.navlogo{display:flex;align-items:center;gap:12px;padding:12px 0;margin-right:auto;text-decoration:none;}
.navlogo svg{width:40px;height:40px;}
.navlogo .nm{font-family:var(--serif);color:#fff;font-size:16px;letter-spacing:.12em;text-transform:uppercase;line-height:1.2;}
.navlogo .nm small{display:block;font-family:var(--sans);font-size:8.5px;font-weight:700;letter-spacing:.3em;color:var(--ochre);}
nav a.lnk{color:#C8D3D9;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:20px 12px;transition:color .2s;}
nav a.lnk:hover,nav a.lnk:focus{color:var(--ochre);outline:none;}
nav a.lnk:focus-visible{outline:2px solid var(--ochre);outline-offset:-4px;}
nav a.lnk[aria-current="page"]{color:var(--ochre);box-shadow:inset 0 -4px 0 var(--ochre);}
nav a.navcta{background:var(--ochre);color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:10px 18px;margin-left:10px;transition:background .2s;}
nav a.navcta:hover{background:#D9A354;}

/* PAGE HEAD */
.pagehead{background:linear-gradient(160deg,#B9C0C5 0%,var(--slate) 60%,#98A1A7 100%);padding:70px 24px;position:relative;overflow:hidden;}
.pagehead::after{content:"";position:absolute;right:-120px;top:-120px;width:340px;height:340px;border-radius:50%;border:22px solid var(--ochre);opacity:.5;}
.pagehead .wrap{position:relative;z-index:2;}
.pagehead h1{font-family:var(--serif);font-size:clamp(32px,5vw,54px);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);line-height:1.1;}
.pagehead .kicker{font-size:13px;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--petrol-deep);margin-bottom:12px;}
.pagehead .sub{margin-top:16px;font-size:17px;max-width:640px;color:#33505f;}
.stripe{height:8px;background:linear-gradient(90deg,var(--petrol) 0 33%,var(--ochre) 33% 66%,var(--ink) 66% 100%);}

/* STRUCTURE */
section{padding:80px 24px;}
.wrap{max-width:1140px;margin:0 auto;}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--ochre-deep);margin-bottom:14px;}
h2{font-family:var(--serif);font-size:clamp(26px,4vw,40px);letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px;line-height:1.15;}
h3{font-family:var(--serif);font-size:21px;letter-spacing:.04em;margin:34px 0 10px;}
.lede{font-size:18px;max-width:740px;color:#35505f;}
p{max-width:740px;margin-bottom:14px;}
.band{background:var(--mist);}
.band-teal{background:var(--petrol);color:#DCE9EE;}
.band-teal h2,.band-teal h3{color:#fff;}
.band-teal .eyebrow{color:#F3C77C;}
.band-teal .lede,.band-teal p{color:#DCE9EE;}
.band-ink{background:var(--ink);color:#C3CFD6;}
.band-ink h2,.band-ink h3{color:#fff;}
.band-ink .eyebrow{color:var(--ochre);}
.band-ink .lede,.band-ink p{color:#C3CFD6;}
.grid{display:grid;gap:22px;margin-top:34px;}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}
.card{background:#fff;border:1px solid #D8DDE1;padding:28px;}
.card h4{font-family:var(--serif);font-size:17px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;color:var(--petrol-deep);}
.card p{font-size:14.5px;margin-bottom:0;}
.band-teal .card{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.22);}
.band-teal .card h4{color:var(--ochre);}
.band-teal .card p{color:#DCE9EE;}

/* BUTTONS */
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:15px 28px;transition:background .2s;border:none;cursor:pointer;}
.btn:hover{background:var(--petrol-deep);}
.btn.gold{background:var(--ochre);color:var(--ink);}
.btn.gold:hover{background:#D9A354;}
.btnrow{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap;}

/* HOME HERO */
.hero{position:relative;overflow:hidden;color:#fff;}
.hero .bg{position:absolute;inset:0;background:url('../img/hero-sunset.jpg') center/cover no-repeat;}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(30,61,79,.92) 0%,rgba(30,61,79,.72) 45%,rgba(30,61,79,.25) 100%);}
.hero .wrap{position:relative;z-index:2;padding:120px 0 130px;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center;}
.hero h1{font-family:var(--serif);font-size:clamp(36px,6vw,62px);line-height:1.08;letter-spacing:.04em;text-transform:uppercase;color:#fff;}
.hero .kicker{font-size:13px;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--ochre);margin-bottom:16px;}
.hero .sub{margin:22px 0 0;font-size:18px;max-width:540px;color:#DCE6EB;}
.ringphoto{border-radius:50%;border:14px solid var(--ochre);overflow:hidden;aspect-ratio:1/1;width:min(340px,80vw);justify-self:center;}
.ringphoto img{width:100%;height:100%;object-fit:cover;}
.ringphoto.sm{width:min(240px,60vw);border-width:11px;}

/* RINGS & PHOTOS */
.photoframe{border:1px solid #D8DDE1;background:#fff;}
.photoframe img{width:100%;height:100%;object-fit:cover;}
figure.cap{border:1px solid #D8DDE1;background:#fff;}
figure.cap img{width:100%;height:230px;object-fit:cover;}
figure.cap figcaption{font-size:12.5px;font-style:italic;color:#5a6b75;padding:10px 14px;}

/* SERVICES */
.svc{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);padding:22px 24px;}
.svc::before{content:"";display:block;width:16px;height:16px;background:var(--ochre);margin-bottom:14px;}
.svc b{font-family:var(--serif);font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:#fff;display:block;margin-bottom:6px;}
.svc span{font-size:13.5px;color:#CFE0E6;}
.svcphoto{overflow:hidden;border:1px solid rgba(255,255,255,.22);}
.svcphoto img{width:100%;height:230px;object-fit:cover;}

/* PROJECTS */
.projects{margin-top:36px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 44px;max-width:1000px;}
.proj{display:flex;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid #D8DDE1;font-size:15.5px;}
.proj::before{content:"\25A0";color:var(--ochre);font-size:12px;position:relative;top:-1px;}
.proj b{font-weight:700;}
.proj .yr{margin-left:auto;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--petrol-deep);white-space:nowrap;}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:22px;margin-top:46px;}
.stat{border-top:5px solid var(--ochre);padding-top:14px;}
.stat .n{font-family:var(--serif);font-size:44px;line-height:1;}
.stat .l{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#5a6b75;margin-top:6px;}
.band-ink .stat .n{color:#fff;}
.band-ink .stat .l{color:#8FA0A9;}

/* REFERENCES */
.refs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:34px;}
.ref{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);padding:20px 22px;font-family:var(--serif);letter-spacing:.06em;font-size:15px;color:#fff;display:flex;align-items:center;gap:12px;}
.ref::before{content:"\2713";color:var(--ochre);font-family:var(--sans);font-weight:800;background:rgba(255,255,255,.08);width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* GALLERY */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:30px;}

/* FACTBOX */
.factbox{background:var(--ink);color:#D7E0E5;padding:34px;}
.factbox h4{font-family:var(--serif);color:#fff;font-size:16px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;}
.factbox li{list-style:none;padding:10px 0 10px 30px;position:relative;border-bottom:1px solid rgba(255,255,255,.14);font-size:15px;}
.factbox li::before{content:"";position:absolute;left:0;top:15px;width:14px;height:14px;background:var(--ochre);}

/* SPLIT LAYOUTS */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}

/* CONTACT */
.contactgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:34px;margin-top:38px;}
.contactgrid h5{font-family:var(--serif);color:#fff;font-size:14px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px;}
.contactgrid p{font-size:15px;margin-bottom:6px;max-width:none;color:#C3CFD6;}
.contactgrid a{color:var(--ochre);text-decoration:none;font-weight:700;}
.contactgrid a:hover{text-decoration:underline;}

/* FOOTER */
footer{background:#152C3A;color:#8FA0A9;padding:44px 24px 30px;font-size:13px;letter-spacing:.04em;border-top:4px solid var(--ochre);}
footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;max-width:1140px;}
footer h6{font-family:var(--serif);color:#fff;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;}
footer a{color:#B9C6CD;text-decoration:none;display:block;padding:3px 0;}
footer a:hover{color:var(--ochre);}
footer .fin{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;font-size:12px;}

@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr;padding:80px 0 90px;}
  .split{grid-template-columns:1fr;gap:36px;}
}
@media(max-width:600px){
  .navlogo .nm{font-size:13px;}
}

/* ===== v2 TRANSFORMATION LAYER ===== */
/* Skip link */
.skip{position:absolute;left:-9999px;top:0;background:var(--ochre);color:var(--ink);font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:12px 20px;z-index:100;}
.skip:focus{left:0;}
/* Focus visibility everywhere */
a:focus-visible,button:focus-visible{outline:3px solid var(--ochre);outline-offset:2px;}
.btn:focus-visible{outline-color:var(--petrol-deep);}
/* Scroll reveal - motion with intent, reduced-motion respected */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}}
/* Card + figure hover lift */
figure.cap,.card,.svc,.ref{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
figure.cap:hover,.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(30,61,79,.12);}
.svc:hover,.ref:hover{border-color:var(--ochre);}
figure.cap img{transition:transform .5s ease;}
figure.cap:hover img{transform:scale(1.03);}
@media (prefers-reduced-motion:reduce){figure.cap:hover img{transform:none;}}
/* Projects table (SEO clause: substantive pages carry a table) */
table.projects-t{width:100%;max-width:820px;border-collapse:collapse;margin-top:30px;font-size:15.5px;}
table.projects-t caption{text-align:left;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--ochre-deep);padding-bottom:12px;}
table.projects-t th{font-family:var(--serif);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-align:left;color:var(--petrol-deep);border-bottom:2px solid var(--ink);padding:10px 12px 10px 0;}
table.projects-t td{border-bottom:1px solid #D8DDE1;padding:12px 12px 12px 0;}
table.projects-t td:first-child::before{content:"\25A0\00a0\00a0";color:var(--ochre);font-size:11px;}
table.projects-t td.yr{font-size:12.5px;font-weight:800;letter-spacing:.1em;color:var(--petrol-deep);white-space:nowrap;}
/* Numbered step list */
ol.steps{counter-reset:s;list-style:none;max-width:740px;margin:22px 0;}
ol.steps li{counter-increment:s;position:relative;padding:12px 0 12px 56px;border-bottom:1px solid #D8DDE1;font-size:15.5px;}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:10px;width:36px;height:36px;background:var(--ink);color:var(--ochre);font-family:var(--serif);font-size:17px;display:flex;align-items:center;justify-content:center;}
.band-ink ol.steps li{border-color:rgba(255,255,255,.14);}
