/* =========================================================
   Jardines Pirque — hoja de estilo del sitio
   Paleta y tipografía según el paquete de marca (concepto 1a)
   ========================================================= */

:root {
  /* color */
  --bg:#F2EDE3;
  --surface:#FAF7F0;
  --surface-alt:#EAE3D5;
  --border:#E2DAC9;
  --text:#23291F;
  --text-muted:#5A6353;
  --text-on-dark:#F2EDE3;
  --brand:#2F4A3C;
  --brand-deep:#22372C;
  --sage:#8AA083;
  --accent:#B5714E;
  --accent-soft:#D9A183;
  --btn:#2F4A3C;
  --btn-hover:#24392E;
  --btn-text:#F2EDE3;
  --focus:#B5714E;
  --error:#9E3B2B;

  /* tipografía */
  --font-serif:"Spectral", Georgia, "Times New Roman", serif;
  --font-sans:"Work Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, "Courier New", monospace;

  /* medidas */
  --rule:1px solid var(--border);
  --maxw:75rem;      /* 1200px */
  --gutter:56px;
  --header-h:96px;
  --dur:200ms;
  --dur-slow:520ms;
  --ease:cubic-bezier(.2,.6,.2,1);
}

*, *::before, *::after { box-sizing:border-box; }

html { scroll-behavior:smooth; }

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1, h2, h3, p, ul, ol, figure, blockquote, fieldset { margin:0; }
ul, ol { list-style:none; padding:0; }
img { display:block; max-width:100%; }
button { font:inherit; cursor:pointer; }

*:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }

a { color:var(--accent); text-decoration:none; border-bottom:1px solid currentColor; }
a:hover { color:var(--brand); }
::selection { background:var(--sage); color:var(--text); }

.jp-skip {
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brand); color:var(--btn-text); border:0;
  padding:14px 22px; font-size:13px; letter-spacing:.16em; text-transform:uppercase;
}
.jp-skip:focus { left:0; color:var(--btn-text); }

