:root{
  --black:#000; --teal:#52C3C1; --teal-bright:#30CCC9; --teal-deep:#2E8C8B;
  --white:#fff; --off:#FAFAFA; --quote:#E8E6E6; --ink:#363636;
  --head-h:118px; --max:1160px;
  --f: Skia, "Skia Regular", Optima, Candara, "Gill Sans Nova", "Gill Sans",
       "Trebuchet MS", "Segoe UI", sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--off);font-family:var(--f);
  font-size:1.0625rem;line-height:1.75;letter-spacing:.055em;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
picture{display:block}
picture img{width:100%;height:auto}
a{color:var(--teal);text-underline-offset:.2em}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 1.5rem}
.narrow{max-width:44rem;margin-inline:auto}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;position:fixed;background:var(--teal);color:#000;
  padding:.75rem 1rem;z-index:400;border-radius:2px}

/* ---------------- header ---------------- */
.head{position:fixed;inset:0 0 auto;z-index:200;background:var(--black);
  min-height:var(--head-h);display:flex;align-items:center;justify-content:center}
.head .wrap{display:flex;align-items:center;justify-content:center;position:relative}
.brand{text-align:center;text-decoration:none;display:block;padding:1.4rem 0}
.brand b{display:block;color:var(--teal);font-weight:400;letter-spacing:.14em;
  font-size:clamp(1.9rem,5.2vw,3.3rem);line-height:1;
  border-bottom:2px solid var(--teal);padding-bottom:.12em}
.brand span{display:block;color:#fffffe;font-weight:700;letter-spacing:.09em;
  font-size:clamp(.68rem,1.5vw,.86rem);margin-top:.5rem}
.head-r{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);
  display:flex;align-items:center;gap:.7rem}
.callbtn{background:#1B3A5C;color:#fff;text-decoration:none;font-weight:700;
  font-size:.72rem;letter-spacing:.12em;padding:.5rem 1.1rem;border-radius:999px;
  border:1px solid var(--teal);white-space:nowrap}
