/* =========================================================
   پی‌دی‌آر رخ — هویت بصری بر پایه‌ی «تخته نور» تکنسین‌های PDR:
   خطوط موازی که تکنسین از انعکاس آن روی بدنه، فرورفتگی را پیدا می‌کند.
   ========================================================= */

@import url('https://cdn.jsdelivr.net/npm/vazirmatn@33.003.1/Vazirmatn-font-face.css');

:root {
    --bg: #12161b;
    --panel: #1a2028;
    --panel-2: #212934;
    --line: #2b3542;
    --text: #eef1f4;
    --muted: #98a3b0;
    --accent: #ffb020;
    --accent-ink: #3a2600;
    --accent-2: #59c8dc;
    --danger: #ff6b6b;
    --radius: 10px;
    --font-display: 'Vazirmatn', Tahoma, sans-serif;
    --font-body: 'Vazirmatn', Tahoma, sans-serif;
    --font-mono: 'IBM Plex Mono', 'Courier New', monospace;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

.container {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 24px;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 12.5px;
    letter-spacing: .04em;
    color: var(--accent);
    text-transform: uppercase;
    margin-bottom: 14px;
}
.eyebrow::before {
    content: "";
    width: 22px;
    height: 2px;
    background: var(--accent);
    display: inline-block;
}

h1, h2, h3 { font-family: var(--font-display); font-weight: 800; margin: 0; }

section { padding: 88px 0; }
section.tight { padding: 64px 0; }

.section-head { max-width: 620px; margin-bottom: 44px; }
.section-head h2 { font-size: clamp(26px, 3.4vw, 36px); }
.section-head p { color: var(--muted); margin-top: 12px; font-size: 16px; }

/* ---------- reflective stripe motif (the signature) ---------- */
.stripes {
    background-image: repeating-linear-gradient(
        115deg,
        rgba(255, 176, 32, 0.16) 0px,
        rgba(255, 176, 32, 0.16) 2px,
        transparent 2px,
        transparent 34px
    );
}
.stripes-dense {
    background-image: repeating-linear-gradient(
        115deg,
        rgba(89, 200, 220, 0.5) 0px,
        rgba(89, 200, 220, 0.5) 3px,
        transparent 3px,
        transparent 16px
    );
}

/* ---------- header ---------- */
header.site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(18, 22, 27, 0.88);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
}
.header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 76px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
    width: 42px; height: 42px; border-radius: 8px;
    background: linear-gradient(135deg, var(--accent), #ff8a00);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-mono); font-weight: 700; color: var(--accent-ink);
    overflow: hidden;
    flex-shrink: 0;
}
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand-name { font-weight: 800; font-size: 18px; }
.brand-tagline { color: var(--muted); font-size: 12.5px; margin-top: 1px; }

nav.main-nav { display: flex; gap: 30px; }
nav.main-nav a { color: var(--muted); font-size: 15px; transition: color .15s; }
nav.main-nav a:hover { color: var(--text); }

