/* ==========================================================================
   Kolos - PanTerrea group design system
   Tokens, type scale and components lifted verbatim from
   panterrea.com/wp-content/themes/Panterrea/src/css/main.css
   (colours, Montserrat/Roboto scale, 1200px container, 8px radius).
   Do not invent new brand colours here. Add to the palette below instead.
   ========================================================================== */

:root{
  /* --- brand ------------------------------------------------------------ */
  --pt-primary:        #147575;
  --pt-primary-dark:   #116262;
  --pt-primary-tint:   #ECF4F4;
  --pt-primary-08:     rgba(20,117,117,.08);
  --pt-primary-24:     rgba(20,117,117,.24);

  /* --- cream / sand ----------------------------------------------------- */
  --pt-cream:          #F1EDDE;
  --pt-cream-soft:     #F7F4EA;
  --pt-cream-border:   #E3E5D7;

  /* --- greys (Minimal scale, as used across panterrea.com) -------------- */
  --pt-ink:            #212B36;
  --pt-ink-2:          #454F5B;
  --pt-muted:          #637381;
  --pt-disabled:       #919EAB;
  --pt-border:         #DFE3E8;
  --pt-bg:             #F4F6F8;
  --pt-bg-2:           #F9FAFB;
  --pt-white:          #FFFFFF;

  /* --- semantic --------------------------------------------------------- */
  --pt-success:        #12BF67;
  --pt-success-bg:     #E7F9F0;
  --pt-warning:        #B76E00;
  --pt-warning-bg:     #FFF4E0;
  --pt-error:          #D32F2F;
  --pt-error-bg:       #FCECEC;
  --pt-info:           #006C9C;
  --pt-info-bg:        #E9F4F9;

  /* --- shape ------------------------------------------------------------ */
  --pt-radius:         8px;
  --pt-radius-md:      12px;
  --pt-radius-lg:      16px;
  --pt-radius-xl:      20px;
  --pt-radius-2xl:     40px;
  --pt-pill:           999px;

  --pt-shadow:         0 12px 24px -4px rgba(145,158,171,.12);
  --pt-shadow-sm:      0 1px 2px 0 rgba(145,158,171,.16);
  --pt-shadow-lg:      0 24px 48px 0 rgba(145,158,171,.18);

  --pt-container:      1200px;
  --pt-gutter:         24px;

  --font-heading: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body:    "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* ==========================================================================
   Reset
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:24px;
  color:var(--pt-ink);
  background:var(--pt-white);
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;}
img{display:block;height:auto;}
a{color:var(--pt-primary);text-decoration:none;}
a:hover{text-decoration:underline;}
button{font:inherit;}
ul{margin:0;padding:0;list-style:none;}
:focus-visible{outline:2px solid var(--pt-primary);outline-offset:2px;border-radius:4px;}

/* ==========================================================================
   Type scale - identical to the PanTerrea theme
   ========================================================================== */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  font-family:var(--font-heading);font-weight:700;margin:0;color:inherit;
}
h1,.h1{font-size:64px;line-height:80px;}
h2,.h2{font-size:48px;line-height:64px;}
h3,.h3{font-size:32px;line-height:48px;}
h4,.h4{font-size:24px;line-height:36px;}
h5,.h5{font-size:20px;line-height:30px;}
h6,.h6{font-size:18px;line-height:28px;}

.subtitle1{font-family:var(--font-body);font-size:16px;font-weight:600;line-height:24px;}
.subtitle2{font-family:var(--font-body);font-size:14px;font-weight:600;line-height:22px;}
.body1{font-family:var(--font-body);font-size:16px;font-weight:400;line-height:24px;}
.body2{font-family:var(--font-body);font-size:14px;font-weight:400;line-height:22px;}
.caption{font-family:var(--font-body);font-size:12px;font-weight:400;line-height:18px;}
.overline{font-family:var(--font-body);font-size:12px;font-weight:700;line-height:18px;text-transform:uppercase;letter-spacing:.06em;}

p{margin:0 0 16px;}
p:last-child{margin-bottom:0;}

.text-muted{color:var(--pt-muted);}
.text-ink-2{color:var(--pt-ink-2);}
.text-primary{color:var(--pt-primary);}
.text-center{text-align:center;}
.measure{max-width:66ch;}
.measure-narrow{max-width:52ch;}

/* ==========================================================================
   Layout
   ========================================================================== */
