
  :root{
    --ink:#2A2A26;
    --paper:#FDFCF8;
    --paper-deep:#F3EFE3;
    --indigo:#1E2A44;
    --indigo-soft:#33456A;
    --stamp:#BB3A26;
    --gold:#AD8A3D;
    --coral:#E8734F;
    --teal:#3E9B90;
    --mustard:#E0A83E;
    --line: rgba(42,42,38,0.14);
    --white:#FFFFFF;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; font-size:18px;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Noto Sans JP",sans-serif;
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.mincho{
    font-family:"Shippori Mincho",serif;
    letter-spacing:0.02em;
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
  section{padding:96px 0;}
  @media (max-width:720px){ section{padding:64px 0;} }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(237,232,221,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 28px; max-width:1120px; margin:0 auto;
  }
  .logo{
    font-family:"Shippori Mincho",serif;
    font-size:1.15rem;
    font-weight:700;
    color:var(--indigo);
    display:flex; align-items:center; gap:10px;
  }
  .logo-mark{
    height:28px; width:auto; display:block;
  }
  .navlinks{display:flex; gap:32px; font-size:0.9rem;}
  .navlinks a{text-decoration:none; position:relative; padding-bottom:3px;}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--stamp); transition:width .25s ease;
  }
  .navlinks a:hover::after{width:100%;}
  .nav-cta{
    font-size:0.85rem; padding:10px 20px; border:1px solid var(--indigo);
    text-decoration:none; white-space:nowrap;
  }
  @media (max-width:840px){ .navlinks{display:none;} }

  /* ---------- Mobile hamburger (≤480px) ---------- */
  .nav-burger{
    display:none;
    width:50px; height:50px;
    border:none;
    background:var(--indigo);
    cursor:pointer;
    flex-direction:column; align-items:center; justify-content:center; gap:5px;
    padding:0;
    border-radius:10px;
    box-shadow:0 4px 12px rgba(30,42,68,0.3);
    transition:background .2s ease;
  }
  .nav-burger:hover{background:var(--indigo-soft);}
  .nav-burger span{
    display:block; width:18px; height:2px; background:var(--white);
    border-radius:2px;
    transition:transform .28s ease, opacity .2s ease;
  }
  .nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-burger.open span:nth-child(2){opacity:0;}
  .nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .nav-dropdown{
    display:none;
    position:absolute; top:100%; right:0; left:0;
    background:var(--paper);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:16px 24px;
  }
  .nav-dropdown.open{display:block;}
  .nav-dropdown a{
    display:block; text-align:center;
    font-size:0.85rem; padding:12px 20px; border:1px solid var(--indigo);
    text-decoration:none;
  }
  @media (max-width:480px){
    .nav-cta{display:none;}
    .nav-burger{display:flex;}
    .logo-text{display:none;}
  }

  /* ---------- Hero ---------- */
  .hero{
    padding:88px 0 100px;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  }
  @media (max-width:900px){ .hero .wrap{grid-template-columns:1fr;} .hero{padding-top:56px;} }
  .eyebrow{
    font-size:0.82rem; color:var(--indigo-soft); margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(1.9rem, 3.6vw, 2.9rem);
    line-height:1.5;
    color:var(--indigo);
    margin:0 0 26px;
    text-shadow:2px 3px 0 rgba(232,115,79,0.14);
  }
  .hero h1 .highlight{
    position:relative; white-space:nowrap;
  }
  .hero h1 .highlight::after{
    content:"";
    position:absolute; left:-2px; right:-2px; bottom:0.05em; height:0.34em;
    background:var(--mustard); opacity:0.55; z-index:-1;
    border-radius:3px;
  }
  .hero p{
    font-size:1.02rem; max-width:44ch; color:#4a4a44;
    margin-bottom:36px;
  }
  .cta-row{display:flex; gap:16px; flex-wrap:wrap;}
  .price-note{
    font-size:0.85rem; color:#5c594f; margin-top:14px;
  }
  .price-note strong{
    color:var(--indigo); font-size:1rem; font-weight:700;
  }
  .btn{
    display:inline-block; padding:15px 30px; text-decoration:none;
    font-size:0.92rem; letter-spacing:0.02em;
    border:1px solid var(--indigo);
    border-radius:999px;
    transition:background .2s ease, color .2s ease, transform .15s ease, box-shadow .2s ease;
  }
  .btn-solid{background:var(--coral); color:var(--white); border-color:var(--coral); box-shadow:0 6px 16px rgba(232,115,79,0.32);}
  .btn-solid:hover{background:#d4633f; transform:translateY(-1px); box-shadow:0 8px 20px rgba(232,115,79,0.4);}
  .btn-line{border-color:var(--indigo);}
  .btn-line:hover{background:var(--indigo); color:var(--white); transform:translateY(-1px);}

  /* calendar photo showcase */
  .hero-media{
    max-width:520px;
    margin:0 auto;
  }
  @media (min-width:901px){ .hero-media{ margin-left:auto; margin-right:0; } }
  .cal-mock{
    background:var(--white);
    border:1px solid var(--line);
    box-shadow:0 18px 40px rgba(30,42,68,0.14);
    padding:14px;
    border-radius:16px;
    position:relative;
  }
  .cal-mock img{
    border-radius:8px;
    width:100%; height:auto; display:block;
    border:1px solid var(--line);
  }
  .cal-mock .size-badge{
    position:absolute; bottom:26px; right:26px;
    background:var(--gold);
    color:var(--white);
    font-family:"Shippori Mincho",serif;
    font-size:0.8rem;
    padding:7px 16px;
    border-radius:999px;
    box-shadow:0 6px 14px rgba(173,138,61,0.4);
    white-space:nowrap;
  }
  .cal-tags-label{
    display:block;
    font-size:1.1rem; color:var(--indigo); font-weight:500;
    margin-top:18px; margin-bottom:5px;
  }
  .cal-tags{
    display:flex; flex-wrap:wrap; gap:10px;
  }
  @media (max-width:900px){ .cal-tags{justify-content:center;} .cal-tags-label{text-align:center;} }
  .cal-tag{
    font-size:0.78rem; color:var(--white);
    padding:7px 16px;
    white-space:nowrap;
    border-radius:999px;
    font-weight:500;
  }
  .cal-tag:nth-child(6n+1){background:var(--indigo);}
  .cal-tag:nth-child(6n+2){background:var(--coral);}
  .cal-tag:nth-child(6n+3){background:var(--teal);}
  .cal-tag:nth-child(6n+4){background:var(--mustard); color:var(--ink);}
  .cal-tag:nth-child(6n+5){background:var(--stamp);}
  .cal-tag:nth-child(6n+6){background:var(--indigo-soft);}

  /* ---------- Specs & Pricing ---------- */
  .specs{
    border-top:1px solid var(--line);
    padding:72px 0;
  }
  .specs-head{max-width:640px; margin-bottom:48px;}
  .specs-head .eyebrow{margin-bottom:14px;}
  .specs-head h2{
    font-size:clamp(1.4rem,2.4vw,1.9rem); color:var(--indigo); margin:0 0 14px;
  }
  .specs-head p{color:#4a4a44; margin:0; font-size:0.95rem;}
  .set-contents{
    margin-top:10px;
  }
  .set-contents .cap-chips{
    display:flex; flex-wrap:wrap; gap:8px;
  }
  .set-contents .cap-chip{
    font-size:0.74rem; color:var(--indigo-soft);
    border:1px solid var(--line);
    padding:4px 10px;
    white-space:nowrap;
  }
  .specs-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:0;
    border-top:1px solid var(--line); border-left:1px solid var(--line); border-right:1px solid var(--line);
    border-radius:16px 16px 0 0;
    overflow:hidden;
  }
  @media (max-width:800px){ .specs-grid{grid-template-columns:1fr;} }
  .specs-list{
    padding:36px 40px;
    border-right:1px solid var(--line);
  }
  @media (max-width:800px){ .specs-list{border-right:none; border-bottom:1px solid var(--line);} }
  .specs-list dl{margin:0;}
  .specs-list .row{
    display:grid; grid-template-columns:96px 1fr; gap:18px;
    padding:16px 0; border-bottom:1px solid var(--line);
  }
  .specs-list .row:last-child{border-bottom:none;}
  .specs-list dt{
    font-family:"Shippori Mincho",serif; color:var(--stamp); font-size:0.85rem;
  }
  .specs-list dd{margin:0; font-size:0.9rem; color:#3a3a35; line-height:1.7;}
  .option-list{
    list-style:none; margin:0 0 10px; padding:0;
  }
  .option-list li{
    font-size:0.9rem; color:#3a3a35; line-height:1.9;
  }
  .option-list li::before{
    content:"・";
    color:var(--stamp);
  }

  .price-panel{
    background:var(--white);
    display:flex; flex-direction:column; justify-content:center;
  }
  .price-panel .photo{
    width:100%; height:auto; display:block;
  }
  .price-panel .body{
    padding:28px 40px 36px;
  }
  .price-panel .label{font-size:0.82rem; color:var(--indigo-soft); margin-bottom:10px;}
  .price-panel .amount{
    font-family:"Shippori Mincho",serif; color:var(--indigo);
    font-size:2.1rem; line-height:1.3;
  }
  .price-panel .amount span{font-size:1rem; margin-left:6px; color:#5c594f;}
  .price-panel .sub{font-size:0.82rem; color:#6b685e; margin-top:8px;}
  .price-panel .note{
    margin-top:22px; padding-top:22px; border-top:1px solid var(--line);
    font-size:0.82rem; color:#6b685e; line-height:1.8;
  }

  .specs-foot{
    display:grid; grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line); border-left:1px solid var(--line); border-right:1px solid var(--line); border-bottom:1px solid var(--line);
    border-radius:0 0 16px 16px;
    overflow:hidden;
  }
  @media (max-width:700px){ .specs-foot{grid-template-columns:1fr;} }
  .specs-foot .item{
    padding:22px 28px; border-right:1px solid var(--line);
  }
  .specs-foot .item:last-child{border-right:none;}
  @media (max-width:700px){ .specs-foot .item{border-right:none; border-bottom:1px solid var(--line);} .specs-foot .item:last-child{border-bottom:none;} }
  .specs-foot .item .k{font-size:0.76rem; color:var(--stamp); margin-bottom:6px;}
  .specs-foot .item .v{font-size:0.88rem; color:#3a3a35;}
  .specs-disclaimer{
    font-size:0.78rem; color:#8a877c; margin-top:14px; line-height:1.8;
  }

  /* ---------- Options Detail ---------- */
  .options-detail{
    border-top:1px solid var(--line);
    padding:72px 0;
  }
  .options-detail .specs-head{margin-bottom:48px; max-width:760px;}
  .option-detail-list{
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
  }
  .option-detail-row{
    display:grid; grid-template-columns:220px 1fr; gap:24px;
    padding:28px 40px; border-bottom:1px solid var(--line);
  }
  .option-detail-row:last-child{border-bottom:none;}
  @media (max-width:700px){ .option-detail-row{grid-template-columns:1fr; gap:8px; padding:24px;} }
  .option-detail-row dt{
    font-family:"Shippori Mincho",serif; color:var(--stamp); font-size:1rem;
  }
  .option-detail-row dd{
    margin:0; font-size:0.9rem; color:#3a3a35; line-height:1.8;
  }
  .option-detail-row .more{
    display:inline-block; margin-top:10px;
    font-size:0.8rem; color:var(--indigo-soft);
    text-decoration:none;
    border-bottom:1px solid var(--indigo-soft);
  }
  .option-detail-row .more:hover{color:var(--stamp); border-color:var(--stamp);}

  /* ---------- FAQ ---------- */
  .faq{
    border-top:1px solid var(--line);
    padding:72px 0;
  }
  .faq .specs-head{margin-bottom:48px; max-width:760px;}
  .faq-list{
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
  }
  .faq-item{
    border-bottom:1px solid var(--line);
  }
  .faq-item:last-child{border-bottom:none;}
  .faq-item summary{
    display:flex; align-items:flex-start; gap:16px;
    padding:24px 40px;
    cursor:pointer;
    list-style:none;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary .q-mark{
    font-family:"Shippori Mincho",serif; color:var(--white);
    background:var(--stamp);
    width:28px; height:28px; min-width:28px;
    border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:0.85rem;
  }
  .faq-item summary .q-text{
    font-family:"Shippori Mincho",serif; color:var(--indigo);
    font-size:0.98rem; line-height:1.7; flex:1;
    padding-top:2px;
  }
  .faq-item summary .arrow{
    font-size:0.9rem; color:#8a877c;
    transition:transform .2s ease;
    padding-top:4px;
  }
  .faq-item[open] summary .arrow{transform:rotate(45deg);}
  .faq-item .a-wrap{
    display:flex; align-items:flex-start; gap:16px;
    padding:0 40px 26px;
  }
  .faq-item .a-mark{
    font-family:"Shippori Mincho",serif; color:var(--indigo-soft);
    width:28px; min-width:28px; text-align:center;
    font-size:0.85rem;
  }
  .faq-item p.a-text{
    margin:0; font-size:0.9rem; color:#3a3a35; line-height:1.85;
  }
  @media (max-width:700px){
    .faq-item summary{padding:20px 24px; gap:12px;}
    .faq-item .a-wrap{padding:0 24px 22px; gap:12px;}
  }

  /* ---------- Design Templates ---------- */
  .designs{
    border-top:1px solid var(--line);
    padding:72px 0;
    scroll-margin-top:80px;
  }
  .designs-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  }
  @media (max-width:820px){ .designs-grid{grid-template-columns:1fr;} }
  .design-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 12px 28px rgba(30,42,68,0.10);
    display:flex; flex-direction:column;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .design-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 36px rgba(30,42,68,0.18);
  }
  .design-card .img-wrap{
    position:relative;
  }
  .design-card img{
    width:100%; height:auto; display:block;
  }
  .design-card .img-wrap span{
    position:absolute; right:12px; bottom:12px;
    font-size:0.72rem; color:var(--white);
    padding:4px 12px; border-radius:999px; white-space:nowrap;
    box-shadow:0 4px 10px rgba(0,0,0,0.18);
  }
  .design-card:nth-child(1) .img-wrap span{background:var(--coral);}
  .design-card:nth-child(2) .img-wrap span{background:var(--teal);}
  .design-card:nth-child(3) .img-wrap span{background:var(--mustard); color:var(--ink);}
  .design-card .caption{
    padding:18px 22px;
    display:flex; align-items:center; gap:12px;
  }
  .design-card .caption h3{
    font-family:"Shippori Mincho",serif; font-size:0.95rem; color:var(--indigo); margin:0;
  }
  .design-card .dl-foot{
    padding:0 22px 20px;
    margin-top:auto;
  }
  .design-card .dl-btn{
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-size:0.82rem; color:var(--indigo-soft);
    border:1px solid var(--line);
    padding:11px 14px;
    text-decoration:none;
    border-radius:999px;
    transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .design-card .dl-btn:hover{background:var(--indigo); color:var(--white); border-color:var(--indigo);}
  .design-card .dl-btn .dl-icon{font-size:0.9rem;}

  .covers-block{
    margin-top:56px;
  }
  .covers-block .sub-label{
    font-family:"Shippori Mincho",serif; color:var(--stamp);
    font-size:0.85rem; margin-bottom:16px;
  }
  .covers-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
  }
  @media (max-width:820px){ .covers-grid{grid-template-columns:repeat(2,1fr);} }
  .cover-thumb{
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    background:var(--white);
    display:flex; flex-direction:column;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .cover-thumb:hover{
    transform:translateY(-6px);
    box-shadow:0 16px 30px rgba(30,42,68,0.16);
  }
  .cover-thumb img{
    width:100%; height:auto; display:block;
  }
  .cover-thumb .dl-btn{
    display:flex; align-items:center; justify-content:center; gap:6px;
    font-size:0.7rem; color:var(--indigo-soft);
    border-top:1px solid var(--line);
    padding:8px 6px;
    text-decoration:none;
    transition:background .2s ease, color .2s ease;
  }
  .cover-thumb .dl-btn:hover{background:var(--indigo); color:var(--white);}
  .cover-thumb .dl-btn .dl-icon{font-size:0.78rem;}

  .blank-template-block{
    margin-top:56px;
    border:1.5px dashed var(--line);
    border-radius:16px;
    padding:32px 36px;
    display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
    background:var(--white);
  }
  .blank-template-block .txt .sub-label{
    font-family:"Shippori Mincho",serif; color:var(--stamp);
    font-size:0.85rem; margin:0 0 10px;
  }
  .blank-template-block .txt h3{
    font-family:"Shippori Mincho",serif; color:var(--indigo);
    font-size:1.1rem; margin:0 0 10px;
  }
  .blank-template-block .txt p{
    margin:0; font-size:0.88rem; color:#4a4a44; line-height:1.8;
    max-width:46ch;
  }
  .blank-template-block .dl-btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.85rem; color:var(--white);
    background:var(--indigo);
    padding:13px 26px;
    text-decoration:none;
    border-radius:999px;
    white-space:nowrap;
    transition:background .2s ease;
  }
  .blank-template-block .dl-btn:hover{background:var(--indigo-soft);}
  @media (max-width:700px){
    .blank-template-block{padding:26px 24px; flex-direction:column; align-items:flex-start;}
    .blank-template-block .dl-btn{width:100%; justify-content:center;}
  }

  /* ---------- Order Flow ---------- */

  .flow{
    border-top:1px solid var(--line);
    padding:72px 0;
  }
  .flow-head{max-width:640px; margin-bottom:48px;}
  .flow-head .eyebrow{margin-bottom:14px;}
  .flow-head h2{
    font-size:clamp(1.4rem,2.4vw,1.9rem); color:var(--indigo); margin:0 0 14px;
  }
  .flow-head p{color:#4a4a44; margin:0; font-size:0.95rem;}
  .flow-steps{
    display:grid; grid-template-columns:repeat(5,1fr);
    border:1px solid var(--line);
  }
  @media (max-width:900px){ .flow-steps{grid-template-columns:1fr;} }
  .flow-step{
    padding:32px 24px;
    border-right:1px solid var(--line);
    position:relative;
  }
  .flow-step:last-child{border-right:none;}
  @media (max-width:900px){ .flow-step{border-right:none; border-bottom:1px solid var(--line);} .flow-step:last-child{border-bottom:none;} }
  .flow-step .num{
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px;
    font-family:"Shippori Mincho",serif; color:var(--white);
    font-size:1rem; margin-bottom:14px;
    border-radius:50%;
  }
  .flow-step:nth-child(1) .num{background:var(--coral);}
  .flow-step:nth-child(2) .num{background:var(--teal);}
  .flow-step:nth-child(3) .num{background:var(--mustard); color:var(--ink);}
  .flow-step:nth-child(4) .num{background:var(--indigo-soft);}
  .flow-step:nth-child(5) .num{background:var(--stamp);}
  .flow-step h3{
    font-size:1rem; color:var(--indigo); margin:0 0 10px;
    font-family:"Shippori Mincho",serif; font-weight:600;
    line-height:1.5; min-height:3em;
  }
  .flow-step p{
    font-size:0.82rem; color:#4a4a44; margin:0; line-height:1.7;
  }

  /* ---------- CTA ---------- */
  .cta-section{
    background:var(--indigo);
    padding:80px 0;
    text-align:center;
  }
  .cta-section .wrap{max-width:640px;}
  .cta-section .eyebrow{color:var(--gold); margin-bottom:16px;}
  .cta-section h2{
    color:var(--white); font-size:clamp(1.5rem,2.8vw,2.1rem);
    margin:0 0 18px; line-height:1.5;
  }
  .cta-section p{
    color:rgba(251,250,246,0.78); font-size:0.95rem; margin:0 0 36px; line-height:1.8;
  }
  .cta-section .cta-row{justify-content:center;}
  .cta-section .btn-solid{
    background:var(--stamp); color:var(--white);
  }
  .cta-section .btn-solid:hover{background:#9c2f1f;}
  .cta-section .btn-line{
    border-color:rgba(251,250,246,0.5); color:var(--white);
  }
  .cta-section .btn-line:hover{background:var(--white); color:var(--indigo);}
  .cta-contact{
    margin-top:40px; padding-top:32px; border-top:1px solid rgba(251,250,246,0.18);
    display:flex; gap:32px; justify-content:center; flex-wrap:wrap;
  }
  .cta-contact .item{color:rgba(251,250,246,0.85); font-size:0.85rem;}
  .cta-contact .item strong{
    display:block; color:var(--white); font-size:1rem; margin-bottom:4px;
    font-family:"Shippori Mincho",serif;
  }

  /* ---------- Footer Service Menu ---------- */
  footer{
    background:var(--white);
    padding-top:56px;
    border-top:1px solid var(--line);
  }
  .footer_menu{
    display:block;
    max-width:1120px; margin:0 auto;
    padding:0 28px 40px;
    border-bottom:1px solid var(--line);
  }
  .footer_mtitle{
    display:block;
    font-family:"Shippori Mincho",serif;
    color:var(--stamp);
    font-size:0.85rem; letter-spacing:0.08em;
    margin-bottom:28px;
  }
  .footer_menu > div{
    display:grid; grid-template-columns:repeat(6,1fr); gap:32px;
  }
  @media (max-width:960px){ .footer_menu > div{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:600px){ .footer_menu > div{grid-template-columns:repeat(2,1fr);} }
  .footer_menu .mt-5{min-width:0;}
  .footer_chapter{
    display:block; margin-bottom:14px;
  }
  .footer_chapter p{margin:0;}
  .footer_chapter a, .footer_chapter p{
    color:var(--indigo); font-size:0.88rem; font-weight:700;
    text-decoration:none;
  }
  .footer_chapter a:hover{color:var(--stamp);}
  .footer_item{
    display:flex; flex-direction:column; gap:9px;
  }
  .footer_item span{
    font-size:0.78rem; color:#6b685e; line-height:1.5;
  }
  .footer_item a{
    color:#6b685e; text-decoration:none;
  }
  .footer_item a:hover{color:var(--stamp);}
  footer .wrap{
    padding:24px 28px; font-size:0.78rem; color:#8a877c;
  }


  .tech-specs{
    border-top:1px solid var(--line); border-left:1px solid var(--line); border-right:1px solid var(--line);
    padding:24px 40px;
  }
  .tech-specs .row{
    display:grid; grid-template-columns:96px 1fr; gap:18px;
    padding:12px 0; border-bottom:1px solid var(--line);
  }
  .tech-specs .row:last-child{border-bottom:none;}
  @media (max-width:800px){ .tech-specs{padding:24px;} .tech-specs .row{grid-template-columns:80px 1fr;} }
  .tech-specs dt{
    font-family:"Shippori Mincho",serif; color:var(--stamp); font-size:0.85rem;
  }
  .tech-specs dd{margin:0; font-size:0.9rem; color:#3a3a35; line-height:1.7;}


    padding:36px 0; text-align:center; font-size:0.78rem; color:#6b685e;
  }

  /* ---------- Contact Page ---------- */
  .page-hero{
    padding:64px 0 56px;
    border-bottom:1px solid var(--line);
  }
  .page-hero .wrap{max-width:760px;}
  .page-hero .eyebrow{margin-bottom:16px;}
  .page-hero h1{
    font-size:clamp(1.6rem,3vw,2.2rem); color:var(--indigo); margin:0 0 18px; line-height:1.5;
  }
  .page-hero p{
    font-size:0.95rem; color:#4a4a44; margin:0; line-height:1.85; max-width:56ch;
  }
  .breadcrumb{
    font-size:0.8rem; color:#8a877c; margin-bottom:18px;
  }
  .breadcrumb a{color:var(--indigo-soft); text-decoration:none;}
  .breadcrumb a:hover{color:var(--stamp);}

  .contact-info{
    border-bottom:1px solid var(--line);
    padding:40px 0;
    background:var(--paper-deep);
  }
  .contact-info .info-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
    border:1px solid var(--line); border-radius:16px; overflow:hidden;
    background:var(--white);
  }
  @media (max-width:800px){ .contact-info .info-grid{grid-template-columns:1fr;} }
  .contact-info .info-item{
    padding:24px 28px;
    border-right:1px solid var(--line);
  }
  .contact-info .info-item:last-child{border-right:none;}
  @media (max-width:800px){
    .contact-info .info-item{border-right:none; border-bottom:1px solid var(--line);}
    .contact-info .info-item:last-child{border-bottom:none;}
  }
  .contact-info .info-item .k{
    font-family:"Shippori Mincho",serif; color:var(--stamp); font-size:0.78rem; margin:0 0 8px;
  }
  .contact-info .info-item .v{
    font-size:0.92rem; color:var(--indigo); margin:0; font-weight:500;
  }
  .contact-info .info-item .v.tel{
    font-family:"Shippori Mincho",serif; font-size:1.25rem;
  }
  .contact-info .info-item .sub{
    font-size:0.78rem; color:#6b685e; margin:4px 0 0;
  }

  .contact-form-section{
    padding:72px 0 96px;
  }
  .contact-form-section .wrap{max-width:760px;}
  .form-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:16px;
    padding:44px 48px;
    box-shadow:0 12px 32px rgba(30,42,68,0.08);
  }
  @media (max-width:700px){ .form-card{padding:32px 24px;} }

  /* MW WP Form wrapper — kept unstyled so the plugin's own
     mw_wp_form / mw_wp_form_input / mw_wp_form_confirm classes
     pass through untouched between the input / confirm / complete steps */
  .mw_wp_form{ }

  .contact-dl{margin:0;}
  .form-row{
    display:grid; grid-template-columns:180px 1fr; gap:20px;
    padding:20px 0; border-bottom:1px solid var(--line);
  }
  .form-row:first-child{padding-top:0;}
  .form-row:last-of-type{border-bottom:none;}
  @media (max-width:640px){
    .form-row{grid-template-columns:1fr; gap:8px; padding:18px 0;}
  }
  .contact-dl dt{
    font-size:0.9rem; color:var(--indigo); font-weight:500;
    padding-top:10px;
    display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap;
  }
  .contact-dl dt .req{
    font-size:0.68rem; color:var(--white); background:var(--stamp);
    padding:2px 8px; border-radius:999px; white-space:nowrap;
    font-weight:500;
  }
  .contact-dl dt .opt{
    font-size:0.68rem; color:var(--indigo-soft); background:transparent;
    border:1px solid var(--line);
    padding:2px 8px; border-radius:999px; white-space:nowrap;
  }
  .contact-dl dd{margin:0;}
  .contact-dl dd .hint{
    display:block; font-size:0.76rem; color:#8a877c; margin-top:6px;
  }

  /* Generic field styling — targets plain inputs/textareas/selects so it
     applies whether or not MW WP Form's shortcode tags carry extra classes */
  .contact-form-section input[type="text"],
  .contact-form-section input[type="email"],
  .contact-form-section input[type="tel"],
  .contact-form-section select,
  .contact-form-section textarea{
    width:100%;
    font-family:"Noto Sans JP",sans-serif;
    font-size:0.92rem;
    color:var(--ink);
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:8px;
    padding:12px 14px;
    box-sizing:border-box;
    transition:border-color .2s ease, background .2s ease;
  }
  .contact-form-section input[type="text"]:focus,
  .contact-form-section input[type="email"]:focus,
  .contact-form-section input[type="tel"]:focus,
  .contact-form-section select:focus,
  .contact-form-section textarea:focus{
    outline:none;
    border-color:var(--indigo-soft);
    background:var(--white);
  }
  .contact-form-section textarea{
    resize:vertical; min-height:140px; line-height:1.8;
  }
  .contact-form-section select{
    appearance:none;
    background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='18' height='18'%3E%3Cpath fill='%2333456A' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:38px;
  }
  .check-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:10px 20px;
  }
  @media (max-width:480px){ .check-grid{grid-template-columns:1fr;} }
  .check-grid label,
  .radio-row label{
    display:flex; align-items:center; gap:8px;
    font-size:0.88rem; color:#3a3a35;
    cursor:pointer;
  }
  .contact-form-section input[type="checkbox"],
  .contact-form-section input[type="radio"]{
    width:17px; height:17px; accent-color:var(--indigo);
    flex-shrink:0;
  }
  .radio-row{display:flex; gap:24px; flex-wrap:wrap;}
  .privacy-row{
    padding:28px 0 4px;
    border-top:1px solid var(--line);
    margin-top:8px;
  }
  .privacy-row .privacy-title{
    font-size:0.95rem; color:var(--indigo); font-weight:700;
    margin:0 0 14px;
    display:flex; align-items:center; gap:8px;
  }
  .privacy-row label{
    display:flex; align-items:flex-start; gap:10px;
    font-size:0.88rem; color:#3a3a35; line-height:1.7;
  }
  .privacy-row .privacy-link{
    margin:10px 0 0 27px;
    font-size:0.85rem; color:#3a3a35;
  }
  .privacy-row a{color:var(--indigo-soft); text-decoration:underline;}
  .privacy-row a:hover{color:var(--stamp);}
  .contact-form-section .error{
    display:block; color:var(--stamp); font-size:0.8rem; margin-top:6px;
  }
  .form-actions{
    text-align:center; margin-top:36px;
  }
  .form-actions .btn{
    border:none; cursor:pointer; font-family:"Noto Sans JP",sans-serif;
    min-width:240px;
  }
  .form-note{
    font-size:0.8rem; color:#8a877c; text-align:center; margin-top:16px; line-height:1.8;
  }