:root{--navy:#073b4c;--navy-2:#052f3d;--coral:#ed704d;--sun:#f5b66e;--sea:#7db8b2;--cream:#fff0d0;--paper:#fffaf0;--ink:#113b47;--white:#fffdf7;--shadow:0 18px 45px rgba(5,47,61,.16)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.skip-link{position:fixed;z-index:999;left:1rem;top:-5rem;background:var(--white);padding:.8rem 1rem;border-radius:.5rem}.skip-link:focus{top:1rem}
.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:8px clamp(1.2rem,4vw,4.5rem);background:rgba(255,250,240,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(7,59,76,.12)}
.brand img{width:105px;height:76px;object-fit:contain}.site-header nav{display:flex;gap:2rem;align-items:center}.site-header nav a{text-decoration:none;font-size:.9rem;font-weight:700;letter-spacing:.02em}.site-header nav a:hover{color:var(--coral)}
.nav-cta{background:var(--navy);color:var(--white)!important;padding:.7rem 1.1rem;border-radius:999px}.nav-cta:hover{background:var(--coral)}
.menu-button{display:none;border:0;background:none;padding:.5rem}.menu-button span{width:25px;height:2px;background:var(--navy);display:block;margin:5px}
.hero{min-height:720px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.9fr);align-items:center;gap:4vw;padding:5rem clamp(1.2rem,7vw,8rem) 9rem;background:var(--cream);isolation:isolate;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;z-index:-2;opacity:.28;background-image:repeating-linear-gradient(0deg,transparent 0 5px,rgba(7,59,76,.055) 6px),radial-gradient(circle at 15% 20%,rgba(255,255,255,.8),transparent 38%)}
.sun-disc{position:absolute;width:430px;height:430px;border-radius:50%;background:linear-gradient(#ef7551 0 35%,#f09a5e 35% 67%,#f5bb70 67%);right:3vw;top:60px;z-index:-1;box-shadow:inset 0 0 0 14px var(--cream),inset 0 0 0 24px var(--navy)}
.eyebrow{text-transform:uppercase;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.16em;font-size:.92rem;color:var(--coral);margin:0 0 1rem}
h1,h2,h3{font-family:"Barlow Condensed",sans-serif;line-height:.95;margin:0;color:var(--navy)}
h1{font-size:clamp(4rem,7.5vw,7.2rem);letter-spacing:-.035em;text-transform:uppercase;max-width:830px}h1 em{font-style:normal;color:var(--coral);font-weight:600}
.hero-intro{font-size:1.15rem;max-width:620px;margin:2rem 0;color:#315864}
.hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.75rem 1.35rem;border-radius:999px;text-decoration:none;font-weight:800;border:0;font-family:inherit;font-size:1rem;cursor:pointer}.button.primary{background:var(--coral);color:white;box-shadow:0 8px 0 #bc4f36}.button.primary:hover{transform:translateY(2px);box-shadow:0 6px 0 #bc4f36}.text-button{padding-inline:.2rem;color:var(--navy)}.text-button span{margin-left:.5rem}
.fulfillment{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}.fulfillment span{font-family:"Barlow Condensed";font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid rgba(7,59,76,.24);border-radius:999px;padding:.35rem .75rem;background:rgba(255,255,255,.35)}
.hero-art{position:relative;height:520px}.hero-photo{margin:0;overflow:hidden;background:white;border:9px solid var(--white);box-shadow:var(--shadow)}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo-main{width:min(470px,82%);height:420px;position:absolute;right:5%;top:15px;transform:rotate(2deg)}.hero-photo-small{width:230px;height:240px;position:absolute;left:-3%;bottom:4px;transform:rotate(-6deg);z-index:2}.round-stamp{position:absolute;right:-10px;bottom:22px;width:122px;height:122px;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.05;background:var(--navy);color:var(--cream);font-family:"Barlow Condensed";font-weight:800;letter-spacing:.1em;border:6px double var(--cream);transform:rotate(8deg);z-index:3}.hero-wave{position:absolute;bottom:-1px;left:0;width:100%;height:110px;fill:var(--paper)}
.section{padding:7rem clamp(1.2rem,7vw,8rem)}.section-heading{display:grid;grid-template-columns:1.15fr .65fr;gap:4rem;align-items:end;margin-bottom:3.5rem}.section-heading h2,.process h2,.quote-section h2{font-size:clamp(3.2rem,5.4vw,5.5rem);text-transform:uppercase;letter-spacing:-.025em}.section-heading>p{max-width:520px;margin:0;color:#4d6972}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--navy);border-left:2px solid var(--navy)}.service-grid article{min-height:250px;padding:1.7rem;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);background:rgba(255,255,255,.3);transition:.2s}.service-grid article:hover{background:var(--cream);transform:translateY(-4px)}.service-grid article>span{font-family:"Barlow Condensed";font-weight:800;color:var(--coral)}.service-grid h3{font-size:2rem;text-transform:uppercase;margin:3rem 0 .7rem}.service-grid p{margin:0;color:#4d6972}.service-grid .service-cta{background:var(--sea)}.service-cta a{display:inline-block;margin-top:.8rem;font-weight:800;text-decoration:none;border-bottom:2px solid var(--navy)}
.work{background:var(--navy);color:var(--white);position:relative}.work:before{content:"";position:absolute;inset:0;opacity:.08;background-image:repeating-linear-gradient(90deg,transparent 0 9px,var(--cream) 10px)}.work>*{position:relative}.section-heading.light h2{color:var(--cream)}.section-heading.light>p{color:#bdd3d4}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:245px;gap:1rem}.gallery figure{margin:0;position:relative;overflow:hidden;border:6px solid var(--cream);background:#0c4d60}.gallery figure.wide{grid-column:span 2}.gallery figure.tall{grid-row:span 2}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.gallery figure:hover img{transform:scale(1.035)}.gallery figcaption{position:absolute;left:.7rem;bottom:.7rem;background:var(--cream);color:var(--navy);font-family:"Barlow Condensed";font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .7rem}
.process{display:grid;grid-template-columns:.8fr 1.1fr;gap:8vw}.process-intro>p:last-child{font-size:1.08rem;color:#4d6972;max-width:600px}.steps{list-style:none;margin:0;padding:0;border-top:2px solid var(--navy)}.steps li{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:2rem 0;border-bottom:2px solid var(--navy)}.steps li>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--coral);color:white;font-family:"Barlow Condensed";font-size:1.6rem;font-weight:800}.steps h3{font-size:1.8rem;text-transform:uppercase;margin-bottom:.5rem}.steps p{margin:0;color:#4d6972}
.quote-section{padding:2rem clamp(1.2rem,4vw,4.5rem) 6rem}.quote-shell{display:grid;grid-template-columns:.75fr 1.15fr;gap:5vw;padding:clamp(2rem,5vw,5rem);background:var(--cream);border-radius:2.5rem;box-shadow:var(--shadow);position:relative;overflow:hidden}.quote-shell:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-110px;top:-130px;background:var(--sun);border:18px solid var(--coral);opacity:.5}.quote-copy{position:relative;z-index:1}.quote-copy>p:not(.eyebrow){color:#4d6972;font-size:1.08rem}.contact-card{margin-top:3rem;padding-top:1.5rem;border-top:2px solid var(--navy)}.contact-card p{font-family:"Barlow Condensed";text-transform:uppercase;font-weight:800;letter-spacing:.1em;margin:0 0 .6rem}.contact-card a{display:block;font-size:1.08rem;font-weight:700;margin:.2rem 0;text-decoration:none}.contact-card a:hover{color:var(--coral)}
form{position:relative;z-index:1;background:var(--white);padding:2rem;border-radius:1.2rem;box-shadow:0 12px 35px rgba(5,47,61,.1)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label,legend{display:block;font-weight:700;font-size:.9rem;margin-bottom:1rem}input,select,textarea{width:100%;margin-top:.35rem;border:1px solid #9db0b4;background:white;color:var(--ink);border-radius:.55rem;padding:.85rem;font:inherit;min-height:48px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(237,112,77,.28);border-color:var(--coral)}fieldset{border:0;padding:0;margin:0 0 1rem}fieldset legend{margin-bottom:.5rem}.choice{display:inline-flex;align-items:center;margin:0 1rem .5rem 0;font-weight:500}.choice input{width:18px;min-height:auto;margin:0 .45rem 0 0}.form-submit{width:100%;margin-top:.5rem}.form-note{font-size:.78rem;line-height:1.45;color:#60777e;margin:.9rem 0 0;text-align:center}
footer{background:var(--navy-2);color:var(--cream);display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:3rem;padding:4rem clamp(1.2rem,7vw,8rem) 2rem;align-items:start}footer a{display:block;text-decoration:none;margin:.2rem 0}footer a:hover{color:var(--sun)}.footer-brand img{width:150px;height:130px;object-fit:contain;margin-bottom:1rem}.footer-brand p{font-family:"Barlow Condensed";font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em}.footer-label{font-family:"Barlow Condensed";font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sea);font-weight:800}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,240,208,.25);padding-top:1.4rem;margin:1rem 0 0;font-size:.8rem;color:#aac1c2}
@media(max-width:900px){.site-header nav{display:none;position:absolute;top:92px;left:0;right:0;background:var(--paper);padding:1.2rem;flex-direction:column;align-items:stretch;border-bottom:1px solid rgba(7,59,76,.15)}.site-header nav.open{display:flex}.menu-button{display:block}.hero{grid-template-columns:1fr;padding-top:3.5rem}.hero-art{height:450px}.sun-disc{width:360px;height:360px;right:-80px;top:430px}.section-heading,.process,.quote-shell{grid-template-columns:1fr;gap:2.2rem}.service-grid{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(2,1fr)}footer{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.site-header{height:78px}.brand img{width:82px;height:62px}.site-header nav{top:78px}.hero{min-height:auto;padding-bottom:8rem}.hero-intro{font-size:1.03rem}.hero-art{height:360px}.hero-photo-main{height:300px;width:85%}.hero-photo-small{width:155px;height:175px;left:0}.round-stamp{width:92px;height:92px;font-size:.75rem}.section{padding-top:5rem;padding-bottom:5rem}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:210px}.service-grid h3{margin-top:2.2rem}.gallery{grid-template-columns:1fr;grid-auto-rows:270px}.gallery figure.wide{grid-column:auto}.gallery figure.tall{grid-row:auto}.field-row{grid-template-columns:1fr}.quote-shell{border-radius:1.4rem;padding:1.5rem}.quote-section{padding-inline:.8rem}form{padding:1.2rem}.choice{display:flex}footer{grid-template-columns:1fr}.copyright{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img,.service-grid article{transition:none}}

/* Homepage refresh: clean product presentation and simplified service layout */
.hero{grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:6vw}
.hero-art{display:grid;grid-template-columns:1fr 118px;gap:12px;align-items:stretch;height:500px;position:relative}
.hero-art figure{margin:0;overflow:hidden;background:var(--navy);position:relative}
.hero-art img{width:100%;height:100%;object-fit:cover}
.hero-feature{border:8px solid var(--white);box-shadow:var(--shadow)}
.hero-feature figcaption{position:absolute;left:0;right:0;bottom:0;padding:4.5rem 1.2rem 1.1rem;background:linear-gradient(transparent,rgba(5,47,61,.94));color:white}
.hero-feature strong,.hero-feature span{display:block}.hero-feature strong{font-family:"Barlow Condensed";font-size:1.55rem;text-transform:uppercase}.hero-feature span{font-size:.84rem;line-height:1.4}
.hero-thumbnails{display:grid;grid-template-rows:1fr 1fr;gap:12px}.hero-thumbnails figure{border:5px solid var(--white);box-shadow:var(--shadow)}
.hero-thumbnails figcaption{position:absolute;left:.45rem;bottom:.45rem;background:var(--navy);color:white;padding:.2rem .45rem;font-family:"Barlow Condensed";font-weight:800;text-transform:uppercase;font-size:.78rem}
.service-list{border-top:2px solid var(--navy)}
.service-list article{display:grid;grid-template-columns:64px minmax(180px,.75fr) 1.3fr;gap:1.5rem;align-items:center;padding:1.35rem .4rem;border-bottom:1px solid rgba(7,59,76,.28);transition:.2s}
.service-list article:hover{padding-left:1rem;background:rgba(125,184,178,.14)}
.service-list article>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--coral);color:white;font-family:"Barlow Condensed";font-weight:800}
.service-list h3{font-size:2rem;text-transform:uppercase}.service-list p{margin:0;color:#4d6972}
.service-link{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.4rem;padding:1.2rem 1.5rem;background:var(--sea);color:var(--navy);text-decoration:none;font-family:"Barlow Condensed";font-size:1.35rem;text-transform:uppercase}.service-link strong{font-size:1.05rem;letter-spacing:.05em}
.gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:1.25rem}.gallery figure{aspect-ratio:4/3}.gallery figure.wide{grid-column:auto}.gallery figure.tall{grid-row:auto}
@media(max-width:900px){.hero-art{height:450px}.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.hero-art{height:380px;grid-template-columns:1fr}.hero-thumbnails{display:none}.service-list article{grid-template-columns:52px 1fr;gap:.8rem}.service-list article p{grid-column:2}.service-link{align-items:flex-start;flex-direction:column}.gallery{grid-template-columns:1fr;grid-auto-rows:auto}}

/* Centered homepage and editorial portfolio gallery */
.hero{
  min-height:auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:0;
  padding:3.25rem clamp(1.2rem,5vw,5rem) 8.5rem;
  text-align:center;
}
.hero-logo{width:clamp(150px,17vw,220px);height:auto;margin:0 auto 1rem;filter:drop-shadow(0 12px 20px rgba(5,47,61,.13))}
.hero-copy{width:min(1040px,100%);margin-inline:auto;display:flex;flex-direction:column;align-items:center}
.hero h1{max-width:1000px;font-size:clamp(3.6rem,7.6vw,7.4rem)}
.hero-intro{max-width:680px;margin:1.5rem auto;color:#315864}
.hero-actions,.fulfillment{justify-content:center}
.hero-showcase{width:min(1160px,100%);margin:3.25rem auto 0;display:grid;grid-template-columns:1.2fr .8fr 1.2fr;gap:1rem;align-items:center}
.hero-showcase figure{height:230px;margin:0;position:relative;overflow:hidden;border:7px solid var(--white);box-shadow:var(--shadow);background:var(--navy)}
.hero-showcase figure:nth-child(2){height:280px}
.hero-showcase img{width:100%;height:100%;object-fit:cover}

.work{padding-top:8rem;padding-bottom:8rem}
.work .section-heading{max-width:1240px;margin-inline:auto;margin-bottom:3rem}
.gallery{width:min(1240px,100%);margin-inline:auto;display:grid;grid-template-columns:1.3fr .7fr 1fr;grid-template-rows:260px 260px;gap:1.2rem}
.gallery figure,.gallery figure.wide,.gallery figure.tall{margin:0;min-width:0;aspect-ratio:auto;grid-column:auto;grid-row:auto;border:0;border-radius:1.15rem;box-shadow:0 16px 35px rgba(0,0,0,.2)}
.gallery .gallery-feature{grid-row:1 / span 2}
.gallery .gallery-portrait{grid-row:span 1}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{left:0;right:0;bottom:0;padding:4rem 1rem 1rem;background:linear-gradient(transparent,rgba(5,47,61,.92));color:white;font-family:"DM Sans";letter-spacing:0;text-transform:none}
.gallery figcaption span,.gallery figcaption strong{display:block}
.gallery figcaption span{font-family:"Barlow Condensed";font-size:.8rem;text-transform:uppercase;letter-spacing:.13em;color:var(--sun);margin-bottom:.15rem}
.gallery figcaption strong{font-family:"Barlow Condensed";font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em}

@media(max-width:900px){
  .hero{padding-top:2.5rem}
  .hero-showcase{grid-template-columns:1fr 1fr}.hero-showcase figure{height:220px}.hero-showcase figure:nth-child(2){height:220px}.hero-showcase figure:first-child{grid-column:1/-1}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:360px 230px 230px}.gallery .gallery-feature{grid-column:1/-1;grid-row:auto}.gallery .gallery-portrait{grid-row:auto}
}
@media(max-width:600px){
  .hero{padding:2rem 1rem 7rem}.hero-logo{width:145px}.hero h1{font-size:3.5rem}.hero-showcase{margin-top:2.4rem;grid-template-columns:1fr;gap:.8rem}.hero-showcase figure,.hero-showcase figure:nth-child(2){height:210px}.hero-showcase figure:first-child{grid-column:auto}
  .work{padding-inline:1rem}.gallery{grid-template-columns:1fr;grid-template-rows:none}.gallery figure,.gallery .gallery-feature{height:270px;grid-column:auto}.gallery .gallery-feature{height:320px}
}

/* Swipeable project collections */
.hero{padding-bottom:8rem}
.portfolio-groups{width:min(1240px,100%);margin-inline:auto;display:grid;gap:4rem}
.project-slider{min-width:0}
.slider-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.slider-heading h3{color:var(--cream);font-size:clamp(2rem,3vw,3rem);text-transform:uppercase;letter-spacing:.025em}
.slider-controls{display:flex;gap:.65rem}
.slider-button{width:46px;height:46px;border:1px solid rgba(255,240,208,.55);border-radius:50%;background:transparent;color:var(--cream);font:700 1.25rem/1 "DM Sans",sans-serif;cursor:pointer;transition:.2s}
.slider-button:hover{background:var(--coral);border-color:var(--coral)}
.slider-button:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.slider-button:disabled{opacity:.3;cursor:default;background:transparent;border-color:rgba(255,240,208,.35)}
.slider-track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(280px,42vw,520px);gap:1.2rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;scrollbar-color:var(--sea) rgba(255,255,255,.08);padding:0 0 1rem}
.slider-track:focus-visible{outline:3px solid var(--sun);outline-offset:5px;border-radius:1rem}
.project-slide{height:350px;margin:0;position:relative;overflow:hidden;border-radius:1.15rem;background:#0c4d60;box-shadow:0 16px 35px rgba(0,0,0,.2);scroll-snap-align:start}
.project-slide img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.project-slide:hover img{transform:scale(1.025)}
.project-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:4rem 1rem 1rem;background:linear-gradient(transparent,rgba(5,47,61,.94));color:white;font-family:"Barlow Condensed";font-size:1.35rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:600px){
  .portfolio-groups{gap:3rem}.slider-track{grid-auto-columns:88%}.project-slide{height:300px}.slider-button{width:42px;height:42px}
}
