/*
Theme Name: immoHouse Child
Theme URI: https://immohouse.pl
Description: Child theme dla Hello Elementor — branding immoHouse + custom CPT templates
Author: immoHouse Dev
Version: 2.0.0
Template: hello-elementor
Text Domain: immohouse-child
*/

/* ============================================================
   immoHouse — Design System tokens (single source of truth)
   Azurite blue #2C4FB0 · antique-gold #C9A23B · white + warm-paper
   One neutral grotesk: Archivo. Premium, minimal, Swiss-editorial.
   Mirrors Immohouse-design-system/colors_and_type.css.
   ============================================================ */
:root {
  /* BRAND — azurite blue (primary) */
  --navy-900: #14224F;
  --navy-800: #1E3577;
  --navy-700: #2C4FB0;   /* ★ primary brand blue */
  --navy-600: #3A5EC4;
  --navy-500: #4E72D6;   /* hover / lift */
  --navy-300: #97ABEC;
  --navy-100: #DFE6FB;
  --navy-50:  #EEF2FE;

  --color-primary:        #2C4FB0;
  --color-primary-hover:  #1E3577;
  --color-primary-light:  rgba(44, 79, 176, 0.12);
  --color-navy:           #14224F;

  /* BRAND — antique-gold (accent, used sparingly) */
  --gold-700: #C9A23B;   /* gold text on light (AA) */
  --gold-500: #C9A23B;   /* ★ primary accent */
  --gold-100: #F2E9D4;
  --gold-50:  #F9F4E8;

  /* NEUTRALS — white + cool near-white */
  --white:   #FFFFFF;
  --paper:   #F4F4F2;    /* alternating sections */
  --paper-2: #ECECEA;
  --sand:    #E3E3E0;

  --color-bg:      #FFFFFF;
  --color-bg-alt:  #F4F4F2;
  --color-bg-soft: #EEF2FE;

  /* TEXT — neutral near-black */
  --fg-1: #16181D;
  --fg-2: #585B63;
  --fg-3: #8B8E96;
  --color-text:       #16181D;
  --color-text-muted: #585B63;
  --color-text-light: #FFFFFF;

  /* LINES / BORDERS */
  --line-1: #E8E8E6;
  --line-2: #DADAD7;
  --line-navy: rgba(44,79,176,0.14);
  --color-border:       #DADAD7;
  --color-border-light: #E8E8E6;
  --color-border-card:  #E8E8E6;

  /* SEMANTIC */
  --color-success: #2E7D5B;
  --color-error:   #C0432F;
  --color-warning: #C77B1A;
  --color-info:    #2C4FB0;

  /* TYPE — one neutral grotesk */
  --font-display: 'Archivo', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-heading: var(--font-display);
  --font-body:    var(--font-display);

  --font-display-size: clamp(2.75rem, 5.5vw, 4.5rem);
  --font-h1: clamp(2.25rem, 4vw, 3.25rem);
  --font-h2: clamp(1.85rem, 3vw, 2.4rem);
  --font-h3: 1.5rem;
  --font-body-lg: 1.0625rem;
  --font-body-sm: 0.875rem;
  --font-caption: 0.75rem;

  --lh-tight: 1.04;
  --lh-normal: 1.6;
  --lh-relaxed: 1.68;

  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
  --space-4: 1rem; --space-6: 1.5rem; --space-8: 2rem;
  --space-12: 3rem; --space-16: 4rem; --space-24: 6rem;

  --container-max: 1240px;
  --container-narrow: 760px;

  /* RADII — squared / restrained (editorial) */
  --radius-sm: 6px;    /* buttons, inputs */
  --radius-md: 10px;
  --radius-lg: 14px;   /* listing cards */
  --radius-xl: 20px;   /* large feature panels */
  --radius-2xl: 26px;
  --radius-full: 999px;

  /* SHADOWS — cool, navy-tinted, soft */
  --shadow-sm: 0 2px 6px rgba(20,22,26,0.05);
  --shadow-md: 0 8px 24px rgba(20,22,26,0.07);
  --shadow-lg: 0 20px 50px rgba(20,22,26,0.09);

  --transition-fast: 140ms cubic-bezier(0.22,1,0.36,1);
  --transition-base: 240ms cubic-bezier(0.22,1,0.36,1);
  --transition-slow: 480ms cubic-bezier(0.22,1,0.36,1);
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1.0625rem;          /* 17px — comfortable SEO reading */
  line-height: var(--lh-relaxed);
  color: var(--fg-2);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--fg-1);
  line-height: var(--lh-tight);
  font-weight: 700;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-primary-hover); }

