.hero-slides { position:absolute; inset:0; }
.hero-image { opacity:0; transition:opacity .8s ease; }
.hero-image.active { opacity:1; }
.slide-control { position:absolute; z-index:2; top:50%; width:42px; height:42px; border:1px solid rgba(255,255,255,.75); color:#fff; background:rgba(23,44,64,.36); cursor:pointer; font:1.3rem/1 "DM Sans",sans-serif; transform:translateY(-50%); }
.slide-control:hover { background:var(--coral); border-color:var(--coral); }
.slide-control.previous { left:1.4rem; }
.slide-control.next { right:1.4rem; }
.slide-dots { position:absolute; z-index:2; right:1.5rem; bottom:1.45rem; display:flex; gap:.4rem; }
.slide-dots button { width:8px; height:8px; padding:0; border:1px solid #fff; border-radius:50%; background:transparent; cursor:pointer; }
.slide-dots button.active { background:#fff; }
.fabric-preview { display:grid; grid-template-columns:96px 1fr; gap:.9rem; min-height:0; margin-top:.25rem; border:1px solid var(--line); background:#fbf9f4; }
.fabric-preview img { width:96px; height:96px; object-fit:cover; }
.fabric-image-missing { display:grid; width:96px; min-height:96px; place-items:center; padding:.5rem; background:#e5ddd2; color:#69737b; font-size:.67rem; line-height:1.35; text-align:center; }
.fabric-preview>div { display:flex; flex-direction:column; justify-content:center; gap:.25rem; padding:.55rem .8rem .55rem 0; }
.fabric-preview strong { font-size:.86rem; }
.fabric-preview span { color:#67727b; font-size:.72rem; }
.fabric-placeholder { grid-column:1/-1; padding:.9rem; color:#6b747a; font-size:.75rem; line-height:1.45; }
.quote-note { margin:1.2rem 0 0; padding:.8rem 0 0; border-top:1px solid rgba(255,255,255,.18); color:#f0c1b4; font-size:.72rem; line-height:1.5; }
.confirm-quote { width:100%; margin-top:1rem; border:1px solid rgba(255,255,255,.65); background:#fff; color:#164c64; padding:.8rem .9rem; display:flex; justify-content:space-between; align-items:center; font:700 .75rem "DM Sans",sans-serif; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.confirm-quote:hover { background:#f0c1b4; border-color:#f0c1b4; }
.confirm-quote:disabled { cursor:wait; opacity:.72; }
.quote-status { min-height:1.2em; margin:.65rem 0 0; font-size:.72rem; line-height:1.4; }
.quote-status.success { color:#cde7c7; }
.quote-status.error { color:#ffd4c8; }
.quote-modal { display:none; position:fixed; inset:0; z-index:50; padding:1.25rem; background:rgba(11,25,36,.62); align-items:center; justify-content:center; }
.quote-modal.is-open { display:flex; }
.quote-dialog { position:relative; width:min(100%,460px); max-height:calc(100vh - 2.5rem); overflow:auto; padding:2rem; background:#fffdf9; color:#172c40; box-shadow:0 1.2rem 4rem rgba(0,0,0,.28); }
.quote-dialog h2 { font-size:2.1rem; line-height:1; letter-spacing:-.04em; }
.quote-modal-close { position:absolute; top:.75rem; right:.85rem; width:38px; height:38px; border:0; background:transparent; color:#172c40; cursor:pointer; font-size:1.8rem; line-height:1; }
.quote-modal-summary { margin:1rem 0 1.35rem; padding:.8rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#5e6a73; font-size:.82rem; line-height:1.45; }
.quote-dialog form { display:flex; flex-direction:column; gap:.48rem; }
.quote-dialog label { margin-top:.45rem; font-size:.76rem; font-weight:700; }
.quote-dialog input { min-height:46px; padding:.75rem; border:1px solid var(--line); background:#f8f5ef; color:#172c40; font:500 16px "DM Sans",sans-serif; outline-color:var(--coral); }
.modal-submit { min-height:48px; margin-top:.65rem; border:0; background:var(--coral); color:#fff; font:700 .8rem "DM Sans",sans-serif; cursor:pointer; }
.modal-submit:disabled { cursor:wait; opacity:.72; }
.modal-status { min-height:1.2em; margin:.25rem 0 0; color:#b64f38; font-size:.75rem; line-height:1.4; }
.quote-modal-note { margin:.9rem 0 0; color:#68737a; font-size:.7rem; line-height:1.45; }
@media(max-width:780px) { .slide-control{width:36px;height:36px}.slide-control.previous{left:.8rem}.slide-control.next{right:.8rem}.slide-dots{right:.9rem;bottom:.9rem}.fabric-preview{grid-template-columns:80px 1fr}.fabric-preview img{width:80px;height:80px}.quote-modal{padding:.75rem}.quote-dialog{max-height:calc(100vh - 1.5rem);padding:1.65rem 1.25rem}.quote-dialog h2{font-size:1.85rem} }
