@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

:root {
  --olive: #2F4A32;
  --eucalyptus: #6B7F6E;
  --sage: #B7C3B1;
  --beige: #EADFCC;
  --ivory: #FAF8EF;
  --ink: #253127;
  --muted: #5D675F;
  --white: #FFFFFF;
  --border: rgba(47, 74, 50, .18);
  --shadow: 0 18px 55px rgba(47,74,50,.08);
  --radius: 22px;
  --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: 'Montserrat', Arial, sans-serif; font-size: 17px; line-height: 1.7; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
.skip-link { position:absolute; left:-9999px; top:10px; background:var(--olive); color:white; padding:10px 14px; z-index:1000; }
.skip-link:focus { left:10px; }
:focus-visible { outline: 3px solid var(--eucalyptus); outline-offset: 3px; }
.container { width: min(calc(100% - 36px), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 36px), 780px); margin-inline: auto; }
.eyebrow { margin: 0 0 14px; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--eucalyptus); }
h1,h2,h3 { font-family: 'Playfair Display', Georgia, serif; color: var(--olive); line-height: 1.08; margin-top: 0; }
h1 { font-size: clamp(2.3rem, 5.4vw, 3.75rem); max-width: 900px; letter-spacing: -.03em; }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.6rem); letter-spacing: -.025em; }
h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
p { max-width: 72ch; }
.lead { font-size: clamp(1.08rem, 2vw, 1.3rem); color: var(--muted); max-width: 66ch; }
.small { font-size: .9rem; color: var(--muted); }

.site-header { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(16px); background: rgba(250,248,239,.93); border-bottom: 1px solid var(--border); }
.nav { min-height: 78px; display:flex; align-items:center; gap:26px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--olive); font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:1.2rem; white-space:nowrap; }
.brand-mark { width:33px; height:33px; border:2px solid var(--olive); border-radius:50%; display:grid; place-items:center; font-family:'Montserrat',sans-serif; font-size:.67rem; font-weight:700; }
.nav-menu { margin-left:auto; display:flex; align-items:center; gap:20px; }
.nav-menu a { text-decoration:none; font-size:.88rem; font-weight:600; white-space:nowrap; }
.nav-menu a:hover { color:var(--eucalyptus); }
.menu-toggle { display:none; margin-left:auto; border:0; background:transparent; font:inherit; color:var(--olive); padding:10px; }
.btn { min-height:50px; padding:13px 20px; border-radius:999px; display:inline-flex; justify-content:center; align-items:center; gap:8px; text-decoration:none; font-weight:700; font-size:.9rem; border:1.5px solid transparent; transition: transform .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background:var(--olive); color:var(--ivory); }
.btn-primary:hover { background:#243B28; }
.btn-secondary { border-color:var(--olive); color:var(--olive); background:transparent; }
.btn-soft { background:var(--beige); color:var(--olive); }

.hero { padding: clamp(74px, 10vw, 135px) 0 80px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); gap:clamp(32px,6vw,70px); align-items:center; }
.hero-copy .lead { margin-bottom:30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.microcopy { margin-top:12px; font-size:.86rem; color:var(--muted); }
.hero-visual { min-height:370px; border-radius:44% 56% 48% 52% / 47% 40% 60% 53%; background:radial-gradient(rgba(47,74,50,.14) 1.4px, transparent 1.6px) 0 0/20px 20px, var(--beige); position:relative; display:grid; place-items:center; }
.hero-visual::before, .hero-visual::after { content:''; position:absolute; border:1px solid rgba(47,74,50,.23); border-radius:50%; }
.hero-visual::before { width:70%; height:70%; }
.hero-visual::after { width:46%; height:46%; }
.map-mini { position:relative; z-index:2; text-align:center; color:var(--olive); font-weight:700; letter-spacing:.03em; line-height:2.2; }
.map-mini span { display:block; font-family:'Playfair Display',Georgia,serif; font-size:1.45rem; }
.hero-photo { position:absolute; top:-8%; right:2%; width:118px; height:118px; z-index:3; border-radius:50%; border:6px solid var(--ivory); box-shadow:var(--shadow); overflow:hidden; }

.authority-strip { background:var(--beige); border-block:1px solid rgba(47,74,50,.1); }
.authority-inner { min-height:112px; display:flex; align-items:center; gap:18px; }
.avatar-placeholder { width:70px; height:70px; flex:0 0 70px; border-radius:50%; background:var(--ivory); border:1px solid var(--border); display:grid; place-items:center; font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--olive); overflow:hidden; }
.authority-text { margin:0; font-size:.95rem; }
.authority-inner .text-link { margin-left:auto; }
.text-link { color:var(--olive); font-weight:700; text-underline-offset:4px; }