/* Buttons — squared (editorial), navy primary */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--navy-700);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: -0.005em;
  padding: 0.78rem 1.4rem;
  border-radius: var(--radius-sm);
  border: none;
  cursor: pointer;
  transition: transform var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
  text-decoration: none;
}
.btn-primary:hover {
  background: var(--navy-500);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.btn-primary:active { background: var(--navy-800); transform: none; }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #fff;
  color: var(--navy-700);
  border: 1px solid var(--navy-700);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.9375rem;
  padding: calc(0.78rem - 1px) calc(1.4rem - 1px);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition-base);
  text-decoration: none;
}
.btn-secondary:hover { background: var(--navy-50); color: var(--navy-700); }

/* Accent button (rare) — gold, one standout per view max */
.btn-accent {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--gold-500); color: var(--navy-900);
  font-family: var(--font-display); font-weight: 600; font-size: 0.9375rem;
  padding: 0.78rem 1.4rem; border: none; border-radius: var(--radius-sm);
  cursor: pointer; text-decoration: none; transition: transform var(--transition-base), background var(--transition-base);
}
.btn-accent:hover { background: var(--gold-700); color: #fff; transform: translateY(-1px); }

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px);
}

input, textarea, select {
  border: 1px solid var(--line-2);
  border-radius: var(--radius-sm);
  padding: 0.7rem 0.9rem;
  font: 400 1rem var(--font-body);
  color: var(--fg-1);
  background: #fff;
  width: 100%;
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--navy-700);
  box-shadow: 0 0 0 3px var(--color-primary-light);
}

::selection { background: var(--navy-100); color: var(--fg-1); }

/* ============================================================
   Saved-offer heart button on the framed offer-card (.imh-card).
   The modern archive card (.imh-mcard) already styles its own
   .imh-mcard__fav inline; this covers the shortcode/saved card.
   ============================================================ */
