/* ひととワークス 2026 リニューアル案：名刺の水彩 × 実写 × 大人のPOP。 */
:root {
  --navy:#233d58;
  --navy-dark:#142e4c;
  --text:#40546a;
  --muted:#667789;
  --pink:#fbebf1;
  --pink-strong:#f43e79;
  --soft-blue:#e8f5fe;
  --blue:#158edf;
  --mint:#c5e9e6;
  --lavender:#e9ddfb;
  --paper:#fff;
  --border:#e6edf2;
  --container:1250px;
  --round-font:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:104px;overflow-x:clip}
body{margin:0;overflow-x:hidden;color:var(--text);background:#fff;font:500 16px/1.9 var(--round-font);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
a:focus-visible,button:focus-visible{outline:3px solid #15a0dc;outline-offset:4px}
h1,h2,h3,p,figure,dl,dd,ol,ul{margin:0}
h1,h2,h3{font-family:var(--round-font);letter-spacing:.014em;color:var(--navy-dark);line-height:1.52}
p{line-height:1.95}
.content-wrap{width:min(var(--container),calc(100% - 96px));margin-inline:auto}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:20px;height:20px;display:inline-block;flex:none;vertical-align:middle}
.icon--arrow{width:18px;height:18px}
.skip-link{position:absolute;top:-120px;left:16px;z-index:200;background:white;padding:10px 16px;border-radius:8px}.skip-link:focus{top:10px}

/* global navigation */
.site-header{position:relative;z-index:20;background:rgba(255,255,255,.98);border-bottom:1px solid #f2f3f5}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:94px}
.brand{flex:0 0 auto;width:183px;display:block}.brand img{width:100%}
.main-nav{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.4vw,23px);flex:1;white-space:nowrap}
.main-nav a{position:relative;font-size:12px;font-weight:700;line-height:1.3;color:#2a4055;padding:15px 0}
.main-nav a::after{content:"";position:absolute;bottom:7px;left:0;width:0;height:2px;background:#f43e79;transition:width .2s}
.main-nav a:hover::after,.main-nav a:focus-visible::after{width:100%}
.menu-toggle{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;border:2px solid transparent;border-radius:100px;padding:14px 23px;font-weight:900;font-size:14px;line-height:1.45;min-height:54px;max-width:100%;text-align:center;transition:transform .2s,box-shadow .2s}
.button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(40,50,70,.12)}
.button--pink{color:#fff;background:#f23e77;background:linear-gradient(100deg,#f45d8a,#ee2e6d);box-shadow:0 8px 22px rgba(238,46,109,.16)}
.button--header{font-size:12px;white-space:nowrap;min-height:46px;padding:10px 18px}
.button--header .icon{width:17px;height:17px}
.button--instagram{border-color:#f34c83;color:#e93572;background:#fff;box-shadow:none}
.button--instagram .icon:first-child{color:#f03c7b;width:22px;height:22px}
.button--blue{background:#168fda;color:white;box-shadow:0 8px 22px rgba(22,143,218,.16)}
.button--outline-blue{border-color:#499ac9;color:#177daf;background:#fff}
.works-instagram-link[aria-disabled="true"]{cursor:default}
.works-instagram-link[aria-disabled="true"]:hover{transform:none;box-shadow:none}

/* typographic section system -- all section titles same font / left edge */
.section{position:relative;padding-block:112px;isolation:isolate}
.section::before{content:"";position:absolute;left:-120px;top:24%;width:330px;height:495px;z-index:-1;opacity:.25;pointer-events:none;background:url('../images/brand-watercolor.png') center/contain no-repeat;mix-blend-mode:multiply}
.section-overline{font-size:11px;letter-spacing:.18em;font-weight:900;color:#489cc3;text-transform:uppercase;line-height:1.3;margin-bottom:12px}
.section-title{font-size:clamp(29px,3vw,43px);font-weight:900;line-height:1.45;letter-spacing:.03em}
.section-heading{margin-bottom:42px}
.section-intro{margin-top:13px;font-size:16px;color:#52687c;max-width:780px}

/* hero: a distinct zone with extra scale and openness */
.hero{position:relative;isolation:isolate;padding:92px 0 125px;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);align-items:center;gap:18px;min-height:620px}
.hero__copy{position:relative;z-index:2;padding:0 12px 0 0}
.eyebrow{font-size:12px;letter-spacing:.06em;font-weight:700;color:#647c91;margin-bottom:30px}
.hero h1{font-size:clamp(32px,3.25vw,48px);font-weight:900;line-height:1.56;letter-spacing:.024em;white-space:nowrap}
.hero h1 em{font-style:normal;color:var(--navy-dark)}
.hero__description{margin-top:27px;font-size:16px;line-height:2.15;max-width:470px}
.hero__actions{display:flex;flex-direction:column;gap:22px;align-items:flex-start;margin-top:33px}
.hero__actions .button{min-width:273px}
.instagram-entry__notice{font-size:14px;font-weight:900;color:#e03b72;line-height:1.6;margin-bottom:10px}
.instagram-entry .button{font-size:12px;min-height:50px}
.hero__visual{position:relative;height:610px;min-width:0;margin-left:-8px}
.hero__visual::before{content:"";position:absolute;inset:5% 6% 1% 2%;background:#deeffd;border-radius:60% 40% 45% 55% / 45% 35% 65% 55%;transform:rotate(-8deg);opacity:.40}
.photo-shape{overflow:hidden;isolation:isolate;position:relative}
.photo-shape img{width:100%;height:100%;object-fit:cover}
.hero__photo-main{position:absolute;inset:5% 29% 14% 0;border-radius:49% 35% 43% 52% / 34% 42% 53% 53%;transform:rotate(-4deg)}
.hero__photo-main img{transform:translateX(-5%) rotate(4deg) scale(1.13);object-position:45% 47%}
.hero__photo-subtop{position:absolute;width:39%;height:39%;top:0;right:0;border:6px solid white;border-radius:50% 39% 54% 46% / 43% 55% 44% 57%;transform:rotate(5deg)}
.hero__photo-subtop img{transform:rotate(-5deg) scale(1.15);object-position:50% 40%}
.hero__photo-subbottom{position:absolute;width:34%;height:31%;bottom:2%;right:0;border:6px solid white;border-radius:52% 45% 46% 55% / 45% 45% 58% 46%;transform:rotate(-3deg)}
.hero__photo-subbottom img{transform:rotate(3deg) scale(1.13)}
.hero__accent-dot{position:absolute;z-index:-1;left:-5%;top:14%;width:132px;height:132px;background:#e7bddf;opacity:.65;border-radius:55% 45% 53% 47%}
.watercolor{position:absolute;z-index:-1;pointer-events:none;background-image:url('../images/brand-watercolor.png');background-repeat:no-repeat;background-size:contain;opacity:.53;mix-blend-mode:multiply}
.watercolor--hero-left{left:-140px;top:-58px;width:520px;height:780px;transform:rotate(17deg)}

/* community: one flat pale-pink organically rounded area, single inner rule */
.community-section{padding:12px 0 65px}
.community-panel{background:#fbebf1;padding:86px clamp(32px,5.6vw,78px) 82px;border-radius:95px 125px 90px 118px / 82px 95px 113px 86px;position:relative}
.community-panel__heading{margin-bottom:54px}
.community-panel__heading .section-overline{color:#9e6583}
.community-panel__heading .section-intro{margin-top:12px}
.community-service{display:grid;grid-template-columns:minmax(0,34%) minmax(0,40%) minmax(0,26%);column-gap:25px;align-items:center;min-width:0}
.community-service__copy{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;padding:5px 0}
.service-type{font-size:12px;color:#c04d78;font-weight:900;letter-spacing:.06em;display:flex;align-items:center;gap:10px}
.service-type .icon{width:27px;height:27px}
.community-service h3{font-size:clamp(29px,2.5vw,36px);line-height:1.45;margin:9px 0 12px;letter-spacing:.025em}
.community-service .service-lead{font-size:17px;font-weight:900;color:#4d5c6c;margin-bottom:12px}
.community-service__copy>p:not(.service-type):not(.service-lead){font-size:14px;line-height:2.05}
.community-service__copy .button--service{margin-top:auto;padding:12px 13px;min-height:51px;font-size:11px;white-space:nowrap}
.community-service__copy .button--service .icon{width:17px;height:17px}
.gohan-renewal-notice{margin-top:13px!important;font-size:13px!important;font-weight:900;color:#c83264;line-height:1.8!important}
.gohan-renewal-notice strong{font-weight:900}
.gohan-photos{position:relative;height:355px;margin:0 6px 0 0}
.gohan-photos__main{position:absolute;left:0;top:0;width:94%;height:88%;border-radius:45% 36% 48% 42% / 44% 54% 43% 53%;transform:rotate(-3deg)}
.gohan-photos__main img{object-position:55% 50%;transform:rotate(3deg) scale(1.12)}
.gohan-photos__detail{position:absolute;right:0;bottom:-5px;width:55%;height:51%;border:5px solid #fbebf1;border-radius:48% 42% 49% 45% / 44% 55% 43% 56%;transform:rotate(7deg)}
.gohan-photos__detail img{transform:rotate(-7deg) scale(1.12)}
.gohan-details{align-self:center;padding-left:7px;display:grid;gap:21px}
.gohan-details>div{border-bottom:1px solid rgba(156,90,121,.17);padding-bottom:13px}
.gohan-details>div:last-child{border-bottom:0}
.gohan-details dt{font-size:12px;font-weight:900;color:#36566f;display:flex;align-items:center;gap:9px;margin-bottom:6px}
.gohan-details dt .icon{color:#e86375;width:23px;height:23px}
.gohan-details dd{font-size:12px;line-height:1.75;padding-left:32px}
.gohan-details strong{font-size:21px;color:#263e55;line-height:1.55;white-space:nowrap}
.gohan-details small{font-size:11px;display:block;line-height:1.6}
.gohan-details__phone{font-size:20px;font-weight:900;color:#26475f;white-space:nowrap}
.community-divider{height:1px;background:#dcb9c8;margin:75px 0 77px}
.community-service--todowa{grid-template-columns:minmax(0,39%) minmax(0,61%);gap:60px;min-height:365px}
.community-service--todowa .community-service__copy{max-width:415px}
.community-service--todowa h3{letter-spacing:.075em;font-size:clamp(34px,3vw,42px)}
.todowa-hiragana{font-size:12px;letter-spacing:.02em;color:#59819c;font-weight:700;margin-left:12px;vertical-align:middle}
.community-service--todowa .service-type{color:#2089c1}
.todowa-visual{width:100%;max-width:630px;margin:auto;align-self:center;overflow:hidden;border-radius:39% 23% 30% 24% / 28% 32% 30% 35%;background:#fff}
.todowa-visual img{width:100%;height:auto;display:block}

/* B型事業所 introduction */
.chapter-label{display:flex;gap:18px;align-items:center;font-size:10px;letter-spacing:.23em;font-weight:900;color:#80a1b4;margin-top:60px;margin-bottom:-20px}
.chapter-label__line{height:1px;flex:1;background:#dfeaf0}
.about-section{padding-top:85px}
.about-grid{display:grid;grid-template-columns:47% 53%;align-items:center;gap:48px}
.about-copy__headline{font-size:clamp(20px,2.2vw,29px);font-weight:900;color:#dc6387;line-height:1.65;margin-top:22px;margin-bottom:22px}
.about-copy p:not(.section-overline):not(.about-copy__headline):not(.about-copy__cheer){margin-top:15px;font-size:15px;line-height:2.05}
.about-copy .text-lead{font-weight:900;color:#314f69}
.about-copy__cheer{margin:21px 0 24px;font-size:15px;font-weight:900;color:#466c7a}
.about-copy .button{font-size:12px}
.about-visual{height:530px;position:relative}
.about-visual::before{content:"";position:absolute;inset:0;background:#eef7fa;border-radius:52% 47% 55% 45% / 45% 54% 46% 55%;transform:rotate(8deg)}
.about-visual__primary{position:absolute;top:2%;right:0;width:92%;height:80%;border-radius:41% 52% 44% 53% / 44% 38% 55% 53%;transform:rotate(3deg)}
.about-visual__primary img{transform:rotate(-3deg) scale(1.10)}
.about-visual__detail{position:absolute;bottom:0;left:1%;width:50%;height:44%;border-radius:49% 43% 51% 42% / 49% 43% 58% 42%;border:7px solid white;transform:rotate(-7deg)}
.about-visual__detail img{transform:rotate(7deg) scale(1.13)}

/* work cards */
.work-section{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.work-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.work-card{border-radius:22px;overflow:hidden;border:1px solid #eaf0f4;background:white;box-shadow:0 10px 29px rgba(49,76,99,.055);min-width:0}
.work-card>img{width:100%;height:196px;object-fit:cover}
.work-card:nth-child(2)>img{object-position:center 35%}
.work-card:nth-child(4)>img{object-fit:contain;background:#f0f8fc;padding:11px}
.work-card:nth-child(5)>img{object-position:center 25%}
.work-card__body{padding:22px 17px 26px}
.work-card__no{display:block;font-size:11px;font-weight:900;color:#598ea8;letter-spacing:.03em;margin-bottom:9px}
.work-card h3{font-size:17px;min-height:54px;line-height:1.55;margin-bottom:11px}
.work-card p{font-size:13px;line-height:1.9}

/* support */
.support-section{padding-top:125px;padding-bottom:135px}
.support-grid{padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.support-card{min-height:270px;border-radius:28px;padding:27px 22px;position:relative}
.support-card--pink{background:#fbebf1;color:#dd4779}
.support-card--blue{background:#e9f5fe;color:#2589d0}
.support-card--mint{background:#e8f6f4;color:#0b9b94}
.support-card--lavender{background:#f0eafa;color:#8167cb}
.support-card__no{font-size:20px;font-weight:900;display:inline-grid;place-items:center;width:51px;height:51px;border-radius:50%;background:rgba(255,255,255,.55)}
.support-card__icon{position:absolute;right:27px;top:34px;width:39px;height:39px;color:currentColor;stroke-width:1}
.support-card h3{font-size:19px;color:inherit;margin:25px 0 12px}
.support-card p{color:#405368;font-size:14px;line-height:1.8}
.support-detail{margin-top:38px;padding:33px 41px;background:#f5f9fb;border-left:3px solid #aed7e3;border-radius:7px 22px 22px 7px}
.support-detail p{font-size:15px;line-height:2.05}
.support-detail p+p{margin-top:12px}

/* how to use; two columns, full-width independent section */
.use-section{background:#f8fcfe;padding-top:120px;padding-bottom:120px}
.use-section::before{opacity:.17;left:auto;right:-130px;top:18%}
.use-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:68px;align-items:start}
.days-label{font-weight:900;color:#366c81;display:flex;align-items:baseline;gap:7px;margin-bottom:19px;font-size:20px}
.days-label span{font-size:53px;line-height:1;color:#138ac3}
.use-table{border-top:1px solid #dde8ed}
.use-table>div{display:grid;grid-template-columns:132px 1fr;border-bottom:1px solid #dde8ed;gap:20px;padding:18px 6px}
.use-table dt{font-size:14px;color:#2b4f65;font-weight:900}
.use-table dd{font-size:14px;line-height:1.8}
.day-schedule{padding:34px 37px;background:white;border:1px solid #edf1f5;border-radius:25px;box-shadow:0 12px 35px rgba(57,87,101,.035)}
.day-schedule h3{font-size:20px;margin-bottom:25px}
.day-schedule ol{list-style:none;padding:0}
.day-schedule li{display:grid;grid-template-columns:92px 1fr;align-items:center;border-bottom:1px solid #e5edf1;min-height:53px;gap:8px;font-size:14px;font-weight:700}
.day-schedule li time{font-size:16px;color:#317a9c;font-weight:900}
.day-schedule li span::before{content:"";width:7px;height:7px;border-radius:50%;background:#79afaa;display:inline-block;margin-right:20px;vertical-align:middle}
.day-schedule__lunch{background:#fff4cd;border-radius:99px;border-bottom:0!important;padding-inline:17px;margin:4px -17px}
.schedule-note{font-size:12px;color:#7a8993;margin-top:16px}
.use-reassure{margin-top:38px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.use-reassure p{font-size:21px;font-weight:900;color:#42748b;line-height:1.7}

/* meals */
.meal-section{padding-top:126px;padding-bottom:126px}
.meal-grid{display:grid;grid-template-columns:45% 55%;gap:50px;align-items:center}
.meal-copy__lead{font-weight:900;font-size:24px;color:#e56c87;margin:21px 0}
.meal-copy>p:not(.section-overline):not(.meal-copy__lead){margin:13px 0;font-size:16px;line-height:2}
.meal-price{margin-top:34px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:23px 29px;background:#fff1f5;border-radius:20px;font-size:15px}
.meal-price .icon{color:#e75283;width:26px;height:26px}
.meal-price strong{font-size:25px;color:#e7467c}
.meal-photo{height:455px;border-radius:46% 38% 48% 43% / 36% 48% 45% 52%;transform:rotate(3deg)}
.meal-photo img{transform:rotate(-3deg) scale(1.10)}
.meal-photo figcaption{position:absolute;bottom:25px;right:28px;background:rgba(255,255,255,.92);padding:8px 14px;border-radius:99px;font-size:11px;font-weight:900;color:#496179}

/* place: full-width independent photo gallery */
.place-section{background:#f9fcff;padding-top:124px;padding-bottom:130px}
.place-intro{max-width:850px;font-size:16px;margin:-6px 0 37px}
.place-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.place-gallery figure{min-width:0}
.place-gallery img{width:100%;height:275px;object-fit:cover;border-radius:32px 39px 25px 35px}
.place-gallery figure:nth-child(2) img{border-radius:40px 25px 35px 28px}
.place-gallery figure:nth-child(3) img{border-radius:30px 38px 35px 26px}
.place-gallery figcaption{font-size:13px;line-height:1.8;padding:18px 5px}
.place-gallery figcaption strong{font-size:17px;display:block;color:var(--navy);margin-bottom:4px}
.facility-list{list-style:none;display:flex;flex-wrap:wrap;gap:13px;padding:0;margin-top:19px}
.facility-list li{border:1px solid #dcebf3;background:#fff;border-radius:99px;padding:9px 20px;font-size:13px;font-weight:700}
.facility-list li::before{content:"✓";color:#168ed2;font-weight:900;margin-right:8px}

/* final CTA and footer */
.contact-section{padding:102px 0 115px;background:#e8f5fc;position:relative;overflow:hidden}
.contact-section::before{content:"";position:absolute;right:-150px;top:-220px;width:430px;height:645px;background:url('../images/brand-watercolor.png') center/contain no-repeat;opacity:.24;mix-blend-mode:multiply}
.contact-panel{display:grid;grid-template-columns:1.25fr .75fr;gap:85px;align-items:center;position:relative}
.contact-panel h2{margin-bottom:23px}
.contact-panel p:not(.section-overline){margin:12px 0;max-width:680px;font-size:15px}
.contact-panel__actions{display:flex;align-items:flex-start;flex-direction:column;gap:14px}
.contact-panel__phone{font-size:32px;font-weight:900;color:#234e6d;display:flex;gap:12px;align-items:center;line-height:1.5}
.contact-panel__phone .icon{width:24px;height:24px;color:#f13c79}
.contact-panel__mail{font-size:15px;font-weight:700;display:flex;align-items:center;gap:11px;margin-bottom:8px}
.contact-panel__mail .icon{color:#ef4780}
.site-footer{padding-top:42px;padding-bottom:25px;background:#fff}
.footer-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:60px}
.footer-brand{max-width:280px}
.footer-brand img{width:176px;margin-bottom:12px}
.footer-brand p,.footer-brand address{font-style:normal;font-size:12px;line-height:1.8;color:#617282}
.footer-brand address{margin-top:8px}
.footer-nav{display:flex;justify-content:flex-end;gap:14px 22px;flex-wrap:wrap;align-content:flex-start;max-width:700px;padding-top:16px}
.footer-nav a{font-size:12px;font-weight:700;color:#51677d}
.footer-nav a:hover{color:#eb4177}
.footer-bottom{margin-top:30px;padding-top:15px;border-top:1px solid #e9eff3;display:flex;justify-content:space-between;font-size:12px;color:#7c8997}

@media (max-width:1250px){
  .content-wrap{width:min(var(--container),calc(100% - 72px))}
  .brand{width:155px}.main-nav{gap:12px}.main-nav a{font-size:11px}
  .hero h1{font-size:clamp(28px,3.3vw,43px)}
  .community-panel{padding-inline:40px}
  .community-service{grid-template-columns:35% 37% 28%;gap:13px}
  .community-service__copy .button--service{font-size:10px;gap:6px}
  .community-service--todowa{grid-template-columns:40% 60%;gap:25px}
  .work-grid{gap:13px}.work-card__body{padding:20px 14px}.work-card h3{font-size:15px}
}
@media (max-width:980px){
  .content-wrap{width:calc(100% - 48px)}
  .site-header__inner{min-height:78px}.brand{width:155px}
  .menu-toggle{display:flex;width:42px;height:42px;border:0;background:#f3f9fc;border-radius:12px;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;order:3}
  .menu-toggle span{width:20px;height:2px;border-radius:3px;background:var(--navy)}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:19px 28px 28px;background:white;box-shadow:0 18px 25px rgba(25,49,78,.12);flex-direction:column;align-items:stretch;gap:0}
  .main-nav.is-open{display:flex}.main-nav a{font-size:14px;border-bottom:1px solid #eef2f5;padding:13px}
  .button--header{margin-left:auto;order:2}.menu-toggle{order:3}
  .hero{padding:65px 0 95px}.hero__grid{min-height:515px}.hero__visual{height:510px}
  .hero h1{font-size:clamp(26px,3.6vw,36px)}.hero__description{font-size:14px}
  .community-panel{padding:67px 38px;border-radius:70px 95px 76px 90px / 78px 85px 90px 78px}
  .community-service--gohan{grid-template-columns:49% 51%;gap:10px}
  .gohan-photos{height:330px}.gohan-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0 0;gap:14px}
  .gohan-details>div{border-bottom:0;border-top:1px solid rgba(156,90,121,.2);padding:15px 0 0}
  .community-service--todowa{grid-template-columns:50% 50%}.todowa-visual{max-width:590px}
  .about-grid{grid-template-columns:52% 48%;gap:22px}.about-visual{height:435px}
  .work-grid{grid-template-columns:repeat(3,1fr);gap:18px}.work-card>img{height:205px}
  .support-grid{grid-template-columns:repeat(2,1fr)}
  .meal-grid{gap:25px}.meal-photo{height:355px}
  .use-grid{gap:30px}.place-gallery img{height:235px}
  .contact-panel{gap:30px}
}
@media (max-width:650px){
  html{scroll-padding-top:75px}
  body{font-size:14px}
  .content-wrap{width:calc(100% - 36px)}
  .site-header__inner{min-height:75px;gap:8px}.brand{width:122px}.button--header{font-size:0;min-width:43px;width:43px;height:43px;min-height:43px;border-radius:50%;padding:8px}.button--header .icon{width:20px;height:20px}
  .section{padding-block:81px}.section::before{width:200px;height:300px;left:-80px;opacity:.2}
  .section-overline{margin-bottom:8px;font-size:10px}
  .section-title{font-size:clamp(25px,6.5vw,32px)}
  .section-intro{font-size:13px;line-height:1.8}
  .section-heading{margin-bottom:27px}
  .button{font-size:12px;min-height:50px;gap:7px;padding:12px 17px}
  .button .icon{width:17px;height:17px}
  .hero{padding:38px 0 75px}.hero__grid{display:flex;flex-direction:column;gap:27px;min-height:0;align-items:stretch}
  .hero__copy{padding:0}.eyebrow{font-size:10px;margin-bottom:14px}
  .hero h1{font-size:clamp(27px,7.1vw,36px);line-height:1.49;white-space:normal}
  .hero__description{margin-top:19px;font-size:13px;line-height:1.9}
  .hero__actions{margin-top:23px;gap:17px}
  .hero__actions .button{min-width:0;width:auto}
  .instagram-entry__notice{font-size:12px}.instagram-entry .button{font-size:11px}
  .hero__visual{height:305px;margin-left:0}
  .hero__photo-main{inset:0 25% 0 0}.hero__photo-subtop{width:40%;height:49%;right:0;top:-3%}.hero__photo-subbottom{width:29%;height:34%;right:0;bottom:1%}
  .watercolor--hero-left{width:350px;height:530px;left:-160px;top:30px;opacity:.3}
  .community-section{padding:15px 0 50px}
  .community-panel{width:calc(100% - 18px);border-radius:54px 70px 58px 70px / 56px 68px 65px 60px;padding:53px 19px 55px}
  .community-panel__heading{margin-bottom:35px}
  .community-panel__heading .section-title{font-size:clamp(25px,6.5vw,32px)}
  .community-service{display:flex;flex-direction:column;align-items:stretch;gap:22px}
  .community-service h3{font-size:29px;margin:6px 0 8px}
  .community-service .service-lead{font-size:16px}
  .community-service__copy>p:not(.service-type):not(.service-lead){font-size:13px}
  .community-service__copy .button--service{font-size:10px;margin-top:21px;min-height:48px;align-self:flex-start}
  .gohan-photos{height:290px;margin:0 4px}
  .gohan-details{display:grid;grid-template-columns:1fr;gap:0;padding-top:0}
  .gohan-details>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start;border-top:1px solid rgba(156,90,121,.18);padding:16px 0}
  .gohan-details dt{margin-bottom:0;font-size:11px}.gohan-details dd{padding-left:0}.gohan-details strong{font-size:20px}
  .community-divider{margin:42px 0 45px}
  .community-service--todowa{gap:11px}.todowa-visual{max-width:390px}
  .chapter-label{margin-top:32px;margin-bottom:-31px}
  .about-section{padding-top:87px}
  .about-grid{display:flex;flex-direction:column;gap:25px}.about-copy__headline{font-size:23px;margin:13px 0}
  .about-copy p:not(.section-overline):not(.about-copy__headline):not(.about-copy__cheer){font-size:13px;margin-top:10px}
  .about-copy__cheer{font-size:13px}.about-copy .button{font-size:11px}
  .about-visual{height:365px;width:100%}
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .work-card{border-radius:18px}.work-card>img{height:143px}
  .work-card__body{padding:14px 12px 20px}.work-card__no{font-size:10px;margin-bottom:5px}.work-card h3{font-size:14px;min-height:0;margin-bottom:7px}.work-card p{font-size:11px}
  .support-grid{gap:11px}.support-card{padding:19px 13px;min-height:221px;border-radius:20px}
  .support-card__no{font-size:16px;width:36px;height:36px}.support-card__icon{right:11px;top:19px;width:27px;height:27px}
  .support-card h3{font-size:16px;margin:18px 0 8px}.support-card p{font-size:11px}
  .support-detail{padding:23px 21px;margin-top:27px}.support-detail p{font-size:12px}
  .use-grid{grid-template-columns:1fr;gap:33px}.use-table>div{grid-template-columns:92px 1fr;gap:8px;padding:14px 0}.use-table dt,.use-table dd{font-size:12px}.days-label span{font-size:44px}
  .day-schedule{padding:27px 23px}.day-schedule h3{font-size:18px}.day-schedule li{font-size:12px}
  .use-reassure{align-items:flex-start;flex-direction:column;gap:17px;margin-top:27px}.use-reassure p{font-size:17px}
  .meal-grid{grid-template-columns:1fr;gap:35px}.meal-copy__lead{font-size:20px;margin:13px 0}.meal-copy>p:not(.section-overline):not(.meal-copy__lead){font-size:13px}.meal-price{margin-top:20px;padding:17px}.meal-price strong{font-size:20px}.meal-photo{height:285px}
  .place-intro{font-size:13px;margin-bottom:26px}.place-gallery{grid-template-columns:1fr;gap:22px}.place-gallery img{height:230px}.place-gallery figcaption{padding:10px 4px 0}.place-gallery figcaption strong{font-size:16px}
  .facility-list{gap:8px}.facility-list li{font-size:11px;padding:8px 12px}
  .contact-section{padding:70px 0 78px}.contact-panel{grid-template-columns:1fr;gap:24px}.contact-panel p:not(.section-overline){font-size:13px}.contact-panel__phone{font-size:27px}
  .site-footer{padding-top:34px}.footer-grid{flex-direction:column;gap:16px}.footer-nav{justify-content:flex-start;gap:12px 18px;padding:0}.footer-nav a{font-size:11px}.footer-bottom{font-size:10px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}


/* ============================================================
   Dynamic animations - added to the existing visual design
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 110;
  transition: box-shadow .35s ease, background-color .35s ease;
}
.site-header.is-scrolled {
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 9px 27px rgba(29, 63, 91, .09);
  -webkit-backdrop-filter: blur(13px);
  backdrop-filter: blur(13px);
}
.page-scroll-progress {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 200;
  width: 100%;
  height: 3px;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, #7ec5ef, #ef6ca1 58%, #b0e0d5);
  pointer-events: none;
}

/* All micro-interactions are intentionally restrained and temporary. */
@media (hover:hover) and (pointer:fine) {
  .work-card, .support-card, .place-gallery figure {
    transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
  }
  .work-card:hover, .support-card:hover { transform: translateY(-7px); }
  .work-card:hover { box-shadow: 0 18px 32px rgba(49,76,99,.11); }
  .support-card:hover { box-shadow: 0 15px 31px rgba(49,76,99,.09); }
  .place-gallery figure:hover { transform: translateY(-5px); }
  .work-card > img, .photo-shape > img, .place-gallery figure img, .todowa-visual img {
    transition: scale .65s cubic-bezier(.2,.75,.3,1);
  }
  .work-card:hover > img, .photo-shape:hover > img, .place-gallery figure:hover img,
  .todowa-visual:hover img { scale: 1.045; }
  .support-card__icon, .support-card__no {
    transition: scale .3s ease, rotate .3s ease;
  }
  .support-card:hover .support-card__icon { scale: 1.12; rotate: -7deg; }
  .support-card:hover .support-card__no { scale: 1.06; }
  .button .icon--arrow { transition: translate .3s ease; }
  .button:hover .icon--arrow { translate: 4px 0; }
  .button--instagram .icon:first-child { transition: scale .3s ease, rotate .3s ease; }
  .button--instagram:hover .icon:first-child { scale: 1.13; rotate: -7deg; }
  .footer-nav a, .footer-bottom a, .contact-panel__phone,
  .contact-panel__mail { transition: color .2s ease; }
  .footer-nav a:hover, .contact-panel__phone:hover, .contact-panel__mail:hover { color: #ea3f79; }
}

/* Fade, slide, and pop reveals are enabled only when JS observes the items. */
@media (prefers-reduced-motion: no-preference) {
  .motion-enhanced [data-reveal] {
    opacity: 0;
    translate: 0 29px;
    transition: opacity .8s cubic-bezier(.22,1,.36,1),
                translate .85s cubic-bezier(.22,1,.36,1),
                scale .85s cubic-bezier(.22,1,.36,1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .motion-enhanced [data-reveal="photo"] {
    translate: 0 21px;
    scale: .945;
  }
  .motion-enhanced [data-reveal="right"] {
    translate: 30px 0;
  }
  .motion-enhanced [data-reveal="card"] {
    translate: 0 37px;
    scale: .975;
  }
  .motion-enhanced [data-reveal="line"] {
    opacity: 1;
    translate: 0 0;
    scale: 0 1;
    transform-origin: left center;
    transition-duration: 1s;
  }
  .motion-enhanced [data-reveal].is-visible {
    opacity: 1;
    translate: 0 0;
    scale: 1;
  }

  @keyframes heroWordsIn {
    from { opacity: 0; translate: 0 27px; }
    to { opacity: 1; translate: 0 0; }
  }
  @keyframes heroPictureIn {
    from { opacity: 0; translate: 0 32px; scale: .93; }
    to { opacity: 1; translate: 0 0; scale: 1; }
  }
  @keyframes watercolorDrift {
    0%,100% { translate: 0 0; }
    50% { translate: 11px -14px; }
  }
  @keyframes circleDrift {
    0%,100% { translate: 0 0; }
    50% { translate: 0 -12px; }
  }
  @keyframes supportNumberPop {
    from { opacity: .3; scale: .7; }
    70% { opacity: 1; scale: 1.1; }
    to { opacity: 1; scale: 1; }
  }
  .motion-enhanced .hero__copy > .eyebrow {
    animation: heroWordsIn .76s .08s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__copy > h1 {
    animation: heroWordsIn .86s .20s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__description {
    animation: heroWordsIn .86s .38s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__actions {
    animation: heroWordsIn .8s .55s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__photo-main {
    animation: heroPictureIn 1.15s .13s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__photo-subtop {
    animation: heroPictureIn 1.05s .38s both cubic-bezier(.22,1,.36,1);
  }
  .motion-enhanced .hero__photo-subbottom {
    animation: heroPictureIn 1.05s .60s both cubic-bezier(.22,1,.36,1);
  }
  .watercolor--hero-left {
    animation: watercolorDrift 16s ease-in-out infinite;
  }
  .hero__accent-dot, .hero__visual::before {
    animation: circleDrift 12s ease-in-out infinite;
  }
  .motion-enhanced .support-card.is-visible .support-card__no {
    animation: supportNumberPop .65s both cubic-bezier(.25,.8,.25,1);
    animation-delay: calc(var(--reveal-delay, 0ms) + 310ms);
  }
}

/* People who request less animation get a fully static, instantly visible page. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .motion-enhanced [data-reveal] {
    opacity: 1 !important;
    translate: 0 0 !important;
    scale: 1 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-scroll-progress { display: none; }
  .work-card:hover, .support-card:hover, .place-gallery figure:hover,
  .button:hover { transform: none !important; }
  .work-card:hover > img, .photo-shape:hover > img,
  .place-gallery figure:hover img, .todowa-visual:hover img,
  .support-card:hover .support-card__icon,
  .support-card:hover .support-card__no { scale: 1 !important; rotate: 0deg !important; }
  .button:hover .icon--arrow { translate: 0 0 !important; }
}