.section { padding: clamp(76px, 10vw, 125px) 0; }
.section-soft { background:#F5F1E5; }
.section-beige { background:var(--beige); }
.section-head { margin-bottom:42px; }
.section-head p { color:var(--muted); }
.chips { display:flex; flex-wrap:wrap; gap:11px; margin:34px 0; }
.chip { border:1px solid var(--border); background:rgba(255,255,255,.45); color:var(--olive); text-decoration:none; border-radius:999px; padding:10px 15px; font-size:.88rem; font-weight:600; }
.chip:hover { background:var(--beige); }
.statement { margin-top:36px; font-family:'Playfair Display',serif; color:var(--olive); font-size:clamp(1.5rem,3vw,2.3rem); }
.pattern-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:clamp(8px,2vw,15px); align-items:center; margin:44px 0; }
.pattern-step { border:1px solid var(--border); min-height:150px; padding:clamp(18px,3vw,28px); border-radius:var(--radius); background:rgba(255,255,255,.45); }
.pattern-step strong { display:block; color:var(--olive); margin-bottom:8px; }
.arrow { color:var(--eucalyptus); font-size:1.5rem; }

.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,2.5vw,24px); }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.5vw,24px); }
.card { padding:clamp(20px,3vw,30px); border:1px solid var(--border); border-radius:var(--radius); background:rgba(255,255,255,.52); }
.card h3 { margin-bottom:12px; }
.card p:last-child { margin-bottom:0; }
.number { width:38px; height:38px; border-radius:50%; background:var(--sage); color:var(--olive); display:grid; place-items:center; font-weight:700; margin-bottom:18px; }
.mockup { min-height:360px; background:var(--white); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow); padding:clamp(22px,3.5vw,34px); position:relative; overflow:hidden; }
.mockup:before { content:'CONDUCTA APLICADA'; font-size:.67rem; letter-spacing:.13em; font-weight:700; color:var(--eucalyptus); }
.mockup h3 { margin-top:75px; }
.mockup .lines { display:grid; gap:11px; margin-top:25px; }
.mockup .lines i { display:block; height:8px; background:#E7ECE4; border-radius:99px; }
.mockup .lines i:nth-child(2) { width:83%; }.mockup .lines i:nth-child(3){ width:66%; }

.offer-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(16px,2.5vw,24px); align-items:stretch; }
.offer-main { background:var(--olive); color:var(--ivory); padding:clamp(24px,4vw,42px); border-radius:var(--radius); }
.offer-main h3, .offer-main p { color:inherit; }
.offer-main .btn { background:var(--ivory); color:var(--olive); }
.offer-side { padding:clamp(24px,4vw,42px); border:1px solid var(--border); border-radius:var(--radius); }

.grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,2.2vw,22px); }
.situation-card { text-decoration:none; display:block; }
.situation-card:hover { border-color:var(--olive); }
.situation-card p { margin:0; font-family:'Playfair Display',Georgia,serif; color:var(--olive); font-size:1.05rem; line-height:1.4; }

.section-dark { background:var(--olive); color:var(--ivory); }
.section-dark h2, .section-dark p, .section-dark .eyebrow { color:inherit; }
.section-dark .btn-primary { background:var(--ivory); color:var(--olive); }
.section-dark .btn-primary:hover { background:var(--white); }

.avatar-mono { width:70px; height:70px; flex:0 0 70px; border-radius:50%; background:var(--olive); color:var(--ivory); display:grid; place-items:center; font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:1.15rem; overflow:hidden; }
.avatar-mono img { width:100%; height:100%; object-fit:cover; }
.portrait-photo { aspect-ratio:4/5; border-radius:26px; overflow:hidden; border:1px solid var(--border); }
.portrait-photo img { width:100%; height:100%; object-fit:cover; display:block; }

