
  :root{
    --cream:#faf6ee;
    --paper:#fffdf8;
    --brown:#5a4632;
    --brown-light:#8a715a;
    --wheat:#c9a86a;
    --wheat-pale:#efe3cb;
    --green:#7d8c5c;
    --pink:#d9a08f;
    --line:#e5dac6;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Zen Maru Gothic',sans-serif;
    background:var(--cream);
    color:var(--brown);
    line-height:1.9;
    letter-spacing:.05em;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}

  /* ===== ヘッダー ===== */
  header{
    position:sticky;top:0;z-index:100;
    background:rgba(250,246,238,.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    max-width:1080px;margin:0 auto;
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
    padding:14px 20px;
  }
  .nav-toggle{
    display:none;background:none;border:none;cursor:pointer;
    font-size:1.5rem;line-height:1;color:var(--brown);padding:6px 10px;
  }
  .header-logo{
    font-family:'Quicksand',sans-serif;
    font-weight:600;font-size:1.15rem;letter-spacing:.18em;
  }
  .header-logo small{
    display:block;font-family:'Zen Maru Gothic',sans-serif;
    font-size:.62rem;letter-spacing:.3em;color:var(--brown-light);
  }
  nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;list-style:none;font-size:.82rem;}
  nav a{position:relative;padding:4px 0;white-space:nowrap;}
  nav a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;
    background:var(--wheat);transition:width .3s;
  }
  nav a:hover::after{width:100%;}
  .nav-shop{
    background:var(--brown);color:#fff!important;
    padding:8px 18px!important;border-radius:999px;font-size:.8rem;
    transition:background .3s;
  }
  .nav-shop:hover{background:var(--wheat);}
  .nav-shop::after{display:none;}

  /* ===== ヒーロー ===== */
  .hero{
    max-width:1080px;margin:0 auto;padding:80px 20px 70px;
    display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
  }
  .hero-logo{
    font-family:'Quicksand',sans-serif;font-weight:600;
    font-size:2.6rem;letter-spacing:.22em;line-height:1.3;
  }
  .hero-logo .sub{
    display:block;font-family:'Zen Maru Gothic',sans-serif;
    font-size:.85rem;letter-spacing:.35em;color:var(--brown-light);
    margin-bottom:14px;
  }
  .hero-catch{
    margin-top:30px;
    font-family:'Shippori Mincho',serif;
    font-size:1.25rem;line-height:2.4;letter-spacing:.14em;
  }
  .hero-catch span{
    background:linear-gradient(transparent 68%, var(--wheat-pale) 68%);
    padding:0 2px;
  }
  .hero-visual{display:flex;justify-content:center;}
  .hero-photo{
    width:min(380px,100%);aspect-ratio:1/1;object-fit:cover;
    border-radius:46% 54% 52% 48% / 48% 46% 54% 52%;
    box-shadow:0 18px 40px rgba(90,70,50,.18);
    border:8px solid #fff;
  }

  /* ===== 共通セクション ===== */
  section{padding:80px 20px;}
  .inner{max-width:1080px;margin:0 auto;}
  .sec-title{
    text-align:center;margin-bottom:50px;
  }
  .sec-title .en{
    font-family:'Quicksand',sans-serif;font-weight:600;
    font-size:1.7rem;letter-spacing:.25em;
  }
  .sec-title .ja{
    display:block;font-size:.8rem;color:var(--brown-light);
    letter-spacing:.3em;margin-top:6px;
  }
  .sec-title::after{
    content:"";display:block;width:44px;height:2px;
    background:var(--wheat);margin:18px auto 0;border-radius:2px;
  }

  /* ふわっと表示 */
  .fade{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease;}
  .fade.show{opacity:1;transform:none;}

  /* ===== NEWS ===== */
  .news{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .news-list{max-width:720px;margin:0 auto;list-style:none;}
  .news-list li{
    display:flex;gap:24px;align-items:baseline;
    padding:18px 6px;border-bottom:1px dashed var(--line);
    font-size:.92rem;
  }
  .news-list time{
    font-family:'Quicksand',sans-serif;color:var(--brown-light);
    flex-shrink:0;font-size:.85rem;letter-spacing:.1em;
  }
  .news-tag{
    flex-shrink:0;font-size:.68rem;background:var(--wheat-pale);
    color:var(--brown);padding:2px 10px;border-radius:999px;
  }

  /* ===== ABOUT ===== */
  .about-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  }
  .about-text p{margin-bottom:1.4em;font-size:.95rem;}
  .about-photo{
    width:100%;aspect-ratio:4/5;object-fit:cover;
    border-radius:20px;border:8px solid #fff;
    box-shadow:0 14px 32px rgba(90,70,50,.15);
    transform:rotate(1.5deg);
  }
  .about-points{
    margin-top:44px;display:grid;grid-template-columns:1fr 1fr;gap:14px;
  }
  .point{
    display:flex;gap:14px;align-items:center;
    background:var(--paper);border:1px solid var(--line);
    border-radius:14px;padding:14px 18px;font-size:.88rem;
  }
  .point .icon{
    width:40px;height:40px;flex-shrink:0;border-radius:50%;
    background:var(--wheat-pale);display:flex;align-items:center;justify-content:center;
    font-size:1.15rem;
  }

  /* ===== お店のぱん ===== */
  .bakery{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .bakery .menu-card{background:var(--cream);}
  .bakery .menu-grid{grid-template-columns:repeat(2,1fr);max-width:880px;margin:0 auto;}
  .bakery .menu-card:nth-child(odd):last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 17px);}
  @media(max-width:800px){
    .bakery .menu-card:nth-child(odd):last-child{width:100%;}
  }
  .bakery-lead{
    text-align:center;margin:-24px auto 44px;max-width:640px;
    font-size:.92rem;color:var(--brown-light);
  }

  /* ===== ギャラリー ===== */
  .gallery{padding:0;}
  .gallery-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  }
  .gallery-grid img{
    width:100%;aspect-ratio:1/1;object-fit:cover;
  }

  /* ===== MENU ===== */
  .menu{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .menu-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:34px;
  }
  .menu-card{
    background:var(--cream);border-radius:18px;overflow:hidden;
    border:1px solid var(--line);
    transition:transform .35s ease, box-shadow .35s ease;
  }
  .menu-card:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(90,70,50,.12);}
  .menu-photo{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .menu-photo svg{width:100%;height:100%;}
  .menu-photo img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .5s ease;
  }
  .menu-card:hover .menu-photo img{transform:scale(1.05);}
  .menu-body{padding:20px 22px 26px;}
  .menu-name{font-weight:700;font-size:1rem;margin-bottom:6px;}
  .menu-desc{font-size:.82rem;color:var(--brown-light);line-height:1.8;margin-bottom:12px;}
  .menu-price{
    font-family:'Quicksand',sans-serif;font-weight:600;
    font-size:1.05rem;letter-spacing:.08em;
  }
  .menu-price small{font-size:.7rem;color:var(--brown-light);font-weight:400;margin-left:4px;}
  .menu-note{
    max-width:720px;margin:44px auto 0;text-align:center;
    font-size:.8rem;color:var(--brown-light);line-height:2;
  }

  /* ===== ONLINE SHOP ===== */
  .shop{
    text-align:center;
    background:
      radial-gradient(circle at 12% 20%, var(--wheat-pale) 0 42px, transparent 43px),
      radial-gradient(circle at 88% 75%, var(--wheat-pale) 0 34px, transparent 35px),
      radial-gradient(circle at 78% 15%, var(--wheat-pale) 0 22px, transparent 23px),
      radial-gradient(circle at 18% 82%, var(--wheat-pale) 0 26px, transparent 27px),
      var(--cream);
  }
  .shop p{max-width:560px;margin:0 auto 34px;font-size:.95rem;}
  .shop-btn{
    display:inline-block;background:var(--brown);color:#fff;
    padding:18px 60px;border-radius:999px;font-size:1rem;letter-spacing:.15em;
    box-shadow:0 8px 20px rgba(90,70,50,.25);
    transition:background .3s, transform .3s;
  }
  .shop-btn:hover{background:var(--wheat);transform:translateY(-3px);}
  .shop-small{margin-top:18px;font-size:.78rem;color:var(--brown-light);}

  /* ===== 工房情報 ===== */
  .info-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:50px;
    max-width:880px;margin:0 auto;
  }
  .info-table{width:100%;border-collapse:collapse;font-size:.9rem;}
  .info-table th{
    text-align:left;padding:14px 10px;width:7.5em;
    color:var(--brown-light);font-weight:500;vertical-align:top;
    border-bottom:1px dashed var(--line);white-space:nowrap;
  }
  .info-table td{padding:14px 10px;border-bottom:1px dashed var(--line);}
  .info-note{
    background:var(--wheat-pale);border-radius:14px;
    padding:24px 26px;font-size:.85rem;line-height:2;
  }
  .info-note strong{display:block;margin-bottom:8px;}
  .shop-interior{
    display:block;max-width:880px;margin:0 auto 44px;
    width:100%;aspect-ratio:4/3;object-fit:cover;
    border-radius:20px;border:8px solid #fff;
    box-shadow:0 14px 32px rgba(90,70,50,.15);
  }
  .atelier-photos{
    display:grid;grid-template-columns:1fr 1fr;gap:24px;
    max-width:880px;margin:0 auto 44px;
  }
  .atelier-photos img{
    width:100%;aspect-ratio:1/1;object-fit:cover;
    border-radius:20px;border:8px solid #fff;
    box-shadow:0 14px 32px rgba(90,70,50,.15);
  }
  @media(max-width:800px){
    .atelier-photos{grid-template-columns:1fr;gap:20px;}
  }

  /* ===== フッター ===== */
  footer{
    background:var(--brown);color:#f3ead9;
    text-align:center;padding:46px 20px 36px;
  }
  .footer-logo{
    font-family:'Quicksand',sans-serif;font-weight:600;
    letter-spacing:.25em;font-size:1.2rem;
  }
  .footer-logo small{display:block;font-size:.65rem;letter-spacing:.3em;margin-top:6px;opacity:.75;}
  footer .copy{font-size:.7rem;opacity:.6;margin-top:22px;letter-spacing:.12em;}

  /* ===== スマホ対応 ===== */
  @media(max-width:800px){
    .nav-toggle{display:block;}
    header nav{display:none;flex-basis:100%;}
    header nav.open{display:block;}
    nav ul{
      flex-direction:column;align-items:center;
      gap:16px;font-size:.95rem;padding:16px 0 10px;
    }
    nav a.nav-shop{margin-top:4px;}
    .hero{grid-template-columns:1fr;text-align:center;padding:56px 20px 40px;}
    .hero-logo{font-size:1.9rem;}
    .hero-visual{order:-1;}
    .hero-visual svg{max-width:260px;}
    .about-grid{grid-template-columns:1fr;gap:36px;}
    .about-points{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:1fr 1fr;}
    .menu-grid{grid-template-columns:1fr;gap:24px;}
    .bakery .menu-grid{grid-template-columns:1fr;}
    .info-grid{grid-template-columns:1fr;gap:30px;}
    section{padding:56px 20px;}
  }

  /* ===== ページ分け用 ===== */
  nav a.current{color:var(--wheat);}
  nav a.current::after{width:100%;}
  .page-links{display:grid;grid-template-columns:repeat(2,1fr);gap:34px;max-width:880px;margin:0 auto;}
  a.page-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease;}
  a.page-card:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(90,70,50,.12);}
  a.page-card .menu-photo{aspect-ratio:16/9;}
  a.page-card .go{display:block;margin-top:10px;color:var(--wheat);font-size:.85rem;letter-spacing:.12em;}
  @media(max-width:800px){.page-links{grid-template-columns:1fr;}}

  /* ===== ロゴ ===== */
  .hero-logo-wrap{margin:0;width:min(340px,85%);overflow:hidden;}
  .hero-logo-img{
    display:block;width:100%;
    mix-blend-mode:multiply;
  }
  @media(max-width:800px){
    .hero-logo-img{margin:0 auto;}
  }

  /* ===== 写真スライダー ===== */
  .carousel{width:min(600px,100%);}
  .carousel-track{
    display:flex;overflow-x:auto;
    scroll-snap-type:x mandatory;
    aspect-ratio:4/3;
    border-radius:28px;border:8px solid #fff;
    box-shadow:0 18px 40px rgba(90,70,50,.18);
    scrollbar-width:none;
  }
  .carousel-track::-webkit-scrollbar{display:none;}
  .carousel-track img{
    flex:0 0 100%;width:100%;height:100%;object-fit:cover;
    scroll-snap-align:start;scroll-snap-stop:always;
  }
  .carousel-dots{display:flex;justify-content:center;gap:10px;margin-top:16px;}
  .carousel-dots button{
    width:10px;height:10px;border-radius:50%;border:none;padding:0;
    background:var(--wheat-pale);cursor:pointer;
    transition:transform .3s, background .3s;
  }
  .carousel-dots button.on{background:var(--wheat);transform:scale(1.35);}

  /* ===== Instagram ===== */
  .txt-link{
    text-decoration:underline;text-underline-offset:3px;
    text-decoration-color:var(--wheat);
  }
  .txt-link:hover{color:var(--wheat);}
  #insta{text-align:center;background:var(--paper);border-top:1px solid var(--line);}
  .insta-text{max-width:560px;margin:0 auto 30px;font-size:.95rem;}
  .insta-btn{
    display:inline-block;background:var(--cream);
    border:2px solid var(--brown);color:var(--brown);
    border-radius:999px;padding:14px 40px;letter-spacing:.08em;
    transition:background .3s,color .3s,transform .3s;
  }
  .insta-btn:hover{background:var(--brown);color:#fff;transform:translateY(-3px);}
  @media(max-width:800px){
    .insta-btn{padding:12px 24px;font-size:.88rem;}
  }

  /* ===== 日記 ===== */
  .diary-lead{
    text-align:center;margin:-24px auto 44px;max-width:640px;
    font-size:.92rem;color:var(--brown-light);
  }
  .diary-list{max-width:680px;margin:0 auto;display:grid;gap:30px;}
  .diary-entry{
    background:var(--paper);border:1px solid var(--line);
    border-radius:18px;padding:28px 32px;
  }
  .diary-date{
    font-family:'Quicksand',sans-serif;color:var(--brown-light);
    font-size:.82rem;letter-spacing:.15em;margin-bottom:6px;
    display:flex;align-items:center;gap:12px;
  }
  .diary-date::after{content:"";flex:1;border-top:1px dashed var(--line);}
  .diary-entry h3{font-size:1.05rem;margin-bottom:12px;}
  .diary-entry p{font-size:.92rem;margin-bottom:1em;}
  .diary-entry p:last-child{margin-bottom:0;}
  .diary-entry img{
    width:100%;border-radius:12px;margin:6px 0 18px;
    max-height:520px;object-fit:cover;
  }
  .diary-entry img.diary-logo{
    width:200px;margin:6px auto 18px;mix-blend-mode:multiply;
  }
  .page-links > .page-card:nth-child(odd):last-child{
    grid-column:1/-1;justify-self:center;width:calc(50% - 17px);
  }
  @media(max-width:800px){
    .page-links > .page-card:nth-child(odd):last-child{width:100%;}
    .diary-entry{padding:22px 20px;}
  }