.jp-wrap { max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

/* ---------- piezas de texto reutilizables ---------- */
.jp-eyebrow {
  display:flex; align-items:center; gap:14px;
  font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase;
  color:var(--sage);
}
.jp-eyebrow::before { content:""; width:40px; height:1px; background:var(--accent); flex:none; }

.jp-num { font-family:var(--font-mono); font-size:12px; letter-spacing:.24em; color:var(--accent); }

/* ---------- botones ---------- */
.jp-btn {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:54px; padding:0 34px;
  border:1px solid transparent; border-radius:0;
  font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.jp-btn--sand { background:var(--bg); color:var(--brand-deep); }
.jp-btn--sand:hover { background:#fff; color:var(--brand-deep); }
.jp-btn--outline-sand { border-color:rgba(242,237,227,.5); color:var(--text-on-dark); }
.jp-btn--outline-sand:hover { background:var(--text-on-dark); color:var(--brand-deep); }
.jp-btn--dark { background:var(--btn); color:var(--btn-text); }
.jp-btn--dark:hover { background:var(--btn-hover); color:var(--btn-text); }

/* ---------- header sobre el hero ---------- */
.jp-header {
  position:sticky; top:0; z-index:60;
  border-bottom:1px solid transparent;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.jp-header__in {
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--maxw); margin-inline:auto;
  padding:0 var(--gutter); min-height:var(--header-h);
}
.jp-header.is-solid { background:var(--brand-deep); border-bottom-color:rgba(242,237,227,.14); }

.jp-logo { display:block; border:0; color:var(--text-on-dark); }
.jp-logo svg { height:38px; width:auto; display:block; }

.jp-nav { display:flex; align-items:center; gap:38px; }
.jp-nav a:not(.jp-btn) {
  display:inline-flex; align-items:center; min-height:26px;
  font-size:12px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-on-dark); border:0; opacity:.85;
  padding-bottom:6px; border-bottom:1px solid transparent;
  transition:opacity var(--dur) var(--ease);
}
.jp-nav a:not(.jp-btn):hover { color:var(--text-on-dark); opacity:1; border-bottom-color:var(--accent); }
.jp-nav .jp-btn { min-height:44px; padding:0 24px; margin-left:8px; }

.jp-burger {
  display:none;
  width:44px; height:44px; border:0; background:transparent;
  color:var(--text-on-dark); place-items:center;
}

/* ---------- hero ---------- */
.jp-hero {
  position:relative;
  min-height:min(900px, 92vh);
  /* el -1px compensa el borde inferior del header, que suma a su alto */
  margin-top:calc(-1 * var(--header-h) - 1px);
  display:flex; align-items:flex-end;
  overflow:hidden;
  background:var(--brand-deep);
}
.jp-hero__bg { position:absolute; inset:0; animation:jp-zoom 14s var(--ease) both; }
.jp-hero__bg picture { display:block; width:100%; height:100%; }
.jp-hero__bg img { width:100%; height:100%; object-fit:cover; }
@keyframes jp-zoom { from { transform:scale(1.07); } to { transform:scale(1); } }

.jp-hero__scrim {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(35,41,31,.84) 0%, rgba(35,41,31,.46) 46%, rgba(35,41,31,.52) 100%);
}
.jp-hero__in {
  position:relative; z-index:2;
  width:100%; max-width:var(--maxw); margin-inline:auto;
  padding:calc(var(--header-h) + 40px) var(--gutter) 88px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:56px;
}
.jp-hero__txt { display:flex; flex-direction:column; gap:28px; align-items:flex-start; max-width:760px; }
.jp-hero .jp-eyebrow { color:rgba(242,237,227,.82); }
.jp-hero h1 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(2.25rem, 6vw, 5.5rem); line-height:1.02; letter-spacing:-.02em;
  color:var(--text-on-dark); text-wrap:balance;
}
.jp-hero__lede {
  font-size:clamp(1rem, 1.4vw, 1.1875rem); line-height:1.6;
  color:rgba(242,237,227,.85); max-width:520px; text-wrap:pretty;
}
.jp-hero__cta { display:flex; gap:16px; flex-wrap:wrap; }
.jp-hero__aside {
  display:flex; flex-direction:column; gap:18px;
  padding:0 0 6px 24px; border-left:1px solid rgba(242,237,227,.24);
}
.jp-hero__aside div { display:flex; flex-direction:column; gap:2px; }
.jp-hero__aside b { font-family:var(--font-serif); font-weight:400; font-size:22px; color:var(--text-on-dark); }
.jp-hero__aside span { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(242,237,227,.7); }

/* ---------- declaración + cifras ---------- */
.jp-statement { padding:130px 0 96px; }
.jp-statement__txt { display:grid; grid-template-columns:200px 1fr; gap:56px; align-items:start; }
.jp-statement h2 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.5rem, 3vw, 2.75rem); line-height:1.22; letter-spacing:-.01em; text-wrap:pretty;
}
.jp-statement h2 em { font-style:normal; color:var(--accent); }

.jp-figs {
  display:grid; grid-template-columns:repeat(4, 1fr);
  margin-top:88px; border-top:var(--rule); border-bottom:var(--rule);
}
.jp-fig { padding:34px 28px 34px 0; display:flex; flex-direction:column; gap:6px; border-right:var(--rule); }
.jp-fig:last-child { border-right:0; }
.jp-fig:not(:first-child) { padding-left:28px; }
.jp-fig b { font-family:var(--font-serif); font-weight:300; font-size:clamp(2rem, 3.2vw, 2.875rem); line-height:1; letter-spacing:-.02em; }
.jp-fig span { font-size:13px; color:var(--text-muted); }

/* ---------- encabezado de sección ---------- */
.jp-sechead {
  max-width:var(--maxw); margin-inline:auto;
  padding:130px var(--gutter) 56px;
  display:flex; flex-direction:column; gap:18px;
  scroll-margin-top:calc(var(--header-h) + 8px);
}
.jp-sechead--flush { padding:0 0 56px; max-width:none; }
.jp-sechead h2 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.75rem, 3vw, 2.75rem); line-height:1.15; letter-spacing:-.01em; text-wrap:pretty;
}

