@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{--ink:#23333a;--muted:#6b767b;--accent:#d78338;--accent-deep:#c66c1d;--accent-soft:#fff3e6;--line:#eadfce;--white:#fff;--page:#fffaf5;--green:#5f7a5b;--green-soft:#eef5ec;--red:#b65a5a;--red-soft:#faecec;--amber:#cf8d2e;--amber-soft:#fff5df;--off:#8c8f92;--off-soft:#f3f1ed}*{box-sizing:border-box}html{font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-size:14px;line-height:1.85}button,a{font:inherit}button{cursor:pointer}a{color:inherit}.shell{max-width:1080px;margin:0 auto;padding:0 28px}.masthead{background:#fff;border-bottom:1px solid var(--line)}.head-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.brand-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--green);color:#fff;font-size:29px;font-weight:700;border-radius:50%}.brand-name{display:flex;flex-direction:column;font-size:11px;line-height:1.4;letter-spacing:.06em;color:var(--ink)}.brand-name strong{font-size:18px;letter-spacing:.12em}.brand-name small{font-size:10px;letter-spacing:.18em;color:#a28f7b;margin-top:2px}.head-home{text-decoration:none;border-bottom:1px solid var(--accent);color:var(--accent-deep);font-size:12px;font-weight:600;padding-bottom:3px}.hero{background:linear-gradient(180deg,#fffaf5 0%,#fff7f0 100%);border-bottom:1px solid var(--line)}.hero-inner{padding-top:54px;padding-bottom:40px}.eyebrow,.section-kicker,.contact-kicker{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--accent-deep)}.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:14px}.eyebrow .line{display:inline-block;width:28px;height:2px;background:var(--accent)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.5;letter-spacing:.08em;margin:0 0 10px}.lead{font-size:14px;color:#6c6661;line-height:2}.content{padding-top:18px;padding-bottom:72px}.section{padding:46px 0;border-bottom:1px solid var(--line)}.section.contact{border-bottom:0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:24px}.section-heading.emphasis{background:var(--accent-soft);border:1px solid #f0dbc3;padding:18px 20px;border-radius:16px}.section-title-wrap{display:flex;align-items:center;gap:16px}.step-badge{display:flex;align-items:center;justify-content:center;flex:0 0 58px;width:58px;height:58px;border-radius:18px;background:linear-gradient(180deg,var(--accent) 0%,var(--accent-deep) 100%);color:#fff;font-size:22px;font-weight:800;letter-spacing:.04em;box-shadow:0 10px 24px rgba(198,108,29,.16)}.step-badge.sub{width:50px;height:50px;flex-basis:50px;border-radius:14px;font-size:19px;box-shadow:none}.section-kicker{margin:0 0 4px}.section h2{font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:.05em;line-height:1.45;margin:0}.section-desc{font-size:13px;color:var(--muted);margin:6px 0 0}.refresh{border:1px solid #efcaa1;background:#fff;color:var(--accent-deep);border-radius:999px;padding:10px 18px;font-size:12px;font-weight:700;white-space:nowrap}.refresh:hover{background:#fff7ef}.refresh:disabled{opacity:.5}.date-wrap{border:1px solid var(--line);padding:24px;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(199,132,56,.05)}.date-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:13px;font-weight:700}.date-hint{font-size:11px;color:var(--muted);font-weight:400}.dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.date-button{background:#fffaf5;border:1px solid #f1e2cf;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80px;color:var(--ink);transition:background .15s,border-color .15s,transform .15s}.date-button:hover{border-color:var(--accent);transform:translateY(-1px)}.date-button.active{background:var(--accent);border-color:var(--accent);color:white}.date-button .dow{color:var(--muted);font-size:11px}.date-button.active .dow{color:white}.date-number{font-size:22px;font-weight:800;line-height:1.5}.date-button.sunday:not(.active) .dow{color:var(--red)}.date-button.saturday:not(.active) .dow{color:#4e80ae}.notice{min-height:20px;font-size:11px;color:var(--muted);margin-top:10px}.notice.error{color:var(--red)}.legend{display:flex;gap:12px 25px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:0 0 18px;border-bottom:1px solid var(--line)}.legend span{display:flex;align-items:center;gap:7px}.legend b{font-size:20px;line-height:1}.available{color:var(--green)}.limited{color:var(--amber)}.full{color:var(--red)}.off{color:var(--off)}.slots{display:grid;gap:0}.time-group{display:grid;grid-template-columns:135px minmax(0,1fr);gap:20px;border-bottom:1px solid var(--line);padding:22px 0;align-items:start}.group-name{display:flex;flex-direction:column;font-size:16px;font-weight:800;letter-spacing:.06em;gap:0;padding-top:4px;color:var(--accent-deep)}.group-name small{font-size:10px;letter-spacing:0;font-weight:500;color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.slot{border:1px solid #efe4d6;background:#fffdfb;border-radius:14px;min-height:62px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6px 1px}.slot-time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.slot-mark{font-size:21px;font-weight:800;line-height:1.2}.slot[data-status="○"]{background:var(--green-soft)}.slot[data-status="△"]{background:var(--amber-soft)}.slot[data-status="×"]{background:var(--red-soft)}.slot[data-status="休"]{background:var(--off-soft)}.slot[data-status="○"] .slot-mark{color:var(--green)}.slot[data-status="△"] .slot-mark{color:var(--amber)}.slot[data-status="×"] .slot-mark{color:var(--red)}.slot[data-status="休"] .slot-mark{color:var(--off);font-size:15px}.guidance{margin-top:22px;padding:18px 20px;display:flex;gap:13px;background:#fff8f0;border-radius:14px}.guidance-icon{display:flex;align-items:center;justify-content:center;flex:0 0 22px;height:22px;border:1px solid var(--accent-deep);color:var(--accent-deep);font-family:serif;border-radius:100%;font-size:14px}.guidance strong{font-size:13px;color:var(--accent-deep)}.guidance p{margin:4px 0 0;color:var(--muted);font-size:12px}.contact-panel{display:grid;grid-template-columns:1fr 1fr;gap:42px;padding:32px 36px;background:#fff8f0;border:1px solid #f0dfca;border-radius:18px}.contact-kicker{color:var(--accent-deep);font-size:10px}.contact-message h3{font-size:25px;line-height:1.6;letter-spacing:.07em;color:var(--ink)}.contact-message>p:last-child{font-size:12px;color:var(--muted)}.cta-grid{display:grid;gap:12px;align-content:center}.cta{position:relative;display:flex;flex-direction:column;text-decoration:none;padding:16px 58px 16px 18px;border:1px solid #f0cfad;background:#fff;color:var(--ink);border-radius:14px}.cta-line{background:#fff}.cta-phone{background:#fff7ef}.cta-title{font-size:15px;font-weight:800}.cta-sub{font-size:11px;color:#766f69}.cta-arrow{position:absolute;right:20px;top:25px;font-size:21px;color:var(--accent-deep)}.cta:hover{border-color:var(--accent)}.cta[aria-disabled="true"]{opacity:.45;pointer-events:none}.footer{border-top:1px solid var(--line);background:#fffaf5;padding:24px 0}.foot-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.foot-inner a{color:var(--accent-deep);text-decoration:none}.foot-inner small{color:#a48d79}.empty{background:#fffaf5;padding:30px;text-align:center;color:var(--muted);border-radius:14px}.error-view{color:var(--red)}button:focus-visible,a:focus-visible{outline:3px solid #e0a66e;outline-offset:3px}@media(max-width:720px){.shell{padding:0 17px}.head-inner{min-height:70px}.brand-mark{width:44px;height:44px;font-size:23px}.brand-name strong{font-size:15px}.brand-name small{font-size:9px}.head-home{font-size:11px}.hero-inner{padding-top:36px;padding-bottom:28px}.hero h1{font-size:31px}.lead{font-size:12px}.content{padding-top:0}.section{padding:32px 0}.section-heading{align-items:flex-start}.section-heading.emphasis{padding:14px}.section-title-wrap{gap:12px}.step-badge{width:48px;height:48px;flex-basis:48px;border-radius:14px;font-size:18px}.step-badge.sub{width:44px;height:44px;flex-basis:44px;font-size:17px}.section h2{font-size:22px}.refresh{font-size:11px;padding:8px 12px}.date-wrap{padding:12px;border-radius:14px}.dates{gap:4px}.date-button{min-height:61px;border-radius:10px}.date-number{font-size:17px}.time-group{grid-template-columns:1fr;gap:11px;padding:20px 0}.group-name{flex-direction:row;gap:13px;align-items:baseline}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.legend{gap:8px 14px}.contact-panel{grid-template-columns:1fr;gap:18px;padding:22px;border-radius:14px}.contact-message h3{font-size:22px}.foot-inner{flex-wrap:wrap}}
/* v5: mobile-first compact daily availability – preserve 3 time-of-day groups */
@media (max-width: 720px) {
  .content {padding-bottom: 36px;}
  .section {padding: 24px 0;}
  .section-heading {margin-bottom: 12px;}
  .section h2 {font-size: 20px;}
  .section-kicker {font-size: 9px; margin-bottom: 1px;}
  .section-desc {font-size: 11px; margin-top: 2px;}
  .step-badge.sub {width: 39px; height: 39px; flex-basis: 39px; font-size: 15px; border-radius: 10px;}
  .legend {font-size: 10px; gap: 3px 11px; padding-bottom: 10px;}
  .legend span {gap: 3px;}
  .legend b {font-size: 16px;}
  .time-group {grid-template-columns: 1fr; gap: 5px; padding: 11px 0;}
  .group-name {font-size: 12px; gap: 8px; padding: 0;}
  .group-name small {font-size: 9px;}
  .slot-grid {grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px;}
  .slot {min-height: 43px; border-radius: 7px; padding: 3px 0 2px;}
  .slot-time {font-size: 9px; line-height: 1.4;}
  .slot-mark {font-size: 16px; line-height: 1.2;}
  .slot[data-status="休"] .slot-mark {font-size: 12px;}
  .guidance {margin-top: 12px; padding: 12px; gap: 9px; border-radius: 9px;}
  .guidance strong {font-size: 12px;}
  .guidance p {font-size: 10px; line-height: 1.7;}
}
@media (max-width: 359px) {
  .shell {padding: 0 12px;}
  .slot-grid {gap: 3px;}
  .slot-time {font-size: 8px;}
  .slot {min-height: 41px;}
}

/* v6: 既存いろはHPのひまわりロゴ・正式店名をヘッダーに表示 */
.masthead{background:#fff}.head-inner{min-height:110px}.brand-image{display:block;flex:0 1 505px;min-width:0}.brand-image img{display:block;width:100%;height:auto;max-width:505px;mix-blend-mode:multiply}.head-home{flex-shrink:0}
@media(max-width:720px){.head-inner{min-height:80px;gap:10px}.brand-image{flex:1 1 auto}.brand-image img{width:100%;max-width:390px}.head-home{font-size:10px;max-width:90px;text-align:right;line-height:1.5}}
@media(max-width:380px){.head-home{max-width:70px;font-size:9px}}

/* v7: スマートフォン全体の可読性・改行修正 */
html { -webkit-text-size-adjust: 100%; }
body { overflow-wrap: normal; word-break: normal; }
.section h2, .contact-message h3, .cta-title, .section-desc, .lead, .guidance p { overflow-wrap: normal; word-break: auto-phrase; }
@media(max-width:720px) {
  body {font-size:14px; line-height:1.65;}
  .shell {padding-left:16px;padding-right:16px;}
  .head-inner {min-height:72px;gap:8px;}
  .brand-image img {max-width:100%;}
  .head-home {font-size:11px;max-width:76px;line-height:1.45;}
  .hero-inner {padding-top:24px;padding-bottom:22px;}
  .hero h1 {font-size:26px;letter-spacing:.03em;margin-bottom:8px;}
  .eyebrow {font-size:11px;letter-spacing:.12em;}
  .lead {font-size:13px;line-height:1.75;}
  .lead br {display:none;}
  .section {padding:24px 0;}
  .section-heading {margin-bottom:15px;gap:10px;}
  .section-heading.emphasis {padding:13px;}
  .section-title-wrap {gap:10px; min-width:0;}
  .section h2 {font-size:21px; letter-spacing:0; line-height:1.4;}
  .section-kicker {font-size:11px;line-height:1.3;}
  .section-desc {font-size:13px;line-height:1.6;}
  .step-badge,.step-badge.sub {width:42px;height:42px;flex-basis:42px;font-size:18px;}
  .refresh {font-size:12px;padding:8px 10px;}
  .date-toolbar {font-size:13px;}
  .date-hint {font-size:12px;}
  .date-button .dow {font-size:12px;}
  .date-number {font-size:18px;}
  .notice {font-size:12px;}
  .legend {font-size:12px;gap:6px 12px;}
  .legend b {font-size:18px;}
  .group-name {font-size:14px;}
  .group-name small {font-size:11px;}
  .slot-grid {grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;}
  .slot {min-height:53px;padding:4px 1px;}
  .slot-time {font-size:10px;line-height:1.5;}
  .slot-mark {font-size:19px;}
  .slot[data-status="休"] .slot-mark {font-size:14px;}
  .guidance {padding:14px;}
  .guidance strong {font-size:14px;}
  .guidance p {font-size:13px;line-height:1.7;}
  .contact-panel {padding:18px 16px;gap:14px;grid-template-columns:minmax(0,1fr);}
  .contact-message {min-width:0;}
  .contact-kicker {font-size:11px;margin-bottom:8px;}
  .contact-message h3 {font-size:clamp(17px,4.8vw,21px);line-height:1.7;letter-spacing:0; margin-bottom:10px;word-break:keep-all;overflow-wrap:normal;}
  .contact-message>p:last-child {font-size:13px;line-height:1.7;}
  .cta {padding:14px 45px 14px 13px;min-width:0;}
  .cta-title {font-size:14px;line-height:1.5;}
  .cta-sub {font-size:12px;}
  .cta-arrow {right:15px;top:21px;}
  .footer,.foot-inner {font-size:12px;}
}
@media(max-width:360px) {
  .shell {padding-left:12px;padding-right:12px;}
  .contact-message h3 {font-size:17px;}
  .slot-grid {gap:3px;}
  .slot-time {font-size:9.5px;}
  .head-home {max-width:67px;font-size:10px;}
}
