/* =========================================================
   Resets and Base Styles
   ========================================================= */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  -moz-box-sizing:border-box;
  -webkit-box-sizing:border-box;
  -ms-box-sizing:border-box;
}

html{
  font-size:62.5%;
  -ms-overflow-style:scrollbar;
  -webkit-tap-highlight-color:rgba(0,0,0,0);
  overflow:auto;
  scroll-behavior:smooth;
}

@-ms-viewport{ width:device-width; }

/* HTML5 Display Reset */
article,aside,figcaption,figure,footer,header,hgroup,main,section{ display:block; }

/* Basic Text Elements Reset */
p,ul,ol,li,dl,dt,dd,caption,th,td,form,input,textarea,blockquote,address,embed,object,figure,em{
  margin:0;padding:0;font-style:normal;font-size:100%;font-weight:normal;
}

h1,h2,h3,h4,h5,h6{
  margin:0;padding:0;font-style:normal;font-size:100%;font-weight:700;
}

body{
  position:relative;
  margin:0;
  -webkit-text-size-adjust:100%;
  -ms-text-size-adjust:100%;
  -webkit-overflow-scrolling:touch;
  font-family:"Noto Sans JP","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","游ゴシック",YuGothic,"メイリオ",Meiryo,sans-serif;
  font-size:1.4em;
  font-weight:normal;
  line-height:1.8;
  color:#000;
  text-align:left;
  text-rendering:optimizeLegibility;
  height:100%;
  /* 修正: 全面hidden→Xだけhidden / Yはスクロール可 */
  overflow-x:hidden;
  overflow-y:auto;
}

[tabindex="-1"]:focus{ outline:0 !important; }

ol ol,ul ul,ol ul,ul ol{ margin-bottom:0; }
dd{ margin-left:0; }
blockquote{ margin:0 0 1rem; }
figure{ line-height:0; }
dfn{ font-style:italic; }
b,strong{ font-weight:bolder; }
small{ font-size:80%; }

sub,sup{
  position:relative;font-size:75%;line-height:0;vertical-align:baseline;
}
sub{ bottom:-0.25em; }
sup{ top:-0.5em; }

a{
  color:inherit;text-decoration:none;background-color:transparent;
  -webkit-text-decoration-skip:objects;outline:none;
}
a:not([href]):not([tabindex]){ color:inherit;text-decoration:none; }
a:not([href]):not([tabindex]):focus{ outline:0; }

pre,code,kbd,samp{
  font-family:"Noto Sans JP","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","游ゴシック",YuGothic,"メイリオ",Meiryo,sans-serif;
  font-size:1em;
}
pre{ margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar; }

img{ vertical-align:middle;border:none; }
svg:not(:root){ overflow:hidden; }

table{ border-collapse:collapse;border-spacing:0; }
th{ text-align:inherit; }

label{ display:inline-block; }

button{ border-radius:0; }
button:focus{ outline:0; }

input,button,select,optgroup,textarea{
  vertical-align:middle;position:relative;outline:none;margin:0;
  font-family:inherit;font-size:inherit;line-height:inherit;
  box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;
  -webkit-border-radius:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);
}

