/* Shared controls: restrained corners, consistent targets and clear states. */
:root{--control-radius:10px;--control-shadow:0 2px 3px #1721160a,0 8px 20px #1721160c;--control-ease:cubic-bezier(.2,.7,.2,1)}
.button,.nav-contact,.intro-start,body.admin-view button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:52px;padding:15px 23px;border-radius:var(--control-radius);font-size:13px;font-weight:600;line-height:1.3;letter-spacing:-.1px;border:1px solid #20231e;background:#252c25;color:#f7f8f2;box-shadow:var(--control-shadow);transition:background .2s var(--control-ease),border-color .2s var(--control-ease),box-shadow .2s var(--control-ease),transform .2s var(--control-ease);text-decoration:none}
.button:hover,.nav-contact:hover,.intro-start:hover,body.admin-view button:hover{background:#374232;border-color:#374232;box-shadow:0 3px 5px #1721160c,0 10px 24px #17211616;transform:translateY(-1px)}
.button:active,.nav-contact:active,.intro-start:active,body.admin-view button:active{transform:translateY(0);box-shadow:0 1px 3px #17211612}
.button>span,.nav-contact>span,.intro-start>span{display:inline-grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;border:1px solid currentColor;margin:0;opacity:.78;font-size:16px;line-height:1;transition:transform .2s var(--control-ease)}
.button:hover>span,.nav-contact:hover>span,.intro-start:hover>span{transform:translate(1px,-1px)}
.hero .button,.intro-start{background:#f1f0e8;color:#202b23;border-color:#f1f0e8;box-shadow:0 5px 18px #00000016}
.hero .button:hover,.intro-start:hover{background:#fffef6;border-color:#fffef6;color:#202b23;box-shadow:0 8px 25px #00000024}
.contact-actions{gap:14px;align-items:center}.contact-actions .button{min-height:56px}.contact-actions .secondary-contact{background:#ffffff28;color:#283321;border-color:#71855b80;box-shadow:none}.contact-actions .secondary-contact:hover{background:#ffffff60;border-color:#667b50;box-shadow:0 3px 10px #3851230a}
.button[href^="tel:"]:before,.mobile-contact a:first-child:before{content:'';width:18px;height:18px;flex:0 0 18px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3H4a1 1 0 0 0-1 1c0 9.4 7.6 17 17 17a1 1 0 0 0 1-1v-3l-5-2-2 2a15 15 0 0 1-7-7l2-2-2-5Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.button[href*="wa.me"]:before,.mobile-contact a:last-child:before{content:'';width:19px;height:19px;flex:0 0 19px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 11.5a9 9 0 0 1-9 9c-1.6 0-3-.4-4.4-1.1L3 21l1.5-4.5A9 9 0 1 1 21 11.5Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M8 8h8M8 12h6' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
.nav-contact{min-height:44px;padding:9px 15px;font-size:12px;gap:18px;box-shadow:none}.nav-contact>span{width:23px;height:23px;flex-basis:23px;font-size:14px;border-color:#ffffff45}
.replay-intro{display:inline-flex;align-items:center;min-height:44px;padding:12px 17px;border-radius:999px;background:#1b261dc4;color:#f1f0e8;border:1px solid #ffffff40;backdrop-filter:blur(12px);font-size:11px;letter-spacing:0;box-shadow:0 2px 10px #0000000d;transition:background .2s,border-color .2s}.replay-intro:hover{background:#283829e6;border-color:#ffffff70}
.intro-start{margin-top:35px;padding:15px 25px;min-width:180px}.intro-skip{border:1px solid #eeede740;border-radius:999px;padding:11px 17px;min-height:44px;background:#202b2333;transition:background .2s,border-color .2s}.intro-skip:hover{background:#eeede712;border-color:#eeede780}.intro-skip span{margin-left:12px}
.menu{border:1px solid #b8c0b0;border-radius:8px;padding:11px 13px;min-height:44px}.menu:hover{background:#dfe4d7}.menu[aria-expanded="true"]{background:#dfe4d7;border-color:#7c8b6d}
.scroll,.close-dialog,.viewer-controls button{width:44px;height:44px;min-height:44px;border-radius:50%;display:grid;place-items:center}.scroll{background:#17211640;backdrop-filter:blur(8px);border-color:#ffffff66;transition:background .2s}.scroll:hover{background:#17211685}.close-dialog{border:1px solid #ced4c5;background:#f6f6f0;color:#2b3527;box-shadow:0 3px 10px #00000016;font-size:25px;transition:background .2s}.close-dialog:hover{background:#e3e9dc}.viewer-controls button{border-color:#e2ead24d;background:#ffffff08;transition:background .2s}.viewer-controls button:hover{background:#ffffff16}
.card-caption>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid #b9c4ad;font-size:21px;transition:background .2s,transform .2s}.collection:hover .card-caption>span{background:#dce6cf;transform:translate(1px,-1px)}.color{width:44px;height:44px;border-width:4px;outline-color:#a0aa95;box-shadow:inset 0 0 0 1px #00000008}.color.active{outline-color:#3e5233}
body.admin-view button{min-height:48px;padding:14px 21px}body.admin-view button:disabled{transform:none;box-shadow:none;opacity:.55;cursor:wait}body.admin-view .admin-gallery button{background:#fff;color:#96392b;border-color:#d8bbb5;box-shadow:none}body.admin-view .admin-gallery button:hover{background:#fff1ed;border-color:#bd8b81}body.admin-view header>div>a{padding:12px 16px;border:1px solid #bcc6b2;border-radius:8px;font-weight:500}
@media(max-width:700px){.hero .button{min-height:56px;padding:16px 21px}.contact-actions .button{width:100%;justify-content:center;min-height:56px}.mobile-contact{left:5%;right:5%;padding:6px;gap:6px;background:#f3f4ecf2;color:#293522;border:1px solid #c8d1bc;box-shadow:0 3px 6px #2030200a,0 12px 35px #142b2424;border-radius:17px;backdrop-filter:blur(16px);grid-template-columns:1fr 1.55fr}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:11px;font-size:13px;font-weight:600;min-height:52px;padding:15px 12px}.mobile-contact a:first-child{background:#e6ebdf;border:1px solid #d1d9c7;color:#33412c}.mobile-contact a:last-child{background:#293e2e;color:#fff;border:1px solid #293e2e}.mobile-contact a:first-child:active{background:#d6dfcc}.mobile-contact a:last-child:active{background:#3a5140}.replay-intro{font-size:10px;padding:11px 15px}.photo-label{bottom:41px}.intro-start{min-height:56px}}
@media(prefers-reduced-motion:reduce){.button,.nav-contact,.intro-start,.replay-intro,.intro-skip,.scroll,.close-dialog,.viewer-controls button,.card-caption>span,body.admin-view button{transition:none!important;transform:none!important}}
