/*
Theme Name: Mazoch Lab Theme
Theme URI: https://mazochlab.com/
Author: Mazoch Lab
Description: Mazoch Lab専用の黒・ダークパープル・ゴールド基調テーマ。Core 4.1.1対応。
Version: 4.1.8
Text Domain: mazoch-lab-v3
*/
:root{--ml-bg:#070509;--ml-bg2:#0d0911;--ml-panel:#15101c;--ml-panel2:#1b1324;--ml-text:#f5f0e9;--ml-muted:#aaa0b0;--ml-gold:#c9a34a;--ml-gold2:#ead59a;--ml-red:#b31d32;--ml-border:rgba(201,163,74,.28);--ml-radius:18px;--ml-shadow:0 16px 45px rgba(0,0,0,.35);--ml-container:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -15%,#1a1023 0,var(--ml-bg) 36%,#040305 100%);color:var(--ml-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.65}img{max-width:100%;height:auto}a{color:inherit;text-decoration:none}a:hover{color:var(--ml-gold2)}button,input,select,textarea{font:inherit}.ml-container{width:min(calc(100% - 40px),var(--ml-container));margin-inline:auto}.ml-main{min-height:72vh}.ml-site-header{position:sticky;top:0;z-index:80;background:rgba(7,5,9,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--ml-border)}.ml-header-inner{min-height:78px;display:flex;align-items:center;gap:28px}.ml-brand{font-family:Georgia,"Times New Roman",serif;font-size:clamp(25px,3vw,39px);font-weight:700;color:var(--ml-gold2);white-space:nowrap}.ml-nav{margin-left:auto;display:flex;align-items:center;gap:23px;font-size:14px;font-weight:800}.ml-menu-button{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--ml-border);border-radius:50%;background:var(--ml-panel);color:#fff}.ml-section{padding:30px 0 8px}.ml-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.ml-section-title{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(25px,2.6vw,37px)}.ml-section-link{color:var(--ml-gold2);font-size:14px}.ml-subtle{color:var(--ml-muted)}.ml-banner-shell{overflow:hidden;border:1px solid var(--ml-border);border-radius:var(--ml-radius);background:linear-gradient(135deg,rgba(201,163,74,.07),rgba(55,24,68,.22));box-shadow:var(--ml-shadow)}.ml-banner-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.ml-banner-track::-webkit-scrollbar{display:none}.ml-banner-item{flex:0 0 100%;scroll-snap-align:start}.ml-banner-item a{display:block}.ml-banner-item img{display:block;width:100%;height:clamp(95px,11vw,180px);object-fit:contain;background:#070509}.ml-search-panel{padding:18px;border:1px solid var(--ml-border);border-radius:var(--ml-radius);background:linear-gradient(135deg,rgba(27,19,36,.96),rgba(12,8,16,.96));box-shadow:var(--ml-shadow)}.ml-search-form{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;gap:12px}.ml-search-form input,.ml-search-form select,.ml-filter-form input,.ml-filter-form select{min-height:50px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#0b0810;color:#fff;padding:0 14px}.ml-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--ml-gold);border-radius:12px;background:var(--ml-gold);color:#09070a;font-weight:900;cursor:pointer}.ml-button:hover{background:var(--ml-gold2);color:#09070a}.ml-service-row,.ml-chip-row,.ml-horizontal-row{display:flex;gap:18px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--ml-gold) transparent}.ml-service-row{align-items:flex-start}.ml-service-card,.ml-chip{flex:0 0 auto;scroll-snap-align:start;border:1px solid var(--ml-border);background:var(--ml-panel);color:#f7f0e6}.ml-service-card{width:clamp(380px,32vw,480px);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;align-self:flex-start;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.28);transition:transform .2s,border-color .2s}.ml-service-card:hover{transform:translateY(-4px);border-color:rgba(201,163,74,.65)}.ml-service-image{display:block;width:100%;height:auto;line-height:0;background:transparent}.ml-service-image img{display:block;width:100%;height:auto;max-height:none;object-fit:initial}.ml-service-caption{display:block;padding:12px 16px;text-align:center;font-size:15px}.ml-service-card.no-name{background:transparent;line-height:0}.ml-service-card.no-name .ml-service-image{border-radius:15px}.ml-chip{border-radius:999px;padding:10px 17px;font-weight:750;white-space:nowrap}.ml-work-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.ml-horizontal-row .ml-work-card{flex:0 0 clamp(285px,23vw,350px);scroll-snap-align:start}.ml-work-card{position:relative;min-width:0;overflow:hidden;border:1px solid rgba(201,163,74,.2);border-radius:17px;background:linear-gradient(180deg,rgba(24,16,32,.98),rgba(10,7,13,.99));box-shadow:0 12px 32px rgba(0,0,0,.25);transition:transform .2s,border-color .2s}.ml-work-card:hover{transform:translateY(-5px);border-color:rgba(201,163,74,.65)}.ml-card-image-wrap{position:relative;aspect-ratio:3/4.25;overflow:hidden;background:#050407}.ml-card-image-wrap img{position:absolute;top:0;height:100%;max-width:none}.ml-card-image-mode-full img{left:0;width:100%;object-fit:contain}.ml-card-image-mode-right img{right:0;width:200%;object-fit:cover;object-position:right center}.ml-card-image-mode-left img{left:0;width:200%;object-fit:cover;object-position:left center}.ml-sale-badge{position:absolute;z-index:3;left:10px;top:10px;display:inline-flex;align-items:center;min-height:32px;padding:0 11px;border:1px solid rgba(255,255,255,.4);border-radius:7px;background:linear-gradient(135deg,#d5263f,#8d1427);box-shadow:0 6px 16px rgba(0,0,0,.4);color:#fff;font-size:12px;font-weight:950;letter-spacing:.04em}.ml-card-body{padding:14px 15px 16px}.ml-card-title{margin:0 0 8px;font-size:16px;line-height:1.48;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ml-card-meta{min-height:20px;color:var(--ml-muted);font-size:12px}.ml-price{display:flex;align-items:center;gap:9px;margin-top:8px;color:var(--ml-gold2);font-weight:900}.ml-price del{color:#877d8b;font-size:12px;font-weight:500}.ml-breadcrumb{padding:22px 0 8px;color:var(--ml-muted);font-size:13px}.ml-breadcrumb a{color:var(--ml-gold2)}.ml-archive-header{padding:28px 0 8px}.ml-archive-title{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,4vw,53px)}.ml-filter-panel{margin:18px 0 28px;padding:18px;border:1px solid var(--ml-border);border-radius:16px;background:var(--ml-panel)}.ml-filter-form{display:grid;grid-template-columns:2fr repeat(5,minmax(130px,1fr)) auto;gap:10px;align-items:center}.ml-filter-check{display:flex;align-items:center;gap:7px;white-space:nowrap}.ml-single{padding:28px 0 60px}.ml-work-hero{display:grid;grid-template-columns:minmax(300px,470px) minmax(0,1fr);gap:44px;align-items:start}.ml-detail-image-frame{position:sticky;top:100px;padding:18px;border:1px solid var(--ml-border);border-radius:18px;background:#050407;box-shadow:var(--ml-shadow)}.ml-detail-image{display:block;width:100%;max-height:790px;object-fit:contain}.ml-work-title{margin:0 0 20px;font-size:clamp(31px,4vw,58px);line-height:1.25}.ml-work-facts{margin:0;border-top:1px solid rgba(255,255,255,.1)}.ml-work-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}.ml-work-facts dt{color:var(--ml-muted)}.ml-work-facts dd{margin:0}.ml-buy-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px;padding:20px;border:1px solid rgba(201,163,74,.36);border-radius:16px;background:linear-gradient(135deg,rgba(201,163,74,.09),rgba(60,25,73,.2))}.ml-buy-box .ml-button{margin-left:auto}.ml-content-panel{margin-top:32px;padding:25px;border:1px solid rgba(201,163,74,.21);border-radius:18px;background:rgba(20,13,26,.88)}.ml-video,.ml-video-wrap iframe,.ml-video-wrap video{width:100%;aspect-ratio:16/9;border:0;border-radius:14px;background:#000}.ml-official-embed{min-height:260px;overflow:hidden;border-radius:14px;background:#000}.ml-official-embed iframe,.ml-official-embed video{max-width:100%!important}.ml-pagination{display:flex;justify-content:center;gap:8px;padding:35px 0}.ml-pagination .page-numbers{display:grid;place-items:center;min-width:42px;height:42px;border:1px solid var(--ml-border);border-radius:10px}.ml-pagination .current{background:var(--ml-gold);color:#080609}.ml-empty{padding:42px;border:1px solid var(--ml-border);border-radius:16px;background:var(--ml-panel);color:var(--ml-muted);text-align:center}.ml-site-footer{margin-top:60px;border-top:1px solid var(--ml-border);background:#040305}.ml-footer-inner{display:flex;justify-content:space-between;gap:25px;padding:34px 0;color:var(--ml-muted);font-size:13px}.ml-footer-links{display:flex;gap:16px;flex-wrap:wrap}.screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:1250px){.ml-work-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ml-filter-form{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.ml-service-card{width:min(86vw,440px)}.ml-container{width:min(calc(100% - 24px),var(--ml-container))}.ml-nav{display:none;position:absolute;left:12px;right:12px;top:70px;flex-direction:column;padding:18px;border:1px solid var(--ml-border);border-radius:14px;background:#0b0810}.ml-nav.is-open{display:flex}.ml-menu-button{display:block}.ml-search-form,.ml-filter-form{grid-template-columns:1fr}.ml-work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.ml-horizontal-row .ml-work-card{flex-basis:clamp(245px,68vw,315px)}.ml-work-hero{grid-template-columns:1fr;gap:25px}.ml-detail-image-frame{position:static;max-width:620px;margin-inline:auto}.ml-footer-inner{flex-direction:column}}@media(max-width:570px){.ml-service-card{width:86vw;max-width:420px}.ml-service-caption{font-size:14px;padding:10px 12px}.ml-header-inner{min-height:68px}.ml-brand{font-size:26px}.ml-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ml-card-body{padding:10px}.ml-card-title{font-size:13px}.ml-horizontal-row .ml-work-card{flex-basis:78vw;max-width:305px}.ml-section{padding-top:24px}.ml-work-facts>div{grid-template-columns:100px minmax(0,1fr);gap:10px}.ml-buy-box .ml-button{width:100%;margin-left:0}.ml-banner-item img{height:95px}}


/* Ver.4.1.2: 作品詳細の購入導線 */
.ml-buy-button{white-space:nowrap}
.ml-after-video-cta{
  display:flex;
  justify-content:center;
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.09)
}
.ml-button-large{
  width:min(100%,620px);
  min-height:62px;
  padding-inline:30px;
  font-size:18px;
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.32)
}
.ml-mobile-sticky-buy{display:none}

