.site-header { animation: header-arrive .45s ease-out both; }
.brand img { transition: transform .35s ease; }
.brand:hover img { transform: rotate(-7deg) scale(1.04); }
.brand-copy strong { transition: color .2s ease; }
.brand:hover .brand-copy strong { color: var(--gold); }
.primary-nav a:not(.nav-cta) { position: relative; }
.primary-nav a:not(.nav-cta)::after { position: absolute; right: 0; bottom: -5px; left: 0; height: 1px; background: var(--gold); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
.primary-nav a:not(.nav-cta):hover::after, .primary-nav a:not(.nav-cta)[aria-current="page"]::after { transform: scaleX(1); }
.primary-nav a { transition: color .2s ease, transform .2s ease; }
.primary-nav a:hover { transform: translateY(-1px); }
.primary-nav .nav-cta { transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.primary-nav .nav-cta:hover { transform: translateY(-2px); background: var(--wine); color: white; }
.language-picker { transition: border-color .2s ease, background-color .2s ease; }
.language-picker:hover { border-color: var(--gold); background-color: var(--cream); }
.menu-toggle { transition: border-color .2s ease, background-color .2s ease; }
.menu-toggle:hover { border-color: var(--gold); background: var(--cream); }
.menu-toggle span { transition: transform .2s ease, opacity .2s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-6px) rotate(-45deg); }
.hero-copy .eyebrow { animation: copy-enter .45s .08s ease-out both; }
.hero-copy h1 { animation: copy-enter .55s .14s ease-out both; }
.hero-copy .lead { animation: copy-enter .55s .22s ease-out both; }
.hero-actions { animation: copy-enter .55s .3s ease-out both; }
.hero-art__slide { animation: art-arrive .45s ease-out both; transition: opacity .25s ease; }
.hero-art__slide.is-changing { animation: slide-fade .35s ease-out both; }
.hero-art__frame:hover .hero-art__slide { transform: scale(1.02); }
.hero-art__arrow { transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.hero-art__arrow:hover { transform: translateY(-2px); border-color: var(--gold); background: var(--cream); }
.hero-art__arrow:active { transform: translateY(0) scale(.96); }
.hero-art__toggle { transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
.hero-art__toggle:hover { border-color: var(--gold); background: var(--cream); }
.gallery-heading { margin-bottom: 18px; }
.gallery-heading h2 { margin-bottom: 8px; }
.gallery-heading p { color: var(--muted); }
.home-proposal-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-profile-card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.home-profile-card:hover { border-color: var(--gold); }
.home-profile-card img { transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.home-profile-card:hover img { transform: scale(1.045); }
.home-proposal-gallery__grid[data-gallery-effect="fade"] img.is-changing { animation: gallery-fade-in .65s ease both; }
.home-proposal-gallery__grid[data-gallery-effect="slide"] img.is-changing { animation: gallery-slide-in .65s ease both; }
.home-proposal-gallery__grid[data-gallery-effect="zoom"] img.is-changing { animation: gallery-zoom-in .65s ease both; }
.home-profile-card > span { transition: color .2s ease, transform .2s ease; }
.home-profile-card:hover > span { transform: translateY(-2px); color: var(--wine); }
.home-profile-card:active { transform: translateY(0) scale(.99); }
.btn { transition: background-color .2s ease, color .2s ease, transform .2s ease, border-color .2s ease; }
.btn:active { transform: translateY(1px) scale(.985); }
.btn span[aria-hidden="true"] { display: inline-block; transition: transform .2s ease; }
.btn:hover span[aria-hidden="true"] { transform: translateX(4px); }
.btn--outline:hover { transform: translateY(-2px); }
.profile-dialog[open] { animation: dialog-arrive .25s ease-out both; }
.profile-dialog::backdrop { animation: backdrop-arrive .2s ease-out both; }
.profile-dialog__close { transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.profile-dialog__close:hover { border-color: var(--wine); background: var(--wine); color: white; box-shadow: 0 4px 14px rgba(87,33,44,.16); }
.profile-dialog__details div { animation: detail-arrive .3s ease-out both; }
.profile-dialog__details div:nth-child(2n) { animation-delay: .04s; }
.profile-dialog__details div:nth-child(3n) { animation-delay: .08s; }
.section-heading h2::after, .gallery-heading h2::after { display: block; width: 48px; height: 2px; margin-top: 12px; background: var(--gold); content: ""; transform: scaleX(.6); transform-origin: left; transition: transform .3s ease; }
.section-heading:hover h2::after, .gallery-heading:hover h2::after { transform: scaleX(1); }
.feature-card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.feature-card:hover { transform: translateY(-4px); border-color: var(--gold); }
.step { transition: border-color .25s ease, transform .25s ease; }
.step:hover { transform: translateY(-3px); border-color: var(--wine); }
.step::before { transition: transform .25s ease, color .25s ease; }
.step:hover::before { transform: scale(1.08); color: var(--wine); }
.image-mosaic figure img, .split-art img { transition: transform .55s ease; }
.image-mosaic figure:hover img, .split-art img:hover { transform: scale(1.04); }
.image-mosaic figcaption { transition: padding-bottom .25s ease; }
.image-mosaic figure:hover figcaption { padding-bottom: 16px; }
.page-hero-art { transition: transform .5s ease; }
.page-hero-art:hover { transform: scale(1.025) rotate(.5deg); }
.proposal-filters select, .proposal-submission-form input, .proposal-submission-form select, .proposal-submission-form textarea, .contact-form input, .contact-form textarea { transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.proposal-filters select:hover, .proposal-submission-form input:hover, .proposal-submission-form select:hover, .proposal-submission-form textarea:hover, .contact-form input:hover, .contact-form textarea:hover { border-color: var(--gold); }
.proposal-filters select:focus-visible, .proposal-submission-form input:focus-visible, .proposal-submission-form select:focus-visible, .proposal-submission-form textarea:focus-visible, .contact-form input:focus-visible, .contact-form textarea:focus-visible { transform: translateY(-1px); }
.filter-actions .btn, .proposal-submission-form .btn, .contact-form .btn { transition: transform .2s ease, background-color .2s ease; }
.proposal-card { animation: tile-arrive .35s ease-out both; }
.proposal-card img { transition: transform .45s ease; }
.proposal-card:hover img { transform: scale(1.035); }
.notice { transition: border-color .2s ease, transform .2s ease; }
.notice:hover { transform: translateX(2px); border-left-color: var(--wine); }
.consent-control input[type="checkbox"] { transition: transform .2s ease; }
.consent-control input[type="checkbox"]:hover { transform: scale(1.12); }
.service-item img { transition: transform .3s ease; }
.service-item:hover img { transform: translateX(4px); }
.faq-item summary { transition: color .2s ease, padding-left .2s ease; }
.faq-item summary:hover { padding-left: 4px; color: var(--wine); }
.home-next-step { padding-block: 28px; background: var(--cream); }
.home-next-step .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.home-next-step p { margin: 0; font-family: var(--serif); font-size: 1.25rem; }
.footer-links a { position: relative; width: fit-content; text-decoration: none; }
.footer-links a::after { position: absolute; right: 0; bottom: -2px; left: 0; height: 1px; background: var(--gold); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.footer-links a:hover::after { transform: scaleX(1); }
.footer-social button { transition: color .2s ease, transform .2s ease; }
.footer-social button:hover { transform: translateY(-2px); color: var(--gold); }

@keyframes header-arrive { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes copy-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes art-arrive { from { opacity: 0; transform: translateX(12px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes slide-fade { from { opacity: .35; } to { opacity: 1; } }
@keyframes tile-arrive { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes dialog-arrive { from { opacity: 0; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes backdrop-arrive { from { opacity: 0; } to { opacity: 1; } }
@keyframes detail-arrive { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes gallery-fade-in { from { opacity: .25; } to { opacity: 1; } }
@keyframes gallery-slide-in { from { opacity: .25; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
@keyframes gallery-zoom-in { from { opacity: .3; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }

@media (max-width: 900px) {
  .home-proposal-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .home-proposal-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .home-profile-card > span { padding: 9px; }
  .home-profile-card small { font-size: .66rem; }
  .home-next-step .container { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .hero-copy .eyebrow, .hero-copy h1, .hero-copy .lead, .hero-actions, .hero-art__slide, .proposal-card, .profile-dialog[open], .profile-dialog::backdrop, .profile-dialog__details div { animation: none; }
  .hero-art__slide, .hero-art__arrow, .hero-art__toggle, .home-profile-card img { transition: none; }
  .home-proposal-gallery__grid img.is-changing { animation: none !important; }
}

@media (prefers-reduced-motion: reduce) { .profile-dialog__close { transition: none; } }
