/* O'Sullivan Motors — authenticated vehicle detail preview v0.6.0 */
.osm-detail-page { --osm-blue:#169bd5; --osm-ink:#153144; max-width:1250px; margin:36px auto 72px; padding:0 20px; color:var(--osm-ink); font-family:inherit; }
.osm-detail-page *, .osm-detail-page *::before, .osm-detail-page *::after { box-sizing:border-box; }
.osm-detail-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.osm-detail-badge, .osm-detail-form-status { color:#744500; background:#fff3d8; border:1px solid #f1d6a9; padding:7px 12px; border-radius:20px; font-size:11px; line-height:1.5; font-weight:750; letter-spacing:.02em; }
.osm-detail-back { color:#157fae; font-size:14px; text-decoration:none; }
.osm-detail-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr); gap:28px; align-items:start; }
.osm-detail-gallery { min-width:0; overflow:hidden; background:#f3f6f8; border:1px solid #e3ecf1; border-radius:16px; }
.osm-detail-main-frame { position:relative; min-width:0; }
.osm-detail-main-photo { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:16/10; overflow:hidden; background:#e9eef2; }
.osm-detail-main-photo img { display:block; max-width:100%; width:100%; height:100%; object-fit:contain; }
.osm-detail-gallery-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; display:grid !important; place-items:center; width:44px; height:48px; padding:0 !important; background:rgba(255,255,255,.92) !important; color:#153144 !important; border:1px solid #d5e2e9 !important; border-radius:10px !important; font:700 32px/1 system-ui,sans-serif !important; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.1); }
.osm-detail-gallery-arrow:hover { background:#fff !important; color:#159bd0 !important; }
.osm-detail-gallery-prev { left:12px; }
.osm-detail-gallery-next { right:12px; }
.osm-detail-photo-count { position:absolute; right:14px; bottom:14px; padding:6px 11px; border-radius:7px; background:rgba(15,33,44,.79); color:#fff; font-size:12px; font-weight:750; }
.osm-detail-thumbs { display:flex; gap:10px; overflow-x:auto; max-width:100%; padding:12px 13px 5px; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:#b1c4ce transparent; }
/* Astra can style all <button>s. Reset those styles with a specific selector to prevent solid-color tiles. */
.osm-detail-page button.osm-detail-thumb { position:relative; flex:0 0 106px; width:106px !important; min-width:106px; height:79px !important; min-height:79px; max-height:79px; margin:0 !important; padding:0 !important; border:3px solid transparent !important; outline:0; overflow:hidden; border-radius:9px !important; background:#eaf1f4 !important; box-shadow:none !important; transform:none !important; cursor:pointer; scroll-snap-align:center; }
.osm-detail-page button.osm-detail-thumb[aria-pressed="true"] { border-color:#169bd5 !important; }
.osm-detail-page button.osm-detail-thumb img { display:block !important; position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none !important; max-height:none !important; margin:0 !important; padding:0 !important; visibility:visible !important; opacity:1 !important; object-fit:cover; border-radius:0 !important; background:#eaf1f4; }
.osm-detail-thumb-fallback { display:none; position:absolute; inset:0; align-items:center; justify-content:center; background:#eaf1f4; color:#536b7a; font-size:18px; font-weight:700; }
.osm-detail-page button.osm-detail-thumb.osm-thumb-error img { display:none !important; }
.osm-detail-page button.osm-detail-thumb.osm-thumb-error .osm-detail-thumb-fallback { display:flex; }
.osm-detail-page button.osm-detail-thumb:focus-visible, .osm-detail-gallery-arrow:focus-visible { outline:3px solid #0d6b9a !important; outline-offset:3px !important; }
.osm-detail-gallery-hint { margin:6px 13px 14px; font-size:11px; line-height:1.45; color:#687b88; }
.osm-detail-empty { display:grid; place-items:center; min-height:260px; color:#556b7a; }
.osm-detail-card { padding:30px; }
.osm-detail-eyebrow { color:#138fbe; text-transform:uppercase; letter-spacing:.1em; font-size:11px; font-weight:750; margin:0 0 12px; }
.osm-detail-card h1 { font-size:clamp(25px,2.4vw,35px); line-height:1.2; margin:0 0 8px; color:#153144; letter-spacing:-.025em; }
.osm-detail-subtitle { color:#617482; font-size:13px; line-height:1.55; margin:0 0 18px; }
.osm-detail-price { color:#1299d0; font-size:clamp(34px,3vw,45px); font-weight:800; line-height:1.13; margin:20px 0 20px; }
.osm-detail-specs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; margin:0 0 24px; }
.osm-detail-specs > div { min-width:0; padding:13px 0; border-bottom:1px solid #e8eff3; }
.osm-detail-specs dt { margin:0 0 4px; color:#687b89; font-size:12px; }
.osm-detail-specs dd { margin:0; color:#18374a; font-size:15px; font-weight:700; overflow-wrap:anywhere; }
.osm-detail-description { padding:26px 30px; margin-top:24px; }

/* v0.6: call-to-action and readable imported stock descriptions. */
.osm-detail-page .osm-detail-call-btn { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:56px; padding:13px 18px; border:1px solid #159bd0 !important; border-radius:10px; background:#159bd0 !important; color:#fff !important; text-decoration:none !important; font-size:17px; font-weight:750; line-height:1.3; text-align:center; }
.osm-detail-page .osm-detail-call-btn:hover { background:#087fab !important; border-color:#087fab !important; }
.osm-detail-page .osm-detail-call-btn:focus-visible { outline:3px solid #07577b; outline-offset:3px; }
.osm-detail-call-btn svg { width:22px; height:22px; flex:none; }
.osm-detail-call-btn span { display:flex; align-items:baseline; justify-content:center; gap:8px; flex-wrap:wrap; }
.osm-detail-call-btn strong { font:inherit; letter-spacing:.025em; }
.osm-detail-call-note { color:#6f8290; text-align:center; font-size:12px; line-height:1.5; margin:10px 0 0; }
.osm-detail-description { padding:30px 34px; margin-top:24px; }
.osm-detail-description h2 { color:#153144; font-size:clamp(23px,2vw,28px); line-height:1.2; margin:0 0 18px; }
.osm-detail-description h3 { color:#153144; font-size:19px; line-height:1.3; margin:0 0 14px; }
.osm-detail-description .osm-detail-summary { margin:0 0 20px; color:#355368; background:#f2f8fb; border-left:4px solid #169bd5; padding:16px 18px; border-radius:0 10px 10px 0; font-size:15px; line-height:1.7; }
.osm-detail-description .osm-detail-description-copy { max-width:880px; }
.osm-detail-description p { color:#354e5d; margin:0 0 13px; line-height:1.7; font-size:15px; }
.osm-detail-features { margin-top:24px; }
.osm-detail-feature-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px 17px; margin:0 !important; padding:0 !important; list-style:none !important; }
.osm-detail-feature-list li { display:flex; gap:9px; align-items:baseline; margin:0; color:#355368; font-size:14px; line-height:1.5; }
.osm-detail-feature-list li::before { content:'✓'; color:#149bce; font-weight:800; flex:0 0 auto; }
.osm-detail-dealer-info { margin-top:26px; padding-top:22px; border-top:1px solid #e7eff2; }
.osm-detail-dealer-info h3 { margin-bottom:8px; }
.osm-detail-dealer-info p { margin:0; }
.osm-detail-dealer-info a { color:#0a84b6; font-weight:700; }
@media (max-width:900px) { .osm-detail-layout { grid-template-columns:minmax(0,1fr); gap:20px; } .osm-detail-feature-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px) { .osm-detail-page { padding:0 12px; margin-top:20px; } .osm-detail-card,.osm-detail-description { padding:19px; } .osm-detail-feature-list { grid-template-columns:1fr; } .osm-detail-page button.osm-detail-thumb { flex-basis:84px; width:84px !important; min-width:84px; height:64px !important; min-height:64px; max-height:64px; } .osm-detail-call-btn span { display:block; } }
