/* Scoped to the enhanced service pages. No global theme or form-field overrides. */
.rny-service-ux { --service-ink:#203a2b; --service-line:#d8dfd6; --service-paper:#f4f5f0; }
.rny-service-ux:not(.rny-service-inline) .chat-form__prompt { display:none!important; }
.rny-service-ux main>.grid-container { max-width:1160px; padding-inline:24px; }
.rny-service-ux .rny-service-layout { display:block; margin-inline:0; }
.rny-service-ux .rny-service-content,.rny-service-ux .rny-service-quote { width:100%; margin-inline:0; min-width:0; }
.rny-service-ux .rny-service-content { color:#28332b; font-size:1.075rem; line-height:1.7; }
.rny-service-content .rny-service-section { padding:3rem 0; border-bottom:1px solid var(--service-line); }
.rny-service-content .rny-service-section>h2 { margin:0 0 1.15rem; max-width:32ch; color:var(--service-ink); font-family:Lato,sans-serif; font-weight:700; font-size:clamp(1.7rem,2.7vw,2.5rem); line-height:1.2; }
.rny-service-content h3 { color:var(--service-ink); font-size:1.3rem; line-height:1.35; margin-top:0; }
.rny-service-content p { max-width:76ch; margin-bottom:1rem; }
.rny-service-content hr { display:none; }
.rny-service-content .rny-service-intro { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); column-gap:3rem; padding-top:1.5rem; border-bottom:0; }
.rny-service-content .rny-service-intro>h2 { grid-column:1; grid-row:1/5; max-width:22ch; font-size:clamp(2rem,3.2vw,2.8rem); }
.rny-service-intro>p,.rny-service-intro>.wp-block-buttons { grid-column:2; }
.rny-service-intro>ul { grid-column:1/-1; }
.rny-service-intro>p:first-of-type { color:var(--service-ink); font-size:1.25rem; max-width:65ch; }
.rny-service-intro>ul { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; list-style:none; margin:1.5rem 0; padding:0; font-size:.95rem; font-weight:700; }
.rny-service-intro>ul li { border-left:3px solid #64833e; padding-left:.65rem; }
.rny-service-content .wp-block-button__link { background:#294c31; color:white; border-radius:5px; padding:.9rem 1.4rem; font-weight:700; font-size:1.05rem; text-decoration:none; }
.rny-service-content .wp-block-button__link:hover { background:#183720; }
.rny-service-intro>.wp-block-buttons { margin-bottom:1.25rem; }
.rny-service-nav { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding:1rem 0; border-block:1px solid var(--service-line); }
.rny-service-nav a { color:var(--service-ink); padding:.5rem 0; text-decoration:underline; text-underline-offset:5px; font-weight:700; }
.rny-service-content .rny-service-fit { margin-top:2rem; padding:2rem; background:var(--service-paper); border:1px solid var(--service-line); border-left:5px solid #64833e; border-radius:5px; }
.rny-service-project-types>ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem 2rem; margin:1.5rem 0 0; padding-left:1.25rem; }
.rny-service-scope>ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; padding:0; margin:1.5rem 0 0; list-style:none; }
.rny-service-scope>ul li { border-top:1px solid var(--service-line); padding:.85rem 0 .85rem 1.4rem; position:relative; }
.rny-service-scope>ul li::before { content:'\2022'; position:absolute; left:0; color:#47632f; font-weight:700; }
.rny-service-process { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:0 3rem; align-items:start; }
.rny-service-process>h2 { grid-column:1/-1; }
.rny-service-steps .rny-service-item { border-left:2px solid var(--service-line); padding:0 0 1.2rem 1.4rem; }
.rny-service-content .rny-service-photos { display:block; margin:0; max-width:none; }
.rny-service-content .rny-service-photos figure:only-child { max-width:none; }
.rny-service-content .rny-service-photos img { width:100%; border-radius:6px; }
.rny-service-content .rny-service-photos figcaption { font-size:.9rem; padding-top:.65rem; color:#4b584f; }
.rny-service-process .rny-service-photos img { aspect-ratio:4/5; object-fit:cover; object-position:50% 64%; }
.rny-service-comparison table { width:100%; border-collapse:collapse; font-size:1rem; }
.rny-service-comparison td,.rny-service-comparison th { padding:1rem; text-align:left; vertical-align:top; border:1px solid var(--service-line); }
.rny-service-comparison th { background:var(--service-ink); color:#fff; }
.rny-service-comparison tr:last-child { background:#eaf0e3; }
.rny-service-comparison td:first-child { width:30%; font-weight:700; }
.rny-service-projects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.rny-service-projects>.rny-service-item { padding:1.5rem; background:var(--service-paper); border-radius:6px; }
.rny-service-projects>.rny-service-project-story { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:3rem; padding:2rem; align-items:center; }
.rny-service-project-story .rny-service-photos img { aspect-ratio:16/10; object-fit:cover; }
.rny-service-reasons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.rny-service-faqs details { border-top:1px solid var(--service-line); padding:1rem 0; }
.rny-service-faqs summary { cursor:pointer; padding:.4rem 2rem .4rem 0; color:var(--service-ink); }
.rny-service-faqs summary h3 { display:inline; font-size:1.1rem; margin:0; }
.rny-service-faqs details p { padding-left:1.2rem; margin-top:.75rem; }
.rny-service-content [data-section="h-ready-to-get-started"] { padding:2rem; margin-top:2rem; background:var(--service-paper); border-radius:6px; }
.rny-service-ux .rny-service-quote { padding:2.5rem 0; max-width:860px; margin:auto; }
.rny-service-quote .sidebar__form { position:static; }
.rny-service-ux :is(h2,h3,.wpcf7) { scroll-margin-top:7rem; }
.rny-service-content :is(a,summary):focus-visible { outline:3px solid #174f90; outline-offset:5px; }
.rny-service-ux .rny-service-content * { min-width:0; overflow-wrap:break-word; }
@media(max-width:767px) {
 .rny-service-ux main>.grid-container { padding-inline:16px; }
 .rny-service-content .rny-service-intro { display:block; }
 .rny-service-content .rny-service-section { padding-block:2rem; }
 .rny-service-content .rny-service-fit,.rny-service-content [data-section="h-ready-to-get-started"] { padding:1.25rem; }
 .rny-service-project-types>ul,.rny-service-scope>ul { grid-template-columns:minmax(0,1fr); }
 .rny-service-process,.rny-service-projects,.rny-service-reasons,.rny-service-projects>.rny-service-project-story { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
 .rny-service-projects>.rny-service-project-story { padding:1.25rem; }
 .rny-service-process .rny-service-photos img { aspect-ratio:4/3; }
 .rny-service-comparison td,.rny-service-comparison th { padding:.65rem; font-size:.95rem; }
 .rny-service-comparison td:first-child { width:38%; }
}
@media print { .rny-service-faqs details>* { display:block!important; } .rny-service-nav { display:none; } }
/* Shared presentation; each route chooses only relevant patterns. */
.rny-service-content .rny-service-closing,.rny-service-content .rny-service-embedded { padding:2rem; margin-top:2rem; background:var(--service-paper); border:1px solid var(--service-line); border-radius:6px; }
.rny-service-content .rny-service-embedded h2 { font:700 1.8rem/1.25 Lato,sans-serif; color:var(--service-ink); }
.rny-service-content .rny-service-intro { align-items:start; }
.rny-service-intro>.wp-block-buttons { justify-content:flex-start; }
.rny-service-content h3 { font-family:Lato,sans-serif; font-weight:700; }
.rny-service-options,.rny-service-readiness,.rny-service-process-text>.rny-service-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.rny-service-options>.rny-service-item,.rny-service-logistics>.rny-service-item { background:var(--service-paper); border:1px solid var(--service-line); border-radius:6px; padding:1.5rem; }
.rny-service-options>.rny-service-project-story { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:2.5rem; align-items:center; }
.rny-service-options .rny-service-project-story img { aspect-ratio:4/3; object-fit:cover; }
.rny-service-options>.rny-service-item a { font-weight:700; text-underline-offset:4px; }
.rny-service-options>.rny-service-item ul { padding-left:1.2rem; }
.rny-service-reasons { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.rny-service-logistics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
[data-service-ux="delivery"] .rny-service-logistics { grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-service-ux="delivery"] .rny-service-logistics>.rny-service-item:last-child { grid-column:1/-1; }
.rny-service-material-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-block:1.5rem; }
.rny-service-material-links p { margin:0; }
.rny-service-material-links a { display:flex; align-items:center; height:100%; min-height:48px; padding:.7rem 1rem; background:var(--service-paper); border:1px solid var(--service-line); border-radius:5px; color:var(--service-ink); font-weight:700; text-underline-offset:3px; }
.rny-service-nav .rny-service-inquiry-link { margin-left:auto; }
.rny-service-ux [data-rny-native-intake] { scroll-margin-top:7rem; }
.rny-service-content .rny-service-existing-card { box-shadow:none; border:1px solid var(--service-line); padding:1.5rem; background:var(--service-paper); border-radius:6px; }
.rny-service-existing-card>.grid-x { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; margin:0; }
.rny-service-existing-card>.grid-x>.cell { width:auto; margin:0; }
.rny-service-existing-card>.grid-x>.cell:has(img) { order:2; }
.rny-service-existing-card>.grid-x>.cell:not(:has(img)) { order:1; }
.rny-service-existing-card img { width:100%; height:auto; border-radius:5px; }
.rny-service-comparison tr:last-child { background:transparent; }
.rny-service-comparison tbody tr:nth-child(even) { background:var(--service-paper); }
.rny-service-comparison td:first-child { width:auto; min-width:8rem; }
.rny-service-faqs .rny-service-photos { max-width:620px; margin:1rem 0; }
.rny-service-faqs .rny-service-photos img { max-height:460px; object-fit:cover; }
@media(max-width:900px) { .rny-service-logistics { grid-template-columns:minmax(0,1fr); } }
@media(max-width:767px) {
 .rny-service-options,.rny-service-readiness,.rny-service-process-text>.rny-service-steps,.rny-service-options>.rny-service-project-story,.rny-service-existing-card>.grid-x,[data-service-ux="delivery"] .rny-service-logistics { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
 .rny-service-content .rny-service-closing,.rny-service-content .rny-service-embedded,.rny-service-content .rny-service-existing-card { padding:1.25rem; }
 .rny-service-material-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rny-service-reasons { grid-template-columns:minmax(0,1fr); }
 .rny-service-nav .rny-service-inquiry-link { margin-left:0; }
 .rny-service-comparison td:first-child { min-width:0; }
 .rny-service-comparison table { table-layout:fixed; }
 .rny-service-comparison td,.rny-service-comparison th { overflow-wrap:anywhere; }
 .rny-service-content .wp-block-columns { display:block; }
 .rny-service-content .wp-block-column { margin-bottom:1.5rem; }
}

/* Keep service links distinguishable and readable on the pale panels. */
.rny-service-content a:not(.wp-block-button__link) { color:#294c31; text-decoration:underline; text-underline-offset:3px; }

@media(min-width:768px) {
 .rny-service-ux :is(h2,h3,.wpcf7,[data-rny-native-intake]) { scroll-margin-top:10rem; }
}

/* Owner walkthrough corrections: clear actions, true table sections, uncropped photos. */
.rny-service-content :is(.wp-block-button__link,.rny-service-action,.rny-service-inquiry-link),
.rny-service-content button,.rny-service-quote button[type="submit"] {
 display:inline-flex; align-items:center; justify-content:center; min-height:48px;
 padding:.75rem 1.1rem; border:2px solid #294c31; border-radius:5px;
 font:700 1rem/1.4 Lato,sans-serif; text-align:center; cursor:pointer;
}
.rny-service-content a.rny-service-action,.rny-service-content a.rny-service-inquiry-link {
 color:#294c31; background:#fff; text-decoration:underline; text-underline-offset:3px;
}
.rny-service-content :is(.wp-block-button__link,button),.rny-service-quote button[type="submit"] { color:#fff; background:#294c31; }
.rny-service-content a:hover { text-decoration-thickness:2px; }
.rny-service-content :is(.rny-service-action,.rny-service-inquiry-link,.rny-service-material-links a):hover { background:#e8eee4; border-color:#183720; }
.rny-service-content :is(.wp-block-button__link,button):hover,.rny-service-quote button[type="submit"]:hover { background:#183720; }
.rny-service-ux :is(a,button,summary,input,select,textarea):focus-visible { outline:3px solid #174f90; outline-offset:4px; }
.rny-service-ux button:disabled { cursor:not-allowed; opacity:.55; }
.rny-service-content .rny-service-material-links a { border:2px solid #294c31; }
.rny-service-content .rny-service-nav { align-items:center; }
.rny-service-content .rny-service-nav a:not(.rny-service-inquiry-link) { display:inline-flex; align-items:center; min-height:44px; }
.rny-service-content .rny-service-comparison thead th { background:#203a2b; color:#fff; }
.rny-service-content .rny-service-comparison tbody tr:nth-child(odd),
.rny-service-content .rny-service-comparison tbody tr:nth-child(odd)>* { background:#f4f5f0; color:#28332b; }
.rny-service-content .rny-service-comparison tbody tr:nth-child(even),
.rny-service-content .rny-service-comparison tbody tr:nth-child(even)>* { background:#fff; color:#28332b; }
.rny-service-content :is(.rny-service-photos,.rny-service-existing-card) img:not(.emoji) {
 display:block; width:auto; height:auto; max-width:100%; max-height:400px;
 aspect-ratio:auto; object-fit:contain; margin-inline:auto;
}
.rny-service-content .rny-service-photos figure { margin:0; }
.rny-service-content :is(.rny-service-project-story,.rny-service-existing-card>.grid-x) { align-items:start; }
.rny-service-content .rny-service-existing-card .cell { padding-block:0; }
.rny-service-content .rny-service-steps .rny-service-item:last-child { padding-bottom:0; }
@media(max-width:900px) {
 .rny-service-process,.rny-service-projects>.rny-service-project-story,.rny-service-options>.rny-service-project-story,.rny-service-existing-card>.grid-x { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
 .rny-service-content :is(.rny-service-photos,.rny-service-existing-card) img:not(.emoji) { max-height:360px; }
}

/* Remove the inherited sidebar scroll box; the page/dialog owns scrolling. */
.rny-service-ux .rny-service-quote .sidebar__form { max-height:none; height:auto; overflow:visible; position:static; background:#f4f5f0; color:#203a2b; border:1px solid #d8dfd6; border-radius:8px; padding:1.5rem; }
.rny-service-ux .rny-service-quote :is(label,legend,p,h2,h3) { color:#203a2b; }
.rny-service-ux .rny-service-quote h2 { font:700 1.8rem/1.25 Lato,sans-serif; }
.rny-service-ux .rny-service-quote :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),select,textarea) { width:100%; max-width:none; background:#fff; color:#203a2b; border:1px solid #66766a; border-radius:4px; min-height:44px; }
.rny-service-ux .rny-service-quote :is(input,select,textarea)[aria-invalid="true"] { border:2px solid #a42c26; }
.rny-service-ux .rny-service-quote .wpcf7-not-valid-tip { color:#a42c26; }
.rny-service-ux .rny-service-quote a { color:#294c31; text-decoration:underline; }
.rny-quote-dialog { width:min(900px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px); padding:0; border:1px solid #66766a; border-radius:12px; color:#203a2b; background:#f4f5f0; overflow:hidden; }
.rny-quote-dialog[open] { display:flex; flex-direction:column; }
.rny-quote-dialog::backdrop { background:rgb(20 35 26 / .65); }
.rny-quote-header { display:flex; flex:none; gap:1rem; align-items:center; justify-content:space-between; padding:1rem 1.5rem; background:#fff; border-bottom:1px solid #d8dfd6; }
.rny-quote-header h2 { margin:0; font:700 1.4rem/1.3 Lato,sans-serif; }
.rny-quote-close { flex:none; border:2px solid #294c31; border-radius:5px; padding:.65rem 1rem; min-height:44px; background:white; color:#294c31; font-weight:700; cursor:pointer; }
.rny-quote-close:hover { background:#e8eee4; }
.rny-quote-body { overflow:auto; overscroll-behavior:contain; min-height:0; padding:1.5rem; scroll-padding-block:1rem; }
.rny-quote-body .rny-service-quote { padding:0; max-width:none; }
.rny-quote-body .sidebar__form { border:0!important; padding:1rem 0!important; margin:0!important; }
.rny-quote-fallback { display:inline-block; color:#294c31; text-decoration:underline; margin-bottom:.5rem; }
@media(max-width:767px) {
 .rny-quote-dialog { width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
 .rny-quote-header { padding:1rem; }
 .rny-quote-header h2 { font-size:1.1rem; }
 .rny-quote-body { padding:1rem 1rem max(1.5rem,env(safe-area-inset-bottom)); }
}
.rny-service-ux .rny-service-quote input[type="submit"] { display:inline-block; min-height:48px; padding:.75rem 1.25rem; border:2px solid #294c31; border-radius:5px; background:#294c31; color:#fff; font:700 1rem/1.4 Lato,sans-serif; cursor:pointer; }
.rny-service-ux .rny-service-quote input[type="submit"]:hover { background:#183720; }
.rny-service-ux .rny-service-quote input[type="submit"]:disabled { opacity:.55; cursor:not-allowed; }

.rny-service-paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin:0 0 2rem; }
.rny-service-path { padding:1.75rem; border:1px solid #d8dfd6; border-top:4px solid #294c31; background:#f4f5f0; border-radius:6px; }
.rny-service-path h2 { font:700 1.75rem/1.2 Lato,sans-serif; color:#203a2b; }
.rny-service-path .rny-service-path-intent { font-weight:700; margin-bottom:.5rem; }
.rny-service-path-links { display:flex; flex-wrap:wrap; gap:.65rem; }
@media(max-width:767px) { .rny-service-paths { grid-template-columns:minmax(0,1fr); } .rny-service-path { padding:1.25rem; } }
/* Process introductions belong above both columns, not in the steps/photo row. */
.rny-service-content .rny-service-process > p { grid-column:1 / -1; }

/* Installation's approved portrait photos and captions form one aligned unit. */
.rny-service-content[data-service-ux="installation"] .rny-service-photos figure:has(> img:is([src*="/IMG_4651-"],[src*="/IMG_1453-"])) { width:min(100%,300px); margin-inline:auto; }
.rny-service-content[data-service-ux="installation"] .rny-service-materials-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px); gap:0 2rem; align-items:start; }
.rny-service-materials-story > h2 { grid-column:1 / -1; }
@media(max-width:900px) {
 .rny-service-content[data-service-ux="installation"] .rny-service-photos figure:has(> img:is([src*="/IMG_4651-"],[src*="/IMG_1453-"])) { width:min(100%,270px); }
 .rny-service-content[data-service-ux="installation"] .rny-service-materials-story { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
}