.container{max-width:var(--pt-container);padding:0 var(--pt-gutter);margin:0 auto;width:100%;}
.section{padding:80px 0;}
.section--tight{padding:56px 0;}
.section--cream{background:var(--pt-cream);}
.section--tint{background:var(--pt-primary-tint);}
.section--grey{background:var(--pt-bg-2);}
.section--teal{background:var(--pt-primary);color:var(--pt-white);}
.section--teal .text-muted{color:rgba(255,255,255,.72);}

.section__head{max-width:760px;margin:0 0 40px;}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section__head .overline{color:var(--pt-primary);margin-bottom:12px;}
.section__head h2,.section__head .h2{margin-bottom:16px;}
.section__head p{color:var(--pt-muted);font-size:18px;line-height:28px;}

.grid{display:grid;gap:24px;}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.stack-8 > * + *{margin-top:8px;}
.stack-16 > * + *{margin-top:16px;}
.stack-24 > * + *{margin-top:24px;}

/* ==========================================================================
   Buttons - Roboto 700, 8px radius, as per theme .button-* classes
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:700;font-size:15px;line-height:26px;
  padding:11px 22px;border-radius:var(--pt-radius);border:1px solid transparent;
  cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;
  text-decoration:none;white-space:nowrap;
}
.btn:hover{text-decoration:none;}
.btn--primary{background:var(--pt-primary);color:var(--pt-white);}
.btn--primary:hover{background:var(--pt-primary-dark);color:var(--pt-white);}
.btn--outline{background:transparent;color:var(--pt-primary);border-color:var(--pt-primary-24);}
.btn--outline:hover{background:var(--pt-primary-08);border-color:var(--pt-primary);}
.btn--ghost{background:transparent;color:var(--pt-ink);}
.btn--ghost:hover{background:var(--pt-bg);}
.btn--white{background:var(--pt-white);color:var(--pt-primary);}
.btn--white:hover{background:var(--pt-cream);color:var(--pt-primary-dark);}
.btn--on-teal-outline{background:transparent;color:var(--pt-white);border-color:rgba(255,255,255,.48);}
.btn--on-teal-outline:hover{background:rgba(255,255,255,.12);color:var(--pt-white);}
.btn--md{font-size:14px;line-height:24px;padding:8px 16px;}
.btn--sm{font-size:13px;line-height:22px;padding:5px 12px;}
.btn--block{display:flex;width:100%;}
.btn[aria-disabled="true"]{background:var(--pt-disabled);border-color:transparent;color:var(--pt-white);pointer-events:none;}

.skiplink{position:absolute;left:-9999px;top:0;z-index:100;background:var(--pt-primary);color:#fff;
  padding:12px 20px;border-radius:0 0 var(--pt-radius) 0;font-weight:700;font-size:14px;}
.skiplink:focus{left:0;text-decoration:none;}

/* ==========================================================================
   Header - teal utility bar + white nav bar (as on panterrea.com)
   ========================================================================== */
.utility{background:var(--pt-primary);color:var(--pt-white);font-size:14px;line-height:22px;}
.utility__inner{display:flex;align-items:center;gap:24px;min-height:44px;}
.utility a{color:var(--pt-white);display:inline-flex;align-items:center;gap:8px;font-weight:400;}
.utility a:hover{text-decoration:underline;}
.utility__spacer{margin-left:auto;}
.utility svg{flex:none;opacity:.9;}

.masthead{background:var(--pt-white);border-bottom:1px solid var(--pt-border);position:sticky;top:0;z-index:50;}
.masthead__inner{display:flex;align-items:center;gap:32px;min-height:88px;}
.brand{display:flex;align-items:center;gap:14px;flex:none;min-width:0;}
.brand:hover{text-decoration:none;}
.brand__mark{width:52px;height:52px;flex:none;}
.brand__name{font-family:var(--font-heading);font-weight:700;font-size:24px;line-height:1;color:var(--pt-ink);letter-spacing:-.01em;}
.brand__sub{display:block;font-family:var(--font-body);font-size:11px;font-weight:400;line-height:16px;color:var(--pt-muted);letter-spacing:.02em;margin-top:3px;}

.nav{display:flex;align-items:center;gap:28px;}
.nav a{font-family:var(--font-body);font-size:16px;font-weight:600;color:var(--pt-ink);white-space:nowrap;}
.nav a:hover{color:var(--pt-primary);text-decoration:none;}
.nav a[aria-current="page"]{color:var(--pt-primary);}
.masthead__actions{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none;}

/* ---- account in the header -------------------------------------------- */
/* Emitted twice by chrome.js, shown once. .acct--bar is the desktop control
   with its own dropdown; .acct--menu sits at the foot of the burger panel and
   needs no trigger, because it is already inside one. */
