/* Shared additions for the live site */
[hidden]{display:none !important}
.ck{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:720px;margin:0 auto;background:#FFFFFF;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.18);padding:18px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.ck p{margin:0;font-size:15px;line-height:1.5;color:#1D1D1F;flex:1 1 280px}
.ck a{text-decoration:underline}
.ck-btns{display:flex;gap:10px}
.ck .btn{font-weight:700;min-height:44px;padding:0 20px;font-size:15px;border:0;cursor:pointer;font-family:inherit}
.ck .btn-line{border:1px solid #D2D2D7;background:#FFFFFF;color:#1D1D1F}
@media (max-width:640px){.ck{bottom:84px}.ck-btns{width:100%}.ck .btn{flex:1 1 0}}
.fbtn{background:#F5F5F7;color:#1D1D1F}
.fbtn[aria-pressed="true"]{background:#1D1D1F;color:#FFFFFF}
/* Live Trustindex widget: no dashed outline, sits half over the photo (offset set in site.js) */
.rv-media{padding-bottom:0 !important}
.rv-live{position:relative !important;left:auto !important;right:auto !important;bottom:auto !important;border:0 !important;background:none !important;box-shadow:none !important;padding:0 !important;border-radius:0 !important;margin:-110px clamp(16px,3vw,40px) 0;min-height:200px}
@media (max-width:640px){.rv-live{margin-inline:12px !important}}
.map-live{position:relative;overflow:hidden}
.form-msg{margin:0;font-size:15px;color:#1D1D1F;background:#FFFFFF;border-radius:14px;padding:14px 16px}
/* Logo strip */
html,body{overflow-x:clip}
.marquee{animation-duration:120s !important}
@media (prefers-reduced-motion:reduce){.marquee{animation:none !important}}
.logo-band .logo{display:block;width:auto;flex:0 0 auto;filter:grayscale(1) brightness(.7);opacity:.75;transition:opacity .2s}
.logo-band:hover .logo{opacity:.95}
.marquee-group{display:flex;align-items:center;gap:clamp(112px,12vw,220px) !important;padding-right:clamp(112px,12vw,220px) !important}
.marquee{display:flex;width:max-content;animation:rh-marquee 120s linear infinite}
.logo-band:hover .marquee{animation-play-state:paused}
@keyframes rh-marquee{to{transform:translateX(-50%)}}
/* Logos are pre-coloured one flat grey, so no filter needed */
.logo-band .logo{filter:none !important;opacity:1 !important}
.logo-band:hover .logo{opacity:1 !important}
.marquee{animation-duration:160s !important}

/* Hero text card: even line lengths */
.ph-hero .hero-line{text-wrap:balance;box-sizing:border-box}

/* Hover: a small lift on buttons and cards, and a slow zoom on card photos */
.btn,a.card,a.shot,a.near,.hero-feats li,.g-btn,.contact-row{transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s ease,background-color .2s,color .2s,border-color .2s}
a.card .cover,a.shot .cover,.g-btn .cover,.g-btn img{transition:transform .6s cubic-bezier(.2,.7,.3,1)}
@media (hover:hover){
  .btn:hover{transform:translateY(-2px)}
  .btn:active{transform:translateY(0)}
  a.card:hover,a.shot:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.10)}
  a.near:hover,.hero-feats li:hover,.contact-row:hover{transform:translateY(-3px)}
  a.card:hover .cover,a.shot:hover .cover,.g-btn:hover img{transform:scale(1.04)}
  .dragging a.card:hover{transform:none;box-shadow:none}
}
a.card .ph,a.shot .ph,.g-btn{overflow:hidden}

/* Scroll: sections fade up gently as they come into view (only when JavaScript has started) */
html.rv-on [data-rv]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
html.rv-on [data-rv].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.rv-on [data-rv]{opacity:1 !important;transform:none !important;transition:none !important}
  .btn,a.card,a.shot,a.near,.hero-feats li,.g-btn,.contact-row,a.card .cover,a.shot .cover,.g-btn img{transition:none !important;transform:none !important}
}

/* Section intros (heading left, short text right): bottom aligned, text pushed to the right edge */
@media (min-width:961px){
  .two.sec-head{align-items:end}
  .two.sec-head > :last-child{justify-self:end;width:fit-content;max-width:640px}
}

/* Pricing sections sit inside a grey panel; the price cards inside it turn white */
.price-panel{background:#F5F5F7;border-radius:32px;padding:clamp(28px,4.5vw,80px)}
.price-panel [style*="background: #F5F5F7"]{background:#FFFFFF !important}
@media (max-width:640px){.price-panel{border-radius:24px;padding:24px 16px;margin-inline:-4px}}

/* Clickable photo cards open the lightbox */
.types .ph[data-full]{cursor:zoom-in}
.types .ph[data-full]:focus-visible{outline:2px solid #1D1D1F;outline-offset:3px}
.lb{position:fixed;inset:0;z-index:200;background:rgba(10,10,12,0.94);display:flex;align-items:center;justify-content:center}
.lb-img{width:min(88vw,1400px);height:min(80vh,900px);border-radius:12px;display:flex;align-items:center;justify-content:center}
.lb-x,.lb-nav{position:absolute;width:52px;height:52px;border-radius:999px;border:0;background:rgba(255,255,255,0.12);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.lb-x{top:20px;right:20px}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}
.lb-x:hover,.lb-nav:hover{background:rgba(255,255,255,0.22)}
.lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#A1A1A6;font-size:14px;font-weight:600}
@media (max-width:640px){.lb-nav{top:auto !important;bottom:20px;transform:none !important}}

.g-more{display:flex;justify-content:center;margin-top:clamp(32px,3vw,48px)}
.g-more .btn{font-family:inherit;cursor:pointer;background:#FFFFFF}
.chat-btn,.chat-btn *,button{font-family:inherit}
/* Keep the hidden chat toggle fixed on screen so clicking the button never scrolls the page */
.chat-t{position:fixed !important;right:24px;bottom:24px;width:1px;height:1px;opacity:0;pointer-events:none;margin:0}
.mnav-t{position:fixed !important;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;margin:0}
/* Header logo: name with PHOTOGRAPHY spread underneath to the same width; on phones keep the name, drop the header button (the bottom bar has Call and WhatsApp) */
.brand-sub{display:flex;justify-content:space-between;margin-top:3px;font-size:9.5px;font-weight:700;line-height:1;color:#6E6E73}
@media (max-width:960px){.brand-name{display:block !important}.brand-sub{display:flex !important}}
@media (max-width:640px){.nav-cta{display:none !important}}