.imh-card__fav {
  position: absolute;
  top: 22px;
  right: 22px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 10px rgba(20, 34, 79, .18);
  color: var(--fg-1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .15s, background .15s, color .15s;
}
.imh-card__fav:hover { transform: scale(1.08); }
.imh-card__fav svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.imh-card__fav.is-on { background: var(--navy-700); color: #fff; }
.imh-card__fav.is-on svg { fill: #fff; stroke: #fff; }

/* ── Lead forms (.imh-ajax-form): consent, status, success ── */
.imh-consent label { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; line-height: 1.5; color: var(--ink2, #585B63); cursor: pointer; font-weight: 400; }
.imh-consent input[type="checkbox"] { -webkit-appearance: checkbox; appearance: checkbox; margin-top: 3px; padding: 0; width: 17px; height: 17px; min-height: 0; flex: 0 0 auto; accent-color: var(--navy, #2C4FB0); }
.imh-consent a { color: var(--navy, #2C4FB0); font-weight: 600; }
.imh-form-status { margin: 14px 0 0; font-size: .92rem; font-weight: 600; }
.imh-form-status[data-state="error"] { color: #C0392B; }
.imh-form-status[data-state="pending"] { color: var(--ink2, #585B63); }
.imh-form-done { text-align: center; padding: 40px 24px; }
.imh-form-done h3 { font-size: 1.6rem; margin: 0 0 10px; color: var(--navy-900, #14224F); letter-spacing: -.02em; }
.imh-form-done p { font-size: 1.05rem; color: var(--ink2, #585B63); margin: 0; }

/* ─────────────────────────────────────────────────────────────────────────
 * Investor landing pages (Poznań pod najem) — bilingual, full-bleed hero.
 * Shared by page-inwestor-* templates. Class prefix .imh-iv
 * ───────────────────────────────────────────────────────────────────────── */
.imh-iv{font-family:'Archivo',system-ui,sans-serif;color:#585B63;background:#fff}
.imh-iv *{box-sizing:border-box}
.imh-iv h1,.imh-iv h2,.imh-iv h3{font-family:'Archivo',system-ui,sans-serif;color:#16181D;margin:0;letter-spacing:-.03em;font-weight:700;text-wrap:balance}
.imh-iv__wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.imh-iv__eyebrow{display:inline-flex;align-items:center;gap:13px;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#B6904A;margin:0 0 20px}
.imh-iv__eyebrow::before{content:"";width:34px;height:2px;background:#B6904A}

/* language toggle (CSS-only radio hack) */
.imh-iv__radio{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.imh-iv__langbar{position:fixed;top:86px;right:clamp(12px,3vw,28px);z-index:40;display:inline-flex;gap:2px;background:#fff;border:1px solid #E8E8E6;border-radius:999px;padding:3px;box-shadow:0 6px 20px rgba(20,34,79,.14)}
.imh-iv__langbar label{font-size:.74rem;font-weight:700;letter-spacing:.06em;color:#585B63;padding:6px 13px;border-radius:999px;cursor:pointer;line-height:1;transition:background .15s,color .15s}
.imh-iv__doc[data-lang="pl"]{display:none}
#imhlang-pl:checked ~ .imh-iv__doc[data-lang="ua"],
#imhlang-pl:checked ~ .imh-iv__doc[data-lang="en"]{display:none}
#imhlang-pl:checked ~ .imh-iv__doc[data-lang="pl"]{display:block}
#imhlang-grp:checked ~ .imh-iv__langbar label[for="imhlang-grp"],
#imhlang-pl:checked ~ .imh-iv__langbar label[for="imhlang-pl"]{background:#14224F;color:#fff}

/* hero — full-bleed */
.imh-iv__hero{position:relative;min-height:clamp(560px,88vh,900px);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;isolation:isolate}
.imh-iv__herobg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.imh-iv__scrim{position:absolute;inset:0;z-index:-1;background:radial-gradient(125% 95% at 50% 42%,rgba(255,255,255,.96) 0%,rgba(255,255,255,.88) 36%,rgba(255,255,255,.55) 72%,rgba(255,255,255,.30) 100%)}
.imh-iv__heroinner{position:relative;z-index:1;width:100%;max-width:900px;margin:0 auto;padding:clamp(48px,9vh,104px) clamp(20px,5vw,40px);text-align:center}
.imh-iv__heroinner .imh-iv__eyebrow{justify-content:center}
.imh-iv__h1{font-size:clamp(2.2rem,5.2vw,4rem);line-height:1.05;letter-spacing:-.04em;color:#16181D;max-width:20ch;margin:0 auto}
.imh-iv__lead{font-size:clamp(1.08rem,1.5vw,1.3rem);line-height:1.6;color:#3A3D44;max-width:640px;margin:22px auto 0}
.imh-iv__cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:32px}

.imh-iv__btn{display:inline-flex;align-items:center;gap:9px;font-size:.95rem;font-weight:600;padding:14px 24px;border-radius:10px;text-decoration:none;line-height:1;border:1.5px solid transparent;transition:background .15s,border-color .15s,color .15s,transform .12s}
.imh-iv__btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.imh-iv__btn--solid{background:#2C4FB0;color:#fff;border-color:#2C4FB0}
.imh-iv__btn--solid:hover{background:#1E3577;border-color:#1E3577;color:#fff;transform:translateY(-1px)}
.imh-iv__textlink{display:inline-flex;align-items:center;gap:7px;font-size:.95rem;font-weight:600;color:#14224F;text-decoration:none;padding:14px 4px}
.imh-iv__textlink svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.imh-iv__textlink:hover{color:#2C4FB0}.imh-iv__textlink:hover svg{transform:translateX(3px)}

.imh-iv__trust{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;text-align:center;gap:clamp(20px,4vw,48px);margin-top:clamp(40px,5vw,60px);padding-top:clamp(26px,3vw,34px);border-top:1px solid rgba(20,34,79,.14)}
.imh-iv__stat{display:flex;flex-direction:column;gap:5px}
.imh-iv__stat b{font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:700;color:#14224F;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.imh-iv__stat span{font-size:.84rem;color:#585B63;line-height:1.45}

/* sections */
.imh-iv__sec{padding:clamp(40px,5vw,72px) 0;border-top:1px solid #E8E8E6}
.imh-iv__sec--paper{background:#F4F4F2;border-top:0}
.imh-iv__h2{font-size:clamp(1.6rem,2.8vw,2.25rem);line-height:1.12;letter-spacing:-.03em;margin-bottom:8px}
.imh-iv__sublead{font-size:1.02rem;line-height:1.6;color:#585B63;max-width:660px;margin:0 0 clamp(28px,3.5vw,44px)}
.imh-iv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}
@media(max-width:860px){.imh-iv__grid{grid-template-columns:1fr}}
.imh-iv__card{background:#fff;border:1px solid #E8E8E6;border-radius:16px;padding:26px;transition:box-shadow .2s,transform .2s,border-color .2s}
.imh-iv__card:hover{box-shadow:0 16px 40px rgba(20,22,26,.08);transform:translateY(-2px);border-color:#DADAD7}
.imh-iv__ico{width:46px;height:46px;border-radius:11px;background:#EEF2FE;color:#2C4FB0;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.imh-iv__ico svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.imh-iv__card h3{font-size:1.12rem;margin-bottom:8px;color:#16181D}
.imh-iv__card p{font-size:.95rem;line-height:1.6;color:#585B63;margin:0}
.imh-iv__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.imh-iv__list li{position:relative;padding-left:34px;font-size:1rem;line-height:1.5;color:#3A3D44}
.imh-iv__list li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:#EEF2FE;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232C4FB0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:13px}
.imh-iv__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);counter-reset:step}
@media(max-width:860px){.imh-iv__steps{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.imh-iv__steps{grid-template-columns:1fr}}
.imh-iv__step{position:relative;padding-top:48px}
.imh-iv__step::before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;width:38px;height:38px;border-radius:50%;background:#16181D;color:#fff;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:center}
.imh-iv__step h3{font-size:1.04rem;margin-bottom:6px;color:#16181D}
.imh-iv__step p{font-size:.92rem;line-height:1.55;color:#585B63;margin:0}

/* faq */
.imh-iv__faq{display:grid;gap:12px;max-width:840px}
.imh-iv__q{border:1px solid #E8E8E6;border-radius:14px;background:#fff;overflow:hidden}
.imh-iv__q[open]{border-color:#DADAD7;box-shadow:0 10px 30px rgba(20,22,26,.05)}
.imh-iv__q summary{list-style:none;cursor:pointer;padding:20px 24px;font-size:1.05rem;font-weight:600;color:#16181D;display:flex;align-items:center;justify-content:space-between;gap:16px}
.imh-iv__q summary::-webkit-details-marker{display:none}
.imh-iv__q summary::after{content:"";flex:0 0 auto;width:20px;height:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232C4FB0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;transition:transform .2s}
.imh-iv__q[open] summary::after{transform:rotate(180deg)}
.imh-iv__q p{margin:0;padding:0 24px 22px;font-size:.97rem;line-height:1.65;color:#585B63}

/* form */
.imh-iv__formgrid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,4vw,60px);align-items:start}
@media(max-width:860px){.imh-iv__formgrid{grid-template-columns:1fr}}
.imh-iv__formcol .imh-iv__list{margin-top:22px}
.imh-iv__formwrap{background:#fff;border:1px solid #E8E8E6;border-radius:22px;padding:clamp(24px,3vw,38px);box-shadow:0 24px 60px rgba(20,34,79,.10)}
.imh-iv__form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:480px){.imh-iv__form{grid-template-columns:1fr}}
.imh-iv__field{display:flex;flex-direction:column;gap:6px}
.imh-iv__field--full{grid-column:1/-1}
.imh-iv__form label{font-size:.82rem;font-weight:600;color:#16181D}
.imh-iv__form input,.imh-iv__form select,.imh-iv__form textarea{width:100%;font-family:inherit;font-size:.95rem;padding:12px 14px;border:1px solid #DADAD7;border-radius:10px;background:#fff;color:#16181D;transition:border-color .15s,box-shadow .15s}
.imh-iv__form input:focus,.imh-iv__form select:focus,.imh-iv__form textarea:focus{outline:none;border-color:#2C4FB0;box-shadow:0 0 0 3px #EEF2FE}
.imh-iv__form .imh-consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:.8rem;line-height:1.45;color:#585B63;font-weight:400}
.imh-iv__form .imh-consent input{width:auto;margin-top:2px}
.imh-iv__form button[type=submit]{grid-column:1/-1;justify-content:center;width:100%;cursor:pointer}

/* closing band */
.imh-iv__band{background:#14224F;border-radius:24px;padding:clamp(34px,5vw,64px);text-align:center;color:#fff}
.imh-iv__band h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.03em}
.imh-iv__band p{color:rgba(255,255,255,.8);font-size:1.05rem;line-height:1.6;max-width:560px;margin:14px auto 0}
.imh-iv__band .imh-iv__cta{justify-content:center}
.imh-iv__band .imh-iv__btn--solid{background:#fff;color:#14224F;border-color:#fff}
.imh-iv__band .imh-iv__btn--solid:hover{background:#EEF2FE;color:#14224F}