.acct{position:relative;}
.acct--menu{display:none;width:100%;}
/* The trigger is .btn.btn--outline.btn--md, so it is the same object as Ask
   Kolos beside it and nothing here repeats the radius, the weight or the
   colour. Only the icon needs saying. */
.acct__trigger svg{flex:none;}
/* And the panel is a card in the site's terms: the card radius, the card
   border, the card shadow. */
.acct--bar .acct__panel{position:absolute;right:0;top:calc(100% + 10px);z-index:60;
  min-width:268px;background:var(--pt-white);border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg);box-shadow:var(--pt-shadow);padding:16px 18px;}
.acct__panel[hidden]{display:none;}
.acct__who{display:block;font-size:12px;color:var(--pt-muted);margin:0 0 2px;}
.acct__email{display:block;font-size:15px;font-weight:600;color:var(--pt-ink);
  margin:0 0 12px;word-break:break-all;}
.acct__label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--pt-muted);margin:0 0 6px;}
.acct__list{list-style:none;margin:0 0 12px;padding:0;}
.acct__list li{margin:0 0 4px;}
.acct__list a{font-size:15px;font-weight:600;color:var(--pt-ink);}
.acct__list a:hover{color:var(--pt-primary);}
.acct__none{display:block;font-size:14px;color:var(--pt-muted);margin:0 0 10px;}
.acct__link{display:block;font-size:15px;font-weight:600;color:var(--pt-primary);padding:4px 0;}
.acct__rule{border:0;border-top:1px solid var(--pt-border);margin:10px 0;}
.acct__out{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:4px 0;
  font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--pt-ink-2);cursor:pointer;}
.acct__out:hover{color:var(--pt-error);}
.acct__out:focus-visible{outline:2px solid var(--pt-primary);outline-offset:2px;}
.acct__out[disabled]{opacity:.5;cursor:default;}

.langswitch{display:inline-flex;border:1px solid rgba(255,255,255,.42);border-radius:var(--pt-pill);overflow:hidden;}
.langswitch button{background:none;border:0;color:var(--pt-white);font-size:12px;font-weight:700;letter-spacing:.04em;
  padding:4px 12px;cursor:pointer;opacity:.72;line-height:18px;}
.langswitch button[aria-pressed="true"]{background:rgba(255,255,255,.20);opacity:1;}

.navtoggle{display:none;flex:none;order:3;align-items:center;background:none;border:1px solid var(--pt-border);
  border-radius:var(--pt-radius);padding:8px 10px;cursor:pointer;color:var(--pt-ink);}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{background:var(--pt-cream);padding:72px 0 80px;position:relative;overflow:hidden;}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
.hero h1{font-size:56px;line-height:70px;letter-spacing:-.02em;margin-bottom:20px;}
.hero__lede{font-size:20px;line-height:32px;color:var(--pt-ink-2);margin-bottom:32px;max-width:60ch;}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.hero__note{margin-top:20px;font-size:14px;line-height:22px;color:var(--pt-muted);}
.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;background:var(--pt-white);border:1px solid var(--pt-cream-border);
  border-radius:var(--pt-pill);padding:6px 16px 6px 8px;margin-bottom:24px;
  font-size:13px;font-weight:600;line-height:22px;color:var(--pt-ink-2);}
.eyebrow-pill b{background:var(--pt-primary);color:#fff;border-radius:var(--pt-pill);padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}

/* ==========================================================================
   Cards
   ========================================================================== */
.card{
  background:var(--pt-white);border:1px solid var(--pt-border);border-radius:var(--pt-radius-lg);
  padding:28px;display:flex;flex-direction:column;height:100%;
}
.card--flat{box-shadow:none;}
.card--raised{border-color:transparent;box-shadow:var(--pt-shadow);}
.card--tint{background:var(--pt-primary-tint);border-color:transparent;}
.card--cream{background:var(--pt-cream-soft);border-color:var(--pt-cream-border);}
.card__icon{width:48px;height:48px;border-radius:var(--pt-radius-md);background:var(--pt-primary-tint);
  color:var(--pt-primary);display:grid;place-items:center;margin-bottom:20px;flex:none;}
.card h3,.card .h5{margin-bottom:10px;}
.card p{color:var(--pt-muted);}
.card__foot{margin-top:auto;padding-top:20px;}

/* agent card */
.agentcard{position:relative;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.agentcard:hover{border-color:var(--pt-primary-24);box-shadow:var(--pt-shadow);transform:translateY(-2px);}
.agentcard__head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px;}
.agentcard__mark{width:52px;height:52px;border-radius:var(--pt-radius-md);background:var(--pt-primary);
  color:#fff;display:grid;place-items:center;flex:none;}
.agentcard__title{display:block;font-family:var(--font-heading);font-weight:700;font-size:20px;line-height:28px;}
.agentcard__sub{display:block;font-size:13px;line-height:20px;color:var(--pt-muted);margin-top:4px;}
.agentcard ul{margin:18px 0 0;display:grid;gap:10px;}
.agentcard li{position:relative;padding-left:26px;font-size:14px;line-height:22px;color:var(--pt-ink-2);}
.agentcard li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;
  background:var(--pt-primary);opacity:.35;}

/* ==========================================================================
   Badges, pills, chips
   ========================================================================== */
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:2px 10px;
  font-size:12px;font-weight:700;line-height:20px;letter-spacing:.02em;}