.faq { border-top:1px solid var(--border); }
.faq-item { border-bottom:1px solid var(--border); }
.faq button { width:100%; background:none; border:0; display:flex; justify-content:space-between; gap:20px; text-align:left; font:600 1rem/1.45 'Montserrat',sans-serif; color:var(--olive); padding:24px 0; cursor:pointer; }
.faq button span:last-child { font-size:1.35rem; }
.faq-panel { padding:0 0 24px; color:var(--muted); }

.page-hero { padding:96px 0 60px; }
.page-hero h1 { max-width:820px; }
.price-panel { padding:clamp(22px,3.5vw,34px); border-radius:var(--radius); background:var(--beige); display:flex; justify-content:space-between; gap:clamp(18px,3vw,30px); align-items:center; margin-top:34px; flex-wrap:wrap; }
.price { font-family:'Playfair Display',serif; color:var(--olive); font-size:2.4rem; font-weight:700; white-space:nowrap; }
.check-list { list-style:none; padding:0; margin:24px 0; display:grid; gap:11px; }
.check-list li { padding-left:28px; position:relative; }
.check-list li::before { content:'✓'; position:absolute; left:0; color:var(--olive); font-weight:700; }
.note { padding:22px 24px; border-left:4px solid var(--eucalyptus); background:#F1F4EF; border-radius:0 12px 12px 0; color:var(--muted); }
.profile-layout { display:grid; grid-template-columns:1.3fr .9fr; gap:52px; align-items:center; }
.portrait-photo { aspect-ratio:3/4; border-radius:24px; overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow); }
.portrait-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block; }
.portrait-placeholder { aspect-ratio:4/5; border-radius:26px; border:1px solid var(--border); background:var(--beige); display:grid; place-items:center; color:var(--eucalyptus); text-align:center; overflow:hidden; }

.form { display:grid; gap:18px; max-width:680px; }
.field { display:grid; gap:7px; }
label { font-weight:600; color:var(--olive); }
input, textarea { width:100%; border:1px solid var(--border); border-radius:12px; background:var(--white); padding:14px 15px; font:inherit; color:var(--ink); }
textarea { min-height:160px; resize:vertical; }

.site-footer { border-top:1px solid var(--border); padding:55px 0 110px; background:#F6F2E8; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:clamp(28px,5vw,48px); }
.footer-links { display:grid; gap:10px; align-content:start; }
.footer-links a { text-decoration:none; font-size:.9rem; }
.footer-links a:hover { text-decoration:underline; }
.footer-legal { margin-top:40px; padding-top:22px; border-top:1px solid var(--border); display:flex; justify-content:space-between; gap:25px; flex-wrap:wrap; font-size:.8rem; color:var(--muted); }
.mobile-cta { display:none; }

@media (max-width: 1080px) {
  .nav-menu { gap:14px; }
  .nav-menu a { font-size:.82rem; }
}
@media (max-width: 900px) {
  .hero-photo { width:90px; height:90px; top:-6%; right:0; }
  .nav { min-height:70px; }
  .menu-toggle { display:block; }
  .nav > .desktop-cta { display:none; }
  .nav-menu { display:none; position:absolute; left:0; right:0; top:70px; background:var(--ivory); padding:18px 22px 28px; border-bottom:1px solid var(--border); flex-direction:column; align-items:flex-start; }
  .nav-menu[data-open='true'] { display:flex; }
  .hero-grid, .profile-layout { grid-template-columns:1fr; }
  .hero-visual { min-height:290px; max-width:520px; }
  .grid-3 { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns:1fr 1fr; }
  .offer-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1/-1; }
  .mobile-cta { display:block; position:fixed; left:16px; right:16px; bottom:14px; z-index:60; box-shadow:0 12px 34px rgba(37,49,39,.22); }
}
@media (max-width: 650px) {
  body { font-size:17px; }
  .container,.narrow { width:min(calc(100% - 28px), var(--max)); }
  .hero { padding-top:62px; }
  .hero-grid { gap:44px; }
  .hero-visual { min-height:250px; }
  .authority-inner { align-items:flex-start; padding:22px 0; flex-wrap:wrap; }
  .authority-inner .text-link { margin-left:88px; margin-top:-24px; }
  .grid-2 { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns:1fr; }
  .pattern-flow { grid-template-columns:1fr; }
  .arrow { transform:rotate(90deg); text-align:center; }
  .price-panel { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > :first-child { grid-column:auto; }
  .btn { width:100%; }
  .hero-actions { align-items:stretch; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}
