/* Quote module */
.quote-box { --q-bg:#0f3d32; --q-card:#fff; --q-title:#0f3d32; --q-btn:#f2b94b; --q-btn-text:#0f3d32; --q-radius:18px; box-sizing:border-box; margin:0 0 20px; }
.quote-box *, .quote-box *:before, .quote-box *:after { box-sizing:border-box; }
.quote-layout-1, .quote-layout-2, .quote-layout-3 { background:var(--q-bg); padding:24px; border-radius:var(--q-radius); }
.quote-card { background:var(--q-card); border-radius:var(--q-radius); padding:28px 30px; color:#333; }
.quote-title { margin:0 0 10px; font-size:26px; font-weight:800; line-height:1.25; color:var(--q-title); }
.quote-desc { margin:0 0 20px; color:#666; font-size:15px; line-height:1.6; }
.quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; margin-bottom:16px; }
.quote-full { grid-column:1 / -1; }
.quote-field label { display:block; margin:0 0 6px; font-size:13px; font-weight:700; color:#111; }
.quote-req { color:#d33; }
.quote-field { min-width:0; }
.quote-box .quote-field input, .quote-box .quote-field textarea, .quote-box .quote-field select { display:block; width:100%; max-width:100%; margin:0; border:1px solid #d9dde1; border-radius:12px; padding:13px 14px; font-size:15px; line-height:20px; background-color:#fff; color:#222; outline:none; box-shadow:none; transition:border-color .2s, box-shadow .2s; font-family:inherit; }
.quote-box .quote-field input, .quote-box .quote-field select { height:48px; }
.quote-box .quote-field select { -webkit-appearance:none; -moz-appearance:none; appearance:none; padding-right:40px; cursor:pointer; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:12px 8px; }
.quote-box .quote-field select:invalid, .quote-box .quote-field select option[value=""] { color:#777; }
.quote-box .quote-field select option { color:#222; }
.quote-box .quote-field select::-ms-expand { display:none; }
.quote-field textarea { resize:vertical; min-height:84px; }
.quote-box .quote-field input:focus, .quote-box .quote-field textarea:focus, .quote-box .quote-field select:focus { border-color:var(--q-btn); box-shadow:0 0 0 3px rgba(242,185,75,.25); }
.quote-box .quote-field.has-error input, .quote-box .quote-field.has-error textarea, .quote-box .quote-field.has-error select { border-color:#d33; }
.quote-err { display:block; min-height:0; margin-top:4px; font-size:12px; color:#d33; }
.quote-btn { display:block; width:100%; border:0; border-radius:12px; padding:15px 18px; background:var(--q-btn); color:var(--q-btn-text); font-size:16px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; cursor:pointer; transition:transform .15s, filter .2s, box-shadow .2s; }
.quote-btn:hover { filter:brightness(1.05); transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.18); }
.quote-btn[disabled] { opacity:.65; cursor:wait; transform:none; }
.quote-note { margin:12px 0 0; text-align:center; font-size:12px; color:#777; }
.quote-msg { display:none; margin-top:14px; padding:12px 14px; border-radius:10px; font-size:14px; text-align:center; }
.quote-msg.ok { display:block; background:#e8f6ee; color:#176b3a; }
.quote-msg.fail { display:block; background:#fdecec; color:#a52121; }
.quote-hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.quote-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* layout 2: one row */
.quote-layout-2 .quote-card { display:flex; gap:24px; align-items:center; padding:22px 26px; }
.quote-layout-2 .quote-head { flex:0 0 28%; }
.quote-layout-2 .quote-title { font-size:22px; margin-bottom:6px; }
.quote-layout-2 .quote-desc { margin:0; font-size:14px; }
.quote-layout-2 .quote-form { flex:1; }
.quote-layout-2 .quote-grid { grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); margin-bottom:0; align-items:start; }
.quote-layout-2 .quote-field-submit .quote-btn { padding:13px 10px; }

/* layout 3: sidebar */
.quote-layout-3 { padding:14px; }
.quote-layout-3 .quote-card { padding:20px 18px; }
.quote-layout-3 .quote-title { font-size:20px; }
.quote-layout-3 .quote-field { margin-bottom:12px; }
.quote-layout-3 .quote-field input, .quote-layout-3 .quote-field textarea, .quote-layout-3 .quote-field select { padding:11px 12px; font-size:14px; }

/* layout 4: modal */
.quote-layout-4 .quote-open { display:inline-block; width:auto; padding:14px 28px; }
.quote-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:16px; }
.quote-modal[hidden] { display:none; }
.quote-overlay { position:absolute; inset:0; background:rgba(8,28,23,.72); backdrop-filter:blur(3px); }
.quote-layout-4 .quote-card { position:relative; width:100%; max-width:560px; max-height:92vh; overflow:auto; box-shadow:0 24px 60px rgba(0,0,0,.4); animation:quotePop .25s ease; }
.quote-close { position:absolute; top:10px; right:14px; border:0; background:none; font-size:30px; line-height:1; color:#888; cursor:pointer; }
.quote-close:hover { color:#111; }
@keyframes quotePop { from { opacity:0; transform:translateY(14px) scale(.97); } to { opacity:1; transform:none; } }

/* layout 5: luxury dark green box with gold border + features left & white card right */
.quote-layout-5 { background:var(--q-bg); border:1.5px solid rgba(242, 185, 75, 0.45); border-radius:var(--q-radius); padding:28px 30px; box-shadow:0 10px 30px rgba(0,0,0,.15); }
.quote-layout-5 .quote-l5-inner { display:flex; gap:28px; align-items:center; }
.quote-layout-5 .quote-l5-left { flex:1 1 42%; color:#fff; }
.quote-layout-5 .quote-title { font-family:'Playfair Display', Georgia, 'Times New Roman', serif; font-size:32px; font-weight:700; line-height:1.25; color:var(--q-title); margin:0 0 10px; }
.quote-layout-5 .quote-desc { font-size:15px; line-height:1.55; color:#e2ede7; margin:0 0 20px; }
.quote-layout-5 .quote-l5-features { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
.quote-layout-5 .quote-l5-feat-item { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:#f0f7f3; }
.quote-layout-5 .quote-l5-feat-item svg { color:var(--q-btn); flex-shrink:0; }
.quote-layout-5 .quote-card { flex:1 1 58%; background:var(--q-card); border-radius:calc(var(--q-radius) * 0.75); padding:22px 24px; box-shadow:0 8px 24px rgba(0,0,0,.12); }
.quote-layout-5 .quote-grid { grid-template-columns:1fr 1fr; gap:12px 14px; margin-bottom:14px; }
.quote-layout-5 .quote-field input, .quote-layout-5 .quote-field select { height:44px; padding-top:10px; padding-bottom:10px; font-size:14px; border-radius:10px; border-color:#e2e8f0; }
.quote-layout-5 .quote-field-fullname input { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23555555'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:left 12px center; background-size:16px 16px; padding-left:36px; }
.quote-layout-5 .quote-field-telephone input { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23555555'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:left 12px center; background-size:16px 16px; padding-left:36px; }
.quote-layout-5 .quote-field-area input { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:left 12px center; background-size:16px 16px; padding-left:36px; }
.quote-layout-5 .quote-btn { background:linear-gradient(180deg, #f7ce68 0%, #e6a838 100%); color:var(--q-btn-text); padding:13px 18px; font-size:16px; font-weight:800; border-radius:10px; box-shadow:0 4px 14px rgba(230,168,56,.35); display:flex; align-items:center; justify-content:center; gap:6px; }
.quote-layout-5 .quote-btn:hover { background:linear-gradient(180deg, #f9d885 0%, #ebaf42 100%); box-shadow:0 6px 18px rgba(230,168,56,.45); }

/* layout 6: horizontal bar - title on top, fields + button in one row */
.quote-layout-6 { background:var(--q-bg); border-radius:var(--q-radius); padding:18px 22px 14px; color:#fff; }
.quote-layout-6 .quote-title { font-size:22px; font-weight:700; margin:0 0 12px; color:var(--q-title); }
.quote-layout-6 .quote-desc { margin:-6px 0 12px; font-size:14px; color:rgba(255,255,255,.8); }
.quote-layout-6 .quote-l6-row { display:flex; flex-wrap:nowrap; gap:12px; align-items:flex-start; }
.quote-layout-6 .quote-field { flex:1 1 0; min-width:0; }
.quote-layout-6 .quote-field input, .quote-layout-6 .quote-field select { height:40px; padding:8px 12px; font-size:14px; border-radius:4px; border-color:#fff; }
.quote-layout-6 .quote-field select { padding-right:34px; background-position:right 12px center; }
.quote-layout-6 .quote-err { color:#ff9b9b; }
.quote-layout-6 .quote-l6-submit { flex:1.1 1 0; min-width:0; }
.quote-layout-6 .quote-btn { height:40px; padding:0 14px; border-radius:4px; font-size:14px; font-weight:700; text-transform:none; letter-spacing:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.quote-layout-6 .quote-note { display:flex; align-items:center; justify-content:center; gap:8px; margin:12px 0 0; font-size:13px; color:rgba(255,255,255,.85); }
.quote-layout-6 .quote-note svg { flex-shrink:0; }
.quote-layout-6 .quote-msg { margin-top:10px; }

@media (max-width:991px) {
  .quote-layout-6 .quote-l6-row { flex-wrap:wrap; }
  .quote-layout-6 .quote-field, .quote-layout-6 .quote-l6-submit { flex:1 1 calc(33.333% - 8px); }
  .quote-layout-5 .quote-l5-inner { flex-direction:column; align-items:stretch; gap:20px; }
  .quote-layout-5 .quote-l5-left, .quote-layout-5 .quote-card { flex:none; }
}
@media (max-width:767px) {
  .quote-layout-1, .quote-layout-2 { padding:12px; }
  .quote-layout-5 { padding:18px 14px; }
  .quote-layout-6 { padding:16px 14px 12px; }
  .quote-layout-6 .quote-title { font-size:19px; }
  .quote-layout-6 .quote-field, .quote-layout-6 .quote-l6-submit { flex:1 1 100%; }
  .quote-card { padding:20px 16px; }
  .quote-grid { grid-template-columns:1fr; }
  .quote-layout-2 .quote-card { flex-direction:column; align-items:stretch; }
  .quote-layout-2 .quote-head { flex:none; }
  .quote-title { font-size:22px; }
  .quote-layout-5 .quote-title { font-size:26px; }
  .quote-layout-5 .quote-l5-features { grid-template-columns:1fr 1fr; gap:10px 12px; }
}