.badge--live{background:var(--pt-success-bg);color:#0B7C46;}
.badge--beta{background:var(--pt-warning-bg);color:var(--pt-warning);}
.badge--soon{background:var(--pt-bg);color:var(--pt-muted);}
.badge--teal{background:var(--pt-primary-tint);color:var(--pt-primary);}

.chip{display:inline-flex;align-items:center;background:var(--pt-white);border:1px solid var(--pt-border);
  border-radius:var(--pt-pill);padding:8px 18px;font-size:14px;line-height:22px;color:var(--pt-ink-2);}
.chip--tint{background:var(--pt-primary-tint);border-color:transparent;color:var(--pt-primary);font-weight:600;}
.chiprow{display:flex;flex-wrap:wrap;gap:10px;}

/* ==========================================================================
   Notice / disclaimer blocks
   ========================================================================== */
.notice{border-radius:var(--pt-radius-md);padding:20px 24px;font-size:15px;line-height:24px;
  border:1px solid transparent;}
.notice strong{font-family:var(--font-heading);}
.notice--warning{background:var(--pt-warning-bg);border-color:#F3D9A8;color:#6B4200;}
.notice--info{background:var(--pt-info-bg);border-color:#C6DFEC;color:#0A4C6B;}
.notice--neutral{background:var(--pt-cream-soft);border-color:var(--pt-cream-border);color:var(--pt-ink-2);}
.notice a{font-weight:600;}

/* ==========================================================================
   Steps
   ========================================================================== */
.steps{counter-reset:step;display:grid;gap:24px;grid-template-columns:repeat(4,1fr);}
.step{position:relative;padding-top:20px;border-top:2px solid var(--pt-cream-border);}
.step__n{counter-increment:step;font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.08em;
  color:var(--pt-primary);text-transform:uppercase;margin-bottom:10px;display:block;}
.step h3,.step .h6{margin-bottom:8px;}
.step p{font-size:14px;line-height:22px;color:var(--pt-muted);}

/* ==========================================================================
   Pricing
   ========================================================================== */
.plans{display:grid;gap:24px;grid-template-columns:repeat(3,1fr);align-items:stretch;}
.plan{background:var(--pt-white);border:1px solid var(--pt-border);border-radius:var(--pt-radius-lg);
  padding:32px;display:flex;flex-direction:column;}
.plan--featured{border-color:var(--pt-primary);box-shadow:var(--pt-shadow);position:relative;}
.plan__flag{position:absolute;top:-13px;left:32px;background:var(--pt-primary);color:#fff;
  border-radius:6px;padding:3px 12px;font-size:12px;font-weight:700;line-height:20px;}
.plan__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:18px 0 6px;}
.plan__amount{font-family:var(--font-heading);font-weight:700;font-size:40px;line-height:52px;}
.plan__amount--tbc{font-size:22px;line-height:34px;font-weight:600;color:var(--pt-muted);}
.plan__per{font-size:14px;color:var(--pt-muted);}
/* Launch offer (site/assets/offer.js): the full price struck through beside the
   offer price, a small -25% tag, and one line saying what happens after. */
.plan__deal{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}
.plan__was{font-size:18px;line-height:28px;color:var(--pt-muted);white-space:nowrap;}
.plan__off{font-size:12px;line-height:18px;font-weight:600;color:var(--pt-ink);
  background:var(--pt-warning-bg);border:1px solid var(--pt-warning);border-radius:999px;padding:1px 8px;white-space:nowrap;}
.plan__offer{font-size:14px;line-height:22px;color:var(--pt-ink-2);margin:0 0 8px;}
.plan__alt{font-size:14px;line-height:22px;color:var(--pt-muted);margin-bottom:24px;}
.plan ul{display:grid;gap:12px;margin:0 0 28px;}
.plan li{position:relative;padding-left:28px;font-size:15px;line-height:24px;}
.plan li::before{content:"";position:absolute;left:2px;top:8px;width:14px;height:8px;
  border-left:2px solid var(--pt-primary);border-bottom:2px solid var(--pt-primary);transform:rotate(-45deg);}
.plan .btn{margin-top:auto;}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{border-top:1px solid var(--pt-border);}
.faq details{border-bottom:1px solid var(--pt-border);}
.faq summary{cursor:pointer;list-style:none;padding:22px 44px 22px 0;position:relative;
  font-family:var(--font-heading);font-weight:700;font-size:18px;line-height:28px;color:var(--pt-ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";position:absolute;right:8px;top:32px;width:10px;height:10px;
  border-right:2px solid var(--pt-primary);border-bottom:2px solid var(--pt-primary);
  transform:rotate(45deg);transition:transform .18s ease;}
.faq details[open] summary::after{transform:rotate(-135deg);top:36px;}
.faq details > div{padding:0 44px 24px 0;color:var(--pt-muted);font-size:16px;line-height:26px;}

/* ==========================================================================
   Source ledger
   ========================================================================== */

/* ==========================================================================
   Newsletter panel (teal band, inset cream panel - as on panterrea.com)
   ========================================================================== */
/* 72px of teal above the panel and 72px below, so it sits evenly inside its
   own band. The footer then adds its own 72px underneath, which keeps the
   visual weight below the panel greater than above it - that is what stops the
   footer reading as a continuation of the panel rather than a separate region.

   It originally had NO top padding and sat flush against the white section
   above, with transform:translateY(-1px) on the panel closing the hairline
   seam that flush join left behind. Both are gone: nothing is flush now, so
   there is no seam to close. */
.signup{background:var(--pt-primary);padding:72px 0 72px;}
.signup__panel{background:var(--pt-cream);border-radius:var(--pt-radius-2xl);padding:56px 40px;text-align:center;}
.signup__panel h2,.signup__panel .h3{margin-bottom:12px;}
.signup__panel p{color:var(--pt-ink-2);max-width:56ch;margin:0 auto 28px;}
.signup__form{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:720px;margin:0 auto;}
.signup__form input,.signup__form select{
  flex:1 1 220px;background:var(--pt-white);border:1px solid var(--pt-white);border-radius:var(--pt-radius);
  padding:12px 16px;font-family:var(--font-body);font-size:15px;line-height:24px;color:var(--pt-ink);min-width:0;}
.signup__form input::placeholder{color:var(--pt-disabled);}
.signup__consent{margin-top:18px;font-size:13px;line-height:20px;color:var(--pt-muted);}

/* The digest language. On the cream panel, so it borrows the panel's own
   vocabulary rather than the header's teal pills. */
/* flex:1 0 100% because it lives INSIDE .signup__form, which is a flex row.
   Without it the fieldset would try to share a line with the email box. */
.signup__lang{flex:1 0 100%;border:0;margin:8px 0 4px;padding:0;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:8px 18px;}
.signup__lang legend{float:left;width:100%;padding:0;margin:0 0 8px;
  font-size:13px;line-height:20px;color:var(--pt-ink-2);font-weight:600;}
.signup__lang label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-size:15px;line-height:24px;color:var(--pt-ink-2);}
.signup__lang input{width:18px;height:18px;accent-color:var(--pt-primary);margin:0;cursor:pointer;}
.signup__lang input:focus-visible{outline:2px solid var(--pt-primary);outline-offset:2px;}
.signup__lang label:hover{color:var(--pt-ink);}

/* Honeypot. Off-screen rather than display:none - the scrapers worth catching
   skip hidden fields but not positioned ones - and out of the flex flow so it
   cannot take a share of the row. */
.signup__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.signup__status{max-width:56ch;margin:18px auto 0;font-size:14px;line-height:22px;
  border-radius:var(--pt-radius);padding:12px 16px;text-align:left;
  background:var(--pt-info-bg);color:var(--pt-info);}
.signup__status[data-state="sent"],
.signup__status[data-state="confirmed"]{background:var(--pt-success-bg);color:#0B7A42;}
.signup__status[data-state="expired"],
.signup__status[data-state="bademail"]{background:var(--pt-warning-bg);color:var(--pt-warning);}
.signup__status[data-state="error"],
.signup__status[data-state="network"]{background:var(--pt-error-bg);color:var(--pt-error);}

/* ==========================================================================
   Footer - teal, white text (as on panterrea.com)
   ========================================================================== */
.footer{background:var(--pt-primary);color:var(--pt-white);padding:72px 0 32px;}
.footer a{color:var(--pt-white);font-weight:400;}
.footer a:hover{text-decoration:underline;}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;}
.footer .overline{color:rgba(255,255,255,.72);margin-bottom:20px;}
.footer ul{display:grid;gap:14px;}
.footer__about{font-size:15px;line-height:24px;color:rgba(255,255,255,.88);max-width:44ch;}
.footer__about strong{color:var(--pt-white);}
.footer__legal{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.20);
  display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;font-size:14px;color:rgba(255,255,255,.80);}
.footer__legal .footer__spacer{margin-left:auto;}
.footer__brand{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.footer__brand .brand__name{color:var(--pt-white);}

/* ==========================================================================
   Agent page specifics
   ========================================================================== */
.agenthero{background:var(--pt-cream);padding:56px 0 64px;}
.agenthero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
.agenthero h1{font-size:44px;line-height:56px;letter-spacing:-.02em;margin-bottom:18px;}
.agenthero__lede{font-size:18px;line-height:30px;color:var(--pt-ink-2);margin-bottom:28px;}
.askbox{background:var(--pt-white);border:1px solid var(--pt-cream-border);border-radius:var(--pt-radius-lg);
  padding:28px;box-shadow:var(--pt-shadow);}
.askbox .overline{color:var(--pt-primary);margin-bottom:16px;}
.askbox ul{display:grid;gap:8px;margin-bottom:24px;}
.askbox li a{display:block;background:var(--pt-primary-tint);border-radius:var(--pt-radius);padding:10px 14px;
  font-size:14px;line-height:22px;color:var(--pt-ink);font-weight:500;}
.askbox li a:hover{background:var(--pt-primary);color:#fff;text-decoration:none;}

.knowsheet{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);}
.knowsheet__item{background:var(--pt-white);border:1px solid var(--pt-border);border-radius:var(--pt-radius-md);padding:20px 24px;}
.knowsheet__item h4,.knowsheet__item .h6{margin-bottom:6px;}
.knowsheet__item p{font-size:14px;line-height:22px;color:var(--pt-muted);}

code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;
  background:var(--pt-bg);border:1px solid var(--pt-border);border-radius:4px;padding:1px 6px;color:var(--pt-ink-2);}

/* ==========================================================================
   The digest archive
   -------------------------------------------------------------------------
   Reading, not marketing. Narrower measure, larger body text, and the sources
   given real weight rather than tucked away, because a citation a farmer
   cannot see is the same as no citation.
   ========================================================================== */
.dg .measure{max-width:70ch;}
.dg__crumb{font-size:13px;color:var(--pt-muted);margin:0 0 18px;}
.dg__crumb span{margin:0 6px;}
.dg h1{font-size:40px;line-height:52px;letter-spacing:-.02em;margin:6px 0 10px;}
.dg h2{font-size:26px;line-height:36px;margin:0 0 10px;}
.dg__date{font-size:14px;color:var(--pt-muted);margin:0 0 24px;}
.dg__lede{font-size:19px;line-height:32px;color:var(--pt-ink-2);margin:0 0 20px;}
.dg p{font-size:17px;line-height:29px;}
.dg .notice{margin:0 0 20px;}
.dg__story{margin-top:44px;padding-top:32px;border-top:1px solid var(--pt-border);}
.dg__story .overline{color:var(--pt-primary);margin-bottom:8px;}
.dg__src{font-size:14px;line-height:24px;color:var(--pt-muted);margin:14px 0 0;}
.dg__srclabel{font-weight:700;color:var(--pt-ink-2);}
.dg__src a{text-decoration:underline;}
.dg__agent{font-size:14px;line-height:24px;color:var(--pt-muted);margin:6px 0 0;}
.dg__numbers{margin-top:48px;padding-top:32px;border-top:1px solid var(--pt-border);}
.dg__table{width:100%;border-collapse:collapse;margin:14px 0 8px;font-size:16px;}
.dg__table th{text-align:left;font-family:var(--font-body);font-weight:400;font-size:16px;
  text-transform:none;letter-spacing:0;color:var(--pt-ink-2);padding:9px 12px 9px 0;
  border-bottom:1px solid var(--pt-border);}
.dg__table td{padding:9px 12px 9px 0;border-bottom:1px solid var(--pt-border);
  font-variant-numeric:tabular-nums;font-weight:600;}
.dg__delta{color:var(--pt-muted);font-weight:400;}
.dg__delta--up{color:var(--pt-primary);}
.dg__delta--down{color:var(--pt-error);}
.dg__group{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--pt-primary);
  margin:48px 0 0;padding:10px 14px;background:var(--pt-primary-tint);
  border-left:4px solid var(--pt-primary);}
