/* Saint Clement Group: footer, header layout and large-screen scaling. Loaded after shared.css.
   1) From 1680px wide the first block rescales every px size of shared.css gently as the screen grows (--r = the raw screen ratio; --u = one design pixel, which grows at 20% of that ratio and stops at 1.2, so text stays small and calm on big screens).
   2) The middle holds the footer and header rules.  3) The last block rescales the px sizes of the middle part. */
@media (min-width:1680px){
:root{--r:max(1px,min(calc(100vw / 1680),calc(100vh / 800)));--u:min(calc(1px + (var(--r) - 1px) * .2),1.2px)}
:root{--m:clamp(calc(20*var(--u)),3.2vw,calc(52*var(--u)));--gap:clamp(calc(14*var(--u)),1.8vw,calc(30*var(--u)));--hh:calc(72*var(--u));--hs:calc(72*var(--u));--bh:calc(150*var(--u));--sp:clamp(calc(56*var(--u)),9vw,calc(160*var(--u)));--sg:clamp(calc(28*var(--u)),3.4vw,calc(60*var(--u)));--fs-s:calc(12.5*var(--u));--fs-ui:calc(13*var(--u));--fs-b:clamp(calc(13.5*var(--u)),calc(13.1*var(--u)) + .1vw,calc(14.5*var(--u)));--fs-l:clamp(calc(14*var(--u)),calc(13.2*var(--u)) + .17vw,calc(15.5*var(--u)));--t4:clamp(calc(15*var(--u)),calc(13.8*var(--u)) + .22vw,calc(17.5*var(--u)));--t3:clamp(calc(16*var(--u)),calc(14.2*var(--u)) + .34vw,calc(19*var(--u)));--t2:clamp(calc(19*var(--u)),calc(15*var(--u)) + .7vw,calc(27*var(--u)));--t1:clamp(calc(22*var(--u)),calc(14.5*var(--u)) + 1.3vw,calc(36*var(--u)));--th:clamp(calc(28*var(--u)),calc(20.5*var(--u)) + 1.8vw,calc(54*var(--u)));--tn:clamp(calc(40*var(--u)),4.6vw,calc(72*var(--u)));--tb:clamp(calc(32*var(--u)),min(3.8vw,8.4svh),calc(76*var(--u)))}
.wrap{max-width:calc(1680*var(--u))}
.k{font-size:calc(11.5*var(--u))}
.rail{margin-bottom:calc(12*var(--u))}
.lnk{font-size:calc(12.5*var(--u));padding-bottom:calc(6*var(--u))}
.btn{font-size:calc(12.5*var(--u));padding:calc(17*var(--u)) calc(34*var(--u))}
.site-header__in{max-width:calc(1680*var(--u));gap:calc(24*var(--u))}
.hd-r{gap:clamp(calc(22*var(--u)),2.6vw,calc(44*var(--u)))}
.site-header nav{gap:clamp(calc(22*var(--u)),2.6vw,calc(44*var(--u)))}
.site-header nav a,.srch-btn,.menu-btn{font-size:calc(13*var(--u));padding:calc(10*var(--u)) 0}
.ov__x{font-size:calc(13*var(--u));padding:calc(10*var(--u)) 0}
.mnu__list{padding-top:clamp(calc(24*var(--u)),6vh,calc(64*var(--u)))}
.mnu__list a{font-size:clamp(calc(18*var(--u)),5vw,calc(24*var(--u)))}
.mnu__foot{padding-block:calc(36*var(--u));gap:calc(6*var(--u))}
.srch__field{margin-top:clamp(calc(20*var(--u)),6vh,calc(72*var(--u)))}
.srch__input{font-size:clamp(calc(26*var(--u)),3.4vw,calc(52*var(--u)))}
.srch__list{margin-top:calc(12*var(--u))}
.srch__list a{gap:calc(24*var(--u));padding:calc(13*var(--u)) 0;font-size:clamp(calc(13.5*var(--u)),.95vw,calc(15*var(--u)))}
.srch__list a:hover{padding-left:calc(14*var(--u))}
.srch__list small{font:400 calc(11.5*var(--u)) var(--sans)}
.srch__none{margin-top:calc(32*var(--u))}
.hero{min-height:calc(600*var(--u))}
.hero__body{padding-bottom:clamp(calc(150*var(--u)),27vh,calc(300*var(--u)))}
.hero__title{font-size:clamp(calc(34*var(--u)),3.9vw,calc(72*var(--u)))}
.hero__foot{margin-top:clamp(calc(22*var(--u)),3.6vh,calc(44*var(--u)));gap:clamp(calc(18*var(--u)),3vh,calc(30*var(--u)))}
.hero__text{font-size:clamp(calc(15*var(--u)),calc(14.2*var(--u)) + .3vw,calc(18*var(--u)))}
.redwall__pic{height:clamp(calc(560*var(--u)),100svh,calc(1100*var(--u)))}
.redwall__cap{padding-block:clamp(calc(110*var(--u)),18vh,calc(200*var(--u))) clamp(calc(22*var(--u)),2.6vw,calc(40*var(--u)))}
.redwall__cap .g{row-gap:calc(24*var(--u))}
.rw__t{gap:calc(16*var(--u))}
.rw__t .lede{font-size:clamp(calc(15*var(--u)),calc(14.2*var(--u)) + .3vw,calc(17.5*var(--u)))}
.redwall__cap .d{font-size:clamp(calc(26*var(--u)),calc(18*var(--u)) + 1.6vw,calc(46*var(--u)))}
.redwall__cap .pt{padding-top:calc(12*var(--u))}
.redwall__cap .pt h3{font-size:calc(13.5*var(--u));margin-bottom:calc(6*var(--u))}
.redwall__cap .pt p{font-size:calc(13.5*var(--u))}
.bleed{min-height:clamp(calc(560*var(--u)),100svh,calc(1120*var(--u)))}
.main>.bleed:first-child{min-height:clamp(calc(560*var(--u)),100svh,calc(1120*var(--u)))}
.hov .main>.bleed:first-child .bi{padding-top:calc(var(--hh) + clamp(calc(28*var(--u)),7vh,calc(72*var(--u))))}
.bleed--top .bleed__in{padding-top:calc(var(--hs) + clamp(calc(14*var(--u)),3vh,calc(34*var(--u))))}
.bi{gap:clamp(calc(28*var(--u)),6vh,calc(72*var(--u)));padding-block:calc(var(--hs) + clamp(calc(14*var(--u)),3vh,calc(34*var(--u)))) clamp(calc(24*var(--u)),4.5vh,calc(56*var(--u)))}
.bi__r{gap:calc(18*var(--u))}
.bi__r .lede{font-size:clamp(calc(15*var(--u)),calc(14.2*var(--u)) + .3vw,calc(18*var(--u)))}
.skier .d{font-size:clamp(calc(34*var(--u)),5.1vw,calc(94*var(--u)))}
.skier__s{margin-top:clamp(calc(14*var(--u)),1.8vw,calc(24*var(--u)));font-size:clamp(calc(16*var(--u)),calc(15*var(--u)) + .35vw,calc(20*var(--u)))}
.cenb{max-width:calc(680*var(--u));gap:calc(18*var(--u))}
.cenb--w{max-width:calc(820*var(--u))}
.svx{padding:clamp(calc(18*var(--u)),1.9vw,calc(30*var(--u))) var(--m)}
.svx__d b{margin:calc(4*var(--u)) 0}
.svx__ic{width:clamp(calc(42*var(--u)),3.9vw,calc(58*var(--u)));height:clamp(calc(42*var(--u)),3.9vw,calc(58*var(--u)))}
.stat__top{column-gap:clamp(calc(22*var(--u)),2.6vw,calc(44*var(--u)));row-gap:calc(8*var(--u))}
.stat__n{font-size:clamp(calc(46*var(--u)),6.2vw,calc(100*var(--u)))}
.stat__l{font-size:clamp(calc(18*var(--u)),calc(13.5*var(--u)) + .9vw,calc(28*var(--u)))}
.info__col{padding-top:calc(18*var(--u));gap:calc(12*var(--u))}
.split{min-height:clamp(calc(520*var(--u)),100svh,calc(1100*var(--u)))}
.split__t{padding:var(--sp) clamp(calc(28*var(--u)),5vw,calc(96*var(--u)))}
.split__t .rail{margin-bottom:calc(12*var(--u))}
.split__t .lede{margin:calc(16*var(--u)) auto 0}
.split__t .lnk{margin-top:clamp(calc(18*var(--u)),2vw,calc(28*var(--u)))}
.split__f{min-height:calc(320*var(--u))}
.abg__l{max-width:calc(520*var(--u))}
.abg__l .rail{margin-bottom:calc(12*var(--u))}
.vr{padding:clamp(calc(14*var(--u)),1.7vw,calc(26*var(--u))) var(--m)}
.gl__c{padding-top:calc(14*var(--u));gap:clamp(calc(18*var(--u)),2.4vw,calc(34*var(--u)))}
.gl__n{font-size:clamp(calc(32*var(--u)),3.6vw,calc(58*var(--u)))}
.lgp{padding-block:clamp(calc(6*var(--u)),1.4vw,calc(24*var(--u))) var(--sp)}
.lgp__g{column-gap:clamp(calc(32*var(--u)),6vw,calc(112*var(--u)))}
.lgp__side{top:calc(var(--hs) + calc(28*var(--u)))}
.lgp__side .lede{margin-top:clamp(calc(16*var(--u)),1.8vw,calc(26*var(--u)))}
.lgp__main{padding-left:clamp(calc(28*var(--u)),5vw,calc(88*var(--u)))}
.lg__sec{padding-block:clamp(calc(16*var(--u)),1.8vw,calc(26*var(--u)))}
.lg__body{margin:calc(12*var(--u)) 0 0;font-size:calc(14*var(--u))}
.lg__body ul{margin:calc(12*var(--u)) 0 0;gap:calc(8*var(--u))}
.lg__feat{margin-top:calc(26*var(--u))}
.lg__feat h3{font-size:calc(14*var(--u))}
.lg__contact{gap:calc(8*var(--u)) calc(20*var(--u));margin-top:calc(16*var(--u))}
#svcHead,#svcGrid{scroll-margin-top:calc(var(--hs) + calc(24*var(--u)))}
.main>.sv2:last-child{padding-bottom:clamp(calc(48*var(--u)),6vw,calc(104*var(--u)))}
body.ctp .wrap{max-width:calc(1680*var(--u))}
body.ctp .rail{margin-bottom:calc(16*var(--u))}
body.ctp .btn{font-size:calc(12.5*var(--u));padding:calc(17*var(--u)) calc(34*var(--u))}
body.ctp .pg{padding-top:clamp(calc(6*var(--u)),1.4vw,calc(24*var(--u)))}
body.ctp .svx{padding:clamp(calc(26*var(--u)),2.8vw,calc(42*var(--u))) var(--m)}
body.ctp .svx__t{font-size:calc(15*var(--u))}
body.ctp .svx__d b{margin:calc(6*var(--u)) 0}
body.ctp .svx__ic{width:clamp(calc(52*var(--u)),4.6vw,calc(68*var(--u)));height:clamp(calc(52*var(--u)),4.6vw,calc(68*var(--u)))}
body.ctp .ctr__row{padding-top:clamp(calc(24*var(--u)),2.6vw,calc(36*var(--u)))}
body.ctp .enq__l .lede{margin-top:clamp(calc(20*var(--u)),2.2vw,calc(32*var(--u)))}
body.ctp .enq__form{gap:clamp(calc(26*var(--u)),2.8vw,calc(40*var(--u))) var(--gap)}
body.ctp .enq__f{gap:calc(6*var(--u))}
body.ctp .enq__f input,body.ctp .enq__f select,body.ctp .enq__f textarea{font:400 calc(16*var(--u))/1.4 var(--sans);padding:calc(10*var(--u)) 0 calc(12*var(--u))}
body.ctp .enq__f select{padding-right:calc(26*var(--u))}
body.ctp .enq__f textarea{min-height:calc(140*var(--u))}
body.ctp .enq__row{gap:calc(28*var(--u));margin-top:calc(8*var(--u))}
body.ctp .enq__hp{left:calc(-9999*var(--u))}
body.ctp .pg{padding-top:clamp(calc(6*var(--u)),1.4vw,calc(24*var(--u)))}
body.ctp .ctr__row{gap:calc(14*var(--u));max-width:calc(680*var(--u))}
body.ctp .enq__l .lede{margin-top:calc(14*var(--u))}
body.ctp .svx{padding-block:clamp(calc(22*var(--u)),2.4vw,calc(36*var(--u)))}
.ft{padding-top:clamp(calc(36*var(--u)),4.2vw,calc(68*var(--u)))}
.ft__head{gap:calc(20*var(--u))}
.ft a.ft__wm{width:clamp(calc(168*var(--u)),15vw,calc(226*var(--u)))}
.ft a.ft__up{gap:calc(10*var(--u));font-size:calc(12.5*var(--u));padding:calc(8*var(--u)) 0}
.ft__up svg{width:calc(15*var(--u));height:calc(15*var(--u))}
.ft__cta{margin-top:clamp(calc(64*var(--u)),10vw,calc(168*var(--u)))}
.ft__lead{margin-bottom:clamp(calc(12*var(--u)),1.4vw,calc(22*var(--u)))}
.ft a.ft__mail{gap:calc(24*var(--u));padding:0 0 clamp(calc(20*var(--u)),2.4vw,calc(38*var(--u)))}
.ft__mail span{font-size:clamp(calc(24*var(--u)),5.8vw,calc(96*var(--u)))}
.ft__mail svg{width:clamp(calc(24*var(--u)),3.4vw,calc(54*var(--u)));height:clamp(calc(24*var(--u)),3.4vw,calc(54*var(--u)));margin-bottom:clamp(calc(4*var(--u)),.8vw,calc(12*var(--u)))}
.ft__top{row-gap:calc(36*var(--u));padding-top:clamp(calc(28*var(--u)),3.2vw,calc(52*var(--u)))}
.ft__col{gap:calc(9*var(--u));font-size:calc(13*var(--u))}
.ft__t{font-size:calc(12*var(--u));margin-bottom:calc(8*var(--u))}
.ft__col a.ft__tel{font-size:clamp(calc(15*var(--u)),1.3vw,calc(19*var(--u)))}
.ft__base{margin-top:clamp(calc(44*var(--u)),6vw,calc(96*var(--u)));padding-block:calc(18*var(--u)) clamp(calc(20*var(--u)),2.2vw,calc(30*var(--u)))}
.ft__eo{font-size:calc(12*var(--u))}
.srch{width:min(calc(460*var(--u)),100vw)}
.srch .wrap{padding-inline:clamp(calc(22*var(--u)),3vw,calc(36*var(--u)))}
.srch__input{font-size:clamp(calc(17*var(--u)),1.4vw,calc(20*var(--u)))}
.srch__field{margin-top:clamp(calc(14*var(--u)),4vh,calc(36*var(--u)))}
.svt{gap:calc(12*var(--u));min-height:clamp(calc(330*var(--u)),26vw,calc(410*var(--u)));padding:clamp(calc(22*var(--u)),2vw,calc(32*var(--u)))}
.svt__n{top:clamp(calc(22*var(--u)),2vw,calc(32*var(--u)));right:clamp(calc(22*var(--u)),2vw,calc(32*var(--u)))}
.svt__ic{width:clamp(calc(44*var(--u)),3.6vw,calc(54*var(--u)));height:clamp(calc(44*var(--u)),3.6vw,calc(54*var(--u)));margin-bottom:clamp(calc(18*var(--u)),2.2vw,calc(34*var(--u)))}
.svt__t{font-size:clamp(calc(13.5*var(--u)),calc(12.8*var(--u)) + .22vw,calc(15.5*var(--u)))}
.svt__go{padding-top:calc(20*var(--u));gap:calc(10*var(--u));font-size:calc(12*var(--u))}
.svt__go svg{width:calc(16*var(--u));height:calc(16*var(--u))}
.brk{--bgap:clamp(calc(30*var(--u)),3.6vw,calc(56*var(--u)))}
.brk i{margin-block:clamp(calc(9*var(--u)),1.1vw,calc(16*var(--u)))}
body.ctp .ctc__c{gap:calc(12*var(--u));padding:clamp(calc(30*var(--u)),3.4vw,calc(54*var(--u))) clamp(calc(18*var(--u)),2.4vw,calc(40*var(--u)))}
body.ctp .ctc__v{font-size:clamp(calc(18*var(--u)),1.6vw,calc(25*var(--u)))}
body.ctp .ctc__a{padding-top:clamp(calc(14*var(--u)),1.6vw,calc(24*var(--u)));gap:calc(12*var(--u)) calc(28*var(--u))}
body.ctp .ctc__ic{width:clamp(calc(44*var(--u)),3.6vw,calc(54*var(--u)));height:clamp(calc(44*var(--u)),3.6vw,calc(54*var(--u)));margin-bottom:clamp(2px,.6vw,calc(10*var(--u)))}
.srch-btn{gap:calc(10*var(--u))}
.srch-btn::before{width:calc(14*var(--u));height:calc(14*var(--u))}
html::-webkit-scrollbar,.srch::-webkit-scrollbar,.mnu::-webkit-scrollbar{width:calc(6*var(--u));height:calc(6*var(--u))}
html::-webkit-scrollbar-thumb,.srch::-webkit-scrollbar-thumb,.mnu::-webkit-scrollbar-thumb{border-radius:calc(3*var(--u))}
.clk{width:calc(28*var(--u));height:calc(28*var(--u));margin-left:calc(-4*var(--u))}
.ck{width:min(calc(404*var(--u)),calc(100vw - var(--m) * 2));padding:calc(22*var(--u)) calc(22*var(--u)) calc(20*var(--u))}
.ck__t{font-size:calc(12.5*var(--u));margin:0 0 calc(10*var(--u))}
.ck__d{font-size:calc(13.5*var(--u))}
.ck__btns{gap:calc(8*var(--u));margin-top:calc(18*var(--u))}
.ck__b{font-size:calc(12*var(--u));padding:calc(13*var(--u)) calc(10*var(--u))}
.ck__s{font-size:calc(12*var(--u));padding:calc(13*var(--u)) calc(6*var(--u))}
.ck__row{gap:calc(18*var(--u));padding:calc(12*var(--u)) 0 2px}
.ck__row b{font-size:calc(12.5*var(--u));margin-bottom:calc(3*var(--u))}
.ck__row p{font-size:calc(13*var(--u))}
.ck__on{font-size:calc(12*var(--u))}
.ck__sw{width:calc(42*var(--u));height:calc(24*var(--u));border-radius:calc(24*var(--u))}
.ck__sw::after{left:calc(3*var(--u));top:calc(3*var(--u));width:calc(16*var(--u));height:calc(16*var(--u))}
body.ctp .nl{min-height:clamp(calc(440*var(--u)),70svh,calc(760*var(--u)))}
body.ctp .nl__in{max-width:calc(640*var(--u));gap:clamp(calc(24*var(--u)),2.6vw,calc(36*var(--u)))}
body.ctp .nl__form{gap:clamp(calc(16*var(--u)),2vw,calc(28*var(--u)))}
.wrap,body.ctp .wrap,.site-header__in{max-width:none}
}
/* Saint Clement Group: footer, plus the phone header overrides at the end. White ground, the crest as a faint backdrop, the wordmark large across the top and a quiet index.
   Loaded after shared.css; it replaces the earlier footer rules there. The markup is unchanged: the headline and enquiry button are hidden,
   and .ft__hd / .ft__row are flattened so the wordmark spans the full width and "Back to top" can sit beside the copyright line. */
