/* 買取来福 v19: responsive navigation, category showcase and contact refinements. */
.rai-site-header {
  position: sticky; top: 0; z-index: 90; isolation: isolate;
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; min-height: 78px; padding: 11px clamp(16px,3vw,40px);
  background: rgba(255,252,248,.985); border-bottom: 2px solid #c39b48;
  box-shadow: 0 5px 16px #31120b10;
}
.rai-site-header .wordmark { flex-shrink: 0; font-size: clamp(1.35rem,2vw,1.8rem); line-height: 1.1; }
.rai-site-header .wordmark small { font-size: .64rem; margin-top: 5px; }
.rai-header-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(8px,1.5vw,22px); min-width: 0; }
.rai-header-nav .rai-nav-regular { font-size: .84rem; font-weight: 800; white-space: nowrap; }
.rai-header-nav .rai-nav-regular:hover { color: #a80020; }
.rai-header-nav .nav-cta { flex-shrink: 0; padding: 11px 17px; font-size: .84rem; }
.rai-menu-trigger {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid #c8a359; border-radius: 6px; background: #fff9ee;
  color: #342021; font-size: .85rem; font-weight: 900; white-space: nowrap;
  padding: 10px 13px; min-height: 43px; cursor: pointer;
}
.rai-menu-trigger[aria-expanded="true"],.rai-menu-trigger:hover { background: #9c071d; color: #fff; }
.rai-menu-label-short { display: none; }
.rai-header-phone { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; white-space: nowrap; line-height: 1.28; color: #961421; }
.rai-header-phone span { color: #866324; font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.rai-header-phone strong { font-family: Arial, sans-serif; font-size: clamp(.98rem,1.6vw,1.42rem); font-weight: 900; letter-spacing: .025em; font-variant-numeric: tabular-nums; }
.rai-header-phone::before { content: '☎'; position: absolute; opacity: 0; pointer-events: none; }
.rai-mega-menu[hidden] { display: none !important; }
.rai-mega-menu {
  position: absolute; top: calc(100% + 1px); left: 50%; transform: translateX(-50%);
  display: block; width: min(1100px,calc(100vw - 28px)); max-height: min(75vh,710px);
  overflow: auto; background: #fffefa; border: 1px solid #d6b477;
  border-top: 4px solid #b08a42; border-radius: 0 0 14px 14px;
  padding: clamp(16px,2.4vw,30px); box-shadow: 0 18px 45px #35140d42;
}
.rai-menu-top { display: flex; align-items: center; gap: 16px; margin-bottom: 17px; }
.rai-menu-top strong { color: #1d2e49; font-family: 'Yu Mincho',serif; font-size: 1.3rem; }
.rai-menu-top>a { margin-left: auto; color: #9e0021; font-size: .85rem; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.rai-menu-close { border: 0; background: #f6ede0; border-radius: 50%; color: #674319; width: 34px; height: 34px; cursor: pointer; font-size: 1.2rem; }
.rai-menu-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px 14px; }
.rai-menu-item { display: grid; grid-template-columns: 73px 1fr 14px; align-items: center; gap: 9px; min-width: 0; min-height: 67px; padding: 7px; border: 1px solid #e9d7b7; border-radius: 8px; background: #fffcf7; color: #182b48; font-size: .89rem; font-weight: 800; line-height: 1.45; }
.rai-menu-item:hover,.rai-menu-item:focus-visible { background: #fae8ca; border-color: #bd9141; }
.rai-menu-item img { width: 73px; height: 52px; object-fit: cover; border-radius: 4px; }
.rai-menu-arrow { color: #b48a35; font-size: 1.3rem; }
.rai-mega-menu>p { color: #68575b; font-size: .76rem; line-height: 1.6; margin-top: 15px; }

.rai-carousel-section { background: linear-gradient(180deg,#fffdf9,#f9f0df); border-bottom: 1px solid #dcc28e; }
.rai-carousel-section .eyebrow,.rai-carousel-section h2 { text-align: center; }
.rai-carousel-section h2 { color: #212d43; }
.rai-carousel-section h2 span { color: #a50622; }
.rai-carousel { max-width: 1100px; margin-inline: auto; }
.rai-carousel-viewport { position: relative; overflow: hidden; border: 2px solid #ca9d4d; border-radius: 14px; background: #fff; box-shadow: 0 16px 42px #5d201d24; }
.rai-slide { display: none; grid-template-columns: minmax(0,1fr) minmax(0,1.17fr); min-height: 385px; overflow: hidden; }
.rai-slide.is-current { display: grid; animation: rai-slide-enter .55s ease both; }
.rai-slide-copy { align-self: center; padding: clamp(28px,4.5vw,62px); background: radial-gradient(circle at top left,#fffdf9,#fff9ee); }
.rai-slide-index { color: #a17a32; font: 800 .78rem/1.5 Arial,sans-serif; letter-spacing: .12em; }
.rai-slide h3 { font-family: 'Yu Mincho',serif; color: #771320; font-size: clamp(2.25rem,3.9vw,4.05rem); line-height: 1.25; margin: 17px 0; }
.rai-slide h3 span { display: block; font-size: .55em; margin-top: 8px; color: #a87625; }
.rai-slide-subtitle { font-weight: 800; color: #392b2b; font-size: 1.07rem; line-height: 1.7; }
.rai-slide-desc { color: #625453; font-size: .92rem; line-height: 1.85; max-width: 34em; margin: 12px 0 22px; }
.rai-slide-link { display: inline-flex; align-items: center; gap: 14px; background: #9f0b26; color: white; padding: 11px 20px; border-radius: 5px; font-size: .89rem; font-weight: 800; box-shadow: 0 3px 0 #6b0918; }
.rai-slide-link:hover { background: #760618; }
.rai-slide-photo { min-height: 385px; position: relative; overflow: hidden; }
.rai-slide-photo::after { content:''; position:absolute; inset:0; border-left:8px solid #e0bd79; pointer-events:none; }
.rai-slide-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rai-carousel-controls { display: flex; justify-content: center; align-items: center; gap: 19px; padding: 22px 0 4px; }
.rai-carousel-prev,.rai-carousel-next { width: 42px; height: 42px; border: 1px solid #bd9141; border-radius: 50%; background: white; color: #7b1926; cursor: pointer; font-size: 1.7rem; line-height: 1; }
.rai-carousel-prev:hover,.rai-carousel-next:hover { background: #9e0520; color: white; }
.rai-carousel-dots { display: flex; align-items: center; gap: 9px; }
.rai-carousel-dot { width: 9px; height: 9px; border: 0; border-radius: 10px; background: #d6c5aa; padding: 0; cursor: pointer; transition: width .2s,background .2s; }
.rai-carousel-dot.is-current { width: 27px; background: #b28c37; }
.rai-carousel-note { text-align: center; color: #6d5c56; font-size: .76rem; line-height: 1.8; margin-top: 14px; }
@keyframes rai-slide-enter { from { opacity: .3; transform: translateX(12px); } to { opacity: 1; transform: none; } }

.items-section.rai-items { background: linear-gradient(#fffcf8,#fff7ed); color: #253047; border-top: 1px solid #dbbd89; border-bottom: 3px solid #c6a055; }
.rai-items .eyebrow { color: #a70822; text-align: center; }
.rai-items h2 { color: #242e44; text-align: center; margin-bottom: 10px; }
.rai-items-intro { text-align: center; color: #594d4c; font-size: .99rem; line-height: 1.9; margin-bottom: 32px; }
.rai-category-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; }
.rai-category-grid article { min-width: 0; background: white; color: #202d40; border: 1px solid #d8bd8b; border-radius: 8px; box-shadow: 0 6px 15px #5c3e2112; overflow: hidden; transition: transform .2s,box-shadow .2s; }
.rai-category-grid article:hover { transform: translateY(-3px); box-shadow: 0 10px 20px #5c3e2125; }
.rai-category-tile { position: relative; display: block; height: 100%; padding-bottom: 20px; }
.rai-category-tile img { display: block; width: 100%; aspect-ratio: 3/2; object-fit: cover; background: #f5efe6; }
.rai-category-tile h3 { font-family: 'Yu Mincho',serif; font-size: clamp(1.05rem,1.6vw,1.3rem); color: #8f1225; line-height: 1.5; margin: 15px 14px 5px; padding-right: 17px; }
.rai-category-tile p { font-size: .79rem; color: #665b5a; line-height: 1.65; margin: 0 14px; padding-right: 8px; }
.rai-tile-arrow { position: absolute; right: 11px; bottom: 12px; color: #a57827; font-size: 1.15rem; }
.rai-items .rai-items-note { color: #665b55; font-size: .81rem; line-height: 1.85; margin: 22px 0 0; }
.rai-brand-section { margin-top: 58px; padding-top: 33px; border-top: 2px solid #d3b16a; }
.rai-brand-section h3 { text-align: center; font-family: 'Yu Mincho',serif; color: #252f46; font-size: clamp(1.35rem,2.4vw,2rem); }
.rai-brand-section>p { text-align: center; color: #635957; font-size: .9rem; margin: 13px auto 24px; }
.rai-brand-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.rai-brand-grid li { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 87px; padding: 11px; background: white; border: 1px solid #d7c2a0; box-shadow: inset 0 0 0 3px #fff8ee; }
.rai-brand-grid strong { color: #24314a; font: 800 1.04rem/1.45 Arial,sans-serif; letter-spacing: .03em; }
.rai-brand-grid span { color: #97732f; font-size: .74rem; margin-top: 5px; }
.rai-brand-section .rai-brand-notice { color: #77685d; font-size: .75rem; margin-top: 17px; }

/* Equal motion and full-button sheen for both persistent contact choices. */
.sticky-contact { width: min(740px,calc(100% - 28px)); align-items: stretch; }
.sticky-contact .contact-phone,.sticky-contact .contact-line {
  position: relative; padding: 8px 13px; min-height: 79px;
  animation: rai-cta-bob 5.5s ease-in-out infinite; transform: none; filter: none;
}
.sticky-contact .contact-line { animation-delay: -2.75s; gap: 9px; }
.sticky-contact .contact-phone { animation-delay: 0s; }
.sticky-contact .contact-line .line-brand-icon { flex: 0 0 64px; width: 64px; height: 64px; padding: 9px; z-index: 1; }
.sticky-contact .contact-line .line-brand-icon>img { width: 45px; height: 45px; min-width: 45px; animation: none; }
.sticky-contact .contact-line .contact-copy { overflow: visible; }
.sticky-contact .contact-line .contact-copy::after { display: none !important; }
.sticky-contact .contact-phone::before,.sticky-contact .contact-line::before {
  content: ''; display: block !important; position: absolute; z-index: 0; pointer-events: none;
  top: -50%; bottom: -50%; left: -70%; width: 32%;
  background: linear-gradient(90deg,transparent,#ffffff20 18%,#ffffff80 50%,#ffffff20 82%,transparent);
  transform: skewX(-22deg); animation: rai-cta-shine 6s ease-in-out infinite;
}
.sticky-contact .contact-line::before { animation-delay: -3s; }
.sticky-contact .contact-phone .contact-icon,.sticky-contact .contact-phone>span:not(.contact-icon),.sticky-contact .contact-line .contact-copy,.sticky-contact .contact-arrow { position: relative; z-index: 1; }
.sticky-contact .contact-phone b { font-variant-numeric: tabular-nums; letter-spacing: .015em; }
.sticky-contact a:hover { animation-play-state: paused; }
@keyframes rai-cta-bob { 0%,10%,23%,100% { translate:0 0; } 16% { translate:0 -6px; } }
@keyframes rai-cta-shine { 0%,45% { left:-70%; opacity:0; } 54% { opacity:1; } 72% { left:145%; opacity:1; } 74%,100% { left:145%; opacity:0; } }

@media(max-width:1260px) {
  .rai-header-nav .rai-nav-regular { display: none; }
}
@media(max-width:900px) {
  .rai-site-header { padding-inline: 15px; gap: 12px; }
  .rai-header-nav { gap: 9px; }
  .rai-header-nav .nav-cta { padding: 10px 11px; }
  .rai-category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rai-brand-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media(max-width:700px) {
  html { scroll-padding-top: 115px; }
  .rai-site-header { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 9px 14px; gap: 5px 10px; min-height: 92px; }
  .rai-site-header .wordmark { grid-column: 1; grid-row: 1; font-size: 1.48rem; }
  .rai-site-header .wordmark small { display: none; }
  .rai-header-nav { display: contents; }
  .rai-header-nav .rai-nav-regular,.rai-header-nav .nav-cta { display: none; }
  .rai-header-phone { grid-column: 2; grid-row: 1; justify-self: end; }
  .rai-header-phone span { font-size: .59rem; }
  .rai-header-phone strong { font-size: clamp(.95rem,4vw,1.2rem); }
  .rai-menu-trigger { grid-column: 1 / -1; grid-row: 2; width: 100%; min-height: 34px; padding: 4px 10px; font-size: .79rem; }
  .rai-menu-label-long { display: none; }
  .rai-menu-label-short { display: inline; }
  .rai-mega-menu { top: calc(100% + 1px); width: 100vw; max-height: min(72vh,660px); border-radius: 0 0 12px 12px; padding: 14px; }
  .rai-menu-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .rai-menu-item { grid-template-columns: 48px minmax(0,1fr) 10px; gap: 5px; min-height: 60px; padding: 5px; font-size: .75rem; }
  .rai-menu-item img { width: 48px; height: 45px; }
  .rai-menu-top strong { font-size: 1.05rem; }
  .rai-menu-top>a { font-size: .72rem; }
  .rai-carousel-section { padding-block: 48px; }
  .rai-carousel-section h2 { font-size: 1.62rem; }
  .rai-slide.is-current { grid-template-columns: 1fr; }
  .rai-slide { min-height: unset; }
  .rai-slide-copy { padding: 20px 22px 24px; }
  .rai-slide h3 { font-size: clamp(2rem,8vw,2.75rem); margin: 9px 0 12px; }
  .rai-slide-subtitle { font-size: .96rem; }
  .rai-slide-desc { font-size: .85rem; margin: 9px 0 14px; }
  .rai-slide-photo { grid-row: 1; min-height: 0; height: 215px; }
  .rai-slide-photo::after { border-left: 0; border-bottom: 6px solid #e0bd79; }
  .rai-slide-link { padding: 9px 14px; font-size: .85rem; }
  .rai-carousel-viewport { border-radius: 9px; }
  .rai-carousel-controls { padding-top: 13px; }
  .rai-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .rai-category-tile { padding-bottom: 17px; }
  .rai-category-tile h3 { font-size: .97rem; line-height: 1.45; margin: 10px 9px 5px; }
  .rai-category-tile p { font-size: .72rem; margin: 0 9px; }
  .rai-tile-arrow { right: 8px; bottom: 5px; }
  .rai-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .rai-brand-grid li { min-height: 78px; }
  .rai-brand-grid strong { font-size: .91rem; }
  .sticky-contact { width: 100%; grid-template-columns: 1fr 1fr; gap: 0; }
  .sticky-contact .contact-phone,.sticky-contact .contact-line { padding: 8px 5px; min-height: 69px; }
  .sticky-contact .contact-line { gap: 4px; }
  .sticky-contact .contact-line .line-brand-icon { flex:0 0 44px; width:44px; height:44px; padding:3px; }
  .sticky-contact .contact-line .line-brand-icon>img { width:38px; height:38px; min-width:38px; }
  .sticky-contact .contact-line b { font-size: .83rem; line-height: 1.38; }
  .sticky-contact .contact-line small { font-size: .7rem; }
  .sticky-contact .contact-phone b { font-size: clamp(.83rem,3.55vw,1rem); }
  .sticky-contact .contact-phone small { font-size: .72rem; }
}
@media(max-width:360px) {
  .rai-site-header { padding-inline: 8px; }
  .rai-site-header .wordmark { font-size: 1.28rem; }
  .rai-header-phone strong { font-size: .93rem; }
  .rai-menu-item { font-size: .68rem; }
  .rai-slide-photo { height: 190px; }
  .rai-slide-copy { padding: 15px; }
  .sticky-contact .contact-line .line-brand-icon { flex-basis: 35px; width:35px; height:35px; padding:1px; }
  .sticky-contact .contact-line .line-brand-icon>img { width:33px; height:33px; min-width:33px; }
  .sticky-contact .contact-line b { font-size:.74rem; }
  .sticky-contact .contact-phone b { font-size:.8rem; }
}
@media(prefers-reduced-motion:reduce) {
  .rai-slide.is-current { animation: none; }
  .rai-carousel-dot { transition: none; }
  .rai-category-grid article { transition: none; }
  .sticky-contact .contact-phone,.sticky-contact .contact-line,
  .sticky-contact .contact-phone::before,.sticky-contact .contact-line::before { animation: none !important; }
  .sticky-contact .contact-phone::before,.sticky-contact .contact-line::before { display: none !important; }
}
