/* Combined by _source/bundle_assets.py from: assets/fonts/fonts.css, assets/plans.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}

/* Plans (3.2.2): badges, plan cards and the M-Pesa payment sheet, on plans.html and account.html (assets/plans-ui.js) */
.pl-card,.pl-card *,.pl-sheet,.pl-sheet *,.pl-now,.pl-now *,.pl-meters *,.pp *{box-sizing:border-box}
:root{--pl-ease:cubic-bezier(.22,.8,.24,1);--pl-gold1:#f1d77e;--pl-gold2:#c9a646;--pl-gold3:#9c7a1e;--pl-em1:#14916f;--pl-em2:#0b6b52;--pl-em3:#06483a}
/* badges: grey Free, gold Premium, emerald Business */
.pl-badge{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font:700 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;vertical-align:middle}
.pl-badge span{font-size:12px;letter-spacing:0}
.pl-badge.free{background:#ece7df;color:#3a332f;border:1px solid #cfc4b4}
.pl-badge.premium{background:linear-gradient(135deg,var(--pl-gold1),var(--pl-gold2) 55%,var(--pl-gold3));color:#3b2a00;border:1px solid #a8862a;box-shadow:0 2px 10px rgba(201,166,70,.35)}
.pl-badge.business{background:linear-gradient(135deg,var(--pl-em1),var(--pl-em2) 55%,var(--pl-em3));color:#fff;border:1px solid #06483a;box-shadow:0 2px 10px rgba(11,107,82,.35)}
.pl-badge.lg{padding:9px 16px;font-size:11px}
.pl-badge.lg span{font-size:15px}
.pl-badge.premium::after,.pl-badge.business::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:pl-shine 3.2s var(--pl-ease) 1s infinite}
@keyframes pl-shine{0%{transform:translateX(-120%)}35%,100%{transform:translateX(120%)}}
.pl-badge.reveal{animation:pl-reveal .7s var(--pl-ease) .35s both}
@keyframes pl-reveal{0%{opacity:0;transform:scale(.5) rotate(-6deg)}60%{opacity:1;transform:scale(1.12) rotate(1deg)}100%{transform:none}}

/* plan cards */
.pl-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.pl-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px 24px 24px;background:#fff;border:1px solid #e3dcd0;transition:transform .3s var(--pl-ease),box-shadow .3s,border-color .3s;animation:pl-in .5s var(--pl-ease) both}
.pl-card:nth-child(2){animation-delay:.08s}.pl-card:nth-child(3){animation-delay:.16s}
@keyframes pl-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.pl-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(20,14,10,.10)}
.pl-card.premium{border-color:#d9c27a}
.pl-card.premium.popular{box-shadow:0 0 0 2px var(--pl-gold2),0 18px 40px rgba(201,166,70,.18)}
.pl-card.business{border-color:#9fcdbf}
.pl-card.current{outline:2px dashed #5d5752;outline-offset:4px}
.pl-pop{position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:6px 12px;background:#1d1a18;color:#f1d77e;font:700 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.pl-card header h3{margin:12px 0 4px;font:500 34px/1 'Cormorant Garamond',Cormorant Garamond Fallback,Georgia,serif;color:#1d1a18}
.pl-card header p{margin:0;font-size:14px;line-height:1.5;color:#5d5752}
.pl-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pl-price b{font:600 30px/1 Inter,Inter Fallback,Arial,sans-serif;color:#1d1a18;letter-spacing:-.01em;transition:opacity .25s}
.pl-price span{font-size:14px;color:#5d5752}
.pl-save{margin:-6px 0 0;font-size:13px;color:#1d6b45;min-height:1.3em}
.pl-card.free .pl-save{display:none}
.pl-benefits{list-style:none;margin:0;padding:0;display:grid;gap:9px;flex:1;align-content:start}
.pl-benefits li{position:relative;padding-left:26px;font-size:14px;line-height:1.45;color:#2b2522}
.pl-benefits li::before{content:'';position:absolute;left:0;top:2px;width:17px;height:17px;border-radius:50%;background:#1d6b45 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") center/10px no-repeat}
.pl-card.premium .pl-benefits li::before{background-color:var(--pl-gold3)}
.pl-card.business .pl-benefits li::before{background-color:var(--pl-em2)}
.pl-benefits li.soon{color:#6a625b}
.pl-benefits li.soon::before{background-color:#b5a99b}
.pl-benefits em{display:inline-block;margin-left:4px;padding:2px 6px;background:#f1e9dc;color:#6b5414;font:600 10px/1.3 Inter,Inter Fallback,Arial,sans-serif;font-style:normal;letter-spacing:.06em;text-transform:uppercase}
.pl-cta .pl-btn,.pl-cta .ac-btn{width:100%}
.pl-cta .pl-here{display:block;padding:14px;text-align:center;background:#f5f1ea;color:#3a332f;font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.pl-toggle{display:inline-flex;padding:4px;background:#efe8dd;border-radius:999px;gap:2px}
.pl-toggle button{position:relative;min-height:42px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:#3a332f;font:600 13px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer;transition:background-color .25s,color .25s,box-shadow .25s}
.pl-toggle button[aria-checked="true"]{background:#fff;color:#1d1a18;box-shadow:0 2px 8px rgba(20,14,10,.12)}
.pl-toggle small{margin-left:6px;padding:3px 6px;border-radius:999px;background:#1d6b45;color:#fff;font-size:10px}
.pl-toggle button:focus-visible,.pl-seg button:focus-visible{outline:2px solid #a6122b;outline-offset:2px}
.pl-cards.swap .pl-price b,.pl-cards.swap .pl-save{animation:pl-flip .35s var(--pl-ease)}
@keyframes pl-flip{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* buttons */
.pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border:1px solid #7c0b19;background:#7c0b19;color:#fff;font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,transform .15s,box-shadow .2s}
.pl-btn:hover{box-shadow:0 8px 20px rgba(124,11,25,.22)}
.pl-btn:active{transform:scale(.97)}
.pl-btn[disabled]{opacity:.7;cursor:progress}
.pl-btn.ghost{background:transparent;color:#7c0b19}
.pl-btn.gold{background:linear-gradient(135deg,var(--pl-gold1),var(--pl-gold2));border-color:#a8862a;color:#2b1f00}
.pl-btn.emerald{background:linear-gradient(135deg,var(--pl-em1),var(--pl-em2));border-color:#06483a}
.pl-btn:focus-visible{outline:2px solid #a6122b;outline-offset:3px}
.pl-link{border:0;background:none;padding:6px 0;color:#7c0b19;font:500 14px/1.4 Inter,Inter Fallback,Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* the payment sheet */
html.pl-lock{overflow:hidden}
.pl-sheet{position:fixed;inset:0;z-index:13000;display:flex;align-items:center;justify-content:center;padding:16px}
.pl-scrim{position:absolute;inset:0;background:rgba(15,10,8,.55);opacity:0;transition:opacity .25s}
.pl-box{position:relative;width:min(480px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:30px 28px 26px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35);opacity:0;transform:translateY(24px) scale(.98);transition:opacity .28s var(--pl-ease),transform .32s var(--pl-ease)}
.pl-sheet.open .pl-scrim{opacity:1}
.pl-sheet.open .pl-box{opacity:1;transform:none}
.pl-x{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;font-size:26px;line-height:1;color:#3a332f;cursor:pointer;transition:background-color .2s}
.pl-x:hover{background:#f3eee6}
.pl-body.pl-step>*{animation:pl-in .35s var(--pl-ease) both}
.pl-body.pl-step>*:nth-child(2){animation-delay:.04s}.pl-body.pl-step>*:nth-child(3){animation-delay:.08s}.pl-body.pl-step>*:nth-child(4){animation-delay:.12s}
.pl-body h2{margin:0 40px 14px 0;font:500 32px/1.05 'Cormorant Garamond',Cormorant Garamond Fallback,Georgia,serif;color:#1d1a18}
.pl-body h2:focus{outline:none}
.pl-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:18px 0 6px;padding:4px;background:#efe8dd}
.pl-seg button{min-height:44px;border:0;background:transparent;font:600 13px/1.2 Inter,Inter Fallback,Arial,sans-serif;color:#3a332f;cursor:pointer;transition:background-color .2s,box-shadow .2s}
.pl-seg button[aria-checked="true"]{background:#fff;box-shadow:0 2px 6px rgba(20,14,10,.12);color:#1d1a18}
.pl-seg small{display:block;font-weight:500;color:#1d6b45;font-size:11px;margin-top:2px}
.pl-amount{display:flex;align-items:baseline;gap:8px;margin:14px 0 6px}
.pl-amount b{font:600 36px/1 Inter,Inter Fallback,Arial,sans-serif;color:#1d1a18}
.pl-amount span{color:#5d5752}
.pl-facts{margin:0 0 16px;padding-left:18px;font-size:14px;line-height:1.55;color:#3a332f}
.pl-form{display:grid;gap:7px}
.pl-form label{font:600 11px/1.3 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#3a332f}
.pl-form input,.pl-sim input{width:100%;min-height:50px;padding:12px 14px;border:1px solid #cdbfb0;font:400 17px/1.2 Inter,Inter Fallback,Arial,sans-serif;transition:border-color .2s,box-shadow .2s}
.pl-form input:focus,.pl-sim input:focus{outline:none;border-color:#a6122b;box-shadow:0 0 0 4px rgba(166,18,43,.1)}
.pl-form small{font-size:12.5px;color:#5d5752;line-height:1.45}
.pl-form .pl-btn{margin-top:6px}
.pl-msg{margin:0;min-height:1.2em;color:#a6122b;font-size:14px;line-height:1.45}
.pl-msg.big{font-size:16px}
.pl-demo{margin:14px 0 0;padding:10px 12px;background:#fbf3dc;color:#6b5414;font-size:13px;line-height:1.45}
.pl-lead{font-size:15px;line-height:1.6;color:#3a332f;margin:0 0 14px}
.pl-phone{position:relative;width:96px;height:96px;margin:6px auto 18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f8eef0;color:#7c0b19}
.pl-phone svg{position:relative;width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;animation:pl-buzz 2.4s ease-in-out infinite}
@keyframes pl-buzz{0%,70%,100%{transform:none}75%{transform:rotate(-8deg)}80%{transform:rotate(8deg)}85%{transform:rotate(-6deg)}90%{transform:rotate(5deg)}}
.pl-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(124,11,25,.35);animation:pl-ring 2.4s ease-out infinite}
.pl-ring.r2{animation-delay:1.2s}
@keyframes pl-ring{from{transform:scale(1);opacity:1}to{transform:scale(1.7);opacity:0}}
.pl-wait{display:flex;align-items:center;gap:10px;justify-content:center;font-size:14px;color:#3a332f}
.pl-spin{width:16px;height:16px;border:2px solid #e3dcd0;border-top-color:#7c0b19;border-radius:50%;animation:pl-spin .8s linear infinite}
@keyframes pl-spin{to{transform:rotate(360deg)}}
.pl-timer{height:3px;margin:14px 0;background:#efe8dd;overflow:hidden}
.pl-timer i{display:block;height:100%;width:100%;background:#7c0b19;transition:width .5s linear}
.pl-sim{margin:16px 0 4px;padding:16px;border-radius:18px;background:#1b1b1d;color:#f2f2f2;box-shadow:inset 0 0 0 6px #2c2c30;transition:opacity .3s,transform .3s var(--pl-ease)}
.pl-sim.sent{opacity:.4;transform:scale(.97)}
.pl-sim-h{margin:0 0 8px;font:700 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#9be3b7}
.pl-sim p{margin:0 0 10px;font-size:14px;line-height:1.45}
.pl-sim input{background:#fff;color:#111;letter-spacing:.4em}
.pl-sim-b{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.pl-sim .pl-btn.ghost{color:#fff;border-color:#666}
.pl-sim .pl-link{color:#f1d77e}
.pl-acts{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:10px}
.pl-acts.row{flex-direction:row;justify-content:flex-end;gap:10px}
.pl-done{text-align:center}
.pl-done h2{margin-right:0}
.pl-check{display:block;width:76px;height:76px;margin:4px auto 14px}
.pl-check svg{width:100%;height:100%;fill:none;stroke:#1d6b45;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.pl-check circle{stroke-dasharray:151;stroke-dashoffset:151;animation:pl-draw .6s var(--pl-ease) forwards}
.pl-check path{stroke-dasharray:36;stroke-dashoffset:36;animation:pl-draw .4s var(--pl-ease) .45s forwards}
@keyframes pl-draw{to{stroke-dashoffset:0}}
.pl-done .pl-badge{margin:2px 0 14px}
.pl-done .pl-btn{min-width:180px}

/* the Plan tab in My account */
.pl-now{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 24px;align-items:center;padding:22px 24px;background:#fff;border:1px solid #e3dcd0;animation:pl-in .45s var(--pl-ease) both}
.pl-now.premium{border-color:#d9c27a;background:linear-gradient(135deg,#fffdf6,#fff)}
.pl-now.business{border-color:#9fcdbf;background:linear-gradient(135deg,#f5fbf9,#fff)}
.pl-now h3{margin:10px 0 4px;font:500 28px/1.1 'Cormorant Garamond',Cormorant Garamond Fallback,Georgia,serif}
.pl-now p{margin:0;color:#4a423d;font-size:14px;line-height:1.5}
.pl-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.pl-meter{padding:14px 16px;background:#faf7f1}
.pl-meter b{display:block;font:600 22px/1 Inter,Inter Fallback,Arial,sans-serif;color:#1d1a18}
.pl-meter span{display:block;margin-top:6px;font-size:12px;color:#5d5752}
.pl-meter i{display:block;height:5px;margin-top:10px;background:#e8e0d3;overflow:hidden}
.pl-meter i::after{content:'';display:block;height:100%;width:var(--w,0);background:#1d6b45;animation:pl-grow .9s var(--pl-ease) .15s both}
.pl-meter.full i::after{background:#a6122b}
@keyframes pl-grow{from{width:0}}
.pl-history td small{display:block}
.pl-st{display:inline-block;padding:4px 8px;font:600 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;background:#ece7df;color:#3a332f}
.pl-st.paid{background:#e2f0e7;color:#1d5c39}
.pl-st.pending{background:#fbf3dc;color:#6b5414}
.pl-st.failed,.pl-st.cancelled,.pl-st.expired{background:#f8e4e6;color:#7c0b19}
.pl-upsell{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px;background:#fffaf0;border:1px solid #ecd9a3;font-size:14px;line-height:1.5}
.pl-upsell p{margin:0;flex:1 1 240px}

@media(max-width:900px){.pl-cards{grid-template-columns:1fr;max-width:520px;margin:0 auto}}
@media(max-width:560px){.pl-now{grid-template-columns:1fr}.pl-meters{grid-template-columns:1fr}.pl-box{padding:26px 18px 20px}.pl-sheet{align-items:flex-end;padding:0}.pl-box{width:100%;max-height:92vh;max-height:92dvh;transform:translateY(40px)}.pl-amount b{font-size:30px}}
@media(prefers-reduced-motion:reduce){.pl-badge::after,.pl-badge.reveal,.pl-card,.pl-body.pl-step>*,.pl-phone svg,.pl-ring,.pl-spin,.pl-check circle,.pl-check path,.pl-meter i::after,.pl-now,.pl-cards.swap *{animation:none!important}.pl-check circle,.pl-check path{stroke-dashoffset:0}.pl-box,.pl-scrim,.pl-card,.pl-sim{transition:none!important}}

/* ---------- plans.html ---------- */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body[data-page="plans"],html[data-page="plans"] body{margin:0;background:#f7f3eb;color:#1d1a18;font-family:Inter,Inter Fallback,Arial,sans-serif}
.pp{padding:64px 5% 90px;background:linear-gradient(180deg,#171816 0,#171816 420px,#f7f3eb 420px)}
.pp-hero{max-width:780px;margin:0 auto 46px;text-align:center;color:#fff;animation:pl-in .5s var(--pl-ease) both}
.pp-ey{margin:0 0 14px;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#e2a2ad}
.pp .pp-hero h1{margin:0 0 16px;font:500 clamp(40px,6.4vw,66px)/.98 'Cormorant Garamond',Cormorant Garamond Fallback,Georgia,serif;color:#fff!important;-webkit-text-fill-color:#fff;background:none!important;text-transform:none;letter-spacing:0}
.pp-lead{margin:0 auto 26px;max-width:620px;font-size:16px;line-height:1.65;color:#d9d2c8}
.pp-hero .pl-toggle{background:rgba(255,255,255,.12)}
.pp-hero .pl-toggle button{color:#e9e3da}
.pp-hero .pl-toggle button[aria-checked="true"]{background:#fff;color:#1d1a18}
.pp-who{margin:18px 0 0;min-height:1.4em;font-size:14px;color:#d9d2c8}
.pp-who a{color:#f1d77e;text-underline-offset:3px}
.pp-cards{max-width:1140px;margin:0 auto}
.pp-sec{max-width:1000px;margin:72px auto 0}
.pp-sec h2,.pp-end h2{margin:0 0 20px;font:500 clamp(30px,4vw,42px)/1.05 'Cormorant Garamond',Cormorant Garamond Fallback,Georgia,serif;color:#1d1a18;text-align:center}
.pp-cmp-wrap{overflow-x:auto;background:#fff;border:1px solid #e3dcd0}
.pp-cmp{width:100%;min-width:620px;border-collapse:collapse;font-size:14px}
.pp-cmp th,.pp-cmp td{padding:14px 16px;border-bottom:1px solid #f0e9df;text-align:center;vertical-align:middle}
.pp-cmp thead th{font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#3a332f;background:#faf7f1;position:sticky;top:0}
.pp-cmp tbody th{text-align:left;font-weight:500;color:#2b2522}
.pp-cmp tbody tr{transition:background-color .2s}
.pp-cmp tbody tr:hover{background:#fcfaf6}
.pp-cmp small{color:#1d6b45}
.pp-yes{color:#1d6b45;font-weight:700;font-size:16px}
.pp-no{color:#b5a99b}
.pp-soon{display:inline-block;padding:3px 7px;background:#f1e9dc;color:#6b5414;font:600 10px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.pp-faq{display:grid;gap:10px;max-width:820px;margin:0 auto}
.pp-q{background:#fff;border:1px solid #e3dcd0;transition:border-color .2s,box-shadow .2s}
.pp-q[open]{border-color:#cdbfb0;box-shadow:0 10px 26px rgba(20,14,10,.06)}
.pp-q summary{position:relative;list-style:none;padding:18px 54px 18px 20px;font-weight:600;font-size:15px;cursor:pointer}
.pp-q summary::-webkit-details-marker{display:none}
.pp-q summary::after{content:'';position:absolute;right:22px;top:50%;width:10px;height:10px;margin-top:-7px;border-right:2px solid #7c0b19;border-bottom:2px solid #7c0b19;transform:rotate(45deg);transition:transform .3s var(--pl-ease)}
.pp-q[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.pp-q summary:focus-visible{outline:2px solid #a6122b;outline-offset:-2px}
.pp-q div{padding:0 20px 18px}
.pp-q div.pp-open{animation:pl-in .35s var(--pl-ease) both}
.pp-q p{margin:0;font-size:15px;line-height:1.65;color:#3a332f}
.pp-end{max-width:760px;margin:80px auto 0;padding:44px 24px;text-align:center;background:#1d1a18;color:#e9e3da}
.pp-end h2{color:#fff}
.pp-end p{margin:0 0 20px;font-size:15px}
.top{display:flex;align-items:center;justify-content:space-between;padding:18px 5%;background:#171816}
@media(max-width:560px){.pp{padding:40px 16px 70px}.pp-hero .pl-toggle button{padding:0 14px}}
@media(prefers-reduced-motion:reduce){.pp-hero,.pp-q div.pp-open{animation:none!important}.pp-q summary::after{transition:none}}
.pp-cmp tbody th,.pp-cmp thead th:first-child{position:sticky;left:0;z-index:1;background:#fff}
.pp-cmp thead th:first-child{background:#faf7f1;z-index:2}
.pp-cmp-wrap:focus-visible,.ac-table-wrap:focus-visible{outline:2px solid #a6122b;outline-offset:2px}

/* ==========================================================================
   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}}

