/*
Theme Name: Coastal Computers Divi Editable
Theme URI: https://www.cscmdi.com/
Description: Divi child theme with a fully Visual-Builder-editable Coastal Computers homepage.
Author: Coastal Computers
Template: Divi
Version: 5.0.0
Text Domain: coastal-computers-divi-editable
*/

:root {
  --cc-navy:#0f2645; --cc-navy-mid:#1a3a5c; --cc-slate:#2e4a6b;
  --cc-blue:#2d88c8; --cc-blue-light:#e8f3fb; --cc-gold:#c8922d;
  --cc-white:#fff; --cc-off:#f7f8fa; --cc-text:#1a1a2e;
  --cc-text-mid:#3d4f63; --cc-text-light:#6b7f96; --cc-border:#dde4ed;
  --cc-radius:6px; --cc-radius-lg:12px;
}
body.coastal-divi-editable-home { font-family:'DM Sans',system-ui,sans-serif; color:var(--cc-text); }
body.coastal-divi-editable-home #main-header,
body.coastal-divi-editable-home #top-header,
body.coastal-divi-editable-home #main-footer { display:none !important; }
body.coastal-divi-editable-home #page-container { padding-top:0 !important; }
body.coastal-divi-editable-home #main-content { background:#fff; }
body.coastal-divi-editable-home .et_pb_section { padding:80px 24px; }
body.coastal-divi-editable-home .et_pb_row { width:100%; max-width:1100px; }
body.coastal-divi-editable-home .et_pb_text h1,
body.coastal-divi-editable-home .et_pb_text h2 { font-family:'Lora',Georgia,serif; }
body.coastal-divi-editable-home .et_pb_text p { line-height:1.75; }

