@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--navy:#102b35;--ink:#18313a;--paper:#f5f5ef;--green:#b7cb94;--line:#ced5cf;--muted:#596b6d;--pad:clamp(24px,4.5vw,76px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:450;line-height:1.08;letter-spacing:-.045em}h1{font-size:clamp(44px,5.8vw,88px)}h2{font-size:clamp(36px,4.1vw,62px)}h3{font-size:26px;letter-spacing:-.03em}p+p{margin-top:20px}p{color:var(--muted)}:focus-visible{outline:3px solid #2ba5a0;outline-offset:5px}.skip{position:fixed;top:-80px;left:20px;padding:14px;background:white;z-index:100}.skip:focus{top:10px}.header{height:94px;display:flex;align-items:center;justify-content:space-between;gap:35px;padding:0 var(--pad);position:absolute;top:0;left:0;width:100%;z-index:30;color:white;border-bottom:1px solid #ffffff38;transition:background .2s}.header.scrolled{position:fixed;background:var(--navy);height:78px;box-shadow:0 1px 10px #0002}.brand{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.brand img{width:145px;height:auto;object-fit:contain}.brand>span{font-size:10px;letter-spacing:.46em;text-align:center}.header nav{display:flex;align-items:center;gap:clamp(16px,2vw,32px);font-size:14px}.header nav>a{padding-block:13px}.header nav>a:hover,.header nav>a[aria-current]{color:var(--green)}.nav-cta{border:1px solid #ffffff66;padding:12px 18px!important;display:flex;gap:24px}.menu-toggle{display:none}.hero{height: min(900px,100svh);min-height:720px;position:relative;background:var(--navy);color:white;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;inset:0;object-position:center 63%;animation:media-in 1.5s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#071e2bbd 0%,#0b26344d 85%),linear-gradient(0deg,#061e2bbb,transparent 50%,#061e2b66)}.hero-content{position:absolute;left:var(--pad);right:var(--pad);bottom:150px}.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:550;letter-spacing:.16em;text-transform:uppercase;margin-bottom:36px}.eyebrow>span{width:6px;height:6px;background:#8fa877;flex-shrink:0}.hero .eyebrow{color:#e0e7dc}.hero h1{max-width:1250px;line-height:1.05;font-size:clamp(48px,5.9vw,90px);letter-spacing:-.055em}.hero h1 span{display:block;animation:line-in .75s both}.hero h1 span+span{animation-delay:.1s}.hero-bottom{margin-top:36px;display:flex;justify-content:space-between;align-items:flex-end;gap:50px}.hero-bottom p{max-width:585px;color:#e0e8e9;font-size:17px;line-height:1.65}.hero-actions{display:flex;gap:12px;flex-shrink:0}.button,.outline-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:54px;padding:14px 21px;font-size:14px;font-weight:550;border:1px solid var(--green);background:var(--green);color:var(--navy);transition:background .2s,transform .2s}.button:hover{background:#cadbab;transform:translateY(-2px)}.outline-button{background:transparent;color:white;border-color:#ffffff73}.outline-button:hover{background:#ffffff15}.button span,.text-link span,.nav-cta span{font-size:21px;line-height:1}.hero-caption{position:absolute;bottom:0;left:var(--pad);right:var(--pad);height:76px;border-top:1px solid #ffffff44;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.13em}.hero-caption a{min-height:44px;display:flex;align-items:center;gap:18px}.section{padding:100px var(--pad)}.introduction{display:grid;grid-template-columns:1fr 3fr;gap:30px;padding-bottom:75px}.introduction .eyebrow{align-items:flex-start;max-width:180px;line-height:1.8}.introduction .eyebrow span{margin-top:8px}.introduction h2{font-size:clamp(34px,3.8vw,56px)}.introduction h2 span{color:#71827c}.intro-copy{display:flex;align-items:end;gap:60px;margin-top:30px}.intro-copy p{max-width:660px}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:12px 0;border-bottom:1px solid;min-height:44px;white-space:normal;font-size:14px;font-weight:600}.text-link:hover{color:#638345}.stats-section{padding-top:0;border-bottom:1px solid var(--line)}.stats-section>.eyebrow{display:none}.stats{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);padding-top:35px}.stats>div{border-right:1px solid var(--line);padding:0 22px}.stats>div:first-child{padding-left:0}.stats>div:last-child{border:0}.stats strong{font-size:clamp(36px,4vw,64px);font-weight:450;letter-spacing:-.07em}.stats p{font-size:13px;line-height:1.5;margin-top:8px}.note{font-size:12px;line-height:1.65;max-width:880px;margin-top:30px}.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:56px}.section-heading>p{max-width:355px}.discipline-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}.letter-display{height:500px;position:sticky;top:110px;background:var(--navy);color:var(--green);padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background-image:repeating-radial-gradient(ellipse at 130% 30%,transparent 0,transparent 34px,#ffffff09 35px,#ffffff09 36px)}.letter-nav{letter-spacing:.85em;font-size:18px}.letter-display strong{font-size:270px;line-height:1;font-weight:450}.letter-display>span{font-size:12px;letter-spacing:.2em}.discipline-step{padding:55px 0;border-top:1px solid var(--line);min-height:220px;display:flex;gap:24px;align-items:center}.discipline-step h3{font-size:37px;margin:14px 0}.discipline-step small{font-size:12px;color:#718074;letter-spacing:.1em}.step-letter{display:none}.services{background:#e8ede6}.service-explorer{display:grid;grid-template-columns:1fr 1.12fr;gap:65px;align-items:start}.service-row{display:block;border-top:1px solid #bec9c1;padding:34px 0;min-height:190px}.service-row:last-child{border-bottom:1px solid #bec9c1}.service-list h3{font-size:30px;margin-bottom:16px;transition:color .2s}.service-list p{font-size:15px;max-width:540px}.service-cue{display:inline-flex;align-items:center;gap:14px;margin-top:18px;min-height:32px;font-size:14px;font-weight:600;color:#365b3f;border-bottom:1px solid;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}.service-cue>b{font-size:18px;font-weight:400}.service-row:hover h3,.service-row:focus h3{color:#365b3f}.service-row:hover .service-cue,.service-row:focus .service-cue{opacity:1;transform:none}@media(hover:none){.service-cue{opacity:1;transform:none}}.service-visual{position:sticky;top:110px}.service-stage{position:relative;height:520px;background:var(--navy);overflow:hidden}.service-frame{position:absolute;inset:0;opacity:0;transition:opacity .5s}.service-frame.is-active{opacity:1}.service-frame img{width:100%;height:100%}.service-overlay{position:absolute;inset:0;background:linear-gradient(0deg,#051e30f2,#051e3066 48%,transparent);display:flex;flex-direction:column;justify-content:end;padding:35px;color:white}.service-overlay>span{font-size:11px;letter-spacing:.13em;color:var(--green)}.service-overlay h3{font-size:32px;margin:18px 0 14px}.service-overlay p{color:#b8c9ca;font-size:15px;max-width:520px}.service-overlay .progress-track span{width:11.11%}.process{background:var(--navy);color:white}.process .section-heading p{color:#adc0c2}.process-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.process-visual{height:520px;position:sticky;top:110px;overflow:hidden}.process-visual>img{width:100%;height:100%}.process-overlay{position:absolute;inset:0;background:linear-gradient(0deg,#051e30ed,transparent);display:flex;flex-direction:column;justify-content:end;padding:35px}.process-number{font-size:100px;letter-spacing:-.06em;color:var(--green)}.process-overlay h3{font-size:40px}.progress-track{height:2px;background:#ffffff44;margin-top:25px}.progress-track span{display:block;width:16.66%;height:100%;background:var(--green);transition:width .4s}.timeline article{display:flex;gap:30px;align-items:center;min-height:190px;border-top:1px solid #ffffff30}.timeline article>span{font-size:14px;color:var(--green)}.timeline h3{font-size:32px;margin-bottom:14px}.timeline p{color:#b7c7c8}.maldives{display:grid;grid-template-columns:1.1fr 1fr;background:#dbe4d4}.maldives>img{width:100%;height:100%;min-height:750px}.maldives .section{padding:80px 65px}.maldives h2{font-size:clamp(56px,6.4vw,96px);margin-bottom:35px}.maldives em{font-style:normal;color:#68834d}.maldives .button{margin-top:30px;background:var(--navy);color:white;border-color:var(--navy)}.safety-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-bottom:35px}.safety-grid article{border-top:1px solid var(--line);padding-top:22px}.why-grid span{font-size:12px;color:#658352}.safety-grid h3{margin:0 0 20px}.safety-grid p{font-size:15px}.why{border-block:1px solid var(--line)}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:55px;gap:50px}.why-grid article{border-top:1px solid var(--line);padding-top:20px}.why-grid h3{margin:25px 0 15px}.people{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.people>img{height:520px;width:100%}.people h2{margin-bottom:30px}.people .text-link{margin-top:25px}.closing{background:var(--green);position:relative;overflow:hidden}.closing h2{font-size:clamp(40px,5.5vw,82px);max-width:1050px;margin-bottom:40px}.closing .button{background:var(--navy);color:white;border-color:var(--navy)}.closing .eyebrow>span{background:var(--navy)}.profile-link{display:inline-flex;align-items:center;gap:20px;margin-left:35px;min-height:44px;font-size:14px;border-bottom:1px solid var(--ink)}.profile-link small{font-size:11px}.footer{background:#0b222c;color:#dbe4e4;padding-top:65px;padding-bottom:25px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr .6fr;gap:60px}.footer h3{font-size:14px;letter-spacing:0;margin-bottom:25px;color:#b8cb9d}.footer p,.footer address{color:#acbec0;font-size:14px;line-height:1.9;margin-top:25px}.footer a:not(.brand){display:block;font-size:14px;min-height:34px}.footer address{margin:0 0 16px;font-style:normal}.footer-bottom{margin-top:60px;border-top:1px solid #ffffff26;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#9bb0b4}.footer-bottom a{font-size:12px!important}.inner .header{position:sticky;background:var(--navy)}.inner-intro{padding-top:80px;padding-bottom:75px;border-bottom:1px solid var(--line)}.inner-intro h1{max-width:1150px}.lead{font-size:21px;max-width:760px;margin-top:30px;line-height:1.6}.narrow{max-width:1050px;margin:auto}.narrow h2{margin-bottom:30px}.narrow .text-link{margin-right:30px;margin-top:25px}.contact-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:90px}.contact-layout h2{margin-bottom:28px}.contact-email{display:block;font-size:clamp(20px,2.2vw,32px);margin:30px 0}.contact-layout address{font-style:normal;color:var(--muted);margin-bottom:20px}.form-notice{padding:20px;background:#e5ebdf;font-size:14px;margin-bottom:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-grid label{font-size:14px;font-weight:550}.form-grid label>span{font-weight:400;color:var(--muted);font-size:12px}.full{grid-column:1/-1}input,textarea,select{display:block;width:100%;border:1px solid #bbc7bf;border-radius:0;background:transparent;padding:13px;margin-top:8px;color:var(--navy);min-height:50px}textarea{resize:vertical}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#a93725;background:#fbeee8}.honey{position:absolute;left:-9999px;overflow:hidden;width:1px;height:1px}#form-status{margin:20px 0;color:#8b3424}.reveal-in{animation:line-in .7s both}@keyframes line-in{from{opacity:.25;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes media-in{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(min-width:1600px){.hero{max-height:1000px}.hero-content{bottom:170px}}@media(max-width:1150px){.header nav{gap:16px;font-size:12px}.brand img{width:120px}.hero-bottom{align-items:start;flex-direction:column;gap:25px}.hero-content{bottom:120px}.hero{min-height:800px}.hero h1{font-size:6.5vw}.hero-bottom p{max-width:650px}.section{padding-top:75px;padding-bottom:75px}.introduction{grid-template-columns:1fr 3fr}.intro-copy{display:block}.intro-copy .text-link{margin-top:20px}.discipline-layout,.service-explorer,.process-layout,.people{gap:40px}.maldives .section{padding:65px 35px}.stats>div{padding:0 13px}.contact-layout{gap:45px}.header .nav-cta{gap:15px}}
@media(max-width:900px){.header{height:80px}.menu-toggle{display:flex;gap:16px;align-items:center;border:1px solid #ffffff66;background:transparent;color:white;padding:10px 16px;min-height:44px}.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);padding:20px var(--pad) 30px;font-size:17px;flex-direction:column;align-items:stretch}.header nav.open{display:flex}.header nav>a{min-height:48px}.header nav .nav-cta{justify-content:space-between}.introduction{display:block}.introduction .eyebrow{max-width:none}.intro-copy{max-width:650px}.section-heading{align-items:start;gap:30px}.section-heading>p{max-width:280px}.stats{grid-template-columns:repeat(3,1fr);gap:30px 0}.stats>div:nth-child(4){padding-left:0}.stats>div:nth-child(3){border:0}.stats strong{font-size:55px}.service-explorer{grid-template-columns:1fr 1fr;gap:25px}.service-row{min-height:0;padding:28px 0}.service-list h3{font-size:24px}.service-stage{height:430px}.service-overlay{padding:22px}.service-overlay h3{font-size:25px;margin:14px 0 12px}.maldives{grid-template-columns:1fr 1fr}.maldives>img{min-height:600px}.footer-top{gap:30px}.contact-layout{grid-template-columns:1fr}.contact-layout>div{max-width:650px}}
@media(max-width:760px){.section{padding:65px var(--pad)}.hero{height:auto;min-height:820px}.hero-content{top:165px;bottom:auto}.hero h1{font-size:clamp(43px,8.7vw,64px)}.hero h1 span{display:inline}.hero h1 span+span:before{content:' '}.hero-bottom{margin-top:28px}.hero-bottom p{font-size:16px}.hero-actions{flex-wrap:wrap;gap:12px}.hero .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:27px}.hero-caption{height:70px;font-size:10px}.hero-caption>span:last-child{display:none}.hero-image{object-position:58% center}.hero-shade{background:linear-gradient(90deg,#061e2bd9,#061e2b70),linear-gradient(0deg,#061e2b8a,transparent)}.section-heading{display:block;margin-bottom:35px}.section-heading>p{max-width:100%;margin-top:25px}.eyebrow{margin-bottom:25px}.introduction h2{font-size:35px}.stats-section{padding-top:0}.stats strong{font-size:43px}.stats p{font-size:12px}.note{font-size:12px}.discipline-layout{display:block}.letter-display{display:none}.discipline-step{min-height:0;padding:28px 0;gap:24px}.step-letter{display:block;font-size:60px;color:#7b9466;width:48px;flex-shrink:0}.discipline-step h3{font-size:29px;margin:6px 0 12px}.discipline-step small{font-size:10px}.service-explorer{display:block}.service-visual{display:none}.service-list h3{font-size:27px}.service-row{padding:26px 0}.process-layout{display:flex;flex-direction:column;gap:30px}.process-visual{position:relative;top:0;height:320px}.process-number{font-size:60px}.process-overlay h3{font-size:30px}.timeline article{min-height:145px}.timeline h3{font-size:27px}.maldives{display:flex;flex-direction:column}.maldives>img{height:360px;min-height:0}.maldives .section{padding:55px var(--pad)}.maldives h2{font-size:66px}.safety-grid{gap:30px}.safety-grid h3{font-size:24px}.safety-grid p{font-size:14px}.why-grid{grid-template-columns:1fr 1fr;gap:30px}.why-grid h3{font-size:23px}.why-grid p{font-size:14px}.people{grid-template-columns:1fr;gap:35px}.people>img{height:360px}.closing h2{font-size:42px}.profile-link{margin:24px 0 0;display:flex;width:fit-content;gap:12px}.footer-top{grid-template-columns:1fr 1fr;gap:40px 20px}.footer-top>div:first-child{grid-column:1/-1}.footer-bottom{align-items:start;flex-direction:column;gap:8px;margin-top:35px}.inner-intro{padding-top:55px}.inner-intro h1{font-size:44px;overflow-wrap:break-word}.lead{font-size:18px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.contact-layout{gap:40px}.contact-layout h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.letter-display,.process-visual,.service-visual{position:relative;top:0}.letter-display{height:500px}}

/* Editorial section hierarchy: natural labels and a single reading column. */
.eyebrow{
  gap:14px;
  margin-bottom:28px;
  font-size:16px;
  font-weight:500;
  letter-spacing:-.01em;
  line-height:1.4;
  text-transform:none;
}
.eyebrow>span{
  width:42px;
  height:1px;
  background:currentColor;
  opacity:.55;
}
.section-heading{
  display:block;
  margin-bottom:56px;
}
.section-heading>p{
  max-width:650px;
  margin-top:26px;
  font-size:18px;
  line-height:1.65;
}
.hero .eyebrow{
  font-size:15px;
  letter-spacing:-.01em;
}
.hero-caption{
  font-size:13px;
  letter-spacing:0;
}
.hero-caption-simple{justify-content:center}
.service-overlay>span,
.discipline-step small,
.letter-display>span{
  letter-spacing:0;
  text-transform:none;
}
@media(max-width:900px){
  .section-heading>p{max-width:620px}
}
@media(max-width:760px){
  .eyebrow,
  .hero .eyebrow{
    margin-bottom:22px;
    font-size:15px;
    letter-spacing:-.01em;
  }
  .eyebrow>span{width:28px}
  .section-heading{margin-bottom:40px}
  .section-heading>p{
    max-width:100%;
    margin-top:20px;
    font-size:17px;
  }
  .hero-caption{font-size:12px}
}

/* DEMCO disciplines: a full-width typographic sequence inspired by the
   references' oversized type and staged editorial transitions. */
.disciplines{
  background:var(--navy);
  color:#edf2ef;
}
.disciplines .eyebrow{color:var(--green)}
.disciplines .section-heading>p{color:#b7c7c8}
.discipline-field{
  border-top:1px solid #ffffff2e;
  border-bottom:1px solid #ffffff2e;
}
.discipline-sequence{display:block}
.discipline-step{
  display:grid;
  grid-template-columns:minmax(90px,.45fr) 1fr minmax(260px,.9fr);
  gap:clamp(24px,4vw,72px);
  align-items:center;
  min-height:150px;
  padding:30px 0;
  border-top:1px solid #ffffff2e;
  color:#edf2ef;
  transition:background .2s ease,padding .2s ease;
}
.discipline-step:first-child{border-top:0}
.discipline-step:hover{
  padding-inline:22px;
  background:#173945;
}
.discipline-step .step-letter{
  display:block;
  width:auto;
  color:var(--green);
  font-size:clamp(52px,5.5vw,84px);
  font-weight:450;
  line-height:1;
}
.discipline-step h3{
  margin:0;
  color:#edf2ef;
  font-size:clamp(30px,3.2vw,48px);
}
.discipline-step p{
  max-width:420px;
  color:#b7c7c8;
  font-size:17px;
}
@media(max-width:760px){
  .discipline-step{
    grid-template-columns:58px 1fr;
    gap:18px;
    min-height:0;
    padding:28px 0;
  }
  .discipline-step:hover{padding-inline:0;background:transparent}
  .discipline-step .step-letter{font-size:50px}
  .discipline-step h3{font-size:29px}
  .discipline-step p{
    grid-column:2;
    margin-top:-10px;
    font-size:16px;
  }
}
.footer a:not(.brand){min-height:44px;display:flex;align-items:center}.footer-bottom a{min-height:44px}

/* Homepage refinements. */
.hero{
  height:100vh;
  height:100svh;
  min-height:0;
  max-height:none;
}
.introduction{
  display:block;
}
.introduction .eyebrow{
  max-width:none;
  align-items:center;
}
.introduction .eyebrow span{
  margin-top:0;
}
.intro-copy{
  display:block;
  max-width:650px;
  margin-top:26px;
}

/* Key projects. */
.key-projects{
  background:var(--paper);
}
.key-projects .section-heading{
  margin-bottom:48px;
}
.project-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:48px 24px;
}
.project-card{
  min-width:0;
}
.project-image{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#d8dfd9;
}
.project-image img{
  width:100%;
  height:100%;
  transition:transform .45s ease;
}
.project-card:hover .project-image img{
  transform:scale(1.025);
}
.project-card figcaption{
  padding-top:18px;
  border-top:1px solid var(--line);
}
.project-card h3{
  font-size:clamp(21px,2vw,28px);
  line-height:1.2;
}
@media(max-width:900px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .project-grid{grid-template-columns:1fr;gap:38px}
  .key-projects .section-heading{margin-bottom:35px}
}

/* Services directory. */
.service-directory{
  background:#e8ede6;
}
.service-directory .section-heading{
  margin-bottom:48px;
}
.service-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:52px 24px;
}
.service-card{
  display:block;
  min-width:0;
}
.service-card-image{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#d7dfd7;
}
.service-card-image img{
  width:100%;
  height:100%;
  transition:transform .45s ease;
}
.service-card:hover .service-card-image img{
  transform:scale(1.025);
}
.service-card figcaption{
  display:block;
  padding-top:18px;
  border-top:1px solid #bec9c1;
}
.service-card h3{
  font-size:clamp(21px,2vw,28px);
  line-height:1.2;
}
.service-card p{
  max-width:430px;
  margin-top:10px;
  font-size:15px;
  line-height:1.55;
}
@media(max-width:900px){
  .service-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .service-card-grid{grid-template-columns:1fr;gap:40px}
  .service-directory .section-heading{margin-bottom:35px}
}


@media(max-width:900px){.safety-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.safety-grid{grid-template-columns:1fr}}

/* Mobile hero: the content sets the height, so the copy and buttons are never
   clipped by the hero's overflow when they are taller than the viewport. */
@media(max-width:760px){
  .hero{
    height:auto;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
  }
  .hero-content{
    position:relative;
    inset:auto;
    width:100%;
    padding:112px var(--pad) 64px;
  }
  .hero h1{font-size:clamp(38px,8.6vw,64px)}
  .hero-bottom{margin-top:32px;gap:20px}
  .hero-bottom>p{display:none}
  .hero-actions{width:100%}
  .hero-actions>a{flex:1 1 200px}
}

/* hero supporting content entrance */
.hero-bottom>p{animation:line-in .75s .28s both}
.hero-actions>a{animation:line-in .7s both}
.hero-actions>a:nth-child(1){animation-delay:.42s}
.hero-actions>a:nth-child(2){animation-delay:.54s}
@media(prefers-reduced-motion:reduce){.hero-bottom>p,.hero-actions>a{animation:none}}

/* vertically stacked hero actions */
.hero-bottom{flex-direction:column;align-items:flex-start;gap:24px}


/* Unicode arrow characters render as colour emoji on iOS, so the arrows are
   inline SVG that inherit the surrounding text colour instead. */
.icon-arrow{
  width:1em;
  height:1em;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
  vertical-align:-.12em;
}
.button .icon-arrow,
.text-link .icon-arrow,
.nav-cta .icon-arrow,
.profile-link .icon-arrow{width:19px;height:19px}
.service-cue .icon-arrow{width:17px;height:17px}
.contact-email .icon-arrow{width:.8em;height:.8em;stroke-width:2}
