/* Combined by _source/bundle_assets.py from: assets/fonts/fonts.css, assets/contact.css, assets/lobby-hero.css, assets/site-type.css */
/* The site's text fonts, served from the site itself (3.2.18) instead of Google Fonts: faster (no extra connection to
   another server), private (no request to Google on every page) and still working if Google is blocked or slow.
   Latin characters only (English and Kiswahili). Licences (SIL Open Font License) are in assets/fonts/licenses/.
   Antonio, the headline font, is declared in site-type.css. */
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:300;src:url(fonts/barlow-condensed-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/barlow-condensed-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/barlow-condensed-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Contact Us: the enquiry builder. Sub-page palette (wine / crimson), Antonio headings from site-type.css, Inter for text. */
@font-face{font-family:"Antonio";src:url("fonts/antonio.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
*{box-sizing:border-box}
html,body{margin:0;background:#f7fbfc;color:#171717;font-family:Inter,Inter Fallback,Arial,sans-serif;font-weight:400}
:root{--wine:#7c0b19;--red:#a6122b;--line:#e3d6d2;--muted:#5d5752;--faint:#6a625b}
.top{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(164,17,42,.22);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.brand{font:500 14px/1 Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:#3c080d;text-decoration:none}
.topnav{display:flex;gap:clamp(14px,2.2vw,30px)}.topnav a{color:#6d655f;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:10px;padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}.topnav a:hover{color:var(--wine);border-color:var(--red)}
.page{min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);position:relative;padding:44px 5.5% 64px 9%;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:6%;align-items:start;background:linear-gradient(rgba(248,252,253,.93),rgba(248,252,253,.93)),url('img/offices-mombasa-960.webp') center/cover fixed}
.page:before{content:'';position:absolute;left:6.8%;top:0;bottom:0;width:1px;background:rgba(185,25,49,.25)}
.left{position:sticky;top:76px;align-self:start}.right{position:relative}
.eyebrow{display:inline-block;margin-left:26px;font:500 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#a91d32;border-bottom:3px solid #a91d32;padding:0 0 7px}
.left h1{margin:24px 0 18px 26px;font-size:clamp(54px,5.6vw,92px);line-height:.9}
.office-note{margin:0 0 22px 26px;max-width:460px;color:var(--muted);font-size:13px;line-height:1.7}
/* the live summary */
.sum{margin:0 0 22px 26px;max-width:520px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 30px 50px -40px rgba(70,22,30,.5);padding:18px 20px 20px}
.sum-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sum-h b{font:600 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#6a625d}
.sum-copy,#done-copy{border:0;background:none;border-bottom:1px solid var(--red);padding:0 0 3px;color:var(--red);font:600 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.sum-empty{font-size:13px;line-height:1.7;color:var(--faint)}
.sum-rows{margin:0;display:grid;gap:8px}.sum-rows div{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:baseline;opacity:0;transform:translateY(6px);animation:ctin .45s forwards cubic-bezier(.22,.61,.36,1)}
@keyframes ctin{to{opacity:1;transform:none}}
.sum-rows dt{font:600 9px/1.5 Inter,Inter Fallback,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}.sum-rows dd{margin:0;font:500 13px/1.45 Inter,Inter Fallback,sans-serif;color:#2d2926}
.sum-route{margin-top:12px;padding:9px 12px;background:#fdf1f2;border-left:3px solid var(--red);font:500 12px/1.4 Inter,Inter Fallback,sans-serif;color:var(--wine)}
.sum-msg{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.75;color:#4a4540;white-space:pre-line}
.offices{margin:0 0 0 26px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:520px}
.office{display:block;border-left:3px solid #d8b9be;padding:2px 0 2px 10px;text-decoration:none;color:inherit;transition:border-color .3s,background .3s}
.office strong{display:block;font:600 11px/1.3 Inter,Inter Fallback,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#2d2926}.office span{display:none;font-size:10px;color:var(--faint)}
.office:hover,.office.on{border-color:var(--red)}.office.on strong{color:var(--wine)}
/* the form */
.right:before{content:'';display:block;width:44px;height:4px;background:var(--red);margin-bottom:22px}
.fs{margin:0 0 26px;padding:0 0 24px;border:0;border-bottom:1px solid var(--line);min-width:0}
.fs[hidden]{display:none}.fs.rise{animation:ctrise .55s cubic-bezier(.22,.61,.36,1)}@keyframes ctrise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.fs legend{padding:0;margin-bottom:14px;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#3f3a37}.fs legend em{font:400 11px/1 Inter,Inter Fallback,sans-serif;font-style:normal;letter-spacing:.06em;text-transform:none;color:var(--faint);margin-left:8px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{padding:14px 22px;border:1px solid #cdbfb4;background:#fff;color:#3f3a37;font:500 13px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.04em;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .35s cubic-bezier(.22,.61,.36,1)}
.pill.sm{padding:10px 15px;font-size:12px}.pill.alt{border-style:dashed}
.svc-cats{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 14px}
.svc-cats button{padding:9px 14px;border:1px solid #cdbfb4;background:#fff;color:#4a423e;font:500 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.svc-cats button:hover{border-color:var(--wine);color:var(--wine)}.svc-cats button[aria-pressed="true"]{background:#171816;border-color:#171816;color:#fff}
.svc-cats button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.svc-pills .pill{padding:11px 15px;font-size:13px}
.pill:hover{border-color:var(--wine);color:var(--wine);transform:translateY(-2px)}
.pill[aria-checked="true"],.pill[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff;border-style:solid;transform:none}
.or{margin:16px 0 10px;font:500 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}.or em{font-style:normal;letter-spacing:.04em;text-transform:none;margin-left:6px}
.hint{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--faint)}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}.grid2 .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field label{font:600 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#4a4540}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.field input,.field select,.field textarea{width:100%;padding:12px 12px;border:1px solid #cdbfb4;background:#fff;color:#2d2926;font:400 14px/1.4 Inter,Inter Fallback,sans-serif;border-radius:0;transition:border-color .25s,box-shadow .25s}
.field select{-webkit-appearance:none;appearance:none;padding-right:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237c0b19' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;cursor:pointer}
.field select:disabled{background-color:#f3eee9;color:#6a625b;cursor:not-allowed}
.field textarea{min-height:96px;resize:vertical}
.field input:hover,.field select:hover:not(:disabled),.field textarea:hover{border-color:var(--wine)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgba(166,18,43,.12)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--red);box-shadow:0 0 0 3px rgba(166,18,43,.14)}
.field.flash select,.field.flash input{animation:ctflash .9s ease}@keyframes ctflash{30%{border-color:var(--red);box-shadow:0 0 0 3px rgba(166,18,43,.18)}}
.consent{display:flex;gap:10px;margin:6px 0 22px;font-size:11.5px;line-height:1.7;color:#4c4743;cursor:pointer}.consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--red)}
.send-row{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.send{display:inline-flex;align-items:center;gap:26px;border:0;background:linear-gradient(90deg,#c81d3b,#b30f2b);color:#fff;text-transform:uppercase;letter-spacing:.24em;font:600 11px/1 Inter,Inter Fallback,sans-serif;padding:19px 28px;cursor:pointer;transition:background .3s}
.send b{font:300 20px/1 Inter,Inter Fallback,sans-serif;letter-spacing:0;transition:transform .35s}.send:hover{background:#760812}.send:hover b{transform:rotate(90deg)}
.err{margin:0;min-height:1.3em;font-size:13px;color:var(--red)}
.note{font-size:10px;color:#7c756e;margin:14px 0 0;line-height:1.6}
.pill:focus-visible,.send:focus-visible,.office:focus-visible,.sum-copy:focus-visible,#done-copy:focus-visible{outline:2px solid var(--red);outline-offset:2px}
/* the confirmation */
.done{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);padding:34px 34px 30px;box-shadow:0 34px 60px -44px rgba(70,22,30,.5);animation:ctrise .6s cubic-bezier(.22,.61,.36,1)}
.done[hidden]{display:none}.done:focus{outline:0}
.done-k{font:600 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--red)}
.done h2{margin:12px 0 12px;font:500 clamp(40px,4vw,62px)/.95 var(--hd-font,"Antonio",Antonio Fallback,"Arial Narrow",sans-serif);letter-spacing:.04em;text-transform:uppercase;background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.done p{margin:0 0 14px;font-size:15px;line-height:1.8;color:#3f3a37}.done-ref{display:inline-block;margin:0 0 20px;padding:10px 14px;background:#f6efec;font:600 12px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;color:var(--wine)}
.done-box{border:1px solid var(--line);background:#fbf8f6;margin-bottom:20px}.done-boxh{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.done-boxh b{font:600 10px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#6a625d}
.done pre{margin:0;padding:16px;font:400 13px/1.8 Inter,Inter Fallback,sans-serif;white-space:pre-wrap;color:#2d2926}
.done-next{margin:0 0 24px;padding:0;list-style:none;display:grid;gap:8px}.done-next li{position:relative;padding-left:20px;font-size:13px;line-height:1.7;color:#4a4540}.done-next li:before{content:"";position:absolute;left:0;top:.8em;width:11px;height:2px;background:var(--red)}
.done-acts{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center}.done-acts a{color:var(--wine);font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:5px}

@media(max-width:980px){.page{grid-template-columns:1fr;padding:30px 6% 50px 9%;background-attachment:scroll;gap:34px}.page:before{left:5%}.left{position:static}.offices{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:640px){.grid3,.grid2{grid-template-columns:1fr}.offices{grid-template-columns:1fr 1fr}.left h1{font-size:56px}.sum-rows div{grid-template-columns:84px 1fr}.pill{padding:13px 16px}.topnav a:not(.home){display:none}.done{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.sum-rows div,.fs.rise,.done{animation:none;opacity:1;transform:none}.pill{transition:none}}

/* 3.2.31: the main line under the introduction */
.ct-direct{font-size:13px;line-height:1.7;margin:-8px 0 30px 26px;max-width:460px;color:var(--muted)}.ct-direct a{white-space:nowrap;color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* Interactive office photograph for page heroes (3.2.17). See assets/lobby-hero.js and _source/lobby_hero.py. */
.lh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.lh-img{z-index:-3}
.lh-img,.lh-ui{position:absolute;inset:0;will-change:transform;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.lh-img picture,.lh-img img{display:block;width:100%;height:100%}
.lh-img img{object-fit:cover;transform-origin:var(--lh-o,50% 50%);animation:lhZoom 2.4s cubic-bezier(.22,.61,.36,1) both}
@keyframes lhZoom{from{transform:scale(1.1);filter:brightness(.7)}to{transform:none;filter:none}}
/* the warm light that follows the pointer */
.lh-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .6s;mix-blend-mode:soft-light;background:radial-gradient(circle 340px at var(--lh-gx,50%) var(--lh-gy,40%),rgba(255,214,150,.75),rgba(255,214,150,0) 70%)}
.lh-glow.on{opacity:1}
/* hotspots ride on the photograph */
.lh-ui{z-index:2;visibility:hidden}
.lh-ready .lh-ui{visibility:visible}
.lh-pt{position:absolute;width:0;height:0;pointer-events:none;opacity:0;animation:lhIn .7s cubic-bezier(.22,.61,.36,1) both}
.lh-pt:nth-child(1){animation-delay:1.5s}.lh-pt:nth-child(2){animation-delay:1.7s}.lh-pt:nth-child(3){animation-delay:1.9s}.lh-pt:nth-child(4){animation-delay:2.1s}
@keyframes lhIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.lh-spot{position:absolute;left:-22px;top:-22px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;pointer-events:auto;display:grid;place-items:center}
.lh-spot i{position:relative;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.28),0 6px 18px rgba(0,0,0,.35);transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .25s}
.lh-spot i:before,.lh-spot i:after{content:"";position:absolute;left:4px;right:4px;top:7.25px;height:1.5px;background:#8E0D20;transition:transform .35s}
.lh-spot i:after{transform:rotate(90deg)}
.lh-spot:before{content:"";position:absolute;inset:6px;border:1px solid rgba(255,255,255,.8);border-radius:50%;animation:lhPulse 2.6s ease-out infinite}
@keyframes lhPulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.5);opacity:0}}
.lh-spot:hover i,.lh-spot[aria-expanded="true"] i{transform:scale(1.2);background:#8E0D20}
.lh-spot:hover i:before,.lh-spot:hover i:after,.lh-spot[aria-expanded="true"] i:before,.lh-spot[aria-expanded="true"] i:after{background:#fff}
.lh-spot[aria-expanded="true"] i:after{transform:rotate(0)}
.lh-spot:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lh-tag{position:absolute;left:30px;top:50%;transform:translate(-6px,-50%);padding:6px 10px;background:rgba(14,11,9,.82);color:#fff;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s}
.lh-spot:hover .lh-tag,.lh-spot:focus-visible .lh-tag{opacity:1;transform:translate(0,-50%)}
.lh-pt.open .lh-tag{opacity:0}
.lh-pt.open{z-index:3}
.lh-card{position:absolute;left:30px;top:-18px;width:min(270px,70vw);padding:16px 18px 16px;background:#fff;color:#1d1a18;border-top:3px solid #8E0D20;box-shadow:0 26px 60px -20px rgba(0,0,0,.55);pointer-events:auto;text-align:left;animation:lhCard .32s cubic-bezier(.22,.61,.36,1)}
.lh-card[hidden]{display:none}
.lh-pt.flip .lh-card{left:auto;right:30px}
.lh-pt.up .lh-card{top:auto;bottom:-18px}
@keyframes lhCard{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.lh-card b{display:block;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#8E0D20}
.lh-card p{margin:9px 0 12px;font:400 13px/1.6 Inter,"Inter Fallback",Arial,sans-serif;color:#3a3532;text-shadow:none}
.lh-card .lh-acts{display:flex;flex-wrap:wrap;gap:8px 16px}
.lh-card a{display:inline-flex;align-items:center;min-height:32px;color:#8E0D20;font:600 11px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(142,13,32,.35)}
.lh-card a:hover,.lh-card a:focus-visible{border-color:#8E0D20}
/* phones: no tags, and only the hotspots marked as central */
@media(max-width:700px){.lh-tag{display:none}.lh-pt:not(.core){display:none}.lh-card{width:min(250px,calc(100vw - 90px))}}
@media(prefers-reduced-motion:reduce){.lh-img,.lh-ui{transition:none}.lh-img img,.lh-pt{animation:none;opacity:1}.lh-spot:before{animation:none;display:none}.lh-card{animation:none}}
@media print{.lh-ui,.lh-glow{display:none}}

/* ---------- Contact Us hero ---------- */
.ctHero{position:relative;isolation:isolate;display:flex;align-items:flex-end;height:clamp(520px,calc(100svh - 76px),900px);overflow:hidden;color:#fff;background:#2a2119}
.ctHero-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(18,10,6,.78) 0%,rgba(18,10,6,.45) 40%,rgba(18,10,6,0) 70%),linear-gradient(0deg,rgba(18,10,6,.7),rgba(18,10,6,0) 50%)}
.ctHero-in{position:relative;z-index:1;width:100%;padding:0 clamp(20px,9vw,140px) clamp(48px,9vh,96px);box-sizing:border-box;pointer-events:none}
.ctHero-in>*{pointer-events:auto}
.ctHero-k{display:flex;align-items:center;gap:14px;margin:0;font:500 11px/1.2 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.38em;text-transform:uppercase;color:#fff}
.ctHero-k:before{content:"";width:34px;height:2px;background:#FF4D6A;flex:0 0 auto}
.ctHero-t{max-width:18ch;margin:16px 0 0;font:500 clamp(34px,3.7vw,60px)/1 "Antonio","Antonio Fallback","Oswald",sans-serif;letter-spacing:.03em;text-transform:uppercase;text-shadow:0 3px 36px rgba(0,0,0,.45)}
.ctHero-t em{font-style:normal;color:#e6c46a}
.ctHero-p{max-width:520px;margin:18px 0 0;font:500 clamp(17px,1.5vw,22px)/1.45 "Cormorant Garamond","Cormorant Garamond Fallback",Georgia,serif;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.ctHero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:28px}
.ctHero-acts a{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 20px;border:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;font:500 11px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;background:rgba(14,10,8,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .3s,border-color .3s,transform .3s}
.ctHero-acts a:hover{background:rgba(255,255,255,.14);border-color:#fff;transform:translateY(-2px)}
.ctHero-acts a.go{background:#8E0D20;border-color:#8E0D20;border-bottom-right-radius:14px}
.ctHero-acts a.go:hover{background:#6e0a18}
.ctHero-acts a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.ctHero-acts svg{width:16px;height:16px;fill:currentColor}
.ctHero-hint{position:absolute;z-index:1;right:clamp(20px,5vw,80px);top:clamp(22px,4vh,36px);margin:0;font:500 9.5px/1.4 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase;color:#fff;padding:8px 12px;background:rgba(14,10,8,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}
.ctHero-in>*{animation:ctHin 1s cubic-bezier(.22,.61,.36,1) both}
.ctHero-in>:nth-child(2){animation-delay:.12s}.ctHero-in>:nth-child(3){animation-delay:.24s}.ctHero-in>:nth-child(4){animation-delay:.36s}
@keyframes ctHin{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media(max-width:700px){.ctHero{height:min(84svh,720px)}.ctHero-shade{background:linear-gradient(0deg,rgba(18,10,6,.86) 0%,rgba(18,10,6,.45) 55%,rgba(18,10,6,.1) 100%)}.ctHero-hint{display:none}.ctHero-acts a{padding:0 14px;letter-spacing:.16em}}
@media(prefers-reduced-motion:reduce){.ctHero-in>*{animation:none}}
@media print{.ctHero{height:auto;min-height:0;color:#000;background:none}.lh,.ctHero-shade{display:none}}

/* ---------- About hero ---------- */
.ab-hero .ab-hero-in{position:relative;z-index:1;pointer-events:none}
.ab-hero .ab-hero-in>*{pointer-events:auto}
.ab-hero .ab-shade{pointer-events:none}
.ab-hero .ab-cue{z-index:1}

/* ==========================================================================
   Site-wide headings: the same tall, condensed, uppercase lettering and
   crimson > burgundy > oxblood gradient used on the home page.
   (Loaded by every page except the home page, which carries its own copy.)
   ========================================================================== */
@font-face{font-family:"Antonio";src:url("fonts/antonio.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
:root{
  --hd-font:"Antonio",Antonio Fallback,"Oswald","Barlow Condensed",Barlow Condensed Fallback,"Arial Narrow",Impact,sans-serif;
  --hd-grad:linear-gradient(180deg,#C31B37 0%,#8E0D20 52%,#4A0005 100%);
}

/* page titles */
h1,h1.h-display{font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.92;text-transform:uppercase;text-shadow:none;
  background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
h1{font-size:clamp(52px,6.2vw,100px)}
/* the "small line over a large line" composition: identical on every page */
h1.h-display:not(.area-title){font-size:clamp(28px,2.9vw,44px)!important;line-height:1!important}
h1.h-display:not(.area-title) strong{display:block;font-size:clamp(52px,6.1vw,96px)!important;font-weight:500;line-height:.92;margin-top:.06em;color:inherit}
h1.area-title{font-size:clamp(60px,8vw,120px)}

/* section headings that sit on white */
.feat-text h2,.t-count h2,h2.section-title,.marketing-intro h2,.t-intro h2,.panel-head h2,.panel-head h3,.intro h2{
  font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.95;text-transform:uppercase;text-shadow:none;
  background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.feat-text h2,.t-count h2,h2.section-title,.marketing-intro h2,.t-intro h2{font-size:clamp(40px,4.6vw,70px)}
.panel-head h2,.panel-head h3{font-size:clamp(38px,4vw,60px);margin-bottom:14px}
.feat-text h2 strong,.band h2 strong,h2 strong{font-weight:500;color:inherit}

/* red bands: same lettering, in white (a gradient would not read on the red) */
.band h2{font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.92;text-transform:uppercase;font-size:clamp(44px,5vw,76px)}

/* big numerals */
.stat b,.t-count b,.fact b,.stats b{font-family:var(--hd-font);font-weight:500;letter-spacing:.03em}

/* ----- pages built with their own heading rules: same lettering, applied with the page's own selectors ----- */
html[data-page="contact-us"] .left h1,
html[data-page="gallery"] .hero h1,
html[data-page="office"] :is(.aboutVisual h1,.aboutVisual h2,.listingHead h2,.teamTitle,.galleryTitle),
html[data-page="offices"] .end h2,
html[data-page="agent"] :is(.copy h2,.portfolioHead h2),
html[data-page="listing"] :is(.hero h1,.intro h2,.galleryHead h2),
html[data-page="list-with-us"] :is(.hero h1,.contact h2){
  font-family:var(--hd-font)!important;font-weight:500!important;letter-spacing:.04em!important;text-transform:uppercase!important;line-height:.94!important;text-shadow:none!important;font-style:normal!important;
  background:var(--hd-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
/* the same lettering on photographs and dark panels, with the lighter reds so it stays readable */
html[data-page="offices"] .officeCopy h1,
html[data-page="office"] section.contact h2,
html[data-page="listing"] section.contact h2{
  font-family:var(--hd-font)!important;font-weight:500!important;letter-spacing:.04em!important;text-transform:uppercase!important;line-height:.94!important;text-shadow:none!important;font-style:normal!important;
  background:linear-gradient(180deg,#FF6F86 0%,#EC3A54 50%,#C31B37 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
html[data-page="agent"] .copy h2{font-size:clamp(34px,3.4vw,50px)}

/* ----- fit: the condensed lettering must always stay inside its column ----- */
.t-hero h1,.t-count h1{font-size:clamp(46px,4.9vw,80px)!important;overflow-wrap:normal;word-break:normal}
h1{max-width:100%}
@media(max-width:600px){
  .t-hero h1,.t-count h1{font-size:clamp(30px,8.6vw,40px)!important;letter-spacing:.03em}
  h1.h-display:not(.area-title){font-size:clamp(22px,6.4vw,30px)!important}
  h1.h-display:not(.area-title) strong{font-size:clamp(40px,12.4vw,58px)!important}
}

/* ----- the shared top menu now has six links: on phones keep Rentals, Invest and Contact ----- */
@media(max-width:700px){
  .top nav a{display:none!important}
  .top nav a:nth-last-child(-n+3){display:inline-block!important}
  .top nav{gap:14px}
  .top .brand{font-size:11px;letter-spacing:.16em}
}

/* stat labels sit on white on these pages (the pale pink is only for the red band) */
.t-intro .stat span,.facts .stat span,.glance .stat span{color:#6a625b}

@media(max-width:360px){.top{padding:0 3%}.top .brand{font-size:10px;letter-spacing:.08em}.top nav{gap:9px}.top nav a{letter-spacing:.06em;font-size:9px}}
/* anchors on sub-pages land below the sticky header */
html:not([data-page]){scroll-padding-top:104px}

@media(max-width:480px){.t-intro{grid-template-columns:minmax(0,1fr)}.t-intro>*{min-width:0}.stat b{overflow-wrap:anywhere}}

/* ----- 3.2.11 readability floor: small type stays small, but never below about 9–10 px ----- */
@media screen{
html[data-page="list-with-us"] .field label{font-size:10px!important}
html[data-page="list-with-us"] .kicker,html[data-page="list-with-us"] .footer span,html[data-page="list-with-us"] .footer a{font-size:9.5px!important}
html[data-page="office"] .photo .badge,html[data-page="office"] .card .loc{font-size:9.5px!important}
html[data-page="office"] .meta span,html[data-page="office"] .meta b{font-size:10px!important}
html[data-page="office"] .teamCardCopy span{font-size:9px!important;letter-spacing:.12em!important}
html[data-page="office"] .sectionViewLink{font-size:9.5px!important;z-index:5!important}
html[data-page="listing"] .ey,html[data-page="listing"] .galleryHead span,html[data-page="listing"] .contact a,html[data-page="listing"] .note{font-size:9.5px!important}
}

/* ----- 3.2.11 no jumping while a page draws itself: room is kept for the parts its script fills in ----- */
#ppCards:is(:empty,:has(> noscript:only-child)){min-height:680px}#ppCmp:empty{min-height:665px}
@media(max-width:1100px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:750px}}
@media(max-width:820px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:1600px}#ppCmp:empty{min-height:715px}}
@media(max-width:480px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:1790px}#ppCmp:empty{min-height:725px}}
html[data-page="office"] #aboutText:empty{min-height:380px}
@media(max-width:1100px){html[data-page="office"] #aboutText:empty{min-height:500px}}
@media(max-width:820px){html[data-page="office"] #aboutText:empty{min-height:300px}}
@media(max-width:480px){html[data-page="office"] #aboutText:empty{min-height:600px}}
#prRoot,#vwRoot{min-height:70vh}

/* ----- 3.2.11 the shared footer, for pages that do not carry the marketing styles ----- */
.hv-foot{padding:28px 4%;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font:400 11px/1.6 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#77706a;background:#fff}
.hv-foot .credits{flex:1;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:none;color:#6a625b}
.hv-foot a{color:inherit;text-decoration:none}.hv-foot a:hover{color:#8E0D20}
@media(max-width:700px){.hv-foot{flex-direction:column;align-items:flex-start;text-align:left}.hv-foot .credits{text-align:left}}
/* the floating WhatsApp button and the social button never cover the footer's words */
footer.footer{padding-right:max(4%,250px)!important}
@media(max-width:700px){footer.footer{padding-right:4%!important;padding-bottom:96px!important}}
@media print{footer.hv-foot{display:none!important}}

