:root {
  --brand-color: #e2231a; /* Lenovo Red */
  --text-main: #1a1a1a;
  --text-light: #fff;
  --text-dim: #666;
  --bg-page: #ffffff;
  --bg-section: #f7f7fb;
  --line-soft: #e8e8f2;
  --radius-card: 12px;
  --radius-btn: 8px;
  --shadow-card: 0 16px 40px rgba(0,0,0,0.07);
  --max-width: 1280px;
  --container-pad: 16px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans KR",
    "Apple SD Gothic Neo", Roboto, "Segoe UI", sans-serif;
}

*{ box-sizing: border-box; -webkit-font-smoothing: antialiased; }
body{ margin:0; background:var(--bg-page); color:var(--text-main); }
.container{ max-width:var(--max-width); margin:0 auto; padding:0 var(--container-pad); }

.site-header { background:#fff; border-bottom:1px solid #eee; box-shadow:0 4px 12px rgba(0,0,0,0.05); position:sticky; top:0; z-index:1000; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:12px 0; }
.brand-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.brand-logo{ height:28px; object-fit:contain; }
.brand-title{ font-size:1.1rem; font-weight:700; }
.brand-desc{ font-size:0.8rem; color:var(--text-dim); margin-top:4px; }

.call-box{ display:flex; align-items:baseline; gap:8px; }
.call-label{ font-size:0.8rem; color:var(--text-dim); font-weight:600; }
.call-number{ color: var(--brand-color); text-decoration:none; font-size:1.6rem; font-weight:800; line-height:1; }
.call-button{ background:#fff; color:var(--brand-color); text-decoration:none; font-size:0.85rem; font-weight:700; padding:8px 14px; border-radius:var(--radius-btn); border:1px solid var(--brand-color); box-shadow:0 4px 12px rgba(226,35,26,0.15); white-space:nowrap; }

.hero{ position:relative; background-image:url('hero-bg.jpg'); background-size:cover; background-position:center; background-repeat:no-repeat; color:#fff; }
.hero-overlay{ padding:48px 0 64px; background: radial-gradient(circle at 30% 30%, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.55) 100%); }
.hero-inner{ display:flex; flex-wrap:wrap; gap:32px; justify-content:flex-start; }

.hero-left-block{ background:rgba(0,0,0,0.28); border-radius:12px; padding:24px; box-shadow:0 20px 40px rgba(0,0,0,0.4); width:100%; max-width:720px; color:#fff; }
.hero-headline-row{ display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
.headline-text{ color:#fff; font-size:1.7rem; font-weight:800; line-height:1.3; }
.hero-sub{ font-size:1.1rem; color:rgba(255,255,255,0.92); margin:0 0 20px; line-height:1.6; }

.hero-actions{ display:flex; flex-direction:column; gap:8px; margin-bottom:24px; }
@media (min-width:600px){ .hero-actions{ flex-direction:row; gap:12px; } }
.hero-call,.hero-goform,.headline-call{ display:inline-block; text-decoration:none; font-weight:700; font-size:1rem; padding:14px 18px; border-radius:var(--radius-btn); border:2px solid transparent; background:var(--brand-color); color:#fff; box-shadow:0 12px 28px rgba(226,35,26,0.45); white-space:nowrap; }
.headline-call{ font-size:1.1rem; }
@media (max-width:599px){ .hero-goform{ display:none; } .headline-call{ display:flex; align-items:center; } .headline-call::after{ content:" 수리 접수하기"; font-weight:700; font-size:0.9rem; margin-left:6px; } }

.hero-highlights{ list-style:none; padding:0; margin:16px 0 0; font-size:1rem; color:#fff; display:grid; gap:8px; line-height:1.5; }
.hero-highlights li::before{ content:"✔ "; color:#ff7f73; font-weight:800; }

.services{ background:#fff; padding:56px 0; border-top:1px solid #f0f0f8; }
.services h2{ margin:0 0 8px; font-size:1.4rem; font-weight:800; text-align:center; }
.section-desc{ margin:0 auto 32px; font-size:0.92rem; color:#777; text-align:center; max-width:520px; }
.service-grid{ display:grid; gap:16px; }
@media (min-width:960px){ .service-grid{ grid-template-columns:repeat(2,1fr); } }
.service-item{ background:#fff; border-radius:var(--radius-card); box-shadow:var(--shadow-card); border:1px solid #eee; padding:20px 20px 16px; min-height:160px; display:flex; flex-direction:column; }
.service-item .icon{ font-size:1.6rem; margin-bottom:12px; }
.service-item .title{ font-size:1rem; font-weight:700; margin-bottom:8px; color:#222; }
.service-item .desc{ font-size:0.9rem; color:#666; line-height:1.4; }

.request-section{ background:#fafbff; border-top:1px solid #eef2ff; padding:56px 0; }
.request-inner{ display:grid; gap:32px; }
@media (min-width:960px){ .request-inner{ grid-template-columns: 1fr 400px; align-items:flex-start; } }
.request-info h2{ margin:0 0 8px; font-size:1.4rem; font-weight:800; }
.request-highlights{ list-style:none; padding:0; margin:24px 0; font-size:0.9rem; color:#222; display:grid; gap:8px; }
.request-highlights li::before{ content:"• "; color:var(--brand-color); font-weight:900; }
.request-callout{ background:#fff; border:1px solid #eee; border-radius:var(--radius-card); padding:16px; font-size:0.9rem; box-shadow:var(--shadow-card); }
.request-callout a{ color:var(--brand-color); font-weight:700; text-decoration:none; }

.request-form-card{ background:#fff; border-radius:var(--radius-card); box-shadow:var(--shadow-card); border:1px solid #eee; padding:0 0 16px; overflow:hidden; }
.form-head{ background:var(--brand-color); color:#fff; font-weight:800; padding:14px 16px; font-size:0.95rem; }
.form-group{ display:grid; gap:6px; padding:16px; border-top:1px solid #f0f0f8; }
.form-group:first-of-type{ border-top:none; }
.form-group label{ font-size:0.8rem; font-weight:700; }
.form-group input, .form-group select, .form-group textarea{ width:100%; font-size:0.9rem; padding:10px 12px; border-radius:var(--radius-btn); border:1px solid #d8d8e8); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:2px solid var(--brand-color); border-color:var(--brand-color); }

.submit-btn{ display:block; width:calc(100% - 32px); margin:16px auto 8px; border:0; border-radius:var(--radius-btn); background:var(--brand-color); color:#fff; font-size:0.95rem; font-weight:800; padding:12px 16px; cursor:pointer; box-shadow:0 12px 28px rgba(226,35,26,0.35); }
.submit-btn:active{ transform: translateY(1px); }

.form-note{ font-size:0.7rem; color:#888; padding:0 16px; text-align:center; line-height:1.4; }

.site-footer{ background:#0f1326; color:#b5b9d8; margin-top:56px; padding:32px 0 48px; font-size:0.86rem; line-height:1.7; }
.footer-inner{ display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
@media (min-width:768px){ .footer-inner{ grid-template-columns:1fr 1fr; } }
.footer-col .footer-line{ margin:2px 0; }
.footer-brand{ color:#fff; font-weight:800; margin-bottom:6px; }
.footer-tel{ color:#fff; font-weight:800; text-decoration:none; }
.footer-tel:hover{ text-decoration:underline; }

.submit-success{ position:fixed; left:16px; right:16px; bottom:16px; z-index:9999; background:var(--brand-color); color:#fff; border-radius:12px; box-shadow:0 20px 40px rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.2); padding:16px 20px; font-size:0.9rem; line-height:1.4; text-align:center; font-weight:700; }
@media (min-width:480px){ .submit-success{ left:auto; right:24px; bottom:24px; max-width:320px; } }

@media (min-width: 960px){
  .site-header .header-inner .call-box{ display:flex !important; align-items:baseline !important; gap:8px !important; }
  .site-header .header-inner .call-box .call-label{ font-size:0.85rem !important; font-weight:700 !important; color:#888 !important; margin-right:6px !important; order:0; }
  .site-header .header-inner .call-box .call-number{ line-height:1 !important; text-align:left !important; order:1; }
}
