/* Mobile and desktop site header */

@media (max-width: 768px) {
    html {
        scroll-padding-top: 50px;
    }

    :where(main) h1 {
        font-size: 1rem;
    }

    .right-main h1 {
        font-size: 0.85rem;
    }

    .news-single h1 {
        font-size: 0.7rem;
    }

    body.mobile-menu-open {
        overflow: hidden;
        touch-action: none;
    }

    header.pc-menu {
        position: relative;
        z-index: 1000;
    }

    .sp-menu {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 1000;
        display: block;
        width: 100%;
    }

    .sp-menu__bar {
        position: relative;
        z-index: 1002;
        display: flex;
        width: 100%;
        height: 50px;
        align-items: center;
        justify-content: space-between;
        box-sizing: border-box;
        padding: 0 10px 0 16px;
        border-bottom: 1px solid rgba(222, 219, 214, 0.88);
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 6px 22px rgba(35, 31, 28, 0.055);
        -webkit-backdrop-filter: blur(14px);
        backdrop-filter: blur(14px);
    }

    .sp-logo {
        position: static;
        display: block;
        color: var(--artist-accent, #ef624f);
        font-family: "Jost", "Helvetica Neue", Arial, sans-serif;
        font-size: 17px;
        font-weight: 500;
        letter-spacing: 0.2em;
        line-height: 1;
        text-shadow: none;
    }

    .sp-logo a,
    .sp-logo a:hover {
        color: var(--artist-accent, #ef624f);
        text-decoration: none;
        opacity: 1;
    }

    .sp-menu__actions {
        display: flex;
        align-items: center;
        gap: 5px;
    }

    .sp-sns {
        position: static;
        display: flex;
        align-items: center;
        gap: 1px;
        float: none;
    }

    .sp-sns a {
        display: grid;
        width: 34px;
        height: 34px;
        margin: 0;
        padding: 0;
        place-items: center;
        border: 0;
        border-radius: 50%;
        color: #302d2a;
        font-size: 15px;
        line-height: 1;
        transition: background-color 180ms ease, color 180ms ease;
    }

    .sp-sns a:hover {
        background: #faf3ee;
        color: var(--artist-accent, #ef624f);
        opacity: 1;
    }

    .menu-icon {
        position: relative;
        top: auto;
        right: auto;
        z-index: 1003;
        display: block;
        width: 38px;
        height: 38px;
        padding: 0;
        border: 1px solid #e6dfd8;
        border-radius: 50%;
        outline: 0;
        background: #fff;
        cursor: pointer;
        box-shadow: none;
        transition: border-color 180ms ease, background-color 180ms ease;
    }

    .menu-icon:hover,
    .menu-icon:focus-visible,
    .menu-icon[aria-expanded="true"] {
        border-color: var(--artist-accent, #ef624f);
        background: #fff8f5;
    }

    .bar,
    .bar::before,
    .bar::after {
        position: absolute;
        left: 50%;
        width: 17px;
        height: 1.5px;
        border-radius: 2px;
        background: var(--artist-accent, #ef624f);
        content: "";
        transition: top 220ms ease, transform 220ms ease, opacity 160ms ease;
    }

    .bar {
        top: 50%;
        transform: translate(-50%, -50%);
    }

    .bar::before {
        top: -5px;
        transform: translateX(-50%);
    }

    .bar::after {
        top: 5px;
        transform: translateX(-50%);
    }

    .menu-icon:hover .bar,
    .menu-icon:hover .bar::before,
    .menu-icon:hover .bar::after,
    .bar--active,
    .bar--active::before,
    .bar--active::after {
        width: 17px;
        background: var(--artist-accent, #ef624f);
    }

    .bar--active {
        background: transparent;
    }

    .bar--active::before {
        top: 0;
        transform: translateX(-50%) rotate(45deg);
    }

    .bar--active::after {
        top: 0;
        width: 17px !important;
        transform: translateX(-50%) rotate(-45deg);
    }

    .overlay {
        position: fixed;
        top: 50px;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1001;
        display: block;
        width: 100%;
        height: calc(100vh - 50px);
        height: calc(100dvh - 50px);
        overflow: hidden;
        background:
            radial-gradient(circle at 100% 0%, rgba(239, 98, 79, 0.1), transparent 38%),
            radial-gradient(circle at 0% 100%, rgba(250, 237, 226, 0.7), transparent 40%),
            rgba(255, 255, 255, 0.94);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate3d(100%, 0, 0);
        transition: transform 440ms cubic-bezier(0.16, 1, 0.3, 1), opacity 280ms ease, visibility 0s linear 440ms;
    }

    .overlay--active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate3d(0, 0, 0);
        transition-delay: 0s;
    }

    .sp-menu__panel {
        width: min(620px, 100%);
        height: 100%;
        margin: 0 auto;
        padding: 26px 22px 24px;
        overflow-y: auto;
        box-sizing: border-box;
        overscroll-behavior: contain;
    }

    .sp-menu__heading {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        margin-bottom: 14px;
        padding-bottom: 16px;
        border-bottom: 1px solid #e9e3dd;
    }

    .sp-menu__heading p {
        margin: 0;
        color: var(--artist-accent, #ef624f);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 12px;
        letter-spacing: 0.26em;
    }

    .sp-menu__heading > span {
        color: #928b85;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 8px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
    }

    .overlay nav {
        display: block;
        width: 100%;
        margin: 0;
    }

    .overlay .list {
        display: grid;
        width: 100%;
        margin: 0;
        padding: 0;
        text-align: left;
    }

    .overlay .links {
        position: relative;
        display: block;
        float: none;
        margin: 0;
        color: #272421;
        font-size: inherit;
        opacity: 0;
        text-align: left;
        transform: translateX(18px);
        transition: opacity 260ms ease, transform 380ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    .overlay--active .links {
        opacity: 1;
        transform: translateX(0);
    }

    .overlay--active .links:nth-child(1) { transition-delay: 80ms; }
    .overlay--active .links:nth-child(2) { transition-delay: 110ms; }
    .overlay--active .links:nth-child(3) { transition-delay: 140ms; }
    .overlay--active .links:nth-child(4) { transition-delay: 170ms; }
    .overlay--active .links:nth-child(5) { transition-delay: 200ms; }
    .overlay--active .links:nth-child(6) { transition-delay: 230ms; }
    .overlay--active .links:nth-child(7) { transition-delay: 260ms; }

    .overlay .links::after,
    .overlay nav li::after {
        display: none;
    }

    .overlay .links a {
        display: grid;
        min-height: 58px;
        grid-template-columns: minmax(0, 1fr) auto 18px;
        gap: 10px;
        align-items: center;
        box-sizing: border-box;
        padding: 0 4px;
        border-bottom: 1px solid #e7e1db;
        color: #292623;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 15px;
        line-height: 1;
        text-decoration: none;
        transition: color 180ms ease, padding 220ms ease, background-color 180ms ease;
    }

    .overlay .links a:hover,
    .overlay .links a:focus-visible {
        padding-left: 10px;
        background: rgba(239, 98, 79, 0.045);
        color: var(--artist-accent, #ef624f);
        opacity: 1;
    }

    .overlay .links strong {
        font-size: 15px;
        font-weight: 400;
        letter-spacing: 0.12em;
    }

    .overlay .links small {
        color: #97908a;
        font-family: "Noto Sans JP", sans-serif;
        font-size: 9px;
        letter-spacing: 0.08em;
    }

    .overlay .links i {
        color: #aaa39d;
        font-size: 11px;
        transition: color 180ms ease, transform 220ms ease;
    }

    .overlay .links a:hover i,
    .overlay .links a:focus-visible i {
        color: var(--artist-accent, #ef624f);
        transform: translateX(3px);
    }

    .overlay .links.is-current a {
        color: var(--artist-accent, #ef624f);
    }

    .overlay .links.is-current a::before {
        position: absolute;
        top: 50%;
        left: -22px;
        width: 2px;
        height: 28px;
        border-radius: 2px;
        background: var(--artist-accent, #ef624f);
        content: "";
        transform: translateY(-50%);
    }

    .sp-menu__footer {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        margin-top: 24px;
    }

    .sp-menu__footer p {
        margin: 0;
        color: var(--artist-accent, #ef624f);
        font-family: "Jost", "Helvetica Neue", Arial, sans-serif;
        font-size: 12px;
        letter-spacing: 0.2em;
    }

    .sp-menu__footer span {
        color: #a19a94;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 7px;
        letter-spacing: 0.12em;
    }
}

@media (max-width: 360px) {
    .sp-sns {
        display: none;
    }

    .overlay .links a {
        grid-template-columns: minmax(0, 1fr) auto 16px;
    }
}

@media (prefers-reduced-motion: reduce) and (max-width: 768px) {
    .overlay,
    .overlay .links,
    .menu-icon,
    .bar,
    .bar::before,
    .bar::after {
        transition: none !important;
    }
}

/* Desktop sticky header */

@media (min-width: 769px) {
    header.pc-menu {
        position: sticky;
        top: 0;
        z-index: 1000;
        display: grid;
        width: 100%;
        height: 76px;
        grid-template-columns: minmax(220px, 1fr) auto;
        align-items: center;
        box-sizing: border-box;
        padding: 0 clamp(28px, 5vw, 82px);
        border-bottom: 1px solid #e7e2dd;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 0 0 rgba(35, 31, 28, 0);
        transition:
            height 300ms cubic-bezier(0.16, 1, 0.3, 1),
            padding 300ms cubic-bezier(0.16, 1, 0.3, 1),
            background-color 240ms ease,
            border-color 240ms ease,
            box-shadow 240ms ease;
    }

    header.pc-menu.fixed {
        height: 60px;
        padding-right: clamp(24px, 4vw, 66px);
        padding-left: clamp(24px, 4vw, 66px);
        border-bottom-color: rgba(218, 212, 206, 0.9);
        background: rgba(255, 255, 255, 0.91);
        box-shadow: 0 8px 30px rgba(38, 32, 28, 0.08);
        -webkit-backdrop-filter: blur(16px);
        backdrop-filter: blur(16px);
    }

    body.admin-bar header.pc-menu {
        top: 32px;
    }

    header.pc-menu .logo {
        justify-self: start;
        margin: 0;
        padding: 0;
        background: transparent;
        color: var(--artist-accent, #ef624f);
        font-family: "Jost", "Helvetica Neue", Arial, sans-serif;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 0.21em;
        line-height: 1;
        text-align: left;
        text-shadow: none;
        transition: font-size 300ms cubic-bezier(0.16, 1, 0.3, 1), letter-spacing 300ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    header.pc-menu.fixed .logo {
        font-size: 20px;
        letter-spacing: 0.18em;
    }

    header.pc-menu .logo a,
    header.pc-menu .logo a:hover {
        color: var(--artist-accent, #ef624f);
        text-decoration: none;
        opacity: 1;
    }

    header.pc-menu .fixbar,
    header.pc-menu.fixed .fixbar {
        position: static !important;
        align-self: stretch;
        width: auto;
        margin: 0;
        border: 0;
        background: transparent;
    }

    header.pc-menu nav,
    header.pc-menu nav > ul,
    header.pc-menu nav li {
        height: 100%;
    }

    header.pc-menu nav,
    header.pc-menu nav > ul {
        margin: 0;
    }

    header.pc-menu nav > ul,
    header.pc-menu nav li {
        display: flex;
        align-items: stretch;
    }

    header.pc-menu nav li {
        float: none;
    }

    header.pc-menu nav li a,
    header.pc-menu.fixed .fixbar nav li a {
        display: flex;
        height: 100%;
        align-items: center;
        box-sizing: border-box;
        padding: 0 clamp(10px, 1.25vw, 21px);
        color: #292623;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 13px;
        letter-spacing: 0.09em;
        transition: color 200ms ease, padding 300ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    header.pc-menu.fixed nav li a,
    header.pc-menu.fixed .fixbar nav li a {
        padding-right: clamp(9px, 1.1vw, 18px);
        padding-left: clamp(9px, 1.1vw, 18px);
        font-size: 12px;
    }

    header.pc-menu nav li::after {
        position: absolute;
        right: auto;
        bottom: -1px;
        left: 50%;
        width: 0;
        height: 2px;
        border: 0;
        background: var(--artist-accent, #ef624f);
        content: "";
        transition: left 240ms ease, width 240ms ease;
    }

    header.pc-menu nav li:hover::after,
    header.pc-menu nav li.is-current::after {
        left: 12%;
        width: 76%;
    }

    header.pc-menu nav li a:hover,
    header.pc-menu nav li.is-current a {
        color: var(--artist-accent, #ef624f);
        opacity: 1;
    }

    header.pc-menu nav li.sns a,
    header.pc-menu.fixed nav li.sns a {
        padding-right: 11px;
        padding-left: 11px;
        font-size: 17px;
    }

    header.pc-menu nav li.sns::after {
        display: none;
    }

    header.pc-menu nav li.sns i {
        color: #292623;
        transition: color 180ms ease, transform 180ms ease;
    }

    header.pc-menu nav li.sns a:hover i {
        color: var(--artist-accent, #ef624f);
        transform: translateY(-1px);
    }
}

@media (min-width: 769px) and (max-width: 1120px) {
    header.pc-menu {
        grid-template-columns: minmax(175px, 1fr) auto;
        padding-right: 20px;
        padding-left: 24px;
    }

    header.pc-menu .logo {
        font-size: 20px;
        letter-spacing: 0.16em;
    }

    header.pc-menu nav li a,
    header.pc-menu.fixed .fixbar nav li a {
        padding-right: 9px;
        padding-left: 9px;
        font-size: 11px;
    }

    header.pc-menu nav li.sns a,
    header.pc-menu.fixed nav li.sns a {
        padding-right: 7px;
        padding-left: 7px;
        font-size: 15px;
    }
}

@media (min-width: 769px) and (max-width: 782px) {
    body.admin-bar header.pc-menu {
        top: 46px;
    }
}

@media (prefers-reduced-motion: reduce) and (min-width: 769px) {
    header.pc-menu,
    header.pc-menu .logo,
    header.pc-menu nav li a,
    header.pc-menu nav li::after,
    header.pc-menu nav li.sns i {
        transition: none !important;
    }
}

/* Shared directional and interactive UI */

/*
 * Directional UI language
 * Each icon communicates one action: drill-in, list navigation, CTA,
 * carousel movement, article movement, or return to top.
 */

:root {
    --suncolorz-ui-accent: var(--artist-accent, #ef624f);
    --suncolorz-ui-ink: var(--artist-ink, #272421);
}

/* Mobile navigation: a quiet chevron reads as hierarchy, not a CTA. */
.overlay .links .ui-menu-chevron {
    font-size: 9px;
    opacity: 0.72;
}

.overlay .links a:hover .ui-menu-chevron,
.overlay .links a:focus-visible .ui-menu-chevron {
    opacity: 1;
    transform: translateX(3px);
}

/* Talent cards: a compact long-arrow mark, separated from list-row chevrons. */
.top-talent-card__caption .top-talent-card__mark {
    position: relative;
    display: grid;
    width: 36px;
    height: 36px;
    box-sizing: border-box;
    place-items: center;
    align-self: end;
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 50%;
    background: rgba(22, 20, 18, 0.28);
    color: #fff;
    font-size: 13px;
    line-height: 1;
    text-align: center;
    text-shadow: none;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition: border-color 240ms ease, background-color 240ms ease, transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
}

.top-talent-card:hover .top-talent-card__caption .top-talent-card__mark,
.top-talent-card:focus-visible .top-talent-card__caption .top-talent-card__mark {
    border-color: var(--suncolorz-ui-accent);
    background: var(--suncolorz-ui-accent);
    transform: translate(2px, -2px);
}

/* News and topic rows: a small contained chevron keeps repeated lists calm. */
.top-topics__list .ui-list-chevron,
.news-archive__list .ui-list-chevron {
    display: grid;
    width: 30px;
    height: 30px;
    box-sizing: border-box;
    place-items: center;
    border: 1px solid #ddd7d1;
    border-radius: 50%;
    color: #8e8882;
    font-size: 8px;
    line-height: 1;
    text-align: center;
    transition: border-color 220ms ease, background-color 220ms ease, color 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.news-archive__list a {
    grid-template-columns: 125px 110px minmax(0, 1fr) 32px;
}

.top-topics__list a:hover .ui-list-chevron,
.top-topics__list a:focus-visible .ui-list-chevron,
.news-archive__list a:hover .ui-list-chevron,
.news-archive__list a:focus-visible .ui-list-chevron {
    border-color: var(--suncolorz-ui-accent);
    background: var(--suncolorz-ui-accent);
    color: #fff;
    transform: translateX(3px);
}

/* Primary CTA: the long arrow belongs only to explicit action buttons. */
.ui-cta-arrow {
    width: 26px;
    color: inherit;
    font-size: 13px !important;
    text-align: right;
    transition: transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

a:hover > .ui-cta-arrow,
a:focus-visible > .ui-cta-arrow {
    transform: translateX(5px);
}

/* Carousel controls: compact chevrons imply movement within the same view. */
.top-hero__arrow .ui-slider-chevron,
.artist-gallery-arrow .ui-slider-chevron {
    font-size: 10px;
    line-height: 1;
    transition: transform 220ms ease;
}

.top-hero__arrow--prev:hover .ui-slider-chevron,
.artist-gallery-arrow--prev:hover .ui-slider-chevron {
    transform: translateX(-2px);
}

.top-hero__arrow--next:hover .ui-slider-chevron,
.artist-gallery-arrow--next:hover .ui-slider-chevron {
    transform: translateX(2px);
}

/* Article navigation: long directional arrows distinguish previous/next. */
.news-post-navigation__item > .ui-direction-arrow {
    display: grid;
    width: 42px;
    height: 42px;
    box-sizing: border-box;
    place-items: center;
    border: 1px solid #d8d1ca;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.68);
    color: var(--suncolorz-ui-accent);
    font-size: 12px;
    transition: border-color 220ms ease, background-color 220ms ease, color 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.news-post-navigation__item:hover > .ui-direction-arrow,
.news-post-navigation__item:focus-visible > .ui-direction-arrow {
    border-color: var(--suncolorz-ui-accent);
    background: var(--suncolorz-ui-accent);
    color: #fff;
}

.news-post-navigation__item--prev:hover > .ui-direction-arrow,
.news-post-navigation__item--prev:focus-visible > .ui-direction-arrow {
    transform: translateX(-3px);
}

.news-post-navigation__item--next:hover > .ui-direction-arrow,
.news-post-navigation__item--next:focus-visible > .ui-direction-arrow {
    transform: translateX(3px);
}

/* Return to top stays vertical and intentionally differs from link arrows. */
.artist-footer__back-top .ui-back-top-icon {
    font-size: 9px;
    transition: transform 220ms ease;
}

.artist-footer__back-top:hover .ui-back-top-icon,
.artist-footer__back-top:focus-visible .ui-back-top-icon {
    transform: translateY(-2px);
}

/* Contact Form 7 buttons stay typographic; decorative arrows are omitted. */
.wpcf7-submit::after {
    content: none !important;
    display: none !important;
}

.top-talent-card:focus-visible,
.top-topics__list a:focus-visible,
.news-archive__list a:focus-visible,
.company-contact__inner > a:focus-visible,
.top-topics__more:focus-visible,
.news-post-navigation a:focus-visible,
.top-hero__arrow:focus-visible,
.artist-gallery-arrow:focus-visible,
.artist-footer__back-top:focus-visible {
    outline: 2px solid var(--suncolorz-ui-accent);
    outline-offset: 4px;
}

@media (max-width: 768px) {
    .top-talent-card__caption {
        grid-template-columns: minmax(0, 1fr) 30px;
    }

    .top-talent-card__caption .top-talent-card__mark {
        width: 30px;
        height: 30px;
    }

    .top-topics__list .ui-list-chevron,
    .news-archive__list .ui-list-chevron {
        width: 26px;
        height: 26px;
        font-size: 7px;
    }

    .top-topics__list a {
        grid-template-columns: 78px minmax(0, 1fr) 28px;
    }

    .news-archive__list a {
        grid-template-columns: 82px minmax(0, 1fr) 28px;
    }

    .news-post-navigation__item > .ui-direction-arrow {
        width: 34px;
        height: 34px;
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ui-menu-chevron,
    .top-talent-card__mark,
    .ui-list-chevron,
    .ui-cta-arrow,
    .ui-slider-chevron,
    .ui-direction-arrow,
    .ui-back-top-icon {
        transition: none !important;
    }
}