@media(max-width:570px){
  body.single-ml_work{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .ml-after-video-cta{margin-top:18px;padding-top:18px}
  .ml-button-large{min-height:56px;font-size:16px}
  .ml-mobile-sticky-buy{
    position:fixed;
    z-index:100;
    left:0;
    right:0;
    bottom:0;
    display:block;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid rgba(201,163,74,.42);
    background:rgba(7,5,9,.94);
    backdrop-filter:blur(14px);
    box-shadow:0 -10px 30px rgba(0,0,0,.38)
  }
  .ml-mobile-sticky-buy .ml-button{
    width:100%;
    min-height:54px;
    font-size:15px
  }
}


/* Ver.4.1.5: DUGAカード画像表示 */
.ml-card-image-mode-right img,
.ml-card-image-mode-left img{
  top:0;
  width:200%;
  height:100%;
  max-width:none;
  object-fit:cover
}
.ml-card-image-mode-right img{
  left:auto;
  right:0;
  object-position:right center
}
.ml-card-image-mode-left img{
  left:0;
  right:auto;
  object-position:left center
}




/* Ver.4.1.6: おすすめサービスの広告下余白を確実に除去 */
.ml-service-card{
  height:auto !important;
  min-height:0 !important;
  align-self:flex-start !important;
}
.ml-service-card.no-name{
  padding:0 !important;
  line-height:0 !important;
  background:transparent !important;
}
.ml-service-card.no-name .ml-service-image{
  position:relative;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 1;
  overflow:hidden;
  line-height:0;
  background:#070509;
}
.ml-service-card.no-name .ml-service-image img{
  position:absolute;
  inset:0;
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:top center !important;
}
.ml-service-card.has-name .ml-service-image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:3 / 1;
  overflow:hidden;
  line-height:0;
  background:#070509;
}
.ml-service-card.has-name .ml-service-image img{
  position:absolute;
  inset:0;
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:top center !important;
}


/* Ver.4.1.7: おすすめサービスは広告画像だけ表示 */
.ml-service-card,
.ml-service-card:hover,
.ml-service-card.no-name,
.ml-service-card.has-name{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
.ml-service-card .ml-service-image,
.ml-service-card.no-name .ml-service-image,
.ml-service-card.has-name .ml-service-image{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.ml-service-card .ml-service-image img{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}


/* Ver.4.1.8: おすすめサービスのバナーを見切れず全体表示 */
.ml-service-card,
.ml-service-card.no-name,
.ml-service-card.has-name{
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
}
.ml-service-card .ml-service-image,
.ml-service-card.no-name .ml-service-image,
.ml-service-card.has-name .ml-service-image{
  position:static !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
  line-height:0 !important;
}
.ml-service-card .ml-service-image img,
.ml-service-card.no-name .ml-service-image img,
.ml-service-card.has-name .ml-service-image img{
  position:static !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
}