/* ---------- servicios a sangre ---------- */
.jp-serv {
  display:grid; grid-template-columns:1fr 1fr; min-height:620px;
  scroll-margin-top:var(--header-h);
}
.jp-serv--flip .jp-serv__media { order:-1; }
.jp-serv__media { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; }
.jp-serv__media > picture { display:block; min-height:0; overflow:hidden; }
.jp-serv__media > picture:first-child { grid-row:span 2; }
.jp-serv__media img { width:100%; height:100%; object-fit:cover; }

.jp-serv__txt {
  display:flex; flex-direction:column; gap:22px;
  align-items:flex-start; justify-content:center; padding:96px;
}
.jp-serv h3 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.75rem, 2.8vw, 2.5rem); line-height:1.12; letter-spacing:-.01em;
}
.jp-serv__txt > p:not(.jp-num) { font-size:17px; line-height:1.65; color:var(--text-muted); max-width:440px; text-wrap:pretty; }
.jp-serv ul { display:flex; flex-wrap:wrap; gap:8px; }
.jp-serv li { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); border:var(--rule); padding:9px 14px; }
.jp-serv__link {
  display:inline-flex; align-items:center; min-height:32px;
  font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
}

.jp-serv--sand { background:var(--surface); }
.jp-serv--dark { background:var(--brand); color:var(--text-on-dark); }
.jp-serv--dark .jp-serv__txt > p:not(.jp-num) { color:rgba(242,237,227,.8); }
.jp-serv--dark li { color:rgba(242,237,227,.8); border-color:rgba(242,237,227,.28); }
.jp-serv--dark .jp-num { color:#C79372; }
.jp-serv--dark .jp-serv__link { color:var(--accent-soft); }
.jp-serv--dark .jp-serv__link:hover { color:var(--text-on-dark); }

/* ---------- nosotros ---------- */
.jp-about { background:var(--brand-deep); color:var(--text-on-dark); padding:140px 0; scroll-margin-top:var(--header-h); }
.jp-about .jp-eyebrow { color:rgba(242,237,227,.75); margin-bottom:30px; }
.jp-about blockquote {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.75rem, 4vw, 3.25rem); line-height:1.18; letter-spacing:-.02em;
  max-width:900px; text-wrap:pretty;
}
.jp-about cite {
  display:block; margin-top:26px; font-style:normal;
  font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(242,237,227,.7);
}
.jp-about__cols {
  display:grid; grid-template-columns:1fr 1fr; gap:56px;
  margin-top:80px; padding-top:44px; border-top:1px solid rgba(242,237,227,.18);
}
.jp-about__cols h2 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.5rem, 2.2vw, 1.875rem); line-height:1.2; letter-spacing:-.01em; text-wrap:pretty;
}
.jp-about__body { display:flex; flex-direction:column; gap:20px; }
.jp-about__body p { font-size:17px; line-height:1.7; color:rgba(242,237,227,.82); text-wrap:pretty; }

/* ---------- proceso ---------- */
.jp-proc { padding:130px 0; }
.jp-proc__grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }
.jp-proc__step { display:flex; flex-direction:column; gap:12px; border-top:2px solid var(--brand); padding-top:20px; }
.jp-proc__step h3 { font-family:var(--font-serif); font-weight:400; font-size:22px; line-height:1.2; }
.jp-proc__step p { font-size:15px; color:var(--text-muted); }

/* ---------- contacto ---------- */
.jp-contact { display:grid; grid-template-columns:1fr 1fr; scroll-margin-top:var(--header-h); }
.jp-contact__left {
  background:var(--brand); color:var(--text-on-dark);
  padding:120px 80px; display:flex; flex-direction:column; gap:26px; justify-content:center;
}
.jp-contact__left h2 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(2rem, 3.4vw, 3rem); line-height:1.1; letter-spacing:-.02em;
}
.jp-contact__left > p:not(.jp-eyebrow) { font-size:17px; line-height:1.65; color:rgba(242,237,227,.82); max-width:420px; }
.jp-contact .jp-eyebrow { color:rgba(242,237,227,.78); }

