/* Supporting ARC pages. All selectors remain inside the concept's class system. */
.arc-soft-section { background:var(--arc-paper); }
.arc-site label.arc-field { display:block; margin:0 0 22px; font-size:14px; font-weight:600; line-height:1.5; }
.arc-site label.arc-field > input,.arc-site label.arc-field > select,.arc-site label.arc-field > textarea { margin-top:9px; font-weight:400; }
.arc-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.arc-form-row > * { min-width:0; }
.arc-filter { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:19px; }
.arc-filter button { padding:12px 24px; min-height:48px; border:1px solid var(--arc-line); border-radius:30px; background:#fff; color:var(--arc-ink); font-size:15px; font-weight:500; }
.arc-filter button[aria-pressed='true'] { color:#fff; border-color:var(--arc-green); background:var(--arc-green); }
.arc-treatment-tile { padding:0; overflow:hidden; display:flex; flex-direction:column; }
.arc-treatment-art { position:relative; height:225px; padding:25px; text-decoration:none; overflow:hidden; color:var(--arc-green); }
.arc-art-green { background:#e1e9dd; }
.arc-art-lime { background:var(--arc-lime); }
.arc-art-peach { background:var(--arc-peach); }
.arc-treatment-art > span:first-child { position:relative; z-index:1; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.arc-treatment-art .arc-treatment-symbol { position:absolute; left:25px; bottom:20px; font-size:74px; font-weight:400; line-height:1; letter-spacing:-.08em; }
.arc-treatment-art::before,.arc-treatment-art::after { content:''; position:absolute; border:1px solid #154d3e45; border-radius:50%; width:190px; height:260px; right:22px; top:5px; transform:rotate(35deg); }
.arc-treatment-art::after { width:115px; right:60px; }
.arc-art-arrow { position:absolute; right:23px; bottom:23px; display:grid; place-items:center; width:41px; height:41px; border:1px solid #154d3e55; border-radius:50%; font-size:23px; }
.arc-treatment-art:hover .arc-art-arrow { background:var(--arc-green); color:#fff; }
.arc-treatment-copy { display:flex; flex-direction:column; flex:1; padding:29px; }
.arc-treatment-copy h3 { margin-bottom:17px; }
.arc-treatment-copy h3 a { text-decoration:none; }
.arc-treatment-copy > p:not(.arc-treatment-price) { font-size:16px; }
.arc-treatment-price { margin-top:auto; margin-bottom:16px; padding-top:20px; border-top:1px solid var(--arc-line); }
.arc-treatment-price strong { color:var(--arc-ink); font-size:29px; font-weight:500; letter-spacing:-.045em; }
.arc-treatment-price > span { display:block; font-size:13px; }
.arc-treatment-copy > .arc-text-link { align-self:flex-start; }
.arc-detail-hero .arc-split { align-items:center; }
.arc-detail-hero h1 { margin-top:25px; }
.arc-detail-hero .arc-eyebrow { margin-top:35px; }
.arc-detail-price { color:var(--arc-ink); font-size:43px; font-weight:500; letter-spacing:-.05em; }
.arc-detail-price > span { display:block; font-size:14px; color:var(--arc-muted); letter-spacing:0; }
.arc-detail-hero .arc-note { margin-top:19px; }
.arc-detail-visual { position:relative; min-height:570px; border-radius:160px 160px 14px 14px; padding:35px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.arc-detail-visual > .arc-eyebrow { margin-top:16px; text-align:center; }
.arc-detail-visual > p:not(.arc-eyebrow) { position:relative; z-index:1; margin:auto 0 50px; color:var(--arc-green); font-size:44px; line-height:1.1; letter-spacing:-.05em; }
.arc-detail-visual > span:last-child { position:relative; font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:600; }
.arc-detail-orbit { position:absolute; width:260px; height:360px; top:80px; right:50px; border:1px solid #154d3e50; border-radius:50%; transform:rotate(30deg); }
.arc-detail-orbit::before,.arc-detail-orbit::after { content:''; position:absolute; inset:0 45px; border:1px solid #154d3e50; border-radius:50%; }
.arc-detail-orbit::after { inset:0 85px; }
.arc-questions { padding:35px; background:var(--arc-paper); border-radius:14px; }
.arc-questions > div { display:flex; align-items:flex-start; gap:25px; border-top:1px solid var(--arc-line); padding:25px 0; }
.arc-questions > div:last-child { padding-bottom:0; }
.arc-questions > div > span { margin-top:4px; color:var(--arc-green); font-size:12px; font-weight:600; }
.arc-questions h3 { font-size:22px; line-height:1.35; margin:0; }
.arc-step-card > span,.arc-principle-index { display:block; font-size:13px; font-weight:600; color:var(--arc-green); margin-bottom:35px; }
.arc-step-card h3 { font-size:26px; }
.arc-price-note { display:flex; align-items:flex-start; gap:24px; padding:27px; border-radius:12px; background:var(--arc-paper); margin-top:35px; }
.arc-price-note > strong { color:var(--arc-green); font-size:48px; line-height:1.1; font-weight:500; letter-spacing:-.05em; }
.arc-price-note h3 { margin:0 0 12px; font-size:23px; }
.arc-price-note p { font-size:15px; margin:0; }
.arc-price-list > div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:23px 0; border-bottom:1px solid var(--arc-line); }
.arc-price-list > div:first-child { border-top:1px solid var(--arc-line); }
.arc-price-list a { font-size:19px; font-weight:500; text-decoration:none; line-height:1.45; }
.arc-price-list a > span { margin-left:10px; }
.arc-price-list p { margin:0; text-align:right; line-height:1.4; }
.arc-price-list strong { display:block; color:var(--arc-ink); font-size:25px; font-weight:500; }
.arc-price-list span { display:block; max-width:175px; font-size:12px; }
.arc-price-list a > span { display:inline; font-size:20px; }
.arc-price-list > .arc-note { text-align:left; margin-top:23px; }
.arc-estimator { padding:35px; background:#fff; border:1px solid var(--arc-line); border-radius:16px; box-shadow:0 12px 35px #18292305; }
.arc-estimator h3 { font-size:31px; margin-bottom:28px; }
.arc-estimator form > .arc-btn { width:100%; }
.arc-estimate-result { padding-top:20px; margin-top:25px; border-top:1px solid var(--arc-line); }
.arc-estimate-result > div { display:flex; justify-content:space-between; gap:20px; font-size:14px; margin-bottom:12px; }
.arc-estimate-result > div:nth-of-type(6) { padding:15px 0; margin-top:15px; border-top:1px solid var(--arc-line); font-size:19px; }
.arc-estimate-result strong { font-weight:600; white-space:nowrap; }
.arc-estimate-conclusion { padding:17px; border-radius:8px; background:var(--arc-lime); color:var(--arc-green); font-size:15px; font-weight:500; line-height:1.5; }
.arc-estimator > .arc-note { margin-bottom:0; }
.arc-plan-aside { padding:30px; border-radius:14px; background:var(--arc-peach); margin-top:35px; }
.arc-plan-aside > span { display:block; font-size:42px; margin-bottom:25px; }
.arc-plan-aside p { margin:0; font-size:17px; }
.arc-choice { display:flex; align-items:center; gap:14px; border:1px solid var(--arc-line); border-radius:10px; padding:18px; margin-bottom:12px; background:#fff; font-size:16px; line-height:1.5; cursor:pointer; }
.arc-choice:has(input:checked) { background:#edf3e4; border-color:var(--arc-green); }
.arc-choice input { width:18px; height:18px; flex-shrink:0; margin:0; accent-color:var(--arc-green); }
.arc-choice strong { display:block; font-weight:500; }
.arc-choice small { display:block; font-size:12px; color:var(--arc-muted); margin-top:5px; }
.arc-interest-form > .arc-btn { width:100%; }
.arc-interest-form > .arc-note { margin-top:18px; margin-bottom:0; }
.arc-plan-result { margin-top:30px; padding:25px; border:1px solid #c5d6b4; border-radius:12px; background:var(--arc-paper); }
.arc-plan-result p:not(.arc-eyebrow) { font-size:16px; }
.arc-plan-result > .arc-text-link { display:flex; width:fit-content; }
.arc-plan-result > .arc-btn { margin-top:18px; }
.arc-editorial-image { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; }
.arc-principle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.arc-principle-grid .arc-card { padding:38px; }
.arc-role-list > article { padding:27px 0; border-top:1px solid var(--arc-line); }
.arc-role-list > article:first-child { padding-top:0; border-top:0; }
.arc-role-list article > span { display:block; text-transform:uppercase; font-size:12px; color:var(--arc-green); letter-spacing:.07em; font-weight:600; margin-bottom:14px; }
.arc-role-list h3 { margin-bottom:17px; }
.arc-role-list p { font-size:17px; margin:0; }
.arc-visit-details { padding:0; margin:30px 0; }
.arc-visit-details > div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid var(--arc-line); font-size:15px; }
.arc-visit-details dt { font-weight:600; }
.arc-visit-details dd { margin:0; color:var(--arc-muted); }
.arc-visit-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 65px; }
.arc-visit-steps > article { display:flex; align-items:flex-start; gap:24px; padding-top:28px; border-top:1px solid #b9cabb; }
.arc-visit-steps > article > span { font-size:13px; color:var(--arc-green); font-weight:600; padding-top:5px; }
.arc-visit-steps p { font-size:17px; margin:0; }
.arc-faq-layout { display:grid; grid-template-columns:320px 1fr; gap:85px; align-items:start; }
.arc-faq-layout > aside { padding:30px; background:var(--arc-paper); border-radius:12px; }
.arc-faq-layout > aside h3 { font-size:24px; margin-top:40px; }
.arc-faq-layout > aside > p { font-size:16px; }
.arc-faq-layout > aside > .arc-btn { padding-inline:20px; width:100%; }
.arc-contact-option { border-top:1px solid var(--arc-line); padding-top:28px; margin-top:32px; }
.arc-contact-option > span { display:block; color:var(--arc-green); font-size:12px; font-weight:600; margin-bottom:16px; letter-spacing:.035em; }
.arc-contact-option p { font-size:17px; margin-bottom:5px; }
.arc-contact-form > h3 { font-size:34px; }
.arc-contact-form > p:not(.arc-eyebrow) { font-size:16px; }
.arc-contact-form > .arc-note { font-size:13px!important; }
.arc-contact-form > .arc-btn { width:100%; }
.arc-contact-response { padding:40px; border-radius:16px; background:var(--arc-paper); }
.arc-contact-response h2 { font-size:40px; }
.arc-contact-response > button { display:block; background:none; border:0; margin-top:20px; color:var(--arc-green); }

/* Consultation builder: a compact flow with a persistent explanation of the visit. */
.arc-book-hero { padding-bottom:70px; }
.arc-book-hero h1 { font-size:clamp(48px,5vw,72px); }
.arc-book-section { padding-top:55px; }
.arc-book-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr); align-items:start; gap:60px; }
.arc-booking { min-width:0; }
.arc-book-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; list-style:none; padding:0; margin:0 0 35px; }
.arc-book-progress li { padding-top:14px; border-top:2px solid var(--arc-line); color:var(--arc-muted); font-size:12px; line-height:1.4; font-weight:500; }
.arc-book-progress li > span { display:block; margin-bottom:8px; font-size:12px; }
.arc-book-progress li[aria-current='step'] { color:var(--arc-green); border-top-color:var(--arc-green); }
.arc-book-progress li.is-complete { border-top-color:#8fae79; }
.arc-book-message:empty { display:none; }
.arc-book-message { background:#edf3e4; color:var(--arc-green); padding:18px; border-radius:9px; font-size:15px; line-height:1.6; }
.arc-booking h2 { font-size:40px; margin-bottom:20px; }
.arc-booking [data-arc-book-step] > p:not(.arc-eyebrow) { font-size:17px; }
.arc-booking fieldset { border:0; min-width:0; margin:28px 0; padding:0; }
.arc-booking legend { font-size:15px; font-weight:600; padding:0 0 13px; }
.arc-booking .arc-form-row { margin-top:30px; }
.arc-booking .arc-field { margin-top:25px; }
.arc-booking .arc-form-row > .arc-field { margin-top:0; }
.arc-booking .arc-inline-assurance { color:var(--arc-green); padding:17px; background:var(--arc-paper); border-radius:7px; font-size:14px!important; }
.arc-booking .arc-actions { margin-top:30px; gap:14px; }
.arc-book-aside { border:1px solid var(--arc-line); border-radius:16px; padding:34px; background:var(--arc-paper); }
.arc-book-aside h2 { font-size:36px; }
.arc-consult-price { padding-top:24px; border-top:1px solid var(--arc-line); }
.arc-consult-price strong { display:block; font-size:56px; font-weight:500; color:var(--arc-green); line-height:1; letter-spacing:-.05em; }
.arc-consult-price span { display:block; margin-top:12px; color:var(--arc-muted); font-size:14px; }
.arc-aside-divider { height:1px; margin:30px 0; background:var(--arc-line); }
.arc-book-aside > p:last-of-type { margin-bottom:0; font-size:15px; }
.arc-book-aside > .arc-text-link { font-size:14px; }
.arc-review-list { margin:28px 0; padding:0; }
.arc-review-list > div { display:grid; grid-template-columns:135px minmax(0,1fr); gap:25px; padding:18px 0; border-bottom:1px solid var(--arc-line); }
.arc-review-list dt { font-size:13px; color:var(--arc-muted); }
.arc-review-list dd { margin:0; color:var(--arc-ink); font-size:16px; font-weight:500; overflow-wrap:anywhere; }
.arc-book-disclosure { background:var(--arc-paper); border-radius:10px; padding:23px; }
.arc-book-disclosure strong { font-weight:600; font-size:16px; }
.arc-book-disclosure p { margin:10px 0 0; font-size:14px; }
.arc-confirm-mark { display:grid; place-items:center; width:68px; height:68px; border-radius:50%; background:var(--arc-lime); color:var(--arc-green); font-size:31px; margin-bottom:26px; }
.arc-book-confirmation > p:not(.arc-eyebrow) { font-size:17px; }
.arc-book-confirmation .arc-actions .arc-btn { font-size:14px; padding-inline:22px; }
.arc-manage-actions { display:flex; flex-wrap:wrap; gap:15px 30px; margin-top:25px; }
.arc-manage-actions button { color:var(--arc-green); background:transparent; border:0; border-bottom:1px solid #aebeb3; padding:6px 0; font-size:14px; }

@media (max-width:1100px) {
    .arc-treatment-copy { padding:25px; }
    .arc-treatment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .arc-book-grid { gap:35px; grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); }
    .arc-book-aside { padding:27px; }
    .arc-book-aside h2 { font-size:31px; }
    .arc-faq-layout { gap:45px; grid-template-columns:290px minmax(0,1fr); }
    .arc-detail-visual { min-height:540px; }
    .arc-visit-details > div { grid-template-columns:115px 1fr; }
}
@media (max-width:850px) {
    .arc-book-grid { grid-template-columns:1fr; gap:45px; }
    .arc-book-aside { padding:30px; }
    .arc-book-aside h2 br { display:none; }
    .arc-book-aside .arc-check-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 25px; }
    .arc-book-aside .arc-check-list li { margin:0; }
    .arc-faq-layout { grid-template-columns:1fr; }
    .arc-faq-layout > aside h3 { margin-top:25px; }
    .arc-faq-layout > aside > .arc-btn { width:auto; }
    .arc-detail-visual { min-height:480px; }
    .arc-visit-steps { gap:35px; }
}
@media (max-width:640px) {
    .arc-treatment-grid,.arc-principle-grid,.arc-visit-steps,.arc-form-row { grid-template-columns:1fr; }
    .arc-form-row { gap:0; }
    .arc-treatment-art { height:215px; }
    .arc-treatment-copy { padding:25px; }
    .arc-treatment-copy h3 { font-size:28px; }
    .arc-detail-hero h1 { font-size:44px; }
    .arc-detail-visual { min-height:440px; }
    .arc-detail-visual > p:not(.arc-eyebrow) { font-size:39px; }
    .arc-detail-orbit { width:225px; right:35px; }
    .arc-questions,.arc-estimator,.arc-interest-form,.arc-contact-form { padding:25px; }
    .arc-questions h3 { font-size:21px; }
    .arc-questions > div { gap:18px; }
    .arc-price-note { padding:24px; }
    .arc-price-list a { font-size:17px; }
    .arc-price-list > div { gap:13px; }
    .arc-price-list > div > p { max-width:135px; }
    .arc-estimator h3 { font-size:29px; }
    .arc-estimate-result > div { font-size:13px; gap:10px; }
    .arc-estimate-result > div:nth-of-type(6) { font-size:18px; }
    .arc-plan-result { padding:22px; }
    .arc-principle-grid .arc-card { padding:28px; }
    .arc-visit-details > div { grid-template-columns:110px minmax(0,1fr); gap:12px; font-size:14px; }
    .arc-faq-layout > aside { padding:25px; }
    .arc-book-section { padding-top:35px; }
    .arc-book-progress { gap:8px; }
    .arc-book-progress li { font-size:12px; }
    .arc-booking h2 { font-size:34px; }
    .arc-booking .arc-actions { align-items:stretch; }
    .arc-booking .arc-actions > .arc-btn { flex-grow:1; padding-inline:19px; font-size:14px; }
    .arc-review-list > div { grid-template-columns:100px minmax(0,1fr); gap:16px; }
    .arc-review-list dd { font-size:15px; }
    .arc-book-aside .arc-check-list { grid-template-columns:1fr; }
    .arc-contact-response { padding:28px; }
    .arc-contact-response h2 { font-size:34px; }
    .arc-contact-response .arc-btn { padding-inline:22px; font-size:14px; }
}
