@font-face {
  font-family: Cormorant;
  src: url("assets/fonts/Cormorant-Medium.woff") format("woff");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: Cormorant;
  src: url("assets/fonts/Cormorant-Italic.woff") format("woff");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("assets/fonts/Manrope-Regular.woff") format("woff");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("assets/fonts/Manrope-Medium.woff") format("woff");
  font-weight: 500 700;
  font-display: swap;
}
:root {
  --paper: #fffcf5;
  --ink: #203f2d;
  --text: #293c31;
  --muted: #566259;
  --line: #d7dacb;
  --sage: #edf3e6;
  --serif: Cormorant, Georgia, serif;
  --sans: Manrope, Arial, sans-serif;
  --gutter: 24px;
  --section-title: clamp(2rem, 9.2vw, 2.25rem);
  --section-space: 48px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 1rem/1.55 var(--sans);
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
p,
figure {
  margin: 0;
}
h1,
h2,
h3 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.07;
  letter-spacing: -0.025em;
}
h1 {
  font-size: clamp(2.5rem, 11.8vw, 3.375rem);
}
h2 {
  font-size: var(--section-title);
  margin-bottom: 22px;
  text-wrap: balance;
}
h3 {
  font-size: 1.6875rem;
  line-height: 1.15;
  margin-bottom: 7px;
}
p {
  color: var(--text);
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
textarea {
  font: inherit;
}
button {
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}
button,
a {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
textarea:focus-visible {
  outline: 2px solid #8a5f27;
  outline-offset: 5px;
}
button:disabled {
  cursor: wait;
}
.wrap {
  max-width: 1200px;
  margin-inline: auto;
}
.section {
  padding: var(--section-space) var(--gutter);
}
.eyebrow {
  font-size: 0.625rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 18px;
}
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px var(--gutter);
  min-height: 80px;
}
.wordmark {
  display: block;
  width: 153px;
}
.wordmark img {
  width: 100%;
  height: auto;
}
.hero-heading {
  padding: 10px var(--gutter) 25px;
}
.hero h1 {
  margin-bottom: 12px;
}
.hero-subtitle,
.handwritten {
  font: italic 400 1.5625rem/1.25 var(--serif);
}
.hero-subtitle {
  font-size: clamp(1.375rem, 6.2vw, 1.6875rem);
}
.hero-photo {
  height: 310px;
  background: #e4eddf;
}
.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 56%;
}
.hero-action {
  padding: 22px var(--gutter) 0;
}
.hero-action > p {
  margin-bottom: 21px;
  max-width: 420px;
}
.button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 54px;
  padding: 15px 19px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 3px;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  transition: background 0.2s;
}
.button:hover {
  background: #31573e;
}
.button span {
  font-size: 1.375rem;
  line-height: 1;
}
.text-button {
  min-height: 44px;
  padding: 10px 0;
  font-size: 0.875rem;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.assistant-link {
  display: block;
  margin: 6px auto 0;
}
.numbered {
  list-style: none;
  margin: 0;
  padding: 0;
}
.numbered li {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 16px;
}
.number {
  font: italic 400 1rem/1.5 var(--serif);
  color: #896b41;
  padding-top: 5px;
}
.priorities-list li {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.priorities-list li:first-child {
  padding-top: 0;
}
.numbered p {
  font-size: 0.9375rem;
  line-height: 1.55;
}
.warm-detail {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.warm-detail p {
  font: italic 400 1.5rem/1.13 var(--serif);
  color: var(--ink);
}
.bird-detail {
  margin: 29px 0 0 calc(-1 * var(--gutter));
  min-height: 110px;
  padding-right: 0;
}
.bird-detail img {
  width: 45%;
  max-width: 190px;
  flex: none;
}
.bird-detail p {
  flex: 1;
}
.priorities {
  padding-bottom: 18px;
}
.selection {
  padding-top: 32px;
}
.selection-intro > p:last-child {
  margin-bottom: 25px;
}
.portrait {
  margin-bottom: 23px;
}
.portrait img {
  width: 100%;
  aspect-ratio: 853/1280;
  object-fit: contain;
}
.scope {
  background: var(--sage);
}
.scope-inner {
  padding-top: 35px;
  padding-bottom: 32px;
}
.scope-options > div {
  margin-bottom: 23px;
}
.scope-options p {
  font-size: 0.9375rem;
}
.scope-note {
  font-size: 0.875rem !important;
  font-weight: 500;
}
.garden {
  position: relative;
  padding-bottom: 27px;
}
.garden > img {
  width: 100%;
  height: 330px;
  object-fit: cover;
  object-position: 50% 57%;
}
.garden figcaption {
  position: relative;
  margin: -27px var(--gutter) 0;
  padding: 15px 8px 0;
  background: var(--paper);
  font: italic 400 1.5rem/1.2 var(--serif);
  text-align: center;
}
.small-only {
  display: none;
}
.life-copy {
  padding: 0 var(--gutter) 32px;
}
.life-copy > p {
  font-size: 0.9375rem;
}
.fawn-detail {
  margin-top: 22px;
  min-height: 124px;
}
.fawn-detail img {
  width: 39%;
  max-width: 165px;
}
.fawn-detail p {
  font-size: 1.4375rem;
}
.trust {
  background: #214d39;
  color: var(--paper);
}
.trust .section {
  padding-top: 35px;
  padding-bottom: 35px;
}
.trust p {
  color: #eff4e9;
}
.trust .eyebrow {
  color: #d1e3c4;
}
.trust-inner > div:last-child p {
  font-size: 0.9375rem;
  line-height: 1.6;
}
.trust-inner > div:last-child p + p {
  margin-top: 18px;
}
.trust a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.process {
  display: flex;
  flex-direction: column;
  position: relative;
  padding-bottom: 28px;
}
.process > div {
  display: contents;
}
.process h2 {
  order: 0;
}
.process-list {
  order: 1;
}
.process-list li {
  padding: 9px 0 24px;
}
.process-list h3 {
  font-size: 1.625rem;
}
.assistant-invite {
  order: 2;
  margin-top: 5px;
}
.assistant-invite p {
  font-size: 0.875rem;
}
.offline-pause picture {
  display: block;
}
.offline-pause img {
  width: 100%;
  height: auto;
  aspect-ratio: 960 / 820;
  object-fit: cover;
}
.offline-pause figcaption {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--muted);
  padding: 24px var(--gutter) 0;
}
.faq {
  padding-bottom: 22px;
}
.faq details {
  border-bottom: 1px solid var(--line);
}
.faq summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 19px 28px 19px 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  min-height: 58px;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary::after {
  content: "+";
  position: absolute;
  right: 1px;
  top: 18px;
  font-size: 1.25rem;
  font-weight: 400;
}
.faq details[open] summary::after {
  content: "−";
}
.faq details > p {
  font-size: 0.9375rem;
  line-height: 1.65;
  padding: 0 18px 21px 0;
}
.contact {
  padding: 32px 18px 30px;
}
.concierge-note {
  position: relative;
  isolation: isolate;
  padding: 28px 24px 32px;
  background: #fffdf8;
  box-shadow: 0 2px 3px #203f2d08, 0 10px 28px #203f2d05;
  max-width: 690px;
  margin: auto;
}
.concierge-note::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(#fffdf8c9,#fffdf8c9), url("assets/letter-paper.webp") center/140% 150% no-repeat;
  pointer-events: none;
}
.concierge-note .eyebrow {
  font-size: 0.625rem;
  letter-spacing: 0.13em;
  margin-bottom: 16px;
}
.concierge-note h2 {
  font-size: clamp(1.75rem, 8vw, 2.125rem);
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 24px;
  text-wrap: initial;
}
.concierge-note > p:not(.eyebrow):not(.signature) {
  font-size: 1rem;
  line-height: 1.5;
  max-width: 440px;
}
.signature {
  font: italic 400 1.4375rem/1.12 var(--serif);
  margin-top: 28px;
  padding-right: 72px;
}
.note-monogram::before { content:"K"; }
.note-monogram { display:block; margin-bottom:20px; color:#f5f1e7; text-shadow:0 1px 0 #fff, -1px -1px 0 #d4cec080; font:500 32px/1 var(--serif); }
.note-twig { position:absolute; right:16px; bottom:20px; width:80px; pointer-events:none; }
.contact-actions {
  max-width: 450px;
  margin: 43px auto 0;
  text-align: center;
  padding: 0 6px;
}
.contact-actions .text-button {
  margin-top: 7px;
}
.channel-note {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 3px;
}
.footer {
  padding: 0 var(--gutter) 22px;
}
.footer::before {
  content: "";
  display: block;
  height: 1px;
  background: var(--line);
  margin-bottom: 29px;
}
.footer .wordmark {
  width: 135px;
}
.footer .handwritten {
  font-size: 1.375rem;
  margin: 10px 0 23px;
}
.care-note {
  font-size: 0.75rem;
  line-height: 1.65;
  color: var(--muted);
  max-width: 480px;
}
.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-top: 16px;
  font-size: 0.6875rem;
  color: var(--muted);
}
.footer-bottom .text-button {
  font-size: 0.6875rem;
}
.desktop-only {
  display: none;
}
.skip {
  position: fixed;
  top: -100px;
  left: 16px;
  z-index: 100;
  background: var(--paper);
  padding: 14px;
}
.skip:focus {
  top: 10px;
}
[hidden] {
  display: none !important;
}
body.modal-open {
  overflow: hidden;
}
dialog {
  margin: auto;
  width: min(510px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
  padding: 42px 24px 26px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--paper);
  color: var(--ink);
}
dialog::backdrop {
  background: #122b20b8;
  backdrop-filter: blur(3px);
}
.dialog-close {
  position: absolute;
  right: 5px;
  top: 4px;
  width: 44px;
  height: 44px;
  font: 2rem/1 var(--sans);
}
dialog h2 {
  font-size: 2.375rem;
  margin: 20px 0 18px;
}
dialog > p {
  font-size: 0.9375rem;
  margin-bottom: 16px;
}
dialog label {
  display: block;
  font-size: 0.875rem;
  margin: 20px 0 8px;
}
textarea {
  display: block;
  width: 100%;
  resize: vertical;
  min-height: 140px;
  background: #fffef9;
  color: var(--text);
  border: 1px solid #9da992;
  padding: 12px;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 17px;
  border-radius: 3px;
}
dialog .preview-note {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 14px 0 0;
}
dialog .status {
  font-size: 0.8125rem;
  margin: 12px 0 0;
}
.status:empty {
  display: none;
}
.reveal-art {
  transition:
    opacity 0.75s ease,
    transform 0.9s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.reveal-art.is-waiting {
  opacity: 0;
  transform: translateY(12px);
}
@media (max-width: 359px) {
  :root {
    --gutter: 20px;
  }
  .hero-photo {
    height: 280px;
  }
  .small-only {
    display: initial;
  }
  .concierge-note {
    padding-inline: 19px;
  }
  .signature {
    font-size: 1.3125rem;
  }
  .warm-detail p {
    font-size: 1.3125rem;
  }
  .concierge-note .eyebrow {
    font-size: 0.625rem;
    letter-spacing: 0.07em;
  }
}
@media (min-width: 600px) and (max-width: 899px) {
  :root {
    --gutter: 48px;
  }
  .hero-photo {
    height: 420px;
  }
  .hero-action {
    max-width: 600px;
    margin: auto;
  }
  .hero-heading {
    text-align: center;
  }
  .hero-action .button {
    max-width: 430px;
    margin: auto;
  }
  .priorities,
  .selection,
  .process,
  .faq {
    max-width: 660px;
  }
  .garden > img {
    height: 410px;
  }
  .life-copy {
    max-width: 660px;
    margin: auto;
  }
  .portrait {
    max-width: 450px;
    margin-inline: auto;
  }
  .concierge-note {
    padding: 40px 45px;
  }
  .concierge-note h2 {
    font-size: 2.375rem;
  }
  .contact {
    padding-inline: 48px;
  }
}
@media (min-width: 900px) {
  :root {
    --gutter: 48px;
  }
  body {
    font-size: 1.0625rem;
  }
  .header {
    min-height: 100px;
  }
  .wordmark {
    width: 183px;
  }
  .hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 0 35px;
    padding-inline: var(--gutter);
    padding-block: 24px 46px;
    min-height: 610px;
  }
  .hero-heading {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    padding: 0 0 28px;
  }
  .hero h1 {
    font-size: clamp(3.25rem, 5.1vw, 4.375rem);
    max-width: 460px;
  }
  .hero-subtitle {
    font-size: 1.8125rem;
  }
  .hero-photo {
    grid-column: 2;
    grid-row: 1/3;
    height: 580px;
  }
  .hero-action {
    grid-column: 1;
    grid-row: 2;
    padding: 0;
    max-width: 360px;
  }
  .hero-action > p {
    margin-bottom: 28px;
  }
  .assistant-link {
    margin-inline: 0;
  }
  :root { --section-title: 2.75rem; --section-space: 72px; }
  .section {
    padding-block: var(--section-space);
  }
  h2 {
    font-size: var(--section-title);
  }
  h3 {
    font-size: 1.875rem;
  }
  .priorities {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 70px;
    padding-top: 35px;
    padding-bottom: 40px;
  }
  .priorities h2 {
    align-self: center;
  }
  .priorities-list {
    grid-row: 1/3;
    grid-column: 2;
  }
  .bird-detail {
    margin-left: calc(-1 * var(--gutter));
    align-self: end;
    max-width: 430px;
  }
  .bird-detail p {
    font-size: 1.6875rem;
  }
  .selection {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 0 65px;
    padding-top: 45px;
  }
  .selection-intro {
    grid-column: 2;
    align-self: end;
    padding-bottom: 35px;
  }
  .portrait {
    grid-column: 1;
    grid-row: 1/3;
    margin: 0;
    max-width: 430px;
  }
  .selection-outro {
    grid-column: 2;
    align-self: start;
  }
  .desktop-only {
    display: initial;
  }
  .scope-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
  }
  .scope .section {
    padding-block: 55px;
  }
  .scope-options p {
    font-size: 1rem;
  }
  .scope-note {
    padding-top: 5px;
  }
  .life {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 45px;
    padding: 0 var(--gutter) 45px;
  }
  .garden {
    padding: 0;
  }
  .garden > img {
    height: 510px;
  }
  .garden figcaption {
    margin-inline: 20px;
    font-size: 1.8125rem;
    padding-inline: 15px;
  }
  .life-copy {
    align-self: center;
    padding: 0;
  }
  .life-copy > p {
    font-size: 1.0625rem;
  }
  .fawn-detail {
    margin-top: 50px;
  }
  .fawn-detail p {
    font-size: 1.6875rem;
  }
  .trust-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: center;
  }
  .trust .section {
    padding-block: 55px;
  }
  .trust h2 {
    margin-bottom: 0;
  }
  .trust-inner > div:last-child p {
    font-size: 1rem;
  }
  .process {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    padding-bottom: 60px;
  }
  .process > div {
    display: block;
  }
  .process .assistant-invite {
    margin-top: 35px;
  }
  .process-list li {
    padding-bottom: 28px;
  }
  .process-list h3 {
    font-size: 1.875rem;
  }
  .numbered p {
    font-size: 1rem;
  }
  .offline-pause {
    padding: 0 var(--gutter);
  }
  .offline-pause img {
    aspect-ratio: 1536 / 820;
  }
  .offline-pause figcaption {
    padding: 24px 0 0;
  }
  .faq {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    padding-bottom: 30px;
  }
  .faq summary {
    font-size: 1rem;
  }
  .faq details > p {
    font-size: 1rem;
  }
  .contact {
    padding-block: 45px 50px;
  }
  .concierge-note {
    padding: 45px 45px 47px;
  }
  .concierge-note .eyebrow {
    font-size: 0.6875rem;
  }
  .concierge-note h2 {
    font-size: 2.6875rem;
    margin-bottom: 19px;
  }
  .concierge-note > p:not(.eyebrow):not(.signature) {
    font-size: 1.0625rem;
  }
  .signature {
    font-size: 1.6875rem;
    margin-top: 24px;
  }
  .note-twig { width:104px; right:32px; bottom:32px; }
  .contact-actions {
    margin-top: 43px;
  }
  .footer {
    padding-bottom: 25px;
  }
  .footer-bottom {
    margin-top: 8px;
  }
  .footer .care-note {
    max-width: 500px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
  .reveal-art.is-waiting {
    opacity: 1;
    transform: none;
  }
}
.warm-detail p {
  min-width: 0;
  overflow-wrap: anywhere;
}
h1,
h2,
h3 {
  overflow-wrap: anywhere;
}

/* One concierge action, in the hero at rest and at the viewport edge on scroll. */
html {
  scroll-padding-bottom: calc(var(--dock-space, 110px) + 20px);
}
body.has-docked-cta {
  padding-bottom: var(--dock-space, 110px);
}
.cta-home {
  position: relative;
  min-height: var(--cta-home-height, 78px);
}
.cta-hideaway {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  /* The opaque moving CTA reveals/covers the drawing; no competing fade. */
}
.cta-hideaway img {
  width: min(280px, 94%);
  max-height: 66px;
  object-fit: contain;
}
.cta-dock {
  position: relative;
  z-index: 40;
}
.cta-content {
  position: relative;
  transform-origin: top left;
  background: var(--paper);
  width: 100%;
  max-width: 430px;
  margin-inline: auto;
}
.cta-caption {
  margin-top: 7px;
  text-align: center;
  color: var(--muted);
  font-size: 0.6875rem;
  line-height: 1.5;
}
.concierge-button {
  justify-content: flex-start;
  gap: 12px;
  min-height: 62px;
  padding: 11px 14px;
  border-radius: 5px;
  text-align: left;
}
.concierge-button span {
  font-size: inherit;
  line-height: inherit;
}
.concierge-seal {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 1px solid #d8d9bf75;
  border-radius: 50%;
}
.concierge-seal img {
  width: 26px;
  height: 26px;
  border-radius: 50%;
}
.cta-dock.is-docked {
  position: fixed;
  z-index: 40;
  inset: auto 0 0;
  padding: 10px max(var(--gutter), env(safe-area-inset-right))
    max(10px, env(safe-area-inset-bottom))
    max(var(--gutter), env(safe-area-inset-left));
  background: #fffcf5f5;
  border-top: 1px solid #d7dacb99;
  box-shadow: 0 -4px 20px #203f2d08;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.cta-dock.is-docked .button {
  box-shadow: 0 3px 9px #203f2d15;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.priorities-list {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.priorities-help {
  color: var(--muted);
  font-size: 0.8125rem;
  margin-bottom: 18px;
}
.priority-option {
  display: block;
  position: relative;
  cursor: pointer;
  margin-bottom: 10px;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  scroll-margin-block: 24px;
}
.priority-option input {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 15px;
  width: 22px;
  height: 22px;
  margin: -11px 0 0;
  opacity: 0;
}
.priority-card {
  display: grid;
  grid-template-columns: 55px minmax(0, 1fr) 21px;
  align-items: center;
  gap: 12px;
  min-height: 112px;
  padding: 17px 14px 17px 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  transition:
    background-color 180ms,
    border-color 180ms;
}
.priority-art {
  width: 55px;
  height: 60px;
  object-fit: contain;
}
.priority-copy {
  min-width: 0;
}
.priority-title {
  display: block;
  font: 500 1.5625rem/1.08 var(--serif);
  letter-spacing: -0.02em;
  margin-bottom: 7px;
  overflow-wrap: anywhere;
}
.priority-description {
  display: block;
  color: var(--muted);
  font-size: 0.8125rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.priority-check {
  width: 21px;
  height: 21px;
  border: 1px solid #85947b;
  border-radius: 3px;
  display: grid;
  place-items: center;
}
.priority-check::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 1.5px solid var(--paper);
  border-bottom: 1.5px solid var(--paper);
  transform: translateY(-1px) rotate(-45deg);
  opacity: 0;
}
.priority-option input:checked + .priority-card {
  background: var(--sage);
  border-color: var(--ink);
}
.priority-option input:checked + .priority-card .priority-check {
  background: var(--ink);
  border-color: var(--ink);
}
.priority-option input:checked + .priority-card .priority-check::after {
  opacity: 1;
}
.priority-option input:focus-visible + .priority-card {
  outline: 2px solid #8a5f27;
  outline-offset: 4px;
}
@media (hover: hover) {
  .priority-option:hover .priority-card {
    border-color: var(--ink);
  }
}
.selection-status {
  font-size: 0.75rem;
  color: var(--muted);
  min-height: 2.8em;
  padding-top: 3px;
}
.dialog-assistant {
  margin-top: 8px;
}
dialog .draft-priorities {
  padding: 10px 12px;
  background: var(--sage);
  border-left: 2px solid var(--ink);
  font-size: 0.8125rem;
}
@media (max-width: 359px) {
  .priority-card {
    grid-template-columns: 42px minmax(0, 1fr) 20px;
    gap: 10px;
    padding-inline: 9px 12px;
  }
  .priority-art {
    width: 42px;
    height: 54px;
  }
  .priority-title {
    font-size: 1.4375rem;
  }
}
@media (min-width: 600px) {
  .priority-card {
    grid-template-columns: 64px minmax(0, 1fr) 22px;
    padding: 19px 20px 19px 12px;
    gap: 16px;
  }
  .priority-art {
    width: 64px;
    height: 64px;
  }
  .priority-title {
    font-size: 1.75rem;
  }
  .priority-description {
    font-size: 0.875rem;
  }
  .cta-dock.is-docked {
    inset-inline: 50% auto;
    bottom: max(16px, env(safe-area-inset-bottom));
    width: min(470px, calc(100% - 48px));
    margin-left: calc(min(470px, 100vw - 48px) / -2);
    border: 1px solid #d7dacbcc;
    border-radius: 7px;
    padding: 12px 16px 10px;
    box-shadow: 0 4px 24px #203f2d14;
  }
}
@media (prefers-reduced-motion: reduce) {
  .priority-card {
    transition: none;
  }
}

/* Personal journey: one question at a time, one editable brief. */
.priorities { display:block; max-width:none; background:var(--sage); padding-inline:max(var(--gutter), calc((100% - 612px) / 2)); }
.priorities h2 { font-size:clamp(2.25rem,6vw,3.25rem); line-height:1.05; margin-bottom:18px; }
.journey-intro { color:var(--muted); font-size:1rem; margin-bottom:32px; }
.journey-steps { margin-left:10px; border-left:1px dashed #a9b8a4; }
.journey-step { position:relative; margin-left:24px; border-bottom:1px solid var(--line); scroll-margin-top:24px; }
.journey-step:last-child { border-bottom:0; }
.journey-step-heading { margin:0; font:inherit; }
.step-toggle { width:100%; display:flex; gap:12px; align-items:center; border:0; background:none; padding:18px 0; text-align:left; color:var(--ink); cursor:pointer; min-height:64px; }
.step-number { position:absolute; left:-42px; top:18px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--paper); font:500 1.125rem var(--serif); box-shadow:0 0 0 5px var(--sage); }
.is-active .step-number { background:var(--ink); color:var(--paper); }
.step-heading-copy { flex:1; min-width:0; }
.step-label { display:block; font:500 .625rem/1.5 var(--sans); letter-spacing:.18em; text-transform:uppercase; margin-bottom:4px; }
.step-answer { display:block; font:500 1.5rem/1.15 var(--serif); }
.step-summary-art { width:48px; height:42px; object-fit:contain; float:left; margin-right:12px; }
.step-edit { font:.8125rem var(--sans); color:var(--muted); text-decoration:underline; padding:10px 0 10px 8px; }
.journey-step:not(.has-answer) .step-edit,.is-active .step-edit,.is-active .step-answer,.is-active .step-summary-art { display:none; }
.is-active .step-toggle { padding-bottom:3px; min-height:44px; }
.step-panel[hidden] { display:none; }
.step-panel fieldset { min-width:0; border:0; padding:0; margin:0; }
.step-panel legend { font:500 1.8rem/1.12 var(--serif); padding:0; margin-bottom:12px; width:100%; }
.journey-help { color:var(--muted); font-size:.875rem; margin-bottom:8px; }
.journey-option { display:block; position:relative; cursor:pointer; border:0; border-radius:4px; background:transparent; margin-bottom:8px; }
.journey-option:last-child { margin-bottom:0; }
.journey-option:has(input:checked) { background:#e4eddd; }
.journey-option input { position:absolute; right:10px; top:calc(50% - 10px); width:21px; height:21px; margin:0; accent-color:var(--ink); cursor:pointer; }
.journey-choice { display:grid; grid-template-columns:72px minmax(0,1fr); gap:12px; align-items:center; padding:12px 40px 12px 0; min-height:88px; border-radius:4px; }
.journey-choice img { width:72px; height:70px; object-fit:contain; }
.journey-choice-title { display:block; font:500 1.45rem/1.12 var(--serif); }
.journey-choice-desc { display:block; color:var(--muted); font:400 .875rem/1.45 var(--sans); margin-top:6px; }
.journey-option input:checked + .journey-choice { background:transparent; }
.journey-option:has(input:focus-visible) { outline:2px solid var(--ink); outline-offset:3px; border-radius:4px; }
.journey-navigation { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0 18px; }
.journey-navigation button { min-height:44px; padding:9px 20px; color:var(--ink); background:none; font:400 .875rem var(--sans); cursor:pointer; }
.journey-back { border:0; text-decoration:underline; }
.journey-story { position:relative; padding:12px 14px; background:var(--sage); border-radius:4px; margin-bottom:8px; text-align:left; }
.journey-story[hidden] { display:none; }
.story-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.story-heading > span { font:500 .625rem var(--sans); text-transform:uppercase; letter-spacing:.18em; }
.story-heading button { border:0; background:none; text-decoration:underline; color:var(--muted); font:.8125rem var(--sans); cursor:pointer; padding:10px; margin:-10px -10px -8px 0; min-height:44px; }
#close-journey { position:relative; z-index:2; min-width:44px; }
/* The whole card returns to the quiz; Close is a separate reset control. */
#edit-journey { position:absolute; inset:0; z-index:1; width:100%; height:100%; border:0; border-radius:4px; background:transparent; cursor:pointer; }
#edit-journey:focus-visible { outline:2px solid var(--ink); outline-offset:-2px; }
#journey-story-text { font:500 1.1875rem/1.18 var(--serif); margin-top:4px; }
.cta-dock:not(.is-docked) .journey-story { display:none; }
.cta-dock.is-docked .journey-story { overflow:visible; }
.journey-step { scroll-margin-bottom:var(--dock-space,180px); }
@media(max-width:359px) {
 .journey-step { margin-left:20px; }
 .step-number { left:-38px; }
 .journey-choice { grid-template-columns:52px minmax(0,1fr); gap:8px; padding-right:34px; }
 .journey-choice img { width:52px; height:60px; }
 .journey-choice-title { font-size:1.3rem; }
}
@media(min-width:900px) { .priorities { padding-block:70px; } }
@media(max-height:600px) { .cta-dock.is-docked .cta-caption { display:none; } .cta-dock.is-docked .concierge-button { min-height:48px; } }

#journey-story-text { white-space:pre-line; }
#journey-story-compact { display:none; font:500 1.125rem/1.2 var(--serif); margin-top:4px; }
.is-compact-story #journey-story-text { display:none; }
.is-compact-story #journey-story-compact { display:block; }
.journey-clear { border:0; text-decoration:underline; }
.journey-navigation button[hidden] { display:none; }
/* Compact the collapsed steps without shrinking readable choice text. */
.priorities { padding-top:24px; }
.priorities h2 { font-size:clamp(2rem,5vw,3rem); margin-bottom:14px; }
.journey-intro { font-size:.875rem; line-height:1.5; margin-bottom:20px; max-width:36em; }
.step-heading-copy { display:grid; grid-template-columns:46px minmax(0,1fr); column-gap:10px; align-items:center; }
.step-heading-copy .step-label { grid-column:1 / -1; }
.step-heading-copy .step-answer { grid-column:1 / -1; }
.has-answer:not(.is-active) .step-label { grid-column:2; grid-row:1; }
.has-answer:not(.is-active) .step-answer { grid-column:2; grid-row:2; }
.step-summary-art { float:none; grid-column:1; grid-row:1 / 3; width:46px; height:42px; margin:0; }
.step-toggle { padding:10px 0; }
.step-answer { font-size:1.375rem; }
.step-number { top:13px; }
.is-active .step-toggle { padding-top:10px; min-height:32px; }
.step-panel legend { font-size:1.55rem; margin-bottom:8px; }
.journey-choice { grid-template-columns:56px minmax(0,1fr); gap:10px; padding:8px 36px 8px 8px; min-height:80px; }
.journey-choice img { width:56px; height:62px; }
.journey-choice-title { font-size:1.375rem; }
.journey-choice-desc { margin-top:4px; }
.journey-option input { right:10px; }
.journey-navigation { padding:8px 0 12px; }
.journey-story { padding:10px 14px; }
#journey-story-text { font-size:1.125rem; line-height:1.15; }
@media(max-width:359px) {
 .journey-choice { grid-template-columns:44px minmax(0,1fr); gap:6px; padding-right:34px; padding-left:6px; }
 .journey-choice img { width:44px; height:58px; }
 .journey-choice-title { font-size:1.25rem; }
}
.journey-option { transition:background-color 180ms ease; }
@media(prefers-reduced-motion:reduce) { .journey-option { transition:none; } }
@media(max-height:600px) {
 .cta-dock.is-docked .journey-story { padding-block:8px; }
 .cta-dock.is-docked .concierge-seal { display:none; }
 .cta-dock.is-docked .concierge-button { line-height:1.25; }
}

/* A short personal note, updated one answer at a time. */
.story-line { display:block; position:relative; overflow:hidden; }
.story-line[hidden] { display:none; }
.story-line + .story-line { margin-top:3px; }
.story-word { display:inline-block; }
.story-words strong { font-weight:700; }
.story-previous { position:absolute; inset:0; pointer-events:none; text-decoration:line-through; text-decoration-thickness:1px; }
#journey-story-text { white-space:normal; line-height:1.2; }
#journey-story-compact { line-height:1.2; }
.journey-navigation:has(> :only-child[hidden]) { display:none; }

#journey-story-count { display:none; font:500 1.125rem/1.2 var(--serif); margin-top:4px; }
.is-minimal-story #journey-story-compact { display:none; }
.is-minimal-story #journey-story-count { display:block; }

.copyright { flex:1 1 620px; max-width:760px; font-size:.75rem; line-height:1.65; }
.copyright a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.footer-bottom .text-button { flex-shrink:0; }

/* Both languages stay visible; selection never requires opening a menu. */
.header { gap:12px; }
.header .wordmark { flex-shrink:0; }
.language-switch { display:flex; flex-shrink:0; gap:2px; padding:3px; border-radius:28px; background:var(--sage); }
.language-switch button { min-width:44px; min-height:44px; padding:0 9px; border:0; border-radius:24px; background:transparent; color:var(--muted); font:500 .75rem/1 var(--sans); letter-spacing:.04em; cursor:pointer; transition:background-color 160ms ease,color 160ms ease; }
.language-switch button[aria-pressed="true"] { background:var(--ink); color:var(--paper); }
.language-switch button:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .language-switch button { transition:none; } }
@media(max-width:359px) { .header .wordmark { width:140px; } }

.copyright .legal-address { display:block; margin-top:8px; }
.copyright .legal-licence { display:block; }

/* Native WhatsApp link retains the approved concierge-button appearance. */
.concierge-button { text-decoration:none; }
.note-assistant { margin-top:12px; min-height:44px; font-size:.75rem; color:var(--muted); }

/* Contact details and office map. */
.contact-footer { padding-bottom:44px; }
.footer-brand { margin-bottom:38px; }
.contact-footer .footer-brand .handwritten { margin-bottom:0; }
.contact-grid { display:grid; gap:36px; }
.contact-footer h2 { font-size:var(--section-title); margin:12px 0 14px; }
.contact-intro { font-size:1rem; line-height:1.65; max-width:32ch; }
.contact-method { margin-top:24px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.contact-label { color:var(--muted); font-size:.75rem; }
.phone-link { font-family:var(--serif); font-size:1.9rem; line-height:1.3; letter-spacing:.01em; text-decoration:none; color:var(--ink); padding:4px 0; }
.office-details { border-top:1px solid var(--line); padding-top:30px; }
.office-details address { display:flex; flex-direction:column; gap:2px; margin-top:16px; color:var(--text); font-style:normal; font-size:.9375rem; }
.office-details address strong { font:500 1.625rem/1.25 var(--serif); margin-bottom:5px; }
.office-shared { font-size:.75rem; color:var(--muted); margin-top:10px; }
.map-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:8px 0 12px; font-size:.8125rem; text-underline-offset:4px; color:var(--ink); }
.office-map { height:200px; background:var(--sage); overflow:hidden; border-radius:3px; }
.office-map iframe { width:100%; height:100%; border:0; }
.footer-fineprint { margin-top:32px; padding-top:24px; border-top:1px solid var(--line); display:grid; gap:16px; }
.footer-fineprint .copyright { font-size:.6875rem; color:var(--muted); }
.footer-fineprint .copyright a {color:inherit;}
.contact-footer a:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
@media(min-width:760px) {
 .contact-grid { grid-template-columns:1fr 1fr; gap:64px; }
 .office-details { border-top:0; border-left:1px solid var(--line); padding:0 0 0 40px; }
 .footer-brand { margin-bottom:44px; }
 .office-map { height:210px; }
 .footer-fineprint { grid-template-columns:1fr 1fr; gap:64px; }
}