.dg__group + .dg__story{margin-top:20px;padding-top:0;border-top:0;}
.dg__dl{margin-top:40px;padding-top:28px;border-top:1px solid var(--pt-border);}
.dg__dllist{margin:16px 0 0;padding:0;list-style:none;}
.dg__dllist li{padding:14px 0;border-top:1px solid var(--pt-border);}
.dg__dllist li:first-child{border-top:0;}
.dg__dldate{margin:0;font-size:14px;font-weight:700;color:var(--pt-primary);}
.dg__dldate span{font-weight:400;color:var(--pt-muted);margin-left:8px;}
.dg__dlwhat{margin:4px 0 0;font-size:17px;line-height:27px;color:var(--pt-ink);}
.dg__asof{font-size:13px;color:var(--pt-muted);margin:8px 0 0;}
.dg__nav{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  align-items:center;margin-top:48px;padding-top:28px;border-top:1px solid var(--pt-border);}
.dg__note{font-size:13px;line-height:22px;color:var(--pt-muted);margin-top:28px;}
.dg__list{margin:28px 0 0;padding:0;list-style:none;}
.dg__row{padding:22px 0;border-bottom:1px solid var(--pt-border);}
.dg__row h2{font-size:22px;line-height:32px;margin:4px 0 0;}
.dg__row h2 a{color:var(--pt-ink);}
.dg__row h2 a:hover{color:var(--pt-primary);text-decoration:none;}
.dg__rowdate{font-size:13px;color:var(--pt-muted);margin:0;}
.dg__also{margin:10px 0 0;padding:0 0 0 20px;list-style:disc;}
.dg__also li{font-size:15px;line-height:25px;color:var(--pt-muted);}
@media (max-width:680px){
  .dg h1{font-size:30px;line-height:40px;}
  .dg h2{font-size:22px;line-height:31px;}
  .dg__lede{font-size:17px;line-height:29px;}
  .dg p{font-size:16px;line-height:27px;}
  .dg__nav{flex-direction:column;align-items:stretch;}
  .dg__nav .btn{width:100%;}
}

