/* Pessoa recortada: espaço para o movimento, luz difusa e sombra no chão. */
.about-photo.about-person {
    position:relative; isolation:isolate; height:clamp(570px,49vw,710px); min-height:0;
    aspect-ratio:auto; border-radius:0; background:none; overflow:visible;
}
.about-person::before {
    content:''; position:absolute; z-index:-1; inset:18% 7% 9%;
    background:radial-gradient(ellipse at 50% 60%,#dfd4c57a,transparent 68%);
}
.about-person-layer::after {
    content:''; position:absolute; z-index:-1; width:57%; height:26px; left:23%; bottom:-10px;
    border-radius:50%; background:#5b4b3730; filter:blur(16px); transform:scaleY(.6);
}
.about-person .about-person-layer {
    position:absolute; inset:38px 0; scale:1; width:100%; height:calc(100% - 76px);
    will-change:transform; isolation:isolate;
}
.about-person .about-person-layer img {
    width:100%; height:100%; object-fit:contain;
    filter:drop-shadow(18px 15px 20px #47392529);
}
@media (max-width:899px) {
    .about-photo.about-person { height:clamp(400px,105vw,580px); max-width:540px; margin-inline:auto; }
    .about-person .about-person-layer { inset:22px 0; height:calc(100% - 44px); }
    .about-person-layer::after { bottom:-8px; height:18px; filter:blur(12px); }
    .about-person .about-person-layer img { filter:drop-shadow(10px 10px 13px #47392525); }
    .about-section .about-grid { gap:24px; }
}
/* Ícone desenhado em CSS: três linhas viram um X. */
.hamburger { display:block; width:20px; height:16px; position:relative; }
.hamburger span { position:absolute; height:1.5px; border-radius:2px; background:currentColor; left:0; width:20px; transition:transform .55s var(--ease-reveal),opacity .3s,width .4s; }
.hamburger span:nth-child(1){top:0;}.hamburger span:nth-child(2){top:7px;width:14px;}.hamburger span:nth-child(3){top:14px;}
#menuToggle[aria-expanded=true] .hamburger span:nth-child(1),.mobile-menu.is-open .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
#menuToggle[aria-expanded=true] .hamburger span:nth-child(2),.mobile-menu.is-open .hamburger span:nth-child(2){opacity:0;transform:translateX(6px);}
#menuToggle[aria-expanded=true] .hamburger span:nth-child(3),.mobile-menu.is-open .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
html.mobile-menu-open { overflow:hidden; scroll-behavior:auto; }
.mobile-menu-open body { position:fixed; top:var(--menu-scroll-top); left:0; right:0; width:100%; overflow:hidden; }
.mobile-menu-open .whatsapp-float { visibility:hidden; }
.mobile-menu {
    position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none;
    margin:0; padding:0; border:0; color:#f6f5f3; background:transparent;
    overflow-y:auto; overscroll-behavior:contain; isolation:isolate;
}
.mobile-menu:not([open]) { display:none; }
.mobile-menu::backdrop { background:#211e1b30; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); opacity:0; transition:opacity .55s; }
.mobile-menu.is-open::backdrop { opacity:1; }
.mobile-menu::before {
    content:''; position:fixed; inset:0; z-index:-1;
    background:#24211ef5; -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
    clip-path:inset(0 0 100% 0); opacity:.4;
    transition:clip-path .72s var(--ease-reveal),opacity .55s;
}
.mobile-menu.is-open::before { clip-path:inset(0); opacity:1; }
.mobile-menu-inner { width:100%; min-height:100%; padding:max(24px,env(safe-area-inset-top)) 26px max(26px,env(safe-area-inset-bottom)); display:flex; flex-direction:column; }
.mobile-menu-top { display:flex; justify-content:space-between; align-items:center; opacity:0; transform:translateY(-12px); transition:opacity .35s,transform .65s var(--ease-reveal); }
.mobile-menu-logo { width:108px; height:auto; filter:invert(1) contrast(1.8); mix-blend-mode:screen; }
.mobile-menu-close { width:46px; height:46px; display:grid; place-items:center; border:1px solid #ffffff30; border-radius:50%; background:transparent; color:inherit; }
.mobile-menu-caption { margin:38px 0 16px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:#c7b8a1; opacity:0; transform:translateY(16px); transition:opacity .4s,transform .6s var(--ease-reveal); }
.mobile-menu-nav { display:flex; flex-direction:column; }
.mobile-menu-nav a { display:flex; align-items:center; gap:15px; padding:17px 0; border-bottom:1px solid #ffffff16; font-family:var(--font-heading); font-size:clamp(27px,8.7vw,42px); line-height:1.12; letter-spacing:-.035em; opacity:0; transform:translateY(28px); transition:opacity .35s,transform .65s var(--ease-reveal),color .3s; }
.mobile-menu-number { font-family:var(--font-body); font-size:10px; letter-spacing:.05em; color:#ab9880; align-self:center; }
.mobile-menu-nav a>i { margin-left:auto; font-size:21px; color:#c7b8a1; opacity:.45; }
.mobile-menu-nav a[aria-current=page] { color:#ddc7a5; }
.mobile-menu-nav a[aria-current=page]>i { opacity:1; }
.mobile-menu-bottom { margin-top:auto; padding-top:32px; opacity:0; transform:translateY(20px); transition:opacity .4s,transform .65s var(--ease-reveal); }
.mobile-menu-bottom>.btn { width:100%; }
.mobile-menu-contact { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:22px; }
.mobile-menu-contact>a { font-size:12px; color:#c7b8a1; }
.mobile-menu .social a { background:transparent; color:#f6f5f3; width:28px; height:28px; }
.mobile-menu.is-open .mobile-menu-top { opacity:1; transform:none; transition-delay:.14s; }
.mobile-menu.is-open .mobile-menu-caption { opacity:1; transform:none; transition-delay:.2s; }
.mobile-menu.is-open .mobile-menu-nav a { opacity:1; transform:none; transition-delay:calc(.22s + var(--menu-index) * .065s); }
.mobile-menu.is-open .mobile-menu-bottom { opacity:1; transform:none; transition-delay:.5s; }
.mobile-menu a:focus-visible,.mobile-menu button:focus-visible { outline:2px solid #ddc7a5; outline-offset:4px; }
@media (max-height:700px) {
    .mobile-menu-inner { padding-top:16px; padding-bottom:16px; }
    .mobile-menu-caption { margin-top:22px; margin-bottom:8px; }
    .mobile-menu-nav a { padding-block:12px; font-size:30px; }
    .mobile-menu-bottom { padding-top:22px; }
    .mobile-menu-contact { margin-top:14px; }
}
@media (prefers-reduced-motion:reduce) {
    .about-person .about-person-layer { transform:none !important; }
    .mobile-menu::before { transition:none; }
}
