/* A refinement layer for the original website. Preserve its palettes and imagery. */
:root { --refine-focus: #8b3e12; --refine-ease: cubic-bezier(.22,1,.36,1); }
::selection { background: #e9c8a8; color: #292722; }
:focus-visible { outline: 3px solid var(--refine-focus); outline-offset: 5px; }
html { scroll-padding-top: 100px; }
body { caret-color: #b84c00; }
h1,h2,h3 { text-wrap: balance; }
a { text-underline-offset: .22em; }
button,select { font: inherit; }
button,a,summary { -webkit-tap-highlight-color: transparent; }
[data-reveal],.reveal,.rv { opacity: 1; transform: none; transition: none; }
.refined-home .hero-copy > * { opacity: 1; animation: none; transform: none; }
.refined-home .hero { min-height: auto; padding: 68px 0 62px; }
.refined-home .hero-grid { gap: 46px 52px; }
.refined-home h1 { font-size: clamp(2.5rem,3.8vw,3.5rem); line-height: 1.24; letter-spacing: -.03em; margin-bottom: 24px; }
.refined-home h1 span { display: block; }
.refined-home h1 span:first-child { font-size: 1.3rem; line-height: 1.5; letter-spacing: .01em; color: var(--green); margin-bottom: 14px; }
.refined-home .hero-copy .lead { font-size: 1.125rem; line-height: 1.9; max-width: 30em; }
.refined-home .hero-actions { gap: 12px; }
.refined-home .hero-badge { bottom: -20px; right: 20px; padding: 10px 18px; font-size: .88rem; border-radius: 14px; }
.refined-home .hero-slide figcaption { bottom: 24px; right: 18px; padding: 14px 16px; }
.refined-home .hero-carousel-nav { width: 44px; height: 44px; }
.refined-home .hero-carousel-dots { gap: 1px; }
@media (max-width:480px) {
  .refined-home .hero-carousel-footer { grid-template-columns:1fr; gap:2px; }
  .refined-home .hero-carousel-dots { justify-self:start; }
}
.refined-home .hero-carousel-dot { width: 26px; height: 30px; border: 0; background: transparent; border-radius: 0; display: grid; place-items: center; }
.refined-home .hero-carousel-dot::before { content: ''; width: 7px; height: 7px; border: 1px solid #fff; border-radius: 50%; }
.refined-home .hero-carousel-dot.is-active::before { width: 18px; height: 7px; background: #fff; border-radius: 99px; }
.refined-home .hero-carousel-dot:focus-visible { outline-color: #fff; outline-offset: 0; }
.refined-home [data-hero-pause] { margin-left:10px; border:1px solid rgba(255,255,255,.55); border-radius:99px; background:rgba(20,35,26,.65); color:#fff; font-size:.75rem; min-height:30px; min-width:48px; cursor:pointer; }
.refined-home [data-hero-pause][hidden] { display:none; }
.refined-home .nav { gap: 18px; }
.refined-home .nav a { white-space: nowrap; }
.refined-home .facts { margin-top: 10px; }
.refined-home .fact { color: var(--muted); font-weight: 500; font-size: .875rem; padding-block: 20px; }
.refined-home .fact span { color: var(--ink); font-weight: 700; font-size: 1.05rem; margin-bottom: 4px; }
.refined-home .fact:first-child span { font-size: 1.6rem; color: var(--orange); font-variant-numeric: tabular-nums; }
.refined-home .motto { margin-bottom: 0; }
.refined-story .page-sec p { font-size: 1rem; line-height: 1.9; }
.refined-story .page-hero { padding-top: 140px; }
.refined-story .page-hero h1 { max-width: 20em; }
.refined-story .btn { background: #b84c00; }
.refined-story .btn:hover { background: #963c00; }
.refined-story .link-row a { color: #a44300; border-color: currentColor; }
.refined-story .fab,.refined-story .nav-book:hover { background:#b84c00; }
.refined-story .fab:hover { background:#963c00; }
.refined-story .nav-login:hover { color:#a44300; border-color:#a44300; }
.refined-story .faq-list details[open] summary,.refined-story .page-sec .accent { color:#a44300; }
.refined-story main a[style*="color:var(--orange)"],.refined-story main a[style*="color: var(--orange)"] { color:#a44300!important; }
.refined-topic h1 { font-size: clamp(2.2rem,3.7vw,3.4rem); letter-spacing: -.03em; line-height: 1.25; }
.refined-topic .hero-grid > *, .refined-home .hero-grid > * { min-width: 0; }
.refined-topic .hero-photo img { width: 100%; }
.reading-nav { padding: 22px 0; border-block: 1px solid var(--line); background: var(--paper-2,var(--paper2,#fffaf1)); }
.reading-nav .wrap { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.reading-nav .reading-label { font-weight: 700; color: var(--ink); font-size: .875rem; }
.reading-nav a { font-size: .9rem; color: #884016; text-decoration: none; padding: 9px 0; min-height: 44px; display: inline-flex; align-items: center; }
.reading-nav a:hover { text-decoration: underline; }
.field-notes { margin-top: 44px; padding-top: 30px; border-top: 1px solid var(--line); }
.field-notes > h3 { font-size: clamp(1.2rem,2vw,1.5rem); line-height: 1.45; margin: 0 0 20px; color: inherit; }
.field-notes p,.field-notes li { font-size: 1rem; line-height: 1.9; }
.field-notes p { max-width: 72ch; margin: 18px 0 0; color: var(--muted,var(--ink-soft,#676157)); }
.field-notes ul { padding-left: 1.35em; list-style: disc; max-width: 72ch; margin: 0; }
.field-notes li { padding-left: .3em; margin: 10px 0; }
.field-notes li::marker { color: #b84c00; }
.field-notes a { text-decoration: underline; color: #884016; }
.table-scroll { overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid var(--line); border-radius: 16px; background: #fffdf8; }
.table-scroll table { width: 100%; border-collapse: collapse; font-size: .96rem; line-height: 1.8; text-align: left; font-variant-numeric: tabular-nums; }
.table-scroll th,.table-scroll td { padding: 17px 20px; border-bottom: 1px solid #e7ddce; vertical-align: top; color: #514b42; }
.table-scroll thead th { background: #f0e7d7; color: #40382e; font-weight: 700; }
.table-scroll tbody th { color: #292722; font-weight: 700; min-width: 7em; }
.table-scroll tr:last-child > * { border-bottom: 0; }
.table-scroll tbody tr:nth-child(even) { background: #faf6ed; }
.section.dark .field-notes { border-color: rgba(255,255,255,.25); }
.section.dark .field-notes > p,.section.dark .field-notes li { color: #f0e9dd; }
.section.dark .field-notes > p a { color: #ffcd9f; }
.extra-guide-section { padding: 60px 0; background: var(--paper-2,var(--paper2,#fffaf1)); }
.extra-guide-section .field-notes { margin-top: 0; padding-top: 0; border: 0; }
.extra-guide-section h2 { font-size: clamp(1.8rem,3vw,2.5rem); margin-bottom: 24px; }
.price-estimate-disclosure { margin-top: 28px; border: 1px solid var(--line); border-radius: 18px; background: #fffdf8; overflow: hidden; }
.price-estimate-disclosure > summary { padding: 19px 24px; color: #24463b; font-size: 1.05rem; min-height: 64px; list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-weight: 700; }
.price-estimate-disclosure > summary::after { content: '+'; color: #b84c00; font-size: 1.5rem; }
.price-estimate-disclosure[open] > summary::after { content: '−'; }
.price-estimate-disclosure > summary::-webkit-details-marker { display: none; }
.estimator { padding: 0 24px 26px; }
.estimator h3 { font-size: 1.2rem; margin: 0 0 8px; }
.estimator p { color: #676157; font-size: .95rem; }
.estimate-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin: 22px 0; }
.estimate-fields label { display: grid; gap: 8px; font-size: .9rem; font-weight: 700; color: #292722; }
.estimate-fields select { border: 1px solid #c9bba6; border-radius: 10px; color: #292722; background: #fff; width: 100%; min-height: 48px; padding: 10px; }
.estimate-result { display: flex; align-items: baseline; gap: 20px; }
.estimate-result output { font-size: 1.8rem; color: #b84c00; font-weight: 800; font-variant-numeric: tabular-nums; }
.estimate-result + p { margin: 8px 0 18px; }
.estimator .estimate-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; background: #b84c00; color: #fff; border-radius: 99px; font-weight: 700; text-decoration: none; }
.competition-explainer { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.competition-explainer h2 { font-size: 1.7rem; }
.competition-explainer p { color: #676157; }
.photo-journal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; margin:32px 0; }
.journal-year-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin:0 0 28px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.journal-year-nav > span { color:#676157; font-size:.9rem; }
.journal-year-nav a { display:inline-flex; align-items:center; min-height:44px; color:#24463b; font-weight:700; text-underline-offset:5px; }
.journal-year-nav a[hidden],.photo-journal-year[hidden] { display:none; }
.photo-journal-year { margin-bottom:48px; scroll-margin-top:28px; }
.photo-journal-year .year-head { flex-wrap:wrap; gap:4px 16px; }
.photo-journal-year .year-head h2 { font-size:1.8rem; }
.photo-journal-year .year-head span { font-size:.9rem; }
.journal-album { background:#fffaf1; color:#292722; border-radius:24px; overflow:hidden; box-shadow:0 16px 40px rgba(30,35,25,.10); scroll-margin-top:100px; }
.journal-cover { display:block; overflow:hidden; position:relative; }
.journal-cover img { width:100%; height:auto; aspect-ratio:1600/1067; object-fit:contain; }
.journal-view-label { position:absolute; right:14px; bottom:14px; display:inline-flex; align-items:center; min-height:36px; padding:7px 13px; border-radius:99px; color:#fff; background:rgba(24,49,39,.94); font-size:.8125rem; font-weight:700; box-shadow:0 3px 12px rgba(20,30,24,.18); }
.journal-cover:focus-visible { outline-offset: -5px; outline-color:#fff; }
.journal-copy { padding:24px; }
.journal-meta { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; color:#676157; font-size:.85rem; }
.journal-meta > span:not(.journal-date) { border:1px solid #c9d5c5; color:#24463b; background:#edf1e7; border-radius:99px; padding:4px 10px; font-weight:700; }
.journal-copy h2,.journal-copy h3 { font-size:1.55rem; line-height:1.35; margin:0 0 12px; color:#292722; }
.journal-copy p,.competition-latest .journal-copy p { color:#676157; font-size:1rem; line-height:1.85; margin:0; }
.journal-copy .journal-link { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; color:#a44300; font-weight:700; text-decoration:none; }
.journal-copy .journal-link:hover { text-decoration:underline; }
.journal-thumbnails { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:0 24px 24px; }
.journal-thumbnails a { border-radius:10px; overflow:hidden; display:block; }
.journal-thumbnails img { width:100%; height:auto; aspect-ratio:1600/1067; object-fit:contain; }
.journal-more { border-top:1px solid #d9cdbb; }
.journal-more > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:14px 24px; color:#24463b; font-size:.95rem; font-weight:700; cursor:pointer; list-style:none; }
.journal-more > summary::-webkit-details-marker { display:none; }
.journal-more > summary::after { content:'+'; font-size:1.4rem; }
.journal-more[open] > summary::after { content:'−'; }
.journal-more .journal-collapse,.journal-more[open] .journal-expand { display:none; }
.journal-more[open] .journal-collapse { display:inline; }
.journal-more > summary:focus-visible { outline:3px solid #b84c00; outline-offset:-4px; }
.journal-album[data-scope] .journal-cover,.journal-thumbnails a { cursor:zoom-in; }
.journal-album[hidden] { display:none; }
.refined-competition .hero { padding:48px 0 24px; }
.refined-competition .journey { gap:8px 14px; margin-top:24px; color:var(--muted); }
.refined-competition .journey span { padding:0; border:0; border-radius:0; background:none; font-size:.9rem; font-weight:500; }
.refined-competition .journey span:first-child { color:var(--green); font-weight:700; }
.refined-competition .filters { margin:24px 0 0; gap:10px; }
.refined-competition .filter-btn { min-height:44px; }
.refined-competition .hero + .section { padding-top:0; background:var(--paper); }
.refined-competition .photo-journal-grid { margin-top:0; }
.journal-viewer { width:min(1120px,calc(100vw - 40px)); max-width:none; max-height:calc(100dvh - 40px); padding:0; border:1px solid rgba(255,255,255,.15); border-radius:22px; color:#fffaf1; background:#183127; box-shadow:0 24px 80px rgba(10,20,15,.38); overflow:auto; }
.journal-viewer::backdrop { background:rgba(12,22,17,.88); }
.journal-viewer-head { display:flex; gap:20px; align-items:center; justify-content:space-between; padding:16px 22px; }
.journal-viewer-title { font-size:1.125rem; margin:0; color:inherit; }
.journal-viewer button { min-width:44px; min-height:44px; border:1px solid rgba(255,250,241,.4); border-radius:99px; background:transparent; color:inherit; cursor:pointer; font-weight:700; padding:8px 15px; }
.journal-viewer button:focus-visible,.journal-viewer a:focus-visible { outline-color:#fffaf1; outline-offset:3px; }
.journal-viewer figure { margin:0; }
.journal-viewer-image { width:100%; height:auto; max-height:65dvh; object-fit:contain; background:#11251d; }
.journal-viewer-image[hidden] { display:none; }
.journal-viewer figcaption { padding:18px 22px 0; font-size:.95rem; line-height:1.7; }
.journal-viewer-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 22px 22px; }
.journal-viewer-count { font-size:.9rem; font-variant-numeric:tabular-nums; }
.journal-viewer-controls { display:flex; gap:10px; }
.journal-viewer-error { margin:0; padding:18px 22px; color:#fffaf1; }
.journal-viewer-error[hidden] { display:none; }
.journal-viewer-error a { display:inline-flex; min-height:44px; align-items:center; margin-left:10px; text-underline-offset:4px; }
.range-photo-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:32px; }
.range-photo-pair figure { margin:0; overflow:hidden; border-radius:22px; background:#fffaf1; border:1px solid #d9cdbb; }
.range-photo-pair img { width:100%; height:auto; }
.range-photo-pair figcaption { padding:16px 20px; font-size:.92rem; font-weight:700; color:#514b42; }
.range-photo-pair figcaption strong { display:block; color:#24463b; font-size:1.125rem; line-height:1.6; }
.range-photo-pair figcaption p { margin:8px 0 0; color:#676157; font-size:.95rem; font-weight:400; line-height:1.85; }
.refinement-skip { position: fixed; left: 16px; top: 12px; z-index: 1000; padding: 12px 18px; background: #fffaf1; color: #292722; transform: translateY(-160%); }
.refinement-skip:focus { transform: none; }
@media (hover:hover) {
  .btn,.book,.nav-book,.estimate-cta { transition: background-color 180ms var(--refine-ease),box-shadow 180ms var(--refine-ease),transform 180ms var(--refine-ease); }
  .btn:hover,.book:hover,.nav-book:hover,.estimate-cta:hover { transform: translateY(-2px); }
  .journal-view-label { transition:background-color 160ms ease; }
  .journal-cover:hover .journal-view-label { background:#b84c00; }
  .journal-thumbnails a:hover { outline:2px solid #b84c00; outline-offset:3px; }
  .journal-viewer button:hover { background:rgba(255,250,241,.12); }
}
.refined-home .btn,.refined-home .mobile-book,.refined-home .hero-carousel-nav,.filter-btn,.journal-viewer button { transition:transform 140ms var(--refine-ease),background-color 160ms ease; }
.refined-home .btn:active,.refined-home .mobile-book:active,.refined-home .hero-carousel-nav:active,.filter-btn:active,.journal-viewer button:active { transform:scale(.97); }
.refined-home .btn:focus-visible,.refined-home .mobile-book:focus-visible,.refined-home .hero-carousel-nav:focus-visible,.filter-btn:focus-visible,.journal-viewer button:focus-visible { transition:none; }
.refined-home .btn:focus-visible:active,.refined-home .mobile-book:focus-visible:active,.refined-home .hero-carousel-nav:focus-visible:active,.filter-btn:focus-visible:active,.journal-viewer button:focus-visible:active { transform:none; }
@media (max-width:1160px) and (min-width:981px) {
  .refined-home .nav { display:none; position:absolute; top:74px; left:0; right:0; padding:18px 24px; background:var(--paper-2); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; }
  .refined-home .nav.open { display:flex; }
  .refined-home .burger,.refined-home .mobile-book { display:inline-flex; align-items:center; justify-content:center; }
  .refined-home .mobile-book { margin-left:auto; min-height:44px; padding:8px 16px; background:var(--orange); color:#fff; border-radius:99px; text-decoration:none; font-weight:700; }
}
@media (max-width:980px) {
  .refined-home .hero { padding-top:44px; }
  .refined-home h1 { font-size:clamp(2.1rem,5.4vw,3.4rem); }
  .refined-home .hero-copy .lead { max-width:38em; }
  .refined-home .hero-media { width:min(100%,680px); margin-inline:auto; }
  .refined-home .nav { max-height:calc(100dvh - 150px); overflow-y:auto; }
  .refined-home .nav a,.refined-topic .nav a { min-height:44px; display:flex; align-items:center; }
  .reading-nav .wrap { gap:4px 22px; }
  .reading-label { flex-basis:100%; }
}
@media (max-width:640px) {
  html { scroll-padding-top:86px; }
  .refined-home .hero { padding:22px 0 44px; }
  .refined-home .hero-grid { gap:20px; }
  .refined-home .hero-copy .eyebrow { margin-bottom:8px; }
  .refined-home h1 { font-size:clamp(1.9rem,8.6vw,2.45rem); line-height:1.3; margin-bottom:16px; }
  .refined-home h1 span:first-child { font-size:1.1rem; margin-bottom:10px; }
  .refined-home .hero-copy .lead { font-size:1rem; line-height:1.85; }
  .refined-home .hero-actions { gap:10px; margin:18px 0 12px; }
  .refined-home .hero-actions .btn { font-size:.9rem; min-height:48px; padding:11px 16px; }
  .refined-home .motto { margin-top:0; font-size:.94rem; }
  .refined-home .hero-slide figcaption { left:12px; right:12px; bottom:22px; padding:10px 12px; }
  .refined-home .hero-slide figcaption strong { font-size:.92rem; line-height:1.5; }
  .refined-home .hero-slide figcaption span { font-size:.76rem; line-height:1.6; }
  .refined-home .hero-badge { right:12px; bottom:-17px; font-size:.75rem; padding:8px 12px; }
  .refined-home .hero-carousel-nav { width:44px; height:44px; }
  .refined-home .facts { margin-top:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .refined-home .fact { font-size:.8125rem; padding:14px 10px; }
  .refined-home .fact:first-child { grid-column:1/-1; }
  .refined-home .fact:first-child span { font-size:1.4rem; }
  .refined-home .fact:not(:first-child) span { display:block; font-size:.95rem; margin:0 0 2px; }
  .refined-home .fact:nth-child(even) { border-right:1px solid var(--line); }
  .refined-topic h1 { font-size:clamp(2rem,8vw,2.6rem); }
  .refined-story .page-hero { padding-top:110px; padding-bottom:38px; }
  .refined-story .page-hero h1 { font-size:clamp(2rem,8vw,2.6rem); }
  .reading-nav { padding:14px 0; }
  .reading-nav a { font-size:.875rem; }
  .field-notes { margin-top:30px; padding-top:26px; }
  .field-notes p,.field-notes li { line-height:1.85; }
  .table-scroll th,.table-scroll td { padding:13px 12px; font-size:.9rem; }
  .table-scroll table { min-width:520px; }
  .extra-guide-section { padding:44px 0; }
  .estimate-fields { grid-template-columns:1fr 1fr; gap:16px 12px; }
  .price-estimate-disclosure > summary { padding:16px 18px; font-size:1rem; }
  .estimator { padding:0 18px 22px; }
  .competition-explainer { grid-template-columns:1fr; gap:24px; }
  .photo-journal-grid,.range-photo-pair { grid-template-columns:1fr; gap:20px; }
  .journal-copy { padding:20px; }
  .journal-thumbnails { padding:0 20px 20px; }
  .journal-view-label { right:12px; bottom:12px; }
  .refined-competition .hero { padding:30px 0 20px; }
  .refined-competition .journey { gap:8px 12px; margin-top:20px; }
  .refined-competition .journey span { font-size:.8125rem; }
  .refined-competition .filters { margin-top:20px; }
  .journal-viewer { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); border-radius:16px; }
  .journal-viewer-head { padding:12px 16px; }
  .journal-viewer figcaption { padding:16px 16px 0; }
  .journal-viewer-image { max-height:52dvh; }
  .journal-viewer-footer { padding:16px; }
}
.guest-review-feed { min-width:0; }
.reviews-layout > .proof { align-self:start; }
.guest-review-feed [hidden] { display:none; }
.guest-review-feed .review-text { white-space:pre-line; overflow-wrap:anywhere; }
.review-status { margin:0; padding:28px; border:1px solid var(--line); border-radius:22px; background:var(--paper-2); line-height:1.8; }
.review-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:20px; }
.review-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.review-summary { color:var(--muted); font-size:.875rem; line-height:1.7; margin:0; }
.review-controls { display:flex; gap:8px; }
.review-control { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:var(--paper-2); color:var(--green); font:inherit; cursor:pointer; transition:transform 160ms ease-out,background-color 160ms ease-out; }
.review-control:active { transform:scale(.97); }
.review-pause { min-width:68px; font-size:.875rem; }
.review-control:focus-visible,.guest-review-feed .reviews:focus-visible { outline:3px solid var(--orange); outline-offset:4px; }
.review-announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.review-actions a,.review-retry { display:inline-flex; align-items:center; min-height:44px; }
.review-retry { border:0; background:transparent; padding:0; font:inherit; cursor:pointer; }
@media (hover:hover) and (pointer:fine) {
  .review-control:hover { background:var(--paper); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .refined-home .btn:active,.refined-home .mobile-book:active,.refined-home .hero-carousel-nav:active,.filter-btn:active,.journal-viewer button:active,.review-control:active { transform:none; }
}
