/* ===== WordPress additions (content from the editor, admin bar, alignments) ===== */
.gwmRich{max-width:900px;margin:0 auto;}
.gwmRichWide{max-width:none;}
.gwmRich > .lvH2{margin-bottom:26px;}
.bdBody ul,.bdBody ol{margin:0 0 20px;padding-left:1.3em;}
.bdBody li{margin:0 0 8px;line-height:1.7;}
.bdBody img{max-width:100%;height:auto;border-radius:18px;}
.bdBody h4{margin:28px 0 12px;font-size:clamp(18px,1.5vw,21px);font-weight:600;color:var(--head);}
.bdBody h5,.bdBody h6{margin:22px 0 10px;font-size:17px;font-weight:600;color:var(--head);}
.bdBody table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:15px;}
.bdBody th,.bdBody td{padding:12px 14px;border:1px solid var(--line-2);text-align:left;vertical-align:top;}
.bdBody th{background:var(--bg-2);color:var(--head);font-weight:600;}
.bdBody blockquote{margin:0 0 22px;padding:18px 22px;border-left:3px solid var(--brass);background:var(--bg-2);border-radius:0 16px 16px 0;}
.bdBody > *:last-child{margin-bottom:0;}
.gwmTm .gwmTmTxt .lvH2{margin-bottom:18px;}
.gwmTm .gwmTmTxt .btnInfinity{margin-top:24px;}
.gwmTm .gwmTmMedia img{display:block;width:100%;height:auto;}
.gwmTmNo{grid-template-columns:minmax(0,1fr) !important;}
.gwmTmLeft{grid-template-columns:1.1fr .9fr;}
.alignleft{float:left;margin:0 20px 16px 0;}
.alignright{float:right;margin:0 0 16px 20px;}
.aligncenter{display:block;margin-left:auto;margin-right:auto;}
.wp-caption{max-width:100%;}
.screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
body.admin-bar .siteHeader{top:32px;}
@media (max-width:782px){body.admin-bar .siteHeader{top:46px;}}
.pcPrice{margin:-4px 0 14px;font-size:26px;font-weight:600;color:var(--head);}
.gwmPageSec{padding-top:clamp(20px,3vw,40px);}
.gwmAuditForm{display:grid;gap:4px;}

