/* Paper pass — light editorial theme. Scoped under body.paper so it only
   affects pages that opt in (index.html, blog.html). Do not load unscoped. */
body.paper{
  color-scheme:light;
  --bg:#f6f6f4;
  --bg-grad:#f6f6f4;
  --surface:#ffffff;
  --text:#111111;
  --muted:rgba(17,17,17,.58);
  --border:rgba(17,17,17,.14);
  --invert-bg:#f6f6f4;
  --invert-bg-hover:#ececea;
  --invert-text:#111111;
  --accent:#111111;
  --accent-2:#111111;
  --accent-rgb:17,17,17;
  --accent-hover:#2a2a2a;
  --accent-text:#ffffff;
  --shadow:0 18px 40px rgba(17,17,17,.08);
  --logo-invert:1;
}
body.paper .page,
body.paper .hero,
body.paper .services,
body.paper .why,
body.paper .work,
body.paper .faq,
body.paper .voices,
body.paper .articles,
body.paper .book-panel{
  background:var(--bg);
  color:var(--text);
}
body.paper .site-header{
  justify-content:center;
  padding:0 clamp(1.25rem,4.5vw,4.5rem);
  background:transparent;
  box-shadow:none;
}
body.paper .site-nav{
  width:100%;
  max-width:1480px;
  grid-template-columns:auto 1fr auto;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  padding:env(safe-area-inset-top, 0px) 0 0;
}
body.paper .site-nav::before,
body.paper .site-nav::after{display:none}
body.paper .nav-links,
body.paper .nav-mega{
  display:none !important;
}
body.paper .site-nav .menu-button{display:none}
body.paper .book-call,
body.paper .site-nav .book-call{
  background:#6CABDD;
  color:#fff;
  border:0;
  box-shadow:none;
  padding:0 1.5rem;
}
body.paper .book-call:hover,
body.paper .site-nav .book-call:hover{
  background:#5b9acc;
  border:0;
}
body.paper .book-call:focus-visible,
body.paper .site-nav .book-call:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
/* Plain solid box, no icon-disc */
body.paper .book-call-icon{
  display:none;
}
body.paper .book-call-label{
  padding-right:0;
}
body.paper .site-header .logo-box{
  background:#6CABDD;
  -webkit-mask:url("/assets/bm_logo_dark.webp") center / contain no-repeat;
  mask:url("/assets/bm_logo_dark.webp") center / contain no-repeat;
}
body.paper .site-header .logo-img{opacity:0}

