/* Ceramic Coating Warranty — premium registration form. No CDN; Lato only. */
.ccw-front-form,
.ccw-front-form * { box-sizing:border-box; font-family:"Lato", sans-serif; }

.ccw-front-form {
  width:100%;
  max-width:1120px;
  margin:52px auto;
  padding:0;
  background:#fff;
  color:#171717;
  border:1px solid #e4dfd6;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 28px 80px rgba(23,23,23,.11);
}
.ccw-front-form .ccw-form { margin:0; padding:0 58px 55px; }

.ccw-form-intro {
  position:relative;
  min-height:235px;
  margin:0 -58px 48px;
  padding:49px 58px;
  display:flex;
  align-items:flex-end;
  background:#171717;
  color:#fff;
  overflow:hidden;
}
.ccw-form-intro:before { content:"01"; position:absolute; right:55px; bottom:-25px; color:rgba(255,255,255,.035); font-size:190px; line-height:1; font-weight:900; letter-spacing:-.08em; }
.ccw-form-intro:after { content:""; position:absolute; width:420px; height:420px; right:-165px; top:-280px; border:65px solid rgba(242,185,12,.09); border-radius:50%; }
.ccw-form-intro > * { position:relative; z-index:0; }
.ccw-form-kicker { display:block; margin-bottom:13px; color:#f2b90c; font-size:11px; font-weight:900; letter-spacing:.20em; }
.ccw-form-intro h2 { margin:0 0 11px !important; padding:0 !important; border:0 !important; color:#fff !important; font-size:38px !important; line-height:1.05 !important; font-weight:900 !important; letter-spacing:-.04em; }
.ccw-form-intro p { max-width:650px; margin:0 !important; color:#bdb9b1; font-size:16px; line-height:1.7; }

.ccw-form-section { position:relative; padding:0 0 38px; margin:0 0 30px; border-bottom:1px solid #e9e5dd; }
.ccw-form-section:last-of-type { margin-bottom:0; border-bottom:0; }
.ccw-section-heading { display:flex; align-items:flex-start; gap:16px; margin:0 0 25px; }
.ccw-section-number { flex:0 0 42px; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:13px; background:#f2b90c; color:#fff; font-size:11px; font-weight:900; letter-spacing:.04em; box-shadow:0 9px 20px rgba(242,185,12,.16); }
.ccw-section-heading h2 { margin:1px 0 5px !important; padding:0 !important; border:0 !important; color:#171717 !important; font-size:20px !important; line-height:1.2 !important; font-weight:600 !important; letter-spacing:-.02em; }
.ccw-section-heading p { margin:0 !important; color:#8c877f; font-size:12px; line-height:1.55; }
.ccw-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 24px; }
.ccw-field { min-width:0; }
.ccw-field-wide,.ccw-field-full { grid-column:1/-1; }
.ccw-field label { display:flex; align-items:center; gap:3px; margin:0 0 8px; color:#2d2b27; font-size:14px; line-height:1.2; font-weight:600; letter-spacing:.02em; }
.ccw-field label span { color:#c18d00; }
.ccw-field input[type=text],.ccw-field input[type=tel],.ccw-field input[type=email],.ccw-field input[type=date],.ccw-field input[type=url],.ccw-field input[type=password],.ccw-field select,.ccw-field textarea,
.ccw-front-form input[type=text],.ccw-front-form input[type=tel],.ccw-front-form input[type=email],.ccw-front-form input[type=date],.ccw-front-form input[type=url],.ccw-front-form input[type=password],.ccw-front-form select,.ccw-front-form textarea {
  display:block;
  width:100% !important;
  min-height:54px !important;
  padding:15px 16px !important;
  border:1px solid #dcd7ce !important;
  border-radius:12px !important;
  background:#faf9f7 !important;
  color:#171717 !important;
  font-family:"Lato", sans-serif !important;
  font-size:14px !important;
  line-height:1.35 !important;
  box-shadow:none !important;
  transition:border-color .18s,box-shadow .18s,background .18s,transform .18s;
}
.ccw-front-form input::placeholder,.ccw-front-form textarea::placeholder { color:#aaa49a !important; opacity:1; }
.ccw-front-form input:focus,.ccw-front-form select:focus,.ccw-front-form textarea:focus { 
    outline:none !important; border-color:#d5a300 !important; background:#fff !important;
  
}
.ccw-front-form textarea { min-height:125px !important; resize:vertical; }
.ccw-front-form .description { color:#8d8880; font-size:11px; line-height:1.55; }
.ccw-help { margin:10px 0 0; padding-left:2px; }

.ccw-upload-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; min-height:78px; padding:15px 16px; border:1px dashed #cfc8bd; border-radius:14px; background:#faf9f7; }
.ccw-front-form .button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:43px; padding:10px 17px; border-radius:10px; border:1px solid #d3cec5; background:#fff; color:#171717; text-decoration:none; cursor:pointer; font-size:12px; font-weight:900; box-shadow:0 2px 7px rgba(0,0,0,.03); transition:.18s; }
.ccw-front-form .button:hover { background:#f4f2ee; border-color:#bdb7ae; transform:translateY(-1px); }
.ccw-front-form .button-primary { background:#f2b90c !important; border-color:#dca800 !important; color:#171717 !important; }
.ccw-front-form .button-primary:hover { background:#dca900 !important; color:#171717 !important; }
.ccw-front-form .button-hero { width:100%; min-height:61px; padding:16px 24px; border-radius:13px; font-size:16px; color: #fff !important; letter-spacing:.04em; box-shadow:0 12px 26px rgba(242,185,12,.17); }
.ccw-front-form p.submit { margin:38px 0 0; }
.ccw-photo-preview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:14px 0 0; }
.ccw-photo-thumb { position:relative; aspect-ratio:1/1; width:auto; height:auto; border:1px solid #e0dbd2; border-radius:13px; overflow:hidden; background:#f5f4f1; }
.ccw-photo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ccw-photo-remove { position:absolute; top:7px; right:7px; background:rgba(20,20,20,.84); color:#fff; border:0; border-radius:50%; width:27px; height:27px; line-height:22px; cursor:pointer; font-size:17px; }
.ccw-front-notice { width:min(100%,1120px); margin:25px auto 0; padding:16px 19px; border-radius:13px; font-size:13px; font-family:"Lato", sans-serif; }
.ccw-front-notice.ccw-front-success { background:#edf8f0; color:#21733b; }
.ccw-front-notice.ccw-front-error { background:#fff0f0; color:#b33a3a; }

/* Plain <input type="file">, visually hidden; the associated <label>
   (.ccw-upload-btn) is styled to look like a normal button and is what
   the visitor actually sees and clicks. */
.ccw-file-input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ccw-upload-btn { cursor:pointer; }

@media(max-width:760px) {
  .ccw-front-form { margin:25px auto; border-radius:20px; }
  .ccw-front-form .ccw-form { padding:0 24px 32px; }
  .ccw-form-intro { min-height:0; margin:0 -24px 35px; padding:34px 24px; flex-direction:column; align-items:flex-start; gap:14px; }
  .ccw-form-intro h2 { font-size:30px !important; }
  .ccw-form-intro p { max-width:100%; }
  .ccw-form-intro:before { right:20px; font-size:130px; }
  .ccw-field-grid { grid-template-columns:1fr; gap:17px; }
  .ccw-field-wide,.ccw-field-full { grid-column:auto; }
  .ccw-photo-preview { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:480px) {
  .ccw-section-heading { gap:11px; }
  .ccw-section-number { flex-basis:36px; width:36px; height:36px; border-radius:11px; }
  .ccw-section-heading h2 { font-size:17px !important; }
  .ccw-upload-row { align-items:flex-start; }
}

/* ------------------------------------------------------------------
   Success panel (shown after a warranty is issued). This lives here
   too (duplicated from ccw-admin.css) because it renders on the
   PUBLIC page as a sibling of .ccw-front-form, not inside wp-admin --
   a stylesheet that never loads there can't style it, which is
   exactly why it was showing up unstyled with the theme's default
   button colour instead of this design.
------------------------------------------------------------------ */
.ccw-success-box, .ccw-success-box * { box-sizing:border-box; font-family:"Lato", sans-serif; }
.ccw-success-box { display:flex; gap:16px; align-items:flex-start; background:#f7fbf7; border:1px solid #cfe5d2; border-radius:16px; padding:22px; margin:25px auto 0; max-width:1120px; box-shadow:0 8px 25px rgba(0,0,0,.04); }
.ccw-success-icon { flex:0 0 auto; width:38px; height:38px; border-radius:12px; background:#21733b; color:#fff; font-size:18px; font-weight:900; display:flex; align-items:center; justify-content:center; }
.ccw-success-body h3 { margin:0 0 5px; font-size:17px; color:#1d4828; }
.ccw-success-body p { margin:0 0 14px; color:#444; }
.ccw-link-row { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.ccw-link-row input { flex:1 1 300px; min-width:0; padding:10px 12px; border:1px solid #cfe0d1; border-radius:9px; background:#fff; font-size:13px; }
.ccw-copy-btn { padding:9px 14px; border-radius:9px; border:1px solid #21733b; background:#fff; color:#21733b; font-weight:800; cursor:pointer; }
.ccw-copy-btn:hover { background:#21733b; color:#fff; }
.ccw-view-btn { display:inline-flex; padding:10px 16px; border-radius:9px; background:#f2b90c; color:#111; text-decoration:none; font-weight:900; }
.ccw-view-btn:hover { background:#dca900; color:#111; }

@media(max-width:640px) {
  .ccw-success-box { flex-direction:column; margin:20px 24px 0; }
}