.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 22px; border-radius: 999px; font-weight: 700; font-size: 14.5px;
    border: 1px solid transparent; cursor: pointer; transition: transform .15s, background .15s, border-color .15s;
}
.btn-accent { background: var(--accent); color: var(--accent-ink); }
.btn-accent:hover { transform: translateY(-1px); background: #ffbf47; }
.btn-outline { border-color: var(--line); color: var(--text); }
.btn-outline:hover { border-color: var(--accent-2); color: var(--accent-2); }
.btn-block { width: 100%; }
.btn-sm { padding: 9px 16px; font-size: 13px; }
.btn-danger { background: transparent; color: var(--danger); border-color: rgba(255,107,107,.4); }
.btn-danger:hover { background: rgba(255,107,107,.1); }

.header-cta { display: flex; align-items: center; gap: 14px; }
.phone-chip {
    font-family: var(--font-mono); font-size: 14px; color: var(--text);
    border: 1px dashed var(--line); border-radius: 999px; padding: 8px 14px;
}

/* ---------- hero ---------- */
.hero {
    position: relative;
    overflow: hidden;
    padding: 110px 0 90px;
    border-bottom: 1px solid var(--line);
}
.hero::before {
    content: "";
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
        115deg,
        rgba(255, 255, 255, 0.05) 0px,
        rgba(255, 255, 255, 0.05) 2px,
        transparent 2px,
        transparent 46px
    );
    mask-image: linear-gradient(to bottom, black, transparent 80%);
}
.hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 50px;
    align-items: center;
}
.hero h1 {
    font-size: clamp(32px, 4.6vw, 52px);
    line-height: 1.28;
}
.hero .lede {
    color: var(--muted);
    font-size: 17.5px;
    margin: 20px 0 32px;
    max-width: 52ch;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-visual {
    position: relative;
    border-radius: 18px;
    border: 1px solid var(--line);
    background: var(--panel);
    aspect-ratio: 4/3;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
}
.hero-visual img { width: 100%; height: 100%; object-fit: cover; }
.hero-visual .placeholder {
    position: absolute; inset: 0;
    background: repeating-linear-gradient(115deg, #263040 0 3px, #1a2028 3px 20px);
}
.hero-visual .placeholder-label {
    position: relative; z-index: 1; color: var(--muted);
    font-family: var(--font-mono); font-size: 13px; text-align: center; padding: 20px;
    background: rgba(18,22,27,.7); border-radius: 8px;
}

.stats-bar {
    position: relative;
    margin-top: 56px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}
.stat { padding: 22px 18px; border-inline-start: 1px solid var(--line); background: var(--panel); }
.stat:first-child { border-inline-start: none; }
.stat .num { font-family: var(--font-mono); font-size: 24px; color: var(--accent); font-weight: 700; }
.stat .lbl { color: var(--muted); font-size: 13px; margin-top: 4px; }

/* ---------- about ---------- */
.about-wrap { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 50px; align-items: center; }
.about-panel {
    border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel);
    padding: 28px; position: relative;
}
.about-panel::after {
    content: ""; position: absolute; inset: 10px;
    border: 1px dashed rgba(255,176,32,.35); border-radius: 6px; pointer-events: none;
}
.about-text { color: var(--muted); font-size: 16.5px; }

/* ---------- services ---------- */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.service-card {
    position: relative;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 26px 22px;
    overflow: hidden;
    transition: border-color .2s, transform .2s;
}
.service-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.service-card::before {
    content: "";
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(115deg, rgba(255,176,32,.12) 0 2px, transparent 2px 22px);
    opacity: 0;
    transition: opacity .25s;
}
.service-card:hover::before { opacity: 1; }
.service-card h3 { font-size: 18px; position: relative; }
.service-card p { color: var(--muted); font-size: 14.5px; margin: 10px 0 16px; position: relative; }
.service-price {
    position: relative;
    display: inline-block;
    font-family: var(--font-mono); font-size: 13px; color: var(--accent-2);
    border-top: 1px solid var(--line); padding-top: 12px; width: 100%;
}

/* ---------- why us ---------- */
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.why-item { padding: 4px; }
.why-num { font-family: var(--font-mono); color: var(--accent-2); font-size: 13px; margin-bottom: 10px; display: block; }
.why-item h3 { font-size: 16.5px; margin-bottom: 8px; }
.why-item p { color: var(--muted); font-size: 14.5px; }

/* ---------- gallery ---------- */
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gallery-card { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--panel); }
.gallery-thumb {
    aspect-ratio: 4/3; background: repeating-linear-gradient(115deg,#263040 0 3px,#1a2028 3px 20px);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-body { padding: 16px 18px; }
.gallery-body h3 { font-size: 15.5px; }
.gallery-body p { color: var(--muted); font-size: 13.5px; margin-top: 6px; }

/* ---------- testimonials ---------- */
.testi-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.testi-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.testi-card p { font-size: 15.5px; color: var(--text); }
.testi-name { margin-top: 14px; color: var(--accent-2); font-family: var(--font-mono); font-size: 13px; }

/* ---------- contact ---------- */
.contact-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; }
.contact-row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.contact-row:last-child { border-bottom: none; }
.contact-row .k { color: var(--muted); }
.contact-row .v { font-family: var(--font-mono); }
.social-row { display: flex; gap: 10px; margin-top: 18px; }

/* ---------- footer ---------- */
footer.site-footer {
    border-top: 1px solid var(--line);
    padding: 30px 0;
    color: var(--muted);
    font-size: 13.5px;
    text-align: center;
}
footer.site-footer a { color: var(--accent-2); }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
    nav.main-nav { display: none; }
    .hero-grid { grid-template-columns: 1fr; }
    .stats-bar { grid-template-columns: repeat(2, 1fr); }
    .stat:nth-child(3) { border-inline-start: none; }
    .about-wrap { grid-template-columns: 1fr; }
    .card-grid { grid-template-columns: repeat(2, 1fr); }
    .why-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .testi-grid { grid-template-columns: 1fr; }
    .contact-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .card-grid, .why-grid, .gallery-grid { grid-template-columns: 1fr; }
    .stats-bar { grid-template-columns: repeat(2, 1fr); }
    section { padding: 60px 0; }
}