/* Studio hero: title only for now. Paper homepage. */
body.paper .hero.hero--studio{
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  padding:7.4rem clamp(1.25rem,4.5vw,4.5rem) clamp(2.75rem,5vw,4.25rem);
  overflow:visible;
}
.hero-studio-inner{
  width:100%;
  max-width:1480px;
  margin:0 auto;
}
.hero-studio-title{
  margin:0;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(2.35rem,5.8vw,4.55rem);
  line-height:.96;
  letter-spacing:-.045em;
  color:#111;
}
.hero-studio-title > span:not(.hero-studio-foot){
  display:block;
  opacity:0;
  animation:heroTitleIn .9s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-studio-title > span.hero-studio-foot{
  display:flex;
  opacity:0;
  animation:heroTitleIn .9s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-studio-title > span:nth-child(1){animation-delay:.08s}
.hero-studio-title > span:nth-child(2){animation-delay:.22s}
.hero-studio-title .hero-studio-foot{animation-delay:.36s}
.hero-studio-foot{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:clamp(1rem,2.5vw,2rem);
}
.hero-studio-worldwide{
  flex:0 0 auto;
  white-space:nowrap;
}
/* Earth globe standing in for the "o" of worldwide. A transparent real "o"
   keeps the advance width; the SVG hangs from a zero-size anchor on the
   baseline, offset by the glyph's measured ink box (Plus Jakarta Sans 700). */
.hero-globe-sr{
  position:absolute;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.hero-globe-o{color:transparent}
.hero-globe-anchor{
  display:inline-block;
  position:relative;
  width:0;height:0;
  vertical-align:baseline;
}
.hero-globe-svg{
  position:absolute;
  left:.0385em;
  bottom:-.012em;
  width:.575em;
  height:.575em;
  overflow:visible;
}
.hero-globe-sea{fill:#2f7fa8}
.hero-globe-map{
  fill:#4caf50;
  stroke:#4caf50;
  stroke-width:3;
  stroke-linejoin:round;
  transform:translateX(-50px);
  animation:heroGlobeSpin 18s linear infinite;
}
/* The land is an equirectangular strip drawn twice, 200 units wide; the
   disc shows 100 of it, so sliding one strip width is one full turn. */
@keyframes heroGlobeSpin{
  from{transform:translateX(-250px)}
  to{transform:translateX(-50px)}
}
@media (prefers-reduced-motion:reduce){
  .hero-globe-map{animation:none}
}
.hero-studio-partners{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex:0 0 auto;
  min-width:0;
}
.hero-partners-badge{
  display:inline-flex;
  align-items:center;
  gap:.32rem;
  flex:0 0 auto;
  color:rgba(17,17,17,.34);
  white-space:nowrap;
}
.hero-partners-badge-icon{
  width:.85rem;
  height:.85rem;
  flex:0 0 auto;
}
.hero-partners-badge span{
  font-family:var(--sans);
  font-size:.62rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1;
}
.hero-partners-viewport{
  display:grid;
  flex:0 0 auto;
}
.hero-partners-slide{
  grid-area:1 / 1;
  display:flex;
  align-items:center;
  gap:.85rem;
  opacity:0;
  transition:opacity .65s ease;
  pointer-events:none;
}
.hero-partners-slide.is-active{
  opacity:1;
  pointer-events:auto;
}
.hero-partner{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  flex:0 0 auto;
}
.hero-partner img{
  display:block;
  height:1.45rem;
  width:auto;
  flex:0 0 auto;
  filter:brightness(0);
  opacity:.46;
}
.hero-partner .partners-logo--aws{height:1.65rem}
.hero-partner .partners-logo--woo{height:1.05rem}
.hero-partner .partners-logo--stripe{height:1.52rem}
.hero-partner > span{
  font-family:var(--sans);
  font-weight:600;
  font-size:clamp(.92rem,1.15vw,1.05rem);
  letter-spacing:-.03em;
  color:rgba(17,17,17,.48);
  white-space:nowrap;
}
@media (prefers-reduced-motion:reduce){
  .hero-partners-slide{transition:none}
}
@media (max-width:980px){
  .hero-studio-foot{
    flex-direction:column;
    align-items:flex-start;
    gap:.85rem;
  }
  .hero-studio-partners{
    flex-wrap:wrap;
    row-gap:.5rem;
  }
}

/* Hero proof: lead work tile sits directly under the hero text */
.hero-proof-inner{
  width:100%;
  max-width:1480px;
  margin:clamp(4.5rem,8vw,6.5rem) auto 0;
}
.hero-proof-tile{
  box-shadow:0 18px 40px rgba(17,17,17,.08);
  border-radius:22px;
  transition:box-shadow .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
/* The 21/9 --lg ratio is much wider than these ~19:10 screenshots, so
   object-fit:cover was cropping the top and bottom off. Match the shots. */
.hero-proof-tile .work-tile-media{
  aspect-ratio:19/10;
}
.hero-proof-tile:hover{
  box-shadow:0 24px 52px rgba(17,17,17,.13);
  transform:translateY(-2px);
}
@media (prefers-reduced-motion:reduce){
  .hero-proof-tile{transition:none}
}
@media (max-width:760px){
  /* On mobile the lead tile moves into the work carousel (see main.js), so
     the now-empty hero container shouldn't hold its gap open, and the tile
     should match its new siblings' size instead of the desktop "lg" look. */
  .hero-proof-inner{margin-top:0}
  .hero-proof-tile .work-tile-media{aspect-ratio:16/10}
  .hero-proof-tile .work-tile-name{font-size:1.05rem}
}

/* "Our Work" heading/intro removed from the homepage — the lead tile above
   does that job now, so the section needs much less top space and the grid
   no longer needs its own top margin on top of that. */
body.paper .work{padding-top:clamp(1.5rem,3.5vw,2.75rem)}
body.paper .work-grid{margin-top:0}
/* The pinned scroll row centres itself in a 100vh box by default, which
   reads as a big empty gap now the lead tile sits right above it. Anchor it
   to the top of that box instead so it sits close under the lead tile. */
body.paper .work-scroll-sticky{
  justify-content:flex-start;
  min-height:0;
  padding-top:clamp(1rem,3vw,2rem);
  padding-bottom:clamp(1.5rem,3vw,2.5rem);
}
/* The lead tile gets moved into this row on mobile (see main.js); without
   this, the browser's scroll anchoring shifts scrollLeft to keep whatever
   was already visible in place, so the row opens mid-scroll instead of on
   the lead tile. */
body.paper .work-scroll-viewport{
  overflow-anchor:none;
}
/* Project tagline under each work-tile company name, in the site's blue */
body.paper .work-tile-sub{
  color:#6CABDD;
  opacity:1;
}

.reviews-band{
  padding:0 clamp(1.25rem,4.5vw,4.5rem) clamp(3rem,6vw,5rem);
}
.reviews-band-inner{
  width:100%;
  max-width:1480px;
  margin:0 auto;
}
.reviews-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:1rem;
}
.review-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2.6rem;
  min-width:0;
  padding:1.65rem 1.75rem;
  background:#efefec;
  border-radius:16px;
  color:inherit;
  text-decoration:none;
}
.review-card blockquote{
  margin:0;
  font-size:.94rem;
  font-weight:500;
  line-height:1.55;
  letter-spacing:0;
  color:#111;
}
.review-card-who{
  display:flex;
  align-items:center;
  gap:.7rem;
  min-width:0;
}
.review-card-mark{
  width:32px;
  height:32px;
  flex:0 0 32px;
  object-fit:contain;
  background:#fff;
  border-radius:50%;
}
.review-card-mark--photo{object-fit:cover}
.review-card-meta{
  display:flex;
  flex-direction:column;
  gap:.1rem;
  min-width:0;
}
.review-card-meta strong{
  font-size:.85rem;
  font-weight:600;
  letter-spacing:0;
  line-height:1.25;
}
.review-card-meta span{
  font-size:.82rem;
  color:rgba(17,17,17,.5);
  line-height:1.25;
}
.review-card{
  transition:box-shadow .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.review-card:hover{
  box-shadow:0 18px 40px rgba(17,17,17,.08);
  transform:translateY(-2px);
}
@media (prefers-reduced-motion:reduce){
  .review-card{transition:none}
  .review-card:hover{transform:none}
}
.review-card:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
@keyframes heroTitleIn{
  from{opacity:0;transform:translateY(.35em)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-studio-title > span:not(.hero-studio-foot),
  .hero-studio-title > span.hero-studio-foot{
    opacity:1;
    animation:none;
  }
}
@media (max-width:1100px){
  .reviews-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .review-card:last-child:nth-child(odd){grid-column:1 / -1}
}
@media (max-width:760px){
  body.paper .hero.hero--studio{
    padding-top:6.6rem;
    padding-bottom:2.25rem;
  }
  .hero-studio-title{
    font-size:clamp(2.05rem,9.4vw,2.85rem);
  }
  .reviews-grid{
    grid-template-columns:1fr;
  }
}

body.paper .services-head,
body.paper .services-arrow,
body.paper .price-band-title,
body.paper .faq-title,
body.paper .articles-title,
body.paper .book-panel-section-title{color:#6CABDD}
/* One type scale for every section title, matching the hero. */
body.paper .services-head,
body.paper .price-band-title,
body.paper .faq-title,
body.paper .articles-title,
body.paper .book-panel-section-title{
  font-size:clamp(2.35rem,5.8vw,4.55rem);
  line-height:.96;
  letter-spacing:-.045em;
}
body.paper .services-arrow{
  width:clamp(30px,3.4vw,50px);
  margin-bottom:.15rem;
}
/* Sits after the rules above so it wins on equal specificity. */
@media (max-width:760px){
  body.paper .services-head,
  body.paper .price-band-title,
  body.paper .faq-title,
  body.paper .articles-title,
  body.paper .book-panel-section-title{
    font-size:clamp(2.05rem,9.4vw,2.85rem);
  }
}

.svc-bento{
  padding:0 clamp(1.25rem,5vw,4.5rem) clamp(4rem,9vw,8rem);
}
.svc-bento-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:1rem;
  max-width:1480px;
  margin:0 auto;
}
.svc-box{
  position:relative;
  display:flex;
  align-items:flex-end;
  min-height:clamp(170px,17vw,230px);
  grid-column:span 2;
  padding:1.5rem;
  background:#efefec;
  border-radius:16px;
  color:inherit;
  text-decoration:none;
  transition:background .35s ease;
}
.svc-box--wide{
  grid-column:span 3;
  min-height:clamp(210px,22vw,300px);
}
.svc-box--bar{
  grid-column:span 6;
  min-height:clamp(170px,14vw,200px);
}
.svc-box--feature{
  background:#6CABDD;
  color:#fff;
}
.svc-box h3{
  margin:0;
  max-width:11ch;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.45rem,2.5vw,2.35rem);
  line-height:1.02;
  letter-spacing:-.035em;
}
.svc-box svg{
  position:absolute;
  top:1.5rem;
  right:1.5rem;
  width:clamp(20px,1.7vw,26px);
  height:auto;
  opacity:.45;
  transition:opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.svc-box:hover{background:#e7e7e3}
.svc-box--feature:hover{background:#5b9acc}
.svc-box:hover svg,
.svc-box:focus-visible svg{
  opacity:1;
  transform:rotate(135deg);
}
.svc-box:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
@media (max-width:900px){
  .svc-bento-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .svc-box{grid-column:span 1}
  .svc-box--wide{grid-column:span 2}
  .svc-box--bar{grid-column:span 2}
}
@media (max-width:560px){
  .svc-bento-grid{grid-template-columns:1fr}
  .svc-box,
  .svc-box--wide,
  .svc-box--bar{
    grid-column:span 1;
    min-height:150px;
  }
}
@media (prefers-reduced-motion:reduce){
  .svc-box,
  .svc-box svg{transition:none}
  .svc-box:hover svg{transform:none}
}
/* Pricing band. Featured card uses the same sky blue as Book a call. */
.price-band{
  padding:0 clamp(1.25rem,4.5vw,4.5rem);
  --price-blue:#6CABDD;
  --price-tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.price-band-inner{
  max-width:1480px;
  margin:0 auto;
}
.price-band-title{
  margin:0;
  font-family:var(--sans);
  font-weight:700;
}
.price-split{
  display:grid;
  grid-template-columns:minmax(11rem,18%) minmax(0,1fr);
  gap:clamp(1.25rem,3vw,3rem);
  align-items:start;
}
.price-stage{min-width:0}
.price-viewport{
  overflow:hidden;
  min-width:0;
}
.price-track{
  display:flex;
  will-change:transform;
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.price-page{
  flex:0 0 100%;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1rem;
  min-width:0;
}
.price-dots{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:1rem;
}
.price-dots button{
  padding:.45rem .9rem;
  border:0;
  border-radius:999px;
  background:#efefec;
  color:#111;
  font-family:var(--sans);
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
}
.price-dots button.is-active{
  background:var(--price-blue);
  color:#fff;
}
.price-dots button:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
.price-card{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:clamp(1.75rem,2.6vw,2.5rem);
  background:#efefec;
  border-radius:16px;
  overflow:hidden;
}
.price-card--feature{
  background:var(--price-blue);
  color:#fff;
}
.price-card-bg{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(255,255,255,.18), transparent 60%),
    repeating-linear-gradient(to right, rgba(255,255,255,.16) 0 1px, transparent 1px 76px),
    repeating-linear-gradient(to bottom, rgba(255,255,255,.16) 0 1px, transparent 1px 76px);
}
.price-plan{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .55rem;
  font-size:.95rem;
  font-weight:600;
  letter-spacing:0;
}
.price-plan--brand{min-height:1.85em;font-size:1.2rem}
.price-brand-logo{
  display:block;
  height:1.7em;
  width:auto;
}
.price-brand-well{
  display:inline-flex;
  align-items:center;
  padding:.32rem .55rem;
  background:#111;
  border-radius:8px;
}
.price-brand-logo--woo{
  height:1.25em;
}
.price-badge{
  display:inline-flex;
  align-items:center;
  padding:.22rem .55rem;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.price-figure{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0 0 1rem;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(2.1rem,3.4vw,2.85rem);
  line-height:1;
  letter-spacing:-.04em;
}
.price-figure span{
  font-size:.95rem;
  font-weight:500;
  letter-spacing:0;
  color:rgba(17,17,17,.58);
}
.price-card--feature .price-figure span{color:rgba(255,255,255,.88)}
.price-copy{
  margin:0 0 1.75rem;
  max-width:44ch;
  font-size:.95rem;
  line-height:1.55;
  color:rgba(17,17,17,.72);
}
.price-card--feature .price-copy{color:rgba(255,255,255,.88)}
.price-list{
  margin:0 0 auto;
  padding:0 0 2rem;
  list-style:none;
  display:grid;
  gap:.7rem;
  font-size:.92rem;
  line-height:1.4;
  color:rgba(17,17,17,.82);
}
.price-card--feature .price-list{color:rgba(255,255,255,.94)}
.price-list li{
  display:grid;
  grid-template-columns:1.15rem 1fr;
  gap:.65rem;
  align-items:start;
}
.price-list li::before{
  content:'';
  width:1.15rem;
  height:1.35em;
  background:var(--price-blue);
  -webkit-mask:var(--price-tick) center/.95rem no-repeat;
  mask:var(--price-tick) center/.95rem no-repeat;
}
.price-card--feature .price-list li::before{background:rgba(255,255,255,.9)}
.price-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}
.price-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.95rem 1.5rem;
  border-radius:999px;
  font-size:.92rem;
  font-weight:600;
  line-height:1;
  text-decoration:none;
  transition:background-color .25s ease, color .25s ease;
}
.price-btn--solid{
  background:#111;
  color:#fff;
}
.price-btn--solid:hover{background:#2a2a2a}
.price-btn--ghost{
  background:#e2e2de;
  color:#111;
}
.price-btn--ghost:hover{background:#d8d8d3}
.price-card--feature .price-btn--solid{
  background:#fff;
  color:var(--price-blue);
}
.price-card--feature .price-btn--solid:hover{background:#eef4f9}
.price-card--feature .price-btn--ghost{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.price-card--feature .price-btn--ghost:hover{background:rgba(255,255,255,.28)}
.price-btn:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
.price-card--feature .price-btn:focus-visible{
  outline-color:#fff;
}
.price-care{
  position:relative;
  display:flex;
  align-items:flex-end;
  width:100%;
  min-height:clamp(120px,11vw,150px);
  margin-top:1rem;
  padding:1.5rem;
  background:#6CABDD;
  color:#fff;
  border-radius:16px;
  text-decoration:none;
  transition:background .35s ease;
}
.price-care h3{
  margin:0;
  max-width:12ch;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.45rem,2.5vw,2.35rem);
  line-height:1.02;
  letter-spacing:-.035em;
}
.price-care svg{
  position:absolute;
  top:1.5rem;
  right:1.5rem;
  width:clamp(20px,1.7vw,26px);
  height:auto;
  opacity:.45;
  transition:opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.price-care:hover{background:#5b9acc}
.price-care:hover svg{
  opacity:1;
  transform:translate(3px,-3px);
}
.price-care:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
@media (max-width:1100px){
  .price-split{grid-template-columns:1fr}
  .price-band-title{margin-bottom:1.25rem}
}
@media (max-width:720px){
  .price-page{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .price-btn{transition:none}
  .price-track{transition:none}
  .price-care,
  .price-care svg{transition:none}
  .price-care:hover svg{transform:none}
}
body.paper .btn-primary{
  box-shadow:0 10px 24px rgba(17,17,17,.12);
}
body.paper .btn-primary:hover{
  box-shadow:0 14px 28px rgba(17,17,17,.16);
}

body.paper .voice-card{
  background:#fff;
  color:#111;
  box-shadow:0 18px 40px rgba(17,17,17,.06);
}
body.paper .voice-stars,
body.paper .voice-author strong{color:#111}

body.paper .articles-lead{
  background:#fff;
  color:#111;
}
body.paper .articles-lead:hover{
  border-color:rgba(17,17,17,.28);
  box-shadow:0 18px 40px rgba(17,17,17,.08);
  transform:none;
}
body.paper .article-media,
body.paper .article-media.has-img,
body.paper .article-card:nth-child(2) .article-media.has-img,
body.paper .article-card:nth-child(3) .article-media.has-img{
  background:#eee;
}

/* Paper cover: typographic cover for advice posts (scripts/paper_cover.py).
   Fills whatever 16:10 or square frame it sits in; every size is a share of
   that frame, so the type scales with the card. */
.paper-cover{
  position:absolute;
  inset:0;
  container-type:size;
  overflow:hidden;
  border-radius:inherit;
  background:#f6f6f4;
  box-shadow:inset 0 0 0 1px rgba(17,17,17,.14);
  color:#111;
  font-family:var(--sans);
  text-align:left;
  line-height:1;
}
.paper-cover-cat{
  position:absolute;
  left:8cqw;
  top:10cqh;
  font-size:2.5cqw;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.paper-cover-rule{
  position:absolute;
  left:8cqw;
  top:calc(10cqh + 4.4cqw);
  width:4.5cqw;
  height:max(2px,.4cqw);
  background:#6CABDD;
}
.paper-cover-body{
  position:absolute;
  left:8cqw;
  right:7cqw;
  bottom:9cqh;
  display:flex;
  flex-direction:column;
}
.paper-cover-title{
  font-size:var(--paper-cover-title,17cqw);
  font-weight:700;
  line-height:.92;
  letter-spacing:-.045em;
  white-space:nowrap;
}
.paper-cover-foot{
  display:flex;
  align-items:baseline;
  gap:3cqw;
  margin-top:2.6cqw;
  font-size:2.8cqw;
}
.paper-cover-sub{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(17,17,17,.58);
  font-weight:500;
}
.paper-cover-mark{
  flex:0 0 auto;
  margin-left:auto;
  color:#6CABDD;
  letter-spacing:-.02em;
}
.paper-cover-mark b{font-weight:800}
/* Rail thumbs are ~74px square: keep the rule and the word, wrapping two-word names. */
@container (max-width:180px){
  .paper-cover-cat,
  .paper-cover-foot{display:none}
  .paper-cover-rule{left:11cqw;top:16cqh;width:18cqw;height:3px}
  .paper-cover-body{left:11cqw;right:8cqw;bottom:13cqh}
  .paper-cover-title{
    font-size:var(--paper-cover-thumb,20cqw);
    line-height:1;
    white-space:normal;
  }
}
body.page-article .article-cover--paper{
  position:relative;
  overflow:hidden;
}

/* Blog index (/blog) */
body.paper .feat-lead{
  box-shadow:0 18px 40px rgba(17,17,17,.08);
}
body.paper .blog-rail{
  background:#fff;
  border-color:rgba(17,17,17,.1);
  box-shadow:0 18px 40px rgba(17,17,17,.06);
}
body.paper .blog-rail-kicker{
  border-bottom-color:rgba(17,17,17,.1);
}
body.paper .blog-rail-item{
  border-bottom-color:rgba(17,17,17,.08);
}
body.paper .blog-rail-item:hover .blog-rail-title{
  color:var(--muted);
}
body.paper .blog-rail-thumb{
  background:#eee;
}
body.paper .post-media{
  background:#eee;
}
body.paper .post-media.has-img{
  background:#eee;
}
body.paper .post-card:hover .post-title{
  color:var(--muted);
}
body.paper .filter-btn.active{
  background:#6CABDD;
  color:#fff;
  border-color:#6CABDD;
}

body.paper .site-footer{
  display:block;
  background:var(--bg);
  border-top:none;
  padding:0 clamp(1.25rem,4.5vw,4.5rem) clamp(1.5rem,4vw,2.75rem);
  overflow:visible;
}
body.paper .footer-inner{
  max-width:1480px;
  display:block;
  background:#6CABDD;
  color:#fff;
  border-radius:28px;
  padding:clamp(2.25rem,4.5vw,3.5rem) clamp(1.75rem,3.5vw,3rem) clamp(1.75rem,3vw,2.25rem);
}
body.paper .footer-top{
  display:flex;
  justify-content:space-between;
  gap:clamp(2rem,5vw,4.5rem);
  flex-wrap:wrap;
  padding-bottom:clamp(1.75rem,3.5vw,2.5rem);
  border-bottom:1px solid rgba(255,255,255,.25);
}
body.paper .footer-brand{
  max-width:300px;
  gap:1rem;
}
body.paper .footer-logo-link{display:inline-flex}
body.paper .footer-logo-img{
  height:26px;
  width:auto;
  filter:brightness(0) invert(1);
}
body.paper .footer-tagline{
  margin:0;
  max-width:26ch;
  font-size:.88rem;
  line-height:1.55;
  color:rgba(255,255,255,.82);
}
body.paper .footer-sitemap{
  display:flex;
  gap:clamp(2rem,5vw,4.5rem);
  flex-wrap:wrap;
}
body.paper .footer-sitemap-col{
  display:flex;
  flex-direction:column;
  gap:.7rem;
  min-width:9rem;
}
body.paper .footer-sitemap-heading{
  margin:0 0 .15rem;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
body.paper .footer-legal{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.7rem;
}
body.paper .footer-sitemap-col a,
body.paper .footer-legal a{
  font-size:.88rem;
  font-weight:400;
  letter-spacing:-.01em;
  color:#fff;
  opacity:.85;
  text-decoration:none;
  white-space:nowrap;
}
body.paper .footer-sitemap-col a:hover,
body.paper .footer-legal a:hover{
  opacity:1;
  text-decoration:underline;
  text-underline-offset:3px;
}
body.paper .footer-legal a:focus-visible{
  outline-color:#fff;
}
body.paper .footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1.15rem;
  padding-top:clamp(1.5rem,3vw,2rem);
}
body.paper .footer-copy{color:rgba(255,255,255,.75)}
body.paper .footer-social{
  color:#fff;
  border-color:#fff;
  background:transparent;
}
body.paper .footer-social:hover{
  background:#fff;
  color:#6CABDD;
  border-color:#fff;
}
body.paper .footer-social--linkedin:hover,
body.paper .footer-social[aria-label="LinkedIn"]:hover{
  background:#0A66C2;
  color:#fff;
  border-color:#0A66C2;
}
body.paper .footer-social--whatsapp:hover{
  background:#25D366;
  color:#fff;
  border-color:#25D366;
}
body.paper .footer-whatsapp{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  font-weight:500;
  color:#fff;
  text-decoration-color:rgba(255,255,255,.45);
}
body.paper .footer-whatsapp svg{width:1rem;height:1rem}
body.paper .footer-whatsapp:hover{text-decoration-color:#fff}
@media(max-width:760px){
  body.paper .footer-top{flex-direction:column}
  body.paper .footer-brand{max-width:none}
  body.paper .footer-bottom{justify-content:flex-start}
}

body.paper .skip-link:focus,
body.paper .skip-link:focus-visible{
  outline-color:#111;
}

body.paper .work-scroll-viewport{
  scrollbar-color:rgba(17,17,17,.28) transparent;
}

body.paper .book-panel{
  padding:clamp(3rem,6vw,5rem) clamp(1.25rem,4.5vw,4.5rem);
}
body.paper .book-panel-shell{
  max-width:1480px;
  margin:0 auto;
}
body.paper .book-panel-section-title{
  margin:0 0 clamp(2rem,4vw,3rem);
  font-family:var(--sans);
  font-weight:700;
}
body.paper .book-panel-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  background:#fff;
  border:1px solid var(--border);
  border-radius:28px;
  overflow:hidden;
}
body.paper .book-panel-info{
  padding:clamp(1.35rem,3vw,2rem) clamp(1.25rem,2.8vw,1.85rem);
  border-bottom:1px solid var(--border);
}
body.paper .book-face{
  display:block;
  width:44px;
  height:44px;
  margin:0 0 1.15rem;
  border:0;
  border-radius:50%;
  overflow:hidden;
  background:#fff;
  box-shadow:0 0 0 1px rgba(17,17,17,.12);
}
body.paper .book-face img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 18%;
  display:block;
}
body.paper .book-panel-lede{
  margin:0 0 1rem;
  color:var(--muted);
  font-size:.92rem;
  font-weight:600;
}
body.paper .book-panel-list,
body.paper .book-panel-meta{
  margin:0;
  padding:0;
  list-style:none;
}
body.paper .book-panel-list{
  display:grid;
  gap:.4rem;
  margin-bottom:1.25rem;
  color:#111;
  font-size:.92rem;
}
body.paper .book-panel-list li{
  padding-left:1rem;
  position:relative;
}
body.paper .book-panel-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:.35rem;
  height:.35rem;
  border-radius:50%;
  background:#6CABDD;
}
body.paper .book-panel-meta{
  display:grid;
  gap:.35rem;
  color:var(--muted);
  font-size:.84rem;
}
body.paper .book-panel-noscript{
  margin:1rem 0 0;
  color:var(--muted);
}
body.paper .book-inline{
  width:auto;
  margin:0;
  min-width:0;
}
body.paper .book-inline .book-dialog{
  background:transparent;
  color:#111;
  border:0;
  border-radius:0;
  box-shadow:none;
  max-height:none;
  width:100%;
  padding:clamp(1.2rem,2.5vw,1.75rem);
}
body.paper .book-inline .book-dialog-head{display:none}
body.paper .book-cal-nav button{
  border-color:rgba(17,17,17,.16);
  color:#111;
}
body.paper .book-cal-nav button:hover{
  background:#111;
  color:#fff;
}
body.paper .book-cal-nav button:disabled{
  color:rgba(17,17,17,.28);
  background:transparent;
}
body.paper .book-day{color:#111}
body.paper .book-day:hover:not(:disabled){background:rgba(17,17,17,.06)}
body.paper .book-day.is-muted,
body.paper .book-day:disabled{color:rgba(17,17,17,.28)}
body.paper .book-day.is-selected{
  background:#111;
  color:#fff;
}
body.paper .book-day:focus-visible{outline-color:#111}
body.paper .book-time{
  border-color:rgba(17,17,17,.16);
  color:#111;
  border-radius:12px;
  background:#fff;
}
body.paper .book-time:hover{border-color:#111}
body.paper .book-time.is-selected{
  background:#111;
  color:#fff;
  border-color:#111;
}
body.paper .book-time:focus-visible{outline-color:#111}
body.paper .book-empty{color:var(--muted)}
body.paper .book-details label{color:var(--muted)}
body.paper .book-details input,
body.paper .book-details textarea{
  border-color:rgba(17,17,17,.16);
  background:#fff;
  color:#111;
}
body.paper .book-details input:focus-visible,
body.paper .book-details textarea:focus-visible{outline-color:#111}
body.paper .book-submit{
  background:#6CABDD;
  color:#fff;
}
body.paper .book-submit:hover{background:#5b9acc}
body.paper .book-error{color:#111}
@media (min-width:900px){
  body.paper .book-panel-inner{
    grid-template-columns:minmax(16rem,18.5rem) minmax(0,1fr);
    align-items:stretch;
  }
  body.paper .book-panel-info{
    border-bottom:0;
    border-right:1px solid var(--border);
  }
  body.paper .book-inline .book-dialog{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(11rem,13.5rem);
    align-items:start;
    padding:0;
  }
  body.paper .book-cal-nav,
  body.paper .book-weekdays,
  body.paper .book-grid,
  body.paper .book-empty,
  body.paper .book-details{
    grid-column:1;
  }
  body.paper .book-cal-nav{
    padding:clamp(1.2rem,2.5vw,1.75rem) 1.25rem 0;
    margin-bottom:.65rem;
  }
  body.paper .book-weekdays,
  body.paper .book-grid{
    margin-left:1.25rem;
    margin-right:1.25rem;
  }
  body.paper .book-grid{padding-bottom:1.25rem}
  body.paper .book-empty,
  body.paper .book-details{
    margin-left:1.25rem;
    margin-right:1.25rem;
    padding-bottom:1.25rem;
  }
  body.paper .book-times{
    grid-column:2;
    grid-row:1 / span 8;
    display:flex;
    flex-direction:column;
    gap:.4rem;
    margin:0;
    padding:clamp(1.2rem,2.5vw,1.75rem) clamp(1rem,2vw,1.35rem);
    border-left:1px solid var(--border);
    max-height:28rem;
    overflow:auto;
  }
}

/* Website care overlay — homepage pricing tile */
body.paper.care-open{overflow:hidden}
body.paper:has(.care-overlay.is-open) .offer-card{display:none !important}

.care-overlay{
  position:fixed;
  inset:0;
  z-index:85;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(.75rem,2.2vw,1.75rem);
  background:rgba(17,17,17,.48);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.care-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.care-sheet{
  width:min(100%,1320px);
  max-height:min(94vh,920px);
  display:flex;
  flex-direction:column;
  background:#fff;
  color:#111;
  border-radius:clamp(22px,2.4vw,32px);
  box-shadow:0 28px 90px rgba(0,0,0,.24);
  transform:translateY(14px) scale(.985);
  transition:transform .34s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
}
.care-overlay.is-open .care-sheet{transform:none}
.care-sheet-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-shrink:0;
  padding:clamp(1.25rem,2.4vw,1.85rem) clamp(1.35rem,2.8vw,2.15rem);
  border-bottom:1px solid var(--border);
}
.care-sheet-head h2{
  margin:0;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.85rem,3.2vw,2.65rem);
  letter-spacing:-.04em;
  line-height:1.02;
}
.care-sheet-close{
  flex-shrink:0;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#efefec;
  color:#111;
  font-size:1.55rem;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease;
}
.care-sheet-close:hover{background:#e4e4e0}
.care-sheet-close:focus-visible{
  outline:2px solid #111;
  outline-offset:3px;
}
.care-sheet-body{
  flex:1;
  min-height:0;
  overflow:auto;
  padding:clamp(1.15rem,2.4vw,1.85rem) clamp(1.35rem,2.8vw,2.15rem) clamp(1.35rem,2.8vw,2rem);
}
.care-sheet-lede{
  margin:0 0 clamp(1.15rem,2.2vw,1.65rem);
  max-width:52ch;
  font-size:clamp(.98rem,1.35vw,1.08rem);
  line-height:1.5;
  color:#444;
}
.care-sheet-plans{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.85rem,1.8vw,1.15rem);
  margin-bottom:clamp(1.25rem,2.4vw,1.75rem);
}
.care-sheet-plans--3{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.care-sheet-plans--4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.care-plan-from{
  display:inline;
  margin-right:.28em;
  font-size:.42em;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  vertical-align:baseline;
  color:#666;
}
.care-plan--feature .care-plan-from{color:rgba(255,255,255,.72)}
.care-plan{
  display:flex;
  flex-direction:column;
  min-height:100%;
  padding:clamp(1.15rem,2vw,1.5rem);
  border-radius:18px;
  background:#f6f4ef;
  border:1px solid rgba(17,17,17,.08);
}
.care-plan--feature{
  background:#6CABDD;
  color:#fff;
  border-color:transparent;
}
.care-plan-name{
  margin:0 0 .35rem;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.05rem,1.6vw,1.2rem);
  letter-spacing:-.02em;
}
.care-plan-prices{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  margin-bottom:.55rem;
}
.care-plan-price{
  margin:0;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.65rem,2.8vw,2.15rem);
  letter-spacing:-.04em;
  line-height:1;
  color:#6CABDD;
}
.care-plan-price--year{
  font-size:clamp(1.05rem,1.7vw,1.25rem);
  font-weight:600;
  letter-spacing:-.02em;
  color:#666;
}
.care-plan--feature .care-plan-price{color:#fff}
.care-plan--feature .care-plan-price--year{color:rgba(255,255,255,.78)}
.care-plan-price span{
  font-size:.42em;
  font-weight:600;
  letter-spacing:-.01em;
}
.care-plan-price--year span{font-size:.48em}
.care-plan-copy{
  margin:0 0 .95rem;
  font-size:.92rem;
  line-height:1.45;
  color:#555;
}
.care-plan--feature .care-plan-copy{color:rgba(255,255,255,.88)}
.care-plan--feature .care-sheet-list li{color:rgba(255,255,255,.95)}
.care-sheet-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:.5rem;
  flex:1;
}
.care-sheet-list li{
  position:relative;
  padding-left:1.15rem;
  font-size:.9rem;
  line-height:1.4;
}
.care-sheet-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#6CABDD;
}
.care-plan--feature .care-sheet-list li::before{background:#fff}
/* CTA inside a plan card. margin-top:auto pins it to the card foot so it lines
   up whatever length the list above it runs to. */
.care-plan-cta{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:.45rem;
  margin-top:auto;
  padding:.7rem 1.05rem;
  border-radius:999px;
  border:1.5px solid #111;
  color:#111;
  font-size:.88rem;
  font-weight:600;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.care-plan-cta svg{
  width:.9rem;
  height:.9rem;
}
.care-plan-cta:hover,
.care-plan-cta:focus-visible{
  background:#111;
  color:#fff;
}
.care-plan--feature .care-plan-cta{
  border-color:#fff;
  color:#fff;
}
.care-plan--feature .care-plan-cta:hover,
.care-plan--feature .care-plan-cta:focus-visible{
  background:#fff;
  color:#111;
}
.care-plan:has(.care-plan-cta) .care-sheet-list{margin-bottom:clamp(1rem,1.8vw,1.35rem)}

.care-sheet-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.85rem 1.15rem;
}

/* Each service sheet carries its own FAQ. Reuses the page accordion markup so
   the existing handler picks it up, scaled down to sit inside the sheet rather
   than fill a full width section. */
.sheet-faq{
  margin-top:clamp(1.5rem,3vw,2.25rem);
  margin-bottom:clamp(1.25rem,2.4vw,1.75rem);
  padding-top:clamp(1.15rem,2.4vw,1.65rem);
  border-top:1px solid rgba(17,17,17,.12);
}
.sheet-faq-title{
  margin:0 0 .3rem;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(1.15rem,1.9vw,1.4rem);
  letter-spacing:-.025em;
  color:#111;
}
.sheet-faq-list{grid-template-columns:1fr}
.sheet-faq .faq-item{border-bottom:1px solid rgba(17,17,17,.09)}
.sheet-faq .faq-q{
  gap:.75rem;
  padding:.95rem 0;
  font-size:clamp(.98rem,1.35vw,1.05rem);
  color:#111;
}
.sheet-faq .faq-q:hover{color:#6CABDD}
.sheet-faq .faq-icon{width:18px;height:18px}
.sheet-faq .faq-icon::before{width:12px;height:2px}
.sheet-faq .faq-icon::after{width:2px;height:12px}
.sheet-faq .faq-answer p{
  padding:0 0 1.05rem 1.5rem;
  max-width:64ch;
  font-size:clamp(.94rem,1.25vw,1rem);
  line-height:1.6;
  color:#444;
}
.sheet-faq .faq-answer a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  text-decoration-color:rgba(17,17,17,.35);
}
.sheet-faq .faq-answer a:hover{color:#6CABDD;text-decoration-color:#6CABDD}
@media (min-width:1080px){
  .sheet-faq-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(1.5rem,3vw,2.75rem);
  }
}

.work-sheet-tag{
  margin:0 0 .65rem;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#6CABDD;
}
.work-sheet-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem 1rem;
  margin:0 0 clamp(1.15rem,2.2vw,1.65rem);
  padding:0;
}
.work-sheet-facts div{
  margin:0;
  padding:.85rem 1rem;
  border-radius:14px;
  background:#f6f4ef;
  border:1px solid rgba(17,17,17,.08);
}
.work-sheet-facts dt{
  margin:0 0 .25rem;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#666;
}
.work-sheet-facts dd{
  margin:0;
  font-size:.9rem;
  line-height:1.35;
  color:#111;
}
.work-sheet-shots{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr)) minmax(120px,.72fr);
  gap:.85rem;
  align-items:start;
  margin-bottom:clamp(1.25rem,2.4vw,1.75rem);
}
.work-sheet-shots--solo{grid-template-columns:1fr}
.work-sheet-shots--pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.work-sheet-shots figure{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:.85rem;
  border-radius:16px;
  overflow:hidden;
  background:#efefec;
  border:1px solid rgba(17,17,17,.08);
}
.work-sheet-shots img{
  display:block;
  width:100%;
  height:auto;
  max-height:min(42vh,360px);
  object-fit:contain;
}
.work-sheet-shots--solo figure{padding:0}
.work-sheet-shots--solo img{
  max-height:none;
  width:100%;
  object-fit:cover;
  aspect-ratio:16/10;
}
.work-sheet-shot--phone{
  align-self:stretch;
  background:#111;
}
.work-sheet-shot--phone img{
  width:auto;
  max-width:100%;
  max-height:min(42vh,360px);
}
.work-sheet-visit{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.85rem 1.15rem;
  border-radius:999px;
  border:1.5px solid #111;
  color:#111;
  font-size:.92rem;
  font-weight:600;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.work-sheet-visit svg{
  width:1rem;
  height:1rem;
}
.work-sheet-visit:hover{
  background:#111;
  color:#fff;
}
.care-overlay.care-sheet--work .care-sheet{
  max-height:min(94vh,960px);
}
@media (max-width:960px){
  .work-sheet-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .work-sheet-shots,
  .work-sheet-shots--pair{grid-template-columns:1fr}
  .work-sheet-shot--phone{
    max-width:280px;
    margin-inline:auto;
  }
}
@media (max-width:560px){
  .work-sheet-facts{grid-template-columns:1fr}
}

@media (max-width:1180px){
  .care-sheet-plans--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:960px){
  .care-sheet-plans--3{grid-template-columns:1fr}
}
@media (max-width:720px){
  .care-sheet-plans,
  .care-sheet-plans--3,
  .care-sheet-plans--4{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .care-overlay,
  .care-sheet{transition:none}
}

/* Blog articles — most of article.css is already var()-driven and picks up
   the light theme automatically. Only the few hardcoded dark-only values
   need a paper override. */
body.paper .article-preview{
  background:#eee;
}
body.paper.page-article .note-block,
body.paper.page-article .callout,
body.paper.page-article .price-block,
body.paper.page-article .article-box,
body.paper.page-article .article-cta,
body.paper.page-article .article-related{
  border-left-color:rgba(17,17,17,.16);
}

/* 10% off corner card — blue instead of black */
body.paper .offer-card{
  background:#6CABDD;
  border-color:rgba(255,255,255,.3);
}
body.paper .offer-card-close{
  border-color:rgba(255,255,255,.4);
  color:#fff;
}
body.paper .offer-card-close:hover{
  background:#fff;
  color:#6CABDD;
}
body.paper .offer-card .book-call{
  background:#fff;
  color:#6CABDD;
}
body.paper .offer-card .book-call:hover{
  background:#eef4f9;
}

/* Cookie consent banner — blue instead of white/black */
body.paper .cookie-banner-panel{
  background:#6CABDD;
  border-top:none;
}
body.paper .cookie-banner-panel::before{
  background:#fff;
  opacity:.35;
}
body.paper .cookie-banner-title,
body.paper .cookie-banner-text{
  color:#fff;
}
body.paper .cookie-banner-text{
  color:rgba(255,255,255,.85);
}
body.paper .cookie-banner-icon{
  background:rgba(255,255,255,.18);
  color:#fff;
}
body.paper .cookie-banner-link{
  color:#fff;
  text-decoration-color:rgba(255,255,255,.5);
}
body.paper .cookie-banner-link:hover{
  color:#fff;
  text-decoration-color:#fff;
}
body.paper .cookie-banner .btn-outline{
  color:#fff;
  border-color:rgba(255,255,255,.5);
}
body.paper .cookie-banner .btn-outline:hover{
  border-color:#fff;
  background:rgba(255,255,255,.12);
}

/* Start-your-project form + thank-you page — most of start-your-project.css
   is already var()-driven and picks up the light theme automatically. */
body.paper .project-page-bg{display:none}
/* --invert-bg equals the page background under paper, so a "pressed" chip
   was rendering with no visible fill or border at all. Match the working
   budget-chip active state on the same form instead. */
body.paper .interest-chip[aria-pressed="true"]{
  background:#111;
  border-color:#111;
  color:#fff;
}

/* Scroll progress bar: it paints from --accent, which is near-black under
   paper, so it read as a black bar sliding across the top of a white page.
   Use the site blue instead. */
body.paper .scroll-progress{
  background:linear-gradient(90deg,#6CABDD,#8fc3e6,#6CABDD);
  box-shadow:0 0 10px rgba(108,171,221,.55);
}

/* Location pages: partner logos darkened to sit on paper, same as the hero row */
body.paper .partners-logos img{
  filter:brightness(0);
  opacity:.46;
}
body.paper .partners-logos span{color:rgba(17,17,17,.48)}

/* Location pages: titled reviews band replaces the quote carousel */
.reviews-band--titled{
  padding-top:clamp(3rem,6vw,5rem);
}
.reviews-band-title{
  margin:0 0 clamp(2rem,4vw,3rem);
  font-family:var(--sans);
  font-weight:500;
  font-size:clamp(2.35rem,5.8vw,4.55rem);
  line-height:.96;
  letter-spacing:-.045em;
  color:#111;
}
