/* Razor integration of the RCF templates. Bootstrap remains for existing forms and database HTML. */
body.rcf-site { background:var(--paper)!important; color:var(--ink); font-family:var(--font-sans); font-size:15px; font-weight:400; line-height:1.8; }
.rcf-site a:hover { color:var(--accent); text-decoration:none; }
.rcf-site :focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.rcf-site [hidden] { display:none!important; }
.rcf-site .rcf-skip { position:fixed; top:0; left:20px; padding:12px 20px; background:var(--ink); color:var(--paper); z-index:2000; transform:translateY(-150%); }
.rcf-site .rcf-skip:focus { transform:none; }
.rcf-site .page-frame { z-index:110; }
.rcf-site .rcf-header { display:grid; grid-template-columns:1fr auto; gap:14px 30px; padding:20px max(6vw,28px) 0; margin:0 auto; position:sticky; top:var(--edge); z-index:200; background:var(--paper); border-bottom:1px solid var(--line); }
.rcf-site .rcf-logo { max-width:200px; max-height:54px; width:auto; height:auto; object-fit:contain; }
.rcf-site .rcf-header-actions { display:flex; align-items:center; gap:24px; }
.rcf-site .rcf-header-actions a { display:inline-flex; align-items:center; gap:7px; font-size:13px; white-space:nowrap; }
.rcf-site .rcf-header-actions .icon { font-size:20px; }
.rcf-site .rcf-search { display:flex; border-bottom:1px solid var(--line-strong); width:170px; }
.rcf-site .rcf-search input { width:100%; min-width:0; border:0; padding:6px 0; background:transparent; color:var(--ink); font:inherit; font-size:13px; }
.rcf-site .rcf-search button { background:none; border:0; padding:6px 8px; color:var(--ink); cursor:pointer; }
.rcf-site .rcf-cart #sptopcarcnt { min-width:21px; height:21px; display:inline-grid; place-items:center; border-radius:50%; background:var(--accent); color:var(--paper); font-size:11px; line-height:1; }
.rcf-site .rcf-navigation { grid-column:1/-1; padding:0; min-width:0; }
.rcf-site .rcf-navigation>summary { cursor:pointer; padding:10px 0; font-size:13px; list-style:none; }
.rcf-site .rcf-navigation>summary::-webkit-details-marker { display:none; }
.rcf-site .rcf-nav-links { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; padding:0 0 18px; font-size:13px; }
.rcf-site .rcf-nav-links a.link-underline { display:flex; flex-direction:row; gap:8px; opacity:1; }
.rcf-site .rcf-nav-links .nav-en { font-size:10px; color:var(--ink-soft); letter-spacing:.1em; }
.rcf-site .rcf-nav-links a[aria-current="page"] { color:var(--accent); }
.rcf-site .rcf-subnav { position:relative; }
.rcf-site .rcf-subnav summary { cursor:pointer; padding:6px 0; }
.rcf-site .rcf-subnav>div { position:absolute; z-index:210; top:100%; left:0; min-width:180px; padding:14px 20px; border:1px solid var(--line); background:var(--paper); box-shadow:var(--shadow-photo); }
.rcf-site .rcf-subnav>div>* { display:block; padding:8px 0; }
.rcf-site .rcf-main { min-height:55vh; outline:none; overflow-wrap:anywhere; }
.rcf-site .rcf-main>.container { padding-top:44px; padding-bottom:56px; }
.rcf-site .rcf-footer { background:var(--paper-2); margin-top:60px; padding:60px 6vw 32px; }
.rcf-site .rcf-footer-heading { display:flex; justify-content:space-between; align-items:baseline; gap:24px; max-width:1280px; margin:0 auto 36px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.rcf-site .rcf-footer .footer-bottom { margin-top:32px; }
.rcf-site .rcf-credit { display:block; font-size:11px; margin-top:8px; }
.rcf-site .rcf-main h1,.rcf-site .rcf-main h2,.rcf-site .rcf-main h3,.rcf-site .rcf-main h4 { font-family:var(--font-serif); color:var(--ink); font-weight:500; line-height:1.5; }
.rcf-site .rcf-main h1 { font-size:var(--fs-display); }
.rcf-site .rcf-main h2 { font-size:var(--fs-h2); }
.rcf-site .rcf-main h3 { font-size:var(--fs-h3); }
.rcf-site .rcf-main h4 { font-size:var(--fs-h4); }
.rcf-site .text-primary { color:var(--accent)!important; }
.rcf-site .text-black,.rcf-site .text-dark { color:var(--ink)!important; }
.rcf-site .text-muted { color:var(--ink-soft)!important; }
.rcf-site .bg-light { background:var(--paper-2)!important; }
.rcf-site .border,.rcf-site .border-top,.rcf-site .border-bottom { border-color:var(--line)!important; }
.rcf-site .site-section { padding:64px 0; }
.rcf-site .site-section-heading { padding-top:0!important; margin-bottom:26px; }
.rcf-site .site-section-heading:before { display:none; }
.rcf-site .site-section-heading h2 { margin-bottom:12px; }
.rcf-site .site-section-heading:after { content:''; display:block; width:44px; height:1px; margin:24px auto 0; background:var(--line-strong); }
.rcf-site .rcf-main>.bg-light.py-3 { background:transparent!important; border-bottom:1px solid var(--line); font-size:12px; color:var(--ink-soft); }
.rcf-site .btn { border-radius:0; box-shadow:none!important; text-transform:none; letter-spacing:.04em; font-weight:400; padding:12px 22px; font-size:14px; transition:background .2s,color .2s; }
.rcf-site .btn-primary,.rcf-site .btn-primary:focus { color:var(--paper); border-color:var(--ink); background:var(--ink); }
.rcf-site .btn-primary:hover { color:var(--paper); background:var(--accent); border-color:var(--accent); }
.rcf-site .btn-outline-primary,.rcf-site .btn-outline-info,.rcf-site .btn-outline-dark,.rcf-site .btn-secondary { border:1px solid var(--line-strong); color:var(--ink); background:transparent; }
.rcf-site .btn-outline-primary:hover,.rcf-site .btn-outline-info:hover,.rcf-site .btn-outline-dark:hover,.rcf-site .btn-secondary:hover { background:var(--ink); color:var(--paper); }
.rcf-site .btn-outline-warning { color:var(--ink); border-color:var(--ink); }
.rcf-site .btn-outline-warning:hover { background:var(--ink); color:var(--paper); }
.rcf-site .btn-danger { background:var(--accent); border-color:var(--accent); color:var(--paper); }
.rcf-site .btn-sm { padding:8px 14px; font-size:13px; }
.rcf-site .btn:disabled { opacity:.5; cursor:not-allowed; }
.rcf-site .form-control,.rcf-site .form-select { border:1px solid var(--line-strong); border-radius:0; background:#fffefa; color:var(--ink); font-family:var(--font-sans); font-size:16px; min-height:46px; padding:10px 12px; }
.rcf-site .form-control:focus,.rcf-site .form-select:focus { border-color:var(--accent); box-shadow:0 0 0 2px rgba(74,53,80,.1); }
.rcf-site .form-control[readonly],.rcf-site .form-control:disabled { background:var(--paper-2); }
.rcf-site textarea.form-control { height:auto; min-height:120px; }
.rcf-site .form-label { font-size:13px; color:var(--ink-soft); }
.rcf-site .card,.rcf-site .login-card,.rcf-site .rcf-main .shadow-sm { border-radius:2px!important; box-shadow:none!important; border:1px solid var(--line); }
.rcf-site .card { background:#fffefa; }
.rcf-site .card-header { background:var(--paper-2); border-bottom:1px solid var(--line); padding:16px 20px; }
.rcf-site .card-body { padding:24px; }
.rcf-site .login-card { max-width:480px; padding:36px; margin:56px auto!important; background:#fffefa; }
.rcf-site .login-card h3 { margin-bottom:30px!important; }
.rcf-site .table { background:#fffefa; color:var(--ink); font-size:14px; }
.rcf-site .table td,.rcf-site .table th { border-color:var(--line); padding:16px 12px; vertical-align:middle; }
.rcf-site .table thead th { background:var(--paper-2); font-size:12px; font-weight:500; white-space:nowrap; }
.rcf-site .table tfoot { background:var(--paper-2); }
.rcf-site .rcf-table-scroll { max-width:100%; overflow-x:auto; margin-bottom:24px; scrollbar-width:thin; }
.rcf-site .rcf-table-scroll>.table { margin-bottom:0; min-width:560px; }
.rcf-site .rcf-member-nav { border-top:1px solid var(--line-strong); border-radius:0; background:transparent; }
.rcf-site .rcf-member-nav .list-group-item { background:transparent; border:0; border-bottom:1px solid var(--line); padding:18px 12px; border-radius:0; font-size:14px; }
.rcf-site .rcf-member-nav .list-group-item[aria-current="page"] { background:var(--paper-2); color:var(--accent); border-left:2px solid var(--accent); }
.rcf-site .rcf-rich-content { max-width:1280px; margin-left:auto; margin-right:auto; overflow-wrap:anywhere; }
.rcf-site .rcf-rich-content img { max-width:100%; height:auto; }
.rcf-site .rcf-rich-content iframe { max-width:100%; }
.rcf-site .rcf-rich-content table { max-width:100%; }
/* Preserve the native proportions of the three CMS illustrations in flex layouts. */
.rcf-site .rcf-home-benefits img {
  width:clamp(110px,16vw,200px); max-width:100%; height:auto!important;
  object-fit:contain!important; flex-shrink:0; align-self:flex-start;
}
.rcf-site .rcf-home-benefits h2,.rcf-site .rcf-home-benefits h3,.rcf-site .rcf-home-benefits h4 {
  font-size:18px; line-height:1.5; font-weight:600; margin-bottom:10px;
}
.rcf-site .rcf-home-benefits p { font-size:15px; line-height:1.8; color:var(--ink-soft); }
@media(max-width:700px) {
  .rcf-site .rcf-home-benefits img { width:110px; }
}
.rcf-site .rcf-home-hero { padding:70px 6vw 90px; }
.rcf-site .rcf-hero-grid { display:grid; grid-template-columns:1.1fr auto 1fr; gap:5vw; max-width:1280px; margin:auto; align-items:center; }
.rcf-site .rcf-kicker { font-size:11px; letter-spacing:.2em; color:var(--accent); margin-bottom:24px; }
.rcf-site .rcf-hero-title { font-family:var(--font-serif); font-size:var(--fs-display); font-weight:600; line-height:1.4; margin-bottom:22px; color:var(--ink); }
.rcf-site .rcf-hero-description { color:var(--ink-soft); max-width:440px; margin-bottom:32px; line-height:2; }
.rcf-site .rcf-hero-image { aspect-ratio:4/5; background:var(--paper-2); }
.rcf-site .rcf-hero-image a { display:block; height:100%; }
.rcf-site .rcf-hero-image img { padding:0; width:100%; height:100%; object-fit:cover; }
/* Old banner HTML may carry white text, offsets and fixed sizes. Keep its content in normal flow. */
.rcf-site .rcf-hero-title *, .rcf-site .rcf-hero-description * {
  color:inherit!important; background:transparent!important; font-family:inherit!important;
  font-size:inherit!important; line-height:inherit!important; position:static!important;
  margin:0!important; padding:0!important; height:auto!important; min-height:0!important;
  width:auto!important; transform:none!important; text-shadow:none!important;
}
.rcf-site .rcf-carousel-controls { max-width:1280px; margin:24px auto 0; display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.rcf-site .rcf-carousel-controls span { color:var(--ink-soft); font-size:12px; margin-right:16px; }
.rcf-site .rcf-carousel-controls button { width:40px; height:40px; background:none; border:1px solid var(--line-strong); cursor:pointer; }
.rcf-site .rcf-featured { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); }
.rcf-site .rcf-featured>.container { max-width:none; padding-left:6vw; padding-right:6vw; }
.rcf-site .rcf-product-grid { display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x proximity; padding:8px 0 24px; }
.rcf-site .rcf-product-grid>.item { flex:0 0 min(260px,64vw); min-width:0; scroll-snap-align:start; }
.rcf-site .block-4 { border:0!important; background:transparent; text-align:left!important; }
.rcf-site .block-4 figure { aspect-ratio:3/4; background:#f7f3ec; overflow:hidden; margin-bottom:16px; border-radius:var(--radius-photo); box-shadow:var(--shadow-photo); }
.rcf-site .block-4 figure a { display:block; height:100%; }
.rcf-site .block-4 figure img { width:100%; height:100%; object-fit:cover; padding:0; transition:transform .35s; }
.rcf-site .block-4:hover figure img { transform:scale(1.03); }
.rcf-site .block-4 .block-4-text { padding:0 0 24px!important; }
.rcf-site .block-4 h3 { font-size:16px; font-weight:600; margin-bottom:4px; }
.rcf-site .block-4 p { font-size:12px; color:var(--ink-soft); margin-bottom:6px; }
.rcf-site .block-4 p.text-primary { font-size:14px; font-weight:400!important; margin:6px 0 14px; }
.rcf-site .rcf-product-link { display:inline-block; font-size:12px; letter-spacing:.04em; color:var(--ink); border-bottom:1px solid var(--line-strong); padding-bottom:3px; }
.rcf-site .block-2-item { background:var(--paper-2); border:1px solid var(--line); }
.rcf-site .block-2-item:before { display:none; }
.rcf-site .block-2-item .text { position:static; padding:22px; }
.rcf-site .block-2-item .text h3 { color:var(--ink); }
.rcf-site .block-2-item .text span { color:var(--ink-soft); font-size:11px; letter-spacing:.16em; }
.rcf-site .block-2-item .image { aspect-ratio:16/10; margin:0; }
.rcf-site .block-2-item .image img { width:100%; height:100%; object-fit:contain; }
.rcf-site .site-block-27 ul { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.rcf-site .site-block-27 ul li a,.rcf-site .site-block-27 ul li span { border-radius:0; min-width:40px; width:auto; padding:0 12px; border-color:var(--line); }
.rcf-site .site-block-27 ul li.active a,.rcf-site .site-block-27 ul li.active span { background:var(--accent); color:var(--paper); }
.rcf-site .rcf-product-hero .rcf-product-info { padding-left:5%; }
.rcf-site .rcf-product-info h1 { font-size:clamp(26px,3vw,38px); margin-bottom:20px; }
.rcf-site .rcf-product-info .text-primary.h2 { margin:24px 0; font-family:var(--font-serif); }
.rcf-site .rcf-product-gallery .carousel-inner img { height:520px; object-fit:contain; width:100%; }
.rcf-site .rcf-product-gallery .carousel-control-prev,.rcf-site .rcf-product-gallery .carousel-control-next { bottom:auto; top:220px; height:48px; width:40px; background:var(--ink); }
.rcf-site .rcf-product-gallery .d-flex { overflow-x:auto; padding-bottom:10px; }
.rcf-site .rcf-product-gallery .thumb { flex-shrink:0; object-fit:contain; border-radius:0; }
.rcf-site .rcf-image-empty { min-height:320px; display:grid; place-items:center; background:var(--paper-2); color:var(--ink-soft); }
.rcf-site .rcf-quantity .btn { padding:8px 12px; }
.rcf-site .rcf-purchase-anchor,#iwanttobuy { scroll-margin-top:180px; }
.rcf-site .rcf-sticky-purchase { position:fixed; left:0; bottom:0; right:0; z-index:220; background:var(--paper); border-top:1px solid var(--line-strong); padding:14px 6vw calc(14px + env(safe-area-inset-bottom)); display:flex; align-items:center; gap:16px; box-shadow:0 -8px 24px rgba(28,26,23,.06); }
.rcf-site .rcf-sticky-purchase>div { flex:1; min-width:0; }
.rcf-site .rcf-sticky-name { display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rcf-site .rcf-sticky-price { color:var(--accent); font-size:15px; }
.rcf-site:has(.rcf-sticky-purchase) { padding-bottom:110px; }
.rcf-site .rcf-empty { padding:48px 24px; border:1px solid var(--line); text-align:center; color:var(--ink-soft); }
.rcf-site .rcf-revealed { animation:rcf-enter .55s ease both; }
@keyframes rcf-enter { from { opacity:.4; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media(min-width:901px) {
  .rcf-site .rcf-navigation>summary { width:max-content; font-size:11px; color:var(--ink-soft); }
}
@media(max-width:900px) {
  .rcf-site .rcf-header { top:var(--edge); padding:14px 6vw 0; gap:8px 16px; }
  .rcf-site .rcf-header-actions { gap:16px; }
  .rcf-site .rcf-logo { max-width:145px; max-height:42px; }
  .rcf-site .rcf-search { width:140px; }
  .rcf-site .rcf-nav-links { align-items:stretch; gap:0; flex-direction:column; max-height:65vh; overflow-y:auto; }
  .rcf-site .rcf-nav-links>a,.rcf-site .rcf-nav-links>span,.rcf-site .rcf-subnav { border-top:1px solid var(--line); padding:12px 0; }
  .rcf-site .rcf-subnav>div { position:static; box-shadow:none; border:0; background:var(--paper-2); }
  .rcf-site .rcf-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .rcf-site .rcf-hero-grid { gap:5vw; }
}
@media(max-width:700px) {
  body.rcf-site { padding-top:0; font-size:15px; }
  .rcf-site .rcf-header { top:0; }
  .rcf-site .rcf-header-actions { gap:12px; }
  .rcf-site .rcf-account>span:last-child { display:none; }
  .rcf-site .rcf-search { width:110px; }
  .rcf-site .rcf-main>.container { padding-top:28px; padding-bottom:32px; }
  .rcf-site .rcf-home-hero { padding-top:32px; }
  .rcf-site .rcf-hero-grid { grid-template-columns:1fr; gap:32px; }
  .rcf-site .rcf-hero-title { font-size:30px; }
  .rcf-site .rcf-hero-image { aspect-ratio:4/3; }
  .rcf-site .rcf-hero-description { margin-bottom:24px; }
  .rcf-site .rcf-kicker { margin-bottom:16px; }
  .rcf-site .site-section { padding:40px 0; }
  .rcf-site .rcf-product-hero .rcf-product-info { padding-left:15px; }
  .rcf-site .rcf-product-gallery .carousel-inner img { height:360px; }
  .rcf-site .rcf-product-gallery .carousel-control-prev,.rcf-site .rcf-product-gallery .carousel-control-next { top:150px; }
  .rcf-site .rcf-sticky-purchase { padding:12px 4vw calc(12px + env(safe-area-inset-bottom)); gap:10px; }
  .rcf-site .rcf-sticky-purchase .btn-primary { padding:12px 16px; white-space:nowrap; }
  .rcf-site .rcf-sticky-purchase .btn-secondary { padding:10px; max-width:88px; font-size:12px; line-height:1.5; }
  .rcf-site .rcf-footer { padding-top:40px; margin-top:32px; }
  .rcf-site .login-card { margin:32px 5vw!important; padding:24px; }
  .rcf-site .card-body { padding:18px; }
  .rcf-site .rcf-member-nav { margin-top:24px; }
}
@media(max-width:400px) {
  .rcf-site .rcf-logo { max-width:102px; }
  .rcf-site .rcf-search { width:90px; }
  .rcf-site .rcf-header-actions { gap:10px; }
  .rcf-site .rcf-product-grid { gap:14px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .rcf-site * { animation:none!important; transition:none!important; }
  .rcf-site [data-aos] { opacity:1!important; transform:none!important; }
}
/* Match the template's compact single-row desktop navigation. */
@media(min-width:1200px) {
  .rcf-site .rcf-header { display:flex; align-items:center; gap:28px; padding:22px 6vw; }
  .rcf-site .rcf-header>.wordmark { margin-right:auto; font-weight:400; flex-shrink:0; }
  .rcf-site .rcf-navigation { min-width:0; flex:0 0 auto; }
  .rcf-site .rcf-navigation>summary { display:none; }
  .rcf-site .rcf-nav-links { flex-wrap:nowrap; justify-content:flex-end; gap:22px; padding:0; white-space:nowrap; }
  .rcf-site .rcf-nav-links>a, .rcf-site .rcf-nav-links>.rcf-subnav { flex:0 0 auto; width:auto; min-width:0; }
  .rcf-site .rcf-nav-links a.link-underline { display:inline-flex; }
  .rcf-site .rcf-header-actions { gap:16px; }
  .rcf-site .rcf-search { width:90px; }
  .rcf-site .rcf-account>span:last-child { display:none; }
  .rcf-site .rcf-nav-links a.link-underline { width:max-content; opacity:.65; }
  .rcf-site .rcf-nav-links .nav-en { text-transform:uppercase; }
  .rcf-site .rcf-subnav>summary { display:flex; align-items:baseline; gap:8px; width:max-content; }
  .rcf-site .rcf-nav-links>.rcf-subnav+.rcf-subnav { margin-left:4px; }
}
.rcf-site .rcf-auth-links { display:inline-flex; align-items:center; gap:16px; white-space:nowrap; }
.rcf-site .rcf-search-disclosure { position:relative; }
.rcf-site .rcf-search-disclosure>summary { list-style:none; cursor:pointer; white-space:nowrap; font-family:var(--font-serif); font-size:13px; color:var(--ink-soft); }
.rcf-site .rcf-search-disclosure>summary::-webkit-details-marker { display:none; }
.rcf-site .rcf-search-disclosure>summary .icon { font-size:14px; margin-right:6px; }
.rcf-site .rcf-search-disclosure .rcf-search { position:absolute; top:calc(100% + 18px); right:0; width:240px; padding:10px 14px; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-photo); }
.rcf-site .rcf-main .rcf-hero-title { white-space:pre-line; font-size:var(--fs-display); line-height:1.4; font-weight:600; margin:0 0 22px; }
.rcf-site .rcf-main .rcf-hero-title-long { font-size:clamp(26px,2.7vw,36px); }
.rcf-site .rcf-hero-text { min-width:0; }
.rcf-site .rcf-home-hero .rcf-kicker { margin:0 0 20px; }
@media(min-width:1200px) {
  .rcf-site .rcf-header { padding-top:16px; padding-bottom:16px; gap:22px; }
  .rcf-site .rcf-nav-links>.link-underline+.link-underline::before { content:'／'; position:absolute; left:-19px; color:var(--line-strong); font-size:11px; }
  .rcf-site .rcf-nav-links { gap:30px; }
}
@media(max-width:1199px) {
  .rcf-site .rcf-header { grid-template-columns:1fr auto; }
  .rcf-site .rcf-header>.wordmark { white-space:normal; font-weight:400; }
  .rcf-site .rcf-nav-links { flex-direction:column; align-items:stretch; gap:0; max-height:65vh; overflow-y:auto; }
  .rcf-site .rcf-nav-links>a,.rcf-site .rcf-nav-links>span,.rcf-site .rcf-subnav { border-top:1px solid var(--line); padding:12px 0; }
  .rcf-site .rcf-subnav>div { position:static; box-shadow:none; border:0; background:var(--paper-2); }
}
@media(max-width:900px) {
  .rcf-site .rcf-hero-grid { grid-template-columns:1fr; gap:36px; }
  .rcf-site .rcf-hero-spacer { display:none; }
  .rcf-site .rcf-home-hero { padding:40px 6vw 56px; }
  .rcf-site .rcf-hero-image { aspect-ratio:4/5; }
}