/* ---------- focus visibility ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--accent-2);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
    html { scroll-behavior: auto; }
}

/* =========================================================
   پنل مدیریت
   ========================================================= */
body.admin-body {
    background: var(--bg);
    min-height: 100vh;
}
.admin-shell { display: flex; min-height: 100vh; }
.admin-sidebar {
    width: 240px; flex-shrink: 0;
    background: var(--panel);
    border-inline-end: 1px solid var(--line);
    padding: 24px 16px;
    position: sticky; top: 0; height: 100vh;
}
.admin-sidebar .brand-name { display: block; margin-bottom: 4px; }
.admin-sidebar .brand-tagline { margin-bottom: 26px; }
.admin-nav a {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 14px; border-radius: 8px; color: var(--muted);
    font-size: 14.5px; margin-bottom: 4px; transition: background .15s, color .15s;
}
.admin-nav a:hover, .admin-nav a.active { background: var(--panel-2); color: var(--text); }
.admin-nav a.active { border-inline-start: 2px solid var(--accent); }
.admin-main { flex: 1; padding: 36px 40px; max-width: 980px; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.admin-topbar h1 { font-size: 24px; }
.admin-topbar .muted-link { color: var(--muted); font-size: 14px; }

.panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 26px;
    margin-bottom: 24px;
}
.panel h2 { font-size: 16.5px; margin-bottom: 4px; }
.panel .panel-desc { color: var(--muted); font-size: 13.5px; margin-bottom: 20px; }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-field { margin-bottom: 16px; }
.form-field label {
    display: block; font-size: 13.5px; color: var(--muted); margin-bottom: 7px;
}
.form-field input[type=text],
.form-field input[type=email],
.form-field input[type=password],
.form-field input[type=tel],
.form-field input[type=url],
.form-field textarea {
    width: 100%; background: var(--bg); border: 1px solid var(--line); color: var(--text);
    border-radius: 8px; padding: 11px 13px; font-family: var(--font-body); font-size: 14.5px;
}
.form-field textarea { min-height: 90px; resize: vertical; }
.form-field input[type=file] { color: var(--muted); font-size: 13.5px; }
.form-field .hint { font-size: 12px; color: var(--muted); margin-top: 6px; }

.repeat-item {
    border: 1px solid var(--line); border-radius: 8px; padding: 18px; margin-bottom: 14px; position: relative; background: var(--panel-2);
}
.repeat-item .remove-btn {
    position: absolute; top: 10px; inset-inline-start: 10px;
    background: transparent; border: 1px solid rgba(255,107,107,.4); color: var(--danger);
    border-radius: 6px; padding: 5px 10px; font-size: 12px; cursor: pointer;
}
.add-item-btn {
    background: transparent; border: 1px dashed var(--line); color: var(--muted);
    padding: 12px; width: 100%; border-radius: 8px; cursor: pointer; font-size: 14px;
}
.add-item-btn:hover { border-color: var(--accent-2); color: var(--accent-2); }

.alert { border-radius: 8px; padding: 13px 16px; font-size: 14px; margin-bottom: 20px; }
.alert-success { background: rgba(76, 217, 100, .12); border: 1px solid rgba(76,217,100,.35); color: #7ee49b; }
.alert-error { background: rgba(255,107,107,.12); border: 1px solid rgba(255,107,107,.35); color: #ff9a9a; }

.login-wrap {
    min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px;
}
.login-card {
    width: 100%; max-width: 380px; background: var(--panel); border: 1px solid var(--line);
    border-radius: 14px; padding: 32px; position: relative; overflow: hidden;
}
.login-card::before {
    content: ""; position: absolute; inset: 0;
    background-image: repeating-linear-gradient(115deg, rgba(255,176,32,.08) 0 2px, transparent 2px 26px);
    pointer-events: none;
}
.login-card h1 { font-size: 20px; margin-bottom: 6px; position: relative; }
.login-card p.muted { color: var(--muted); font-size: 13.5px; margin-bottom: 24px; position: relative; }
.login-card form { position: relative; }

.current-image { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.current-image img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }

@media (max-width: 800px) {
    .admin-shell { flex-direction: column; }
    .admin-sidebar { width: 100%; height: auto; position: relative; }
    .admin-main { padding: 24px 18px; }
    .form-grid { grid-template-columns: 1fr; }
}