.ft{background:#fff;color:var(--ink);position:relative;overflow:hidden;padding:0;border-top:1px solid var(--line)}
.ft__crest{position:absolute;right:calc(var(--m) * -.4);bottom:-9%;height:118%;aspect-ratio:186/206;overflow:hidden;pointer-events:none}
.ft__crest img{position:absolute;left:-6.45%;top:-8.25%;width:149.4%;height:202.9%;max-width:none;filter:brightness(0);opacity:.04}
.ft__in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;padding-block:clamp(34px,4.4vw,72px) clamp(20px,2.2vw,32px)}
.ft__in>*{min-width:0}
.ft__hd,.ft__row{display:contents}
.ft__h,.ft a.ft__btn{display:none}
.ft a.ft__wm{display:block;grid-column:1/-1;justify-self:stretch;width:100%;aspect-ratio:6231/745;background:var(--lm) left center/100% 100% no-repeat;filter:none;padding:0;transition:none}
.ft a.ft__wm:hover,.ft a.ft__wm:focus-visible{background-size:100% 100%}
.ft a.ft__up{order:1;display:inline-flex;align-items:center;gap:10px;margin-top:14px;margin-right:-7px;font-size:12.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.2;color:var(--ink);padding:0 7px;border:solid transparent;border-width:8px 0;background-color:transparent;background-clip:padding-box;transition:background-color .3s ease,color .3s ease}
.ft a.ft__up:hover,.ft a.ft__up:focus-visible{color:var(--ink);background-color:transparent;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.ft__up svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s var(--out)}
.ft__up:hover svg{transform:translateY(-3px)}
.ft__ct{grid-column:1/-1;margin-top:clamp(26px,3.2vw,52px);display:flex;flex-wrap:wrap;align-items:baseline;gap:6px clamp(20px,2.4vw,36px);font-size:15px;line-height:1.3}
.ft__ct a{max-width:100%;overflow-wrap:anywhere;border-bottom:1px solid rgba(0,0,0,.35);padding-bottom:2px;transition:border-color .4s ease}
.ft__ct a:hover{border-bottom-color:#000}
.ft__ct span{font-size:13px;color:rgba(0,0,0,.62)}
.ft__cols{grid-column:1/-1;margin-top:clamp(36px,4.4vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap);row-gap:30px;max-width:760px;width:100%}
.ft__col{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.35}
.ft__k{font-size:12px;line-height:1.3;color:rgba(0,0,0,.6);margin-bottom:3px}
.ft__col a,.ft__col button{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .6s var(--ease);padding-bottom:2px;font:inherit;color:inherit;text-align:left}
.ft__col a:hover,.ft__col button:hover{background-size:100% 1px}
.ft__base{grid-column:1/-1;justify-self:stretch;margin-top:clamp(36px,4vw,64px);padding:18px 0 0;display:flex;justify-content:space-between;align-items:center;gap:16px 28px;flex-wrap:wrap;border-top:1px solid var(--line)}
.ft__eo{font-size:12px;line-height:1.45;color:rgba(0,0,0,.62);max-width:64ch}
@media (min-width:700px){
.ft__wm{grid-row:1}
.ft__ct{grid-row:2}
.ft__cols{grid-row:3}
.ft__base{grid-row:4;padding-right:150px}
.ft a.ft__up{grid-row:4;grid-column:1/-1;justify-self:end;align-self:start;margin-top:calc(clamp(36px,4vw,64px) + 10px)}
}
@media (max-width:900px){
.ft__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.ft__col:nth-child(3){grid-column:1/-1}
.ft__crest{height:112%;bottom:-12%;left:50%;right:auto;translate:-50% 0}
.ft__crest img{opacity:.03}
}
@media (max-width:699px){.ft a.ft__up{margin-left:-7px}}
@media (max-width:380px){.ft__up svg{display:none}}

/* Header: back to the original layout set in shared.css. The logo sits on the left; Services, About Us and Contact, search and the clock sit on the right. */
/* iPhone Safari lets the page scroll behind the status bar (clock, signal). The header is solid white once the page scrolls, so it also extends upward
   past the top edge in the same colour; the strip above the header is white instead of showing the page. It is invisible while the header is transparent. */
.site-header::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:120px;background:inherit;pointer-events:none}
@media (max-width:760px){
/* phones: the page scrolls inside the body instead of the whole window, so on iPhone nothing can slide up behind the status bar above the header */
html{height:100%;overflow:hidden;background:#fff}
body{height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}
/* phones: the legal pages (Accessibility, Privacy) start a little lower under the header */
.lgp{padding-top:clamp(30px,9vw,44px)}
/* phones: Search leaves the header and sits under the menu links inside the menu, so the header holds Menu next to the clock */
.site-header .srch-btn{display:none}
.mnu__sb{display:flex;align-items:center;gap:12px;width:100%;margin-top:28px;padding:14px 0;border:0;border-bottom:1px solid var(--ink);background:none;border-radius:0;font:400 17px/1.2 var(--sans);color:rgba(0,0,0,.45);text-align:left;cursor:text;-webkit-appearance:none;appearance:none}
.mnu__sb::before{content:"";width:15px;height:15px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='6.5'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='6.5'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E") center/contain no-repeat}
/* phones: the header turns solid white the moment the page scrolls, so nothing shows through it */
.site-header{transition:height .8s var(--ease)}
.site-header .brand{transition:none}
}

/* No motion on text anywhere: headlines, paragraphs, numbers and menu links are simply there. */
.js .rv,.js body.ctp .rv,.hero__text,.hero__foot .lnk{opacity:1!important;transition:none!important}
.w>span{transform:none!important;transition:none!important}
.mnu__list a{transform:none!important;opacity:1!important;transition:none!important}
/* Descriptive paragraphs sit at the size of the text in the service boxes; the statement under the page title is smaller too. */
:root{--fs-l:var(--fs-b)}
/* paragraphs that sit on images are the same size too */
.hero__text,.rw__t .lede,.bi__r .lede,.skier__s{font-size:var(--fs-b);line-height:1.45}

/* Service pages: one page per service. A full-screen image hero like the other pages (title, statement and text sit on the picture), then a full-width grid of capability tiles and an enquiry band. */
.svp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.svp__l{position:relative;min-height:480px;margin:0;overflow:hidden;background:var(--plaster)}
.svp__img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%}
.svp__r{min-width:0;--pl:clamp(32px,5.5vw,104px);--pr:var(--m)}
/* the text, the capability tiles and the enquiry block share one set of columns, so their left edges line up; the tiles and the enquiry block run a little wider to the right */
.svp__t,.spc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px) minmax(0,1fr);padding-inline:var(--pl) var(--pr)}
.svp__t{align-content:center;padding-block:clamp(28px,3.2vw,48px)}
.svp__in{grid-column:2/4;justify-self:start;width:100%;max-width:600px;text-align:center}
.sp__crumb{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:0 10px;margin-bottom:12px}
.sp__crumb a{color:var(--mute);text-underline-offset:3px;transition:color .3s ease}
.sp__crumb a:hover,.sp__crumb a:focus-visible{color:var(--ink);text-decoration:underline}
.sp__crumb [aria-current]{color:var(--ink)}
.svp__h{margin-top:0;margin-bottom:0}
.svp__txt{margin:clamp(20px,2.2vw,32px) auto 0;max-width:48ch;line-height:1.38}
.svp__txt p+p{margin-top:.7em}
.spc{padding-block:clamp(12px,1.5vw,22px) clamp(24px,2.8vw,42px)}
.spc__hd,.spc__l{grid-column:2/4;justify-self:start;width:100%;max-width:600px}
.spc__hd{margin:0 0 clamp(10px,1.1vw,16px);text-align:center;font-size:clamp(12.5px,12px + .18vw,14px);line-height:1.2;letter-spacing:.005em}
.spc__l{list-style:none;margin:0;padding:0 0 0 max(0px,calc((min(100%,600px) - 48ch)/2));font-size:var(--fs-b);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(10px,1vw,14px)}
.spc__i{display:flex;align-items:baseline;gap:10px;max-width:46ch;color:var(--ink);text-align:left}
.spc__n{flex:none;font-size:11px;color:var(--mute)}
.spc__t{font-family:var(--display);font-weight:700;font-size:clamp(11px,10.8px + .12vw,12px);line-height:1.4;letter-spacing:.005em;text-transform:uppercase}
.spx__a{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px clamp(14px,1.4vw,20px);margin-top:clamp(6px,1vw,14px)}
.spx{padding-block:var(--sp)}
.spx a.spx__back{display:inline-flex;align-items:center;justify-content:center;padding:17px 16px;color:var(--ink);font-size:12.5px;letter-spacing:.02em;text-transform:uppercase;font-weight:600;line-height:1.2;background:linear-gradient(currentColor,currentColor) left calc(100% + 5px)/0 1px no-repeat;background-origin:content-box;transition:background-size .6s var(--ease)}
.spx a.spx__back:hover,.spx a.spx__back:focus-visible{background-size:100% 1px}
.spx__back svg{display:block;flex:none;width:14px;height:14px;margin-right:10px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){
.svp{grid-template-columns:minmax(0,1fr)}
.svp__l{align-self:start;min-height:0;aspect-ratio:4/3}
.svp__r{--pl:var(--m);--pr:var(--m)}
.svp__t{min-height:0;align-content:start;padding-block:clamp(28px,6vw,48px)}
.spc{padding-block:clamp(24px,5vw,40px) clamp(32px,7vw,56px)}
}
@media (min-width:1680px){
.ft__in{padding-block:clamp(calc(34*var(--u)),4.4vw,calc(72*var(--u))) clamp(calc(20*var(--u)),2.2vw,calc(32*var(--u)))}
.ft a.ft__up{gap:calc(10*var(--u));margin-top:calc(14*var(--u));margin-right:calc(-7*var(--u));font-size:calc(12.5*var(--u));padding:0 calc(7*var(--u))}
.ft__up svg{width:calc(15*var(--u));height:calc(15*var(--u))}
.ft__ct{margin-top:clamp(calc(26*var(--u)),3.2vw,calc(52*var(--u)));gap:calc(6*var(--u)) clamp(calc(20*var(--u)),2.4vw,calc(36*var(--u)));font-size:calc(15*var(--u))}
.ft__ct span{font-size:calc(13*var(--u))}
.ft__cols{margin-top:clamp(calc(36*var(--u)),4.4vw,calc(72*var(--u)));row-gap:calc(30*var(--u));max-width:calc(760*var(--u))}
.ft__col{gap:calc(9*var(--u));font-size:calc(13.5*var(--u))}
.ft__k{font-size:calc(12*var(--u));margin-bottom:calc(3*var(--u))}
.ft__base{margin-top:clamp(calc(36*var(--u)),4vw,calc(64*var(--u)));padding:calc(18*var(--u)) 0 0;gap:calc(16*var(--u)) calc(28*var(--u))}
.ft__eo{font-size:calc(12*var(--u))}
@media (min-width:700px){.ft__base{padding-right:calc(150*var(--u))}
.ft a.ft__up{margin-top:calc(clamp(calc(36*var(--u)),4vw,calc(64*var(--u))) + calc(10*var(--u)))}}
.site-header::before{height:calc(120*var(--u))}
.svp__l{min-height:calc(480*var(--u))}
.svp__r{--pl:clamp(calc(32*var(--u)),5.5vw,calc(104*var(--u)))}
.svp__t,.spc{grid-template-columns:minmax(0,1fr) minmax(0,calc(520*var(--u))) minmax(0,1fr)}
.svp__t{padding-block:clamp(calc(28*var(--u)),3.2vw,calc(48*var(--u)))}
.svp__in{max-width:calc(600*var(--u))}
.sp__crumb{gap:0 calc(10*var(--u));margin-bottom:calc(12*var(--u))}
.svp__txt{margin:clamp(calc(20*var(--u)),2.2vw,calc(32*var(--u))) auto 0}
.spc{padding-block:clamp(calc(12*var(--u)),1.5vw,calc(22*var(--u))) clamp(calc(24*var(--u)),2.8vw,calc(42*var(--u)))}
.spc__hd,.spc__l{max-width:calc(600*var(--u))}
.spc__hd{margin:0 0 clamp(calc(10*var(--u)),1.1vw,calc(16*var(--u)));font-size:clamp(calc(12.5*var(--u)),calc(12*var(--u)) + .18vw,calc(14*var(--u)))}
.spc__l{padding:0 0 0 max(0px,calc((min(100%,calc(600*var(--u))) - 48ch)/2));gap:clamp(calc(10*var(--u)),1vw,calc(14*var(--u)))}
.spc__i{gap:calc(10*var(--u))}
.spc__n{font-size:calc(11*var(--u))}
.spc__t{font-size:clamp(calc(11*var(--u)),calc(10.8*var(--u)) + .12vw,calc(12*var(--u)))}
.spx__a{gap:calc(14*var(--u)) clamp(calc(14*var(--u)),1.4vw,calc(20*var(--u)));margin-top:clamp(calc(6*var(--u)),1vw,calc(14*var(--u)))}
.spx a.spx__back{padding:calc(17*var(--u)) calc(16*var(--u));font-size:calc(12.5*var(--u))}
.spx__back svg{width:calc(14*var(--u));height:calc(14*var(--u));margin-right:calc(10*var(--u))}
}