:root{
  --deep:#062a33; --teal:#0e7c86; --aqua:#3fb8b0; --sand:#f4efe6;
  --ink:#12262c; --mut:#5c7176; --line:#dfd6c7; --accent:#e0663c; --white:#fff;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sand);color:var(--ink);
  font:400 17px/1.68 Inter,-apple-system,Segoe UI,Roboto,sans-serif}
img{max-width:100%;height:auto}
a{color:var(--teal)}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}

/* header */
.top{background:var(--deep);position:sticky;top:0;z-index:30}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark{width:30px;height:30px;flex:none;border-radius:50%;
  background:conic-gradient(from 210deg,var(--aqua),var(--teal) 55%,var(--accent));
  box-shadow:0 0 0 3px rgba(63,184,176,.18)}
.brand-t{display:flex;flex-direction:column;line-height:1.05;font-family:Archivo,sans-serif}
.brand-t b{color:#fff;font-size:17px;font-weight:800;letter-spacing:.02em}
.brand-t i{color:var(--aqua);font-style:normal;font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.top nav{display:flex;gap:26px;flex-wrap:wrap}
.top nav a{color:#cfe4e6;text-decoration:none;font-size:14.5px;font-weight:500;letter-spacing:.03em;padding:6px 0;border-bottom:2px solid transparent}
.top nav a:hover{color:#fff}
.top nav a.on{color:#fff;border-bottom-color:var(--aqua)}
.navt,.burger{display:none}

/* hero */
.hero{position:relative;background:var(--deep);color:#fff;overflow:hidden;padding:86px 0 96px}
.hero-bg{position:absolute;inset:0;
  background:
    radial-gradient(1000px 420px at 78% -8%,rgba(63,184,176,.34),transparent 62%),
    radial-gradient(680px 380px at 8% 108%,rgba(224,102,60,.22),transparent 60%),
    linear-gradient(180deg,#062a33,#0a3f4a)}
/* photo hero: the image sits under the same tint stack, so text contrast is
   held at or above the flat-gradient version */
.hero-photo .hero-bg{
  background:
    radial-gradient(900px 400px at 84% -10%,rgba(63,184,176,.16),transparent 62%),
    radial-gradient(640px 360px at 4% 110%,rgba(224,102,60,.16),transparent 60%),
    linear-gradient(96deg,rgba(3,26,32,.97) 0%,rgba(4,30,37,.94) 34%,
      rgba(5,38,46,.76) 62%,rgba(6,46,56,.30) 100%),
    linear-gradient(180deg,rgba(3,24,30,.80) 0%,rgba(4,32,39,.22) 42%,rgba(6,42,51,.56) 100%),
    url("/images/hero-yacht-underway.webp") center 56%/cover no-repeat,
    #062a33}
.hero-in{position:relative}
.hero h1,.hero .lede,.hero .eyebrow,.hero .cta{max-width:820px}
.eyebrow{margin:0 0 14px;color:var(--aqua);font-size:12.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase}
.hero h1{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:-.022em;
  font-size:clamp(34px,5.4vw,58px);line-height:1.06;margin:0 0 20px;color:#fff;text-wrap:balance}
.lede{font-size:clamp(17px,1.9vw,20px);color:#c9dfe2;max-width:660px;margin:0 0 30px}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin:0}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
  padding:13px 26px;border-radius:2px;font-weight:600;font-size:15px;letter-spacing:.02em;
  transition:transform .15s ease,background .15s ease}
.btn:hover{background:#c9552d;transform:translateY(-1px)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.42);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
.wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:66px;display:block}
.wave path{fill:var(--sand)}

/* inner hero */
.phero{background:linear-gradient(180deg,#0a3f4a,#0e5b63);color:#fff;padding:52px 0 46px}
.phero h1{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:-.02em;
  font-size:clamp(28px,4.2vw,44px);line-height:1.1;margin:0;color:#fff}

/* content */
main{padding:56px 0 76px}
.prose{max-width:760px}
.prose p{margin:0 0 18px}
.prose h2{font-family:Archivo,sans-serif;font-size:25px;font-weight:700;letter-spacing:-.01em;
  margin:38px 0 14px;color:var(--deep)}
.prose strong{color:var(--deep)}
.sec-h{font-family:Archivo,sans-serif;font-size:26px;font-weight:700;color:var(--deep);
  margin:54px 0 22px;padding-top:26px;border-top:1px solid var(--line)}

/* photography */
.fig{margin:30px 0 26px}
.fig img{display:block;width:100%;height:auto;border-radius:3px;background:#dde7e6}
.fig figcaption,.gal figcaption{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.band{margin:32px 0 30px;border-radius:3px;overflow:hidden}
.band img{display:block;width:100%;height:clamp(84px,13vw,170px);object-fit:cover;background:#dde7e6}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:18px;margin:24px 0 30px}
.gal figure{margin:0}
.gal img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
  border-radius:3px;background:#dde7e6}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:16px}
.grid-tight{margin-top:30px}
.card{display:block;background:var(--white);border:1px solid var(--line);border-radius:3px;
  padding:22px 22px 18px;text-decoration:none;color:inherit;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(6,42,51,.11);border-color:var(--aqua)}
.card h3{font-family:Archivo,sans-serif;font-size:18px;font-weight:700;margin:0 0 8px;color:var(--deep)}
.card p{margin:0 0 14px;font-size:14.8px;color:var(--mut);line-height:1.58}
.more{font-size:13px;font-weight:600;color:var(--teal);letter-spacing:.02em}
.more:after{content:" \2192"}
.allcta{margin:30px 0 0}

/* service footer bar */
.backbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.backbar a:first-child{font-size:14.5px;font-weight:600;text-decoration:none}
.backbar a:first-child:before{content:"\2190 "}

/* contact */
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.formbox{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:26px}
.formbox label{display:block;font-size:13.5px;font-weight:600;color:var(--deep);margin-bottom:16px}
.formbox input,.formbox textarea{display:block;width:100%;margin-top:6px;padding:11px 13px;
  border:1px solid var(--line);border-radius:2px;background:#fdfcfa;font:inherit;font-size:15px;color:var(--ink)}
.formbox input:focus,.formbox textarea:focus{outline:2px solid var(--aqua);outline-offset:1px;border-color:var(--aqua)}
.formbox textarea{resize:vertical}
.formbox button{background:var(--deep);color:#fff;border:0;padding:13px 28px;border-radius:2px;
  font:inherit;font-weight:600;font-size:15px;cursor:pointer}
.formbox button:hover{background:var(--teal)}
.hp{position:absolute;left:-9999px;width:1px;height:1px}
.ok{background:#e7f4f0;border-left:3px solid var(--teal);padding:16px 18px;margin:0;font-weight:500}

/* footer */
.foot{background:var(--deep);color:#a9c6ca;margin-top:20px;padding:46px 0 0;font-size:14.5px}
.foot-in{display:grid;grid-template-columns:1.6fr 1fr;gap:36px;padding-bottom:30px}
.foot p{margin:0 0 8px;max-width:520px;line-height:1.6}
.foot-b{font-family:Archivo,sans-serif;color:#fff;font-weight:700;font-size:16px;letter-spacing:.01em}
.foot-nav{display:flex;flex-direction:column;gap:9px}
.foot-nav a{color:#a9c6ca;text-decoration:none}
.foot-nav a:hover{color:#fff}
.foot-c{border-top:1px solid rgba(255,255,255,.11);padding-top:18px;padding-bottom:22px;font-size:13px;color:#7fa2a8}

@media(max-width:820px){
  .two,.foot-in{grid-template-columns:1fr}
  .burger{display:block;width:34px;height:26px;position:relative;cursor:pointer}
  .burger span,.burger span:before,.burger span:after{position:absolute;left:0;right:0;height:2px;background:#fff;content:"";border-radius:2px}
  .burger span{top:12px}
  .burger span:before{top:-8px}
  .burger span:after{top:8px}
  .top-in{flex-wrap:wrap}
  .top nav{display:none;width:100%;flex-direction:column;gap:0;padding-bottom:12px}
  .navt:checked ~ nav{display:flex}
  .top nav a{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .hero{padding:60px 0 74px}
  /* narrow viewports: text runs the full width, so the scrim has to as well */
  .hero-photo .hero-bg{
    background:
      radial-gradient(520px 300px at 88% -6%,rgba(63,184,176,.14),transparent 62%),
      linear-gradient(180deg,rgba(3,24,30,.86) 0%,rgba(4,32,39,.60) 44%,rgba(4,30,37,.80) 100%),
      linear-gradient(96deg,rgba(3,26,32,.72),rgba(5,38,46,.52)),
      url("/images/hero-yacht-underway.webp") center 58%/cover no-repeat,
      #062a33}
  main{padding:42px 0 60px}
}
