:root {
  --ink: #242522;
  --ink-soft: #5f625c;
  --cream: #f7f3ec;
  --cream-deep: #eee7db;
  --paper: #fffdf9;
  --bronze: #a27447;
  --bronze-dark: #7d5633;
  --line: rgba(36,37,34,.14);
  --dark: #252a27;
  --shadow: 0 28px 80px rgba(42,37,30,.12);
  --radius: 28px;
  --container: 1240px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Avenir Next', Avenir, 'Helvetica Neue', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 999; background: var(--dark); color: white; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { top: 16px; }
.container { width: min(calc(100% - 44px), var(--container)); margin: 0 auto; }
.section { padding: 118px 0; }
.section-soft { background: var(--cream); }
.eyebrow { margin: 0 0 18px; color: var(--bronze-dark); font-size: .76rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; line-height: 1.08; }
h1 { font-size: clamp(3.5rem, 7.3vw, 7rem); margin-bottom: 28px; }
h1 em { color: var(--bronze); font-weight: 400; }
h2 { font-size: clamp(2.5rem, 4.6vw, 4.65rem); margin-bottom: 24px; }
h3 { font-size: 1.65rem; margin-bottom: 14px; }
p { margin: 0 0 20px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding: 0 24px; border-radius: 999px; font-size: .92rem; font-weight: 700; letter-spacing: .015em; transition: .25s ease; }
.button-primary { background: var(--dark); color: white; box-shadow: 0 10px 28px rgba(37,42,39,.16); }
.button-primary:hover { background: #111411; transform: translateY(-2px); }
.button-ghost { border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.button-ghost:hover { border-color: rgba(36,37,34,.35); transform: translateY(-2px); }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; border-bottom: 1px solid transparent; transition: .3s ease; }
.site-header.scrolled { background: rgba(255,253,249,.88); backdrop-filter: blur(16px); border-bottom-color: var(--line); }
.nav-wrap { height: 92px; display:flex; align-items:center; justify-content:space-between; gap: 26px; }
.brand { width: 272px; max-width: 35vw; }
.brand img, .footer-brand img { width: 100%; height: auto; mix-blend-mode: multiply; }
.nav { display:flex; align-items:center; gap: 20px; font-size: .81rem; font-weight: 600; }
.nav > a:not(.nav-cta) { position:relative; }
.nav > a:not(.nav-cta)::after { content:''; position:absolute; left:0; right:100%; bottom:-5px; height:1px; background:var(--bronze); transition:.25s ease; }
.nav > a:not(.nav-cta):hover::after { right:0; }
.nav-dropdown { position:relative; }
.nav-dropdown summary { list-style:none; cursor:pointer; position:relative; padding-right:16px; user-select:none; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown summary::after { content:'⌄'; position:absolute; right:0; top:-1px; color:var(--bronze); font-size:.8rem; transition:transform .2s ease; }
.nav-dropdown[open] summary::after { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute; top:calc(100% + 16px); left:-18px; min-width:230px; padding:10px; background:rgba(255,253,249,.98); border:1px solid var(--line); border-radius:16px; box-shadow:0 18px 50px rgba(45,38,31,.13); }
.nav-dropdown-menu::before { content:''; position:absolute; top:-17px; left:0; right:0; height:17px; }
.nav-dropdown-menu a { display:block; padding:10px 12px; border-radius:10px; color:var(--ink-soft); white-space:nowrap; font-size:.82rem; }
.nav-dropdown-menu a:hover { color:var(--ink); background:var(--cream); }
.nav-cta { padding: 11px 18px; color:white; background:var(--dark); border-radius:999px; }
.nav-toggle { display:none; border:0; background:transparent; width:46px; height:46px; padding:11px; }
.nav-toggle span:not(.sr-only) { display:block; height:1.5px; background:var(--ink); margin:5px 0; }

.hero { position:relative; min-height: 920px; padding: 170px 0 90px; overflow:hidden; background: linear-gradient(115deg, #fbf8f2 0%, #f5efe5 58%, #eee5d8 100%); }
.hero::before { content:''; position:absolute; width:520px; height:520px; border:1px solid rgba(162,116,71,.16); border-radius:50%; top:-185px; right:-90px; }
.hero-grid { display:grid; grid-template-columns: .96fr 1.04fr; gap: 75px; align-items:center; }
.hero-copy { padding-top: 40px; }
.hero-lead { max-width: 610px; color: var(--ink-soft); font-size: 1.18rem; }
.hero-actions { display:flex; gap: 12px; flex-wrap:wrap; margin: 34px 0 34px; }
.hero-details { display:flex; gap: 28px; flex-wrap:wrap; color:var(--ink-soft); font-size:.86rem; }
.hero-details span { display:flex; align-items:center; gap:8px; }
.hero-details span::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--bronze); }
.hero-visual { position:relative; min-height: 650px; }
.hero-image-frame { position:absolute; inset:0 0 0 55px; overflow:hidden; border-radius: 180px 180px 32px 32px; box-shadow: var(--shadow); }
.hero-image-frame img { width:100%; height:100%; object-fit:cover; object-position:center 45%; }
.hero-card { position:absolute; left:0; bottom:38px; width: 320px; padding: 24px 28px; border:1px solid rgba(255,255,255,.7); background:rgba(255,253,249,.89); backdrop-filter:blur(14px); border-radius:20px; box-shadow:0 16px 45px rgba(45,38,31,.12); }
.hero-card strong { display:block; font-family:var(--serif); font-size:1.28rem; line-height:1.25; margin-bottom:0; }
.hero-card span { color:var(--ink-soft); font-size:.78rem; line-height:1.5; }

.intro-strip { background: #e8dfd3; color:#343631; border-top:1px solid rgba(80,72,62,.07); border-bottom:1px solid rgba(80,72,62,.08); }
.strip-grid { display:grid; grid-template-columns:repeat(3,1fr); padding: 34px 0; }
.strip-grid > div { padding: 3px 34px; border-right:1px solid rgba(52,54,49,.14); }
.strip-grid > div:first-child { padding-left:0; }
.strip-grid > div:last-child { border-right:0; }
.strip-grid strong { display:block; font-family:var(--serif); font-size:1.3rem; font-weight:400; margin-bottom:2px; }
.strip-grid span { color:#6b665e; font-size:.82rem; }

.two-col { display:grid; grid-template-columns:.9fr 1.1fr; gap:105px; align-items:start; }
.section-heading p:not(.eyebrow) { color: var(--ink-soft); max-width: 640px; }
.section-heading.centered { text-align:center; max-width:820px; margin:0 auto 58px; }
.section-heading.centered p:not(.eyebrow) { margin-left:auto; margin-right:auto; }
.prose { color: var(--ink-soft); font-size: 1.04rem; }
.prose p:first-child { color: var(--ink); font-size:1.22rem; }
.note { margin-top:28px; padding:18px 20px; background:var(--cream); border-left:2px solid var(--bronze); border-radius:0 12px 12px 0; font-size:.9rem; }
.cards-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.topic-card { min-height:330px; padding:32px 28px; border:1px solid rgba(36,37,34,.1); background:rgba(255,255,255,.62); border-radius:22px; transition:.3s ease; }
.topic-card:hover { transform:translateY(-7px); box-shadow:0 20px 55px rgba(45,38,31,.08); background:white; }
.card-no { display:block; color:var(--bronze); font-size:.74rem; letter-spacing:.16em; margin-bottom:86px; }
.topic-card p { color:var(--ink-soft); font-size:.92rem; }

.gallery-section { padding-bottom:140px; }
.gallery-grid { display:grid; grid-template-columns:1.18fr .82fr; gap: 82px; align-items:center; }
.gallery-main { margin:0; height:720px; overflow:hidden; border-radius: 30px 160px 30px 30px; box-shadow:var(--shadow); }
.gallery-main img { width:100%; height:100%; object-fit:cover; object-position:center 45%; }
.gallery-copy > p:not(.eyebrow) { color:var(--ink-soft); }
.gallery-small { margin:40px 0 0; height:260px; overflow:hidden; border-radius:20px; }
.gallery-small img { width:100%; height:100%; object-fit:cover; object-position:center 58%; }

.section-dark { background:linear-gradient(135deg, #756f66 0%, #68635c 100%); color:white; }
.section-heading.light p { color:rgba(255,255,255,.82); }
.section-heading.light .eyebrow { color:#f0d8bc; }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; border-top:1px solid rgba(255,255,255,.25); }
.step { padding: 42px 42px 20px 0; border-right:1px solid rgba(255,255,255,.25); }
.step + .step { padding-left:42px; }
.step:last-child { border-right:0; padding-right:0; }
.step > span { color:#f0d8bc; font-size:.74rem; letter-spacing:.16em; }
.step h3 { margin-top:38px; color:white; }
.step p { color:rgba(255,255,255,.82); font-size:.92rem; }

.natur-section { background:linear-gradient(135deg, #f8f3eb 0%, #fffdf9 50%, #efe6d8 100%); position:relative; overflow:hidden; }
.natur-section::after { content:''; position:absolute; width:420px; height:420px; border:1px solid rgba(162,116,71,.13); border-radius:50%; right:-180px; bottom:-190px; pointer-events:none; }
.natur-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:88px; align-items:center; position:relative; z-index:1; }
.natur-copy > p:not(.eyebrow) { color:var(--ink-soft); }
.natur-features { margin:26px 0 30px; padding:0; list-style:none; display:grid; gap:12px; color:var(--ink-soft); font-size:.9rem; }
.natur-features li { position:relative; padding-left:24px; }
.natur-features li::before { content:''; position:absolute; left:0; top:.72em; width:9px; height:9px; border:1px solid var(--bronze); border-radius:50%; transform:translateY(-50%); }
.product-label { margin:0 0 18px; color:var(--bronze-dark); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.natur-note { margin:26px 0 30px; padding:16px 18px; border-left:2px solid var(--bronze); background:rgba(255,255,255,.56); border-radius:0 12px 12px 0; font-size:.88rem; }
.natur-panel { background:rgba(255,255,255,.76); border:1px solid rgba(36,37,34,.08); border-radius:26px; padding:34px; box-shadow:0 24px 70px rgba(45,38,31,.09); }
.partner-banner { display:flex; justify-content:center; align-items:center; overflow:hidden; border-radius:14px; background:white; }
.partner-banner a { display:block; line-height:0; }
.partner-banner iframe { display:block; max-width:100%; border:0; pointer-events:none; }
.partner-banner-square { display:none; }
.partner-disclosure { margin:18px 0 0; color:var(--ink-soft); text-align:center; font-size:.74rem; line-height:1.5; }

.expertise-section { background:#f3eee5; position:relative; overflow:hidden; }
.expertise-section::before { content:''; position:absolute; width:520px; height:520px; border:1px solid rgba(162,116,71,.12); border-radius:50%; left:-270px; top:-260px; }
.expertise-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:95px; align-items:center; position:relative; z-index:1; }
.expertise-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.expertise-cards article { background:rgba(255,255,255,.68); border:1px solid rgba(36,37,34,.09); border-radius:24px; padding:32px 28px; min-height:310px; }
.expertise-cards article > span { display:block; margin-bottom:55px; color:var(--bronze); font-size:.74rem; letter-spacing:.16em; }
.expertise-cards p { color:var(--ink-soft); font-size:.9rem; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:105px; align-items:center; }
.about-images { position:relative; min-height:720px; }
.about-primary { position:absolute; width:75%; height:620px; right:0; top:0; object-fit:cover; object-position:center 48%; border-radius: 160px 28px 28px 28px; box-shadow:var(--shadow); }
.about-primary.about-portrait { object-position:center 25%; }
.about-secondary { position:absolute; width:46%; height:340px; left:0; bottom:0; object-fit:cover; object-position:center 38%; border:10px solid var(--paper); border-radius:22px; box-shadow:0 18px 45px rgba(42,37,30,.1); }
.about-role { color:var(--bronze-dark); font-size:.94rem; font-weight:600; }
.about-copy > p:not(.eyebrow):not(.about-role) { color:var(--ink-soft); }
.qualifications { margin-top:32px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.qualifications summary { cursor:pointer; list-style:none; padding:18px 0; font-weight:700; font-size:.9rem; }
.qualifications summary::-webkit-details-marker { display:none; }
.qualifications summary::after { content:'+'; float:right; color:var(--bronze); font-size:1.3rem; font-weight:400; }
.qualifications[open] summary::after { content:'–'; }
.details-content { padding:0 0 18px; color:var(--ink-soft); font-size:.86rem; }
.details-content ul { columns:2; gap:25px; padding-left:20px; }
.details-content li { margin:0 0 8px; break-inside:avoid; }

.pricing-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:105px; align-items:center; }
.price-card { background:white; padding:42px; border-radius:24px; box-shadow:0 20px 65px rgba(45,38,31,.08); border:1px solid rgba(36,37,34,.08); }
.price-row { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.price-row span { font-family:var(--serif); font-size:1.65rem; }
.price-row strong { font-family:var(--serif); font-size:3rem; font-weight:400; color:var(--bronze-dark); }
.divider { height:1px; background:var(--line); margin:28px 0; }
.price-card p { color:var(--ink-soft); }
.price-card .small { font-size:.82rem; }
.text-link { color:var(--bronze-dark); font-weight:700; font-size:.88rem; }

.contact-section { background:linear-gradient(145deg, #fffdf9, #f3ebdf); }
.contact-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:90px; align-items:center; }
.contact-copy > p:not(.eyebrow) { color:var(--ink-soft); max-width:630px; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.contact-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:34px; }
.contact-option { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:13px; padding:17px 18px; border:1px solid rgba(36,37,34,.10); border-radius:18px; background:rgba(255,255,255,.74); box-shadow:0 12px 38px rgba(45,38,31,.06); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.contact-option:hover { transform:translateY(-2px); border-color:rgba(158,116,67,.32); box-shadow:0 16px 42px rgba(45,38,31,.09); }
.contact-option-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#fff; font-family:var(--sans); font-size:1rem; }
.whatsapp-icon { font-size:.78rem; font-weight:800; letter-spacing:-.02em; }
.contact-option small { display:block; margin-bottom:3px; color:var(--ink-soft); font-size:.68rem; text-transform:uppercase; letter-spacing:.11em; }
.contact-option strong { display:block; overflow:hidden; text-overflow:ellipsis; font-size:.84rem; font-weight:650; white-space:nowrap; }
.contact-option-arrow { color:var(--bronze); font-size:1rem; }
.contact-card-links { display:grid; gap:5px; }
.contact-card-links a { width:max-content; max-width:100%; }
.contact-card { font-style:normal; background:rgba(255,255,255,.8); border:1px solid rgba(36,37,34,.08); border-radius:24px; padding:38px; box-shadow:0 22px 65px rgba(45,38,31,.08); }
.contact-card > div { display:grid; grid-template-columns:95px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-card .label { color:var(--ink-soft); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }
.contact-card a { display:block; }
.map-link { display:inline-block!important; margin-top:22px; color:var(--bronze-dark); font-weight:700; font-size:.86rem; }

.site-footer { background:#1f2321; color:white; padding:58px 0 24px; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:52px; padding-bottom:38px; border-bottom:1px solid rgba(255,255,255,.13); }
.footer-trust { display:flex; align-items:center; gap:26px; flex:0 0 auto; }
.footer-brand { width:248px; padding:10px 12px; background:#fffaf3; border-radius:10px; }
.quality-mark { width:108px; display:block; transition:transform .25s ease, opacity .25s ease; }
.quality-mark:hover { transform:translateY(-2px); opacity:.92; }
.quality-mark img { width:100%; height:auto; filter:drop-shadow(0 10px 20px rgba(0,0,0,.22)); }
.footer-links { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:18px 24px; color:rgba(255,255,255,.68); font-size:.8rem; max-width:610px; }
.footer-links a:hover { color:white; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:22px; color:rgba(255,255,255,.42); font-size:.75rem; }

.reveal { opacity:0; transform:translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in-view { opacity:1; transform:none; }
.delay-1 { transition-delay:.08s; }
.delay-2 { transition-delay:.16s; }
.delay-3 { transition-delay:.24s; }

@media (max-width: 980px) {
  .section { padding:88px 0; }
  .nav-toggle { display:block; }
  .nav { position:fixed; top:82px; left:22px; right:22px; padding:20px; display:none; flex-direction:column; align-items:stretch; gap:5px; background:rgba(255,253,249,.98); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); }
  .nav.open { display:flex; }
  .nav a { padding:11px 12px; }
  .nav-dropdown summary { padding:11px 28px 11px 12px; font-weight:600; }
  .nav-dropdown summary::after { right:12px; top:11px; }
  .nav-dropdown-menu { position:static; min-width:0; margin:2px 0 8px; padding:4px 0 4px 12px; background:transparent; border:0; border-left:1px solid var(--line); border-radius:0; box-shadow:none; }
  .nav-dropdown-menu a { padding:8px 12px; white-space:normal; }
  .nav-cta { text-align:center; margin-top:8px; }
  .hero { min-height:auto; padding-top:140px; }
  .hero-grid, .two-col, .gallery-grid, .natur-grid, .expertise-grid, .about-grid, .pricing-grid, .contact-grid { grid-template-columns:1fr; gap:55px; }
  .hero-copy { padding-top:0; }
  .hero-visual { min-height:650px; }
  .hero-image-frame { inset:0 0 0 30px; }
  .cards-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-main { height:620px; }
  .gallery-copy { max-width:700px; }
  .steps-grid { grid-template-columns:1fr; border-top:0; }
  .step, .step + .step { padding:30px 0; border-right:0; border-top:1px solid rgba(255,255,255,.16); }
  .expertise-cards { max-width:820px; }
  .about-grid { gap:70px; }
  .about-images { min-height:680px; max-width:700px; }
  .contact-card { max-width:680px; }
}

@media (max-width: 640px) {
  body { font-size:16px; }
  .container { width:min(calc(100% - 30px), var(--container)); }
  .nav-wrap { height:76px; }
  .brand { width:230px; max-width:70vw; }
  .nav { top:72px; left:15px; right:15px; }
  .hero { padding:118px 0 62px; }
  h1 { font-size:clamp(3rem, 15.5vw, 4.7rem); }
  h2 { font-size:clamp(2.35rem, 11vw, 3.4rem); }
  .hero-grid { gap:42px; }
  .hero-lead { font-size:1.03rem; }
  .hero-actions .button { width:100%; }
  .hero-details { gap:8px; flex-direction:column; }
  .hero-visual { min-height:510px; }
  .hero-image-frame { inset:0 0 0 18px; border-radius:100px 100px 24px 24px; }
  .hero-card { width:min(92%,310px); bottom:20px; padding:20px 22px; }
  .strip-grid { grid-template-columns:1fr; padding:20px 0; }
  .strip-grid > div, .strip-grid > div:first-child { padding:14px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.13); }
  .strip-grid > div:last-child { border-bottom:0; }
  .section { padding:74px 0; }
  .section-heading.centered { text-align:left; margin-bottom:38px; }
  .cards-grid { grid-template-columns:1fr; }
  .topic-card { min-height:auto; }
  .card-no { margin-bottom:45px; }
  .gallery-main { height:520px; border-radius:24px 90px 24px 24px; }
  .gallery-small { height:230px; }
  .natur-panel { padding:24px 18px; }
  .partner-banner-wide { display:none; }
  .partner-banner-square { display:flex; }
  .expertise-cards { grid-template-columns:1fr; }
  .expertise-cards article { min-height:auto; }
  .expertise-cards article > span { margin-bottom:32px; }
  .about-images { min-height:520px; }
  .about-primary { width:82%; height:470px; border-radius:90px 20px 20px 20px; }
  .about-secondary { width:50%; height:230px; border-width:6px; }
  .details-content ul { columns:1; }
  .price-card { padding:28px 24px; }
  .price-row { align-items:center; }
  .price-row span { font-size:1.35rem; }
  .price-row strong { font-size:2.5rem; }
  .contact-actions .button { width:100%; }
  .contact-options { grid-template-columns:1fr; }
  .contact-option strong { white-space:normal; overflow:visible; text-overflow:clip; }
  .contact-card { padding:28px 22px; }
  .contact-card > div { grid-template-columns:1fr; gap:5px; }
  .footer-top, .footer-bottom { flex-direction:column; align-items:flex-start; }
  .footer-trust { width:100%; justify-content:space-between; gap:20px; }
  .footer-brand { width:225px; max-width:70%; }
  .quality-mark { width:92px; flex:0 0 auto; }
  .footer-links { flex-direction:column; gap:12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  * { animation:none!important; transition:none!important; }
}
