/* A tighter editorial rhythm, with a consistent type scale and distinct sections. */
:root { --cream:#faf8f3; --stone:#eeebe2; --bronze:#986247; --gold:#dbb38b; --muted:#505b60; }
body { font-size:16px; line-height:1.55; }
h1,.hero h1,.page-hero h1 { font-size:clamp(36px,3.8vw,52px); line-height:1.12; }
h2,.page-cta h2,.space-detail h2 { font-size:clamp(29px,2.7vw,38px); line-height:1.16; }
h3 { font-size:24px; }
.eyebrow { font-size:12px; letter-spacing:.1em; }
.primary-nav,.button,.text-link,.service-card .text-link { font-size:14px; }
.site-header { height:76px; }
.hero { padding-block:30px 32px; background:linear-gradient(115deg,#f4efe4, #faf8f3 70%); }
.hero-grid { gap:4vw; grid-template-columns:1fr 1.04fr; }
.hero-copy h1 { margin:16px 0 20px; }
.hero-copy>p:not(.eyebrow):not(.hero-location) { font-size:17px; max-width:470px; }
.hero-actions { margin-top:23px; gap:22px; }
.hero-location { font-size:13px; margin-top:22px; flex-wrap:wrap; gap:7px; }
.hero-location>span { flex-basis:100%; margin-left:25px; font-size:13px; }
.hero-photo { border-radius:4px 36px 4px 4px; overflow:hidden; }
.hero-photo>img { height:390px; }
.hero-photo figcaption { font-size:24px; bottom:22px; }
.hero-photo figcaption span { font-size:13px; }
.source-section { display:block; padding-block:28px 34px; border-top:0; }
.source-intro { display:flex; align-items:baseline; flex-wrap:wrap; gap:14px 24px; margin-bottom:21px; }
.source-intro>.eyebrow { width:100%; }
.source-intro h2 { margin:0; font-size:29px; }
.source-intro h2 br { display:none; }
.source-intro>p:last-child { font-size:15px; }
.product-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.product-card { border:1px solid #ded7c9; padding:18px; border-radius:9px; background:#f1ede4; }
.product-card .icon { width:29px; height:29px; margin-bottom:8px; }
.product-card h3 { font-size:22px; margin-bottom:5px; }
.product-card p { font-size:14px; }
.services-section,.spaces-section,.guides-section,.process-section,.faq-section,.contact-section { padding-block:44px; }
.section-heading { margin-bottom:24px; gap:20px; }
.section-heading h2 { margin-top:9px; }
.section-heading h2 br { display:none; }
.section-summary { margin-top:10px; font-size:16px; }
.service-grid { gap:12px; }
.service-card { padding:20px 17px; border:1px solid var(--line); border-radius:9px; background:#fffdf8; }
.dark-section .service-card { background:#24333c; border-color:#44525a; }
.service-card>.icon { margin-bottom:15px; width:29px; height:29px; }
.service-card h3,.service-card h2 { font-size:24px; line-height:1.2; margin-bottom:12px; }
.service-card p,.service-index .service-card p { font-size:15px; margin-bottom:18px; }
.service-card .text-link { font-size:13px; }
.visit-panel { margin-top:28px; padding:24px; border-radius:10px; background:#eee5d5; color:var(--ink); }
.visit-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 22px; margin-bottom:20px; }
.visit-heading .eyebrow { width:100%; color:#8a5034; }
.visit-heading h3 { font-size:26px; }
.visit-heading>p:last-child { font-size:15px; color:var(--muted); }
.visit-options { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.visit-options article { display:grid; grid-template-columns:30px 1fr; gap:6px 12px; }
.visit-options .icon { color:#8a5034; width:27px; height:27px; grid-row:1 / 3; }
.visit-options h4 { font-size:17px; margin:0; font-weight:600; }
.visit-options p { font-size:14px; color:var(--muted); }
.visit-panel>.text-link { margin-top:20px; font-size:14px; }
.dark-section .visit-panel .text-link:hover { color:#8a5034; }
.team-section { display:grid; grid-template-columns:.72fr 1.5fr; gap:5vw; padding-block:44px; background:#e9e7dc; }
.team-experience { position:relative; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:26px 30px; border-radius:8px; overflow:hidden; background:#d7dbcf; isolation:isolate; }
.team-experience::after { content:''; position:absolute; width:230px; height:230px; border:1px solid #a2ae9c; border-radius:50%; right:-105px; top:-80px; box-shadow:0 0 0 28px #d7dbcf,0 0 0 29px #b4bdad,0 0 0 57px #d7dbcf,0 0 0 58px #c1c9bb; z-index:-1; }
.team-experience strong { font:600 54px/1.2 var(--serif); margin:15px 0 8px; letter-spacing:-.04em; }
.team-experience strong>span { font-size:27px; font-weight:400; }
.team-experience>p { font-size:17px; }
.team-location { display:flex; gap:8px; align-items:center; margin-top:24px; font-size:13px; }
.team-location .icon { width:19px; height:19px; }
.team-story h2 { margin:10px 0 16px; }
.team-story>p:not(.eyebrow) { font-size:16px; color:var(--muted); margin-top:12px; max-width:730px; }
.team-strengths { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:22px; padding-top:18px; border-top:1px solid #c5c8bb; }
.team-strengths>span { display:flex; align-items:center; gap:8px; font-size:13px; }
.team-strengths .icon { width:21px; height:21px; color:var(--bronze); }
.space-grid,.guide-grid { gap:20px; }
.space-card { border-radius:9px; overflow:hidden; border:1px solid var(--line); background:#fffdf8; padding-bottom:20px; }
.space-card img { aspect-ratio:1.6; }
.space-card>.eyebrow,.space-card>h3,.space-card>h2,.space-card>p,.space-card>.text-link { margin-inline:20px; }
.space-card .eyebrow { font-size:12px; margin-top:16px; }
.space-card h3,.space-card h2 { font-size:26px; margin-block:8px; }
.space-card>p:not(.eyebrow) { font-size:15px; margin-bottom:12px; }
.image-note { font-size:12px; margin-top:14px; }
.process-section { background:#ebe0d0; }
.step-grid { gap:18px; }
.step-grid li { padding:18px 20px; border-top:0; border-left:2px solid #b58c62; background:rgba(255,255,255,.38); border-radius:0 8px 8px 0; }
.step-top { margin-bottom:12px; }
.step-top span,.step-number { font-size:13px; }
.step-top .icon { width:28px; height:28px; }
.step-grid h3 { font-size:24px; margin-bottom:8px; }
.step-grid p { font-size:15px; }
.guide-card { border-radius:9px; overflow:hidden; background:#fffdf8; }
.guide-card img { aspect-ratio:1.65; }
.guide-copy { padding:19px; }
.guide-label { font-size:12px; letter-spacing:.06em; }
.guide-copy h3,.guide-copy h2 { font-size:25px; margin:12px 0 10px; }
.guide-copy p { font-size:15px; margin-bottom:15px; }
.faq-section { gap:5vw; grid-template-columns:1fr 1.5fr; }
.faq-intro h2 { margin-top:10px; }.faq-intro>.icon { margin-bottom:13px; }
.faq-list details { padding-block:15px; }
.faq-list p { font-size:15px; padding-top:10px; }
.contact-section { gap:5vw; grid-template-columns:1fr 1.5fr; background:#e8e5dc; }
.contact-copy h2 { margin:12px 0 18px; }
.contact-copy>p:not(.eyebrow) { font-size:16px; max-width:370px; }
.contact-email { margin-top:25px; font-size:16px; }
.contact-person { display:flex; flex-direction:column; align-items:flex-start; gap:9px; margin-top:22px; }
.contact-person strong { font-size:17px; font-weight:600; }
.contact-phone { font-size:16px; text-decoration:underline; text-underline-offset:4px; }
.contact-whatsapp { display:inline-flex; align-items:center; gap:9px; padding:8px 13px; border:1px solid currentColor; border-radius:5px; font-size:14px; }
.contact-whatsapp .icon { width:20px; height:20px; }
.contact-whatsapp:hover { color:var(--bronze); }
.site-footer .contact-person { margin-top:14px; gap:7px; }
.site-footer .contact-person strong,.site-footer .contact-phone { font-size:14px; }
.site-footer .contact-whatsapp { padding:5px 9px; font-size:13px; }
.site-footer .contact-whatsapp:hover { color:var(--gold); }
.contact-copy .small-note { font-size:13px!important; }
.contact-form { padding:25px; background:#fffdf8; border:1px solid #d6d4ca; border-radius:10px; gap:18px; }
.contact-form label,.form-intro,.privacy-note,.form-status { font-size:13px; }
.contact-form input,.contact-form textarea { font-size:16px; padding:10px 12px; border:1px solid #c4c6ba; border-radius:4px; background:#faf9f5; }
.site-footer { padding-block:28px 20px; gap:20px; }
.site-footer p { font-size:13px; }.footer-note { font-size:12px!important; }
.breadcrumbs { font-size:13px; margin-bottom:25px; }
.page-hero { padding-block:24px 32px; background:#f1ece2; }
.page-hero h1 { margin-block:12px 16px; }
.page-cta { padding-block:35px; }
.service-index,.guide-index { padding-block:32px 44px; }
.service-index .service-grid { gap:18px; }
.service-detail,.guide-detail { padding-block:30px 44px; }
.detail-steps h2,.detail-pair h2,.legal-copy h2 { font-size:26px; }
.detail-steps article { padding-block:20px; }
.detail-steps h2 { margin:15px 0 12px; }
.detail-pair article { border-radius:9px; background:#f1eee7; padding:24px; }
.scope-note,.space-detail figcaption,.guide-banner figcaption { font-size:13px; }
.guide-banner img { height:320px; object-position:center; border-radius:8px; }
.guide-banner img.factory-photo { height:auto; aspect-ratio:2; object-position:center 40%; }
.space-detail { padding-block:35px; gap:4vw; }
.space-detail figure img { border-radius:8px; }
@media(max-width:1080px) {
  .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-card:nth-last-child(-n+2) { grid-column:auto; }
  .primary-nav { gap:17px; }
  .hero-photo>img { height:390px; }
  .hero-actions { gap:15px; }
  .hero-actions .button { font-size:13px; padding:13px; }
}
@media(max-width:850px) {
  .site-header { height:68px; }.primary-nav { inset-block-start:68px; }
  .team-section { gap:25px; grid-template-columns:.7fr 1.3fr; }
  .team-experience { padding:23px; }
  .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .visit-options { gap:18px; }
  .visit-options article { display:block; }.visit-options h4 { margin:7px 0; }
  .space-grid,.guide-grid { gap:13px; }
  .space-card h3,.guide-copy h3 { font-size:23px; }
  .space-card>.eyebrow,.space-card>h3,.space-card>h2,.space-card>p,.space-card>.text-link { margin-inline:15px; }
  .contact-section,.faq-section { grid-template-columns:1fr 1.2fr; gap:25px; }
  .contact-form { padding:18px; }
}
@media(max-width:650px) {
  .shell,.site-header { padding-inline:20px; }
  h1,.hero h1,.page-hero h1 { font-size:36px; }
  h2,.page-cta h2,.space-detail h2 { font-size:29px; }
  .hero { padding-block:24px; }.hero-grid { grid-template-columns:1fr; gap:22px; }
  .hero-copy h1 { margin-block:12px 17px; }
  .hero-copy>p:not(.eyebrow):not(.hero-location) { font-size:16px; }
  .hero-photo>img { height:235px; aspect-ratio:auto; }
  .hero-photo figcaption { font-size:23px; left:20px; bottom:18px; }
  .hero-location { margin-top:18px; }.hero-location>span { font-size:12px; }
  .hero-actions { gap:18px; }.hero-actions .button { font-size:13px; }
  .source-section { padding-block:25px; }.source-intro { gap:9px; margin-bottom:16px; }
  .source-intro h2 { font-size:27px; }.source-intro>p:last-child { font-size:14px; }
  .product-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .product-card { padding:14px; }.product-card h3 { font-size:22px; }.product-card p { font-size:14px; }
  .product-card:last-child { grid-column:1 / -1; display:grid; grid-template-columns:30px 1fr; column-gap:12px; }
  .product-card:last-child .icon { grid-row:1 / 3; margin:0; }
  .services-section,.spaces-section,.guides-section,.process-section,.faq-section,.contact-section,.team-section { padding-block:30px; }
  .section-heading { gap:13px; margin-bottom:20px; }.section-summary { font-size:15px; margin-top:10px; }
  .service-grid,.service-index .service-grid { grid-template-columns:1fr; gap:10px; }
  .service-card { padding:18px; grid-template-columns:28px 1fr; gap:0 13px; }
  .service-card h3,.service-card h2 { font-size:24px; margin-bottom:8px; }
  .service-card p { margin-bottom:12px; }.service-card>.icon { width:27px; height:27px; }
  .visit-panel { padding:19px; margin-top:20px; }.visit-heading h3 { font-size:25px; }
  .visit-options { grid-template-columns:1fr; gap:17px; }
  .visit-options article { display:grid; }.visit-options h4 { margin:0; }
  .team-section { grid-template-columns:1fr; gap:23px; }
  .team-experience { padding:20px; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; }
  .team-experience>.eyebrow { grid-column:1 / -1; }
  .team-experience strong { font-size:46px; margin:0; }.team-experience strong>span { font-size:24px; }
  .team-experience>p { font-size:15px; align-self:center; }
  .team-location { grid-column:1 / -1; margin-top:5px; }
  .team-story h2 br { display:none; }.team-story>p:not(.eyebrow) { font-size:15px; }
  .team-strengths { gap:12px; margin-top:17px; padding-top:15px; }
  .space-grid,.guide-grid { grid-template-columns:1fr; gap:15px; }
  .space-card { display:grid; grid-template-columns:110px 1fr; padding:0; column-gap:15px; }
  .space-card>.image-link { grid-row:1 / 5; }.space-card img { height:100%; aspect-ratio:auto; min-height:195px; }
  .space-card>.eyebrow,.space-card>h3,.space-card>h2,.space-card>p,.space-card>.text-link { margin-left:0; margin-right:12px; }
  .space-card>.eyebrow { font-size:11px; margin-top:16px; }
  .space-card h3,.space-card h2 { font-size:23px; margin-block:7px; }
  .space-card>p:not(.eyebrow) { font-size:14px; margin-bottom:10px; }
  .space-card>.text-link { font-size:13px; margin-bottom:16px; width:fit-content; gap:10px; }
  .step-grid { gap:12px; }.step-grid li { padding:15px; }.step-grid h3 { font-size:24px; }.step-grid p { font-size:14px; }
  .guide-card { display:grid; grid-template-columns:110px 1fr; }.guide-card .image-link { height:100%; }
  .guide-card img { height:100%; min-height:220px; aspect-ratio:auto; object-fit:cover; }
  .guide-copy { padding:16px; }.guide-copy h3,.guide-copy h2 { font-size:23px; margin-block:10px; }
  .guide-copy p { font-size:14px; margin-bottom:12px; }.guide-label { font-size:11px; }
  .guide-copy .text-link { font-size:13px; }
  .faq-section,.contact-section { grid-template-columns:minmax(0,1fr); gap:22px; }
  .faq-intro h2 br,.contact-copy h2 br { display:none; }.faq-intro>.icon { display:none; }
  .contact-form { padding:18px; }.contact-form label { font-size:13px; }
  .contact-email { margin-top:18px; }.contact-copy h2 { margin-block:10px 15px; }
  .site-footer p { font-size:12px; }
  .page-hero { padding-block:22px 28px; }.breadcrumbs { margin-bottom:20px; }
  .page-cta { padding-block:28px; }
}
@media(max-width:370px) {
  .shell,.site-header { padding-inline:16px; }
  .contact-form { grid-template-columns:minmax(0,1fr); padding:13px; min-width:0; }
  .contact-form .turnstile-field { margin-inline:-28px; width:300px; }
  .hero h1 { font-size:34px; }
  .guide-card,.space-card { grid-template-columns:94px 1fr; }
}