/* Case studies / anchors */
.gwmAnchor{display:block;position:relative;top:-110px;visibility:hidden}
.gwmRich .gwmLead{font-size:1.1em;color:var(--text,#fff)}
.gwmRich .gwmTable{overflow-x:auto;margin:24px 0}
.gwmRich .gwmTable table{width:100%;min-width:520px}

/* Contact Form 7 forms inside page content (e.g. Make Payment) */
.gwmRich .wpcf7{max-width:760px;margin:0 auto;padding:34px 32px 30px;border-radius:26px;background:var(--bg-2);border:1px solid color-mix(in srgb,var(--brass) 45%,transparent);box-shadow:0 40px 80px -50px rgba(0,0,0,.8)}
.gwmRich .wpcf7 .row{display:grid;grid-template-columns:200px 1fr;gap:6px 24px;align-items:center;margin:0 0 14px}
.gwmRich .wpcf7 p{margin:0}
.gwmRich .wpcf7 label{color:var(--muted);font-size:15px}
.gwmRich .wpcf7 input[type=text],.gwmRich .wpcf7 input[type=email],.gwmRich .wpcf7 input[type=tel],.gwmRich .wpcf7 input[type=number],.gwmRich .wpcf7 select,.gwmRich .wpcf7 textarea{width:100%;background:transparent;border:0;border-bottom:1.5px solid var(--line-2);border-radius:0;padding:12px 0;color:var(--text);font:inherit;font-size:16px;transition:border-color .3s}
.gwmRich .wpcf7 select{background:var(--bg-2);cursor:pointer}
.gwmRich .wpcf7 textarea{min-height:110px;resize:vertical}
.gwmRich .wpcf7 input:focus,.gwmRich .wpcf7 select:focus,.gwmRich .wpcf7 textarea:focus{outline:none;border-bottom-color:var(--brass)}
.gwmRich .wpcf7 input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-width:180px;padding:14px 30px;border:0;border-radius:999px;background:var(--brass);color:var(--on-accent);font:inherit;font-weight:500;font-size:16px;cursor:pointer;transition:filter .3s,transform .3s}
.gwmRich .wpcf7 input[type=submit]:hover{filter:brightness(1.08);transform:translateY(-1px)}
.gwmRich .wpcf7 .wpcf7-spinner{margin:0 0 0 12px}
.gwmRich .wpcf7 .wpcf7-not-valid-tip{font-size:13px;margin-top:6px}
.gwmRich .wpcf7 .wpcf7-response-output{margin:18px 0 0;border-radius:12px;padding:12px 16px;font-size:15px}
@media (max-width:640px){.gwmRich .wpcf7{padding:24px 18px}.gwmRich .wpcf7 .row{grid-template-columns:1fr}}
.gwmRich .wpcf7 .row:has(textarea){align-items:start}.gwmRich .wpcf7 .row:has(textarea) label{display:block;padding-top:12px}

/* ===== Consistent card media (all card grids) ===== */
.svCardArt.svImgPhoto{aspect-ratio:16/10;}
.svCardArt.svImgPhoto img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.svCard:hover .svCardArt.svImgPhoto img{transform:scale(1.04);}
.svCardArt.svImgIcon{display:flex;align-items:center;justify-content:center;height:190px;padding:24px;}
.svCardArt.svImgIcon img{display:block;width:auto;height:118px;max-width:82%;max-height:100%;object-fit:contain;}
.svGrid{align-items:stretch;}
.svCard{height:100%;}

/* Images inside text blocks / check items: never float into narrow text */
.lvChecks li img,.gwmTmTxt .bdBody img,.gwmRich .bdBody img,.svCardTxt img{float:none!important;display:block;max-width:100%;height:auto;margin:14px 0;border-radius:16px;}
.lvChecks li img.alignright,.lvChecks li img.alignleft{width:100%;object-fit:cover;aspect-ratio:3/2;}
.bdBody img.aligncenter{margin-left:auto;margin-right:auto;}
.bdBody img,.bdBody iframe,.bdBody video{max-width:100%;}
.bdBody iframe,.bdBody video{width:100%;}
.bdBody table{display:block;overflow-x:auto;max-width:100%;}
@media (min-width:900px){.bdBody table{display:table;}}

/* Text + media blocks: images keep their shape */
.gwmTmMedia img{display:block;width:100%;height:auto;}

/* Why-choose stairs: animation timing only (slower). Look = home page HTML. */
.wsRunner{transition:transform 1.1s cubic-bezier(.6,.05,.2,1),opacity .5s 1.8s;}
.wsBox{transition:transform .7s cubic-bezier(.3,1.35,.5,1),filter .8s,opacity .8s;}
.wsStep.on{animation-duration:2.6s;}

/* ===== Responsive safety net (all pages) ===== */
.btnInfinity{max-width:100%;}
.btnInfinity > span{min-width:0;}
@media (max-width:640px){
  :root:not([data-css]) .btnInfinity{white-space:normal;text-align:left;line-height:1.3;height:auto;min-height:48px;}
  :root:not([data-css]) .btnInfinity > span{white-space:normal;}
}
.bdBody,.gwmRich,.svCardTxt,.lvChecks,.lvHead,.lvTitle,.lvLead,.lvH2{overflow-wrap:break-word;word-break:normal;}
.bdBody a,.bdBody em,.bdBody strong{overflow-wrap:anywhere;}
main img{max-width:100%;}
.svCardBare .svCardArt{border-bottom:0;flex:1;}.svCardBare .svCardArt.svImgIcon{height:170px;}
.rsInfoLink{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--brass);font-weight:500;}.rsInfoLink svg{width:18px;height:14px;}


/* Mission / Vision photos: blend bright office photos into the dark layout */
.mvPhoto{position:relative;isolation:isolate;}
.mvPhoto img{filter:saturate(.92) brightness(.9) contrast(1.04);}
.mvPhoto::after{content:"";position:absolute;inset:12px;border-radius:22px;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(var(--shade-rgb),.05) 40%,rgba(var(--shade-rgb),.55) 100%),
             radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(var(--shade-rgb),.45) 100%),
             linear-gradient(135deg,color-mix(in srgb,var(--brass) 16%,transparent),transparent 55%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.mvPhoto .mvCap{z-index:2;}
:root[data-theme="light"] .mvPhoto img{filter:none;}
:root[data-theme="light"] .mvPhoto::after{background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.28) 100%);}

/* SEO packages: balanced, centred layout — all plans on one row on wide screens */
.pcGrid{align-items:stretch;}
.pcCard .pcKey li,.pcCard .pcFeat li{justify-content:flex-start;}
@media (min-width:1200px){
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)){flex-wrap:nowrap;gap:14px;}
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) > .pcCard{flex:1 1 0;min-width:0;padding:30px 18px 22px;}
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcCard h3{font-size:21px;}
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcKey li{font-size:14.5px;}
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcFeat li{font-size:13.5px;}
  .pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcBtn{padding-left:16px;padding-right:16px;}
}
@media (min-width:1200px){.pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcHot{transform:translateY(-10px);}.pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcHot:hover{transform:translateY(-14px);}}
@media (min-width:1200px){.pcGrid:not(.gwPc):has(> .pcCard:nth-child(5)) .pcFor{min-height:2.9em;display:flex;align-items:flex-start;justify-content:center;}}

