/* ============================================================
   Renovo Holdings — corporate one-page site (kit styles)
   Layout/section styling on top of the design-system tokens.
   ============================================================ */

.rnv-site{ height:100%; overflow-y:auto; background:var(--surface-page); color:var(--text-body); scroll-behavior:smooth; }
.rnv-site *{ box-sizing:border-box; }

/* ---- Header ---- */
.site-header{ position:sticky; top:0; z-index:var(--z-sticky); background:rgba(250,249,246,.82); backdrop-filter:blur(10px); border-bottom:1px solid transparent; transition:border-color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard); }
.site-header.is-scrolled{ border-bottom-color:var(--border-soft); background:rgba(250,249,246,.94); }
.site-header__inner{ max-width:var(--container-max); margin:0 auto; padding:18px var(--space-6); display:flex; align-items:center; gap:var(--space-6); }
.site-header__brand{ display:flex; align-items:center; flex:none; }
.site-header__nav{ display:flex; gap:var(--space-5); margin-left:auto; }
.site-header__link{ font-size:var(--fs-300); font-weight:var(--fw-medium); color:var(--text-body); letter-spacing:.01em; padding:6px 2px; position:relative; }
.site-header__link::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:var(--color-accent); transition:right var(--dur-base) var(--ease-out); }
.site-header__link:hover{ color:var(--color-primary); }
.site-header__link:hover::after{ right:0; }
.site-header__action{ flex:none; }

@media (max-width:780px){
  .site-header__nav{ display:none; }
}

/* ---- Hero ---- */
.hero{ padding:var(--space-10) var(--space-6) var(--space-9); }
.hero__inner{ max-width:var(--container-max); margin:0 auto; }
.hero__statement{ font-family:var(--font-serif); font-weight:400; font-size:clamp(2.4rem, 5.4vw, 4rem); line-height:1.08; letter-spacing:-.02em; color:var(--text-strong); max-width:18ch; margin:var(--space-5) 0 var(--space-6); text-wrap:balance; }
.hero__sub{ font-size:var(--fs-600); line-height:1.55; color:var(--text-muted); max-width:54ch; margin:0; font-weight:400; }
.hero__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-4); margin-top:var(--space-8); padding-top:var(--space-5); border-top:1px solid var(--border-soft); }
.hero__meta-item{ font-size:var(--fs-300); color:var(--text-body); }
.hero__meta-label{ display:block; font-size:var(--fs-100); text-transform:uppercase; letter-spacing:var(--ls-eyebrow); color:var(--text-subtle); margin-bottom:4px; }
.hero__rule{ width:1px; height:34px; background:var(--border-soft); }

/* ---- Generic section ---- */
.section{ padding:var(--space-9) var(--space-6); }
.section--cream{ background:var(--surface-cream); border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); }
.section--teal{ background:var(--surface-teal); color:var(--text-on-teal); }
.section--navy{ background:var(--surface-navy); color:var(--text-on-navy); }
.section__inner{ max-width:var(--container-max); margin:0 auto; }
.section__head{ max-width:60ch; margin-bottom:var(--space-7); }
.section__title{ font-family:var(--font-serif); font-weight:500; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.12; letter-spacing:-.015em; color:var(--text-strong); margin:var(--space-3) 0 var(--space-4); }
.section__lead{ font-size:var(--fs-600); line-height:1.55; color:var(--text-muted); margin:0; }

/* ---- Portfolio ---- */
.brand-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-5); }
.brand-card{ display:flex; gap:var(--space-5); background:var(--surface-card); border:1px solid var(--border-soft); border-radius:var(--radius-lg); padding:var(--space-6); transition:box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard); }
.brand-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
.brand-card__mark{ flex:none; width:56px; height:56px; border-radius:var(--radius-md); background:var(--white); display:flex; align-items:center; justify-content:center; border:1px solid var(--border-soft); overflow:hidden; }
.brand-card__mark-img{ width:40px; height:40px; object-fit:contain; display:block; }
.brand-card__body{ flex:1; }
.brand-card__row{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-3); }
.brand-card__name{ font-family:var(--font-serif); font-weight:600; font-size:var(--fs-700); margin:0; color:var(--text-strong); }
.brand-card__desc{ font-size:var(--fs-400); line-height:1.6; color:var(--text-muted); margin:0 0 var(--space-4); }
.brand-card__foot{ display:flex; align-items:center; }
.brand-card__status{ display:inline-flex; align-items:center; gap:8px; font-size:var(--fs-200); color:var(--text-muted); text-transform:uppercase; letter-spacing:.08em; }
.brand-card__dot{ width:7px; height:7px; border-radius:50%; background:var(--notice); }

@media (max-width:720px){ .brand-grid{ grid-template-columns:1fr; } }

/* ---- Approach ---- */
.approach{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:var(--space-8); align-items:start; }
.approach__intro{ position:sticky; top:96px; }
.principle{ display:flex; gap:var(--space-5); padding:var(--space-5) 0; }
.principle__num{ font-family:var(--font-mono); font-size:var(--fs-200); color:var(--color-accent); font-weight:600; padding-top:6px; letter-spacing:.05em; }
.principle__title{ font-family:var(--font-serif); font-weight:500; font-size:var(--fs-700); margin:0 0 var(--space-2); color:var(--text-strong); }
.principle__body{ font-size:var(--fs-500); line-height:1.6; color:var(--text-muted); margin:0; max-width:48ch; }

@media (max-width:820px){ .approach{ grid-template-columns:1fr; gap:var(--space-6);} .approach__intro{ position:static; } }

