/* Saint Clement Group — design system v2 */
:root{
--paper:#fff;--plaster:#eeedeb;--ink:#000;--text:rgba(0,0,0,.86);--mute:rgba(0,0,0,.62);--line:rgba(0,0,0,.18);
--red:#8a0305;
--redfill:linear-gradient(100deg,#7a0001 0%,#a70709 52%,#8a0305 100%);
--display:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;
--lm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6231 745'%3E%3Cpath d='M312 141H301Q297 130 289 116Q280 102 266 89Q252 77 233 68Q213 60 186 60Q162 60 144 67Q125 75 112 88Q100 101 94 119Q87 137 87 159Q87 194 107 226Q127 258 157 290Q186 321 221 352Q256 383 286 417Q315 451 335 488Q355 524 355 567Q355 599 344 631Q333 663 310 688Q287 713 251 729Q215 745 165 745Q137 745 112 740Q87 735 66 727Q44 720 28 711Q11 702 0 695L11 587H23Q29 610 41 631Q53 651 71 667Q89 683 112 693Q135 702 162 702Q187 702 207 695Q227 687 241 674Q255 660 262 642Q270 623 270 601Q270 570 259 544Q248 518 229 495Q211 471 188 449Q165 427 140 405Q116 383 92 359Q69 336 51 309Q33 283 22 252Q10 222 10 185Q10 146 25 116Q40 84 65 62Q89 40 121 29Q152 17 185 17Q210 17 230 21Q250 25 267 30Q283 36 295 41Q308 46 315 50ZM441 586Q441 547 457 519Q473 491 500 471Q526 451 560 438Q593 426 629 419Q666 412 701 409Q736 406 765 406V381Q765 349 757 325Q748 302 733 286Q718 271 697 263Q676 256 650 256Q633 256 616 259Q599 262 580 269Q562 275 542 287Q522 299 498 317L493 314L526 245Q542 238 558 233Q574 228 590 226Q606 223 623 221Q640 220 658 220Q710 220 746 233Q782 245 805 267Q829 289 839 318Q850 347 850 380V539Q850 581 851 612Q852 643 854 665Q856 688 859 703Q861 718 864 728V730H756V728Q759 720 760 710Q761 701 762 687Q752 696 738 705Q724 714 706 722Q688 730 667 734Q645 739 619 739Q534 739 488 699Q441 659 441 586ZM765 444Q721 444 680 449Q639 454 607 468Q576 483 557 510Q538 537 538 582Q538 640 567 670Q596 700 646 700Q670 700 689 694Q708 687 723 677Q738 667 748 655Q759 643 764 632Q765 613 765 591Q765 568 765 539ZM1000 421Q1000 379 999 348Q998 317 996 295Q995 272 992 257Q989 242 986 232V230H1099V232Q1096 242 1094 257Q1091 272 1089 295Q1087 317 1086 348Q1085 379 1085 421V539Q1085 581 1086 612Q1087 643 1089 665Q1091 688 1094 703Q1096 718 1099 728V730H986V728Q989 718 992 703Q995 688 996 665Q998 643 999 612Q1000 581 1000 539ZM990 82Q990 71 994 62Q998 52 1005 45Q1012 38 1022 34Q1031 30 1042 30Q1054 30 1063 34Q1073 38 1080 45Q1087 52 1091 62Q1095 71 1095 82Q1095 104 1080 120Q1065 135 1042 135Q1031 135 1022 131Q1012 126 1005 119Q998 112 994 103Q990 93 990 82ZM1575 401Q1575 336 1549 306Q1523 276 1480 276Q1464 276 1444 282Q1425 289 1404 300Q1384 311 1363 326Q1343 340 1325 357L1324 421V539Q1324 581 1325 612Q1326 643 1328 665Q1330 688 1332 703Q1334 718 1337 728V730H1225V728Q1228 718 1230 703Q1233 688 1235 665Q1236 643 1238 612Q1239 581 1239 539V421Q1239 379 1238 348Q1236 317 1235 295Q1233 272 1230 257Q1228 242 1225 232V230H1337V232Q1334 244 1331 263Q1329 282 1327 312Q1347 295 1370 279Q1393 262 1418 249Q1443 236 1469 228Q1495 220 1520 220Q1558 220 1584 233Q1611 247 1628 268Q1644 290 1652 317Q1660 345 1660 373V539Q1660 581 1661 612Q1662 643 1664 665Q1666 688 1668 703Q1670 718 1673 728V730H1560V728Q1564 718 1566 703Q1569 688 1571 665Q1572 643 1574 612Q1575 581 1575 539ZM1983 701Q1998 701 2012 696Q2027 690 2040 681Q2054 672 2066 660Q2079 648 2089 635L2094 637L2062 716Q2057 719 2048 723Q2040 727 2028 731Q2016 734 2000 737Q1983 740 1961 740Q1896 740 1860 704Q1823 669 1823 594V268L1741 271V228Q1756 229 1777 230Q1798 230 1823 230Q1823 195 1822 169Q1820 142 1819 122Q1817 102 1814 89Q1812 75 1810 66V64H1922V66Q1919 75 1917 89Q1915 102 1913 122Q1911 142 1910 168Q1909 195 1908 230Q1939 230 1968 229Q1998 228 2022 227Q2046 226 2063 224Q2080 223 2085 222L2077 272Q2052 272 2024 270Q2001 270 1971 269Q1940 269 1908 268V604Q1908 634 1915 653Q1921 672 1932 683Q1942 693 1956 697Q1969 701 1983 701ZM3051 137 3047 139Q3009 104 2955 83Q2902 62 2838 62Q2776 62 2725 81Q2674 101 2637 137Q2600 174 2580 227Q2559 280 2559 348Q2559 423 2579 488Q2598 552 2637 600Q2675 647 2733 674Q2791 701 2868 701Q2896 701 2924 695Q2952 690 2977 678Q3003 666 3026 650Q3048 634 3067 613L3072 616L3033 716Q2997 730 2952 738Q2908 745 2863 745Q2773 745 2698 719Q2623 693 2569 645Q2515 597 2485 530Q2455 463 2455 381Q2455 334 2467 290Q2479 245 2502 204Q2525 164 2559 130Q2592 96 2636 71Q2679 46 2731 32Q2783 18 2843 18Q2938 18 3018 47ZM3170 191Q3170 149 3169 118Q3168 87 3166 65Q3164 42 3161 27Q3159 12 3156 2V0H3269V2Q3266 12 3263 27Q3261 42 3259 65Q3257 87 3256 118Q3255 149 3255 191V539Q3255 581 3256 612Q3257 643 3259 665Q3261 688 3263 703Q3266 718 3269 728V730H3156V728Q3159 718 3161 703Q3164 688 3166 665Q3168 643 3169 612Q3170 581 3170 539ZM3627 739Q3573 739 3525 722Q3478 705 3443 672Q3408 639 3388 590Q3367 542 3367 479Q3367 424 3386 377Q3404 330 3437 295Q3470 260 3513 241Q3557 221 3608 221Q3658 221 3701 238Q3744 256 3776 289Q3807 322 3825 370Q3844 419 3845 481Q3790 480 3735 480Q3680 479 3620 479Q3578 479 3537 480Q3497 480 3465 481Q3468 532 3481 573Q3494 614 3516 643Q3539 672 3572 688Q3604 703 3645 703Q3673 703 3698 696Q3724 690 3744 678Q3765 666 3781 651Q3797 635 3808 616L3814 619L3778 706Q3752 720 3715 729Q3678 739 3627 739ZM3562 441Q3611 441 3660 441Q3709 440 3749 439Q3745 396 3732 363Q3720 329 3701 306Q3682 282 3656 270Q3630 257 3599 257Q3571 257 3547 269Q3523 282 3506 305Q3488 329 3478 362Q3467 396 3465 440Q3487 441 3511 441Q3536 441 3562 441ZM4276 401Q4276 369 4269 345Q4263 322 4250 306Q4238 291 4220 283Q4203 276 4181 276Q4166 276 4148 282Q4130 288 4111 298Q4092 308 4072 321Q4053 334 4036 349Q4035 365 4035 383Q4035 400 4035 421V539Q4035 581 4036 612Q4037 643 4039 665Q4041 688 4044 703Q4046 718 4049 728V730H3936V728Q3939 718 3942 703Q3944 688 3946 665Q3948 643 3949 612Q3950 581 3950 539V421Q3950 379 3949 348Q3948 317 3946 295Q3944 272 3942 257Q3939 242 3936 232V230H4049V232Q4045 243 4043 260Q4040 278 4038 304Q4058 289 4080 273Q4102 258 4126 247Q4150 235 4174 228Q4198 220 4221 220Q4249 220 4270 228Q4292 235 4308 248Q4324 260 4335 277Q4346 294 4352 314Q4372 297 4396 280Q4419 263 4445 250Q4470 237 4496 228Q4522 220 4547 220Q4585 220 4612 233Q4638 247 4655 268Q4672 290 4679 317Q4687 345 4687 373V539Q4687 581 4688 612Q4689 643 4691 665Q4693 688 4696 703Q4698 718 4701 728V730H4588V728Q4591 718 4594 703Q4596 688 4598 665Q4601 643 4601 612Q4602 581 4602 539V401Q4602 336 4576 306Q4550 276 4507 276Q4492 276 4473 282Q4455 288 4436 298Q4416 308 4396 322Q4377 335 4360 350Q4361 356 4361 362Q4361 368 4361 373V539Q4361 581 4362 612Q4363 643 4365 665Q4367 688 4369 703Q4372 718 4375 728V730H4262V728Q4265 718 4268 703Q4270 688 4272 665Q4274 643 4275 612Q4276 581 4276 539ZM5053 739Q4998 739 4951 722Q4904 705 4869 672Q4834 639 4813 590Q4793 542 4793 479Q4793 424 4812 377Q4830 330 4863 295Q4896 260 4939 241Q4983 221 5034 221Q5084 221 5127 238Q5170 256 5201 289Q5233 322 5251 370Q5270 419 5271 481Q5216 480 5161 480Q5106 479 5046 479Q5003 479 4963 480Q4923 480 4891 481Q4894 532 4906 573Q4919 614 4942 643Q4965 672 4997 688Q5030 703 5071 703Q5099 703 5124 696Q5149 690 5170 678Q5190 666 5206 651Q5223 635 5234 616L5240 619L5204 706Q5177 720 5141 729Q5104 739 5053 739ZM4988 441Q5037 441 5086 441Q5135 440 5175 439Q5170 396 5158 363Q5146 329 5127 306Q5108 282 5082 270Q5056 257 5025 257Q4997 257 4973 269Q4949 282 4932 305Q4914 329 4903 362Q4893 396 4891 440Q4913 441 4937 441Q4961 441 4988 441ZM5712 401Q5712 336 5686 306Q5660 276 5617 276Q5601 276 5582 282Q5562 289 5542 300Q5521 311 5500 326Q5480 340 5462 357L5461 421V539Q5461 581 5462 612Q5463 643 5465 665Q5467 688 5469 703Q5472 718 5475 728V730H5362V728Q5365 718 5367 703Q5370 688 5372 665Q5374 643 5375 612Q5376 581 5376 539V421Q5376 379 5375 348Q5374 317 5372 295Q5370 272 5367 257Q5365 242 5362 232V230H5475V232Q5471 244 5468 263Q5466 282 5464 312Q5484 295 5507 279Q5530 262 5555 249Q5580 236 5606 228Q5632 220 5657 220Q5695 220 5721 233Q5748 247 5765 268Q5782 290 5789 317Q5797 345 5797 373V539Q5797 581 5798 612Q5799 643 5801 665Q5803 688 5805 703Q5808 718 5810 728V730H5698V728Q5701 718 5703 703Q5706 688 5708 665Q5710 643 5711 612Q5712 581 5712 539ZM6121 701Q6135 701 6150 696Q6164 690 6178 681Q6191 672 6203 660Q6216 648 6227 635L6231 637L6200 716Q6194 719 6185 723Q6177 727 6165 731Q6153 734 6137 737Q6121 740 6099 740Q6033 740 5997 704Q5960 669 5960 594V268L5878 271V228Q5894 229 5915 230Q5936 230 5960 230Q5960 195 5959 169Q5958 142 5956 122Q5954 102 5952 89Q5949 75 5947 66V64H6060V66Q6057 75 6054 89Q6052 102 6050 122Q6048 142 6047 168Q6046 195 6045 230Q6076 230 6106 229Q6135 228 6159 227Q6184 226 6200 224Q6217 223 6223 222L6214 272Q6189 272 6162 270Q6138 270 6108 269Q6078 269 6045 268V604Q6045 634 6052 653Q6059 672 6069 683Q6080 693 6093 697Q6106 701 6121 701Z'/%3E%3C/svg%3E");
--sans:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;
--m:clamp(20px,3.2vw,52px);--gap:clamp(14px,1.8vw,30px);
--ease:cubic-bezier(.77,0,.18,1);--out:cubic-bezier(.16,1,.3,1);
--hh:72px;--hs:72px;--bh:150px;--kh:calc(var(--bh) * .38);
--sp:clamp(56px,9vw,160px);--sg:clamp(28px,3.4vw,60px);
--fs-s:12.5px;--fs-ui:13px;--fs-b:clamp(13.5px,13.1px + .1vw,14.5px);--fs-l:clamp(14px,13.2px + .17vw,15.5px);
--t4:clamp(15px,13.8px + .22vw,17.5px);--t3:clamp(16px,14.2px + .34vw,19px);--t2:clamp(19px,15px + .7vw,27px);--t1:clamp(22px,14.5px + 1.3vw,36px);--th:clamp(28px,20.5px + 1.8vw,54px);--tn:clamp(40px,4.6vw,72px);--tb:clamp(32px,min(3.8vw,8.4svh),76px);--spring:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-b)/1.5 var(--sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4,p,ul,figure,dl,dd{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;border-radius:0}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
::selection{background:#b3d4fc;color:#000}
::-moz-selection{background:#b3d4fc;color:#000}

/* layout */
.wrap{max-width:1680px;margin-inline:auto;padding-inline:var(--m)}
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.sec{padding-block:var(--sp)}
.plaster{background:var(--plaster)}
.main{padding-top:var(--hh)}
.hov .main{padding-top:0}

/* type */
.d{font-family:var(--display);font-weight:700;letter-spacing:-.011em;line-height:1.08;text-transform:uppercase;text-wrap:balance;margin-left:-.04em}
.cenb .d{margin-left:0}
.d-xl,.t1{font-size:var(--t1);line-height:1.08;letter-spacing:-.011em}
.d-l,.t2{font-size:var(--t2);line-height:1.12;letter-spacing:-.011em}
.d-m,.t3{font-size:var(--t3);line-height:1.2;letter-spacing:-.011em}
.t4{font-size:var(--t4);line-height:1.28}
.lede{font-size:var(--fs-l);line-height:1.48;color:var(--text);max-width:46ch;text-wrap:pretty}
.lede p+p{margin-top:1.1em}
.cap{font-size:var(--fs-s);line-height:1.42;color:var(--mute)}
.k{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;line-height:1.2}
.rail{font-size:var(--fs-s);line-height:1.4;color:var(--mute);margin-bottom:12px}

/* links + buttons */
.lnk{display:inline-block;font-size:12.5px;letter-spacing:.02em;text-transform:uppercase;font-weight:700;line-height:1.2;padding-bottom:6px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;transition:background-size .7s var(--ease),background-position .7s var(--ease)}
.lnk:hover{background-position:right bottom;background-size:0 1px}
.btn{display:inline-block;background:#000;color:#fff;font-size:12.5px;letter-spacing:.02em;text-transform:uppercase;font-weight:600;line-height:1.2;padding:17px 34px;transition:background .5s var(--ease)}
.btn:hover{background:var(--red)}

/* motion */
.js .rv{opacity:0;transition:opacity 1.3s ease var(--d,0s)}
.js .rv.in{opacity:1}
.rule{height:1px;background:var(--line);transform-origin:left}
.js .rule{transform:scaleX(0);transition:transform 1.6s var(--ease) var(--d,0s)}
.js .rule.in{transform:none}
.ln{display:inline}
[data-lines] .ln{display:block}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .04em .22em;margin:-.08em -.04em -.22em}
.w>span{display:inline-block;transform:translateY(112%);transition:transform 1.25s var(--out);transition-delay:calc(var(--wi,0) * 55ms + var(--sd,0s))}
[data-split].in .w>span,.hero.in [data-split] .w>span{transform:none}

/* figures */
.fig{position:relative;overflow:hidden;background:#dedcd8}
.fig img{width:100%;height:100%;object-fit:cover}
.fig img{transition:transform 2.2s var(--out),clip-path 1.5s var(--ease)}
.js .fig img{clip-path:inset(0 0 100% 0);transform:scale(1.14)}
.js .fig.in img{clip-path:inset(0);transform:none}
.js .fig.in:hover img{transform:scale(1.035)}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:40;height:var(--hh);background:var(--paper);color:var(--ink);transition:height .8s var(--ease),background .6s ease,color .6s ease}
.site-header.is-scrolled{height:var(--hs)}
.site-header__in{position:relative;max-width:1680px;height:100%;margin-inline:auto;padding-inline:var(--m);display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:clamp(22px,2.6vw,44px)}
.site-header nav{display:flex;gap:clamp(22px,2.6vw,44px)}
.site-header nav a,.srch-btn,.menu-btn{font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;line-height:1.2;padding:10px 0;background:linear-gradient(currentColor,currentColor) left calc(100% - 6px)/0 1px no-repeat;transition:background-size .6s var(--ease)}
.site-header nav a:hover,.site-header nav a[aria-current],.srch-btn:hover,.menu-btn:hover{background-size:100% 1px}
.menu-btn{display:none}
/* logo: the Saint Clement wordmark in outlined Marcellus, drawn from one background image so no font is needed */
.brand{position:absolute;left:calc(var(--m) + 1px);top:50%;display:block;height:calc(var(--hs) * .35);width:calc(var(--hs) * .35 * 8.363);transform:translateY(-50%);background:var(--lm) left center/100% 100% no-repeat;transition:filter .6s ease}
.brand img{display:none}
.site-header:not(.is-scrolled){background:transparent}
.home .site-header:not(.is-scrolled),.hov .site-header:not(.is-scrolled){color:#fff}
.home .site-header:not(.is-scrolled) .brand,.hov .site-header:not(.is-scrolled) .brand{filter:invert(1)}

/* menu + search overlays */
.mnu,.srch{position:fixed;inset:0;z-index:60;background:var(--paper);color:var(--ink);visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease),visibility 0s linear .9s;overflow-y:auto}
.mnu.is-open,.srch.is-open{visibility:visible;clip-path:inset(0);transition:clip-path .9s var(--ease),visibility 0s}
.ov__bar{height:var(--hs);display:flex;align-items:center;justify-content:space-between}
.ov__x{font-size:13px;letter-spacing:0;text-transform:none;padding:10px 0}
.mnu__list{display:flex;flex-direction:column;padding-top:clamp(24px,6vh,64px)}
.mnu__list a{font-family:var(--sans);font-weight:600;font-size:clamp(18px,5vw,24px);line-height:1.2;letter-spacing:.005em;text-transform:uppercase;padding:.55em 0;border-bottom:1px solid var(--line);transform:translateY(24px);opacity:0;transition:transform .9s var(--out),opacity .9s ease}
.mnu.is-open .mnu__list a{transform:none;opacity:1}
.mnu.is-open .mnu__list a:nth-child(1){transition-delay:.35s}.mnu.is-open .mnu__list a:nth-child(2){transition-delay:.43s}.mnu.is-open .mnu__list a:nth-child(3){transition-delay:.51s}.mnu.is-open .mnu__list a:nth-child(4){transition-delay:.59s}
.mnu__list a[aria-current]{color:var(--red)}
.mnu__foot{padding-block:36px;display:flex;flex-direction:column;gap:6px}
.srch__field{display:flex;align-items:center;border-bottom:1px solid var(--ink);margin-top:clamp(20px,6vh,72px)}
.srch__input{flex:1;min-width:0;border:0;outline:0;background:none;color:var(--ink);font-family:var(--sans);font-weight:400;font-size:clamp(26px,3.4vw,52px);line-height:1.15;letter-spacing:-.011em;padding:0 0 .12em;border-radius:0;-webkit-appearance:none;appearance:none}
.srch__input::placeholder{color:rgba(0,0,0,.22)}
.srch__input::-webkit-search-cancel-button{display:none}
.srch__list{margin-top:12px}
.srch__list a{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:13px 0;border-bottom:1px solid var(--line);font-family:var(--sans);font-weight:500;font-size:clamp(13.5px,.95vw,15px);line-height:1.2;letter-spacing:-.011em;transition:color .35s ease,padding .6s var(--ease)}
.srch__list a:hover{padding-left:14px}
.srch__list small{font:400 11.5px var(--sans);letter-spacing:.02em;color:var(--mute);white-space:nowrap}
.srch__none{margin-top:32px;color:var(--mute)}



/* ===== home ===== */
.hero{position:relative;height:100svh;min-height:600px;color:#fff;background:#000;overflow:hidden}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.34) 46%,rgba(0,0,0,.08) 78%),linear-gradient(180deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.12) 34%,rgba(0,0,0,.56) 100%)}
.hero__crest{position:absolute;right:calc(var(--m) * .7);bottom:-17%;height:min(94%,56vw);aspect-ratio:186/206;overflow:hidden;pointer-events:none;opacity:0;transform:translateY(5%);transition:opacity 2.4s ease .5s,transform 2.6s var(--out) .5s}
.hero__crest img{position:absolute;left:-6.45%;top:-8.25%;width:149.4%;height:202.9%;max-width:none;filter:brightness(0) invert(1)}
.hero.in .hero__crest{opacity:.96;transform:none}
.hero__body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:var(--hh);padding-bottom:clamp(150px,27vh,300px)}
.hero__title{font-size:clamp(34px,3.9vw,72px);line-height:1.05;letter-spacing:-.011em;max-width:11.5em;--sd:.25s}
.hero__foot{margin-top:clamp(22px,3.6vh,44px);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,3vh,30px);max-width:min(34em,44vw)}
.hero__text{font-size:clamp(15px,14.2px + .3vw,18px);line-height:1.42;color:rgba(255,255,255,.94);max-width:44ch;text-wrap:balance}
.hero__text br{display:none}
.hero__text,.hero__foot .lnk{opacity:0;transition:opacity 1.4s ease 1.2s}
.hero.in .hero__text,.hero.in .hero__foot .lnk{opacity:1}

/* red wall picture with the words laid over it */
.redwall{position:relative;background:#7a0001;overflow:hidden}
.redwall__pic{position:relative;height:clamp(560px,100svh,1100px);container-type:size;overflow:hidden}
.redwall__in{position:absolute;left:50%;top:30%;width:max(100cqw,calc(100cqh * 2160 / 728));aspect-ratio:2160/728;transform:translate(-50%,-30%) scale(1.001);transition:transform 2.4s var(--out)}
.redwall:hover .redwall__in{transform:translate(-50%,-30%) scale(1.03)}
.redwall__in img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none}
.redwall__in .redwall__patch{left:40.2778%;top:16.2088%;width:21.9907%;height:19.7802%}
.redwall__cap{position:absolute;left:0;right:0;bottom:0;padding-block:clamp(110px,18vh,200px) clamp(22px,2.6vw,40px);color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.5) 55%,rgba(0,0,0,0) 100%)}
.redwall__cap .g{align-items:end;row-gap:24px}
.rw__t{grid-column:1/7;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.rw__t .lede{color:rgba(255,255,255,.94);max-width:44ch;font-size:clamp(15px,14.2px + .3vw,17.5px)}
.redwall__cap .d{font-size:clamp(26px,18px + 1.6vw,46px)}
.rw__pts{grid-column:8/13;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-self:end}
.redwall__cap .lnk{color:#fff}
.redwall__cap .pt{padding-top:12px;border-top:1px solid rgba(255,255,255,.42)}
.redwall__cap .pt h3{font-family:var(--display);font-weight:700;font-size:13.5px;line-height:1.2;letter-spacing:-.011em;text-transform:uppercase;margin-bottom:6px}
.redwall__cap .pt p{font-size:13.5px;line-height:1.42;color:rgba(255,255,255,.9)}
.redwall__pic{transition:clip-path 1.6s var(--ease)}
.js .redwall__pic{clip-path:inset(0 0 100% 0)}
.js .redwall.in .redwall__pic{clip-path:inset(0)}
.js .redwall__cap{opacity:0;transition:opacity 1.3s ease .9s}
.js .redwall.in .redwall__cap{opacity:1}

/* full-width picture bands with text on them */
.bleed{position:relative;overflow:hidden;background:#111;color:#fff;min-height:clamp(560px,100svh,1120px);display:flex;align-items:stretch}
.main>.bleed:first-child{min-height:clamp(560px,100svh,1120px)}
.hov .main>.bleed:first-child .bi{padding-top:calc(var(--hh) + clamp(28px,7vh,72px))}
.bleed__media{position:absolute;inset:0}
.bleed__img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform 2.6s var(--out),opacity 1.6s ease}
.js .bleed__img{transform:scale(1.1);opacity:0}
.js .bleed.in .bleed__img{transform:none;opacity:1}
.bleed__shade{position:absolute;inset:0;background:var(--shade,none);pointer-events:none}
.bleed__in{position:relative;z-index:2;width:100%;display:flex;flex-direction:column}
.bleed--m{--shade:linear-gradient(180deg,rgba(0,0,0,.66) 0%,rgba(0,0,0,.3) 38%,rgba(0,0,0,.12) 58%,rgba(0,0,0,.72) 100%)}
.bleed .lnk{color:#fff}
.bleed .rail{color:rgba(255,255,255,.85)}
.bleed--top{align-items:flex-start}
.bleed--top .bleed__in{padding-top:calc(var(--hs) + clamp(14px,3vh,34px))}
.bi{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(28px,6vh,72px);padding-block:calc(var(--hs) + clamp(14px,3vh,34px)) clamp(24px,4.5vh,56px)}
.bi__t{max-width:none}
.bleed .d{font-size:var(--tb);line-height:1.06;letter-spacing:-.011em;text-wrap:pretty}
.bi__t .d{max-width:none}
.bi__r{display:flex;flex-direction:column;align-items:flex-start;gap:18px;max-width:66ch}
.bi__r .lede{color:#fff;max-width:54ch;font-size:clamp(15px,14.2px + .3vw,18px);line-height:1.45}
.bleed--r .bi__r{align-self:flex-end}
.skier{--shade:linear-gradient(115deg,rgba(0,24,80,.42) 0%,rgba(0,24,80,.12) 45%,rgba(0,0,0,0) 70%);--pos:62% 50%}
.skier .d{max-width:none;text-align:left;font-size:clamp(34px,5.1vw,94px)}
.skier .bleed__in{align-items:flex-start}
.skier__s{margin-top:clamp(14px,1.8vw,24px);font-size:clamp(16px,15px + .35vw,20px);line-height:1.4;color:rgba(255,255,255,.96);max-width:26ch}

/* centred text blocks */
.cenb{max-width:680px;margin-inline:auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.cenb--w{max-width:820px}
.cenb .rail{margin:0}
.cenb .lede{max-width:58ch}
.cenb .d{max-width:22em}
.svh{padding-top:var(--sp)}
.svh .svl{margin-top:var(--sg)}
.nws{padding-block:var(--sp)}

/* list rows: services (and contact) */
.svl{margin-top:var(--sg);margin-inline:calc(var(--m) * -1);border-top:1px solid var(--ink)}
.svx{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center;padding:clamp(18px,1.9vw,30px) var(--m);border-bottom:1px solid var(--line);color:var(--ink)}
.svx__n{grid-column:1/2;font-size:var(--fs-s);color:var(--mute)}
.svx__t{grid-column:2/6;font-family:var(--display);font-weight:400;font-size:var(--t3);line-height:1.18;letter-spacing:-.011em;transition:transform .8s var(--out)}
.svx:hover .svx__t,.svx:focus-visible .svx__t{transform:translateX(clamp(6px,.9vw,12px))}
.svx__d{grid-column:6/12;font-size:var(--fs-b);line-height:1.42;color:var(--text);max-width:64ch}
.svx__d b{display:block;font-family:var(--display);font-weight:400;font-size:var(--t3);line-height:1.15;color:var(--ink);margin:4px 0}
.svx__ic{grid-column:12/13;justify-self:end;width:clamp(42px,3.9vw,58px);height:clamp(42px,3.9vw,58px);fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.svx:hover .svx__ic *{animation:draw 1.2s var(--ease)}
@keyframes draw{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
.js .svx{opacity:0;transform:translateY(14px);transition:opacity 1s ease calc(var(--i,0) * 60ms),transform 1.1s var(--out) calc(var(--i,0) * 60ms)}
.js .svl.in .svx{opacity:1;transform:none}

/* numbers + three points */
.stat{padding-block:var(--sp)}
.stat__top{display:flex;align-items:flex-end;column-gap:clamp(22px,2.6vw,44px);row-gap:8px;padding-bottom:var(--sg)}
.stat__n{font-family:var(--display);font-weight:700;font-size:clamp(46px,6.2vw,100px);line-height:.95;letter-spacing:-.03em;font-variant-numeric:lining-nums tabular-nums}
.stat__l{max-width:20em;font-size:clamp(18px,13.5px + .9vw,28px);line-height:1.2;letter-spacing:-.011em;color:var(--text);padding-bottom:.12em}
.pts3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--sg)}
.info__col{position:relative;padding-top:18px;display:flex;flex-direction:column;gap:12px}
.info__col::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--ink)}
.info__tags{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-s);line-height:1.4;color:var(--mute)}
.info__big{font-family:var(--display);font-weight:400;font-size:var(--t3);line-height:1.28;letter-spacing:-.011em}

/* picture on one half, words on the other */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:clamp(520px,100svh,1100px)}
.split__t{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:var(--sp) clamp(28px,5vw,96px)}
.split__t .rail{margin-bottom:12px}
.split__t .lede{margin:16px auto 0;max-width:38ch}
.split__t .lnk{margin-top:clamp(18px,2vw,28px)}
.split__f{position:relative;min-height:320px;background:#dedcd8}
.split__f img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.split--img-l .split__f{order:-1}

/* ===== inner pages ===== */
.abg{padding-block:var(--sp)}
.abg .g{align-items:center}
.abg__f{grid-column:1/8;aspect-ratio:1/1}
.abg__l{grid-column:8/13;justify-self:center;width:100%;max-width:520px}
.abg__l .rail{margin-bottom:12px}
.abg__l .lede{margin-top:var(--sg);max-width:48ch}
.abg__l .lede p+p{margin-top:1em}

.vh{padding-block:var(--sp) 0}
.vh__p{max-width:28em;margin-inline:auto;text-align:center}
.vl{margin-top:var(--sg);margin-inline:calc(var(--m) * -1);border-top:1px solid var(--ink)}
.vr{display:flex;align-items:center;justify-content:center;padding:clamp(14px,1.7vw,26px) var(--m);border-bottom:1px solid var(--ink);color:var(--ink);outline:none}
.vr:last-child{border-bottom:0}
.vr__t{font-family:var(--display);font-weight:700;font-size:var(--t1);line-height:1.08;letter-spacing:-.011em;text-transform:uppercase;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.16em;transition:text-decoration-color .5s ease}
.vr:hover .vr__t,.vr:focus-visible .vr__t{text-decoration-color:currentColor}
.js .vr{opacity:0;transform:translateY(16px);transition:opacity 1s ease calc(var(--i,0) * 100ms + .1s),transform 1.1s var(--out) calc(var(--i,0) * 100ms + .1s)}
.js .vl.in .vr{opacity:1;transform:none}

.gl{padding-block:var(--sp)}
.gl>.wrap>.d{text-align:center}
.gl__grid{margin-top:var(--sg);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--sg)}
.gl__c{padding-top:14px;border-top:1px solid var(--ink);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(18px,2.4vw,34px)}
.gl__l{order:-1;font-size:var(--fs-b);line-height:1.4;color:var(--text);max-width:18ch}
.gl__n{font-family:var(--display);font-weight:700;font-size:clamp(32px,3.6vw,58px);line-height:1;letter-spacing:-.03em}
.gl__c:last-child .gl__n{font-size:var(--t2);line-height:1.1;letter-spacing:-.011em;text-transform:uppercase}

/* legal pages: title and intro on the left, the breakdown centred on the right */
.lgp{padding-block:clamp(6px,1.4vw,24px) var(--sp)}
.lgp__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,6vw,112px);align-items:start}
.lgp__side{position:sticky;top:calc(var(--hs) + 28px)}
.lgp__side .lede{margin-top:clamp(16px,1.8vw,26px);max-width:40ch}
.lgp__main{padding-left:clamp(28px,5vw,88px);text-align:left}
.lg__sec{padding-block:clamp(16px,1.8vw,26px)}
.lg__sec:first-child{padding-top:0}
.lg__sec h2{font-family:var(--sans);font-weight:700;font-size:var(--fs-l);line-height:1.35;letter-spacing:-.011em;max-width:34em}
.lg__body{margin:12px 0 0;max-width:62ch;font-size:14px;line-height:1.55;color:var(--text)}
.lg__body p+p{margin-top:1em}
.lg__body ul{margin:12px 0 0;display:flex;flex-direction:column;gap:8px}
.lg__feat{margin-top:26px}
.lg__feat h3{font-family:var(--sans);font-weight:500;font-size:14px;line-height:1.4;color:var(--ink)}
.lg__contact{display:grid;grid-template-columns:auto auto;gap:8px 20px;justify-content:start;margin-top:16px}
.lg__contact span{color:var(--mute)}
.lg__contact a{color:var(--ink);border-bottom:1px solid var(--line)}
.lg__contact a:hover{border-bottom-color:var(--ink)}