/* ==========================================================================
   Language visibility
   ========================================================================== */
/* The bilingual pair is gone: one element carries Ukrainian as its text and
   English in data-en, and kolos.js swaps it. Nothing is hidden any more. The
   li and tr rules here were already dead: nothing in the built site ever
   carried data-lang on anything but a span or a div. */

/* ==========================================================================
   Responsive
   ========================================================================== */
/* The header between the burger and a wide desktop.
   The account control costs about 130px of a row that was already tight: at
   1000px this header wrapped "Про Kolos" and pushed the page 32px sideways
   BEFORE the control existed, and 150px after it. So the control loses its
   word and keeps its icon, and the row closes up. Measured at 961, 1000, 1100,
   1280 and 1440 in test/test-account-menu.js, which fails on a single pixel of
   sideways scroll. */
@media (max-width:1200px){
  .acct__trigger{padding-left:10px;padding-right:10px;}
  /* Hidden from the eye, not from a screen reader: the button would otherwise
     be announced as its SVG, which is to say as nothing. */
  .acct__trigger span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .nav{gap:20px;}
  .masthead__inner{gap:20px;}
}
@media (max-width:1100px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:36px;}
  .steps{grid-template-columns:repeat(2,1fr);}
  .nav{gap:14px;}
  .nav a{font-size:15px;}
  .masthead__inner{gap:14px;}
  .masthead__actions{gap:8px;}
}
/* The last few pixels before the burger takes over at 960. */
@media (max-width:1000px){
  .nav{gap:10px;}
  .masthead__inner{gap:10px;}
  .masthead__actions .btn--md{padding-left:14px;padding-right:14px;}
}
@media (max-width:960px){
  :root{--pt-gutter:16px;}
  h1,.h1{font-size:44px;line-height:56px;}
  h2,.h2{font-size:34px;line-height:46px;}
  h3,.h3{font-size:28px;line-height:40px;}
  .hero{padding:48px 0 56px;}
  .hero__grid,.agenthero__grid{grid-template-columns:1fr;gap:36px;}
  .hero h1{font-size:40px;line-height:52px;}
  .agenthero h1{font-size:34px;line-height:46px;}
  .section{padding:56px 0;}
  .grid--3,.grid--4{grid-template-columns:repeat(2,1fr);}
  .plans{grid-template-columns:1fr;}
  .nav,.masthead__actions .btn--outline{display:none;}
  .navtoggle{display:inline-flex;margin-left:auto;}
  .masthead__inner{min-height:72px;gap:12px;}
  .masthead__actions{order:2;margin-left:auto;}
  .navtoggle{margin-left:0;}
  /* The panel scrolls inside itself. It is absolutely positioned inside a
     sticky header, so anything below the fold used to be unreachable: the page
     scrolled and the panel went with the header, pinned. With seven links and
     the account block the content is 784px tall, which is past the bottom of a
     667px handset, and sign out simply could not be pressed on an iPhone SE.
     Guarded by test/test-account-menu.js at 390x667 and 390x600. */
  .masthead.is-open .nav{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--pt-white);
    flex-direction:column;align-items:flex-start;gap:0;padding:8px var(--pt-gutter) 16px;
    border-bottom:1px solid var(--pt-border);box-shadow:var(--pt-shadow);
    max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);
    overflow-y:auto;overscroll-behavior:contain;}
  .masthead.is-open .nav a{padding:12px 0;width:100%;border-bottom:1px solid var(--pt-bg);}
  /* The desktop control goes; the panel moves to the foot of the burger menu,
     where it is already inside an open dropdown and needs no second one. */
  .acct--bar{display:none;}
  .masthead.is-open .nav .acct--menu{display:block;padding-top:6px;}
  .acct--menu .acct__panel{padding:6px 0 0;}
  .masthead.is-open .nav .acct--menu a{width:auto;border-bottom:0;padding:4px 0;}
}
@media (max-width:430px){
  .brand__sub{display:none;}
}
@media (max-width:680px){
  h1,.h1{font-size:34px;line-height:44px;}
  h2,.h2{font-size:28px;line-height:40px;}
  h3,.h3{font-size:24px;line-height:34px;}
  .hero h1{font-size:32px;line-height:42px;}
  .hero__lede{font-size:17px;line-height:28px;}
  .grid--2,.grid--3,.grid--4,.knowsheet,.steps{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr;}
  .utility__inner{gap:14px;font-size:13px;min-height:40px;}
  .utility .utility__hide-sm{display:none;}
  .card,.plan{padding:24px;}
  .signup__panel{padding:36px 20px;border-radius:var(--pt-radius-xl);}
  .section{padding:44px 0;}
  .brand__mark{width:40px;height:40px;}
  .brand__name{font-size:19px;}
  .masthead__actions .btn{font-size:13px;line-height:22px;padding:6px 12px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
@media print{
  .masthead,.utility,.signup,.navtoggle{display:none;}
}

/* --- cookie consent ------------------------------------------------------
   A bar, not an overlay: the page stays readable and usable while the choice
   is open. Accept and Reject are the same size and weight on purpose. */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--pt-white);
  border-top:1px solid var(--pt-border);box-shadow:0 -2px 16px rgba(33,43,54,.12);
  padding-top:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));}
.cc[hidden]{display:none;}
.cc__inner{max-width:1120px;margin:0 auto;padding:0 20px;display:flex;gap:16px;
  align-items:center;justify-content:space-between;flex-wrap:wrap;}
.cc__text{margin:0;font-size:14px;line-height:1.5;color:var(--pt-ink-2);max-width:72ch;}
.cc__actions{display:flex;gap:10px;flex-shrink:0;}
.cc__btn{font:inherit;font-size:14px;font-weight:600;padding:9px 18px;border-radius:8px;
  cursor:pointer;border:1px solid var(--pt-primary);}
.cc__btn--yes{background:var(--pt-primary);color:var(--pt-white);}
.cc__btn--no{background:var(--pt-white);color:var(--pt-primary);}
.cc__btn:hover{opacity:.88;}
.cc__btn:focus-visible{outline:2px solid var(--pt-ink);outline-offset:2px;}
.cc__reopen{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;
  text-decoration:underline;text-align:left;}
@media (max-width:640px){
  .cc__inner{flex-direction:column;align-items:stretch;}
  .cc__actions{width:100%;}
  .cc__btn{flex:1;}
}
