/* Solera content pages: samples, story, legal. */
.sol-page { padding: 28px 0 0; }
.sol-page-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 48px); }
.sol-page-head--center { text-align: center; margin-inline: auto; }
.sol-page-head h1 { margin: 10px 0 14px; }
.sol-page-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.sol-page-aside { display: grid; gap: 18px; position: sticky; top: 100px; }
.sol-aside-card { background: var(--white); border: 1px solid var(--edge); border-radius: var(--radius-lg); padding: 24px; }
.sol-aside-card h2 { font-size: 24px; margin-bottom: 12px; }
.sol-aside-card--phone { display: flex; gap: 14px; align-items: flex-start; background: var(--forest-soft); border-color: transparent; }
.sol-aside-card--phone .sol-ico { color: var(--accent); flex: none; margin-top: 4px; }
.sol-aside-card--phone p { margin: 0; font-size: 17px; }
.sol-steps { margin: 0; padding-left: 22px; display: grid; gap: 10px; font-size: 17px; color: var(--brown); }
.sol-steps strong { color: var(--cask); }

/* Forms */
.sol-form { display: grid; gap: 28px; }
.sol-hp { position: absolute; left: -9999px; }
.sol-fieldset { border: 1px solid var(--edge); border-radius: var(--radius-lg); background: var(--white); padding: 24px 24px 12px; margin: 0; }
.sol-fieldset legend { padding: 0 8px; font-size: 24px; }
.sol-form p { margin: 0 0 16px; }
.sol-form label { display: block; font-weight: 600; font-size: 16px; margin-bottom: 6px; color: var(--cask); }
.sol-form label .sol-muted { font-weight: 400; }
.sol-form input[type=text], .sol-form input[type=email], .sol-form input[type=tel], .sol-form textarea { width: 100%; min-height: 52px; border: 1.5px solid var(--edge); border-radius: var(--radius); background: var(--straw); padding: 0 14px; font: 400 17px var(--font-body); color: var(--cask); }
.sol-form input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--forest-soft); background: var(--white); }
.sol-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.sol-check { display: flex; gap: 12px; align-items: flex-start; }
.sol-check input { width: 22px; height: 22px; margin-top: 3px; accent-color: var(--accent); flex: none; }
.sol-check label { font-weight: 400; margin: 0; font-size: 16px; }
.sol-btn--lg { min-height: 58px; font-size: 19px; padding: 0 34px; justify-self: start; }
.sol-form-privacy { font-size: 15px; margin: -10px 0 0; }
.sol-form-error, .sol-form-success { border-radius: var(--radius-lg); padding: 18px 22px; background: var(--white); border: 1.5px solid var(--edge); }
.sol-form-error { border-color: #B5482B; color: #7A2E1A; }
.sol-form-success { padding: 32px; background: var(--forest-soft); border-color: transparent; }
.sol-form-success h2 { font-size: 30px; }
.sol-colour-picker { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.sol-colour-picker input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sol-colour-picker label { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px; border: 1.5px solid var(--edge); border-radius: 999px; cursor: pointer; font-weight: 500; margin: 0; font-size: 16px; background: var(--straw); }
.sol-colour-picker input:checked + label { border-color: var(--accent); background: var(--forest-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.sol-colour-picker input:focus-visible + label { outline: 3px solid var(--accent); outline-offset: 2px; }
.sol-colour-picker .sol-swatch-dot { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .12); flex: none; }
.sol-picker-note { font-size: 15px; }

/* Story */
.sol-story-figure { margin: 0 0 clamp(32px, 4vw, 56px); }
.sol-story-figure img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radius-lg); }
.sol-prose { max-width: 720px; margin: 0 auto; font-size: 19px; }
.sol-prose h2 { font-size: clamp(26px, 2.6vw, 34px); margin: 40px 0 12px; }
.sol-prose ul { padding-left: 22px; }
.sol-prose li { margin-bottom: 10px; }
.sol-story-sign { font-family: var(--font-head); font-style: italic; font-size: 28px; margin-top: 32px; color: var(--accent); }
.sol-story-cta { display: flex; gap: 12px; justify-content: center; margin: 48px 0 0; flex-wrap: wrap; }

/* Legal / plain pages */
.sol-page--plain .sol-page-head { max-width: 780px; }
.sol-plain-body { max-width: 780px; }
.sol-plain { max-width: 780px; }
.sol-plain-body h2 { font-size: 26px; margin: 36px 0 10px; }
.sol-plain-body p, .sol-plain-body li { font-size: 18px; color: var(--ink); }
.sol-plain-body ol, .sol-plain-body ul { padding-left: 24px; }
.sol-plain-body li { margin-bottom: 8px; }
.sol-plain h1 { margin-bottom: 20px; }
.sol-plain h2 { font-size: 28px; margin-top: 36px; }
.sol-todo, .sol-note { background: var(--forest-mist); border: 1px solid var(--forest-soft); border-radius: var(--radius); padding: 14px 18px; color: var(--ink-2); font-size: 16px; }
.sol-note strong { color: var(--forest); }

@media (max-width: 900px) {
	.sol-page-grid { grid-template-columns: 1fr; }
	.sol-page-aside { position: static; }
	.sol-grid-2 { grid-template-columns: 1fr; }
}
.sol-colour-picker li.is-disabled label { opacity: .45; cursor: not-allowed; }

/* Enquiry form */
.sol-enquiry-form { margin-top: 8px; }
.sol-enquiry-intro { color: var(--ink-2); margin: 0 0 14px; }
.sol-acc--ask .sol-acc-body .sol-form { max-width: 620px; }
.sol-acc--ask textarea { width: 100%; border: 1.5px solid var(--line); border-radius: var(--radius); padding: 12px 14px; font: 400 16px var(--font-body); resize: vertical; }
.sol-help-ask { display: inline-block; margin-top: 6px; font-weight: 600; color: var(--forest); }