#svcHead,#svcGrid{scroll-margin-top:calc(var(--hs) + 24px)}
.sv2{padding-top:var(--sp)}
.sv2 .cenb{margin-bottom:0}
.main>.sv2:last-child{padding-bottom:clamp(48px,6vw,104px)}
main:has(>.sv2:last-child) + .ft::before{display:none}
.redwall + .bleed,.bleed + .split{margin-top:var(--sp)}

/* ===== responsive ===== */
@media (max-width:1100px){
.svx__t{grid-column:2/7}.svx__d{grid-column:7/12}
.rw__t{grid-column:1/7}.rw__pts{grid-column:7/13}
.lgp__g{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
}
@media (max-width:900px){
.bleed--r .bi__r{align-self:flex-start}
.redwall__cap{position:static;background:#000;padding-block:26px 30px}
.redwall__pic{height:clamp(380px,64svh,640px)}
.rw__t,.rw__pts{grid-column:1/-1}
.rw__pts{grid-template-columns:1fr;gap:14px}
.pts3{grid-template-columns:1fr}
.stat__top{flex-direction:column;align-items:flex-start;row-gap:8px}
.stat__l{padding-bottom:0}
.split{grid-template-columns:1fr;min-height:0}
.split__f,.split--img-l .split__f{order:-1;min-height:0;aspect-ratio:4/3}
.split__t{padding:var(--sp) var(--m)}
.abg__f,.abg__l{grid-column:1/-1}
.abg__f{max-width:none;aspect-ratio:4/3;margin-bottom:var(--sg)}
.gl__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.lgp__g{grid-template-columns:1fr}
.lgp__side{position:static;margin-bottom:var(--sg)}
.lgp__main{padding-left:0}
.lg__sec:first-child{padding-top:0}
}
@media (max-width:760px){
:root{--hh:62px;--hs:62px;--bh:100px;--tb:clamp(27px,8.2vw,43px)}
.site-header nav{display:none}
.menu-btn{display:block}
.hd-r{gap:20px}
.hero__crest{top:auto;bottom:-4%;right:-6vw;height:min(52svh,92vw);width:auto;opacity:0}
.hero.in .hero__crest{opacity:.9}
.hero__body{justify-content:flex-start;padding-top:calc(var(--hh) + clamp(28px,7svh,64px))}
.hero__title{max-width:11em;font-size:clamp(30px,8.8vw,46px)}
.hero__foot{max-width:22em}
.hero__text br{display:none}
.svx{row-gap:6px;padding-block:16px}
.svx__n{grid-column:1/5}
.svx__ic{grid-column:10/13;grid-row:1;width:46px;height:46px}
.svx__t{grid-column:1/-1}
.svx__d{grid-column:1/-1}
.svx:hover .svx__t{transform:none}
.bleed,.main>.bleed:first-child{min-height:clamp(520px,92svh,860px)}
.bleed--top .bleed__in{padding-top:calc(var(--hs) + 18px)}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{transition-duration:.01s!important;transition-delay:0s!important;animation:none!important}
.js .rv,.js .rule,.js .fig img,.js .redwall__pic,.js .redwall__cap,.js .svx,.js .vr,.js .ft__crest,.js .bleed__img{opacity:1!important;transform:none!important;clip-path:none!important}
.w>span{transform:none!important}
}

/* ===== contact page (centred layout) ===== */
body.ctp main{font-weight:400;font-size:var(--fs-b);line-height:1.5}
body.ctp .wrap{max-width:1680px;margin-inline:auto;padding-inline:var(--m)}
body.ctp main .g:not(.ctr__row){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
body.ctp .plaster{background:var(--plaster)}
body.ctp .d{font-family:var(--display);font-weight:700;text-wrap:balance}
body.ctp .t1{font-size:var(--t1);line-height:1.08;letter-spacing:-.011em}
body.ctp .t2{font-size:var(--t2);line-height:1.12;letter-spacing:-.011em}
body.ctp .t3{font-size:var(--t3);line-height:1.2;letter-spacing:-.011em}
body.ctp .t4{font-size:var(--t4);line-height:1.28;letter-spacing:-.011em}
body.ctp .lede{font-size:var(--fs-l);line-height:1.46;font-weight:400;color:var(--text);max-width:40ch}
body.ctp .lede p+p{margin-top:1em}
body.ctp .rail{font-size:var(--fs-s);line-height:1.4;color:var(--mute);margin-bottom:16px}
body.ctp .btn{display:inline-block;background:#000;color:#fff;font-size:12.5px;font-weight:600;line-height:1.2;padding:17px 34px;box-shadow:inset 0 0 0 1px #000;transition:background .5s var(--ease),color .5s var(--ease)}
body.ctp .btn:hover{background:transparent;color:#000}
.js body.ctp .rv{opacity:0;transition:opacity 1.3s ease var(--d,0s)}
.js body.ctp .rv.in{opacity:1}
body.ctp .pg{padding-top:clamp(6px,1.4vw,24px);padding-bottom:var(--sp)}
body.ctp .pg__t{max-width:17em}
body.ctp .svl{margin-top:var(--sg);margin-inline:calc(var(--m) * -1);border-top:1px solid var(--ink)}
body.ctp .svx{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center;padding:clamp(26px,2.8vw,42px) var(--m);border-bottom:1px solid var(--line);overflow:hidden;color:var(--ink)}
body.ctp .svx>*{position:relative;z-index:1}
body.ctp .svx__n{grid-column:1/3;font-size:var(--fs-s);color:var(--mute)}
body.ctp .svx__t{grid-column:3/7;font-family:var(--display);font-weight:700;font-size:15px;text-transform:uppercase;line-height:1.15;letter-spacing:-.011em;transition:transform .8s var(--out)}
body.ctp .svx:hover .svx__t{transform:translateX(clamp(6px,1vw,14px))}
body.ctp .svx__d{grid-column:7/12;font-size:var(--fs-b);line-height:1.42;color:var(--text)}
body.ctp .svx__d b{display:block;font-family:var(--display);font-weight:500;font-size:var(--t3);line-height:1.2;letter-spacing:-.011em;color:var(--ink);margin:6px 0}
body.ctp .svx__ic{grid-column:12/13;justify-self:end;width:clamp(52px,4.6vw,68px);height:clamp(52px,4.6vw,68px);fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
body.ctp .svx:hover .svx__ic *{animation:draw 1.2s var(--ease)}
.js body.ctp .svx{opacity:0;transform:translateY(18px);transition:opacity 1s ease calc(var(--i,0) * 70ms),transform 1.1s var(--out) calc(var(--i,0) * 70ms)}
.js body.ctp .svl.in .svx{opacity:1;transform:none}
body.ctp .ctr__row{margin-top:var(--sg);padding-top:clamp(24px,2.6vw,36px);align-items:start;position:relative}
body.ctp .ctr__row::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--ink)}
body.ctp .ctr__row .t3{grid-column:1/5}
body.ctp .ctr__row .lede{grid-column:5/10;max-width:42ch}
body.ctp .ctr__247{grid-column:10/13;justify-self:end;font-family:var(--display);font-weight:700;font-size:var(--tn);line-height:.9;letter-spacing:-.03em;white-space:nowrap;align-self:end}
body.ctp .enq{padding-block:var(--sp)}
body.ctp .enq__l{grid-column:1/5}
body.ctp .enq__l .lede{margin-top:clamp(20px,2.2vw,32px)}
body.ctp .enq__form{grid-column:6/13;display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,2.8vw,40px) var(--gap);align-content:start}
body.ctp .enq__f{display:flex;flex-direction:column;gap:6px;min-width:0}
body.ctp .enq__f--full{grid-column:1/-1}
body.ctp .enq__f label{font-size:var(--fs-s);color:var(--mute)}
body.ctp .enq__f input,body.ctp .enq__f select,body.ctp .enq__f textarea{font:400 16px/1.4 var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:10px 0 12px;outline:none;width:100%;-webkit-appearance:none;appearance:none;transition:box-shadow .3s ease}
body.ctp .enq__f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:26px}
body.ctp .enq__f textarea{min-height:140px;resize:vertical}
body.ctp .enq__f input:focus,body.ctp .enq__f select:focus,body.ctp .enq__f textarea:focus{box-shadow:0 1px 0 0 var(--ink)}
body.ctp .enq__row{grid-column:1/-1;display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:8px}
body.ctp .enq__note{font-size:var(--fs-s);line-height:1.45;color:var(--mute);max-width:44ch}
body.ctp .enq__note a{color:var(--ink);border-bottom:1px solid var(--line)}
body.ctp .enq__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
@media (max-width:1100px){body.ctp .svx__t{grid-column:3/8}
body.ctp .svx__d{grid-column:8/12}}
@media (max-width:900px){body.ctp .enq__l,body.ctp .enq__form{grid-column:1/-1}
body.ctp .enq__form{margin-top:40px}
body.ctp .ctr__row .t3,body.ctp .ctr__row .lede,body.ctp .ctr__247{grid-column:1/-1}
body.ctp .ctr__row .lede{margin-top:18px}
body.ctp .ctr__247{justify-self:start;margin-top:24px}}
@media (max-width:760px){body.ctp .svx{row-gap:10px;padding-block:26px}
body.ctp .svx__n{grid-column:1/5}
body.ctp .svx__ic{grid-column:9/13;grid-row:1;width:54px;height:54px}
body.ctp .svx__t,body.ctp .svx__d{grid-column:1/-1}
body.ctp .svx:hover .svx__t{transform:none}
body.ctp .enq__form{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.js body.ctp .rv,.js body.ctp .svx{opacity:1!important;transform:none!important;clip-path:none!important}}
body.ctp .lede{text-wrap:pretty}
body.ctp .pg{padding-top:clamp(6px,1.4vw,24px);padding-bottom:var(--sp)}
body.ctp .pg__t{text-align:center;margin-inline:auto}
body.ctp .ctr__row{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;margin-top:var(--sg);padding-top:var(--sg);max-width:680px;margin-inline:auto}
body.ctp .ctr__row::before{left:0;right:0}
body.ctp .ctr__row .t3,body.ctp .ctr__row .lede,body.ctp .ctr__247{grid-column:auto}
body.ctp .ctr__247{order:-1;justify-self:auto;align-self:center;font-size:var(--tn)}
body.ctp .ctr__row .lede{max-width:58ch;margin:0}
body.ctp .enq__l .lede{margin-top:14px}
body.ctp .svx{padding-block:clamp(22px,2.4vw,36px)}

/* contact: no coloured fill on hover, text stays black */
body.ctp .svx::before{display:none}
body.ctp .svx:hover,body.ctp .svx:focus-visible{color:var(--ink)}
body.ctp .svx:hover .svx__n{color:var(--mute)}
body.ctp .svx:hover .svx__d{color:var(--text)}
body.ctp .svx:hover .svx__d b{color:var(--ink)}
body.ctp .rail,body.ctp .enq__f label,body.ctp .btn{text-transform:none;letter-spacing:0}
body.ctp .enq__f input:focus,body.ctp .enq__f select:focus,body.ctp .enq__f textarea:focus{border-bottom-color:var(--ink)}


/* footer: one large contact line, then a quiet index. Black, no movement */
.ft{--fb:#0b0b0b;background:var(--fb);color:#fff;padding-top:clamp(36px,4.2vw,68px);overflow:hidden;position:relative}
.ft--w{background:var(--fb)}
.ft__head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.ft a.ft__wm{display:block;flex:none;width:clamp(168px,15vw,226px);aspect-ratio:6231/745;background:var(--lm) left center/100% 100% no-repeat;filter:invert(1);padding:0;transition:none}
.ft a.ft__wm:hover,.ft a.ft__wm:focus-visible{background-size:100% 100%}
.ft a.ft__up{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.2;color:rgba(255,255,255,.78);padding:8px 0;transition:color .3s ease}
.ft a.ft__up:hover{color:#fff}
.ft__up svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s var(--out)}
.ft__up:hover svg{transform:translateY(-3px)}
.ft__cta{margin-top:clamp(64px,10vw,168px)}
.ft__lead{font-size:var(--fs-s);line-height:1.4;color:rgba(255,255,255,.58);margin-bottom:clamp(12px,1.4vw,22px)}
.ft a.ft__mail{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 0 clamp(20px,2.4vw,38px);border-bottom:1px solid rgba(255,255,255,.3);background:linear-gradient(#fff,#fff) left bottom/0 2px no-repeat;background-origin:border-box;transition:background-size .9s var(--ease)}
.ft a.ft__mail:hover,.ft a.ft__mail:focus-visible{background-size:100% 2px}
.ft__mail span{font-size:clamp(24px,5.8vw,96px);font-weight:400;line-height:1.02;letter-spacing:-.015em;overflow-wrap:anywhere}
.ft__mail svg{flex:none;width:clamp(24px,3.4vw,54px);height:clamp(24px,3.4vw,54px);margin-bottom:clamp(4px,.8vw,12px);fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;transition:transform .7s var(--out)}
.ft__mail:hover svg{transform:translate(5px,-5px)}
.ft__top{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:36px;padding-top:clamp(28px,3.2vw,52px);align-items:start}
.ft__cols{display:contents}
.ft__col{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:13px;line-height:1.35}
.ft__t{font-size:12px;font-weight:400;letter-spacing:0;color:rgba(255,255,255,.56);margin-bottom:8px}
.ft__col a,.ft__cs{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .6s var(--ease);padding-bottom:2px}
.ft__col a:hover,.ft__cs:hover{background-size:100% 1px}
.ft__cs{font:inherit;color:inherit;text-align:left}
.ft__col a.ft__tel{font-size:clamp(15px,1.3vw,19px);line-height:1.25}
.ft__hrs{color:rgba(255,255,255,.72);max-width:22ch;line-height:1.4}
.ft__base{margin-top:clamp(44px,6vw,96px);padding-block:18px clamp(20px,2.2vw,30px);border-top:1px solid rgba(255,255,255,.18)}
.ft__eo{font-size:12px;line-height:1.45;color:rgba(255,255,255,.56);max-width:70ch}
@media (max-width:900px){
.ft__top{grid-template-columns:repeat(2,minmax(0,1fr))}
.ft__col--c{grid-column:1/-1}
.ft__mail span{font-size:clamp(22px,7.1vw,60px)}
.ft__cta{margin-top:clamp(48px,12vw,96px)}
}
@media (max-width:380px){.ft__up svg{display:none}}

/* search: a button on the left that appears once scrolled; the panel slides in from the right */
.srch-btn{order:3;position:relative}
@media (max-width:400px){.srch-btn{font-size:0;gap:0;padding-inline:4px}}
.srch{inset:0 0 0 auto;width:min(460px,100vw);clip-path:none;transform:translateX(102%);transition:transform .75s var(--ease),visibility 0s linear .75s}
.srch.is-open{clip-path:none;transform:none;box-shadow:0 0 70px rgba(0,0,0,.16);transition:transform .75s var(--ease),visibility 0s}
.srch .wrap{padding-inline:clamp(22px,3vw,36px)}
.srch__input{font-size:clamp(17px,1.4vw,20px)}
.srch__field{margin-top:clamp(14px,4vh,36px)}
html::after{content:"";position:fixed;inset:0;z-index:59;background:rgba(0,0,0,.34);opacity:0;pointer-events:none;transition:opacity .6s ease}
html.srch-open::after{opacity:1;pointer-events:auto}

/* services: a quiet ruled grid, black and white, no movement */
.svc{margin-top:var(--sg);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line)}
.svt{position:relative;display:flex;flex-direction:column;gap:12px;min-height:clamp(330px,26vw,410px);padding:clamp(22px,2vw,32px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);transition:opacity .9s ease calc(var(--i,0) * 70ms),background .5s ease}
.svt:hover,.svt:focus-visible{background:var(--plaster)}
.svt:focus-visible{outline-offset:-6px}
.svt__n{position:absolute;top:clamp(22px,2vw,32px);right:clamp(22px,2vw,32px);font-size:var(--fs-s);color:var(--mute)}
.svt__ic{width:clamp(44px,3.6vw,54px);height:clamp(44px,3.6vw,54px);fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:clamp(18px,2.2vw,34px)}
.svt__t{font-family:var(--display);font-weight:700;font-size:clamp(13.5px,12.8px + .22vw,15.5px);line-height:1.2;letter-spacing:.005em;text-transform:uppercase}
.svt__d{font-size:var(--fs-b);line-height:1.45;color:var(--text)}
.svt__go{margin-top:auto;padding-top:20px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.2}
.svt__go i{display:inline-grid;place-items:center}
.svt__go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.js .svt{opacity:0}
.js .svc.in .svt{opacity:1}
.svh{padding-bottom:var(--sp)}
@media (max-width:1200px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}.svt{min-height:0}}
@media (max-width:640px){.svc{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.js .svt{opacity:1!important}}

/* landing: a little white between the opening pictures, with one thin thread that draws itself */
.brk{--bgap:clamp(30px,3.6vw,56px);height:var(--bgap);display:flex;justify-content:center;background:var(--paper)}
.brk i{display:block;width:1px;height:auto;margin-block:clamp(9px,1.1vw,16px);background:var(--ink)}
.js .brk .rule{transform:scaleY(0);transform-origin:top;transition:transform 1.4s var(--ease) .15s}
.js .brk .rule.in{transform:none}

/* contact: phone, email and careers as three clear columns */
body.ctp .ctc{margin-top:var(--sg);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
body.ctp .ctc__c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:clamp(30px,3.4vw,54px) clamp(18px,2.4vw,40px)}
body.ctp .ctc__c+.ctc__c{border-left:1px solid var(--line)}
body.ctp .ctc__k{font-size:var(--fs-s);line-height:1.4;color:var(--mute);margin:0}
body.ctp .ctc__v{font-family:var(--display);font-weight:500;font-size:clamp(18px,1.6vw,25px);line-height:1.15;letter-spacing:-.011em;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.2em;transition:text-decoration-color .5s ease}
body.ctp .ctc__v:hover,body.ctp .ctc__v:focus-visible{text-decoration-color:currentColor}
body.ctp .ctc__d{font-size:var(--fs-b);line-height:1.42;color:var(--text);margin:0}
body.ctp .ctc__a{margin-top:auto;padding-top:clamp(14px,1.6vw,24px);display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px}
body.ctp .ctc__cp{text-transform:uppercase;letter-spacing:.02em;font-weight:600;color:var(--mute)}
body.ctp .ctc__cp:hover{color:var(--ink)}
@media (max-width:900px){
body.ctp .ctc{grid-template-columns:1fr;border-bottom:0}
body.ctp .ctc__c{border-bottom:1px solid var(--line)}
body.ctp .ctc__c+.ctc__c{border-left:0}
body.ctp .ctc__v{font-size:clamp(24px,6.4vw,32px)}
}
body.ctp .ctc__ic{width:clamp(44px,3.6vw,54px);height:clamp(44px,3.6vw,54px);fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:clamp(2px,.6vw,10px)}

/* search: a small magnifying glass to the left of the word, always shown */
.srch-btn{display:inline-flex;align-items:center;gap:10px}
.srch-btn::before{content:"";flex:none;width:14px;height:14px;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}

/* scrollbar: slim and quiet */
html,.srch,.mnu{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.4) transparent}
html::-webkit-scrollbar,.srch::-webkit-scrollbar,.mnu::-webkit-scrollbar{width:6px;height:6px}
html::-webkit-scrollbar-track,.srch::-webkit-scrollbar-track,.mnu::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb,.srch::-webkit-scrollbar-thumb,.mnu::-webkit-scrollbar-thumb{background:rgba(0,0,0,.4);border-radius:3px}
html::-webkit-scrollbar-thumb:hover,.srch::-webkit-scrollbar-thumb:hover,.mnu::-webkit-scrollbar-thumb:hover{background:#000}

/* clock: a quiet London clock at the far right of the header, black hands and a red second hand, no numbers */
.clk{order:4;flex:none;display:block;width:28px;height:28px;margin-left:-4px;color:inherit}
.clk svg{display:block;width:100%;height:100%;overflow:visible}
.clk__f{fill:none;stroke:currentColor;stroke-width:1}
.clk__h,.clk__m{stroke:currentColor;stroke-linecap:round;fill:none}
.clk__h{stroke-width:1.9}
.clk__m{stroke-width:1.3}
.clk__s{stroke:#d9141f;stroke-width:.9;stroke-linecap:round}
.clk__t{stroke:#d9141f;stroke-width:1.5;stroke-linecap:round}
.clk__c{fill:#d9141f}

/* cookies: a small card, bottom left; reject and accept carry equal weight */
.ck{position:fixed;left:var(--m);bottom:var(--m);z-index:55;width:min(404px,calc(100vw - var(--m) * 2));background:#fff;color:#000;box-shadow:0 24px 70px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.06);padding:22px 22px 20px;opacity:0;transform:translateY(14px);visibility:hidden;transition:opacity .5s ease,transform .7s var(--out),visibility 0s linear .7s}
.ck.is-open{opacity:1;transform:none;visibility:visible;transition:opacity .5s ease,transform .7s var(--out),visibility 0s}
.ck__t{font-size:12.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.2;margin:0 0 10px}
.ck__d{font-size:13.5px;line-height:1.42;color:rgba(0,0,0,.8);margin:0}
.ck__d a{border-bottom:1px solid currentColor}
.ck__btns{display:grid;grid-template-columns:1fr 1.18fr 1fr;gap:8px;margin-top:18px}
.ck__b{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.2;padding:13px 10px;border:1px solid #000;background:#fff;color:#000;text-align:center;transition:background .35s ease,color .35s ease}
.ck__b:hover{background:#000;color:#fff}
.ck__b--p{background:#000;color:#fff}
.ck__b--p:hover{background:var(--red);border-color:var(--red)}
.ck__s{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.2;padding:13px 6px;text-align:center;background:linear-gradient(currentColor,currentColor) center calc(100% - 11px)/0 1px no-repeat;transition:background-size .5s var(--ease)}
.ck__s:hover{background-size:84px 1px}
.ck__set[hidden],.ck__main[hidden]{display:none}
.ck__row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:12px 0 2px}
.ck__row b{display:block;font-size:12.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;margin-bottom:3px}
.ck__row p{margin:0;font-size:13px;line-height:1.4;color:rgba(0,0,0,.72)}
.ck__on{flex:none;font-size:12px;color:rgba(0,0,0,.52);padding-top:1px}
.ck__sw{flex:none;position:relative;width:42px;height:24px;border:1px solid #000;border-radius:24px;background:#fff;transition:background .3s ease}
.ck__sw::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#000;transition:transform .3s var(--out),background .3s ease}
.ck__sw[aria-checked="true"]{background:#000}
.ck__sw[aria-checked="true"]::after{transform:translateX(18px);background:#fff}
@media (max-width:560px){.ck{left:12px;right:12px;bottom:12px;width:auto;padding:18px}}
@media (prefers-reduced-motion:reduce){.ck{transition:none!important}}
@media (max-width:359px){.brand{height:calc(var(--hs) * .25);width:calc(var(--hs) * .25 * 8.363)}.clk{width:26px;height:26px}}
@media (max-width:389px) and (min-width:360px){.brand{height:calc(var(--hs) * .3);width:calc(var(--hs) * .3 * 8.363)}}

/* newsletter sign-up */
body.ctp .nl{min-height:clamp(440px,70svh,760px);display:flex;align-items:center}
body.ctp .nl .wrap{width:100%}
body.ctp .nl__in{max-width:640px;margin:var(--sg) auto 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(24px,2.6vw,36px)}
body.ctp .nl__in .lede{max-width:50ch}
body.ctp .nl__form{width:100%;display:flex;align-items:flex-end;gap:clamp(16px,2vw,28px);text-align:left}
body.ctp .nl__form .enq__f{flex:1;min-width:0}
body.ctp .nl .enq__note{max-width:52ch;margin:0}
@media (max-width:560px){body.ctp .nl__form{flex-direction:column;align-items:stretch}body.ctp .nl__form .btn{width:100%}}