/* Ranking results cards (case-study format, own layout) */
.rcCard{height:100%;display:flex;flex-direction:column;gap:18px;padding:26px 24px 22px;border-radius:24px;background:var(--bg-2);border:1px solid var(--line);transition:border-color .35s,transform .45s var(--ease);}
.rcCard:hover{border-color:color-mix(in srgb,var(--brass) 55%,transparent);transform:translateY(-4px);}
.rcKick{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:6px;}
.rcHead h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--head);}
.rcHead h3 a{color:inherit;text-decoration:none;}
.rcHead h3 a:hover{color:var(--brass);}
.rcStats{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rcStats li{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--brass) 9%,transparent);border:1px solid color-mix(in srgb,var(--brass) 22%,transparent);}
.rcStats b{display:block;font-size:22px;font-weight:600;color:var(--head);letter-spacing:-.02em;}
.rcStats span{font-size:12.5px;color:var(--muted);}
.rcTable{width:100%;border-collapse:collapse;font-size:14px;}
.rcTable th,.rcTable td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;}
.rcTable thead th{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.rcTable thead th:not(:first-child),.rcTable td{text-align:center;width:64px;}
.rcTable tbody th{font-weight:400;color:var(--text);line-height:1.35;}
.rcWas{color:var(--muted);}
.rcNow{display:inline-block;min-width:40px;padding:3px 8px;border-radius:999px;font-weight:600;color:var(--head);background:color-mix(in srgb,var(--brass) 18%,transparent);}
.rcNow.top{background:var(--brass);color:var(--on-accent);}
.rcLink{margin-top:auto;align-self:flex-start;color:var(--brass);}
.rcNote{margin:14px 0 0;font-size:13px;color:var(--muted);text-align:center;width:100%;}
.srOnly{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.rcHead h3 a{text-decoration:none!important;background-image:none!important;}

/* inline photos inside text fields: never duplicate a card's own artwork, never oversized */
.svCard .svCardArt ~ .svCardTxt img{display:none;}
.lvChecks li img{display:block;width:100%;max-height:340px;object-fit:cover;border-radius:16px;}
.lvChecks li:only-child img,.lvChecks li:last-child:nth-child(odd) img{max-width:640px;}

/* =========================================================
   Device fixes — iPhone, iPad, Android, Mac Safari (Nov 2026)
   Look and animations unchanged; only how browsers paint/size them.
   ========================================================= */
/* Safari (Mac, iPad, iPhone): the footer "Green Web Media" wordmark was not painted
   inside the page's horizontal clip; its own layer makes Safari draw it. */
.footWord{position:relative;z-index:1;}
/* Safari: keep each service illustration inside its rounded frame (it spilled over the title). */
.svcThumb{-webkit-mask-image:-webkit-radial-gradient(white,black);isolation:isolate;}
.svcThumb svg{overflow:hidden;}
/* Older Safari (iOS/iPadOS/macOS before 16.4) stops loading images and running scroll
   effects inside "overflow: clip" areas (WebKit bug 249693). There, the same clipping is
   done with "overflow: hidden" (html already hides sideways overflow). */
html.wkOld body{overflow-x:visible;}
html.wkOld .heroSec,html.wkOld .teamSec,html.wkOld .whySec,html.wkOld .appreciationSec,html.wkOld .workSec,html.wkOld .blogSec{overflow:hidden;}
/* Tall portrait tablets (e.g. iPad Air/Pro 11" & 13"): the hero no longer stretches to the
   full screen height, which left empty bands above and below the headline. */
@media (min-width:992px) and (max-width:1366px) and (orientation:portrait){
  .heroSec{display:block;min-height:0;}
  .heroGrid{padding-top:70px;padding-bottom:140px !important;}
}
/* Safari (iPad / iPhone / Mac): the hero content block could be squeezed shorter than its
   content, so it slid down under the scrolling services strip. It now never shrinks below its
   content (other browsers already behave this way, so nothing else changes). */
.heroGrid{flex:1 0 auto;}
/* Tablets and phones: less empty space under the 25k / 15+ yrs counter. */
@media (max-width:1024px){
  .counterSec{padding-bottom:24px;}
  .counterBox{padding-bottom:48px;}
}
/* Phones: "Quick enquiries" sits as the slim side tab (as on tablet and desktop) instead of a
   button covering the text at the bottom-left. */
@media (max-width:767px){
  .qeTab{top:50%;bottom:auto;left:auto;right:0;transform:translateY(-50%);border-radius:7px 0 0 7px;padding:10px 2px;font-size:10px;letter-spacing:.02em;line-height:1;box-shadow:none;}
  .qeTab span{line-height:1.1;}
  .qeTab:hover{padding-right:4px;}
  .qeTab span{-webkit-writing-mode:vertical-rl;writing-mode:vertical-rl;-webkit-transform:rotate(180deg);transform:rotate(180deg);}
}
/* Phones: the call-to-action buttons stack full width instead of being squeezed into one row. */
@media (max-width:575px){
  .abCtaBtns{flex-direction:column;}
  .abCtaBtn{flex:none;width:100%;}
}
/* Phones and tablets: "image on the left" text + media blocks stack in one column like every
   other text + media block (they kept two narrow columns, squeezing the text). */
@media (max-width:991px){
  .gwmTmLeft{grid-template-columns:minmax(0,1fr);}
}
/* Phones and tablets: checklist items with extra paragraphs keep all their text beside the
   tick, instead of pushing a paragraph into the narrow tick column. */
@media (max-width:991px){
  .lvTwoChk > div > *{grid-column:2;}
}
