/*
Theme Name: 文学のまち大津
Version: 1.0.0
*/

  :root{
    --kasumi:#EEF2F6; --washi:#FFFFFF; --koai:#3D709C; --koai-deep:#2D5677;
    --mizu:#A7BDD2; --mizu-soft:#D2DDE9;
    --wakaba:#79988E; --asahi:#D8A98F; --shu:#C6876E; --shu-deep:#B5755C;
    --sakura:#E6ECF3; --sumi:#333A49; --sumi-soft:#6F7A87; --line:#D8E0E9;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--kasumi); color:var(--sumi);
    font-family:"Zen Kaku Gothic New",sans-serif; line-height:1.9; -webkit-font-smoothing:antialiased;}
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .mincho{font-family:"Noto Serif JP",serif;}
  .latin{font-family:"Cormorant Garamond",serif;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
  .tategaki{writing-mode:vertical-rl; text-orientation:upright; letter-spacing:.18em;}

  /* header */
  header.site{position:sticky; top:0; z-index:50; background:#ffffff; border-bottom:1px solid var(--line);}
  .nav{display:flex; align-items:center; gap:30px; height:70px;}
  .brand{font-family:"Noto Serif JP",serif; font-weight:700; font-size:20px; letter-spacing:.05em;
    margin-right:auto; display:flex; align-items:center; gap:10px;}
  .shiori{width:11px; height:24px; background:var(--shu); border-radius:0 0 3px 3px; display:inline-block;}
  .nav .link{font-size:14px;}
  .nav .link:hover{color:var(--koai-deep);}
  .contact{font-size:13px; border:1px solid var(--koai); color:var(--koai-deep); padding:8px 17px; border-radius:999px;}
  .contact:hover{background:rgba(94,154,156,.08);}
  .hamburger{display:none; background:none; border:0; font-size:24px; color:var(--sumi); cursor:pointer;}
  #mnav{display:none;}

  /* buttons */
  .btn{display:inline-flex; align-items:center; gap:9px; font-weight:700; border-radius:999px; cursor:pointer; transition:.2s;}
  .btn-lg{padding:14px 30px; font-size:15px;}
  .btn-primary{background:var(--shu); color:#fff; border:0;}
  .btn-primary:hover{background:var(--shu-deep);}
  .btn-ghost{border:1px solid var(--koai); color:var(--koai-deep); background:transparent;}
  .btn-ghost:hover{background:rgba(94,154,156,.08);}

  /* type */
  .eyebrow{font-family:"Cormorant Garamond",serif; font-style:italic; letter-spacing:.05em; color:var(--koai-deep); font-size:21px;}
  .kicker{font-size:12px; letter-spacing:.3em; color:var(--sumi-soft); font-weight:500;}
  h2.sec{font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(26px,3.4vw,34px); letter-spacing:.04em; margin:8px 0 8px;}
  .lead{color:var(--sumi-soft); max-width:620px; font-size:15px;}
  .more{color:var(--koai-deep); font-size:14px; font-weight:500;}
  .more:hover{color:var(--shu-deep);}

  section{padding:82px 0;}
  .sec-head{margin-bottom:36px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap;}

  .card{background:var(--washi); border:1px solid var(--line); border-radius:22px;}
  .soft{}
  .wave{height:2px; background:linear-gradient(90deg,transparent,var(--koai),transparent); opacity:.4;}

  .tag{display:inline-block; font-size:12px; padding:4px 12px; border-radius:999px; background:rgba(121,152,142,.18); color:#5d7a6f;}
  .tag-koai{background:rgba(94,154,156,.15); color:var(--koai-deep);}
  .shiori-tab{display:inline-block; background:var(--shu); color:#fff; font-size:12px; font-weight:700; padding:5px 14px 10px; border-radius:0 0 9px 9px;}

  /* hero */
  .hero{position:relative; overflow:hidden;
    background:radial-gradient(120% 90% at 88% 4%, rgba(235,116,74,.14), transparent 52%),
               linear-gradient(180deg,#EAF4FA 0%,#E6F2F9 50%,#CFE6F2 100%);}
  .hero-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; padding:74px 0 86px;}
  .hero-h{font-family:"Noto Serif JP",serif; font-weight:800; font-size:clamp(38px,5vw,58px); line-height:1.34; letter-spacing:.05em; margin:8px 0 14px;}
  .hero-figure{position:relative; border-radius:26px; overflow:hidden; aspect-ratio:4/4.4;}
  .hero-figure img{width:100%; height:100%; object-fit:cover;}
  .hero-figure-wrap{position:relative;}
  .scene{width:100%; height:auto; display:block; border-radius:24px; box-shadow:0 30px 60px -34px rgba(45,86,119,.55);}
  .kotonoha{display:inline-flex; gap:7px; padding:18px 13px; background:var(--washi); margin-bottom:18px; border-radius:42% 58% 56% 44% / 62% 42% 58% 38%; box-shadow:0 14px 30px -16px rgba(45,86,119,.5); transform:rotate(-2deg);}
  .kotonoha span{writing-mode:vertical-rl; font-family:"Noto Serif JP",serif; font-weight:600; letter-spacing:.2em; font-size:14px; color:var(--sumi);}
  .hero-poem{position:absolute; top:24px; right:22px; color:#fff; font-size:18px; text-shadow:0 1px 8px rgba(0,0,0,.4);}
  .figtag{position:absolute; left:16px; bottom:16px; font-size:11px; background:rgba(252,250,244,.85); color:var(--koai-deep); padding:5px 12px; border-radius:999px;}
  .hero-wave{position:absolute; left:0; right:0; bottom:-1px; height:60px;}
  .brand-logo{height:36px; width:auto; display:block;}
  .fv-grid{display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:stretch; padding:40px 0 56px;}
  .fv-left{display:flex; flex-direction:column;}
  .fv-illust-s{width:100%; height:auto; border-radius:14px; display:block;}
  .fv-logo-block{margin-top:auto; padding-top:42px;}
  .fv-logo{width:min(100%,452px); height:auto; display:block;}
  .fv-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:30px;}
  .fv-right{display:flex;}
  .fv-illust-l{width:100%; height:auto; border-radius:16px; object-fit:cover; display:block;}
  .sns-btn.on-dark{background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.55); color:#fff;}
  .sns-btn.on-dark:hover{background:rgba(255,255,255,.2); border-color:#fff;}

  /* 特集 grid */
  .feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .feat{overflow:hidden; display:flex; flex-direction:column; transition:.2s;}
  .feat:hover{transform:translateY(-3px);}
  .flyer{position:relative; aspect-ratio:3/4; display:flex; align-items:center; justify-content:center;}
  ruby rt{font-size:.38em; color:var(--koai-deep); font-weight:500; letter-spacing:.12em;}
  .flyer .lbl{font-size:12px; color:var(--koai-deep); background:rgba(252,250,244,.8); padding:5px 12px; border-radius:999px;}
  .feat-body{padding:10px 20px 20px;}
  .feat-date{font-family:"Cormorant Garamond",serif; color:var(--sumi-soft); font-size:16px; letter-spacing:.03em; margin:6px 0;}
  .feat-title{font-family:"Noto Serif JP",serif; font-weight:700; font-size:18px; margin:3px 0 10px;}

  /* upcoming list */
  .up-row{display:grid; grid-template-columns:88px 1fr auto; gap:18px; align-items:center; padding:18px 4px;}
  .up-thumb{width:88px; height:64px; border-radius:12px;}
  .up-date{font-family:"Cormorant Garamond",serif; font-size:17px; color:var(--koai-deep);}

  /* news */
  .news-row{display:grid; grid-template-columns:120px 90px 1fr; gap:18px; align-items:center; padding:16px 4px; border-bottom:1px solid var(--line);}
  .news-cat{font-size:11px; padding:4px 10px; border-radius:999px; text-align:center;}
  .cat-info{background:rgba(94,154,156,.15); color:var(--koai-deep);}
  .cat-report{background:rgba(121,152,142,.18); color:#5d7a6f;}
  .cat-lit{background:rgba(235,116,74,.16); color:var(--shu-deep);}
  .news-date{font-family:"Cormorant Garamond",serif; color:var(--sumi-soft); font-size:16px;}

  /* about band */
  .about{background:linear-gradient(180deg,var(--sora),#ffffff);}
  .about-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-top:18px;}
  .about-switch{display:flex; align-items:center; gap:10px; justify-content:flex-end; margin-bottom:12px; flex-wrap:wrap;}
  .as-label{font-size:11px; color:var(--sumi-soft);}
  .as-tabs{display:inline-flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; background:var(--washi);}
  .as-tab{padding:6px 16px; border:0; background:transparent; font-size:12.5px; color:var(--sumi-soft); cursor:pointer; font-family:inherit;}
  .as-tab.active{background:var(--koai); color:#fff;}
  .g-stage{position:relative; aspect-ratio:4/3; border-radius:12px; overflow:hidden; background:var(--kasumi);}
  .g-slide{position:absolute; inset:0; opacity:0; transition:opacity .6s ease; background-size:cover; background-position:center;}
  .g-slide.active{opacity:1;}
  .g-slide.flyer{background:#DCEFF8; display:flex; align-items:center; justify-content:center;}
  .g-slide.flyer .fl{color:var(--sumi-soft); font-size:13px; letter-spacing:.1em;}
  .g-cap{position:absolute; left:0; right:0; bottom:0; padding:34px 16px 13px; font-size:13px; color:#fff; background:linear-gradient(transparent, rgba(45,86,119,.82));}
  .g-arrow{position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.85); border:0; cursor:pointer; font-size:19px; color:var(--sumi); display:flex; align-items:center; justify-content:center;}
  .g-arrow:hover{background:#fff;} .g-arrow.prev{left:10px;} .g-arrow.next{right:10px;}
  .g-dots{display:flex; gap:8px; justify-content:center; margin-top:14px;}
  .g-dots button{width:8px; height:8px; border-radius:50%; border:0; background:var(--line); cursor:pointer; padding:0;}
  .g-dots button.active{background:var(--koai);}
  .theme{font-family:"Noto Serif JP",serif; font-weight:800; font-size:clamp(26px,3.6vw,38px); letter-spacing:.06em;}
  .writers{display:flex; gap:22px; flex-wrap:wrap; margin-top:22px;}
  .writer{text-align:center; width:96px;}
  .w-ava{width:76px; height:76px; border-radius:50%; margin:0 auto 8px;
    background:radial-gradient(120% 120% at 30% 25%, #E4F1F8, #DCEAF4); border:1px solid rgba(255,255,255,.7);
    display:flex; align-items:center; justify-content:center; color:var(--koai-deep); font-family:"Noto Serif JP",serif;}
  .w-name{font-size:13px; font-weight:700;}
  .w-tie{font-size:11px; color:var(--sumi-soft);}

  /* sns */
  .sns-btn{display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); background:var(--washi);
    padding:12px 22px; border-radius:999px; font-size:14px;}
  .sns-btn:hover{border-color:var(--koai);}

  /* sponsors */
  .sponsors{background:var(--washi); border-top:1px solid var(--line);}
  .sp-grid{display:grid; grid-template-columns:290px 1fr; gap:50px; align-items:start;}
  .sp-tier{margin-bottom:24px;} .sp-tier:last-child{margin-bottom:0;}
  .sp-tier .t-lbl{font-family:"Cormorant Garamond",serif; letter-spacing:.12em; font-size:14px; margin-bottom:12px;}
  .sp-row{display:grid; gap:16px;}
  .sp-row.gold{grid-template-columns:repeat(2,1fr);}
  .sp-row.silver{grid-template-columns:repeat(3,1fr);}
  .sp-row.bronze{grid-template-columns:repeat(4,1fr);}
  .logo{aspect-ratio:2.2/1; width:100%; border:1px solid var(--line); border-radius:14px; background:var(--kasumi);
    display:flex; align-items:center; justify-content:center; color:var(--sumi-soft); font-family:"Cormorant Garamond",serif; letter-spacing:.1em;}
  .logo.g{font-size:20px;} .logo.s{font-size:16px;} .logo.b{font-size:13px;}

  /* footer */
  footer{background:#243038; color:#E1EFF7; padding:54px 0 34px;}
  footer a{color:#C6E1F0;}
  .f-nav{display:flex; gap:22px; flex-wrap:wrap; font-size:14px; margin:18px 0;}
  .f-sub{font-size:12px; color:#8a96a0; display:flex; gap:18px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.12); padding-top:18px; margin-top:24px;}

  .ktag{display:inline-block; font-size:14px; padding:9px 18px; border-radius:999px; background:var(--washi); border:1px solid var(--line); color:var(--koai-deep); transition:.18s;}
  .ktag:hover{background:var(--koai); color:#fff; border-color:var(--koai);}
  .evlist-grid{display:grid; grid-template-columns:1fr 280px; gap:34px; align-items:start;}
  .evlist-side .side-box{background:var(--washi); border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin-bottom:18px;}
  .side-h{font-family:"Noto Serif JP",serif; font-weight:700; font-size:16px; margin:0 0 14px;}
  .cat-list{display:flex; flex-direction:column; gap:9px;}
  .cat{font-size:14px; padding:10px 16px; border-radius:10px; border:1px solid var(--line); background:var(--washi); display:block;}
  .cat.active{background:var(--koai); color:#fff; border-color:var(--koai);}
  .tag-list{display:flex; flex-wrap:wrap; gap:9px 15px;}
  .etag{font-size:13px; color:var(--koai-deep);} .etag:hover{color:var(--shu-deep);}
  .tag-group{margin-bottom:16px;} .tag-group:last-child{margin-bottom:0;}
  .tag-sub{font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--sumi-soft); margin:0 0 9px; padding-left:9px; border-left:3px solid var(--koai);}
  .morelink{font-size:13px; color:var(--koai-deep); font-weight:500;} .morelink:hover{color:var(--shu-deep);}
  .ev-item{display:grid; grid-template-columns:118px 1fr; gap:22px; align-items:stretch; padding:22px 14px; border-bottom:1px solid var(--line); color:inherit; border-radius:14px; transition:.2s;}
  .ev-item:last-child{border-bottom:0;}
  .ev-more .arw{display:inline-block; transition:transform .2s ease;}
  .ev-thumb{width:118px; aspect-ratio:3/4; height:auto; border-radius:10px; align-self:start;}
  .ev-body{display:flex; flex-direction:column; min-width:0;}
  .ev-top{display:flex; justify-content:space-between; align-items:baseline; gap:14px; margin-bottom:8px;}
  .ev-held{font-size:13px; color:var(--sumi);}
  .ev-held b{font-size:11px; color:var(--koai-deep); font-weight:700; margin-right:7px; letter-spacing:.04em;}
  .ev-held .d{font-family:"Cormorant Garamond",serif; font-size:18px; letter-spacing:.03em;}
  .ev-upd{font-size:11px; color:var(--sumi-soft); white-space:nowrap;}
  .ev-upd .d{font-family:"Cormorant Garamond",serif; font-size:14px; margin-left:5px;}
  .ev-title{font-family:"Noto Serif JP",serif; font-weight:700; font-size:19px; margin:0 0 8px;}
  .ev-tags{display:flex; gap:14px; flex-wrap:wrap; margin:0 0 11px;}
  .ev-desc{font-size:13.5px; color:var(--sumi-soft); line-height:1.8; margin:0 0 16px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
  .ev-foot{display:flex; justify-content:space-between; align-items:flex-end; gap:14px; margin-top:auto;}
  .ev-place{font-size:13px; color:var(--sumi-soft);}
  .ev-more{font-size:14px; color:var(--koai-deep); font-weight:500; white-space:nowrap;}
  .ev-item:hover .ev-more{color:var(--shu);}
  .ev-item:hover .arw{transform:translateX(5px);}
  .annot{position:fixed; right:14px; bottom:14px; z-index:80; background:var(--sumi); color:#fff; font-size:11px; padding:7px 13px; border-radius:999px; opacity:.78;}

  @media(max-width:880px){
    .nav .link, .nav .contact{display:none;}
    .hamburger{display:block;}
    #mnav.open{display:block; padding:10px 0 18px; border-top:1px solid var(--line);}
    #mnav .link{display:block; padding:11px 4px; font-size:15px; border-bottom:1px solid var(--line);}
    .hero-grid{grid-template-columns:1fr; gap:30px; padding:48px 0 60px;}
    .hero-figure{aspect-ratio:4/3.4; max-height:380px; order:-1;}
    .fv-grid{grid-template-columns:1fr; gap:26px; padding:30px 0 44px;}
    .fv-logo-block{padding-top:24px;}
    .feat-grid{grid-template-columns:1fr;}
    .evlist-grid{grid-template-columns:1fr; gap:24px;}
    .evlist-grid>.card{padding-left:12px !important; padding-right:12px !important;}
    .about-grid{grid-template-columns:1fr; gap:26px;}
    .ev-item{grid-template-columns:1fr; gap:14px; padding:18px 14px;}
    .ev-thumb{width:60%; max-width:300px; margin:0 auto;}
    .ev-top{flex-direction:row; flex-wrap:wrap; gap:4px 14px;}
    .ev-title{font-size:18px;}
    .up-row{grid-template-columns:72px 1fr; }
    .up-row .btn{display:none;}
    .news-row{grid-template-columns:84px 1fr; }
    .news-row .news-date{display:none;}
    section{padding:58px 0;}
    .sp-grid{grid-template-columns:1fr; gap:28px;}
    .sp-row.silver{grid-template-columns:repeat(2,1fr);}
    .sp-row.bronze{grid-template-columns:repeat(3,1fr);}
  }

  /* --- Event Detail Page Specific --- */
  .crumb{font-size:12.5px; color:var(--sumi-soft); padding:20px 0 8px;}
  .crumb a:hover{color:var(--koai-deep);} .crumb span{margin:0 8px; color:var(--line);}

  .detail{display:grid; grid-template-columns:1fr 300px; gap:46px; align-items:start; padding:14px 0 70px;}

  .badge{display:inline-block; font-size:12px; letter-spacing:.06em; color:#fff; background:var(--shu); padding:4px 14px; border-radius:999px; margin-bottom:14px;}
  .a-title{font-family:"Noto Serif JP",serif; font-weight:800; font-size:clamp(26px,3.4vw,38px); line-height:1.4; letter-spacing:.02em; margin: 0;}
  .a-meta{display:flex; flex-wrap:wrap; gap:8px 22px; margin:14px 0 22px; align-items:baseline;}
  .a-held b{font-size:11px; color:var(--koai-deep); font-weight:700; margin-right:7px; letter-spacing:.04em;}
  .a-held .d{font-size:19px; letter-spacing:.03em;}
  .a-upd{font-size:11px; color:var(--sumi-soft);} .a-upd .d{font-size:14px; margin-left:5px;}
  .visual{position:relative; width:100%; margin:0 0 26px; border-radius:16px; overflow:hidden; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(150deg,#DCEFF8,#E3F1F9); border:1px solid var(--line);}
  .visual img{width:100%; height:100%; object-fit:contain;}
  .figure{margin:8px 0 26px;}
  .figure img{width:100%; height:auto; border-radius:14px; display:block; border:1px solid var(--line);}
  .figure figcaption{font-size:12px; color:var(--sumi-soft); margin-top:8px; text-align:center;}
  a.lock{pointer-events:none; cursor:default; opacity:.6;}
  .midokoro{margin:6px 0 26px;}
  .mk-row{display:grid; grid-template-columns:300px 1fr; gap:26px; align-items:start; margin-bottom:30px;}
  .mk-row:last-child{margin-bottom:0;}
  .mk-img img, .mk-img.mk-ph{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:12px; border:1px solid var(--line); display:block;}
  .mk-video{width:100%; aspect-ratio:16/9; border-radius:12px; overflow:hidden;}
  .mk-video iframe{width:100%; height:100%; display:block;}
  .mk-img.mk-ph{background:linear-gradient(150deg,#dbe5ef,#e8eef5); display:flex; align-items:center; justify-content:center;}
  .mk-img.mk-ph span{color:var(--sumi-soft); font-size:13px; letter-spacing:.08em;}
  .mk-txt h4{font-family:"Noto Serif JP",serif; font-size:17px; font-weight:600; margin:2px 0 12px; color:var(--sumi);}
  .mk-txt p{margin:0; line-height:1.95;}
  @media(max-width:880px){ .mk-row{grid-template-columns:1fr; gap:14px;} }
  .map{margin:8px 0 10px; border-radius:14px; overflow:hidden; border:1px solid var(--line);}
  .map iframe{width:100%; height:320px; border:0; display:block;}
  .maplink{display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--koai-deep);} .maplink:hover{color:var(--shu-deep);}
  .visual .lbl{font-size:13px; color:var(--sumi-soft); letter-spacing:.08em;}
  .visual .shiori-tab{position:absolute; top:0; left:22px; background:var(--shu); color:#fff; font-size:12px; padding:7px 12px 9px; border-radius:0 0 4px 4px;}
  .a-lead{font-size:16px; line-height:2; margin-bottom:26px;}
  h3.c-title{font-family:"Noto Serif JP",serif; font-weight:700; font-size:20px; margin:30px 0 12px; padding-left:13px; border-left:4px solid var(--koai);}
  .a-body p{margin-bottom:16px;}
  .a-body iframe{max-width:100%;}
  @media(max-width:600px){
    .a-body iframe{height:280px;}
    .wp-block-media-text > .wp-block-media-text__content{padding:0;}
    .a-body h1{font-size:28px;}
    .a-body h2{font-size:22px;}
    .a-body h3{font-size:18px;}
  }
  .dl{background:var(--washi); border:1px solid var(--line); border-radius:16px; padding:6px 22px; margin:6px 0 26px;}
    .dl dl{display:block;}
  .dl .row{display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:0 14px; border-bottom:1px solid var(--line);}
  .dl .row:last-child{border-bottom:0;}
  .dl dt{padding:14px 0; font-size:13px; color:var(--koai-deep); font-weight:700;}
  .dl dd{padding:14px 0; margin:0; font-size:14px;}
  .dl dd.act{text-align:right; padding-left:6px;}
  .info-act{display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-size:12.5px; font-weight:700; color:var(--koai-deep); border:1px solid var(--line); background:var(--washi); padding:7px 14px; border-radius:999px; transition:.16s;}
  .info-act svg{width:14px; height:14px; flex:none;}
  .info-act:hover{border-color:var(--koai); background:var(--sora); transform:translateY(-1px);}
  .info-act.primary{color:#fff; background:var(--shu); border-color:var(--shu);}
  .info-act.primary:hover{background:var(--shu-deep); border-color:var(--shu-deep);}
  .sns-btns{display:inline-flex; gap:8px; justify-content:flex-end;}
  .sns-btns a{display:inline-flex; align-items:center; justify-content:center; width:33px; height:33px; border-radius:999px; border:1px solid var(--line); color:var(--koai-deep); transition:.16s;}
  .sns-btns a:hover{border-color:var(--koai); background:var(--sora); transform:translateY(-1px);}
  .sns-btns svg{width:15px; height:15px;}
  .a-cta{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; margin-top:34px;}
  .a-cta .back{justify-self:start; font-size:14px; color:var(--koai-deep);}
  .a-cta .back:hover{color:var(--shu-deep);}
  .a-cta .btn{justify-self:center; padding:14px 34px;}
  .links{list-style:none; margin:6px 0 4px; padding:0;}
  .links li{border-bottom:1px solid var(--line);} .links li:last-child{border-bottom:0;}
  .links a{display:inline-flex; align-items:center; gap:8px; padding:12px 2px; font-size:14px; color:var(--koai-deep);}
  .links a:hover{color:var(--shu-deep);}
  .links .ex{font-size:11px; color:var(--sumi-soft);}
  .pn{display:flex; justify-content:space-between; gap:14px; margin-top:40px; padding-top:22px; border-top:1px solid var(--line); font-size:13px;}
  .pn a:hover{color:var(--koai-deep);} .pn .mid{color:var(--sumi-soft);}

  .side{position:sticky; top:90px; display:flex; flex-direction:column; gap:18px;}
  .sbox{background:var(--washi); border:1px solid var(--line); border-radius:16px; padding:20px 22px;}
  .sbox h4{font-family:"Noto Serif JP",serif; font-weight:700; font-size:15px; margin-top: 0; margin-bottom:14px;}
  .cat{display:block; font-size:14px; padding:10px 16px; border-radius:10px; border:1px solid var(--line); color:var(--sumi);}
  .tag-list{display:flex; flex-wrap:wrap; gap:9px 15px;} .etag{font-size:13px; color:var(--koai-deep);} .etag:hover{color:var(--shu-deep);}
  .share{display:flex; gap:10px;}
  .share a{width:40px; height:40px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--koai-deep);}
  .share a:hover{border-color:var(--koai); background:var(--kasumi);}
  .rel a{display:flex; gap:11px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line);}
  .rel a:last-child{border-bottom:0;}
  .rel .thumb{width:52px; aspect-ratio:3/4; border-radius:6px; flex:none; background:linear-gradient(150deg,#DCEFF8,#E1EFF7);}
  .rel .t{font-size:13.5px; font-weight:500; line-height:1.5;} .rel .d{font-family:"Cormorant Garamond",serif; font-size:12px; color:var(--sumi-soft);}
  .rel-meta{display:flex; flex-direction:column; gap:2px;}
  .rel-tag{font-size:11px; color:var(--koai-deep);}
  .rel a.rel-more{display:block; padding:14px 0 2px; font-size:13px; color:var(--koai-deep); border-bottom:0;}
  .rel a.rel-more:hover{color:var(--shu-deep);}
  .backlink{display:inline-flex; align-items:center; gap:6px; font-size:14px; color:var(--koai-deep);} .backlink:hover{color:var(--shu-deep);}

  @media(max-width:880px){
    /* Detail page specific */
    .detail{grid-template-columns:1fr; gap:32px;}
    .side{position:static;}
    .dl .row{grid-template-columns:1fr; padding:4px 0;}
    .dl dt{padding:13px 0 3px;}
    .dl dd{padding:0 0 3px;}
    .dl dd.act{justify-self:end; text-align:right; padding:9px 0 14px;}
    .a-cta{grid-template-columns:1fr; justify-items:center; gap:16px;}
    .a-cta .back{justify-self:center; order:2;}
    .maplink{display:flex; justify-content:flex-end;}
  }

/* Current menu item */
.nav .link.cur, .nav .contact.cur, #mnav .link.cur, #mnav .contact.cur {
    color: var(--shu-deep);
    font-weight: 700;
}
