a:focus-visible,button:focus-visible{outline:3px solid var(--brand);outline-offset:3px;}
.btn{
    display:inline-block;
    padding:13px 30px;
    border-radius:999px;
    background:var(--brand);
    color:#fff;
    font-size:.875rem;
    font-weight:700;
    letter-spacing:.03em;
    text-decoration:none;
    transition:background .2s ease;
  }
.btn:hover,.btn:focus-visible{background:var(--brand-dark);}
.btn-light{background:#fff;color:var(--ink);}
.btn-light:hover,.btn-light:focus-visible{background:#ececec;}
.eyebrow{
    display:block;
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#8a8a8a;
    margin:0 0 14px;
  }
/* ================= HERO ================= */
.hero{position:relative;overflow:hidden;background:#111;}
.hero-bg{position:absolute;inset:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:60% center;}
/* Photo is dark on the left, couple sits centre-right - the gradient keeps
     the copy legible without covering their faces. */
.hero-bg::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(12,12,12,.86) 0%,rgba(12,12,12,.66) 38%,rgba(12,12,12,.18) 72%,rgba(12,12,12,.30) 100%);
  }
.hero-inner{
    position:relative;
    max-width:var(--maxw);
    margin:0 auto;
    padding:clamp(88px,13vw,150px) 22px;
  }
.hero-copy{max-width:560px;}
.hero .eyebrow{color:rgba(255,255,255,.72);}
.hero h1{
    margin:0 0 20px;
    font-family:var(--font-display);
    font-size:clamp(2.4rem,5.6vw,4.25rem);
    line-height:1.04;
    font-weight:600;
    color:#fff;
    letter-spacing:-.01em;
  }
.hero p{
    margin:0 0 32px;
    max-width:470px;
    font-size:1.0625rem;
    color:rgba(255,255,255,.9);
  }
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;}
@media(max-width:700px){
.hero-bg::after{background:linear-gradient(180deg,rgba(12,12,12,.62) 0%,rgba(12,12,12,.78) 100%);}
.hero-copy{max-width:none;}
}
/* ================= STRAPLINE ================= */
.strapline{background:var(--bg-alt);border-bottom:1px solid var(--line);text-align:center;padding:22px;}
.strapline p{
    margin:0;
    font-family:var(--font-display);
    font-style:italic;
    font-size:clamp(1rem,2vw,1.1875rem);
    line-height:1.5;
    color:var(--ink);
  }
/* ================= ABOUT ================= */
.about{padding:86px 0 24px;text-align:center;}
.about h2{
    margin:0 0 24px;
    font-family:var(--font-display);
    font-size:clamp(1.875rem,3.6vw,2.625rem);
    line-height:1.15;
    font-weight:600;
    color:var(--ink);
  }
.about p{max-width:790px;margin:0 auto 18px;}
.about p:last-child{margin-bottom:0;}
/* ================= AWARDS ================= */
.awards{padding:58px 0 76px;text-align:center;}
.awards .eyebrow{margin-bottom:26px;}
.awards-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(18px,4vw,46px);}
.awards-row img{height:clamp(76px,10vw,112px);width:auto;object-fit:contain;}
/* ================= SERVICES ================= */
.services{background:var(--bg-alt);border-top:1px solid var(--line);padding:84px 0 90px;}
.section-head{text-align:center;margin-bottom:44px;}
.section-head h2{
    margin:0 0 14px;
    font-family:var(--font-display);
    font-size:clamp(1.875rem,3.6vw,2.625rem);
    line-height:1.15;
    font-weight:600;
    color:var(--ink);
  }
.section-head p{margin:0 auto;max-width:680px;}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
@media(max-width:1024px){
.grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:820px){
.grid{grid-template-columns:repeat(2,1fr);gap:20px;}
}
@media(max-width:560px){
.grid{grid-template-columns:1fr;}
}
.card{
    display:flex;flex-direction:column;
    background:var(--bg);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    transition:transform .25s ease, box-shadow .25s ease;
  }
.card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.09);}
.card .thumb{aspect-ratio:1/1;overflow:hidden;background:var(--bg-alt);}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.card:hover .thumb img{transform:scale(1.05);}
.card .content{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1;}
.card h3{
    margin:0 0 8px;
    font-family:var(--font-display);
    font-size:1.1875rem;font-weight:600;line-height:1.28;color:var(--ink);
  }
.card p{margin:0 0 18px;font-size:.9rem;flex:1;}
.card .btn{align-self:flex-start;padding:10px 22px;font-size:.8125rem;}
.services-foot{text-align:center;margin-top:46px;}
/* ================= CLOSING CTA ================= */
.closing{position:relative;overflow:hidden;background:var(--ink);text-align:center;}
.closing-bg{position:absolute;inset:0;}
.closing-bg img{width:100%;height:100%;object-fit:cover;opacity:.3;}
.closing-inner{position:relative;padding:92px 22px 96px;}
.closing h2{
    margin:0 0 14px;
    font-family:var(--font-display);
    font-size:clamp(1.75rem,3.6vw,2.5rem);
    line-height:1.15;font-weight:600;color:#fff;
  }
.closing p{margin:0 auto 30px;max-width:560px;color:rgba(255,255,255,.88);}
/* ================= SOCIAL ================= */
.social{padding:72px 0 80px;text-align:center;}
.social h2{
    margin:0 0 10px;
    font-family:var(--font-display);
    font-size:clamp(1.5rem,3vw,2.125rem);
    font-weight:600;line-height:1.2;color:var(--ink);
  }
.social p{margin:0 0 26px;}
.social-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.social-links a{
    display:inline-block;padding:11px 26px;
    border:1px solid var(--line);border-radius:999px;
    font-size:.875rem;font-weight:700;letter-spacing:.02em;
    text-decoration:none;color:var(--ink);
    transition:border-color .2s ease, background .2s ease;
  }
.social-links a:hover{border-color:var(--brand);background:var(--bg-alt);}
/* ================= NEWSLETTER ================= */
.newsletter{background:var(--bg-alt);border-top:1px solid var(--line);padding:56px 0;text-align:center;}
.newsletter h2{
    margin:0 0 18px;
    font-family:var(--font-display);
    font-size:clamp(1.375rem,2.6vw,1.75rem);
    font-weight:600;color:var(--ink);
  }
.nl-form{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;}
.nl-form input{
    width:min(340px,100%);
    padding:13px 18px;
    border:1px solid #d5d5d5;
    border-radius:999px;
    font-family:var(--font-body);
    font-size:.9375rem;
    color:var(--ink);
    background:#fff;
  }
.nl-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(40,38,38,.12);}
.nl-form button{border:none;cursor:pointer;font-family:var(--font-body);}
@media(prefers-reduced-motion:reduce){
.card:hover{transform:none;}
.card:hover .thumb img{transform:none;}
}
