/* Only the four bound private pilot projections. Saved site elements are untouched. */
#sol-main-content.sol-rollout { --rollout-surface:#f7f4ef; --rollout-paper:#fff; --rollout-ink:#333031; --rollout-body:#51494a; --rollout-accent:#816332; --rollout-line:#d8d0c7; background:var(--rollout-surface); color:var(--rollout-body); padding-top:0; font:400 18px/1.65 'Source Sans Pro',Arial,sans-serif; }
.sol-rollout *, .sol-rollout *::before, .sol-rollout *::after { box-sizing:border-box; }
.sol-rollout .rollout-width { width:calc(100% - 80px); max-width:1160px; margin-inline:auto; }
.sol-rollout h1,.sol-rollout h2,.sol-rollout h3 { font-family:Fraunces,Georgia,serif; font-weight:400; color:var(--rollout-ink); text-transform:none; letter-spacing:-.025em; overflow-wrap:break-word; }
.sol-rollout h1 { font-size:clamp(42px,5.6vw,76px); line-height:1.1; max-width:20ch; margin:28px 0; }
.sol-rollout h2 { font-size:clamp(28px,3vw,38px); line-height:1.2; margin:0 0 24px; }
.sol-rollout h3 { font-size:25px; line-height:1.3; margin:28px 0 16px; }
.sol-rollout p { margin:0 0 22px; font-size:inherit; line-height:inherit; overflow-wrap:anywhere; }
.sol-rollout a { color:var(--rollout-ink); text-underline-offset:4px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.sol-rollout a:hover { text-decoration-thickness:2px; }
.sol-rollout a:focus-visible,.sol-rollout summary:focus-visible,.sol-rollout button:focus-visible { outline:2px solid var(--rollout-accent); outline-offset:4px; }
.sol-rollout .rollout-intro { padding:40px 0 64px; border-bottom:1px solid var(--rollout-line); }
.sol-rollout .rollout-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:15px; margin-bottom:40px; }
.sol-rollout .rollout-eyebrow,.sol-rollout-service .rollout-intro p[data-rollout-source$='-0'],.sol-rollout .rollout-trust > div > p:first-child { font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--rollout-accent); }
.sol-rollout .rollout-lead { max-width:760px; font-size:22px; line-height:1.5; }
.sol-rollout .rollout-notice { font-size:16px; max-width:700px; }
.sol-rollout .rollout-actions { display:flex; flex-wrap:wrap; gap:24px 32px; align-items:center; margin-top:32px; }
.sol-rollout .rollout-button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 24px; background:var(--rollout-ink); border:1px solid var(--rollout-ink); color:#fff; text-decoration:none; font-size:16px; font-weight:600; line-height:1.5; letter-spacing:.025em; }
.sol-rollout .rollout-button:hover { background:#171617; color:#fff; text-decoration:none; }
.sol-rollout .rollout-text-link { display:inline-flex; align-items:center; gap:20px; min-height:48px; font-size:16px; font-weight:600; }
.sol-rollout .rollout-content { display:grid; grid-template-columns:260px minmax(0,1fr); column-gap:96px; padding-block:72px; align-items:start; }
.sol-rollout .rollout-story { min-width:0; }
.sol-rollout .rollout-planning { border-top:2px solid var(--rollout-accent); padding-top:28px; }
.sol-rollout .rollout-planning > div { margin-bottom:32px; }
.sol-rollout .rollout-planning h2 { font-family:'Source Sans Pro',Arial,sans-serif; font-size:17px; font-weight:600; letter-spacing:0; line-height:1.4; margin-bottom:10px; }
.sol-rollout .rollout-planning p { font-size:15px; line-height:1.6; margin:0; }
.sol-rollout .rollout-story-section { border-top:1px solid var(--rollout-line); padding-top:40px; margin-top:40px; scroll-margin-top:160px; }
.sol-rollout .rollout-story-section:first-child { margin-top:0; }
.sol-rollout .rollout-story > p:first-child { font-size:21px; line-height:1.6; }
.sol-rollout ul { padding-left:24px; margin:0 0 24px; }
.sol-rollout li { padding-left:6px; margin-bottom:12px; }
.sol-rollout .rollout-trust { background:var(--rollout-paper); border-block:1px solid var(--rollout-line); padding-block:48px; }
.sol-rollout .rollout-trust p:last-child { margin-bottom:0; }
.sol-rollout .rollout-end { background:var(--rollout-surface); padding:12px 0 64px; }
.sol-rollout .rollout-faqs details { border-top:1px solid var(--rollout-line); }
.sol-rollout .rollout-faqs details:last-child { border-bottom:1px solid var(--rollout-line); }
.sol-rollout .rollout-faqs summary { display:list-item; position:relative; cursor:pointer; padding:22px 36px 22px 0; list-style:none; font-size:20px; line-height:1.5; color:var(--rollout-ink); font-weight:600; }
.sol-rollout summary::-webkit-details-marker { display:none; }
.sol-rollout summary::after { content:'+'; position:absolute; right:2px; top:22px; font-size:24px; color:var(--rollout-accent); }
.sol-rollout details[open] summary::after { content:'−'; }
.sol-rollout .rollout-answer p { font-size:17px; }
.sol-rollout .rollout-gallery { background:var(--rollout-ink); color:#fff; padding-block:48px; scroll-margin-top:128px; }
.sol-rollout .rollout-gallery-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; align-items:baseline; margin-bottom:28px; }
.sol-rollout .rollout-gallery-heading > * { min-width:0; max-width:100%; }
.sol-rollout .rollout-gallery h2 { color:#fff; margin:0; }
.sol-rollout .rollout-gallery-heading p { font-size:15px; margin:0; color:#fff; }
.sol-rollout .rollout-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.sol-rollout .rollout-photo-grid figure { margin:0; min-width:0; }
.sol-rollout .rollout-photo-open { display:block; color:#fff; text-decoration:none; background:#211f20; }
.sol-rollout .rollout-photo-open img { display:block; width:100%; height:auto; max-width:100%; object-fit:contain; }
.sol-rollout .rollout-photo-open span { display:block; padding:12px 16px; border-top:1px solid #70696b; font-size:14px; color:#fff; text-align:right; }
.sol-rollout .rollout-photo-grid figcaption { color:#fff; padding:12px 0 0; font-size:15px; line-height:1.5; }
.sol-rollout-case .rollout-content { grid-template-columns:1fr; }
.sol-rollout .rollout-case-story { max-width:780px; margin-inline:auto; }
.sol-rollout #sol-rollout-photo-dialog { box-sizing:border-box; width:min(1120px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); border:1px solid var(--rollout-line); background:var(--rollout-ink); color:#fff; padding:24px; }
.sol-rollout #sol-rollout-photo-dialog::backdrop { background:rgb(0 0 0 / .85); }
.sol-rollout .rollout-dialog-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.sol-rollout #rollout-photo-title { color:#fff; font:400 20px/1.4 'Source Sans Pro',Arial,sans-serif; letter-spacing:0; margin:0; }
.sol-rollout .rollout-dialog-close { flex-shrink:0; min-height:48px; min-width:80px; border:1px solid #cfc8c0; background:transparent; color:#fff; font:600 16px/1.5 'Source Sans Pro',Arial,sans-serif; padding:8px 12px; }
.sol-rollout .rollout-dialog-image { display:block; width:100%; height:auto; max-height:calc(100dvh - 200px); object-fit:contain; }
.sol-rollout #rollout-photo-caption { font-size:15px; line-height:1.5; margin:16px 0 0; color:#fff; }
html.sol-rollout-dialog-open { overflow:hidden; }
@media(max-width:1023px) { .sol-rollout .rollout-width { width:calc(100% - 64px); } .sol-rollout .rollout-content { grid-template-columns:210px minmax(0,1fr); gap:40px; } .sol-rollout-case .rollout-content { grid-template-columns:1fr; } }
@media(max-width:679px) { #sol-main-content.sol-rollout { padding-top:0; } .sol-rollout .rollout-width { width:calc(100% - 40px); } .sol-rollout .rollout-intro { padding:28px 0 40px; } .sol-rollout .rollout-breadcrumb { margin-bottom:28px; } .sol-rollout h1 { font-size:clamp(36px,9.5vw,54px); margin:22px 0; } .sol-rollout h2 { font-size:29px; } .sol-rollout .rollout-lead { font-size:20px; } .sol-rollout .rollout-content { display:flex; flex-direction:column; padding-block:40px; gap:36px; } .sol-rollout .rollout-planning { order:2; padding-top:24px; } .sol-rollout .rollout-story { width:100%; } .sol-rollout .rollout-photo-grid { grid-template-columns:1fr; gap:28px; } .sol-rollout .rollout-gallery { padding-block:32px; } .sol-rollout .rollout-story-section { padding-top:28px; margin-top:28px; } .sol-rollout .rollout-actions { gap:16px; } .sol-rollout .rollout-button { width:100%; } .sol-rollout .rollout-end { padding-bottom:40px; } .sol-rollout .rollout-faqs summary { font-size:18px; } .sol-rollout #sol-rollout-photo-dialog { padding:16px; } }
@media(prefers-reduced-motion:reduce) { .sol-rollout,.sol-rollout * { scroll-behavior:auto; transition:none; animation:none; } }

.sol-rollout .rollout-anchor { display:block; scroll-margin-top:190px; }

/* The General Dentistry and Composite Bonding visit guides use the shared rollout palette. */
.sol-rollout .sol-patient-request-note {
  margin: 14px 0 0;
  max-width: 58ch;
  font-size: 16px;
}

.sol-rollout .sol-patient-request-note + .rollout-notice { margin-top: 12px; }

.sol-rollout .sol-patient-journey {
  padding-block: clamp(32px, 5vw, 68px);
  background: var(--rollout-paper);
  border-bottom: 1px solid var(--rollout-line);
}

.sol-rollout #sol-patient-visit {
  scroll-margin-top: 152px;
  text-wrap: balance;
}

.sol-rollout #sol-patient-visit:focus-visible {
  outline: 2px solid var(--rollout-accent);
  outline-offset: 4px;
}

.sol-rollout .sol-patient-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.sol-rollout .sol-patient-steps > div {
  padding-top: 16px;
  border-top: 1px solid var(--rollout-line);
}

.sol-rollout .sol-patient-journey h3 { margin: 0 0 8px; }
.sol-rollout .sol-patient-journey p { margin: 0; max-width: 60ch; }

.sol-rollout .sol-patient-resources {
  margin-top: 32px;
  padding-top: 18px;
  border-top: 1px solid var(--rollout-line);
}

.sol-rollout .sol-patient-resources ul { margin-bottom: 8px; }
.sol-rollout .sol-patient-resources li { margin-bottom: 4px; }
.sol-rollout .sol-patient-resources a { display: inline-block; padding-block: 5px; }
.sol-rollout .sol-patient-resources p { font-size: 16px; }

@media (max-width: 767px) {
  .sol-rollout .sol-patient-steps { grid-template-columns: 1fr; gap: 16px; }
  .sol-rollout .sol-patient-journey h3 { font-size: 22px; }
}
