/* ============================================================
   ΕΣΩΤΕΡΙΚΕΣ ΣΕΛΙΔΕΣ — Rossis Real Estate
   Φορτώνεται ΜΟΝΟ στις σελίδες Εταιρία / Υπηρεσίες / Επικοινωνία.
   Όλα τα selectors έχουν πρόθεμα "rp-" (Rossis Page) ώστε να μην
   συγκρούονται με κλάσεις του WPResidence.
   Βασισμένο στο εγκεκριμένο demo (etairia.html / ipiresies.html /
   epikoinonia.html).
   ============================================================ */

/* ===== ΓΕΝΙΚΑ (eyebrow/section headings, κοινά σε όλες) ===== */
.rp-eyebrow{ font-size:11px; letter-spacing:4px; color:var(--rossis-green,#1d6b3a); margin-bottom:14px; text-transform:uppercase; font-weight:600; }

/* ===== INTRO (Εταιρία — hero-like πάνω τμήμα) ===== */
.rp-intro{ padding:80px 40px 60px; background:#fafaf8; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.rp-intro-text .rp-eyebrow{ margin-bottom:14px; }
.rp-intro-text h1{ font-family:'Playfair Display', serif; font-weight:700; font-size:46px; line-height:1.05; letter-spacing:-1.5px; color:#1a1a1a; margin-bottom:20px; }
.rp-intro-text h1 em{ color:var(--rossis-green,#1d6b3a); font-style:italic; font-weight:500; }
.rp-intro-text .rp-lead{ font-size:15px; line-height:1.85; color:#555; margin-bottom:18px; }
.rp-intro-text .rp-signature{ font-family:'Playfair Display', serif; font-style:italic; color:var(--rossis-green,#1d6b3a); font-size:16px; margin-top:24px; }
.rp-intro-visual{ background:linear-gradient(135deg, #d4e5d8, #7da587); height:420px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:140px; position:relative; }
.rp-iv-badge{ position:absolute; bottom:30px; left:-30px; background:#fff; padding:20px 26px; border-radius:6px; box-shadow:0 8px 30px rgba(0,0,0,.1); }
.rp-iv-badge .rp-num{ font-family:'Playfair Display', serif; font-weight:700; font-size:38px; color:var(--rossis-green,#1d6b3a); line-height:1; }
.rp-iv-badge .rp-lbl{ font-size:11px; color:#888; letter-spacing:1.5px; margin-top:4px; text-transform:uppercase; }

/* ===== VALUES (Οι Αξίες μας) ===== */
.rp-values{ padding:60px 40px; background:#fff; border-bottom:1px solid #ececec; }
.rp-val-head{ text-align:center; margin-bottom:40px; }
.rp-val-title{ font-family:'Playfair Display', serif; font-weight:700; font-size:32px; color:#1a1a1a; letter-spacing:-.5px; }
.rp-val-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.rp-val-card{ padding:32px 28px; border:1px solid #ececec; border-radius:8px; text-align:center; transition:border-color .2s; }
.rp-val-card:hover{ border-color:var(--rossis-green,#1d6b3a); }
.rp-val-icon{ width:60px; height:60px; background:#f5faf6; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; color:var(--rossis-green,#1d6b3a); font-size:26px; }
.rp-val-card h3{ font-family:'Playfair Display', serif; font-weight:700; font-size:20px; color:#1a1a1a; margin-bottom:10px; }
.rp-val-card p{ font-size:13px; color:#666; line-height:1.8; }

/* ===== NETWORK (Πανελλαδικό Δίκτυο + χάρτης) ===== */
.rp-network{ padding:80px 40px; background:linear-gradient(135deg, #0f3d1f 0%, #1d4029 100%); color:#fff; position:relative; overflow:hidden; }
.rp-network::before{ content:''; position:absolute; left:-200px; bottom:-200px; width:500px; height:500px; border:1px solid rgba(125,211,148,.08); border-radius:50%; }
.rp-net-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:60px; align-items:center; position:relative; z-index:1; }
.rp-net-text .rp-eyebrow{ color:#7dd394; }
.rp-net-text h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:38px; color:#fff; letter-spacing:-1px; line-height:1.1; margin-bottom:18px; }
.rp-net-text h2 em{ color:#7dd394; font-style:italic; font-weight:500; }
.rp-net-text p{ font-size:15px; color:rgba(255,255,255,.75); line-height:1.85; margin-bottom:18px; }
.rp-net-stats{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.rp-net-stat{ padding:18px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:6px; }
.rp-net-stat .rp-n{ font-family:'Playfair Display', serif; font-weight:700; font-size:28px; color:#7dd394; line-height:1; }
.rp-net-stat .rp-l{ font-size:11px; color:rgba(255,255,255,.65); letter-spacing:1.5px; margin-top:6px; text-transform:uppercase; }

.rp-greece-map-photo{ height:480px; position:relative; display:flex; align-items:center; justify-content:center; border-radius:8px; background:radial-gradient(ellipse at center, rgba(125,211,148,.05) 0%, transparent 70%); }
.rp-greece-map-photo .rp-map-inner{ position:relative; height:100%; aspect-ratio:617/586; max-width:100%; }
.rp-greece-map-photo .rp-map-bg{ width:100%; height:100%; object-fit:contain; display:block; opacity:.92; filter:drop-shadow(0 8px 24px rgba(0,0,0,.35)); }
.rp-greece-map-photo .rp-greece-svg{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }

/* ===== APPROACH (Η Προσέγγισή μας) ===== */
.rp-approach{ padding:80px 40px; background:#fff; }
.rp-app-head{ text-align:center; margin-bottom:50px; }
.rp-app-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }
.rp-app-step{ position:relative; }
.rp-app-step-num{ font-family:'Playfair Display', serif; font-style:italic; font-weight:300; font-size:64px; color:var(--rossis-green,#1d6b3a); opacity:.25; line-height:1; margin-bottom:8px; }
.rp-app-step h3{ font-family:'Playfair Display', serif; font-weight:700; font-size:18px; color:#1a1a1a; margin-bottom:10px; }
.rp-app-step p{ font-size:13px; color:#666; line-height:1.8; }

/* ===== TRUST (Πιστοποιήσεις) ===== */
.rp-trust{ padding:50px 40px; background:#fafaf8; border-top:1px solid #ececec; border-bottom:1px solid #ececec; text-align:center; }
.rp-trust-eyebrow{ font-size:10px; letter-spacing:3px; color:#888; margin-bottom:24px; text-transform:uppercase; font-weight:500; }
.rp-trust-grid{ display:flex; justify-content:center; gap:50px; align-items:center; flex-wrap:wrap; }
.rp-trust-item{ display:flex; align-items:center; gap:10px; color:#666; font-size:13px; }
.rp-trust-item i{ color:var(--rossis-green,#1d6b3a); font-size:24px; }

/* ===== CTA BLOCK (κοινό σε πολλές σελίδες) ===== */
.rp-cta-block{ padding:60px 40px; text-align:center; background:#fff; }
.rp-cta-block h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:28px; color:#1a1a1a; letter-spacing:-.5px; margin-bottom:14px; }
.rp-cta-block p{ font-size:14px; color:#666; margin-bottom:24px; max-width:560px; margin-left:auto; margin-right:auto; line-height:1.8; }
.rp-cta-btns{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.rp-btn-p{ background:var(--rossis-green,#1d6b3a); color:#fff; border:none; padding:13px 28px; font-size:13px; font-weight:500; letter-spacing:.5px; border-radius:3px; cursor:pointer; text-decoration:none; display:inline-block; }
.rp-btn-p:hover{ background:var(--rossis-green-dark,#155a2e); color:#fff; }
.rp-btn-s{ background:transparent; color:#1a1a1a; border:1px solid #ccc; padding:13px 28px; font-size:13px; letter-spacing:.5px; border-radius:3px; cursor:pointer; text-decoration:none; display:inline-block; }

/* ===== RESPONSIVE — TABLET ===== */
@media (max-width: 1024px){
  .rp-intro{ padding:60px 20px 50px; gap:32px; }
  .rp-intro-text h1{ font-size:38px; }
  .rp-intro-visual{ height:360px; }
  .rp-values, .rp-approach{ padding:50px 20px; }
  .rp-network{ padding:60px 20px; }
  .rp-net-grid{ gap:32px; }
  .rp-net-text h2{ font-size:32px; }
  .rp-greece-map-photo{ height:420px; }
  .rp-val-grid{ grid-template-columns:1fr; }
  .rp-app-grid{ grid-template-columns:repeat(2, 1fr); gap:36px 24px; }
  .rp-trust{ padding:36px 20px; }
  .rp-trust-grid{ gap:24px; }
  .rp-cta-block{ padding:50px 20px; }
}

/* ===== RESPONSIVE — MOBILE ===== */
@media (max-width: 768px){
  .rp-intro{ padding:40px 16px 36px; grid-template-columns:1fr; gap:28px; }
  .rp-intro-text h1{ font-size:30px; }
  .rp-intro-visual{ height:260px; font-size:100px; }
  .rp-iv-badge{ left:16px; bottom:16px; padding:14px 18px; }
  .rp-iv-badge .rp-num{ font-size:28px; }
  .rp-values{ padding:40px 16px; }
  .rp-val-card{ padding:24px 20px; }
  .rp-network{ padding:50px 16px; }
  .rp-net-grid{ grid-template-columns:1fr; gap:32px; }
  .rp-net-text h2{ font-size:26px; }
  .rp-greece-map-photo{ height:320px; }
  .rp-approach{ padding:40px 16px; }
  .rp-app-grid{ grid-template-columns:1fr; gap:24px; }
  .rp-trust{ padding:28px 16px; }
  .rp-trust-grid{ flex-direction:column; gap:14px; }
  .rp-cta-block{ padding:40px 16px; }
  .rp-cta-block h2{ font-size:22px; }
}

@media (max-width: 380px){
  .rp-greece-map-photo{ height:300px; }
}

/* ============================================================
   ΥΠΗΡΕΣΙΕΣ (services page)
   ============================================================ */
.rp-svc-hero{ padding:70px 40px 50px; background:linear-gradient(135deg, #0f3d1f 0%, #1d6b3a 100%); color:#fff; position:relative; overflow:hidden; }
.rp-svc-hero::before{ content:''; position:absolute; right:-100px; top:-100px; width:400px; height:400px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.rp-svc-hero::after{ content:''; position:absolute; right:-50px; top:50px; width:250px; height:250px; border:1px solid rgba(255,255,255,.06); border-radius:50%; }
.rp-svc-hero h1{ font-family:'Playfair Display', serif; font-weight:700; font-size:42px; line-height:1.1; letter-spacing:-1px; margin-bottom:14px; max-width:620px; position:relative; z-index:1; color:#fff; }
.rp-svc-hero h1 em{ color:#7dd394; font-style:italic; font-weight:500; }
.rp-svc-hero p{ font-size:15px; color:rgba(255,255,255,.75); line-height:1.7; max-width:560px; position:relative; z-index:1; }

.rp-stats{ display:grid; grid-template-columns:repeat(4, 1fr); background:#fff; border-bottom:1px solid #ececec; }
.rp-stats-three{ grid-template-columns:repeat(3, 1fr); }
.rp-stat{ padding:28px 24px; text-align:center; border-right:1px solid #ececec; }
.rp-stat:last-child{ border-right:none; }
.rp-stat-num{ font-family:'Playfair Display', serif; font-weight:700; font-size:32px; color:var(--rossis-green,#1d6b3a); letter-spacing:-.5px; }
.rp-stat-lbl{ font-size:11px; color:#888; letter-spacing:1.5px; text-transform:uppercase; margin-top:4px; }

.rp-svc-section{ padding:60px 40px; border-bottom:1px solid #ececec; }
.rp-svc-section.rp-alt{ background:#fafaf8; }
.rp-svc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.rp-svc-grid.rp-reverse .rp-svc-text{ order:2; }
.rp-svc-num{ font-family:'Playfair Display', serif; font-style:italic; font-size:80px; font-weight:300; color:var(--rossis-green,#1d6b3a); opacity:.2; line-height:1; margin-bottom:8px; }
.rp-svc-tag{ font-size:10px; letter-spacing:3px; color:var(--rossis-green,#1d6b3a); font-weight:600; margin-bottom:10px; text-transform:uppercase; }
.rp-svc-text h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:30px; color:#1a1a1a; letter-spacing:-.5px; margin-bottom:14px; line-height:1.2; }
.rp-svc-text .rp-lead{ font-size:15px; line-height:1.8; color:#555; margin-bottom:20px; }
.rp-svc-features{ list-style:none; padding:0; margin:0 0 24px; }
.rp-svc-features li{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#444; padding:8px 0; border-bottom:1px dashed #e8e8e8; }
.rp-svc-features li i{ color:var(--rossis-green,#1d6b3a); font-size:16px; margin-top:2px; flex-shrink:0; }
.rp-svc-cta{ display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--rossis-green,#1d6b3a); border:1px solid var(--rossis-green,#1d6b3a); padding:12px 22px; font-size:12px; letter-spacing:.5px; font-weight:500; border-radius:3px; cursor:pointer; text-decoration:none; }
.rp-svc-cta:hover{ background:var(--rossis-green,#1d6b3a); color:#fff; }
.rp-svc-visual{ height:340px; border-radius:8px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; box-shadow:0 14px 34px rgba(15,61,31,.16); }
.rp-sv-1{ background:linear-gradient(135deg, #d4e5d8, #7da587); }
.rp-sv-2{ background:linear-gradient(135deg, #dde5cf, #9bb87a); }
.rp-sv-3{ background:linear-gradient(135deg, #e0ddd0, #c2bda3); }
.rp-sv-4{ background:linear-gradient(135deg, #d8e4ec, #a8c4d4); }
/* Πραγματική φωτογραφία (Pexels, τοπικά αποθηκευμένη — βλ. assets/services/)
   πάνω από το gradient (fallback χρώμα όσο φορτώνει/αν λείπει το αρχείο).
   Διακριτικό σκούρο-πράσινο gradient overlay στο κάτω μέρος ώστε το badge
   να παραμένει ευανάγνωστο πάνω σε οποιαδήποτε φωτογραφία. */
.rp-svc-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.rp-svc-visual::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,61,31,0) 55%, rgba(15,61,31,.5) 100%); pointer-events:none; }
.rp-sv-badge{ position:absolute; bottom:24px; left:24px; z-index:1; background:rgba(255,255,255,.95); padding:10px 16px; border-radius:4px; font-size:11px; color:#1a1a1a; font-weight:500; letter-spacing:.3px; display:flex; align-items:center; gap:8px; }
.rp-sv-badge i{ color:var(--rossis-green,#1d6b3a); }

.rp-process{ padding:80px 40px; background:#0f3d1f; color:#fff; text-align:center; }
.rp-process-eyebrow{ font-size:11px; letter-spacing:4px; color:#7dd394; margin-bottom:14px; text-transform:uppercase; font-weight:500; }
.rp-process h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:32px; letter-spacing:-.5px; margin-bottom:50px; color:#fff; }
.rp-process-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; max-width:1100px; margin:0 auto; }
.rp-proc-step{ position:relative; text-align:left; }
.rp-proc-step::before{ content:attr(data-num); position:absolute; top:-20px; left:0; font-family:'Playfair Display', serif; font-style:italic; font-size:64px; font-weight:300; color:rgba(125,211,148,.25); line-height:1; }
.rp-proc-step-c{ position:relative; padding-top:20px; }
.rp-proc-step h3{ font-family:'Playfair Display', serif; font-weight:700; font-size:18px; color:#fff; margin-bottom:10px; }
.rp-proc-step p{ font-size:13px; color:rgba(255,255,255,.65); line-height:1.7; }

@media (max-width: 1024px){
  .rp-svc-hero{ padding:50px 20px 40px; }
  .rp-svc-hero h1{ font-size:34px; }
  .rp-svc-section{ padding:50px 20px; }
  .rp-svc-grid{ gap:32px; }
  .rp-svc-text h2{ font-size:26px; }
  .rp-svc-visual{ height:280px; font-size:80px; }
  .rp-process{ padding:60px 20px; }
  .rp-process h2{ font-size:28px; }
  .rp-process-grid{ grid-template-columns:repeat(2, 1fr); gap:32px 24px; }
}

@media (max-width: 768px){
  .rp-svc-hero{ padding:40px 16px 36px; }
  .rp-svc-hero h1{ font-size:28px; }
  .rp-svc-hero p{ font-size:13px; }
  .rp-svc-section{ padding:40px 16px; }
  .rp-svc-grid, .rp-svc-grid.rp-reverse{ grid-template-columns:1fr; gap:28px; }
  .rp-svc-grid.rp-reverse .rp-svc-text{ order:1; }
  .rp-svc-grid.rp-reverse .rp-svc-visual{ order:0; }
  .rp-svc-text h2{ font-size:24px; }
  .rp-svc-visual{ height:240px; font-size:70px; }
  .rp-svc-num{ font-size:60px; }
  .rp-process{ padding:50px 16px; }
  .rp-process h2{ font-size:24px; margin-bottom:36px; }
  .rp-process-grid{ grid-template-columns:1fr; gap:28px; }
  .rp-stats{ grid-template-columns:repeat(2, 1fr); }
  .rp-stats .rp-stat{ border-bottom:1px solid #ececec; padding:22px 16px; }
  .rp-stats .rp-stat:nth-child(odd){ border-right:1px solid #ececec; }
  .rp-stats .rp-stat:nth-child(even){ border-right:none; }
  .rp-stat-num{ font-size:26px; }
  .rp-stats-three{ grid-template-columns:1fr; }
  .rp-stats-three .rp-stat{ border-right:none; border-bottom:1px solid #ececec; }
  .rp-stats-three .rp-stat:last-child{ border-bottom:none; }
}

/* ============================================================
   ΕΠΙΚΟΙΝΩΝΙΑ (contact page)
   ============================================================ */
.rp-page-hero{ padding:70px 40px 50px; text-align:center; background:#fafaf8; border-bottom:1px solid #ececec; }
.rp-ph-eyebrow{ font-size:11px; letter-spacing:4px; color:var(--rossis-green,#1d6b3a); margin-bottom:14px; text-transform:uppercase; font-weight:600; }
.rp-page-hero h1{ font-family:'Playfair Display', serif; font-weight:700; font-size:46px; line-height:1.1; letter-spacing:-1px; color:#1a1a1a; margin-bottom:14px; }
.rp-page-hero h1 em{ color:var(--rossis-green,#1d6b3a); font-style:italic; font-weight:500; }
.rp-page-hero p{ font-size:15px; color:#666; line-height:1.8; max-width:580px; margin:0 auto; }

.rp-channels{ padding:50px 40px 30px; background:#fff; }
.rp-ch-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.rp-ch-card{ padding:28px 22px; border:1px solid #ececec; border-radius:8px; text-align:center; cursor:pointer; transition:all .2s; background:#fff; text-decoration:none; color:inherit; display:block; }
.rp-ch-card:hover{ border-color:var(--rossis-green,#1d6b3a); transform:translateY(-2px); }
.rp-ch-icon{ width:54px; height:54px; background:#f5faf6; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; color:var(--rossis-green,#1d6b3a); font-size:22px; }
.rp-ch-card h3{ font-size:13px; font-weight:600; color:#1a1a1a; margin-bottom:6px; }
.rp-ch-card .rp-val{ font-size:14px; color:var(--rossis-green,#1d6b3a); font-weight:500; margin-top:4px; word-break:break-word; }
.rp-ch-card .rp-sub{ font-size:11px; color:#888; margin-top:4px; }

.rp-contact-main{ display:grid; grid-template-columns:1fr 1.2fr; gap:0; background:#fff; border-top:1px solid #ececec; border-bottom:1px solid #ececec; }
.rp-contact-info-block{ padding:50px 40px; background:#0f3d1f; color:#fff; position:relative; overflow:hidden; }
.rp-contact-info-block::after{ content:''; position:absolute; right:-100px; bottom:-100px; width:300px; height:300px; border:1px solid rgba(125,211,148,.1); border-radius:50%; }
.rp-ci-eyebrow{ font-size:11px; letter-spacing:3px; color:#7dd394; margin-bottom:14px; text-transform:uppercase; font-weight:600; }
.rp-contact-info-block h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:30px; letter-spacing:-.5px; margin-bottom:14px; color:#fff; }
.rp-contact-info-block > p{ font-size:14px; color:rgba(255,255,255,.7); line-height:1.8; margin-bottom:32px; }
.rp-info-list{ display:flex; flex-direction:column; gap:22px; position:relative; z-index:1; }
.rp-info-row{ display:flex; gap:14px; align-items:flex-start; }
.rp-info-icon{ width:40px; height:40px; background:rgba(125,211,148,.15); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#7dd394; font-size:16px; flex-shrink:0; }
.rp-info-content .rp-lbl{ font-size:10px; color:#7dd394; letter-spacing:1.5px; text-transform:uppercase; font-weight:600; margin-bottom:4px; }
.rp-info-content .rp-val{ font-size:14px; color:#fff; font-weight:500; word-break:break-word; }
.rp-info-content .rp-sub{ font-size:12px; color:rgba(255,255,255,.55); margin-top:2px; }
.rp-social-row{ display:flex; gap:10px; margin-top:32px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); }
.rp-social{ width:38px; height:38px; background:rgba(255,255,255,.08); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; font-size:14px; border:1px solid rgba(255,255,255,.1); }
.rp-social:hover{ background:#7dd394; color:#0f3d1f; }

.rp-contact-form-block{ padding:50px 40px; background:#fff; }
.rp-cf-eyebrow{ font-size:11px; letter-spacing:3px; color:var(--rossis-green,#1d6b3a); margin-bottom:14px; text-transform:uppercase; font-weight:600; }
.rp-contact-form-block h2{ font-family:'Playfair Display', serif; font-weight:700; font-size:30px; letter-spacing:-.5px; color:#1a1a1a; margin-bottom:14px; }
.rp-contact-form-block > p{ font-size:14px; color:#666; line-height:1.8; margin-bottom:28px; }
.rp-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rp-form-full{ grid-column:1 / -1; }
.rp-form-grp{ display:flex; flex-direction:column; gap:6px; }
.rp-form-grp label{ font-size:11px; letter-spacing:1px; color:#666; font-weight:500; text-transform:uppercase; }
.rp-f-inp, .rp-f-sel, .rp-f-area{ padding:11px 14px; border:1px solid #e0e0e0; border-radius:3px; font-family:'Inter', sans-serif; font-size:13px; outline:none; background:#fff; color:#1a1a1a; width:100%; }
.rp-f-inp:focus, .rp-f-sel:focus, .rp-f-area:focus{ border-color:var(--rossis-green,#1d6b3a); }
.rp-f-sel{ cursor:pointer; }
.rp-f-area{ resize:none; min-height:110px; }
.rp-consent{ display:flex; align-items:flex-start; gap:8px; font-size:12px; color:#666; line-height:1.6; margin-top:6px; }
.rp-consent input{ accent-color:var(--rossis-green,#1d6b3a); margin-top:3px; }
.rp-consent a{ color:var(--rossis-green,#1d6b3a); }
.rp-f-submit{ background:var(--rossis-green,#1d6b3a); color:#fff; border:none; padding:14px; border-radius:3px; font-size:13px; font-weight:500; cursor:pointer; letter-spacing:.5px; margin-top:14px; display:flex; align-items:center; justify-content:center; gap:8px; }
.rp-f-submit:hover{ background:var(--rossis-green-dark,#155a2e); }
.rp-form-msg{ padding:12px 14px; border-radius:3px; font-size:13px; margin-bottom:16px; grid-column:1/-1; }
.rp-form-msg.rp-sent{ background:#f5faf6; border:1px solid #cdeed7; color:#1d6b3a; }
.rp-form-msg.rp-error{ background:#fdf0f0; border:1px solid #f3caca; color:#b23b3b; }

.rp-map-wrap{ background:#fafaf8; padding:60px 40px; border-bottom:1px solid #ececec; }
.rp-map-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:28px; gap:16px; flex-wrap:wrap; }
.rp-map-eyebrow{ font-size:11px; letter-spacing:3px; color:var(--rossis-green,#1d6b3a); margin-bottom:6px; text-transform:uppercase; font-weight:600; }
.rp-map-title{ font-family:'Playfair Display', serif; font-weight:700; font-size:28px; color:#1a1a1a; letter-spacing:-.5px; }
.rp-map-cta{ display:inline-flex; align-items:center; gap:8px; color:var(--rossis-green,#1d6b3a); text-decoration:none; font-size:13px; font-weight:500; padding:10px 18px; border:1px solid var(--rossis-green,#1d6b3a); border-radius:3px; }
/* ΠΡΟΣΩΡΙΝΗ ΕΠΑΝΑΦΟΡΑ (2026-07-13): gradient+pin placeholder, ίδιο με
   πριν. Ο πραγματικός OSM/Leaflet χάρτης (functions.php, commits
   768df58/a48dc32/df236e7) δεν εμφανιζόταν σωστά στον browser του Mike
   ούτε μετά από 2 fixes (race condition retry + CSS cache-busting) —
   πιθανή αιτία: leftover service worker στον browser του που παρεμβαίνει
   σε ΟΛΑ τα requests. Επαναφέρθηκε το placeholder μέχρι να βρεθεί λύση
   — βλ. PROJECT.md «ΓΥΡΟΣ 2026-07-13» task #5 για πλήρες ιστορικό. */
.rp-map-box-large{ height:380px; background:linear-gradient(135deg, #e8f0ea, #d4e5d8); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--rossis-green,#1d6b3a); font-size:14px; border:1px solid #d8e7dc; position:relative; padding:20px; }
.rp-map-overlay{ background:#fff; padding:18px 22px; border-radius:6px; box-shadow:0 8px 30px rgba(0,0,0,.08); text-align:left; display:flex; gap:14px; align-items:center; max-width:calc(100% - 40px); }
.rp-mo-pin{ width:46px; height:46px; background:var(--rossis-green,#1d6b3a); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.rp-mo-content .rp-t{ font-size:14px; font-weight:600; color:#1a1a1a; margin-bottom:2px; }
.rp-mo-content .rp-a{ font-size:12px; color:#666; }

.rp-faq{ padding:60px 40px; background:#fff; }
.rp-faq-head{ text-align:center; margin-bottom:36px; }
.rp-faq-list{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
.rp-faq-item{ border:1px solid #ececec; border-radius:6px; padding:18px 22px; cursor:pointer; background:#fff; }
.rp-faq-item.rp-open{ border-color:var(--rossis-green,#1d6b3a); background:#f5faf6; }
.rp-faq-q{ display:flex; justify-content:space-between; align-items:center; font-size:14px; font-weight:500; color:#1a1a1a; gap:16px; }
.rp-faq-q i{ color:var(--rossis-green,#1d6b3a); font-size:18px; transition:transform .2s; flex-shrink:0; }
.rp-faq-item.rp-open .rp-faq-q i{ transform:rotate(45deg); }
.rp-faq-a{ font-size:13px; color:#555; line-height:1.8; margin-top:12px; padding-top:12px; border-top:1px solid #e8e8e8; }
.rp-faq-item:not(.rp-open) .rp-faq-a{ display:none; }

@media (max-width: 1024px){
  .rp-page-hero{ padding:50px 20px 40px; }
  .rp-page-hero h1{ font-size:38px; }
  .rp-channels{ padding:36px 20px 20px; }
  .rp-contact-info-block, .rp-contact-form-block{ padding:36px 28px; }
  .rp-map-wrap{ padding:40px 20px; }
  .rp-faq{ padding:40px 20px; }
  .rp-map-box-large{ height:320px; }
}

@media (max-width: 768px){
  .rp-page-hero{ padding:40px 16px 32px; }
  .rp-page-hero h1{ font-size:30px; }
  .rp-page-hero p{ font-size:13px; }
  .rp-channels{ padding:28px 14px 16px; }
  .rp-ch-grid{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  .rp-ch-card{ padding:20px 14px; }
  .rp-ch-card h3{ font-size:12px; }
  .rp-ch-card .rp-val{ font-size:12px; }
  .rp-contact-main{ grid-template-columns:1fr; }
  .rp-contact-info-block, .rp-contact-form-block{ padding:28px 20px; }
  .rp-contact-info-block h2, .rp-contact-form-block h2{ font-size:24px; }
  .rp-form-grid{ grid-template-columns:1fr; }
  .rp-map-wrap{ padding:32px 14px; }
  .rp-map-head{ flex-direction:column; align-items:flex-start; gap:12px; }
  .rp-map-box-large{ height:280px; padding:14px; }
  .rp-map-overlay{ padding:14px 16px; flex-direction:column; align-items:flex-start; max-width:100%; }
  .rp-faq{ padding:32px 14px; }
  .rp-faq-item{ padding:14px 18px; }
  .rp-faq-q{ font-size:13px; }
}

/* ============================================================
   (2026-09-25) CROSS-PAGE ANCHORS — Νομικές / Τεχνικές Υπηρεσίες
   ------------------------------------------------------------
   Η ενότητα «Ολοκληρωμένες υπηρεσίες ακινήτου» της αρχικής στέλνει
   σε /ipiresies/#nomikes-ypiresies και #texnikes-ypiresies. Επειδή ο
   σύνδεσμος φορτώνει ΑΛΛΗ σελίδα και μετά πηδά, ο τίτλος της ενότητας
   θα κατέληγε κάτω από τον header χωρίς offset.

   ΜΕΤΡΗΜΕΝΕΣ τιμές (όχι εκτίμηση):
   - Desktop ≥1024px: ο header ΓΙΝΕΤΑΙ sticky μέσω JS του parent theme
     (wpestate_header_sticky, js/control.js) μόλις το scroll περάσει τα
     90px — `scroll_trigger=90`, και ο sticky header έχει ύψος 90px
     (theme option wp_estate_sticky_header_height). Το Modernizr.mq
     φράγμα του ίδιου κώδικα είναι `max-width:1023px`, γι' αυτό το
     breakpoint παρακάτω είναι ΑΚΡΙΒΩΣ 1023px.
     90px header + 24px ανάσα = 114px.
   - Mobile ≤1023px: ο header ΔΕΝ γίνεται ποτέ sticky
     (theme option wp_estate_mobile_sticky_header = "no", και το
     .mobile_header φέρει κλάση mobile_header_sticky_no) — άρα δεν
     χρειάζεται offset για κάλυψη, μόνο 24px ανάσα ώστε ο τίτλος να μην
     κολλάει στην κορυφή του viewport.
   ============================================================ */
#nomikes-ypiresies,
#texnikes-ypiresies{ scroll-margin-top:114px; }

@media (max-width: 1023px){
  /* Χωρίς sticky header εδώ, άρα το offset είναι καθαρά «ανάσα». Κρατάμε
     56px (όχι 24) ώστε, ακόμα κι αν η σελίδα «κάτσει» λίγο πιο κάτω αφού
     ολοκληρωθεί η φόρτωση (lazy εικόνες/γραμματοσειρές), ο αριθμός και ο
     τίτλος της ενότητας να παραμένουν ολόκληροι ορατοί. */
  #nomikes-ypiresies,
  #texnikes-ypiresies{ scroll-margin-top:56px; }
}

/* Το parent theme ορίζει ήδη html{scroll-behavior:smooth} — το σέβομαι,
   αλλά το απενεργοποιώ για όσους έχουν ζητήσει λιγότερη κίνηση. */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto !important; }
}
