.site-title { display: inline-flex; flex-direction: column; color: var(--color-ink); font-family: var(--font-serif); font-size: 1.45rem; line-height: .75; letter-spacing: .04em; }
.site-title--logo { display: flex; width: min(180px, 24vw); height: 72px; align-items: center; overflow: hidden; line-height: 0; }
.site-title__image-wrap { display: flex; width: 100%; height: 100%; flex: 0 0 100%; align-items: center; }
.site-title__image { display: block; width: 100%; height: auto; max-width: none; }
.site-title small { align-self: end; margin-top: .45rem; font-family: var(--font-body); font-size: .42rem; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; }
.site-navigation { display: flex; gap: 2.2rem; margin-left: auto; margin-right: 2.2rem; font-family: var(--font-serif); font-size: .74rem; letter-spacing: .12em; }
.site-navigation a:hover { color: var(--color-brown); }
.header-contact { padding: .75rem 1.25rem; border: 1px solid var(--color-peach); border-radius: 50px; background: var(--color-peach); color: var(--color-white); font-family: var(--font-serif); font-size: .72rem; letter-spacing: .1em; }
.header-contact:hover { border-color: var(--color-brown); background: var(--color-brown); color: var(--color-white); }
.header-contact:focus-visible { outline: 2px solid var(--color-brown); outline-offset: 3px; }
.menu-toggle { display: none; align-items: center; gap: .55rem; padding: .4rem 0; border: 0; background: transparent; color: var(--color-brown); font-family: var(--font-serif); font-size: .72rem; letter-spacing: .08em; cursor: pointer; }
.menu-toggle__lines { display: flex; flex-direction: column; gap: 5px; width: 21px; }
.menu-toggle__lines i { display: block; width: 21px; height: 1px; background: var(--color-brown); transition: transform .2s ease; }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:first-child { transform: translateY(3px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:last-child { transform: translateY(-3px) rotate(-45deg); }
.mobile-menu { display: none; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 3rem; padding: .7rem 1.5rem; border: 1px solid var(--color-ink); border-radius: 50px; font-family: var(--font-serif); font-size: .78rem; letter-spacing: .06em; }
.not-found { padding-bottom: clamp(4rem, 8vw, 6rem); }
.not-found h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.button span, .arrow-link span, .text-link span { font-size: 1.1em; }
.button--dark { border-color: var(--color-brown); background: var(--color-brown); color: var(--color-white); }
.button--dark:hover { background: var(--color-brown); color: var(--color-white); }
.hero .button--dark, .cta .button--dark { border-color: var(--color-peach); background: var(--color-peach); }
.hero .button--dark:hover, .cta .button--dark:hover { background: var(--color-brown); }
.button--light { border-color: rgba(73,56,43,.35); background: rgba(255,253,251,.72); color: var(--color-brown); }
.button--light:hover { border-color: var(--color-brown); background: var(--color-white); color: var(--color-brown); }
.button--outline { background: transparent; }
.button--outline:hover { background: var(--color-brown); color: var(--color-white); }
.text-link, .arrow-link { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-serif); font-size: .8rem; letter-spacing: .04em; }
.text-link { color: var(--color-brown); }
.hero__actions .text-link { min-height: 3rem; padding: .7rem 1.35rem; border: 1px solid var(--color-peach); border-radius: 50px; background: var(--color-white); color: var(--color-brown); }
.hero__actions .text-link:hover { border-color: var(--color-peach); background: var(--color-peach-soft); color: var(--color-brown); }
.arrow-link { border-bottom: 1px solid var(--color-brown); padding-bottom: .25rem; color: var(--color-brown); }
.arrow-link:hover { gap: .85rem; }
.plant { position: absolute; width: 150px; height: 170px; }
.plant i { position: absolute; bottom: 0; left: 50%; width: 1px; height: 125px; background: var(--color-brown); transform: rotate(-14deg); transform-origin: bottom; }
.plant b { position: absolute; display: block; width: 45px; height: 95px; border-radius: 100% 0 100% 0; background: #c3cdb9; transform-origin: bottom; }
.plant b:nth-of-type(1) { bottom: 74px; left: 21px; transform: rotate(-43deg); }
.plant b:nth-of-type(2) { bottom: 98px; left: 71px; transform: rotate(27deg); }
.plant b:nth-of-type(3) { bottom: 33px; left: 80px; transform: rotate(50deg) scale(.8); }
.plant--hero { right: 3%; bottom: 1%; transform: rotate(7deg); opacity: .7; }
.device { position: absolute; z-index: 1; padding: 11px; border: 1px solid #b8a79b; border-radius: 8px; background: #e8e0d9; box-shadow: var(--shadow-soft); }
.device__screen { position: relative; overflow: hidden; height: 100%; border-radius: 2px; background: #faf8f3; }
.device--pc { top: 19%; right: 5%; width: 450px; height: 300px; }
.device--tablet { right: 0; bottom: 8%; width: 190px; height: 265px; transform: rotate(7deg); }
.device--phone { right: 24%; bottom: 2%; width: 125px; height: 230px; padding: 8px; transform: rotate(-6deg); }
.mock-header { display: flex; justify-content: space-between; padding: 10px 13px; color: var(--color-brown); font-family: var(--font-serif); font-size: 7px; letter-spacing: .12em; }
.mock-header span { color: var(--color-muted); }
.mock-copy { margin: 26px 0 0 28px; color: #8c7666; font-family: var(--font-serif); font-size: 24px; line-height: 1.1; }
.mock-copy strong { font-size: 1.3em; font-weight: 400; }
.mock-block { position: absolute; right: 22px; bottom: 20px; width: 125px; height: 78px; background: linear-gradient(135deg,#d8b4a1,#efdfd5); }
.mock-image { width: 76%; height: 42%; margin: 20px auto 12px; background: linear-gradient(135deg,#d7b19d,#eee0d4); }
.mock-image--small { width: 82%; height: 38%; margin-top: 15px; }
.mock-lines { width: 65%; height: 24%; margin-left: auto; margin-right: auto; border-top: 2px solid #d4c4b8; border-bottom: 2px solid #d4c4b8; }
.person { position: relative; width: 265px; height: 390px; }
.person__hair { position: absolute; z-index: 2; top: 20px; left: 51px; width: 158px; height: 210px; border-radius: 54% 47% 43% 48%; background: #756257; transform: rotate(-7deg); }
.person__face { position: absolute; z-index: 3; top: 67px; left: 83px; width: 105px; height: 135px; border-radius: 48% 48% 45% 45%; background: #e5bda4; transform: rotate(3deg); }
.person__body { position: absolute; bottom: 0; left: 17px; width: 230px; height: 215px; border-radius: 48% 48% 0 0; background: #cfa993; transform: rotate(-3deg); }
.person__plant { position: absolute; z-index: 4; right: -10px; bottom: 7px; width: 100px; height: 180px; border-left: 1px solid #8a9a7f; transform: rotate(12deg); }
.person__plant:before, .person__plant:after { position: absolute; width: 42px; height: 75px; border-radius: 100% 0 100% 0; background: #aabca0; content: ""; }
.person__plant:before { top: 0; left: 6px; transform: rotate(-34deg); }
.person__plant:after { top: 42px; left: 29px; transform: rotate(48deg); }
.person--message { transform: translateY(16px) scale(1.4); }
.person--about { transform: scale(1.08); }
.person__acf-image { position: absolute; z-index: 5; inset: 0; display: grid; place-items: center; }
.person__acf-image img { object-fit: contain; }
.site-footer { padding-top: 75px; background: var(--color-footer-bg); color: var(--color-brown); }
.site-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 5rem; }
.site-footer .site-title { color: var(--color-brown); }
.site-footer .site-title--logo { border-radius: 4px; background: transparent; }
.site-footer__brand p { margin-top: 1.5rem; color: var(--color-muted); font-size: .84rem; }
.site-footer__grid > div:not(:first-child) { display: flex; flex-direction: column; gap: .55rem; font-size: .8rem; }
.site-footer .footer-social__links { display: flex; align-items: center; gap: .4rem; }
.site-footer .footer-social__link { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--color-beige); border-radius: 50%; color: var(--color-brown); }
.site-footer .footer-social__icon { width: 22px; height: 22px; }
.site-footer .footer-social__link:hover { border-color: var(--color-peach); color: var(--color-peach); }
.footer-heading { margin-bottom: .75rem; color: var(--color-brown); font-family: var(--font-serif); font-size: .7rem; letter-spacing: .13em; }
.site-footer a:hover { color: var(--color-peach); }
.site-footer__bottom { display: flex; justify-content: space-between; padding-block: 1.2rem; border-top: 1px solid var(--color-beige); color: var(--color-muted); font-size: .68rem; }