.jp-datos {
  display:flex; flex-direction:column; gap:16px;
  margin-top:14px; padding-top:26px; border-top:1px solid rgba(242,237,227,.18);
}
.jp-datos li { display:flex; flex-direction:column; gap:3px; }
.jp-datos small { font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:rgba(242,237,227,.74); }
.jp-datos a, .jp-datos span { font-family:var(--font-serif); font-size:22px; color:var(--text-on-dark); border:0; }
.jp-datos a {
  display:inline-flex; align-items:center; min-height:44px;
  align-self:flex-start; border-bottom:1px solid rgba(242,237,227,.4);
}
.jp-datos a:hover { color:var(--text-on-dark); border-bottom-color:var(--text-on-dark); }

.jp-contact__right { background:var(--surface); padding:120px 80px; display:flex; align-items:center; }
.jp-form { display:grid; gap:22px; width:100%; }
.jp-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.jp-field { display:flex; flex-direction:column; }
.jp-fieldset { border:0; padding:0; margin:0; min-inline-size:0; }
.jp-field label, .jp-legend {
  font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:10px; padding:0;
}
.jp-input {
  min-height:52px; padding:12px 0;
  background:transparent; border:0; border-bottom:1px solid var(--text-muted); border-radius:0;
  font-family:inherit; font-size:17px; color:var(--text);
  transition:border-color var(--dur) var(--ease);
}
textarea.jp-input { line-height:1.6; resize:vertical; }
.jp-input:focus { border-bottom-color:var(--brand); }
.jp-input::placeholder { color:var(--text-muted); opacity:1; }
.jp-input.is-error { border-bottom-color:var(--error); }
.jp-err { margin-top:8px; font-size:13px; color:var(--error); }