/* ---- Contact (teal) ---- */
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-9); align-items:start; }
.contact__title{ font-family:var(--font-serif); font-weight:500; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.14; letter-spacing:-.015em; color:var(--offwhite); margin:var(--space-3) 0 var(--space-4); }
.contact__lead{ font-size:var(--fs-500); line-height:1.6; color:var(--text-on-navy-muted); margin:0 0 var(--space-6); max-width:46ch; }
.contact__email{ display:inline-block; font-family:var(--font-serif); font-size:var(--fs-700); color:var(--offwhite); border-bottom:1px solid var(--gold-500); padding-bottom:3px; }
.contact__email:hover{ color:var(--gold-300); }
.contact__addr{ font-size:var(--fs-300); color:var(--text-on-navy-muted); margin-top:var(--space-5); }
.contact__form-wrap{ background:var(--offwhite); border-radius:var(--radius-lg); padding:var(--space-6); box-shadow:var(--shadow-lg); }
.contact__form{ display:flex; flex-direction:column; gap:var(--space-4); }
.contact__sent{ text-align:center; padding:var(--space-6) var(--space-4); }
.contact__sent h3{ font-family:var(--font-serif); color:var(--color-primary); font-size:var(--fs-700); margin:0 0 var(--space-3); }
.contact__sent p{ color:var(--text-muted); margin:0 auto; max-width:36ch; }

@media (max-width:820px){ .contact{ grid-template-columns:1fr; gap:var(--space-6);} }

/* ---- Footer ---- */
.site-footer{ background:var(--surface-darker); color:var(--text-on-dark); padding:var(--space-8) var(--space-6) var(--space-6); }
.site-footer__inner{ max-width:var(--container-max); margin:0 auto; display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:var(--space-7); margin-bottom:var(--space-6); }
.site-footer__descriptor{ font-size:var(--fs-300); color:var(--text-on-teal-muted); margin:var(--space-4) 0 0; max-width:34ch; line-height:1.55; }
.site-footer__nav{ display:flex; flex-direction:column; gap:var(--space-3); }
.site-footer__heading{ font-size:var(--fs-100); text-transform:uppercase; letter-spacing:var(--ls-eyebrow); color:var(--text-subtle); margin-bottom:var(--space-1); }
.site-footer__nav a{ font-size:var(--fs-300); color:var(--text-on-dark); }
.site-footer__nav a:hover{ color:var(--gold-300); }
.site-footer__plain{ font-size:var(--fs-300); color:var(--text-on-teal-muted); }
.site-footer__legal{ max-width:var(--container-max); margin:var(--space-5) auto 0; display:flex; justify-content:space-between; gap:var(--space-4); flex-wrap:wrap; font-size:var(--fs-100); color:var(--text-subtle); }

@media (max-width:780px){ .site-footer__inner{ grid-template-columns:1fr 1fr; gap:var(--space-6);} }
@media (max-width:520px){ .site-footer__inner{ grid-template-columns:1fr;} }

/* ---- Legal pages (Privacy / Terms) ---- */
.legal{ max-width:var(--container-max); margin:0 auto; padding:var(--space-9) var(--space-6) var(--space-10); }
.legal__doc{ max-width:74ch; }
.legal__eyebrow{ display:inline-flex; align-items:center; gap:.7em; font-size:var(--fs-200); font-weight:var(--fw-semibold); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--text-muted); }
.legal__eyebrow::before{ content:""; width:28px; height:1px; background:var(--color-accent); }
.legal__title{ font-family:var(--font-serif); font-weight:400; font-size:clamp(2.2rem,4.4vw,3.2rem); line-height:1.1; letter-spacing:-.02em; color:var(--text-strong); margin:var(--space-4) 0 var(--space-3); }
.legal__effective{ font-size:var(--fs-300); color:var(--text-muted); margin:0 0 var(--space-6); }
.legal__rule{ height:2px; width:48px; background:var(--color-accent); margin:0 0 var(--space-7); }
.legal__lead{ font-size:var(--fs-600); line-height:1.6; color:var(--text-body); margin:0 0 var(--space-5); }
.legal h2{ font-family:var(--font-serif); font-weight:500; font-size:var(--fs-700); letter-spacing:-.01em; color:var(--text-strong); margin:var(--space-7) 0 var(--space-3); }
.legal h3{ font-family:var(--font-sans); font-weight:var(--fw-semibold); font-size:var(--fs-500); color:var(--text-strong); margin:var(--space-5) 0 var(--space-2); }
.legal p{ font-size:var(--fs-400); line-height:1.75; color:var(--text-muted); margin:0 0 var(--space-4); max-width:74ch; }
.legal ul{ margin:0 0 var(--space-4); padding-left:1.3em; }
.legal li{ font-size:var(--fs-400); line-height:1.7; color:var(--text-muted); margin:0 0 .5em; max-width:72ch; }
.legal a{ color:var(--link); }
.legal a:hover{ color:var(--link-hover); }
.legal__address{ font-style:normal; font-size:var(--fs-400); line-height:1.7; color:var(--text-body); margin:0 0 var(--space-4); }
.legal__note{ margin-top:var(--space-7); padding:var(--space-4) var(--space-5); background:var(--cream); border:1px solid var(--border-soft); border-left:3px solid var(--gold-500); border-radius:var(--radius-md); font-size:var(--fs-300); color:var(--text-muted); }

/* ---- Header contact action on static pages (no bundle) ---- */
.rnv-link-btn{ display:inline-flex; align-items:center; font-family:var(--font-sans); font-weight:var(--fw-semibold); font-size:var(--fs-300); color:var(--color-primary); border:1px solid var(--color-primary); border-radius:var(--radius-md); padding:.5rem .9rem; transition:background var(--dur-fast) var(--ease-standard); }
.rnv-link-btn:hover{ background:var(--color-primary-soft); color:var(--color-primary); }
