/* (V01.76) Header rules removed from this file. The header now lives in
   assets/site-header.css, loaded by all three public surfaces. The rule
   `` in the
   1050px block is DELETED, not overridden: it removed the only route to
   another language from every SEO page on every phone. */

:root{--bg:#f4f1ea;--surface:#fffdf9;--dark:#20261f;--green:#157a52;--green2:#11663f;--green-soft:#e7f3eb;--mint:#d9eee3;--muted:#6f6a5e;--line:#e6e1d6;--gold:#f7e8ba;--danger:#b82d37;--max:1180px;--shadow:0 28px 70px -42px rgba(32,38,31,.55)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--dark);font-family:'Plus Jakarta Sans','Jakarta Fallback',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,.display{font-family:'Bricolage Grotesque','Bricolage Fallback','Plus Jakarta Sans',sans-serif}h2{text-align:center}.container{width:min(calc(100% - 44px),var(--max));margin-inline:auto}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;border-radius:13px;font-weight:800;border:1px solid transparent;transition:transform .16s,background .16s,border-color .16s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:white;box-shadow:0 14px 30px -16px rgba(21,122,82,.8)}.btn-primary:hover{background:var(--green2)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--dark)}.breadcrumb{padding-top:20px;font-size:13px;color:var(--muted)}.breadcrumb a{color:var(--green);font-weight:800}.breadcrumb span{margin:0 8px}.hero{position:relative;overflow:hidden;padding:68px 0 60px}.hero:before,.hero:after{content:'';position:absolute;border-radius:999px;filter:blur(1px);pointer-events:none}.hero:before{width:420px;height:420px;right:-120px;top:-180px;background:radial-gradient(circle,#d7eadc 0,rgba(215,234,220,.3) 48%,transparent 70%)}.hero:after{width:340px;height:340px;left:-160px;bottom:-190px;background:radial-gradient(circle,#f4e3a8 0,rgba(244,227,168,.25) 48%,transparent 70%)}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:62px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.hero h1{font-size:clamp(48px,6vw,76px);line-height:.98;letter-spacing:-.055em;margin:22px 0 18px;max-width:730px}.hero .lead{font-size:19px;line-height:1.68;color:var(--muted);max-width:610px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.micro-proof{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:19px;color:#596158;font-size:13px;font-weight:700}.micro-proof span:before{content:'✓';color:var(--green);font-weight:900;margin-right:7px}.snap{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:10px;box-shadow:var(--shadow);overflow:hidden}.snap img{display:block;width:100%;height:auto;border-radius:15px;border:1px solid #e3e7e3;background:white}.snap figcaption{padding:9px 7px 2px;text-align:center;color:var(--muted);font-size:11.5px;line-height:1.5}.dual-visual{position:relative;min-height:590px}.dual-visual .snap:first-child{width:78%;position:absolute;top:0;right:0}.dual-visual .snap:last-child{width:61%;position:absolute;left:0;bottom:0;transform:rotate(-1.4deg)}.hero-centered{text-align:center;padding-top:62px}.hero-centered .eyebrow{margin-inline:auto}.hero-centered h1,.hero-centered .lead{margin-left:auto;margin-right:auto}.hero-centered .hero-actions,.hero-centered .micro-proof{justify-content:center}.hero-wide{margin-top:38px;position:relative}.hero-wide .snap{max-width:980px;margin:auto}.hero-editorial .hero-grid{grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr)}.invoice-stack{position:relative;padding:22px 0 22px 44px}.invoice-stack:before{content:'';position:absolute;inset:0 50px 0 0;background:linear-gradient(145deg,#dfeee4,#f6ead0);border-radius:34px;transform:rotate(-2deg)}.invoice-stack .snap{position:relative}.price-hero{display:grid;grid-template-columns:1fr .78fr;gap:42px;align-items:center}.price-panel{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.price-panel .price{font-family:'Bricolage Grotesque','Bricolage Fallback','Plus Jakarta Sans',sans-serif;font-size:70px;line-height:1;font-weight:800;letter-spacing:-.055em}.price-panel .price small{font:700 15px 'Plus Jakarta Sans';color:var(--muted)}.price-panel ul{padding:0;list-style:none;display:grid;gap:13px;margin:25px 0}.price-panel li:before{content:'✓';color:var(--green);font-weight:900;margin-right:9px}.proof-strip{padding:0 0 52px}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.proof{padding:17px;border-radius:15px;background:rgba(255,253,249,.75);border:1px solid var(--line);text-align:center;font-size:13px;font-weight:850}.section{padding:78px 0}.section.surface{background:var(--surface);border-block:1px solid var(--line)}.section.tint{background:linear-gradient(180deg,#edf5ef,#f4f1ea)}.section-head{max-width:800px;margin:0 auto 38px;text-align:center}.section h2{font-size:clamp(34px,4.2vw,52px);line-height:1.05;letter-spacing:-.04em;margin:0}.section-lead{font-size:17px;line-height:1.7;color:var(--muted);margin:15px auto 0;max-width:720px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{min-width:0;padding:27px;background:var(--surface);border:1px solid var(--line);border-radius:21px;box-shadow:0 18px 45px -42px rgba(32,38,31,.8)}.surface .card{background:var(--bg)}.card h3{font-size:23px;line-height:1.12;margin:0 0 11px}.card p{color:var(--muted);line-height:1.65;margin:0}.card-index,.card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--green-soft);color:var(--green);font-weight:900;margin-bottom:18px}.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.bento .card{grid-column:span 4;min-height:220px}.bento .card:nth-child(1),.bento .card:nth-child(5){grid-column:span 7;background:linear-gradient(145deg,var(--surface),#e9f3ec)}.bento .card:nth-child(2),.bento .card:nth-child(6){grid-column:span 5}.capture-band{display:grid;grid-template-columns:.78fr 1.22fr;gap:44px;align-items:center}.capture-copy{text-align:center}.capture-copy h2{margin-top:0}.capture-copy p{color:var(--muted);line-height:1.7;font-size:17px}.capture-copy ul{list-style:none;padding:0;display:grid;gap:12px;text-align:left;max-width:430px;margin:24px auto 0}.capture-copy li{padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.capture-copy li:before{content:'✓';color:var(--green);font-weight:900;margin-right:10px}.timeline{position:relative;max-width:980px;margin:auto;display:grid;gap:22px}.timeline:before{content:'';position:absolute;left:50%;top:20px;bottom:20px;width:2px;background:linear-gradient(var(--green),#c8d9cc)}.timeline-item{width:calc(50% - 35px);padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:20px;position:relative}.timeline-item:nth-child(even){margin-left:auto}.timeline-item:after{content:'';position:absolute;top:30px;width:16px;height:16px;border-radius:50%;background:var(--green);box-shadow:0 0 0 7px var(--green-soft)}.timeline-item:nth-child(odd):after{right:-44px}.timeline-item:nth-child(even):after{left:-44px}.timeline-item h3{font-size:24px;margin:0 0 9px}.timeline-item p{margin:0;color:var(--muted);line-height:1.65}.feature-rows{display:grid;gap:22px}.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center;padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}.feature-row:nth-child(even) .feature-copy{order:2}.feature-row:nth-child(even) .mini-grid{order:1}.feature-copy{text-align:center}.feature-copy h3{font-size:31px;margin:0 0 12px}.feature-copy p{color:var(--muted);line-height:1.7}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini{padding:18px;border-radius:16px;background:var(--bg);border:1px solid var(--line)}.mini b{display:block;margin-bottom:7px}.mini span{font-size:13px;color:var(--muted);line-height:1.5}.pricing-table{overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.pricing-table table{border-collapse:collapse;width:100%;min-width:720px}.pricing-table th,.pricing-table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:center}.pricing-table th:first-child,.pricing-table td:first-child{text-align:left}.pricing-table thead{background:var(--green);color:white}.pricing-table tbody tr:last-child td{border-bottom:0}.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:1000px;margin:auto}.faq-list details{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.faq-list summary{min-height:61px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;font-weight:800}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';width:30px;height:30px;border-radius:9px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex:none}.faq-list details[open] summary:after{content:'−';background:var(--green);color:white}.faq-answer{padding:0 20px 20px;color:var(--muted);line-height:1.65}.notice{max-width:880px;margin:28px auto 0;padding:19px 22px;border:1px solid #e7d49a;border-radius:16px;background:#fff8e5;color:#61562d;text-align:center}.final-cta{padding:30px 0 82px}.cta-box{position:relative;overflow:hidden;padding:58px 34px;border-radius:29px;background:linear-gradient(120deg,#173124,#0c5f3a);color:white;text-align:center}.cta-box:after{content:'';position:absolute;width:230px;height:230px;border:1px solid rgba(255,255,255,.17);border-radius:50%;right:-65px;top:-80px;box-shadow:0 0 0 24px rgba(255,255,255,.04),0 0 0 52px rgba(255,255,255,.03)}.cta-box h2{position:relative;z-index:1;font-size:clamp(34px,4vw,50px);margin:0}.cta-box p{position:relative;z-index:1;color:#c8d7cd;font-size:17px;line-height:1.6;max-width:680px;margin:14px auto 26px}.cta-box .hero-actions{position:relative;z-index:1;justify-content:center;margin-top:0}.footer{padding:55px 0 20px;background:var(--surface);border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.55fr repeat(4,1fr);gap:32px}.footer-logo{width:170px}.footer p{max-width:270px;color:var(--muted);font-size:13px;line-height:1.65}.footer h3{font:800 11px 'Plus Jakarta Sans';letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}.footer-links{display:grid;gap:10px}.footer-links a{font-size:14px;font-weight:650}.copyright{margin-top:34px;padding-top:19px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:12px}.preview-index{padding:70px 0}.preview-index h1{text-align:center;font-size:clamp(44px,6vw,74px);letter-spacing:-.05em;margin:0}.preview-index>p{text-align:center;color:var(--muted);font-size:18px;max-width:760px;margin:18px auto 38px;line-height:1.7}.locked-rule{max-width:900px;margin:0 auto 42px;padding:20px;border-radius:18px;background:var(--green-soft);border:1px solid #cce3d4;text-align:center;font-weight:750;line-height:1.65}
@media(max-width:1050px){.hero-grid,.price-hero{grid-template-columns:1fr}.dual-visual{min-height:680px;max-width:800px;margin:auto}.proof-grid{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr 1fr}.bento .card,.bento .card:nth-child(n){grid-column:span 6}.capture-band{grid-template-columns:1fr;gap:28px}.footer-grid{grid-template-columns:1.3fr repeat(2,1fr)}}
@media(max-width:720px){.container{width:min(calc(100% - 30px),var(--max))}.hero{padding:48px 0 38px}.hero h1{font-size:42px;line-height:1.01}.hero .lead{font-size:16.5px}.hero-actions{display:grid;grid-template-columns:1fr}.btn{width:100%}.micro-proof{display:grid;gap:8px}.dual-visual{min-height:auto;display:grid;gap:14px}.dual-visual .snap:first-child,.dual-visual .snap:last-child{position:relative;width:100%;inset:auto;transform:none}.invoice-stack{padding:12px}.invoice-stack:before{inset:0}.proof-strip{padding-bottom:34px}.proof-grid{grid-template-columns:1fr 1fr;gap:8px}.proof{padding:12px 8px;font-size:11.5px}.section{padding:55px 0}.section h2{font-size:34px}.section-lead{font-size:15.5px}.cards{grid-template-columns:1fr}.bento{grid-template-columns:1fr}.bento .card,.bento .card:nth-child(n){grid-column:auto;min-height:auto}.timeline:before{left:17px}.timeline-item,.timeline-item:nth-child(even){width:auto;margin-left:45px}.timeline-item:nth-child(n):after{left:-37px;right:auto}.feature-row{grid-template-columns:1fr;padding:21px}.feature-row:nth-child(even) .feature-copy,.feature-row:nth-child(even) .mini-grid{order:initial}.mini-grid{grid-template-columns:1fr}.faq-list{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.cta-box{padding:42px 20px}.snap{padding:6px;border-radius:18px}.snap img{border-radius:11px}.price-panel .price{font-size:58px}}
@media(max-width:360px){.container{width:min(calc(100% - 22px),var(--max))}.hero h1{font-size:36px}.proof-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* V01.32 production overrides: text brand instead of the proposal logo file,
   language pill as a link, footer brand alignment. */
.footer-brand{margin-right:0;margin-bottom:6px}
.footer-brand img{width:26px;height:26px}
.footer-brand span{font-size:17px}

/* (V01.40) SEO-12: guide attribution and source citations. */
.byline{margin:.6rem 0 1rem;font-size:.86rem;color:var(--muted);line-height:1.55;}
.source-list{margin:0;padding-left:1.15rem;line-height:1.9;}
.source-list a{color:var(--dark);text-decoration:underline;text-underline-offset:.18em;}
.source-list a:hover{opacity:.75;}
/* (V01.40) SEO-11: guide-card link and honest "not yet published" marker. */
.card-link{margin:.7rem 0 0;font-weight:700;}
.card-link a{color:var(--dark);text-decoration:underline;text-underline-offset:.18em;}
.card-planned{margin:.7rem 0 0;font-size:.82rem;color:var(--muted);font-style:italic;}
/* (V01.40) Plain-language DPA summary. Visually distinct so nobody mistakes it
   for the contract; the binding English text follows it. */
.dpa-summary{margin:0 0 2rem;padding:1.15rem 1.35rem;border:1px solid var(--border);border-radius:.75rem;background:var(--off-white);}
.dpa-summary h2{margin:0 0 .5rem;font-size:1.05rem;}
.dpa-summary-note{margin:0 0 .8rem;font-size:.88rem;color:var(--muted);}
.dpa-summary ul{margin:0;padding-left:1.15rem;line-height:1.75;font-size:.94rem;}

/* ==========================================================================
   V01.76 remediation. Appended so these override the rules above.
   Every rule here answers a measured defect from the three-viewport browser
   baseline. Nothing is Bulgarian-specific; long translations are treated as
   the normal case rather than the exception.
   ========================================================================== */

/* 1. Long-token heading resilience.
   MEASURED: Bulgarian H1 text rendered up to 240px outside its own box at
   1440px on 9 pages, overlapping the screenshot column on 7 of them, because
   `overflow-wrap:normal` gives long compounds no break opportunity.
   `anywhere` (not `break-word`) is deliberate: it also lowers the min-content
   contribution, which is what lets a grid track shrink instead of collapsing. */
/* (V01.76b) `overflow-wrap:anywhere` plus `hyphens:auto` were added in V01.76
   to stop Bulgarian headings escaping their boxes at 76px. They did that, and
   they also split ordinary Bulgarian words mid-word, producing forms such as
   "нуж-ните". With the H1 now at 58px the pressure that justified them is
   gone, so the emergency break is narrowed to the one place it is genuinely
   needed: long unbreakable technical strings, not prose.

   Latin keeps `break-word`, which breaks a word ONLY when it cannot fit at
   all and never inserts a hyphen. Bulgarian is handled below in
   typography.css, where it gets no breaking of any kind. */
h1, h2, h3, .hero h1, .section h2, .card h3, .timeline-item h3,
.feature-copy h3, .cta-box h2, .faq-list summary {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: manual;
}
/* URLs and other genuinely unbreakable strings, narrowly scoped */
.source-list a, .faq-answer a { overflow-wrap: anywhere; }

/* 2. Grid children must be allowed to shrink.
   MEASURED: figure.snap.hero-snap crossed the visible hero box by 13px on
   /bg/features. Grid items default to min-width:auto, so an image's
   min-content width can force the item wider than its track. */
.hero-grid > *, .capture-band > *, .price-hero > *, .feature-row > * { min-width: 0; }
.hero .snap, .hero figure, .snap img { max-width: 100%; }

/* 3. The editorial hero never left two columns.
   MEASURED: /bg/guides and /bg/guides/uk-invoice-requirements had a
   zero-width H1 and a document 448px wide at a 390px viewport.
   `.hero-editorial .hero-grid` is specificity 0,2,0 and outranked the
   `1fr` reset in the 1050px block, so a `minmax(360px,.96fr)` second track
   took the whole 360px container and left the first track at zero. */
@media (max-width: 1050px) {
  .hero-editorial .hero-grid { grid-template-columns: 1fr; }

  /* 4. invoice-stack widened the document.
     Its 44px left padding and the `inset:0 50px 0 0` decoration were only
     reset at 720px, below the width where the grid had already narrowed. */
  .invoice-stack { padding: 12px; }
  .invoice-stack:before { inset: 0; }

  /* 5. dual-visual collapsed to zero width between 721px and 1050px.
     Its children were absolutely positioned, so the parent had no in-flow
     content and `width:auto` resolved to 0. Screenshots rendered at 22px with
     2x2 pixel images on four pages in both locales. The flow layout that
     rescued mobile at 720px is moved up to cover the whole range. */
  .dual-visual { min-height: auto; display: grid; gap: 18px;
                 max-width: 820px; margin-inline: auto; }
  .dual-visual .snap:first-child,
  .dual-visual .snap:last-child { position: relative; width: 100%;
                                  inset: auto; transform: none; }
}

/* 6. Orphan card rows. COMPOSITION, not geometry.
   A four-card group in a three-column grid renders 3 + 1, leaving a lone card
   on its own row. Same for the bento, where cards 3 and 4 filled 8 of 12
   columns. Written as shared rules keyed on the child count rather than
   patched per page, so any future four-card group is balanced too. */
/* Desktop: a four-card group in a three-column grid renders 3 + 1, leaving a
   lone card on its own row. Balanced to 2x2. Scoped to the desktop range: at
   tablet .cards is already two columns and at mobile it is one, and an
   unscoped rule here re-broke the bento at 390px (measured: rows [2,1,1] on
   4 pages) because :has() outranks the mobile single-column rule. */
@media (min-width: 1051px) {
  .cards:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); }
  .bento:has(> :nth-child(4):last-child) .card:nth-child(3),
  .bento:has(> :nth-child(4):last-child) .card:nth-child(4) { grid-column: span 6; }
}

/* Tablet: MEASURED 2 + 1 orphan on 44 route-instances, because a three-card
   group sits in the two-column grid the 1050px block installs. Three columns
   fit: the container is 790px at 834px, so each card gets ~248px. */
@media (min-width: 721px) and (max-width: 1050px) {
  .cards:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }

  /* MEASURED 3 + 2 on every page: the five-item footer in a three-column grid.
     The brand takes its own full-width row and the four link columns balance
     2 x 2, so no row is short of its neighbours. */
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid > :first-child { grid-column: 1 / -1; }
}

/* 7. Vertical rhythm between a section head and an odd final row. */
.cards > .card, .bento > .card { align-self: stretch; }
