/* Reuse the established palette, typography and component shapes. */
.review-banner{padding:.65rem max(1rem,calc((100% - 1180px)/2));background:var(--yellow-soft);border-bottom:1px solid var(--line);font-size:.85rem}
.review-banner p{margin:0}.review-text-link{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
.review-process{counter-reset:journey;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;padding:0;margin:2rem 0}
.review-process>li{counter-increment:journey;min-width:0;padding:1.25rem;border-top:3px solid var(--yellow)}
.review-process>li:before{content:counter(journey);display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%;background:var(--yellow-soft);margin-bottom:.85rem;font-family:var(--font-display)}
.review-process h3{font-size:1.35rem;margin-bottom:.75rem}.review-process p{margin:0 0 .75rem;color:var(--ink-soft)}
.review-online{display:flex;align-items:center;gap:1.5rem;max-width:780px;margin:1.5rem 0}.review-online img{width:120px;height:140px;flex:none;object-fit:cover;border-radius:55% 45% 45% 35%}.review-online p{margin:0}
.review-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.review-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start;margin:1.5rem 0 2rem}
.review-packages .package-card h3{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem)}.review-packages .package-card{gap:.8rem}.review-packages .package-card p{margin:0}
.review-packages .package-recommendation{position:static;align-self:flex-start}.review-packages .package-card>.button{align-self:flex-start;margin-top:.25rem}
.review-packages .package-recommendation{background:var(--yellow);color:var(--ink)}
.review-price{color:var(--ink);font-weight:700;font-size:1.1rem}.review-shared{max-width:900px;padding:1rem 1.25rem;background:var(--yellow-soft);border-radius:var(--radius-md);margin-top:1.5rem}
.approval-note,.review-packages .package-card .approval-note{color:var(--ink);background:#f9eed5;border-left:3px solid #9c692b;padding:.55rem .8rem;font-size:.88rem;line-height:1.5}
.review-additional{margin:2rem 0 1.5rem}.review-service-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.review-service-row h4{font-family:var(--font-body);font-size:1.1rem;font-weight:700}.review-service-row p{margin:.5rem 0}.review-after{max-width:850px;color:var(--ink-soft)}
.review-reading{max-width:920px}.review-reading>section{margin-bottom:2rem}.review-reading .faq-group h2{margin-bottom:1.25rem}
.review-reading .section-title{font-size:clamp(1.65rem,3vw,2.5rem);overflow-wrap:anywhere}
.form-trap{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.form-input,.form-textarea{max-width:100%;min-width:0;box-sizing:border-box}select.form-input{white-space:normal;width:100%}
.contact-grid>*,.review-packages>*,.review-service-row>*{min-width:0}.contact-email{overflow-wrap:anywhere}
.form-container .form-privacy{color:var(--ink-soft)}
.review-index{padding-top:3rem;padding-bottom:3rem}.review-index h2{margin-top:2rem}.review-index li{margin-bottom:.6rem}.review-table-wrap{overflow:auto;max-width:100%}.review-table-wrap table{width:100%;border-collapse:collapse}.review-table-wrap th,.review-table-wrap td{border:1px solid var(--line);padding:.75rem;vertical-align:top;min-width:220px;text-align:left}.review-table-wrap th:first-child{min-width:150px;overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
@media(max-width:900px){.review-process{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.review-process,.review-packages,.review-service-row{grid-template-columns:1fr}.review-process{gap:.5rem}.review-service-row{gap:.25rem}.review-process>li{padding:1rem 0}.review-online{gap:1rem;align-items:start}.review-online img{width:75px;height:100px}.review-actions .button{max-width:100%;white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
p[data-content-id] { white-space: pre-line; }
/* Shared problem choices in the help section and contact form. */
.service-examples.service-choices li { padding-left: 0; }
.service-examples.service-choices li::before { display: none; }
.concern-choice { display: flex; align-items: center; gap: .55rem; cursor: pointer; padding: .5rem .6rem; border-radius: .5rem; line-height: 1.45; }
.concern-choice input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; accent-color: #685582; }
.concern-choice:has(input:checked) { background: #eee7f5; color: #30233e; }
.concern-choice:has(input:focus-visible) { outline: 2px solid #685582; outline-offset: 2px; }
.concern-picker { border: 1px solid #b8aebf; border-radius: .75rem; background: #fff; }
.concern-picker summary { cursor: pointer; padding: .85rem 1rem; }
.concern-options { max-height: 24rem; overflow-y: auto; padding: 0 1rem 1rem; }
.concern-options fieldset { border: 0; padding: .75rem 0; min-width: 0; margin: 0; }
.concern-options legend { font-weight: 600; padding-top: .75rem; }
.concern-selected { overflow-wrap: anywhere; }
.help-contact { margin-top: 1.5rem; padding: 1.25rem; border-radius: 1rem; background: #f1ebf6; }
.help-contact[hidden] { display: none; }
.help-contact p { margin-bottom: 1rem; }
/* Message builder: reuse existing form controls and keep actions responsive. */
.contact-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
.contact-actions > * { flex:1 1 12rem; white-space:normal; }
.contact-actions button:disabled { opacity:.55; cursor:not-allowed; }
.contact-plain-links { display:flex; flex-wrap:wrap; gap:.5rem 1rem; overflow-wrap:anywhere; }
#contact-preview { min-height:10rem; resize:vertical; }
.form-container [hidden] { display:none; }
/* About story: one reading column alongside Connor’s portrait. */
.page-hero.about-introduction h1 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.15; letter-spacing:-.035em; }
.about-introduction-grid { margin-top:0; align-items:start; }
.about-introduction-grid > .page-hero-photo { grid-column:2; grid-row:1; margin-top:1rem; position:sticky; top:6rem; }
.about-introduction-opening { grid-column:1; grid-row:1; }
.about-introduction .about-introduction-opening p { margin:0 0 1rem; color:var(--ink-soft); font-size:1.04rem; line-height:1.7; }
.about-introduction-opening p:last-child { margin-bottom:0; }
.about-introduction-opening strong { color:var(--ink); }
@media(max-width:980px) {
  .about-introduction-grid { gap:2rem; }
  .about-introduction-grid > .page-hero-photo { grid-column:1; grid-row:1; position:relative; top:auto; }
  .about-introduction-opening { grid-column:1; grid-row:2; }
  .about-introduction-opening { width:100%; max-width:47.5rem; margin-inline:0; }
}

/* Original Telegram artwork: retain the complete white panel and gold surround. */
.direct-contact-card { display:flex; flex-direction:column; align-items:center; gap:.85rem; width:100%; box-sizing:border-box; margin:0; padding:1.1rem; border:1px solid #e6dbc5; border-radius:22px; background:#fffaf1; color:#49313f; text-decoration:none; box-shadow:0 5px 20px #24132212; }
.direct-contact-card:hover { border-color:#b88a36; }
.direct-contact-card:focus-visible { outline:3px solid #e5bc61; outline-offset:5px; }
.direct-contact-title { display:flex; align-items:center; gap:.65rem; width:100%; font-weight:600; font-size:.9rem; line-height:1.4; }
.telegram-qr-arrow { margin-left:auto; color:#a9751a; font-size:1.1rem; }
.telegram-qr-image { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:center; border-radius:14px; }
.telegram-qr-hint { font-size:.8rem; line-height:1.5; text-align:center; color:#796956; }

/* Equal-weight direct contact options and a compact privacy reading layout. */
.contact-copy { position:static; }
.direct-contact-cards { display:grid; gap:16px; width:100%; max-width:400px; margin-top:24px; }
.direct-contact-address { align-self:flex-start; overflow-wrap:anywhere; font-size:1.05rem; }
.privacy-section { padding:56px 0 64px; }
.privacy-reading { max-width:760px; margin-inline:auto; }
.privacy-reading h1 { margin:0; font-size:48px; line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.privacy-reading .privacy-subtitle { margin:16px 0 0; font-size:18px; line-height:1.7; }
.privacy-reading .privacy-body { margin:32px 0 0; font-size:18px; line-height:1.7; }
.privacy-action { margin-top:28px; display:flex; justify-content:flex-start; }
@media(max-width:680px) { .privacy-section { padding:36px 0 48px; } .privacy-reading h1 { font-size:32px; } }

/* Biography: open editorial sections, with one closing yellow accent. */
.about-biography-section { margin-top:2rem; }
.about-biography-section .section-title { max-width:none; margin:0 0 1rem; font-size:clamp(1.65rem,2.8vw,2.2rem); line-height:1.2; }
.about-biography-section .rich-copy { max-width:48rem; }
.about-biography-section p { line-height:1.75; }
.about-biography-section p:last-child { margin-bottom:0; }
.about-closing-quote { position:static; display:flex; align-items:center; gap:2rem; margin-top:2rem; padding:clamp(1.5rem,3vw,2rem); }
.about-closing-quote img { flex:0 0 auto; width:4rem; margin:0; }
.about-closing-quote blockquote { margin:0; font-size:clamp(1.2rem,2.3vw,1.55rem); line-height:1.55; }
@media(max-width:680px) {
  .about-closing-quote { display:block; }
  .about-closing-quote img { width:3rem; margin-bottom:1rem; }
}

.contact-button-pair{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.hero-actions .button{width:auto}
.telegram-direct-button{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;flex:0 0 52px;border-radius:50%;background:#229ED9;color:#fff;text-decoration:none;transition:background .15s ease}
.telegram-direct-button:hover{background:#1685ba;color:#fff}
.telegram-direct-button:focus-visible{outline:3px solid #49313f;outline-offset:4px}
.telegram-direct-button .telegram-button-icon{width:25px;height:25px}
.telegram-button-icon{width:1.15em;height:1.15em;flex:none}
#contact{scroll-margin-top:6rem}
#contact-format{width:100%;max-width:100%;font:inherit}