button,input{ overflow:visible; }
button,select{ text-transform:none; }
button,html [type=button],[type=reset],[type=submit]{ -webkit-appearance:button; }
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{ padding:0;border-style:none; }
input[type=radio],input[type=checkbox]{ box-sizing:border-box;padding:0; }
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{ -webkit-appearance:listbox; }
textarea{ overflow:auto;resize:vertical; }
fieldset{ min-width:0;padding:0;margin:0;border:0; }
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{ height:auto; }
[type=search]{ outline-offset:-2px;-webkit-appearance:none; }
[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{ -webkit-appearance:none; }
::-webkit-file-upload-button{ font:inherit;-webkit-appearance:button; }
output{ display:inline-block; }
ol,ul{ list-style-type:none; }
:focus{ outline:none; }

/* =========================================================
   Custom Font Classes
   ========================================================= */
.mincho{ font-family:"Shippori Mincho",serif;font-weight:400; }
.yu-g{ font-family:"游ゴシック体",YuGothic,"游ゴシック Medium","Yu Gothic Medium","游ゴシック","Yu Gothic","Noto Sans JP",sans-serif;font-weight:400; }
.en{ font-family:"Geomanist",sans-serif;font-weight:400; }

/* =========================================================
   Layout Structure
   ========================================================= */
#breadcrumb{ padding-left:40px;padding-right:40px;padding-top:90px; }
#breadcrumb ol{ padding:0 !important; }

div.page-back{ position:relative; }
div.page-back::after{
  position:fixed;z-index:-1;top:50vh;left:3%;width:34vh;height:90vh;transform:translateY(-50%);
  background:url(../common/img/svg) no-repeat center top/cover;display:block;content:"";
}
div.page-back::before{
  width:100%;height:100%;position:fixed;left:0;right:0;top:0;bottom:0;
  background:url(../common/img/○○) no-repeat #fff center top/cover;display:block;content:"";z-index:-2;
}

div.pageWrap{
  overflow:hidden;position:relative;text-align:left;max-width:550px;width:100%;margin:0 auto;background-color:#fff;
  box-shadow:7px 10px 95px 0 rgba(0,0,0,.29);
}

.container{
  position:relative;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:100%;padding-top:80px;
}

.content{ width:calc(100% - 90px);margin:0 auto; }

.ofj-img{
  width:100%;height:100%;object-fit:cover;object-position:center center;
  font-family:"object-fit:cover;object-position:center center;";
}

/* =========================================================
   Image Animation
   ========================================================= */
.img-animation{ animation:img-opacity .7s cubic-bezier(.4,0,.2,1) forwards;overflow:hidden;position:relative; }
.img-animation::before{
  animation:img-animation .7s cubic-bezier(.4,0,.2,1) forwards;background:#fff;content:"";inset:0;pointer-events:none;position:absolute;z-index:1;
}
@keyframes img-opacity{ 100%{ opacity:1; } }
@keyframes img-animation{ 100%{ transform:translateX(100%); } }

/* =========================================================
   Social Icons
   ========================================================= */
div.sns,ul.sns{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;justify-content:center;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:30px;padding:0 !important;
}
div.sns figure a,ul.sns li a{ display:block; }
ul.sns li{ list-style:none !important; }
ul.sns li a img{ width:40px;height:40px; }

/* =========================================================
   View More Button
   ========================================================= */
.viewmore-btn{
  width:110px;height:45px;border-radius:50px;border:1px solid #fff;
}
.viewmore-btn span{ position:relative;display:block;width:100%;height:100%; }
.viewmore-btn span a{
  position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;
  width:100%;height:100%;color:#000;font-size:1.3rem;letter-spacing:.05em;font-weight:bold;
  -webkit-text-stroke:.2px #000; text-stroke:.2px #fff; padding-top:2px;
}
.viewmore-btn.black{ width:135px;background-color:#000;border:1px solid #000; }
.viewmore-btn.black span a{ color:#fff !important; }

/* =========================================================
   Page Top Button
   ========================================================= */
.pagetop{ display:none;position:fixed;bottom:1.5vw;right:2vw;z-index:999; }
.pagetop img{ width:50px;height:50px; }

/* =========================================================
   Header
   ========================================================= */
header{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-box-align:center;align-items:center;max-width:550px;width:100%;height:55px;position:fixed;z-index:999;
  background-color:transparent; /* 元: #000 / rgba(0,0,0,0.9) */
}
header .header-wrapper{
  width:100%;height:100%;margin:0 auto;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:space-between;justify-content:space-between;
}
header .header-wrapper ul{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:space-between;justify-content:space-between;width:100%;height:100%;
}
header .header-wrapper ul li{ width:calc(100% / 3);position:relative; }
header .header-wrapper ul li:not(:last-child)::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:1px;height:70%;
  /* 改善: 白→薄い黒で常に視認可能 */
  background-color:rgba(0,0,0,.25);
}
header .header-wrapper ul li a{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;
  width:100%;height:100%;font-size:1.5rem;font-weight:bold;letter-spacing:.05em;line-height:1.3;color:#000;
  /* 改善: テキストストロークを外して滲み防止 */
  -webkit-text-stroke:0; text-stroke:0;
}

/* =========================================================
   Footer
   ========================================================= */
footer{ max-width:550px;width:100%;margin:0 auto;background-color:#000; }
footer .footer-wrapper .en{ -webkit-text-stroke:1px #fff; text-stroke:1px #fff; }
footer .footer-wrapper .totop{
  background-color:#fff;width:fit-content;border-radius:10px;margin:30px 0 50px auto;
}
footer .footer-wrapper .totop a{
  display:block;font-size:1.5rem;text-align:center;font-weight:500;padding:15px 20px;
}

/* =========================================================
   Responsive Blocks
   ========================================================= */
.sp-block,.tab-block,.pcsmall-block,.spsmall-block{ display:none; }

/* =========================================================
   Responsive Layout
   ========================================================= */
@media screen and (min-width:1301px){
  div.pageWrap{ margin-left:58%; }
}
@media screen and (min-width:1025px) and (max-width:1300px){
  div.pageWrap{ margin-left:40%; }
}
@media screen and (min-width:1025px){
  .viewmore-btn,
  footer .footer-wrapper a,
  footer .footer-wrapper .totop,
  div.sns a,
  ul.sns li a,
  .news-wrapper .news-list-area ul li a,
  .schedule-wrapper .schedule-list-area ul li a,
  .wp-block-button a{
    transition:all .3s;
  }
  .viewmore-btn:hover,
  footer .footer-wrapper a:hover,
  footer .footer-wrapper .totop:hover,
  div.sns a:hover,
  ul.sns li a:hover,
  .news-wrapper .news-list-area ul li a:hover,
  .schedule-wrapper .schedule-list-area ul li a:hover,
  .wp-block-button a:hover{ opacity:.6; }
}

@media screen and (max-width:549px){
  #breadcrumb{ padding-left:15px;padding-right:15px; }
  .content{ width:calc(100% - 60px);margin:0 auto; }
  .viewmore-btn{ width:100px;height:40px;border-radius:50px; }
  .viewmore-btn span a{ font-size:1.5rem; }
  .viewmore-btn.black{ width:135px;background-color:#000;border:1px solid #000; }
  header .header-wrapper ul li a{
    padding:10px;font-size:1.5rem;-webkit-text-stroke:0;text-stroke:0;
  }
  footer{ width:100%;background-color:#000; }
  footer .footer-wrapper .totop{ margin:30px 0 30px auto; }
  footer .footer-wrapper .totop a{ font-size:1.4rem; }
}
@media screen and (max-width:374px){ .sp-block{ display:block; } }

/* =========================================================
   Animation Utilities
   ========================================================= */
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(30px); }
  to{ opacity:1; transform:translateY(0); }
}
.fadeUp{ animation-name:fadeUp;animation-duration:1s;animation-fill-mode:forwards;animation-delay:.5s; }
.fadeIn-trigger{ opacity:0; }
.delay-time02,.fade-delay02{ animation-delay:1s; }
.fade-delay03{ animation-delay:1.2s; }
.fade-delay04{ animation-delay:1.4s; }

/* =========================================================
   Modal Styles
   ========================================================= */
.modal__overlay{ cursor:pointer;background-color:rgba(30,30,30,.9);z-index:1000; }

.modalwrap-slide .modal-inner-contents{
  position:absolute;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);
  top:50%;left:50%;width:80%;padding:50px 100px;background:#fff;border:1px solid #7a7a7a;cursor:default;z-index:888;
}
.modalwrap-slide .modal-inner-contents .modal-inner{ overflow-y:scroll;height:100%; }
.modalwrap-slide .modal-inner-contents .modal-inner figure{ text-align:center;width:80%;margin:0 auto; }
.modalwrap-slide .modal-inner-contents .modal-inner figure img{ width:100%;height:100%;max-width:100%;max-height:100%; }
.modalwrap-slide .modal-inner-contents .closemodal-btn{
  position:absolute;top:20px;right:20px;width:40px;height:40px;text-indent:100%;white-space:nowrap;overflow:hidden;cursor:pointer;background:#000;
}
.modalwrap-slide .modal-inner-contents .closemodal-btn:before{
  display:block;content:"";width:40px;height:40px;background:url(../img/svg) center/contain no-repeat;background-size:20px 20px;z-index:10;
}

@media screen and (max-width:959px) and (orientation:landscape){
  .modalwrap-slide .modal-inner-contents{
    overflow-y:scroll;max-width:70vw;max-height:90vh;padding:40px 35px 20px;
  }
  .modalwrap-slide .modal-inner-contents .icon{ display:none; }
  .modalwrap-slide .modal-inner-contents .modal-btn-list{
    display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;
  }
  .modalwrap-slide .modal-inner-contents .modal-btn-list li{ width:49%;margin:0; }
  .modalwrap-slide .modal-inner-contents .modal-btn-list li:not(:last-child){ margin:0 2% 0 0; }
}

@media screen and (max-width:959px){
  .modalwrap-slide .modal-inner-contents{
    padding:10px;width:80%;height:auto;max-height:80%;
  }
  .modalwrap-slide .modal-inner-contents .modal-inner{ padding-top:0; }
  .modalwrap-slide .modal-inner-contents .modal-inner figure{ width:100%; }
  .modalwrap-slide .modal-inner-contents .modal-inner figure img{ width:100%; }
  .modalwrap-slide .modal-inner-contents .closemodal-btn{ top:5px;right:5px;width:30px;height:30px; }
  .modalwrap-slide .modal-inner-contents .closemodal-btn:before{ width:30px;height:30px;background-size:14px 14px; }
}

/* =========================================================
   Fade In on Scroll
   ========================================================= */
.fadein{ opacity:0;transform:translate(0,0);transition:all 1.5s; }
.fadein.fadein-left{ transform:translate(-30px,0); }
.fadein.fadein-right{ transform:translate(30px,0); }
.fadein.fadein-up{ transform:translate(0,-30px); }
.fadein.fadein-bottom{ transform:translate(0,30px); }
.fadein.scrollin{ opacity:1 !important;transform:translate(0,0) !important; }

/* =========================================================
   WordPress Content Adjustments
   ========================================================= */
.l-mainContent__inner > .post_content{ margin:0 !important;padding:0 !important; }
.post_content{ line-height:initial; }
.post_content h2{ margin:0 !important;background-color:transparent !important;padding:0 !important; }
.post_content h2::before{ content:none; }

/* =========================================================
   Title Wrap
   ========================================================= */
.title-wrap{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;
  margin-bottom:60px;
}
.title-wrap .content-title h2{
  color:#000;font-weight:bold;-webkit-text-stroke:1px #000;text-stroke:1px #000;font-size:3.3rem;letter-spacing:.1em;
}

/* =========================================================
   WordPress Button
   ========================================================= */
.wp-block-button{ width:130px;height:40px; }
.wp-block-button a{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;
  padding:2px 0 0 0 !important;width:100%;height:100%;font-size:1.6rem;letter-spacing:.05em;font-weight:bold;
  -webkit-text-stroke:.2px #000;text-stroke:.2px #000;line-height:1;
}

/* =========================================================
   Hero Section
   ========================================================= */
.hero-section h1 img{ width:100%;height:auto; }

/* =========================================================
   News
   ========================================================= */
.news-wrapper{ padding:125px 0 70px; }
.news-wrapper .news-list-area ul{ padding-left:0 !important;list-style:none !important; }

/* 修正: 開き波括弧欠落を補完 */
.news-wrapper .news-list-area ul li{
  color:#000;font-size:1.6rem;
}

.news-wrapper .news-list-area ul li:not(:last-child){ margin-bottom:30px !important; }
.news-wrapper .news-list-area ul li a{ position:relative;display:block; }
.news-wrapper .news-list-area ul li a dl{ color:#000; }
.news-wrapper .news-list-area ul li a dl dt{ margin-bottom:10px;color:#bfbfbf; }
.news-wrapper .news-list-area ul li a dl dt time{ font-size:1.6rem;font-weight:bold; }
.news-wrapper .news-list-area ul li a dl dd{ font-size:1.6rem;line-height:1.6; }

/* =========================================================
   Schedule
   ========================================================= */
.schedule-wrapper{ padding:25px 0 45px; }
.schedule-wrapper .schedule-list-area ul{ padding-left:0 !important;list-style:none !important; }
.schedule-wrapper .schedule-list-area ul li:not(:last-child){ margin-bottom:30px !important; }
.schedule-wrapper .schedule-list-area ul li p{ color:#000;font-size:1.6rem; }

.schedule-wrapper .schedule-list-area ul li a{ position:relative;display:block; }

.schedule-wrapper .schedule-list-area ul li a dl{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:space-between;justify-content:space-between; /* 修正: space-betwe → space-between */
  color:#000;
}
.schedule-wrapper .schedule-list-area ul li a dl dt{ margin-bottom:15px;width:170px; }

.schedule-wrapper .schedule-list-area ul li a dl dt time{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-box-align:flex-end;align-items:flex-end;
}

/* 修正: -webkit-flex-wrap: wr → wrap */
.schedule-wrapper .schedule-list-area ul li a dl dt time .date{
  display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;
  color:#000;font-size:2.8rem;font-weight:bold;
}

.schedule-wrapper .schedule-list-area ul li a dl dt time .date .month{
  position:relative;padding-right:.15em;
}

/* 改善: px固定→相対値でズレ軽減 */
.schedule-wrapper .schedule-list-area ul li a dl dt time .date .month::after{
  position:absolute;content:"";top:-.2em;left:.9em;width:.5px;height:1.6em;background-color:#000;transform:rotate(40deg);
}

.schedule-wrapper .schedule-list-area ul li a dl dt time .date .day{
  margin-left:.1em;padding-left:.1em;display:block;margin-top:30px;
}
.schedule-wrapper .schedule-list-area ul li a dl dt time .date .week{
  font-size:1.5rem;font-weight:bold;letter-spacing:.05em;padding-left:10px;margin-bottom:7px;
}

.schedule-wrapper .schedule-list-area ul li a dl dd{ -webkit-flex:1;flex:1; }
.schedule-wrapper .schedule-list-area ul li a dl dd p{ font-size:1.6rem;line-height:1.6; }
.schedule-wrapper .schedule-list-area ul li a dl dd span{
  display:block;font-weight:900;margin-bottom:10px;color:#bfbfbf;
}

/* =========================================================
   Profile
   ========================================================= */
.profile-wrapper{ background-color:#e6e6e6;padding:80px 0;margin-bottom:0 !important; }
.profile-wrapper h2{ text-align:center;margin-bottom:40px; }
.profile-wrapper h2 img{ width:70% !important;height:auto; }

/* =========================================================
   Left Big Copy (JP)
   ========================================================= */
:root{ --hero-top:200px; }

.pc-hero-copy{
  position:fixed;left:clamp(24px,4.8vw,72px);top:var(--hero-top);
  width:min(50vw,780px);pointer-events:none;line-height:1.02;color:#111;
  text-rendering:geometricPrecision;font-feature-settings:"palt" 1,"kern" 1;
  opacity:0;animation:heroRootIn .5s ease-out .12s forwards;
}
.pc-hero-copy .line1,.pc-hero-copy .line2{
  font-weight:800;letter-spacing:.02em;font-size:clamp(40px,4.6vw,96px);
}
.pc-hero-copy .line2{ margin-top:.08em; }
.pc-hero-copy .line3{
  font-weight:800;letter-spacing:.02em;font-size:clamp(32px,4.6vw,80px);margin-top:.14em;
}
.pc-hero-copy .line4{
  font-weight:500;letter-spacing:.05em;font-size:clamp(16px,1.8vw,28px);margin-top:.6em;color:#555;
  -webkit-text-stroke:0; text-stroke:0; /* 可読性改善 */
}

/* 行アニメーション */
.pc-hero-copy .line1,.pc-hero-copy .line2,.pc-hero-copy .line3,.pc-hero-copy .line4{
  position:relative;display:inline-block;opacity:0;transform:translateY(10px);
  animation:heroLineTextIn .7s cubic-bezier(.2,.75,.25,1) forwards;
}
.pc-hero-copy .line1{ animation-delay:.18s; }
.pc-hero-copy .line2{ animation-delay:.30s; }
.pc-hero-copy .line3{ animation-delay:.42s; }
.pc-hero-copy .line4{ animation-delay:.60s; }

/* ハイライト帯 */
.pc-hero-copy .line1::before,
.pc-hero-copy .line2::before,
.pc-hero-copy .line3::before,
.pc-hero-copy .line4::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#C0D3FF,#E2EEFF,#C0D3FF);
  transform:translateX(-105%);opacity:1;mix-blend-mode:normal;
  animation:heroLineWipe .7s cubic-bezier(.3,.8,.2,1) forwards;
}
.pc-hero-copy .line1::before{ animation-delay:.14s; }
.pc-hero-copy .line2::before{ animation-delay:.26s; }
.pc-hero-copy .line3::before{ animation-delay:.38s; }
.pc-hero-copy .line4::before{ animation-delay:.56s; }

/* Root / Text / Wipe */
@keyframes heroRootIn{ from{opacity:0;} to{opacity:1;} }
@keyframes heroLineTextIn{
  0%{ opacity:0; transform:translateY(14px); }
  100%{ opacity:1; transform:translateY(0); }
}
@keyframes heroLineWipe{
  0%{ transform:translateX(-105%);opacity:1; }
  50%{ transform:translateX(3%);opacity:1; }
  100%{ transform:translateX(105%);opacity:0; }
}

/* レイアウト調整 */
@media (max-width:1600px){
  .pc-hero-copy{ width:min(52vw,740px); }
}
@media (max-width:1400px){
  .pc-hero-copy{ top:calc(var(--hero-top) + 16px);width:min(56vw,700px); }
  .pc-hero-copy .line1,.pc-hero-copy .line2{ font-size:clamp(34px,4.4vw,78px); }
  .pc-hero-copy .line3{ font-size:clamp(28px,3.8vw,70px); }
  .pc-hero-copy .line4{ font-size:clamp(15px,1.7vw,24px); }
}
@media (max-width:1300px){ .pc-hero-copy{ display:none; } }

/* =========================================================
   Background / Brand Lines (PC only)
   ========================================================= */
@media (min-width:1301px){
  body::before{
    content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(circle at 10% 0%,rgba(66,183,255,.45) 0,rgba(66,183,255,.20) 24%,transparent 60%),
      radial-gradient(circle at 90% 100%,rgba(66,183,255,.35) 0,rgba(66,183,255,.15) 26%,transparent 65%),
      linear-gradient(to bottom,#f5f7fc 0%,#eef3fb 40%,#f9fafc 100%);
    background-repeat:no-repeat;
    background-size:220% 220%,220% 220%,100% 100%;
    background-position:0% 0%,100% 100%,0% 0%;
    animation:cort-bg-move 10s ease-in-out infinite;
  }
  @keyframes cort-bg-move{
    0%{ background-position:0% 0%,100% 100%,0% 0%; }
    50%{ background-position:60% 20%,40% 80%,0% 40%; }
    100%{ background-position:20% 60%,80% 20%,0% 80%; }
  }
  body::after{
    content:"CORTOMUSO  /  DESIGN  ·  VIDEO  ·  SNS";
    position:fixed;left:32px;top:50%;transform:translateY(-50%) rotate(-90deg);
    transform-origin:left top;font-size:1.0rem;letter-spacing:.32em;color:#bcc8dd;font-weight:600;opacity:.95;pointer-events:none;z-index:0;
  }
}
@media (prefers-reduced-motion:reduce){ body::before{ animation:none !important; } }
@media (max-width:1300px){
  body::before,body::after{ content:none; }
}

/* =========================================================
   A11y: Focus Visible
   ========================================================= */
a:focus-visible,button:focus-visible{
  outline:2px solid #2055ff;outline-offset:2px;
}

/* リンクを置く場合の安全策 */
.pc-hero-copy a{ pointer-events:auto; }