/* Quieter, sleeker surface: warm paper, hairlines, full-bleed bands and flat product frames.
   Colours, photography and copy are unchanged; this layer refines them and sets one type scale. */
:root{--paper:#fafaf8;--paper-2:#f1f0ec;--hair:#e4e2dc;--hair-dark:#ffffff1f;--muted:#5f6470;--ease:cubic-bezier(.2,.7,.2,1)}
/* Desktop and tablet scales, with a separate reading scale for the longer sections on phones.
   The hero keeps its own title size; supporting sections should not compete with it. */
:root{--gutter:64px;--h1:45px;--h1-lh:48px;--h2:38px;--h2-lh:44px;--h3:24px;--h3-lh:30px;--lead:18px}
@media(max-width:1100px){:root{--gutter:32px;--h1:37px;--h1-lh:40px;--h2:31px;--h2-lh:36px;--h3:22px;--h3-lh:28px;--lead:17px}}
@media(max-width:700px){:root{--gutter:24px;--h2:26px;--h2-lh:31px;--h3:17px;--h3-lh:24px}}
body{background:var(--paper)}
.wrap{width:min(1312px,calc(100% - 2 * var(--gutter)))}

/* Header: a light, sticky bar. Links left, the mark centred, the call to action right. */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.is-scrolled{border-bottom-color:var(--hair)}
.header-inner{min-height:64px;padding-block:8px}
.header-inner .brand{width:100px;height:28px}
.header-inner .brand img{width:119px;height:119px;left:-9px;top:-42px}
.header-inner nav{font-size:14px;font-weight:400;color:#33373f}
.header-inner nav a{position:relative;padding-block:6px}
.header-inner nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.header-inner nav a:hover{color:var(--ink)}.header-inner nav a:hover:after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:12px}
/* Returning customers: a quiet text button beside the sign-up call to action. */
.header-login{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;color:var(--ink);font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s}
.header-login:hover{background:#1414160d}
.header-login:focus-visible{outline:3px solid #3694d6;outline-offset:2px}
.language-picker select{min-height:32px;padding-block:4px;border-color:var(--hair);background:transparent;color:#33373f}
.language-help-button{min-height:32px}
@media(min-width:1151px){
  .header-inner{display:grid;grid-template-columns:1fr auto 1fr;gap:24px}
  .header-inner nav{grid-column:1;grid-row:1;justify-self:start;margin:0;gap:30px}
  .header-inner>.brand{grid-column:2;grid-row:1}
  .header-actions{grid-column:3;grid-row:1;justify-self:end}
}
@media(min-width:701px) and (max-width:1150px){
  .header-inner{display:grid;grid-template-columns:1fr auto;row-gap:2px}
  .header-inner>.brand{grid-column:1;grid-row:1}
  .header-actions{grid-column:2;grid-row:1;justify-self:end}
  .header-inner nav{grid-column:1/-1;grid-row:2;justify-content:center;width:100%;margin:0;gap:28px}
}

/* Buttons: soft pills with a circled arrow. */
.button{gap:10px;border-radius:999px;font-size:15px;font-weight:500;letter-spacing:-.005em;min-height:36px;padding:5px 5px 5px 18px;box-shadow:none}
.button:after{content:'';flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8.5 4.5 12 8l-3.5 3.5' fill='none' stroke='%23101113' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;transition:transform .35s var(--ease)}
.button:hover{transform:none;box-shadow:none;background:#26282e}
.button:hover:after{transform:translateX(3px)}
.button-white{background:#fff;color:var(--ink)}
.button-white:after{background-color:#101113;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8.5 4.5 12 8l-3.5 3.5' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.button-white:hover{background:#efeee9;box-shadow:none}
.button-small{min-height:32px;padding:3px 3px 3px 14px;font-size:14px}
.signup-section .signup-button:after{display:none}
.text-button{border-bottom-color:currentColor;transition:opacity .2s}.text-button:hover{opacity:.7}

/* Eyebrows: small and quiet, so the serif headlines lead. One size in every section. */
.eyebrow,.hero-copy .eyebrow,.partners-heading .eyebrow,.platform-copy .eyebrow,.tour-heading .eyebrow,.business-stories .stories-heading .eyebrow,.section-heading .eyebrow,.africa-copy .eyebrow,.questions .eyebrow,.closing-cta .eyebrow{font-size:12px;font-weight:500;letter-spacing:1.2px}

/* Section headings and copy follow the scale at the top, replacing the per-breakpoint sizes in styles.css. */
.platform-copy h2,.tour-heading h2,.business-stories .stories-heading h2,.section-heading h2,.africa-copy h2,.questions h2{font-size:var(--h2);line-height:var(--h2-lh);letter-spacing:-.02em}
.signup-section h2{font-size:var(--h1);line-height:var(--h1-lh);letter-spacing:-.02em}
.tour-copy h3,.feature-grid h3,.signup-card h3{font-size:var(--h3);line-height:var(--h3-lh);letter-spacing:-.01em}
.platform-copy>p:not(.eyebrow):not(.demo-hint),.tour-heading>p,.business-stories .stories-heading>p:not(.eyebrow),.section-heading>p,.africa-copy>p:not(.eyebrow),.signup-copy>p:not(.eyebrow):not(.signup-invitation){font-size:16px;line-height:1.6}
.tour-copy>p,.feature-grid p,.faq-list details p{font-size:15px;line-height:1.6}

/* Hero: full-bleed, centred, with the workspace laid flat beneath it. */
.hero{margin:0;border-radius:0;min-height:0;background:#07152b}
.hero-atmosphere{background:radial-gradient(ellipse 70% 55% at 50% 0%,#1d4fa83d,transparent 70%),radial-gradient(ellipse 60% 50% at 50% 100%,#0357ee1f,transparent 70%),linear-gradient(180deg,#0b1220,#07152b 60%)}
/* A modern office at work, moving quietly behind the headline under a navy wash. */
/* The clip keeps its own wide shape across the top of the hero and fades into navy beneath,
   instead of being cropped to a close-up to fill the full height. */
.hero-video{inset:0 0 auto 0;height:min(100%,max(56.25vw,640px));opacity:1;-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent)}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:70% center;opacity:.9;animation:settle-in 1.6s ease-out both}
/* Phones and tablets: the hero is taller than it is wide, so filling its height cropped the clip to
   a fifth of its width. Show the whole frame across the top instead. */
@media(max-width:900px){.hero-video{height:auto;aspect-ratio:1366/768;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}.hero-video video{object-position:center}}
.hero:after{background:linear-gradient(180deg,#07152b8c 0%,#07152b52 30%,#07152b73 55%,#07152bf2 88%),radial-gradient(ellipse 50% 36% at 50% 34%,#07152b8c,transparent 80%)}
.hero-copy{text-shadow:0 1px 24px #07152b80}
.hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:48px;min-height:0;padding:64px 0 112px}
.hero-copy{max-width:860px;display:flex;flex-direction:column;align-items:center;animation:rise-in 1s var(--ease) both}
.hero-copy .eyebrow{display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:#c9cdd6}
.hero h1{font-size:var(--h1);line-height:var(--h1-lh);letter-spacing:-.02em;margin-bottom:20px}
.hero-description{max-width:560px;font-size:var(--lead);line-height:1.5;color:#e9ebef}
.hero-detail{max-width:none;font-size:15px}
.hero-actions{justify-content:center;margin-top:28px;gap:20px}
.hero-actions .button{min-height:36px;padding:5px 5px 5px 18px;font-size:15px}
.hero-product{width:min(1120px,100%);transform:none;border:1px solid #ffffff2b;border-radius:12px;box-shadow:0 0 0 6px #ffffff0a,0 40px 120px -20px #000a;animation:rise-in 1.2s .15s var(--ease) both}
.hero-product-link{aspect-ratio:1.9}
.product-window-bar{min-height:38px;font-size:11px}
.hero-product figcaption{font-size:12px;padding:14px 18px;text-align:left}
.hero .payment-moment{right:calc(50% - min(560px,50% - var(--gutter)) + 28px);bottom:150px;border-radius:12px;box-shadow:0 24px 60px -18px #0008;animation:rise-in 1.2s .35s var(--ease) both}
.hero-bottom{left:50%;right:auto;transform:translateX(-50%);width:min(1312px,calc(100% - 2 * var(--gutter)));bottom:36px;border-top-color:var(--hair-dark);color:#b9bfca}

/* Payment providers: a quiet, single-colour strip. */
.partners{padding-block:88px 40px;border-bottom:0}
.partners-heading{flex-direction:column;align-items:center;text-align:center;gap:16px;margin-bottom:6px}
.partners-heading .eyebrow{color:var(--muted)}
.partners-heading h2{text-align:center;font-size:clamp(28px,2.6vw,38px);line-height:1.2;letter-spacing:-.02em}
.provider-carousel{--logo-card-width:176px;--logo-gap:20px}
.provider-viewport{padding-block:24px;border-radius:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.provider-logo{height:64px;background:transparent;border:0;border-radius:0;box-shadow:none!important;transform:none!important;padding:12px}
.provider-logo img{max-height:30px;filter:grayscale(1) contrast(1.15);opacity:.58;mix-blend-mode:multiply;transition:filter .4s,opacity .4s}
.provider-logo:hover img{filter:none;opacity:1}
.provider-carousel:is(.is-static,:not(.is-ready)) .provider-logo{background:transparent}

/* Interactive product: flat panel, hairline frame. */
.platform-section{padding-block:72px 128px}
.text-accent,.tour-heading h2 span,.partners-heading h2 span{color:#023e7d}
.platform-glow{inset:-24px -24px -8px -24px;transform:none;border:0;border-radius:14px;background:var(--paper-2)}
.dashboard{border-color:var(--hair);border-radius:10px;box-shadow:0 1px 2px #1011130d,0 30px 60px -30px #10111340}
.platform-benefits{gap:0;margin-top:36px}
.platform-benefits>div{gap:20px;padding-block:18px;border-top:1px solid var(--hair)}
.platform-benefits>div:last-child{border-bottom:1px solid var(--hair)}
.benefit-icon{display:block;width:auto;height:auto;padding-top:4px;border:0;border-radius:0;background:none;font-size:11px;letter-spacing:1px;color:var(--blue)}
.demo-hint{padding-left:0;font-weight:600;color:var(--ink)}
.preview-caption{color:var(--muted)}

/* Product tour on a warm grey band. */
.product-tour{padding:112px 0 96px;background:var(--paper-2);border:0}
.tour-heading{margin-bottom:48px}
.product-tour-tabs{border-bottom-color:#d9d6ce}
.product-tour-tabs button[aria-selected=true]{border-color:var(--ink);color:var(--ink)}
.tour-screen{border-color:#dedbd3;border-radius:10px;box-shadow:0 30px 60px -36px #10111340}
.tour-screen>a{background:#ebe9e3}
.tour-number{color:var(--muted)}
.tour-copy li:before{background:var(--ink)}
.tour-demo-link{border-bottom-color:currentColor;color:var(--ink)}

/* Merchants: straight photographs in an even, staggered row. */
.business-stories{margin:0;background:#07152b}
.business-stories:before,.collage-orbit,.collage-accent{display:none}
.business-stories{padding:0}
.merchant-scene{grid-template-columns:.8fr 1.7fr;gap:72px;align-items:center;min-height:0;padding-block:120px}
.merchant-collage{height:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.collage-photo{position:relative;inset:auto;left:auto;top:auto;right:auto;bottom:auto;width:auto;height:auto;border-radius:6px;transform:none;box-shadow:none;aspect-ratio:3/4.6}
.collage-photo img{transition:transform 1.2s var(--ease)}
.collage-photo:hover img{transform:scale(1.04)}
.collage-retail figcaption{font-size:20px}

/* Three steps: hairline-led columns. */
.clarity-section{padding-block:128px 120px}
.section-heading{margin-bottom:64px}
.feature-grid{gap:32px}
.feature-grid article{padding-top:24px;border-top:1px solid var(--hair)}
.feature-rule{display:none}
.feature-number{color:var(--muted)}
.feature-grid h3{margin-top:28px}

/* Built for Africa: the charcoal band, flatter photograph. */
.africa-inner{padding-block:120px;gap:96px}
.merchant-photo{border-radius:6px}
.africa-principles{border-top-color:var(--hair-dark)}

/* Questions. */
.questions{padding-block:128px}
.faq-list details,.faq-list details:first-child{border-color:var(--hair)}
.faq-list summary{font-size:16px;padding-block:22px;transition:color .2s}
.faq-list summary:hover{color:var(--blue)}
.faq-list summary span{color:var(--ink);font-size:22px;transition:transform .3s var(--ease)}

/* Closing call to action: a full-bleed navy band. */
.closing-cta{margin:0;border-radius:0}
.signup-section{padding-block:128px}
.closing-light{background:radial-gradient(ellipse 60% 70% at 0% 100%,#0357ee59,transparent 70%),linear-gradient(120deg,#0b1220,#07152b)}
.signup-card{border:0;border-radius:12px;box-shadow:0 40px 80px -40px #0009}
.signup-section .signup-button{min-height:40px;border-radius:999px;padding:8px 22px}

/* Footer: one compact row. The wordmark and tagline on the left, links, then the copyright. */
.site-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 48px;padding-block:36px 32px;border-top:1px solid var(--hair)}
.site-footer>div{display:contents}
.site-footer .brand{grid-column:1;grid-row:1;justify-self:start;width:120px;min-width:0;height:auto;aspect-ratio:3/1;margin:0}
.site-footer .brand img{position:static;display:block;width:100%;max-width:100%;height:auto;top:auto;left:auto;filter:none;mix-blend-mode:normal}
.site-footer>div>p{grid-column:1;grid-row:2;margin:0;font-size:13px;color:var(--muted)}
.site-footer nav{grid-column:2;grid-row:1/3;justify-self:end;color:#33373f}
.site-footer>span{grid-column:3;grid-row:1/3}

/* Gentle reveal as sections arrive; only when scripting and motion are available. */
.reveal-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-ready [data-reveal].is-in{opacity:1;transform:none}

@media(max-width:1100px){
  .hero .payment-moment{right:calc(var(--gutter) + 12px);bottom:140px}
  .merchant-scene{grid-template-columns:1fr;gap:48px}
  .africa-inner{gap:56px}
}
@media(max-width:960px){
  .platform-glow{inset:-16px}
  .feature-grid{grid-template-columns:1fr;gap:0}
  .feature-grid article{padding-block:24px 32px}
  .feature-grid h3{margin-top:16px}
  .site-footer{grid-template-columns:1fr auto;gap:10px 24px}
  .site-footer>span{grid-column:2;grid-row:1}
  .site-footer>div>p{grid-column:1/-1;grid-row:2}
  .site-footer nav{grid-column:1/-1;grid-row:3;justify-self:start;margin-top:8px}
}
@media(max-width:700px){
  /* Compact section copy, with readable line lengths and the existing touch targets. */
  .platform-copy .eyebrow,.tour-heading .eyebrow,.business-stories .stories-heading .eyebrow,.section-heading .eyebrow,.africa-copy .eyebrow,.questions .eyebrow,.closing-cta .eyebrow{font-size:10px;line-height:16px;letter-spacing:1px;margin-bottom:16px}
  .platform-copy>p:not(.eyebrow):not(.demo-hint),.tour-heading>p,.business-stories .stories-heading>p:not(.eyebrow),.section-heading>p,.africa-copy>p:not(.eyebrow),.signup-copy>p:not(.eyebrow){font-size:14px;line-height:21px}
  .platform-copy>p:not(.eyebrow):not(.demo-hint),.tour-heading>p{margin-top:16px}
  .platform-benefits{margin-top:24px}
  .platform-benefits>div{padding-block:16px}
  .platform-benefits h3{font-size:15px;line-height:21px;font-weight:500;margin-bottom:6px}
  .platform-benefits p,.africa-principles p,.tour-copy>p,.feature-grid p,.faq-list details p{font-size:14px;line-height:21px}
  .tour-copy h3,.feature-grid h3{margin-block:12px}
  .tour-copy ul{line-height:20px;gap:8px;margin-block:16px}
  .tour-heading,.section-heading{gap:16px;margin-bottom:32px}
  .business-stories .stories-heading h2{margin-bottom:16px}
  .business-stories .stories-heading>p:not(.eyebrow){margin-bottom:14px}
  .africa-principles strong{display:block;font-size:15px;line-height:21px;margin-bottom:6px}
  .africa-principles strong+br{display:none}
  .faq-list summary{font-size:14px;line-height:21px;padding-block:18px}
  .signup-section h2{font-size:var(--h2);line-height:var(--h2-lh)}
  /* One 64px row: the logo, Log in and the menu. Sign Up and the language picker open with
     the menu, below its links. The header scrolls away with the page. */
  .site-header{position:relative}
  .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;min-height:64px;padding-block:10px;gap:10px 4px}
  .header-inner>.brand{grid-column:1;grid-row:1}
  .header-inner>.menu-toggle{grid-column:3;grid-row:1;justify-self:end}
  .header-actions{display:contents}
  .header-login{grid-column:2;grid-row:1;justify-self:end;min-height:44px;padding-inline:10px}
  .header-inner nav{grid-column:1/-1;grid-row:2;position:static;width:100%;margin:0;padding:4px 0 0;background:transparent;border:0}
  .header-actions .header-cta,#site-language-slot{display:none}
  .menu-toggle[aria-expanded="true"]~.header-actions .header-cta{display:inline-flex;grid-column:1;grid-row:3;justify-self:start;min-height:40px;margin-bottom:8px}
  .menu-toggle[aria-expanded="true"]~.header-actions #site-language-slot{display:block;grid-column:2/-1;grid-row:3;justify-self:end;margin-bottom:8px}
  .language-picker select,.language-help-button{min-height:40px}
  .hero{margin:0;border-radius:0}
  .hero-inner{padding:48px 0 120px;gap:40px}
  .hero-actions{gap:16px}
  .hero-product{border-radius:9px}
  .hero-product-link{aspect-ratio:1.29}
  .hero .payment-moment{right:var(--gutter);bottom:76px;width:250px}
  .hero-bottom{bottom:22px}
  .partners{padding-block:56px 24px}
  .provider-carousel{--logo-card-width:140px;--logo-gap:12px}
  .platform-section{padding-block:72px}
  .platform-benefits>div{gap:16px}
  .product-tour{padding:72px 0 56px}
  .merchant-scene{padding-block:72px}
  .merchant-collage{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .collage-photo,.collage-retail,.collage-produce{aspect-ratio:3/4}
  .clarity-section,.questions,.signup-section{padding-block:72px}
  .africa-inner{padding-block:72px}
  .site-footer{grid-template-columns:1fr;gap:12px;padding-block:32px 24px}
  .site-footer>span,.site-footer nav,.site-footer>div>p,.site-footer .brand{grid-column:1;grid-row:auto}
  .site-footer .brand{width:104px}
  .site-footer>span{justify-self:start;margin-left:0}
  .site-footer nav{order:4}.site-footer>span{order:5}
}
@media(prefers-reduced-motion:reduce){.reveal-ready [data-reveal]{opacity:1;transform:none;transition:none}}
/* The narrowest phones, where French labels run longest: Log in takes less room, the hero eyebrow
   stays on one line, and the sign-up button in the open menu drops its arrow so it can wrap
   beside the language picker. */
@media(max-width:370px){
  .header-login{padding-inline:6px}
  .hero-copy .eyebrow{font-size:10px;letter-spacing:.6px}
  .header-actions .header-cta{max-width:100%;padding-inline:14px}
  .header-actions .header-cta:after{display:none}
}