.callbtn:hover{background:var(--teal);color:#000}
.langpill{background:var(--teal);color:#fff;font-weight:700;font-size:.74rem;
  letter-spacing:.1em;padding:.35rem .8rem;border-radius:999px;
  display:flex;align-items:center;gap:.35rem}
.burger{width:44px;height:44px;border:0;background:none;cursor:pointer;
  display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0}
.burger i{display:block;height:4px;background:var(--teal);border-radius:1px}

/* ---------------- menu overlay ---------------- */
.menu{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transition:opacity .25s}
.menu[data-open="1"]{opacity:1;visibility:visible}
.menu-panel{position:absolute;right:0;top:0;height:100%;width:min(360px,88vw);
  background:rgba(224,229,228,.93);backdrop-filter:blur(6px);
  padding:5.5rem 2rem 2rem;display:flex;flex-direction:column;align-items:flex-end;
  gap:.55rem;transform:translateX(100%);transition:transform .28s ease}
.menu[data-open="1"] .menu-panel{transform:none}
.menu-panel a{color:var(--teal-deep);text-decoration:none;font-size:1.35rem;
  letter-spacing:.12em;padding:.35rem 0}
.menu-panel a:first-of-type{color:#2b3a3a}
.menu-panel a:hover{color:#000}
.menu-x{position:absolute;top:1.4rem;right:1.6rem;width:40px;height:40px;border:0;
  background:none;cursor:pointer;font-size:2rem;line-height:1;color:#1c1c1c}

/* ---------------- social rail ---------------- */
.rail{position:fixed;right:.6rem;top:50%;transform:translateY(-50%);z-index:150;
  display:flex;flex-direction:column;gap:.7rem}
.rail a{width:30px;height:30px;border-radius:50%;background:var(--teal);
  display:grid;place-items:center;color:#000}
.rail svg{width:17px;height:17px;fill:#000}
@media (max-width:860px){.rail{display:none}}

/* ---------------- rhythm ---------------- */
main{padding-top:var(--head-h)}
.rule{height:40px;background:var(--teal)}
.band{padding:4rem 0}
.band.light{background:var(--white);color:var(--ink)}
.band.dark{background:var(--black);color:var(--off)}
.band.tight{padding:2.4rem 0}
.strip{background:var(--white);color:var(--ink);padding:1.9rem 0;text-align:center}

h1,h2,h3{font-weight:400;letter-spacing:.1em;margin:0}
.sec-h{text-align:center;font-size:clamp(1.5rem,4.4vw,2.6rem);line-height:1.2;
  color:var(--teal);letter-spacing:.1em}
.sec-h b{font-weight:700}
.sec-h em{font-style:normal;color:var(--ink);font-weight:400}
.band.dark .sec-h em{color:var(--off)}
.sub{text-align:center;color:var(--ink);margin:.7rem 0 0;font-size:1rem}
.band.dark .sub{color:var(--off)}

.quote{color:var(--quote);text-align:center;font-size:clamp(1rem,2.3vw,1.32rem);
  line-height:1.85}
.quote b{color:#fff;font-weight:700}
.quote.on-light{color:var(--ink)}
.quote.on-light b{color:#000}

/* ---------------- hero ---------------- */
.hero{position:relative;background:var(--black);min-height:min(78svh,660px);
  display:grid;align-items:stretch;overflow:hidden}
.hero picture{position:absolute;inset:0;height:100%}
.hero picture img{height:100%;object-fit:cover;object-position:60% 45%}
.hero{display:grid}
.hero > picture{grid-area:1/1}
.hero-in{grid-area:1/1;position:relative;display:flex;flex-direction:column;
  justify-content:space-between;padding:3rem 0 2.4rem;min-height:100%;
  background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.5) 42%,rgba(0,0,0,.15) 70%)}
.hero-lines{font-size:clamp(1rem,2.4vw,1.22rem);line-height:2;color:var(--off);
  max-width:26rem;font-weight:400;letter-spacing:.055em;margin:0}
.hero-lines b{font-weight:700}
.pills{display:flex;flex-wrap:wrap;gap:1.1rem;justify-content:center;margin-top:auto}
.pill{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--teal);
  background:rgba(0,0,0,.45);color:var(--teal-bright);text-decoration:none;
  font-weight:700;font-size:.78rem;letter-spacing:.14em;padding:.5rem 1.3rem;
  border-radius:999px;backdrop-filter:blur(3px)}
.pill:hover{background:var(--teal);color:#000}
.pill u{text-decoration-thickness:1px;text-underline-offset:.25em}
.pill svg{width:15px;height:15px;fill:currentColor;flex:none}

/* ---------------- generic pieces ---------------- */
.split{display:grid;gap:2rem;align-items:center}
.tealbox{background:var(--teal);color:#fff;padding:1.4rem 1.6rem;border-radius:3px;
  font-size:1rem;line-height:1.8}
.btn{display:inline-block;border:1px solid var(--teal);background:transparent;
  color:var(--teal);text-decoration:none;font-weight:700;font-size:.74rem;
  letter-spacing:.14em;padding:.6rem 1.2rem;border-radius:999px;margin-top:.9rem}
.btn:hover{background:var(--teal);color:#000}
.btn.solid{background:var(--teal);color:#000}
.btn.solid:hover{background:var(--teal-deep);color:#fff}

.cards{display:grid;gap:1.4rem}
.card{border:1px solid var(--teal);border-radius:4px;overflow:hidden;
  background:rgba(0,0,0,.55);display:flex;flex-direction:column}
.band.light .card{background:rgba(255,255,255,.92)}
.card picture img{aspect-ratio:4/3;object-fit:cover}
.card-b{padding:1.1rem 1.2rem 1.4rem;display:flex;flex-direction:column;flex:1}
.card h3{color:var(--teal);font-size:1.05rem;letter-spacing:.12em;margin-bottom:.5rem}
.card p{margin:0 0 .6rem;font-size:.95rem;line-height:1.75}
.card .btn{margin-top:auto;align-self:flex-start}
.eyebrow{color:var(--teal);font-size:.7rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;margin:0 0 .5rem}

.keywords{list-style:none;margin:0;padding:0;text-align:right;color:var(--off);
  font-size:1.05rem;line-height:2.2;letter-spacing:.1em}
.band.light .keywords{color:var(--ink)}

.poem{font-size:1rem;line-height:2;letter-spacing:.06em}
.poem p{margin:0 0 1.4rem}

form{margin:0}
label{display:block;font-size:.8rem;letter-spacing:.1em;margin-bottom:.3rem}
input[type=text],input[type=email],input[type=tel],textarea,select{
  width:100%;padding:.7rem .8rem;min-height:44px;border:1px solid var(--teal);
  border-radius:3px;font:inherit;font-size:.95rem;background:rgba(255,255,255,.9);
  color:var(--ink);margin-bottom:.8rem;letter-spacing:.03em}
textarea{min-height:90px;resize:vertical}
button[type=submit]{border:0;background:var(--teal);color:#000;font:inherit;
  font-weight:700;letter-spacing:.12em;font-size:.8rem;padding:.7rem 1.6rem;
  border-radius:999px;cursor:pointer;min-height:44px}
button[type=submit]:hover{background:var(--teal-deep);color:#fff}
.msg{margin-top:.8rem;padding:.8rem;border-radius:3px;display:none;font-size:.9rem}
.msg.ok{display:block;background:rgba(82,195,193,.18);border:1px solid var(--teal)}
.msg.err{display:block;background:rgba(192,112,95,.18);border:1px solid #C0705F}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.crumbs{font-size:.76rem;letter-spacing:.1em;color:#8a8a8a;padding:1rem 0 0}
.crumbs ol{list-style:none;margin:0;padding:0}
.crumbs li{display:inline}
.crumbs a{color:#9a9a9a;text-decoration:underline}
.crumbs li+li::before{content:"/";color:#4a4a4a;margin:0 .5rem}
.band.light + .crumbs{color:var(--ink)}

footer{background:var(--teal-deep);color:#fff;padding:3rem 0 2.6rem;font-size:.92rem}
footer h4{color:#fff;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  margin:0 0 .8rem;font-weight:700}
footer a{color:#fff;text-decoration:underline}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:.45rem}
.fgrid{display:grid;gap:2rem;grid-template-columns:1fr}
.fbot{border-top:1px solid rgba(255,255,255,.28);margin-top:2rem;padding-top:1.2rem;
  font-size:.8rem;letter-spacing:.08em}

@media (min-width:40rem){
  .cards.c2{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr 1fr;gap:2.6rem}
}
@media (min-width:56rem){
  .cards.c3{grid-template-columns:repeat(3,1fr)}
  .band{padding:5rem 0}
  .fgrid{grid-template-columns:1.6fr 1fr 1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;
  scroll-behavior:auto!important}}
