/* DESIGN LOCK. Match docs/reference/approved-preview.png. No SVG or icon fonts. */ :root {
  --paper:#fbfaf8;
  --white:#fff;
  --cream:#f4f0ea;
  --sage-wash:#edf0e9;
  --forest:#364b40;
  --forest-dark:#263c31;
  --sage:#798779;
  --ink:#262923;
  --muted:#666b63;
  --line:#e6e5df;
  --blush:#e9ddd4;
  --danger:#9a3f38;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,'Helvetica Neue',Helvetica,sans-serif;
  --radius:12px;
  --shadow:0 6px 26px #293c3010;
  --container:1320px;
  --sidebar:252px
}

* {
  box-sizing:border-box;
  scrollbar-width:none;
  -ms-overflow-style:none
}
*::-webkit-scrollbar,
::-webkit-scrollbar {
  display:none;
  width:0;
  height:0
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:32px;
  scrollbar-width:none;
  -ms-overflow-style:none
}
html::-webkit-scrollbar {
  display:none;
  width:0;
  height:0
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:15px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;
  scrollbar-width:none;
  -ms-overflow-style:none
}
body::-webkit-scrollbar {
  display:none;
  width:0;
  height:0
}
button,input,textarea,select {
  font:inherit;
  color:inherit
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.55
}
a {
  color:inherit;
  text-decoration:none
}
a,button {
  touch-action:manipulation
}
img {
  max-width:100%;
  display:block
}
h1,h2,h3,h4,p {
  margin:0
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.15;
  letter-spacing:-.025em
}
h1 {
  font-size:58px
}
h2 {
  font-size:36px
}
h3 {
  font-size:24px
}
p {
  color:var(--muted)
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid #678369;
  outline-offset:4px
}
main:focus {
  outline:none
}
button {
  border:0;
  background:none
}
ul {
  margin:0;
  padding:0
}
input,textarea,select {
  width:100%;
  background:#fff;
  border:1px solid #d5d9d1;
  border-radius:8px;
  padding:13px 15px;
  line-height:1.45;
  min-width:0
}
input:focus,textarea:focus {
  outline:2px solid #81998450;
  border-color:#819984
}
input[readonly] {
  background:#f5f5f0;
  color:var(--muted)
}
textarea {
  resize:vertical
}
::placeholder {
  color:#777d74
}
.container {
  width:calc(100% - 112px);
  max-width:var(--container);
  margin-inline:auto
}
.narrow {
  max-width:810px
}
.icon {
  height:24px;
  width:24px;
  object-fit:contain;
  flex-shrink:0
}
.btn {
  min-height:48px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:12px 24px;
  border-radius:99px;
  font-size:14px;
  line-height:1.3;
  font-weight:500;
  text-align:center;
  transition:background .18s,transform .18s,border-color .18s
}
.btn:hover:not(:disabled) {
  transform:translateY(-1px)
}
.btn.primary {
  background:var(--forest);
  color:white;
  border-color:var(--forest)
}
.btn.primary:hover:not(:disabled) {
  background:var(--forest-dark)
}
.btn.primary .icon {
  filter:brightness(0) invert(1)
}
.btn.outline {
  border-color:#8b978c;
  background:transparent;
  color:var(--forest-dark)
}
.btn.outline:hover {
  background:#eef0e9
}
.btn.soft {
  background:#ebe9e3
}
.btn.danger {
  color:var(--danger);
  border-color:#d7ada5;
  background:#fbefec
}
.btn.small {
  min-height:40px;
  padding:10px 20px;
  font-size:13px
}
.full {
  width:100%
}
.text-link,.row {
  display:flex;
  align-items:center;
  gap:10px
}
.text-link {
  font-size:13px;
  color:var(--forest-dark);
  font-weight:500;
  flex-shrink:0
}
.text-link .icon {
  width:20px;
  height:20px
}
.text-link:hover {
  text-decoration:underline;
  text-underline-offset:4px
}
.icon-button {
  width:44px;
  height:44px;
  min-width:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  border-radius:50%;
  background:transparent
}
.icon-button:hover {
  background:#e8ece530
}
.eyebrow {
  font:11px/1.45 var(--sans);
  text-transform:uppercase;
  letter-spacing:.15em;
  color:#5c6a61;
  margin-bottom:15px
}
.tag {
  display:inline-flex;
  align-items:center;
  width:fit-content;
  padding:5px 9px;
  background:#edeee9;
  border-radius:3px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:10px;
  line-height:1.4;
  color:#435146
}
.tag.demo-tag {
  background:#f0e3d1;
  color:#715622
}
.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  color:#22271f;
  flex-shrink:0;
  line-height:.98
}
.brand img {
  object-fit:contain;
  width:31px;
  height:43px
}
.brand span {
  font:31px/.94 var(--serif);
  letter-spacing:-.035em
}
.brand.compact span {
  font-size:21px;
  line-height:1.1;
  letter-spacing:-.035em
}
.brand.compact img {
  width:23px;
  height:35px
}
.round-icon {
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--sage-wash);
  flex-shrink:0
}
.round-icon .icon {
  width:27px;
  height:27px
}
.round-icon.small {
  width:40px;
  height:40px
}
.round-icon.small .icon {
  width:22px;
  height:22px
}
.check-list {
  display:grid;
  gap:7px;
  list-style:none
}
.check-list li {
  display:flex;
  gap:7px;
  align-items:flex-start;
  color:#50574e;
  font-size:12px;
  line-height:1.55
}
.check-list .icon {
  width:15px;
  height:15px;
  margin-top:1px
}
.check-list.large {
  gap:15px
}
.check-list.large li {
  font-size:15px
}
.check-list.large .icon {
  width:20px;
  height:20px
}
.price {
  display:block;
  font-size:20px;
  margin-bottom:8px;
  font-weight:500
}
.notice {
  display:flex;
  align-items:flex-start;
  gap:13px;
  padding:18px 20px;
  border:1px solid #dfe4d8;
  background:#f0f2eb;
  border-radius:9px;
  margin-top:25px
}
.notice .icon {
  width:21px;
  height:21px
}
.notice p {
  font-size:13px;
  color:#53604f;
  line-height:1.7
}
.notice .btn {
  flex-shrink:0
}
.empty {
  padding:40px 22px;
  text-align:center
}
.empty>.icon {
  margin:0 auto 16px;
  width:32px;
  height:32px;
  opacity:.7
}
.empty h3 {
  font-size:24px;
  margin-bottom:10px
}
.empty p {
  font-size:14px
}
.caption {
  font-size:12px;
  line-height:1.6;
  color:#73796f
}
.muted {
  color:var(--muted)
}
.meta {
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  color:#687261
}
.meta .icon {
  width:17px;
  height:17px
}
.lead {
  font-size:19px;
  line-height:1.65;
  font-family:var(--serif)
}
.field {
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:13px
}
.field>span:first-child {
  font-weight:500
}
.form-stack {
  display:grid;
  gap:19px
}
.form-stack .btn {
  justify-self:start
}
.form-stack .btn.full {
  justify-self:stretch
}
.checkbox {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:12px;
  line-height:1.6;
  color:#5c635a
}
.checkbox input {
  width:17px;
  height:17px;
  flex-shrink:0;
  margin-top:2px;
  accent-color:var(--forest)
}
.checkbox a {
  text-decoration:underline;
  text-underline-offset:3px
}
.form-message {
  font-size:13px;
  color:#32583b
}
.form-message:empty {
  display:none
}
.form-message.error {
  color:var(--danger)
}
.password-input {
  position:relative
}
.password-input input {
  padding-right:70px
}
.password-input button {
  position:absolute;
  right:10px;
  top:8px;
  padding:7px;
  font-size:12px;
  color:var(--forest)
}
.panel {
  padding:28px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.panel>h2 {
  font-size:28px;
  margin-bottom:18px
}
.search-field {
  display:flex;
  align-items:center;
  gap:12px;
  padding:2px 13px;
  border:1px solid #d9ddd4;
  border-radius:9px;
  background:#fff
}
.search-field input {
  border:0;
  background:none;
  padding:12px 3px;
  outline:none;
  box-shadow:none
}
.search-field .icon {
  width:20px;
  height:20px
}
.search-field:focus-within {
  outline:2px solid #81998450;
  border-color:#819984
}
.chips {
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.chip {
  display:inline-flex;
  align-items:center;
  border:1px solid #dfe2d8;
  background:transparent;
  border-radius:99px;
  padding:9px 17px;
  font-size:12px;
  min-height:39px
}
.chip:hover {
  background:var(--sage-wash)
}
.chip.active {
  background:var(--forest);
  color:white;
  border-color:var(--forest)
}
.back-link {
  display:inline-block;
  color:#5f6a5b;
  font-size:13px;
  margin-bottom:25px
}
.back-link:hover {
  text-decoration:underline
}
.prose {
  line-height:1.8
}
.prose h2 {
  font-size:32px;
  margin:40px 0 16px
}
.prose h3 {
  font-size:25px;
  margin:30px 0 12px
}
.prose p {
  margin-bottom:19px;
  color:#535c50
}
.prose a:not(.btn) {
  text-decoration:underline;
  text-underline-offset:3px;
  color:var(--forest)
}
.prose ul {
  padding-left:20px
}
.prose .notice p {
  margin:0
}
.bottom-space {
  padding-bottom:80px
}
.section-space {
  margin-top:28px
}
.table-scroll {
  overflow:auto;
  max-width:100%
}
table {
  border-collapse:collapse;
  width:100%;
  font-size:12px;
  text-align:left
}
th {
  color:#65735e;
  font-weight:500;
  padding:13px 10px;
  background:#f4f6f0;
  white-space:nowrap
}
td {
  padding:15px 10px;
  border-bottom:1px solid var(--line);
  word-break:break-word
}
progress {
  width:100%;
  height:6px;
  border:0;
  border-radius:99px;
  background:#e6eadd;
  accent-color:#79926f;
  overflow:hidden
}
progress::-webkit-progress-bar {
  background:#e6eadd;
  border-radius:99px
}
progress::-webkit-progress-value {
  background:#849b78;
  border-radius:99px
}
progress::-moz-progress-bar {
  background:#849b78;
  border-radius:99px
}
.preserve-text {
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.sr-only,.honeypot {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
.skip-link {
  position:fixed;
  top:-100px;
  left:15px;
  background:var(--forest);
  color:#fff;
  padding:12px 20px;
  z-index:500
}
.skip-link:focus {
  top:15px
}
.mobile-only {
  display:none
}
#toast-region {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translateX(-50%);
  z-index:300;
  width:max-content;
  max-width:calc(100% - 32px);
  pointer-events:none
}
.toast {
  padding:13px 21px;
  border:1px solid #708768;
  background:#fff;
  color:var(--forest);
  border-radius:10px;
  box-shadow:0 8px 30px #172d2322;
  font-size:13px
}
.toast.error {
  color:var(--danger);
  border-color:#c99b90
}
.modal, dialog {
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:18px;
  padding:38px;
  max-width:560px;
  width:calc(100% - 32px);
  max-height:85dvh;
  overflow:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
  box-shadow:0 20px 80px #18271e38
}
.modal::-webkit-scrollbar,
dialog::-webkit-scrollbar {
  display:none;
  width:0;
  height:0
}
.modal::backdrop {
  background:#25302577;
  backdrop-filter:blur(3px)
}
.modal h2 {
  font-size:35px;
  margin-bottom:15px;
  padding-right:15px
}
.modal>p {
  margin-bottom:20px
}
.modal-close {
  position:absolute;
  top:10px;
  right:10px
}
.modal .form-stack {
  margin-top:20px
}
.search-results {
  margin-top:18px
}
.search-result {
  display:grid;
  grid-template-columns:1fr 22px;
  gap:2px;
  padding:17px 4px;
  border-bottom:1px solid var(--line)
}
.search-result small {
  grid-column:1;
  color:var(--muted);
  font-size:11px
}
.search-result strong {
  font-size:14px;
  font-weight:500;
  grid-column:1
}
.search-result .icon {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  width:18px;
  height:18px
}
.search-result:hover strong {
  text-decoration:underline
}
.loading-state {
  padding:100px 30px;
  text-align:center;
  color:var(--muted);
  font-family:var(--serif);
  font-size:26px
}
@media(max-width:1100px) {
  .container {
    width:calc(100% - 64px)
  }
  h1 {
    font-size:48px
  }
  h2 {
    font-size:32px
  }
  .btn {
    padding:12px 20px
  }
  .brand span {
    font-size:28px
  }
}
@media(max-width:760px) {
  body {
    font-size:14px
  }
  .container {
    width:calc(100% - 40px)
  }
  h1 {
    font-size:42px
  }
  h2 {
    font-size:29px
  }
  h3 {
    font-size:23px
  }
  .btn {
    font-size:13px;
    min-height:46px;
    padding:12px 19px
  }
  .btn.small {
    font-size:12px;
    padding:10px 16px
  }
  .section-heading {
    align-items:flex-start;
    gap:12px
  }
  .section-heading h2 {
    font-size:28px
  }
  .section-heading .text-link {
    font-size:11px;
    padding-top:7px
  }
  .field input,.field textarea,.search-field input {
    font-size:16px
  }
  .panel {
    padding:22px
  }
  .eyebrow {
    font-size:10px;
    letter-spacing:.14em
  }
  .notice {
    padding:16px;
    font-size:12px
  }
  .notice p {
    font-size:12px
  }
  .notice .btn {
    flex-shrink:1
  }
  .modal {
    padding:32px 23px
  }
  .modal h2 {
    font-size:29px
  }
  .bottom-space {
    padding-bottom:50px
  }
  .mobile-only {
    display:block
  }
  .lead {
    font-size:18px
  }
  .prose h2 {
    font-size:28px
  }
  .prose p {
    font-size:15px
  }
  .row {
    flex-wrap:wrap
  }
  #toast-region {
    bottom:88px
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .sidebar,.portal-header,.site-header,.site-footer,.bottom-nav,.portal-footer,.btn,#toast-region {
    display:none!important
  }
  .portal-main {
    margin:0!important
  }
  .portal-content {
    padding:0!important
  }
  body {
    background:#fff
  }
  a {
    color:#000
  }
}

.site-header {
  height:96px;
  background:var(--paper);
  position:relative;
  z-index:20
}
.header-inner {
  width:calc(100% - 96px);
  max-width:1344px;
  height:100%;
  margin:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px
}
.site-nav {
  display:flex;
  align-items:center;
  gap:27px
}
.site-nav a {
  font-size:12px;
  white-space:nowrap;
  border-bottom:1px solid transparent;
  padding:8px 0
}
.site-nav a:hover {
  border-color:var(--forest)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:19px
}
.header-login {
  font-size:12px;
  white-space:nowrap
}
.header-actions .btn {
  font-size:12px
}
.menu-toggle {
  display:none
}
.hero {
  min-height:clamp(428px,41.7vw,601px);
  position:relative;
  overflow:hidden;
  background:#f1eee9
}
.hero-photo {
  position:absolute;
  inset:0 0 0 46.8%
}
.hero-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}
.hero-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#f5f3f0 0%,#f5f3f000 14%)
}
.hero-copy {
  position:relative;
  z-index:1;
  width:54%;
  padding:clamp(40px,4.6vw,65px) 0 34px 5.35%
}
.hero .eyebrow {
  margin-bottom:17px;
  font-size:12px
}
.hero h1 {
  font-size:clamp(43px,4.5vw,65px);
  line-height:1.015;
  letter-spacing:-.04em;
  font-weight:400;
  margin-bottom:20px;
  color:#191d18
}
.hero-description {
  max-width:570px;
  font:20px/1.45 var(--serif);
  color:#4d514a;
  padding-right:22px
}
.hero-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  margin-top:31px
}
.hero-buttons .btn {
  font-size:14px;
  padding:14px 25px
}
.hero-note {
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:32px
}
.hero-note p {
  font-size:12px;
  line-height:1.6;
  color:#56604f
}
.hero-note .round-icon {
  background:#e8e8df;
  width:44px;
  height:44px
}
.hero-note .icon {
  width:25px;
  height:25px
}
.benefits {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  padding-block:36px 43px;
  text-align:center;
  gap:20px
}
.benefits>div {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px
}
.benefits .icon {
  height:39px;
  width:39px
}
.benefits p {
  font:19px/1.35 var(--serif);
  color:#333d32
}
.products-section {
  padding-bottom:35px
}
.products-section .section-heading {
  margin-bottom:14px
}
.products-section h2 {
  font-size:38px
}
.product-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px
}
.product-card {
  position:relative;
  isolation:isolate;
  min-height:408px;
  background:#fbfaf8;
  border:1px solid #eae7e1;
  border-radius:9px;
  overflow:hidden
}
.product-copy {
  position:relative;
  z-index:2;
  width:66%;
  height:100%;
  padding:24px 0 23px 22px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.product-copy:before {
  content:'';
  position:absolute;
  inset:0 -13px 0 0;
  background:linear-gradient(90deg,#fbfaf8 77%,#fbfaf800);
  z-index:-1
}
.product-card .tag {
  margin-bottom:16px
}
.product-card h3 {
  font-size:25px;
  line-height:1.12;
  max-width:265px;
  margin-bottom:13px
}
.product-card p {
  font-size:12px;
  line-height:1.6;
  color:#5d645a;
  margin-bottom:17px;
  padding-right:7px
}
.product-card .check-list {
  gap:6px;
  margin-bottom:15px
}
.product-card .check-list li {
  font-size:11px;
  gap:6px
}
.product-card .check-list .icon {
  height:14px;
  width:14px
}
.product-action {
  margin-top:auto
}
.product-cover {
  position:absolute;
  z-index:1;
  right:0;
  top:6%;
  width:39%;
  height:85%;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
  filter:drop-shadow(-5px 7px 5px #463a3010)
}
.product-card .btn {
  font-size:12px;
  padding:10px 18px
}
.about-band {
  display:grid;
  grid-template-columns:43.2% 56.8%;
  min-height:403px;
  margin-bottom:0
}
.about-photo {
  overflow:hidden
}
.about-photo img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:53% 50%
}
.about-copy {
  padding:31px 6% 29px 7%
}
.about-copy h2 {
  font-size:39px;
  line-height:1.2;
  margin-bottom:16px
}
.about-copy>p:not(.eyebrow) {
  font:19px/1.55 var(--serif);
  color:#5a5e55
}
.about-benefits {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin:28px 0 30px
}
.about-benefits>div {
  display:flex;
  align-items:center;
  flex-direction:column;
  text-align:center;
  gap:10px;
  font-size:12px;
  white-space:nowrap
}
.about-benefits .icon {
  width:38px;
  height:38px
}
.about-copy .btn {
  font-size:12px;
  min-height:40px;
  padding:10px 23px
}
.principles {
  padding:31px 0;
  background:#f1eeea
}
.principles-inner {
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:20px;
  align-items:center
}
.principles h2 {
  font-size:34px
}
.principles article {
  height:100%;
  border:1px solid #ffffffa0;
  border-radius:10px;
  background:#fbfaf8a3;
  padding:24px 22px
}
.principles h3 {
  font-size:24px;
  margin-bottom:12px
}
.principles article p {
  font-size:12px;
  line-height:1.7;
  color:#4e584b;
  margin-bottom:18px
}
.principles article>span {
  font-size:11px;
  color:#6b7166
}
.ai-band {
  display:flex;
  align-items:center;
  gap:25px;
  padding-block:35px
}
.ai-band h2 {
  font-size:30px;
  margin-bottom:8px
}
.ai-band .eyebrow {
  font-size:10px;
  margin-bottom:7px
}
.ai-band p:not(.eyebrow) {
  font-size:13px
}
.ai-band>.btn {
  margin-left:auto;
  flex-shrink:0
}
.site-footer {
  border-top:1px solid var(--line);
  background:var(--paper)
}
.footer-top {
  padding:28px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}
.footer-top nav {
  display:flex;
  gap:27px;
  font-size:11px
}
.footer-top>span {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:11px;
  color:var(--muted)
}
.footer-top>span .icon {
  height:21px;
  width:21px
}
.footer-bottom {
  border-top:1px solid var(--line);
  padding:14px 0;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  color:#7b8076
}
.page-intro {
  padding-top:67px;
  padding-bottom:44px
}
.page-intro h1 {
  margin-bottom:23px;
  font-size:57px
}
.page-intro>p:not(.eyebrow) {
  max-width:660px;
  font-size:16px;
  line-height:1.8
}
.page-intro .search-field {
  margin-top:25px;
  max-width:520px
}
.catalogue {
  padding-bottom:80px
}
.catalogue>.chips {
  margin-bottom:24px
}
.catalogue .product-card {
  min-height:430px
}
.product-detail {
  display:grid;
  grid-template-columns:1fr 1.07fr;
  gap:70px;
  padding:45px 0 65px;
  align-items:center
}
.detail-photo {
  border-radius:15px;
  overflow:hidden;
  background:#f2eee7;
  max-height:665px
}
.detail-photo img {
  width:100%;
  height:100%;
  max-height:665px;
  object-fit:cover
}
.detail-copy .tag {
  display:flex;
  margin-bottom:20px
}
.detail-copy h1 {
  font-size:51px;
  line-height:1.08;
  margin-bottom:22px
}
.detail-copy>.lead {
  margin-bottom:25px
}
.detail-copy>.check-list {
  margin-bottom:25px
}
.detail-price {
  font-size:28px;
  font-weight:500;
  display:block
}
.detail-copy>.muted {
  font-size:12px;
  margin:2px 0 20px
}
.detail-copy .back-link {
  margin-bottom:20px
}
.detail-copy .notice {
  margin-top:23px
}
.article-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px
}
.article-card {
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#fff;
  transition:transform .2s,box-shadow .2s
}
.article-card:hover {
  transform:translateY(-3px);
  box-shadow:var(--shadow)
}
.article-card>img {
  width:100%;
  height:280px;
  object-fit:cover;
  object-position:50% 38%
}
.article-card>div {
  padding:30px
}
.article-card h2 {
  font-size:31px;
  line-height:1.22;
  margin:12px 0
}
.article-card p {
  font-size:14px;
  margin-bottom:20px
}
.article-detail {
  max-width:900px;
  padding-top:45px;
  padding-bottom:80px
}
.article-detail h1 {
  font-size:54px;
  margin-bottom:22px
}
.article-hero {
  width:100%;
  height:410px;
  object-fit:cover;
  object-position:50% 35%;
  border-radius:12px;
  margin:32px 0
}
.editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding-block:70px;
  align-items:center
}
.editorial h1 {
  margin-bottom:23px
}
.editorial p:not(.eyebrow) {
  margin-bottom:24px
}
.editorial-photo {
  width:100%;
  height:520px;
  object-fit:cover;
  border-radius:15px
}
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:75px;
  padding-top:65px;
  padding-bottom:80px
}
.contact-layout h1 {
  margin-bottom:24px
}
.contact-photo {
  width:100%;
  height:280px;
  object-fit:cover;
  border-radius:12px;
  margin-top:25px;
  display:block
}
.contact-layout .panel {
  padding:35px
}
.auth-layout {
  min-height:100dvh;
  display:grid;
  grid-template-columns:46% 54%;
  background:var(--paper)
}
.auth-photo {
  position:relative;
  min-height:100dvh;
  overflow:hidden
}
.auth-photo>img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:53% 50%;
  position:absolute
}
.auth-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#f8f3eebf,transparent 38%,#e4d9c9a1)
}
.auth-photo>div {
  position:absolute;
  inset:40px 45px;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.auth-photo h2 {
  margin-top:auto;
  font-size:49px;
  line-height:1.1
}
.auth-photo p {
  margin-top:14px;
  color:#3f473a;
  font-size:15px
}
.auth-content {
  padding:34px 65px;
  display:flex;
  flex-direction:column
}
.auth-form-wrap {
  max-width:420px;
  width:100%;
  margin:auto
}
.auth-form-wrap h1 {
  font-size:43px;
  margin-bottom:16px
}
.auth-form-wrap>p:not(.eyebrow) {
  font-size:14px;
  margin-bottom:27px
}
.auth-form-wrap .form-stack {
  gap:18px
}
.auth-small-link {
  display:block;
  text-align:right;
  font-size:12px;
  color:#5a6f52;
  margin-top:16px
}
.auth-separator {
  margin:25px 0;
  display:flex;
  align-items:center;
  gap:15px;
  color:#73796b;
  font-size:12px
}
.auth-separator:before,.auth-separator:after {
  content:'';
  height:1px;
  background:var(--line);
  flex:1
}
.auth-switch {
  text-align:center;
  margin:21px 0!important;
  font-size:13px!important
}
.inline-link {
  color:var(--forest);
  text-decoration:underline;
  text-underline-offset:4px;
  margin-left:4px
}
.auth-form-wrap>.caption {
  margin-top:28px;
  font-size:11px!important;
  text-align:center;
  line-height:1.8
}
.auth-content>.back-link {
  align-self:flex-start
}
@media(max-width:1200px) {
  .site-header {
    height:82px
  }
  .header-inner {
    width:calc(100% - 64px);
    gap:20px
  }
  .site-nav {
    gap:19px
  }
  .site-nav a {
    font-size:11px
  }
  .header-actions {
    gap:11px
  }
  .desktop-search {
    display:none
  }
  .hero-copy {
    padding-left:5.3%
  }
  .hero .eyebrow {
    font-size:10px
  }
  .hero-description {
    font-size:17px;
    max-width:440px
  }
  .hero-buttons {
    gap:10px;
    margin-top:25px
  }
  .hero-buttons .btn {
    font-size:12px;
    padding:12px 20px;
    min-height:43px
  }
  .hero-note {
    margin-top:28px
  }
  .hero-note p {
    font-size:11px
  }
  .benefits {
    padding-block:29px 35px
  }
  .benefits .icon {
    width:33px;
    height:33px
  }
  .benefits p {
    font-size:16px
  }
  .products-section h2 {
    font-size:33px
  }
  .product-card {
    min-height:370px
  }
  .product-card h3 {
    font-size:23px
  }
  .product-copy {
    padding-left:17px;
    padding-top:19px;
    width:67%
  }
  .product-card p {
    font-size:11px
  }
  .product-card .check-list li {
    font-size:10px
  }
  .product-card .btn {
    font-size:11px;
    padding:10px 16px;
    min-height:38px
  }
  .about-band {
    min-height:345px
  }
  .about-copy {
    padding:29px 5% 27px 7%
  }
  .about-copy h2 {
    font-size:33px
  }
  .about-copy>p:not(.eyebrow) {
    font-size:16px
  }
  .about-benefits {
    gap:15px;
    margin:25px 0
  }
  .about-benefits>div {
    font-size:10px
  }
  .about-benefits .icon {
    width:32px;
    height:32px
  }
  .principles-inner {
    gap:15px
  }
  .principles h2 {
    font-size:29px
  }
  .principles article {
    padding:21px 17px
  }
  .principles h3 {
    font-size:22px
  }
  .principles article p {
    font-size:11px
  }
  .principles article>span {
    font-size:10px
  }
  .footer-top nav {
    gap:20px
  }
  .product-detail {
    gap:45px
  }
  .detail-copy h1 {
    font-size:42px
  }
  .editorial {
    gap:45px
  }
  .auth-content {
    padding:30px 40px
  }
}
@media(max-width:980px) {
  .site-nav {
    gap:14px
  }
  .site-nav a {
    font-size:10px
  }
  .header-actions .btn {
    font-size:11px;
    padding:10px 15px
  }
  .header-login {
    font-size:11px
  }
  .brand span {
    font-size:25px
  }
  .hero-buttons .btn {
    padding:12px 15px
  }
  .hero h1 {
    font-size:43px
  }
  .hero-description {
    font-size:16px
  }
  .product-card h3 {
    font-size:21px
  }
  .product-card .btn {
    padding:10px 13px
  }
  .about-copy h2 {
    font-size:30px
  }
  .principles-inner {
    grid-template-columns:1fr 1fr 1fr
  }
  .principles-inner>div {
    grid-column:1/-1
  }
  .principles-inner h2 br {
    display:none
  }
  .footer-top>span {
    display:none
  }
  .auth-photo h2 {
    font-size:41px
  }
  .auth-content {
    padding:30px
  }
  .auth-form-wrap h1 {
    font-size:38px
  }
}
@media(max-width:760px) {
  .site-header {
    height:77px
  }
  .header-inner {
    width:calc(100% - 36px);
    gap:10px
  }
  .brand {
    gap:8px
  }
  .brand span {
    font-size:24px
  }
  .brand img {
    width:23px;
    height:34px
  }
  .header-actions {
    gap:3px
  }
  .header-actions .btn {
    font-size:11px;
    min-height:37px;
    padding:9px 14px
  }
  .header-login {
    display:none
  }
  .menu-toggle {
    display:inline-flex;
    width:39px;
    min-width:39px
  }
  .site-nav {
    display:none;
    position:absolute;
    top:77px;
    left:0;
    right:0;
    background:var(--paper);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:16px 23px;
    box-shadow:var(--shadow)
  }
  .site-nav.open {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px 20px
  }
  .site-nav a {
    font-size:14px;
    padding:10px
  }
  .hero {
    display:flex;
    flex-direction:column;
    min-height:0;
    background:#f4f1ed
  }
  .hero-copy {
    width:100%;
    padding:32px 24px 28px;
    order:0
  }
  .hero .eyebrow {
    font-size:9px;
    letter-spacing:.12em;
    margin-bottom:16px
  }
  .hero h1 {
    font-size:clamp(40px,10.5vw,56px);
    line-height:1.02;
    margin-bottom:18px
  }
  .hero-description {
    font-size:17px;
    max-width:460px;
    padding:0;
    line-height:1.5
  }
  .hero-buttons {
    gap:9px;
    margin-top:23px;
    flex-wrap:wrap
  }
  .hero-buttons .btn {
    font-size:11px;
    min-height:43px;
    padding:11px 17px
  }
  .hero-note {
    margin-top:22px;
    gap:11px
  }
  .hero-note .round-icon {
    width:37px;
    height:37px
  }
  .hero-note .icon {
    width:22px;
    height:22px
  }
  .hero-note p {
    font-size:11px
  }
  .hero-photo {
    position:relative;
    inset:auto;
    order:1;
    height:300px;
    width:100%;
    margin-top:-2px
  }
  .hero-photo img {
    object-position:50% 50%
  }
  .hero-photo:after {
    background:linear-gradient(180deg,#f4f1ed 0%,#f4f1ed00 20%)
  }
  .benefits {
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:25px 12px;
    padding-block:30px
  }
  .benefits>div {
    gap:10px;
    grid-column:span 2;
    min-width:0
  }
  .benefits>div:nth-child(4) {
    grid-column:2 / span 2;
    margin-left:0
  }
  .benefits>div:nth-child(5) {
    grid-column:4 / span 2;
    margin-right:0
  }
  .benefits p {
    font-size:14px;
    line-height:1.3;
    white-space:normal
  }
  .benefits .icon {
    width:29px;
    height:29px
  }
  .products-section {
    padding-top:7px;
    padding-bottom:30px
  }
  .products-section .section-heading {
    align-items:center;
    flex-wrap:wrap;
    margin-bottom:17px
  }
  .products-section h2 {
    font-size:30px
  }
  .products-section .section-heading .text-link {
    font-size:10px;
    padding:0;
    gap:5px
  }
  .product-grid {
    grid-template-columns:1fr;
    gap:15px
  }
  .product-card,.catalogue .product-card {
    min-height:356px
  }
  .product-copy {
    width:66%;
    padding:23px 0 23px 21px
  }
  .product-card h3 {
    font-size:25px;
    line-height:1.15
  }
  .product-card p {
    font-size:12px;
    line-height:1.6
  }
  .product-card .check-list li {
    font-size:11px
  }
  .product-card .check-list {
    gap:8px
  }
  .product-card .tag {
    font-size:9px;
    margin-bottom:15px
  }
  .product-card .btn {
    font-size:12px;
    min-height:41px;
    padding:11px 18px
  }
  .product-cover {
    width:36%;
    right:1%;
    height:85%;
    top:7%
  }
  .price {
    font-size:21px
  }
  .about-band {
    grid-template-columns:1fr
  }
  .about-photo {
    height:280px
  }
  .about-photo img {
    object-position:50% 55%
  }
  .about-copy {
    padding:32px 23px 35px
  }
  .about-copy h2 {
    font-size:33px;
    line-height:1.13
  }
  .about-copy>p:not(.eyebrow) {
    font-size:17px;
    line-height:1.5
  }
  .about-benefits {
    gap:7px;
    margin:27px 0
  }
  .about-benefits .icon {
    width:31px;
    height:31px
  }
  .about-benefits>div {
    font-size:10px;
    gap:12px;
    white-space:normal
  }
  .about-copy .btn {
    min-height:42px;
    font-size:12px
  }
  .principles {
    padding:30px 0
  }
  .principles-inner {
    grid-template-columns:1fr;
    gap:12px
  }
  .principles-inner>div {
    margin-bottom:7px
  }
  .principles h2 {
    font-size:31px
  }
  .principles article {
    padding:23px
  }
  .principles h3 {
    font-size:24px
  }
  .principles article p {
    font-size:13px;
    margin-bottom:15px
  }
  .principles article>span {
    font-size:11px
  }
  .ai-band {
    padding-block:32px;
    gap:16px;
    flex-wrap:wrap;
    align-items:flex-start
  }
  .ai-band>.round-icon {
    width:39px;
    height:39px
  }
  .ai-band>div {
    width:calc(100% - 57px)
  }
  .ai-band h2 {
    font-size:27px
  }
  .ai-band>.btn {
    margin-left:55px;
    margin-top:2px
  }
  .ai-band p:not(.eyebrow) {
    font-size:12px
  }
  .footer-top {
    flex-direction:column;
    align-items:flex-start;
    padding:27px 0;
    gap:22px
  }
  .footer-top .brand span {
    font-size:23px
  }
  .footer-top nav {
    font-size:11px;
    gap:21px;
    flex-wrap:wrap
  }
  .footer-bottom {
    padding:17px 0;
    gap:8px;
    flex-direction:column;
    font-size:10px
  }
  .page-intro {
    padding-top:42px;
    padding-bottom:32px
  }
  .page-intro h1 {
    font-size:41px;
    line-height:1.12
  }
  .page-intro>p:not(.eyebrow) {
    font-size:14px
  }
  .catalogue {
    padding-bottom:45px
  }
  .product-detail {
    grid-template-columns:1fr;
    padding-top:18px;
    gap:32px;
    padding-bottom:37px
  }
  .detail-photo {
    max-height:470px
  }
  .detail-photo img {
    max-height:470px;
    object-fit:contain
  }
  .detail-copy h1 {
    font-size:40px
  }
  .detail-copy .back-link {
    margin-bottom:20px
  }
  .detail-copy>.lead {
    font-size:18px
  }
  .article-grid {
    grid-template-columns:1fr;
    gap:23px
  }
  .article-card>img {
    height:220px
  }
  .article-card>div {
    padding:25px
  }
  .article-card h2 {
    font-size:28px
  }
  .article-detail {
    padding-top:28px;
    padding-bottom:45px
  }
  .article-detail h1 {
    font-size:39px
  }
  .article-hero {
    height:280px;
    margin:25px 0
  }
  .editorial {
    grid-template-columns:1fr;
    gap:30px;
    padding-block:37px
  }
  .editorial h1 {
    font-size:44px
  }
  .editorial-photo {
    height:320px
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:28px;
    padding-top:36px;
    padding-bottom:45px
  }
  .contact-layout .panel {
    padding:24px
  }
  .contact-photo {
    height:180px
  }
  .auth-layout {
    display:block;
    min-height:100dvh
  }
  .auth-photo {
    display:none
  }
  .auth-content {
    min-height:100dvh;
    padding:26px 24px 38px
  }
  .auth-form-wrap {
    margin:30px auto
  }
  .auth-form-wrap h1 {
    font-size:39px
  }
  .auth-form-wrap>p:not(.eyebrow) {
    font-size:14px
  }
  .auth-content>.back-link {
    margin-bottom:0
  }
}

.portal {
  background:#f5f6f1;
  min-height:100dvh
}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar);
  background:#fafbf7;
  border-right:1px solid #e2e7dd;
  padding:35px 23px 22px;
  display:flex;
  flex-direction:column;
  z-index:30
}
.sidebar>.brand {
  margin:1px 7px 47px
}
.sidebar .brand span {
  font-size:29px
}
.sidebar-label {
  padding-left:15px;
  font-size:9px;
  margin-bottom:14px
}
.sidebar nav {
  display:grid;
  gap:7px
}
.nav-item {
  width:100%;
  display:flex;
  align-items:center;
  gap:13px;
  padding:13px 15px;
  min-height:48px;
  border-radius:9px;
  color:#59664f;
  font-size:13px;
  text-align:left
}
.nav-item .icon {
  width:21px;
  height:21px
}
.nav-item:hover {
  background:#e9eee2
}
.nav-item.active {
  background:#e3eadb;
  color:#354d2d;
  font-weight:600
}
.sidebar-bottom {
  margin-top:auto;
  padding-top:30px
}
.sidebar-quote {
  padding:26px 17px 25px;
  margin-bottom:18px;
  border:1px solid #e5e8df;
  background:#f1f3eb;
  border-radius:11px
}
.sidebar-quote .icon {
  height:29px;
  width:29px;
  margin-bottom:13px
}
.sidebar-quote p {
  font:24px/1.25 var(--serif);
  color:#4c5c43
}
.sidebar-bottom .nav-item {
  font-size:12px
}
.portal-main {
  margin-left: 0;
  width: 100%;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.sidebar, .bottom-nav {
  display: none !important;
}
.portal-header.site-header {
  height: 88px;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0;
}
.portal-header .header-inner {
  width: calc(100% - 80px);
  max-width: 1440px;
  height: 100%;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.portal-nav.site-nav {
  display: flex;
  align-items: center;
  gap: 26px;
}
.portal-nav.site-nav a {
  font-size: 13px;
  color: #4b5943;
  padding: 8px 2px;
  border-bottom: 2px solid transparent;
  text-decoration: none;
  transition: color 0.15s, border-color 0.15s;
}
.portal-nav.site-nav a:hover {
  color: var(--forest);
  border-color: var(--forest);
}
.portal-nav.site-nav a.active {
  color: var(--forest);
  border-color: var(--forest);
  font-weight: 600;
}
.portal-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.portal-site-link {
  font-size: 12px;
  color: #59674e;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.portal-admin-link {
  font-size: 12px;
  color: #7a5c2b;
  font-weight: 550;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.portal-user-name {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.logout-btn {
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 12px;
  color: #6a765e;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.logout-btn:hover {
  color: #2b3924;
}
.portal-breadcrumb {
  font-size:12px;
  color:#5b6a50
}
.portal-breadcrumb span {
  color:#afb6a5;
  padding:0 13px
}
.portal-header-actions {
  display:flex;
  gap:23px;
  align-items:center
}
.portal-site-link {
  font-size:11px;
  color:#59674e
}
.profile-link {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:12px;
  max-width:200px
}
.profile-link>span:last-child {
  max-width:120px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.avatar {
  width:36px;
  height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e5e9dc;
  font:19px var(--serif);
  color:#4a603d
}
.portal-content {
  width:100%;
  max-width:1510px;
  padding:36px 40px 40px;
  margin-inline:auto;
  flex:1;
  min-width:0
}
.portal-footer {
  display:flex;
  justify-content:space-between;
  padding:15px 40px 24px;
  color:#75816b;
  font-size:10px;
  gap:15px
}
.mobile-brand,.bottom-nav {
  display:none
}
.app-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:27px
}
.app-heading h1 {
  font-size:41px;
  line-height:1.17;
  margin-bottom:10px;
  color:#2b3924
}
.app-heading .eyebrow {
  margin-bottom:8px;
  font-size:10px
}
.app-heading p:not(.eyebrow) {
  font-size:13px;
  color:#65725b
}
.today-label {
  font-size:11px;
  color:#637257;
  text-align:right
}
.welcome-card {
  position:relative;
  border:1px solid #e6e7dd;
  background:#edece3;
  border-radius:16px;
  overflow:hidden;
  min-height:306px;
  isolation:isolate
}
.welcome-card>div {
  position:relative;
  z-index:2;
  width:63%;
  padding:33px 34px
}
.welcome-card>div:before {
  content:'';
  position:absolute;
  inset:0 -40px 0 0;
  z-index:-1;
  background:linear-gradient(90deg,#eeeee4 80%,#eeeee400)
}
.welcome-card h2 {
  font-size:43px;
  line-height:1.07;
  color:#2e4026;
  margin:14px 0 15px
}
.welcome-card p {
  font:16px/1.5 var(--serif);
  color:#5d6a53;
  margin-bottom:23px
}
.welcome-card>.btn {
  font-size:12px
}
.welcome-card>img {
  position:absolute;
  right:0;
  top:0;
  width:47%;
  height:100%;
  object-fit:cover;
  object-position:50% 36%;
  z-index:1
}
.stats {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px;
  margin-block:21px
}
.stat {
  background:#fff;
  border:1px solid #e2e8dc;
  border-radius:12px;
  padding:22px 23px;
  display:flex;
  align-items:center;
  gap:18px
}
.stat>.icon {
  width:29px;
  height:29px;
  opacity:.8
}
.stat>div {
  display:flex;
  flex-direction:column;
  gap:3px
}
.stat strong {
  font:29px/1.1 var(--serif);
  color:#374c2c
}
.stat span {
  font-size:11px;
  color:#6b795f
}
.dashboard-grid {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:20px
}
.dashboard-grid .panel {
  padding:27px
}
.next-lesson .section-heading h2 {
  font-size:25px
}
.next-lesson>.eyebrow {
  margin-top:22px;
  font-size:9px
}
.next-lesson>h3 {
  font-size:27px;
  margin:7px 0 12px
}
.next-lesson>p:not(.eyebrow) {
  font-size:13px;
  margin-bottom:22px;
  max-width:390px
}
.next-lesson>.row {
  flex-wrap:wrap;
  justify-content:space-between;
  gap:15px
}
.next-lesson>.row .text-link {
  font-size:12px
}
.next-lesson>progress {
  margin-top:24px
}
.assistant-promo {
  background:#edf1e6;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.assistant-promo>.round-icon {
  width:38px;
  height:38px;
  margin-bottom:17px;
  background:#dfe8d2
}
.assistant-promo h2 {
  font-size:29px;
  margin-bottom:12px
}
.assistant-promo p {
  font-size:13px;
  line-height:1.7;
  margin-bottom:18px
}
.assistant-promo>.text-link {
  margin-top:auto
}
.assistant-promo>.caption {
  margin-top:11px;
  font-size:10px
}
.portal .section-heading>h2 {
  font-size:28px
}
.quick-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px
}
.quick-card {
  background:#fff;
  border:1px solid #e3e7dd;
  border-radius:11px;
  overflow:hidden;
  display:flex;
  align-items:center;
  min-height:137px;
  padding:14px;
  gap:15px;
  transition:box-shadow .2s
}
.quick-card:hover {
  box-shadow:var(--shadow)
}
.quick-card>img {
  width:80px;
  height:100px;
  object-fit:cover;
  border-radius:5px
}
.quick-card>div {
  min-width:0
}
.quick-card .eyebrow {
  font-size:8px;
  letter-spacing:.08em;
  margin-bottom:9px
}
.quick-card h3 {
  font-size:20px;
  margin-bottom:14px
}
.quick-card .text-link {
  font-size:11px
}
.library-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px
}
.compact-search {
  max-width:260px
}
.compact-search input {
  font-size:12px;
  padding-block:10px
}
.resource-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:21px
}
.resource-card {
  overflow:hidden;
  border:1px solid #e3e7dd;
  border-radius:13px;
  background:#fff
}
.resource-art {
  position:relative;
  height:270px;
  background:#eeeae2
}
.resource-art>img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:50% 46%;
  transition:transform .3s
}
.resource-card:hover .resource-art>img {
  transform:scale(1.02)
}
.resource-art>.tag {
  position:absolute;
  bottom:14px;
  left:15px;
  background:#fffffff0;
  font-size:8px
}
.favorite {
  position:absolute;
  right:13px;
  top:13px;
  height:35px;
  width:35px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fffffff0;
  border:1px solid #dbe2d1;
  border-radius:50%
}
.favorite .icon {
  width:20px;
  height:20px
}
.favorite.selected {
  background:#dbe8cc;
  border-color:#72915e
}
.resource-body {
  padding:23px
}
.resource-body .eyebrow {
  font-size:9px;
  margin-bottom:11px
}
.resource-body h2 {
  font-size:25px;
  margin-bottom:12px;
  min-height:58px
}
.resource-body p {
  font-size:12px;
  line-height:1.7;
  min-height:61px;
  margin-bottom:20px
}
.resource-body .btn {
  font-size:12px;
  min-height:41px
}
.course-summary {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  align-items:center;
  gap:30px;
  background:#e9eedf;
  border:1px solid #dae3ce;
  border-radius:13px;
  padding:29px 32px;
  margin-bottom:27px
}
.course-summary>div:first-child {
  position:relative;
  padding-left:55px
}
.course-summary>div:first-child>.icon {
  position:absolute;
  left:0;
  top:8px;
  width:32px;
  height:32px
}
.course-summary h2 {
  font-size:35px;
  margin-bottom:9px
}
.course-summary p {
  font-size:13px
}
.course-summary strong {
  font-size:14px;
  font-weight:500;
  color:#415836;
  display:block
}
.course-summary progress {
  margin:12px 0
}
.course-summary .caption {
  font-size:10px
}
.modules-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:21px
}
.module-card {
  background:#fff;
  border:1px solid #e0e7d8;
  border-radius:12px;
  padding:27px;
  position:relative;
  overflow:hidden
}
.module-number {
  position:absolute;
  top:21px;
  right:25px;
  font:48px/1 var(--serif);
  color:#e6eddd
}
.module-card>.eyebrow {
  font-size:9px;
  margin-bottom:11px
}
.module-card>h2 {
  font-size:29px;
  margin-bottom:20px;
  padding-right:27px
}
.lesson-link {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 0;
  border-top:1px solid #edf0e7
}
.lesson-link>span:nth-child(2) {
  flex:1;
  min-width:0
}
.lesson-status {
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f4ed;
  border-radius:7px;
  width:34px;
  height:36px;
  flex-shrink:0
}
.lesson-status .icon {
  width:18px;
  height:18px
}
.lesson-link.completed .lesson-status {
  background:#dfeccd
}
.lesson-link strong {
  font-size:12px;
  font-weight:500;
  display:block;
  line-height:1.6;
  color:#35482d
}
.lesson-link small {
  font-size:10px;
  color:#707d63;
  display:block;
  margin-top:3px
}
.lesson-link>.icon {
  height:18px;
  width:18px
}
.lesson-link:hover strong {
  text-decoration:underline
}
.lesson-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:27px
}
.lesson-reading {
  padding:37px 38px
}
.lesson-reading h1 {
  font-size:40px;
  line-height:1.12;
  margin-bottom:18px
}
.lesson-reading>.lead {
  font-size:18px;
  margin-bottom:20px
}
.lesson-reading>.meta {
  margin-bottom:23px
}
.lesson-reading .prose {
  margin-top:14px
}
.lesson-reading .prose p {
  font-size:15px;
  line-height:1.85
}
.exercise {
  background:#edf2e5;
  border:1px solid #dee8d1;
  border-radius:9px;
  padding:24px;
  margin:28px 0
}
.exercise p:last-child {
  font:20px/1.5 var(--serif);
  color:#435a36
}
.exercise .eyebrow {
  font-size:10px;
  margin-bottom:12px
}
.lesson-actions {
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:26px;
  margin-top:28px;
  flex-wrap:wrap
}
.lesson-actions .btn,.lesson-actions .text-link {
  font-size:12px
}
.lesson-side {
  padding-top:19px
}
.lesson-side>.eyebrow {
  padding:0 13px
}
.lesson-side-link {
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border-radius:8px;
  margin-bottom:3px
}
.lesson-side-link small {
  font-size:9px;
  color:#697b5b
}
.lesson-side-link span {
  font-size:12px;
  line-height:1.5;
  color:#4b5b41
}
.lesson-side-link.active {
  background:#e7efdd
}
.lesson-side-link:hover {
  background:#e9eee3
}
.video-placeholder {
  position:relative;
  border-radius:10px;
  overflow:hidden;
  min-height:260px;
  margin:12px 0 26px;
  background:#edece5
}
.video-placeholder>img {
  height:300px;
  width:100%;
  object-fit:cover;
  opacity:.22
}
.video-placeholder>div {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  padding:30px;
  text-align:center
}
.video-placeholder .icon {
  width:36px;
  height:36px;
  margin-bottom:17px
}
.video-placeholder h2 {
  font-size:27px;
  margin-bottom:10px
}
.video-placeholder p {
  font-size:13px
}
.lesson-video {
  width:100%;
  border-radius:10px;
  margin:15px 0
}
.planner-panel {
  padding:27px 29px
}
.planner-panel .section-heading h2 {
  text-transform:capitalize
}
.week-strip {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:11px;
  margin:27px 0 25px
}
.day-button {
  border:1px solid #e2e7da;
  border-radius:10px;
  background:#f7f9f3;
  display:flex;
  flex-direction:column;
  text-align:center;
  align-items:center;
  gap:8px;
  padding:14px 6px 10px
}
.day-button>span {
  font-size:11px;
  color:#6b7c5d
}
.day-button>strong {
  font:26px/1.2 var(--serif);
  color:#425934
}
.day-button>small {
  height:14px;
  font-size:9px;
  color:#65824e
}
.day-button.active {
  background:var(--forest);
  border-color:var(--forest)
}
.day-button.active>* {
  color:#fff
}
.day-button.today:not(.active) {
  border-color:#95ad80;
  background:#eff5e7
}
.planner-day-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 0 17px;
  border-bottom:1px solid var(--line)
}
.planner-day-heading h3 {
  font-size:25px;
  text-transform:capitalize
}
.planner-day-heading>span {
  font-size:11px;
  color:#6c7d60
}
.task {
  display:flex;
  align-items:center;
  gap:13px;
  padding:17px 0;
  border-bottom:1px solid #edf0e8
}
.task>span {
  font-size:14px;
  flex:1;
  overflow-wrap:anywhere;
  line-height:1.5
}
.task.done>span {
  text-decoration:line-through;
  color:#798670
}
.task-check {
  border:1px solid #bdc9b2;
  border-radius:6px;
  min-width:23px;
  width:23px;
  height:23px;
  padding:3px;
  background:#fff
}
.task.done .task-check {
  background:#e3efd6;
  border-color:#97b181
}
.task-check .icon {
  width:17px;
  height:17px
}
.task>.icon-button {
  width:32px;
  min-width:32px;
  height:32px;
  padding:8px
}
.task>.icon-button .icon {
  width:17px;
  height:17px
}
.add-task {
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  padding-top:23px
}
.add-task input {
  font-size:13px;
  background:#fbfcf8
}
.add-task .btn {
  font-size:12px
}
.add-task .form-message {
  grid-column:1/-1
}
.planner-bottom {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:20px;
  margin-top:25px
}
.planner-bottom h2 {
  font-size:31px;
  margin-bottom:15px
}
.planner-bottom p {
  font-size:13px
}
.planner-download {
  display:flex;
  align-items:center;
  gap:20px;
  background:#edf2e5
}
.planner-download>.icon {
  width:37px;
  height:37px
}
.planner-download h3 {
  font-size:26px;
  margin-bottom:10px
}
.planner-download .text-link {
  margin-top:18px
}
.account-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}
.account-grid .panel>p {
  font-size:14px;
  margin-bottom:22px
}
.data-controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  flex-wrap:wrap
}
.data-controls h2 {
  font-size:30px;
  margin-bottom:13px
}
.data-controls p {
  font-size:13px;
  max-width:550px
}
.data-controls .btn {
  font-size:12px
}
.contact-item {
  padding:25px 0;
  border-top:1px solid var(--line)
}
.contact-item h3 {
  font-size:24px
}
.contact-item .section-heading {
  margin-bottom:8px
}
.contact-item p {
  font-size:14px;
  margin:16px 0
}
.admin-notice {
  padding:15px 20px;
  border:1px solid #e5d7bb;
  background:#fcf6e8;
  border-radius:8px;
  font-size:12px;
  color:#71623f;
  margin-bottom:20px
}
.chat-layout {
  display:grid;
  grid-template-columns:245px minmax(0,1fr);
  gap:27px
}
.chat-guide {
  padding:19px 6px
}
.chat-guide>.round-icon {
  margin-bottom:20px
}
.chat-guide h2 {
  font-size:30px;
  line-height:1.2;
  margin-bottom:19px;
  color:#34482c
}
.chat-guide>p {
  font-size:13px;
  line-height:1.8;
  max-width:217px
}
.chat-topics {
  display:grid;
  gap:10px;
  margin-top:26px
}
.suggestion {
  padding:14px 15px;
  border:1px solid #dfe7d7;
  border-radius:9px;
  text-align:left;
  background:#fff;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  line-height:1.6;
  color:#455f35
}
.suggestion .icon {
  width:17px;
  height:17px;
  margin-left:auto
}
.suggestion:hover {
  background:#edf3e5
}
.chat-guide-note {
  display:flex;
  gap:10px;
  padding-top:25px;
  margin-top:26px;
  border-top:1px solid #e0e7d7
}
.chat-guide-note p {
  font-size:11px;
  line-height:1.8;
  color:#65765a
}
.chat-guide-note .icon {
  height:19px;
  width:19px;
  margin-top:2px
}
.chat-guide>.text-link {
  font-size:11px;
  margin-top:16px
}
.chat-panel {
  background:#fff;
  border:1px solid #dfe6d6;
  border-radius:14px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:670px;
  height:calc(100dvh - 252px);
  max-height:920px
}
.chat-header {
  display:flex;
  align-items:center;
  gap:11px;
  padding:19px 22px;
  border-bottom:1px solid #e5eadf;
  background:#fcfdf9
}
.chat-header>div {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0
}
.chat-header strong {
  font-weight:500;
  font-size:12px;
  color:#3d5430
}
.chat-header div>span {
  font-size:10px;
  color:#6b7c5e
}
.chat-header>.btn {
  margin-left:auto;
  min-height:33px;
  padding:7px 12px;
  font-size:10px;
  white-space:nowrap
}
.chat-messages {
  padding:27px;
  overflow:auto;
  flex:1;
  min-height:160px;
  overscroll-behavior:contain;
  display:flex;
  flex-direction:column;
  gap:22px
}
.chat-welcome {
  margin:auto;
  text-align:center;
  padding:34px 10px;
  align-self:center
}
.chat-welcome>.round-icon {
  width:57px;
  height:57px;
  margin-bottom:21px
}
.chat-welcome h2 {
  font-size:34px;
  margin-bottom:14px;
  color:#3d5331
}
.chat-welcome p {
  font-size:13px;
  line-height:1.8
}
.welcome-suggestions {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin-top:23px
}
.welcome-suggestions .chip {
  font-size:11px;
  color:#486039;
  border-color:#dfe9d4;
  min-height:37px;
  padding:9px 15px
}
.chat-bubble {
  max-width:94%;
  align-self:flex-start;
  background:#f2f5eb;
  border:1px solid #e3eadb;
  border-radius:0 12px 12px 12px;
  padding:18px 21px;
  overflow-wrap:anywhere
}
.chat-bubble.user {
  align-self:flex-end;
  background:#e5eddc;
  border-color:#d9e4cc;
  border-radius:12px 0 12px 12px;
  max-width:85%
}
.chat-bubble>strong {
  display:block;
  font-size:10px;
  color:#526b42;
  font-weight:500;
  margin-bottom:9px
}
.chat-bubble>p {
  font-size:14px;
  white-space:pre-wrap;
  line-height:1.75;
  color:#394a2f
}
.chat-status {
  padding:0 25px 8px;
  font-size:10px;
  color:#647e53;
  min-height:20px
}
.chat-composer {
  padding:17px 22px 14px;
  border-top:1px solid #e5eadf;
  background:#fcfdf9
}
.composer-row {
  display:flex;
  gap:9px;
  align-items:flex-end;
  border:1px solid #d7e1cc;
  border-radius:12px;
  background:#fff;
  padding:8px 9px 8px 14px
}
.composer-row:focus-within {
  outline:2px solid #81998440
}
.composer-row textarea {
  border:0;
  border-radius:0;
  padding:6px 0;
  font-size:13px;
  line-height:1.6;
  max-height:150px;
  resize:vertical;
  outline:none
}
.send-button {
  width:39px;
  height:39px;
  min-width:39px;
  background:var(--forest);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:2px
}
.send-button .icon {
  filter:brightness(0) invert(1);
  width:20px;
  height:20px;
  transform:rotate(-90deg)
}
.composer-meta {
  display:flex;
  justify-content:space-between;
  font-size:9px;
  color:#75836a;
  margin:9px 1px
}
.chat-composer>.caption {
  font-size:9px;
  line-height:1.7
}
.ai-consent {
  font-size:10px;
  margin-bottom:12px;
  line-height:1.6
}
.ai-consent input {
  height:16px;
  width:16px
}
.chat-demo-note {
  font-size:10px;
  color:#6c735e;
  margin-bottom:10px;
  padding:9px 11px;
  background:#f0f2e8;
  border-radius:5px
}
.chat-composer #stop-chat {
  font-size:10px;
  min-height:33px;
  padding:8px 10px
}
.chat-layout+.notice {
  margin-top:20px
}
.portal .notice p {
  font-size:12px;
  color:#526746
}
.portal .text-link {
  color:#3d5730
}
.portal .caption {
  color:#69795d
}
.portal .meta {
  color:#66795a
}
@media(min-width:1600px) {
  :root {
    --sidebar:270px
  }
  .portal-content {
    padding:45px 50px
  }
  .welcome-card {
    min-height:360px
  }
  .welcome-card>div {
    padding:43px
  }
  .resource-grid {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .resource-art {
    height:300px
  }
}
@media(max-width:1200px) {
  :root {
    --sidebar:218px
  }
  .sidebar {
    padding:28px 16px 20px
  }
  .sidebar .brand span {
    font-size:26px
  }
  .sidebar>.brand {
    margin:0 7px 39px
  }
  .nav-item {
    padding:12px;
    font-size:12px;
    gap:11px
  }
  .nav-item .icon {
    width:19px;
    height:19px
  }
  .portal-header {
    padding:0 29px;
    height:77px
  }
  .portal-content {
    padding:30px 28px 34px
  }
  .portal-footer {
    padding-inline:29px
  }
  .app-heading h1 {
    font-size:36px
  }
  .today-label {
    max-width:140px
  }
  .welcome-card {
    min-height:289px
  }
  .welcome-card>div {
    padding:29px;
    width:67%
  }
  .welcome-card h2 {
    font-size:39px
  }
  .welcome-card p {
    font-size:15px
  }
  .welcome-card .btn {
    font-size:12px
  }
  .stat {
    padding:19px 17px;
    gap:12px
  }
  .stat>.icon {
    width:24px;
    height:24px
  }
  .stat strong {
    font-size:27px
  }
  .stat span {
    font-size:10px
  }
  .dashboard-grid {
    grid-template-columns:1.3fr 1fr;
    gap:15px
  }
  .dashboard-grid .panel {
    padding:23px
  }
  .next-lesson .section-heading {
    flex-wrap:wrap;
    gap:8px
  }
  .next-lesson .section-heading h2 {
    font-size:24px
  }
  .quick-grid {
    gap:12px
  }
  .quick-card {
    padding:10px;
    gap:10px
  }
  .quick-card>img {
    width:61px;
    height:93px
  }
  .quick-card h3 {
    font-size:18px
  }
  .quick-card .eyebrow {
    font-size:7px
  }
  .resource-grid {
    gap:16px;
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .resource-art {
    height:290px
  }
  .library-toolbar {
    align-items:flex-start;
    flex-direction:column
  }
  .library-toolbar .search-field {
    max-width:100%;
    width:100%
  }
  .library-toolbar .chips {
    gap:7px
  }
  .module-card {
    padding:23px
  }
  .module-card>h2 {
    font-size:26px
  }
  .module-number {
    font-size:43px;
    top:24px;
    right:20px
  }
  .lesson-layout {
    grid-template-columns:minmax(0,1fr) 185px;
    gap:20px
  }
  .lesson-reading {
    padding:28px
  }
  .lesson-reading h1 {
    font-size:35px
  }
  .chat-layout {
    grid-template-columns:200px minmax(0,1fr);
    gap:20px
  }
  .chat-guide h2 {
    font-size:27px
  }
  .chat-header {
    padding:17px 16px
  }
  .chat-header>.round-icon {
    display:none
  }
  .chat-header>.btn {
    padding:7px 9px
  }
  .chat-composer {
    padding:15px 16px
  }
  .chat-panel {
    min-height:660px
  }
  .chat-messages {
    padding:22px
  }
  .account-grid {
    gap:18px
  }
  .course-summary {
    padding:25px;
    gap:20px
  }
  .planner-panel {
    padding:25px
  }
  .week-strip {
    gap:8px
  }
  .chat-guide-note {
    gap:7px
  }
  .portal-header-actions {
    gap:15px
  }
}
@media(max-width:980px) {
  :root {
    --sidebar:192px
  }
  .sidebar .brand span {
    font-size:24px
  }
  .sidebar .brand img {
    width:24px;
    height:36px
  }
  .sidebar {
    padding:28px 12px 18px
  }
  .sidebar-quote {
    padding:22px 14px
  }
  .sidebar-quote p {
    font-size:23px
  }
  .nav-item {
    padding:12px 10px;
    font-size:11px;
    gap:10px
  }
  .portal-content {
    padding:27px 23px 32px
  }
  .portal-header {
    padding:0 23px
  }
  .portal-header-actions {
    gap:12px
  }
  .portal-site-link {
    display:none
  }
  .portal-breadcrumb {
    font-size:11px
  }
  .portal-header .tag {
    font-size:9px
  }
  .app-heading h1 {
    font-size:34px
  }
  .app-heading .today-label {
    display:none
  }
  .welcome-card>div {
    padding:25px
  }
  .welcome-card h2 {
    font-size:37px
  }
  .stat {
    padding:18px 13px;
    gap:10px
  }
  .stat .icon {
    width:21px;
    height:21px
  }
  .stat span {
    font-size:9px
  }
  .quick-grid {
    grid-template-columns:1fr
  }
  .quick-card {
    min-height:104px;
    padding:12px 17px;
    gap:20px
  }
  .quick-card>img {
    height:75px;
    width:58px
  }
  .quick-card h3 {
    font-size:23px;
    margin-bottom:8px
  }
  .quick-card .eyebrow {
    font-size:9px;
    margin-bottom:7px
  }
  .dashboard-grid {
    grid-template-columns:1fr
  }
  .assistant-promo h2 {
    font-size:29px
  }
  .assistant-promo {
    display:grid;
    grid-template-columns:45px 1fr;
    column-gap:15px
  }
  .assistant-promo>.round-icon {
    grid-row:1/4;
    margin:0
  }
  .assistant-promo>h2,.assistant-promo>p,.assistant-promo>.text-link,.assistant-promo>.caption {
    grid-column:2
  }
  .assistant-promo p {
    margin-bottom:13px
  }
  .assistant-promo .text-link {
    margin-top:0
  }
  .modules-grid {
    grid-template-columns:1fr
  }
  .module-card>h2 {
    font-size:29px
  }
  .lesson-layout {
    grid-template-columns:1fr
  }
  .lesson-side {
    display:none
  }
  .chat-layout {
    grid-template-columns:1fr
  }
  .chat-guide {
    display:none
  }
  .chat-panel {
    min-height:650px;
    height:calc(100dvh - 245px)
  }
  .chat-header>.round-icon {
    display:inline-flex
  }
  .course-summary {
    grid-template-columns:1fr;
    gap:22px
  }
  .course-summary>div:nth-child(2) {
    padding-left:55px
  }
  .account-grid {
    grid-template-columns:1fr
  }
  .planner-bottom {
    grid-template-columns:1fr
  }
  .week-strip {
    gap:6px
  }
  .day-button {
    padding:12px 3px 8px
  }
  .planner-panel {
    padding:23px
  }
  .planner-day-heading h3 {
    font-size:22px
  }
  .add-task {
    gap:8px
  }
  .add-task .btn {
    padding:12px 16px
  }
  .add-task .icon {
    display:none
  }
  .portal-footer {
    font-size:9px;
    flex-wrap:wrap
  }
}
@media(max-width:760px) {
  :root {
    --sidebar:0px
  }
  .sidebar {
    display:none
  }
  .portal-header {
    height:72px;
    padding:0 19px;
    gap:12px
  }
  .portal-breadcrumb {
    display:none
  }
  .mobile-brand {
    display:block;
    font:23px/1.1 var(--serif);
    letter-spacing:-.03em;
    color:#304729
  }
  .portal-header-actions {
    gap:9px
  }
  .profile-link>span:last-child {
    display:none
  }
  .avatar {
    width:32px;
    height:32px;
    font-size:18px
  }
  .portal-header .tag {
    font-size:8px;
    padding:4px 7px
  }
  .portal-content {
    padding:27px 19px 27px
  }
  .portal-footer {
    padding:10px 19px 97px;
    gap:6px;
    flex-direction:column;
    font-size:9px
  }
  .bottom-nav {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    padding:9px 8px calc(9px + env(safe-area-inset-bottom));
    z-index:50;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    background:#fafcf7f5;
    border-top:1px solid #dfe8d6;
    backdrop-filter:blur(12px)
  }
  .bottom-nav>a {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    font-size:9px;
    color:#697c5a;
    min-height:46px;
    border-radius:7px
  }
  .bottom-nav .icon {
    width:21px;
    height:21px;
    opacity:.7
  }
  .bottom-nav>a.active {
    background:#e5eddc;
    color:#38532a
  }
  .bottom-nav>a.active .icon {
    opacity:1
  }
  .app-heading {
    margin-bottom:23px
  }
  .app-heading h1 {
    font-size:34px;
    margin-bottom:9px
  }
  .app-heading p:not(.eyebrow) {
    font-size:12px;
    line-height:1.7
  }
  .app-heading .eyebrow {
    font-size:9px
  }
  .welcome-card {
    min-height:300px;
    border-radius:13px
  }
  .welcome-card>div {
    width:76%;
    padding:25px 21px
  }
  .welcome-card>div:before {
    background:linear-gradient(90deg,#eeeee4 69%,#eeeee400);
    right:-3px
  }
  .welcome-card>img {
    width:51%;
    object-position:55% 38%
  }
  .welcome-card h2 {
    font-size:36px;
    margin-top:17px
  }
  .welcome-card p {
    font-size:14px;
    max-width:235px;
    padding-right:28px;
    line-height:1.6
  }
  .welcome-card .tag {
    font-size:8px;
    letter-spacing:.06em
  }
  .welcome-card .btn {
    font-size:11px;
    min-height:41px;
    padding:11px 16px;
    gap:9px
  }
  .welcome-card .btn .icon {
    width:17px;
    height:17px
  }
  .stats {
    gap:8px;
    margin-block:15px
  }
  .stat {
    padding:17px 10px;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    border-radius:10px
  }
  .stat>.icon {
    width:23px;
    height:23px
  }
  .stat strong {
    font-size:26px
  }
  .stat span {
    font-size:9px;
    line-height:1.55;
    max-width:90px
  }
  .dashboard-grid {
    gap:15px
  }
  .dashboard-grid .panel {
    padding:22px
  }
  .next-lesson>.eyebrow {
    margin-top:19px
  }
  .next-lesson .section-heading h2 {
    font-size:26px
  }
  .next-lesson>h3 {
    font-size:28px
  }
  .next-lesson>p:not(.eyebrow) {
    font-size:12px
  }
  .next-lesson>.row {
    gap:16px
  }
  .next-lesson>.row .text-link {
    font-size:12px
  }
  .assistant-promo {
    column-gap:13px
  }
  .assistant-promo h2 {
    font-size:28px
  }
  .assistant-promo p {
    font-size:12px
  }
  .quick-grid {
    gap:12px
  }
  .quick-card h3 {
    font-size:22px
  }
  .quick-card {
    padding:14px 17px
  }
  .portal .section-heading>h2 {
    font-size:27px
  }
  .section-space {
    margin-top:25px
  }
  .resource-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }
  .resource-art {
    height:206px
  }
  .resource-art>.tag {
    left:9px;
    bottom:10px;
    font-size:7px;
    padding:4px 6px;
    letter-spacing:.05em;
    max-width:90%
  }
  .favorite {
    right:9px;
    top:9px;
    width:31px;
    height:31px
  }
  .favorite .icon {
    width:17px;
    height:17px
  }
  .resource-body {
    padding:17px 13px
  }
  .resource-body .eyebrow {
    font-size:7px;
    letter-spacing:.05em;
    line-height:1.8;
    margin-bottom:8px
  }
  .resource-body h2 {
    font-size:22px;
    line-height:1.12;
    min-height:53px
  }
  .resource-body p {
    font-size:11px;
    line-height:1.7;
    min-height:100px;
    margin-bottom:15px
  }
  .resource-body .btn {
    font-size:10px;
    padding:10px 9px;
    min-height:38px;
    gap:6px
  }
  .resource-body .btn .icon {
    height:15px;
    width:15px
  }
  .library-toolbar {
    gap:16px;
    margin-bottom:21px
  }
  .library-toolbar .chips {
    gap:6px
  }
  .library-toolbar .chip {
    font-size:11px;
    padding:9px 13px;
    min-height:37px
  }
  .compact-search input {
    font-size:16px
  }
  .course-summary {
    padding:23px;
    gap:23px
  }
  .course-summary>div:first-child {
    padding-left:44px
  }
  .course-summary>div:first-child>.icon {
    width:28px;
    height:28px
  }
  .course-summary h2 {
    font-size:31px
  }
  .course-summary p {
    font-size:12px
  }
  .course-summary>div:nth-child(2) {
    padding-left:0
  }
  .module-card {
    padding:25px 22px
  }
  .module-card>h2 {
    font-size:29px;
    max-width:300px
  }
  .module-number {
    font-size:42px
  }
  .lesson-link strong {
    font-size:13px
  }
  .lesson-link small {
    font-size:10px
  }
  .lesson-link {
    padding:15px 0;
    gap:11px
  }
  .lesson-reading {
    padding:24px 21px
  }
  .lesson-reading h1 {
    font-size:35px
  }
  .lesson-reading>.lead {
    font-size:17px
  }
  .lesson-reading .prose p {
    font-size:15px;
    line-height:1.85
  }
  .exercise {
    padding:20px
  }
  .exercise p:last-child {
    font-size:20px
  }
  .lesson-actions {
    gap:23px
  }
  .lesson-actions>.btn {
    width:100%;
    font-size:12px
  }
  .lesson-side {
    display:none
  }
  .video-placeholder>img {
    height:270px
  }
  .video-placeholder>div {
    padding:24px
  }
  .video-placeholder h2 {
    font-size:27px
  }
  .planner-panel {
    padding:21px 14px
  }
  .planner-panel>.section-heading {
    padding-inline:5px;
    align-items:center;
    gap:8px
  }
  .planner-panel>.section-heading h2 {
    font-size:23px
  }
  .planner-panel>.section-heading .row {
    gap:4px;
    flex-wrap:nowrap
  }
  .planner-panel .icon-button {
    width:30px;
    min-width:30px;
    height:32px;
    min-height:32px;
    padding:5px;
    font-size:15px
  }
  .planner-panel>.section-heading .btn.small {
    font-size:10px;
    padding:7px 10px;
    min-height:32px
  }
  .week-strip {
    gap:5px;
    margin:23px 0
  }
  .day-button {
    padding:12px 2px 9px;
    border-radius:8px;
    gap:8px
  }
  .day-button>span {
    font-size:9px
  }
  .day-button>strong {
    font-size:22px
  }
  .day-button>small {
    font-size:8px
  }
  .planner-day-heading {
    padding-inline:5px;
    gap:10px
  }
  .planner-day-heading h3 {
    font-size:21px
  }
  .planner-day-heading>span {
    font-size:10px;
    white-space:nowrap
  }
  .task {
    padding:16px 5px
  }
  .task>span {
    font-size:13px
  }
  .add-task {
    grid-template-columns:1fr;
    gap:10px;
    padding:18px 4px 0
  }
  .add-task>input {
    font-size:16px
  }
  .add-task .btn {
    justify-self:end;
    min-height:39px;
    font-size:12px;
    padding:9px 18px
  }
  .add-task .icon {
    display:block;
    width:17px;
    height:17px
  }
  .planner-bottom {
    gap:15px
  }
  .planner-bottom h2 {
    font-size:30px
  }
  .planner-download {
    padding:23px
  }
  .planner-download h3 {
    font-size:26px
  }
  .data-controls {
    gap:22px
  }
  .data-controls h2 {
    font-size:29px
  }
  .data-controls .row {
    gap:10px
  }
  .data-controls .btn {
    font-size:11px;
    padding:12px 16px
  }
  .chat-panel {
    min-height:650px;
    max-height:none;
    height:calc(100dvh - 242px);
    border-radius:12px
  }
  .chat-header {
    gap:9px;
    padding:16px 12px
  }
  .chat-header>.round-icon {
    width:33px;
    height:33px
  }
  .chat-header>.round-icon .icon {
    width:19px;
    height:19px
  }
  .chat-header strong {
    font-size:10px
  }
  .chat-header div>span {
    font-size:9px
  }
  .chat-header>.btn {
    font-size:9px;
    padding:7px 9px;
    min-height:31px
  }
  .chat-messages {
    padding:21px 14px;
    gap:18px
  }
  .chat-welcome {
    padding:30px 4px
  }
  .chat-welcome>.round-icon {
    width:50px;
    height:50px
  }
  .chat-welcome h2 {
    font-size:30px
  }
  .chat-welcome p {
    font-size:12px
  }
  .welcome-suggestions .chip {
    font-size:10px;
    padding:9px 12px
  }
  .chat-composer {
    padding:13px 12px
  }
  .chat-composer>.caption {
    font-size:9px;
    line-height:1.65
  }
  .composer-row {
    padding:7px 8px 7px 11px
  }
  .composer-row textarea {
    font-size:16px;
    line-height:1.5;
    min-height:61px
  }
  .send-button {
    width:36px;
    height:36px;
    min-width:36px
  }
  .composer-meta {
    font-size:8px
  }
  .chat-demo-note {
    font-size:9px;
    padding:9px 10px
  }
  .ai-consent {
    font-size:10px
  }
  .chat-status {
    font-size:9px;
    padding:0 15px 9px
  }
  .chat-bubble {
    padding:16px;
    max-width:96%;
    line-height:1.8
  }
  .chat-bubble>p {
    font-size:13px
  }
  .chat-bubble>strong {
    font-size:9px
  }
  .chat-layout+.notice p {
    font-size:11px
  }
  .chat-layout+.notice {
    padding:14px
  }
  .chat-layout {
    gap:0
  }
  .contact-item h3 {
    font-size:23px
  }
  .table-scroll {
    font-size:11px
  }
  .profile-link {
    max-width:40px
  }
}
@media(max-width:370px) {
  .resource-grid {
    grid-template-columns:1fr
  }
  .resource-art {
    height:300px
  }
  .resource-body {
    padding:23px
  }
  .resource-body h2 {
    min-height:0;
    font-size:27px
  }
  .resource-body p {
    min-height:0;
    font-size:13px
  }
  .resource-body .eyebrow {
    font-size:9px
  }
  .resource-body .btn {
    font-size:12px
  }
  .chat-header>.round-icon {
    display:none
  }
  .portal-content {
    padding-inline:15px
  }
  .app-heading h1 {
    font-size:31px
  }
  .mobile-brand {
    font-size:21px
  }
}
/* Equal-height library actions without changing established geometry. */ .resource-card {
  display:flex;
  flex-direction:column
}
.resource-art {
  flex-shrink:0
}
.resource-body {
  display:flex;
  flex-direction:column;
  flex:1
}
.resource-body>.btn, .resource-body>.resource-actions {
  margin-top:auto
}
.resource-actions {
  display:flex;
  flex-direction:column;
  gap:8px;
}

/* Payments reuse the approved design tokens. No SVG, external icons or fonts. */
.payment-result { max-width: 760px; margin-inline: auto; padding: clamp(24px,4vw,48px); }
.payment-result h2 { font-size: clamp(28px,3vw,40px); line-height: 1.15; margin-block: 16px; }
.payment-symbol { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #eef1eb; margin-block: 20px; }
.payment-symbol .icon { width: 30px; height: 30px; }
.payment-summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; margin: 16px 0; border-block: 1px solid #e4e5de; }
.payment-summary strong { white-space: nowrap; font-size: 22px; }
.payment-order-id { overflow-wrap: anywhere; font-size: 13px; }
.payment-actions, .payment-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 24px; }
.payment-controls { padding-top: 20px; border-top: 1px solid #e4e5de; }
.payment-review { display: block; color: #82462e; font-size: 13px; margin-top: 8px; }
.table-scroll td small { display: block; margin-top: 6px; }
.table-scroll td .btn { margin: 4px; }
@media(max-width: 600px) { .payment-summary { align-items: flex-start; } .payment-actions .btn, .payment-controls .btn { width: 100%; } }

/* Content Modules 1.6: Kuchnia, Audio, Ruch, Planer & Zakupy */
.recipe-meta-strip { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; padding: 14px 18px; background: #eef1eb; border-radius: 8px; margin: 18px 0 24px; font-size: 14px; }
.portion-controls { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.portion-controls .icon-button { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; font-weight: bold; }
.recipe-content-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 32px; margin-top: 24px; }
@media(max-width: 800px) { .recipe-content-grid { grid-template-columns: 1fr; } .portion-controls { margin-left: 0; width: 100%; } }
.ingredient-list { list-style: none; padding: 0; margin: 16px 0; display: flex; flex-direction: column; gap: 10px; }
.ingredient-list li { padding: 8px 12px; background: #fafbf8; border: 1px solid #e7ebe3; border-radius: 6px; }
.tag-opt { font-size: 11px; background: #e2e8de; padding: 2px 6px; border-radius: 4px; margin-left: 6px; }
.substitutions-callout, .storage-callout { background: #f4f6f1; border-left: 3px solid #364b40; padding: 14px 16px; border-radius: 0 6px 6px 0; margin-top: 20px; font-size: 13px; }
.step-list { padding-left: 20px; margin: 16px 0; display: flex; flex-direction: column; gap: 20px; }
.step-item h3 { font-size: 16px; margin-bottom: 6px; }

.audio-track-list { display: flex; flex-direction: column; gap: 18px; }
.audio-card { padding: 24px; }
.audio-card-header { display: flex; gap: 18px; align-items: flex-start; }
.audio-btn-row { display: flex; gap: 12px; align-items: center; margin-top: 16px; flex-wrap: wrap; }
.transcript-box { margin-top: 16px; padding: 16px; background: #f8faf5; border: 1px solid #e2e7dc; border-radius: 8px; font-size: 14px; line-height: 1.6; }
.audio-editor-episodes { display: flex; flex-direction: column; gap: 14px; }
.audio-editor-episode { padding: 20px 0; }
.audio-editor-episode h2 { margin-bottom: 0; }
.audio-editor-actions { margin-top: 14px; }
.audio-editor-actions summary { cursor: pointer; width: fit-content; }
.audio-editor-actions audio { display: block; width: min(100%, 640px); margin: 14px 0; }
.audio-editor-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; margin: 16px 0; }
.audio-editor-review-grid h4 { margin: 0 0 8px; }
.audio-editor-decisions, .audio-editor-upload-list { padding-left: 20px; line-height: 1.7; }
.audio-editor-import { max-width: 820px; }
.audio-editor-import textarea { min-height: 5rem; }

.exercise-precautions { background: #fcf9f2; border: 1px solid #ebdcc5; padding: 18px; border-radius: 8px; margin: 20px 0 28px; }
.exercise-steps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin-top: 20px; }
.exercise-step-card { background: #fafbf8; border: 1px solid #e4e8df; border-radius: 8px; overflow: hidden; margin: 0; }
.exercise-step-card figcaption { padding: 16px; }
.direction-badge { display: inline-block; font-size: 11px; background: #e0e7db; color: #2e4337; padding: 3px 8px; border-radius: 4px; margin-top: 8px; }

.shopping-list-panel { padding: 24px; }
.shopping-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.shopping-item-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.shopping-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 16px; background: #fafbf8; border: 1px solid #e4e8df; border-radius: 6px; }
.shopping-item.done span { text-decoration: line-through; opacity: 0.6; }
.close-person-content { padding: clamp(24px, 4vw, 40px); font-size: 15px; line-height: 1.7; }

/* Content UI & Scenario Styles (AU-15 CSP compliance) */
.callout-spaced { margin-bottom: 0.75rem; }
.callout-withdrawn { margin-bottom: 1.5rem; padding: 1rem; border-left: 4px solid var(--accent, #93503b); background: #fdf6f0; }
.eyebrow-withdrawn { color: #93503b; font-weight: bold; }
.scenario-outcome-box { margin: 1.5rem 0; padding: 1rem; background: var(--bg-card, #f8f6f2); border-left: 3px solid var(--accent, #3b5f41); }
.scenario-versions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
.scenario-phrase-box { margin: 1.5rem 0; }
.scenario-quote { font-style: italic; font-size: 1.1rem; margin: 0.5rem 0; }
.scenario-resources-box { margin-top: 1.5rem; }
.quick-filters-strip { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; align-items: center; }
.filter-label { align-self: center; }
.week-plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.day-card-header { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--border, #e2ded8); padding-bottom: 0.5rem; margin-bottom: 0.75rem; }
.day-item-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.day-item { display: flex; justify-content: space-between; align-items: center; padding: 0.45rem 0.6rem; background: #fafbf8; border: 1px solid #e7ebe3; border-radius: 6px; }
.day-item.done span { text-decoration: line-through; opacity: 0.6; }
.day-item-label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; font-size: 13px; }
.day-item-meta { display: flex; align-items: center; gap: 0.4rem; }
.portions-tag { font-size: 11px; color: #6a7465; }
.delete-day-item { background: transparent; border: none; font-size: 16px; color: #999; cursor: pointer; padding: 0 4px; line-height: 1; border-radius: 4px; }
.delete-day-item:hover { color: #b24030; background: #f6e8e5; }
.empty-day { color: #888; font-size: 0.9rem; padding: 0.5rem 0; font-style: italic; }
.day-card-footer { margin-top: 0.75rem; pt: 0.5rem; border-top: 1px dashed var(--border, #eee); }
.add-day-item-btn { width: 100%; text-align: center; font-size: 12px; }
.week-notes-panel { margin-top: 1.5rem; padding: 1.25rem; }
.margin-top-sm { margin-top: 0.5rem; }
.gap-sm { gap: 8px; }

/* Enhanced UX & Practical Tools */
.recipe-search-bar { margin-bottom: 1rem; width: 100%; }
.recipe-search-bar input { width: 100%; max-width: 480px; padding: 8px 14px; border: 1px solid #dcdfd8; border-radius: 6px; background: #fafbf9; font-family: inherit; font-size: 14px; color: #2e4026; }
.recipe-search-bar input:focus { outline: none; border-color: #364b40; background: #ffffff; }

.sleep-timer-label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #5d6a53; }
.sleep-timer-select { border: 1px solid #dcdfd8; background: #fafbf9; border-radius: 4px; padding: 3px 6px; font-size: 12px; color: #2e4026; }

.welcome-guide-banner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; background: #f4f6f1; border: 1px solid #dce2d6; border-left: 4px solid #364b40; padding: 14px 18px; border-radius: 6px; margin-bottom: 22px; }
.welcome-guide-content h3 { margin: 4px 0; font-family: var(--serif); font-size: 18px; color: #2e4026; }
.welcome-guide-content p { margin: 0; font-size: 14px; color: #5d6a53; }

/* Materials Library & Tranquil Portal */
.materials-guidance-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: #edf2e8;
  border: 1px solid #d5ddce;
  border-radius: 6px;
  margin-bottom: 30px;
  font-size: 14px;
  line-height: 1.6;
  color: #384a32;
}
.materials-guidance-bar .guidance-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.materials-guidance-bar .guidance-icon .icon {
  width: 22px;
  height: 22px;
}
.materials-guidance-bar p {
  margin: 0;
}

.program-callout {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  padding: 26px 30px;
  background: #eaf0e3;
  border: 1px solid #cdd8c1;
  border-radius: 8px;
  margin-bottom: 34px;
}
.program-callout-info h2 {
  font-size: 26px;
  line-height: 1.2;
  margin: 6px 0 8px;
  color: #273622;
}
.program-callout-info p {
  margin: 0;
  font-size: 14px;
  color: #55624e;
}
.program-progress-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
}
.program-progress-row .meta {
  font-size: 13px;
  color: #55624e;
}
.program-progress-row progress {
  width: 140px;
  height: 8px;
  accent-color: #304b40;
}
.program-callout-action {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
  align-items: flex-end;
}

.materials-section {
  margin-bottom: 36px;
}
.materials-books-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 26px;
  margin-top: 18px;
}
.book-card {
  background: #ffffff;
  border: 1px solid #dcdfd5;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 0.15s, box-shadow 0.15s;
}
.book-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(48, 75, 64, 0.07);
}
.book-art {
  position: relative;
  background: #edeae2;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.book-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.book-art .favorite {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.book-art .favorite:hover {
  background: #ffffff;
}
.book-art .favorite.selected {
  background: #304b40;
}
.book-art .favorite.selected .icon {
  filter: brightness(0) invert(1);
}
.book-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.book-title {
  font-size: 20px;
  line-height: 1.25;
  margin: 6px 0 8px;
  color: #243321;
}
.book-description {
  font-size: 14px;
  line-height: 1.6;
  color: #56634f;
  margin-bottom: 20px;
  flex: 1;
}
.book-actions {
  display: flex;
  gap: 10px;
  margin-top: auto;
}
.book-actions .btn {
  flex: 1;
  justify-content: center;
  text-align: center;
}

.materials-worksheets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 18px;
}
.worksheet-card {
  background: #fdfcf9;
  border: 1px solid #e1e5da;
  border-radius: 6px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  position: relative;
}
.worksheet-art {
  position: relative;
  height: 110px;
  background: #f3f5ee;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.worksheet-cover-img {
  max-height: 100%;
  width: auto;
  object-fit: contain;
  display: block;
}
.worksheet-art .favorite {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.worksheet-art .favorite.selected {
  background: #304b40;
}
.worksheet-art .favorite.selected .icon {
  filter: brightness(0) invert(1);
}
.worksheet-title {
  font-size: 17px;
  line-height: 1.3;
  margin: 4px 0 6px;
  color: #253322;
}
.worksheet-description {
  font-size: 13px;
  line-height: 1.55;
  color: #5c6856;
  margin-bottom: 16px;
  flex: 1;
}
.resource-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  line-height: 1.4;
  color: #6d7968;
  margin-top: -6px;
  margin-bottom: 14px;
}
.resource-meta .meta-sep {
  color: #b8c2b3;
  user-select: none;
}
.resource-meta .meta-item {
  white-space: nowrap;
}

.worksheet-actions {
  display: flex;
  gap: 10px;
  margin-top: auto;
}
.worksheet-actions .btn {
  flex: 1;
  justify-content: center;
  text-align: center;
}

.materials-ai-notice {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  background: #f4f5ee;
  border: 1px solid #d8dfcd;
  border-radius: 8px;
}
.materials-ai-content {
  display: flex;
  align-items: center;
  gap: 18px;
}
.materials-ai-content h3 {
  font-size: 18px;
  margin: 0 0 4px;
  color: #243422;
}
.materials-ai-content p {
  font-size: 13px;
  color: #586650;
  margin: 0;
  line-height: 1.5;
}

.program-suggestion, .shop-invitation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  padding: 26px 30px;
  background: #f1f4ec;
  border: 1px solid #d4dec9;
  border-radius: 8px;
}
.program-suggestion h2, .shop-invitation h2 {
  font-size: 24px;
  margin: 4px 0 8px;
  color: #243422;
}
.program-suggestion p, .shop-invitation p {
  font-size: 14px;
  color: #586650;
  margin: 0;
  max-width: 58ch;
  line-height: 1.6;
}

/* Help View */
.help-layout {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 32px;
}
.help-faq-panel details {
  border-bottom: 1px solid #d7decb;
  padding: 16px 0;
}
.help-faq-panel summary {
  cursor: pointer;
  font-size: 16px;
  font-weight: 550;
  color: #273b2a;
  padding-left: 4px;
}
.help-faq-panel details p {
  font-size: 14px;
  line-height: 1.7;
  color: #4b5844;
  margin: 10px 0 4px;
}
.help-contact-panel {
  background: #f4f6ee;
  border: 1px solid #d5decb;
  height: fit-content;
  padding: 30px;
}
.help-contact-box {
  background: #ffffff;
  border: 1px solid #dce2d4;
  border-radius: 6px;
  padding: 16px;
  margin: 18px 0;
}
.help-contact-box p {
  margin: 4px 0;
}
.help-emergency {
  border-top: 1px solid #dce2d4;
  padding-top: 14px;
  margin-top: 18px;
  font-size: 11px;
  color: #727c69;
  line-height: 1.5;
}

/* Program Guide & Accordion Modules */
.program-guide-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  background: #f4f6ee;
  border: 1px solid #d8dfcd;
  border-radius: 8px;
}
.program-guide-info {
  display: flex;
  align-items: center;
  gap: 16px;
}
.program-guide-info h2 {
  font-size: 20px;
  margin: 0 0 4px;
  color: #243422;
}
.program-guide-info p {
  font-size: 13.5px;
  color: #55634d;
  margin: 0;
  max-width: 60ch;
  line-height: 1.55;
}
.program-guide-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

.modules-accordion-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.module-accordion {
  border: 1px solid #dde3d3;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
  padding: 0;
}
.module-accordion[open] {
  border-color: #c7d2bc;
}
.module-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  cursor: pointer;
  user-select: none;
  background: #fafbf7;
  border-bottom: 1px solid transparent;
  transition: background-color 0.15s ease;
}
.module-accordion[open] .module-summary {
  border-bottom-color: #e5eadc;
  background: #f7f9f2;
}
.module-summary:hover {
  background: #f3f6ec;
}
.module-summary-left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.module-badge {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  background: #e6ede0;
  color: #314631;
  border-radius: 4px;
}
.module-summary-left h3 {
  font-size: 18px;
  margin: 0;
  color: #243422;
}
.module-summary-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.module-summary-meta {
  font-size: 13px;
  color: #697863;
}
.summary-arrow {
  display: inline-flex;
  align-items: center;
  transition: transform 0.2s ease;
}
.module-accordion[open] .summary-arrow {
  transform: rotate(90deg);
}
.module-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.module-lessons h4, .module-materials h4 {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6c7b65;
  margin: 0 0 10px;
}
.module-lessons-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.program-lesson-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: #fdfdfc;
  border: 1px solid #e7ecdf;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.program-lesson-row:hover {
  background: #f7f9f3;
  border-color: #cbd7be;
}
.program-lesson-row.completed {
  background: #f8faf4;
}
.program-lesson-row .lesson-status {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #eef2e7;
  flex-shrink: 0;
}
.program-lesson-row.completed .lesson-status {
  background: #304b40;
}
.program-lesson-row.completed .lesson-status .icon {
  filter: brightness(0) invert(1);
}
.program-lesson-row .lesson-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.program-lesson-row .lesson-info strong {
  font-size: 14.5px;
  color: #243422;
}
.program-lesson-row .lesson-info small {
  font-size: 12px;
  color: #687762;
}
.program-lesson-row .lesson-open-link {
  font-size: 13px;
  color: #3b5749;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.module-materials-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.module-material-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  background: #f7f9f2;
  border: 1px solid #e1e7d8;
  border-radius: 6px;
}
.material-item-info {
  display: flex;
  align-items: center;
  gap: 12px;
}
.material-item-info strong {
  display: block;
  font-size: 14px;
  color: #243422;
}
.material-item-info small {
  font-size: 12px;
  color: #6b7964;
}
.material-item-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* Account AI Panel */
.account-ai-panel {
  background: #f4f6ee;
  border: 1px solid #d5dfcb;
  border-radius: 8px;
  padding: 24px 28px;
}
.account-ai-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.account-ai-inner h2 {
  font-size: 20px;
  margin: 4px 0 6px;
  color: #243422;
}
.account-ai-inner p {
  font-size: 14px;
  color: #57654f;
  margin: 0;
  max-width: 54ch;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .help-layout {
    grid-template-columns: 1fr;
  }
  .program-callout {
    flex-direction: column;
    align-items: flex-start;
  }
  .program-callout-action {
    align-items: flex-start;
    width: 100%;
  }
  .materials-ai-notice {
    flex-direction: column;
    align-items: flex-start;
  }
  .program-suggestion, .shop-invitation {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 760px) {
  .portal-header.site-header {
    height: auto;
    padding: 14px 20px;
  }
  .portal-header .header-inner {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .portal-nav.site-nav {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
    gap: 18px;
  }
  .portal-actions {
    width: 100%;
    justify-content: space-between;
  }
  .portal-content {
    padding: 24px 20px;
  }
  .materials-books-grid {
    grid-template-columns: 1fr;
  }
  .account-ai-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .program-guide-bar {
    flex-direction: column;
    align-items: flex-start;
  }
  .program-guide-actions {
    width: 100%;
    flex-direction: column;
  }
  .module-summary {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .module-summary-right {
    width: 100%;
    justify-content: space-between;
  }
  .module-material-item {
    flex-direction: column;
    align-items: flex-start;
  }
  .material-item-actions {
    width: 100%;
  }
  .material-item-actions .btn {
    flex: 1;
    text-align: center;
    justify-content: center;
  }
}

/* Print Styles for Kitchen Recipes, Shopping Lists & Weekly Planner */
@media print {
  .site-header, .site-footer, .portal-header, .bottom-nav, .sidebar,
  .quick-filters-strip, .library-toolbar, .recipe-search-bar,
  .recipe-meta-strip .portion-controls, .btn, .chip, .day-item-actions,
  .delete-day-item, .add-day-item-btn, .already-have-btn, .shopping-toolbar,
  .app-heading > div:last-child, .back-link, .welcome-guide-banner, .notice,
  #floating-help, .help-fab, .audio-player-controls, .transcript-box {
    display: none !important;
  }
  body, .portal-layout, .portal-main, .recipe-detail-panel, .week-plan-grid, .shopping-list-panel {
    background: #ffffff !important;
    color: #000000 !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .recipe-detail-panel h1, .app-heading h1 {
    font-size: 22pt !important;
    color: #000000 !important;
  }
  .recipe-content-grid {
    display: block !important;
  }
  .ingredients-box, .steps-box, .shopping-item, .day-card, .exercise-detail-panel, .exercise-step-card {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    margin-bottom: 14pt !important;
  }
  .week-plan-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12pt !important;
  }
  .shopping-item-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6pt !important;
  }
  .ingredient-list li, .shopping-item, .day-item {
    background: #ffffff !important;
    border-color: #cccccc !important;
  }
}

/* Dobra Menopauza — editorial edition 1.2. Local system typography; no font downloads. */
:root{--paper:#faf8f3;--cream:#f1ede4;--forest:#304b40;--forest-dark:#20392f;--ink:#28332d;--line:#dcded4;--blush:#eadfd1;--radius:5px;--shadow:none;--serif:'Iowan Old Style','Palatino Linotype','Book Antiqua',Palatino,Georgia,serif;--sans:'Avenir Next',Avenir,'Segoe UI',Arial,sans-serif}
html{scroll-padding-top:100px}body{letter-spacing:.005em}h1,h2,h3{font-weight:400;letter-spacing:-.035em}h1 em,h2 em{font-weight:400;color:#697956}.btn{border-radius:4px;box-shadow:none;font-weight:500;min-height:44px}.btn.primary:hover{transform:translateY(-1px)}.chip{border-radius:3px}.tag{border-radius:2px;letter-spacing:.07em}.panel,.product-card,.resource-card,.module-card{box-shadow:none;border-radius:5px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:600}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-nav a{font-size:13px}.header-inner{max-width:1440px}.brand{letter-spacing:-.035em}.hero{margin:22px 24px 0;min-height:560px;background:#eee8df;border-bottom:1px solid #b4bcae}.hero-copy{padding-top:70px;padding-bottom:65px}.hero h1{font-size:clamp(64px,6.7vw,105px);line-height:.97;letter-spacing:-.055em;max-width:650px}.hero-description{font-size:18px;line-height:1.65;max-width:430px;margin-top:30px}.hero-photo{border-radius:0}.hero-note .round-icon{background:transparent;border:1px solid #b8c0b2;border-radius:50%}.hero-note{font-size:12px}.benefits{border-bottom:1px solid var(--line);padding-top:32px;padding-bottom:32px}.benefits p{font-size:16px}.section-heading h2{font-size:34px}.products-section{padding-top:56px}.product-card{background:#f8f6f1}.product-cover{mix-blend-mode:multiply}.product-copy h3{font-size:24px;line-height:1.1}.about-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:64px;background:#eee9de}.about-copy h2{font-size:42px}.principles{background:var(--forest);color:#f4f1e8}.principles .eyebrow,.principles p,.principles span{color:#d3ded3}.principles article{background:transparent;border:none;border-left:1px solid #ffffff35;border-radius:0}.principles h2,.principles h3{color:inherit}.ai-band{border-bottom:1px solid var(--line)}.ai-band .round-icon{border-radius:50%;border:1px solid var(--line);background:transparent}.newsletter-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-block:76px;max-width:1130px}.newsletter-section h2{font-size:48px;line-height:1.07;margin-bottom:22px}.newsletter-section>div>p:not(.eyebrow){max-width:430px;color:var(--muted);line-height:1.8}.newsletter-form{align-self:center}.newsletter-form .btn{justify-self:start}.site-footer{background:#eaece3;border-top:1px solid #d3d6c8}.footer-top nav{gap:18px;flex-wrap:wrap}.footer-bottom{gap:16px;flex-wrap:wrap}.footer-bottom a{font-size:12px}.page-intro h1{font-size:64px;max-width:840px;line-height:1.04}.article-grid{gap:38px}.article-card{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding-bottom:20px;box-shadow:none}.article-card>img{aspect-ratio:16/10;object-fit:cover;border-radius:0}.article-card>div{padding:20px 0}.article-card h2{font-size:29px;line-height:1.1}.article-card:first-child{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.article-card:first-child>img{height:100%;min-height:260px}.article-editorial{padding-block:40px 80px;max-width:1230px}.article-masthead{max-width:980px;margin-bottom:48px}.article-masthead h1{font-size:58px;line-height:1.05;margin:24px 0}.article-masthead .lead{max-width:790px}.article-byline{display:flex;gap:25px;flex-wrap:wrap;border-block:1px solid var(--line);padding:15px 0;color:var(--muted);font-size:12px}.article-spread{display:grid;grid-template-columns:300px minmax(0,700px);gap:64px;justify-content:space-between}.article-aside>img{width:100%;height:auto}.article-aside nav{position:sticky;top:110px;margin-top:25px}.article-aside a{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}.article-aside a span{color:#6d775a}.article-copy h2{font-size:30px;line-height:1.2;margin:0 0 20px}.article-copy h2 small{display:block;font-size:12px;font-family:var(--sans);letter-spacing:.1em;color:#6d775a;margin-bottom:8px}.article-copy section{margin-bottom:42px;scroll-margin-top:110px}.article-copy p{font-size:18px;line-height:1.85}.source-ref{font-size:12px;color:#586a42;text-decoration:underline}.article-takeaway{padding:25px 30px;background:#e8ebdf;border-left:3px solid #7c8a61}.article-sources{border-top:1px solid var(--line);padding-top:24px}.article-sources li{font-size:14px;overflow-wrap:anywhere;margin-block:10px}.article-sources .caption{font-size:13px}.auth-layout .auth-photo{background:#eae9dc}.auth-photo>img{object-fit:cover;object-position:center;filter:none}.auth-photo>div{display:none}.auth-content h1{font-size:46px}.otp-details{font-size:13px;border-block:1px solid var(--line);padding:13px 0}.otp-details .field{margin-top:14px}.sidebar{background:#eeeee5;border-right:1px solid #d6dacf}.nav-item{border-radius:3px}.nav-item.active{background:#dce3d4;color:var(--forest-dark);border-left:3px solid #7d8c63}.portal-header{background:var(--paper)}.portal-content{max-width:1500px}.app-heading h1{font-size:43px;line-height:1.12}.welcome-card{background:#e8ecdf;border-radius:5px;border:1px solid #d8dfcd}.welcome-card>img{mix-blend-mode:multiply;object-fit:cover}.welcome-card h2{font-size:48px}.stat{border-radius:0;border:none;border-bottom:1px solid var(--line);background:transparent}.next-lesson{border-top:3px solid #778764}.quick-card,.resource-card{border:1px solid var(--line)}.course-summary{border-radius:4px;background:#e4e9db}.module-number{font-family:var(--serif);font-size:42px;color:#879570;letter-spacing:-.06em}.module-card{border-top:1px solid #8a9a74}.lesson-reading{padding:38px 42px}.lesson-reading h1{font-size:43px}.lesson-reading .prose p{font-size:17px;line-height:1.9}.exercise{border-radius:3px;background:#e9eddf}.letter-chat{grid-template-columns:230px minmax(0,1fr);gap:28px}.chat-guide{background:transparent;border:0;border-top:1px solid #b6c0a9;padding:22px 0}.chat-guide>.round-icon{display:none}.chat-guide h2{font-size:30px;line-height:1.13}.chat-guide p{font-size:14px}.chat-topics .suggestion{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 2px;font-size:13px;line-height:1.6;text-align:left}.chat-panel{border:1px solid #d7decb;border-radius:25px 25px 25px 5px;background:#f7f7f0;box-shadow:0 12px 45px #475b3710;min-height:660px;overflow:hidden;position:relative}.chat-header{background:#e6ebdc;padding:20px 24px;border:0}.chat-header .round-icon{background:#f5f6ee;border-radius:50%}.chat-header strong{font-family:var(--serif);font-size:20px;font-weight:400}.chat-header span{font-size:11px}.chat-header .btn{border:0;text-decoration:underline;background:transparent;padding:8px;min-width:88px}.chat-messages{background:#f7f7f0;padding:28px;height:410px}.chat-welcome{max-width:470px;margin:auto;text-align:left;align-items:flex-start;justify-content:center;padding:38px 25px}.chat-welcome .round-icon{display:none}.chat-welcome h2{font-size:40px;line-height:1.13}.chat-welcome p{line-height:1.7}.welcome-suggestions{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.welcome-suggestions .chip{background:transparent;border:0;border-bottom:1px solid #a9b794;text-align:left;padding:8px 0;white-space:normal}.chat-bubble{border:0;padding:19px 23px;max-width:89%;font-size:16px;line-height:1.8;box-shadow:none}.chat-bubble.assistant{background:#fff;border-radius:22px 22px 22px 4px}.chat-bubble.user{background:#405a49;color:#fff;border-radius:22px 22px 4px 22px}.chat-bubble>strong{font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;opacity:.8}.chat-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.chat-composer{padding:20px 24px;background:#f7f7f0;border-top:1px solid #e0e5d5}.composer-row{background:#fff;border:1px solid #b7c3a4;border-radius:18px 18px 18px 4px;padding:10px 12px;box-shadow:none}.composer-row textarea{background:transparent;border:0;outline:none;resize:vertical;max-height:180px;min-height:55px;font-size:16px;line-height:1.6}.send-button{border-radius:50%;width:44px;height:44px;flex-shrink:0}.chat-demo-note{font-size:11px}.composer-meta{font-size:10px}.chat-guide-note{border-top:1px solid var(--line);padding-top:20px}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.edition-number{font-family:var(--serif);font-size:34px;color:#82916e}.secret-key{font-family:monospace;letter-spacing:.06em;font-size:13px;overflow-wrap:anywhere}.recovery-codes{display:grid;gap:10px;grid-template-columns:1fr;overflow-wrap:anywhere}.account-security-shortcut{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px 32px;background:#e6ebdd;border:1px solid #d0d9c0;margin-bottom:28px}.account-security-shortcut h2{font-size:28px}.account-security-shortcut p{font-size:14px}.mail-overview{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;background:#e8ecdf}.mail-overview h2{font-size:28px;overflow-wrap:anywhere}.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.campaign-grid h3{font-size:28px}.campaign-grid details{font-size:14px}.mail-copy{white-space:pre-wrap;font:14px/1.9 var(--sans);overflow-wrap:anywhere;margin-top:15px;max-height:65vh;overflow:auto}.table-scroll table td{vertical-align:top}.exercise-steps{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:30px 0}.exercise-steps figure{margin:0;background:#f0ede3;border:1px solid var(--line)}.exercise-steps img{width:100%;height:auto;display:block}.exercise-steps figcaption{padding:17px;line-height:1.7;font-size:14px}.exercise-steps figcaption strong{display:block;font:24px var(--serif);margin-bottom:8px}.site-footer a:hover{text-decoration:underline}.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #879867;outline-offset:4px}.sr-only:focus{position:static;width:auto;height:auto}.portal-footer{line-height:1.6}
@media(min-width:1400px){.hero{max-width:1472px;margin-inline:auto}.hero-copy{padding-left:70px}}
@media(max-width:1100px){.letter-chat{grid-template-columns:1fr}.chat-guide{display:none}.hero{margin:16px 16px 0}.hero-copy{padding-left:30px}.hero-description{max-width:400px}.article-spread{grid-template-columns:240px minmax(0,1fr);gap:38px}.newsletter-section{gap:40px}.hero h1{font-size:82px}.header-inner{gap:14px}.article-card:first-child{grid-column:span 1;display:block}.article-card:first-child>img{min-height:0;height:auto}.article-grid{gap:26px}}
@media(max-width:760px){.hero{margin:10px 10px 0;min-height:690px}.hero-copy{padding:34px 22px 24px}.hero h1{font-size:68px;max-width:330px}.hero-description{font-size:16px;max-width:350px;margin-top:20px}.hero-note{margin-top:20px}.hero-buttons{gap:10px}.hero-photo{opacity:1}.hero-photo img{object-position:67% center}.benefits{padding-block:22px}.benefits p{font-size:14px}.section-heading h2{font-size:29px}.products-section{padding-top:35px}.about-copy h2{font-size:36px}.newsletter-section{grid-template-columns:1fr;gap:26px;margin-block:45px}.newsletter-section h2{font-size:40px}.newsletter-form .btn{width:100%}.article-masthead h1{font-size:40px}.article-editorial{padding-top:25px}.article-spread{display:flex;flex-direction:column;gap:30px}.article-aside{display:grid;grid-template-columns:1fr}.article-aside>img{max-height:260px;object-fit:cover}.article-aside nav{position:static;display:none}.article-copy p{font-size:17px}.article-masthead{margin-bottom:28px}.article-byline{gap:8px}.article-copy h2{font-size:28px}.article-takeaway{padding:22px}.page-intro h1{font-size:44px}.auth-content h1{font-size:38px}.app-heading h1{font-size:35px}.app-heading{gap:15px}.welcome-card h2{font-size:38px}.welcome-card>img{width:42%}.letter-chat{gap:0}.chat-panel{border-radius:18px 18px 18px 4px;min-height:600px}.chat-header{padding:15px 14px;gap:8px}.chat-header strong{font-size:17px}.chat-header .round-icon{display:none}.chat-header .btn{min-width:72px;font-size:11px}.chat-messages{padding:14px;height:370px}.chat-welcome{padding:35px 13px}.chat-welcome h2{font-size:33px}.chat-welcome p{font-size:15px}.chat-bubble{max-width:95%;padding:15px 17px;font-size:15px}.chat-composer{padding:14px}.chat-composer .caption{font-size:10px}.composer-meta{font-size:9px;gap:10px;flex-wrap:wrap}.chat-layout+.notice{font-size:12px}.security-grid,.campaign-grid,.mail-overview{grid-template-columns:1fr}.account-security-shortcut{align-items:flex-start;flex-direction:column;padding:24px}.account-security-shortcut h2{font-size:26px}.mail-overview h2{font-size:22px}.lesson-reading{padding:25px 22px}.lesson-reading h1{font-size:35px}.exercise-steps{grid-template-columns:1fr;gap:20px}.footer-top nav{gap:15px;font-size:13px}.principles article{border-left:0;border-top:1px solid #ffffff35}.article-card h2{font-size:27px}}
@media(max-width:380px){.hero h1{font-size:59px}.hero-copy{padding-inline:16px}.hero-description{font-size:15px}.btn{font-size:13px}.app-heading h1{font-size:30px}.welcome-card h2{font-size:32px}.chat-header strong{font-size:15px}.chat-header span{font-size:10px}.chat-welcome h2{font-size:29px}.page-intro h1{font-size:38px}.article-masthead h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn.primary:hover{transform:none}}
@media print{.site-header,.site-footer,.newsletter-section,.sidebar,.portal-header,.bottom-nav,.article-aside nav,.chat-composer{display:none!important}.article-spread{display:block}.article-aside>img{max-width:250px}.article-copy,.container{max-width:100%}.article-copy p{font-size:11pt;line-height:1.6}.source-ref{font-size:9pt}body{background:white}}

/* Override legacy light-card foregrounds on the dark editorial band. */
.principles article p,.principles article>span{color:#e1e7dd}.principles article h3{color:#fffdf7}
.chat-bubble.user p,.chat-bubble.user>strong{color:#fffdf7}
@media(max-width:760px){
 .portal-content:has(.letter-chat)>.app-heading{margin-bottom:18px}
 .portal-content:has(.letter-chat)>.app-heading h1{font-size:30px;line-height:1.03;margin-block:8px 10px}
 .portal-content:has(.letter-chat)>.app-heading p:not(.eyebrow){font-size:13px;line-height:1.6}
 .letter-chat .chat-panel{height:calc(100svh - 292px);min-height:460px;display:flex;flex-direction:column}
 .letter-chat .chat-header{padding:14px 16px;flex-shrink:0}
 .letter-chat .chat-header strong{font-size:19px}
 .letter-chat .chat-messages{height:auto;min-height:100px;flex:1;padding:16px;overflow:auto}
 .letter-chat .chat-welcome{min-height:0;padding:12px 10px;margin:0}
 .letter-chat .chat-welcome h2{font-size:27px;margin:0 0 12px}
 .letter-chat .chat-welcome p{font-size:14px;margin-bottom:12px}
 .letter-chat .chat-composer{padding:12px 14px;flex-shrink:0}
 .letter-chat .chat-composer .caption{font-size:10px;line-height:1.5;margin-bottom:0}
 .letter-chat .composer-row textarea{min-height:40px}
 .letter-chat .chat-demo-note{font-size:10px;padding:7px;margin-bottom:8px}
 .letter-chat .composer-meta{font-size:9px}
 .letter-chat .chat-status{padding:3px 15px;min-height:20px;font-size:10px}
 .letter-chat .welcome-suggestions{gap:4px}
 .letter-chat .welcome-suggestions .chip{font-size:12px}
 .letter-chat .chat-bubble{max-width:95%;padding:14px;font-size:14px}
}

/* Editorial images contain typography: preserve the full composition, never crop titles. */
.article-card>img,.article-card:first-child>img{height:auto;min-height:0;aspect-ratio:3/2;object-fit:contain}
@media(max-width:760px){.article-aside>img{max-height:none;object-fit:contain}}

/* 1.3: editorial commerce details. Raster assets, no SVG or external fonts. */
.conversation-art {
  background:#ece8de;
  min-height:490px;
  padding:42px 32px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:23px;
  color:var(--forest-dark);
  border-radius:3px 3px 60px 3px;
  overflow:hidden
}
.conversation-art-label {
  font-size:11px;
  letter-spacing:.15em;
  display:flex;
  justify-content:space-between
}
.conversation-art-label span {
  border:1px solid #899488;
  border-radius:3px;
  padding:3px 6px
}
.sample-bubble {
  align-self:flex-end;
  background:#fffdf9;
  border-radius:18px 18px 2px 18px;
  padding:22px;
  max-width:87%;
  font-family:var(--serif);
  font-size:25px;
  line-height:1.4
}
.sample-bubble.reply {
  align-self:flex-start;
  background:var(--forest);
  color:#fff;
  border-radius:18px 18px 18px 2px;
  font-family:var(--sans);
  font-size:18px
}
.sample-action {
  display:block;
  font-size:13px;
  margin-top:20px;
  padding-top:15px;
  border-top:1px solid #ffffff45
}
.sample-action .icon {
  filter:brightness(0) invert(1);
  vertical-align:middle
}
.conversation-art>p {
  font-family:var(--serif);
  font-style:italic;
  margin:8px 0 0;
  font-size:22px
}
.conversation-art.compact {
  padding:20px 14px;
  min-height:0;
  font-size:13px;
  gap:12px
}
.product-card .conversation-art.compact {
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:38%;
  max-width:38%;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#ede9df;
  border-left:1px solid var(--line);
  border-radius:0 8px 8px 0;
  box-sizing:border-box;
  overflow:hidden;
  z-index:1
}
.compact .conversation-art-label {
  font-size:10px;
  letter-spacing:.12em
}
.compact .conversation-art-label span {
  font-size:9px;
  padding:1px 4px
}
.compact .sample-bubble {
  font-size:12px;
  line-height:1.35;
  padding:9px 11px;
  border-radius:12px 12px 2px 12px;
  max-width:95%
}
.compact .sample-bubble.reply {
  font-size:11px;
  line-height:1.35;
  padding:9px 11px;
  border-radius:12px 12px 12px 2px
}
.compact .sample-action {
  display:none
}
.compact.conversation-art>p {
  font-size:12px;
  margin:2px 0 0;
  font-style:italic;
  color:var(--forest)
}
.product-card:has(.conversation-art),
.product-card--assistant {
  background:#fbfaf8;
  position:relative
}
.product-card:has(.conversation-art) .product-copy,
.product-card--assistant .product-copy {
  width:62%;
  position:relative;
  z-index:2
}
.offer-facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  border-block:1px solid var(--line);
  padding:23px 0;
  margin:26px 0
}
.offer-facts dt {
  font-size:12px;
  color:var(--muted)
}
.offer-facts dd {
  margin:8px 0 0;
  font-size:23px;
  font-weight:600
}
.trial-link {
  display:block;
  margin-top:20px
}
.service-explainer {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:50px;
  padding-block:50px 90px
}
.service-examples {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px
}
.service-examples article {
  border-top:1px solid var(--line);
  padding-top:18px
}
.service-examples article>span {
  font-family:var(--serif);
  font-size:28px;
  color:#828d7b
}
.service-examples h3 {
  font-size:25px;
  margin-top:24px
}
.service-examples p {
  line-height:1.7
}
.sample-callout {
  padding:25px;
  background:#f0eee7;
  border-left:3px solid var(--forest);
  margin:30px 0
}
.sample-callout p {
  margin:8px 0 18px
}
.checkout-breakdown {
  margin:25px 0
}
.checkout-breakdown>div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin:12px 0
}
.checkout-breakdown dd {
  margin:0;
  white-space:nowrap
}
.checkout-total {
  border-top:1px solid var(--line);
  padding-top:18px;
  font-weight:bold;
  font-size:22px
}
.guest-explanation {
  padding:18px;
  background:var(--cream);
  border-radius:3px
}
.guest-explanation p {
  margin:8px 0;
  font-size:14px
}
.guest-explanation .text-link {
  font-size:13px
}
.modal:has(#purchase-form) {
  max-width:660px
}
.field select {
  width:100%;
  padding:12px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  color:var(--ink);
  font:inherit
}
.help-launcher {
  position:fixed;
  bottom:22px;
  right:24px;
  z-index:40;
  background:var(--forest);
  color:white;
  border:0;
  border-radius:24px 24px 3px 24px;
  padding:14px 20px;
  display:flex;
  align-items:center;
  gap:10px;
  box-shadow:0 5px 15px #2234251a;
  font-size:14px
}
.help-launcher .icon {
  filter:brightness(0) invert(1)
}
.help-dialog {
  margin:auto 24px 24px auto;
  max-width:520px;
  width:calc(100% - 32px);
  padding:34px 32px 30px;
  border-radius:12px;
  border:1px solid var(--line);
  box-shadow:0 16px 50px #18271e28;
  background:var(--paper)
}
.help-dialog h2 {
  font-size:32px;
  line-height:1.15;
  margin:6px 0 10px;
  padding-right:28px
}
.help-intro {
  font-size:14px;
  color:var(--muted);
  line-height:1.6;
  margin-bottom:22px
}
.help-section-title {
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  color:#5c6a61;
  margin:0 0 8px
}
.help-options {
  margin-bottom:24px
}
.help-options details {
  border-top:1px solid var(--line);
  padding:13px 0
}
.help-options details:last-child {
  border-bottom:1px solid var(--line)
}
.help-options summary {
  cursor:pointer;
  font-weight:600;
  font-size:14.5px;
  line-height:1.45;
  color:var(--ink);
  transition:color .16s ease
}
.help-options summary:hover {
  color:var(--forest-dark)
}
.help-options p {
  font-size:13.5px;
  line-height:1.65;
  color:#3b473e;
  margin:10px 0 0
}
.help-ai {
  background:#f6f3eb;
  border:1px solid #e2ded4;
  border-radius:10px;
  padding:24px 22px;
  margin:24px 0;
  display:flex;
  flex-direction:column;
  gap:16px
}
.help-ai-header {
  display:flex;
  flex-direction:column;
  gap:8px
}
.help-ai-badge {
  display:inline-flex;
  align-items:center;
  gap:8px
}
.help-ai-badge .icon {
  width:18px;
  height:18px;
  opacity:.8
}
.help-ai h3 {
  font-size:23px;
  line-height:1.2;
  margin:0;
  font-family:var(--serif);
  color:var(--ink)
}
.help-ai-desc {
  font-size:14px;
  line-height:1.6;
  color:#3d4a40;
  margin:0
}
.help-ai-prompts {
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-top:6px;
  border-top:1px dashed #ded8cc
}
.help-ai-prompts-label {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#68746b;
  font-weight:600
}
.help-ai-prompt-list {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px
}
.help-ai-prompt {
  display:block;
  padding:8px 12px;
  background:#ffffffba;
  border:1px solid #dfd8cc;
  border-radius:4px;
  font-size:13px;
  line-height:1.45;
  color:#2e3e33;
  text-decoration:none;
  transition:background .16s ease, border-color .16s ease, color .16s ease
}
.help-ai-prompt:hover {
  background:#ffffff;
  border-color:#83956f;
  color:var(--forest-dark)
}
.help-ai-actions {
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  padding-top:2px
}
.help-ai-actions .btn {
  margin:0
}
.help-contact {
  padding:16px 18px;
  background:#f1eee7;
  border-radius:8px;
  border:1px solid #ded9cd;
  margin-bottom:18px
}
.help-contact strong {
  display:block;
  font-size:14px;
  margin-bottom:4px;
  color:var(--ink)
}
.help-contact p {
  font-size:13px;
  line-height:1.6;
  color:#4a564e;
  margin:0
}
.help-emergency {
  font-size:11.5px;
  line-height:1.5;
  color:#7a867e;
  margin:0
}
.ai-balance {
  margin-block:28px 16px;
  border-block:1px solid var(--line);
  padding:20px 0;
  display:flex;
  flex-direction:column;
  gap:4px
}
.ai-balance>strong {
  font-size:32px;
  font-family:var(--serif)
}
.ai-balance>span {
  font-size:13px
}
.ai-balance small {
  font-size:12px;
  color:var(--muted);
  margin-top:7px
}
.chat-page-heading h1 {
  font-size:48px
}
.chat-guide h2 {
  font-size:33px
}
.chat-proposal {
  background:#eceee7;
  border:1px solid #d1d8ce;
  padding:20px;
  border-radius:4px;
  margin-top:16px;
  color:var(--ink)
}
.chat-proposal .eyebrow {
  font-size:10px;
  margin:0 0 10px
}
.chat-proposal .field {
  margin:15px 0
}
.chat-proposal .caption {
  margin:12px 0 0
}
.chat-sources {
  display:flex;
  flex-direction:column;
  gap:7px;
  border-top:1px solid var(--line);
  margin-top:18px;
  padding-top:12px
}
.chat-sources small {
  color:var(--muted)
}
.chat-sources a {
  font-size:12px;
  line-height:1.5
}
.answer-text {
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.answer-text p {
  margin:0 0 12px;
  font-size:15px;
  line-height:1.75;
  white-space:normal
}
.answer-text p:last-child {
  margin-bottom:0
}
.answer-save {
  border:0;
  background:none;
  padding:12px 0 0;
  color:var(--muted);
  text-decoration:underline;
  font-size:11px
}
.purchases-toolbar {
  padding:25px;
  background:#eceee7;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:28px
}
.purchases-toolbar p {
  margin:8px 0 0;
  font-size:14px
}
.orders-list {
  display:grid;
  gap:20px
}
.customer-order h2 {
  font-size:29px;
  margin:22px 0 16px
}
.order-metadata {
  display:flex;
  gap:20px;
  align-items:center;
  flex-wrap:wrap;
  font-size:14px
}
.order-metadata>strong {
  font-size:22px
}
.order-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:20px
}
.order-id {
  overflow-wrap:anywhere
}
.request-line {
  border-top:1px solid var(--line);
  padding-top:13px;
  font-size:13px
}
.request-line small {
  display:block;
  margin-top:4px;
  color:var(--muted)
}
.reviews-section {
  padding-top:56px;
  border-top:1px solid var(--line)
}
.reviews-section .eyebrow {
  margin-bottom:12px
}
.reviews-section h2 {
  font-size:clamp(30px,3.2vw,38px);
  line-height:1.18;
  margin-bottom:20px
}
#verified-reviews {
  margin:20px 0
}
#verified-reviews > .muted {
  font-size:15.5px;
  line-height:1.75;
  color:#425045;
  margin:0 0 16px;
  max-width:64ch
}
.reviews-section .caption {
  font-size:13px;
  line-height:1.65;
  color:#6b776c;
  margin-top:18px;
  max-width:65ch
}
.review-item,.ops-request {
  border-top:1px solid var(--line);
  padding:22px 0
}
.review-item p {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.7
}
.ops-request dl>div {
  margin-bottom:15px
}
.ops-request dt {
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase
}
.ops-request dd {
  margin:5px 0;
  font-size:14px;
  overflow-wrap:anywhere
}
.ops-request .caption {
  overflow-wrap:anywhere
}
.service-detail .detail-copy h1 {
  font-size:68px;
  line-height:1.02
}
.catalogue-grid:has(.conversation-art) {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.modal [hidden],.help-launcher[hidden] {
  display:none!important
}
.field textarea {
  width:100%;
  font:inherit;
  line-height:1.6;
  border:1px solid var(--line);
  padding:12px;
  background:white;
  resize:vertical;
  border-radius:4px
}
.customer-order .btn {
  white-space:normal
}
.ops-request h3 {
  overflow-wrap:anywhere
}
#guest-order {
  padding:28px
}
#guest-order h2 {
  font-size:30px
}
#guest-order .row {
  flex-wrap:wrap
}
@media(max-width:850px) {
  .service-explainer {
    grid-template-columns:1fr;
    gap:24px
  }
  .service-examples {
    gap:20px
  }
  .chat-page-heading h1 {
    font-size:38px
  }
  .conversation-art {
    min-height:380px
  }
  .purchases-toolbar {
    align-items:flex-start;
    flex-direction:column
  }
  .chat-proposal {
    padding:16px
  }
  .conversation-art.compact {
    max-width:40%
  }
  .service-detail .detail-copy h1 {
    font-size:48px
  }
}
@media(max-width:540px) {
  .help-launcher {
    bottom:14px;
    right:14px;
    padding:12px 16px;
    font-size:12px
  }
  .help-dialog {
    margin:auto 0 0;
    max-width:100%;
    width:100%;
    max-height:92dvh;
    padding:26px 18px 32px;
    border-radius:16px 16px 0 0
  }
  .help-dialog h2 {
    font-size:26px
  }
  .help-ai {
    padding:20px 16px;
    margin:18px 0
  }
  .help-ai h3 {
    font-size:20px
  }
  .help-ai-actions {
    flex-direction:column;
    align-items:stretch;
    gap:10px
  }
  .help-ai-actions .btn {
    text-align:center;
    justify-content:center
  }
  .help-options summary {
    font-size:14px
  }
  .offer-facts {
    gap:10px
  }
  .offer-facts dd {
    font-size:20px
  }
  .offer-facts dt {
    font-size:11px
  }
  .conversation-art {
    padding:25px 22px;
    min-height:355px
  }
  .sample-bubble {
    font-size:21px
  }
  .sample-bubble.reply {
    font-size:16px
  }
  .service-examples {
    grid-template-columns:1fr
  }
  .service-examples h3 {
    margin-top:10px
  }
  .service-explainer {
    padding-bottom:30px
  }
  .order-actions {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .order-actions .btn {
    padding:11px 9px;
    font-size:12px
  }
  .customer-order h2 {
    font-size:25px
  }
  .chat-guide .ai-balance {
    margin:16px 0
  }
  .chat-page-heading {
    gap:12px
  }
  .ai-balance {
    padding:12px 0
  }
  .chat-panel {
    min-width:0
  }
  .chat-bubble {
    max-width:96%
  }
  .chat-header .btn {
    padding:8px;
    font-size:11px
  }
  #guest-order {
    padding:20px
  }
  .guest-explanation {
    padding:14px
  }
  .product-grid:has(.conversation-art),
  .product-grid:has(.product-card--assistant) {
    grid-template-columns:1fr
  }
  .product-card:has(.conversation-art) .product-copy,
  .product-card--assistant .product-copy {
    width:64%
  }
  .product-card .conversation-art.compact {
    width:36%;
    max-width:36%;
    padding:14px 10px;
    gap:8px
  }
  .compact .sample-bubble {
    font-size:11px;
    padding:7px 9px
  }
  .compact .sample-bubble.reply {
    font-size:10px;
    padding:7px 9px
  }
  .reviews-section {
    padding-top:40px
  }
  .reviews-section h2 {
    font-size:26px;
    margin-bottom:14px
  }
  #verified-reviews > .muted {
    font-size:14px;
    line-height:1.7
  }
  .reviews-section .caption {
    font-size:12px;
    margin-top:14px
  }
}
@media(prefers-reduced-motion:reduce) {
  .help-launcher,.modal {
    animation:none!important;
    transition:none!important
  }
}
.lesson-practice {
  margin:36px 0;
  padding:30px;
  border-top:2px solid var(--green,#344b3c);
  background:#f1f1e9
}
.lesson-practice h2 {
  font-size:27px;
  line-height:1.25
}
.lesson-practice ol {
  padding-left:22px
}
.lesson-practice li {
  padding-left:8px;
  margin:15px 0;
  line-height:1.7
}
.practice-example {
  border-left:2px solid #bba889;
  padding-left:16px
}
.practice-minimum {
  background:#fffefa;
  padding:17px
}
.lesson-practice details {
  border-top:1px solid #d5d5c9;
  border-bottom:1px solid #d5d5c9;
  margin:22px 0;
  padding:18px 0
}
.lesson-practice summary {
  cursor:pointer;
  font-weight:600
}
.lesson-practice details[open] summary {
  margin-bottom:16px
}
@media(max-width:540px) {
  .lesson-practice {
    padding:20px
  }
  .lesson-practice h2 {
    font-size:24px
  }
}
.account-grid>.panel {
  min-width:0
}
.account-grid .table-scroll {
  max-width:100%;
  overflow-x:auto
}
.mobile-ai-access {
  display:none
}
.chat-page-heading>.btn {
  flex-shrink:0;
  min-width:82px
}
@media(max-width:1100px) {
  .mobile-ai-access {
    display:block;
    margin:0 0 17px;
    padding:10px 13px;
    background:#e8ecdf;
    border-left:2px solid #82916e;
    font-size:12px;
    line-height:1.5
  }
  .chat-page-heading {
    margin-bottom:12px
  }
}
.discount-row {
  color: var(--forest);
  font-weight: 600;
}
.checkout-promo {
  background: var(--cream);
  border: 1px dashed var(--line);
  border-radius: 4px;
  padding: 12px 14px;
  margin: 10px 0 16px;
}
.checkout-promo label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--forest-dark);
}
.promo-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.promo-input-row input {
  flex: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  font-size: 14px;
}
.promo-success {
  display: block;
  color: var(--forest);
  font-weight: 600;
  margin-top: 6px;
  font-size: 12px;
}
.promo-hint {
  display: block;
  color: var(--muted);
  margin-top: 6px;
  font-size: 12px;
}

/* 1.4: quiet editorial commerce. Real HTML, raster artwork, no fabricated social proof. */
:root{--serif:'Iowan Old Style','Palatino Linotype','Book Antiqua',Palatino,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--forest:#29483c;--forest-dark:#19392d;--muted:#575d55;--container:1280px;--radius:9px}
.btn{border-radius:10px;min-height:48px;font-weight:550}.btn.small{min-height:44px}.site-header .btn{border-radius:14px}.site-nav{gap:25px}.site-header{background:#fcfaf6}.edition-note{font-size:13px;line-height:1.7;margin-top:16px;max-width:61ch;color:#5c6259}.release-note{display:none!important}.button-row{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.button-row .text-link{min-height:44px}.editorial-hero{background:#f1eee7;border-bottom:1px solid #d4d7cb}.editorial-hero-inner{width:100%;max-width:1440px;display:grid;grid-template-columns:48% 52%;min-height:620px}.editorial-hero-copy{padding:64px 36px 48px max(40px,calc((100vw - 1280px)/2));position:relative;z-index:1}.editorial-hero h1{font-size:clamp(66px,6.8vw,98px);line-height:.97;letter-spacing:-.064em;margin:23px 0 28px;color:#1e2c24}.editorial-hero h1 em{color:#345546;font-weight:400}.hero-deck{font:18px/1.75 var(--sans);max-width:52ch;margin:20px 0 26px;color:#4c554c}.editorial-hero .hero-deck{max-width:41ch}.hero-fine{font:12px/1.7 var(--sans);margin-top:15px;color:#52604f}.editorial-hero-photo{margin:0;position:relative;min-height:590px;overflow:hidden}.editorial-hero-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 44%;min-height:100%}.editorial-hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f1eee7 0%,transparent 15%,transparent 90%);pointer-events:none}.editorial-hero-photo figcaption{position:absolute;bottom:28px;right:30px;background:#f7f5efed;padding:16px 22px;border-radius:16px 2px 16px 2px;font:19px/1.2 var(--serif);z-index:1}.hero-editorial-sign{border-left:2px solid #8b9c86;padding-left:14px;margin-top:32px;font:16px/1.45 var(--serif);color:#4d5c4a}.facts-strip{display:grid;grid-template-columns:repeat(4,1fr);padding:25px 0;border-bottom:1px solid #daddd1;gap:20px}.facts-strip span{display:flex;align-items:center;gap:10px;font-size:13px;color:#425144}.facts-strip .icon{width:25px;height:25px}.editorial-intro{padding-top:76px}.editorial-intro>div{display:flex;justify-content:space-between;gap:48px;align-items:flex-end}.editorial-intro h2,.conversation-feature h2,.sample-band h2,.editorial-readings h2{font-size:42px;line-height:1.12}.editorial-intro p:last-child{max-width:49ch;line-height:1.75;font-size:16px}.home-paths{display:grid;grid-template-columns:repeat(3,1fr);margin-top:34px;margin-bottom:78px;border-top:1px solid #cbd1c3;border-bottom:1px solid #cbd1c3}.home-paths>a{display:flex;flex-direction:column;padding:32px 28px;gap:18px;min-width:0;transition:background .18s}.home-paths>a+a{border-left:1px solid #cbd1c3}.home-paths>a:hover{background:#eeefe5}.home-paths h3{font-size:28px}.home-paths p{font-size:15px;line-height:1.75}.step-index{display:block;color:#697b5e;font:13px/1.5 var(--sans);letter-spacing:.11em}.path-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;font-size:14px;color:#284538;font-weight:550;padding-top:10px}.sample-band{padding:62px 0;background:#ecece2}.sample-band-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}.sample-band figure{margin:0}.sample-band figure img{width:100%;border-radius:4px}.sample-band p:not(.eyebrow){margin:23px 0}.conversation-feature{display:grid;grid-template-columns:1fr 1fr;gap:78px;align-items:center;padding-top:88px;padding-bottom:88px}.conversation-preview{padding:32px;background:#e9ede5;border:1px solid #d3d9cc;border-radius:28px 8px 28px 8px}.demo-bubble{font-size:16px;line-height:1.75;padding:22px 24px;max-width:91%;margin-top:20px;color:#2a4033}.demo-bubble.user-bubble{background:#29483c;color:#fff;margin-left:auto;border-radius:18px 18px 4px 18px}.demo-bubble.assistant-bubble{background:#fcfaf5;border-radius:18px 18px 18px 4px}.preview-caption{font-size:11px;color:#5e6659;display:block;margin-top:20px}.conversation-feature>div>p:not(.eyebrow){margin:20px 0}.price-line strong{font-size:22px;font-weight:550;color:#263e30}.editorial-readings{padding-top:45px;padding-bottom:70px;border-top:1px solid #daddd1}.editorial-article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.editorial-article-grid>a{display:flex;flex-direction:column;gap:14px;min-width:0}.editorial-article-grid>a>img{width:100%;aspect-ratio:1.55;object-fit:cover;border-radius:5px}.editorial-article-grid .eyebrow{margin:8px 0 0}.editorial-article-grid h3{font-size:26px}.editorial-article-grid p:not(.eyebrow){font-size:14px;line-height:1.75}.editorial-article-grid .text-link{margin-top:auto}.offer-faq{display:grid;grid-template-columns:1fr 1.7fr;gap:80px;padding:64px 0;border-top:1px solid #d2d7c9}.offer-faq>div>h2{font-size:37px;margin-bottom:20px}.offer-faq details{border-bottom:1px solid #d4d8cf;padding:18px 0}.offer-faq summary{cursor:pointer;font-size:16px;font-weight:550;line-height:1.6;list-style-position:outside;margin-left:20px;padding-left:5px;min-height:32px}.offer-faq details p{font-size:15px;margin:12px 0 4px;line-height:1.8}.newsletter-section{border-top:1px solid #d1d6c7}.edition-footer{background:#e8eadd;padding-top:44px}.footer-columns{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:35px}.footer-columns>div p{font-size:14px;margin:19px 0}.footer-columns>div>a:not(.brand){font-size:13px;overflow-wrap:anywhere}.footer-columns nav{display:flex;flex-direction:column;gap:7px}.footer-columns h3{font:600 13px var(--sans);letter-spacing:0;margin-bottom:9px}.footer-link{font-size:13px;min-height:32px;line-height:1.6;display:inline-block}.footer-link:hover{text-decoration:underline;text-underline-offset:4px}.edition-footer .footer-bottom{padding:25px 0;margin-top:28px}.needs-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;padding-top:62px;padding-bottom:55px;align-items:center}.needs-intro h1,.campaign-hero h1,.rich-product-hero h1{font-size:clamp(45px,4.5vw,64px);line-height:1.08}.needs-intro figure,.campaign-hero figure{margin:0}.needs-intro figure img,.campaign-hero figure img{border-radius:7px;width:100%}.needs-intro figcaption,.campaign-hero figcaption{font:12px/1.7 var(--sans);text-align:center;margin-top:12px;color:#5c6757}.privacy-note{display:flex;gap:11px;align-items:flex-start;font-size:13px;line-height:1.7;padding:16px 0;max-width:61ch}.privacy-note .icon{width:22px;height:22px}.needs-workspace{background:#eff0e8;border:1px solid #d2d8c9;border-radius:12px;display:grid;grid-template-columns:300px minmax(0,1fr);padding:36px;gap:46px;scroll-margin-top:24px}.needs-side h2{font-size:32px;margin:12px 0 22px}.needs-side>p:last-child{font-size:13px;line-height:1.8}.needs-progress{padding-left:23px;line-height:2;font-size:14px;margin:20px 0 24px}.needs-progress li{padding:7px 0;color:#5b6356}.needs-progress li[aria-current=step]{font-weight:650;color:#20392b}.needs-progress li.finished{color:#506e46}#needs-app{background:#fffdf8;border-radius:8px;padding:30px;min-width:0}#needs-app fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}#needs-app legend,#needs-app h3{font:27px/1.3 var(--serif);margin-bottom:12px}#needs-app fieldset>p{font-size:14px}.needs-choices{display:grid;gap:12px;margin-top:23px}.needs-choice{display:flex;gap:14px;border:1px solid #c6cebd;border-radius:7px;padding:19px 16px;cursor:pointer;align-items:center}.needs-choice:has(input:checked){background:#edf1e8;border-color:#506b4c;box-shadow:0 0 0 1px #506b4c}.needs-choice input{width:20px;height:20px;flex:none;accent-color:#365940}.needs-choice strong{font-size:15px;display:block}.needs-choice small{font-size:13px;display:block;line-height:1.65;margin-top:5px;color:#5a6354}.map-prompt{background:#edf0e7;padding:15px;border-radius:6px;font-size:14px}.map-prompt summary{cursor:pointer}.map-prompt p{margin:12px 0}.map-result dl{margin:24px 0}.map-result dt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#68775d;margin-top:20px}.map-result dd{margin:7px 0 17px;font-size:17px;line-height:1.7;overflow-wrap:anywhere}.map-resource{border-top:1px solid #d5dccb;border-bottom:1px solid #d5dccb;margin:25px 0;padding:20px 0}.map-resource p{font-size:13px;margin:10px 0 15px}.map-resource a{margin:9px 0}#map-clear{min-height:44px}.map-example{padding:56px 7%;max-width:1120px}.map-example blockquote{font:27px/1.5 var(--serif);margin:0 0 17px;color:#2b4735}.map-example>p:last-child{font-size:12px}.delivery-optin{padding:36px;background:#e7eade;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-bottom:55px}.delivery-optin h2{font-size:32px;margin-bottom:18px}.delivery-optin p{font-size:14px;line-height:1.8}.next-step-band{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:32px 0 56px}.next-step-band h2{font-size:33px;margin-bottom:18px}.next-step-band p{max-width:72ch;font-size:15px;line-height:1.8}.next-step-band>.btn{flex-shrink:0}.campaign-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:75px;align-items:center;padding:60px 0}.plain-points{display:grid;list-style:none;gap:13px;margin:25px 0}.plain-points li{display:flex;gap:10px;font-size:15px;line-height:1.75}.plain-points .icon{width:19px;height:19px;margin-top:3px}.campaign-steps{padding:25px 0 55px}.campaign-steps>div{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.campaign-steps article{border-top:1px solid #c5cebe;padding-top:22px}.campaign-steps h3{margin:14px 0}.campaign-steps article p{font-size:15px;line-height:1.8}.campaign-letter{background:#e8ede2;padding:55px 0}.campaign-letter h2{font-size:38px;margin:20px 0 25px}.campaign-letter p{margin:17px 0;font-size:16px;line-height:1.85}.compact-offer{display:grid;grid-template-columns:1fr 1fr;gap:95px;padding:65px 0;align-items:center}.compact-offer h2{font-size:35px}.compact-offer p{margin:20px 0;line-height:1.8}.campaign-final{padding:30px;border:1px solid #b8c6ae;border-radius:12px 4px 12px 4px;background:#ecefe5}.campaign-final h3{font-size:30px;margin-bottom:23px}.campaign-final p{font-size:12px;margin-bottom:0}.compare-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding-bottom:52px}.compare-cards article{border:1px solid #c7d0bf;border-radius:8px;padding:25px;display:flex;flex-direction:column;gap:14px}.compare-cards h2{font-size:29px}.compare-cards h3{font:600 13px var(--sans);margin-top:8px}.compare-cards p:not(.compare-price){font-size:14px;line-height:1.85}.compare-cards .compare-price{font-size:32px;color:#253e2e;display:flex;align-items:baseline;gap:10px;margin:12px 0}.compare-price small{font-size:12px}.compare-cards .btn{margin-top:auto;padding:12px}.offer-disclosures{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-bottom:50px}.offer-disclosures article{border-top:2px solid #889776;padding-top:23px}.offer-disclosures h3{font-size:25px;margin-bottom:14px}.offer-disclosures p{font-size:14px;line-height:1.85}.offer-disclosures a{margin-top:18px}.rich-product-hero{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:55px 0 65px;align-items:start}.rich-product-art{position:sticky;top:22px}.rich-product-art img{width:100%;border-radius:5px}.rich-product-art p{font-size:12px;line-height:1.7;margin-top:12px;text-align:center}.rich-product-hero .hero-deck{font-size:16px}.rich-product-hero .back-link{margin-bottom:23px}.offer-price{display:flex;align-items:baseline;gap:15px;margin:27px 0 16px;flex-wrap:wrap}.offer-price strong{font-size:37px;font-weight:500;letter-spacing:-.05em}.offer-price span{font-size:13px;color:#52614b}.offer-secondary{display:flex;justify-content:space-between;gap:15px;margin:19px 0}.offer-secondary a{min-height:40px}.upgrade-note{background:#e9edde;padding:16px;font-size:13px;margin-top:18px;border-radius:5px}.offer-deliverables{padding:30px 0 60px;border-top:1px solid #d4d9cd}.offer-deliverables h2{font-size:40px}.deliverable-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.deliverable-grid article{background:#eeeee4;padding:26px;border-radius:5px}.deliverable-grid h3{font-size:26px;margin:20px 0 16px}.deliverable-grid p{font-size:14px;line-height:1.85}.deliverable-spec{border-top:1px solid #cbd3bd;display:block;padding-top:17px;margin-top:22px;font-size:12px;color:#4f6545}.inside-lesson{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;padding:45px 0 65px;align-items:center}.inside-lesson h2{font-size:37px}.inside-lesson>div>p:not(.eyebrow){margin:20px 0;font-size:15px;line-height:1.8}.inside-lesson article{border:1px solid #c7d0be;border-radius:6px;padding:34px;background:#f3f2e9}.inside-lesson article h3{font-size:31px;margin:18px 0}.inside-lesson article p:not(.eyebrow){font-size:15px;line-height:1.85;margin:12px 0}.inside-lesson article small{font-size:12px;display:block;margin-top:20px;color:#666e5f}.implementation-preview{padding:35px 0 65px}.implementation-preview h2{font-size:38px;margin-bottom:30px}.implementation-preview>div{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.implementation-preview article{border-top:1px solid #c4cdbb;padding:20px 0}.implementation-preview article span{font-size:12px;color:#576e49}.implementation-preview article h3{font-size:24px;margin:13px 0}.implementation-preview article p{font-size:14px;line-height:1.85}.implementation-preview>p:last-child{margin-top:15px;font-size:14px}.course-syllabus{padding:30px 0 60px}.course-syllabus>h2{font-size:38px;margin-bottom:26px}.course-syllabus details{border-top:1px solid #c6cfbd;padding:22px 0}.course-syllabus summary{font-size:19px;cursor:pointer}.course-syllabus summary span{font-size:13px;color:#567444;margin-right:20px}.course-syllabus ul{padding:25px 30px 6px;display:grid;gap:17px}.course-syllabus li{font-size:15px;line-height:1.8}.course-syllabus>p{margin-top:20px}.catalogue-compare{margin-bottom:25px;font-size:15px;text-decoration:underline;text-underline-offset:4px}.prose p{font-size:16px;line-height:1.85}.prose{max-width:830px}.caption a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:1600px){.editorial-hero-copy{padding-left:80px}}@media(max-width:1100px){.site-nav{gap:15px}.editorial-hero-copy{padding-left:35px;padding-top:50px}.editorial-hero-inner{min-height:550px}.editorial-hero-photo{min-height:550px}.sample-band-inner,.conversation-feature{gap:40px}.offer-faq{gap:38px}.compare-cards{grid-template-columns:repeat(2,1fr)}.needs-workspace{grid-template-columns:245px minmax(0,1fr);gap:28px;padding:26px}.needs-intro,.campaign-hero,.rich-product-hero{gap:35px}.delivery-optin{gap:35px}.footer-columns{grid-template-columns:1.2fr 1fr 1fr;gap:25px}.footer-columns nav:last-child{grid-column:2 / 4;flex-direction:row;flex-wrap:wrap;column-gap:20px}.footer-columns nav:last-child h3{flex-basis:100%}.facts-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.editorial-hero-inner{display:flex;flex-direction:column;min-height:auto;width:100%}.editorial-hero-copy{padding:36px 24px 32px}.editorial-hero h1{font-size:68px;letter-spacing:-.055em;margin:19px 0 25px}.hero-deck{font-size:16px;line-height:1.8}.editorial-hero-photo{min-height:310px}.editorial-hero-photo>img{object-position:50% 34%}.editorial-hero-photo:after{background:linear-gradient(180deg,#f1eee7,transparent 12%)}.editorial-hero-photo figcaption{font-size:17px;right:18px;bottom:18px;padding:14px 17px}.hero-editorial-sign{display:none}.hero-fine{font-size:11px}.facts-strip{padding:22px 0;gap:18px 12px}.facts-strip span{font-size:11px;line-height:1.55;gap:8px}.facts-strip .icon{width:22px;height:22px}.editorial-intro{padding-top:46px}.editorial-intro>div{display:block}.editorial-intro h2,.sample-band h2,.conversation-feature h2,.editorial-readings h2{font-size:33px}.editorial-intro p:last-child{margin-top:18px;font-size:15px}.home-paths{grid-template-columns:1fr;margin-top:28px;margin-bottom:45px}.home-paths>a{padding:26px 9px}.home-paths>a+a{border-left:0;border-top:1px solid #cbd1c3}.home-paths h3{font-size:28px}.home-paths h3 br{display:none}.sample-band{padding:32px 0 40px}.sample-band-inner,.conversation-feature{grid-template-columns:1fr;gap:28px}.sample-band figure{max-width:540px;width:100%;margin:auto}.sample-band p:not(.eyebrow){font-size:15px}.conversation-feature{padding-top:45px;padding-bottom:45px}.conversation-preview{padding:23px 18px}.demo-bubble{font-size:15px;padding:18px;max-width:93%}.editorial-readings{padding:35px 0}.editorial-article-grid{grid-template-columns:1fr;gap:32px}.editorial-article-grid>a>img{aspect-ratio:1.8}.editorial-readings .section-heading{align-items:flex-start;flex-direction:column}.offer-faq{grid-template-columns:1fr;gap:20px;padding:42px 0}.offer-faq>div>h2{font-size:32px}.offer-faq summary{font-size:15px}.offer-faq details p{font-size:14px}.newsletter-section{padding-top:40px}.footer-columns{grid-template-columns:1fr 1fr;gap:32px 20px}.footer-columns>div{grid-column:1 / -1}.footer-columns nav:last-child{grid-column:1 / -1}.footer-columns h3{font-size:12px}.footer-link{font-size:12px;min-height:38px}.edition-footer .footer-bottom{display:grid;gap:10px;line-height:1.7}.needs-intro,.campaign-hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:35px;gap:30px}.needs-intro h1,.campaign-hero h1,.rich-product-hero h1{font-size:43px}.needs-intro .button-row>.btn,.campaign-hero .btn{width:100%}.needs-intro figure{max-width:430px;width:100%;margin:auto}.needs-workspace{display:block;padding:22px 16px;border-radius:8px}.needs-side h2 br{display:none}.needs-side>p:last-child{margin-bottom:21px}.needs-progress{font-size:13px}.needs-side h2{font-size:27px}#needs-app{padding:21px 15px}#needs-app legend,#needs-app h3{font-size:25px}.needs-choice{padding:15px 12px;gap:10px}.needs-choice strong{font-size:14px}.needs-choice small{font-size:12px}.needs-choice input{width:18px;height:18px}.needs-workspace .btn{padding:12px 15px;width:100%}.map-example{padding:36px 0}.map-example blockquote{font-size:23px}.delivery-optin{grid-template-columns:1fr;padding:25px 20px;gap:20px}.next-step-band{display:block;padding-bottom:35px}.next-step-band>.btn{margin-top:24px;width:100%}.campaign-steps>div{grid-template-columns:1fr;gap:23px}.campaign-steps h3{font-size:26px}.campaign-letter{padding:35px 0}.campaign-letter h2{font-size:32px}.compact-offer{grid-template-columns:1fr;gap:30px;padding:40px 0}.compare-cards{grid-template-columns:1fr;gap:18px}.compare-cards article{padding:26px}.compare-cards h2{font-size:31px}.offer-disclosures{grid-template-columns:1fr;gap:30px}.rich-product-hero{grid-template-columns:1fr;gap:28px;padding:30px 0 40px}.rich-product-art{position:static;max-width:500px;margin:auto;width:100%}.rich-product-hero .offer-secondary{flex-direction:column;gap:5px}.offer-price strong{font-size:35px}.offer-deliverables h2{font-size:33px}.deliverable-grid{grid-template-columns:1fr}.deliverable-grid article{padding:25px}.inside-lesson{grid-template-columns:1fr;gap:28px;padding:25px 0 40px}.inside-lesson h2{font-size:32px}.inside-lesson article{padding:25px}.implementation-preview>div{grid-template-columns:1fr}.implementation-preview h2,.course-syllabus>h2{font-size:32px}.course-syllabus summary{font-size:17px}.course-syllabus ul{padding-left:20px}.prose p{font-size:16px}.button-row{gap:11px}.page-intro h1{font-size:43px}.rich-product-hero .plain-points li{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.site-header,.site-footer,.delivery-optin,.offer-faq,.help-fab,#floating-help,.release-note{display:none!important}.needs-side,.needs-intro,.map-example,.next-step-band{display:none}.needs-workspace{display:block;border:0;background:white;width:100%;padding:0}#needs-app{padding:0}.map-result button,.map-result .map-resource{display:none}}

/* Homepage 1.6 — quiet paper, linen and forest; raster product artwork.
   Intentionally scoped: checkout, account, content and AI screens are unchanged. */
.home-page {
  --home-linen: #f1eee7;
  --home-paper: #f3efea;
  --home-sage: #edf0e9;
  --home-soft: #edf0e9;
  --home-primary: #304b40;
  background: #faf8f3;
}
.home-page .editorial-hero { background: #f1eee7; border-bottom-color: #dcded4; }
.home-page .editorial-hero-photo:after {
  background: linear-gradient(90deg, #f1eee7 0%, transparent 15%, transparent 90%);
}
.home-page .editorial-hero-photo figcaption { background: #f8f6ef; color: #304b40; }
.home-page .editorial-hero-copy > .eyebrow { color: #536257; }
.home-page .hero-editorial-sign { border-left-color: #a5afa0; color: #596458; }
.home-page .hero-deck { color: #48524b; }
.home-page .release-note { display: none !important; }
.home-page .facts-strip { border-bottom-color: #dcded4; }
.home-page .facts-strip span { font-size: 13px; }
.home-page .facts-strip .icon {
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.home-collection { padding-top: 62px; padding-bottom: 56px; scroll-margin-top: 28px; }
.home-collection:focus { outline: none; }
.home-collection-heading {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 70px;
  align-items: end;
  margin-bottom: 32px;
}
.home-collection-heading h2 { font-size: clamp(34px, 3.4vw, 46px); line-height: 1.12; }
.home-collection-heading h2 em { color: #58694c; }
.home-collection-heading > div:last-child > p {
  max-width: 49ch;
  margin-bottom: 16px;
  font-size: 15px;
  line-height: 1.8;
}
.home-collection-heading .text-link { min-height: 44px; display: inline-flex; }
.home-products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.home-product {
  --product-tint: var(--home-linen);
  --product-border: #dcded4;
  --product-accent: #536257;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--product-border);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .18s, border-color .18s;
}
.home-product--paper {
  --product-tint: var(--home-paper);
  --product-border: #dcded4;
  --product-accent: #536257;
}
.home-product--sage {
  --product-tint: var(--home-sage);
  --product-border: #dcded4;
  --product-accent: #536257;
}
.home-product-art:focus-visible { outline-offset: -4px; }
.home-product:hover { box-shadow: 0 9px 24px #293c3010; }
.home-product-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 300px;
  padding: 38px 22px;
  background: var(--product-tint);
  overflow: hidden;
}
.home-product-art > img {
  height: 225px;
  width: auto;
  max-width: 86%;
  object-fit: contain;
  filter: drop-shadow(6px 9px 7px #293c301c);
  transform: none;
  transition: transform .25s ease;
}
.home-product--paper .home-product-art > img { transform: none; }
.home-product--sage .home-product-art > img { transform: none; }
.home-product-art:hover > img { transform: none; }
.home-product-label {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 1;
  color: var(--product-accent);
  background: #fffffff0;
  border: 1px solid var(--product-border);
  border-radius: 5px;
  padding: 6px 9px;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .035em;
  font-weight: 600;
}
.home-product-art-caption {
  position: absolute;
  bottom: 13px;
  inset-inline: 10px;
  color: var(--product-accent);
  text-align: center;
  font-size: 11px;
  line-height: 1.4;
}
.home-product-body { display: flex; flex-direction: column; flex: 1; padding: 27px 26px 22px; }
.home-product-subtitle {
  color: var(--product-accent);
  font-size: 12px;
  line-height: 1.5;
  margin-bottom: 10px;
}
.home-product-body h3 { font-size: clamp(29px, 2.5vw, 35px); margin-bottom: 15px; }
.home-product-body h3 a { display: inline-block; min-height: 44px; }
.home-product-body h3 a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.home-product-description { font-size: 14px; line-height: 1.8; min-height: 76px; }
.home-product-points { display: grid; gap: 10px; margin: 21px 0 23px; list-style: none; }
.home-product-points li { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; line-height: 1.65; }
.home-product-points .icon { width: 17px; height: 17px; margin-top: 2px; }
.home-product-bottom { margin-top: auto; border-top: 1px solid #eee8e1; padding-top: 20px; }
.home-product-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0 0 15px; color: #283a30; }
.home-product-price strong { font-size: 29px; line-height: 1.25; letter-spacing: -.05em; font-weight: 600; }
.home-product-price > span { color: #626459; font-size: 12px; }
.home-product-button { width: 100%; justify-content: space-between; padding: 14px 16px; border-radius: 5px; background: #29483c; color: #fff; font-size: 13px; min-height: 50px; }
.home-product-button .icon { width: 20px; height: 20px; filter: brightness(0) invert(1); }
.home-product-button:hover { background: #19392d; }
.home-product-button--paper { background: var(--home-primary); }
.home-product-button--paper:hover { background: #20392f; }
.home-product--linen .home-product-button { background: #faf8f3; border-color: #8b978c; color: #304b40; }
.home-product--linen .home-product-button:hover { background: #edf0e9; }
.home-product--linen .home-product-button .icon { filter: none; }
.home-product-fine { margin-top: 11px; font-size: 11px; line-height: 1.7; color: #5d655d; }

.home-ai-product {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
  background: #edf0e9;
  border: 1px solid #dcded4;
  border-radius: 8px;
  padding: 44px 44px;
}
.home-ai-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.home-ai-copy .eyebrow {
  color: #536257;
  margin-bottom: 8px;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.home-ai-copy h3 {
  font-size: 30px;
  line-height: 1.2;
  margin-bottom: 12px;
  color: #20392f;
}
.home-ai-copy h3 em {
  font-style: italic;
  color: #58694c;
}
.home-ai-copy > p:not(.eyebrow) {
  font-size: 14.5px;
  max-width: 48ch;
  line-height: 1.75;
  color: #38463d;
  margin: 0;
}
.home-ai-points {
  display: grid;
  gap: 12px;
  margin: 2px 0 6px;
  padding: 0;
  list-style: none;
}
.home-ai-points li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.65;
  color: #38463d;
}
.home-ai-points .icon {
  width: 17px;
  height: 17px;
  margin-top: 3px;
  flex-shrink: 0;
}
.home-ai-points strong {
  color: #1e3627;
}
.home-ai-points .old-price {
  text-decoration: line-through;
  color: #72796e;
  margin-right: 3px;
}
.home-ai-buttons {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.home-ai-button {
  padding: 13px 22px;
  border-radius: 5px;
  color: #ffffff;
  background: #29483c;
  font-size: 13.5px;
  font-weight: 550;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  min-height: 48px;
  transition: background .18s ease;
}
.home-ai-button:hover {
  background: #19392d;
  color: #ffffff;
}
.home-ai-button .icon {
  width: 18px;
  height: 18px;
}
.home-ai-sublink {
  font-size: 13px;
  color: #3f5043;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.home-ai-sublink:hover {
  color: #1e3627;
}
.home-ai-dialog-card {
  background: #ffffff;
  border: 1px solid #d8dbd0;
  border-radius: 8px;
  padding: 26px 26px;
  display: flex;
  flex-direction: column;
  gap: 13px;
  box-shadow: 0 6px 20px rgba(40, 60, 45, 0.04);
}
.home-ai-dialog-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #536257;
  margin-bottom: 2px;
}
.home-ai-dialog-heading .icon {
  width: 16px;
  height: 16px;
}
.home-ai-dialog-bubble {
  padding: 12px 16px;
  font-size: 13.5px;
  line-height: 1.55;
}
.home-ai-dialog-bubble p {
  margin: 0;
}
.home-ai-bubble--user {
  background: #f6f8f4;
  border: 1px solid #e1e6dc;
  border-radius: 12px 12px 2px 12px;
  color: #24352b;
  margin-left: 18px;
}
.home-ai-bubble--assistant {
  background: #edf2ea;
  border: 1px solid #d7ded2;
  border-radius: 12px 12px 12px 2px;
  color: #1a2f24;
  margin-right: 18px;
}
.home-ai-bubble--action {
  background: #fbf8f2;
  border: 1px solid #e5dfd3;
  border-radius: 6px;
  color: #4b443b;
  font-size: 13px;
  padding: 10px 14px;
}
.bubble-speaker {
  display: block;
  font-weight: 600;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 3px;
  color: #536257;
}
.home-ai-dialog-disclaimer {
  font-size: 11px;
  line-height: 1.5;
  color: #727a70;
  margin-top: 4px;
  text-align: center;
}
.home-collection-footnote { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; }
.home-collection-footnote > p { display: flex; align-items: center; gap: 9px; font-size: 12px; line-height: 1.6; }
.home-collection-footnote .icon { width: 19px; height: 19px; }
.home-collection-footnote .text-link { min-height: 44px; }

.home-page .sample-band { background: #f1ede4; }
.home-page .sample-band h2 em { color: #58694c; }
.home-page .sample-band figure img { border: 1px solid #dcded4; }
.home-page .editorial-readings { padding-top: 65px; border-top: 0; }
.home-page .editorial-article-grid > a { border-bottom: 2px solid #dcded4; padding-bottom: 20px; }
.home-page .editorial-article-grid > a:nth-child(2) { border-bottom-color: #dcded4; }
.home-page .editorial-article-grid > a:nth-child(3) { border-bottom-color: #dcded4; }
.home-page .offer-faq { border-top-color: #dcded4; }
.home-page .newsletter-section {
  background: #f1ede4;
  padding: 36px;
  border: 1px solid #dcded4;
  border-radius: 16px 4px 16px 4px;
  margin-top: 20px;
  margin-bottom: 60px;
}
.home-page + .edition-footer { background: #eaece3; border-top: 1px solid #dcded4; }
@media (min-width: 1600px) {
  .home-product-art { height: 310px; }
  .home-product-art > img { height: 235px; }
}
@media (max-width: 1100px) and (min-width: 761px) {
  .home-products-grid { gap: 14px; }
  .home-product-art { height: 245px; padding-inline: 12px; }
  .home-product-art > img { height: 182px; }
  .home-product-body { padding: 23px 17px 19px; }
  .home-product-body h3 { font-size: 28px; }
  .home-product-description { min-height: 100px; }
  .home-product-button { padding-inline: 11px; }
  .home-ai-product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; padding: 26px 24px; }
  .home-collection-heading { gap: 40px; }
}
@media (max-width: 760px) {
  .home-page .editorial-hero-photo:after { background: linear-gradient(180deg, #f1eee7, transparent 12%); }
  .home-page .facts-strip span { font-size: 11px; align-items: flex-start; }
  .home-page .facts-strip .icon { padding: 0; width: 22px; height: 22px; }
  .home-page .editorial-hero-copy .button-row { gap: 11px; }
  .home-collection { padding-top: 43px; padding-bottom: 35px; }
  .home-collection-heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 24px; }
  .home-collection-heading h2 { font-size: 36px; }
  .home-collection-heading > div:last-child > p { margin-bottom: 8px; }
  .home-products-grid { grid-template-columns: 1fr; gap: 22px; }
  .home-product-art { height: 246px; }
  .home-product-art > img { height: 184px; }
  .home-product-body { padding: 23px 23px 20px; }
  .home-product-body h3 { font-size: 33px; margin-bottom: 13px; }
  .home-product-description { min-height: 0; }
  .home-product-points { margin: 18px 0 21px; }
  .home-product-button { font-size: 14px; }
  .home-ai-product { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px; }
  .home-ai-copy h3 { font-size: 26px; }
  .home-ai-buttons { flex-direction: column; align-items: stretch; }
  .home-ai-button { justify-content: center; text-align: center; width: 100%; }
  .home-collection-footnote { flex-direction: column; align-items: flex-start; gap: 8px; }
  .home-collection-footnote > p { align-items: flex-start; font-size: 11px; }
  .home-page .newsletter-section { padding: 27px 22px; margin-bottom: 40px; }
  .home-page .editorial-readings { padding-top: 40px; }
}
@media (max-width: 380px) {
  .home-page .editorial-hero-copy .button-row > .btn { width: 100%; }
  .home-collection-heading h2 { font-size: 32px; }
  .home-product-body { padding: 22px 18px 19px; }
  .home-product-body h3 { font-size: 30px; }
  .home-product-art { height: 225px; }
  .home-product-art > img { height: 166px; }
  .home-product-label { font-size: 10px; top: 12px; left: 12px; }
  .home-product-subtitle { font-size: 11px; }
  .home-product-description { font-size: 13px; }
  .home-product-points { gap: 10px; }
  .home-product-points li { font-size: 12px; }
  .home-product-button { padding-inline: 12px; font-size: 13px; }
  .home-product-fine { font-size: 10px; }
  .home-ai-product { padding: 23px 19px; }
  .home-page .newsletter-section { padding: 24px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-product, .home-product-art > img { transition: none; }
}
@media print {
  .home-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-product, .home-ai-product { break-inside: avoid; }
  .home-product-art > img { mix-blend-mode: normal; }
  .home-product-art { height: 160px; }
  .home-product-art > img { height: 135px; }
}

/* The free-help launcher stays available without covering a mobile product title. */
@media (max-width: 760px) {
  .help-launcher--home { width: 48px; height: 48px; padding: 12px; justify-content: center; border-radius: 17px 17px 5px 17px; }
  .help-launcher--home > span { display: none; }
  .help-launcher--home .icon { width: 24px; height: 24px; }
}

/* 1.6 — one quiet visual system, clear interaction states, no motion framework. */
.home-page { background: var(--paper); }
.home-page .editorial-hero { background: #f1eee7; }
.home-page .editorial-hero-inner {
  width: calc(100% - 96px);
  max-width: 1392px;
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.12fr);
  gap: 38px;
  align-items: center;
  min-height: 0;
  padding-block: 38px;
}
.home-page .editorial-hero-copy { padding: 16px 0; min-width: 0; }
.home-page .editorial-hero h1 { font-size: clamp(62px, 6.2vw, 92px); margin-block: 20px 25px; }
.home-page .hero-deck { max-width: 47ch; }
.home-page .hero-editorial-sign { margin-top: 24px; }
.home-page .editorial-hero-photo {
  position: relative;
  width: 100%;
  margin: 0;
  min-height: 0;
  height: auto;
  aspect-ratio: 4 / 3;
  align-self: center;
  overflow: hidden;
  border-radius: 3px;
}
.home-page .editorial-hero-photo > img {
  position: static;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  image-rendering: auto;
}
.home-page .editorial-hero-photo::after { display: none; }
.home-page .editorial-hero-photo figcaption {
  position: absolute;
  right: 16px;
  bottom: 16px;
  padding: 12px 17px;
  background: #faf8f3ed;
  color: var(--forest-dark);
  font-size: clamp(16px, 1.3vw, 20px);
  box-shadow: none;
  border-radius: 2px;
}
.home-page .facts-strip .icon { background: transparent; padding: 0; border-radius: 0; }
.home-page .editorial-article-grid > a { border-bottom: 1px solid var(--line); }
.home-page .editorial-article-grid > a:nth-child(2),
.home-page .editorial-article-grid > a:nth-child(3) { border-bottom-color: var(--line); }
.home-page .newsletter-section { background: var(--cream); border-color: var(--line); border-radius: 5px; }
.home-product { border-color: var(--line); border-radius: 6px; }
.home-product-art > img { height: 240px; transform: none; }
.home-product--paper .home-product-art > img,
.home-product--sage .home-product-art > img { transform: none; }
.home-product-art { height: 310px; }
.home-ai-product { background: var(--sage-wash); border-color: var(--line); }
.home-ai-symbol { background: #e0e6db; }

/* Lead with the cover. Real inside samples remain an explicit, separate choice. */
.rich-product-art { margin: 0; min-width: 0; }
.product-cover-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 510px;
  padding: 60px 34px 34px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f1eee7;
}
.product-cover-stage > .detail-cover {
  width: min(100%, 390px);
  height: auto;
  max-height: 540px;
  object-fit: contain;
  border-radius: 0;
  filter: drop-shadow(5px 10px 10px #28332d18);
  transform: none;
}
.cover-edition-label {
  position: absolute;
  top: 22px;
  left: 25px;
  right: 25px;
  font: 500 11px/1.7 var(--sans);
  color: #536257;
  letter-spacing: .05em;
}
.rich-product-art > p { max-width: 50ch; margin: 14px auto 0; }
.catalogue .product-cover { object-fit: contain; transform: none; mix-blend-mode: normal; }

/* Quiet pointer interaction; no double frame around inputs or their wrappers. */
:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
input:focus, textarea:focus, select:focus,
.composer-row:focus-within, .search-field:focus-within {
  outline: none;
  box-shadow: none;
}
input:focus, textarea:focus { border-color: #d5d9d1; }
.search-field:focus-within { border-color: #d5d9d1; }
html[data-input-modality="pointer"] :is(a, button, input, textarea, select, summary, [tabindex]):focus {
  outline: none !important;
  box-shadow: none !important;
}
/* Editing a field shows the caret only for pointer users. Textareas keep their layout. */
html[data-input-modality="pointer"] .composer-row:focus-within,
html[data-input-modality="pointer"] .search-field:focus-within { outline: none; box-shadow: none; }
/* Keyboard navigation stays discoverable; no extra border is added to text fields. */
html:not([data-input-modality="pointer"]) :is(input, textarea, select):focus-visible {
  outline: none;
  box-shadow: inset 0 -2px 0 var(--forest);
}
html:not([data-input-modality="pointer"]) :is(a, button, summary):focus-visible {
  outline: 2px solid var(--forest);
  outline-offset: 3px;
}
html:not([data-input-modality="pointer"]) .home-product-art:focus-visible { outline-offset: -4px; }
#main-content:focus, #nasze-produkty:focus { outline: none; }

/* Stable navigation: the underline never changes dimensions or causes reflow. */
.site-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 1px;
  border-bottom: 0;
  color: var(--ink);
  transition: color .16s ease;
}
.site-nav a::after {
  content: '';
  position: absolute;
  height: 1px;
  left: 0;
  right: 0;
  bottom: 5px;
  background: var(--forest);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .16s ease;
}
.site-nav a[aria-current="page"] { color: var(--forest-dark); }
.site-nav a[aria-current="page"]::after { transform: scaleX(1); }
.header-login { min-height: 44px; display: inline-flex; align-items: center; }
.btn, .icon-button { transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
.btn:hover:not(:disabled), .btn.primary:hover { transform: none; }
.home-product-art > img, .resource-art > img { transition: none; }
.resource-card:hover .resource-art > img { transform: none; }
@media (hover: hover) and (pointer: fine) {
  .site-nav a:hover { color: var(--forest); }
  .site-nav a:hover::after { transform: scaleX(1); }
  .header-login:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 5px; }
  .icon-button:hover { background: #e9ede4; }
  .home-product:hover { border-color: #aeb8aa; box-shadow: 0 5px 15px #293c3008; }
  .home-product-art:hover > img { transform: none; }
  .text-link .icon { transition: transform .16s ease; }
  .text-link:hover .icon { transform: translateX(2px); }
}
@media (prefers-reduced-motion: no-preference) {
  dialog[open] { animation: quiet-dialog-in .14s ease-out; }
  @keyframes quiet-dialog-in { from { opacity: .5; transform: translateY(3px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 1200px) {
  .header-inner { gap: 18px; width: calc(100% - 56px); }
  .site-nav { gap: 16px; }
  .header-actions { gap: 12px; }
  .home-page .editorial-hero-inner { width: calc(100% - 64px); gap: 26px; }
  .home-page .editorial-hero h1 { font-size: 68px; }
  .home-page .hero-editorial-sign { display: none; }
  .home-page .editorial-hero-copy .button-row .btn { padding-inline: 16px; }
  .home-product-art { height: 285px; }
  .home-product-art > img { height: 215px; }
}
@media (max-width: 1100px) and (min-width: 761px) {
  .site-nav { display: none; }
  .site-nav.open { display: flex; position: absolute; top: 80px; inset-inline: 0; background: var(--paper); padding: 20px 28px; flex-wrap: wrap; border-bottom: 1px solid var(--line); }
  .menu-toggle { display: inline-flex; }
  .site-header { height: 80px; }
  .home-page .editorial-hero h1 { font-size: 61px; }
  .home-page .editorial-hero-inner { gap: 23px; padding-block: 30px; }
  .home-page .hero-deck { font-size: 15px; }
  .home-page .hero-fine { font-size: 11px; }
  .home-page .editorial-hero-copy .button-row { display: grid; justify-items: start; }
  .product-cover-stage { min-height: 420px; padding: 55px 25px 25px; }
}
@media (max-width: 760px) {
  .header-inner { width: calc(100% - 36px); gap: 12px; }
  .home-page .editorial-hero-inner { width: 100%; display: flex; flex-direction: column; gap: 0; padding-block: 0; }
  .home-page .editorial-hero-copy { width: 100%; padding: 35px 24px 29px; }
  .home-page .editorial-hero h1 { font-size: clamp(58px, 12vw, 76px); }
  .home-page .editorial-hero-photo { width: 100%; min-height: 0; border-radius: 0; aspect-ratio: 4 / 3; }
  .home-page .editorial-hero-photo > img { width: 100%; height: auto; aspect-ratio: 4 / 3; }
  .home-page .editorial-hero-photo figcaption { font-size: 15px; padding: 10px 14px; bottom: 14px; right: 14px; }
  .home-page .facts-strip .icon { background: transparent; padding: 0; }
  .home-product-art { height: 264px; }
  .home-product-art > img { height: 196px; }
  .rich-product-hero { gap: 24px; }
  .product-cover-stage { min-height: 0; padding: 50px 24px 20px; }
  .product-cover-stage > .detail-cover { width: min(68vw, 290px); max-height: 390px; }
  .cover-edition-label { left: 20px; top: 18px; }
  .rich-product-art > p { font-size: 11px; line-height: 1.65; }
  .site-nav.open { display: flex; gap: 8px; padding: 18px 22px; }
  .site-nav a { padding: 11px 10px; min-height: 44px; }
  .site-nav a::after { left: 10px; right: 10px; }
}
@media (max-width: 380px) {
  .home-page .editorial-hero-copy { padding-inline: 20px; }
  .home-product-art { height: 246px; }
  .home-product-art > img { height: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  html:not([data-input-modality="pointer"]) :is(input, textarea, select):focus-visible { outline: 2px solid Highlight; outline-offset: 2px; }
  .site-nav a[aria-current="page"] { text-decoration: underline; }
}

.home-page h1 em, .home-page h2 em { color: #58694c; }
@media (max-width: 760px) {
  /* The hero already has the primary CTA. The mobile header keeps only login + menu. */
  .header-actions > .btn { display: none; }
  .header-actions { gap: 8px; flex-shrink: 0; }
  .header-actions .header-login { display: inline-flex; font-size: 12px; }
  .header-actions .menu-toggle { width: 44px; height: 44px; flex-shrink: 0; }
  .header-inner > .brand { min-width: 0; }
}
@media (max-width: 760px) {
  /* Keep help reachable without covering product headings, forms or checkout CTAs. */
  .help-launcher { width: 48px; height: 48px; padding: 12px; justify-content: center; border-radius: 50%; }
  .help-launcher > span { display: none; }
  .help-launcher .icon { width: 24px; height: 24px; }
}

/* Autumn promotion JESIEN2026 */
.promo-bar {
  background: #1e3427;
  border-bottom: 1px solid #14241b;
  padding: 12px 20px;
  font-size: 14.5px;
  color: #f7f5ef;
  line-height: 1.45;
}
.promo-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  text-align: center;
}
.promo-tag {
  display: inline-block;
  background: #dce7da;
  color: #1a3323;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
}
.promo-text {
  font-size: 14.5px;
  color: #f7f5ef;
  letter-spacing: -0.01em;
}
.promo-text strong {
  color: #ffffff;
  font-weight: 700;
}
.promo-code-chip {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 4px;
  letter-spacing: 0.04em;
  font-family: inherit;
}
.promo-bar-link {
  color: #dce7da;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
}
.promo-bar-link:hover {
  color: #ffffff;
}
.promo-bar-link .icon {
  width: 14px;
  height: 14px;
}

/* Prices and badges across the application */
.old-price {
  text-decoration: line-through;
  opacity: 0.75;
  font-weight: 400;
  color: #72796e;
  margin-right: 2px;
}
.promo-price {
  font-weight: 600;
  color: #1e3627;
}

/* Subtle, normal promo note across cards, details and catalogue */
.promo-note,
.home-product-price .promo-badge,
.offer-price .promo-badge,
.product-price-box .promo-badge,
.service-price-cell .promo-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #edf2e8;
  color: #244230 !important;
  border: 1px solid #cad6c4;
  font-size: 12px;
  font-weight: 550;
  padding: 2px 7px;
  border-radius: 4px;
  vertical-align: middle;
  line-height: 1.35;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.promo-note *,
.home-product-price .promo-badge *,
.offer-price .promo-badge *,
.product-price-box .promo-badge *,
.service-price-cell .promo-badge * {
  color: #244230 !important;
}

/* Homepage cards: original font and size restored (29px), promo note under price */
.home-product-price {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  margin: 0 0 15px !important;
  color: #283a30 !important;
  min-height: 58px !important;
}
.home-price-main {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.home-product-price strong {
  font-size: 29px !important;
  line-height: 1.25 !important;
  letter-spacing: -.05em !important;
  font-weight: 600 !important;
  color: #283a30 !important;
}
.home-product-price .old-price {
  font-size: 16px !important;
  color: #72796e !important;
  line-height: 1.2 !important;
  text-decoration: line-through !important;
}
.home-product-price span:not(.promo-badge):not(.old-price) {
  color: #626459 !important;
  font-size: 12px !important;
}
.home-ai-action .home-product-price {
  margin-bottom: 7px !important;
  min-height: auto !important;
}
.home-ai-action .home-product-price strong {
  font-size: 29px !important;
}

/* Comparison page (/porownaj) */
.compare-cards {
  gap: 20px;
}
.compare-cards article {
  padding: 26px 20px;
  background: #fffdfa;
  border-color: #cbd4c3;
}
.compare-cards .eyebrow {
  margin: 0;
  line-height: 1.4;
  min-height: 18px;
}
.compare-cards h2 {
  font-size: 26px;
  line-height: 1.15;
  margin: 0;
  min-height: 32px;
  color: #1a2c21;
}
.compare-cards .compare-price {
  margin: 12px 0 16px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  min-height: 60px !important;
  font-size: inherit !important;
  color: inherit !important;
}
.compare-price-line {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.compare-price-line .old-price {
  font-size: 16px !important;
  color: #72796e !important;
  line-height: 1.2 !important;
  text-decoration: line-through !important;
  opacity: 0.85 !important;
}
.compare-price-line .promo-price {
  font-size: 32px !important;
  line-height: 1.15 !important;
  font-weight: 600 !important;
  color: #1e3627 !important;
  letter-spacing: -0.03em !important;
}
.compare-price-line .compare-tax {
  font-size: 12px !important;
  color: #636b5f !important;
  margin-left: 1px !important;
}
.compare-price .promo-note,
.compare-price .promo-badge {
  display: inline-flex !important;
  align-items: center !important;
  background: #edf2e8 !important;
  color: #244230 !important;
  border: 1px solid #cad6c4 !important;
  font-size: 11.5px !important;
  font-weight: 550 !important;
  padding: 2px 7px !important;
  border-radius: 4px !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
  letter-spacing: 0.01em !important;
}
.compare-price .promo-note *,
.compare-price .promo-badge * {
  color: #244230 !important;
}
.compare-cards h3 {
  font: 600 12.5px var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #556b4f;
  margin-top: 12px;
  margin-bottom: 2px;
}
.compare-cards p:not(.compare-price) {
  font-size: 13.5px;
  line-height: 1.7;
  color: #3b4238;
  margin: 0;
}

/* Product detail heroes and catalogue: original font and size restored (37px / 21px), promo note under price */
.offer-price {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  margin: 27px 0 16px !important;
}
.offer-price-line {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.offer-price strong {
  font-size: 37px !important;
  font-weight: 500 !important;
  letter-spacing: -.05em !important;
  color: #1e3627 !important;
  line-height: 1.2 !important;
}
.offer-price .old-price {
  font-size: 20px !important;
  color: #72796e !important;
  text-decoration: line-through !important;
  line-height: 1.2 !important;
}
.offer-price .offer-price-tax,
.offer-price span:not(.promo-badge):not(.old-price) {
  font-size: 13px !important;
  color: #52614b !important;
}
.product-price-box {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  margin-bottom: 12px !important;
}
.product-price-line {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.product-price-box .price {
  font-size: 21px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #1e3627 !important;
  margin: 0 !important;
}
.product-price-box .old-price {
  font-size: 15px !important;
  color: #72796e !important;
  line-height: 1.2 !important;
  text-decoration: line-through !important;
}
.product-price-box .price-suffix {
  font-size: 12px !important;
  color: #626459 !important;
}
.service-price-cell {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
}
.service-price-line {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
.service-price-cell .promo-price {
  font-size: 26px !important;
  font-weight: 600 !important;
  color: #1e3627 !important;
  line-height: 1.2 !important;
}
.service-price-cell .old-price {
  font-size: 16px !important;
  color: #72796e !important;
  text-decoration: line-through !important;
  line-height: 1.2 !important;
}
.service-price-cell .service-price-tax {
  font-size: 12px !important;
  color: #626459 !important;
}

@media (max-width: 600px) {
  .promo-bar { padding: 9px 14px; font-size: 13px; }
  .promo-bar-inner { gap: 8px; }
  .promo-tag { font-size: 10px; padding: 2px 7px; }
  .promo-text { font-size: 13px; }
  .promo-bar-link { font-size: 13px; }
}

.lesson-assistant-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
}
.lesson-assistant-btn .icon {
  width: 16px;
  height: 16px;
}

.help-contact a {
  display: inline !important;
  color: var(--forest-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.help-contact a:hover {
  color: var(--forest);
}



