/* IranPros Turkey – Phase 1 styles. Logical properties so the same CSS works LTR and RTL. */
@font-face { font-family: "Vazirmatn"; src: url("/fonts/Vazirmatn-wght.woff2") format("woff2-variations"), url("/fonts/Vazirmatn-wght.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
:root { --ink:#1d2433; --muted:#5b6577; --line:#e3e6ec; --bg:#f7f8fa; --brand:#0f6b5c; --brand-2:#c9a227; --confirm:#fff1a8; --radius:10px; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; color:var(--ink); background:#fff; font: 16px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
[lang="fa"], .lang-fa { font-family: "Vazirmatn", Tahoma, system-ui, sans-serif; }
.container { max-width: 1120px; margin-inline: auto; padding-inline: 20px; }
a { color: var(--brand); }
.skip { position:absolute; inset-inline-start:-999px; } .skip:focus { inset-inline-start: 10px; top: 10px; background:#fff; padding:6px 10px; z-index:10; }
mark.confirm { background: var(--confirm); color:#5a4500; padding: 0 .25em; border-radius:4px; font-weight:600; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85em; unicode-bidi: isolate; direction: ltr; }
.field { background:#e8f0fe; color:#1a3d8f; padding:0 .25em; border-radius:4px; font-family: ui-monospace, monospace; font-size:.85em; unicode-bidi: isolate; direction:ltr; }
/* header */
.site-header { border-block-end:1px solid var(--line); background:#fff; }
.header-inner { display:flex; align-items:center; gap:24px; min-height:64px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-weight:700; font-size:1.15rem; }
.brand-mark { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:8px; background:var(--brand); color:#fff; font-size:.9rem; letter-spacing:.5px; }
.main-nav { display:flex; gap:18px; flex:1; flex-wrap:wrap; }
.main-nav a, .lang-switch a { text-decoration:none; color:var(--muted); }
.main-nav a.active, .main-nav a:hover { color:var(--ink); }
.lang-switch { display:flex; gap:6px; }
.lang-switch a { padding:4px 10px; border:1px solid var(--line); border-radius:999px; font-size:.9rem; }
.lang-switch a.active { background:var(--ink); color:#fff; border-color:var(--ink); }
/* content */
main { padding-block: 32px 48px; min-height: 50vh; }
h1 { font-size: clamp(1.6rem, 3vw, 2.3rem); line-height:1.25; margin-block: 0 .6em; }
h2 { font-size: 1.35rem; margin-block: 1.6em .6em; }
.lead { font-size:1.15rem; color:var(--muted); max-width: 60ch; }
.notice { background:var(--bg); border-inline-start:4px solid var(--brand); padding:10px 14px; border-radius:6px; }
.btn { display:inline-block; padding:10px 18px; border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--ink); text-decoration:none; font: inherit; cursor:pointer; }
.btn-primary { background:var(--brand); color:#fff; border-color:var(--brand); }
.cta { display:flex; gap:12px; flex-wrap:wrap; }
.hero { padding-block: 24px; }
.cards { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
.card { border:1px solid var(--line); border-radius:var(--radius); padding:18px; background:#fff; }
.card h3 { margin-block-start:0; }
.card-premium { border-color: var(--brand-2); box-shadow: 0 0 0 2px #f4e7b5 inset; }
.verified-note { color: var(--brand); font-weight:600; }
.landing { text-align:center; padding-block: 40px; }
.landing-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap:16px; margin-block-start: 24px; }
.landing-card { display:flex; flex-direction:column; gap:6px; padding:22px; border:1px solid var(--line); border-radius:var(--radius); text-decoration:none; color:var(--ink); }
.landing-card strong { font-size:1.3rem; }
.landing-card:hover { border-color: var(--brand); }
/* legal */
.legal-doc, .contact, .pricing { max-width: 860px; }
.draft-banner { background:#fff4e5; border:1px solid #f5c77e; color:#7a4b00; padding:10px 14px; border-radius:8px; font-weight:600; }
.translation-note { background:#eef6ff; border:1px solid #b9d7ff; padding:8px 14px; border-radius:8px; }
.doc-meta, .fields-note, .small { color:var(--muted); font-size:.92rem; }
.prose p { margin-block: .7em; }
table { border-collapse: collapse; width:100%; }
th, td { border:1px solid var(--line); padding:8px 10px; text-align:start; vertical-align:top; }
th { background:var(--bg); }
.table-wrap { overflow-x:auto; }
.price { white-space:nowrap; }
.pricing-notes li { margin-block: .3em; }
/* .payment-band-inline / .payment-band > img: markup of release 20261103-0945, kept so this CSS is rollback-safe */
.payment-band-inline img, .payment-band > img { max-width:100%; height:auto; }
.payment-logos { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; }
.payment-logos img { max-width:100%; height:auto; display:block; }
.payment-logos--inline { margin-block: 16px; padding:12px 16px; background:#fff; border:1px solid var(--line); border-radius:8px; width:fit-content; max-width:100%; }
/* contact */
.contact-form { display:grid; gap:12px; max-width: 560px; }
.contact-form label { display:grid; gap:4px; font-weight:600; }
.contact-form input, .contact-form textarea { font:inherit; padding:9px 10px; border:1px solid #c8ced8; border-radius:8px; font-weight:400; }
.hp { position:absolute; inset-inline-start:-10000px; width:1px; height:1px; overflow:hidden; }
.success { background:#e8f7ef; border:1px solid #9fd8b8; padding:8px 12px; border-radius:8px; }
.errors { background:#fdecec; border:1px solid #f1a9a9; padding:8px 12px; border-radius:8px; }
/* footer */
.site-footer { background:#10151f; color:#cfd5df; padding-block: 32px 20px; font-size:.93rem; }
.site-footer a, .site-footer .linklike { color:#e9eef6; }
.site-footer h2 { color:#fff; font-size:1rem; margin-block: 0 .6em; }
.footer-grid { display:grid; grid-template-columns: 2fr 1fr 1fr; gap:32px; }
.footer-company address { font-style:normal; line-height:1.8; }
.footer-legal ul { list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.linklike { background:none; border:0; padding:0; font:inherit; text-decoration:underline; cursor:pointer; }
.payment-band { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-block: 24px 8px; padding:12px 16px; background:#fff; border-radius:8px; }
.payment-band .ssl { color:#1d2433; font-weight:600; }
.footer-bottom { border-block-start:1px solid #2a3242; margin-block-start:16px; padding-block-start:12px; color:#9aa3b2; }
.site-footer mark.confirm { color:#5a4500; }
/* cookie banner */
.cookie-banner { position:fixed; inset-inline:16px; inset-block-end:16px; max-width:720px; margin-inline:auto; background:#fff; border:1px solid var(--line); box-shadow:0 8px 30px rgba(0,0,0,.15); border-radius:12px; padding:14px 18px; z-index:50; }
.cookie-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.cookie-actions .btn { min-width: 160px; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
/* ---- Phase 2: forms, directory, profiles, admin ---- */
.form-stack, .form-grid { display:grid; gap:14px; }
.form-stack.narrow { max-width: 420px; }
.form-stack label, .form-grid label { display:grid; gap:4px; font-weight:500; }
input, select, textarea { font: inherit; padding:9px 11px; border:1px solid #cfd5df; border-radius:8px; background:#fff; color:var(--ink); max-width:100%; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--brand); outline-offset: 1px; }
label.check { display:flex !important; align-items:flex-start; gap:8px; font-weight:400; }
label.check input { margin-block-start: .35em; }
fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; margin:0; display:grid; gap:12px; }
legend { font-weight:700; padding-inline: 6px; }
fieldset.premium-only { background: #fffbea; }
.auth-box { max-width: 460px; margin-inline:auto; }
.small { font-size:.88rem; color: var(--muted); }
.muted { color: var(--muted); }
.inline-form { display:inline-flex; gap:6px; align-items:center; flex-wrap:wrap; margin:0; }
.panel { border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; background:#fff; margin-block-end:16px; }
.account-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.listing-row h3 { margin:0 0 4px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; margin-block: 10px 0; }
.lang-block { border-inline-start: 3px solid var(--line); padding-inline-start: 12px; display:grid; gap:10px; }
.lang-block h3 { margin: 4px 0 0; font-size:1rem; }
.codes { columns: 2; font-size: 1.05rem; } .qr svg { width: 200px; height: 200px; }
.secret { font-size: 1.05rem; letter-spacing: .5px; }
.badge { display:inline-block; font-size:.8rem; font-weight:700; padding:2px 9px; border-radius:999px; background:var(--bg); border:1px solid var(--line); color:var(--ink); white-space:nowrap; }
.badge-verified { background:#e6f4f1; border-color:#9fd3c7; color:#0b5246; }
.badge-premium { background:#fff4cc; border-color:var(--brand-2); color:#6b5200; }
.badge-new { background:#e8f0fe; border-color:#a8c1f5; color:#1a3d8f; }
.status-published { color:#0b5246; font-weight:600; } .status-rejected, .status-suspended { color:#9b1c1c; font-weight:600; }
.search-form { display:grid; grid-template-columns: 2fr 1fr 1fr auto; gap:12px; align-items:end; background:var(--bg); padding:16px; border-radius:var(--radius); margin-block: 12px 18px; }
.search-form label { display:grid; gap:4px; font-size:.9rem; color:var(--muted); }
@media (max-width: 760px) { .search-form { grid-template-columns: 1fr; } }
.result-count { color: var(--muted); }
.listing-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap:16px; }
.listing-card { position:relative; border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; background:#fff; display:flex; flex-direction:column; }
.listing-card h3 { margin: 0 0 4px; font-size:1.1rem; } .listing-card h3 a { color: var(--ink); text-decoration:none; }
.listing-card .meta { color: var(--muted); margin:0 0 6px; font-size:.92rem; }
.listing-card .desc { margin: 6px 0; } .listing-card .actions { margin-block-start:auto; padding-block-start:8px; }
.listing-card-premium { border:2px solid var(--brand-2); background: linear-gradient(180deg, #fffdf3, #fff 60%); box-shadow: 0 4px 16px rgba(201,162,39,.18); grid-column: span 2; }
.listing-card-premium h3 { font-size:1.35rem; font-weight:800; }
@media (max-width: 640px) { .listing-card-premium { grid-column: auto; } }
.ribbon { position:absolute; inset-block-start:12px; inset-inline-end:12px; background:var(--brand-2); color:#fff; font-weight:700; font-size:.78rem; padding:3px 10px; border-radius:999px; }
.btn-whatsapp { background:#1f9d55; color:#fff; border-color:#1f9d55; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-block: 0 16px; }
.chips a { padding:4px 12px; border:1px solid var(--line); border-radius:999px; text-decoration:none; color:var(--ink); font-size:.9rem; }
.chips a.active { background:var(--ink); color:#fff; border-color:var(--ink); }
.category-grid { list-style:none; padding:0; display:grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap:10px; }
.category-grid a { display:block; padding:10px 14px; border:1px solid var(--line); border-radius:8px; text-decoration:none; color:var(--ink); background:#fff; }
.category-grid a:hover { border-color: var(--brand); }
.pager { display:flex; gap:14px; justify-content:center; margin-block: 20px; }
.breadcrumbs { margin-block-end: 12px; }
.profile-head { border-block-end:1px solid var(--line); padding-block-end: 14px; margin-block-end: 18px; }
.profile-head .meta { color: var(--muted); margin:0; }
.profile-premium .profile-head { border-block-end: 3px solid var(--brand-2); }
.profile-premium .profile-head h1 { font-weight: 800; }
.badges { display:flex; gap:8px; flex-wrap:wrap; margin-block: 10px 0; }
.profile-grid { display:grid; grid-template-columns: minmax(280px, 1fr) 2fr; gap:16px; align-items:start; }
@media (max-width: 820px) { .profile-grid { grid-template-columns: 1fr; } }
.facts { display:grid; grid-template-columns: max-content 1fr; gap:6px 14px; margin:0; }
.facts dt { color: var(--muted); } .facts dd { margin:0; }
.facts dd.changed { background:#fff4cc; border-radius:4px; padding-inline:4px; }
.social { list-style:none; padding:0; display:flex; gap:10px; flex-wrap:wrap; }
.social a { padding:4px 12px; border:1px solid var(--line); border-radius:999px; text-decoration:none; }
/* admin */
body.admin { background: var(--bg); }
.admin-header .brand-mark { background: var(--ink); }
.admin-user { display:flex; gap:8px; align-items:center; }
.admin-main { max-width: 1320px; }
.admin-table { width:100%; border-collapse: collapse; background:#fff; font-size:.93rem; }
.admin-table th, .admin-table td { border-block-end:1px solid var(--line); padding:8px 10px; text-align:start; vertical-align:top; }
.admin-table th { background:#eef1f5; font-weight:600; }
.admin-table tr.sub td { color: var(--muted); font-size:.88rem; }
.stats { display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:12px; }
.stat { display:block; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; text-decoration:none; color:var(--ink); }
.stat strong { display:block; font-size:2rem; }
.review-actions { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
@media (max-width: 760px) { .review-actions { grid-template-columns: 1fr; } }
.listing-grid { grid-auto-flow: row dense; }
.panel > h2:first-child { margin-block-start: 0; }
.form-grid > button, .form-stack > button { justify-self: start; }

/* Phase 3 – checkout & finance */
.steps { display:flex; flex-wrap:wrap; gap:8px 20px; list-style:none; padding:0; margin:0 0 16px; font-size:.95rem; color:var(--muted, #555); }
.steps li.current { font-weight:700; color:inherit; border-block-end:3px solid var(--accent, #0a7d5a); }
.checkout .form-grid fieldset { margin-block-end:18px; }
.product-choices { display:grid; gap:8px; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); margin-block-end:12px; }
.product-choice { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; background:#fff; }
.product-choice .price { display:block; font-size:1.1rem; margin-block-start:2px; }
.two-col { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.three-col { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); }
.radio-row { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; margin-block-end:10px; }
.order-summary table { width:100%; border-collapse:collapse; }
.order-summary th, .order-summary td { text-align:start; padding:6px 8px; border-block-end:1px solid var(--line); vertical-align:top; }
.order-summary tr.total td, .order-summary tr.total th { font-size:1.1rem; }
details.contract { border:1px solid var(--line); border-radius:var(--radius); margin-block-end:12px; background:#fff; }
details.contract > summary { cursor:pointer; padding:10px 14px; font-weight:600; }
.contract-body { max-height:340px; overflow:auto; padding:0 16px 12px; border-block-start:1px solid var(--line); font-size:.92rem; }
.field-value { background:#eef7f2; padding:0 3px; border-radius:3px; }
.btn-pay { font-size:1.1rem; padding:12px 22px; }
.notice.success { border-color:#0a7d5a; background:#eef7f2; }
.admin-table td.num, .admin-table th.num, td.num { text-align:end; white-space:nowrap; }
.luca-preview { font-size:.78rem; }
.luca-preview th, .luca-preview td { white-space:nowrap; }
.finance-nav { margin-block-end:14px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; align-items:end; margin-block-end:12px; }
.test-mode-banner { background:#fff3cd; border:2px dashed #b58100; color:#5c4200; padding:10px 14px; border-radius:var(--radius); margin:0 0 16px; }
/* ---- Phase 4: city guide, info pages, ads, map buttons, contact card, binding notice ---- */
.binding-notice { background:#fff4cc; border:2px solid var(--brand-2); border-radius:var(--radius); padding:12px 16px; margin-block:0 20px; }
.binding-notice p { margin:0; } .binding-notice a { font-weight:700; margin-inline-start:.4em; white-space:nowrap; }
.breadcrumbs { color:var(--muted); margin-block-end:8px; }
.tiles, .info-tiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:14px; }
.tile { display:flex; flex-direction:column; gap:4px; border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; text-decoration:none; color:var(--ink); background:#fff; transition:border-color .15s; }
.tile:hover, .tile:focus { border-color:var(--brand); }
.tile strong { color:var(--brand); font-size:1.05rem; }
.tile .big { font-size:1.6rem; font-weight:800; color:#b3261e; }
.tile-emergency { border-color:#f2b8b5; background:#fff7f6; }
.rates-mini { font-weight:700; font-variant-numeric:tabular-nums; }
.guide-filters { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:end; background:var(--bg); border-radius:var(--radius); padding:12px 14px; margin-block:12px 6px; }
.guide-filters label { display:flex; flex-direction:column; font-size:.9rem; color:var(--muted); }
.guide-filters select { font:inherit; padding:7px 8px; border:1px solid var(--line); border-radius:6px; min-width:150px; background:#fff; }
.guide-layout { display:grid; grid-template-columns:1fr 260px; gap:24px; align-items:start; }
@media (max-width: 900px) { .guide-layout { grid-template-columns:1fr; } }
.place-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:14px; }
.place-card { border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; background:#fff; display:flex; flex-direction:column; }
.place-card h3 { margin:0 0 2px; font-size:1.08rem; } .place-card h3 a { text-decoration:none; }
.place-card .meta { color:var(--muted); margin:4px 0; font-size:.93rem; }
.place-card .alt-name { margin:0; color:var(--muted); }
.place-card .card-foot { margin-block:auto 0; padding-block-start:6px; }
.place-card:target { outline:3px solid var(--brand-2); }
.badge-lang { background:#e6f4f1; border-color:#9fd3c7; color:#0b5246; text-decoration:none; }
.map-buttons { display:flex; flex-wrap:wrap; gap:6px; margin-block:8px; }
.btn-map { padding:5px 11px; font-size:.86rem; border-radius:999px; }
.district-list { list-style:none; padding:0; margin:0 0 12px; columns:2; font-size:.92rem; }
.district-list a.active { font-weight:700; color:var(--ink); }
.district-grid { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:8px; }
.district-grid a { display:block; padding:8px 12px; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.source-line, .source-box { color:var(--muted); border-block-start:1px solid var(--line); padding-block-start:10px; margin-block-start:18px; }
.info-table { width:100%; border-collapse:collapse; margin-block:8px 18px; }
.info-table th, .info-table td { text-align:start; padding:8px 10px; border-block-end:1px solid var(--line); vertical-align:top; }
.info-table thead th { background:var(--bg); font-size:.9rem; }
.info-table .num { font-size:1.4rem; font-weight:800; text-decoration:none; color:#b3261e; }
.info-table tr.half td { background:#fffaf0; } .info-table tr.past { opacity:.55; }
.info-table.rates td { font-variant-numeric:tabular-nums; text-align:end; }
.table-scroll { overflow-x:auto; }
.emergency-hero { display:flex; gap:18px; align-items:center; background:#b3261e; color:#fff; border-radius:var(--radius); padding:16px 22px; text-decoration:none; margin-block:12px 8px; }
.emergency-hero .num { font-size:3rem; font-weight:900; line-height:1; } .emergency-hero small { opacity:.9; }
.next-holiday { background:#e6f4f1; border-radius:8px; padding:10px 14px; display:inline-block; }
.ad-slot { position:relative; border:1px dashed #c8cdd6; border-radius:var(--radius); padding:22px 14px 12px; margin-block:18px; background:#fcfcfd; }
.ad-label { position:absolute; inset-block-start:4px; inset-inline-start:10px; font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.ad-card { display:flex; flex-direction:column; gap:2px; text-decoration:none; color:var(--ink); }
.ad-card strong { color:var(--brand); }
.contact-card { max-width:100%; height:auto; display:block; }
.contact-card-wrap { background:#10151f; border-radius:var(--radius); padding:16px; display:inline-block; max-width:100%; }
.footer-social { margin-block:12px 0; } .footer-social .ig { font-weight:700; }
.suggest-form fieldset { border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin-block:10px; }
.suggest-form fieldset label { display:block; margin-block:6px; }
.suggest-form input:not([type=radio]):not([type=checkbox]), .suggest-form textarea { width:100%; }
.pre-line { white-space:pre-line; max-width:38em; } input.wide { width:100%; }
tr.changed th, tr.changed td { background:#fff4cc; }
.muted { color:var(--muted); }
.admin-table input.wide { min-width:22em; }