.jp-radios { display:flex; gap:10px; flex-wrap:wrap; }
.jp-radios label { margin:0; }
.jp-radios input { position:absolute; opacity:0; width:0; height:0; }
.jp-chip {
  display:inline-flex; align-items:center; min-height:46px; padding:0 22px;
  border:1px solid var(--text-muted); font-size:13px; letter-spacing:.08em;
  color:var(--text-muted); cursor:pointer;
  transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.jp-radios label:hover .jp-chip { border-color:var(--brand); color:var(--text); }
.jp-radios input:checked + .jp-chip { border-color:var(--brand); background:var(--brand); color:var(--btn-text); }
.jp-radios input:focus-visible + .jp-chip { outline:2px solid var(--focus); outline-offset:3px; }

.jp-submit { width:100%; }
.jp-note { font-size:13px; color:var(--text-muted); }

.jp-sent { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.jp-sent h2 {
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(1.75rem, 2.8vw, 2.5rem); line-height:1.15; letter-spacing:-.01em;
}
.jp-sent p { font-size:17px; color:var(--text-muted); max-width:420px; }

/* ---------- footer ---------- */
.jp-footer { background:var(--brand-deep); color:var(--text-on-dark); padding:80px 0 34px; }
.jp-footer__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:44px; align-items:start; }
.jp-footer__brand { display:flex; flex-direction:column; gap:20px; align-items:flex-start; color:var(--text-on-dark); }
.jp-footer__brand svg { height:104px; width:auto; }
.jp-footer__brand p { font-size:15px; color:rgba(242,237,227,.75); max-width:280px; text-wrap:pretty; }

.jp-fcol h2 {
  font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(242,237,227,.72); margin-bottom:18px;
}
.jp-fcol ul { display:flex; flex-direction:column; gap:6px; }
.jp-fcol a {
  display:inline-flex; align-items:center; min-height:32px;
  font-size:15px; color:var(--text-on-dark); border:0; opacity:.88;
}
.jp-fcol a:hover { color:var(--text-on-dark); opacity:1; border-bottom:1px solid currentColor; }

.jp-fbar {
  margin-top:64px; border-top:1px solid rgba(242,237,227,.16); padding-top:22px;
  display:flex; justify-content:space-between; gap:16px;
  font-size:13px; color:rgba(242,237,227,.68);
}

/* =========================================================
   Tablet — 768 a 1199
   ========================================================= */
@media (max-width:1199px) {
  :root { --gutter:32px; }
  .jp-serv__txt { padding:72px 48px; }
  .jp-contact__left, .jp-contact__right { padding:88px 48px; }
  .jp-footer__grid { grid-template-columns:1fr 1fr; gap:40px; }
  .jp-footer__brand { grid-column:1 / -1; }
}

/* nav colapsa antes de que se apriete */
@media (max-width:900px) {
  :root { --header-h:68px; }
  .jp-burger { display:grid; }

  .jp-nav {
    position:fixed; inset:0; z-index:70;
    display:flex; flex-direction:column; align-items:stretch; justify-content:center;
    gap:8px; padding:88px 32px 32px;
    background:var(--brand-deep);
    transform:translateY(-100%); visibility:hidden;
    transition:transform var(--dur-slow) var(--ease), visibility var(--dur-slow);
  }
  .jp-nav.is-open { transform:none; visibility:visible; }
  .jp-nav a:not(.jp-btn) {
    min-height:56px; font-family:var(--font-serif); font-size:22px;
    letter-spacing:.04em; text-transform:none; opacity:1;
    padding-bottom:0; border-bottom:1px solid rgba(242,237,227,.14);
  }
  .jp-nav .jp-btn { margin:24px 0 0; min-height:56px; }

  .jp-header.is-menu-open { background:var(--brand-deep); }
  body.jp-locked { overflow:hidden; }
}

/* =========================================================
   Móvil — hasta 767
   ========================================================= */
@media (max-width:767px) {
  :root { --gutter:20px; }

  .jp-hero { min-height:auto; }
  .jp-hero__in {
    flex-direction:column; align-items:flex-start; gap:40px;
    padding:calc(var(--header-h) + 96px) var(--gutter) 56px;
  }
  .jp-hero__txt { gap:22px; }
  .jp-hero__cta { flex-direction:column; align-self:stretch; }
  .jp-hero__cta .jp-btn { width:100%; }
  .jp-hero__aside { padding:0 0 0 18px; }

  .jp-statement { padding:80px 0 64px; }
  .jp-statement__txt { grid-template-columns:1fr; gap:24px; }
  .jp-figs { grid-template-columns:1fr; margin-top:56px; }
  .jp-fig { padding:24px 0; border-right:0; border-bottom:var(--rule); }
  .jp-fig:last-child { border-bottom:0; }
  .jp-fig:not(:first-child) { padding-left:0; }

  .jp-sechead { padding:80px var(--gutter) 32px; }
  .jp-sechead--flush { padding:0 0 32px; }

  .jp-serv { grid-template-columns:1fr; min-height:0; }
  .jp-serv--flip .jp-serv__media { order:0; }
  .jp-serv__media { grid-template-rows:220px 220px; gap:6px; }
  .jp-serv__txt { padding:40px var(--gutter) 56px; gap:18px; }

  .jp-about { padding:80px 0; }
  .jp-about__cols { grid-template-columns:1fr; gap:24px; margin-top:48px; padding-top:32px; }

  .jp-proc { padding:80px 0; }
  .jp-proc__grid { grid-template-columns:1fr; gap:24px; }

  .jp-contact { grid-template-columns:1fr; }
  .jp-contact__left { padding:64px var(--gutter); }
  .jp-contact__right { padding:56px var(--gutter) 72px; }
  .jp-row { grid-template-columns:1fr; gap:22px; }
  .jp-datos a, .jp-datos span { font-size:20px; }
  /* 16px evita que iOS haga zoom al enfocar un campo */
  .jp-input { font-size:16px; }

  .jp-footer { padding:56px 0 28px; }
  .jp-footer__grid { grid-template-columns:1fr; gap:32px; }
  .jp-footer__brand svg { height:88px; }
  .jp-fbar { flex-direction:column; gap:8px; margin-top:40px; }
}

/* =========================================================
   Preferencias del visitante
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .jp-hero__bg { animation:none; }
  *, *::before, *::after { transition-duration:1ms !important; }
}

@media print {
  .jp-header, .jp-burger, .jp-hero__cta, .jp-form { display:none; }
  body { background:#fff; color:#000; }
  .jp-serv, .jp-contact { grid-template-columns:1fr; }
}