/* Custom editable nav module */
.coastal-nav-section.et_pb_section { position:sticky; top:0; z-index:99990; background:var(--cc-navy); border-bottom:3px solid var(--cc-gold); padding:0 24px !important; }
.admin-bar .coastal-nav-section.et_pb_section { top:32px; }
.coastal-nav-section .et_pb_row { padding:0 !important; max-width:1100px; }
.coastal-nav { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.coastal-nav-brand { display:flex; align-items:center; gap:12px; text-decoration:none !important; }
.coastal-nav-brand img { width:44px; height:44px; object-fit:contain; }
.coastal-nav-name { color:white; font-weight:500; font-size:17px; line-height:1.2; }
.coastal-nav-name span { display:block; color:#aec3da; font-size:11px; font-weight:300; letter-spacing:.08em; text-transform:uppercase; }
.coastal-nav-links { display:flex; align-items:center; gap:2px; list-style:none !important; margin:0 !important; padding:0 !important; }
.coastal-nav-links li { padding:0 !important; }
.coastal-nav-links a { display:block; padding:0 13px; height:68px; line-height:68px; color:#aec3da !important; font-size:14px; text-decoration:none !important; white-space:nowrap; }
.coastal-nav-links a:hover { color:#fff !important; background:rgba(255,255,255,.05); }
.coastal-nav-links .coastal-call { height:36px; line-height:36px; margin-left:8px; padding:0 18px; border-radius:6px; background:var(--cc-gold); color:var(--cc-navy) !important; font-weight:600; }
.coastal-nav-toggle { display:none; width:42px; height:38px; border:1px solid rgba(255,255,255,.3); border-radius:6px; background:transparent; cursor:pointer; padding:8px; }
.coastal-nav-toggle span { display:block; height:2px; background:#fff; margin:4px 0; }

/* Hero */
.coastal-hero.et_pb_section { background:linear-gradient(135deg,var(--cc-navy),var(--cc-navy-mid) 55%,var(--cc-slate)); padding-top:90px; padding-bottom:82px; overflow:hidden; }
.coastal-hero .et_pb_row { display:flex; align-items:center; }
.coastal-hero-copy .et_pb_text_inner { color:#b8cee0; }
.coastal-eyebrow { display:inline-flex; align-items:center; border:1px solid rgba(200,146,45,.45); background:rgba(200,146,45,.18); color:var(--cc-gold); padding:5px 14px; border-radius:20px; font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.1em; margin-bottom:18px; }
.coastal-hero h1 { color:#fff !important; font-size:clamp(36px,4vw,50px) !important; line-height:1.16 !important; font-weight:600; margin-bottom:18px; }
.coastal-hero h1 em { color:var(--cc-gold); font-style:normal; }
.coastal-hero p { font-size:17px; color:#b8cee0; }
.coastal-hero .et_pb_button_module_wrapper { display:inline-block; margin:12px 10px 0 0 !important; }
.coastal-hero .et_pb_button { border-radius:6px !important; font-size:15px !important; font-weight:600 !important; }
.coastal-hero .coastal-btn-gold .et_pb_button, .coastal-hero .et_pb_button.coastal-btn-gold { background:var(--cc-gold) !important; color:var(--cc-navy) !important; border-color:var(--cc-gold) !important; }
.coastal-hero .coastal-btn-outline .et_pb_button, .coastal-hero .et_pb_button.coastal-btn-outline { background:transparent !important; color:#fff !important; border-color:rgba(255,255,255,.4) !important; }
.coastal-hero-art img { border:2px solid rgba(255,255,255,.13); border-radius:12px; background:#0a1628; }

/* Trust */
.coastal-trust.et_pb_section { padding:0 24px !important; background:var(--cc-off); border-bottom:1px solid var(--cc-border); }
.coastal-trust .et_pb_row { padding:18px 0 !important; }
.coastal-trust-items { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px 28px; color:var(--cc-text-mid); font-size:14px; }
.coastal-trust-items span::before { content:'✓'; color:var(--cc-gold); font-size:18px; margin-right:8px; }

/* Section headings */
.coastal-section-label { margin:0 0 8px; color:var(--cc-blue); font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.coastal-section-title { color:var(--cc-navy); font-family:'Lora',Georgia,serif; font-size:clamp(28px,3vw,36px); line-height:1.2; font-weight:600; margin:0 0 12px; }
.coastal-section-desc { color:var(--cc-text-mid); font-size:17px; max-width:650px; }

/* Award */
.coastal-award.et_pb_section { background:var(--cc-navy); padding-top:64px; padding-bottom:64px; }
.coastal-award .et_pb_row { display:flex; align-items:center; }
.coastal-award-image img { border:3px solid var(--cc-gold); border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.4); }
.coastal-award-copy .et_pb_text_inner { color:#b8cee0; }
.coastal-award-copy h2 { color:#fff !important; font-size:clamp(28px,3vw,38px) !important; line-height:1.18 !important; }
.coastal-award-copy h2 em { color:var(--cc-gold); font-style:normal; }
.coastal-award-tag { display:inline-block; color:var(--cc-gold); border:1px solid rgba(200,146,45,.45); background:rgba(200,146,45,.18); border-radius:20px; padding:6px 16px; margin-bottom:18px; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.coastal-award-note { border-left:3px solid var(--cc-gold); padding:14px 18px; background:rgba(255,255,255,.06); border-radius:0 6px 6px 0; color:#aec3da; }

/* Services */
.coastal-services.et_pb_section { background:#fff; }
.coastal-service-card.et_pb_blurb { height:100%; border:1px solid var(--cc-border); border-radius:12px; padding:26px; background:#fff; transition:.22s ease; }
.coastal-service-card.et_pb_blurb:hover { transform:translateY(-2px); border-color:var(--cc-blue); box-shadow:0 8px 30px rgba(15,38,69,.10); }
.coastal-service-card h4 { color:var(--cc-navy) !important; font-size:17px !important; font-weight:600; }
.coastal-service-card .et_pb_blurb_description { color:var(--cc-text-mid); font-size:14px; line-height:1.65; }
.coastal-service-card .et_pb_blurb_description a { color:var(--cc-blue); font-weight:600; }
.coastal-service-card .et_pb_blurb_description a::after { content:' →'; }
.coastal-service-card .et_pb_main_blurb_image { margin-bottom:16px; }
.coastal-service-icon { width:46px; height:46px; border-radius:6px; display:flex; align-items:center; justify-content:center; background:var(--cc-blue-light); color:var(--cc-blue); font-size:23px; }

/* About */
.coastal-about.et_pb_section { background:var(--cc-off); }
.coastal-about .et_pb_row { display:flex; align-items:center; }
.coastal-about-logo { background:#fff; border:1px solid var(--cc-border); border-radius:12px; padding:44px; text-align:center; position:relative; }
.coastal-about-logo img { max-width:180px; margin:auto; }
.coastal-about-badge { margin:18px auto 0; display:inline-block; background:var(--cc-navy); color:#aec3da; padding:12px 18px; border-radius:10px; font-size:12px; }
.coastal-about-badge strong { display:block; color:var(--cc-gold); font-family:'Lora',Georgia,serif; font-size:24px; }
.coastal-checks { list-style:none !important; padding:0 !important; margin:20px 0 !important; }
.coastal-checks li { padding:5px 0 5px 26px !important; position:relative; color:var(--cc-text-mid); }
.coastal-checks li::before { content:'✓'; position:absolute; left:0; color:var(--cc-blue); font-weight:700; }

/* Process */
.coastal-process.et_pb_section { background:var(--cc-navy); }
.coastal-process .coastal-section-label { color:var(--cc-gold); }
.coastal-process .coastal-section-title { color:#fff; }
.coastal-process .coastal-section-desc { color:#aec3da; }
.coastal-step.et_pb_blurb { text-align:center; padding:10px 14px; }
.coastal-step h4 { color:#fff !important; font-size:16px !important; font-weight:600; }
.coastal-step .et_pb_blurb_description { color:#8aabc5; font-size:14px; line-height:1.6; }
.coastal-step-num { width:56px; height:56px; border-radius:50%; background:var(--cc-gold); color:var(--cc-navy); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-family:'Lora',Georgia,serif; font-weight:700; font-size:20px; }

/* Reviews */
.coastal-reviews.et_pb_section { background:#fff; }
.coastal-review.et_pb_text { height:100%; border:1px solid var(--cc-border); border-radius:12px; padding:26px; }
.coastal-review-stars { color:var(--cc-gold); letter-spacing:2px; margin-bottom:10px; }
.coastal-review blockquote { border:0 !important; padding:0 !important; margin:0 0 18px !important; font-style:italic; color:var(--cc-text-mid); }
.coastal-review strong { color:var(--cc-navy); }
.coastal-review-placeholder { border:2px dashed var(--cc-border) !important; background:var(--cc-off); text-align:center; }

/* FAQ */
.coastal-faq.et_pb_section { background:var(--cc-off); }
.coastal-faq .et_pb_toggle { border:1px solid var(--cc-border); border-radius:8px; background:#fff; margin-bottom:12px !important; }
.coastal-faq .et_pb_toggle_title { color:var(--cc-navy) !important; font-weight:600; }
.coastal-faq .et_pb_toggle_content { color:var(--cc-text-mid); }

/* Contact */
.coastal-contact.et_pb_section { background:#fff; }
.coastal-contact-card { background:var(--cc-off); border:1px solid var(--cc-border); border-radius:12px; padding:26px; }
.coastal-contact-card p { margin-bottom:14px; color:var(--cc-text-mid); }
.coastal-contact-card strong { color:var(--cc-navy); display:block; font-size:12px; letter-spacing:.07em; text-transform:uppercase; }
.coastal-contact-card a { color:var(--cc-navy); }
.coastal-form-wrap { background:#fff; border:1px solid var(--cc-border); border-radius:12px; padding:28px; }
.coastal-form-wrap h3 { color:var(--cc-navy); margin:0 0 20px; }
.coastal-form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.coastal-form-group { margin-bottom:16px; }
.coastal-form-group label { display:block; margin-bottom:6px; color:var(--cc-text-mid); font-size:13px; font-weight:600; }
.coastal-form-group input,.coastal-form-group select,.coastal-form-group textarea { width:100%; border:1px solid var(--cc-border); border-radius:6px; padding:10px 12px; font:inherit; background:#fff; }
.coastal-form-group textarea { min-height:120px; resize:vertical; }
.coastal-form-submit { display:inline-block; border:0; border-radius:6px; padding:12px 22px; background:var(--cc-blue); color:#fff; font-weight:700; cursor:pointer; }
.coastal-form-message { padding:12px 14px; border-radius:6px; margin-bottom:16px; }
.coastal-form-message.success { background:#e8f6ec; color:#176b32; }
.coastal-form-message.error { background:#fff0f0; color:#9b2222; }

/* Editable footer */
.coastal-footer.et_pb_section { background:var(--cc-navy); padding:48px 24px 24px !important; }
.coastal-footer .et_pb_text_inner,.coastal-footer a { color:#8aabc5; }
.coastal-footer h4 { color:#fff !important; font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.coastal-footer .coastal-footer-brand { color:#fff; font-size:18px; font-weight:600; }
.coastal-footer .coastal-footer-brand span { display:block; color:#aec3da; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.coastal-footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:20px; color:#5e7a94; font-size:13px; }

@media(max-width:980px){
  .admin-bar .coastal-nav-section.et_pb_section { top:46px; }
  .coastal-nav-toggle { display:block; }
  .coastal-nav-links { display:none; position:absolute; left:0; right:0; top:68px; flex-direction:column; align-items:stretch; padding:8px 20px 18px !important; background:var(--cc-navy); border-bottom:3px solid var(--cc-gold); box-shadow:0 12px 24px rgba(0,0,0,.25); }
  .coastal-nav-links.is-open { display:flex; }
  .coastal-nav-links a { height:auto; line-height:1.4; padding:12px 10px; }
  .coastal-nav-links .coastal-call { height:auto; line-height:1.4; margin:8px 0 0; text-align:center; padding:11px 16px; }
  .coastal-hero .et_pb_row,.coastal-award .et_pb_row,.coastal-about .et_pb_row { display:block; }
  .coastal-hero-art { margin-top:36px !important; }
  body.coastal-divi-editable-home .et_pb_section { padding:60px 20px; }
}
@media(max-width:600px){
  .coastal-nav-name { font-size:15px; }
  .coastal-nav-name span { font-size:9px; }
  .coastal-form-row { grid-template-columns:1fr; }
  .coastal-trust-items { display:block; }
  .coastal-trust-items span { display:block; padding:5px 0; }
}
